diff --git a/Makefile.common b/Makefile.common index aa678046c0..4ee88907cd 100644 --- a/Makefile.common +++ b/Makefile.common @@ -1385,6 +1385,10 @@ ifeq ($(HAVE_GLSLANG), 1) -I$(DEPS_DIR)/glslang/glslang/SPIRV \ -I$(DEPS_DIR)/glslang + ifneq ($(findstring Win32,$(OS)),) + DEFINES += -DENABLE_HLSL + endif + GLSLANG_SOURCES := \ $(wildcard $(DEPS_DIR)/glslang/*.cpp) \ $(wildcard $(DEPS_DIR)/glslang/glslang/SPIRV/*.cpp) \ diff --git a/deps/glslang-new/.appveyor.yml b/deps/glslang-new/.appveyor.yml deleted file mode 100644 index 07e269bedf..0000000000 --- a/deps/glslang-new/.appveyor.yml +++ /dev/null @@ -1,90 +0,0 @@ -# Windows Build Configuration for AppVeyor -# http://www.appveyor.com/docs/appveyor-yml - -# build version format -version: "{build}" - -os: Visual Studio 2013 - -platform: - - x64 - -configuration: - - Debug - - Release - -branches: - only: - - master - -# Travis advances the master-tot tag to current top of the tree after -# each push into the master branch, because it relies on that tag to -# upload build artifacts to the master-tot release. This will cause -# double testing for each push on Appveyor: one for the push, one for -# the tag advance. Disable testing tags. -skip_tags: true - -clone_depth: 5 - -matrix: - fast_finish: true # Show final status immediately if a test fails. - -# scripts that run after cloning repository -install: - - git clone https://github.com/google/googletest.git External/googletest - - C:/Python27/python.exe update_glslang_sources.py - -build: - parallel: true # enable MSBuild parallel builds - verbosity: minimal - -build_script: - - mkdir build && cd build - - cmake .. -DCMAKE_INSTALL_PREFIX=install - - cmake --build . --config %CONFIGURATION% --target install - -test_script: - - ctest -C %CONFIGURATION% --output-on-failure - - cd ../Test && bash runtests - - cd ../build - -after_test: - # For debug build, the generated dll has a postfix "d" in its name. - - ps: >- - If ($env:configuration -Match "Debug") { - $env:SUFFIX="d" - } Else { - $env:SUFFIX="" - } - - cd install - # Zip all glslang artifacts for uploading and deploying - - 7z a glslang-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip - bin\glslangValidator.exe - include\glslang\* - include\SPIRV\* - lib\glslang%SUFFIX%.lib - lib\HLSL%SUFFIX%.lib - lib\OGLCompiler%SUFFIX%.lib - lib\OSDependent%SUFFIX%.lib - lib\SPIRV%SUFFIX%.lib - lib\SPVRemapper%SUFFIX%.lib - lib\SPIRV-Tools%SUFFIX%.lib - lib\SPIRV-Tools-opt%SUFFIX%.lib - -artifacts: - - path: build\install\*.zip - name: artifacts-zip - -deploy: - - provider: GitHub - auth_token: - secure: YglcSYdl0TylEa59H4K6lylBEDr586NAt2EMgZquSo+iuPrwgZQuJLPCoihSm9y6 - release: master-tot - description: "Continuous build of the latest master branch by Appveyor and Travis CI" - artifact: artifacts-zip - draft: false - prerelease: false - force_update: true - on: - branch: master - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 diff --git a/deps/glslang-new/.travis.yml b/deps/glslang-new/.travis.yml deleted file mode 100644 index 4fe4b5e5ba..0000000000 --- a/deps/glslang-new/.travis.yml +++ /dev/null @@ -1,123 +0,0 @@ -# Linux and Mac Build Configuration for Travis - -language: cpp - -os: - - linux - - osx - -# Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment. -sudo: false -dist: trusty - -env: - global: - - secure: aGFrgzyKp+84hKrGkxVWg8cHV61uqrKEHT38gfSQK6+WS4GfLOyH83p7WnsEBb7AMhzU7LMNFdvOFr6+NaMpVnqRvc40CEG1Q+lNg9Pq9mhIZLowvDrfqTL9kQ+8Nbw5Q6/dg6CTvY7fvRfpfCEmKIUZBRkoKUuHeuM1uy3IupFcdNuL5bSYn3Beo+apSJginh9DI4BLDXFUgBzTRSLLyCX5g3cpaeGGOCr8quJlYx75W6HRck5g9SZuLtUoH9GFEV3l+ZEWB8noErW+J56L03bwNwFuuAh321evw++oQk5KFa8rlDvar3SJ3b1RHB8u/eq5DBYMyaK/fS8+Q7QbGr8diF/wDe68bKO7U9IhpNfExXmczCpExjHomW5TQv4rYdGhygPMfW97aIsPRYyNKcl4fkmb7NDrM8w0Jscdq2g5c2Kz0ItyZoBri/NXLwFQQjaVCs7Pf97TjuMA7mK0GJmDTRzi6SrDYlWMt5BQL3y0CCojyfLIRcTh0CQjQI29s97bLfQrYAxt9GNNFR+HTXRLLrkaAlJkPGEPwUywlSfEThnvHLesNxYqemolAYpQT4ithoL4GehGIHmaxsW295aKVhuRf8K9eBODNqrfblvM42UHhjntT+92ZnQ/Gkq80GqaMxnxi4PO5FyPIxt0r981b54YBkWi8YA4P7w5pNI= - matrix: - - GLSLANG_BUILD_TYPE=Release - - GLSLANG_BUILD_TYPE=Debug - -compiler: - - clang - - gcc - -matrix: - fast_finish: true # Show final status immediately if a test fails. - exclude: - # Skip GCC builds on Mac OS X. - - os: osx - compiler: gcc - include: - # Additional build using Android NDK. - - env: BUILD_NDK=ON - -cache: - apt: true - -branches: - only: - - master - -addons: - apt: - packages: - - clang-3.6 - -install: - # Make sure that clang-3.6 is selected on Linux. - - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then - export CC=clang-3.6 CXX=clang++-3.6; - fi - # Download Android NDK and Android CMake toolchain file. - - if [[ "$BUILD_NDK" == "ON" ]]; then - git clone --depth=1 https://github.com/urho3d/android-ndk.git $HOME/android-ndk; - export ANDROID_NDK=$HOME/android-ndk; - git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake; - export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake; - fi - -before_script: - - git clone --depth=1 https://github.com/google/googletest.git External/googletest - - ./update_glslang_sources.py - -script: - - mkdir build && cd build - # For Android, do release building using NDK without testing. - # For Linux and macOS, do debug/release building with testing. - - if [[ "$BUILD_NDK" == "ON" ]]; then - cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} - -DANDROID_NATIVE_API_LEVEL=android-12 - -DCMAKE_BUILD_TYPE=Release - -DANDROID_ABI="armeabi-v7a with NEON" - -DBUILD_TESTING=OFF ..; - make -j4; - else - cmake -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=`pwd`/install ..; - make -j4 install; - ctest --output-on-failure && - cd ../Test && ./runtests; - fi - -after_success: - # For debug build, the generated dll has a postfix "d" in its name. - - if [[ "${GLSLANG_BUILD_TYPE}" == "Debug" ]]; then - export SUFFIX="d"; - else - export SUFFIX=""; - fi - # Create tarball for deployment - - if [[ ${CC} == clang* && "${BUILD_NDK}" != "ON" ]]; then - cd ../build/install; - export TARBALL=glslang-master-${TRAVIS_OS_NAME}-${GLSLANG_BUILD_TYPE}.zip; - zip ${TARBALL} - bin/glslangValidator - include/glslang/* - include/SPIRV/* - lib/libglslang${SUFFIX}.a - lib/libHLSL${SUFFIX}.a - lib/libOGLCompiler${SUFFIX}.a - lib/libOSDependent${SUFFIX}.a - lib/libSPIRV${SUFFIX}.a - lib/libSPVRemapper${SUFFIX}.a - lib/libSPIRV-Tools${SUFFIX}.a - lib/libSPIRV-Tools-opt${SUFFIX}.a; - fi - -before_deploy: - # Tag the current top of the tree as "master-tot". - # Travis CI replies on the tag name to properly push to GitHub Releases. - - git config --global user.name "Travis CI" - - git config --global user.email "builds@travis-ci.org" - - git tag -f master-tot - - git push -q -f https://${glslangtoken}@github.com/KhronosGroup/glslang --tags - -deploy: - provider: releases - api_key: ${glslangtoken} - on: - branch: master - condition: ${CC} == clang* && ${BUILD_NDK} != ON - file: ${TARBALL} - skip_cleanup: true - overwrite: true diff --git a/deps/glslang-new/CMakeLists.txt b/deps/glslang-new/CMakeLists.txt deleted file mode 100644 index 9a869c2c00..0000000000 --- a/deps/glslang-new/CMakeLists.txt +++ /dev/null @@ -1,122 +0,0 @@ -# increase to 3.1 once all major distributions -# include a version of CMake >= 3.1 -cmake_minimum_required(VERSION 2.8.12) -if (POLICY CMP0048) - cmake_policy(SET CMP0048 NEW) -endif() -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -# Adhere to GNU filesystem layout conventions -include(GNUInstallDirs) - -option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) - -set(LIB_TYPE STATIC) - -if(BUILD_SHARED_LIBS) - set(LIB_TYPE SHARED) -endif() - -option(SKIP_GLSLANG_INSTALL "Skip installation" ${SKIP_GLSLANG_INSTALL}) -if(NOT ${SKIP_GLSLANG_INSTALL}) - set(ENABLE_GLSLANG_INSTALL ON) -endif() - -option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" ON) -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) - set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "..." FORCE) -endif() - -project(glslang) -# make testing optional -include(CTest) - -if(ENABLE_AMD_EXTENSIONS) - add_definitions(-DAMD_EXTENSIONS) -endif(ENABLE_AMD_EXTENSIONS) - -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) - include(ChooseMSVCCRT.cmake) - endif(MSVC) - add_definitions(-DGLSLANG_OSINCLUDE_WIN32) -elseif(UNIX) - add_definitions(-DGLSLANG_OSINCLUDE_UNIX) -else(WIN32) - message("unknown platform") -endif(WIN32) - -if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") - add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs - -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable -fno-exceptions) - add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. -elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - add_compile_options(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs - -Wunused-parameter -Wunused-value -Wunused-variable) - add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. -endif() - -# Request C++11 -if(${CMAKE_VERSION} VERSION_LESS 3.1) - # CMake versions before 3.1 do not understand CMAKE_CXX_STANDARD - # remove this block once CMake >=3.1 has fixated in the ecosystem - add_compile_options(-std=c++11) -else() - set(CMAKE_CXX_STANDARD 11) - set(CMAKE_CXX_STANDARD_REQUIRED ON) - set(CMAKE_CXX_EXTENSIONS OFF) -endif() - -function(glslang_set_link_args TARGET) - # For MinGW compiles, statically link against the GCC and C++ runtimes. - # This avoids the need to ship those runtimes as DLLs. - if(WIN32 AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") - set_target_properties(${TARGET} PROPERTIES - LINK_FLAGS "-static -static-libgcc -static-libstdc++") - endif() -endfunction(glslang_set_link_args) - -# We depend on these for later projects, so they should come first. -add_subdirectory(External) - -if(NOT TARGET SPIRV-Tools-opt) - set(ENABLE_OPT OFF) -endif() - -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-new/External/CMakeLists.txt b/deps/glslang-new/External/CMakeLists.txt deleted file mode 100644 index 4d9690134a..0000000000 --- a/deps/glslang-new/External/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -# Suppress all warnings from external projects. -set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w) - -if(BUILD_TESTING) - if(TARGET gmock) - message(STATUS "Google Mock already configured - use it") - elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest) - # We need to make sure Google Test does not mess up with the - # global CRT settings on Windows. - if(WIN32) - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - endif(WIN32) - add_subdirectory(googletest) - set(GTEST_TARGETS - gtest - gtest_main - gmock - gmock_main) - foreach(target ${GTEST_TARGETS}) - set_property(TARGET ${target} PROPERTY FOLDER gtest) - endforeach() - mark_as_advanced(gmock_build_tests - BUILD_GMOCK - BUILD_GTEST - BUILD_SHARED_LIBS - gtest_build_samples - gtest_build_tests - gtest_disable_pthreads - gtest_force_shared_crt - gtest_hide_internal_symbols) - else() - message(STATUS - "Google Mock was not found - tests based on that will not build") - endif() -endif() - -if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools) - set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests") - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools) - endif() -endif() - diff --git a/deps/glslang-new/OGLCompilersDLL/InitializeDll.h b/deps/glslang-new/OGLCompilersDLL/InitializeDll.h deleted file mode 100644 index 661cee4d24..0000000000 --- a/deps/glslang-new/OGLCompilersDLL/InitializeDll.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// Copyright (C) 2002-2005 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. -// -#ifndef __INITIALIZEDLL_H -#define __INITIALIZEDLL_H - -#include "../glslang/OSDependent/osinclude.h" - -namespace glslang { - -bool InitProcess(); -bool InitThread(); -bool DetachThread(); // not called from standalone, perhaps other tools rely on parts of it -bool DetachProcess(); // not called from standalone, perhaps other tools rely on parts of it - -} // end namespace glslang - -#endif // __INITIALIZEDLL_H - diff --git a/deps/glslang-new/SPIRV/CMakeLists.txt b/deps/glslang-new/SPIRV/CMakeLists.txt deleted file mode 100755 index 1e5513c735..0000000000 --- a/deps/glslang-new/SPIRV/CMakeLists.txt +++ /dev/null @@ -1,83 +0,0 @@ -set(SOURCES - GlslangToSpv.cpp - InReadableOrder.cpp - Logger.cpp - SpvBuilder.cpp - doc.cpp - disassemble.cpp) - -set(SPVREMAP_SOURCES - SPVRemapper.cpp - doc.cpp) - -set(HEADERS - bitutils.h - spirv.hpp - GLSL.std.450.h - GLSL.ext.EXT.h - GLSL.ext.KHR.h - GlslangToSpv.h - hex_float.h - Logger.h - SpvBuilder.h - spvIR.h - doc.h - disassemble.h) - -set(SPVREMAP_HEADERS - SPVRemapper.h - doc.h) - -if(ENABLE_AMD_EXTENSIONS) - list(APPEND - HEADERS - GLSL.ext.AMD.h) -endif(ENABLE_AMD_EXTENSIONS) - -if(ENABLE_NV_EXTENSIONS) - list(APPEND - HEADERS - GLSL.ext.NV.h) -endif(ENABLE_NV_EXTENSIONS) - -add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS}) -set_property(TARGET SPIRV PROPERTY FOLDER glslang) -set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON) -target_include_directories(SPIRV PUBLIC ..) - -add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) -set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) -set_property(TARGET SPVRemapper PROPERTY POSITION_INDEPENDENT_CODE ON) - -if(WIN32 AND BUILD_SHARED_LIBS) - set_target_properties(SPIRV PROPERTIES PREFIX "") - set_target_properties(SPVRemapper PROPERTIES PREFIX "") -endif() - -if(ENABLE_OPT) - target_include_directories(SPIRV - PRIVATE ${spirv-tools_SOURCE_DIR}/include - PRIVATE ${spirv-tools_SOURCE_DIR}/source - ) - target_link_libraries(SPIRV glslang SPIRV-Tools-opt) -else() - target_link_libraries(SPIRV glslang) -endif(ENABLE_OPT) - -if(WIN32) - source_group("Source" FILES ${SOURCES} ${HEADERS}) - source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) -endif(WIN32) - -if(ENABLE_GLSLANG_INSTALL) - if(BUILD_SHARED_LIBS) - install(TARGETS SPIRV SPVRemapper - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) - else() - install(TARGETS SPIRV SPVRemapper - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() - - install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/) -endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang-new/SPIRV/GlslangToSpv.h b/deps/glslang-new/SPIRV/GlslangToSpv.h deleted file mode 100644 index f7f7cff620..0000000000 --- a/deps/glslang-new/SPIRV/GlslangToSpv.h +++ /dev/null @@ -1,67 +0,0 @@ -// -// Copyright (C) 2014 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. - -#pragma once - -#if defined(_MSC_VER) && _MSC_VER >= 1900 - #pragma warning(disable : 4464) // relative include path contains '..' -#endif - -#include "../glslang/Include/intermediate.h" - -#include -#include - -#include "Logger.h" - -namespace glslang { - -struct SpvOptions { - SpvOptions() : generateDebugInfo(false), disableOptimizer(true), - optimizeSize(false) { } - bool generateDebugInfo; - bool disableOptimizer; - bool optimizeSize; -}; - -void GetSpirvVersion(std::string&); -int GetSpirvGeneratorVersion(); -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, - SpvOptions* options = nullptr); -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, - spv::SpvBuildLogger* logger, SpvOptions* options = nullptr); -void OutputSpvBin(const std::vector& spirv, const char* baseName); -void OutputSpvHex(const std::vector& spirv, const char* baseName, const char* varName); - -} diff --git a/deps/glslang-new/SPIRV/disassemble.h b/deps/glslang-new/SPIRV/disassemble.h deleted file mode 100755 index 47cef65a57..0000000000 --- a/deps/glslang-new/SPIRV/disassemble.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// Copyright (C) 2014-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. - -// -// Disassembler for SPIR-V. -// - -#pragma once -#ifndef disassembler_H -#define disassembler_H - -#include -#include - -namespace spv { - - void Disassemble(std::ostream& out, const std::vector&); - -}; // end namespace spv - -#endif // disassembler_H diff --git a/deps/glslang-new/StandAlone/StandAlone.cpp b/deps/glslang-new/StandAlone/StandAlone.cpp deleted file mode 100644 index 6736dbcbf3..0000000000 --- a/deps/glslang-new/StandAlone/StandAlone.cpp +++ /dev/null @@ -1,1501 +0,0 @@ -// -// 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-new/Test/450.comp b/deps/glslang-new/Test/450.comp deleted file mode 100644 index fb2b56a771..0000000000 --- a/deps/glslang-new/Test/450.comp +++ /dev/null @@ -1,6 +0,0 @@ -#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-new/Test/450.tese b/deps/glslang-new/Test/450.tese deleted file mode 100644 index 8cdeb20722..0000000000 --- a/deps/glslang-new/Test/450.tese +++ /dev/null @@ -1,21 +0,0 @@ -#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-new/Test/450.vert b/deps/glslang-new/Test/450.vert deleted file mode 100644 index e99a133c13..0000000000 --- a/deps/glslang-new/Test/450.vert +++ /dev/null @@ -1,56 +0,0 @@ -#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-new/Test/baseResults/100.frag.out b/deps/glslang-new/Test/baseResults/100.frag.out deleted file mode 100644 index 5e702e87ca..0000000000 --- a/deps/glslang-new/Test/baseResults/100.frag.out +++ /dev/null @@ -1,576 +0,0 @@ -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-new/Test/baseResults/100Limits.vert.out b/deps/glslang-new/Test/baseResults/100Limits.vert.out deleted file mode 100644 index ab0ff1ee73..0000000000 --- a/deps/glslang-new/Test/baseResults/100Limits.vert.out +++ /dev/null @@ -1,889 +0,0 @@ -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-new/Test/baseResults/100scope.vert.out b/deps/glslang-new/Test/baseResults/100scope.vert.out deleted file mode 100644 index c59c8fd7d3..0000000000 --- a/deps/glslang-new/Test/baseResults/100scope.vert.out +++ /dev/null @@ -1,228 +0,0 @@ -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-new/Test/baseResults/110scope.vert.out b/deps/glslang-new/Test/baseResults/110scope.vert.out deleted file mode 100644 index e23d3c0f46..0000000000 --- a/deps/glslang-new/Test/baseResults/110scope.vert.out +++ /dev/null @@ -1,276 +0,0 @@ -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-new/Test/baseResults/120.frag.out b/deps/glslang-new/Test/baseResults/120.frag.out deleted file mode 100644 index e63c001002..0000000000 --- a/deps/glslang-new/Test/baseResults/120.frag.out +++ /dev/null @@ -1,699 +0,0 @@ -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-new/Test/baseResults/120.vert.out b/deps/glslang-new/Test/baseResults/120.vert.out deleted file mode 100644 index 5a91ed664e..0000000000 --- a/deps/glslang-new/Test/baseResults/120.vert.out +++ /dev/null @@ -1,505 +0,0 @@ -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-new/Test/baseResults/130.frag.out b/deps/glslang-new/Test/baseResults/130.frag.out deleted file mode 100644 index 81d055befe..0000000000 --- a/deps/glslang-new/Test/baseResults/130.frag.out +++ /dev/null @@ -1,460 +0,0 @@ -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-new/Test/baseResults/130.vert.out b/deps/glslang-new/Test/baseResults/130.vert.out deleted file mode 100644 index e38043c60b..0000000000 --- a/deps/glslang-new/Test/baseResults/130.vert.out +++ /dev/null @@ -1,286 +0,0 @@ -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-new/Test/baseResults/140.frag.out b/deps/glslang-new/Test/baseResults/140.frag.out deleted file mode 100644 index 7ce2170362..0000000000 --- a/deps/glslang-new/Test/baseResults/140.frag.out +++ /dev/null @@ -1,169 +0,0 @@ -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-new/Test/baseResults/140.vert.out b/deps/glslang-new/Test/baseResults/140.vert.out deleted file mode 100644 index 020afd08e6..0000000000 --- a/deps/glslang-new/Test/baseResults/140.vert.out +++ /dev/null @@ -1,215 +0,0 @@ -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-new/Test/baseResults/150.frag.out b/deps/glslang-new/Test/baseResults/150.frag.out deleted file mode 100644 index 1454b55837..0000000000 --- a/deps/glslang-new/Test/baseResults/150.frag.out +++ /dev/null @@ -1,158 +0,0 @@ -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-new/Test/baseResults/150.geom.out b/deps/glslang-new/Test/baseResults/150.geom.out deleted file mode 100644 index 92b8e1aa50..0000000000 --- a/deps/glslang-new/Test/baseResults/150.geom.out +++ /dev/null @@ -1,289 +0,0 @@ -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-new/Test/baseResults/150.tesc.out b/deps/glslang-new/Test/baseResults/150.tesc.out deleted file mode 100644 index 89220264fa..0000000000 --- a/deps/glslang-new/Test/baseResults/150.tesc.out +++ /dev/null @@ -1,1676 +0,0 @@ -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-new/Test/baseResults/150.vert.out b/deps/glslang-new/Test/baseResults/150.vert.out deleted file mode 100644 index 504160d578..0000000000 --- a/deps/glslang-new/Test/baseResults/150.vert.out +++ /dev/null @@ -1,95 +0,0 @@ -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-new/Test/baseResults/300.frag.out b/deps/glslang-new/Test/baseResults/300.frag.out deleted file mode 100644 index ee1b8a55a9..0000000000 --- a/deps/glslang-new/Test/baseResults/300.frag.out +++ /dev/null @@ -1,632 +0,0 @@ -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-new/Test/baseResults/300.vert.out b/deps/glslang-new/Test/baseResults/300.vert.out deleted file mode 100644 index 95ebb92e3c..0000000000 --- a/deps/glslang-new/Test/baseResults/300.vert.out +++ /dev/null @@ -1,505 +0,0 @@ -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-new/Test/baseResults/300BuiltIns.frag.out b/deps/glslang-new/Test/baseResults/300BuiltIns.frag.out deleted file mode 100644 index 84d4d0860c..0000000000 --- a/deps/glslang-new/Test/baseResults/300BuiltIns.frag.out +++ /dev/null @@ -1,418 +0,0 @@ -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-new/Test/baseResults/300block.frag.out b/deps/glslang-new/Test/baseResults/300block.frag.out deleted file mode 100644 index 6f7de91b0a..0000000000 --- a/deps/glslang-new/Test/baseResults/300block.frag.out +++ /dev/null @@ -1,153 +0,0 @@ -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-new/Test/baseResults/300layout.frag.out b/deps/glslang-new/Test/baseResults/300layout.frag.out deleted file mode 100644 index 3266d9b71d..0000000000 --- a/deps/glslang-new/Test/baseResults/300layout.frag.out +++ /dev/null @@ -1,69 +0,0 @@ -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-new/Test/baseResults/300layout.vert.out b/deps/glslang-new/Test/baseResults/300layout.vert.out deleted file mode 100644 index e245cbcf97..0000000000 --- a/deps/glslang-new/Test/baseResults/300layout.vert.out +++ /dev/null @@ -1,147 +0,0 @@ -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-new/Test/baseResults/300link.frag.out b/deps/glslang-new/Test/baseResults/300link.frag.out deleted file mode 100644 index dc54e76506..0000000000 --- a/deps/glslang-new/Test/baseResults/300link.frag.out +++ /dev/null @@ -1,22 +0,0 @@ -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-new/Test/baseResults/300link2.frag.out b/deps/glslang-new/Test/baseResults/300link2.frag.out deleted file mode 100644 index 6bbb287e97..0000000000 --- a/deps/glslang-new/Test/baseResults/300link2.frag.out +++ /dev/null @@ -1,25 +0,0 @@ -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-new/Test/baseResults/300link3.frag.out b/deps/glslang-new/Test/baseResults/300link3.frag.out deleted file mode 100644 index e6114c5fab..0000000000 --- a/deps/glslang-new/Test/baseResults/300link3.frag.out +++ /dev/null @@ -1,19 +0,0 @@ -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-new/Test/baseResults/300operations.frag.out b/deps/glslang-new/Test/baseResults/300operations.frag.out deleted file mode 100644 index 27772cb2bb..0000000000 --- a/deps/glslang-new/Test/baseResults/300operations.frag.out +++ /dev/null @@ -1,420 +0,0 @@ -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-new/Test/baseResults/300scope.vert.out b/deps/glslang-new/Test/baseResults/300scope.vert.out deleted file mode 100644 index 5a12020ef4..0000000000 --- a/deps/glslang-new/Test/baseResults/300scope.vert.out +++ /dev/null @@ -1,231 +0,0 @@ -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-new/Test/baseResults/310.comp.out b/deps/glslang-new/Test/baseResults/310.comp.out deleted file mode 100644 index 5a926f67fe..0000000000 --- a/deps/glslang-new/Test/baseResults/310.comp.out +++ /dev/null @@ -1,616 +0,0 @@ -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-new/Test/baseResults/310.frag.out b/deps/glslang-new/Test/baseResults/310.frag.out deleted file mode 100644 index 6763c0a1e7..0000000000 --- a/deps/glslang-new/Test/baseResults/310.frag.out +++ /dev/null @@ -1,1237 +0,0 @@ -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-new/Test/baseResults/310.geom.out b/deps/glslang-new/Test/baseResults/310.geom.out deleted file mode 100644 index b0dabc3b20..0000000000 --- a/deps/glslang-new/Test/baseResults/310.geom.out +++ /dev/null @@ -1,277 +0,0 @@ -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-new/Test/baseResults/310.tesc.out b/deps/glslang-new/Test/baseResults/310.tesc.out deleted file mode 100644 index 433a7dc15d..0000000000 --- a/deps/glslang-new/Test/baseResults/310.tesc.out +++ /dev/null @@ -1,542 +0,0 @@ -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-new/Test/baseResults/310.tese.out b/deps/glslang-new/Test/baseResults/310.tese.out deleted file mode 100644 index 9c7c679daf..0000000000 --- a/deps/glslang-new/Test/baseResults/310.tese.out +++ /dev/null @@ -1,300 +0,0 @@ -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-new/Test/baseResults/310.vert.out b/deps/glslang-new/Test/baseResults/310.vert.out deleted file mode 100644 index 21fa27b90f..0000000000 --- a/deps/glslang-new/Test/baseResults/310.vert.out +++ /dev/null @@ -1,1272 +0,0 @@ -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-new/Test/baseResults/310AofA.vert.out b/deps/glslang-new/Test/baseResults/310AofA.vert.out deleted file mode 100644 index 451cc0b458..0000000000 --- a/deps/glslang-new/Test/baseResults/310AofA.vert.out +++ /dev/null @@ -1,394 +0,0 @@ -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-new/Test/baseResults/310implicitSizeArrayError.vert.out b/deps/glslang-new/Test/baseResults/310implicitSizeArrayError.vert.out deleted file mode 100644 index 6975cde230..0000000000 --- a/deps/glslang-new/Test/baseResults/310implicitSizeArrayError.vert.out +++ /dev/null @@ -1,49 +0,0 @@ -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-new/Test/baseResults/330.frag.out b/deps/glslang-new/Test/baseResults/330.frag.out deleted file mode 100644 index 774563125c..0000000000 --- a/deps/glslang-new/Test/baseResults/330.frag.out +++ /dev/null @@ -1,194 +0,0 @@ -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-new/Test/baseResults/330comp.frag.out b/deps/glslang-new/Test/baseResults/330comp.frag.out deleted file mode 100644 index 1b8ded125e..0000000000 --- a/deps/glslang-new/Test/baseResults/330comp.frag.out +++ /dev/null @@ -1,48 +0,0 @@ -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-new/Test/baseResults/400.frag.out b/deps/glslang-new/Test/baseResults/400.frag.out deleted file mode 100644 index 90f73dc723..0000000000 --- a/deps/glslang-new/Test/baseResults/400.frag.out +++ /dev/null @@ -1,728 +0,0 @@ -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-new/Test/baseResults/400.geom.out b/deps/glslang-new/Test/baseResults/400.geom.out deleted file mode 100644 index 52ebebcedb..0000000000 --- a/deps/glslang-new/Test/baseResults/400.geom.out +++ /dev/null @@ -1,1091 +0,0 @@ -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-new/Test/baseResults/400.tesc.out b/deps/glslang-new/Test/baseResults/400.tesc.out deleted file mode 100644 index 0475741ffd..0000000000 --- a/deps/glslang-new/Test/baseResults/400.tesc.out +++ /dev/null @@ -1,400 +0,0 @@ -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-new/Test/baseResults/400.tese.out b/deps/glslang-new/Test/baseResults/400.tese.out deleted file mode 100644 index 9580e857ca..0000000000 --- a/deps/glslang-new/Test/baseResults/400.tese.out +++ /dev/null @@ -1,295 +0,0 @@ -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-new/Test/baseResults/400.vert.out b/deps/glslang-new/Test/baseResults/400.vert.out deleted file mode 100755 index 05f58e2d84..0000000000 --- a/deps/glslang-new/Test/baseResults/400.vert.out +++ /dev/null @@ -1,555 +0,0 @@ -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-new/Test/baseResults/410.geom.out b/deps/glslang-new/Test/baseResults/410.geom.out deleted file mode 100644 index ab5ad47285..0000000000 --- a/deps/glslang-new/Test/baseResults/410.geom.out +++ /dev/null @@ -1,82 +0,0 @@ -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-new/Test/baseResults/410.tesc.out b/deps/glslang-new/Test/baseResults/410.tesc.out deleted file mode 100644 index 0a397fdd4b..0000000000 --- a/deps/glslang-new/Test/baseResults/410.tesc.out +++ /dev/null @@ -1,30 +0,0 @@ -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-new/Test/baseResults/410.vert.out b/deps/glslang-new/Test/baseResults/410.vert.out deleted file mode 100755 index aacdf36c0f..0000000000 --- a/deps/glslang-new/Test/baseResults/410.vert.out +++ /dev/null @@ -1,27 +0,0 @@ -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-new/Test/baseResults/420.comp.out b/deps/glslang-new/Test/baseResults/420.comp.out deleted file mode 100755 index 4e091acff3..0000000000 --- a/deps/glslang-new/Test/baseResults/420.comp.out +++ /dev/null @@ -1,121 +0,0 @@ -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-new/Test/baseResults/420.frag.out b/deps/glslang-new/Test/baseResults/420.frag.out deleted file mode 100644 index ffb8f6d283..0000000000 --- a/deps/glslang-new/Test/baseResults/420.frag.out +++ /dev/null @@ -1,42 +0,0 @@ -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-new/Test/baseResults/420.geom.out b/deps/glslang-new/Test/baseResults/420.geom.out deleted file mode 100644 index 6bf6eb3792..0000000000 --- a/deps/glslang-new/Test/baseResults/420.geom.out +++ /dev/null @@ -1,152 +0,0 @@ -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-new/Test/baseResults/420.tesc.out b/deps/glslang-new/Test/baseResults/420.tesc.out deleted file mode 100644 index a1f881cb19..0000000000 --- a/deps/glslang-new/Test/baseResults/420.tesc.out +++ /dev/null @@ -1,194 +0,0 @@ -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-new/Test/baseResults/420.tese.out b/deps/glslang-new/Test/baseResults/420.tese.out deleted file mode 100644 index 71fca85e7c..0000000000 --- a/deps/glslang-new/Test/baseResults/420.tese.out +++ /dev/null @@ -1,364 +0,0 @@ -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-new/Test/baseResults/420.vert.out b/deps/glslang-new/Test/baseResults/420.vert.out deleted file mode 100644 index 25bce16cc3..0000000000 --- a/deps/glslang-new/Test/baseResults/420.vert.out +++ /dev/null @@ -1,390 +0,0 @@ -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-new/Test/baseResults/420_size_gl_in.geom.out b/deps/glslang-new/Test/baseResults/420_size_gl_in.geom.out deleted file mode 100644 index 9d95495b47..0000000000 --- a/deps/glslang-new/Test/baseResults/420_size_gl_in.geom.out +++ /dev/null @@ -1,56 +0,0 @@ -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-new/Test/baseResults/430.comp.out b/deps/glslang-new/Test/baseResults/430.comp.out deleted file mode 100644 index 599cd8e3e0..0000000000 --- a/deps/glslang-new/Test/baseResults/430.comp.out +++ /dev/null @@ -1,209 +0,0 @@ -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-new/Test/baseResults/430.vert.out b/deps/glslang-new/Test/baseResults/430.vert.out deleted file mode 100644 index 29ffb01aa8..0000000000 --- a/deps/glslang-new/Test/baseResults/430.vert.out +++ /dev/null @@ -1,340 +0,0 @@ -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-new/Test/baseResults/430scope.vert.out b/deps/glslang-new/Test/baseResults/430scope.vert.out deleted file mode 100644 index 973c21aa14..0000000000 --- a/deps/glslang-new/Test/baseResults/430scope.vert.out +++ /dev/null @@ -1,230 +0,0 @@ -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-new/Test/baseResults/440.frag.out b/deps/glslang-new/Test/baseResults/440.frag.out deleted file mode 100644 index 18e014f921..0000000000 --- a/deps/glslang-new/Test/baseResults/440.frag.out +++ /dev/null @@ -1,165 +0,0 @@ -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-new/Test/baseResults/440.vert.out b/deps/glslang-new/Test/baseResults/440.vert.out deleted file mode 100644 index 41796cb52a..0000000000 --- a/deps/glslang-new/Test/baseResults/440.vert.out +++ /dev/null @@ -1,245 +0,0 @@ -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-new/Test/baseResults/450.comp.out b/deps/glslang-new/Test/baseResults/450.comp.out deleted file mode 100644 index 4ae77ccaa0..0000000000 --- a/deps/glslang-new/Test/baseResults/450.comp.out +++ /dev/null @@ -1,24 +0,0 @@ -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-new/Test/baseResults/450.frag.out b/deps/glslang-new/Test/baseResults/450.frag.out deleted file mode 100644 index 9cbb4cbd08..0000000000 --- a/deps/glslang-new/Test/baseResults/450.frag.out +++ /dev/null @@ -1,285 +0,0 @@ -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-new/Test/baseResults/450.geom.out b/deps/glslang-new/Test/baseResults/450.geom.out deleted file mode 100644 index e75bf939ad..0000000000 --- a/deps/glslang-new/Test/baseResults/450.geom.out +++ /dev/null @@ -1,85 +0,0 @@ -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-new/Test/baseResults/450.tesc.out b/deps/glslang-new/Test/baseResults/450.tesc.out deleted file mode 100644 index b3f4e252d4..0000000000 --- a/deps/glslang-new/Test/baseResults/450.tesc.out +++ /dev/null @@ -1,74 +0,0 @@ -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-new/Test/baseResults/450.tese.out b/deps/glslang-new/Test/baseResults/450.tese.out deleted file mode 100644 index 796d6f1604..0000000000 --- a/deps/glslang-new/Test/baseResults/450.tese.out +++ /dev/null @@ -1,87 +0,0 @@ -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-new/Test/baseResults/450.vert.out b/deps/glslang-new/Test/baseResults/450.vert.out deleted file mode 100644 index 0f5f23136e..0000000000 --- a/deps/glslang-new/Test/baseResults/450.vert.out +++ /dev/null @@ -1,123 +0,0 @@ -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-new/Test/baseResults/Operations.frag.out b/deps/glslang-new/Test/baseResults/Operations.frag.out deleted file mode 100644 index 680eb26559..0000000000 --- a/deps/glslang-new/Test/baseResults/Operations.frag.out +++ /dev/null @@ -1,1151 +0,0 @@ -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-new/Test/baseResults/aggOps.frag.out b/deps/glslang-new/Test/baseResults/aggOps.frag.out deleted file mode 100644 index eba1bf78cf..0000000000 --- a/deps/glslang-new/Test/baseResults/aggOps.frag.out +++ /dev/null @@ -1,298 +0,0 @@ -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-new/Test/baseResults/always-discard.frag.out b/deps/glslang-new/Test/baseResults/always-discard.frag.out deleted file mode 100644 index 17cd443ec8..0000000000 --- a/deps/glslang-new/Test/baseResults/always-discard.frag.out +++ /dev/null @@ -1,239 +0,0 @@ -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-new/Test/baseResults/always-discard2.frag.out b/deps/glslang-new/Test/baseResults/always-discard2.frag.out deleted file mode 100644 index 3c7c06f374..0000000000 --- a/deps/glslang-new/Test/baseResults/always-discard2.frag.out +++ /dev/null @@ -1,121 +0,0 @@ -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-new/Test/baseResults/array.frag.out b/deps/glslang-new/Test/baseResults/array.frag.out deleted file mode 100644 index 2af9f27f71..0000000000 --- a/deps/glslang-new/Test/baseResults/array.frag.out +++ /dev/null @@ -1,480 +0,0 @@ -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-new/Test/baseResults/array100.frag.out b/deps/glslang-new/Test/baseResults/array100.frag.out deleted file mode 100644 index e6f9f8dc19..0000000000 --- a/deps/glslang-new/Test/baseResults/array100.frag.out +++ /dev/null @@ -1,273 +0,0 @@ -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-new/Test/baseResults/atomic_uint.frag.out b/deps/glslang-new/Test/baseResults/atomic_uint.frag.out deleted file mode 100644 index c705a063e8..0000000000 --- a/deps/glslang-new/Test/baseResults/atomic_uint.frag.out +++ /dev/null @@ -1,107 +0,0 @@ -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-new/Test/baseResults/conditionalDiscard.frag.out b/deps/glslang-new/Test/baseResults/conditionalDiscard.frag.out deleted file mode 100644 index 255d9c4dea..0000000000 --- a/deps/glslang-new/Test/baseResults/conditionalDiscard.frag.out +++ /dev/null @@ -1,63 +0,0 @@ -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-new/Test/baseResults/constErrors.frag.out b/deps/glslang-new/Test/baseResults/constErrors.frag.out deleted file mode 100644 index 0b2dc62f8a..0000000000 --- a/deps/glslang-new/Test/baseResults/constErrors.frag.out +++ /dev/null @@ -1,54 +0,0 @@ -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-new/Test/baseResults/constFold.frag.out b/deps/glslang-new/Test/baseResults/constFold.frag.out deleted file mode 100644 index 33cfcbafed..0000000000 --- a/deps/glslang-new/Test/baseResults/constFold.frag.out +++ /dev/null @@ -1,656 +0,0 @@ -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-new/Test/baseResults/conversion.frag.out b/deps/glslang-new/Test/baseResults/conversion.frag.out deleted file mode 100644 index 73875d1962..0000000000 --- a/deps/glslang-new/Test/baseResults/conversion.frag.out +++ /dev/null @@ -1,955 +0,0 @@ -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-new/Test/baseResults/cppIndent.vert.out b/deps/glslang-new/Test/baseResults/cppIndent.vert.out deleted file mode 100644 index 05eb244de0..0000000000 --- a/deps/glslang-new/Test/baseResults/cppIndent.vert.out +++ /dev/null @@ -1,84 +0,0 @@ -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-new/Test/baseResults/cppNest.vert.out b/deps/glslang-new/Test/baseResults/cppNest.vert.out deleted file mode 100644 index afd0370d07..0000000000 --- a/deps/glslang-new/Test/baseResults/cppNest.vert.out +++ /dev/null @@ -1,143 +0,0 @@ -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-new/Test/baseResults/cppSimple.vert.out b/deps/glslang-new/Test/baseResults/cppSimple.vert.out deleted file mode 100644 index 8da3ae67ad..0000000000 --- a/deps/glslang-new/Test/baseResults/cppSimple.vert.out +++ /dev/null @@ -1,303 +0,0 @@ -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-new/Test/baseResults/dataOut.frag.out b/deps/glslang-new/Test/baseResults/dataOut.frag.out deleted file mode 100644 index 789761692f..0000000000 --- a/deps/glslang-new/Test/baseResults/dataOut.frag.out +++ /dev/null @@ -1,35 +0,0 @@ -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-new/Test/baseResults/dataOutIndirect.frag.out b/deps/glslang-new/Test/baseResults/dataOutIndirect.frag.out deleted file mode 100644 index dbadb03ed7..0000000000 --- a/deps/glslang-new/Test/baseResults/dataOutIndirect.frag.out +++ /dev/null @@ -1,35 +0,0 @@ -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-new/Test/baseResults/decls.frag.out b/deps/glslang-new/Test/baseResults/decls.frag.out deleted file mode 100644 index 72ad11c4f7..0000000000 --- a/deps/glslang-new/Test/baseResults/decls.frag.out +++ /dev/null @@ -1,515 +0,0 @@ -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-new/Test/baseResults/deepRvalue.frag.out b/deps/glslang-new/Test/baseResults/deepRvalue.frag.out deleted file mode 100644 index a4fdf5a8ee..0000000000 --- a/deps/glslang-new/Test/baseResults/deepRvalue.frag.out +++ /dev/null @@ -1,285 +0,0 @@ -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-new/Test/baseResults/depthOut.frag.out b/deps/glslang-new/Test/baseResults/depthOut.frag.out deleted file mode 100644 index 91c1fc2075..0000000000 --- a/deps/glslang-new/Test/baseResults/depthOut.frag.out +++ /dev/null @@ -1,38 +0,0 @@ -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-new/Test/baseResults/discard-dce.frag.out b/deps/glslang-new/Test/baseResults/discard-dce.frag.out deleted file mode 100644 index 5f5e889455..0000000000 --- a/deps/glslang-new/Test/baseResults/discard-dce.frag.out +++ /dev/null @@ -1,239 +0,0 @@ -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-new/Test/baseResults/doWhileLoop.frag.out b/deps/glslang-new/Test/baseResults/doWhileLoop.frag.out deleted file mode 100644 index 5302cb98b4..0000000000 --- a/deps/glslang-new/Test/baseResults/doWhileLoop.frag.out +++ /dev/null @@ -1,65 +0,0 @@ -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-new/Test/baseResults/earlyReturnDiscard.frag.out b/deps/glslang-new/Test/baseResults/earlyReturnDiscard.frag.out deleted file mode 100644 index 8c9e4d9715..0000000000 --- a/deps/glslang-new/Test/baseResults/earlyReturnDiscard.frag.out +++ /dev/null @@ -1,257 +0,0 @@ -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-new/Test/baseResults/es-link1.frag.out b/deps/glslang-new/Test/baseResults/es-link1.frag.out deleted file mode 100644 index 8e662c3d79..0000000000 --- a/deps/glslang-new/Test/baseResults/es-link1.frag.out +++ /dev/null @@ -1,27 +0,0 @@ -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-new/Test/baseResults/flowControl.frag.out b/deps/glslang-new/Test/baseResults/flowControl.frag.out deleted file mode 100644 index 4f5fc8bcec..0000000000 --- a/deps/glslang-new/Test/baseResults/flowControl.frag.out +++ /dev/null @@ -1,81 +0,0 @@ -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-new/Test/baseResults/forLoop.frag.out b/deps/glslang-new/Test/baseResults/forLoop.frag.out deleted file mode 100644 index e6a151788e..0000000000 --- a/deps/glslang-new/Test/baseResults/forLoop.frag.out +++ /dev/null @@ -1,361 +0,0 @@ -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-new/Test/baseResults/forwardRef.frag.out b/deps/glslang-new/Test/baseResults/forwardRef.frag.out deleted file mode 100644 index 22e77c5b76..0000000000 --- a/deps/glslang-new/Test/baseResults/forwardRef.frag.out +++ /dev/null @@ -1,125 +0,0 @@ -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-new/Test/baseResults/functionCall.frag.out b/deps/glslang-new/Test/baseResults/functionCall.frag.out deleted file mode 100644 index 902208ff7c..0000000000 --- a/deps/glslang-new/Test/baseResults/functionCall.frag.out +++ /dev/null @@ -1,183 +0,0 @@ -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-new/Test/baseResults/functionSemantics.frag.out b/deps/glslang-new/Test/baseResults/functionSemantics.frag.out deleted file mode 100644 index d04e6e7adc..0000000000 --- a/deps/glslang-new/Test/baseResults/functionSemantics.frag.out +++ /dev/null @@ -1,401 +0,0 @@ -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-new/Test/baseResults/glspv.frag.out b/deps/glslang-new/Test/baseResults/glspv.frag.out deleted file mode 100755 index db752133c1..0000000000 --- a/deps/glslang-new/Test/baseResults/glspv.frag.out +++ /dev/null @@ -1,15 +0,0 @@ -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-new/Test/baseResults/hlsl.amend.frag.out b/deps/glslang-new/Test/baseResults/hlsl.amend.frag.out deleted file mode 100755 index fa4ad035d7..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.amend.frag.out +++ /dev/null @@ -1,257 +0,0 @@ -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-new/Test/baseResults/hlsl.array.flatten.frag.out b/deps/glslang-new/Test/baseResults/hlsl.array.flatten.frag.out deleted file mode 100644 index 4c8609c257..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.array.flatten.frag.out +++ /dev/null @@ -1,592 +0,0 @@ -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-new/Test/baseResults/hlsl.array.frag.out b/deps/glslang-new/Test/baseResults/hlsl.array.frag.out deleted file mode 100755 index 0f68e7cd55..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.array.frag.out +++ /dev/null @@ -1,475 +0,0 @@ -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-new/Test/baseResults/hlsl.array.multidim.frag.out b/deps/glslang-new/Test/baseResults/hlsl.array.multidim.frag.out deleted file mode 100644 index 59f64c0e49..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.array.multidim.frag.out +++ /dev/null @@ -1,224 +0,0 @@ -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-new/Test/baseResults/hlsl.assoc.frag.out b/deps/glslang-new/Test/baseResults/hlsl.assoc.frag.out deleted file mode 100755 index 562a863343..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.assoc.frag.out +++ /dev/null @@ -1,245 +0,0 @@ -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-new/Test/baseResults/hlsl.attribute.expression.comp.out b/deps/glslang-new/Test/baseResults/hlsl.attribute.expression.comp.out deleted file mode 100644 index 4bef5e764d..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.attribute.expression.comp.out +++ /dev/null @@ -1,152 +0,0 @@ -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-new/Test/baseResults/hlsl.attribute.frag.out b/deps/glslang-new/Test/baseResults/hlsl.attribute.frag.out deleted file mode 100755 index 44e963e0fd..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.attribute.frag.out +++ /dev/null @@ -1,99 +0,0 @@ -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-new/Test/baseResults/hlsl.basic.comp.out b/deps/glslang-new/Test/baseResults/hlsl.basic.comp.out deleted file mode 100755 index d84642e9a4..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.basic.comp.out +++ /dev/null @@ -1,132 +0,0 @@ -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-new/Test/baseResults/hlsl.basic.geom.out b/deps/glslang-new/Test/baseResults/hlsl.basic.geom.out deleted file mode 100644 index f4116d4e81..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.basic.geom.out +++ /dev/null @@ -1,309 +0,0 @@ -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-new/Test/baseResults/hlsl.buffer.frag.out b/deps/glslang-new/Test/baseResults/hlsl.buffer.frag.out deleted file mode 100755 index 8d2c514736..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.buffer.frag.out +++ /dev/null @@ -1,323 +0,0 @@ -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-new/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.calculatelod.dx10.frag.out deleted file mode 100644 index 46b4eea5c6..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ /dev/null @@ -1,580 +0,0 @@ -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-new/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out deleted file mode 100644 index 160c095864..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ /dev/null @@ -1,372 +0,0 @@ -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-new/Test/baseResults/hlsl.cast.frag.out b/deps/glslang-new/Test/baseResults/hlsl.cast.frag.out deleted file mode 100755 index 0aa11bead6..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.cast.frag.out +++ /dev/null @@ -1,127 +0,0 @@ -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-new/Test/baseResults/hlsl.comparison.vec.frag.out b/deps/glslang-new/Test/baseResults/hlsl.comparison.vec.frag.out deleted file mode 100644 index c7e4ed52b8..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.comparison.vec.frag.out +++ /dev/null @@ -1,416 +0,0 @@ -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-new/Test/baseResults/hlsl.conditional.frag.out b/deps/glslang-new/Test/baseResults/hlsl.conditional.frag.out deleted file mode 100755 index 90d9f79b34..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.conditional.frag.out +++ /dev/null @@ -1,797 +0,0 @@ -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-new/Test/baseResults/hlsl.constructexpr.frag.out b/deps/glslang-new/Test/baseResults/hlsl.constructexpr.frag.out deleted file mode 100644 index 227c7e1738..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.constructexpr.frag.out +++ /dev/null @@ -1,164 +0,0 @@ -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-new/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/deps/glslang-new/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out deleted file mode 100644 index 2bc08dabb8..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out +++ /dev/null @@ -1,33 +0,0 @@ -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-new/Test/baseResults/hlsl.depthGreater.frag.out b/deps/glslang-new/Test/baseResults/hlsl.depthGreater.frag.out deleted file mode 100755 index 9749371a50..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.depthGreater.frag.out +++ /dev/null @@ -1,95 +0,0 @@ -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-new/Test/baseResults/hlsl.depthLess.frag.out b/deps/glslang-new/Test/baseResults/hlsl.depthLess.frag.out deleted file mode 100755 index c3af8eeaee..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.depthLess.frag.out +++ /dev/null @@ -1,76 +0,0 @@ -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-new/Test/baseResults/hlsl.discard.frag.out b/deps/glslang-new/Test/baseResults/hlsl.discard.frag.out deleted file mode 100755 index cc7c866609..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.discard.frag.out +++ /dev/null @@ -1,191 +0,0 @@ -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-new/Test/baseResults/hlsl.doLoop.frag.out b/deps/glslang-new/Test/baseResults/hlsl.doLoop.frag.out deleted file mode 100755 index bb564658a2..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.doLoop.frag.out +++ /dev/null @@ -1,271 +0,0 @@ -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-new/Test/baseResults/hlsl.entry-in.frag.out b/deps/glslang-new/Test/baseResults/hlsl.entry-in.frag.out deleted file mode 100755 index dc9eea4af9..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.entry-in.frag.out +++ /dev/null @@ -1,286 +0,0 @@ -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-new/Test/baseResults/hlsl.entry-out.frag.out b/deps/glslang-new/Test/baseResults/hlsl.entry-out.frag.out deleted file mode 100755 index 6ca3011bba..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.entry-out.frag.out +++ /dev/null @@ -1,400 +0,0 @@ -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-new/Test/baseResults/hlsl.entry.rename.frag.out b/deps/glslang-new/Test/baseResults/hlsl.entry.rename.frag.out deleted file mode 100644 index 898eb4bd87..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.entry.rename.frag.out +++ /dev/null @@ -1,133 +0,0 @@ -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-new/Test/baseResults/hlsl.flatten.return.frag.out b/deps/glslang-new/Test/baseResults/hlsl.flatten.return.frag.out deleted file mode 100644 index e47fe3ebf0..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.flatten.return.frag.out +++ /dev/null @@ -1,200 +0,0 @@ -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-new/Test/baseResults/hlsl.forLoop.frag.out b/deps/glslang-new/Test/baseResults/hlsl.forLoop.frag.out deleted file mode 100755 index 3e835f80d4..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.forLoop.frag.out +++ /dev/null @@ -1,705 +0,0 @@ -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-new/Test/baseResults/hlsl.gather.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gather.array.dx10.frag.out deleted file mode 100644 index be4606a2b2..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ /dev/null @@ -1,453 +0,0 @@ -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-new/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gather.basic.dx10.frag.out deleted file mode 100644 index 8182ddebbf..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ /dev/null @@ -1,467 +0,0 @@ -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-new/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/deps/glslang-new/Test/baseResults/hlsl.gather.basic.dx10.vert.out deleted file mode 100644 index fe5611495b..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ /dev/null @@ -1,411 +0,0 @@ -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-new/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gather.offset.dx10.frag.out deleted file mode 100644 index ae816ddd82..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ /dev/null @@ -1,388 +0,0 @@ -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-new/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out deleted file mode 100644 index 8805232137..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ /dev/null @@ -1,353 +0,0 @@ -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-new/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out deleted file mode 100644 index 35b0a003c8..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ /dev/null @@ -1,1119 +0,0 @@ -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-new/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out deleted file mode 100644 index d0be6d5a2b..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ /dev/null @@ -1,1145 +0,0 @@ -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-new/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out deleted file mode 100644 index 49fda31a06..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ /dev/null @@ -1,1792 +0,0 @@ -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-new/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out deleted file mode 100644 index 9de1a97216..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ /dev/null @@ -1,1766 +0,0 @@ -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-new/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.getdimensions.dx10.frag.out deleted file mode 100644 index 599c65912d..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ /dev/null @@ -1,3197 +0,0 @@ -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-new/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/deps/glslang-new/Test/baseResults/hlsl.getdimensions.dx10.vert.out deleted file mode 100644 index cccdfeb247..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ /dev/null @@ -1,200 +0,0 @@ -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-new/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out deleted file mode 100644 index 0b9a674099..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out +++ /dev/null @@ -1,1117 +0,0 @@ -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-new/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.getsampleposition.dx10.frag.out deleted file mode 100644 index 51bd076937..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ /dev/null @@ -1,846 +0,0 @@ -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-new/Test/baseResults/hlsl.identifier.sample.frag.out b/deps/glslang-new/Test/baseResults/hlsl.identifier.sample.frag.out deleted file mode 100644 index a23451ec19..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.identifier.sample.frag.out +++ /dev/null @@ -1,139 +0,0 @@ -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-new/Test/baseResults/hlsl.if.frag.out b/deps/glslang-new/Test/baseResults/hlsl.if.frag.out deleted file mode 100755 index 056b672e30..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.if.frag.out +++ /dev/null @@ -1,370 +0,0 @@ -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-new/Test/baseResults/hlsl.init.frag.out b/deps/glslang-new/Test/baseResults/hlsl.init.frag.out deleted file mode 100755 index 9fc816ce29..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.init.frag.out +++ /dev/null @@ -1,530 +0,0 @@ -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-new/Test/baseResults/hlsl.init2.frag.out b/deps/glslang-new/Test/baseResults/hlsl.init2.frag.out deleted file mode 100644 index 9e03de3a9c..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.init2.frag.out +++ /dev/null @@ -1,531 +0,0 @@ -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-new/Test/baseResults/hlsl.inoutquals.frag.out b/deps/glslang-new/Test/baseResults/hlsl.inoutquals.frag.out deleted file mode 100644 index 42adb1a81a..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.inoutquals.frag.out +++ /dev/null @@ -1,375 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.barriers.comp.out deleted file mode 100644 index 13fe578073..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ /dev/null @@ -1,96 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.comp.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.comp.out deleted file mode 100644 index a5b543cb2b..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.comp.out +++ /dev/null @@ -1,1102 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.double.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.double.frag.out deleted file mode 100644 index 55a102f551..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.double.frag.out +++ /dev/null @@ -1,339 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.evalfns.frag.out deleted file mode 100644 index e7865627ee..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ /dev/null @@ -1,286 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.f1632.frag.out deleted file mode 100644 index c5619efa55..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ /dev/null @@ -1,389 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.frag.out deleted file mode 100644 index b7d71394f8..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.frag.out +++ /dev/null @@ -1,8458 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.lit.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.lit.frag.out deleted file mode 100644 index 8b1454b872..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ /dev/null @@ -1,204 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.negative.comp.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.negative.comp.out deleted file mode 100644 index 97d67198ea..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ /dev/null @@ -1,343 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.negative.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.negative.frag.out deleted file mode 100644 index 980cc96d02..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ /dev/null @@ -1,986 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.negative.vert.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.negative.vert.out deleted file mode 100644 index c2711c657e..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ /dev/null @@ -1,550 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.promote.down.frag.out deleted file mode 100644 index a561dfe9a0..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.promote.down.frag.out +++ /dev/null @@ -1,198 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.promote.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.promote.frag.out deleted file mode 100644 index b064295a4e..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.promote.frag.out +++ /dev/null @@ -1,1328 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out deleted file mode 100644 index 57dfafc47f..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out +++ /dev/null @@ -1,354 +0,0 @@ -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-new/Test/baseResults/hlsl.intrinsics.vert.out b/deps/glslang-new/Test/baseResults/hlsl.intrinsics.vert.out deleted file mode 100644 index 8e7e3ec618..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.intrinsics.vert.out +++ /dev/null @@ -1,4196 +0,0 @@ -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-new/Test/baseResults/hlsl.layout.frag.out b/deps/glslang-new/Test/baseResults/hlsl.layout.frag.out deleted file mode 100755 index 010c2ecd40..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.layout.frag.out +++ /dev/null @@ -1,171 +0,0 @@ -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-new/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.2dms.dx10.frag.out deleted file mode 100644 index 2acf3d473d..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ /dev/null @@ -1,552 +0,0 @@ -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-new/Test/baseResults/hlsl.load.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.array.dx10.frag.out deleted file mode 100644 index dd665edfa9..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.array.dx10.frag.out +++ /dev/null @@ -1,643 +0,0 @@ -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-new/Test/baseResults/hlsl.load.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.basic.dx10.frag.out deleted file mode 100644 index bcfb977b19..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ /dev/null @@ -1,765 +0,0 @@ -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-new/Test/baseResults/hlsl.load.basic.dx10.vert.out b/deps/glslang-new/Test/baseResults/hlsl.load.basic.dx10.vert.out deleted file mode 100644 index 163899168e..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ /dev/null @@ -1,710 +0,0 @@ -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-new/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.buffer.dx10.frag.out deleted file mode 100644 index 21e5d30402..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ /dev/null @@ -1,302 +0,0 @@ -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-new/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out deleted file mode 100644 index d951d093b0..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ /dev/null @@ -1,311 +0,0 @@ -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-new/Test/baseResults/hlsl.load.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.offset.dx10.frag.out deleted file mode 100644 index d59ff6ff45..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ /dev/null @@ -1,860 +0,0 @@ -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-new/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out deleted file mode 100644 index b472462aa5..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ /dev/null @@ -1,707 +0,0 @@ -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-new/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out deleted file mode 100644 index f134901271..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out +++ /dev/null @@ -1,214 +0,0 @@ -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-new/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out deleted file mode 100644 index de31ee0246..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out +++ /dev/null @@ -1,410 +0,0 @@ -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-new/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out deleted file mode 100644 index 68044aa587..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out +++ /dev/null @@ -1,459 +0,0 @@ -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-new/Test/baseResults/hlsl.logical.binary.frag.out b/deps/glslang-new/Test/baseResults/hlsl.logical.binary.frag.out deleted file mode 100644 index b90811bd6a..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.logical.binary.frag.out +++ /dev/null @@ -1,218 +0,0 @@ -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-new/Test/baseResults/hlsl.logical.binary.vec.frag.out b/deps/glslang-new/Test/baseResults/hlsl.logical.binary.vec.frag.out deleted file mode 100644 index 32753e5c2f..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.logical.binary.vec.frag.out +++ /dev/null @@ -1,415 +0,0 @@ -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-new/Test/baseResults/hlsl.logical.unary.frag.out b/deps/glslang-new/Test/baseResults/hlsl.logical.unary.frag.out deleted file mode 100644 index 25dbc2ad53..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.logical.unary.frag.out +++ /dev/null @@ -1,312 +0,0 @@ -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-new/Test/baseResults/hlsl.matNx1.frag.out b/deps/glslang-new/Test/baseResults/hlsl.matNx1.frag.out deleted file mode 100644 index 109362e458..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.matNx1.frag.out +++ /dev/null @@ -1,275 +0,0 @@ -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-new/Test/baseResults/hlsl.matType.bool.frag.out b/deps/glslang-new/Test/baseResults/hlsl.matType.bool.frag.out deleted file mode 100644 index 82575b04ad..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.matType.bool.frag.out +++ /dev/null @@ -1,433 +0,0 @@ -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-new/Test/baseResults/hlsl.matType.int.frag.out b/deps/glslang-new/Test/baseResults/hlsl.matType.int.frag.out deleted file mode 100644 index b8d29ac052..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.matType.int.frag.out +++ /dev/null @@ -1,752 +0,0 @@ -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-new/Test/baseResults/hlsl.matrixindex.frag.out b/deps/glslang-new/Test/baseResults/hlsl.matrixindex.frag.out deleted file mode 100644 index 63e5614ef5..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.matrixindex.frag.out +++ /dev/null @@ -1,421 +0,0 @@ -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-new/Test/baseResults/hlsl.max.frag.out b/deps/glslang-new/Test/baseResults/hlsl.max.frag.out deleted file mode 100755 index db215a2c00..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.max.frag.out +++ /dev/null @@ -1,129 +0,0 @@ -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-new/Test/baseResults/hlsl.mintypes.frag.out b/deps/glslang-new/Test/baseResults/hlsl.mintypes.frag.out deleted file mode 100644 index 8722cf275b..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.mintypes.frag.out +++ /dev/null @@ -1,238 +0,0 @@ -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-new/Test/baseResults/hlsl.multiEntry.vert.out b/deps/glslang-new/Test/baseResults/hlsl.multiEntry.vert.out deleted file mode 100755 index 1c7711882e..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.multiEntry.vert.out +++ /dev/null @@ -1,140 +0,0 @@ -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-new/Test/baseResults/hlsl.multiReturn.frag.out b/deps/glslang-new/Test/baseResults/hlsl.multiReturn.frag.out deleted file mode 100755 index 695a52c696..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.multiReturn.frag.out +++ /dev/null @@ -1,128 +0,0 @@ -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-new/Test/baseResults/hlsl.numericsuffixes.frag.out b/deps/glslang-new/Test/baseResults/hlsl.numericsuffixes.frag.out deleted file mode 100644 index b1fa856faa..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.numericsuffixes.frag.out +++ /dev/null @@ -1,292 +0,0 @@ -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-new/Test/baseResults/hlsl.numthreads.comp.out b/deps/glslang-new/Test/baseResults/hlsl.numthreads.comp.out deleted file mode 100644 index fd7de34b17..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.numthreads.comp.out +++ /dev/null @@ -1,93 +0,0 @@ -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-new/Test/baseResults/hlsl.overload.frag.out b/deps/glslang-new/Test/baseResults/hlsl.overload.frag.out deleted file mode 100755 index 5960d3d589..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.overload.frag.out +++ /dev/null @@ -1,1625 +0,0 @@ -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-new/Test/baseResults/hlsl.partialInit.frag.out b/deps/glslang-new/Test/baseResults/hlsl.partialInit.frag.out deleted file mode 100755 index 350a745724..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.partialInit.frag.out +++ /dev/null @@ -1,567 +0,0 @@ -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-new/Test/baseResults/hlsl.pp.line.frag.out b/deps/glslang-new/Test/baseResults/hlsl.pp.line.frag.out deleted file mode 100644 index 2c06fe91f8..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.pp.line.frag.out +++ /dev/null @@ -1,192 +0,0 @@ -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-new/Test/baseResults/hlsl.precedence.frag.out b/deps/glslang-new/Test/baseResults/hlsl.precedence.frag.out deleted file mode 100755 index f4c53389d7..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.precedence.frag.out +++ /dev/null @@ -1,257 +0,0 @@ -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-new/Test/baseResults/hlsl.precedence2.frag.out b/deps/glslang-new/Test/baseResults/hlsl.precedence2.frag.out deleted file mode 100755 index 9ce674d6b9..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.precedence2.frag.out +++ /dev/null @@ -1,218 +0,0 @@ -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-new/Test/baseResults/hlsl.precise.frag.out b/deps/glslang-new/Test/baseResults/hlsl.precise.frag.out deleted file mode 100644 index dd450690a0..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.precise.frag.out +++ /dev/null @@ -1,139 +0,0 @@ -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-new/Test/baseResults/hlsl.promote.atomic.frag.out b/deps/glslang-new/Test/baseResults/hlsl.promote.atomic.frag.out deleted file mode 100644 index ecc188b1c3..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.promote.atomic.frag.out +++ /dev/null @@ -1,123 +0,0 @@ -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-new/Test/baseResults/hlsl.promote.binary.frag.out b/deps/glslang-new/Test/baseResults/hlsl.promote.binary.frag.out deleted file mode 100644 index e1931af1ac..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.promote.binary.frag.out +++ /dev/null @@ -1,294 +0,0 @@ -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-new/Test/baseResults/hlsl.promote.vec1.frag.out b/deps/glslang-new/Test/baseResults/hlsl.promote.vec1.frag.out deleted file mode 100644 index b92d740904..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.promote.vec1.frag.out +++ /dev/null @@ -1,132 +0,0 @@ -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-new/Test/baseResults/hlsl.promotions.frag.out b/deps/glslang-new/Test/baseResults/hlsl.promotions.frag.out deleted file mode 100644 index 9c08948421..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.promotions.frag.out +++ /dev/null @@ -1,2381 +0,0 @@ -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-new/Test/baseResults/hlsl.rw.atomics.frag.out b/deps/glslang-new/Test/baseResults/hlsl.rw.atomics.frag.out deleted file mode 100644 index c874cd23ce..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.rw.atomics.frag.out +++ /dev/null @@ -1,5275 +0,0 @@ -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-new/Test/baseResults/hlsl.rw.bracket.frag.out b/deps/glslang-new/Test/baseResults/hlsl.rw.bracket.frag.out deleted file mode 100644 index d829a7bcd7..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.rw.bracket.frag.out +++ /dev/null @@ -1,2665 +0,0 @@ -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-new/Test/baseResults/hlsl.rw.register.frag.out b/deps/glslang-new/Test/baseResults/hlsl.rw.register.frag.out deleted file mode 100644 index 01f6c89c45..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.rw.register.frag.out +++ /dev/null @@ -1,172 +0,0 @@ -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-new/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/deps/glslang-new/Test/baseResults/hlsl.rw.scalar.bracket.frag.out deleted file mode 100644 index 7fc26cc7cb..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.rw.scalar.bracket.frag.out +++ /dev/null @@ -1,2574 +0,0 @@ -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-new/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/deps/glslang-new/Test/baseResults/hlsl.rw.vec2.bracket.frag.out deleted file mode 100644 index bf1fe0889b..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.rw.vec2.bracket.frag.out +++ /dev/null @@ -1,2627 +0,0 @@ -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-new/Test/baseResults/hlsl.sample.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.sample.array.dx10.frag.out deleted file mode 100644 index 92e3dd84e7..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ /dev/null @@ -1,541 +0,0 @@ -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-new/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.sample.basic.dx10.frag.out deleted file mode 100644 index b6915b6aa3..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ /dev/null @@ -1,862 +0,0 @@ -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-new/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.sample.offset.dx10.frag.out deleted file mode 100644 index bd199a3957..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ /dev/null @@ -1,603 +0,0 @@ -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-new/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out deleted file mode 100644 index 065cef0585..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ /dev/null @@ -1,452 +0,0 @@ -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-new/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out deleted file mode 100644 index f24415a982..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out +++ /dev/null @@ -1,266 +0,0 @@ -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-new/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplebias.array.dx10.frag.out deleted file mode 100644 index a6fc0a5a2b..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ /dev/null @@ -1,577 +0,0 @@ -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-new/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out deleted file mode 100644 index 21794f9ff6..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ /dev/null @@ -1,678 +0,0 @@ -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-new/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out deleted file mode 100644 index 73d69dcb3d..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ /dev/null @@ -1,639 +0,0 @@ -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-new/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out deleted file mode 100644 index 0a7a66b2e5..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ /dev/null @@ -1,476 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out deleted file mode 100644 index f8f20ca250..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ /dev/null @@ -1,701 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out deleted file mode 100644 index 9862297fbd..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ /dev/null @@ -1,672 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out deleted file mode 100644 index f0ba44492e..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ /dev/null @@ -1,581 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out deleted file mode 100644 index ae6078cac7..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ /dev/null @@ -1,604 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out deleted file mode 100644 index ae5b118963..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ /dev/null @@ -1,738 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out deleted file mode 100644 index 53ecbf2e06..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ /dev/null @@ -1,709 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out deleted file mode 100644 index 1d4f2cdec4..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ /dev/null @@ -1,606 +0,0 @@ -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-new/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out deleted file mode 100644 index dea6663377..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ /dev/null @@ -1,629 +0,0 @@ -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-new/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out deleted file mode 100644 index 81a92a230a..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ /dev/null @@ -1,643 +0,0 @@ -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-new/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out deleted file mode 100644 index 3acd9afe10..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ /dev/null @@ -1,791 +0,0 @@ -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-new/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/deps/glslang-new/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out deleted file mode 100644 index d787939b75..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ /dev/null @@ -1,735 +0,0 @@ -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-new/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out deleted file mode 100644 index b5a8549334..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ /dev/null @@ -1,716 +0,0 @@ -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-new/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out deleted file mode 100644 index 39a28389ed..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ /dev/null @@ -1,527 +0,0 @@ -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-new/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out deleted file mode 100644 index 0151cdd378..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ /dev/null @@ -1,578 +0,0 @@ -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-new/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out deleted file mode 100644 index 9327b844af..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ /dev/null @@ -1,684 +0,0 @@ -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-new/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/deps/glslang-new/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out deleted file mode 100644 index d2bd1b8754..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ /dev/null @@ -1,623 +0,0 @@ -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-new/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out deleted file mode 100644 index 36c932c838..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ /dev/null @@ -1,640 +0,0 @@ -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-new/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/deps/glslang-new/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out deleted file mode 100644 index bc6fd6b410..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ /dev/null @@ -1,477 +0,0 @@ -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-new/Test/baseResults/hlsl.scope.frag.out b/deps/glslang-new/Test/baseResults/hlsl.scope.frag.out deleted file mode 100755 index b563380e17..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.scope.frag.out +++ /dev/null @@ -1,191 +0,0 @@ -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-new/Test/baseResults/hlsl.semicolons.frag.out b/deps/glslang-new/Test/baseResults/hlsl.semicolons.frag.out deleted file mode 100644 index 94307a6a61..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.semicolons.frag.out +++ /dev/null @@ -1,131 +0,0 @@ -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-new/Test/baseResults/hlsl.shapeConv.frag.out b/deps/glslang-new/Test/baseResults/hlsl.shapeConv.frag.out deleted file mode 100755 index d283809925..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.shapeConv.frag.out +++ /dev/null @@ -1,489 +0,0 @@ -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-new/Test/baseResults/hlsl.shapeConvRet.frag.out b/deps/glslang-new/Test/baseResults/hlsl.shapeConvRet.frag.out deleted file mode 100755 index fc12f7f076..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.shapeConvRet.frag.out +++ /dev/null @@ -1,127 +0,0 @@ -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-new/Test/baseResults/hlsl.sin.frag.out b/deps/glslang-new/Test/baseResults/hlsl.sin.frag.out deleted file mode 100755 index b92085e41d..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.sin.frag.out +++ /dev/null @@ -1,101 +0,0 @@ -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-new/Test/baseResults/hlsl.string.frag.out b/deps/glslang-new/Test/baseResults/hlsl.string.frag.out deleted file mode 100755 index 9181b933aa..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.string.frag.out +++ /dev/null @@ -1,97 +0,0 @@ -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-new/Test/baseResults/hlsl.stringtoken.frag.out b/deps/glslang-new/Test/baseResults/hlsl.stringtoken.frag.out deleted file mode 100644 index 82033cf365..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.stringtoken.frag.out +++ /dev/null @@ -1,132 +0,0 @@ -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-new/Test/baseResults/hlsl.struct.frag.out b/deps/glslang-new/Test/baseResults/hlsl.struct.frag.out deleted file mode 100755 index bd216c8e31..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.struct.frag.out +++ /dev/null @@ -1,413 +0,0 @@ -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-new/Test/baseResults/hlsl.structarray.flatten.frag.out b/deps/glslang-new/Test/baseResults/hlsl.structarray.flatten.frag.out deleted file mode 100644 index 411f155876..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.structarray.flatten.frag.out +++ /dev/null @@ -1,301 +0,0 @@ -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-new/Test/baseResults/hlsl.structarray.flatten.geom.out b/deps/glslang-new/Test/baseResults/hlsl.structarray.flatten.geom.out deleted file mode 100644 index f88118d624..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.structarray.flatten.geom.out +++ /dev/null @@ -1,279 +0,0 @@ -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-new/Test/baseResults/hlsl.structin.vert.out b/deps/glslang-new/Test/baseResults/hlsl.structin.vert.out deleted file mode 100755 index d7f539d0c4..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.structin.vert.out +++ /dev/null @@ -1,499 +0,0 @@ -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-new/Test/baseResults/hlsl.switch.frag.out b/deps/glslang-new/Test/baseResults/hlsl.switch.frag.out deleted file mode 100755 index b72891ea5a..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.switch.frag.out +++ /dev/null @@ -1,469 +0,0 @@ -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-new/Test/baseResults/hlsl.templatetypes.frag.out b/deps/glslang-new/Test/baseResults/hlsl.templatetypes.frag.out deleted file mode 100644 index 3fc5846aeb..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.templatetypes.frag.out +++ /dev/null @@ -1,734 +0,0 @@ -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-new/Test/baseResults/hlsl.tx.bracket.frag.out b/deps/glslang-new/Test/baseResults/hlsl.tx.bracket.frag.out deleted file mode 100644 index 400beb611c..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.tx.bracket.frag.out +++ /dev/null @@ -1,716 +0,0 @@ -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-new/Test/baseResults/hlsl.void.frag.out b/deps/glslang-new/Test/baseResults/hlsl.void.frag.out deleted file mode 100755 index 30edd633c8..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.void.frag.out +++ /dev/null @@ -1,108 +0,0 @@ -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-new/Test/baseResults/hlsl.whileLoop.frag.out b/deps/glslang-new/Test/baseResults/hlsl.whileLoop.frag.out deleted file mode 100755 index babc77dfd7..0000000000 --- a/deps/glslang-new/Test/baseResults/hlsl.whileLoop.frag.out +++ /dev/null @@ -1,196 +0,0 @@ -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-new/Test/baseResults/length.frag.out b/deps/glslang-new/Test/baseResults/length.frag.out deleted file mode 100644 index bfd5bf0ef1..0000000000 --- a/deps/glslang-new/Test/baseResults/length.frag.out +++ /dev/null @@ -1,61 +0,0 @@ -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-new/Test/baseResults/lineContinuation.vert.out b/deps/glslang-new/Test/baseResults/lineContinuation.vert.out deleted file mode 100644 index 9faa420b36..0000000000 --- a/deps/glslang-new/Test/baseResults/lineContinuation.vert.out +++ /dev/null @@ -1,280 +0,0 @@ -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-new/Test/baseResults/link1.frag.out b/deps/glslang-new/Test/baseResults/link1.frag.out deleted file mode 100644 index 2ea63ad5fb..0000000000 --- a/deps/glslang-new/Test/baseResults/link1.frag.out +++ /dev/null @@ -1,162 +0,0 @@ -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-new/Test/baseResults/localAggregates.frag.out b/deps/glslang-new/Test/baseResults/localAggregates.frag.out deleted file mode 100644 index ca445bccd3..0000000000 --- a/deps/glslang-new/Test/baseResults/localAggregates.frag.out +++ /dev/null @@ -1,414 +0,0 @@ -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-new/Test/baseResults/loops.frag.out b/deps/glslang-new/Test/baseResults/loops.frag.out deleted file mode 100644 index cf382995d1..0000000000 --- a/deps/glslang-new/Test/baseResults/loops.frag.out +++ /dev/null @@ -1,1935 +0,0 @@ -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-new/Test/baseResults/loopsArtificial.frag.out b/deps/glslang-new/Test/baseResults/loopsArtificial.frag.out deleted file mode 100644 index 0bb61c9a4b..0000000000 --- a/deps/glslang-new/Test/baseResults/loopsArtificial.frag.out +++ /dev/null @@ -1,433 +0,0 @@ -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-new/Test/baseResults/matrix.frag.out b/deps/glslang-new/Test/baseResults/matrix.frag.out deleted file mode 100644 index f3bea4b226..0000000000 --- a/deps/glslang-new/Test/baseResults/matrix.frag.out +++ /dev/null @@ -1,507 +0,0 @@ -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-new/Test/baseResults/matrix2.frag.out b/deps/glslang-new/Test/baseResults/matrix2.frag.out deleted file mode 100644 index 3e3b3f06a3..0000000000 --- a/deps/glslang-new/Test/baseResults/matrix2.frag.out +++ /dev/null @@ -1,353 +0,0 @@ -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-new/Test/baseResults/matrixError.vert.out b/deps/glslang-new/Test/baseResults/matrixError.vert.out deleted file mode 100644 index 0a0d1e4022..0000000000 --- a/deps/glslang-new/Test/baseResults/matrixError.vert.out +++ /dev/null @@ -1,77 +0,0 @@ -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-new/Test/baseResults/maxClipDistances.vert.out b/deps/glslang-new/Test/baseResults/maxClipDistances.vert.out deleted file mode 100644 index 8086d52475..0000000000 --- a/deps/glslang-new/Test/baseResults/maxClipDistances.vert.out +++ /dev/null @@ -1,21 +0,0 @@ -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-new/Test/baseResults/max_vertices_0.geom.out b/deps/glslang-new/Test/baseResults/max_vertices_0.geom.out deleted file mode 100644 index d3bb4eee4b..0000000000 --- a/deps/glslang-new/Test/baseResults/max_vertices_0.geom.out +++ /dev/null @@ -1,35 +0,0 @@ -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-new/Test/baseResults/missingBodies.vert.out b/deps/glslang-new/Test/baseResults/missingBodies.vert.out deleted file mode 100755 index 3a9a99f6c2..0000000000 --- a/deps/glslang-new/Test/baseResults/missingBodies.vert.out +++ /dev/null @@ -1,96 +0,0 @@ -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-new/Test/baseResults/newTexture.frag.out b/deps/glslang-new/Test/baseResults/newTexture.frag.out deleted file mode 100644 index 52921e8fc1..0000000000 --- a/deps/glslang-new/Test/baseResults/newTexture.frag.out +++ /dev/null @@ -1,521 +0,0 @@ -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-new/Test/baseResults/nonSquare.vert.out b/deps/glslang-new/Test/baseResults/nonSquare.vert.out deleted file mode 100644 index aa8a8273ba..0000000000 --- a/deps/glslang-new/Test/baseResults/nonSquare.vert.out +++ /dev/null @@ -1,183 +0,0 @@ -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-new/Test/baseResults/numeral.frag.out b/deps/glslang-new/Test/baseResults/numeral.frag.out deleted file mode 100644 index b7c0a78b72..0000000000 --- a/deps/glslang-new/Test/baseResults/numeral.frag.out +++ /dev/null @@ -1,832 +0,0 @@ -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-new/Test/baseResults/pointCoord.frag.out b/deps/glslang-new/Test/baseResults/pointCoord.frag.out deleted file mode 100644 index f55f9bc44c..0000000000 --- a/deps/glslang-new/Test/baseResults/pointCoord.frag.out +++ /dev/null @@ -1,69 +0,0 @@ -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-new/Test/baseResults/precise.tesc.out b/deps/glslang-new/Test/baseResults/precise.tesc.out deleted file mode 100644 index abe56f7509..0000000000 --- a/deps/glslang-new/Test/baseResults/precise.tesc.out +++ /dev/null @@ -1,396 +0,0 @@ -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-new/Test/baseResults/precise_struct_block.vert.out b/deps/glslang-new/Test/baseResults/precise_struct_block.vert.out deleted file mode 100644 index a239e95de2..0000000000 --- a/deps/glslang-new/Test/baseResults/precise_struct_block.vert.out +++ /dev/null @@ -1,534 +0,0 @@ -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-new/Test/baseResults/precision.frag.out b/deps/glslang-new/Test/baseResults/precision.frag.out deleted file mode 100644 index 7174049fca..0000000000 --- a/deps/glslang-new/Test/baseResults/precision.frag.out +++ /dev/null @@ -1,233 +0,0 @@ -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-new/Test/baseResults/precision.vert.out b/deps/glslang-new/Test/baseResults/precision.vert.out deleted file mode 100644 index 04ceb3a63f..0000000000 --- a/deps/glslang-new/Test/baseResults/precision.vert.out +++ /dev/null @@ -1,99 +0,0 @@ -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-new/Test/baseResults/prepost.frag.out b/deps/glslang-new/Test/baseResults/prepost.frag.out deleted file mode 100644 index d5f73b6d7a..0000000000 --- a/deps/glslang-new/Test/baseResults/prepost.frag.out +++ /dev/null @@ -1,271 +0,0 @@ -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-new/Test/baseResults/preprocessor.edge_cases.vert.err b/deps/glslang-new/Test/baseResults/preprocessor.edge_cases.vert.err deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/glslang-new/Test/baseResults/preprocessor.extensions.vert.err b/deps/glslang-new/Test/baseResults/preprocessor.extensions.vert.err deleted file mode 100644 index 35db303419..0000000000 --- a/deps/glslang-new/Test/baseResults/preprocessor.extensions.vert.err +++ /dev/null @@ -1,2 +0,0 @@ -WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples - diff --git a/deps/glslang-new/Test/baseResults/preprocessor.function_macro.vert.err b/deps/glslang-new/Test/baseResults/preprocessor.function_macro.vert.err deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/glslang-new/Test/baseResults/preprocessor.include.enabled.vert.err b/deps/glslang-new/Test/baseResults/preprocessor.include.enabled.vert.err deleted file mode 100644 index 252e661f09..0000000000 --- a/deps/glslang-new/Test/baseResults/preprocessor.include.enabled.vert.err +++ /dev/null @@ -1,20 +0,0 @@ -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-new/Test/baseResults/preprocessor.line.frag.err b/deps/glslang-new/Test/baseResults/preprocessor.line.frag.err deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/glslang-new/Test/baseResults/preprocessor.pragma.vert.err b/deps/glslang-new/Test/baseResults/preprocessor.pragma.vert.err deleted file mode 100644 index da435dbd9a..0000000000 --- a/deps/glslang-new/Test/baseResults/preprocessor.pragma.vert.err +++ /dev/null @@ -1,2 +0,0 @@ -WARNING: 0:10: '#pragma once' : not implemented - diff --git a/deps/glslang-new/Test/baseResults/preprocessor.simple.vert.err b/deps/glslang-new/Test/baseResults/preprocessor.simple.vert.err deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deps/glslang-new/Test/baseResults/recurse1.vert.out b/deps/glslang-new/Test/baseResults/recurse1.vert.out deleted file mode 100644 index 7d09b7c1b3..0000000000 --- a/deps/glslang-new/Test/baseResults/recurse1.vert.out +++ /dev/null @@ -1,229 +0,0 @@ -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-new/Test/baseResults/remap.basic.dcefunc.frag.out b/deps/glslang-new/Test/baseResults/remap.basic.dcefunc.frag.out deleted file mode 100644 index 33ec069dbe..0000000000 --- a/deps/glslang-new/Test/baseResults/remap.basic.dcefunc.frag.out +++ /dev/null @@ -1,33 +0,0 @@ -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-new/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/deps/glslang-new/Test/baseResults/remap.hlsl.sample.basic.none.frag.out deleted file mode 100644 index 24a1adec13..0000000000 --- a/deps/glslang-new/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ /dev/null @@ -1,314 +0,0 @@ -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-new/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/deps/glslang-new/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out deleted file mode 100644 index 2108108d4e..0000000000 --- a/deps/glslang-new/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ /dev/null @@ -1,262 +0,0 @@ -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-new/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/deps/glslang-new/Test/baseResults/remap.hlsl.templatetypes.none.frag.out deleted file mode 100644 index 282fd2a24a..0000000000 --- a/deps/glslang-new/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ /dev/null @@ -1,240 +0,0 @@ -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-new/Test/baseResults/sample.frag.out b/deps/glslang-new/Test/baseResults/sample.frag.out deleted file mode 100644 index 780789a74a..0000000000 --- a/deps/glslang-new/Test/baseResults/sample.frag.out +++ /dev/null @@ -1,33 +0,0 @@ -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-new/Test/baseResults/sample.vert.out b/deps/glslang-new/Test/baseResults/sample.vert.out deleted file mode 100644 index 848598eb70..0000000000 --- a/deps/glslang-new/Test/baseResults/sample.vert.out +++ /dev/null @@ -1,43 +0,0 @@ -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-new/Test/baseResults/simpleFunctionCall.frag.out b/deps/glslang-new/Test/baseResults/simpleFunctionCall.frag.out deleted file mode 100644 index 5ccd54d2a5..0000000000 --- a/deps/glslang-new/Test/baseResults/simpleFunctionCall.frag.out +++ /dev/null @@ -1,43 +0,0 @@ -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-new/Test/baseResults/specExamples.frag.out b/deps/glslang-new/Test/baseResults/specExamples.frag.out deleted file mode 100644 index 5eec3cbf44..0000000000 --- a/deps/glslang-new/Test/baseResults/specExamples.frag.out +++ /dev/null @@ -1,599 +0,0 @@ -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-new/Test/baseResults/specExamples.vert.out b/deps/glslang-new/Test/baseResults/specExamples.vert.out deleted file mode 100644 index 5c8ca391b5..0000000000 --- a/deps/glslang-new/Test/baseResults/specExamples.vert.out +++ /dev/null @@ -1,598 +0,0 @@ -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-new/Test/baseResults/spv.140.frag.out b/deps/glslang-new/Test/baseResults/spv.140.frag.out deleted file mode 100755 index 89bf4899b1..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.140.frag.out +++ /dev/null @@ -1,166 +0,0 @@ -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-new/Test/baseResults/spv.310.comp.out b/deps/glslang-new/Test/baseResults/spv.310.comp.out deleted file mode 100644 index fd1309dbdc..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.310.comp.out +++ /dev/null @@ -1,133 +0,0 @@ -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-new/Test/baseResults/spv.400.frag.out b/deps/glslang-new/Test/baseResults/spv.400.frag.out deleted file mode 100644 index 9cb2c63a1e..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.400.frag.out +++ /dev/null @@ -1,1391 +0,0 @@ -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-new/Test/baseResults/spv.450.tesc.out b/deps/glslang-new/Test/baseResults/spv.450.tesc.out deleted file mode 100755 index 35653fdef7..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.450.tesc.out +++ /dev/null @@ -1,120 +0,0 @@ -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-new/Test/baseResults/spv.accessChain.frag.out b/deps/glslang-new/Test/baseResults/spv.accessChain.frag.out deleted file mode 100755 index bf878292fa..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.accessChain.frag.out +++ /dev/null @@ -1,351 +0,0 @@ -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-new/Test/baseResults/spv.atomic.comp.out b/deps/glslang-new/Test/baseResults/spv.atomic.comp.out deleted file mode 100755 index 3dd88f398a..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.atomic.comp.out +++ /dev/null @@ -1,128 +0,0 @@ -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-new/Test/baseResults/spv.boolInBlock.frag.out b/deps/glslang-new/Test/baseResults/spv.boolInBlock.frag.out deleted file mode 100644 index e86ca6b3f7..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.boolInBlock.frag.out +++ /dev/null @@ -1,158 +0,0 @@ -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-new/Test/baseResults/spv.buffer.autoassign.frag.out b/deps/glslang-new/Test/baseResults/spv.buffer.autoassign.frag.out deleted file mode 100644 index 507318f7a6..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.buffer.autoassign.frag.out +++ /dev/null @@ -1,93 +0,0 @@ -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-new/Test/baseResults/spv.for-complex-condition.vert.out b/deps/glslang-new/Test/baseResults/spv.for-complex-condition.vert.out deleted file mode 100644 index 41275a45ce..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.for-complex-condition.vert.out +++ /dev/null @@ -1,58 +0,0 @@ -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-new/Test/baseResults/spv.int64.frag.out b/deps/glslang-new/Test/baseResults/spv.int64.frag.out deleted file mode 100644 index b82cfa3212..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.int64.frag.out +++ /dev/null @@ -1,667 +0,0 @@ -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-new/Test/baseResults/spv.multiStruct.comp.out b/deps/glslang-new/Test/baseResults/spv.multiStruct.comp.out deleted file mode 100755 index 7e88a59065..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.multiStruct.comp.out +++ /dev/null @@ -1,266 +0,0 @@ -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-new/Test/baseResults/spv.register.autoassign-2.frag.out b/deps/glslang-new/Test/baseResults/spv.register.autoassign-2.frag.out deleted file mode 100644 index 533e388036..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.register.autoassign-2.frag.out +++ /dev/null @@ -1,81 +0,0 @@ -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-new/Test/baseResults/spv.register.autoassign.frag.out b/deps/glslang-new/Test/baseResults/spv.register.autoassign.frag.out deleted file mode 100644 index 683ae08d48..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.register.autoassign.frag.out +++ /dev/null @@ -1,241 +0,0 @@ -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-new/Test/baseResults/spv.register.noautoassign.frag.out b/deps/glslang-new/Test/baseResults/spv.register.noautoassign.frag.out deleted file mode 100644 index 166d92d920..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.register.noautoassign.frag.out +++ /dev/null @@ -1,234 +0,0 @@ -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-new/Test/baseResults/spv.rw.autoassign.frag.out b/deps/glslang-new/Test/baseResults/spv.rw.autoassign.frag.out deleted file mode 100644 index 2ee30bc5cb..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.rw.autoassign.frag.out +++ /dev/null @@ -1,74 +0,0 @@ -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-new/Test/baseResults/spv.shaderBallot.comp.out b/deps/glslang-new/Test/baseResults/spv.shaderBallot.comp.out deleted file mode 100644 index 2f0e5a0b78..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.shaderBallot.comp.out +++ /dev/null @@ -1,373 +0,0 @@ -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-new/Test/baseResults/spv.types.frag.out b/deps/glslang-new/Test/baseResults/spv.types.frag.out deleted file mode 100755 index e6fd3e0c20..0000000000 --- a/deps/glslang-new/Test/baseResults/spv.types.frag.out +++ /dev/null @@ -1,337 +0,0 @@ -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-new/Test/baseResults/structAssignment.frag.out b/deps/glslang-new/Test/baseResults/structAssignment.frag.out deleted file mode 100644 index 5bd2ca89a7..0000000000 --- a/deps/glslang-new/Test/baseResults/structAssignment.frag.out +++ /dev/null @@ -1,103 +0,0 @@ -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-new/Test/baseResults/structDeref.frag.out b/deps/glslang-new/Test/baseResults/structDeref.frag.out deleted file mode 100644 index c3f964c759..0000000000 --- a/deps/glslang-new/Test/baseResults/structDeref.frag.out +++ /dev/null @@ -1,345 +0,0 @@ -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-new/Test/baseResults/structure.frag.out b/deps/glslang-new/Test/baseResults/structure.frag.out deleted file mode 100644 index d12dceb4fa..0000000000 --- a/deps/glslang-new/Test/baseResults/structure.frag.out +++ /dev/null @@ -1,165 +0,0 @@ -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-new/Test/baseResults/swizzle.frag.out b/deps/glslang-new/Test/baseResults/swizzle.frag.out deleted file mode 100644 index b66a945dc4..0000000000 --- a/deps/glslang-new/Test/baseResults/swizzle.frag.out +++ /dev/null @@ -1,423 +0,0 @@ -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-new/Test/baseResults/syntaxError.frag.out b/deps/glslang-new/Test/baseResults/syntaxError.frag.out deleted file mode 100644 index b6ebea3ea4..0000000000 --- a/deps/glslang-new/Test/baseResults/syntaxError.frag.out +++ /dev/null @@ -1,24 +0,0 @@ -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-new/Test/baseResults/test.frag.out b/deps/glslang-new/Test/baseResults/test.frag.out deleted file mode 100644 index 4f6faaf9a5..0000000000 --- a/deps/glslang-new/Test/baseResults/test.frag.out +++ /dev/null @@ -1,115 +0,0 @@ -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-new/Test/baseResults/texture.frag.out b/deps/glslang-new/Test/baseResults/texture.frag.out deleted file mode 100644 index 8e9a7105ea..0000000000 --- a/deps/glslang-new/Test/baseResults/texture.frag.out +++ /dev/null @@ -1,564 +0,0 @@ -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-new/Test/baseResults/types.frag.out b/deps/glslang-new/Test/baseResults/types.frag.out deleted file mode 100644 index 94815b66ec..0000000000 --- a/deps/glslang-new/Test/baseResults/types.frag.out +++ /dev/null @@ -1,677 +0,0 @@ -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-new/Test/baseResults/uint.frag.out b/deps/glslang-new/Test/baseResults/uint.frag.out deleted file mode 100644 index 3a12d6b7cb..0000000000 --- a/deps/glslang-new/Test/baseResults/uint.frag.out +++ /dev/null @@ -1,607 +0,0 @@ -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-new/Test/baseResults/uniformArray.frag.out b/deps/glslang-new/Test/baseResults/uniformArray.frag.out deleted file mode 100644 index 51b9ff034d..0000000000 --- a/deps/glslang-new/Test/baseResults/uniformArray.frag.out +++ /dev/null @@ -1,97 +0,0 @@ -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-new/Test/baseResults/variableArrayIndex.frag.out b/deps/glslang-new/Test/baseResults/variableArrayIndex.frag.out deleted file mode 100644 index ddfb25bfbf..0000000000 --- a/deps/glslang-new/Test/baseResults/variableArrayIndex.frag.out +++ /dev/null @@ -1,225 +0,0 @@ -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-new/Test/baseResults/varyingArray.frag.out b/deps/glslang-new/Test/baseResults/varyingArray.frag.out deleted file mode 100644 index a7b9d23d7d..0000000000 --- a/deps/glslang-new/Test/baseResults/varyingArray.frag.out +++ /dev/null @@ -1,118 +0,0 @@ -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-new/Test/baseResults/varyingArrayIndirect.frag.out b/deps/glslang-new/Test/baseResults/varyingArrayIndirect.frag.out deleted file mode 100644 index 23872b4174..0000000000 --- a/deps/glslang-new/Test/baseResults/varyingArrayIndirect.frag.out +++ /dev/null @@ -1,124 +0,0 @@ -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-new/Test/baseResults/versionsClean.frag.out b/deps/glslang-new/Test/baseResults/versionsClean.frag.out deleted file mode 100644 index 721d73c039..0000000000 --- a/deps/glslang-new/Test/baseResults/versionsClean.frag.out +++ /dev/null @@ -1,44 +0,0 @@ -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-new/Test/baseResults/versionsClean.vert.out b/deps/glslang-new/Test/baseResults/versionsClean.vert.out deleted file mode 100644 index 4b098be72d..0000000000 --- a/deps/glslang-new/Test/baseResults/versionsClean.vert.out +++ /dev/null @@ -1,47 +0,0 @@ -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-new/Test/baseResults/versionsErrors.frag.out b/deps/glslang-new/Test/baseResults/versionsErrors.frag.out deleted file mode 100644 index dbeb941ab7..0000000000 --- a/deps/glslang-new/Test/baseResults/versionsErrors.frag.out +++ /dev/null @@ -1,44 +0,0 @@ -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-new/Test/baseResults/versionsErrors.vert.out b/deps/glslang-new/Test/baseResults/versionsErrors.vert.out deleted file mode 100644 index 6551364e9a..0000000000 --- a/deps/glslang-new/Test/baseResults/versionsErrors.vert.out +++ /dev/null @@ -1,57 +0,0 @@ -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-new/Test/baseResults/voidFunction.frag.out b/deps/glslang-new/Test/baseResults/voidFunction.frag.out deleted file mode 100644 index a38509f85c..0000000000 --- a/deps/glslang-new/Test/baseResults/voidFunction.frag.out +++ /dev/null @@ -1,91 +0,0 @@ -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-new/Test/baseResults/vulkan.ast.vert.out b/deps/glslang-new/Test/baseResults/vulkan.ast.vert.out deleted file mode 100755 index 72a45705ee..0000000000 --- a/deps/glslang-new/Test/baseResults/vulkan.ast.vert.out +++ /dev/null @@ -1,325 +0,0 @@ -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-new/Test/baseResults/whileLoop.frag.out b/deps/glslang-new/Test/baseResults/whileLoop.frag.out deleted file mode 100644 index cfe972da93..0000000000 --- a/deps/glslang-new/Test/baseResults/whileLoop.frag.out +++ /dev/null @@ -1,65 +0,0 @@ -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-new/Test/glspv.frag b/deps/glslang-new/Test/glspv.frag deleted file mode 100644 index 7a73cb8d9a..0000000000 --- a/deps/glslang-new/Test/glspv.frag +++ /dev/null @@ -1,28 +0,0 @@ -#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-new/Test/hlsl.array.frag b/deps/glslang-new/Test/hlsl.array.frag deleted file mode 100644 index ff0004fd83..0000000000 --- a/deps/glslang-new/Test/hlsl.array.frag +++ /dev/null @@ -1,18 +0,0 @@ -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-new/Test/hlsl.basic.comp b/deps/glslang-new/Test/hlsl.basic.comp deleted file mode 100644 index 1d95239ed8..0000000000 --- a/deps/glslang-new/Test/hlsl.basic.comp +++ /dev/null @@ -1,6 +0,0 @@ -groupshared float4 a[100]; - -void main(int dti : SV_DispatchThreadID, int gti : SV_GroupThreadID) -{ - dti - gti; -} diff --git a/deps/glslang-new/Test/hlsl.buffer.frag b/deps/glslang-new/Test/hlsl.buffer.frag deleted file mode 100644 index 73f42e8f01..0000000000 --- a/deps/glslang-new/Test/hlsl.buffer.frag +++ /dev/null @@ -1,47 +0,0 @@ -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-new/Test/hlsl.conditional.frag b/deps/glslang-new/Test/hlsl.conditional.frag deleted file mode 100644 index 91f75eec7f..0000000000 --- a/deps/glslang-new/Test/hlsl.conditional.frag +++ /dev/null @@ -1,42 +0,0 @@ -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-new/Test/hlsl.doLoop.frag b/deps/glslang-new/Test/hlsl.doLoop.frag deleted file mode 100644 index 0318dc8f39..0000000000 --- a/deps/glslang-new/Test/hlsl.doLoop.frag +++ /dev/null @@ -1,9 +0,0 @@ -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-new/Test/hlsl.forLoop.frag b/deps/glslang-new/Test/hlsl.forLoop.frag deleted file mode 100644 index 9cf60ee460..0000000000 --- a/deps/glslang-new/Test/hlsl.forLoop.frag +++ /dev/null @@ -1,17 +0,0 @@ -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-new/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/deps/glslang-new/Test/hlsl.gathercmpRGBA.offset.dx10.frag deleted file mode 100644 index 7287fe48e6..0000000000 --- a/deps/glslang-new/Test/hlsl.gathercmpRGBA.offset.dx10.frag +++ /dev/null @@ -1,114 +0,0 @@ -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-new/Test/hlsl.init2.frag b/deps/glslang-new/Test/hlsl.init2.frag deleted file mode 100644 index 2b9b7e688c..0000000000 --- a/deps/glslang-new/Test/hlsl.init2.frag +++ /dev/null @@ -1,51 +0,0 @@ - -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-new/Test/hlsl.intrinsics.f1632.frag b/deps/glslang-new/Test/hlsl.intrinsics.f1632.frag deleted file mode 100644 index f406860ebd..0000000000 --- a/deps/glslang-new/Test/hlsl.intrinsics.f1632.frag +++ /dev/null @@ -1,29 +0,0 @@ -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-new/Test/hlsl.numthreads.comp b/deps/glslang-new/Test/hlsl.numthreads.comp deleted file mode 100644 index 0871d3f746..0000000000 --- a/deps/glslang-new/Test/hlsl.numthreads.comp +++ /dev/null @@ -1,11 +0,0 @@ - -[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-new/Test/hlsl.structarray.flatten.geom b/deps/glslang-new/Test/hlsl.structarray.flatten.geom deleted file mode 100644 index 990532d32e..0000000000 --- a/deps/glslang-new/Test/hlsl.structarray.flatten.geom +++ /dev/null @@ -1,23 +0,0 @@ - -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-new/Test/hlsl.structin.vert b/deps/glslang-new/Test/hlsl.structin.vert deleted file mode 100644 index 20a26dd9eb..0000000000 --- a/deps/glslang-new/Test/hlsl.structin.vert +++ /dev/null @@ -1,17 +0,0 @@ -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-new/Test/preprocessor.include.enabled.vert b/deps/glslang-new/Test/preprocessor.include.enabled.vert deleted file mode 100644 index 985eae2ce5..0000000000 --- a/deps/glslang-new/Test/preprocessor.include.enabled.vert +++ /dev/null @@ -1,20 +0,0 @@ -#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-new/Test/runtests b/deps/glslang-new/Test/runtests deleted file mode 100755 index a084cb5cd7..0000000000 --- a/deps/glslang-new/Test/runtests +++ /dev/null @@ -1,230 +0,0 @@ -#!/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-new/glslang/Include/ConstantUnion.h b/deps/glslang-new/glslang/Include/ConstantUnion.h deleted file mode 100644 index 3e93340151..0000000000 --- a/deps/glslang-new/glslang/Include/ConstantUnion.h +++ /dev/null @@ -1,938 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// -// 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 _CONSTANT_UNION_INCLUDED_ -#define _CONSTANT_UNION_INCLUDED_ - -#include "../Include/Common.h" -#include "../Include/BaseTypes.h" - -namespace glslang { - -class TConstUnion { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - TConstUnion() : iConst(0), type(EbtInt) { } - - void setI8Const(signed char i) - { - i8Const = i; - type = EbtInt8; - } - - void setU8Const(unsigned char u) - { - u8Const = u; - type = EbtUint8; - } - - void setI16Const(signed short i) - { - i16Const = i; - type = EbtInt16; - } - - void setU16Const(unsigned short u) - { - u16Const = u; - type = EbtUint16; - } - - void setIConst(int i) - { - iConst = i; - type = EbtInt; - } - - void setUConst(unsigned int u) - { - uConst = u; - type = EbtUint; - } - - void setI64Const(long long i64) - { - i64Const = i64; - type = EbtInt64; - } - - void setU64Const(unsigned long long u64) - { - u64Const = u64; - type = EbtUint64; - } - - void setDConst(double d) - { - dConst = d; - type = EbtDouble; - } - - void setBConst(bool b) - { - bConst = b; - type = EbtBool; - } - - void setSConst(const TString* s) - { - sConst = s; - type = EbtString; - } - - signed char getI8Const() const { return i8Const; } - unsigned char getU8Const() const { return u8Const; } - signed short getI16Const() const { return i16Const; } - unsigned short getU16Const() const { return u16Const; } - int getIConst() const { return iConst; } - unsigned int getUConst() const { return uConst; } - long long getI64Const() const { return i64Const; } - unsigned long long getU64Const() const { return u64Const; } - double getDConst() const { return dConst; } - bool getBConst() const { return bConst; } - const TString* getSConst() const { return sConst; } - - bool operator==(const signed char i) const - { - if (i == i8Const) - return true; - - return false; - } - - bool operator==(const unsigned char u) const - { - if (u == u8Const) - return true; - - return false; - } - - bool operator==(const signed short i) const - { - if (i == i16Const) - return true; - - return false; - } - - bool operator==(const unsigned short u) const - { - if (u == u16Const) - return true; - - return false; - } - - bool operator==(const int i) const - { - if (i == iConst) - return true; - - return false; - } - - bool operator==(const unsigned int u) const - { - if (u == uConst) - return true; - - return false; - } - - bool operator==(const long long i64) const - { - if (i64 == i64Const) - return true; - - return false; - } - - bool operator==(const unsigned long long u64) const - { - if (u64 == u64Const) - return true; - - return false; - } - - bool operator==(const double d) const - { - if (d == dConst) - return true; - - return false; - } - - bool operator==(const bool b) const - { - if (b == bConst) - return true; - - return false; - } - - bool operator==(const TConstUnion& constant) const - { - if (constant.type != type) - return false; - - switch (type) { - case EbtInt16: - if (constant.i16Const == i16Const) - return true; - - break; - case EbtUint16: - if (constant.u16Const == u16Const) - return true; - - break; - case EbtInt8: - if (constant.i8Const == i8Const) - return true; - - break; - case EbtUint8: - if (constant.u8Const == u8Const) - return true; - - break; - case EbtInt: - if (constant.iConst == iConst) - return true; - - break; - case EbtUint: - if (constant.uConst == uConst) - return true; - - break; - case EbtInt64: - if (constant.i64Const == i64Const) - return true; - - break; - case EbtUint64: - if (constant.u64Const == u64Const) - return true; - - break; - case EbtDouble: - if (constant.dConst == dConst) - return true; - - break; - case EbtBool: - if (constant.bConst == bConst) - return true; - - break; - default: - assert(false && "Default missing"); - } - - return false; - } - - bool operator!=(const signed char i) const - { - return !operator==(i); - } - - bool operator!=(const unsigned char u) const - { - return !operator==(u); - } - - bool operator!=(const signed short i) const - { - return !operator==(i); - } - - bool operator!=(const unsigned short u) const - { - return !operator==(u); - } - - bool operator!=(const int i) const - { - return !operator==(i); - } - - bool operator!=(const unsigned int u) const - { - return !operator==(u); - } - - bool operator!=(const long long i) const - { - return !operator==(i); - } - - bool operator!=(const unsigned long long u) const - { - return !operator==(u); - } - - bool operator!=(const float f) const - { - return !operator==(f); - } - - bool operator!=(const bool b) const - { - return !operator==(b); - } - - bool operator!=(const TConstUnion& constant) const - { - return !operator==(constant); - } - - bool operator>(const TConstUnion& constant) const - { - assert(type == constant.type); - switch (type) { - case EbtInt8: - if (i8Const > constant.i8Const) - return true; - - return false; - case EbtUint8: - if (u8Const > constant.u8Const) - return true; - - return false; - case EbtInt16: - if (i16Const > constant.i16Const) - return true; - - return false; - case EbtUint16: - if (u16Const > constant.u16Const) - return true; - - return false; - case EbtInt: - if (iConst > constant.iConst) - return true; - - return false; - case EbtUint: - if (uConst > constant.uConst) - return true; - - return false; - case EbtInt64: - if (i64Const > constant.i64Const) - return true; - - return false; - case EbtUint64: - if (u64Const > constant.u64Const) - return true; - - return false; - case EbtDouble: - if (dConst > constant.dConst) - return true; - - return false; - default: - assert(false && "Default missing"); - return false; - } - } - - bool operator<(const TConstUnion& constant) const - { - assert(type == constant.type); - switch (type) { - case EbtInt8: - if (i8Const < constant.i8Const) - return true; - - return false; - case EbtUint8: - if (u8Const < constant.u8Const) - return true; - - return false; - case EbtInt16: - if (i16Const < constant.i16Const) - return true; - - return false; - case EbtUint16: - if (u16Const < constant.u16Const) - return true; - - return false; - case EbtInt: - if (iConst < constant.iConst) - return true; - - return false; - case EbtUint: - if (uConst < constant.uConst) - return true; - - return false; - case EbtInt64: - if (i64Const < constant.i64Const) - return true; - - return false; - case EbtUint64: - if (u64Const < constant.u64Const) - return true; - - return false; - case EbtDouble: - if (dConst < constant.dConst) - return true; - - return false; - default: - assert(false && "Default missing"); - return false; - } - } - - TConstUnion operator+(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtInt8: returnValue.setI8Const(i8Const + constant.i8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const + constant.i16Const); break; - case EbtInt: returnValue.setIConst(iConst + constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const + constant.i64Const); break; - case EbtUint8: returnValue.setU8Const(u8Const + constant.u8Const); break; - case EbtUint16: returnValue.setU16Const(u16Const + constant.u16Const); break; - case EbtUint: returnValue.setUConst(uConst + constant.uConst); break; - case EbtUint64: returnValue.setU64Const(u64Const + constant.u64Const); break; - case EbtDouble: returnValue.setDConst(dConst + constant.dConst); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator-(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtInt8: returnValue.setI8Const(i8Const - constant.i8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const - constant.i16Const); break; - case EbtInt: returnValue.setIConst(iConst - constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const - constant.i64Const); break; - case EbtUint8: returnValue.setU8Const(u8Const - constant.u8Const); break; - case EbtUint16: returnValue.setU16Const(u16Const - constant.u16Const); break; - case EbtUint: returnValue.setUConst(uConst - constant.uConst); break; - case EbtUint64: returnValue.setU64Const(u64Const - constant.u64Const); break; - case EbtDouble: returnValue.setDConst(dConst - constant.dConst); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator*(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtInt8: returnValue.setI8Const(i8Const * constant.i8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const * constant.i16Const); break; - case EbtInt: returnValue.setIConst(iConst * constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const * constant.i64Const); break; - case EbtUint8: returnValue.setU8Const(u8Const * constant.u8Const); break; - case EbtUint16: returnValue.setU16Const(u16Const * constant.u16Const); break; - case EbtUint: returnValue.setUConst(uConst * constant.uConst); break; - case EbtUint64: returnValue.setU64Const(u64Const * constant.u64Const); break; - case EbtDouble: returnValue.setDConst(dConst * constant.dConst); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator%(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtInt8: returnValue.setI8Const(i8Const % constant.i8Const); break; - case EbtInt16: returnValue.setI8Const(i8Const % constant.i16Const); break; - case EbtInt: returnValue.setIConst(iConst % constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const % constant.i64Const); break; - case EbtUint8: returnValue.setU8Const(u8Const % constant.u8Const); break; - case EbtUint16: returnValue.setU16Const(u16Const % constant.u16Const); break; - case EbtUint: returnValue.setUConst(uConst % constant.uConst); break; - case EbtUint64: returnValue.setU64Const(u64Const % constant.u64Const); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator>>(const TConstUnion& constant) const - { - TConstUnion returnValue; - switch (type) { - case EbtInt8: - switch (constant.type) { - case EbtInt8: returnValue.setI8Const(i8Const >> constant.i8Const); break; - case EbtUint8: returnValue.setI8Const(i8Const >> constant.u8Const); break; - case EbtInt16: returnValue.setI8Const(i8Const >> constant.i16Const); break; - case EbtUint16: returnValue.setI8Const(i8Const >> constant.u16Const); break; - case EbtInt: returnValue.setI8Const(i8Const >> constant.iConst); break; - case EbtUint: returnValue.setI8Const(i8Const >> constant.uConst); break; - case EbtInt64: returnValue.setI8Const(i8Const >> constant.i64Const); break; - case EbtUint64: returnValue.setI8Const(i8Const >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint8: - switch (constant.type) { - case EbtInt8: returnValue.setU8Const(u8Const >> constant.i8Const); break; - case EbtUint8: returnValue.setU8Const(u8Const >> constant.u8Const); break; - case EbtInt16: returnValue.setU8Const(u8Const >> constant.i16Const); break; - case EbtUint16: returnValue.setU8Const(u8Const >> constant.u16Const); break; - case EbtInt: returnValue.setU8Const(u8Const >> constant.iConst); break; - case EbtUint: returnValue.setU8Const(u8Const >> constant.uConst); break; - case EbtInt64: returnValue.setU8Const(u8Const >> constant.i64Const); break; - case EbtUint64: returnValue.setU8Const(u8Const >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtInt16: - switch (constant.type) { - case EbtInt8: returnValue.setI16Const(i16Const >> constant.i8Const); break; - case EbtUint8: returnValue.setI16Const(i16Const >> constant.u8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const >> constant.i16Const); break; - case EbtUint16: returnValue.setI16Const(i16Const >> constant.u16Const); break; - case EbtInt: returnValue.setI16Const(i16Const >> constant.iConst); break; - case EbtUint: returnValue.setI16Const(i16Const >> constant.uConst); break; - case EbtInt64: returnValue.setI16Const(i16Const >> constant.i64Const); break; - case EbtUint64: returnValue.setI16Const(i16Const >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint16: - switch (constant.type) { - case EbtInt8: returnValue.setU16Const(u16Const >> constant.i8Const); break; - case EbtUint8: returnValue.setU16Const(u16Const >> constant.u8Const); break; - case EbtInt16: returnValue.setU16Const(u16Const >> constant.i16Const); break; - case EbtUint16: returnValue.setU16Const(u16Const >> constant.u16Const); break; - case EbtInt: returnValue.setU16Const(u16Const >> constant.iConst); break; - case EbtUint: returnValue.setU16Const(u16Const >> constant.uConst); break; - case EbtInt64: returnValue.setU16Const(u16Const >> constant.i64Const); break; - case EbtUint64: returnValue.setU16Const(u16Const >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtInt: - switch (constant.type) { - case EbtInt8: returnValue.setIConst(iConst >> constant.i8Const); break; - case EbtUint8: returnValue.setIConst(iConst >> constant.u8Const); break; - case EbtInt16: returnValue.setIConst(iConst >> constant.i16Const); break; - case EbtUint16: returnValue.setIConst(iConst >> constant.u16Const); break; - case EbtInt: returnValue.setIConst(iConst >> constant.iConst); break; - case EbtUint: returnValue.setIConst(iConst >> constant.uConst); break; - case EbtInt64: returnValue.setIConst(iConst >> constant.i64Const); break; - case EbtUint64: returnValue.setIConst(iConst >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint: - switch (constant.type) { - case EbtInt8: returnValue.setUConst(uConst >> constant.i8Const); break; - case EbtUint8: returnValue.setUConst(uConst >> constant.u8Const); break; - case EbtInt16: returnValue.setUConst(uConst >> constant.i16Const); break; - case EbtUint16: returnValue.setUConst(uConst >> constant.u16Const); break; - case EbtInt: returnValue.setUConst(uConst >> constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst >> constant.uConst); break; - case EbtInt64: returnValue.setUConst(uConst >> constant.i64Const); break; - case EbtUint64: returnValue.setUConst(uConst >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtInt64: - switch (constant.type) { - case EbtInt8: returnValue.setI64Const(i64Const >> constant.i8Const); break; - case EbtUint8: returnValue.setI64Const(i64Const >> constant.u8Const); break; - case EbtInt16: returnValue.setI64Const(i64Const >> constant.i16Const); break; - case EbtUint16: returnValue.setI64Const(i64Const >> constant.u16Const); break; - case EbtInt: returnValue.setI64Const(i64Const >> constant.iConst); break; - case EbtUint: returnValue.setI64Const(i64Const >> constant.uConst); break; - case EbtInt64: returnValue.setI64Const(i64Const >> constant.i64Const); break; - case EbtUint64: returnValue.setI64Const(i64Const >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint64: - switch (constant.type) { - case EbtInt8: returnValue.setU64Const(u64Const >> constant.i8Const); break; - case EbtUint8: returnValue.setU64Const(u64Const >> constant.u8Const); break; - case EbtInt16: returnValue.setU64Const(u64Const >> constant.i16Const); break; - case EbtUint16: returnValue.setU64Const(u64Const >> constant.u16Const); break; - case EbtInt: returnValue.setU64Const(u64Const >> constant.iConst); break; - case EbtUint: returnValue.setU64Const(u64Const >> constant.uConst); break; - case EbtInt64: returnValue.setU64Const(u64Const >> constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const >> constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator<<(const TConstUnion& constant) const - { - TConstUnion returnValue; - switch (type) { - case EbtInt8: - switch (constant.type) { - case EbtInt8: returnValue.setI8Const(i8Const << constant.i8Const); break; - case EbtUint8: returnValue.setI8Const(i8Const << constant.u8Const); break; - case EbtInt16: returnValue.setI8Const(i8Const << constant.i16Const); break; - case EbtUint16: returnValue.setI8Const(i8Const << constant.u16Const); break; - case EbtInt: returnValue.setI8Const(i8Const << constant.iConst); break; - case EbtUint: returnValue.setI8Const(i8Const << constant.uConst); break; - case EbtInt64: returnValue.setI8Const(i8Const << constant.i64Const); break; - case EbtUint64: returnValue.setI8Const(i8Const << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint8: - switch (constant.type) { - case EbtInt8: returnValue.setU8Const(u8Const << constant.i8Const); break; - case EbtUint8: returnValue.setU8Const(u8Const << constant.u8Const); break; - case EbtInt16: returnValue.setU8Const(u8Const << constant.i16Const); break; - case EbtUint16: returnValue.setU8Const(u8Const << constant.u16Const); break; - case EbtInt: returnValue.setU8Const(u8Const << constant.iConst); break; - case EbtUint: returnValue.setU8Const(u8Const << constant.uConst); break; - case EbtInt64: returnValue.setU8Const(u8Const << constant.i64Const); break; - case EbtUint64: returnValue.setU8Const(u8Const << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtInt16: - switch (constant.type) { - case EbtInt8: returnValue.setI16Const(i16Const << constant.i8Const); break; - case EbtUint8: returnValue.setI16Const(i16Const << constant.u8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const << constant.i16Const); break; - case EbtUint16: returnValue.setI16Const(i16Const << constant.u16Const); break; - case EbtInt: returnValue.setI16Const(i16Const << constant.iConst); break; - case EbtUint: returnValue.setI16Const(i16Const << constant.uConst); break; - case EbtInt64: returnValue.setI16Const(i16Const << constant.i64Const); break; - case EbtUint64: returnValue.setI16Const(i16Const << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint16: - switch (constant.type) { - case EbtInt8: returnValue.setU16Const(u16Const << constant.i8Const); break; - case EbtUint8: returnValue.setU16Const(u16Const << constant.u8Const); break; - case EbtInt16: returnValue.setU16Const(u16Const << constant.i16Const); break; - case EbtUint16: returnValue.setU16Const(u16Const << constant.u16Const); break; - case EbtInt: returnValue.setU16Const(u16Const << constant.iConst); break; - case EbtUint: returnValue.setU16Const(u16Const << constant.uConst); break; - case EbtInt64: returnValue.setU16Const(u16Const << constant.i64Const); break; - case EbtUint64: returnValue.setU16Const(u16Const << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtInt: - switch (constant.type) { - case EbtInt8: returnValue.setIConst(iConst << constant.i8Const); break; - case EbtUint8: returnValue.setIConst(iConst << constant.u8Const); break; - case EbtInt16: returnValue.setIConst(iConst << constant.i16Const); break; - case EbtUint16: returnValue.setIConst(iConst << constant.u16Const); break; - case EbtInt: returnValue.setIConst(iConst << constant.iConst); break; - case EbtUint: returnValue.setIConst(iConst << constant.uConst); break; - case EbtInt64: returnValue.setIConst(iConst << constant.i64Const); break; - case EbtUint64: returnValue.setIConst(iConst << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint: - switch (constant.type) { - case EbtInt8: returnValue.setUConst(uConst << constant.i8Const); break; - case EbtUint8: returnValue.setUConst(uConst << constant.u8Const); break; - case EbtInt16: returnValue.setUConst(uConst << constant.i16Const); break; - case EbtUint16: returnValue.setUConst(uConst << constant.u16Const); break; - case EbtInt: returnValue.setUConst(uConst << constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst << constant.uConst); break; - case EbtInt64: returnValue.setUConst(uConst << constant.i64Const); break; - case EbtUint64: returnValue.setUConst(uConst << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtInt64: - switch (constant.type) { - case EbtInt8: returnValue.setI64Const(i64Const << constant.i8Const); break; - case EbtUint8: returnValue.setI64Const(i64Const << constant.u8Const); break; - case EbtInt16: returnValue.setI64Const(i64Const << constant.i16Const); break; - case EbtUint16: returnValue.setI64Const(i64Const << constant.u16Const); break; - case EbtInt: returnValue.setI64Const(i64Const << constant.iConst); break; - case EbtUint: returnValue.setI64Const(i64Const << constant.uConst); break; - case EbtInt64: returnValue.setI64Const(i64Const << constant.i64Const); break; - case EbtUint64: returnValue.setI64Const(i64Const << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - case EbtUint64: - switch (constant.type) { - case EbtInt8: returnValue.setU64Const(u64Const << constant.i8Const); break; - case EbtUint8: returnValue.setU64Const(u64Const << constant.u8Const); break; - case EbtInt16: returnValue.setU64Const(u64Const << constant.i16Const); break; - case EbtUint16: returnValue.setU64Const(u64Const << constant.u16Const); break; - case EbtInt: returnValue.setU64Const(u64Const << constant.iConst); break; - case EbtUint: returnValue.setU64Const(u64Const << constant.uConst); break; - case EbtInt64: returnValue.setU64Const(u64Const << constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const << constant.u64Const); break; - default: assert(false && "Default missing"); - } - break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator&(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtInt8: returnValue.setI8Const(i8Const & constant.i8Const); break; - case EbtUint8: returnValue.setU8Const(u8Const & constant.u8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const & constant.i16Const); break; - case EbtUint16: returnValue.setU16Const(u16Const & constant.u16Const); break; - case EbtInt: returnValue.setIConst(iConst & constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst & constant.uConst); break; - case EbtInt64: returnValue.setI64Const(i64Const & constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const & constant.u64Const); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator|(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtInt8: returnValue.setI8Const(i8Const | constant.i8Const); break; - case EbtUint8: returnValue.setU8Const(u8Const | constant.u8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const | constant.i16Const); break; - case EbtUint16: returnValue.setU16Const(u16Const | constant.u16Const); break; - case EbtInt: returnValue.setIConst(iConst | constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst | constant.uConst); break; - case EbtInt64: returnValue.setI64Const(i64Const | constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const | constant.u64Const); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator^(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtInt8: returnValue.setI8Const(i8Const ^ constant.i8Const); break; - case EbtUint8: returnValue.setU8Const(u8Const ^ constant.u8Const); break; - case EbtInt16: returnValue.setI16Const(i16Const ^ constant.i16Const); break; - case EbtUint16: returnValue.setU16Const(u16Const ^ constant.u16Const); break; - case EbtInt: returnValue.setIConst(iConst ^ constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst ^ constant.uConst); break; - case EbtInt64: returnValue.setI64Const(i64Const ^ constant.i64Const); break; - case EbtUint64: returnValue.setU64Const(u64Const ^ constant.u64Const); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator~() const - { - TConstUnion returnValue; - switch (type) { - case EbtInt8: returnValue.setI8Const(~i8Const); break; - case EbtUint8: returnValue.setU8Const(~u8Const); break; - case EbtInt16: returnValue.setI16Const(~i16Const); break; - case EbtUint16: returnValue.setU16Const(~u16Const); break; - case EbtInt: returnValue.setIConst(~iConst); break; - case EbtUint: returnValue.setUConst(~uConst); break; - case EbtInt64: returnValue.setI64Const(~i64Const); break; - case EbtUint64: returnValue.setU64Const(~u64Const); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator&&(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtBool: returnValue.setBConst(bConst && constant.bConst); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TConstUnion operator||(const TConstUnion& constant) const - { - TConstUnion returnValue; - assert(type == constant.type); - switch (type) { - case EbtBool: returnValue.setBConst(bConst || constant.bConst); break; - default: assert(false && "Default missing"); - } - - return returnValue; - } - - TBasicType getType() const { return type; } - -private: - union { - signed char i8Const; // used for i8vec, scalar int8s - unsigned char u8Const; // used for u8vec, scalar uint8s - signed short i16Const; // used for i16vec, scalar int16s - unsigned short u16Const; // used for u16vec, scalar uint16s - int iConst; // used for ivec, scalar ints - unsigned int uConst; // used for uvec, scalar uints - long long i64Const; // used for i64vec, scalar int64s - unsigned long long u64Const; // used for u64vec, scalar uint64s - bool bConst; // used for bvec, scalar bools - double dConst; // used for vec, dvec, mat, dmat, scalar floats and doubles - const TString* sConst; // string constant - }; - - TBasicType type; -}; - -// Encapsulate having a pointer to an array of TConstUnion, -// which only needs to be allocated if its size is going to be -// bigger than 0. -// -// One convenience is being able to use [] to go inside the array, instead -// of C++ assuming it as an array of pointers to vectors. -// -// General usage is that the size is known up front, and it is -// created once with the proper size. -// -class TConstUnionArray { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - - TConstUnionArray() : unionArray(nullptr) { } - virtual ~TConstUnionArray() { } - - explicit TConstUnionArray(int size) - { - if (size == 0) - unionArray = nullptr; - else - unionArray = new TConstUnionVector(size); - } - TConstUnionArray(const TConstUnionArray& a) : unionArray(a.unionArray) { } - TConstUnionArray(const TConstUnionArray& a, int start, int size) - { - unionArray = new TConstUnionVector(size); - for (int i = 0; i < size; ++i) - (*unionArray)[i] = a[start + i]; - } - - // Use this constructor for a smear operation - TConstUnionArray(int size, const TConstUnion& val) - { - unionArray = new TConstUnionVector(size, val); - } - - int size() const { return unionArray ? (int)unionArray->size() : 0; } - TConstUnion& operator[](size_t index) { return (*unionArray)[index]; } - const TConstUnion& operator[](size_t index) const { return (*unionArray)[index]; } - bool operator==(const TConstUnionArray& rhs) const - { - // this includes the case that both are unallocated - if (unionArray == rhs.unionArray) - return true; - - if (! unionArray || ! rhs.unionArray) - return false; - - return *unionArray == *rhs.unionArray; - } - bool operator!=(const TConstUnionArray& rhs) const { return ! operator==(rhs); } - - double dot(const TConstUnionArray& rhs) - { - assert(rhs.unionArray->size() == unionArray->size()); - double sum = 0.0; - - for (size_t comp = 0; comp < unionArray->size(); ++comp) - sum += (*this)[comp].getDConst() * rhs[comp].getDConst(); - - return sum; - } - - bool empty() const { return unionArray == nullptr; } - -protected: - typedef TVector TConstUnionVector; - TConstUnionVector* unionArray; -}; - -} // end namespace glslang - -#endif // _CONSTANT_UNION_INCLUDED_ diff --git a/deps/glslang-new/glslang/Include/InitializeGlobals.h b/deps/glslang-new/glslang/Include/InitializeGlobals.h deleted file mode 100644 index 95d0a40e99..0000000000 --- a/deps/glslang-new/glslang/Include/InitializeGlobals.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// Copyright (C) 2002-2005 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. -// - -#ifndef __INITIALIZE_GLOBALS_INCLUDED_ -#define __INITIALIZE_GLOBALS_INCLUDED_ - -namespace glslang { - -bool InitializePoolIndex(); - -} // end namespace glslang - -#endif // __INITIALIZE_GLOBALS_INCLUDED_ diff --git a/deps/glslang-new/glslang/Include/revision.h b/deps/glslang-new/glslang/Include/revision.h deleted file mode 100644 index f163142b9f..0000000000 --- a/deps/glslang-new/glslang/Include/revision.h +++ /dev/null @@ -1,3 +0,0 @@ -// This header is generated by the make-revision script. - -#define GLSLANG_PATCH_LEVEL 2776 diff --git a/deps/glslang-new/glslang/MachineIndependent/RemoveTree.h b/deps/glslang-new/glslang/MachineIndependent/RemoveTree.h deleted file mode 100644 index 1ed015626b..0000000000 --- a/deps/glslang-new/glslang/MachineIndependent/RemoveTree.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// Copyright (C) 2002-2005 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. -// - -#pragma once - -namespace glslang { - -void RemoveAllTreeNodes(TIntermNode*); - -} // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/glslang_tab.cpp b/deps/glslang-new/glslang/MachineIndependent/glslang_tab.cpp deleted file mode 100644 index 38672d67d3..0000000000 --- a/deps/glslang-new/glslang/MachineIndependent/glslang_tab.cpp +++ /dev/null @@ -1,10051 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.0. */ - -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Bison version. */ -#define YYBISON_VERSION "3.0" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 1 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* Copy the first part of user declarations. */ -#line 42 "MachineIndependent/glslang.y" /* yacc.c:339 */ - - -/* Based on: -ANSI C Yacc grammar - -In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a -matching Lex specification) for the April 30, 1985 draft version of the -ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that -original, as mentioned in the answer to question 17.25 of the comp.lang.c -FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z. - -I intend to keep this version as close to the current C Standard grammar as -possible; please let me know if you discover discrepancies. - -Jutta Degener, 1995 -*/ - -#include "SymbolTable.h" -#include "ParseHelper.h" -#include "../Public/ShaderLang.h" -#include "attribute.h" - -using namespace glslang; - - -#line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ - -# ifndef YY_NULL -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr -# else -# define YY_NULL 0 -# endif -# endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 1 -#endif - -/* In a future release of Bison, this section will be replaced - by #include "glslang_tab.cpp.h". */ -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - FLOAT16_T = 260, - FLOAT = 261, - FLOAT32_T = 262, - DOUBLE = 263, - FLOAT64_T = 264, - CONST = 265, - BOOL = 266, - INT = 267, - UINT = 268, - INT64_T = 269, - UINT64_T = 270, - INT32_T = 271, - UINT32_T = 272, - INT16_T = 273, - UINT16_T = 274, - INT8_T = 275, - UINT8_T = 276, - BREAK = 277, - CONTINUE = 278, - DO = 279, - ELSE = 280, - FOR = 281, - IF = 282, - DISCARD = 283, - RETURN = 284, - SWITCH = 285, - CASE = 286, - DEFAULT = 287, - SUBROUTINE = 288, - BVEC2 = 289, - BVEC3 = 290, - BVEC4 = 291, - IVEC2 = 292, - IVEC3 = 293, - IVEC4 = 294, - UVEC2 = 295, - UVEC3 = 296, - UVEC4 = 297, - I64VEC2 = 298, - I64VEC3 = 299, - I64VEC4 = 300, - U64VEC2 = 301, - U64VEC3 = 302, - U64VEC4 = 303, - I32VEC2 = 304, - I32VEC3 = 305, - I32VEC4 = 306, - U32VEC2 = 307, - U32VEC3 = 308, - U32VEC4 = 309, - I16VEC2 = 310, - I16VEC3 = 311, - I16VEC4 = 312, - U16VEC2 = 313, - U16VEC3 = 314, - U16VEC4 = 315, - I8VEC2 = 316, - I8VEC3 = 317, - I8VEC4 = 318, - U8VEC2 = 319, - U8VEC3 = 320, - U8VEC4 = 321, - VEC2 = 322, - VEC3 = 323, - VEC4 = 324, - MAT2 = 325, - MAT3 = 326, - MAT4 = 327, - CENTROID = 328, - IN = 329, - OUT = 330, - INOUT = 331, - UNIFORM = 332, - PATCH = 333, - SAMPLE = 334, - BUFFER = 335, - SHARED = 336, - NONUNIFORM = 337, - COHERENT = 338, - VOLATILE = 339, - RESTRICT = 340, - READONLY = 341, - WRITEONLY = 342, - DVEC2 = 343, - DVEC3 = 344, - DVEC4 = 345, - DMAT2 = 346, - DMAT3 = 347, - DMAT4 = 348, - F16VEC2 = 349, - F16VEC3 = 350, - F16VEC4 = 351, - F16MAT2 = 352, - F16MAT3 = 353, - F16MAT4 = 354, - F32VEC2 = 355, - F32VEC3 = 356, - F32VEC4 = 357, - F32MAT2 = 358, - F32MAT3 = 359, - F32MAT4 = 360, - F64VEC2 = 361, - F64VEC3 = 362, - F64VEC4 = 363, - F64MAT2 = 364, - F64MAT3 = 365, - F64MAT4 = 366, - NOPERSPECTIVE = 367, - FLAT = 368, - SMOOTH = 369, - LAYOUT = 370, - __EXPLICITINTERPAMD = 371, - MAT2X2 = 372, - MAT2X3 = 373, - MAT2X4 = 374, - MAT3X2 = 375, - MAT3X3 = 376, - MAT3X4 = 377, - MAT4X2 = 378, - MAT4X3 = 379, - MAT4X4 = 380, - DMAT2X2 = 381, - DMAT2X3 = 382, - DMAT2X4 = 383, - DMAT3X2 = 384, - DMAT3X3 = 385, - DMAT3X4 = 386, - DMAT4X2 = 387, - DMAT4X3 = 388, - DMAT4X4 = 389, - F16MAT2X2 = 390, - F16MAT2X3 = 391, - F16MAT2X4 = 392, - F16MAT3X2 = 393, - F16MAT3X3 = 394, - F16MAT3X4 = 395, - F16MAT4X2 = 396, - F16MAT4X3 = 397, - F16MAT4X4 = 398, - F32MAT2X2 = 399, - F32MAT2X3 = 400, - F32MAT2X4 = 401, - F32MAT3X2 = 402, - F32MAT3X3 = 403, - F32MAT3X4 = 404, - F32MAT4X2 = 405, - F32MAT4X3 = 406, - F32MAT4X4 = 407, - F64MAT2X2 = 408, - F64MAT2X3 = 409, - F64MAT2X4 = 410, - F64MAT3X2 = 411, - F64MAT3X3 = 412, - F64MAT3X4 = 413, - F64MAT4X2 = 414, - F64MAT4X3 = 415, - F64MAT4X4 = 416, - ATOMIC_UINT = 417, - SAMPLER1D = 418, - SAMPLER2D = 419, - SAMPLER3D = 420, - SAMPLERCUBE = 421, - SAMPLER1DSHADOW = 422, - SAMPLER2DSHADOW = 423, - SAMPLERCUBESHADOW = 424, - SAMPLER1DARRAY = 425, - SAMPLER2DARRAY = 426, - SAMPLER1DARRAYSHADOW = 427, - SAMPLER2DARRAYSHADOW = 428, - ISAMPLER1D = 429, - ISAMPLER2D = 430, - ISAMPLER3D = 431, - ISAMPLERCUBE = 432, - ISAMPLER1DARRAY = 433, - ISAMPLER2DARRAY = 434, - USAMPLER1D = 435, - USAMPLER2D = 436, - USAMPLER3D = 437, - USAMPLERCUBE = 438, - USAMPLER1DARRAY = 439, - USAMPLER2DARRAY = 440, - SAMPLER2DRECT = 441, - SAMPLER2DRECTSHADOW = 442, - ISAMPLER2DRECT = 443, - USAMPLER2DRECT = 444, - SAMPLERBUFFER = 445, - ISAMPLERBUFFER = 446, - USAMPLERBUFFER = 447, - SAMPLERCUBEARRAY = 448, - SAMPLERCUBEARRAYSHADOW = 449, - ISAMPLERCUBEARRAY = 450, - USAMPLERCUBEARRAY = 451, - SAMPLER2DMS = 452, - ISAMPLER2DMS = 453, - USAMPLER2DMS = 454, - SAMPLER2DMSARRAY = 455, - ISAMPLER2DMSARRAY = 456, - USAMPLER2DMSARRAY = 457, - SAMPLEREXTERNALOES = 458, - F16SAMPLER1D = 459, - F16SAMPLER2D = 460, - F16SAMPLER3D = 461, - F16SAMPLER2DRECT = 462, - F16SAMPLERCUBE = 463, - F16SAMPLER1DARRAY = 464, - F16SAMPLER2DARRAY = 465, - F16SAMPLERCUBEARRAY = 466, - F16SAMPLERBUFFER = 467, - F16SAMPLER2DMS = 468, - F16SAMPLER2DMSARRAY = 469, - F16SAMPLER1DSHADOW = 470, - F16SAMPLER2DSHADOW = 471, - F16SAMPLER1DARRAYSHADOW = 472, - F16SAMPLER2DARRAYSHADOW = 473, - F16SAMPLER2DRECTSHADOW = 474, - F16SAMPLERCUBESHADOW = 475, - F16SAMPLERCUBEARRAYSHADOW = 476, - SAMPLER = 477, - SAMPLERSHADOW = 478, - TEXTURE1D = 479, - TEXTURE2D = 480, - TEXTURE3D = 481, - TEXTURECUBE = 482, - TEXTURE1DARRAY = 483, - TEXTURE2DARRAY = 484, - ITEXTURE1D = 485, - ITEXTURE2D = 486, - ITEXTURE3D = 487, - ITEXTURECUBE = 488, - ITEXTURE1DARRAY = 489, - ITEXTURE2DARRAY = 490, - UTEXTURE1D = 491, - UTEXTURE2D = 492, - UTEXTURE3D = 493, - UTEXTURECUBE = 494, - UTEXTURE1DARRAY = 495, - UTEXTURE2DARRAY = 496, - TEXTURE2DRECT = 497, - ITEXTURE2DRECT = 498, - UTEXTURE2DRECT = 499, - TEXTUREBUFFER = 500, - ITEXTUREBUFFER = 501, - UTEXTUREBUFFER = 502, - TEXTURECUBEARRAY = 503, - ITEXTURECUBEARRAY = 504, - UTEXTURECUBEARRAY = 505, - TEXTURE2DMS = 506, - ITEXTURE2DMS = 507, - UTEXTURE2DMS = 508, - TEXTURE2DMSARRAY = 509, - ITEXTURE2DMSARRAY = 510, - UTEXTURE2DMSARRAY = 511, - F16TEXTURE1D = 512, - F16TEXTURE2D = 513, - F16TEXTURE3D = 514, - F16TEXTURE2DRECT = 515, - F16TEXTURECUBE = 516, - F16TEXTURE1DARRAY = 517, - F16TEXTURE2DARRAY = 518, - F16TEXTURECUBEARRAY = 519, - F16TEXTUREBUFFER = 520, - F16TEXTURE2DMS = 521, - F16TEXTURE2DMSARRAY = 522, - SUBPASSINPUT = 523, - SUBPASSINPUTMS = 524, - ISUBPASSINPUT = 525, - ISUBPASSINPUTMS = 526, - USUBPASSINPUT = 527, - USUBPASSINPUTMS = 528, - F16SUBPASSINPUT = 529, - F16SUBPASSINPUTMS = 530, - IMAGE1D = 531, - IIMAGE1D = 532, - UIMAGE1D = 533, - IMAGE2D = 534, - IIMAGE2D = 535, - UIMAGE2D = 536, - IMAGE3D = 537, - IIMAGE3D = 538, - UIMAGE3D = 539, - IMAGE2DRECT = 540, - IIMAGE2DRECT = 541, - UIMAGE2DRECT = 542, - IMAGECUBE = 543, - IIMAGECUBE = 544, - UIMAGECUBE = 545, - IMAGEBUFFER = 546, - IIMAGEBUFFER = 547, - UIMAGEBUFFER = 548, - IMAGE1DARRAY = 549, - IIMAGE1DARRAY = 550, - UIMAGE1DARRAY = 551, - IMAGE2DARRAY = 552, - IIMAGE2DARRAY = 553, - UIMAGE2DARRAY = 554, - IMAGECUBEARRAY = 555, - IIMAGECUBEARRAY = 556, - UIMAGECUBEARRAY = 557, - IMAGE2DMS = 558, - IIMAGE2DMS = 559, - UIMAGE2DMS = 560, - IMAGE2DMSARRAY = 561, - IIMAGE2DMSARRAY = 562, - UIMAGE2DMSARRAY = 563, - F16IMAGE1D = 564, - F16IMAGE2D = 565, - F16IMAGE3D = 566, - F16IMAGE2DRECT = 567, - F16IMAGECUBE = 568, - F16IMAGE1DARRAY = 569, - F16IMAGE2DARRAY = 570, - F16IMAGECUBEARRAY = 571, - F16IMAGEBUFFER = 572, - F16IMAGE2DMS = 573, - F16IMAGE2DMSARRAY = 574, - STRUCT = 575, - VOID = 576, - WHILE = 577, - IDENTIFIER = 578, - TYPE_NAME = 579, - FLOATCONSTANT = 580, - DOUBLECONSTANT = 581, - INT16CONSTANT = 582, - UINT16CONSTANT = 583, - INT32CONSTANT = 584, - UINT32CONSTANT = 585, - INTCONSTANT = 586, - UINTCONSTANT = 587, - INT64CONSTANT = 588, - UINT64CONSTANT = 589, - BOOLCONSTANT = 590, - FLOAT16CONSTANT = 591, - LEFT_OP = 592, - RIGHT_OP = 593, - INC_OP = 594, - DEC_OP = 595, - LE_OP = 596, - GE_OP = 597, - EQ_OP = 598, - NE_OP = 599, - AND_OP = 600, - OR_OP = 601, - XOR_OP = 602, - MUL_ASSIGN = 603, - DIV_ASSIGN = 604, - ADD_ASSIGN = 605, - MOD_ASSIGN = 606, - LEFT_ASSIGN = 607, - RIGHT_ASSIGN = 608, - AND_ASSIGN = 609, - XOR_ASSIGN = 610, - OR_ASSIGN = 611, - SUB_ASSIGN = 612, - LEFT_PAREN = 613, - RIGHT_PAREN = 614, - LEFT_BRACKET = 615, - RIGHT_BRACKET = 616, - LEFT_BRACE = 617, - RIGHT_BRACE = 618, - DOT = 619, - COMMA = 620, - COLON = 621, - EQUAL = 622, - SEMICOLON = 623, - BANG = 624, - DASH = 625, - TILDE = 626, - PLUS = 627, - STAR = 628, - SLASH = 629, - PERCENT = 630, - LEFT_ANGLE = 631, - RIGHT_ANGLE = 632, - VERTICAL_BAR = 633, - CARET = 634, - AMPERSAND = 635, - QUESTION = 636, - INVARIANT = 637, - PRECISE = 638, - HIGH_PRECISION = 639, - MEDIUM_PRECISION = 640, - LOW_PRECISION = 641, - PRECISION = 642, - PACKED = 643, - RESOURCE = 644, - SUPERP = 645 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; -union YYSTYPE -{ -#line 70 "MachineIndependent/glslang.y" /* yacc.c:355 */ - - struct { - glslang::TSourceLoc loc; - union { - glslang::TString *string; - int i; - unsigned int u; - long long i64; - unsigned long long u64; - bool b; - double d; - }; - glslang::TSymbol* symbol; - } lex; - struct { - glslang::TSourceLoc loc; - glslang::TOperator op; - union { - TIntermNode* intermNode; - glslang::TIntermNodePair nodePair; - glslang::TIntermTyped* intermTypedNode; - glslang::TAttributes* attributes; - }; - union { - glslang::TPublicType type; - glslang::TFunction* function; - glslang::TParameter param; - glslang::TTypeLoc typeLine; - glslang::TTypeList* typeList; - glslang::TArraySizes* arraySizes; - glslang::TIdentifierList* identifierList; - }; - } interm; - -#line 558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ -}; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - - -int yyparse (glslang::TParseContext* pParseContext); - -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ - -/* Copy the second part of user declarations. */ -#line 105 "MachineIndependent/glslang.y" /* yacc.c:358 */ - - -/* windows only pragma */ -#ifdef _MSC_VER - #pragma warning(disable : 4065) - #pragma warning(disable : 4127) - #pragma warning(disable : 4244) -#endif - -#define parseContext (*pParseContext) -#define yyerror(context, msg) context->parserError(msg) - -extern int yylex(YYSTYPE*, TParseContext&); - - -#line 587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#else -typedef signed char yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(Msgid) dgettext ("bison-runtime", Msgid) -# endif -# endif -# ifndef YY_ -# define YY_(Msgid) Msgid -# endif -#endif - -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if (! defined __GNUC__ || __GNUC__ < 2 \ - || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) -# define __attribute__(Spec) /* empty */ -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) -#else -# define YYUSE(E) /* empty */ -#endif - -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS -# include /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yytype_int16 yyss_alloc; - YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -# define YYCOPY_NEEDED 1 - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (0) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 366 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 8949 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 391 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 107 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 556 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 697 - -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 645 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ -static const yytype_uint16 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390 -}; - -#if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = -{ - 0, 293, 293, 299, 302, 306, 310, 313, 317, 321, - 325, 329, 333, 336, 340, 344, 347, 355, 358, 361, - 364, 367, 372, 380, 387, 394, 400, 404, 411, 414, - 420, 427, 437, 445, 450, 477, 485, 491, 495, 499, - 519, 520, 521, 522, 528, 529, 534, 539, 548, 549, - 554, 562, 563, 569, 578, 579, 584, 589, 594, 602, - 603, 611, 622, 623, 632, 633, 642, 643, 652, 653, - 661, 662, 670, 671, 679, 680, 680, 698, 699, 714, - 718, 722, 726, 731, 735, 739, 743, 747, 751, 755, - 762, 765, 776, 783, 788, 793, 801, 805, 809, 813, - 818, 823, 832, 832, 843, 847, 854, 861, 864, 871, - 879, 899, 922, 937, 962, 973, 983, 993, 1003, 1012, - 1015, 1019, 1023, 1028, 1036, 1041, 1046, 1051, 1056, 1065, - 1076, 1103, 1112, 1119, 1126, 1137, 1149, 1155, 1158, 1165, - 1169, 1173, 1181, 1190, 1193, 1204, 1207, 1210, 1214, 1218, - 1222, 1226, 1232, 1236, 1248, 1262, 1267, 1273, 1279, 1286, - 1292, 1297, 1302, 1307, 1315, 1319, 1323, 1327, 1331, 1335, - 1341, 1350, 1357, 1360, 1368, 1372, 1381, 1386, 1394, 1398, - 1408, 1412, 1416, 1421, 1426, 1431, 1436, 1440, 1445, 1450, - 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1489, 1494, 1499, - 1504, 1510, 1516, 1522, 1528, 1534, 1540, 1546, 1552, 1558, - 1564, 1570, 1576, 1581, 1586, 1591, 1596, 1601, 1606, 1612, - 1618, 1624, 1630, 1636, 1642, 1648, 1654, 1660, 1666, 1672, - 1678, 1684, 1690, 1696, 1702, 1708, 1714, 1720, 1726, 1732, - 1738, 1744, 1750, 1756, 1762, 1768, 1773, 1778, 1783, 1788, - 1793, 1798, 1803, 1808, 1813, 1818, 1823, 1828, 1834, 1840, - 1846, 1852, 1858, 1864, 1870, 1876, 1882, 1888, 1894, 1900, - 1906, 1912, 1918, 1924, 1930, 1936, 1942, 1948, 1954, 1960, - 1966, 1972, 1978, 1984, 1990, 1996, 2002, 2008, 2014, 2020, - 2026, 2032, 2038, 2044, 2050, 2056, 2062, 2068, 2074, 2080, - 2086, 2092, 2098, 2104, 2110, 2116, 2121, 2126, 2131, 2136, - 2141, 2146, 2151, 2156, 2161, 2166, 2171, 2176, 2181, 2186, - 2194, 2202, 2210, 2218, 2226, 2234, 2242, 2250, 2258, 2266, - 2274, 2282, 2290, 2295, 2300, 2305, 2310, 2315, 2320, 2325, - 2330, 2335, 2340, 2345, 2350, 2355, 2360, 2365, 2370, 2378, - 2386, 2391, 2396, 2401, 2409, 2414, 2419, 2424, 2432, 2437, - 2442, 2447, 2455, 2460, 2465, 2470, 2475, 2480, 2488, 2493, - 2501, 2506, 2514, 2519, 2527, 2532, 2540, 2545, 2553, 2558, - 2566, 2571, 2576, 2581, 2586, 2591, 2596, 2601, 2606, 2611, - 2616, 2621, 2626, 2631, 2636, 2641, 2649, 2654, 2659, 2664, - 2672, 2677, 2682, 2687, 2695, 2700, 2705, 2710, 2718, 2723, - 2728, 2733, 2741, 2746, 2751, 2756, 2764, 2769, 2774, 2779, - 2787, 2792, 2797, 2802, 2810, 2815, 2820, 2825, 2833, 2838, - 2843, 2848, 2856, 2861, 2866, 2871, 2879, 2884, 2889, 2894, - 2902, 2907, 2912, 2917, 2925, 2930, 2935, 2940, 2948, 2953, - 2958, 2963, 2971, 2976, 2981, 2987, 2993, 2999, 3008, 3017, - 3023, 3029, 3035, 3041, 3046, 3062, 3067, 3072, 3080, 3080, - 3091, 3091, 3101, 3104, 3117, 3139, 3166, 3170, 3176, 3181, - 3192, 3195, 3201, 3210, 3213, 3219, 3223, 3224, 3230, 3231, - 3232, 3233, 3234, 3235, 3236, 3240, 3241, 3245, 3241, 3257, - 3258, 3262, 3262, 3269, 3269, 3283, 3286, 3294, 3302, 3313, - 3314, 3318, 3321, 3327, 3334, 3338, 3346, 3350, 3363, 3366, - 3372, 3372, 3392, 3395, 3401, 3413, 3425, 3428, 3434, 3434, - 3449, 3449, 3465, 3465, 3486, 3489, 3495, 3498, 3504, 3508, - 3515, 3520, 3525, 3532, 3535, 3544, 3548, 3557, 3560, 3563, - 3571, 3571, 3593, 3599, 3602, 3607, 3610 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || 1 -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T", - "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT", - "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T", - "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE", - "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", - "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", - "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "U64VEC2", - "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4", "U32VEC2", - "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4", "U16VEC2", - "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", - "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", - "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", - "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY", - "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", "DMAT4", - "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", "F16MAT4", - "F32VEC2", "F32VEC3", "F32VEC4", "F32MAT2", "F32MAT3", "F32MAT4", - "F64VEC2", "F64VEC3", "F64VEC4", "F64MAT2", "F64MAT3", "F64MAT4", - "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "__EXPLICITINTERPAMD", - "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", - "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", - "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", "F16MAT2X2", - "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", "F16MAT3X4", - "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2", "F32MAT2X3", - "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4", "F32MAT4X2", - "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", - "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", - "F64MAT4X4", "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", - "SAMPLERCUBE", "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", - "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", - "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", - "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", - "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", - "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", - "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", - "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", - "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", - "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", - "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "F16SAMPLER1D", - "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE", - "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", - "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", - "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW", - "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW", - "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER", - "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", - "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", - "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", - "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", - "UTEXTURE1DARRAY", "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", - "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", - "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", - "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS", "TEXTURE2DMSARRAY", - "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", - "F16TEXTURE3D", "F16TEXTURE2DRECT", "F16TEXTURECUBE", - "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", - "F16TEXTUREBUFFER", "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", - "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", - "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT", - "F16SUBPASSINPUTMS", "IMAGE1D", "IIMAGE1D", "UIMAGE1D", "IMAGE2D", - "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", - "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", - "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAY", - "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE2DARRAY", - "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", - "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS", "IMAGE2DMSARRAY", - "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "F16IMAGE1D", "F16IMAGE2D", - "F16IMAGE3D", "F16IMAGE2DRECT", "F16IMAGECUBE", "F16IMAGE1DARRAY", - "F16IMAGE2DARRAY", "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS", - "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER", - "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT", - "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT", - "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT", - "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", - "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", - "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", - "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", - "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", - "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", - "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", - "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION", - "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION", - "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept", - "variable_identifier", "primary_expression", "postfix_expression", - "integer_expression", "function_call", "function_call_or_method", - "function_call_generic", "function_call_header_no_parameters", - "function_call_header_with_parameters", "function_call_header", - "function_identifier", "unary_expression", "unary_operator", - "multiplicative_expression", "additive_expression", "shift_expression", - "relational_expression", "equality_expression", "and_expression", - "exclusive_or_expression", "inclusive_or_expression", - "logical_and_expression", "logical_xor_expression", - "logical_or_expression", "conditional_expression", "$@1", - "assignment_expression", "assignment_operator", "expression", - "constant_expression", "declaration", "block_structure", "$@2", - "identifier_list", "function_prototype", "function_declarator", - "function_header_with_parameters", "function_header", - "parameter_declarator", "parameter_declaration", - "parameter_type_specifier", "init_declarator_list", "single_declaration", - "fully_specified_type", "invariant_qualifier", "interpolation_qualifier", - "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id", - "precise_qualifier", "type_qualifier", "single_type_qualifier", - "storage_qualifier", "non_uniform_qualifier", "type_name_list", - "type_specifier", "array_specifier", "type_specifier_nonarray", - "precision_qualifier", "struct_specifier", "$@3", "$@4", - "struct_declaration_list", "struct_declaration", - "struct_declarator_list", "struct_declarator", "initializer", - "initializer_list", "declaration_statement", "statement", - "simple_statement", "compound_statement", "$@5", "$@6", - "statement_no_new_scope", "statement_scoped", "$@7", "$@8", - "compound_statement_no_new_scope", "statement_list", - "expression_statement", "selection_statement", - "selection_statement_nonattributed", "selection_rest_statement", - "condition", "switch_statement", "switch_statement_nonattributed", "$@9", - "switch_statement_list", "case_label", "iteration_statement", - "iteration_statement_nonattributed", "$@10", "$@11", "$@12", - "for_init_statement", "conditionopt", "for_rest_statement", - "jump_statement", "translation_unit", "external_declaration", - "function_definition", "$@13", "attribute", "attribute_list", - "single_attribute", YY_NULL -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645 -}; -# endif - -#define YYPACT_NINF -634 - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-634))) - -#define YYTABLE_NINF -502 - -#define yytable_value_is_error(Yytable_value) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = -{ - 3391, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -311, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -295, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, -634, -301, -634, -634, - -634, -634, -634, -634, -634, -634, -241, -634, -302, -342, - -290, -254, 5696, -300, -634, -210, -634, -634, -634, -634, - 4160, -634, -634, -634, -634, -219, -634, -634, 696, -634, - -634, -189, -69, -207, -634, 8625, -320, -634, -634, -203, - -634, 5696, -634, -634, -634, 5696, -155, -154, -634, -324, - -288, -634, -634, -634, 6417, -190, -634, -634, -634, -292, - -634, -196, -287, -634, -634, 5696, -195, -634, -306, 1081, - -634, -634, -634, -634, -219, -325, -634, 6785, -310, -634, - -151, -634, -277, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, 7889, 7889, 7889, -634, - -634, -634, -634, -634, -634, -634, -309, -634, -634, -634, - -185, -283, 8257, -183, -634, 7889, -227, -263, -299, -318, - -194, -204, -202, -200, -165, -166, -321, -179, -634, -634, - 7153, -634, -140, 7889, -634, -69, 5696, 5696, -139, 4544, - -634, -634, -634, -182, -180, -634, -173, -169, -178, 7521, - -164, 7889, -174, -163, -167, -162, -634, -634, -252, -634, - -634, -237, -634, -342, -161, -158, -634, -634, -634, -634, - 1466, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -19, -190, 6785, -296, 6785, -634, -634, 6785, 5696, -634, - -127, -634, -634, -634, -278, -634, -634, 7889, -121, -634, - -634, 7889, -156, -634, -634, -634, 7889, 7889, 7889, 7889, - 7889, 7889, 7889, 7889, 7889, 7889, 7889, 7889, 7889, 7889, - 7889, 7889, 7889, 7889, 7889, -634, -634, -634, -157, -634, - -634, -634, -634, 4928, -139, -219, -236, -634, -634, -634, - -634, -634, 1851, -634, 7889, -634, -634, -230, 7889, -213, - -634, -634, -118, -634, 1851, -634, -634, -634, -634, -634, - -634, -634, -634, -634, -634, -634, 7889, 7889, -634, -634, - -634, -634, -634, -634, -634, 6785, -634, -270, -634, 5312, - -634, -634, -153, -150, -634, -634, -634, -634, -634, -227, - -227, -263, -263, -299, -299, -299, -299, -318, -318, -194, - -204, -202, -200, -165, -166, 7889, -634, -634, -226, -190, - -139, -634, -113, 3006, -275, -634, -253, -634, 3776, -148, - -282, -634, 1851, -634, -634, -634, -634, 6049, -634, -634, - -208, -634, -634, -147, -634, -634, 3776, -146, -634, -150, - -111, 5696, -145, 7889, -144, -118, -143, -634, -634, 7889, - 7889, -634, -149, -141, 196, -136, 2621, -634, -116, -120, - 2236, -137, -634, -634, -634, -634, -239, 7889, 2236, -146, - -634, -634, 1851, 6785, -634, -634, -634, -634, -119, -150, - -634, -634, 1851, -112, -634, -634, -634 -}; - - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 0, 153, 154, 183, 181, 184, 182, 185, 152, 196, - 186, 187, 194, 195, 192, 193, 190, 191, 188, 189, - 169, 212, 213, 214, 215, 216, 217, 230, 231, 232, - 227, 228, 229, 242, 243, 244, 224, 225, 226, 239, - 240, 241, 221, 222, 223, 236, 237, 238, 218, 219, - 220, 233, 234, 235, 197, 198, 199, 245, 246, 247, - 158, 156, 157, 155, 161, 159, 160, 162, 163, 171, - 164, 165, 166, 167, 168, 200, 201, 202, 257, 258, - 259, 203, 204, 205, 269, 270, 271, 206, 207, 208, - 281, 282, 283, 209, 210, 211, 293, 294, 295, 134, - 133, 132, 0, 135, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 332, 333, 334, 335, 336, 337, 339, 340, 341, - 342, 343, 344, 346, 347, 350, 351, 352, 354, 355, - 317, 318, 338, 345, 356, 358, 359, 360, 362, 363, - 454, 319, 320, 321, 348, 322, 326, 327, 330, 353, - 357, 361, 323, 324, 328, 329, 349, 325, 331, 364, - 365, 366, 368, 370, 372, 374, 376, 380, 381, 382, - 383, 384, 385, 387, 388, 389, 390, 391, 392, 394, - 396, 397, 398, 400, 401, 378, 386, 393, 402, 404, - 405, 406, 408, 409, 367, 369, 371, 395, 373, 375, - 377, 379, 399, 403, 407, 455, 456, 459, 460, 461, - 462, 457, 458, 410, 412, 413, 414, 416, 417, 418, - 420, 421, 422, 424, 425, 426, 428, 429, 430, 432, - 433, 434, 436, 437, 438, 440, 441, 442, 444, 445, - 446, 448, 449, 450, 452, 453, 411, 415, 419, 423, - 427, 435, 439, 443, 431, 447, 451, 0, 180, 464, - 549, 131, 142, 465, 466, 467, 0, 548, 0, 550, - 0, 108, 107, 0, 119, 124, 149, 148, 146, 150, - 0, 143, 145, 151, 129, 174, 147, 463, 0, 545, - 547, 0, 0, 0, 470, 0, 0, 96, 93, 0, - 106, 0, 115, 109, 117, 0, 118, 0, 94, 125, - 0, 99, 144, 130, 0, 175, 1, 546, 172, 0, - 141, 139, 0, 137, 468, 0, 0, 97, 0, 0, - 551, 110, 114, 116, 112, 120, 111, 0, 126, 102, - 0, 100, 0, 2, 12, 13, 10, 11, 4, 5, - 6, 7, 8, 9, 15, 14, 0, 0, 0, 176, - 42, 41, 43, 40, 3, 17, 36, 19, 24, 25, - 0, 0, 29, 0, 44, 0, 48, 51, 54, 59, - 62, 64, 66, 68, 70, 72, 74, 0, 35, 33, - 0, 170, 0, 0, 136, 0, 0, 0, 0, 0, - 472, 95, 98, 0, 0, 530, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 496, 505, 509, 44, 77, - 90, 0, 485, 0, 151, 129, 488, 507, 487, 486, - 0, 489, 490, 511, 491, 518, 492, 493, 526, 494, - 0, 113, 0, 121, 0, 480, 128, 0, 0, 104, - 0, 101, 37, 38, 0, 21, 22, 0, 0, 27, - 26, 0, 180, 30, 32, 39, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 177, 178, 0, 173, - 92, 140, 138, 0, 0, 478, 0, 476, 471, 473, - 541, 540, 0, 532, 0, 544, 542, 0, 0, 0, - 525, 528, 0, 495, 0, 80, 81, 83, 82, 85, - 86, 87, 88, 89, 84, 79, 0, 0, 510, 506, - 508, 512, 519, 527, 123, 0, 483, 0, 127, 0, - 105, 16, 0, 23, 20, 31, 45, 46, 47, 50, - 49, 52, 53, 57, 58, 55, 56, 60, 61, 63, - 65, 67, 69, 71, 73, 0, 179, 469, 0, 479, - 0, 474, 0, 0, 0, 543, 0, 524, 0, 555, - 0, 553, 497, 78, 91, 122, 481, 0, 103, 18, - 0, 475, 477, 0, 535, 534, 537, 503, 520, 516, - 0, 0, 0, 0, 0, 0, 0, 482, 484, 0, - 0, 536, 0, 0, 515, 0, 0, 513, 0, 0, - 0, 0, 552, 554, 498, 76, 0, 538, 0, 503, - 502, 504, 522, 0, 500, 529, 499, 556, 0, 539, - 533, 514, 523, 0, 517, 531, 521 -}; - - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, - -634, -634, -289, -634, -358, -355, -401, -364, -279, -307, - -276, -280, -273, -281, -634, -354, -634, -378, -634, -367, - -397, 1, -634, -634, -634, 2, -634, -634, -634, -98, - -93, -92, -634, -634, -600, -634, -634, -634, -634, -181, - -634, -319, -326, -634, 6, -634, 0, -332, -634, -54, - -634, -634, -634, -428, -433, -272, -353, -477, -634, -357, - -467, -633, -400, -634, -634, -410, -408, -634, -634, -80, - -545, -350, -634, -216, -634, -371, -634, -214, -634, -634, - -634, -634, -212, -634, -634, -634, -634, -634, -634, -634, - -634, -61, -634, -634, -634, -634, -375 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 414, 415, 416, 592, 417, 418, 419, 420, 421, - 422, 423, 468, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 469, 615, 470, 576, 471, - 541, 472, 318, 498, 392, 473, 320, 321, 322, 352, - 353, 354, 323, 324, 325, 326, 327, 328, 372, 373, - 329, 330, 331, 332, 438, 369, 439, 365, 335, 336, - 337, 446, 375, 449, 450, 546, 547, 496, 587, 476, - 477, 478, 479, 564, 656, 685, 664, 665, 666, 686, - 480, 481, 482, 483, 667, 652, 484, 485, 668, 693, - 486, 487, 488, 628, 552, 623, 646, 662, 663, 489, - 338, 339, 340, 349, 490, 630, 631 -}; - - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int16 yytable[] = -{ - 334, 317, 319, 355, 362, 455, 333, 456, 457, 495, - 437, 460, 370, 580, 378, 584, 549, 586, 543, 632, - 588, 346, 343, 523, 524, 534, 348, 388, 650, 362, - 505, 506, 355, 681, 386, 364, 364, 684, 521, 522, - 364, 504, 492, 387, 513, 684, 650, 341, 377, -34, - 440, 507, 491, 493, 440, 508, 447, 497, 525, 526, - 535, 344, 452, 342, 440, 357, 347, 441, 358, 350, - 589, 585, 444, 442, 389, 424, 510, 390, 445, 654, - 391, 591, 511, 655, 647, 622, 538, 577, 500, 540, - 577, 501, 557, 636, 559, 637, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 648, 519, 635, 520, - 549, 351, 577, 359, 495, 575, 495, 502, 503, 495, - 688, 362, 603, 604, 605, 606, 577, 447, 577, 620, - 447, 578, 621, 595, 368, 577, 515, 692, 625, 620, - 593, 364, 641, 313, 314, 315, 516, 517, 518, 527, - 528, 424, 577, 627, 424, 374, 549, 577, 659, 379, - 658, 599, 600, 607, 608, 580, 601, 602, 384, 385, - 440, 443, 499, 451, 509, 514, 529, 530, 531, 447, - 532, 533, 536, 539, 545, 553, 550, 624, 551, 554, - 555, 626, 560, 562, 558, 561, 590, -35, 633, 634, - -33, 563, 594, -28, 616, 629, 694, 495, 639, 643, - 653, 660, 669, 619, 670, 577, -501, 672, 678, 677, - 674, 679, 687, 610, 447, 580, 465, 596, 597, 598, - 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, - 424, 424, 424, 424, 424, 424, 682, 683, 640, 695, - 609, 696, 612, 614, 371, 611, 671, 382, 381, 495, - 613, 649, 345, 383, 542, 680, 644, 642, 690, 380, - 447, 691, 618, 645, 581, 661, 582, 367, 583, 649, - 673, 675, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 676, 0, 0, 0, 0, 0, 540, - 0, 0, 0, 463, 0, 495, 0, 0, 0, 651, - 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 356, 0, 0, 362, 0, 651, 333, 0, - 363, 0, 0, 0, 0, 0, 333, 0, 334, 317, - 319, 0, 0, 0, 333, 376, 0, 0, 0, 0, - 0, 356, 0, 0, 0, 356, 0, 333, 0, 0, - 0, 333, 0, 0, 424, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 448, 0, 0, 0, 475, - 0, 333, 0, 0, 0, 474, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 448, 544, 0, 448, - 0, 0, 333, 333, 0, 333, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 475, 0, 0, 0, 0, 0, 474, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, - 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 448, 0, 0, 0, 0, 0, 333, - 0, 0, 475, 0, 0, 0, 0, 0, 474, 0, - 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, - 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 448, - 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 475, 0, 0, 0, 0, 475, 474, - 0, 0, 475, 0, 474, 0, 0, 0, 474, 0, - 0, 0, 0, 0, 0, 0, 475, 0, 0, 0, - 0, 363, 474, 0, 0, 0, 0, 333, 0, 0, - 0, 0, 0, 0, 0, 0, 475, 0, 0, 0, - 475, 0, 474, 0, 0, 0, 474, 0, 475, 0, - 0, 0, 475, 0, 474, 0, 0, 0, 474, 0, - 0, 0, 475, 0, 0, 0, 366, 0, 474, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 453, 454, 455, 0, 456, 457, 458, - 459, 460, 461, 462, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 463, 393, 309, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, - 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, - 0, 464, 0, 465, 466, 0, 0, 0, 0, 467, - 410, 411, 412, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 453, 454, - 455, 0, 456, 457, 458, 459, 460, 461, 462, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 463, 393, - 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 408, 0, 464, 0, 465, 579, - 0, 0, 0, 0, 467, 410, 411, 412, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 453, 454, 455, 0, 456, 457, 458, - 459, 460, 461, 462, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 463, 393, 309, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, - 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, - 0, 464, 0, 465, 0, 0, 0, 0, 0, 467, - 410, 411, 412, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 453, 454, - 455, 0, 456, 457, 458, 459, 460, 461, 462, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 463, 393, - 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 408, 0, 464, 0, 379, 0, - 0, 0, 0, 0, 467, 410, 411, 412, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 453, 454, 455, 0, 456, 457, 458, - 459, 460, 461, 462, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 463, 393, 309, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, - 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, - 0, 464, 0, 0, 0, 0, 0, 0, 0, 467, - 410, 411, 412, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 393, - 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 467, 410, 411, 412, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 0, 309, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 393, - 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 410, 411, 412, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, - 313, 314, 315, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 0, 360, 309, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 361, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 311, 312, 313, 314, 315, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 0, 0, 309, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 548, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 311, 312, 313, 314, - 315, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 311, 312, 313, 314, 315, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 0, 0, 309, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 311, 312, 313, 314, 315, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 4, 5, 6, 7, 0, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 0, 0, 0, 0, 0, 0, 0, 311, 312, - 313, 314, 315, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 0, 0, 0, 0, 0, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 0, 0, 0, 0, 0, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 393, 309, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 0, 0, 406, 407, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, - 0, 494, 657, 0, 0, 0, 0, 0, 410, 411, - 412, 413, 3, 4, 5, 6, 7, 0, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, - 0, 0, 0, 0, 0, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, - 0, 0, 0, 0, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, - 393, 309, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 0, 0, 406, 407, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 408, 0, 0, 409, 0, - 0, 0, 0, 0, 0, 0, 410, 411, 412, 413, - 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, - 0, 0, 0, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, - 0, 0, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 393, 309, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 0, 0, 406, 407, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 408, 0, 0, 0, 494, 0, 0, - 0, 0, 0, 0, 410, 411, 412, 413, 3, 4, - 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, - 0, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 0, 0, 0, 0, 0, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 0, 393, 309, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 0, 0, 406, 407, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 408, 0, 0, 537, 0, 0, 0, 0, 0, - 0, 0, 410, 411, 412, 413, 3, 4, 5, 6, - 7, 0, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 69, 0, 0, 0, 0, 0, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 0, 0, 0, 0, 0, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 0, 393, 309, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, - 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, - 410, 411, 412, 413, 3, 4, 5, 6, 7, 0, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 0, 0, 0, 0, 0, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 0, 0, 0, 0, 0, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 0, 393, 309, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 0, 0, 406, 407, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 410, 411, - 412, 413, 3, 4, 5, 6, 7, 0, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, - 0, 0, 0, 0, 0, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, - 0, 0, 0, 0, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 512, 0, - 393, 309, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 0, 0, 406, 407, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 410, 411, 412, 413, - 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, - 0, 0, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 0, 0, 309 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 0, 0, 322, 330, 24, 0, 26, 27, 387, - 364, 30, 81, 480, 346, 492, 449, 494, 446, 564, - 497, 323, 323, 341, 342, 346, 368, 359, 628, 355, - 339, 340, 351, 666, 358, 360, 360, 670, 337, 338, - 360, 408, 367, 367, 422, 678, 646, 358, 368, 358, - 360, 360, 384, 385, 360, 364, 375, 367, 376, 377, - 381, 362, 368, 358, 360, 365, 368, 359, 368, 359, - 498, 367, 359, 365, 362, 364, 359, 365, 365, 361, - 368, 359, 365, 365, 359, 552, 440, 365, 365, 443, - 365, 368, 459, 363, 461, 365, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 359, 370, 585, 372, - 543, 365, 365, 323, 492, 367, 494, 406, 407, 497, - 359, 447, 523, 524, 525, 526, 365, 446, 365, 365, - 449, 368, 368, 511, 323, 365, 425, 682, 368, 365, - 507, 360, 368, 384, 385, 386, 373, 374, 375, 343, - 344, 440, 365, 366, 443, 362, 589, 365, 366, 362, - 637, 519, 520, 527, 528, 632, 521, 522, 323, 323, - 360, 367, 323, 368, 359, 358, 380, 379, 378, 498, - 345, 347, 361, 323, 323, 358, 368, 554, 368, 358, - 368, 558, 366, 360, 358, 358, 323, 358, 576, 577, - 358, 363, 323, 359, 361, 323, 683, 585, 361, 322, - 358, 358, 323, 545, 359, 365, 362, 361, 359, 368, - 363, 25, 359, 530, 543, 692, 362, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 362, 367, 615, 368, - 529, 363, 532, 534, 323, 531, 653, 355, 351, 637, - 533, 628, 316, 355, 445, 665, 623, 620, 678, 349, - 589, 679, 544, 623, 490, 646, 490, 338, 490, 646, - 655, 659, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 660, -1, -1, -1, -1, -1, 653, - -1, -1, -1, 322, -1, 683, -1, -1, -1, 628, - 677, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, -1, -1, 651, -1, 646, 322, -1, - 330, -1, -1, -1, -1, -1, 330, -1, 338, 338, - 338, -1, -1, -1, 338, 345, -1, -1, -1, -1, - -1, 351, -1, -1, -1, 355, -1, 351, -1, -1, - -1, 355, -1, -1, 653, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 375, -1, -1, -1, 379, - -1, 375, -1, -1, -1, 379, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 446, 447, -1, 449, - -1, -1, 446, 447, -1, 449, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 480, -1, -1, -1, -1, -1, 480, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 498, -1, - -1, -1, -1, -1, 498, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 543, -1, -1, -1, -1, -1, 543, - -1, -1, 552, -1, -1, -1, -1, -1, 552, -1, - -1, -1, -1, -1, 564, -1, -1, -1, -1, -1, - 564, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 589, - -1, -1, -1, -1, -1, 589, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 623, -1, -1, -1, -1, 628, 623, - -1, -1, 632, -1, 628, -1, -1, -1, 632, -1, - -1, -1, -1, -1, -1, -1, 646, -1, -1, -1, - -1, 651, 646, -1, -1, -1, -1, 651, -1, -1, - -1, -1, -1, -1, -1, -1, 666, -1, -1, -1, - 670, -1, 666, -1, -1, -1, 670, -1, 678, -1, - -1, -1, 682, -1, 678, -1, -1, -1, 682, -1, - -1, -1, 692, -1, -1, -1, 0, -1, 692, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, -1, -1, - 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 368, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, - 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, - 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, -1, 362, 363, -1, -1, -1, -1, 368, - 369, 370, 371, 372, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, -1, 362, 363, - -1, -1, -1, -1, 368, 369, 370, 371, 372, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, - 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, - 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, -1, 362, -1, -1, -1, -1, -1, 368, - 369, 370, 371, 372, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, 360, -1, 362, -1, - -1, -1, -1, -1, 368, 369, 370, 371, 372, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, - 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, - 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, 360, -1, -1, -1, -1, -1, -1, -1, 368, - 369, 370, 371, 372, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, -1, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 368, 369, 370, 371, 372, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, - 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, -1, -1, 324, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, -1, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 369, 370, 371, 372, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, - 384, 385, 386, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, -1, 323, 324, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 368, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 382, 383, 384, 385, 386, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, -1, -1, 324, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 363, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 382, 383, 384, 385, - 386, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - -1, -1, 324, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 363, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 382, 383, 384, 385, 386, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, -1, -1, 324, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 363, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 382, 383, 384, 385, 386, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, -1, -1, - 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5, 6, 7, 8, 9, -1, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, 382, 383, - 384, 385, 386, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, -1, -1, 339, 340, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, - -1, 362, 363, -1, -1, -1, -1, -1, 369, 370, - 371, 372, 5, 6, 7, 8, 9, -1, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, - -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, -1, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, -1, -1, 339, 340, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, 361, -1, - -1, -1, -1, -1, -1, -1, 369, 370, 371, 372, - 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, - -1, -1, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, -1, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, -1, -1, 339, 340, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 358, -1, -1, -1, 362, -1, -1, - -1, -1, -1, -1, 369, 370, 371, 372, 5, 6, - 7, 8, 9, -1, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, -1, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - -1, -1, 339, 340, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 358, -1, -1, 361, -1, -1, -1, -1, -1, - -1, -1, 369, 370, 371, 372, 5, 6, 7, 8, - 9, -1, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 82, -1, -1, -1, -1, -1, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, -1, -1, -1, -1, -1, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, - 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, - 369, 370, 371, 372, 5, 6, 7, 8, 9, -1, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, -1, -1, 339, 340, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 369, 370, - 371, 372, 5, 6, 7, 8, 9, -1, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, - -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, -1, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, -1, -1, 339, 340, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 369, 370, 371, 372, - 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, - -1, -1, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, -1, -1, 324 -}; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = -{ - 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 324, - 368, 382, 383, 384, 385, 386, 387, 422, 423, 426, - 427, 428, 429, 433, 434, 435, 436, 437, 438, 441, - 442, 443, 444, 445, 447, 449, 450, 451, 491, 492, - 493, 358, 358, 323, 362, 450, 323, 368, 368, 494, - 359, 365, 430, 431, 432, 442, 447, 365, 368, 323, - 323, 368, 443, 447, 360, 448, 0, 492, 323, 446, - 81, 323, 439, 440, 362, 453, 447, 368, 448, 362, - 470, 431, 430, 432, 323, 323, 358, 367, 448, 362, - 365, 368, 425, 323, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 339, 340, 358, 361, - 369, 370, 371, 372, 392, 393, 394, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 445, 447, - 360, 359, 365, 367, 359, 365, 452, 442, 447, 454, - 455, 368, 368, 22, 23, 24, 26, 27, 28, 29, - 30, 31, 32, 322, 360, 362, 363, 368, 403, 416, - 418, 420, 422, 426, 445, 447, 460, 461, 462, 463, - 471, 472, 473, 474, 477, 478, 481, 482, 483, 490, - 495, 448, 367, 448, 362, 418, 458, 367, 424, 323, - 365, 368, 403, 403, 420, 339, 340, 360, 364, 359, - 359, 365, 321, 418, 358, 403, 373, 374, 375, 370, - 372, 337, 338, 341, 342, 376, 377, 343, 344, 380, - 379, 378, 345, 347, 346, 381, 361, 361, 416, 323, - 416, 421, 440, 454, 447, 323, 456, 457, 363, 455, - 368, 368, 485, 358, 358, 368, 368, 420, 358, 420, - 366, 358, 360, 363, 464, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 367, 419, 365, 368, 363, - 461, 474, 478, 483, 458, 367, 458, 459, 458, 454, - 323, 359, 395, 420, 323, 418, 403, 403, 403, 405, - 405, 406, 406, 407, 407, 407, 407, 408, 408, 409, - 410, 411, 412, 413, 414, 417, 361, 363, 456, 448, - 365, 368, 461, 486, 420, 368, 420, 366, 484, 323, - 496, 497, 471, 418, 418, 458, 363, 365, 363, 361, - 420, 368, 457, 322, 460, 472, 487, 359, 359, 420, - 435, 442, 476, 358, 361, 365, 465, 363, 458, 366, - 358, 476, 488, 489, 467, 468, 469, 475, 479, 323, - 359, 421, 361, 497, 363, 418, 420, 368, 359, 25, - 463, 462, 362, 367, 462, 466, 470, 359, 359, 420, - 466, 467, 471, 480, 458, 368, 363 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 391, 392, 393, 393, 393, 393, 393, 393, 393, - 393, 393, 393, 393, 393, 393, 393, 394, 394, 394, - 394, 394, 394, 395, 396, 397, 398, 398, 399, 399, - 400, 400, 401, 402, 402, 402, 403, 403, 403, 403, - 404, 404, 404, 404, 405, 405, 405, 405, 406, 406, - 406, 407, 407, 407, 408, 408, 408, 408, 408, 409, - 409, 409, 410, 410, 411, 411, 412, 412, 413, 413, - 414, 414, 415, 415, 416, 417, 416, 418, 418, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 420, 420, 421, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 424, 423, 425, 425, 426, 427, 427, 428, - 428, 429, 430, 430, 431, 431, 431, 431, 432, 433, - 433, 433, 433, 433, 434, 434, 434, 434, 434, 435, - 435, 436, 437, 437, 437, 437, 438, 439, 439, 440, - 440, 440, 441, 442, 442, 443, 443, 443, 443, 443, - 443, 443, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 445, 446, 446, 447, 447, 448, 448, 448, 448, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 450, 450, 450, 452, 451, - 453, 451, 454, 454, 455, 455, 456, 456, 457, 457, - 458, 458, 458, 459, 459, 460, 461, 461, 462, 462, - 462, 462, 462, 462, 462, 463, 464, 465, 463, 466, - 466, 468, 467, 469, 467, 470, 470, 471, 471, 472, - 472, 473, 473, 474, 475, 475, 476, 476, 477, 477, - 479, 478, 480, 480, 481, 481, 482, 482, 484, 483, - 485, 483, 486, 483, 487, 487, 488, 488, 489, 489, - 490, 490, 490, 490, 490, 491, 491, 492, 492, 492, - 494, 493, 495, 496, 496, 497, 497 -}; - - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 4, 1, - 3, 2, 2, 1, 1, 1, 2, 2, 2, 1, - 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, - 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, - 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, - 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 0, 6, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 2, 2, 4, 2, 3, 4, 2, - 3, 4, 0, 6, 2, 3, 2, 1, 1, 2, - 3, 3, 2, 3, 2, 1, 2, 1, 1, 1, - 3, 4, 6, 5, 1, 2, 3, 5, 4, 1, - 2, 1, 1, 1, 1, 1, 4, 1, 3, 1, - 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 1, 1, 3, 1, 2, 2, 3, 3, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, - 0, 5, 1, 2, 3, 4, 1, 3, 1, 2, - 1, 3, 4, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 0, 0, 5, 1, - 1, 0, 2, 0, 2, 2, 3, 1, 2, 1, - 2, 1, 2, 5, 3, 1, 1, 4, 1, 2, - 0, 8, 0, 1, 3, 2, 1, 2, 0, 6, - 0, 8, 0, 7, 1, 1, 1, 0, 2, 3, - 2, 2, 2, 3, 2, 1, 2, 1, 1, 1, - 0, 3, 5, 1, 3, 1, 4 -}; - - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (pParseContext, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) - -/* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 - - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, pParseContext); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -{ - FILE *yyo = yyoutput; - YYUSE (yyo); - YYUSE (pParseContext); - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# endif - YYUSE (yytype); -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -{ - YYFPRINTF (yyoutput, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); - YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -{ - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) -{ - unsigned long int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , pParseContext); - YYFPRINTF (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ -} while (0) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -static YYSIZE_T -yystrlen (const char *yystr) -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -static char * -yystpcpy (char *yydest, const char *yysrc) -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message - about the unexpected token YYTOKEN for the state stack whose top is - YYSSP. - - Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is - not large enough to hold the message. In that case, also set - *YYMSG_ALLOC to the required number of bytes. Return 2 if the - required number of bytes is too large to store. */ -static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) -{ - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ - const char *yyformat = YY_NULL; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ - int yycount = 0; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yychar) is if - this state is a consistent state with a default action. Thus, - detecting the absence of a lookahead is sufficient to determine - that there is no unexpected or expected token to report. In that - case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is a - consistent state with a default action. There might have been a - previous inconsistent state, consistent state with a non-default - action, or user semantic action that manipulated yychar. - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (yytoken != YYEMPTY) - { - int yyn = yypact[*yyssp]; - yyarg[yycount++] = yytname[yytoken]; - if (!yypact_value_is_default (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yyx; - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR - && !yytable_value_is_error (yytable[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - break; - } - yyarg[yycount++] = yytname[yyx]; - { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - } - } - } - } - - switch (yycount) - { -# define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -# undef YYCASE_ - } - - { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; - } - - if (*yymsg_alloc < yysize) - { - *yymsg_alloc = 2 * yysize; - if (! (yysize <= *yymsg_alloc - && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) - *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; - return 1; - } - - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - { - char *yyp = *yymsg; - int yyi = 0; - while ((*yyp = *yyformat) != '\0') - if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyformat += 2; - } - else - { - yyp++; - yyformat++; - } - } - return 0; -} -#endif /* YYERROR_VERBOSE */ - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) -{ - YYUSE (yyvaluep); - YYUSE (pParseContext); - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - - - -/*----------. -| yyparse. | -`----------*/ - -int -yyparse (glslang::TParseContext* pParseContext) -{ -/* The lookahead symbol. */ -int yychar; - - -/* The semantic value of the lookahead symbol. */ -/* Default value used for initialization, for pacifying older GCCs - or non-GCC compilers. */ -YY_INITIAL_VALUE (static YYSTYPE yyval_default;) -YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); - - /* Number of syntax errors so far. */ - int yynerrs; - - int yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYSIZE_T yystacksize; - - int yyn; - int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - yystacksize = YYINITDEPTH; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - yysetstate: - *yyssp = yystate; - - if (yyss + yystacksize - 1 <= yyssp) - { - /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (&yylval, parseContext); - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 2: -#line 293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); - } -#line 4016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 3: -#line 299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 4: -#line 302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); - } -#line 4033 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 5: -#line 306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); - } -#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 6: -#line 310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); - } -#line 4050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 7: -#line 313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); - } -#line 4059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 8: -#line 317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); - } -#line 4068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 9: -#line 321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); - } -#line 4077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 10: -#line 325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); - } -#line 4086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 11: -#line 329 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); - } -#line 4095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 12: -#line 333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); - } -#line 4103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 13: -#line 336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); - } -#line 4112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 14: -#line 340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true); - } -#line 4121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 15: -#line 344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); - } -#line 4129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 16: -#line 347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); - if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) - (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); - } -#line 4139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 17: -#line 355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 18: -#line 358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); - } -#line 4155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 19: -#line 361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4163 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 20: -#line 364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); - } -#line 4171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 21: -#line 367 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); - } -#line 4181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 22: -#line 372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); - } -#line 4191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 23: -#line 380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 24: -#line 387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); - delete (yyvsp[0].interm).function; - } -#line 4209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 25: -#line 394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); - } -#line 4217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 26: -#line 400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; - } -#line 4226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 27: -#line 404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; - } -#line 4235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 28: -#line 411 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-1].interm); - } -#line 4243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 29: -#line 414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); - } -#line 4251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 30: -#line 420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-1].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-1].interm).function; - (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); - } -#line 4263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 31: -#line 427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-2].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-2].interm).function; - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); - } -#line 4275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 32: -#line 437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-1].interm); - } -#line 4283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 33: -#line 445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // Constructor - (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); - } -#line 4293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 34: -#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // - // Should be a method or subroutine call, but we haven't recognized the arguments yet. - // - (yyval.interm).function = 0; - (yyval.interm).intermNode = 0; - - TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); - if (method) { - (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); - (yyval.interm).intermNode = method->getObject(); - } else { - TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); - if (symbol) { - parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); - TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); - (yyval.interm).function = function; - } else - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); - } - - if ((yyval.interm).function == 0) { - // error recover - TString empty(""); - (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); - } - } -#line 4325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 35: -#line 477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // Constructor - (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); - } -#line 4335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 36: -#line 485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); - } -#line 4346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 37: -#line 491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); - } -#line 4355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 38: -#line 495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); - } -#line 4364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 39: -#line 499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-1].interm).op != EOpNull) { - char errorOp[2] = {0, 0}; - switch((yyvsp[-1].interm).op) { - case EOpNegative: errorOp[0] = '-'; break; - case EOpLogicalNot: errorOp[0] = '!'; break; - case EOpBitwiseNot: errorOp[0] = '~'; break; - default: break; // some compilers want this - } - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); - } else { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) - (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); - } - } -#line 4385 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 40: -#line 519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 4391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 41: -#line 520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 4397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 42: -#line 521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 4403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 43: -#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 4410 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 44: -#line 528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 45: -#line 529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 46: -#line 534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 47: -#line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 48: -#line 548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4453 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 49: -#line 549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 50: -#line 554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 51: -#line 562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 52: -#line 563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 53: -#line 569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 54: -#line 578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 55: -#line 579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 56: -#line 584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 57: -#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 58: -#line 594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 59: -#line 602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 60: -#line 603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 61: -#line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 62: -#line 622 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4585 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 63: -#line 623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 64: -#line 632 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 65: -#line 633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 66: -#line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 67: -#line 643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 4630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 68: -#line 652 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 69: -#line 653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 70: -#line 661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 71: -#line 662 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 72: -#line 670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 73: -#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 4678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 74: -#line 679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 75: -#line 680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - ++parseContext.controlFlowNestingLevel; - } -#line 4692 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 76: -#line 683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - --parseContext.controlFlowNestingLevel; - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } - } -#line 4709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 77: -#line 698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 78: -#line 699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); - parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } - } -#line 4732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 79: -#line 714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAssign; - } -#line 4741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 80: -#line 718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpMulAssign; - } -#line 4750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 81: -#line 722 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpDivAssign; - } -#line 4759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 82: -#line 726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpModAssign; - } -#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 83: -#line 731 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAddAssign; - } -#line 4778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 84: -#line 735 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpSubAssign; - } -#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 85: -#line 739 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; - } -#line 4796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 86: -#line 743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; - } -#line 4805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 87: -#line 747 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; - } -#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 88: -#line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; - } -#line 4823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 89: -#line 755 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; - } -#line 4832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 90: -#line 762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 91: -#line 765 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } - } -#line 4853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 92: -#line 776 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 4862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 93: -#line 783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); - (yyval.interm.intermNode) = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature - } -#line 4872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 94: -#line 788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) - (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; - } -#line 4882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 95: -#line 793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); - - // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope - parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); - parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); - (yyval.interm.intermNode) = 0; - } -#line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 96: -#line 801 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); - (yyval.interm.intermNode) = 0; - } -#line 4904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 97: -#line 805 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); - (yyval.interm.intermNode) = 0; - } -#line 4913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 98: -#line 809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); - (yyval.interm.intermNode) = 0; - } -#line 4922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 99: -#line 813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); - (yyval.interm.intermNode) = 0; - } -#line 4932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 100: -#line 818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); - parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); - (yyval.interm.intermNode) = 0; - } -#line 4942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 101: -#line 823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); - parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); - (yyval.interm.intermNode) = 0; - } -#line 4953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 102: -#line 832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 4959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 103: -#line 832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - --parseContext.structNestingLevel; - parseContext.blockName = (yyvsp[-4].lex).string; - parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); - parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); - parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; - (yyval.interm).loc = (yyvsp[-5].interm.type).loc; - (yyval.interm).typeList = (yyvsp[-1].interm.typeList); - } -#line 4973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 104: -#line 843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.identifierList) = new TIdentifierList; - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); - } -#line 4982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 105: -#line 847 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); - } -#line 4991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 106: -#line 854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).function = (yyvsp[-1].interm.function); - (yyval.interm).loc = (yyvsp[0].lex).loc; - } -#line 5000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 107: -#line 861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.function) = (yyvsp[0].interm.function); - } -#line 5008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 108: -#line 864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.function) = (yyvsp[0].interm.function); - } -#line 5016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 109: -#line 871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // Add the parameter - (yyval.interm.function) = (yyvsp[-1].interm.function); - if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) - (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); - else - delete (yyvsp[0].interm).param.type; - } -#line 5029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 110: -#line 879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // - // Only first parameter of one-parameter functions can be void - // The check for named parameters not being void is done in parameter_declarator - // - if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { - // - // This parameter > first is void - // - parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); - delete (yyvsp[0].interm).param.type; - } else { - // Add the parameter - (yyval.interm.function) = (yyvsp[-2].interm.function); - (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); - } - } -#line 5051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 111: -#line 899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { - parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", - GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); - } - if ((yyvsp[-2].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - - // Add the function as a prototype after parsing it (we do not support recursion) - TFunction *function; - TType type((yyvsp[-2].interm.type)); - - // Potentially rename shader entry point function. No-op most of the time. - parseContext.renameShaderFunction((yyvsp[-1].lex).string); - - // Make the function - function = new TFunction((yyvsp[-1].lex).string, type); - (yyval.interm.function) = function; - } -#line 5075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 112: -#line 922 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-1].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); - } - if ((yyvsp[-1].interm.type).basicType == EbtVoid) { - parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); - } - parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); - - TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).param = param; - } -#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 113: -#line 937 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - } - TType* type = new TType((yyvsp[-2].interm.type)); - type->transferArraySizes((yyvsp[0].interm).arraySizes); - type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); - - parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes()); - parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); - parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); - - TParameter param = { (yyvsp[-1].lex).string, type }; - - (yyval.interm).loc = (yyvsp[-1].lex).loc; - (yyval.interm).param = param; - } -#line 5119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 114: -#line 962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); - - } -#line 5135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 115: -#line 973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); - - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - } -#line 5147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 116: -#line 983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); - } -#line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 117: -#line 993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); - - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - } -#line 5174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 118: -#line 1003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; - (yyval.interm).param = param; - if ((yyvsp[0].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); - } -#line 5185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 119: -#line 1012 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); - } -#line 5193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 120: -#line 1015 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-2].interm); - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); - } -#line 5202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 121: -#line 1019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-3].interm); - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); - } -#line 5211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 122: -#line 1023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).type = (yyvsp[-5].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); - } -#line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 123: -#line 1028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).type = (yyvsp[-4].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); - } -#line 5231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 124: -#line 1036 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).type = (yyvsp[0].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); - } -#line 5241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 125: -#line 1041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).type = (yyvsp[-1].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); - } -#line 5251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 126: -#line 1046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).type = (yyvsp[-2].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); - } -#line 5261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 127: -#line 1051 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).type = (yyvsp[-4].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); - } -#line 5271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 128: -#line 1056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).type = (yyvsp[-3].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); - } -#line 5281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 129: -#line 1065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - - parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - } - - parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); - } -#line 5297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 130: -#line 1076 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); - - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - } - - if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) - (yyvsp[0].interm.type).arraySizes = nullptr; - - parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); - - (yyval.interm.type) = (yyvsp[0].interm.type); - - if (! (yyval.interm.type).qualifier.isInterpolation() && - ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || - (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) - (yyval.interm.type).qualifier.smooth = true; - } -#line 5326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 131: -#line 1103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); - parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.invariant = true; - } -#line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 132: -#line 1112 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.smooth = true; - } -#line 5349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 133: -#line 1119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.flat = true; - } -#line 5361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 134: -#line 1126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); -#ifdef NV_EXTENSIONS - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); -#else - parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective"); -#endif - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.nopersp = true; - } -#line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 135: -#line 1137 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.explicitInterp = true; -#endif - } -#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 136: -#line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[-1].interm.type); - } -#line 5399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 137: -#line 1155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 138: -#line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[-2].interm.type); - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); - } -#line 5417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 139: -#line 1165 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); - } -#line 5426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 140: -#line 1169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[-2].lex).loc); - parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); - } -#line 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 141: -#line 1173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { // because "shared" is both an identifier and a keyword - (yyval.interm.type).init((yyvsp[0].lex).loc); - TString strShared("shared"); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); - } -#line 5445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 142: -#line 1181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.noContraction = true; - } -#line 5456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 143: -#line 1190 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 144: -#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[-1].interm.type); - if ((yyval.interm.type).basicType == EbtVoid) - (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; - - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); - } -#line 5477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 145: -#line 1204 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 146: -#line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5493 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 147: -#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 148: -#line 1214 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 149: -#line 1218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 150: -#line 1222 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 151: -#line 1226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - } -#line 5537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 152: -#line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant - } -#line 5546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 153: -#line 1236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); - - parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); - - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqVaryingIn; - } -#line 5563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 154: -#line 1248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); - - parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); - - (yyval.interm.type).init((yyvsp[0].lex).loc); - if (parseContext.language == EShLangVertex) - (yyval.interm.type).qualifier.storage = EvqVaryingOut; - else - (yyval.interm.type).qualifier.storage = EvqVaryingIn; - } -#line 5582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 155: -#line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqInOut; - } -#line 5592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 156: -#line 1267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "in"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqIn; - } -#line 5603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 157: -#line 1273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "out"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqOut; - } -#line 5614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 158: -#line 1279 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.centroid = true; - } -#line 5626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 159: -#line 1286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.patch = true; - } -#line 5637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 160: -#line 1292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.sample = true; - } -#line 5647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 161: -#line 1297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; - } -#line 5657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 162: -#line 1302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqBuffer; - } -#line 5667 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 163: -#line 1307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "shared"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); - parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqShared; - } -#line 5680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 164: -#line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.coherent = true; - } -#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 165: -#line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.volatil = true; - } -#line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 166: -#line 1323 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.restrict = true; - } -#line 5707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 167: -#line 1327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.readonly = true; - } -#line 5716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 168: -#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.writeonly = true; - } -#line 5725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 169: -#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); - parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - } -#line 5736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 170: -#line 1341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); - parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[-3].lex).loc); - } -#line 5747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 171: -#line 1350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.nonUniform = true; - } -#line 5756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 172: -#line 1357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // TODO - } -#line 5764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 173: -#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // TODO: 4.0 semantics: subroutines - // 1) make sure each identifier is a type declared earlier with SUBROUTINE - // 2) save all of the identifiers for future comparison with the declared function - } -#line 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 174: -#line 1368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - } -#line 5783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 175: -#line 1372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); - (yyval.interm.type) = (yyvsp[-1].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; - } -#line 5794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 176: -#line 1381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[-1].lex).loc; - (yyval.interm).arraySizes = new TArraySizes; - (yyval.interm).arraySizes->addInnerSize(); - } -#line 5804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 177: -#line 1386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[-2].lex).loc; - (yyval.interm).arraySizes = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); - } -#line 5817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 178: -#line 1394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-2].interm); - (yyval.interm).arraySizes->addInnerSize(); - } -#line 5826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 179: -#line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[-3].interm); - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); - } -#line 5838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 180: -#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtVoid; - } -#line 5847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 181: -#line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - } -#line 5856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 182: -#line 1416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - } -#line 5866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 183: -#line 1421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - } -#line 5876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 184: -#line 1426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - } -#line 5886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 185: -#line 1431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - } -#line 5896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 186: -#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - } -#line 5905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 187: -#line 1440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - } -#line 5915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 188: -#line 1445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt8; - } -#line 5925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 189: -#line 1450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint8; - } -#line 5935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 190: -#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt16; - } -#line 5945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 191: -#line 1460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint16; - } -#line 5955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 192: -#line 1465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - } -#line 5965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 193: -#line 1470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - } -#line 5975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 194: -#line 1475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - } -#line 5985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 195: -#line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - } -#line 5995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 196: -#line 1485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - } -#line 6004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 197: -#line 1489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); - } -#line 6014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 198: -#line 1494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); - } -#line 6024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 199: -#line 1499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(4); - } -#line 6034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 200: -#line 1504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(2); - } -#line 6045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 201: -#line 1510 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(3); - } -#line 6056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 202: -#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(4); - } -#line 6067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 203: -#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setVector(2); - } -#line 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 204: -#line 1528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setVector(3); - } -#line 6089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 205: -#line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setVector(4); - } -#line 6100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 206: -#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); - } -#line 6111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 207: -#line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); - } -#line 6122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 208: -#line 1552 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(4); - } -#line 6133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 209: -#line 1558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(2); - } -#line 6144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 210: -#line 1564 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(3); - } -#line 6155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 211: -#line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(4); - } -#line 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 212: -#line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(2); - } -#line 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 213: -#line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(3); - } -#line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 214: -#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(4); - } -#line 6196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 215: -#line 1591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); - } -#line 6206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 216: -#line 1596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(3); - } -#line 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 217: -#line 1601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(4); - } -#line 6226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 218: -#line 1606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt8; - (yyval.interm.type).setVector(2); - } -#line 6237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 219: -#line 1612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt8; - (yyval.interm.type).setVector(3); - } -#line 6248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 220: -#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt8; - (yyval.interm.type).setVector(4); - } -#line 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 221: -#line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt16; - (yyval.interm.type).setVector(2); - } -#line 6270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 222: -#line 1630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt16; - (yyval.interm.type).setVector(3); - } -#line 6281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 223: -#line 1636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt16; - (yyval.interm.type).setVector(4); - } -#line 6292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 224: -#line 1642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); - } -#line 6303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 225: -#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(3); - } -#line 6314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 226: -#line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(4); - } -#line 6325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 227: -#line 1660 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(2); - } -#line 6336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 228: -#line 1666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(3); - } -#line 6347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 229: -#line 1672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(4); - } -#line 6358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 230: -#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(2); - } -#line 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 231: -#line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(3); - } -#line 6380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 232: -#line 1690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(4); - } -#line 6391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 233: -#line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint8; - (yyval.interm.type).setVector(2); - } -#line 6402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 234: -#line 1702 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt8; - (yyval.interm.type).setVector(3); - } -#line 6413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 235: -#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint8; - (yyval.interm.type).setVector(4); - } -#line 6424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 236: -#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint16; - (yyval.interm.type).setVector(2); - } -#line 6435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 237: -#line 1720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint16; - (yyval.interm.type).setVector(3); - } -#line 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 238: -#line 1726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint16; - (yyval.interm.type).setVector(4); - } -#line 6457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 239: -#line 1732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(2); - } -#line 6468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 240: -#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(3); - } -#line 6479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 241: -#line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(4); - } -#line 6490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 242: -#line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(2); - } -#line 6501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 243: -#line 1756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(3); - } -#line 6512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 244: -#line 1762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(4); - } -#line 6523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 245: -#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 246: -#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6543 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 247: -#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); - } -#line 6553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 248: -#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 249: -#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 3); - } -#line 6573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 250: -#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 4); - } -#line 6583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 251: -#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 2); - } -#line 6593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 252: -#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 253: -#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 4); - } -#line 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 254: -#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 2); - } -#line 6623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 255: -#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 3); - } -#line 6633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 256: -#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); - } -#line 6643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 257: -#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 258: -#line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 259: -#line 1840 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); - } -#line 6676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 260: -#line 1846 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 261: -#line 1852 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 3); - } -#line 6698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 262: -#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 4); - } -#line 6709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 263: -#line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 2); - } -#line 6720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 264: -#line 1870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 265: -#line 1876 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 4); - } -#line 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 266: -#line 1882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 2); - } -#line 6753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 267: -#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 3); - } -#line 6764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 268: -#line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); - } -#line 6775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 269: -#line 1900 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 270: -#line 1906 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 271: -#line 1912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 4); - } -#line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 272: -#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 273: -#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 3); - } -#line 6830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 274: -#line 1930 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 4); - } -#line 6841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 275: -#line 1936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 2); - } -#line 6852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 276: -#line 1942 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 277: -#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 4); - } -#line 6874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 278: -#line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 2); - } -#line 6885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 279: -#line 1960 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 3); - } -#line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 280: -#line 1966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 4); - } -#line 6907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 281: -#line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 282: -#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 283: -#line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); - } -#line 6940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 284: -#line 1990 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); - } -#line 6951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 285: -#line 1996 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 3); - } -#line 6962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 286: -#line 2002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 4); - } -#line 6973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 287: -#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 2); - } -#line 6984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 288: -#line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); - } -#line 6995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 289: -#line 2020 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 4); - } -#line 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 290: -#line 2026 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 2); - } -#line 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 291: -#line 2032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 3); - } -#line 7028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 292: -#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); - } -#line 7039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 293: -#line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); - } -#line 7050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 294: -#line 2050 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); - } -#line 7061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 295: -#line 2056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); - } -#line 7072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 296: -#line 2062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); - } -#line 7083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 297: -#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 3); - } -#line 7094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 298: -#line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 4); - } -#line 7105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 299: -#line 2080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 2); - } -#line 7116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 300: -#line 2086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); - } -#line 7127 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 301: -#line 2092 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 4); - } -#line 7138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 302: -#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 2); - } -#line 7149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 303: -#line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 3); - } -#line 7160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 304: -#line 2110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); - } -#line 7171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 305: -#line 2116 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtAtomicUint; - } -#line 7181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 306: -#line 2121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D); - } -#line 7191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 307: -#line 2126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D); - } -#line 7201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 308: -#line 2131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd3D); - } -#line 7211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 309: -#line 2136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube); - } -#line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 310: -#line 2141 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); - } -#line 7231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 311: -#line 2146 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); - } -#line 7241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 312: -#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); - } -#line 7251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 313: -#line 2156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); - } -#line 7261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 314: -#line 2161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); - } -#line 7271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 315: -#line 2166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); - } -#line 7281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 316: -#line 2171 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); - } -#line 7291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 317: -#line 2176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); - } -#line 7301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 318: -#line 2181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); - } -#line 7311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 319: -#line 2186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd1D); -#endif - } -#line 7324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 320: -#line 2194 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd2D); -#endif - } -#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 321: -#line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd3D); -#endif - } -#line 7350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 322: -#line 2210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, EsdCube); -#endif - } -#line 7363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 323: -#line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true); -#endif - } -#line 7376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 324: -#line 2226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true); -#endif - } -#line 7389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 325: -#line 2234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true); -#endif - } -#line 7402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 326: -#line 2242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true); -#endif - } -#line 7415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 327: -#line 2250 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true); -#endif - } -#line 7428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 328: -#line 2258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true); -#endif - } -#line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 329: -#line 2266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true); -#endif - } -#line 7454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 330: -#line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true); -#endif - } -#line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 331: -#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true); -#endif - } -#line 7480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 332: -#line 2290 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D); - } -#line 7490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 333: -#line 2295 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D); - } -#line 7500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 334: -#line 2300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd3D); - } -#line 7510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 335: -#line 2305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube); - } -#line 7520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 336: -#line 2310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); - } -#line 7530 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 337: -#line 2315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); - } -#line 7540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 338: -#line 2320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); - } -#line 7550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 339: -#line 2325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D); - } -#line 7560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 340: -#line 2330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D); - } -#line 7570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 341: -#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd3D); - } -#line 7580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 342: -#line 2340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube); - } -#line 7590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 343: -#line 2345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); - } -#line 7600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 344: -#line 2350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); - } -#line 7610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 345: -#line 2355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); - } -#line 7620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 346: -#line 2360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect); - } -#line 7630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 347: -#line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); - } -#line 7640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 348: -#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, EsdRect); -#endif - } -#line 7653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 349: -#line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true); -#endif - } -#line 7666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 350: -#line 2386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdRect); - } -#line 7676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 351: -#line 2391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdRect); - } -#line 7686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 352: -#line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); - } -#line 7696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 353: -#line 2401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer); -#endif - } -#line 7709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 354: -#line 2409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); - } -#line 7719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 355: -#line 2414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); - } -#line 7729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 356: -#line 2419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); - } -#line 7739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 357: -#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true); -#endif - } -#line 7752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 358: -#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); - } -#line 7762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 359: -#line 2437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); - } -#line 7772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 360: -#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); - } -#line 7782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 361: -#line 2447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true); -#endif - } -#line 7795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 362: -#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); - } -#line 7805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 363: -#line 2460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); - } -#line 7815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 364: -#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(false); - } -#line 7825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 365: -#line 2470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(true); - } -#line 7835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 366: -#line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); - } -#line 7845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 367: -#line 2480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D); -#endif - } -#line 7858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 368: -#line 2488 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); - } -#line 7868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 369: -#line 2493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D); -#endif - } -#line 7881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 370: -#line 2501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); - } -#line 7891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 371: -#line 2506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D); -#endif - } -#line 7904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 372: -#line 2514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); - } -#line 7914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 373: -#line 2519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube); -#endif - } -#line 7927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 374: -#line 2527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); - } -#line 7937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 375: -#line 2532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true); -#endif - } -#line 7950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 376: -#line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); - } -#line 7960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 377: -#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true); -#endif - } -#line 7973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 378: -#line 2553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); - } -#line 7983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 379: -#line 2558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true); -#endif - } -#line 7996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 380: -#line 2566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); - } -#line 8006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 381: -#line 2571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); - } -#line 8016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 382: -#line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); - } -#line 8026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 383: -#line 2581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); - } -#line 8036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 384: -#line 2586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); - } -#line 8046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 385: -#line 2591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); - } -#line 8056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 386: -#line 2596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); - } -#line 8066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 387: -#line 2601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); - } -#line 8076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 388: -#line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); - } -#line 8086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 389: -#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); - } -#line 8096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 390: -#line 2616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); - } -#line 8106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 391: -#line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); - } -#line 8116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 392: -#line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); - } -#line 8126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 393: -#line 2631 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); - } -#line 8136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 394: -#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); - } -#line 8146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 395: -#line 2641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect); -#endif - } -#line 8159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 396: -#line 2649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); - } -#line 8169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 397: -#line 2654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); - } -#line 8179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 398: -#line 2659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); - } -#line 8189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 399: -#line 2664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer); -#endif - } -#line 8202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 400: -#line 2672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); - } -#line 8212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 401: -#line 2677 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); - } -#line 8222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 402: -#line 2682 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); - } -#line 8232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 403: -#line 2687 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true); -#endif - } -#line 8245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 404: -#line 2695 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); - } -#line 8255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 405: -#line 2700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); - } -#line 8265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 406: -#line 2705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); - } -#line 8275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 407: -#line 2710 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true); -#endif - } -#line 8288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 408: -#line 2718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); - } -#line 8298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 409: -#line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); - } -#line 8308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 410: -#line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); - } -#line 8318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 411: -#line 2733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D); -#endif - } -#line 8331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 412: -#line 2741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); - } -#line 8341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 413: -#line 2746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); - } -#line 8351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 414: -#line 2751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); - } -#line 8361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 415: -#line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D); -#endif - } -#line 8374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 416: -#line 2764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); - } -#line 8384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 417: -#line 2769 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); - } -#line 8394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 418: -#line 2774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); - } -#line 8404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 419: -#line 2779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D); -#endif - } -#line 8417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 420: -#line 2787 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); - } -#line 8427 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 421: -#line 2792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); - } -#line 8437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 422: -#line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); - } -#line 8447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 423: -#line 2802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect); -#endif - } -#line 8460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 424: -#line 2810 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); - } -#line 8470 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 425: -#line 2815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); - } -#line 8480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 426: -#line 2820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); - } -#line 8490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 427: -#line 2825 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube); -#endif - } -#line 8503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 428: -#line 2833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); - } -#line 8513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 429: -#line 2838 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); - } -#line 8523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 430: -#line 2843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); - } -#line 8533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 431: -#line 2848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer); -#endif - } -#line 8546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 432: -#line 2856 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); - } -#line 8556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 433: -#line 2861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); - } -#line 8566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 434: -#line 2866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); - } -#line 8576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 435: -#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true); -#endif - } -#line 8589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 436: -#line 2879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); - } -#line 8599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 437: -#line 2884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); - } -#line 8609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 438: -#line 2889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); - } -#line 8619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 439: -#line 2894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true); -#endif - } -#line 8632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 440: -#line 2902 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); - } -#line 8642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 441: -#line 2907 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); - } -#line 8652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 442: -#line 2912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); - } -#line 8662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 443: -#line 2917 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true); -#endif - } -#line 8675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 444: -#line 2925 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); - } -#line 8685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 445: -#line 2930 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); - } -#line 8695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 446: -#line 2935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); - } -#line 8705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 447: -#line 2940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true); -#endif - } -#line 8718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 448: -#line 2948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); - } -#line 8728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 449: -#line 2953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); - } -#line 8738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 450: -#line 2958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); - } -#line 8748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 451: -#line 2963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true); -#endif - } -#line 8761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 452: -#line 2971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); - } -#line 8771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 453: -#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); - } -#line 8781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 454: -#line 2981 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { // GL_OES_EGL_image_external - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D); - (yyval.interm.type).sampler.external = true; - } -#line 8792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 455: -#line 2987 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtFloat); - } -#line 8803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 456: -#line 2993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtFloat, true); - } -#line 8814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 457: -#line 2999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtFloat16); -#endif - } -#line 8828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 458: -#line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtFloat16, true); -#endif - } -#line 8842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 459: -#line 3017 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtInt); - } -#line 8853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 460: -#line 3023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtInt, true); - } -#line 8864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 461: -#line 3029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtUint); - } -#line 8875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 462: -#line 3035 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtUint, true); - } -#line 8886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 463: -#line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.type) = (yyvsp[0].interm.type); - (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; - parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); - } -#line 8896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 464: -#line 3046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // - // This is for user defined type names. The lexical phase looked up the - // type. - // - if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { - const TType& structure = variable->getType(); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtStruct; - (yyval.interm.type).userDef = &structure; - } else - parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); - } -#line 8914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 465: -#line 3062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); - } -#line 8924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 466: -#line 3067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); - } -#line 8934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 467: -#line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); - } -#line 8944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 468: -#line 3080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 8950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 469: -#line 3080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); - parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); - TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); - if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); - (yyval.interm.type).init((yyvsp[-5].lex).loc); - (yyval.interm.type).basicType = EbtStruct; - (yyval.interm.type).userDef = structure; - --parseContext.structNestingLevel; - } -#line 8966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 470: -#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 8972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 471: -#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); - (yyval.interm.type).init((yyvsp[-4].lex).loc); - (yyval.interm.type).basicType = EbtStruct; - (yyval.interm.type).userDef = structure; - --parseContext.structNestingLevel; - } -#line 8984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 472: -#line 3101 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = (yyvsp[0].interm.typeList); - } -#line 8992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 473: -#line 3104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { - for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { - if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) - parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); - } - (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); - } - } -#line 9007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 474: -#line 3117 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - } - - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); - - for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - TType type((yyvsp[-2].interm.type)); - type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName()); - type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes()); - type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); - parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes()); - (*(yyval.interm.typeList))[i].type->shallowCopy(type); - } - } -#line 9034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 475: -#line 3139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - } - - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - - parseContext.memberQualifierCheck((yyvsp[-3].interm.type)); - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); - - for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - TType type((yyvsp[-2].interm.type)); - type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName()); - type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes()); - type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); - parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes()); - (*(yyval.interm.typeList))[i].type->shallowCopy(type); - } - } -#line 9063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 476: -#line 3166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = new TTypeList; - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 9072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 477: -#line 3170 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 9080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 478: -#line 3176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); - } -#line 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 479: -#line 3181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); - - (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); - (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); - } -#line 9103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 480: -#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 9111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 481: -#line 3195 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); - } -#line 9122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 482: -#line 3201 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 9133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 483: -#line 3210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); - } -#line 9141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 484: -#line 3213 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - } -#line 9149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 485: -#line 3219 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 486: -#line 3223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 487: -#line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 488: -#line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 489: -#line 3231 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 490: -#line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 491: -#line 3233 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 492: -#line 3234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 493: -#line 3235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 494: -#line 3236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 495: -#line 3240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 9215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 496: -#line 3241 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } -#line 9224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 497: -#line 3245 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - } -#line 9233 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 498: -#line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) - (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); - } -#line 9243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 499: -#line 3257 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 500: -#line 3258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 9255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 501: -#line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - ++parseContext.controlFlowNestingLevel; - } -#line 9263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 502: -#line 3265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 503: -#line 3269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } -#line 9282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 504: -#line 3274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 505: -#line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 9301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 506: -#line 3286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) - (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); - } -#line 9311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 507: -#line 3294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case - } - } -#line 9324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 508: -#line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case - } else - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); - } -#line 9337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 509: -#line 3313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 9343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 510: -#line 3314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 9349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 511: -#line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 512: -#line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 513: -#line 3327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); - } -#line 9375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 514: -#line 3334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); - } -#line 9384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 515: -#line 3338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); - (yyval.interm.nodePair).node2 = 0; - } -#line 9393 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 516: -#line 3346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); - } -#line 9402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 517: -#line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); - - TType type((yyvsp[-3].interm.type)); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - if (initNode) - (yyval.interm.intermTypedNode) = initNode->getAsTyped(); - else - (yyval.interm.intermTypedNode) = 0; - } -#line 9417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 518: -#line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 519: -#line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 520: -#line 3372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // start new switch sequence on the switch stack - ++parseContext.controlFlowNestingLevel; - ++parseContext.statementNestingLevel; - parseContext.switchSequenceStack.push_back(new TIntermSequence); - parseContext.switchLevel.push_back(parseContext.statementNestingLevel); - parseContext.symbolTable.push(); - } -#line 9447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 521: -#line 3380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); - delete parseContext.switchSequenceStack.back(); - parseContext.switchSequenceStack.pop_back(); - parseContext.switchLevel.pop_back(); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } -#line 9461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 522: -#line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 9469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 523: -#line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 524: -#line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); - else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); - else { - parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); - parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); - } - } -#line 9494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 525: -#line 3413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); - else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); - else - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); - } -#line 9508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 526: -#line 3425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 527: -#line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 528: -#line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } -#line 9538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 529: -#line 3442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } -#line 9550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 530: -#line 3449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } -#line 9560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 531: -#line 3454 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); - - parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } -#line 9576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 532: -#line 3465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; - } -#line 9587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 533: -#line 3471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast((yyvsp[-2].interm.nodePair).node1), reinterpret_cast((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc); - if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); - (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - --parseContext.loopNestingLevel; - --parseContext.statementNestingLevel; - --parseContext.controlFlowNestingLevel; - } -#line 9604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 534: -#line 3486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 535: -#line 3489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 536: -#line 3495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 9628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 537: -#line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = 0; - } -#line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 538: -#line 3504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = 0; - } -#line 9645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 539: -#line 3508 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); - } -#line 9654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 540: -#line 3515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); - } -#line 9664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 541: -#line 3520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); - } -#line 9674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 542: -#line 3525 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); - if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); - if (parseContext.inMain) - parseContext.postEntryPointReturn = true; - } -#line 9686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 543: -#line 3532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); - } -#line 9694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 544: -#line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); - } -#line 9703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 545: -#line 3544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); - } -#line 9712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 546: -#line 3548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[0].interm.intermNode) != nullptr) { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); - parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); - } - } -#line 9723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 547: -#line 3557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 548: -#line 3560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 9739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 549: -#line 3563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); - parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); - (yyval.interm.intermNode) = nullptr; - } -#line 9749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 550: -#line 3571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); - (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); - } -#line 9758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 551: -#line 3575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // May be best done as post process phase on intermediate code - if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); - parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); - parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); - (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); - - // store the pragma information for debug and optimize and other vendor specific - // information. This information can be queried from the parse tree - (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); - (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); - (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); - } -#line 9778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 552: -#line 3593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); - parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); - } -#line 9787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 553: -#line 3599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.attributes) = (yyvsp[0].interm.attributes); - } -#line 9795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 554: -#line 3602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); - } -#line 9803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 555: -#line 3607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); - } -#line 9811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 556: -#line 3610 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); - } -#line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - -#line 9823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - /* Now 'shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; - - goto yynewstate; - - -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ -yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); - - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (pParseContext, YY_("syntax error")); -#else -# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ - yyssp, yytoken) - { - char const *yymsgp = YY_("syntax error"); - int yysyntax_error_status; - yysyntax_error_status = YYSYNTAX_ERROR; - if (yysyntax_error_status == 0) - yymsgp = yymsg; - else if (yysyntax_error_status == 1) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (!yymsg) - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - yysyntax_error_status = 2; - } - else - { - yysyntax_error_status = YYSYNTAX_ERROR; - yymsgp = yymsg; - } - } - yyerror (pParseContext, yymsgp); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - } -# undef YYSYNTAX_ERROR -#endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval, pParseContext); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp, pParseContext); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#if !defined yyoverflow || YYERROR_VERBOSE -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (pParseContext, YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - -yyreturn: - if (yychar != YYEMPTY) - { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval, pParseContext); - } - /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, pParseContext); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - return yyresult; -} -#line 3614 "MachineIndependent/glslang.y" /* yacc.c:1906 */ - diff --git a/deps/glslang-new/glslang/MachineIndependent/glslang_tab.cpp.h b/deps/glslang-new/glslang/MachineIndependent/glslang_tab.cpp.h deleted file mode 100644 index 7cfb79766f..0000000000 --- a/deps/glslang-new/glslang/MachineIndependent/glslang_tab.cpp.h +++ /dev/null @@ -1,489 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.0. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - FLOAT16_T = 260, - FLOAT = 261, - FLOAT32_T = 262, - DOUBLE = 263, - FLOAT64_T = 264, - CONST = 265, - BOOL = 266, - INT = 267, - UINT = 268, - INT64_T = 269, - UINT64_T = 270, - INT32_T = 271, - UINT32_T = 272, - INT16_T = 273, - UINT16_T = 274, - INT8_T = 275, - UINT8_T = 276, - BREAK = 277, - CONTINUE = 278, - DO = 279, - ELSE = 280, - FOR = 281, - IF = 282, - DISCARD = 283, - RETURN = 284, - SWITCH = 285, - CASE = 286, - DEFAULT = 287, - SUBROUTINE = 288, - BVEC2 = 289, - BVEC3 = 290, - BVEC4 = 291, - IVEC2 = 292, - IVEC3 = 293, - IVEC4 = 294, - UVEC2 = 295, - UVEC3 = 296, - UVEC4 = 297, - I64VEC2 = 298, - I64VEC3 = 299, - I64VEC4 = 300, - U64VEC2 = 301, - U64VEC3 = 302, - U64VEC4 = 303, - I32VEC2 = 304, - I32VEC3 = 305, - I32VEC4 = 306, - U32VEC2 = 307, - U32VEC3 = 308, - U32VEC4 = 309, - I16VEC2 = 310, - I16VEC3 = 311, - I16VEC4 = 312, - U16VEC2 = 313, - U16VEC3 = 314, - U16VEC4 = 315, - I8VEC2 = 316, - I8VEC3 = 317, - I8VEC4 = 318, - U8VEC2 = 319, - U8VEC3 = 320, - U8VEC4 = 321, - VEC2 = 322, - VEC3 = 323, - VEC4 = 324, - MAT2 = 325, - MAT3 = 326, - MAT4 = 327, - CENTROID = 328, - IN = 329, - OUT = 330, - INOUT = 331, - UNIFORM = 332, - PATCH = 333, - SAMPLE = 334, - BUFFER = 335, - SHARED = 336, - NONUNIFORM = 337, - COHERENT = 338, - VOLATILE = 339, - RESTRICT = 340, - READONLY = 341, - WRITEONLY = 342, - DVEC2 = 343, - DVEC3 = 344, - DVEC4 = 345, - DMAT2 = 346, - DMAT3 = 347, - DMAT4 = 348, - F16VEC2 = 349, - F16VEC3 = 350, - F16VEC4 = 351, - F16MAT2 = 352, - F16MAT3 = 353, - F16MAT4 = 354, - F32VEC2 = 355, - F32VEC3 = 356, - F32VEC4 = 357, - F32MAT2 = 358, - F32MAT3 = 359, - F32MAT4 = 360, - F64VEC2 = 361, - F64VEC3 = 362, - F64VEC4 = 363, - F64MAT2 = 364, - F64MAT3 = 365, - F64MAT4 = 366, - NOPERSPECTIVE = 367, - FLAT = 368, - SMOOTH = 369, - LAYOUT = 370, - __EXPLICITINTERPAMD = 371, - MAT2X2 = 372, - MAT2X3 = 373, - MAT2X4 = 374, - MAT3X2 = 375, - MAT3X3 = 376, - MAT3X4 = 377, - MAT4X2 = 378, - MAT4X3 = 379, - MAT4X4 = 380, - DMAT2X2 = 381, - DMAT2X3 = 382, - DMAT2X4 = 383, - DMAT3X2 = 384, - DMAT3X3 = 385, - DMAT3X4 = 386, - DMAT4X2 = 387, - DMAT4X3 = 388, - DMAT4X4 = 389, - F16MAT2X2 = 390, - F16MAT2X3 = 391, - F16MAT2X4 = 392, - F16MAT3X2 = 393, - F16MAT3X3 = 394, - F16MAT3X4 = 395, - F16MAT4X2 = 396, - F16MAT4X3 = 397, - F16MAT4X4 = 398, - F32MAT2X2 = 399, - F32MAT2X3 = 400, - F32MAT2X4 = 401, - F32MAT3X2 = 402, - F32MAT3X3 = 403, - F32MAT3X4 = 404, - F32MAT4X2 = 405, - F32MAT4X3 = 406, - F32MAT4X4 = 407, - F64MAT2X2 = 408, - F64MAT2X3 = 409, - F64MAT2X4 = 410, - F64MAT3X2 = 411, - F64MAT3X3 = 412, - F64MAT3X4 = 413, - F64MAT4X2 = 414, - F64MAT4X3 = 415, - F64MAT4X4 = 416, - ATOMIC_UINT = 417, - SAMPLER1D = 418, - SAMPLER2D = 419, - SAMPLER3D = 420, - SAMPLERCUBE = 421, - SAMPLER1DSHADOW = 422, - SAMPLER2DSHADOW = 423, - SAMPLERCUBESHADOW = 424, - SAMPLER1DARRAY = 425, - SAMPLER2DARRAY = 426, - SAMPLER1DARRAYSHADOW = 427, - SAMPLER2DARRAYSHADOW = 428, - ISAMPLER1D = 429, - ISAMPLER2D = 430, - ISAMPLER3D = 431, - ISAMPLERCUBE = 432, - ISAMPLER1DARRAY = 433, - ISAMPLER2DARRAY = 434, - USAMPLER1D = 435, - USAMPLER2D = 436, - USAMPLER3D = 437, - USAMPLERCUBE = 438, - USAMPLER1DARRAY = 439, - USAMPLER2DARRAY = 440, - SAMPLER2DRECT = 441, - SAMPLER2DRECTSHADOW = 442, - ISAMPLER2DRECT = 443, - USAMPLER2DRECT = 444, - SAMPLERBUFFER = 445, - ISAMPLERBUFFER = 446, - USAMPLERBUFFER = 447, - SAMPLERCUBEARRAY = 448, - SAMPLERCUBEARRAYSHADOW = 449, - ISAMPLERCUBEARRAY = 450, - USAMPLERCUBEARRAY = 451, - SAMPLER2DMS = 452, - ISAMPLER2DMS = 453, - USAMPLER2DMS = 454, - SAMPLER2DMSARRAY = 455, - ISAMPLER2DMSARRAY = 456, - USAMPLER2DMSARRAY = 457, - SAMPLEREXTERNALOES = 458, - F16SAMPLER1D = 459, - F16SAMPLER2D = 460, - F16SAMPLER3D = 461, - F16SAMPLER2DRECT = 462, - F16SAMPLERCUBE = 463, - F16SAMPLER1DARRAY = 464, - F16SAMPLER2DARRAY = 465, - F16SAMPLERCUBEARRAY = 466, - F16SAMPLERBUFFER = 467, - F16SAMPLER2DMS = 468, - F16SAMPLER2DMSARRAY = 469, - F16SAMPLER1DSHADOW = 470, - F16SAMPLER2DSHADOW = 471, - F16SAMPLER1DARRAYSHADOW = 472, - F16SAMPLER2DARRAYSHADOW = 473, - F16SAMPLER2DRECTSHADOW = 474, - F16SAMPLERCUBESHADOW = 475, - F16SAMPLERCUBEARRAYSHADOW = 476, - SAMPLER = 477, - SAMPLERSHADOW = 478, - TEXTURE1D = 479, - TEXTURE2D = 480, - TEXTURE3D = 481, - TEXTURECUBE = 482, - TEXTURE1DARRAY = 483, - TEXTURE2DARRAY = 484, - ITEXTURE1D = 485, - ITEXTURE2D = 486, - ITEXTURE3D = 487, - ITEXTURECUBE = 488, - ITEXTURE1DARRAY = 489, - ITEXTURE2DARRAY = 490, - UTEXTURE1D = 491, - UTEXTURE2D = 492, - UTEXTURE3D = 493, - UTEXTURECUBE = 494, - UTEXTURE1DARRAY = 495, - UTEXTURE2DARRAY = 496, - TEXTURE2DRECT = 497, - ITEXTURE2DRECT = 498, - UTEXTURE2DRECT = 499, - TEXTUREBUFFER = 500, - ITEXTUREBUFFER = 501, - UTEXTUREBUFFER = 502, - TEXTURECUBEARRAY = 503, - ITEXTURECUBEARRAY = 504, - UTEXTURECUBEARRAY = 505, - TEXTURE2DMS = 506, - ITEXTURE2DMS = 507, - UTEXTURE2DMS = 508, - TEXTURE2DMSARRAY = 509, - ITEXTURE2DMSARRAY = 510, - UTEXTURE2DMSARRAY = 511, - F16TEXTURE1D = 512, - F16TEXTURE2D = 513, - F16TEXTURE3D = 514, - F16TEXTURE2DRECT = 515, - F16TEXTURECUBE = 516, - F16TEXTURE1DARRAY = 517, - F16TEXTURE2DARRAY = 518, - F16TEXTURECUBEARRAY = 519, - F16TEXTUREBUFFER = 520, - F16TEXTURE2DMS = 521, - F16TEXTURE2DMSARRAY = 522, - SUBPASSINPUT = 523, - SUBPASSINPUTMS = 524, - ISUBPASSINPUT = 525, - ISUBPASSINPUTMS = 526, - USUBPASSINPUT = 527, - USUBPASSINPUTMS = 528, - F16SUBPASSINPUT = 529, - F16SUBPASSINPUTMS = 530, - IMAGE1D = 531, - IIMAGE1D = 532, - UIMAGE1D = 533, - IMAGE2D = 534, - IIMAGE2D = 535, - UIMAGE2D = 536, - IMAGE3D = 537, - IIMAGE3D = 538, - UIMAGE3D = 539, - IMAGE2DRECT = 540, - IIMAGE2DRECT = 541, - UIMAGE2DRECT = 542, - IMAGECUBE = 543, - IIMAGECUBE = 544, - UIMAGECUBE = 545, - IMAGEBUFFER = 546, - IIMAGEBUFFER = 547, - UIMAGEBUFFER = 548, - IMAGE1DARRAY = 549, - IIMAGE1DARRAY = 550, - UIMAGE1DARRAY = 551, - IMAGE2DARRAY = 552, - IIMAGE2DARRAY = 553, - UIMAGE2DARRAY = 554, - IMAGECUBEARRAY = 555, - IIMAGECUBEARRAY = 556, - UIMAGECUBEARRAY = 557, - IMAGE2DMS = 558, - IIMAGE2DMS = 559, - UIMAGE2DMS = 560, - IMAGE2DMSARRAY = 561, - IIMAGE2DMSARRAY = 562, - UIMAGE2DMSARRAY = 563, - F16IMAGE1D = 564, - F16IMAGE2D = 565, - F16IMAGE3D = 566, - F16IMAGE2DRECT = 567, - F16IMAGECUBE = 568, - F16IMAGE1DARRAY = 569, - F16IMAGE2DARRAY = 570, - F16IMAGECUBEARRAY = 571, - F16IMAGEBUFFER = 572, - F16IMAGE2DMS = 573, - F16IMAGE2DMSARRAY = 574, - STRUCT = 575, - VOID = 576, - WHILE = 577, - IDENTIFIER = 578, - TYPE_NAME = 579, - FLOATCONSTANT = 580, - DOUBLECONSTANT = 581, - INT16CONSTANT = 582, - UINT16CONSTANT = 583, - INT32CONSTANT = 584, - UINT32CONSTANT = 585, - INTCONSTANT = 586, - UINTCONSTANT = 587, - INT64CONSTANT = 588, - UINT64CONSTANT = 589, - BOOLCONSTANT = 590, - FLOAT16CONSTANT = 591, - LEFT_OP = 592, - RIGHT_OP = 593, - INC_OP = 594, - DEC_OP = 595, - LE_OP = 596, - GE_OP = 597, - EQ_OP = 598, - NE_OP = 599, - AND_OP = 600, - OR_OP = 601, - XOR_OP = 602, - MUL_ASSIGN = 603, - DIV_ASSIGN = 604, - ADD_ASSIGN = 605, - MOD_ASSIGN = 606, - LEFT_ASSIGN = 607, - RIGHT_ASSIGN = 608, - AND_ASSIGN = 609, - XOR_ASSIGN = 610, - OR_ASSIGN = 611, - SUB_ASSIGN = 612, - LEFT_PAREN = 613, - RIGHT_PAREN = 614, - LEFT_BRACKET = 615, - RIGHT_BRACKET = 616, - LEFT_BRACE = 617, - RIGHT_BRACE = 618, - DOT = 619, - COMMA = 620, - COLON = 621, - EQUAL = 622, - SEMICOLON = 623, - BANG = 624, - DASH = 625, - TILDE = 626, - PLUS = 627, - STAR = 628, - SLASH = 629, - PERCENT = 630, - LEFT_ANGLE = 631, - RIGHT_ANGLE = 632, - VERTICAL_BAR = 633, - CARET = 634, - AMPERSAND = 635, - QUESTION = 636, - INVARIANT = 637, - PRECISE = 638, - HIGH_PRECISION = 639, - MEDIUM_PRECISION = 640, - LOW_PRECISION = 641, - PRECISION = 642, - PACKED = 643, - RESOURCE = 644, - SUPERP = 645 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; -union YYSTYPE -{ -#line 70 "MachineIndependent/glslang.y" /* yacc.c:1909 */ - - struct { - glslang::TSourceLoc loc; - union { - glslang::TString *string; - int i; - unsigned int u; - long long i64; - unsigned long long u64; - bool b; - double d; - }; - glslang::TSymbol* symbol; - } lex; - struct { - glslang::TSourceLoc loc; - glslang::TOperator op; - union { - TIntermNode* intermNode; - glslang::TIntermNodePair nodePair; - glslang::TIntermTyped* intermTypedNode; - glslang::TAttributes* attributes; - }; - union { - glslang::TPublicType type; - glslang::TFunction* function; - glslang::TParameter param; - glslang::TTypeLoc typeLine; - glslang::TTypeList* typeList; - glslang::TArraySizes* arraySizes; - glslang::TIdentifierList* identifierList; - }; - } interm; - -#line 480 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ -}; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - - -int yyparse (glslang::TParseContext* pParseContext); - -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ diff --git a/deps/glslang-new/glslang/MachineIndependent/iomapper.cpp b/deps/glslang-new/glslang/MachineIndependent/iomapper.cpp deleted file mode 100644 index 9ab9deaa35..0000000000 --- a/deps/glslang-new/glslang/MachineIndependent/iomapper.cpp +++ /dev/null @@ -1,805 +0,0 @@ -// -// Copyright (C) 2016-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 "../Include/Common.h" -#include "../Include/InfoSink.h" -#include "iomapper.h" -#include "LiveTraverser.h" -#include "localintermediate.h" - -#include "gl_types.h" - -#include -#include - -// -// Map IO bindings. -// -// High-level algorithm for one stage: -// -// 1. Traverse all code (live+dead) to find the explicitly provided bindings. -// -// 2. Traverse (just) the live code to determine which non-provided bindings -// require auto-numbering. We do not auto-number dead ones. -// -// 3. Traverse all the code to apply the bindings: -// a. explicitly given bindings are offset according to their type -// b. implicit live bindings are auto-numbered into the holes, using -// any open binding slot. -// c. implicit dead bindings are left un-bound. -// - - -namespace glslang { - -struct TVarEntryInfo -{ - int id; - TIntermSymbol* symbol; - bool live; - int newBinding; - int newSet; - int newLocation; - int newComponent; - int newIndex; - - struct TOrderById - { - inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) - { - return l.id < r.id; - } - }; - - struct TOrderByPriority - { - // ordering: - // 1) has both binding and set - // 2) has binding but no set - // 3) has no binding but set - // 4) has no binding and no set - inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) - { - const TQualifier& lq = l.symbol->getQualifier(); - const TQualifier& rq = r.symbol->getQualifier(); - - // simple rules: - // has binding gives 2 points - // has set gives 1 point - // who has the most points is more important. - int lPoints = (lq.hasBinding() ? 2 : 0) + (lq.hasSet() ? 1 : 0); - int rPoints = (rq.hasBinding() ? 2 : 0) + (rq.hasSet() ? 1 : 0); - - if (lPoints == rPoints) - return l.id < r.id; - return lPoints > rPoints; - } - }; -}; - - - -typedef std::vector TVarLiveMap; - -class TVarGatherTraverser : public TLiveTraverser -{ -public: - TVarGatherTraverser(const TIntermediate& i, bool traverseDeadCode, TVarLiveMap& inList, TVarLiveMap& outList, TVarLiveMap& uniformList) - : TLiveTraverser(i, traverseDeadCode, true, true, false) - , inputList(inList) - , outputList(outList) - , uniformList(uniformList) - { - } - - - virtual void visitSymbol(TIntermSymbol* base) - { - TVarLiveMap* target = nullptr; - if (base->getQualifier().storage == EvqVaryingIn) - target = &inputList; - else if (base->getQualifier().storage == EvqVaryingOut) - target = &outputList; - else if (base->getQualifier().isUniformOrBuffer() && !base->getQualifier().layoutPushConstant) - target = &uniformList; - - if (target) { - TVarEntryInfo ent = { base->getId(), base, !traverseAll }; - TVarLiveMap::iterator at = std::lower_bound(target->begin(), target->end(), ent, TVarEntryInfo::TOrderById()); - if (at != target->end() && at->id == ent.id) - at->live = at->live || !traverseAll; // update live state - else - target->insert(at, ent); - } - } - -private: - TVarLiveMap& inputList; - TVarLiveMap& outputList; - TVarLiveMap& uniformList; -}; - -class TVarSetTraverser : public TLiveTraverser -{ -public: - TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& inList, const TVarLiveMap& outList, const TVarLiveMap& uniformList) - : TLiveTraverser(i, true, true, true, false) - , inputList(inList) - , outputList(outList) - , uniformList(uniformList) - { - } - - - virtual void visitSymbol(TIntermSymbol* base) - { - const TVarLiveMap* source; - if (base->getQualifier().storage == EvqVaryingIn) - source = &inputList; - else if (base->getQualifier().storage == EvqVaryingOut) - source = &outputList; - else if (base->getQualifier().isUniformOrBuffer()) - source = &uniformList; - else - return; - - TVarEntryInfo ent = { base->getId() }; - TVarLiveMap::const_iterator at = std::lower_bound(source->begin(), source->end(), ent, TVarEntryInfo::TOrderById()); - if (at == source->end()) - return; - - if (at->id != ent.id) - return; - - if (at->newBinding != -1) - base->getWritableType().getQualifier().layoutBinding = at->newBinding; - if (at->newSet != -1) - base->getWritableType().getQualifier().layoutSet = at->newSet; - if (at->newLocation != -1) - base->getWritableType().getQualifier().layoutLocation = at->newLocation; - if (at->newComponent != -1) - base->getWritableType().getQualifier().layoutComponent = at->newComponent; - if (at->newIndex != -1) - base->getWritableType().getQualifier().layoutIndex = at->newIndex; - } - - private: - const TVarLiveMap& inputList; - const TVarLiveMap& outputList; - const TVarLiveMap& uniformList; -}; - -struct TNotifyUniformAdaptor -{ - EShLanguage stage; - TIoMapResolver& resolver; - inline TNotifyUniformAdaptor(EShLanguage s, TIoMapResolver& r) - : stage(s) - , resolver(r) - { - } - inline void operator()(TVarEntryInfo& ent) - { - resolver.notifyBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); - } -private: - TNotifyUniformAdaptor& operator=(TNotifyUniformAdaptor&); -}; - -struct TNotifyInOutAdaptor -{ - EShLanguage stage; - TIoMapResolver& resolver; - inline TNotifyInOutAdaptor(EShLanguage s, TIoMapResolver& r) - : stage(s) - , resolver(r) - { - } - inline void operator()(TVarEntryInfo& ent) - { - resolver.notifyInOut(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); - } -private: - TNotifyInOutAdaptor& operator=(TNotifyInOutAdaptor&); -}; - -struct TResolverUniformAdaptor -{ - TResolverUniformAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e, TIntermediate& interm) - : stage(s) - , resolver(r) - , infoSink(i) - , error(e) - , intermediate(interm) - { - } - - inline void operator()(TVarEntryInfo& ent) - { - ent.newLocation = -1; - ent.newComponent = -1; - ent.newBinding = -1; - ent.newSet = -1; - ent.newIndex = -1; - const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), - ent.live); - if (isValid) { - ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), - ent.live); - ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); - ent.newLocation = resolver.resolveUniformLocation(stage, ent.symbol->getName().c_str(), - ent.symbol->getType(), ent.live); - - if (ent.newBinding != -1) { - if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) { - TString err = "mapped binding out of range: " + ent.symbol->getName(); - - infoSink.info.message(EPrefixInternalError, err.c_str()); - error = true; - } - } - if (ent.newSet != -1) { - if (ent.newSet >= int(TQualifier::layoutSetEnd)) { - TString err = "mapped set out of range: " + ent.symbol->getName(); - - infoSink.info.message(EPrefixInternalError, err.c_str()); - error = true; - } - } - } else { - TString errorMsg = "Invalid binding: " + ent.symbol->getName(); - infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); - error = true; - } - } - - EShLanguage stage; - TIoMapResolver& resolver; - TInfoSink& infoSink; - bool& error; - TIntermediate& intermediate; - -private: - TResolverUniformAdaptor& operator=(TResolverUniformAdaptor&); -}; - -struct TResolverInOutAdaptor -{ - TResolverInOutAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e, TIntermediate& interm) - : stage(s) - , resolver(r) - , infoSink(i) - , error(e) - , intermediate(interm) - { - } - - inline void operator()(TVarEntryInfo& ent) - { - ent.newLocation = -1; - ent.newComponent = -1; - ent.newBinding = -1; - ent.newSet = -1; - ent.newIndex = -1; - const bool isValid = resolver.validateInOut(stage, - ent.symbol->getName().c_str(), - ent.symbol->getType(), - ent.live); - if (isValid) { - ent.newLocation = resolver.resolveInOutLocation(stage, - ent.symbol->getName().c_str(), - ent.symbol->getType(), - ent.live); - ent.newComponent = resolver.resolveInOutComponent(stage, - ent.symbol->getName().c_str(), - ent.symbol->getType(), - ent.live); - ent.newIndex = resolver.resolveInOutIndex(stage, - ent.symbol->getName().c_str(), - ent.symbol->getType(), - ent.live); - } else { - TString errorMsg = "Invalid shader In/Out variable semantic: "; - errorMsg += ent.symbol->getType().getQualifier().semanticName; - infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); - error = true; - } - } - - EShLanguage stage; - TIoMapResolver& resolver; - TInfoSink& infoSink; - bool& error; - TIntermediate& intermediate; - -private: - TResolverInOutAdaptor& operator=(TResolverInOutAdaptor&); -}; - -// Base class for shared TIoMapResolver services, used by several derivations. -struct TDefaultIoResolverBase : public glslang::TIoMapResolver -{ - TDefaultIoResolverBase(const TIntermediate &intermediate) : - intermediate(intermediate), - nextUniformLocation(0), - nextInputLocation(0), - nextOutputLocation(0) - { } - - int getBaseBinding(TResourceType res, unsigned int set) const { - return selectBaseBinding(intermediate.getShiftBinding(res), - intermediate.getShiftBindingForSet(res, set)); - } - - const std::vector& getResourceSetBinding() const { return intermediate.getResourceSetBinding(); } - - bool doAutoBindingMapping() const { return intermediate.getAutoMapBindings(); } - bool doAutoLocationMapping() const { return intermediate.getAutoMapLocations(); } - - typedef std::vector TSlotSet; - typedef std::unordered_map TSlotSetMap; - TSlotSetMap slots; - - TSlotSet::iterator findSlot(int set, int slot) - { - return std::lower_bound(slots[set].begin(), slots[set].end(), slot); - } - - bool checkEmpty(int set, int slot) - { - TSlotSet::iterator at = findSlot(set, slot); - return !(at != slots[set].end() && *at == slot); - } - - int reserveSlot(int set, int slot, int size = 1) - { - TSlotSet::iterator at = findSlot(set, slot); - - // tolerate aliasing, by not double-recording aliases - // (policy about appropriateness of the alias is higher up) - for (int i = 0; i < size; i++) { - if (at == slots[set].end() || *at != slot + i) - at = slots[set].insert(at, slot + i); - ++at; - } - - return slot; - } - - int getFreeSlot(int set, int base, int size = 1) - { - TSlotSet::iterator at = findSlot(set, base); - if (at == slots[set].end()) - return reserveSlot(set, base, size); - - // look for a big enough gap - for (; at != slots[set].end(); ++at) { - if (*at - base >= size) - break; - base = *at + 1; - } - return reserveSlot(set, base, size); - } - - virtual bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override = 0; - - virtual int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override = 0; - - int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override - { - if (type.getQualifier().hasSet()) - return type.getQualifier().layoutSet; - - // If a command line or API option requested a single descriptor set, use that (if not overrided by spaceN) - if (getResourceSetBinding().size() == 1) - return atoi(getResourceSetBinding()[0].c_str()); - - return 0; - } - int resolveUniformLocation(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override - { - // kick out of not doing this - if (!doAutoLocationMapping()) - return -1; - - // no locations added if already present, a built-in variable, a block, or an opaque - if (type.getQualifier().hasLocation() || type.isBuiltIn() || - type.getBasicType() == EbtBlock || - type.getBasicType() == EbtAtomicUint || - (type.containsOpaque() && intermediate.getSpv().openGl == 0)) - return -1; - - // no locations on blocks of built-in variables - if (type.isStruct()) { - if (type.getStruct()->size() < 1) - return -1; - if ((*type.getStruct())[0].type->isBuiltIn()) - return -1; - } - - int location = nextUniformLocation; - - nextUniformLocation += TIntermediate::computeTypeUniformLocationSize(type); - - return location; - } - bool validateInOut(EShLanguage /*stage*/, const char* /*name*/, const TType& /*type*/, bool /*is_live*/) override - { - return true; - } - int resolveInOutLocation(EShLanguage stage, const char* /*name*/, const TType& type, bool /*is_live*/) override - { - // kick out of not doing this - if (!doAutoLocationMapping()) - return -1; - - // no locations added if already present, or a built-in variable - if (type.getQualifier().hasLocation() || type.isBuiltIn()) - return -1; - - // no locations on blocks of built-in variables - if (type.isStruct()) { - if (type.getStruct()->size() < 1) - return -1; - if ((*type.getStruct())[0].type->isBuiltIn()) - return -1; - } - - // point to the right input or output location counter - int& nextLocation = type.getQualifier().isPipeInput() ? nextInputLocation : nextOutputLocation; - - // Placeholder. This does not do proper cross-stage lining up, nor - // work with mixed location/no-location declarations. - int location = nextLocation; - int typeLocationSize; - // Don’t take into account the outer-most array if the stage’s - // interface is automatically an array. - if (type.getQualifier().isArrayedIo(stage)) { - TType elementType(type, 0); - typeLocationSize = TIntermediate::computeTypeLocationSize(elementType, stage); - } else { - typeLocationSize = TIntermediate::computeTypeLocationSize(type, stage); - } - nextLocation += typeLocationSize; - - return location; - } - int resolveInOutComponent(EShLanguage /*stage*/, const char* /*name*/, const TType& /*type*/, bool /*is_live*/) override - { - return -1; - } - int resolveInOutIndex(EShLanguage /*stage*/, const char* /*name*/, const TType& /*type*/, bool /*is_live*/) override - { - return -1; - } - - void notifyBinding(EShLanguage, const char* /*name*/, const TType&, bool /*is_live*/) override {} - void notifyInOut(EShLanguage, const char* /*name*/, const TType&, bool /*is_live*/) override {} - void endNotifications(EShLanguage) override {} - void beginNotifications(EShLanguage) override {} - void beginResolve(EShLanguage) override {} - void endResolve(EShLanguage) override {} - -protected: - const TIntermediate &intermediate; - int nextUniformLocation; - int nextInputLocation; - int nextOutputLocation; - - // Return descriptor set specific base if there is one, and the generic base otherwise. - int selectBaseBinding(int base, int descriptorSetBase) const { - return descriptorSetBase != -1 ? descriptorSetBase : base; - } - - static int getLayoutSet(const glslang::TType& type) { - if (type.getQualifier().hasSet()) - return type.getQualifier().layoutSet; - else - return 0; - } - - static bool isSamplerType(const glslang::TType& type) { - return type.getBasicType() == glslang::EbtSampler && type.getSampler().isPureSampler(); - } - - static bool isTextureType(const glslang::TType& type) { - return (type.getBasicType() == glslang::EbtSampler && - (type.getSampler().isTexture() || type.getSampler().isSubpass())); - } - - static bool isUboType(const glslang::TType& type) { - return type.getQualifier().storage == EvqUniform; - } -}; - -/* - * Basic implementation of glslang::TIoMapResolver that replaces the - * previous offset behavior. - * It does the same, uses the offsets for the corresponding uniform - * types. Also respects the EOptionAutoMapBindings flag and binds - * them if needed. - */ -/* - * Default resolver - */ -struct TDefaultIoResolver : public TDefaultIoResolverBase -{ - TDefaultIoResolver(const TIntermediate &intermediate) : TDefaultIoResolverBase(intermediate) { } - - bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& /*type*/, bool /*is_live*/) override - { - return true; - } - - int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override - { - const int set = getLayoutSet(type); - // On OpenGL arrays of opaque types take a seperate binding for each element - int numBindings = intermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1; - - if (type.getQualifier().hasBinding()) { - if (isImageType(type)) - return reserveSlot(set, getBaseBinding(EResImage, set) + type.getQualifier().layoutBinding, numBindings); - - if (isTextureType(type)) - return reserveSlot(set, getBaseBinding(EResTexture, set) + type.getQualifier().layoutBinding, numBindings); - - if (isSsboType(type)) - return reserveSlot(set, getBaseBinding(EResSsbo, set) + type.getQualifier().layoutBinding, numBindings); - - if (isSamplerType(type)) - return reserveSlot(set, getBaseBinding(EResSampler, set) + type.getQualifier().layoutBinding, numBindings); - - if (isUboType(type)) - return reserveSlot(set, getBaseBinding(EResUbo, set) + type.getQualifier().layoutBinding, numBindings); - } else if (is_live && doAutoBindingMapping()) { - // find free slot, the caller did make sure it passes all vars with binding - // first and now all are passed that do not have a binding and needs one - - if (isImageType(type)) - return getFreeSlot(set, getBaseBinding(EResImage, set), numBindings); - - if (isTextureType(type)) - return getFreeSlot(set, getBaseBinding(EResTexture, set), numBindings); - - if (isSsboType(type)) - return getFreeSlot(set, getBaseBinding(EResSsbo, set), numBindings); - - if (isSamplerType(type)) - return getFreeSlot(set, getBaseBinding(EResSampler, set), numBindings); - - if (isUboType(type)) - return getFreeSlot(set, getBaseBinding(EResUbo, set), numBindings); - } - - return -1; - } - -protected: - static bool isImageType(const glslang::TType& type) { - return type.getBasicType() == glslang::EbtSampler && type.getSampler().isImage(); - } - - static bool isSsboType(const glslang::TType& type) { - return type.getQualifier().storage == EvqBuffer; - } -}; - -/******************************************************************************** -The following IO resolver maps types in HLSL register space, as follows: - -t - for shader resource views (SRV) - TEXTURE1D - TEXTURE1DARRAY - TEXTURE2D - TEXTURE2DARRAY - TEXTURE3D - TEXTURECUBE - TEXTURECUBEARRAY - TEXTURE2DMS - TEXTURE2DMSARRAY - STRUCTUREDBUFFER - BYTEADDRESSBUFFER - BUFFER - TBUFFER - -s - for samplers - SAMPLER - SAMPLER1D - SAMPLER2D - SAMPLER3D - SAMPLERCUBE - SAMPLERSTATE - SAMPLERCOMPARISONSTATE - -u - for unordered access views (UAV) - RWBYTEADDRESSBUFFER - RWSTRUCTUREDBUFFER - APPENDSTRUCTUREDBUFFER - CONSUMESTRUCTUREDBUFFER - RWBUFFER - RWTEXTURE1D - RWTEXTURE1DARRAY - RWTEXTURE2D - RWTEXTURE2DARRAY - RWTEXTURE3D - -b - for constant buffer views (CBV) - CBUFFER - CONSTANTBUFFER - ********************************************************************************/ -struct TDefaultHlslIoResolver : public TDefaultIoResolverBase -{ - TDefaultHlslIoResolver(const TIntermediate &intermediate) : TDefaultIoResolverBase(intermediate) { } - - bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& /*type*/, bool /*is_live*/) override - { - return true; - } - - int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override - { - const int set = getLayoutSet(type); - - if (type.getQualifier().hasBinding()) { - if (isUavType(type)) - return reserveSlot(set, getBaseBinding(EResUav, set) + type.getQualifier().layoutBinding); - - if (isSrvType(type)) - return reserveSlot(set, getBaseBinding(EResTexture, set) + type.getQualifier().layoutBinding); - - if (isSamplerType(type)) - return reserveSlot(set, getBaseBinding(EResSampler, set) + type.getQualifier().layoutBinding); - - if (isUboType(type)) - return reserveSlot(set, getBaseBinding(EResUbo, set) + type.getQualifier().layoutBinding); - } else if (is_live && doAutoBindingMapping()) { - // find free slot, the caller did make sure it passes all vars with binding - // first and now all are passed that do not have a binding and needs one - - if (isUavType(type)) - return getFreeSlot(set, getBaseBinding(EResUav, set)); - - if (isSrvType(type)) - return getFreeSlot(set, getBaseBinding(EResTexture, set)); - - if (isSamplerType(type)) - return getFreeSlot(set, getBaseBinding(EResSampler, set)); - - if (isUboType(type)) - return getFreeSlot(set, getBaseBinding(EResUbo, set)); - } - - return -1; - } - -protected: - // Return true if this is a SRV (shader resource view) type: - static bool isSrvType(const glslang::TType& type) { - return isTextureType(type) || type.getQualifier().storage == EvqBuffer; - } - - // Return true if this is a UAV (unordered access view) type: - static bool isUavType(const glslang::TType& type) { - if (type.getQualifier().readonly) - return false; - - return (type.getBasicType() == glslang::EbtSampler && type.getSampler().isImage()) || - (type.getQualifier().storage == EvqBuffer); - } -}; - - -// Map I/O variables to provided offsets, and make bindings for -// unbound but live variables. -// -// Returns false if the input is too malformed to do this. -bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSink &infoSink, TIoMapResolver *resolver) -{ - bool somethingToDo = !intermediate.getResourceSetBinding().empty() || - intermediate.getAutoMapBindings() || - intermediate.getAutoMapLocations(); - - for (int res = 0; res < EResCount; ++res) { - somethingToDo = somethingToDo || - (intermediate.getShiftBinding(TResourceType(res)) != 0) || - intermediate.hasShiftBindingForSet(TResourceType(res)); - } - - if (!somethingToDo && resolver == nullptr) - return true; - - if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) - return false; - - TIntermNode* root = intermediate.getTreeRoot(); - if (root == nullptr) - return false; - - // if no resolver is provided, use the default resolver with the given shifts and auto map settings - TDefaultIoResolver defaultResolver(intermediate); - TDefaultHlslIoResolver defaultHlslResolver(intermediate); - - if (resolver == nullptr) { - // TODO: use a passed in IO mapper for this - if (intermediate.usingHlslIoMapping()) - resolver = &defaultHlslResolver; - else - resolver = &defaultResolver; - } - - TVarLiveMap inVarMap, outVarMap, uniformVarMap; - TVarGatherTraverser iter_binding_all(intermediate, true, inVarMap, outVarMap, uniformVarMap); - TVarGatherTraverser iter_binding_live(intermediate, false, inVarMap, outVarMap, uniformVarMap); - - root->traverse(&iter_binding_all); - iter_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); - - while (!iter_binding_live.functions.empty()) { - TIntermNode* function = iter_binding_live.functions.back(); - iter_binding_live.functions.pop_back(); - function->traverse(&iter_binding_live); - } - - // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. - std::sort(uniformVarMap.begin(), uniformVarMap.end(), TVarEntryInfo::TOrderByPriority()); - - bool hadError = false; - TNotifyInOutAdaptor inOutNotify(stage, *resolver); - TNotifyUniformAdaptor uniformNotify(stage, *resolver); - TResolverUniformAdaptor uniformResolve(stage, *resolver, infoSink, hadError, intermediate); - TResolverInOutAdaptor inOutResolve(stage, *resolver, infoSink, hadError, intermediate); - resolver->beginNotifications(stage); - std::for_each(inVarMap.begin(), inVarMap.end(), inOutNotify); - std::for_each(outVarMap.begin(), outVarMap.end(), inOutNotify); - std::for_each(uniformVarMap.begin(), uniformVarMap.end(), uniformNotify); - resolver->endNotifications(stage); - resolver->beginResolve(stage); - std::for_each(inVarMap.begin(), inVarMap.end(), inOutResolve); - std::for_each(outVarMap.begin(), outVarMap.end(), inOutResolve); - std::for_each(uniformVarMap.begin(), uniformVarMap.end(), uniformResolve); - resolver->endResolve(stage); - - if (!hadError) { - // sort by id again, so we can use lower bound to find entries - std::sort(uniformVarMap.begin(), uniformVarMap.end(), TVarEntryInfo::TOrderById()); - TVarSetTraverser iter_iomap(intermediate, inVarMap, outVarMap, uniformVarMap); - root->traverse(&iter_iomap); - } - - return !hadError; -} - -} // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpScanner.cpp deleted file mode 100755 index 0c620a5f5b..0000000000 --- a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ /dev/null @@ -1,1196 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// 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. -// -/****************************************************************************\ -Copyright (c) 2002, NVIDIA Corporation. - -NVIDIA Corporation("NVIDIA") supplies this software to you in -consideration of your agreement to the following terms, and your use, -installation, modification or redistribution of this NVIDIA software -constitutes acceptance of these terms. If you do not agree with these -terms, please do not use, install, modify or redistribute this NVIDIA -software. - -In consideration of your agreement to abide by the following terms, and -subject to these terms, NVIDIA grants you a personal, non-exclusive -license, under NVIDIA's copyrights in this original NVIDIA software (the -"NVIDIA Software"), to use, reproduce, modify and redistribute the -NVIDIA Software, with or without modifications, in source and/or binary -forms; provided that if you redistribute the NVIDIA Software, you must -retain the copyright notice of NVIDIA, this notice and the following -text and disclaimers in all such redistributions of the NVIDIA Software. -Neither the name, trademarks, service marks nor logos of NVIDIA -Corporation may be used to endorse or promote products derived from the -NVIDIA Software without specific prior written permission from NVIDIA. -Except as expressly stated in this notice, no other rights or licenses -express or implied, are granted by NVIDIA herein, including but not -limited to any patent rights that may be infringed by your derivative -works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. - -THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, -INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, -NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER -PRODUCTS. - -IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, -INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY -OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE -NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, -TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF -NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -\****************************************************************************/ - -#ifndef _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "PpContext.h" -#include "PpTokens.h" -#include "../Scan.h" - -namespace glslang { - -/////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////// Floating point constants: ///////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////// - -/* -* lFloatConst() - Scan a single- or double-precision floating point constant. Assumes that the scanner -* has seen at least one digit, followed by either a decimal '.' or the -* letter 'e', or a precision ending (e.g., F or LF). -*/ - -int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) -{ - const auto saveName = [&](int ch) { - if (len <= MaxTokenLength) - ppToken->name[len++] = static_cast(ch); - }; - - // find the range of non-zero digits before the decimal point - int startNonZero = 0; - while (startNonZero < len && ppToken->name[startNonZero] == '0') - ++startNonZero; - int endNonZero = len; - while (endNonZero > startNonZero && ppToken->name[endNonZero-1] == '0') - --endNonZero; - int numWholeNumberDigits = endNonZero - startNonZero; - - // accumulate the range's value - bool fastPath = numWholeNumberDigits <= 15; // when the number gets too complex, set to false - unsigned long long wholeNumber = 0; - if (fastPath) { - for (int i = startNonZero; i < endNonZero; ++i) - wholeNumber = wholeNumber * 10 + (ppToken->name[i] - '0'); - } - int decimalShift = len - endNonZero; - - // Decimal point: - bool hasDecimalOrExponent = false; - if (ch == '.') { - hasDecimalOrExponent = true; - saveName(ch); - ch = getChar(); - int firstDecimal = len; - - // 1.#INF or -1.#INF - if (ch == '#' && (ifdepth > 0 || parseContext.intermediate.getSource() == EShSourceHlsl)) { - if ((len < 2) || - (len == 2 && ppToken->name[0] != '1') || - (len == 3 && ppToken->name[1] != '1' && !(ppToken->name[0] == '-' || ppToken->name[0] == '+')) || - (len > 3)) - parseContext.ppError(ppToken->loc, "unexpected use of", "#", ""); - else { - // we have 1.# or -1.# or +1.#, check for 'INF' - if ((ch = getChar()) != 'I' || - (ch = getChar()) != 'N' || - (ch = getChar()) != 'F') - parseContext.ppError(ppToken->loc, "expected 'INF'", "#", ""); - else { - // we have [+-].#INF, and we are targeting IEEE 754, so wrap it up: - saveName('I'); - saveName('N'); - saveName('F'); - ppToken->name[len] = '\0'; - if (ppToken->name[0] == '-') - ppToken->i64val = 0xfff0000000000000; // -Infinity - else - ppToken->i64val = 0x7ff0000000000000; // +Infinity - return PpAtomConstFloat; - } - } - } - - // Consume leading-zero digits after the decimal point - while (ch == '0') { - saveName(ch); - ch = getChar(); - } - int startNonZeroDecimal = len; - int endNonZeroDecimal = len; - - // Consume remaining digits, up to the exponent - while (ch >= '0' && ch <= '9') { - saveName(ch); - if (ch != '0') - endNonZeroDecimal = len; - ch = getChar(); - } - - // Compute accumulation up to the last non-zero digit - if (endNonZeroDecimal > startNonZeroDecimal) { - numWholeNumberDigits += endNonZeroDecimal - endNonZero - 1; // don't include the "." - if (numWholeNumberDigits > 15) - fastPath = false; - if (fastPath) { - for (int i = endNonZero; i < endNonZeroDecimal; ++i) { - if (ppToken->name[i] != '.') - wholeNumber = wholeNumber * 10 + (ppToken->name[i] - '0'); - } - } - decimalShift = firstDecimal - endNonZeroDecimal; - } - } - - // Exponent: - bool negativeExponent = false; - double exponentValue = 0.0; - int exponent = 0; - { - if (ch == 'e' || ch == 'E') { - hasDecimalOrExponent = true; - saveName(ch); - ch = getChar(); - if (ch == '+' || ch == '-') { - negativeExponent = ch == '-'; - saveName(ch); - ch = getChar(); - } - if (ch >= '0' && ch <= '9') { - while (ch >= '0' && ch <= '9') { - exponent = exponent * 10 + (ch - '0'); - saveName(ch); - ch = getChar(); - } - } else { - parseContext.ppError(ppToken->loc, "bad character in float exponent", "", ""); - } - } - - // Compensate for location of decimal - if (negativeExponent) - exponent -= decimalShift; - else { - exponent += decimalShift; - if (exponent < 0) { - negativeExponent = true; - exponent = -exponent; - } - } - if (exponent > 22) - fastPath = false; - - if (fastPath) { - // Compute the floating-point value of the exponent - exponentValue = 1.0; - if (exponent > 0) { - double expFactor = 10; - while (exponent > 0) { - if (exponent & 0x1) - exponentValue *= expFactor; - expFactor *= expFactor; - exponent >>= 1; - } - } - } - } - - // Suffix: - bool isDouble = false; - bool isFloat16 = false; - if (ch == 'l' || ch == 'L') { - if (ifdepth == 0 && parseContext.intermediate.getSource() == EShSourceGlsl) - parseContext.doubleCheck(ppToken->loc, "double floating-point suffix"); - if (ifdepth == 0 && !hasDecimalOrExponent) - parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); - if (parseContext.intermediate.getSource() == EShSourceGlsl) { - int ch2 = getChar(); - if (ch2 != 'f' && ch2 != 'F') { - ungetChar(); - ungetChar(); - } else { - saveName(ch); - saveName(ch2); - isDouble = true; - } - } else if (parseContext.intermediate.getSource() == EShSourceHlsl) { - saveName(ch); - isDouble = true; - } - } else if (ch == 'h' || ch == 'H') { - if (ifdepth == 0 && parseContext.intermediate.getSource() == EShSourceGlsl) - parseContext.float16Check(ppToken->loc, "half floating-point suffix"); - if (ifdepth == 0 && !hasDecimalOrExponent) - parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); - if (parseContext.intermediate.getSource() == EShSourceGlsl) { - int ch2 = getChar(); - if (ch2 != 'f' && ch2 != 'F') { - ungetChar(); - ungetChar(); - } else { - saveName(ch); - saveName(ch2); - isFloat16 = true; - } - } else if (parseContext.intermediate.getSource() == EShSourceHlsl) { - saveName(ch); - isFloat16 = true; - } - } else if (ch == 'f' || ch == 'F') { - if (ifdepth == 0) - parseContext.profileRequires(ppToken->loc, EEsProfile, 300, nullptr, "floating-point suffix"); - if (ifdepth == 0 && !parseContext.relaxedErrors()) - parseContext.profileRequires(ppToken->loc, ~EEsProfile, 120, nullptr, "floating-point suffix"); - if (ifdepth == 0 && !hasDecimalOrExponent) - parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); - saveName(ch); - } else - ungetChar(); - - // Patch up the name and length for overflow - - if (len > MaxTokenLength) { - len = MaxTokenLength; - parseContext.ppError(ppToken->loc, "float literal too long", "", ""); - } - ppToken->name[len] = '\0'; - - // Compute the numerical value - if (fastPath) { - // compute the floating-point value of the exponent - if (exponentValue == 0.0) - ppToken->dval = (double)wholeNumber; - else if (negativeExponent) - ppToken->dval = (double)wholeNumber / exponentValue; - else - ppToken->dval = (double)wholeNumber * exponentValue; - } else { - // slow path - strtodStream.clear(); - strtodStream.str(ppToken->name); - strtodStream >> ppToken->dval; - // Assume failure combined with a large exponent was overflow, in - // an attempt to set INF. Otherwise, assume underflow, and set 0.0. - if (strtodStream.fail()) { - if (!negativeExponent && exponent + numWholeNumberDigits > 300) - ppToken->i64val = 0x7ff0000000000000; // +Infinity - else - ppToken->dval = 0.0; - } - } - - // Return the right token type - if (isDouble) - return PpAtomConstDouble; - else if (isFloat16) - return PpAtomConstFloat16; - else - return PpAtomConstFloat; -} - -// Recognize a character literal. -// -// The first ' has already been accepted, read the rest, through the closing '. -// -// Always returns PpAtomConstInt. -// -int TPpContext::characterLiteral(TPpToken* ppToken) -{ - ppToken->name[0] = 0; - ppToken->ival = 0; - - if (parseContext.intermediate.getSource() != EShSourceHlsl) { - // illegal, except in macro definition, for which case we report the character - return '\''; - } - - int ch = getChar(); - switch (ch) { - case '\'': - // As empty sequence: '' - parseContext.ppError(ppToken->loc, "unexpected", "\'", ""); - return PpAtomConstInt; - case '\\': - // As escape sequence: '\XXX' - switch (ch = getChar()) { - case 'a': - ppToken->ival = 7; - break; - case 'b': - ppToken->ival = 8; - break; - case 't': - ppToken->ival = 9; - break; - case 'n': - ppToken->ival = 10; - break; - case 'v': - ppToken->ival = 11; - break; - case 'f': - ppToken->ival = 12; - break; - case 'r': - ppToken->ival = 13; - break; - case 'x': - case '0': - parseContext.ppError(ppToken->loc, "octal and hex sequences not supported", "\\", ""); - break; - default: - // This catches '\'', '\"', '\?', etc. - // Also, things like '\C' mean the same thing as 'C' - // (after the above cases are filtered out). - ppToken->ival = ch; - break; - } - break; - default: - ppToken->ival = ch; - break; - } - ppToken->name[0] = (char)ppToken->ival; - ppToken->name[1] = '\0'; - ch = getChar(); - if (ch != '\'') { - parseContext.ppError(ppToken->loc, "expected", "\'", ""); - // Look ahead for a closing ' - do { - ch = getChar(); - } while (ch != '\'' && ch != EndOfInput && ch != '\n'); - } - - return PpAtomConstInt; -} - -// -// Scanner used to tokenize source stream. -// -int TPpContext::tStringInput::scan(TPpToken* ppToken) -{ - int AlreadyComplained = 0; - int len = 0; - int ch = 0; - int ii = 0; - unsigned long long ival = 0; - const auto floatingPointChar = [&](int ch) { return ch == '.' || ch == 'e' || ch == 'E' || - ch == 'f' || ch == 'F' || - ch == 'h' || ch == 'H'; }; - - static const char* const Int64_Extensions[] = { - E_GL_ARB_gpu_shader_int64, - E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int64 }; - static const int Num_Int64_Extensions = sizeof(Int64_Extensions) / sizeof(Int64_Extensions[0]); - - static const char* const Int16_Extensions[] = { -#ifdef AMD_EXTENSIONS - E_GL_AMD_gpu_shader_int16, -#endif - E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int16 }; - static const int Num_Int16_Extensions = sizeof(Int16_Extensions) / sizeof(Int16_Extensions[0]); - - ppToken->ival = 0; - ppToken->i64val = 0; - ppToken->space = false; - ch = getch(); - for (;;) { - while (ch == ' ' || ch == '\t') { - ppToken->space = true; - ch = getch(); - } - - ppToken->loc = pp->parseContext.getCurrentLoc(); - len = 0; - switch (ch) { - default: - // Single character token, including EndOfInput, '#' and '\' (escaped newlines are handled at a lower level, so this is just a '\' token) - if (ch > PpAtomMaxSingle) - ch = PpAtomBadToken; - return ch; - - case 'A': case 'B': case 'C': case 'D': case 'E': - case 'F': case 'G': case 'H': case 'I': case 'J': - case 'K': case 'L': case 'M': case 'N': case 'O': - case 'P': case 'Q': case 'R': case 'S': case 'T': - case 'U': case 'V': case 'W': case 'X': case 'Y': - case 'Z': case '_': - case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': case 'g': case 'h': case 'i': case 'j': - case 'k': case 'l': case 'm': case 'n': case 'o': - case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': - do { - if (len < MaxTokenLength) { - ppToken->name[len++] = (char)ch; - ch = getch(); - } else { - if (! AlreadyComplained) { - pp->parseContext.ppError(ppToken->loc, "name too long", "", ""); - AlreadyComplained = 1; - } - ch = getch(); - } - } while ((ch >= 'a' && ch <= 'z') || - (ch >= 'A' && ch <= 'Z') || - (ch >= '0' && ch <= '9') || - ch == '_'); - - // line continuation with no token before or after makes len == 0, and need to start over skipping white space, etc. - if (len == 0) - continue; - - ppToken->name[len] = '\0'; - ungetch(); - return PpAtomIdentifier; - case '0': - ppToken->name[len++] = (char)ch; - ch = getch(); - if (ch == 'x' || ch == 'X') { - // must be hexadecimal - - bool isUnsigned = false; - bool isInt64 = false; - bool isInt16 = false; - ppToken->name[len++] = (char)ch; - ch = getch(); - if ((ch >= '0' && ch <= '9') || - (ch >= 'A' && ch <= 'F') || - (ch >= 'a' && ch <= 'f')) { - - ival = 0; - do { - if (len < MaxTokenLength && ival <= 0x0fffffffffffffffull) { - ppToken->name[len++] = (char)ch; - if (ch >= '0' && ch <= '9') { - ii = ch - '0'; - } else if (ch >= 'A' && ch <= 'F') { - ii = ch - 'A' + 10; - } else if (ch >= 'a' && ch <= 'f') { - ii = ch - 'a' + 10; - } else - pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); - ival = (ival << 4) | ii; - } else { - if (! AlreadyComplained) { - if(len < MaxTokenLength) - pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", ""); - else - pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too long", "", ""); - AlreadyComplained = 1; - } - ival = 0xffffffffffffffffull; - } - ch = getch(); - } while ((ch >= '0' && ch <= '9') || - (ch >= 'A' && ch <= 'F') || - (ch >= 'a' && ch <= 'f')); - } else { - pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); - } - if (ch == 'u' || ch == 'U') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isUnsigned = true; - - int nextCh = getch(); - if (nextCh == 'l' || nextCh == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - -#ifdef AMD_EXTENSIONS - nextCh = getch(); - if ((nextCh == 's' || nextCh == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt16 = true; - } else - ungetch(); -#endif - } else if (ch == 'l' || ch == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt64 = true; -#ifdef AMD_EXTENSIONS - } else if ((ch == 's' || ch == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt16 = true; -#endif - } else - ungetch(); - ppToken->name[len] = '\0'; - - if (isInt64 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (pp->ifdepth == 0) { - pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, - "64-bit hexadecimal literal"); - pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, - Num_Int64_Extensions, Int64_Extensions, "64-bit hexadecimal literal"); - } - ppToken->i64val = ival; - return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; - } else if (isInt16) { - if (pp->ifdepth == 0) { - if (pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, - "16-bit hexadecimal literal"); - pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, - Num_Int16_Extensions, Int16_Extensions, "16-bit hexadecimal literal"); - } - } - ppToken->ival = (int)ival; - return isUnsigned ? PpAtomConstUint16 : PpAtomConstInt16; - } else { - if (ival > 0xffffffffu && !AlreadyComplained) - pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", ""); - ppToken->ival = (int)ival; - return isUnsigned ? PpAtomConstUint : PpAtomConstInt; - } - } else { - // could be octal integer or floating point, speculative pursue octal until it must be floating point - - bool isUnsigned = false; - bool isInt64 = false; - bool isInt16 = false; - bool octalOverflow = false; - bool nonOctal = false; - ival = 0; - - // see how much octal-like stuff we can read - while (ch >= '0' && ch <= '7') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - else if (! AlreadyComplained) { - pp->parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); - AlreadyComplained = 1; - } - if (ival <= 0x1fffffffffffffffull) { - ii = ch - '0'; - ival = (ival << 3) | ii; - } else - octalOverflow = true; - ch = getch(); - } - - // could be part of a float... - if (ch == '8' || ch == '9') { - nonOctal = true; - do { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - else if (! AlreadyComplained) { - pp->parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); - AlreadyComplained = 1; - } - ch = getch(); - } while (ch >= '0' && ch <= '9'); - } - if (floatingPointChar(ch)) - return pp->lFloatConst(len, ch, ppToken); - - // wasn't a float, so must be octal... - if (nonOctal) - pp->parseContext.ppError(ppToken->loc, "octal literal digit too large", "", ""); - - if (ch == 'u' || ch == 'U') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isUnsigned = true; - - int nextCh = getch(); - if (nextCh == 'l' || nextCh == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - -#ifdef AMD_EXTENSIONS - nextCh = getch(); - if ((nextCh == 's' || nextCh == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt16 = true; - } else - ungetch(); -#endif - } else if (ch == 'l' || ch == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt64 = true; -#ifdef AMD_EXTENSIONS - } else if ((ch == 's' || ch == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt16 = true; -#endif - } else - ungetch(); - ppToken->name[len] = '\0'; - - if (!isInt64 && ival > 0xffffffffu) - octalOverflow = true; - - if (octalOverflow) - pp->parseContext.ppError(ppToken->loc, "octal literal too big", "", ""); - - if (isInt64 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (pp->ifdepth == 0) { - pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, - "64-bit octal literal"); - pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, - Num_Int64_Extensions, Int64_Extensions, "64-bit octal literal"); - } - ppToken->i64val = ival; - return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; - } else if (isInt16) { - if (pp->ifdepth == 0) { - if (pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, - "16-bit octal literal"); - pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, - Num_Int16_Extensions, Int16_Extensions, "16-bit octal literal"); - } - } - ppToken->ival = (int)ival; - return isUnsigned ? PpAtomConstUint16 : PpAtomConstInt16; - } else { - ppToken->ival = (int)ival; - return isUnsigned ? PpAtomConstUint : PpAtomConstInt; - } - } - break; - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - // can't be hexadecimal or octal, is either decimal or floating point - - do { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - else if (! AlreadyComplained) { - pp->parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); - AlreadyComplained = 1; - } - ch = getch(); - } while (ch >= '0' && ch <= '9'); - if (floatingPointChar(ch)) - return pp->lFloatConst(len, ch, ppToken); - else { - // Finish handling signed and unsigned integers - int numericLen = len; - bool isUnsigned = false; - bool isInt64 = false; - bool isInt16 = false; - if (ch == 'u' || ch == 'U') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isUnsigned = true; - - int nextCh = getch(); - if (nextCh == 'l' || nextCh == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - -#ifdef AMD_EXTENSIONS - nextCh = getch(); - if ((nextCh == 's' || nextCh == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt16 = true; - } else - ungetch(); -#endif - } else if (ch == 'l' || ch == 'L') { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt64 = true; -#ifdef AMD_EXTENSIONS - } else if ((ch == 's' || ch == 'S') && - pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - isInt16 = true; -#endif - } else - ungetch(); - - ppToken->name[len] = '\0'; - ival = 0; - const unsigned oneTenthMaxInt = 0xFFFFFFFFu / 10; - const unsigned remainderMaxInt = 0xFFFFFFFFu - 10 * oneTenthMaxInt; - const unsigned long long oneTenthMaxInt64 = 0xFFFFFFFFFFFFFFFFull / 10; - const unsigned long long remainderMaxInt64 = 0xFFFFFFFFFFFFFFFFull - 10 * oneTenthMaxInt64; - const unsigned short oneTenthMaxInt16 = 0xFFFFu / 10; - const unsigned short remainderMaxInt16 = 0xFFFFu - 10 * oneTenthMaxInt16; - for (int i = 0; i < numericLen; i++) { - ch = ppToken->name[i] - '0'; - bool overflow = false; - if (isInt64) - overflow = (ival > oneTenthMaxInt64 || (ival == oneTenthMaxInt64 && (unsigned long long)ch > remainderMaxInt64)); - else if (isInt16) - overflow = (ival > oneTenthMaxInt16 || (ival == oneTenthMaxInt16 && (unsigned short)ch > remainderMaxInt16)); - else - overflow = (ival > oneTenthMaxInt || (ival == oneTenthMaxInt && (unsigned)ch > remainderMaxInt)); - if (overflow) { - pp->parseContext.ppError(ppToken->loc, "numeric literal too big", "", ""); - ival = 0xFFFFFFFFFFFFFFFFull; - break; - } else - ival = ival * 10 + ch; - } - - if (isInt64 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - if (pp->ifdepth == 0) { - pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, - "64-bit literal"); - pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, - Num_Int64_Extensions, Int64_Extensions, "64-bit literal"); - } - ppToken->i64val = ival; - return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; - } else if (isInt16) { - if (pp->ifdepth == 0 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { - pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, - "16-bit literal"); - pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, - Num_Int16_Extensions, Int16_Extensions, "16-bit literal"); - } - ppToken->ival = (int)ival; - return isUnsigned ? PpAtomConstUint16 : PpAtomConstInt16; - } else { - ppToken->ival = (int)ival; - return isUnsigned ? PpAtomConstUint : PpAtomConstInt; - } - } - break; - case '-': - ch = getch(); - if (ch == '-') { - return PpAtomDecrement; - } else if (ch == '=') { - return PPAtomSubAssign; - } else { - ungetch(); - return '-'; - } - case '+': - ch = getch(); - if (ch == '+') { - return PpAtomIncrement; - } else if (ch == '=') { - return PPAtomAddAssign; - } else { - ungetch(); - return '+'; - } - case '*': - ch = getch(); - if (ch == '=') { - return PPAtomMulAssign; - } else { - ungetch(); - return '*'; - } - case '%': - ch = getch(); - if (ch == '=') { - return PPAtomModAssign; - } else { - ungetch(); - return '%'; - } - case '^': - ch = getch(); - if (ch == '^') { - return PpAtomXor; - } else { - if (ch == '=') - return PpAtomXorAssign; - else{ - ungetch(); - return '^'; - } - } - - case '=': - ch = getch(); - if (ch == '=') { - return PpAtomEQ; - } else { - ungetch(); - return '='; - } - case '!': - ch = getch(); - if (ch == '=') { - return PpAtomNE; - } else { - ungetch(); - return '!'; - } - case '|': - ch = getch(); - if (ch == '|') { - return PpAtomOr; - } else if (ch == '=') { - return PpAtomOrAssign; - } else { - ungetch(); - return '|'; - } - case '&': - ch = getch(); - if (ch == '&') { - return PpAtomAnd; - } else if (ch == '=') { - return PpAtomAndAssign; - } else { - ungetch(); - return '&'; - } - case '<': - ch = getch(); - if (ch == '<') { - ch = getch(); - if (ch == '=') - return PpAtomLeftAssign; - else { - ungetch(); - return PpAtomLeft; - } - } else if (ch == '=') { - return PpAtomLE; - } else { - ungetch(); - return '<'; - } - case '>': - ch = getch(); - if (ch == '>') { - ch = getch(); - if (ch == '=') - return PpAtomRightAssign; - else { - ungetch(); - return PpAtomRight; - } - } else if (ch == '=') { - return PpAtomGE; - } else { - ungetch(); - return '>'; - } - case '.': - ch = getch(); - if (ch >= '0' && ch <= '9') { - ungetch(); - return pp->lFloatConst(0, '.', ppToken); - } else { - ungetch(); - return '.'; - } - case '/': - ch = getch(); - if (ch == '/') { - pp->inComment = true; - do { - ch = getch(); - } while (ch != '\n' && ch != EndOfInput); - ppToken->space = true; - pp->inComment = false; - - return ch; - } else if (ch == '*') { - ch = getch(); - do { - while (ch != '*') { - if (ch == EndOfInput) { - pp->parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); - return ch; - } - ch = getch(); - } - ch = getch(); - if (ch == EndOfInput) { - pp->parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); - return ch; - } - } while (ch != '/'); - ppToken->space = true; - // loop again to get the next token... - break; - } else if (ch == '=') { - return PPAtomDivAssign; - } else { - ungetch(); - return '/'; - } - break; - case '\'': - return pp->characterLiteral(ppToken); - case '"': - // TODO: If this gets enhanced to handle escape sequences, or - // anything that is different than what #include needs, then - // #include needs to use scanHeaderName() for this. - ch = getch(); - while (ch != '"' && ch != '\n' && ch != EndOfInput) { - if (len < MaxTokenLength) { - ppToken->name[len] = (char)ch; - len++; - ch = getch(); - } else - break; - }; - ppToken->name[len] = '\0'; - if (ch != '"') { - ungetch(); - pp->parseContext.ppError(ppToken->loc, "End of line in string", "string", ""); - } - return PpAtomConstString; - case ':': - ch = getch(); - if (ch == ':') - return PpAtomColonColon; - ungetch(); - return ':'; - } - - ch = getch(); - } -} - -// -// The main functional entry point into the preprocessor, which will -// scan the source strings to figure out and return the next processing token. -// -// Return the token, or EndOfInput when no more tokens. -// -int TPpContext::tokenize(TPpToken& ppToken) -{ - for(;;) { - int token = scanToken(&ppToken); - - // Handle token-pasting logic - token = tokenPaste(token, ppToken); - - if (token == EndOfInput) { - missingEndifCheck(); - return EndOfInput; - } - if (token == '#') { - if (previous_token == '\n') { - token = readCPPline(&ppToken); - if (token == EndOfInput) { - missingEndifCheck(); - return EndOfInput; - } - continue; - } else { - parseContext.ppError(ppToken.loc, "preprocessor directive cannot be preceded by another token", "#", ""); - return EndOfInput; - } - } - previous_token = token; - - if (token == '\n') - continue; - - // expand macros - if (token == PpAtomIdentifier && MacroExpand(&ppToken, false, true) != 0) - continue; - - switch (token) { - case PpAtomIdentifier: - case PpAtomConstInt: - case PpAtomConstUint: - case PpAtomConstFloat: - case PpAtomConstInt64: - case PpAtomConstUint64: - case PpAtomConstInt16: - case PpAtomConstUint16: - case PpAtomConstDouble: - case PpAtomConstFloat16: - if (ppToken.name[0] == '\0') - continue; - break; - case PpAtomConstString: - if (ifdepth == 0 && parseContext.intermediate.getSource() != EShSourceHlsl) { - // HLSL allows string literals. - parseContext.ppError(ppToken.loc, "string literals not supported", "\"\"", ""); - continue; - } - break; - case '\'': - parseContext.ppError(ppToken.loc, "character literals not supported", "\'", ""); - continue; - default: - strcpy(ppToken.name, atomStrings.getString(token)); - break; - } - - return token; - } -} - -// -// Do all token-pasting related combining of two pasted tokens when getting a -// stream of tokens from a replacement list. Degenerates to no processing if a -// replacement list is not the source of the token stream. -// -int TPpContext::tokenPaste(int token, TPpToken& ppToken) -{ - // starting with ## is illegal, skip to next token - if (token == PpAtomPaste) { - parseContext.ppError(ppToken.loc, "unexpected location", "##", ""); - return scanToken(&ppToken); - } - - int resultToken = token; // "foo" pasted with "35" is an identifier, not a number - - // ## can be chained, process all in the chain at once - while (peekPasting()) { - TPpToken pastedPpToken; - - // next token has to be ## - token = scanToken(&pastedPpToken); - assert(token == PpAtomPaste); - - // This covers end of macro expansion - if (endOfReplacementList()) { - parseContext.ppError(ppToken.loc, "unexpected location; end of replacement list", "##", ""); - break; - } - - // get the token after the ## - token = scanToken(&pastedPpToken); - - // This covers end of argument expansion - if (token == tMarkerInput::marker) { - parseContext.ppError(ppToken.loc, "unexpected location; end of argument", "##", ""); - break; - } - - // get the token text - switch (resultToken) { - case PpAtomIdentifier: - // already have the correct text in token.names - break; - case '=': - case '!': - case '-': - case '~': - case '+': - case '*': - case '/': - case '%': - case '<': - case '>': - case '|': - case '^': - case '&': - case PpAtomRight: - case PpAtomLeft: - case PpAtomAnd: - case PpAtomOr: - case PpAtomXor: - strcpy(ppToken.name, atomStrings.getString(resultToken)); - strcpy(pastedPpToken.name, atomStrings.getString(token)); - break; - default: - parseContext.ppError(ppToken.loc, "not supported for these tokens", "##", ""); - return resultToken; - } - - // combine the tokens - if (strlen(ppToken.name) + strlen(pastedPpToken.name) > MaxTokenLength) { - parseContext.ppError(ppToken.loc, "combined tokens are too long", "##", ""); - return resultToken; - } - strncat(ppToken.name, pastedPpToken.name, MaxTokenLength - strlen(ppToken.name)); - - // correct the kind of token we are making, if needed (identifiers stay identifiers) - if (resultToken != PpAtomIdentifier) { - int newToken = atomStrings.getAtom(ppToken.name); - if (newToken > 0) - resultToken = newToken; - else - parseContext.ppError(ppToken.loc, "combined token is invalid", "##", ""); - } - } - - return resultToken; -} - -// Checks if we've seen balanced #if...#endif -void TPpContext::missingEndifCheck() -{ - if (ifdepth > 0) - parseContext.ppError(parseContext.getCurrentLoc(), "missing #endif", "", ""); -} - -} // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpTokens.cpp deleted file mode 100755 index 7dc2722ce1..0000000000 --- a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ /dev/null @@ -1,338 +0,0 @@ -// -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// 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. -// -/****************************************************************************\ -Copyright (c) 2002, NVIDIA Corporation. - -NVIDIA Corporation("NVIDIA") supplies this software to you in -consideration of your agreement to the following terms, and your use, -installation, modification or redistribution of this NVIDIA software -constitutes acceptance of these terms. If you do not agree with these -terms, please do not use, install, modify or redistribute this NVIDIA -software. - -In consideration of your agreement to abide by the following terms, and -subject to these terms, NVIDIA grants you a personal, non-exclusive -license, under NVIDIA's copyrights in this original NVIDIA software (the -"NVIDIA Software"), to use, reproduce, modify and redistribute the -NVIDIA Software, with or without modifications, in source and/or binary -forms; provided that if you redistribute the NVIDIA Software, you must -retain the copyright notice of NVIDIA, this notice and the following -text and disclaimers in all such redistributions of the NVIDIA Software. -Neither the name, trademarks, service marks nor logos of NVIDIA -Corporation may be used to endorse or promote products derived from the -NVIDIA Software without specific prior written permission from NVIDIA. -Except as expressly stated in this notice, no other rights or licenses -express or implied, are granted by NVIDIA herein, including but not -limited to any patent rights that may be infringed by your derivative -works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. - -THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, -INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, -NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER -PRODUCTS. - -IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, -INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY -OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE -NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, -TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF -NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -\****************************************************************************/ - -// -// For recording and playing back the stream of tokens in a macro definition. -// - -#ifndef _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_WARNINGS -#endif -#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) -#define snprintf sprintf_s -#endif - -#include -#include -#include -#include - -#include "PpContext.h" -#include "PpTokens.h" - -namespace glslang { - - -namespace { - - // When recording (and playing back) should the backing name string - // be saved (restored)? - bool SaveName(int atom) - { - switch (atom) { - case PpAtomIdentifier: - case PpAtomConstString: - case PpAtomConstInt: - case PpAtomConstUint: - case PpAtomConstInt64: - case PpAtomConstUint64: - #ifdef AMD_EXTENSIONS - case PpAtomConstInt16: - case PpAtomConstUint16: - #endif - case PpAtomConstFloat: - case PpAtomConstDouble: - case PpAtomConstFloat16: - return true; - default: - return false; - } - } - - // When recording (and playing back) should the numeric value - // be saved (restored)? - bool SaveValue(int atom) - { - switch (atom) { - case PpAtomConstInt: - case PpAtomConstUint: - case PpAtomConstInt64: - case PpAtomConstUint64: - #ifdef AMD_EXTENSIONS - case PpAtomConstInt16: - case PpAtomConstUint16: - #endif - case PpAtomConstFloat: - case PpAtomConstDouble: - case PpAtomConstFloat16: - return true; - default: - return false; - } - } -} - -// push onto back of stream -void TPpContext::TokenStream::putSubtoken(char subtoken) -{ - data.push_back(static_cast(subtoken)); -} - -// get the next token in stream -int TPpContext::TokenStream::getSubtoken() -{ - if (current < data.size()) - return data[current++]; - else - return EndOfInput; -} - -// back up one position in the stream -void TPpContext::TokenStream::ungetSubtoken() -{ - if (current > 0) - --current; -} - -// Add a complete token (including backing string) to the end of a list -// for later playback. -void TPpContext::TokenStream::putToken(int atom, TPpToken* ppToken) -{ - // save the atom - assert((atom & ~0xff) == 0); - putSubtoken(static_cast(atom)); - - // save the backing name string - if (SaveName(atom)) { - const char* s = ppToken->name; - while (*s) - putSubtoken(*s++); - putSubtoken(0); - } - - // save the numeric value - if (SaveValue(atom)) { - const char* n = reinterpret_cast(&ppToken->i64val); - for (size_t i = 0; i < sizeof(ppToken->i64val); ++i) - putSubtoken(*n++); - } -} - -// Read the next token from a token stream. -// (Not the source stream, but a stream used to hold a tokenized macro). -int TPpContext::TokenStream::getToken(TParseContextBase& parseContext, TPpToken *ppToken) -{ - // get the atom - int atom = getSubtoken(); - if (atom == EndOfInput) - return atom; - - // init the token - ppToken->clear(); - ppToken->loc = parseContext.getCurrentLoc(); - - // get the backing name string - if (SaveName(atom)) { - int ch = getSubtoken(); - int len = 0; - while (ch != 0 && ch != EndOfInput) { - if (len < MaxTokenLength) { - ppToken->name[len] = (char)ch; - len++; - ch = getSubtoken(); - } else { - parseContext.error(ppToken->loc, "token too long", "", ""); - break; - } - } - ppToken->name[len] = 0; - } - - // Check for ##, unless the current # is the last character - if (atom == '#') { - if (current < data.size()) { - if (getSubtoken() == '#') { - parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); - parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); - atom = PpAtomPaste; - } else - ungetSubtoken(); - } - } - - // get the numeric value - if (SaveValue(atom)) { - char* n = reinterpret_cast(&ppToken->i64val); - for (size_t i = 0; i < sizeof(ppToken->i64val); ++i) - *n++ = getSubtoken(); - } - - return atom; -} - -// We are pasting if -// 1. we are preceding a pasting operator within this stream -// or -// 2. the entire macro is preceding a pasting operator (lastTokenPastes) -// and we are also on the last token -bool TPpContext::TokenStream::peekTokenizedPasting(bool lastTokenPastes) -{ - // 1. preceding ##? - - size_t savePos = current; - int subtoken; - // skip white space - do { - subtoken = getSubtoken(); - } while (subtoken == ' '); - current = savePos; - if (subtoken == PpAtomPaste) - return true; - - // 2. last token and we've been told after this there will be a ## - - if (! lastTokenPastes) - return false; - // Getting here means the last token will be pasted, after this - - // Are we at the last non-whitespace token? - savePos = current; - bool moreTokens = false; - do { - subtoken = getSubtoken(); - if (subtoken == EndOfInput) - break; - if (subtoken != ' ') { - moreTokens = true; - break; - } - } while (true); - current = savePos; - - return !moreTokens; -} - -// See if the next non-white-space tokens are two consecutive # -bool TPpContext::TokenStream::peekUntokenizedPasting() -{ - // don't return early, have to restore this - size_t savePos = current; - - // skip white-space - int subtoken; - do { - subtoken = getSubtoken(); - } while (subtoken == ' '); - - // check for ## - bool pasting = false; - if (subtoken == '#') { - subtoken = getSubtoken(); - if (subtoken == '#') - pasting = true; - } - - current = savePos; - - return pasting; -} - -void TPpContext::pushTokenStreamInput(TokenStream& ts, bool prepasting) -{ - pushInput(new tTokenInput(this, &ts, prepasting)); - ts.reset(); -} - -int TPpContext::tUngotTokenInput::scan(TPpToken* ppToken) -{ - if (done) - return EndOfInput; - - int ret = token; - *ppToken = lval; - done = true; - - return ret; -} - -void TPpContext::UngetToken(int token, TPpToken* ppToken) -{ - pushInput(new tUngotTokenInput(this, token, ppToken)); -} - -} // end namespace glslang diff --git a/deps/glslang-new/glslang/OSDependent/Unix/CMakeLists.txt b/deps/glslang-new/glslang/OSDependent/Unix/CMakeLists.txt deleted file mode 100644 index 1bf49e1256..0000000000 --- a/deps/glslang-new/glslang/OSDependent/Unix/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -add_library(OSDependent STATIC ossource.cpp ../osinclude.h) -set_property(TARGET OSDependent PROPERTY FOLDER glslang) -set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON) - -if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang-new/glslang/OSDependent/Unix/ossource.cpp b/deps/glslang-new/glslang/OSDependent/Unix/ossource.cpp deleted file mode 100644 index f59bbceb4a..0000000000 --- a/deps/glslang-new/glslang/OSDependent/Unix/ossource.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// -// Copyright (C) 2002-2005 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. -// - -// -// This file contains the Linux-specific functions -// -#include "../osinclude.h" -#include "../../../OGLCompilersDLL/InitializeDll.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace glslang { - -// -// Thread cleanup -// - -// -// Wrapper for Linux call to DetachThread. This is required as pthread_cleanup_push() expects -// the cleanup routine to return void. -// -static void DetachThreadLinux(void *) -{ - DetachThread(); -} - -// -// Registers cleanup handler, sets cancel type and state, and executes the thread specific -// cleanup handler. This function will be called in the Standalone.cpp for regression -// testing. When OpenGL applications are run with the driver code, Linux OS does the -// thread cleanup. -// -void OS_CleanupThreadData(void) -{ -#ifdef __ANDROID__ - DetachThreadLinux(NULL); -#else - int old_cancel_state, old_cancel_type; - void *cleanupArg = NULL; - - // - // Set thread cancel state and push cleanup handler. - // - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old_cancel_state); - pthread_cleanup_push(DetachThreadLinux, (void *) cleanupArg); - - // - // Put the thread in deferred cancellation mode. - // - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &old_cancel_type); - - // - // Pop cleanup handler and execute it prior to unregistering the cleanup handler. - // - pthread_cleanup_pop(1); - - // - // Restore the thread's previous cancellation mode. - // - pthread_setcanceltype(old_cancel_state, NULL); -#endif -} - -// -// Thread Local Storage Operations -// -inline OS_TLSIndex PthreadKeyToTLSIndex(pthread_key_t key) -{ - return (OS_TLSIndex)((uintptr_t)key + 1); -} - -inline pthread_key_t TLSIndexToPthreadKey(OS_TLSIndex nIndex) -{ - return (pthread_key_t)((uintptr_t)nIndex - 1); -} - -OS_TLSIndex OS_AllocTLSIndex() -{ - pthread_key_t pPoolIndex; - - // - // Create global pool key. - // - if ((pthread_key_create(&pPoolIndex, NULL)) != 0) { - assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); - return OS_INVALID_TLS_INDEX; - } - else - return PthreadKeyToTLSIndex(pPoolIndex); -} - -bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) -{ - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } - - if (pthread_setspecific(TLSIndexToPthreadKey(nIndex), lpvValue) == 0) - return true; - else - return false; -} - -void* OS_GetTLSValue(OS_TLSIndex nIndex) -{ - // - // This function should return 0 if nIndex is invalid. - // - assert(nIndex != OS_INVALID_TLS_INDEX); - return pthread_getspecific(TLSIndexToPthreadKey(nIndex)); -} - -bool OS_FreeTLSIndex(OS_TLSIndex nIndex) -{ - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } - - // - // Delete the global pool key. - // - if (pthread_key_delete(TLSIndexToPthreadKey(nIndex)) == 0) - return true; - else - return false; -} - -namespace { - pthread_mutex_t gMutex; -} - -void InitGlobalLock() -{ - pthread_mutexattr_t mutexattr; - pthread_mutexattr_init(&mutexattr); - pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init(&gMutex, &mutexattr); -} - -void GetGlobalLock() -{ - pthread_mutex_lock(&gMutex); -} - -void ReleaseGlobalLock() -{ - pthread_mutex_unlock(&gMutex); -} - -// #define DUMP_COUNTERS - -void OS_DumpMemoryCounters() -{ -#ifdef DUMP_COUNTERS - struct rusage usage; - - if (getrusage(RUSAGE_SELF, &usage) == 0) - printf("Working set size: %ld\n", usage.ru_maxrss * 1024); -#else - printf("Recompile with DUMP_COUNTERS defined to see counters.\n"); -#endif -} - -} // end namespace glslang diff --git a/deps/glslang-new/gtests/CMakeLists.txt b/deps/glslang-new/gtests/CMakeLists.txt deleted file mode 100644 index 15b73f4bde..0000000000 --- a/deps/glslang-new/gtests/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -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-new/hlsl/CMakeLists.txt b/deps/glslang-new/hlsl/CMakeLists.txt deleted file mode 100755 index 6d1d8e6ae5..0000000000 --- a/deps/glslang-new/hlsl/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -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-new/hlsl/hlslAttributes.cpp b/deps/glslang-new/hlsl/hlslAttributes.cpp deleted file mode 100644 index 261cec346f..0000000000 --- a/deps/glslang-new/hlsl/hlslAttributes.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// 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-new/hlsl/hlslAttributes.h b/deps/glslang-new/hlsl/hlslAttributes.h deleted file mode 100644 index b1cc0372e5..0000000000 --- a/deps/glslang-new/hlsl/hlslAttributes.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// 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-new/hlsl/hlslGrammar.h b/deps/glslang-new/hlsl/hlslGrammar.h deleted file mode 100755 index 046f7957e5..0000000000 --- a/deps/glslang-new/hlsl/hlslGrammar.h +++ /dev/null @@ -1,140 +0,0 @@ -// -// 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-new/hlsl/hlslParseHelper.cpp b/deps/glslang-new/hlsl/hlslParseHelper.cpp deleted file mode 100755 index d80f356b55..0000000000 --- a/deps/glslang-new/hlsl/hlslParseHelper.cpp +++ /dev/null @@ -1,9994 +0,0 @@ -// -// 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-new/hlsl/hlslParseHelper.h b/deps/glslang-new/hlsl/hlslParseHelper.h deleted file mode 100755 index 32a1923940..0000000000 --- a/deps/glslang-new/hlsl/hlslParseHelper.h +++ /dev/null @@ -1,508 +0,0 @@ -// -// 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-new/hlsl/hlslScanContext.cpp b/deps/glslang-new/hlsl/hlslScanContext.cpp deleted file mode 100755 index 28a66bb47d..0000000000 --- a/deps/glslang-new/hlsl/hlslScanContext.cpp +++ /dev/null @@ -1,903 +0,0 @@ -// -// 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" - -namespace { - -struct str_eq -{ - bool operator()(const char* lhs, const char* rhs) const - { - return strcmp(lhs, rhs) == 0; - } -}; - -struct str_hash -{ - size_t operator()(const char* str) const - { - // djb2 - unsigned long hash = 5381; - int c; - - while ((c = *str++) != 0) - hash = ((hash << 5) + hash) + c; - - return hash; - } -}; - -// 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* KeywordMap = nullptr; -std::unordered_set* ReservedSet = nullptr; -std::unordered_map* SemanticMap = nullptr; - -}; - -namespace glslang { - -void HlslScanContext::fillInKeywordMap() -{ - if (KeywordMap != 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; - } - KeywordMap = new std::unordered_map; - - (*KeywordMap)["static"] = EHTokStatic; - (*KeywordMap)["const"] = EHTokConst; - (*KeywordMap)["unorm"] = EHTokUnorm; - (*KeywordMap)["snorm"] = EHTokSNorm; - (*KeywordMap)["extern"] = EHTokExtern; - (*KeywordMap)["uniform"] = EHTokUniform; - (*KeywordMap)["volatile"] = EHTokVolatile; - (*KeywordMap)["precise"] = EHTokPrecise; - (*KeywordMap)["shared"] = EHTokShared; - (*KeywordMap)["groupshared"] = EHTokGroupShared; - (*KeywordMap)["linear"] = EHTokLinear; - (*KeywordMap)["centroid"] = EHTokCentroid; - (*KeywordMap)["nointerpolation"] = EHTokNointerpolation; - (*KeywordMap)["noperspective"] = EHTokNoperspective; - (*KeywordMap)["sample"] = EHTokSample; - (*KeywordMap)["row_major"] = EHTokRowMajor; - (*KeywordMap)["column_major"] = EHTokColumnMajor; - (*KeywordMap)["packoffset"] = EHTokPackOffset; - (*KeywordMap)["in"] = EHTokIn; - (*KeywordMap)["out"] = EHTokOut; - (*KeywordMap)["inout"] = EHTokInOut; - (*KeywordMap)["layout"] = EHTokLayout; - (*KeywordMap)["globallycoherent"] = EHTokGloballyCoherent; - (*KeywordMap)["inline"] = EHTokInline; - - (*KeywordMap)["point"] = EHTokPoint; - (*KeywordMap)["line"] = EHTokLine; - (*KeywordMap)["triangle"] = EHTokTriangle; - (*KeywordMap)["lineadj"] = EHTokLineAdj; - (*KeywordMap)["triangleadj"] = EHTokTriangleAdj; - - (*KeywordMap)["PointStream"] = EHTokPointStream; - (*KeywordMap)["LineStream"] = EHTokLineStream; - (*KeywordMap)["TriangleStream"] = EHTokTriangleStream; - - (*KeywordMap)["InputPatch"] = EHTokInputPatch; - (*KeywordMap)["OutputPatch"] = EHTokOutputPatch; - - (*KeywordMap)["Buffer"] = EHTokBuffer; - (*KeywordMap)["vector"] = EHTokVector; - (*KeywordMap)["matrix"] = EHTokMatrix; - - (*KeywordMap)["void"] = EHTokVoid; - (*KeywordMap)["string"] = EHTokString; - (*KeywordMap)["bool"] = EHTokBool; - (*KeywordMap)["int"] = EHTokInt; - (*KeywordMap)["uint"] = EHTokUint; - (*KeywordMap)["uint64_t"] = EHTokUint64; - (*KeywordMap)["dword"] = EHTokDword; - (*KeywordMap)["half"] = EHTokHalf; - (*KeywordMap)["float"] = EHTokFloat; - (*KeywordMap)["double"] = EHTokDouble; - (*KeywordMap)["min16float"] = EHTokMin16float; - (*KeywordMap)["min10float"] = EHTokMin10float; - (*KeywordMap)["min16int"] = EHTokMin16int; - (*KeywordMap)["min12int"] = EHTokMin12int; - (*KeywordMap)["min16uint"] = EHTokMin16uint; - - (*KeywordMap)["bool1"] = EHTokBool1; - (*KeywordMap)["bool2"] = EHTokBool2; - (*KeywordMap)["bool3"] = EHTokBool3; - (*KeywordMap)["bool4"] = EHTokBool4; - (*KeywordMap)["float1"] = EHTokFloat1; - (*KeywordMap)["float2"] = EHTokFloat2; - (*KeywordMap)["float3"] = EHTokFloat3; - (*KeywordMap)["float4"] = EHTokFloat4; - (*KeywordMap)["int1"] = EHTokInt1; - (*KeywordMap)["int2"] = EHTokInt2; - (*KeywordMap)["int3"] = EHTokInt3; - (*KeywordMap)["int4"] = EHTokInt4; - (*KeywordMap)["double1"] = EHTokDouble1; - (*KeywordMap)["double2"] = EHTokDouble2; - (*KeywordMap)["double3"] = EHTokDouble3; - (*KeywordMap)["double4"] = EHTokDouble4; - (*KeywordMap)["uint1"] = EHTokUint1; - (*KeywordMap)["uint2"] = EHTokUint2; - (*KeywordMap)["uint3"] = EHTokUint3; - (*KeywordMap)["uint4"] = EHTokUint4; - - (*KeywordMap)["half1"] = EHTokHalf1; - (*KeywordMap)["half2"] = EHTokHalf2; - (*KeywordMap)["half3"] = EHTokHalf3; - (*KeywordMap)["half4"] = EHTokHalf4; - (*KeywordMap)["min16float1"] = EHTokMin16float1; - (*KeywordMap)["min16float2"] = EHTokMin16float2; - (*KeywordMap)["min16float3"] = EHTokMin16float3; - (*KeywordMap)["min16float4"] = EHTokMin16float4; - (*KeywordMap)["min10float1"] = EHTokMin10float1; - (*KeywordMap)["min10float2"] = EHTokMin10float2; - (*KeywordMap)["min10float3"] = EHTokMin10float3; - (*KeywordMap)["min10float4"] = EHTokMin10float4; - (*KeywordMap)["min16int1"] = EHTokMin16int1; - (*KeywordMap)["min16int2"] = EHTokMin16int2; - (*KeywordMap)["min16int3"] = EHTokMin16int3; - (*KeywordMap)["min16int4"] = EHTokMin16int4; - (*KeywordMap)["min12int1"] = EHTokMin12int1; - (*KeywordMap)["min12int2"] = EHTokMin12int2; - (*KeywordMap)["min12int3"] = EHTokMin12int3; - (*KeywordMap)["min12int4"] = EHTokMin12int4; - (*KeywordMap)["min16uint1"] = EHTokMin16uint1; - (*KeywordMap)["min16uint2"] = EHTokMin16uint2; - (*KeywordMap)["min16uint3"] = EHTokMin16uint3; - (*KeywordMap)["min16uint4"] = EHTokMin16uint4; - - (*KeywordMap)["bool1x1"] = EHTokBool1x1; - (*KeywordMap)["bool1x2"] = EHTokBool1x2; - (*KeywordMap)["bool1x3"] = EHTokBool1x3; - (*KeywordMap)["bool1x4"] = EHTokBool1x4; - (*KeywordMap)["bool2x1"] = EHTokBool2x1; - (*KeywordMap)["bool2x2"] = EHTokBool2x2; - (*KeywordMap)["bool2x3"] = EHTokBool2x3; - (*KeywordMap)["bool2x4"] = EHTokBool2x4; - (*KeywordMap)["bool3x1"] = EHTokBool3x1; - (*KeywordMap)["bool3x2"] = EHTokBool3x2; - (*KeywordMap)["bool3x3"] = EHTokBool3x3; - (*KeywordMap)["bool3x4"] = EHTokBool3x4; - (*KeywordMap)["bool4x1"] = EHTokBool4x1; - (*KeywordMap)["bool4x2"] = EHTokBool4x2; - (*KeywordMap)["bool4x3"] = EHTokBool4x3; - (*KeywordMap)["bool4x4"] = EHTokBool4x4; - (*KeywordMap)["int1x1"] = EHTokInt1x1; - (*KeywordMap)["int1x2"] = EHTokInt1x2; - (*KeywordMap)["int1x3"] = EHTokInt1x3; - (*KeywordMap)["int1x4"] = EHTokInt1x4; - (*KeywordMap)["int2x1"] = EHTokInt2x1; - (*KeywordMap)["int2x2"] = EHTokInt2x2; - (*KeywordMap)["int2x3"] = EHTokInt2x3; - (*KeywordMap)["int2x4"] = EHTokInt2x4; - (*KeywordMap)["int3x1"] = EHTokInt3x1; - (*KeywordMap)["int3x2"] = EHTokInt3x2; - (*KeywordMap)["int3x3"] = EHTokInt3x3; - (*KeywordMap)["int3x4"] = EHTokInt3x4; - (*KeywordMap)["int4x1"] = EHTokInt4x1; - (*KeywordMap)["int4x2"] = EHTokInt4x2; - (*KeywordMap)["int4x3"] = EHTokInt4x3; - (*KeywordMap)["int4x4"] = EHTokInt4x4; - (*KeywordMap)["uint1x1"] = EHTokUint1x1; - (*KeywordMap)["uint1x2"] = EHTokUint1x2; - (*KeywordMap)["uint1x3"] = EHTokUint1x3; - (*KeywordMap)["uint1x4"] = EHTokUint1x4; - (*KeywordMap)["uint2x1"] = EHTokUint2x1; - (*KeywordMap)["uint2x2"] = EHTokUint2x2; - (*KeywordMap)["uint2x3"] = EHTokUint2x3; - (*KeywordMap)["uint2x4"] = EHTokUint2x4; - (*KeywordMap)["uint3x1"] = EHTokUint3x1; - (*KeywordMap)["uint3x2"] = EHTokUint3x2; - (*KeywordMap)["uint3x3"] = EHTokUint3x3; - (*KeywordMap)["uint3x4"] = EHTokUint3x4; - (*KeywordMap)["uint4x1"] = EHTokUint4x1; - (*KeywordMap)["uint4x2"] = EHTokUint4x2; - (*KeywordMap)["uint4x3"] = EHTokUint4x3; - (*KeywordMap)["uint4x4"] = EHTokUint4x4; - (*KeywordMap)["bool1x1"] = EHTokBool1x1; - (*KeywordMap)["bool1x2"] = EHTokBool1x2; - (*KeywordMap)["bool1x3"] = EHTokBool1x3; - (*KeywordMap)["bool1x4"] = EHTokBool1x4; - (*KeywordMap)["bool2x1"] = EHTokBool2x1; - (*KeywordMap)["bool2x2"] = EHTokBool2x2; - (*KeywordMap)["bool2x3"] = EHTokBool2x3; - (*KeywordMap)["bool2x4"] = EHTokBool2x4; - (*KeywordMap)["bool3x1"] = EHTokBool3x1; - (*KeywordMap)["bool3x2"] = EHTokBool3x2; - (*KeywordMap)["bool3x3"] = EHTokBool3x3; - (*KeywordMap)["bool3x4"] = EHTokBool3x4; - (*KeywordMap)["bool4x1"] = EHTokBool4x1; - (*KeywordMap)["bool4x2"] = EHTokBool4x2; - (*KeywordMap)["bool4x3"] = EHTokBool4x3; - (*KeywordMap)["bool4x4"] = EHTokBool4x4; - (*KeywordMap)["float1x1"] = EHTokFloat1x1; - (*KeywordMap)["float1x2"] = EHTokFloat1x2; - (*KeywordMap)["float1x3"] = EHTokFloat1x3; - (*KeywordMap)["float1x4"] = EHTokFloat1x4; - (*KeywordMap)["float2x1"] = EHTokFloat2x1; - (*KeywordMap)["float2x2"] = EHTokFloat2x2; - (*KeywordMap)["float2x3"] = EHTokFloat2x3; - (*KeywordMap)["float2x4"] = EHTokFloat2x4; - (*KeywordMap)["float3x1"] = EHTokFloat3x1; - (*KeywordMap)["float3x2"] = EHTokFloat3x2; - (*KeywordMap)["float3x3"] = EHTokFloat3x3; - (*KeywordMap)["float3x4"] = EHTokFloat3x4; - (*KeywordMap)["float4x1"] = EHTokFloat4x1; - (*KeywordMap)["float4x2"] = EHTokFloat4x2; - (*KeywordMap)["float4x3"] = EHTokFloat4x3; - (*KeywordMap)["float4x4"] = EHTokFloat4x4; - (*KeywordMap)["half1x1"] = EHTokHalf1x1; - (*KeywordMap)["half1x2"] = EHTokHalf1x2; - (*KeywordMap)["half1x3"] = EHTokHalf1x3; - (*KeywordMap)["half1x4"] = EHTokHalf1x4; - (*KeywordMap)["half2x1"] = EHTokHalf2x1; - (*KeywordMap)["half2x2"] = EHTokHalf2x2; - (*KeywordMap)["half2x3"] = EHTokHalf2x3; - (*KeywordMap)["half2x4"] = EHTokHalf2x4; - (*KeywordMap)["half3x1"] = EHTokHalf3x1; - (*KeywordMap)["half3x2"] = EHTokHalf3x2; - (*KeywordMap)["half3x3"] = EHTokHalf3x3; - (*KeywordMap)["half3x4"] = EHTokHalf3x4; - (*KeywordMap)["half4x1"] = EHTokHalf4x1; - (*KeywordMap)["half4x2"] = EHTokHalf4x2; - (*KeywordMap)["half4x3"] = EHTokHalf4x3; - (*KeywordMap)["half4x4"] = EHTokHalf4x4; - (*KeywordMap)["double1x1"] = EHTokDouble1x1; - (*KeywordMap)["double1x2"] = EHTokDouble1x2; - (*KeywordMap)["double1x3"] = EHTokDouble1x3; - (*KeywordMap)["double1x4"] = EHTokDouble1x4; - (*KeywordMap)["double2x1"] = EHTokDouble2x1; - (*KeywordMap)["double2x2"] = EHTokDouble2x2; - (*KeywordMap)["double2x3"] = EHTokDouble2x3; - (*KeywordMap)["double2x4"] = EHTokDouble2x4; - (*KeywordMap)["double3x1"] = EHTokDouble3x1; - (*KeywordMap)["double3x2"] = EHTokDouble3x2; - (*KeywordMap)["double3x3"] = EHTokDouble3x3; - (*KeywordMap)["double3x4"] = EHTokDouble3x4; - (*KeywordMap)["double4x1"] = EHTokDouble4x1; - (*KeywordMap)["double4x2"] = EHTokDouble4x2; - (*KeywordMap)["double4x3"] = EHTokDouble4x3; - (*KeywordMap)["double4x4"] = EHTokDouble4x4; - - (*KeywordMap)["sampler"] = EHTokSampler; - (*KeywordMap)["sampler1D"] = EHTokSampler1d; - (*KeywordMap)["sampler2D"] = EHTokSampler2d; - (*KeywordMap)["sampler3D"] = EHTokSampler3d; - (*KeywordMap)["samplerCube"] = EHTokSamplerCube; - (*KeywordMap)["sampler_state"] = EHTokSamplerState; - (*KeywordMap)["SamplerState"] = EHTokSamplerState; - (*KeywordMap)["SamplerComparisonState"] = EHTokSamplerComparisonState; - (*KeywordMap)["texture"] = EHTokTexture; - (*KeywordMap)["Texture1D"] = EHTokTexture1d; - (*KeywordMap)["Texture1DArray"] = EHTokTexture1darray; - (*KeywordMap)["Texture2D"] = EHTokTexture2d; - (*KeywordMap)["Texture2DArray"] = EHTokTexture2darray; - (*KeywordMap)["Texture3D"] = EHTokTexture3d; - (*KeywordMap)["TextureCube"] = EHTokTextureCube; - (*KeywordMap)["TextureCubeArray"] = EHTokTextureCubearray; - (*KeywordMap)["Texture2DMS"] = EHTokTexture2DMS; - (*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; - (*KeywordMap)["RWTexture1D"] = EHTokRWTexture1d; - (*KeywordMap)["RWTexture1DArray"] = EHTokRWTexture1darray; - (*KeywordMap)["RWTexture2D"] = EHTokRWTexture2d; - (*KeywordMap)["RWTexture2DArray"] = EHTokRWTexture2darray; - (*KeywordMap)["RWTexture3D"] = EHTokRWTexture3d; - (*KeywordMap)["RWBuffer"] = EHTokRWBuffer; - (*KeywordMap)["SubpassInput"] = EHTokSubpassInput; - (*KeywordMap)["SubpassInputMS"] = EHTokSubpassInputMS; - - (*KeywordMap)["AppendStructuredBuffer"] = EHTokAppendStructuredBuffer; - (*KeywordMap)["ByteAddressBuffer"] = EHTokByteAddressBuffer; - (*KeywordMap)["ConsumeStructuredBuffer"] = EHTokConsumeStructuredBuffer; - (*KeywordMap)["RWByteAddressBuffer"] = EHTokRWByteAddressBuffer; - (*KeywordMap)["RWStructuredBuffer"] = EHTokRWStructuredBuffer; - (*KeywordMap)["StructuredBuffer"] = EHTokStructuredBuffer; - (*KeywordMap)["TextureBuffer"] = EHTokTextureBuffer; - - (*KeywordMap)["class"] = EHTokClass; - (*KeywordMap)["struct"] = EHTokStruct; - (*KeywordMap)["cbuffer"] = EHTokCBuffer; - (*KeywordMap)["ConstantBuffer"] = EHTokConstantBuffer; - (*KeywordMap)["tbuffer"] = EHTokTBuffer; - (*KeywordMap)["typedef"] = EHTokTypedef; - (*KeywordMap)["this"] = EHTokThis; - (*KeywordMap)["namespace"] = EHTokNamespace; - - (*KeywordMap)["true"] = EHTokBoolConstant; - (*KeywordMap)["false"] = EHTokBoolConstant; - - (*KeywordMap)["for"] = EHTokFor; - (*KeywordMap)["do"] = EHTokDo; - (*KeywordMap)["while"] = EHTokWhile; - (*KeywordMap)["break"] = EHTokBreak; - (*KeywordMap)["continue"] = EHTokContinue; - (*KeywordMap)["if"] = EHTokIf; - (*KeywordMap)["else"] = EHTokElse; - (*KeywordMap)["discard"] = EHTokDiscard; - (*KeywordMap)["return"] = EHTokReturn; - (*KeywordMap)["switch"] = EHTokSwitch; - (*KeywordMap)["case"] = EHTokCase; - (*KeywordMap)["default"] = EHTokDefault; - - // TODO: get correct set here - ReservedSet = new std::unordered_set; - - ReservedSet->insert("auto"); - ReservedSet->insert("catch"); - ReservedSet->insert("char"); - ReservedSet->insert("const_cast"); - ReservedSet->insert("enum"); - ReservedSet->insert("explicit"); - ReservedSet->insert("friend"); - ReservedSet->insert("goto"); - ReservedSet->insert("long"); - ReservedSet->insert("mutable"); - ReservedSet->insert("new"); - ReservedSet->insert("operator"); - ReservedSet->insert("private"); - ReservedSet->insert("protected"); - ReservedSet->insert("public"); - ReservedSet->insert("reinterpret_cast"); - ReservedSet->insert("short"); - ReservedSet->insert("signed"); - ReservedSet->insert("sizeof"); - ReservedSet->insert("static_cast"); - ReservedSet->insert("template"); - ReservedSet->insert("throw"); - ReservedSet->insert("try"); - ReservedSet->insert("typename"); - ReservedSet->insert("union"); - ReservedSet->insert("unsigned"); - ReservedSet->insert("using"); - ReservedSet->insert("virtual"); - - SemanticMap = 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) { - (*SemanticMap)["PSIZE"] = EbvPointSize; - (*SemanticMap)["FOG"] = EbvFogFragCoord; - (*SemanticMap)["DEPTH"] = EbvFragDepth; - (*SemanticMap)["VFACE"] = EbvFace; - (*SemanticMap)["VPOS"] = EbvFragCoord; - } - - (*SemanticMap)["SV_POSITION"] = EbvPosition; - (*SemanticMap)["SV_VERTEXID"] = EbvVertexIndex; - (*SemanticMap)["SV_VIEWPORTARRAYINDEX"] = EbvViewportIndex; - (*SemanticMap)["SV_TESSFACTOR"] = EbvTessLevelOuter; - (*SemanticMap)["SV_SAMPLEINDEX"] = EbvSampleId; - (*SemanticMap)["SV_RENDERTARGETARRAYINDEX"] = EbvLayer; - (*SemanticMap)["SV_PRIMITIVEID"] = EbvPrimitiveId; - (*SemanticMap)["SV_OUTPUTCONTROLPOINTID"] = EbvInvocationId; - (*SemanticMap)["SV_ISFRONTFACE"] = EbvFace; - (*SemanticMap)["SV_INSTANCEID"] = EbvInstanceIndex; - (*SemanticMap)["SV_INSIDETESSFACTOR"] = EbvTessLevelInner; - (*SemanticMap)["SV_GSINSTANCEID"] = EbvInvocationId; - (*SemanticMap)["SV_DISPATCHTHREADID"] = EbvGlobalInvocationId; - (*SemanticMap)["SV_GROUPTHREADID"] = EbvLocalInvocationId; - (*SemanticMap)["SV_GROUPINDEX"] = EbvLocalInvocationIndex; - (*SemanticMap)["SV_GROUPID"] = EbvWorkGroupId; - (*SemanticMap)["SV_DOMAINLOCATION"] = EbvTessCoord; - (*SemanticMap)["SV_DEPTH"] = EbvFragDepth; - (*SemanticMap)["SV_COVERAGE"] = EbvSampleMask; - (*SemanticMap)["SV_DEPTHGREATEREQUAL"] = EbvFragDepthGreater; - (*SemanticMap)["SV_DEPTHLESSEQUAL"] = EbvFragDepthLesser; - (*SemanticMap)["SV_STENCILREF"] = EbvFragStencilRef; -} - -void HlslScanContext::deleteKeywordMap() -{ - delete KeywordMap; - KeywordMap = nullptr; - delete ReservedSet; - ReservedSet = nullptr; - delete SemanticMap; - SemanticMap = 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 = SemanticMap->find(upperCase); - if (it != SemanticMap->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 (ReservedSet->find(tokenText) != ReservedSet->end()) - return reservedWord(); - - auto it = KeywordMap->find(tokenText); - if (it == KeywordMap->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-new/hlsl/hlslTokenStream.cpp b/deps/glslang-new/hlsl/hlslTokenStream.cpp deleted file mode 100755 index 5d9311cfd7..0000000000 --- a/deps/glslang-new/hlsl/hlslTokenStream.cpp +++ /dev/null @@ -1,150 +0,0 @@ -// -// 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-new/make-revision b/deps/glslang-new/make-revision deleted file mode 100755 index a89ff08772..0000000000 --- a/deps/glslang-new/make-revision +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -( -echo "// This header is generated by the make-revision script." -echo -echo \#define GLSLANG_PATCH_LEVEL `git log --oneline | wc -l` -) > glslang/Include/revision.h diff --git a/deps/glslang/glslang-old/.appveyor.yml b/deps/glslang/glslang-old/.appveyor.yml new file mode 100644 index 0000000000..64e7ae64af --- /dev/null +++ b/deps/glslang/glslang-old/.appveyor.yml @@ -0,0 +1,40 @@ +# Windows Build Configuration for AppVeyor +# http://www.appveyor.com/docs/appveyor-yml + +# build version format +version: "{build}" + +os: Visual Studio 2013 + +platform: + - Any CPU + +configuration: + - Debug + - Release + +branches: + only: + - master + +clone_depth: 5 + +matrix: + fast_finish: true # Show final status immediately if a test fails. + +# scripts that run after cloning repository +install: + - git clone https://github.com/google/googletest.git External/googletest + +build: + parallel: true # enable MSBuild parallel builds + verbosity: minimal + +build_script: + - mkdir build && cd build + - cmake .. -DCMAKE_INSTALL_PREFIX=install + - cmake --build . --config %CONFIGURATION% --target install + +test_script: + - ctest -C %CONFIGURATION% --output-on-failure + - cd ../Test && bash runtests diff --git a/deps/glslang-new/.clang-format b/deps/glslang/glslang-old/.clang-format similarity index 100% rename from deps/glslang-new/.clang-format rename to deps/glslang/glslang-old/.clang-format diff --git a/deps/glslang-new/.gitattributes b/deps/glslang/glslang-old/.gitattributes similarity index 100% rename from deps/glslang-new/.gitattributes rename to deps/glslang/glslang-old/.gitattributes diff --git a/deps/glslang-new/.gitignore b/deps/glslang/glslang-old/.gitignore similarity index 51% rename from deps/glslang-new/.gitignore rename to deps/glslang/glslang-old/.gitignore index a1fe3944b1..30889ac7d9 100644 --- a/deps/glslang-new/.gitignore +++ b/deps/glslang/glslang-old/.gitignore @@ -6,5 +6,8 @@ tags TAGS build/ Test/localResults/ +Test/multiThread.out +Test/singleThread.out +Test/vert.spv +Test/frag.spv External/googletest -External/spirv-tools diff --git a/deps/glslang/glslang-old/.travis.yml b/deps/glslang/glslang-old/.travis.yml new file mode 100644 index 0000000000..4a88dce5a9 --- /dev/null +++ b/deps/glslang/glslang-old/.travis.yml @@ -0,0 +1,60 @@ +# Linux and Mac Build Configuration for Travis + +language: cpp + +os: + - linux + - osx + +# Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment. +sudo: required +dist: trusty + +env: + - GLSLANG_BUILD_TYPE=Release + - GLSLANG_BUILD_TYPE=Debug + +compiler: + - clang + - gcc + +matrix: + fast_finish: true # Show final status immediately if a test fails. + exclude: + # Skip GCC builds on Mac OS X. + - os: osx + compiler: gcc + +cache: + apt: true + +branches: + only: + - master + +addons: + apt: + packages: + - clang-3.6 + - ninja-build + +install: + # Install ninja on Mac OS X. + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ninja; fi + # Make sure that clang-3.6 is selected. + - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then + export CC=clang-3.6 CXX=clang++-3.6; + fi + +before_script: + - git clone https://github.com/google/googletest.git External/googletest + +script: + - mkdir build && cd build + # We need to install the compiled binaries so the paths in the runtests script can resolve correctly. + - cmake -GNinja -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=`pwd`/install .. + - ninja install + # Run Google-Test-based tests. + - ctest --output-on-failure + # Run runtests-based tests. + - cd ../Test && ./runtests diff --git a/deps/glslang/glslang-old/CMakeLists.txt b/deps/glslang/glslang-old/CMakeLists.txt new file mode 100644 index 0000000000..33b4764d59 --- /dev/null +++ b/deps/glslang/glslang-old/CMakeLists.txt @@ -0,0 +1,58 @@ +cmake_minimum_required(VERSION 2.8.11) +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" ON) + +enable_testing() + +set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix") + +project(glslang) + +if(ENABLE_AMD_EXTENSIONS) + add_definitions(-DAMD_EXTENSIONS) +endif(ENABLE_AMD_EXTENSIONS) + +if(WIN32) + set(CMAKE_DEBUG_POSTFIX "d") + include(ChooseMSVCCRT.cmake) + add_definitions(-DGLSLANG_OSINCLUDE_WIN32) +elseif(UNIX) + add_definitions(-fPIC) + add_definitions(-DGLSLANG_OSINCLUDE_UNIX) +else(WIN32) + message("unknown platform") +endif(WIN32) + +if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs + -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable) + add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over. + add_definitions(-std=c++11) +elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + add_definitions(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs + -Wunused-parameter -Wunused-value -Wunused-variable) + add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over. + add_definitions(-std=c++11) +endif() + +function(glslang_set_link_args TARGET) + # For MinGW compiles, statically link against the GCC and C++ runtimes. + # This avoids the need to ship those runtimes as DLLs. + if(WIN32) + if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") + set_target_properties(${TARGET} PROPERTIES + LINK_FLAGS "-static -static-libgcc -static-libstdc++") + endif() + endif(WIN32) +endfunction(glslang_set_link_args) + +# We depend on these for later projects, so they should come first. +add_subdirectory(External) + +add_subdirectory(glslang) +add_subdirectory(OGLCompilersDLL) +add_subdirectory(StandAlone) +add_subdirectory(SPIRV) +add_subdirectory(hlsl) +add_subdirectory(gtests) diff --git a/deps/glslang-new/ChooseMSVCCRT.cmake b/deps/glslang/glslang-old/ChooseMSVCCRT.cmake similarity index 100% rename from deps/glslang-new/ChooseMSVCCRT.cmake rename to deps/glslang/glslang-old/ChooseMSVCCRT.cmake diff --git a/deps/glslang/glslang-old/External/CMakeLists.txt b/deps/glslang/glslang-old/External/CMakeLists.txt new file mode 100644 index 0000000000..5180ea5693 --- /dev/null +++ b/deps/glslang/glslang-old/External/CMakeLists.txt @@ -0,0 +1,34 @@ +# Suppress all warnings from external projects. +set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w) + +if (TARGET gmock) + message(STATUS "Google Mock already configured - use it") +elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest) + # We need to make sure Google Test does not mess up with the + # global CRT settings on Windows. + if(WIN32) + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + endif(WIN32) + add_subdirectory(googletest) + set(GTEST_TARGETS + gtest + gtest_main + gmock + gmock_main + ) + foreach(target ${GTEST_TARGETS}) + set_property(TARGET ${target} PROPERTY FOLDER gtest) + endforeach() + mark_as_advanced(gmock_build_tests + BUILD_GMOCK + BUILD_GTEST + BUILD_SHARED_LIBS + gtest_build_samples + gtest_build_tests + gtest_disable_pthreads + gtest_force_shared_crt + gtest_hide_internal_symbols) +else() + message(STATUS + "Google Mock was not found - tests based on that will not build") +endif() diff --git a/deps/glslang-new/OGLCompilersDLL/CMakeLists.txt b/deps/glslang/glslang-old/OGLCompilersDLL/CMakeLists.txt similarity index 50% rename from deps/glslang-new/OGLCompilersDLL/CMakeLists.txt rename to deps/glslang/glslang-old/OGLCompilersDLL/CMakeLists.txt index 5bb3f0ee69..4954db9458 100644 --- a/deps/glslang-new/OGLCompilersDLL/CMakeLists.txt +++ b/deps/glslang/glslang-old/OGLCompilersDLL/CMakeLists.txt @@ -2,13 +2,10 @@ set(SOURCES InitializeDll.cpp InitializeDll.h) add_library(OGLCompiler STATIC ${SOURCES}) set_property(TARGET OGLCompiler PROPERTY FOLDER glslang) -set_property(TARGET OGLCompiler PROPERTY POSITION_INDEPENDENT_CODE ON) if(WIN32) source_group("Source" FILES ${SOURCES}) endif(WIN32) -if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OGLCompiler - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif(ENABLE_GLSLANG_INSTALL) +install(TARGETS OGLCompiler + ARCHIVE DESTINATION lib) diff --git a/deps/glslang-new/OGLCompilersDLL/InitializeDll.cpp b/deps/glslang/glslang-old/OGLCompilersDLL/InitializeDll.cpp similarity index 60% rename from deps/glslang-new/OGLCompilersDLL/InitializeDll.cpp rename to deps/glslang/glslang-old/OGLCompilersDLL/InitializeDll.cpp index abea9108b1..e479881520 100644 --- a/deps/glslang-new/OGLCompilersDLL/InitializeDll.cpp +++ b/deps/glslang/glslang-old/OGLCompilersDLL/InitializeDll.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // #define SH_EXPORTING @@ -38,17 +38,13 @@ #include "InitializeDll.h" #include "../glslang/Include/InitializeGlobals.h" + #include "../glslang/Public/ShaderLang.h" -#include "../glslang/Include/PoolAlloc.h" namespace glslang { OS_TLSIndex ThreadInitializeIndex = OS_INVALID_TLS_INDEX; -// Per-process initialization. -// Needs to be called at least once before parsing, etc. is done. -// Will also do thread initialization for the calling thread; other -// threads will need to do that explicitly. bool InitProcess() { glslang::GetGlobalLock(); @@ -89,9 +85,7 @@ bool InitProcess() return true; } -// Per-thread scoped initialization. -// Must be called at least once by each new thread sharing the -// symbol tables, etc., needed to parse. + bool InitThread() { // @@ -105,21 +99,17 @@ bool InitThread() if (OS_GetTLSValue(ThreadInitializeIndex) != 0) return true; + InitializeMemoryPools(); + if (! OS_SetTLSValue(ThreadInitializeIndex, (void *)1)) { assert(0 && "InitThread(): Unable to set init flag."); return false; } - glslang::SetThreadPoolAllocator(nullptr); - return true; } -// Not necessary to call this: InitThread() is reentrant, and the need -// to do per thread tear down has been removed. -// -// This is kept, with memory management removed, to satisfy any exiting -// calls to it that rely on it. + bool DetachThread() { bool success = true; @@ -135,18 +125,14 @@ bool DetachThread() assert(0 && "DetachThread(): Unable to clear init flag."); success = false; } + + FreeGlobalPools(); + } return success; } -// Not necessary to call this: InitProcess() is reentrant. -// -// This is kept, with memory management removed, to satisfy any exiting -// calls to it that rely on it. -// -// Users of glslang should call shFinalize() or glslang::FinalizeProcess() for -// process-scoped memory tear down. bool DetachProcess() { bool success = true; @@ -154,8 +140,12 @@ bool DetachProcess() if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) return true; + ShFinalize(); + success = DetachThread(); + FreePoolIndex(); + OS_FreeTLSIndex(ThreadInitializeIndex); ThreadInitializeIndex = OS_INVALID_TLS_INDEX; diff --git a/deps/glslang/glslang-old/OGLCompilersDLL/InitializeDll.h b/deps/glslang/glslang-old/OGLCompilersDLL/InitializeDll.h new file mode 100644 index 0000000000..2d24557435 --- /dev/null +++ b/deps/glslang/glslang-old/OGLCompilersDLL/InitializeDll.h @@ -0,0 +1,50 @@ +// +//Copyright (C) 2002-2005 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. +// +#ifndef __INITIALIZEDLL_H +#define __INITIALIZEDLL_H + + +#include "../glslang/OSDependent/osinclude.h" + +namespace glslang { + +bool InitProcess(); +bool InitThread(); +bool DetachThread(); +bool DetachProcess(); + +} // end namespace glslang + +#endif // __INITIALIZEDLL_H + diff --git a/deps/glslang-new/README-spirv-remap.txt b/deps/glslang/glslang-old/README-spirv-remap.txt similarity index 100% rename from deps/glslang-new/README-spirv-remap.txt rename to deps/glslang/glslang-old/README-spirv-remap.txt diff --git a/deps/glslang-new/README.md b/deps/glslang/glslang-old/README.md similarity index 83% rename from deps/glslang-new/README.md rename to deps/glslang/glslang-old/README.md index 402b4d6005..9cfdce1839 100644 --- a/deps/glslang-new/README.md +++ b/deps/glslang/glslang-old/README.md @@ -17,7 +17,7 @@ There are several components: 1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST. -2. An HLSL front-end for translation of a broad generic HLL into the AST. See [issue 362](https://github.com/KhronosGroup/glslang/issues/362) and [issue 701](https://github.com/KhronosGroup/glslang/issues/701) for current status. +2. An HLSL front-end for translation of a broad generic HLL into the AST. 3. A SPIR-V back end for translating the AST to SPIR-V. @@ -49,31 +49,21 @@ There is also a non-shader extension Building -------- -Instead of building manually, you can also download the binaries for your -platform directly from the [master-tot release][master-tot-release] on GitHub. -Those binaries are automatically uploaded by the buildbots after successful -testing and they always reflect the current top of the tree of the master -branch. - ### Dependencies -* A C++11 compiler. - (For MSVS: 2015 is recommended, 2013 is fully supported/tested, and 2010 support is attempted, but not tested.) * [CMake][cmake]: for generating compilation targets. -* make: _Linux_, ninja is an alternative, if configured. -* [Python 2.7][python]: for executing SPIRV-Tools scripts. (Optional if not using SPIRV-Tools.) * [bison][bison]: _optional_, but needed when changing the grammar (glslang.y). * [googletest][googletest]: _optional_, but should use if making any changes to glslang. ### Build steps -The following steps assume a Bash shell. On Windows, that could be the Git Bash -shell or some other shell of your choosing. - #### 1) Check-Out this project ```bash cd +# If using SSH +git clone git@github.com:KhronosGroup/glslang.git +# Or if using HTTPS git clone https://github.com/KhronosGroup/glslang.git ``` @@ -84,35 +74,24 @@ cd git clone https://github.com/google/googletest.git External/googletest ``` -If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan, -or wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, install -spirv-tools with this: - -```bash -./update_glslang_sources.py -``` - #### 3) Configure -Assume the source directory is `$SOURCE_DIR` and the build directory is -`$BUILD_DIR`. First ensure the build directory exists, then navigate to it: +Assume the source directory is `$SOURCE_DIR` and +the build directory is `$BUILD_DIR`: + +For building on Linux (assuming using the Ninja generator): ```bash -mkdir -p $BUILD_DIR cd $BUILD_DIR -``` -For building on Linux: - -```bash -cmake -DCMAKE_BUILD_TYPE={Debug|Release|RelWithDebInfo} \ - -DCMAKE_INSTALL_PREFIX="$(pwd)/install" $SOURCE_DIR +cmake -GNinja -DCMAKE_BUILD_TYPE={Debug|Release|RelWithDebInfo} \ + -DCMAKE_INSTALL_PREFIX=`pwd`/install $SOURCE_DIR ``` For building on Windows: ```bash -cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX="$(pwd)/install" +cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=`pwd`/install # The CMAKE_INSTALL_PREFIX part is for testing (explained later). ``` @@ -122,7 +101,7 @@ The CMake GUI also works for Windows (version 3.4.1 tested). ```bash # for Linux: -make -j4 install +ninja install # for Windows: cmake --build . --config {Release|Debug|MinSizeRel|RelWithDebInfo} \ @@ -241,11 +220,8 @@ bool InitializeProcess(); void FinalizeProcess(); class TShader - setStrings(...); - setEnvInput(EShSourceHlsl or EShSourceGlsl, stage, EShClientVulkan or EShClientOpenGL, 100); - setEnvClient(EShClientVulkan or EShClientOpenGL, EShTargetVulkan_1_0 or EShTargetVulkan_1_1 or EShTargetOpenGL_450); - setEnvTarget(EShTargetSpv, EShTargetSpv_1_0 or EShTargetSpv_1_3); bool parse(...); + void setStrings(...); const char* getInfoLog(); class TProgram @@ -325,8 +301,6 @@ Basic Internal Operation [cmake]: https://cmake.org/ -[python]: https://www.python.org/ [bison]: https://www.gnu.org/software/bison/ [googletest]: https://github.com/google/googletest [bison-gnu-win32]: http://gnuwin32.sourceforge.net/packages/bison.htm -[master-tot-release]: https://github.com/KhronosGroup/glslang/releases/tag/master-tot diff --git a/deps/glslang/glslang-old/SPIRV/CMakeLists.txt b/deps/glslang/glslang-old/SPIRV/CMakeLists.txt new file mode 100755 index 0000000000..2c65d71a6f --- /dev/null +++ b/deps/glslang/glslang-old/SPIRV/CMakeLists.txt @@ -0,0 +1,48 @@ +set(SOURCES + GlslangToSpv.cpp + InReadableOrder.cpp + Logger.cpp + SpvBuilder.cpp + doc.cpp + disassemble.cpp) + +set(SPVREMAP_SOURCES + SPVRemapper.cpp + doc.cpp) + +set(HEADERS + bitutils.h + spirv.hpp + GLSL.std.450.h + GLSL.ext.KHR.h + GlslangToSpv.h + hex_float.h + Logger.h + SpvBuilder.h + spvIR.h + doc.h + disassemble.h) + +set(SPVREMAP_HEADERS + SPVRemapper.h + doc.h) + +if(ENABLE_AMD_EXTENSIONS) + list(APPEND + HEADERS + GLSL.ext.AMD.h) +endif(ENABLE_AMD_EXTENSIONS) + +add_library(SPIRV STATIC ${SOURCES} ${HEADERS}) +set_property(TARGET SPIRV PROPERTY FOLDER glslang) + +add_library(SPVRemapper STATIC ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) +set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) + +if(WIN32) + source_group("Source" FILES ${SOURCES} ${HEADERS}) + source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) +endif(WIN32) + +install(TARGETS SPIRV SPVRemapper + ARCHIVE DESTINATION lib) diff --git a/deps/glslang-new/SPIRV/GLSL.ext.AMD.h b/deps/glslang/glslang-old/SPIRV/GLSL.ext.AMD.h similarity index 68% rename from deps/glslang-new/SPIRV/GLSL.ext.AMD.h rename to deps/glslang/glslang-old/SPIRV/GLSL.ext.AMD.h index 009d2f1cf0..d2098cc1af 100644 --- a/deps/glslang-new/SPIRV/GLSL.ext.AMD.h +++ b/deps/glslang/glslang-old/SPIRV/GLSL.ext.AMD.h @@ -27,12 +27,25 @@ #ifndef GLSLextAMD_H #define GLSLextAMD_H +enum BuiltIn; +enum Decoration; +enum Op; + static const int GLSLextAMDVersion = 100; -static const int GLSLextAMDRevision = 7; +static const int GLSLextAMDRevision = 2; // SPV_AMD_shader_ballot static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; +static const Op OpGroupIAddNonUniformAMD = static_cast(5000); +static const Op OpGroupFAddNonUniformAMD = static_cast(5001); +static const Op OpGroupFMinNonUniformAMD = static_cast(5002); +static const Op OpGroupUMinNonUniformAMD = static_cast(5003); +static const Op OpGroupSMinNonUniformAMD = static_cast(5004); +static const Op OpGroupFMaxNonUniformAMD = static_cast(5005); +static const Op OpGroupUMaxNonUniformAMD = static_cast(5006); +static const Op OpGroupSMaxNonUniformAMD = static_cast(5007); + enum ShaderBallotAMD { ShaderBallotBadAMD = 0, // Don't use @@ -66,6 +79,16 @@ enum ShaderTrinaryMinMaxAMD { // SPV_AMD_shader_explicit_vertex_parameter static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter"; +static const BuiltIn BuiltInBaryCoordNoPerspAMD = static_cast(4992); +static const BuiltIn BuiltInBaryCoordNoPerspCentroidAMD = static_cast(4993); +static const BuiltIn BuiltInBaryCoordNoPerspSampleAMD = static_cast(4994); +static const BuiltIn BuiltInBaryCoordSmoothAMD = static_cast(4995); +static const BuiltIn BuiltInBaryCoordSmoothCentroidAMD = static_cast(4996); +static const BuiltIn BuiltInBaryCoordSmoothSampleAMD = static_cast(4997); +static const BuiltIn BuiltInBaryCoordPullModelAMD = static_cast(4998); + +static const Decoration DecorationExplicitInterpAMD = static_cast(4999); + enum ShaderExplicitVertexParameterAMD { ShaderExplicitVertexParameterBadAMD = 0, // Don't use @@ -90,19 +113,4 @@ enum GcnShaderAMD { // SPV_AMD_gpu_shader_half_float static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float"; -// SPV_AMD_texture_gather_bias_lod -static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod"; - -// SPV_AMD_gpu_shader_int16 -static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16"; - -// SPV_AMD_shader_image_load_store_lod -static const char* const E_SPV_AMD_shader_image_load_store_lod = "SPV_AMD_shader_image_load_store_lod"; - -// SPV_AMD_shader_fragment_mask -static const char* const E_SPV_AMD_shader_fragment_mask = "SPV_AMD_shader_fragment_mask"; - -// SPV_AMD_gpu_shader_half_float_fetch -static const char* const E_SPV_AMD_gpu_shader_half_float_fetch = "SPV_AMD_gpu_shader_half_float_fetch"; - #endif // #ifndef GLSLextAMD_H diff --git a/deps/glslang-new/SPIRV/GLSL.ext.KHR.h b/deps/glslang/glslang-old/SPIRV/GLSL.ext.KHR.h similarity index 71% rename from deps/glslang-new/SPIRV/GLSL.ext.KHR.h rename to deps/glslang/glslang-old/SPIRV/GLSL.ext.KHR.h index d8ea9b67d6..344dd398c3 100644 --- a/deps/glslang-new/SPIRV/GLSL.ext.KHR.h +++ b/deps/glslang/glslang-old/SPIRV/GLSL.ext.KHR.h @@ -27,16 +27,10 @@ #ifndef GLSLextKHR_H #define GLSLextKHR_H -static const int GLSLextKHRVersion = 100; -static const int GLSLextKHRRevision = 2; - +// SPV_KHR_shader_ballot static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot"; -static const char* const E_SPV_KHR_subgroup_vote = "SPV_KHR_subgroup_vote"; -static const char* const E_SPV_KHR_device_group = "SPV_KHR_device_group"; -static const char* const E_SPV_KHR_multiview = "SPV_KHR_multiview"; + +// SPV_KHR_shader_draw_parameters static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters"; -static const char* const E_SPV_KHR_16bit_storage = "SPV_KHR_16bit_storage"; -static const char* const E_SPV_KHR_storage_buffer_storage_class = "SPV_KHR_storage_buffer_storage_class"; -static const char* const E_SPV_KHR_post_depth_coverage = "SPV_KHR_post_depth_coverage"; #endif // #ifndef GLSLextKHR_H diff --git a/deps/glslang-new/SPIRV/GLSL.std.450.h b/deps/glslang/glslang-old/SPIRV/GLSL.std.450.h similarity index 99% rename from deps/glslang-new/SPIRV/GLSL.std.450.h rename to deps/glslang/glslang-old/SPIRV/GLSL.std.450.h index df31092bec..86d3da8065 100755 --- a/deps/glslang-new/SPIRV/GLSL.std.450.h +++ b/deps/glslang/glslang-old/SPIRV/GLSL.std.450.h @@ -13,7 +13,7 @@ ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ +** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, diff --git a/deps/glslang-new/SPIRV/GlslangToSpv.cpp b/deps/glslang/glslang-old/SPIRV/GlslangToSpv.cpp similarity index 61% rename from deps/glslang-new/SPIRV/GlslangToSpv.cpp rename to deps/glslang/glslang-old/SPIRV/GlslangToSpv.cpp index ec1b5308d9..15af947c29 100755 --- a/deps/glslang-new/SPIRV/GlslangToSpv.cpp +++ b/deps/glslang/glslang-old/SPIRV/GlslangToSpv.cpp @@ -1,13 +1,12 @@ // -// Copyright (C) 2014-2016 LunarG, Inc. -// Copyright (C) 2015-2016 Google, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2014-2016 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // Visit the nodes in the glslang intermediate tree representation to @@ -45,24 +44,11 @@ namespace spv { #include "GLSL.std.450.h" #include "GLSL.ext.KHR.h" - #include "GLSL.ext.EXT.h" #ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" #endif -#ifdef NV_EXTENSIONS - #include "GLSL.ext.NV.h" -#endif } -#if ENABLE_OPT - #include "spirv-tools/optimizer.hpp" - #include "message.h" -#endif - -#if ENABLE_OPT -using namespace spvtools; -#endif - // Glslang includes #include "../glslang/MachineIndependent/localintermediate.h" #include "../glslang/MachineIndependent/SymbolTable.h" @@ -79,6 +65,11 @@ using namespace spvtools; namespace { +// For low-order part of the generator's magic number. Bump up +// when there is a change in the style (e.g., if SSA form changes, +// or a different instruction sequence to do something gets used). +const int GeneratorVersion = 1; + namespace { class SpecConstantOpModeGuard { public: @@ -98,14 +89,7 @@ private: spv::Builder* builder_; bool previous_flag_; }; - -struct OpDecorations { - spv::Decoration precision; - spv::Decoration noContraction; - spv::Decoration nonUniform; -}; - -} // namespace +} // // The main holder of information for translating glslang to SPIR-V. @@ -114,8 +98,7 @@ struct OpDecorations { // class TGlslangToSpvTraverser : public glslang::TIntermTraverser { public: - TGlslangToSpvTraverser(unsigned int spvVersion, const glslang::TIntermediate*, spv::SpvBuildLogger* logger, - glslang::SpvOptions& options); + TGlslangToSpvTraverser(const glslang::TIntermediate*, spv::SpvBuildLogger* logger); virtual ~TGlslangToSpvTraverser() { } bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*); @@ -132,28 +115,17 @@ public: void dumpSpv(std::vector& out); protected: - TGlslangToSpvTraverser(TGlslangToSpvTraverser&); - TGlslangToSpvTraverser& operator=(TGlslangToSpvTraverser&); - spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier); spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier); - spv::Decoration TranslateNonUniformDecoration(const glslang::TQualifier& qualifier); spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration); spv::ImageFormat TranslateImageFormat(const glslang::TType& type); - spv::SelectionControlMask TranslateSelectionControl(const glslang::TIntermSelection&) const; - spv::SelectionControlMask TranslateSwitchControl(const glslang::TIntermSwitch&) const; - spv::LoopControlMask TranslateLoopControl(const glslang::TIntermLoop&, unsigned int& dependencyLength) const; - spv::StorageClass TranslateStorageClass(const glslang::TType&); - void addIndirectionIndexCapabilities(const glslang::TType& baseType, const glslang::TType& indexType); spv::Id createSpvVariable(const glslang::TIntermSymbol*); spv::Id getSampledType(const glslang::TSampler&); spv::Id getInvertedSwizzleType(const glslang::TIntermTyped&); spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult); void convertSwizzle(const glslang::TIntermAggregate&, std::vector& swizzle); spv::Id convertGlslangToSpvType(const glslang::TType& type); - spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&, - bool lastBufferBlockMember); - bool filterMember(const glslang::TType& member); + spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&); spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct, glslang::TLayoutPacking, const glslang::TQualifier&); void decorateStructType(const glslang::TType&, const glslang::TTypeList* glslangStruct, glslang::TLayoutPacking, @@ -165,13 +137,10 @@ protected: glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const; int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix); int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix); - void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, - int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix); + void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix); void declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember); bool isShaderEntryPoint(const glslang::TIntermAggregate* node); - bool writableParam(glslang::TStorageQualifier) const; - bool originalParam(glslang::TStorageQualifier, const glslang::TType&, bool implicitThisParam); void makeFunctions(const glslang::TIntermSequence&); void makeGlobalInitializers(const glslang::TIntermSequence&); void visitFunctions(const glslang::TIntermSequence&); @@ -181,39 +150,29 @@ protected: spv::Id createImageTextureFunctionCall(glslang::TIntermOperator* node); spv::Id handleUserFunctionCall(const glslang::TIntermAggregate*); - spv::Id createBinaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right, - glslang::TBasicType typeProxy, bool reduceComparison = true); - spv::Id createBinaryMatrixOperation(spv::Op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right); - spv::Id createUnaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id operand, - glslang::TBasicType typeProxy); - spv::Id createUnaryMatrixOperation(spv::Op op, OpDecorations&, spv::Id typeId, spv::Id operand, - glslang::TBasicType typeProxy); - spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand, - glslang::TBasicType typeProxy); - spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize); + spv::Id createBinaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison = true); + spv::Id createBinaryMatrixOperation(spv::Op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right); + spv::Id createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy); + spv::Id createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy); + spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); - spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, spv::Id typeId, std::vector& operands); - spv::Id createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); + spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector& operands); spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId); spv::Id getSymbolId(const glslang::TIntermSymbol* node); + void addDecoration(spv::Id id, spv::Decoration dec); + void addDecoration(spv::Id id, spv::Decoration dec, unsigned value); + void addMemberDecoration(spv::Id id, int member, spv::Decoration dec); + void addMemberDecoration(spv::Id id, int member, spv::Decoration dec, unsigned value); spv::Id createSpvConstant(const glslang::TIntermTyped&); spv::Id createSpvConstantFromConstUnionArray(const glslang::TType& type, const glslang::TConstUnionArray&, int& nextConst, bool specConstant); bool isTrivialLeaf(const glslang::TIntermTyped* node); bool isTrivial(const glslang::TIntermTyped* node); spv::Id createShortCircuit(glslang::TOperator, glslang::TIntermTyped& left, glslang::TIntermTyped& right); -#ifdef AMD_EXTENSIONS spv::Id getExtBuiltins(const char* name); -#endif - void addPre13Extension(const char* ext) - { - if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) - builder.addExtension(ext); - } - glslang::SpvOptions& options; spv::Function* shaderEntry; spv::Function* currentFunction; spv::Instruction* entryPoint; @@ -235,10 +194,8 @@ protected: std::unordered_set rValueParameters; // set of formal function parameters passed as rValues, rather than a pointer std::unordered_map functionMap; std::unordered_map structMap[glslang::ElpCount][glslang::ElmCount]; - // for mapping glslang block indices to spv indices (e.g., due to hidden members): - std::unordered_map > memberRemapper; + std::unordered_map > memberRemapper; // for mapping glslang block indices to spv indices (e.g., due to hidden members) std::stack breakForLoop; // false means break for switch - std::unordered_map counterOriginator; }; // @@ -261,7 +218,8 @@ spv::SourceLanguage TranslateSourceLanguage(glslang::EShSource source, EProfile return spv::SourceLanguageUnknown; } case glslang::EShSourceHlsl: - return spv::SourceLanguageHLSL; + //Use SourceLanguageUnknown instead of SourceLanguageHLSL for now, until Vulkan knows what HLSL is + return spv::SourceLanguageUnknown; default: return spv::SourceLanguageUnknown; } @@ -283,6 +241,38 @@ spv::ExecutionModel TranslateExecutionModel(EShLanguage stage) } } +// Translate glslang type to SPIR-V storage class. +spv::StorageClass TranslateStorageClass(const glslang::TType& type) +{ + if (type.getQualifier().isPipeInput()) + return spv::StorageClassInput; + else if (type.getQualifier().isPipeOutput()) + return spv::StorageClassOutput; + else if (type.getBasicType() == glslang::EbtSampler) + return spv::StorageClassUniformConstant; + else if (type.getBasicType() == glslang::EbtAtomicUint) + return spv::StorageClassAtomicCounter; + else if (type.getQualifier().isUniformOrBuffer()) { + if (type.getQualifier().layoutPushConstant) + return spv::StorageClassPushConstant; + if (type.getBasicType() == glslang::EbtBlock) + return spv::StorageClassUniform; + else + return spv::StorageClassUniformConstant; + // TODO: how are we distinguishing between default and non-default non-writable uniforms? Do default uniforms even exist? + } else { + switch (type.getQualifier().storage) { + case glslang::EvqShared: return spv::StorageClassWorkgroup; break; + case glslang::EvqGlobal: return spv::StorageClassPrivate; + case glslang::EvqConstReadOnly: return spv::StorageClassFunction; + case glslang::EvqTemporary: return spv::StorageClassFunction; + default: + assert(0); + return spv::StorageClassFunction; + } + } +} + // Translate glslang sampler type to SPIR-V dimensionality. spv::Dim TranslateDimensionality(const glslang::TSampler& sampler) { @@ -318,12 +308,12 @@ spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type) } // Translate glslang type to SPIR-V block decorations. -spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useStorageBuffer) +spv::Decoration TranslateBlockDecoration(const glslang::TType& type) { if (type.getBasicType() == glslang::EbtBlock) { switch (type.getQualifier().storage) { case glslang::EvqUniform: return spv::DecorationBlock; - case glslang::EvqBuffer: return useStorageBuffer ? spv::DecorationBlock : spv::DecorationBufferBlock; + case glslang::EvqBuffer: return spv::DecorationBufferBlock; case glslang::EvqVaryingIn: return spv::DecorationBlock; case glslang::EvqVaryingOut: return spv::DecorationBlock; default: @@ -340,10 +330,8 @@ void TranslateMemoryDecoration(const glslang::TQualifier& qualifier, std::vector { if (qualifier.coherent) memory.push_back(spv::DecorationCoherent); - if (qualifier.volatil) { + if (qualifier.volatil) memory.push_back(spv::DecorationVolatile); - memory.push_back(spv::DecorationCoherent); - } if (qualifier.restrict) memory.push_back(spv::DecorationRestrict); if (qualifier.readonly) @@ -448,17 +436,6 @@ spv::Decoration TranslateNoContractionDecoration(const glslang::TQualifier& qual return spv::DecorationMax; } -// If glslang type is nonUniform, return SPIR-V NonUniform decoration. -spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration(const glslang::TQualifier& qualifier) -{ - if (qualifier.isNonUniform()) { - builder.addExtension("SPV_EXT_descriptor_indexing"); - builder.addCapability(spv::CapabilityShaderNonUniformEXT); - return spv::DecorationNonUniformEXT; - } else - return spv::DecorationMax; -} - // Translate a glslang built-in variable to a SPIR-V built in decoration. Also generate // associated capabilities when required. For some built-in variables, a capability // is generated only when using the variable in an executable instruction, but not when @@ -492,23 +469,16 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI // case glslang::EbvClipDistance: if (!memberDeclaration) - builder.addCapability(spv::CapabilityClipDistance); + builder.addCapability(spv::CapabilityClipDistance); return spv::BuiltInClipDistance; case glslang::EbvCullDistance: if (!memberDeclaration) - builder.addCapability(spv::CapabilityCullDistance); + builder.addCapability(spv::CapabilityCullDistance); return spv::BuiltInCullDistance; case glslang::EbvViewportIndex: builder.addCapability(spv::CapabilityMultiViewport); - if (glslangIntermediate->getStage() == EShLangVertex || - glslangIntermediate->getStage() == EShLangTessControl || - glslangIntermediate->getStage() == EShLangTessEvaluation) { - - builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer); - builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); - } return spv::BuiltInViewportIndex; case glslang::EbvSampleId: @@ -520,17 +490,11 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI return spv::BuiltInSamplePosition; case glslang::EbvSampleMask: + builder.addCapability(spv::CapabilitySampleRateShading); return spv::BuiltInSampleMask; case glslang::EbvLayer: builder.addCapability(spv::CapabilityGeometry); - if (glslangIntermediate->getStage() == EShLangVertex || - glslangIntermediate->getStage() == EShLangTessControl || - glslangIntermediate->getStage() == EShLangTessEvaluation) { - - builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer); - builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); - } return spv::BuiltInLayer; case glslang::EbvPosition: return spv::BuiltInPosition; @@ -540,17 +504,17 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex; case glslang::EbvBaseVertex: - addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInBaseVertex; case glslang::EbvBaseInstance: - addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInBaseInstance; case glslang::EbvDrawId: - addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInDrawIndex; @@ -559,11 +523,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addCapability(spv::CapabilityGeometry); return spv::BuiltInPrimitiveId; - case glslang::EbvFragStencilRef: - builder.addExtension(spv::E_SPV_EXT_shader_stencil_export); - builder.addCapability(spv::CapabilityStencilExportEXT); - return spv::BuiltInFragStencilRefEXT; - case glslang::EbvInvocationId: return spv::BuiltInInvocationId; case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner; case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter; @@ -616,46 +575,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addCapability(spv::CapabilitySubgroupBallotKHR); return spv::BuiltInSubgroupLtMaskKHR; - case glslang::EbvNumSubgroups: - builder.addCapability(spv::CapabilityGroupNonUniform); - return spv::BuiltInNumSubgroups; - - case glslang::EbvSubgroupID: - builder.addCapability(spv::CapabilityGroupNonUniform); - return spv::BuiltInSubgroupId; - - case glslang::EbvSubgroupSize2: - builder.addCapability(spv::CapabilityGroupNonUniform); - return spv::BuiltInSubgroupSize; - - case glslang::EbvSubgroupInvocation2: - builder.addCapability(spv::CapabilityGroupNonUniform); - return spv::BuiltInSubgroupLocalInvocationId; - - case glslang::EbvSubgroupEqMask2: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformBallot); - return spv::BuiltInSubgroupEqMask; - - case glslang::EbvSubgroupGeMask2: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformBallot); - return spv::BuiltInSubgroupGeMask; - - case glslang::EbvSubgroupGtMask2: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformBallot); - return spv::BuiltInSubgroupGtMask; - - case glslang::EbvSubgroupLeMask2: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformBallot); - return spv::BuiltInSubgroupLeMask; - - case glslang::EbvSubgroupLtMask2: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformBallot); - return spv::BuiltInSubgroupLtMask; #ifdef AMD_EXTENSIONS case glslang::EbvBaryCoordNoPersp: builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); @@ -685,55 +604,7 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); return spv::BuiltInBaryCoordPullModelAMD; #endif - - case glslang::EbvDeviceIndex: - addPre13Extension(spv::E_SPV_KHR_device_group); - builder.addCapability(spv::CapabilityDeviceGroup); - return spv::BuiltInDeviceIndex; - - case glslang::EbvViewIndex: - addPre13Extension(spv::E_SPV_KHR_multiview); - builder.addCapability(spv::CapabilityMultiView); - return spv::BuiltInViewIndex; - -#ifdef NV_EXTENSIONS - case glslang::EbvViewportMaskNV: - if (!memberDeclaration) { - builder.addExtension(spv::E_SPV_NV_viewport_array2); - builder.addCapability(spv::CapabilityShaderViewportMaskNV); - } - return spv::BuiltInViewportMaskNV; - case glslang::EbvSecondaryPositionNV: - if (!memberDeclaration) { - builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); - builder.addCapability(spv::CapabilityShaderStereoViewNV); - } - return spv::BuiltInSecondaryPositionNV; - case glslang::EbvSecondaryViewportMaskNV: - if (!memberDeclaration) { - builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); - builder.addCapability(spv::CapabilityShaderStereoViewNV); - } - return spv::BuiltInSecondaryViewportMaskNV; - case glslang::EbvPositionPerViewNV: - if (!memberDeclaration) { - builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes); - builder.addCapability(spv::CapabilityPerViewAttributesNV); - } - return spv::BuiltInPositionPerViewNV; - case glslang::EbvViewportMaskPerViewNV: - if (!memberDeclaration) { - builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes); - builder.addCapability(spv::CapabilityPerViewAttributesNV); - } - return spv::BuiltInViewportMaskPerViewNV; - case glslang::EbvFragFullyCoveredNV: - builder.addExtension(spv::E_SPV_EXT_fragment_fully_covered); - builder.addCapability(spv::CapabilityFragmentFullyCoveredEXT); - return spv::BuiltInFullyCoveredEXT; -#endif - default: - return spv::BuiltInMax; + default: return spv::BuiltInMax; } } @@ -825,122 +696,6 @@ spv::ImageFormat TGlslangToSpvTraverser::TranslateImageFormat(const glslang::TTy } } -spv::SelectionControlMask TGlslangToSpvTraverser::TranslateSelectionControl(const glslang::TIntermSelection& selectionNode) const -{ - if (selectionNode.getFlatten()) - return spv::SelectionControlFlattenMask; - if (selectionNode.getDontFlatten()) - return spv::SelectionControlDontFlattenMask; - return spv::SelectionControlMaskNone; -} - -spv::SelectionControlMask TGlslangToSpvTraverser::TranslateSwitchControl(const glslang::TIntermSwitch& switchNode) const -{ - if (switchNode.getFlatten()) - return spv::SelectionControlFlattenMask; - if (switchNode.getDontFlatten()) - return spv::SelectionControlDontFlattenMask; - return spv::SelectionControlMaskNone; -} - -// return a non-0 dependency if the dependency argument must be set -spv::LoopControlMask TGlslangToSpvTraverser::TranslateLoopControl(const glslang::TIntermLoop& loopNode, - unsigned int& dependencyLength) const -{ - spv::LoopControlMask control = spv::LoopControlMaskNone; - - if (loopNode.getDontUnroll()) - control = control | spv::LoopControlDontUnrollMask; - if (loopNode.getUnroll()) - control = control | spv::LoopControlUnrollMask; - if (unsigned(loopNode.getLoopDependency()) == glslang::TIntermLoop::dependencyInfinite) - control = control | spv::LoopControlDependencyInfiniteMask; - else if (loopNode.getLoopDependency() > 0) { - control = control | spv::LoopControlDependencyLengthMask; - dependencyLength = loopNode.getLoopDependency(); - } - - return control; -} - -// Translate glslang type to SPIR-V storage class. -spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::TType& type) -{ - if (type.getQualifier().isPipeInput()) - return spv::StorageClassInput; - if (type.getQualifier().isPipeOutput()) - return spv::StorageClassOutput; - - if (glslangIntermediate->getSource() != glslang::EShSourceHlsl || - type.getQualifier().storage == glslang::EvqUniform) { - if (type.getBasicType() == glslang::EbtAtomicUint) - return spv::StorageClassAtomicCounter; - if (type.containsOpaque()) - return spv::StorageClassUniformConstant; - } - - if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) { - addPre13Extension(spv::E_SPV_KHR_storage_buffer_storage_class); - return spv::StorageClassStorageBuffer; - } - - if (type.getQualifier().isUniformOrBuffer()) { - if (type.getQualifier().layoutPushConstant) - return spv::StorageClassPushConstant; - if (type.getBasicType() == glslang::EbtBlock) - return spv::StorageClassUniform; - return spv::StorageClassUniformConstant; - } - - switch (type.getQualifier().storage) { - case glslang::EvqShared: return spv::StorageClassWorkgroup; - case glslang::EvqGlobal: return spv::StorageClassPrivate; - case glslang::EvqConstReadOnly: return spv::StorageClassFunction; - case glslang::EvqTemporary: return spv::StorageClassFunction; - default: - assert(0); - break; - } - - return spv::StorageClassFunction; -} - -// Add capabilities pertaining to how an array is indexed. -void TGlslangToSpvTraverser::addIndirectionIndexCapabilities(const glslang::TType& baseType, - const glslang::TType& indexType) -{ - if (indexType.getQualifier().isNonUniform()) { - // deal with an asserted non-uniform index - if (baseType.getBasicType() == glslang::EbtSampler) { - if (baseType.getQualifier().hasAttachment()) - builder.addCapability(spv::CapabilityInputAttachmentArrayNonUniformIndexingEXT); - else if (baseType.isImage() && baseType.getSampler().dim == glslang::EsdBuffer) - builder.addCapability(spv::CapabilityStorageTexelBufferArrayNonUniformIndexingEXT); - else if (baseType.isTexture() && baseType.getSampler().dim == glslang::EsdBuffer) - builder.addCapability(spv::CapabilityUniformTexelBufferArrayNonUniformIndexingEXT); - else if (baseType.isImage()) - builder.addCapability(spv::CapabilityStorageImageArrayNonUniformIndexingEXT); - else if (baseType.isTexture()) - builder.addCapability(spv::CapabilitySampledImageArrayNonUniformIndexingEXT); - } else if (baseType.getBasicType() == glslang::EbtBlock) { - if (baseType.getQualifier().storage == glslang::EvqBuffer) - builder.addCapability(spv::CapabilityStorageBufferArrayNonUniformIndexingEXT); - else if (baseType.getQualifier().storage == glslang::EvqUniform) - builder.addCapability(spv::CapabilityUniformBufferArrayNonUniformIndexingEXT); - } - } else { - // assume a dynamically uniform index - if (baseType.getBasicType() == glslang::EbtSampler) { - if (baseType.getQualifier().hasAttachment()) - builder.addCapability(spv::CapabilityInputAttachmentArrayDynamicIndexingEXT); - else if (baseType.isImage() && baseType.getSampler().dim == glslang::EsdBuffer) - builder.addCapability(spv::CapabilityStorageTexelBufferArrayDynamicIndexingEXT); - else if (baseType.isTexture() && baseType.getSampler().dim == glslang::EsdBuffer) - builder.addCapability(spv::CapabilityUniformTexelBufferArrayDynamicIndexingEXT); - } - } -} - // Return whether or not the given type is something that should be tied to a // descriptor set. bool IsDescriptorResource(const glslang::TType& type) @@ -1010,44 +765,17 @@ bool HasNonLayoutQualifiers(const glslang::TType& type, const glslang::TQualifie // Implement the TGlslangToSpvTraverser class. // -TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const glslang::TIntermediate* glslangIntermediate, - spv::SpvBuildLogger* buildLogger, glslang::SpvOptions& options) - : TIntermTraverser(true, false, true), - options(options), - shaderEntry(nullptr), currentFunction(nullptr), +TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* glslangIntermediate, spv::SpvBuildLogger* buildLogger) + : TIntermTraverser(true, false, true), shaderEntry(nullptr), currentFunction(nullptr), sequenceDepth(0), logger(buildLogger), - builder(spvVersion, (glslang::GetKhronosToolId() << 16) | glslang::GetSpirvGeneratorVersion(), logger), + builder((glslang::GetKhronosToolId() << 16) | GeneratorVersion, logger), inEntryPoint(false), entryPointTerminated(false), linkageOnly(false), glslangIntermediate(glslangIntermediate) { spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage()); builder.clearAccessChain(); - builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()), - glslangIntermediate->getVersion()); - - if (options.generateDebugInfo) { - builder.setEmitOpLines(); - builder.setSourceFile(glslangIntermediate->getSourceFile()); - - // Set the source shader's text. If for SPV version 1.0, include - // a preamble in comments stating the OpModuleProcessed instructions. - // Otherwise, emit those as actual instructions. - std::string text; - const std::vector& processes = glslangIntermediate->getProcesses(); - for (int p = 0; p < (int)processes.size(); ++p) { - if (glslangIntermediate->getSpv().spv < 0x00010100) { - text.append("// OpModuleProcessed "); - text.append(processes[p]); - text.append("\n"); - } else - builder.addModuleProcessed(processes[p]); - } - if (glslangIntermediate->getSpv().spv < 0x00010100 && (int)processes.size() > 0) - text.append("#line 1\n"); - text.append(glslangIntermediate->getSourceText()); - builder.setSourceText(text); - } + builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()), glslangIntermediate->getVersion()); stdBuiltins = builder.import("GLSL.std.450"); builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450); shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPointName().c_str()); @@ -1071,20 +799,14 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl builder.addCapability(spv::CapabilityShader); break; - case EShLangTessEvaluation: case EShLangTessControl: builder.addCapability(spv::CapabilityTessellation); + builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices()); + break; - glslang::TLayoutGeometry primitive; - - if (glslangIntermediate->getStage() == EShLangTessControl) { - builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices()); - primitive = glslangIntermediate->getOutputPrimitive(); - } else { - primitive = glslangIntermediate->getInputPrimitive(); - } - - switch (primitive) { + case EShLangTessEvaluation: + builder.addCapability(spv::CapabilityTessellation); + switch (glslangIntermediate->getInputPrimitive()) { case glslang::ElgTriangles: mode = spv::ExecutionModeTriangles; break; case glslang::ElgQuads: mode = spv::ExecutionModeQuads; break; case glslang::ElgIsolines: mode = spv::ExecutionModeIsolines; break; @@ -1153,12 +875,6 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl if (glslangIntermediate->getEarlyFragmentTests()) builder.addExecutionMode(shaderEntry, spv::ExecutionModeEarlyFragmentTests); - if (glslangIntermediate->getPostDepthCoverage()) { - builder.addCapability(spv::CapabilitySampleMaskPostDepthCoverage); - builder.addExecutionMode(shaderEntry, spv::ExecutionModePostDepthCoverage); - builder.addExtension(spv::E_SPV_KHR_post_depth_coverage); - } - switch(glslangIntermediate->getDepth()) { case glslang::EldGreater: mode = spv::ExecutionModeDepthGreater; break; case glslang::EldLess: mode = spv::ExecutionModeDepthLess; break; @@ -1232,10 +948,8 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol) // Include all "static use" and "linkage only" interface variables on the OpEntryPoint instruction if (builder.isPointer(id)) { spv::StorageClass sc = builder.getStorageClass(id); - if (sc == spv::StorageClassInput || sc == spv::StorageClassOutput) { - if (!symbol->getType().isStruct() || symbol->getType().getStruct()->size() > 0) - iOSet.insert(id); - } + if (sc == spv::StorageClassInput || sc == spv::StorageClassOutput) + iOSet.insert(id); } // Only process non-linkage-only nodes for generating actual static uses @@ -1259,44 +973,10 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol) else builder.setAccessChainLValue(id); } - - // Process linkage-only nodes for any special additional interface work. - if (linkageOnly) { - if (glslangIntermediate->getHlslFunctionality1()) { - // Map implicit counter buffers to their originating buffers, which should have been - // seen by now, given earlier pruning of unused counters, and preservation of order - // of declaration. - if (symbol->getType().getQualifier().isUniformOrBuffer()) { - if (!glslangIntermediate->hasCounterBufferName(symbol->getName())) { - // Save possible originating buffers for counter buffers, keyed by - // making the potential counter-buffer name. - std::string keyName = symbol->getName().c_str(); - keyName = glslangIntermediate->addCounterBufferName(keyName); - counterOriginator[keyName] = symbol; - } else { - // Handle a counter buffer, by finding the saved originating buffer. - std::string keyName = symbol->getName().c_str(); - auto it = counterOriginator.find(keyName); - if (it != counterOriginator.end()) { - id = getSymbolId(it->second); - if (id != spv::NoResult) { - spv::Id counterId = getSymbolId(symbol); - if (counterId != spv::NoResult) { - builder.addExtension("SPV_GOOGLE_hlsl_functionality1"); - builder.addDecorationId(id, spv::DecorationHlslCounterBufferGOOGLE, counterId); - } - } - } - } - } - } - } } bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::TIntermBinary* node) { - builder.setLine(node->getLoc().line); - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); if (node->getType().getQualifier().isSpecConstant()) spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); @@ -1339,10 +1019,8 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T spv::Id leftRValue = accessChainLoad(node->getLeft()->getType()); // do the operation - OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(node->getType().getQualifier()) }; - rValue = createBinaryOperation(node->getOp(), decorations, + rValue = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()), + TranslateNoContractionDecoration(node->getType().getQualifier()), convertGlslangToSpvType(node->getType()), leftRValue, rValue, node->getType().getBasicType()); @@ -1417,8 +1095,6 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T node->getRight()->traverse(this); spv::Id index = accessChainLoad(node->getRight()->getType()); - addIndirectionIndexCapabilities(node->getLeft()->getType(), node->getRight()->getType()); - // restore the saved access chain builder.setAccessChain(partial); @@ -1436,9 +1112,6 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType())); } return false; - case glslang::EOpMatrixSwizzle: - logger->missingFunctionality("matrix swizzle"); - return true; case glslang::EOpLogicalOr: case glslang::EOpLogicalAnd: { @@ -1471,10 +1144,8 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T spv::Id right = accessChainLoad(node->getRight()->getType()); // get result - OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(node->getType().getQualifier()) }; - spv::Id result = createBinaryOperation(node->getOp(), decorations, + spv::Id result = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()), + TranslateNoContractionDecoration(node->getType().getQualifier()), convertGlslangToSpvType(node->getType()), left, right, node->getLeft()->getType().getBasicType()); @@ -1490,8 +1161,6 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node) { - builder.setLine(node->getLoc().line); - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); if (node->getType().getQualifier().isSpecConstant()) spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); @@ -1512,15 +1181,10 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI if (node->getOp() == glslang::EOpArrayLength) { // Quite special; won't want to evaluate the operand. - // Currently, the front-end does not allow .length() on an array until it is sized, - // except for the last block membeor of an SSBO. - // TODO: If this changes, link-time sized arrays might show up here, and need their - // size extracted. - // Normal .length() would have been constant folded by the front-end. // So, this has to be block.lastMember.length(). // SPV wants "block" and member number as the operands, go get them. - + assert(node->getOperand()->getType().isRuntimeSizedArray()); glslang::TIntermTyped* block = node->getOperand()->getAsBinaryNode()->getLeft(); block->traverse(this); unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion()->getConstArray()[0].getUConst(); @@ -1557,23 +1221,20 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI else operand = accessChainLoad(node->getOperand()->getType()); - OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(node->getType().getQualifier()) }; + spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision()); + spv::Decoration noContraction = TranslateNoContractionDecoration(node->getType().getQualifier()); // it could be a conversion if (! result) - result = createConversion(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType()); + result = createConversion(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType()); // if not, then possibly an operation if (! result) - result = createUnaryOperation(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType()); + result = createUnaryOperation(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType()); if (result) { - if (invertedType) { - result = createInvertedSwizzle(decorations.precision, *node->getOperand(), result); - builder.addDecoration(result, decorations.nonUniform); - } + if (invertedType) + result = createInvertedSwizzle(precision, *node->getOperand(), result); builder.clearAccessChain(); builder.setAccessChainRValue(result); @@ -1594,12 +1255,10 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI one = builder.makeFloatConstant(1.0F); else if (node->getBasicType() == glslang::EbtDouble) one = builder.makeDoubleConstant(1.0); +#ifdef AMD_EXTENSIONS else if (node->getBasicType() == glslang::EbtFloat16) one = builder.makeFloat16Constant(1.0F); - else if (node->getBasicType() == glslang::EbtInt8 || node->getBasicType() == glslang::EbtUint8) - one = builder.makeInt8Constant(1); - else if (node->getBasicType() == glslang::EbtInt16 || node->getBasicType() == glslang::EbtUint16) - one = builder.makeInt16Constant(1); +#endif else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64) one = builder.makeInt64Constant(1); else @@ -1611,7 +1270,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI else op = glslang::EOpSub; - spv::Id result = createBinaryOperation(op, decorations, + spv::Id result = createBinaryOperation(op, precision, + TranslateNoContractionDecoration(node->getType().getQualifier()), convertGlslangToSpvType(node->getType()), operand, one, node->getType().getBasicType()); assert(result != spv::NoResult); @@ -1659,11 +1319,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt builder.setAccessChainRValue(result); return false; -#ifdef AMD_EXTENSIONS - } else if (node->getOp() == glslang::EOpImageStore || node->getOp() == glslang::EOpImageStoreLod) { -#else } else if (node->getOp() == glslang::EOpImageStore) { -#endif // "imageStore" is a special case, which has no result return false; } @@ -1748,10 +1404,9 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt return false; case glslang::EOpFunctionCall: { - builder.setLine(node->getLoc().line); if (node->isUserDefined()) result = handleUserFunctionCall(node); - // assert(result); // this can happen for bad shaders because the call graph completeness checking is not yet done + //assert(result); // this can happen for bad shaders because the call graph completeness checking is not yet done if (result) { builder.clearAccessChain(); builder.setAccessChainRValue(result); @@ -1778,33 +1433,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDMat4x2: case glslang::EOpConstructDMat4x3: case glslang::EOpConstructDMat4x4: - case glslang::EOpConstructIMat2x2: - case glslang::EOpConstructIMat2x3: - case glslang::EOpConstructIMat2x4: - case glslang::EOpConstructIMat3x2: - case glslang::EOpConstructIMat3x3: - case glslang::EOpConstructIMat3x4: - case glslang::EOpConstructIMat4x2: - case glslang::EOpConstructIMat4x3: - case glslang::EOpConstructIMat4x4: - case glslang::EOpConstructUMat2x2: - case glslang::EOpConstructUMat2x3: - case glslang::EOpConstructUMat2x4: - case glslang::EOpConstructUMat3x2: - case glslang::EOpConstructUMat3x3: - case glslang::EOpConstructUMat3x4: - case glslang::EOpConstructUMat4x2: - case glslang::EOpConstructUMat4x3: - case glslang::EOpConstructUMat4x4: - case glslang::EOpConstructBMat2x2: - case glslang::EOpConstructBMat2x3: - case glslang::EOpConstructBMat2x4: - case glslang::EOpConstructBMat3x2: - case glslang::EOpConstructBMat3x3: - case glslang::EOpConstructBMat3x4: - case glslang::EOpConstructBMat4x2: - case glslang::EOpConstructBMat4x3: - case glslang::EOpConstructBMat4x4: +#ifdef AMD_EXTENSIONS case glslang::EOpConstructF16Mat2x2: case glslang::EOpConstructF16Mat2x3: case glslang::EOpConstructF16Mat2x4: @@ -1814,6 +1443,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructF16Mat4x2: case glslang::EOpConstructF16Mat4x3: case glslang::EOpConstructF16Mat4x4: +#endif isMatrix = true; // fall through case glslang::EOpConstructFloat: @@ -1824,30 +1454,16 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDVec2: case glslang::EOpConstructDVec3: case glslang::EOpConstructDVec4: +#ifdef AMD_EXTENSIONS case glslang::EOpConstructFloat16: case glslang::EOpConstructF16Vec2: case glslang::EOpConstructF16Vec3: case glslang::EOpConstructF16Vec4: +#endif case glslang::EOpConstructBool: case glslang::EOpConstructBVec2: case glslang::EOpConstructBVec3: case glslang::EOpConstructBVec4: - case glslang::EOpConstructInt8: - case glslang::EOpConstructI8Vec2: - case glslang::EOpConstructI8Vec3: - case glslang::EOpConstructI8Vec4: - case glslang::EOpConstructUint8: - case glslang::EOpConstructU8Vec2: - case glslang::EOpConstructU8Vec3: - case glslang::EOpConstructU8Vec4: - case glslang::EOpConstructInt16: - case glslang::EOpConstructI16Vec2: - case glslang::EOpConstructI16Vec3: - case glslang::EOpConstructI16Vec4: - case glslang::EOpConstructUint16: - case glslang::EOpConstructU16Vec2: - case glslang::EOpConstructU16Vec3: - case glslang::EOpConstructU16Vec4: case glslang::EOpConstructInt: case glslang::EOpConstructIVec2: case glslang::EOpConstructIVec3: @@ -1867,7 +1483,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructStruct: case glslang::EOpConstructTextureSampler: { - builder.setLine(node->getLoc().line); std::vector arguments; translateArguments(*node, arguments); spv::Id constructed; @@ -1939,16 +1554,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpMemoryBarrierImage: case glslang::EOpMemoryBarrierShared: case glslang::EOpGroupMemoryBarrier: - case glslang::EOpDeviceMemoryBarrier: case glslang::EOpAllMemoryBarrierWithGroupSync: - case glslang::EOpDeviceMemoryBarrierWithGroupSync: + case glslang::EOpGroupMemoryBarrierWithGroupSync: case glslang::EOpWorkgroupMemoryBarrier: case glslang::EOpWorkgroupMemoryBarrierWithGroupSync: - case glslang::EOpSubgroupBarrier: - case glslang::EOpSubgroupMemoryBarrier: - case glslang::EOpSubgroupMemoryBarrierBuffer: - case glslang::EOpSubgroupMemoryBarrierImage: - case glslang::EOpSubgroupMemoryBarrierShared: noReturnValue = true; // These all have 0 operands and will naturally finish up in the code below for 0 operands break; @@ -1964,20 +1573,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt atomic = true; break; - case glslang::EOpAtomicCounterAdd: - case glslang::EOpAtomicCounterSubtract: - case glslang::EOpAtomicCounterMin: - case glslang::EOpAtomicCounterMax: - case glslang::EOpAtomicCounterAnd: - case glslang::EOpAtomicCounterOr: - case glslang::EOpAtomicCounterXor: - case glslang::EOpAtomicCounterExchange: - case glslang::EOpAtomicCounterCompSwap: - builder.addExtension("SPV_KHR_shader_atomic_counter_ops"); - builder.addCapability(spv::CapabilityAtomicStorageOps); - atomic = true; - break; - default: break; } @@ -1998,11 +1593,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt right->traverse(this); spv::Id rightId = accessChainLoad(right->getType()); - builder.setLine(node->getLoc().line); - OpDecorations decorations = { precision, - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(node->getType().getQualifier()) }; - result = createBinaryOperation(binOp, decorations, + result = createBinaryOperation(binOp, precision, TranslateNoContractionDecoration(node->getType().getQualifier()), resultType(), leftId, rightId, left->getType().getBasicType(), reduceComparison); @@ -2038,7 +1629,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // Does it need a swizzle inversion? If so, evaluation is inverted; // operate first on the swizzle base, then apply the swizzle. - if (glslangOperands[0]->getAsOperator() && + if (glslangOperands[0]->getAsOperator() && glslangOperands[0]->getAsOperator()->getOp() == glslang::EOpVectorSwizzle) invertedType = convertGlslangToSpvType(glslangOperands[0]->getAsBinaryNode()->getLeft()->getType()); } @@ -2051,15 +1642,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpAtomicXor: case glslang::EOpAtomicExchange: case glslang::EOpAtomicCompSwap: - case glslang::EOpAtomicCounterAdd: - case glslang::EOpAtomicCounterSubtract: - case glslang::EOpAtomicCounterMin: - case glslang::EOpAtomicCounterMax: - case glslang::EOpAtomicCounterAnd: - case glslang::EOpAtomicCounterOr: - case glslang::EOpAtomicCounterXor: - case glslang::EOpAtomicCounterExchange: - case glslang::EOpAtomicCounterCompSwap: if (arg == 0) lvalue = true; break; @@ -2083,13 +1665,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt glslangOperands[arg]->traverse(this); if (lvalue) operands.push_back(builder.accessChainGetLValue()); - else { - builder.setLine(node->getLoc().line); + else operands.push_back(accessChainLoad(glslangOperands[arg]->getAsTyped()->getType())); - } } - builder.setLine(node->getLoc().line); if (atomic) { // Handle all atomics result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); @@ -2100,15 +1679,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt result = createNoArgOperation(node->getOp(), precision, resultType()); break; case 1: - { - OpDecorations decorations = { precision, - TranslateNoContractionDecoration(node->getType().getQualifier()), - TranslateNonUniformDecoration(node->getType().getQualifier()) }; - result = createUnaryOperation( - node->getOp(), decorations, - resultType(), operands.front(), - glslangOperands[0]->getAsTyped()->getBasicType()); - } + result = createUnaryOperation( + node->getOp(), precision, + TranslateNoContractionDecoration(node->getType().getQualifier()), + resultType(), operands.front(), + glslangOperands[0]->getAsTyped()->getBasicType()); break; default: result = createMiscOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); @@ -2131,159 +1706,49 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt } } -// This path handles both if-then-else and ?: -// The if-then-else has a node type of void, while -// ?: has either a void or a non-void node type -// -// Leaving the result, when not void: -// GLSL only has r-values as the result of a :?, but -// if we have an l-value, that can be more efficient if it will -// become the base of a complex r-value expression, because the -// next layer copies r-values into memory to use the access-chain mechanism bool TGlslangToSpvTraverser::visitSelection(glslang::TVisit /* visit */, glslang::TIntermSelection* node) { - // See if it simple and safe, or required, to execute both sides. - // Crucially, side effects must be either semantically required or avoided, - // and there are performance trade-offs. - // Return true if required or a good idea (and safe) to execute both sides, - // false otherwise. - const auto bothSidesPolicy = [&]() -> bool { - // do we have both sides? - if (node->getTrueBlock() == nullptr || - node->getFalseBlock() == nullptr) - return false; + // This path handles both if-then-else and ?: + // The if-then-else has a node type of void, while + // ?: has a non-void node type + spv::Id result = 0; + if (node->getBasicType() != glslang::EbtVoid) { + // don't handle this as just on-the-fly temporaries, because there will be two names + // and better to leave SSA to later passes + result = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); + } - // required? (unless we write additional code to look for side effects - // and make performance trade-offs if none are present) - if (!node->getShortCircuit()) - return true; - - // if not required to execute both, decide based on performance/practicality... - - // see if OpSelect can handle it - if ((!node->getType().isScalar() && !node->getType().isVector()) || - node->getBasicType() == glslang::EbtVoid) - return false; - - assert(node->getType() == node->getTrueBlock() ->getAsTyped()->getType() && - node->getType() == node->getFalseBlock()->getAsTyped()->getType()); - - // return true if a single operand to ? : is okay for OpSelect - const auto operandOkay = [](glslang::TIntermTyped* node) { - return node->getAsSymbolNode() || node->getType().getQualifier().isConstant(); - }; - - return operandOkay(node->getTrueBlock() ->getAsTyped()) && - operandOkay(node->getFalseBlock()->getAsTyped()); - }; - - spv::Id result = spv::NoResult; // upcoming result selecting between trueValue and falseValue // emit the condition before doing anything with selection node->getCondition()->traverse(this); - spv::Id condition = accessChainLoad(node->getCondition()->getType()); - // Find a way of executing both sides and selecting the right result. - const auto executeBothSides = [&]() -> void { - // execute both sides - node->getTrueBlock()->traverse(this); - spv::Id trueValue = accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()); - node->getFalseBlock()->traverse(this); - spv::Id falseValue = accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()); - - builder.setLine(node->getLoc().line); - - // done if void - if (node->getBasicType() == glslang::EbtVoid) - return; - - // emit code to select between trueValue and falseValue - - // see if OpSelect can handle it - if (node->getType().isScalar() || node->getType().isVector()) { - // Emit OpSelect for this selection. - - // smear condition to vector, if necessary (AST is always scalar) - if (builder.isVector(trueValue)) - condition = builder.smearScalar(spv::NoPrecision, condition, - builder.makeVectorType(builder.makeBoolType(), - builder.getNumComponents(trueValue))); - - // OpSelect - result = builder.createTriOp(spv::OpSelect, - convertGlslangToSpvType(node->getType()), condition, - trueValue, falseValue); - - builder.clearAccessChain(); - builder.setAccessChainRValue(result); - } else { - // We need control flow to select the result. - // TODO: Once SPIR-V OpSelect allows arbitrary types, eliminate this path. - result = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); - - // Selection control: - const spv::SelectionControlMask control = TranslateSelectionControl(*node); - - // make an "if" based on the value created by the condition - spv::Builder::If ifBuilder(condition, control, builder); - - // emit the "then" statement - builder.createStore(trueValue, result); - ifBuilder.makeBeginElse(); - // emit the "else" statement - builder.createStore(falseValue, result); - - // finish off the control flow - ifBuilder.makeEndIf(); - - builder.clearAccessChain(); - builder.setAccessChainLValue(result); - } - }; - - // Execute the one side needed, as per the condition - const auto executeOneSide = [&]() { - // Always emit control flow. - if (node->getBasicType() != glslang::EbtVoid) - result = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); - - // Selection control: - const spv::SelectionControlMask control = TranslateSelectionControl(*node); - - // make an "if" based on the value created by the condition - spv::Builder::If ifBuilder(condition, control, builder); + // make an "if" based on the value created by the condition + spv::Builder::If ifBuilder(accessChainLoad(node->getCondition()->getType()), builder); + if (node->getTrueBlock()) { // emit the "then" statement - if (node->getTrueBlock() != nullptr) { - node->getTrueBlock()->traverse(this); - if (result != spv::NoResult) - builder.createStore(accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()), result); - } + node->getTrueBlock()->traverse(this); + if (result) + builder.createStore(accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()), result); + } - if (node->getFalseBlock() != nullptr) { - ifBuilder.makeBeginElse(); - // emit the "else" statement - node->getFalseBlock()->traverse(this); - if (result != spv::NoResult) - builder.createStore(accessChainLoad(node->getFalseBlock()->getAsTyped()->getType()), result); - } + if (node->getFalseBlock()) { + ifBuilder.makeBeginElse(); + // emit the "else" statement + node->getFalseBlock()->traverse(this); + if (result) + builder.createStore(accessChainLoad(node->getFalseBlock()->getAsTyped()->getType()), result); + } - // finish off the control flow - ifBuilder.makeEndIf(); + ifBuilder.makeEndIf(); - if (result != spv::NoResult) { - builder.clearAccessChain(); - builder.setAccessChainLValue(result); - } - }; - - // Try for OpSelect (or a requirement to execute both sides) - if (bothSidesPolicy()) { - SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); - if (node->getType().getQualifier().isSpecConstant()) - spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); - executeBothSides(); - } else - executeOneSide(); + if (result) { + // GLSL only has r-values as the result of a :?, but + // if we have an l-value, that can be more efficient if it will + // become the base of a complex r-value expression, because the + // next layer copies r-values into memory to use the access-chain mechanism + builder.clearAccessChain(); + builder.setAccessChainLValue(result); + } return false; } @@ -2294,9 +1759,6 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T node->getCondition()->traverse(this); spv::Id selector = accessChainLoad(node->getCondition()->getAsTyped()->getType()); - // Selection control: - const spv::SelectionControlMask control = TranslateSwitchControl(*node); - // browse the children to sort out code segments int defaultSegment = -1; std::vector codeSegments; @@ -2322,7 +1784,7 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T // make the switch statement std::vector segmentBlocks; // returned, as the blocks allocated in the call - builder.makeSwitch(selector, control, (int)codeSegments.size(), caseValues, valueIndexToSegment, defaultSegment, segmentBlocks); + builder.makeSwitch(selector, (int)codeSegments.size(), caseValues, valueIndexToSegment, defaultSegment, segmentBlocks); // emit all the code in the segments breakForLoop.push(false); @@ -2353,27 +1815,22 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn { auto blocks = builder.makeNewLoop(); builder.createBranch(&blocks.head); - - // Loop control: - unsigned int dependencyLength = glslang::TIntermLoop::dependencyInfinite; - const spv::LoopControlMask control = TranslateLoopControl(*node, dependencyLength); - // Spec requires back edges to target header blocks, and every header block // must dominate its merge block. Make a header block first to ensure these // conditions are met. By definition, it will contain OpLoopMerge, followed // by a block-ending branch. But we don't want to put any other body/test // instructions in it, since the body/test may have arbitrary instructions, // including merges of its own. - builder.setLine(node->getLoc().line); builder.setBuildPoint(&blocks.head); - builder.createLoopMerge(&blocks.merge, &blocks.continue_target, control, dependencyLength); + builder.createLoopMerge(&blocks.merge, &blocks.continue_target, spv::LoopControlMaskNone); if (node->testFirst() && node->getTest()) { spv::Block& test = builder.makeNewBlock(); builder.createBranch(&test); builder.setBuildPoint(&test); node->getTest()->traverse(this); - spv::Id condition = accessChainLoad(node->getTest()->getType()); + spv::Id condition = + accessChainLoad(node->getTest()->getType()); builder.createConditionalBranch(condition, &blocks.body, &blocks.merge); builder.setBuildPoint(&blocks.body); @@ -2388,7 +1845,6 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn node->getTerminal()->traverse(this); builder.createBranch(&blocks.head); } else { - builder.setLine(node->getLoc().line); builder.createBranch(&blocks.body); breakForLoop.push(true); @@ -2423,8 +1879,6 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T if (node->getExpression()) node->getExpression()->traverse(this); - builder.setLine(node->getLoc().line); - switch (node->getFlowOp()) { case glslang::EOpKill: builder.makeDiscard(); @@ -2477,36 +1931,6 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* spv::StorageClass storageClass = TranslateStorageClass(node->getType()); spv::Id spvType = convertGlslangToSpvType(node->getType()); - const bool contains16BitType = node->getType().containsBasicType(glslang::EbtFloat16) || - node->getType().containsBasicType(glslang::EbtInt16) || - node->getType().containsBasicType(glslang::EbtUint16); - if (contains16BitType) { - switch (storageClass) { - case spv::StorageClassInput: - case spv::StorageClassOutput: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); - builder.addCapability(spv::CapabilityStorageInputOutput16); - break; - case spv::StorageClassPushConstant: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); - builder.addCapability(spv::CapabilityStoragePushConstant16); - break; - case spv::StorageClassUniform: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); - if (node->getType().getQualifier().storage == glslang::EvqBuffer) - builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); - else - builder.addCapability(spv::CapabilityStorageUniform16); - break; - case spv::StorageClassStorageBuffer: - addPre13Extension(spv::E_SPV_KHR_16bit_storage); - builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); - break; - default: - break; - } - } - const char* name = node->getName().c_str(); if (glslang::IsAnonymous(name)) name = ""; @@ -2519,12 +1943,6 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler) { switch (sampler.type) { case glslang::EbtFloat: return builder.makeFloatType(32); -#ifdef AMD_EXTENSIONS - case glslang::EbtFloat16: - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float_fetch); - builder.addCapability(spv::CapabilityFloat16ImageAMD); - return builder.makeFloatType(16); -#endif case glslang::EbtInt: return builder.makeIntType(32); case glslang::EbtUint: return builder.makeUintType(32); default: @@ -2538,7 +1956,7 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler) // is applied. spv::Id TGlslangToSpvTraverser::getInvertedSwizzleType(const glslang::TIntermTyped& node) { - if (node.getAsOperator() && + if (node.getAsOperator() && node.getAsOperator()->getOp() == glslang::EOpVectorSwizzle) return convertGlslangToSpvType(node.getAsBinaryNode()->getLeft()->getType()); else @@ -2567,14 +1985,13 @@ void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& nod // layout state rooted from the top-level type. spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type) { - return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier(), false); + return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier()); } // Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id. // explicitLayout can be kept the same throughout the hierarchical recursive walk. // Mutually recursive with convertGlslangStructToSpvType(). -spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, - glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier, bool lastBufferBlockMember) +spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier) { spv::Id spvType = spv::NoResult; @@ -2589,14 +2006,13 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty case glslang::EbtDouble: spvType = builder.makeFloatType(64); break; +#ifdef AMD_EXTENSIONS case glslang::EbtFloat16: + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); builder.addCapability(spv::CapabilityFloat16); -#if AMD_EXTENSIONS - if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); -#endif spvType = builder.makeFloatType(16); break; +#endif case glslang::EbtBool: // "transparent" bool doesn't exist in SPIR-V. The GLSL convention is // a 32-bit int where non-0 means true. @@ -2605,30 +2021,6 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty else spvType = builder.makeBoolType(); break; - case glslang::EbtInt8: - builder.addCapability(spv::CapabilityInt8); - spvType = builder.makeIntType(8); - break; - case glslang::EbtUint8: - builder.addCapability(spv::CapabilityInt8); - spvType = builder.makeUintType(8); - break; - case glslang::EbtInt16: - builder.addCapability(spv::CapabilityInt16); -#ifdef AMD_EXTENSIONS - if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16); -#endif - spvType = builder.makeIntType(16); - break; - case glslang::EbtUint16: - builder.addCapability(spv::CapabilityInt16); -#ifdef AMD_EXTENSIONS - if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16); -#endif - spvType = builder.makeUintType(16); - break; case glslang::EbtInt: spvType = builder.makeIntType(32); break; @@ -2636,9 +2028,11 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty spvType = builder.makeUintType(32); break; case glslang::EbtInt64: + builder.addCapability(spv::CapabilityInt64); spvType = builder.makeIntType(64); break; case glslang::EbtUint64: + builder.addCapability(spv::CapabilityInt64); spvType = builder.makeUintType(64); break; case glslang::EbtAtomicUint: @@ -2704,8 +2098,8 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty // Use a dummy glslang type for querying internal strides of // arrays of arrays, but using just a one-dimensional array. glslang::TType simpleArrayType(type, 0); // deference type of the array - while (simpleArrayType.getArraySizes()->getNumDims() > 1) - simpleArrayType.getArraySizes()->dereference(); + while (simpleArrayType.getArraySizes().getNumDims() > 1) + simpleArrayType.getArraySizes().dereference(); // Will compute the higher-order strides here, rather than making a whole // pile of types and doing repetitive recursion on their contents. @@ -2727,16 +2121,12 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty stride = getArrayStride(type, explicitLayout, qualifier.layoutMatrix); } - // Do the outer dimension, which might not be known for a runtime-sized array. - // (Unsized arrays that survive through linking will be runtime-sized arrays) - if (type.isSizedArray()) - spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), 0), stride); - else { - if (!lastBufferBlockMember) { - builder.addExtension("SPV_EXT_descriptor_indexing"); - builder.addCapability(spv::CapabilityRuntimeDescriptorArrayEXT); - } + // Do the outer dimension, which might not be known for a runtime-sized array + if (type.isRuntimeSizedArray()) { spvType = builder.makeRuntimeArray(spvType); + } else { + assert(type.getOuterArraySize() > 0); + spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), 0), stride); } if (stride > 0) builder.addDecoration(spvType, spv::DecorationArrayStride, stride); @@ -2745,32 +2135,6 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty return spvType; } -// TODO: this functionality should exist at a higher level, in creating the AST -// -// Identify interface members that don't have their required extension turned on. -// -bool TGlslangToSpvTraverser::filterMember(const glslang::TType& member) -{ - auto& extensions = glslangIntermediate->getRequestedExtensions(); - - if (member.getFieldName() == "gl_ViewportMask" && - extensions.find("GL_NV_viewport_array2") == extensions.end()) - return true; - if (member.getFieldName() == "gl_SecondaryViewportMaskNV" && - extensions.find("GL_NV_stereo_view_rendering") == extensions.end()) - return true; - if (member.getFieldName() == "gl_SecondaryPositionNV" && - extensions.find("GL_NV_stereo_view_rendering") == extensions.end()) - return true; - if (member.getFieldName() == "gl_PositionPerViewNV" && - extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end()) - return true; - if (member.getFieldName() == "gl_ViewportMaskPerViewNV" && - extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end()) - return true; - - return false; -}; // Do full recursive conversion of a glslang structure (or block) type to a SPIR-V Id. // explicitLayout can be kept the same throughout the hierarchical recursive walk. @@ -2783,6 +2147,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy // Create a vector of struct types for SPIR-V to consume std::vector spvMembers; int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0, except sometimes for blocks + int locationOffset = 0; // for use across struct members, when they are called recursively for (int i = 0; i < (int)glslangMembers->size(); i++) { glslang::TType& glslangMember = *(*glslangMembers)[i].type; if (glslangMember.hiddenMember()) { @@ -2790,24 +2155,20 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy if (type.getBasicType() == glslang::EbtBlock) memberRemapper[glslangMembers][i] = -1; } else { - if (type.getBasicType() == glslang::EbtBlock) { + if (type.getBasicType() == glslang::EbtBlock) memberRemapper[glslangMembers][i] = i - memberDelta; - if (filterMember(glslangMember)) - continue; - } // modify just this child's view of the qualifier glslang::TQualifier memberQualifier = glslangMember.getQualifier(); InheritQualifiers(memberQualifier, qualifier); - // manually inherit location + // manually inherit location; it's more complex if (! memberQualifier.hasLocation() && qualifier.hasLocation()) - memberQualifier.layoutLocation = qualifier.layoutLocation; + memberQualifier.layoutLocation = qualifier.layoutLocation + locationOffset; + if (qualifier.hasLocation()) + locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember); // recurse - bool lastBufferBlockMember = qualifier.storage == glslang::EvqBuffer && - i == (int)glslangMembers->size() - 1; - spvMembers.push_back( - convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier, lastBufferBlockMember)); + spvMembers.push_back(convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier)); } } @@ -2834,121 +2195,99 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type, for (int i = 0; i < (int)glslangMembers->size(); i++) { glslang::TType& glslangMember = *(*glslangMembers)[i].type; int member = i; - if (type.getBasicType() == glslang::EbtBlock) { + if (type.getBasicType() == glslang::EbtBlock) member = memberRemapper[glslangMembers][i]; - if (filterMember(glslangMember)) - continue; - } // modify just this child's view of the qualifier glslang::TQualifier memberQualifier = glslangMember.getQualifier(); InheritQualifiers(memberQualifier, qualifier); // using -1 above to indicate a hidden member - if (member < 0) - continue; - - builder.addMemberName(spvType, member, glslangMember.getFieldName().c_str()); - builder.addMemberDecoration(spvType, member, - TranslateLayoutDecoration(glslangMember, memberQualifier.layoutMatrix)); - builder.addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangMember)); - // Add interpolation and auxiliary storage decorations only to - // top-level members of Input and Output storage classes - if (type.getQualifier().storage == glslang::EvqVaryingIn || - type.getQualifier().storage == glslang::EvqVaryingOut) { - if (type.getBasicType() == glslang::EbtBlock || - glslangIntermediate->getSource() == glslang::EShSourceHlsl) { - builder.addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier)); - builder.addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier)); + if (member >= 0) { + builder.addMemberName(spvType, member, glslangMember.getFieldName().c_str()); + addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangMember, memberQualifier.layoutMatrix)); + addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangMember)); + // Add interpolation and auxiliary storage decorations only to top-level members of Input and Output storage classes + if (type.getQualifier().storage == glslang::EvqVaryingIn || type.getQualifier().storage == glslang::EvqVaryingOut) { + if (type.getBasicType() == glslang::EbtBlock) { + addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier)); + addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier)); + } } - } - builder.addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier)); + addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier)); - if (type.getBasicType() == glslang::EbtBlock && - qualifier.storage == glslang::EvqBuffer) { - // Add memory decorations only to top-level members of shader storage block - std::vector memory; - TranslateMemoryDecoration(memberQualifier, memory); - for (unsigned int i = 0; i < memory.size(); ++i) - builder.addMemberDecoration(spvType, member, memory[i]); - } - - // Location assignment was already completed correctly by the front end, - // just track whether a member needs to be decorated. - // Ignore member locations if the container is an array, as that's - // ill-specified and decisions have been made to not allow this. - if (! type.isArray() && memberQualifier.hasLocation()) - builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation); - - if (qualifier.hasLocation()) // track for upcoming inheritance - locationOffset += glslangIntermediate->computeTypeLocationSize( - glslangMember, glslangIntermediate->getStage()); - - // component, XFB, others - if (glslangMember.getQualifier().hasComponent()) - builder.addMemberDecoration(spvType, member, spv::DecorationComponent, - glslangMember.getQualifier().layoutComponent); - if (glslangMember.getQualifier().hasXfbOffset()) - builder.addMemberDecoration(spvType, member, spv::DecorationOffset, - glslangMember.getQualifier().layoutXfbOffset); - else if (explicitLayout != glslang::ElpNone) { - // figure out what to do with offset, which is accumulating - int nextOffset; - updateMemberOffset(type, glslangMember, offset, nextOffset, explicitLayout, memberQualifier.layoutMatrix); - if (offset >= 0) - builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset); - offset = nextOffset; - } - - if (glslangMember.isMatrix() && explicitLayout != glslang::ElpNone) - builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, - getMatrixStride(glslangMember, explicitLayout, memberQualifier.layoutMatrix)); - - // built-in variable decorations - spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true); - if (builtIn != spv::BuiltInMax) - builder.addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); - - // nonuniform - builder.addMemberDecoration(spvType, member, TranslateNonUniformDecoration(glslangMember.getQualifier())); - - if (glslangIntermediate->getHlslFunctionality1() && memberQualifier.semanticName != nullptr) { - builder.addExtension("SPV_GOOGLE_hlsl_functionality1"); - builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE, - memberQualifier.semanticName); - } - -#ifdef NV_EXTENSIONS - if (builtIn == spv::BuiltInLayer) { - // SPV_NV_viewport_array2 extension - if (glslangMember.getQualifier().layoutViewportRelative){ - builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationViewportRelativeNV); - builder.addCapability(spv::CapabilityShaderViewportMaskNV); - builder.addExtension(spv::E_SPV_NV_viewport_array2); + if (qualifier.storage == glslang::EvqBuffer) { + std::vector memory; + TranslateMemoryDecoration(memberQualifier, memory); + for (unsigned int i = 0; i < memory.size(); ++i) + addMemberDecoration(spvType, member, memory[i]); } - if (glslangMember.getQualifier().layoutSecondaryViewportRelativeOffset != -2048){ - builder.addMemberDecoration(spvType, member, - (spv::Decoration)spv::DecorationSecondaryViewportRelativeNV, - glslangMember.getQualifier().layoutSecondaryViewportRelativeOffset); - builder.addCapability(spv::CapabilityShaderStereoViewNV); - builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); + + // Compute location decoration; tricky based on whether inheritance is at play and + // what kind of container we have, etc. + // TODO: This algorithm (and it's cousin above doing almost the same thing) should + // probably move to the linker stage of the front end proper, and just have the + // answer sitting already distributed throughout the individual member locations. + int location = -1; // will only decorate if present or inherited + // Ignore member locations if the container is an array, as that's + // ill-specified and decisions have been made to not allow this anyway. + // The object itself must have a location, and that comes out from decorating the object, + // not the type (this code decorates types). + if (! type.isArray()) { + if (memberQualifier.hasLocation()) { // no inheritance, or override of inheritance + // struct members should not have explicit locations + assert(type.getBasicType() != glslang::EbtStruct); + location = memberQualifier.layoutLocation; + } else if (type.getBasicType() != glslang::EbtBlock) { + // If it is a not a Block, (...) Its members are assigned consecutive locations (...) + // The members, and their nested types, must not themselves have Location decorations. + } else if (qualifier.hasLocation()) // inheritance + location = qualifier.layoutLocation + locationOffset; } + if (location >= 0) + builder.addMemberDecoration(spvType, member, spv::DecorationLocation, location); + + if (qualifier.hasLocation()) // track for upcoming inheritance + locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember); + + // component, XFB, others + if (glslangMember.getQualifier().hasComponent()) + builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangMember.getQualifier().layoutComponent); + if (glslangMember.getQualifier().hasXfbOffset()) + builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangMember.getQualifier().layoutXfbOffset); + else if (explicitLayout != glslang::ElpNone) { + // figure out what to do with offset, which is accumulating + int nextOffset; + updateMemberOffset(type, glslangMember, offset, nextOffset, explicitLayout, memberQualifier.layoutMatrix); + if (offset >= 0) + builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset); + offset = nextOffset; + } + + if (glslangMember.isMatrix() && explicitLayout != glslang::ElpNone) + builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangMember, explicitLayout, memberQualifier.layoutMatrix)); + + // built-in variable decorations + spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true); + if (builtIn != spv::BuiltInMax) + addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); } - if (glslangMember.getQualifier().layoutPassthrough) { - builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationPassthroughNV); - builder.addCapability(spv::CapabilityGeometryShaderPassthroughNV); - builder.addExtension(spv::E_SPV_NV_geometry_shader_passthrough); - } -#endif } // Decorate the structure - builder.addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix)); - builder.addDecoration(spvType, TranslateBlockDecoration(type, glslangIntermediate->usingStorageBuffer())); + addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix)); + addDecoration(spvType, TranslateBlockDecoration(type)); if (type.getQualifier().hasStream() && glslangIntermediate->isMultiStream()) { builder.addCapability(spv::CapabilityGeometryStreams); builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream); } + if (glslangIntermediate->getXfbMode()) { + builder.addCapability(spv::CapabilityTransformFeedback); + if (type.getQualifier().hasXfbStride()) + builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride); + if (type.getQualifier().hasXfbBuffer()) + builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer); + } } // Turn the expression forming the array size into an id. @@ -2979,8 +2318,7 @@ spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arra spv::Id TGlslangToSpvTraverser::accessChainLoad(const glslang::TType& type) { spv::Id nominalTypeId = builder.accessChainGetInferredType(); - spv::Id loadedId = builder.accessChainLoad(TranslatePrecisionDecoration(type), - TranslateNonUniformDecoration(type.getQualifier()), nominalTypeId); + spv::Id loadedId = builder.accessChainLoad(TranslatePrecisionDecoration(type), nominalTypeId); // Need to convert to abstract types when necessary if (type.getBasicType() == glslang::EbtBool) { @@ -3015,24 +2353,19 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I // Conversion for bool spv::Id boolType = builder.makeBoolType(); if (nominalTypeId != boolType) { - // keep these outside arguments, for determinant order-of-evaluation - spv::Id one = builder.makeUintConstant(1); spv::Id zero = builder.makeUintConstant(0); + spv::Id one = builder.makeUintConstant(1); rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue, one, zero); - } else if (builder.getTypeId(rvalue) != boolType) - rvalue = builder.createBinOp(spv::OpINotEqual, boolType, rvalue, builder.makeUintConstant(0)); + } } else if (builder.isVectorType(nominalTypeId)) { // Conversion for bvec int vecSize = builder.getNumTypeComponents(nominalTypeId); spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize); if (nominalTypeId != bvecType) { - // keep these outside arguments, for determinant order-of-evaluation - spv::Id one = makeSmearedConstant(builder.makeUintConstant(1), vecSize); spv::Id zero = makeSmearedConstant(builder.makeUintConstant(0), vecSize); + spv::Id one = makeSmearedConstant(builder.makeUintConstant(1), vecSize); rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue, one, zero); - } else if (builder.getTypeId(rvalue) != bvecType) - rvalue = builder.createBinOp(spv::OpINotEqual, bvecType, rvalue, - makeSmearedConstant(builder.makeUintConstant(0), vecSize)); + } } } @@ -3165,7 +2498,7 @@ int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType, gl // 'currentOffset' should be passed in already initialized, ready to modify, and reflecting // the migration of data from nextOffset -> currentOffset. It should be -1 on the first call. // -1 means a non-forced member offset (no decoration needed). -void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, +void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structType*/, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout) { // this will get a positive value when deemed necessary @@ -3197,27 +2530,7 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType int memberSize; int dummyStride; int memberAlignment = glslangIntermediate->getBaseAlignment(memberType, memberSize, dummyStride, explicitLayout == glslang::ElpStd140, matrixLayout == glslang::ElmRowMajor); - - // Adjust alignment for HLSL rules - // TODO: make this consistent in early phases of code: - // adjusting this late means inconsistencies with earlier code, which for reflection is an issue - // Until reflection is brought in sync with these adjustments, don't apply to $Global, - // which is the most likely to rely on reflection, and least likely to rely implicit layouts - if (glslangIntermediate->usingHlslOFfsets() && - ! memberType.isArray() && memberType.isVector() && structType.getTypeName().compare("$Global") != 0) { - int dummySize; - int componentAlignment = glslangIntermediate->getBaseAlignmentScalar(memberType, dummySize); - if (componentAlignment <= 4) - memberAlignment = componentAlignment; - } - - // Bump up to member alignment glslang::RoundToPow2(currentOffset, memberAlignment); - - // Bump up to vec4 if there is a bad straddle - if (glslangIntermediate->improperStraddle(memberType, memberSize, currentOffset)) - glslang::RoundToPow2(currentOffset, 16); - nextOffset = currentOffset + memberSize; } @@ -3229,13 +2542,6 @@ void TGlslangToSpvTraverser::declareUseOfStructMember(const glslang::TTypeList& case glslang::EbvClipDistance: case glslang::EbvCullDistance: case glslang::EbvPointSize: -#ifdef NV_EXTENSIONS - case glslang::EbvViewportMaskNV: - case glslang::EbvSecondaryPositionNV: - case glslang::EbvSecondaryViewportMaskNV: - case glslang::EbvPositionPerViewNV: - case glslang::EbvViewportMaskPerViewNV: -#endif // Generate the associated capability. Delegate to TranslateBuiltInDecoration. // Alternately, we could just call this for any glslang built-in, since the // capability already guards against duplicates. @@ -3252,40 +2558,9 @@ bool TGlslangToSpvTraverser::isShaderEntryPoint(const glslang::TIntermAggregate* return node->getName().compare(glslangIntermediate->getEntryPointMangledName().c_str()) == 0; } -// Does parameter need a place to keep writes, separate from the original? -// Assumes called after originalParam(), which filters out block/buffer/opaque-based -// qualifiers such that we should have only in/out/inout/constreadonly here. -bool TGlslangToSpvTraverser::writableParam(glslang::TStorageQualifier qualifier) const -{ - assert(qualifier == glslang::EvqIn || - qualifier == glslang::EvqOut || - qualifier == glslang::EvqInOut || - qualifier == glslang::EvqConstReadOnly); - return qualifier != glslang::EvqConstReadOnly; -} - -// Is parameter pass-by-original? -bool TGlslangToSpvTraverser::originalParam(glslang::TStorageQualifier qualifier, const glslang::TType& paramType, - bool implicitThisParam) -{ - if (implicitThisParam) // implicit this - return true; - if (glslangIntermediate->getSource() == glslang::EShSourceHlsl) - return paramType.getBasicType() == glslang::EbtBlock; - return paramType.containsOpaque() || // sampler, etc. - (paramType.getBasicType() == glslang::EbtBlock && qualifier == glslang::EvqBuffer); // SSBO -} - // Make all the functions, skeletally, without actually visiting their bodies. void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslFunctions) { - const auto getParamDecorations = [](std::vector& decorations, const glslang::TType& type) { - spv::Decoration paramPrecision = TranslatePrecisionDecoration(type); - if (paramPrecision != spv::NoPrecision) - decorations.push_back(paramPrecision); - TranslateMemoryDecoration(type.getQualifier(), decorations); - }; - for (int f = 0; f < (int)glslFunctions.size(); ++f) { glslang::TIntermAggregate* glslFunction = glslFunctions[f]->getAsAggregate(); if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction || isShaderEntryPoint(glslFunction)) @@ -3306,33 +2581,26 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF // GLSL has copy-in/copy-out semantics. They can be handled though with a pointer to a copy. std::vector paramTypes; - std::vector> paramDecorations; // list of decorations per parameter + std::vector paramPrecisions; glslang::TIntermSequence& parameters = glslFunction->getSequence()[0]->getAsAggregate()->getSequence(); - bool implicitThis = (int)parameters.size() > 0 && parameters[0]->getAsSymbolNode()->getName() == - glslangIntermediate->implicitThisName; - - paramDecorations.resize(parameters.size()); for (int p = 0; p < (int)parameters.size(); ++p) { const glslang::TType& paramType = parameters[p]->getAsTyped()->getType(); spv::Id typeId = convertGlslangToSpvType(paramType); - if (originalParam(paramType.getQualifier().storage, paramType, implicitThis && p == 0)) + if (paramType.isOpaque()) typeId = builder.makePointer(TranslateStorageClass(paramType), typeId); - else if (writableParam(paramType.getQualifier().storage)) + else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly) typeId = builder.makePointer(spv::StorageClassFunction, typeId); else rValueParameters.insert(parameters[p]->getAsSymbolNode()->getId()); - getParamDecorations(paramDecorations[p], paramType); + paramPrecisions.push_back(TranslatePrecisionDecoration(paramType)); paramTypes.push_back(typeId); } spv::Block* functionBlock; spv::Function *function = builder.makeFunctionEntry(TranslatePrecisionDecoration(glslFunction->getType()), convertGlslangToSpvType(glslFunction->getType()), - glslFunction->getName().c_str(), paramTypes, - paramDecorations, &functionBlock); - if (implicitThis) - function->setImplicitThis(); + glslFunction->getName().c_str(), paramTypes, paramPrecisions, &functionBlock); // Track function to emit/call later functionMap[glslFunction->getName().c_str()] = function; @@ -3386,15 +2654,9 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& glslang::TSampler sampler = {}; bool cubeCompare = false; -#ifdef AMD_EXTENSIONS - bool f16ShadowCompare = false; -#endif if (node.isTexture() || node.isImage()) { sampler = glslangArguments[0]->getAsTyped()->getType().getSampler(); cubeCompare = sampler.dim == glslang::EsdCube && sampler.arrayed && sampler.shadow; -#ifdef AMD_EXTENSIONS - f16ShadowCompare = sampler.shadow && glslangArguments[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16; -#endif } for (int i = 0; i < (int)glslangArguments.size(); ++i) { @@ -3419,21 +2681,6 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if ((sampler.ms && i == 3) || (! sampler.ms && i == 2)) lvalue = true; break; -#ifdef AMD_EXTENSIONS - case glslang::EOpSparseTexture: - if (((cubeCompare || f16ShadowCompare) && i == 3) || (! (cubeCompare || f16ShadowCompare) && i == 2)) - lvalue = true; - break; - case glslang::EOpSparseTextureClamp: - if (((cubeCompare || f16ShadowCompare) && i == 4) || (! (cubeCompare || f16ShadowCompare) && i == 3)) - lvalue = true; - break; - case glslang::EOpSparseTextureLod: - case glslang::EOpSparseTextureOffset: - if ((f16ShadowCompare && i == 4) || (! f16ShadowCompare && i == 3)) - lvalue = true; - break; -#else case glslang::EOpSparseTexture: if ((cubeCompare && i == 3) || (! cubeCompare && i == 2)) lvalue = true; @@ -3447,7 +2694,6 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if (i == 3) lvalue = true; break; -#endif case glslang::EOpSparseTextureFetch: if ((sampler.dim != glslang::EsdRect && i == 3) || (sampler.dim == glslang::EsdRect && i == 2)) lvalue = true; @@ -3456,23 +2702,6 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if ((sampler.dim != glslang::EsdRect && i == 4) || (sampler.dim == glslang::EsdRect && i == 3)) lvalue = true; break; -#ifdef AMD_EXTENSIONS - case glslang::EOpSparseTextureLodOffset: - case glslang::EOpSparseTextureGrad: - case glslang::EOpSparseTextureOffsetClamp: - if ((f16ShadowCompare && i == 5) || (! f16ShadowCompare && i == 4)) - lvalue = true; - break; - case glslang::EOpSparseTextureGradOffset: - case glslang::EOpSparseTextureGradClamp: - if ((f16ShadowCompare && i == 6) || (! f16ShadowCompare && i == 5)) - lvalue = true; - break; - case glslang::EOpSparseTextureGradOffsetClamp: - if ((f16ShadowCompare && i == 7) || (! f16ShadowCompare && i == 6)) - lvalue = true; - break; -#else case glslang::EOpSparseTextureLodOffset: case glslang::EOpSparseTextureGrad: case glslang::EOpSparseTextureOffsetClamp: @@ -3488,8 +2717,7 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if (i == 6) lvalue = true; break; -#endif - case glslang::EOpSparseTextureGather: + case glslang::EOpSparseTextureGather: if ((sampler.shadow && i == 3) || (! sampler.shadow && i == 2)) lvalue = true; break; @@ -3498,21 +2726,6 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if ((sampler.shadow && i == 4) || (! sampler.shadow && i == 3)) lvalue = true; break; -#ifdef AMD_EXTENSIONS - case glslang::EOpSparseTextureGatherLod: - if (i == 3) - lvalue = true; - break; - case glslang::EOpSparseTextureGatherLodOffset: - case glslang::EOpSparseTextureGatherLodOffsets: - if (i == 4) - lvalue = true; - break; - case glslang::EOpSparseImageLoadLod: - if (i == 3) - lvalue = true; - break; -#endif default: break; } @@ -3533,20 +2746,14 @@ void TGlslangToSpvTraverser::translateArguments(glslang::TIntermUnary& node, std spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermOperator* node) { - if (! node->isImage() && ! node->isTexture()) + if (! node->isImage() && ! node->isTexture()) { return spv::NoResult; - - builder.setLine(node->getLoc().line); + } + auto resultType = [&node,this]{ return convertGlslangToSpvType(node->getType()); }; // Process a GLSL texturing op (will be SPV image) const glslang::TSampler sampler = node->getAsAggregate() ? node->getAsAggregate()->getSequence()[0]->getAsTyped()->getType().getSampler() : node->getAsUnaryNode()->getOperand()->getAsTyped()->getType().getSampler(); -#ifdef AMD_EXTENSIONS - bool f16ShadowCompare = (sampler.shadow && node->getAsAggregate()) - ? node->getAsAggregate()->getSequence()[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16 - : false; -#endif - std::vector arguments; if (node->getAsAggregate()) translateArguments(*node->getAsAggregate(), arguments); @@ -3560,8 +2767,6 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO glslang::TCrackedTextureOp cracked; node->crackTexture(sampler, cracked); - const bool isUnsignedResult = node->getType().getBasicType() == glslang::EbtUint; - // Check for queries if (cracked.query) { // OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first @@ -3573,17 +2778,17 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO case glslang::EOpTextureQuerySize: if (arguments.size() > 1) { params.lod = arguments[1]; - return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params, isUnsignedResult); + return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params); } else - return builder.createTextureQueryCall(spv::OpImageQuerySize, params, isUnsignedResult); + return builder.createTextureQueryCall(spv::OpImageQuerySize, params); case glslang::EOpImageQuerySamples: case glslang::EOpTextureQuerySamples: - return builder.createTextureQueryCall(spv::OpImageQuerySamples, params, isUnsignedResult); + return builder.createTextureQueryCall(spv::OpImageQuerySamples, params); case glslang::EOpTextureQueryLod: params.coords = arguments[1]; - return builder.createTextureQueryCall(spv::OpImageQueryLod, params, isUnsignedResult); + return builder.createTextureQueryCall(spv::OpImageQueryLod, params); case glslang::EOpTextureQueryLevels: - return builder.createTextureQueryCall(spv::OpImageQueryLevels, params, isUnsignedResult); + return builder.createTextureQueryCall(spv::OpImageQueryLevels, params); case glslang::EOpSparseTexelsResident: return builder.createUnaryOp(spv::OpImageSparseTexelsResident, builder.makeBoolType(), arguments[0]); default: @@ -3592,20 +2797,6 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } - int components = node->getType().getVectorSize(); - - if (node->getOp() == glslang::EOpTextureFetch) { - // These must produce 4 components, per SPIR-V spec. We'll add a conversion constructor if needed. - // This will only happen through the HLSL path for operator[], so we do not have to handle e.g. - // the EOpTexture/Proj/Lod/etc family. It would be harmless to do so, but would need more logic - // here around e.g. which ones return scalars or other types. - components = 4; - } - - glslang::TType returnType(node->getType().getBasicType(), glslang::EvqTemporary, components); - - auto resultType = [&returnType,this]{ return convertGlslangToSpvType(returnType); }; - // Check for image functions other than queries if (node->isImage()) { std::vector operands; @@ -3626,69 +2817,30 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*(opIt++)); } - spv::Id result = builder.createOp(spv::OpImageRead, resultType(), operands); - builder.setPrecision(result, precision); - return result; + return builder.createOp(spv::OpImageRead, resultType(), operands); } operands.push_back(*(opIt++)); -#ifdef AMD_EXTENSIONS - if (node->getOp() == glslang::EOpImageLoad || node->getOp() == glslang::EOpImageLoadLod) { -#else if (node->getOp() == glslang::EOpImageLoad) { -#endif if (sampler.ms) { operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*opIt); -#ifdef AMD_EXTENSIONS - } else if (cracked.lod) { - builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); - builder.addCapability(spv::CapabilityImageReadWriteLodAMD); - - operands.push_back(spv::ImageOperandsLodMask); - operands.push_back(*opIt); -#endif } if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown) builder.addCapability(spv::CapabilityStorageImageReadWithoutFormat); - - std::vector result( 1, builder.createOp(spv::OpImageRead, resultType(), operands) ); - builder.setPrecision(result[0], precision); - - // If needed, add a conversion constructor to the proper size. - if (components != node->getType().getVectorSize()) - result[0] = builder.createConstructor(precision, result, convertGlslangToSpvType(node->getType())); - - return result[0]; -#ifdef AMD_EXTENSIONS - } else if (node->getOp() == glslang::EOpImageStore || node->getOp() == glslang::EOpImageStoreLod) { -#else + return builder.createOp(spv::OpImageRead, resultType(), operands); } else if (node->getOp() == glslang::EOpImageStore) { -#endif if (sampler.ms) { operands.push_back(*(opIt + 1)); operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*opIt); -#ifdef AMD_EXTENSIONS - } else if (cracked.lod) { - builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); - builder.addCapability(spv::CapabilityImageReadWriteLodAMD); - - operands.push_back(*(opIt + 1)); - operands.push_back(spv::ImageOperandsLodMask); - operands.push_back(*opIt); -#endif } else operands.push_back(*opIt); builder.createNoResultOp(spv::OpImageWrite, operands); if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown) builder.addCapability(spv::CapabilityStorageImageWriteWithoutFormat); return spv::NoResult; -#ifdef AMD_EXTENSIONS - } else if (node->getOp() == glslang::EOpSparseImageLoad || node->getOp() == glslang::EOpSparseImageLoadLod) { -#else } else if (node->getOp() == glslang::EOpSparseImageLoad) { -#endif builder.addCapability(spv::CapabilitySparseResidency); if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown) builder.addCapability(spv::CapabilityStorageImageReadWithoutFormat); @@ -3696,14 +2848,6 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO if (sampler.ms) { operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*opIt++); -#ifdef AMD_EXTENSIONS - } else if (cracked.lod) { - builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); - builder.addCapability(spv::CapabilityImageReadWriteLodAMD); - - operands.push_back(spv::ImageOperandsLodMask); - operands.push_back(*opIt++); -#endif } // Create the return type that was a special structure @@ -3736,70 +2880,16 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } -#ifdef AMD_EXTENSIONS - // Check for fragment mask functions other than queries - if (cracked.fragMask) { - assert(sampler.ms); - - auto opIt = arguments.begin(); - std::vector operands; - - // Extract the image if necessary - if (builder.isSampledImage(params.sampler)) - params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); - - operands.push_back(params.sampler); - ++opIt; - - if (sampler.isSubpass()) { - // add on the (0,0) coordinate - spv::Id zero = builder.makeIntConstant(0); - std::vector comps; - comps.push_back(zero); - comps.push_back(zero); - operands.push_back(builder.makeCompositeConstant(builder.makeVectorType(builder.makeIntType(32), 2), comps)); - } - - for (; opIt != arguments.end(); ++opIt) - operands.push_back(*opIt); - - spv::Op fragMaskOp = spv::OpNop; - if (node->getOp() == glslang::EOpFragmentMaskFetch) - fragMaskOp = spv::OpFragmentMaskFetchAMD; - else if (node->getOp() == glslang::EOpFragmentFetch) - fragMaskOp = spv::OpFragmentFetchAMD; - - builder.addExtension(spv::E_SPV_AMD_shader_fragment_mask); - builder.addCapability(spv::CapabilityFragmentMaskAMD); - return builder.createOp(fragMaskOp, resultType(), operands); - } -#endif - // Check for texture functions other than queries bool sparse = node->isSparseTexture(); bool cubeCompare = sampler.dim == glslang::EsdCube && sampler.arrayed && sampler.shadow; // check for bias argument bool bias = false; -#ifdef AMD_EXTENSIONS - if (! cracked.lod && ! cracked.grad && ! cracked.fetch && ! cubeCompare) { -#else if (! cracked.lod && ! cracked.gather && ! cracked.grad && ! cracked.fetch && ! cubeCompare) { -#endif int nonBiasArgCount = 2; -#ifdef AMD_EXTENSIONS - if (cracked.gather) - ++nonBiasArgCount; // comp argument should be present when bias argument is present - - if (f16ShadowCompare) - ++nonBiasArgCount; -#endif if (cracked.offset) ++nonBiasArgCount; -#ifdef AMD_EXTENSIONS - else if (cracked.offsets) - ++nonBiasArgCount; -#endif if (cracked.grad) nonBiasArgCount += 2; if (cracked.lodClamp) @@ -3818,17 +2908,6 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); } -#ifdef AMD_EXTENSIONS - if (cracked.gather) { - const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions(); - if (bias || cracked.lod || - sourceExtensions.find(glslang::E_GL_AMD_texture_gather_bias_lod) != sourceExtensions.end()) { - builder.addExtension(spv::E_SPV_AMD_texture_gather_bias_lod); - builder.addCapability(spv::CapabilityImageGatherBiasLodAMD); - } - } -#endif - // set the rest of the arguments params.coords = arguments[1]; @@ -3836,11 +2915,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO bool noImplicitLod = false; // sort out where Dref is coming from -#ifdef AMD_EXTENSIONS - if (cubeCompare || f16ShadowCompare) { -#else if (cubeCompare) { -#endif params.Dref = arguments[2]; ++extraArgs; } else if (sampler.shadow && cracked.gather) { @@ -3859,7 +2934,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // lod if (cracked.lod) { - params.lod = arguments[2 + extraArgs]; + params.lod = arguments[2]; ++extraArgs; } else if (glslangIntermediate->getStage() != EShLangFragment) { // we need to invent the default lod for an explicit lod instruction for a non-fragment stage @@ -3868,7 +2943,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // multisample if (sampler.ms) { - params.sample = arguments[2 + extraArgs]; // For MS, "sample" should be specified + params.sample = arguments[2]; // For MS, "sample" should be specified ++extraArgs; } @@ -3900,20 +2975,21 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO ++extraArgs; } + // bias + if (bias) { + params.bias = arguments[2 + extraArgs]; + ++extraArgs; + } + // gather component if (cracked.gather && ! sampler.shadow) { // default component is 0, if missing, otherwise an argument if (2 + extraArgs < (int)arguments.size()) { params.component = arguments[2 + extraArgs]; ++extraArgs; - } else + } else { params.component = builder.makeIntConstant(0); - } - - // bias - if (bias) { - params.bias = arguments[2 + extraArgs]; - ++extraArgs; + } } // projective component (might not to move) @@ -3932,7 +3008,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } // copy the projective coordinate if we have to if (projTargetComp != projSourceComp) { - spv::Id projComp = builder.createCompositeExtract(params.coords, + spv::Id projComp = builder.createCompositeExtract(params.coords, builder.getScalarTypeId(builder.getTypeId(params.coords)), projSourceComp); params.coords = builder.createCompositeInsert(projComp, params.coords, @@ -3940,14 +3016,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } - std::vector result( 1, - builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params) - ); - - if (components != node->getType().getVectorSize()) - result[0] = builder.createConstructor(precision, result, convertGlslangToSpvType(node->getType())); - - return result[0]; + return builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params); } spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAggregate* node) @@ -3968,18 +3037,18 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg // 3. Make the call // 4. Copy back the results - // 1. Evaluate the arguments and their types + // 1. Evaluate the arguments std::vector lValues; std::vector rValues; std::vector argTypes; for (int a = 0; a < (int)glslangArgs.size(); ++a) { - argTypes.push_back(&glslangArgs[a]->getAsTyped()->getType()); + const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); // build l-value builder.clearAccessChain(); glslangArgs[a]->traverse(this); - // keep outputs and pass-by-originals as l-values, evaluate others as r-values - if (originalParam(qualifiers[a], *argTypes[a], function->hasImplicitThis() && a == 0) || - writableParam(qualifiers[a])) { + argTypes.push_back(¶mType); + // keep outputs and opaque objects as l-values, evaluate input-only as r-values + if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.isOpaque()) { // save l-value lValues.push_back(builder.getAccessChain()); } else { @@ -3996,33 +3065,26 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg int rValueCount = 0; std::vector spvArgs; for (int a = 0; a < (int)glslangArgs.size(); ++a) { + const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); spv::Id arg; - if (originalParam(qualifiers[a], *argTypes[a], function->hasImplicitThis() && a == 0)) { + if (paramType.isOpaque()) { builder.setAccessChain(lValues[lValueCount]); arg = builder.accessChainGetLValue(); ++lValueCount; - } else if (writableParam(qualifiers[a])) { + } else if (qualifiers[a] != glslang::EvqConstReadOnly) { // need space to hold the copy - arg = builder.createVariable(spv::StorageClassFunction, builder.getContainedTypeId(function->getParamType(a)), "param"); + arg = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(paramType), "param"); if (qualifiers[a] == glslang::EvqIn || qualifiers[a] == glslang::EvqInOut) { // need to copy the input into output space builder.setAccessChain(lValues[lValueCount]); spv::Id copy = accessChainLoad(*argTypes[a]); builder.clearAccessChain(); builder.setAccessChainLValue(arg); - multiTypeStore(*argTypes[a], copy); + multiTypeStore(paramType, copy); } ++lValueCount; } else { - // process r-value, which involves a copy for a type mismatch - if (function->getParamType(a) != convertGlslangToSpvType(*argTypes[a])) { - spv::Id argCopy = builder.createVariable(spv::StorageClassFunction, function->getParamType(a), "arg"); - builder.clearAccessChain(); - builder.setAccessChainLValue(argCopy); - multiTypeStore(*argTypes[a], rValues[rValueCount]); - arg = builder.createLoad(argCopy); - } else - arg = rValues[rValueCount]; + arg = rValues[rValueCount]; ++rValueCount; } spvArgs.push_back(arg); @@ -4035,13 +3097,12 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg // 4. Copy back out an "out" arguments. lValueCount = 0; for (int a = 0; a < (int)glslangArgs.size(); ++a) { - if (originalParam(qualifiers[a], *argTypes[a], function->hasImplicitThis() && a == 0)) - ++lValueCount; - else if (writableParam(qualifiers[a])) { + const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); + if (qualifiers[a] != glslang::EvqConstReadOnly) { if (qualifiers[a] == glslang::EvqOut || qualifiers[a] == glslang::EvqInOut) { spv::Id copy = builder.createLoad(spvArgs[a]); builder.setAccessChain(lValues[lValueCount]); - multiTypeStore(*argTypes[a], copy); + multiTypeStore(paramType, copy); } ++lValueCount; } @@ -4051,12 +3112,17 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg } // Translate AST operation to SPV operation, already having SPV-based operands/types. -spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpDecorations& decorations, +spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv::Decoration precision, + spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison) { - bool isUnsigned = isTypeUnsignedInt(typeProxy); - bool isFloat = isTypeFloat(typeProxy); + bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif bool isBool = typeProxy == glslang::EbtBool; spv::Op binOp = spv::OpNop; @@ -4188,16 +3254,15 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpD if (binOp != spv::OpNop) { assert(comparison == false); if (builder.isMatrix(left) || builder.isMatrix(right)) - return createBinaryMatrixOperation(binOp, decorations, typeId, left, right); + return createBinaryMatrixOperation(binOp, precision, noContraction, typeId, left, right); // No matrix involved; make both operands be the same number of components, if needed if (needMatchingVectors) - builder.promoteScalar(decorations.precision, left, right); + builder.promoteScalar(precision, left, right); spv::Id result = builder.createBinOp(binOp, typeId, left, right); - builder.addDecoration(result, decorations.noContraction); - builder.addDecoration(result, decorations.nonUniform); - return builder.setPrecision(result, decorations.precision); + addDecoration(result, noContraction); + return builder.setPrecision(result, precision); } if (! comparison) @@ -4206,11 +3271,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpD // Handle comparison instructions if (reduceComparison && (op == glslang::EOpEqual || op == glslang::EOpNotEqual) - && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) { - spv::Id result = builder.createCompositeCompare(decorations.precision, left, right, op == glslang::EOpEqual); - builder.addDecoration(result, decorations.nonUniform); - return result; - } + && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) + return builder.createCompositeCompare(precision, left, right, op == glslang::EOpEqual); switch (op) { case glslang::EOpLessThan: @@ -4269,9 +3331,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpD if (binOp != spv::OpNop) { spv::Id result = builder.createBinOp(binOp, typeId, left, right); - builder.addDecoration(result, decorations.noContraction); - builder.addDecoration(result, decorations.nonUniform); - return builder.setPrecision(result, decorations.precision); + addDecoration(result, noContraction); + return builder.setPrecision(result, precision); } return 0; @@ -4291,8 +3352,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpD // matrix op scalar op in {+, -, /} // scalar op matrix op in {+, -, /} // -spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId, - spv::Id left, spv::Id right) +spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right) { bool firstClass = true; @@ -4301,8 +3361,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecora case spv::OpFDiv: if (builder.isMatrix(left) && builder.isScalar(right)) { // turn matrix / scalar into a multiply... - spv::Id resultType = builder.getTypeId(right); - right = builder.createBinOp(spv::OpFDiv, resultType, builder.makeFpConstant(resultType, 1.0), right); + right = builder.createBinOp(spv::OpFDiv, builder.getTypeId(right), builder.makeFloatConstant(1.0F), right); op = spv::OpMatrixTimesScalar; } else firstClass = false; @@ -4331,9 +3390,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecora if (firstClass) { spv::Id result = builder.createBinOp(op, typeId, left, right); - builder.addDecoration(result, decorations.noContraction); - builder.addDecoration(result, decorations.nonUniform); - return builder.setPrecision(result, decorations.precision); + addDecoration(result, noContraction); + return builder.setPrecision(result, precision); } // Handle component-wise +, -, *, %, and / for all combinations of type. @@ -4360,9 +3418,9 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecora std::vector results; spv::Id smearVec = spv::NoResult; if (builder.isScalar(left)) - smearVec = builder.smearScalar(decorations.precision, left, vecType); + smearVec = builder.smearScalar(precision, left, vecType); else if (builder.isScalar(right)) - smearVec = builder.smearScalar(decorations.precision, right, vecType); + smearVec = builder.smearScalar(precision, right, vecType); // do each vector op for (unsigned int c = 0; c < numCols; ++c) { @@ -4371,15 +3429,12 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecora spv::Id leftVec = leftMat ? builder.createCompositeExtract( left, vecType, indexes) : smearVec; spv::Id rightVec = rightMat ? builder.createCompositeExtract(right, vecType, indexes) : smearVec; spv::Id result = builder.createBinOp(op, vecType, leftVec, rightVec); - builder.addDecoration(result, decorations.noContraction); - builder.addDecoration(result, decorations.nonUniform); - results.push_back(builder.setPrecision(result, decorations.precision)); + addDecoration(result, noContraction); + results.push_back(builder.setPrecision(result, precision)); } // put the pieces together - spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision); - builder.addDecoration(result, decorations.nonUniform); - return result; + return builder.setPrecision(builder.createCompositeConstruct(typeId, results), precision); } default: assert(0); @@ -4387,21 +3442,24 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecora } } -spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId, - spv::Id operand, glslang::TBasicType typeProxy) +spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy) { spv::Op unaryOp = spv::OpNop; int extBuiltins = -1; int libCall = -1; - bool isUnsigned = isTypeUnsignedInt(typeProxy); - bool isFloat = isTypeFloat(typeProxy); + bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif switch (op) { case glslang::EOpNegative: if (isFloat) { unaryOp = spv::OpFNegate; if (builder.isMatrixType(typeId)) - return createUnaryMatrixOperation(unaryOp, decorations, typeId, operand, typeProxy); + return createUnaryMatrixOperation(unaryOp, precision, noContraction, typeId, operand, typeProxy); } else unaryOp = spv::OpSNegate; break; @@ -4531,10 +3589,6 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe case glslang::EOpDoubleBitsToUint64: case glslang::EOpInt64BitsToDouble: case glslang::EOpUint64BitsToDouble: - case glslang::EOpFloat16BitsToInt16: - case glslang::EOpFloat16BitsToUint16: - case glslang::EOpInt16BitsToFloat16: - case glslang::EOpUint16BitsToFloat16: unaryOp = spv::OpBitcast; break; @@ -4579,24 +3633,15 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe case glslang::EOpUnpackInt2x32: case glslang::EOpPackUint2x32: case glslang::EOpUnpackUint2x32: - case glslang::EOpPack16: - case glslang::EOpPack32: - case glslang::EOpPack64: - case glslang::EOpUnpack32: - case glslang::EOpUnpack16: - case glslang::EOpUnpack8: - case glslang::EOpPackInt2x16: - case glslang::EOpUnpackInt2x16: - case glslang::EOpPackUint2x16: - case glslang::EOpUnpackUint2x16: - case glslang::EOpPackInt4x16: - case glslang::EOpUnpackInt4x16: - case glslang::EOpPackUint4x16: - case glslang::EOpUnpackUint4x16: + unaryOp = spv::OpBitcast; + break; + +#ifdef AMD_EXTENSIONS case glslang::EOpPackFloat2x16: case glslang::EOpUnpackFloat2x16: unaryOp = spv::OpBitcast; break; +#endif case glslang::EOpDPdx: unaryOp = spv::OpDPdx; @@ -4632,10 +3677,6 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe unaryOp = spv::OpFwidthCoarse; break; case glslang::EOpInterpolateAtCentroid: -#ifdef AMD_EXTENSIONS - if (typeProxy == glslang::EbtFloat16) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); -#endif builder.addCapability(spv::CapabilityInterpolationFunction); libCall = spv::GLSLstd450InterpolateAtCentroid; break; @@ -4666,7 +3707,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe // Handle all of the atomics in one place, in createAtomicOperation() std::vector operands; operands.push_back(operand); - return createAtomicOperation(op, decorations.precision, typeId, operands, typeProxy); + return createAtomicOperation(op, precision, typeId, operands, typeProxy); } case glslang::EOpBitFieldReverse: @@ -4697,63 +3738,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe case glslang::EOpMinInvocationsNonUniform: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: - case glslang::EOpMinInvocationsInclusiveScan: - case glslang::EOpMaxInvocationsInclusiveScan: - case glslang::EOpAddInvocationsInclusiveScan: - case glslang::EOpMinInvocationsInclusiveScanNonUniform: - case glslang::EOpMaxInvocationsInclusiveScanNonUniform: - case glslang::EOpAddInvocationsInclusiveScanNonUniform: - case glslang::EOpMinInvocationsExclusiveScan: - case glslang::EOpMaxInvocationsExclusiveScan: - case glslang::EOpAddInvocationsExclusiveScan: - case glslang::EOpMinInvocationsExclusiveScanNonUniform: - case glslang::EOpMaxInvocationsExclusiveScanNonUniform: - case glslang::EOpAddInvocationsExclusiveScanNonUniform: #endif { std::vector operands; operands.push_back(operand); return createInvocationsOperation(op, typeId, operands, typeProxy); } - case glslang::EOpSubgroupAll: - case glslang::EOpSubgroupAny: - case glslang::EOpSubgroupAllEqual: - case glslang::EOpSubgroupBroadcastFirst: - case glslang::EOpSubgroupBallot: - case glslang::EOpSubgroupInverseBallot: - case glslang::EOpSubgroupBallotBitCount: - case glslang::EOpSubgroupBallotInclusiveBitCount: - case glslang::EOpSubgroupBallotExclusiveBitCount: - case glslang::EOpSubgroupBallotFindLSB: - case glslang::EOpSubgroupBallotFindMSB: - case glslang::EOpSubgroupAdd: - case glslang::EOpSubgroupMul: - case glslang::EOpSubgroupMin: - case glslang::EOpSubgroupMax: - case glslang::EOpSubgroupAnd: - case glslang::EOpSubgroupOr: - case glslang::EOpSubgroupXor: - case glslang::EOpSubgroupInclusiveAdd: - case glslang::EOpSubgroupInclusiveMul: - case glslang::EOpSubgroupInclusiveMin: - case glslang::EOpSubgroupInclusiveMax: - case glslang::EOpSubgroupInclusiveAnd: - case glslang::EOpSubgroupInclusiveOr: - case glslang::EOpSubgroupInclusiveXor: - case glslang::EOpSubgroupExclusiveAdd: - case glslang::EOpSubgroupExclusiveMul: - case glslang::EOpSubgroupExclusiveMin: - case glslang::EOpSubgroupExclusiveMax: - case glslang::EOpSubgroupExclusiveAnd: - case glslang::EOpSubgroupExclusiveOr: - case glslang::EOpSubgroupExclusiveXor: - case glslang::EOpSubgroupQuadSwapHorizontal: - case glslang::EOpSubgroupQuadSwapVertical: - case glslang::EOpSubgroupQuadSwapDiagonal: { - std::vector operands; - operands.push_back(operand); - return createSubgroupOperation(op, typeId, operands, typeProxy); - } + #ifdef AMD_EXTENSIONS case glslang::EOpMbcnt: extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); @@ -4770,13 +3761,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe libCall = spv::CubeFaceCoordAMD; break; #endif -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartition: - builder.addExtension(spv::E_SPV_NV_shader_subgroup_partitioned); - builder.addCapability(spv::CapabilityGroupNonUniformPartitionedNV); - unaryOp = spv::OpGroupNonUniformPartitionNV; - break; -#endif + default: return 0; } @@ -4790,14 +3775,12 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe id = builder.createUnaryOp(unaryOp, typeId, operand); } - builder.addDecoration(id, decorations.noContraction); - builder.addDecoration(id, decorations.nonUniform); - return builder.setPrecision(id, decorations.precision); + addDecoration(id, noContraction); + return builder.setPrecision(id, precision); } // Create a unary operation on a matrix -spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId, - spv::Id operand, glslang::TBasicType /* typeProxy */) +spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType /* typeProxy */) { // Handle unary operations vector by vector. // The result type is the same type as the original type. @@ -4819,123 +3802,30 @@ spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, OpDecorat indexes.push_back(c); spv::Id srcVec = builder.createCompositeExtract(operand, srcVecType, indexes); spv::Id destVec = builder.createUnaryOp(op, destVecType, srcVec); - builder.addDecoration(destVec, decorations.noContraction); - builder.addDecoration(destVec, decorations.nonUniform); - results.push_back(builder.setPrecision(destVec, decorations.precision)); + addDecoration(destVec, noContraction); + results.push_back(builder.setPrecision(destVec, precision)); } // put the pieces together - spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision); - builder.addDecoration(result, decorations.nonUniform); - return result; + return builder.setPrecision(builder.createCompositeConstruct(typeId, results), precision); } -// For converting integers where both the bitwidth and the signedness could -// change, but only do the width change here. The caller is still responsible -// for the signedness conversion. -spv::Id TGlslangToSpvTraverser::createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize) -{ - // Get the result type width, based on the type to convert to. - int width = 32; - switch(op) { - case glslang::EOpConvInt16ToUint8: - case glslang::EOpConvIntToUint8: - case glslang::EOpConvInt64ToUint8: - case glslang::EOpConvUint16ToInt8: - case glslang::EOpConvUintToInt8: - case glslang::EOpConvUint64ToInt8: - width = 8; - break; - case glslang::EOpConvInt8ToUint16: - case glslang::EOpConvIntToUint16: - case glslang::EOpConvInt64ToUint16: - case glslang::EOpConvUint8ToInt16: - case glslang::EOpConvUintToInt16: - case glslang::EOpConvUint64ToInt16: - width = 16; - break; - case glslang::EOpConvInt8ToUint: - case glslang::EOpConvInt16ToUint: - case glslang::EOpConvInt64ToUint: - case glslang::EOpConvUint8ToInt: - case glslang::EOpConvUint16ToInt: - case glslang::EOpConvUint64ToInt: - width = 32; - break; - case glslang::EOpConvInt8ToUint64: - case glslang::EOpConvInt16ToUint64: - case glslang::EOpConvIntToUint64: - case glslang::EOpConvUint8ToInt64: - case glslang::EOpConvUint16ToInt64: - case glslang::EOpConvUintToInt64: - width = 64; - break; - - default: - assert(false && "Default missing"); - break; - } - - // Get the conversion operation and result type, - // based on the target width, but the source type. - spv::Id type = spv::NoType; - spv::Op convOp = spv::OpNop; - switch(op) { - case glslang::EOpConvInt8ToUint16: - case glslang::EOpConvInt8ToUint: - case glslang::EOpConvInt8ToUint64: - case glslang::EOpConvInt16ToUint8: - case glslang::EOpConvInt16ToUint: - case glslang::EOpConvInt16ToUint64: - case glslang::EOpConvIntToUint8: - case glslang::EOpConvIntToUint16: - case glslang::EOpConvIntToUint64: - case glslang::EOpConvInt64ToUint8: - case glslang::EOpConvInt64ToUint16: - case glslang::EOpConvInt64ToUint: - convOp = spv::OpSConvert; - type = builder.makeIntType(width); - break; - default: - convOp = spv::OpUConvert; - type = builder.makeUintType(width); - break; - } - - if (vectorSize > 0) - type = builder.makeVectorType(type, vectorSize); - - return builder.createUnaryOp(convOp, type, operand); -} - -spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecorations& decorations, spv::Id destType, - spv::Id operand, glslang::TBasicType typeProxy) +spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destType, spv::Id operand, glslang::TBasicType typeProxy) { spv::Op convOp = spv::OpNop; spv::Id zero = 0; spv::Id one = 0; + spv::Id type = 0; int vectorSize = builder.isVectorType(destType) ? builder.getNumTypeComponents(destType) : 0; switch (op) { - case glslang::EOpConvInt8ToBool: - case glslang::EOpConvUint8ToBool: - zero = builder.makeUint8Constant(0); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); - case glslang::EOpConvInt16ToBool: - case glslang::EOpConvUint16ToBool: - zero = builder.makeUint16Constant(0); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); case glslang::EOpConvIntToBool: case glslang::EOpConvUintToBool: - zero = builder.makeUintConstant(0); - zero = makeSmearedConstant(zero, vectorSize); - return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); case glslang::EOpConvInt64ToBool: case glslang::EOpConvUint64ToBool: - zero = builder.makeUint64Constant(0); + zero = (op == glslang::EOpConvInt64ToBool || + op == glslang::EOpConvUint64ToBool) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); @@ -4949,10 +3839,12 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); +#ifdef AMD_EXTENSIONS case glslang::EOpConvFloat16ToBool: zero = builder.makeFloat16Constant(0.0F); zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); +#endif case glslang::EOpConvBoolToFloat: convOp = spv::OpSelect; @@ -4966,141 +3858,82 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora one = builder.makeDoubleConstant(1.0); break; +#ifdef AMD_EXTENSIONS case glslang::EOpConvBoolToFloat16: convOp = spv::OpSelect; zero = builder.makeFloat16Constant(0.0F); one = builder.makeFloat16Constant(1.0F); break; - - case glslang::EOpConvBoolToInt8: - zero = builder.makeInt8Constant(0); - one = builder.makeInt8Constant(1); - convOp = spv::OpSelect; - break; - - case glslang::EOpConvBoolToUint8: - zero = builder.makeUint8Constant(0); - one = builder.makeUint8Constant(1); - convOp = spv::OpSelect; - break; - - case glslang::EOpConvBoolToInt16: - zero = builder.makeInt16Constant(0); - one = builder.makeInt16Constant(1); - convOp = spv::OpSelect; - break; - - case glslang::EOpConvBoolToUint16: - zero = builder.makeUint16Constant(0); - one = builder.makeUint16Constant(1); - convOp = spv::OpSelect; - break; +#endif case glslang::EOpConvBoolToInt: case glslang::EOpConvBoolToInt64: - if (op == glslang::EOpConvBoolToInt64) - zero = builder.makeInt64Constant(0); - else - zero = builder.makeIntConstant(0); - - if (op == glslang::EOpConvBoolToInt64) - one = builder.makeInt64Constant(1); - else - one = builder.makeIntConstant(1); - + zero = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(0) : builder.makeIntConstant(0); + one = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(1) : builder.makeIntConstant(1); convOp = spv::OpSelect; break; case glslang::EOpConvBoolToUint: case glslang::EOpConvBoolToUint64: - if (op == glslang::EOpConvBoolToUint64) - zero = builder.makeUint64Constant(0); - else - zero = builder.makeUintConstant(0); - - if (op == glslang::EOpConvBoolToUint64) - one = builder.makeUint64Constant(1); - else - one = builder.makeUintConstant(1); - + zero = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); + one = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(1) : builder.makeUintConstant(1); convOp = spv::OpSelect; break; - case glslang::EOpConvInt8ToFloat16: - case glslang::EOpConvInt8ToFloat: - case glslang::EOpConvInt8ToDouble: - case glslang::EOpConvInt16ToFloat16: - case glslang::EOpConvInt16ToFloat: - case glslang::EOpConvInt16ToDouble: - case glslang::EOpConvIntToFloat16: case glslang::EOpConvIntToFloat: case glslang::EOpConvIntToDouble: case glslang::EOpConvInt64ToFloat: case glslang::EOpConvInt64ToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvIntToFloat16: case glslang::EOpConvInt64ToFloat16: +#endif convOp = spv::OpConvertSToF; break; - case glslang::EOpConvUint8ToFloat16: - case glslang::EOpConvUint8ToFloat: - case glslang::EOpConvUint8ToDouble: - case glslang::EOpConvUint16ToFloat16: - case glslang::EOpConvUint16ToFloat: - case glslang::EOpConvUint16ToDouble: - case glslang::EOpConvUintToFloat16: case glslang::EOpConvUintToFloat: case glslang::EOpConvUintToDouble: case glslang::EOpConvUint64ToFloat: case glslang::EOpConvUint64ToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvUintToFloat16: case glslang::EOpConvUint64ToFloat16: +#endif convOp = spv::OpConvertUToF; break; case glslang::EOpConvDoubleToFloat: case glslang::EOpConvFloatToDouble: +#ifdef AMD_EXTENSIONS case glslang::EOpConvDoubleToFloat16: case glslang::EOpConvFloat16ToDouble: case glslang::EOpConvFloatToFloat16: case glslang::EOpConvFloat16ToFloat: +#endif convOp = spv::OpFConvert; if (builder.isMatrixType(destType)) - return createUnaryMatrixOperation(convOp, decorations, destType, operand, typeProxy); + return createUnaryMatrixOperation(convOp, precision, noContraction, destType, operand, typeProxy); break; - case glslang::EOpConvFloat16ToInt8: - case glslang::EOpConvFloatToInt8: - case glslang::EOpConvDoubleToInt8: - case glslang::EOpConvFloat16ToInt16: - case glslang::EOpConvFloatToInt16: - case glslang::EOpConvDoubleToInt16: - case glslang::EOpConvFloat16ToInt: case glslang::EOpConvFloatToInt: case glslang::EOpConvDoubleToInt: - case glslang::EOpConvFloat16ToInt64: case glslang::EOpConvFloatToInt64: case glslang::EOpConvDoubleToInt64: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToInt: + case glslang::EOpConvFloat16ToInt64: +#endif convOp = spv::OpConvertFToS; break; - case glslang::EOpConvUint8ToInt8: - case glslang::EOpConvInt8ToUint8: - case glslang::EOpConvUint16ToInt16: - case glslang::EOpConvInt16ToUint16: case glslang::EOpConvUintToInt: case glslang::EOpConvIntToUint: case glslang::EOpConvUint64ToInt64: case glslang::EOpConvInt64ToUint64: if (builder.isInSpecConstCodeGenMode()) { // Build zero scalar or vector for OpIAdd. - if(op == glslang::EOpConvUint8ToInt8 || op == glslang::EOpConvInt8ToUint8) { - zero = builder.makeUint8Constant(0); - } else if (op == glslang::EOpConvUint16ToInt16 || op == glslang::EOpConvInt16ToUint16) { - zero = builder.makeUint16Constant(0); - } else if (op == glslang::EOpConvUint64ToInt64 || op == glslang::EOpConvInt64ToUint64) { - zero = builder.makeUint64Constant(0); - } else { - zero = builder.makeUintConstant(0); - } + zero = (op == glslang::EOpConvUint64ToInt64 || + op == glslang::EOpConvInt64ToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); zero = makeSmearedConstant(zero, vectorSize); // Use OpIAdd, instead of OpBitcast to do the conversion when // generating for OpSpecConstantOp instruction. @@ -5110,117 +3943,63 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora convOp = spv::OpBitcast; break; - case glslang::EOpConvFloat16ToUint8: - case glslang::EOpConvFloatToUint8: - case glslang::EOpConvDoubleToUint8: - case glslang::EOpConvFloat16ToUint16: - case glslang::EOpConvFloatToUint16: - case glslang::EOpConvDoubleToUint16: - case glslang::EOpConvFloat16ToUint: case glslang::EOpConvFloatToUint: case glslang::EOpConvDoubleToUint: case glslang::EOpConvFloatToUint64: case glslang::EOpConvDoubleToUint64: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToUint: case glslang::EOpConvFloat16ToUint64: +#endif convOp = spv::OpConvertFToU; break; - case glslang::EOpConvInt8ToInt16: - case glslang::EOpConvInt8ToInt: - case glslang::EOpConvInt8ToInt64: - case glslang::EOpConvInt16ToInt8: - case glslang::EOpConvInt16ToInt: - case glslang::EOpConvInt16ToInt64: - case glslang::EOpConvIntToInt8: - case glslang::EOpConvIntToInt16: case glslang::EOpConvIntToInt64: - case glslang::EOpConvInt64ToInt8: - case glslang::EOpConvInt64ToInt16: case glslang::EOpConvInt64ToInt: convOp = spv::OpSConvert; break; - case glslang::EOpConvUint8ToUint16: - case glslang::EOpConvUint8ToUint: - case glslang::EOpConvUint8ToUint64: - case glslang::EOpConvUint16ToUint8: - case glslang::EOpConvUint16ToUint: - case glslang::EOpConvUint16ToUint64: - case glslang::EOpConvUintToUint8: - case glslang::EOpConvUintToUint16: case glslang::EOpConvUintToUint64: - case glslang::EOpConvUint64ToUint8: - case glslang::EOpConvUint64ToUint16: case glslang::EOpConvUint64ToUint: convOp = spv::OpUConvert; break; - case glslang::EOpConvInt8ToUint16: - case glslang::EOpConvInt8ToUint: - case glslang::EOpConvInt8ToUint64: - case glslang::EOpConvInt16ToUint8: - case glslang::EOpConvInt16ToUint: - case glslang::EOpConvInt16ToUint64: - case glslang::EOpConvIntToUint8: - case glslang::EOpConvIntToUint16: case glslang::EOpConvIntToUint64: - case glslang::EOpConvInt64ToUint8: - case glslang::EOpConvInt64ToUint16: case glslang::EOpConvInt64ToUint: - case glslang::EOpConvUint8ToInt16: - case glslang::EOpConvUint8ToInt: - case glslang::EOpConvUint8ToInt64: - case glslang::EOpConvUint16ToInt8: - case glslang::EOpConvUint16ToInt: - case glslang::EOpConvUint16ToInt64: - case glslang::EOpConvUintToInt8: - case glslang::EOpConvUintToInt16: - case glslang::EOpConvUintToInt64: - case glslang::EOpConvUint64ToInt8: - case glslang::EOpConvUint64ToInt16: case glslang::EOpConvUint64ToInt: + case glslang::EOpConvUintToInt64: // OpSConvert/OpUConvert + OpBitCast - operand = createIntWidthConversion(op, operand, vectorSize); + switch (op) { + case glslang::EOpConvIntToUint64: + convOp = spv::OpSConvert; + type = builder.makeIntType(64); + break; + case glslang::EOpConvInt64ToUint: + convOp = spv::OpSConvert; + type = builder.makeIntType(32); + break; + case glslang::EOpConvUint64ToInt: + convOp = spv::OpUConvert; + type = builder.makeUintType(32); + break; + case glslang::EOpConvUintToInt64: + convOp = spv::OpUConvert; + type = builder.makeUintType(64); + break; + default: + assert(0); + break; + } + + if (vectorSize > 0) + type = builder.makeVectorType(type, vectorSize); + + operand = builder.createUnaryOp(convOp, type, operand); if (builder.isInSpecConstCodeGenMode()) { // Build zero scalar or vector for OpIAdd. - switch(op) { - case glslang::EOpConvInt16ToUint8: - case glslang::EOpConvIntToUint8: - case glslang::EOpConvInt64ToUint8: - case glslang::EOpConvUint16ToInt8: - case glslang::EOpConvUintToInt8: - case glslang::EOpConvUint64ToInt8: - zero = builder.makeUint8Constant(0); - break; - case glslang::EOpConvInt8ToUint16: - case glslang::EOpConvIntToUint16: - case glslang::EOpConvInt64ToUint16: - case glslang::EOpConvUint8ToInt16: - case glslang::EOpConvUintToInt16: - case glslang::EOpConvUint64ToInt16: - zero = builder.makeUint16Constant(0); - break; - case glslang::EOpConvInt8ToUint: - case glslang::EOpConvInt16ToUint: - case glslang::EOpConvInt64ToUint: - case glslang::EOpConvUint8ToInt: - case glslang::EOpConvUint16ToInt: - case glslang::EOpConvUint64ToInt: - zero = builder.makeUintConstant(0); - break; - case glslang::EOpConvInt8ToUint64: - case glslang::EOpConvInt16ToUint64: - case glslang::EOpConvIntToUint64: - case glslang::EOpConvUint8ToInt64: - case glslang::EOpConvUint16ToInt64: - case glslang::EOpConvUintToInt64: - zero = builder.makeUint64Constant(0); - break; - default: - assert(false && "Default missing"); - break; - } + zero = (op == glslang::EOpConvIntToUint64 || + op == glslang::EOpConvUintToInt64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); zero = makeSmearedConstant(zero, vectorSize); // Use OpIAdd, instead of OpBitcast to do the conversion when // generating for OpSpecConstantOp instruction. @@ -5244,9 +4023,7 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora } else result = builder.createUnaryOp(convOp, destType, operand); - result = builder.setPrecision(result, decorations.precision); - builder.addDecoration(result, decorations.nonUniform); - return result; + return builder.setPrecision(result, precision); } spv::Id TGlslangToSpvTraverser::makeSmearedConstant(spv::Id constant, int vectorSize) @@ -5269,45 +4046,34 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv switch (op) { case glslang::EOpAtomicAdd: case glslang::EOpImageAtomicAdd: - case glslang::EOpAtomicCounterAdd: opCode = spv::OpAtomicIAdd; break; - case glslang::EOpAtomicCounterSubtract: - opCode = spv::OpAtomicISub; - break; case glslang::EOpAtomicMin: case glslang::EOpImageAtomicMin: - case glslang::EOpAtomicCounterMin: - opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ? spv::OpAtomicUMin : spv::OpAtomicSMin; + opCode = typeProxy == glslang::EbtUint ? spv::OpAtomicUMin : spv::OpAtomicSMin; break; case glslang::EOpAtomicMax: case glslang::EOpImageAtomicMax: - case glslang::EOpAtomicCounterMax: - opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ? spv::OpAtomicUMax : spv::OpAtomicSMax; + opCode = typeProxy == glslang::EbtUint ? spv::OpAtomicUMax : spv::OpAtomicSMax; break; case glslang::EOpAtomicAnd: case glslang::EOpImageAtomicAnd: - case glslang::EOpAtomicCounterAnd: opCode = spv::OpAtomicAnd; break; case glslang::EOpAtomicOr: case glslang::EOpImageAtomicOr: - case glslang::EOpAtomicCounterOr: opCode = spv::OpAtomicOr; break; case glslang::EOpAtomicXor: case glslang::EOpImageAtomicXor: - case glslang::EOpAtomicCounterXor: opCode = spv::OpAtomicXor; break; case glslang::EOpAtomicExchange: case glslang::EOpImageAtomicExchange: - case glslang::EOpAtomicCounterExchange: opCode = spv::OpAtomicExchange; break; case glslang::EOpAtomicCompSwap: case glslang::EOpImageAtomicCompSwap: - case glslang::EOpAtomicCounterCompSwap: opCode = spv::OpAtomicCompareExchange; break; case glslang::EOpAtomicCounterIncrement: @@ -5324,15 +4090,11 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv break; } - if (typeProxy == glslang::EbtInt64 || typeProxy == glslang::EbtUint64) - builder.addCapability(spv::CapabilityInt64Atomics); - // Sort out the operands // - mapping from glslang -> SPV // - there are extra SPV operands with no glslang source // - compare-exchange swaps the value and comparator // - compare-exchange has an extra memory semantics - // - EOpAtomicCounterDecrement needs a post decrement std::vector spvAtomicOperands; // hold the spv operands auto opIt = operands.begin(); // walk the glslang operands spvAtomicOperands.push_back(*(opIt++)); @@ -5351,83 +4113,37 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv for (; opIt != operands.end(); ++opIt) spvAtomicOperands.push_back(*opIt); - spv::Id resultId = builder.createOp(opCode, typeId, spvAtomicOperands); - - // GLSL and HLSL atomic-counter decrement return post-decrement value, - // while SPIR-V returns pre-decrement value. Translate between these semantics. - if (op == glslang::EOpAtomicCounterDecrement) - resultId = builder.createBinOp(spv::OpISub, typeId, resultId, builder.makeIntConstant(1)); - - return resultId; + return builder.createOp(opCode, typeId, spvAtomicOperands); } // Create group invocation operations. spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { - bool isUnsigned = isTypeUnsignedInt(typeProxy); - bool isFloat = isTypeFloat(typeProxy); +#ifdef AMD_EXTENSIONS + bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#endif spv::Op opCode = spv::OpNop; - std::vector spvGroupOperands; - spv::GroupOperation groupOperation = spv::GroupOperationMax; - if (op == glslang::EOpBallot || op == glslang::EOpReadFirstInvocation || - op == glslang::EOpReadInvocation) { + std::vector spvGroupOperands; + if (op == glslang::EOpBallot || op == glslang::EOpReadFirstInvocation) { builder.addExtension(spv::E_SPV_KHR_shader_ballot); builder.addCapability(spv::CapabilitySubgroupBallotKHR); - } else if (op == glslang::EOpAnyInvocation || - op == glslang::EOpAllInvocations || - op == glslang::EOpAllInvocationsEqual) { - builder.addExtension(spv::E_SPV_KHR_subgroup_vote); - builder.addCapability(spv::CapabilitySubgroupVoteKHR); } else { builder.addCapability(spv::CapabilityGroups); #ifdef AMD_EXTENSIONS if (op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || - op == glslang::EOpAddInvocationsNonUniform || - op == glslang::EOpMinInvocationsInclusiveScanNonUniform || - op == glslang::EOpMaxInvocationsInclusiveScanNonUniform || - op == glslang::EOpAddInvocationsInclusiveScanNonUniform || - op == glslang::EOpMinInvocationsExclusiveScanNonUniform || - op == glslang::EOpMaxInvocationsExclusiveScanNonUniform || - op == glslang::EOpAddInvocationsExclusiveScanNonUniform) + op == glslang::EOpAddInvocationsNonUniform) builder.addExtension(spv::E_SPV_AMD_shader_ballot); #endif spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); #ifdef AMD_EXTENSIONS - switch (op) { - case glslang::EOpMinInvocations: - case glslang::EOpMaxInvocations: - case glslang::EOpAddInvocations: - case glslang::EOpMinInvocationsNonUniform: - case glslang::EOpMaxInvocationsNonUniform: - case glslang::EOpAddInvocationsNonUniform: - groupOperation = spv::GroupOperationReduce; - spvGroupOperands.push_back(groupOperation); - break; - case glslang::EOpMinInvocationsInclusiveScan: - case glslang::EOpMaxInvocationsInclusiveScan: - case glslang::EOpAddInvocationsInclusiveScan: - case glslang::EOpMinInvocationsInclusiveScanNonUniform: - case glslang::EOpMaxInvocationsInclusiveScanNonUniform: - case glslang::EOpAddInvocationsInclusiveScanNonUniform: - groupOperation = spv::GroupOperationInclusiveScan; - spvGroupOperands.push_back(groupOperation); - break; - case glslang::EOpMinInvocationsExclusiveScan: - case glslang::EOpMaxInvocationsExclusiveScan: - case glslang::EOpAddInvocationsExclusiveScan: - case glslang::EOpMinInvocationsExclusiveScanNonUniform: - case glslang::EOpMaxInvocationsExclusiveScanNonUniform: - case glslang::EOpAddInvocationsExclusiveScanNonUniform: - groupOperation = spv::GroupOperationExclusiveScan; - spvGroupOperands.push_back(groupOperation); - break; - default: - break; - } + if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations || + op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) + spvGroupOperands.push_back(spv::GroupOperationReduce); #endif } @@ -5436,18 +4152,24 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op switch (op) { case glslang::EOpAnyInvocation: - opCode = spv::OpSubgroupAnyKHR; + opCode = spv::OpGroupAny; break; case glslang::EOpAllInvocations: - opCode = spv::OpSubgroupAllKHR; + opCode = spv::OpGroupAll; break; case glslang::EOpAllInvocationsEqual: - opCode = spv::OpSubgroupAllEqualKHR; - break; + { + spv::Id groupAll = builder.createOp(spv::OpGroupAll, typeId, spvGroupOperands); + spv::Id groupAny = builder.createOp(spv::OpGroupAny, typeId, spvGroupOperands); + + return builder.createBinOp(spv::OpLogicalOr, typeId, groupAll, + builder.createUnaryOp(spv::OpLogicalNot, typeId, groupAny)); + } + case glslang::EOpReadInvocation: - opCode = spv::OpSubgroupReadInvocationKHR; + opCode = spv::OpGroupBroadcast; if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); + return CreateInvocationsVectorOperation(opCode, typeId, operands); break; case glslang::EOpReadFirstInvocation: opCode = spv::OpSubgroupFirstInvocationKHR; @@ -5477,15 +4199,7 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op case glslang::EOpMinInvocations: case glslang::EOpMaxInvocations: case glslang::EOpAddInvocations: - case glslang::EOpMinInvocationsInclusiveScan: - case glslang::EOpMaxInvocationsInclusiveScan: - case glslang::EOpAddInvocationsInclusiveScan: - case glslang::EOpMinInvocationsExclusiveScan: - case glslang::EOpMaxInvocationsExclusiveScan: - case glslang::EOpAddInvocationsExclusiveScan: - if (op == glslang::EOpMinInvocations || - op == glslang::EOpMinInvocationsInclusiveScan || - op == glslang::EOpMinInvocationsExclusiveScan) { + if (op == glslang::EOpMinInvocations) { if (isFloat) opCode = spv::OpGroupFMin; else { @@ -5494,9 +4208,7 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op else opCode = spv::OpGroupSMin; } - } else if (op == glslang::EOpMaxInvocations || - op == glslang::EOpMaxInvocationsInclusiveScan || - op == glslang::EOpMaxInvocationsExclusiveScan) { + } else if (op == glslang::EOpMaxInvocations) { if (isFloat) opCode = spv::OpGroupFMax; else { @@ -5513,21 +4225,13 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); + return CreateInvocationsVectorOperation(opCode, typeId, operands); break; case glslang::EOpMinInvocationsNonUniform: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: - case glslang::EOpMinInvocationsInclusiveScanNonUniform: - case glslang::EOpMaxInvocationsInclusiveScanNonUniform: - case glslang::EOpAddInvocationsInclusiveScanNonUniform: - case glslang::EOpMinInvocationsExclusiveScanNonUniform: - case glslang::EOpMaxInvocationsExclusiveScanNonUniform: - case glslang::EOpAddInvocationsExclusiveScanNonUniform: - if (op == glslang::EOpMinInvocationsNonUniform || - op == glslang::EOpMinInvocationsInclusiveScanNonUniform || - op == glslang::EOpMinInvocationsExclusiveScanNonUniform) { + if (op == glslang::EOpMinInvocationsNonUniform) { if (isFloat) opCode = spv::OpGroupFMinNonUniformAMD; else { @@ -5537,9 +4241,7 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op opCode = spv::OpGroupSMinNonUniformAMD; } } - else if (op == glslang::EOpMaxInvocationsNonUniform || - op == glslang::EOpMaxInvocationsInclusiveScanNonUniform || - op == glslang::EOpMaxInvocationsExclusiveScanNonUniform) { + else if (op == glslang::EOpMaxInvocationsNonUniform) { if (isFloat) opCode = spv::OpGroupFMaxNonUniformAMD; else { @@ -5557,7 +4259,7 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); + return CreateInvocationsVectorOperation(opCode, typeId, operands); break; #endif @@ -5571,21 +4273,19 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } // Create group invocation operations on a vector -spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, spv::Id typeId, std::vector& operands) +spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector& operands) { #ifdef AMD_EXTENSIONS assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast || - op == spv::OpSubgroupReadInvocationKHR || op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD || op == spv::OpGroupSMinNonUniformAMD || op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD || op == spv::OpGroupSMaxNonUniformAMD || op == spv::OpGroupFAddNonUniformAMD || op == spv::OpGroupIAddNonUniformAMD); #else assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || - op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast || - op == spv::OpSubgroupReadInvocationKHR); + op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast); #endif // Handle group invocation operations scalar by scalar. @@ -5605,17 +4305,14 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv std::vector indexes; indexes.push_back(comp); spv::Id scalar = builder.createCompositeExtract(operands[0], scalarType, indexes); + std::vector spvGroupOperands; - if (op == spv::OpSubgroupReadInvocationKHR) { - spvGroupOperands.push_back(scalar); - spvGroupOperands.push_back(operands[1]); - } else if (op == spv::OpGroupBroadcast) { - spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + if (op == spv::OpGroupBroadcast) { spvGroupOperands.push_back(scalar); spvGroupOperands.push_back(operands[1]); } else { - spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); - spvGroupOperands.push_back(groupOperation); + spvGroupOperands.push_back(spv::GroupOperationReduce); spvGroupOperands.push_back(scalar); } @@ -5626,353 +4323,14 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv return builder.createCompositeConstruct(typeId, results); } -// Create subgroup invocation operations. -spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) -{ - // Add the required capabilities. - switch (op) { - case glslang::EOpSubgroupElect: - builder.addCapability(spv::CapabilityGroupNonUniform); - break; - case glslang::EOpSubgroupAll: - case glslang::EOpSubgroupAny: - case glslang::EOpSubgroupAllEqual: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformVote); - break; - case glslang::EOpSubgroupBroadcast: - case glslang::EOpSubgroupBroadcastFirst: - case glslang::EOpSubgroupBallot: - case glslang::EOpSubgroupInverseBallot: - case glslang::EOpSubgroupBallotBitExtract: - case glslang::EOpSubgroupBallotBitCount: - case glslang::EOpSubgroupBallotInclusiveBitCount: - case glslang::EOpSubgroupBallotExclusiveBitCount: - case glslang::EOpSubgroupBallotFindLSB: - case glslang::EOpSubgroupBallotFindMSB: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformBallot); - break; - case glslang::EOpSubgroupShuffle: - case glslang::EOpSubgroupShuffleXor: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformShuffle); - break; - case glslang::EOpSubgroupShuffleUp: - case glslang::EOpSubgroupShuffleDown: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformShuffleRelative); - break; - case glslang::EOpSubgroupAdd: - case glslang::EOpSubgroupMul: - case glslang::EOpSubgroupMin: - case glslang::EOpSubgroupMax: - case glslang::EOpSubgroupAnd: - case glslang::EOpSubgroupOr: - case glslang::EOpSubgroupXor: - case glslang::EOpSubgroupInclusiveAdd: - case glslang::EOpSubgroupInclusiveMul: - case glslang::EOpSubgroupInclusiveMin: - case glslang::EOpSubgroupInclusiveMax: - case glslang::EOpSubgroupInclusiveAnd: - case glslang::EOpSubgroupInclusiveOr: - case glslang::EOpSubgroupInclusiveXor: - case glslang::EOpSubgroupExclusiveAdd: - case glslang::EOpSubgroupExclusiveMul: - case glslang::EOpSubgroupExclusiveMin: - case glslang::EOpSubgroupExclusiveMax: - case glslang::EOpSubgroupExclusiveAnd: - case glslang::EOpSubgroupExclusiveOr: - case glslang::EOpSubgroupExclusiveXor: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformArithmetic); - break; - case glslang::EOpSubgroupClusteredAdd: - case glslang::EOpSubgroupClusteredMul: - case glslang::EOpSubgroupClusteredMin: - case glslang::EOpSubgroupClusteredMax: - case glslang::EOpSubgroupClusteredAnd: - case glslang::EOpSubgroupClusteredOr: - case glslang::EOpSubgroupClusteredXor: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformClustered); - break; - case glslang::EOpSubgroupQuadBroadcast: - case glslang::EOpSubgroupQuadSwapHorizontal: - case glslang::EOpSubgroupQuadSwapVertical: - case glslang::EOpSubgroupQuadSwapDiagonal: - builder.addCapability(spv::CapabilityGroupNonUniform); - builder.addCapability(spv::CapabilityGroupNonUniformQuad); - break; -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedAdd: - case glslang::EOpSubgroupPartitionedMul: - case glslang::EOpSubgroupPartitionedMin: - case glslang::EOpSubgroupPartitionedMax: - case glslang::EOpSubgroupPartitionedAnd: - case glslang::EOpSubgroupPartitionedOr: - case glslang::EOpSubgroupPartitionedXor: - case glslang::EOpSubgroupPartitionedInclusiveAdd: - case glslang::EOpSubgroupPartitionedInclusiveMul: - case glslang::EOpSubgroupPartitionedInclusiveMin: - case glslang::EOpSubgroupPartitionedInclusiveMax: - case glslang::EOpSubgroupPartitionedInclusiveAnd: - case glslang::EOpSubgroupPartitionedInclusiveOr: - case glslang::EOpSubgroupPartitionedInclusiveXor: - case glslang::EOpSubgroupPartitionedExclusiveAdd: - case glslang::EOpSubgroupPartitionedExclusiveMul: - case glslang::EOpSubgroupPartitionedExclusiveMin: - case glslang::EOpSubgroupPartitionedExclusiveMax: - case glslang::EOpSubgroupPartitionedExclusiveAnd: - case glslang::EOpSubgroupPartitionedExclusiveOr: - case glslang::EOpSubgroupPartitionedExclusiveXor: - builder.addExtension(spv::E_SPV_NV_shader_subgroup_partitioned); - builder.addCapability(spv::CapabilityGroupNonUniformPartitionedNV); - break; -#endif - default: assert(0 && "Unhandled subgroup operation!"); - } - - const bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; - const bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; - const bool isBool = typeProxy == glslang::EbtBool; - - spv::Op opCode = spv::OpNop; - - // Figure out which opcode to use. - switch (op) { - case glslang::EOpSubgroupElect: opCode = spv::OpGroupNonUniformElect; break; - case glslang::EOpSubgroupAll: opCode = spv::OpGroupNonUniformAll; break; - case glslang::EOpSubgroupAny: opCode = spv::OpGroupNonUniformAny; break; - case glslang::EOpSubgroupAllEqual: opCode = spv::OpGroupNonUniformAllEqual; break; - case glslang::EOpSubgroupBroadcast: opCode = spv::OpGroupNonUniformBroadcast; break; - case glslang::EOpSubgroupBroadcastFirst: opCode = spv::OpGroupNonUniformBroadcastFirst; break; - case glslang::EOpSubgroupBallot: opCode = spv::OpGroupNonUniformBallot; break; - case glslang::EOpSubgroupInverseBallot: opCode = spv::OpGroupNonUniformInverseBallot; break; - case glslang::EOpSubgroupBallotBitExtract: opCode = spv::OpGroupNonUniformBallotBitExtract; break; - case glslang::EOpSubgroupBallotBitCount: - case glslang::EOpSubgroupBallotInclusiveBitCount: - case glslang::EOpSubgroupBallotExclusiveBitCount: opCode = spv::OpGroupNonUniformBallotBitCount; break; - case glslang::EOpSubgroupBallotFindLSB: opCode = spv::OpGroupNonUniformBallotFindLSB; break; - case glslang::EOpSubgroupBallotFindMSB: opCode = spv::OpGroupNonUniformBallotFindMSB; break; - case glslang::EOpSubgroupShuffle: opCode = spv::OpGroupNonUniformShuffle; break; - case glslang::EOpSubgroupShuffleXor: opCode = spv::OpGroupNonUniformShuffleXor; break; - case glslang::EOpSubgroupShuffleUp: opCode = spv::OpGroupNonUniformShuffleUp; break; - case glslang::EOpSubgroupShuffleDown: opCode = spv::OpGroupNonUniformShuffleDown; break; - case glslang::EOpSubgroupAdd: - case glslang::EOpSubgroupInclusiveAdd: - case glslang::EOpSubgroupExclusiveAdd: - case glslang::EOpSubgroupClusteredAdd: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedAdd: - case glslang::EOpSubgroupPartitionedInclusiveAdd: - case glslang::EOpSubgroupPartitionedExclusiveAdd: -#endif - if (isFloat) { - opCode = spv::OpGroupNonUniformFAdd; - } else { - opCode = spv::OpGroupNonUniformIAdd; - } - break; - case glslang::EOpSubgroupMul: - case glslang::EOpSubgroupInclusiveMul: - case glslang::EOpSubgroupExclusiveMul: - case glslang::EOpSubgroupClusteredMul: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedMul: - case glslang::EOpSubgroupPartitionedInclusiveMul: - case glslang::EOpSubgroupPartitionedExclusiveMul: -#endif - if (isFloat) { - opCode = spv::OpGroupNonUniformFMul; - } else { - opCode = spv::OpGroupNonUniformIMul; - } - break; - case glslang::EOpSubgroupMin: - case glslang::EOpSubgroupInclusiveMin: - case glslang::EOpSubgroupExclusiveMin: - case glslang::EOpSubgroupClusteredMin: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedMin: - case glslang::EOpSubgroupPartitionedInclusiveMin: - case glslang::EOpSubgroupPartitionedExclusiveMin: -#endif - if (isFloat) { - opCode = spv::OpGroupNonUniformFMin; - } else if (isUnsigned) { - opCode = spv::OpGroupNonUniformUMin; - } else { - opCode = spv::OpGroupNonUniformSMin; - } - break; - case glslang::EOpSubgroupMax: - case glslang::EOpSubgroupInclusiveMax: - case glslang::EOpSubgroupExclusiveMax: - case glslang::EOpSubgroupClusteredMax: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedMax: - case glslang::EOpSubgroupPartitionedInclusiveMax: - case glslang::EOpSubgroupPartitionedExclusiveMax: -#endif - if (isFloat) { - opCode = spv::OpGroupNonUniformFMax; - } else if (isUnsigned) { - opCode = spv::OpGroupNonUniformUMax; - } else { - opCode = spv::OpGroupNonUniformSMax; - } - break; - case glslang::EOpSubgroupAnd: - case glslang::EOpSubgroupInclusiveAnd: - case glslang::EOpSubgroupExclusiveAnd: - case glslang::EOpSubgroupClusteredAnd: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedAnd: - case glslang::EOpSubgroupPartitionedInclusiveAnd: - case glslang::EOpSubgroupPartitionedExclusiveAnd: -#endif - if (isBool) { - opCode = spv::OpGroupNonUniformLogicalAnd; - } else { - opCode = spv::OpGroupNonUniformBitwiseAnd; - } - break; - case glslang::EOpSubgroupOr: - case glslang::EOpSubgroupInclusiveOr: - case glslang::EOpSubgroupExclusiveOr: - case glslang::EOpSubgroupClusteredOr: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedOr: - case glslang::EOpSubgroupPartitionedInclusiveOr: - case glslang::EOpSubgroupPartitionedExclusiveOr: -#endif - if (isBool) { - opCode = spv::OpGroupNonUniformLogicalOr; - } else { - opCode = spv::OpGroupNonUniformBitwiseOr; - } - break; - case glslang::EOpSubgroupXor: - case glslang::EOpSubgroupInclusiveXor: - case glslang::EOpSubgroupExclusiveXor: - case glslang::EOpSubgroupClusteredXor: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedXor: - case glslang::EOpSubgroupPartitionedInclusiveXor: - case glslang::EOpSubgroupPartitionedExclusiveXor: -#endif - if (isBool) { - opCode = spv::OpGroupNonUniformLogicalXor; - } else { - opCode = spv::OpGroupNonUniformBitwiseXor; - } - break; - case glslang::EOpSubgroupQuadBroadcast: opCode = spv::OpGroupNonUniformQuadBroadcast; break; - case glslang::EOpSubgroupQuadSwapHorizontal: - case glslang::EOpSubgroupQuadSwapVertical: - case glslang::EOpSubgroupQuadSwapDiagonal: opCode = spv::OpGroupNonUniformQuadSwap; break; - default: assert(0 && "Unhandled subgroup operation!"); - } - - std::vector spvGroupOperands; - - // Every operation begins with the Execution Scope operand. - spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); - - // Next, for all operations that use a Group Operation, push that as an operand. - switch (op) { - default: break; - case glslang::EOpSubgroupBallotBitCount: - case glslang::EOpSubgroupAdd: - case glslang::EOpSubgroupMul: - case glslang::EOpSubgroupMin: - case glslang::EOpSubgroupMax: - case glslang::EOpSubgroupAnd: - case glslang::EOpSubgroupOr: - case glslang::EOpSubgroupXor: - spvGroupOperands.push_back(spv::GroupOperationReduce); - break; - case glslang::EOpSubgroupBallotInclusiveBitCount: - case glslang::EOpSubgroupInclusiveAdd: - case glslang::EOpSubgroupInclusiveMul: - case glslang::EOpSubgroupInclusiveMin: - case glslang::EOpSubgroupInclusiveMax: - case glslang::EOpSubgroupInclusiveAnd: - case glslang::EOpSubgroupInclusiveOr: - case glslang::EOpSubgroupInclusiveXor: - spvGroupOperands.push_back(spv::GroupOperationInclusiveScan); - break; - case glslang::EOpSubgroupBallotExclusiveBitCount: - case glslang::EOpSubgroupExclusiveAdd: - case glslang::EOpSubgroupExclusiveMul: - case glslang::EOpSubgroupExclusiveMin: - case glslang::EOpSubgroupExclusiveMax: - case glslang::EOpSubgroupExclusiveAnd: - case glslang::EOpSubgroupExclusiveOr: - case glslang::EOpSubgroupExclusiveXor: - spvGroupOperands.push_back(spv::GroupOperationExclusiveScan); - break; - case glslang::EOpSubgroupClusteredAdd: - case glslang::EOpSubgroupClusteredMul: - case glslang::EOpSubgroupClusteredMin: - case glslang::EOpSubgroupClusteredMax: - case glslang::EOpSubgroupClusteredAnd: - case glslang::EOpSubgroupClusteredOr: - case glslang::EOpSubgroupClusteredXor: - spvGroupOperands.push_back(spv::GroupOperationClusteredReduce); - break; -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedAdd: - case glslang::EOpSubgroupPartitionedMul: - case glslang::EOpSubgroupPartitionedMin: - case glslang::EOpSubgroupPartitionedMax: - case glslang::EOpSubgroupPartitionedAnd: - case glslang::EOpSubgroupPartitionedOr: - case glslang::EOpSubgroupPartitionedXor: - spvGroupOperands.push_back(spv::GroupOperationPartitionedReduceNV); - break; - case glslang::EOpSubgroupPartitionedInclusiveAdd: - case glslang::EOpSubgroupPartitionedInclusiveMul: - case glslang::EOpSubgroupPartitionedInclusiveMin: - case glslang::EOpSubgroupPartitionedInclusiveMax: - case glslang::EOpSubgroupPartitionedInclusiveAnd: - case glslang::EOpSubgroupPartitionedInclusiveOr: - case glslang::EOpSubgroupPartitionedInclusiveXor: - spvGroupOperands.push_back(spv::GroupOperationPartitionedInclusiveScanNV); - break; - case glslang::EOpSubgroupPartitionedExclusiveAdd: - case glslang::EOpSubgroupPartitionedExclusiveMul: - case glslang::EOpSubgroupPartitionedExclusiveMin: - case glslang::EOpSubgroupPartitionedExclusiveMax: - case glslang::EOpSubgroupPartitionedExclusiveAnd: - case glslang::EOpSubgroupPartitionedExclusiveOr: - case glslang::EOpSubgroupPartitionedExclusiveXor: - spvGroupOperands.push_back(spv::GroupOperationPartitionedExclusiveScanNV); - break; -#endif - } - - // Push back the operands next. - for (auto opIt : operands) { - spvGroupOperands.push_back(opIt); - } - - // Some opcodes have additional operands. - switch (op) { - default: break; - case glslang::EOpSubgroupQuadSwapHorizontal: spvGroupOperands.push_back(builder.makeUintConstant(0)); break; - case glslang::EOpSubgroupQuadSwapVertical: spvGroupOperands.push_back(builder.makeUintConstant(1)); break; - case glslang::EOpSubgroupQuadSwapDiagonal: spvGroupOperands.push_back(builder.makeUintConstant(2)); break; - } - - return builder.createOp(opCode, typeId, spvGroupOperands); -} - spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { - bool isUnsigned = isTypeUnsignedInt(typeProxy); - bool isFloat = isTypeFloat(typeProxy); + bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif spv::Op opCode = spv::OpNop; int extBuiltins = -1; @@ -5981,9 +4339,6 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: spv::Id typeId0 = 0; if (consumedOperands > 0) typeId0 = builder.getTypeId(operands[0]); - spv::Id typeId1 = 0; - if (consumedOperands > 1) - typeId1 = builder.getTypeId(operands[1]); spv::Id frexpIntType = 0; switch (op) { @@ -6064,18 +4419,10 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: libCall = spv::GLSLstd450Refract; break; case glslang::EOpInterpolateAtSample: -#ifdef AMD_EXTENSIONS - if (typeProxy == glslang::EbtFloat16) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); -#endif builder.addCapability(spv::CapabilityInterpolationFunction); libCall = spv::GLSLstd450InterpolateAtSample; break; case glslang::EOpInterpolateAtOffset: -#ifdef AMD_EXTENSIONS - if (typeProxy == glslang::EbtFloat16) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); -#endif builder.addCapability(spv::CapabilityInterpolationFunction); libCall = spv::GLSLstd450InterpolateAtOffset; break; @@ -6113,23 +4460,13 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: libCall = spv::GLSLstd450Fma; break; case glslang::EOpFrexp: - { - libCall = spv::GLSLstd450FrexpStruct; - assert(builder.isPointerType(typeId1)); - typeId1 = builder.getContainedTypeId(typeId1); - int width = builder.getScalarTypeWidth(typeId1); -#ifdef AMD_EXTENSIONS - if (width == 16) - // Using 16-bit exp operand, enable extension SPV_AMD_gpu_shader_int16 - builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16); -#endif - if (builder.getNumComponents(operands[0]) == 1) - frexpIntType = builder.makeIntegerType(width, true); - else - frexpIntType = builder.makeVectorType(builder.makeIntegerType(width, true), builder.getNumComponents(operands[0])); - typeId = builder.makeStructResultType(typeId0, frexpIntType); - consumedOperands = 1; - } + libCall = spv::GLSLstd450FrexpStruct; + if (builder.getNumComponents(operands[0]) == 1) + frexpIntType = builder.makeIntegerType(32, true); + else + frexpIntType = builder.makeVectorType(builder.makeIntegerType(32, true), builder.getNumComponents(operands[0])); + typeId = builder.makeStructResultType(typeId0, frexpIntType); + consumedOperands = 1; break; case glslang::EOpLdexp: libCall = spv::GLSLstd450Ldexp; @@ -6138,45 +4475,6 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: case glslang::EOpReadInvocation: return createInvocationsOperation(op, typeId, operands, typeProxy); - case glslang::EOpSubgroupBroadcast: - case glslang::EOpSubgroupBallotBitExtract: - case glslang::EOpSubgroupShuffle: - case glslang::EOpSubgroupShuffleXor: - case glslang::EOpSubgroupShuffleUp: - case glslang::EOpSubgroupShuffleDown: - case glslang::EOpSubgroupClusteredAdd: - case glslang::EOpSubgroupClusteredMul: - case glslang::EOpSubgroupClusteredMin: - case glslang::EOpSubgroupClusteredMax: - case glslang::EOpSubgroupClusteredAnd: - case glslang::EOpSubgroupClusteredOr: - case glslang::EOpSubgroupClusteredXor: - case glslang::EOpSubgroupQuadBroadcast: -#ifdef NV_EXTENSIONS - case glslang::EOpSubgroupPartitionedAdd: - case glslang::EOpSubgroupPartitionedMul: - case glslang::EOpSubgroupPartitionedMin: - case glslang::EOpSubgroupPartitionedMax: - case glslang::EOpSubgroupPartitionedAnd: - case glslang::EOpSubgroupPartitionedOr: - case glslang::EOpSubgroupPartitionedXor: - case glslang::EOpSubgroupPartitionedInclusiveAdd: - case glslang::EOpSubgroupPartitionedInclusiveMul: - case glslang::EOpSubgroupPartitionedInclusiveMin: - case glslang::EOpSubgroupPartitionedInclusiveMax: - case glslang::EOpSubgroupPartitionedInclusiveAnd: - case glslang::EOpSubgroupPartitionedInclusiveOr: - case glslang::EOpSubgroupPartitionedInclusiveXor: - case glslang::EOpSubgroupPartitionedExclusiveAdd: - case glslang::EOpSubgroupPartitionedExclusiveMul: - case glslang::EOpSubgroupPartitionedExclusiveMin: - case glslang::EOpSubgroupPartitionedExclusiveMax: - case glslang::EOpSubgroupPartitionedExclusiveAnd: - case glslang::EOpSubgroupPartitionedExclusiveOr: - case glslang::EOpSubgroupPartitionedExclusiveXor: -#endif - return createSubgroupOperation(op, typeId, operands, typeProxy); - #ifdef AMD_EXTENSIONS case glslang::EOpSwizzleInvocations: extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); @@ -6226,8 +4524,6 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: break; case glslang::EOpInterpolateAtVertex: - if (typeProxy == glslang::EbtFloat16) - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_explicit_vertex_parameter); libCall = spv::InterpolateAtVertexAMD; break; @@ -6278,18 +4574,9 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: builder.createStore(builder.createCompositeExtract(id, typeId0, 1), operands[2]); break; case glslang::EOpFrexp: - { - assert(operands.size() == 2); - if (builder.isFloatType(builder.getScalarTypeId(typeId1))) { - // "exp" is floating-point type (from HLSL intrinsic) - spv::Id member1 = builder.createCompositeExtract(id, frexpIntType, 1); - member1 = builder.createUnaryOp(spv::OpConvertSToF, typeId1, member1); - builder.createStore(member1, operands[1]); - } else - // "exp" is integer type (from GLSL built-in function) - builder.createStore(builder.createCompositeExtract(id, frexpIntType, 1), operands[1]); - id = builder.createCompositeExtract(id, typeId0, 0); - } + assert(operands.size() == 2); + builder.createStore(builder.createCompositeExtract(id, frexpIntType, 1), operands[1]); + id = builder.createCompositeExtract(id, typeId0, 0); break; default: break; @@ -6311,90 +4598,41 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.createNoResultOp(spv::OpEndPrimitive); return 0; case glslang::EOpBarrier: - if (glslangIntermediate->getStage() == EShLangTessControl) { - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeInvocation, spv::MemorySemanticsMaskNone); - // TODO: prefer the following, when available: - // builder.createControlBarrier(spv::ScopePatch, spv::ScopePatch, - // spv::MemorySemanticsPatchMask | - // spv::MemorySemanticsAcquireReleaseMask); - } else { - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, - spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - } + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsMaskNone); return 0; case glslang::EOpMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory); return 0; case glslang::EOpMemoryBarrierAtomicCounter: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask); return 0; case glslang::EOpMemoryBarrierBuffer: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask); return 0; case glslang::EOpMemoryBarrierImage: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask); return 0; case glslang::EOpMemoryBarrierShared: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupMemoryMask); return 0; case glslang::EOpGroupMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask); return 0; case glslang::EOpAllMemoryBarrierWithGroupSync: - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, - spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); + // Control barrier with non-"None" semantic is also a memory barrier. + builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsAllMemory); return 0; - case glslang::EOpDeviceMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask | - spv::MemorySemanticsImageMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return 0; - case glslang::EOpDeviceMemoryBarrierWithGroupSync: - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask | - spv::MemorySemanticsImageMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); + case glslang::EOpGroupMemoryBarrierWithGroupSync: + // Control barrier with non-"None" semantic is also a memory barrier. + builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask); return 0; case glslang::EOpWorkgroupMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); + builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask); return 0; case glslang::EOpWorkgroupMemoryBarrierWithGroupSync: - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, - spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); + // Control barrier with non-"None" semantic is also a memory barrier. + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask); return 0; - case glslang::EOpSubgroupBarrier: - builder.createControlBarrier(spv::ScopeSubgroup, spv::ScopeSubgroup, spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); - return spv::NoResult; - case glslang::EOpSubgroupMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsAllMemory | - spv::MemorySemanticsAcquireReleaseMask); - return spv::NoResult; - case glslang::EOpSubgroupMemoryBarrierBuffer: - builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsUniformMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return spv::NoResult; - case glslang::EOpSubgroupMemoryBarrierImage: - builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsImageMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return spv::NoResult; - case glslang::EOpSubgroupMemoryBarrierShared: - builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsWorkgroupMemoryMask | - spv::MemorySemanticsAcquireReleaseMask); - return spv::NoResult; - case glslang::EOpSubgroupElect: { - std::vector operands; - return createSubgroupOperation(op, typeId, operands, glslang::EbtVoid); - } #ifdef AMD_EXTENSIONS case glslang::EOpTime: { @@ -6423,15 +4661,24 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol symbolValues[symbol->getId()] = id; if (symbol->getBasicType() != glslang::EbtBlock) { - builder.addDecoration(id, TranslatePrecisionDecoration(symbol->getType())); - builder.addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier())); - builder.addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier())); + addDecoration(id, TranslatePrecisionDecoration(symbol->getType())); + addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier())); + addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier())); if (symbol->getType().getQualifier().hasSpecConstantId()) - builder.addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId); + addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId); if (symbol->getQualifier().hasIndex()) builder.addDecoration(id, spv::DecorationIndex, symbol->getQualifier().layoutIndex); if (symbol->getQualifier().hasComponent()) builder.addDecoration(id, spv::DecorationComponent, symbol->getQualifier().layoutComponent); + if (glslangIntermediate->getXfbMode()) { + builder.addCapability(spv::CapabilityTransformFeedback); + if (symbol->getQualifier().hasXfbStride()) + builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride); + if (symbol->getQualifier().hasXfbBuffer()) + builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer); + if (symbol->getQualifier().hasXfbOffset()) + builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset); + } // atomic counters use this: if (symbol->getQualifier().hasOffset()) builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutOffset); @@ -6439,7 +4686,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol if (symbol->getQualifier().hasLocation()) builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation); - builder.addDecoration(id, TranslateInvariantDecoration(symbol->getType().getQualifier())); + addDecoration(id, TranslateInvariantDecoration(symbol->getType().getQualifier())); if (symbol->getQualifier().hasStream() && glslangIntermediate->isMultiStream()) { builder.addCapability(spv::CapabilityGeometryStreams); builder.addDecoration(id, spv::DecorationStream, symbol->getQualifier().layoutStream); @@ -6458,75 +4705,53 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol builder.addCapability(spv::CapabilityTransformFeedback); if (symbol->getQualifier().hasXfbStride()) builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride); - if (symbol->getQualifier().hasXfbBuffer()) { + if (symbol->getQualifier().hasXfbBuffer()) builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer); - unsigned stride = glslangIntermediate->getXfbStride(symbol->getQualifier().layoutXfbBuffer); - if (stride != glslang::TQualifier::layoutXfbStrideEnd) - builder.addDecoration(id, spv::DecorationXfbStride, stride); - } - if (symbol->getQualifier().hasXfbOffset()) - builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset); } if (symbol->getType().isImage()) { std::vector memory; TranslateMemoryDecoration(symbol->getType().getQualifier(), memory); for (unsigned int i = 0; i < memory.size(); ++i) - builder.addDecoration(id, memory[i]); + addDecoration(id, memory[i]); } // built-in variable decorations spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn, false); if (builtIn != spv::BuiltInMax) - builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn); - - // nonuniform - builder.addDecoration(id, TranslateNonUniformDecoration(symbol->getType().getQualifier())); - -#ifdef NV_EXTENSIONS - if (builtIn == spv::BuiltInSampleMask) { - spv::Decoration decoration; - // GL_NV_sample_mask_override_coverage extension - if (glslangIntermediate->getLayoutOverrideCoverage()) - decoration = (spv::Decoration)spv::DecorationOverrideCoverageNV; - else - decoration = (spv::Decoration)spv::DecorationMax; - builder.addDecoration(id, decoration); - if (decoration != spv::DecorationMax) { - builder.addExtension(spv::E_SPV_NV_sample_mask_override_coverage); - } - } - else if (builtIn == spv::BuiltInLayer) { - // SPV_NV_viewport_array2 extension - if (symbol->getQualifier().layoutViewportRelative) { - builder.addDecoration(id, (spv::Decoration)spv::DecorationViewportRelativeNV); - builder.addCapability(spv::CapabilityShaderViewportMaskNV); - builder.addExtension(spv::E_SPV_NV_viewport_array2); - } - if (symbol->getQualifier().layoutSecondaryViewportRelativeOffset != -2048) { - builder.addDecoration(id, (spv::Decoration)spv::DecorationSecondaryViewportRelativeNV, - symbol->getQualifier().layoutSecondaryViewportRelativeOffset); - builder.addCapability(spv::CapabilityShaderStereoViewNV); - builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); - } - } - - if (symbol->getQualifier().layoutPassthrough) { - builder.addDecoration(id, spv::DecorationPassthroughNV); - builder.addCapability(spv::CapabilityGeometryShaderPassthroughNV); - builder.addExtension(spv::E_SPV_NV_geometry_shader_passthrough); - } -#endif - - if (glslangIntermediate->getHlslFunctionality1() && symbol->getType().getQualifier().semanticName != nullptr) { - builder.addExtension("SPV_GOOGLE_hlsl_functionality1"); - builder.addDecoration(id, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE, - symbol->getType().getQualifier().semanticName); - } + addDecoration(id, spv::DecorationBuiltIn, (int)builtIn); return id; } +// If 'dec' is valid, add no-operand decoration to an object +void TGlslangToSpvTraverser::addDecoration(spv::Id id, spv::Decoration dec) +{ + if (dec != spv::DecorationMax) + builder.addDecoration(id, dec); +} + +// If 'dec' is valid, add a one-operand decoration to an object +void TGlslangToSpvTraverser::addDecoration(spv::Id id, spv::Decoration dec, unsigned value) +{ + if (dec != spv::DecorationMax) + builder.addDecoration(id, dec, value); +} + +// If 'dec' is valid, add a no-operand decoration to a struct member +void TGlslangToSpvTraverser::addMemberDecoration(spv::Id id, int member, spv::Decoration dec) +{ + if (dec != spv::DecorationMax) + builder.addMemberDecoration(id, (unsigned)member, dec); +} + +// If 'dec' is valid, add a one-operand decoration to a struct member +void TGlslangToSpvTraverser::addMemberDecoration(spv::Id id, int member, spv::Decoration dec, unsigned value) +{ + if (dec != spv::DecorationMax) + builder.addMemberDecoration(id, (unsigned)member, dec, value); +} + // Make a full tree of instructions to build a SPIR-V specialization constant, // or regular constant if possible. // @@ -6559,10 +4784,8 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n for (int dim = 0; dim < 3; ++dim) { bool specConst = (glslangIntermediate->getLocalSizeSpecId(dim) != glslang::TQualifier::layoutNotSet); dimConstId.push_back(builder.makeUintConstant(glslangIntermediate->getLocalSize(dim), specConst)); - if (specConst) { - builder.addDecoration(dimConstId.back(), spv::DecorationSpecId, - glslangIntermediate->getLocalSizeSpecId(dim)); - } + if (specConst) + addDecoration(dimConstId.back(), spv::DecorationSpecId, glslangIntermediate->getLocalSizeSpecId(dim)); } return builder.makeCompositeConstant(builder.makeVectorType(builder.makeUintType(32), 3), dimConstId, true); } @@ -6578,9 +4801,7 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n return accessChainLoad(sub_tree->getType()); } else if (auto* const_union_array = &sn->getConstArray()){ int nextConst = 0; - spv::Id id = createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true); - builder.addName(id, sn->getName().c_str()); - return id; + return createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true); } } @@ -6621,18 +4842,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla for (unsigned int i = 0; i < (unsigned int)glslangType.getVectorSize(); ++i) { bool zero = nextConst >= consts.size(); switch (glslangType.getBasicType()) { - case glslang::EbtInt8: - spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const())); - break; - case glslang::EbtUint8: - spvConsts.push_back(builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const())); - break; - case glslang::EbtInt16: - spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const())); - break; - case glslang::EbtUint16: - spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const())); - break; case glslang::EbtInt: spvConsts.push_back(builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst())); break; @@ -6651,9 +4860,11 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst())); break; +#ifdef AMD_EXTENSIONS case glslang::EbtFloat16: spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst())); break; +#endif case glslang::EbtBool: spvConsts.push_back(builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst())); break; @@ -6668,18 +4879,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla bool zero = nextConst >= consts.size(); spv::Id scalar = 0; switch (glslangType.getBasicType()) { - case glslang::EbtInt8: - scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant); - break; - case glslang::EbtUint8: - scalar = builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const(), specConstant); - break; - case glslang::EbtInt16: - scalar = builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const(), specConstant); - break; - case glslang::EbtUint16: - scalar = builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const(), specConstant); - break; case glslang::EbtInt: scalar = builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst(), specConstant); break; @@ -6698,9 +4897,11 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant); break; +#ifdef AMD_EXTENSIONS case glslang::EbtFloat16: scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant); break; +#endif case glslang::EbtBool: scalar = builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst(), specConstant); break; @@ -6747,18 +4948,13 @@ bool TGlslangToSpvTraverser::isTrivialLeaf(const glslang::TIntermTyped* node) } // A node is trivial if it is a single operation with no side effects. -// HLSL (and/or vectors) are always trivial, as it does not short circuit. -// Otherwise, error on the side of saying non-trivial. +// Error on the side of saying non-trivial. // Return true if trivial. bool TGlslangToSpvTraverser::isTrivial(const glslang::TIntermTyped* node) { if (node == nullptr) return false; - // count non scalars as trivial, as well as anything coming from HLSL - if (! node->getType().isScalarOrVec1() || glslangIntermediate->getSource() == glslang::EShSourceHlsl) - return true; - // symbols and constants are trivial if (isTrivialLeaf(node)) return true; @@ -6829,7 +5025,7 @@ spv::Id TGlslangToSpvTraverser::createShortCircuit(glslang::TOperator op, glslan leftId = builder.createUnaryOp(spv::OpLogicalNot, boolTypeId, leftId); // make an "if" based on the left value - spv::Builder::If ifBuilder(leftId, spv::SelectionControlMaskNone, builder); + spv::Builder::If ifBuilder(leftId, builder); // emit right operand as the "then" part of the "if" builder.clearAccessChain(); @@ -6847,7 +5043,6 @@ spv::Id TGlslangToSpvTraverser::createShortCircuit(glslang::TOperator op, glslan return builder.createOp(spv::OpPhi, boolTypeId, phiOperands); } -#ifdef AMD_EXTENSIONS // Return type Id of the imported set of extended instructions corresponds to the name. // Import this set if it has not been imported yet. spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) @@ -6861,7 +5056,6 @@ spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) return extBuiltins; } } -#endif }; // end anonymous namespace @@ -6875,28 +5069,11 @@ void GetSpirvVersion(std::string& version) version = buf; } -// For low-order part of the generator's magic number. Bump up -// when there is a change in the style (e.g., if SSA form changes, -// or a different instruction sequence to do something gets used). -int GetSpirvGeneratorVersion() -{ - // return 1; // start - // return 2; // EOpAtomicCounterDecrement gets a post decrement, to map between GLSL -> SPIR-V - // return 3; // change/correct barrier-instruction operands, to match memory model group decisions - // return 4; // some deeper access chains: for dynamic vector component, and local Boolean component - // return 5; // make OpArrayLength result type be an int with signedness of 0 - // return 6; // revert version 5 change, which makes a different (new) kind of incorrect code, - // versions 4 and 6 each generate OpArrayLength as it has long been done - return 7; // GLSL volatile keyword maps to both SPIR-V decorations Volatile and Coherent -} - // Write SPIR-V out to a binary file void OutputSpvBin(const std::vector& spirv, const char* baseName) { std::ofstream out; out.open(baseName, std::ios::binary | std::ios::out); - if (out.fail()) - printf("ERROR: Failed to open file: %s\n", baseName); for (int i = 0; i < (int)spirv.size(); ++i) { unsigned int word = spirv[i]; out.write((const char*)&word, 4); @@ -6905,19 +5082,11 @@ void OutputSpvBin(const std::vector& spirv, const char* baseName) } // Write SPIR-V out to a text file with 32-bit hexadecimal words -void OutputSpvHex(const std::vector& spirv, const char* baseName, const char* varName) +void OutputSpvHex(const std::vector& spirv, const char* baseName) { std::ofstream out; out.open(baseName, std::ios::binary | std::ios::out); - if (out.fail()) - printf("ERROR: Failed to open file: %s\n", baseName); - out << "\t// " << - glslang::GetSpirvGeneratorVersion() << "." << GLSLANG_MINOR_VERSION << "." << GLSLANG_PATCH_LEVEL << - std::endl; - if (varName != nullptr) { - out << "\t #pragma once" << std::endl; - out << "const uint32_t " << varName << "[] = {" << std::endl; - } + out << "\t// " GLSLANG_REVISION " " GLSLANG_DATE << std::endl; const int WORDS_PER_LINE = 8; for (int i = 0; i < (int)spirv.size(); i += WORDS_PER_LINE) { out << "\t"; @@ -6930,90 +5099,32 @@ void OutputSpvHex(const std::vector& spirv, const char* baseName, } out << std::endl; } - if (varName != nullptr) { - out << "};"; - } out.close(); } // // Set up the glslang traversal // -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, SpvOptions* options) +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv) { spv::SpvBuildLogger logger; - GlslangToSpv(intermediate, spirv, &logger, options); + GlslangToSpv(intermediate, spirv, &logger); } -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, - spv::SpvBuildLogger* logger, SpvOptions* options) +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, spv::SpvBuildLogger* logger) { TIntermNode* root = intermediate.getTreeRoot(); if (root == 0) return; - glslang::SpvOptions defaultOptions; - if (options == nullptr) - options = &defaultOptions; - glslang::GetThreadPoolAllocator().push(); - TGlslangToSpvTraverser it(intermediate.getSpv().spv, &intermediate, logger, *options); + TGlslangToSpvTraverser it(&intermediate, logger); root->traverse(&it); it.finishSpv(); it.dumpSpv(spirv); -#if ENABLE_OPT - // If from HLSL, run spirv-opt to "legalize" the SPIR-V for Vulkan - // eg. forward and remove memory writes of opaque types. - if ((intermediate.getSource() == EShSourceHlsl || - options->optimizeSize) && - !options->disableOptimizer) { - spv_target_env target_env = SPV_ENV_UNIVERSAL_1_2; - - spvtools::Optimizer optimizer(target_env); - optimizer.SetMessageConsumer([](spv_message_level_t level, - const char* source, - const spv_position_t& position, - const char* message) { - std::cerr << StringifyMessage(level, source, position, message) - << std::endl; - }); - - optimizer.RegisterPass(CreateMergeReturnPass()); - optimizer.RegisterPass(CreateInlineExhaustivePass()); - optimizer.RegisterPass(CreateEliminateDeadFunctionsPass()); - optimizer.RegisterPass(CreateScalarReplacementPass()); - optimizer.RegisterPass(CreateLocalAccessChainConvertPass()); - optimizer.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass()); - optimizer.RegisterPass(CreateLocalSingleStoreElimPass()); - optimizer.RegisterPass(CreateSimplificationPass()); - optimizer.RegisterPass(CreateAggressiveDCEPass()); - optimizer.RegisterPass(CreateVectorDCEPass()); - optimizer.RegisterPass(CreateDeadInsertElimPass()); - optimizer.RegisterPass(CreateAggressiveDCEPass()); - optimizer.RegisterPass(CreateDeadBranchElimPass()); - optimizer.RegisterPass(CreateBlockMergePass()); - optimizer.RegisterPass(CreateLocalMultiStoreElimPass()); - optimizer.RegisterPass(CreateIfConversionPass()); - optimizer.RegisterPass(CreateSimplificationPass()); - optimizer.RegisterPass(CreateAggressiveDCEPass()); - optimizer.RegisterPass(CreateVectorDCEPass()); - optimizer.RegisterPass(CreateDeadInsertElimPass()); - if (options->optimizeSize) { - optimizer.RegisterPass(CreateRedundancyEliminationPass()); - // TODO(greg-lunarg): Add this when AMD driver issues are resolved - // optimizer.RegisterPass(CreateCommonUniformElimPass()); - } - optimizer.RegisterPass(CreateAggressiveDCEPass()); - optimizer.RegisterPass(CreateCFGCleanupPass()); - - if (!optimizer.Run(spirv.data(), spirv.size(), &spirv)) - return; - } -#endif - glslang::GetThreadPoolAllocator().pop(); } diff --git a/deps/glslang/glslang-old/SPIRV/GlslangToSpv.h b/deps/glslang/glslang-old/SPIRV/GlslangToSpv.h new file mode 100644 index 0000000000..428cfb6a7d --- /dev/null +++ b/deps/glslang/glslang-old/SPIRV/GlslangToSpv.h @@ -0,0 +1,54 @@ +// +//Copyright (C) 2014 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. + +#if _MSC_VER >= 1900 + #pragma warning(disable : 4464) // relative include path contains '..' +#endif + +#include "../glslang/Include/intermediate.h" + +#include +#include + +#include "Logger.h" + +namespace glslang { + +void GetSpirvVersion(std::string&); +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv); +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, spv::SpvBuildLogger* logger); +void OutputSpvBin(const std::vector& spirv, const char* baseName); +void OutputSpvHex(const std::vector& spirv, const char* baseName); + +} diff --git a/deps/glslang-new/SPIRV/InReadableOrder.cpp b/deps/glslang/glslang-old/SPIRV/InReadableOrder.cpp similarity index 71% rename from deps/glslang-new/SPIRV/InReadableOrder.cpp rename to deps/glslang/glslang-old/SPIRV/InReadableOrder.cpp index 52b29613a4..86aae6d057 100644 --- a/deps/glslang-new/SPIRV/InReadableOrder.cpp +++ b/deps/glslang/glslang-old/SPIRV/InReadableOrder.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // The SPIR-V spec requires code blocks to appear in an order satisfying the // dominator-tree direction (ie, dominator before the dominated). This is, @@ -51,7 +51,7 @@ #include "spvIR.h" #include -#include +#include using spv::Block; using spv::Id; @@ -69,33 +69,33 @@ public: void visit(Block* block) { assert(block); - if (visited_.count(block) || delayed_.count(block)) + if (visited_[block] || delayed_[block]) return; callback_(block); - visited_.insert(block); + visited_[block] = true; Block* mergeBlock = nullptr; Block* continueBlock = nullptr; auto mergeInst = block->getMergeInstruction(); if (mergeInst) { Id mergeId = mergeInst->getIdOperand(0); mergeBlock = block->getParent().getParent().getInstruction(mergeId)->getBlock(); - delayed_.insert(mergeBlock); + delayed_[mergeBlock] = true; if (mergeInst->getOpCode() == spv::OpLoopMerge) { Id continueId = mergeInst->getIdOperand(1); continueBlock = block->getParent().getParent().getInstruction(continueId)->getBlock(); - delayed_.insert(continueBlock); + delayed_[continueBlock] = true; } } const auto successors = block->getSuccessors(); for (auto it = successors.cbegin(); it != successors.cend(); ++it) visit(*it); if (continueBlock) { - delayed_.erase(continueBlock); + delayed_[continueBlock] = false; visit(continueBlock); } if (mergeBlock) { - delayed_.erase(mergeBlock); + delayed_[mergeBlock] = false; visit(mergeBlock); } } @@ -103,7 +103,7 @@ public: private: std::function callback_; // Whether a block has already been visited or is being delayed. - std::unordered_set visited_, delayed_; + std::unordered_map visited_, delayed_; }; } diff --git a/deps/glslang-new/SPIRV/Logger.cpp b/deps/glslang/glslang-old/SPIRV/Logger.cpp similarity index 100% rename from deps/glslang-new/SPIRV/Logger.cpp rename to deps/glslang/glslang-old/SPIRV/Logger.cpp diff --git a/deps/glslang-new/SPIRV/Logger.h b/deps/glslang/glslang-old/SPIRV/Logger.h similarity index 100% rename from deps/glslang-new/SPIRV/Logger.h rename to deps/glslang/glslang-old/SPIRV/Logger.h diff --git a/deps/glslang-new/SPIRV/SPVRemapper.cpp b/deps/glslang/glslang-old/SPIRV/SPVRemapper.cpp similarity index 85% rename from deps/glslang-new/SPIRV/SPVRemapper.cpp rename to deps/glslang/glslang-old/SPIRV/SPVRemapper.cpp index fd0bb8950c..5c551fb847 100755 --- a/deps/glslang-new/SPIRV/SPVRemapper.cpp +++ b/deps/glslang/glslang-old/SPIRV/SPVRemapper.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2015 LunarG, Inc. +//Copyright (C) 2015 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 "SPVRemapper.h" @@ -103,10 +103,10 @@ namespace spv { switch (opCode) { case spv::OpTypeVector: // fall through - case spv::OpTypeMatrix: // ... - case spv::OpTypeSampler: // ... - case spv::OpTypeArray: // ... - case spv::OpTypeRuntimeArray: // ... + case spv::OpTypeMatrix: // ... + case spv::OpTypeSampler: // ... + case spv::OpTypeArray: // ... + case spv::OpTypeRuntimeArray: // ... case spv::OpTypePipe: return range_t(2, 3); case spv::OpTypeStruct: // fall through case spv::OpTypeFunction: return range_t(2, maxCount); @@ -135,9 +135,6 @@ namespace spv { const unsigned typeStart = idPos(id); const spv::Op opCode = asOpCode(typeStart); - if (errorLatch) - return 0; - switch (opCode) { case spv::OpTypeInt: // fall through... case spv::OpTypeFloat: return (spv[typeStart+2]+31)/32; @@ -151,10 +148,8 @@ namespace spv { unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const { const auto tid_it = idTypeSizeMap.find(id); - if (tid_it == idTypeSizeMap.end()) { + if (tid_it == idTypeSizeMap.end()) error("type size for ID not found"); - return 0; - } return tid_it->second; } @@ -220,19 +215,14 @@ namespace spv { bool spirvbin_t::isConstOp(spv::Op opCode) const { switch (opCode) { - case spv::OpConstantSampler: - error("unimplemented constant type"); - return true; + case spv::OpConstantNull: error("unimplemented constant type"); + case spv::OpConstantSampler: error("unimplemented constant type"); - case spv::OpConstantNull: case spv::OpConstantTrue: case spv::OpConstantFalse: case spv::OpConstantComposite: - case spv::OpConstant: - return true; - - default: - return false; + case spv::OpConstant: return true; + default: return false; } } @@ -256,33 +246,21 @@ namespace spv { spv::Id spirvbin_t::localId(spv::Id id, spv::Id newId) { - //assert(id != spv::NoResult && newId != spv::NoResult); - - if (id > bound()) { - error(std::string("ID out of range: ") + std::to_string(id)); - return spirvbin_t::unused; - } + assert(id != spv::NoResult && newId != spv::NoResult); if (id >= idMapL.size()) idMapL.resize(id+1, unused); if (newId != unmapped && newId != unused) { - if (isOldIdUnused(id)) { + if (isOldIdUnused(id)) error(std::string("ID unused in module: ") + std::to_string(id)); - return spirvbin_t::unused; - } - if (!isOldIdUnmapped(id)) { + if (!isOldIdUnmapped(id)) error(std::string("ID already mapped: ") + std::to_string(id) + " -> " - + std::to_string(localId(id))); + + std::to_string(localId(id))); - return spirvbin_t::unused; - } - - if (isNewIdMapped(newId)) { + if (isNewIdMapped(newId)) error(std::string("ID already used in module: ") + std::to_string(newId)); - return spirvbin_t::unused; - } msg(4, 4, std::string("map: ") + std::to_string(id) + " -> " + std::to_string(newId)); setMapped(newId); @@ -308,6 +286,7 @@ namespace spv { return literal; } + void spirvbin_t::applyMap() { msg(3, 2, std::string("Applying map: ")); @@ -316,15 +295,12 @@ namespace spv { process(inst_fn_nop, // ignore instructions [this](spv::Id& id) { id = localId(id); - - if (errorLatch) - return; - assert(id != unused && id != unmapped); } ); } + // Find free IDs for anything we haven't mapped void spirvbin_t::mapRemainder() { @@ -338,31 +314,25 @@ namespace spv { continue; // Find a new mapping for any used but unmapped IDs - if (isOldIdUnmapped(id)) { + if (isOldIdUnmapped(id)) localId(id, unusedId = nextUnusedId(unusedId)); - if (errorLatch) - return; - } - if (isOldIdUnmapped(id)) { + if (isOldIdUnmapped(id)) error(std::string("old ID not mapped: ") + std::to_string(id)); - return; - } // Track max bound maxBound = std::max(maxBound, localId(id) + 1); - - if (errorLatch) - return; } bound(maxBound); // reset header ID bound to as big as it now needs to be } - // Mark debug instructions for stripping void spirvbin_t::stripDebug() { - // Strip instructions in the stripOp set: debug info. + if ((options & STRIP) == 0) + return; + + // build local Id and name maps process( [&](spv::Op opCode, unsigned start) { // remember opcodes we want to strip later @@ -373,32 +343,6 @@ namespace spv { op_fn_nop); } - // Mark instructions that refer to now-removed IDs for stripping - void spirvbin_t::stripDeadRefs() - { - process( - [&](spv::Op opCode, unsigned start) { - // strip opcodes pointing to removed data - switch (opCode) { - case spv::OpName: - case spv::OpMemberName: - case spv::OpDecorate: - case spv::OpMemberDecorate: - if (idPosR.find(asId(start+1)) == idPosR.end()) - stripInst(start); - break; - default: - break; // leave it alone - } - - return true; - }, - op_fn_nop); - - strip(); - } - - // Update local maps of ID, type, etc positions void spirvbin_t::buildLocalMaps() { msg(2, 2, std::string("build local maps: ")); @@ -407,6 +351,7 @@ namespace spv { idMapL.clear(); // preserve nameMap, so we don't clear that. fnPos.clear(); + fnPosDCE.clear(); fnCalls.clear(); typeConstPos.clear(); idPosR.clear(); @@ -421,6 +366,10 @@ namespace spv { // build local Id and name maps process( [&](spv::Op opCode, unsigned start) { + // remember opcodes we want to strip later + if ((options & STRIP) && isStripOp(opCode)) + stripInst(start); + unsigned word = start+1; spv::Id typeId = spv::NoResult; @@ -431,13 +380,10 @@ namespace spv { if (spv::InstructionDesc[opCode].hasResult()) { const spv::Id resultId = asId(word++); idPosR[resultId] = start; - + if (typeId != spv::NoResult) { const unsigned idTypeSize = typeSizeInWords(typeId); - if (errorLatch) - return false; - if (idTypeSize != 0) idTypeSizeMap[resultId] = idTypeSize; } @@ -453,26 +399,17 @@ namespace spv { } else if (opCode == spv::Op::OpEntryPoint) { entryPoint = asId(start + 2); } else if (opCode == spv::Op::OpFunction) { - if (fnStart != 0) { + if (fnStart != 0) error("nested function found"); - return false; - } - fnStart = start; fnRes = asId(start + 2); } else if (opCode == spv::Op::OpFunctionEnd) { assert(fnRes != spv::NoResult); - if (fnStart == 0) { + if (fnStart == 0) error("function end without function start"); - return false; - } - fnPos[fnRes] = range_t(fnStart, start + asWordCount(start)); fnStart = 0; } else if (isConstOp(opCode)) { - if (errorLatch) - return false; - assert(asId(start + 2) != spv::NoResult); typeConstPos.insert(start); } else if (isTypeOp(opCode)) { @@ -492,37 +429,30 @@ namespace spv { { msg(2, 2, std::string("validating: ")); - if (spv.size() < header_size) { + if (spv.size() < header_size) error("file too short: "); - return; - } - if (magic() != spv::MagicNumber) { + if (magic() != spv::MagicNumber) error("bad magic number"); - return; - } // field 1 = version // field 2 = generator magic // field 3 = result bound - if (schemaNum() != 0) { + if (schemaNum() != 0) error("bad schema, must be 0"); - return; - } } + int spirvbin_t::processInstruction(unsigned word, instfn_t instFn, idfn_t idFn) { const auto instructionStart = word; const unsigned wordCount = asWordCount(instructionStart); + const spv::Op opCode = asOpCode(instructionStart); const int nextInst = word++ + wordCount; - spv::Op opCode = asOpCode(instructionStart); - if (nextInst > int(spv.size())) { + if (nextInst > int(spv.size())) error("spir instruction terminated too early"); - return -1; - } // Base for computing number of operands; will be updated as more is learned unsigned numOperands = wordCount - 1; @@ -560,18 +490,6 @@ namespace spv { // Store IDs from instruction in our map for (int op = 0; numOperands > 0; ++op, --numOperands) { - // SpecConstantOp is special: it includes the operands of another opcode which is - // given as a literal in the 3rd word. We will switch over to pretending that the - // opcode being processed is the literal opcode value of the SpecConstantOp. See the - // SPIRV spec for details. This way we will handle IDs and literals as appropriate for - // the embedded op. - if (opCode == spv::OpSpecConstantOp) { - if (op == 0) { - opCode = asOpCode(word++); // this is the opcode embedded in the SpecConstantOp. - --numOperands; - } - } - switch (spv::InstructionDesc[opCode].operands.getClass(op)) { case spv::OperandId: case spv::OperandScope: @@ -604,9 +522,6 @@ namespace spv { const unsigned literalSize = idTypeSizeInWords(idBuffer[literalSizePos]); const unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize); - if (errorLatch) - return -1; - for (unsigned arg=0; arg 0) { fnLocalVars.erase(id); idMap.erase(id); @@ -999,9 +891,6 @@ namespace spv { } ); - if (errorLatch) - return; - process( [&](spv::Op opCode, unsigned start) { if (opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) @@ -1010,9 +899,6 @@ namespace spv { }, op_fn_nop); - if (errorLatch) - return; - // Chase replacements to their origins, in case there is a chain such as: // 2 = store 1 // 3 = load 2 @@ -1046,9 +932,6 @@ namespace spv { } ); - if (errorLatch) - return; - strip(); // strip out data we decided to eliminate } @@ -1074,6 +957,7 @@ namespace spv { if (call_it == fnCalls.end() || call_it->second == 0) { changed = true; stripRange.push_back(fn->second); + fnPosDCE.insert(*fn); // decrease counts of called functions process( @@ -1092,9 +976,6 @@ namespace spv { fn->second.first, fn->second.second); - if (errorLatch) - return; - fn = fnPos.erase(fn); } else ++fn; } @@ -1127,21 +1008,14 @@ namespace spv { [&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; } ); - if (errorLatch) - return; - // Remove single-use function variables + associated decorations and names process( [&](spv::Op opCode, unsigned start) { - spv::Id id = spv::NoResult; - if (opCode == spv::OpVariable) - id = asId(start+2); - if (opCode == spv::OpDecorate || opCode == spv::OpName) - id = asId(start+1); - - if (id != spv::NoResult && varUseCount[id] == 1) - stripInst(start); - + if ((opCode == spv::OpVariable && varUseCount[asId(start+2)] == 1) || + (opCode == spv::OpDecorate && varUseCount[asId(start+1)] == 1) || + (opCode == spv::OpName && varUseCount[asId(start+1)] == 1)) { + stripInst(start); + } return true; }, op_fn_nop); @@ -1171,9 +1045,6 @@ namespace spv { [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } ); - if (errorLatch) - return; - // Remove single reference types for (const auto typeStart : typeConstPos) { const spv::Id typeId = asTypeConstId(typeStart); @@ -1183,12 +1054,10 @@ namespace spv { stripInst(typeStart); } } - - if (errorLatch) - return; } } + #ifdef NOTDEF bool spirvbin_t::matchType(const spirvbin_t::globaltypes_t& globalTypes, spv::Id lt, spv::Id gt) const { @@ -1248,6 +1117,7 @@ namespace spv { } } + // Look for an equivalent type in the globalTypes map spv::Id spirvbin_t::findType(const spirvbin_t::globaltypes_t& globalTypes, spv::Id lt) const { @@ -1264,10 +1134,8 @@ namespace spv { unsigned spirvbin_t::idPos(spv::Id id) const { const auto tid_it = idPosR.find(id); - if (tid_it == idPosR.end()) { + if (tid_it == idPosR.end()) error("ID not found"); - return 0; - } return tid_it->second; } @@ -1326,6 +1194,10 @@ namespace spv { case spv::OpTypeReserveId: return 300002; case spv::OpTypeQueue: return 300003; case spv::OpTypePipe: return 300004; + + case spv::OpConstantNull: return 300005; + case spv::OpConstantSampler: return 300006; + case spv::OpConstantTrue: return 300007; case spv::OpConstantFalse: return 300008; case spv::OpConstantComposite: @@ -1342,18 +1214,6 @@ namespace spv { hash += w * spv[typeStart+w]; return hash; } - case spv::OpConstantNull: - { - std::uint32_t hash = 500009 + hashType(idPos(spv[typeStart+1])); - return hash; - } - case spv::OpConstantSampler: - { - std::uint32_t hash = 600011 + hashType(idPos(spv[typeStart+1])); - for (unsigned w=3; w < wordCount; ++w) - hash += w * spv[typeStart+w]; - return hash; - } default: error("unknown type opcode"); @@ -1374,17 +1234,12 @@ namespace spv { const spv::Id resId = asTypeConstId(typeStart); const std::uint32_t hashval = hashType(typeStart); - if (errorLatch) - return; - - if (isOldIdUnmapped(resId)) { + if (isOldIdUnmapped(resId)) localId(resId, nextUnusedId(hashval % softTypeIdLimit + firstMappedID)); - if (errorLatch) - return; - } } } + // Strip a single binary by removing ranges given in stripRange void spirvbin_t::strip() { @@ -1400,7 +1255,7 @@ namespace spv { int strippedPos = 0; for (unsigned word = 0; word < unsigned(spv.size()); ++word) { - while (strip_it != stripRange.end() && word >= strip_it->second) + if (strip_it != stripRange.end() && word >= strip_it->second) ++strip_it; if (strip_it == stripRange.end() || word < strip_it->first || word >= strip_it->second) @@ -1421,56 +1276,25 @@ namespace spv { // Set up opcode tables from SpvDoc spv::Parameterize(); - validate(); // validate header - buildLocalMaps(); // build ID maps + validate(); // validate header + buildLocalMaps(); msg(3, 4, std::string("ID bound: ") + std::to_string(bound())); - if (options & STRIP) stripDebug(); - if (errorLatch) return; - strip(); // strip out data we decided to eliminate - if (errorLatch) return; - if (options & OPT_LOADSTORE) optLoadStore(); - if (errorLatch) return; - if (options & OPT_FWD_LS) forwardLoadStores(); - if (errorLatch) return; - if (options & DCE_FUNCS) dceFuncs(); - if (errorLatch) return; - if (options & DCE_VARS) dceVars(); - if (errorLatch) return; - if (options & DCE_TYPES) dceTypes(); - if (errorLatch) return; - - strip(); // strip out data we decided to eliminate - if (errorLatch) return; - - stripDeadRefs(); // remove references to things we DCEed - if (errorLatch) return; - - // after the last strip, we must clean any debug info referring to now-deleted data + strip(); // strip out data we decided to eliminate if (options & MAP_TYPES) mapTypeConst(); - if (errorLatch) return; - if (options & MAP_NAMES) mapNames(); - if (errorLatch) return; - if (options & MAP_FUNCS) mapFnBodies(); - if (errorLatch) return; - if (options & MAP_ALL) { - mapRemainder(); // map any unmapped IDs - if (errorLatch) return; - - applyMap(); // Now remap each shader to the new IDs we've come up with - if (errorLatch) return; - } + mapRemainder(); // map any unmapped IDs + applyMap(); // Now remap each shader to the new IDs we've come up with } // remap from a memory image diff --git a/deps/glslang-new/SPIRV/SPVRemapper.h b/deps/glslang/glslang-old/SPIRV/SPVRemapper.h similarity index 86% rename from deps/glslang-new/SPIRV/SPVRemapper.h rename to deps/glslang/glslang-old/SPIRV/SPVRemapper.h index 97e3f31fa6..ee5f63c653 100755 --- a/deps/glslang-new/SPIRV/SPVRemapper.h +++ b/deps/glslang/glslang-old/SPIRV/SPVRemapper.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2015 LunarG, Inc. +//Copyright (C) 2015 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 SPIRVREMAPPER_H @@ -39,7 +39,6 @@ #include #include #include -#include namespace spv { @@ -112,10 +111,7 @@ namespace spv { class spirvbin_t : public spirvbin_base_t { public: - spirvbin_t(int verbose = 0) : entryPoint(spv::NoResult), largestNewId(0), verbose(verbose), errorLatch(false) - { } - - virtual ~spirvbin_t() { } + spirvbin_t(int verbose = 0) : entryPoint(spv::NoResult), largestNewId(0), verbose(verbose) { } // remap on an existing binary in memory void remap(std::vector& spv, std::uint32_t opts = DO_EVERYTHING); @@ -168,7 +164,7 @@ private: typedef std::unordered_map typesize_map_t; // handle error - void error(const std::string& txt) const { errorLatch = true; errorHandler(txt); } + void error(const std::string& txt) const { errorHandler(txt); } bool isConstOp(spv::Op opCode) const; bool isTypeOp(spv::Op opCode) const; @@ -243,8 +239,7 @@ private: void applyMap(); // remap per local name map void mapRemainder(); // map any IDs we haven't touched yet - void stripDebug(); // strip all debug info - void stripDeadRefs(); // strips debug info for now-dead references after DCE + void stripDebug(); // strip debug info void strip(); // remove debug symbols std::vector spv; // SPIR words @@ -269,6 +264,7 @@ private: // Function start and end. use unordered_map because we'll have // many fewer functions than IDs. std::unordered_map fnPos; + std::unordered_map fnPosDCE; // deleted functions // Which functions are called, anywhere in the module, with a call count std::unordered_map fnCalls; @@ -289,11 +285,6 @@ private: std::uint32_t options; int verbose; // verbosity level - // Error latch: this is set if the error handler is ever executed. It would be better to - // use a try/catch block and throw, but that's not desired for certain environments, so - // this is the alternative. - mutable bool errorLatch; - static errorfn_t errorHandler; static logfn_t logHandler; }; diff --git a/deps/glslang-new/SPIRV/SpvBuilder.cpp b/deps/glslang/glslang-old/SPIRV/SpvBuilder.cpp old mode 100755 new mode 100644 similarity index 84% rename from deps/glslang-new/SPIRV/SpvBuilder.cpp rename to deps/glslang/glslang-old/SPIRV/SpvBuilder.cpp index 10d655b00b..04b0f04f5d --- a/deps/glslang-new/SPIRV/SpvBuilder.cpp +++ b/deps/glslang/glslang-old/SPIRV/SpvBuilder.cpp @@ -1,12 +1,12 @@ // -// Copyright (C) 2014-2015 LunarG, Inc. -// Copyright (C) 2015-2016 Google, Inc. +//Copyright (C) 2014-2015 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // Helper for making SPIR-V IR. Generally, this is documented in the header @@ -46,7 +46,9 @@ #include "SpvBuilder.h" -#include "hex_float.h" +#ifdef AMD_EXTENSIONS + #include "hex_float.h" +#endif #ifndef _WIN32 #include @@ -54,13 +56,9 @@ namespace spv { -Builder::Builder(unsigned int spvVersion, unsigned int magicNumber, SpvBuildLogger* buildLogger) : - spvVersion(spvVersion), +Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) : source(SourceLanguageUnknown), sourceVersion(0), - sourceFileStringId(NoResult), - currentLine(0), - emitOpLines(false), addressModel(AddressingModelLogical), memoryModel(MemoryModelGLSL450), builderNumber(magicNumber), @@ -81,31 +79,11 @@ Id Builder::import(const char* name) { Instruction* import = new Instruction(getUniqueId(), NoType, OpExtInstImport); import->addStringOperand(name); - + imports.push_back(std::unique_ptr(import)); return import->getResultId(); } -// Emit an OpLine if we've been asked to emit OpLines and the line number -// has changed since the last time, and is a valid line number. -void Builder::setLine(int lineNum) -{ - if (lineNum != 0 && lineNum != currentLine) { - currentLine = lineNum; - if (emitOpLines) - addLine(sourceFileStringId, currentLine, 0); - } -} - -void Builder::addLine(Id fileName, int lineNum, int column) -{ - Instruction* line = new Instruction(OpLine); - line->addIdOperand(fileName); - line->addImmediateOperand(lineNum); - line->addImmediateOperand(column); - buildPoint->addInstruction(std::unique_ptr(line)); -} - // For creating new groupedTypes (will return old type if the requested one was already made). Id Builder::makeVoidType() { @@ -192,9 +170,6 @@ Id Builder::makeIntegerType(int width, bool hasSign) // deal with capabilities switch (width) { - case 8: - addCapability(CapabilityInt8); - break; case 16: addCapability(CapabilityInt16); break; @@ -271,7 +246,7 @@ Id Builder::makeStructResultType(Id type0, Id type1) type = groupedTypes[OpTypeStruct][t]; if (type->getNumOperands() != 2) continue; - if (type->getIdOperand(0) != type0 || + if (type->getIdOperand(0) != type0 || type->getIdOperand(1) != type1) continue; return type->getResultId(); @@ -404,8 +379,6 @@ Id Builder::makeFunctionType(Id returnType, const std::vector& paramTypes) Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format) { - assert(sampled == 1 || sampled == 2); - // try to find it Instruction* type; for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) { @@ -437,27 +410,27 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo // deal with capabilities switch (dim) { case DimBuffer: - if (sampled == 1) + if (sampled) addCapability(CapabilitySampledBuffer); else addCapability(CapabilityImageBuffer); break; case Dim1D: - if (sampled == 1) + if (sampled) addCapability(CapabilitySampled1D); else addCapability(CapabilityImage1D); break; case DimCube: if (arrayed) { - if (sampled == 1) + if (sampled) addCapability(CapabilitySampledCubeArray); else addCapability(CapabilityImageCubeArray); } break; case DimRect: - if (sampled == 1) + if (sampled) addCapability(CapabilitySampledRect); else addCapability(CapabilityImageRect); @@ -470,14 +443,10 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo } if (ms) { - if (sampled == 2) { - // Images used with subpass data are not storage - // images, so don't require the capability for them. - if (dim != Dim::DimSubpassData) - addCapability(CapabilityStorageImageMultisample); - if (arrayed) - addCapability(CapabilityImageMSArray); - } + if (arrayed) + addCapability(CapabilityImageMSArray); + if (! sampled) + addCapability(CapabilityStorageImageMultisample); } return type->getResultId(); @@ -623,7 +592,7 @@ Id Builder::getContainedTypeId(Id typeId) const // See if a scalar constant of this type has already been created, so it // can be reused rather than duplicated. (Required by the specification). -Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) +Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const { Instruction* constant; for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { @@ -638,7 +607,7 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned valu } // Version of findScalarConstant (see above) for scalars that take two operands (e.g. a 'double' or 'int64'). -Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) +Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const { Instruction* constant; for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { @@ -659,7 +628,7 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, bool Builder::isConstantOpCode(Op opcode) const { switch (opcode) { - case OpUndef: + case OpUndef: case OpConstantTrue: case OpConstantFalse: case OpConstant: @@ -820,6 +789,7 @@ Id Builder::makeDoubleConstant(double d, bool specConstant) return c->getResultId(); } +#ifdef AMD_EXTENSIONS Id Builder::makeFloat16Constant(float f16, bool specConstant) { Op opcode = specConstant ? OpSpecConstant : OpConstant; @@ -847,27 +817,9 @@ Id Builder::makeFloat16Constant(float f16, bool specConstant) return c->getResultId(); } +#endif -Id Builder::makeFpConstant(Id type, double d, bool specConstant) -{ - assert(isFloatType(type)); - - switch (getScalarTypeWidth(type)) { - case 16: - return makeFloat16Constant((float)d, specConstant); - case 32: - return makeFloatConstant((float)d, specConstant); - case 64: - return makeDoubleConstant(d, specConstant); - default: - break; - } - - assert(false); - return NoResult; -} - -Id Builder::findCompositeConstant(Op typeClass, const std::vector& comps) +Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const { Instruction* constant = 0; bool found = false; @@ -895,32 +847,8 @@ Id Builder::findCompositeConstant(Op typeClass, const std::vector& comps) return found ? constant->getResultId() : NoResult; } -Id Builder::findStructConstant(Id typeId, const std::vector& comps) -{ - Instruction* constant = 0; - bool found = false; - for (int i = 0; i < (int)groupedStructConstants[typeId].size(); ++i) { - constant = groupedStructConstants[typeId][i]; - - // same contents? - bool mismatch = false; - for (int op = 0; op < constant->getNumOperands(); ++op) { - if (constant->getIdOperand(op) != comps[op]) { - mismatch = true; - break; - } - } - if (! mismatch) { - found = true; - break; - } - } - - return found ? constant->getResultId() : NoResult; -} - // Comments in header -Id Builder::makeCompositeConstant(Id typeId, const std::vector& members, bool specConstant) +Id Builder::makeCompositeConstant(Id typeId, std::vector& members, bool specConstant) { Op opcode = specConstant ? OpSpecConstantComposite : OpConstantComposite; assert(typeId); @@ -929,33 +857,25 @@ Id Builder::makeCompositeConstant(Id typeId, const std::vector& members, boo switch (typeClass) { case OpTypeVector: case OpTypeArray: - case OpTypeMatrix: - if (! specConstant) { - Id existing = findCompositeConstant(typeClass, members); - if (existing) - return existing; - } - break; case OpTypeStruct: - if (! specConstant) { - Id existing = findStructConstant(typeId, members); - if (existing) - return existing; - } + case OpTypeMatrix: break; default: assert(0); return makeFloatConstant(0.0); } + if (! specConstant) { + Id existing = findCompositeConstant(typeClass, members); + if (existing) + return existing; + } + Instruction* c = new Instruction(getUniqueId(), typeId, opcode); for (int op = 0; op < (int)members.size(); ++op) c->addIdOperand(members[op]); constantsTypesGlobals.push_back(std::unique_ptr(c)); - if (typeClass == OpTypeStruct) - groupedStructConstants[typeId].push_back(c); - else - groupedConstants[typeClass].push_back(c); + groupedConstants[typeClass].push_back(c); module.mapInstruction(c); return c->getResultId(); @@ -1008,11 +928,21 @@ void Builder::addMemberName(Id id, int memberNumber, const char* string) names.push_back(std::unique_ptr(name)); } +void Builder::addLine(Id target, Id fileName, int lineNum, int column) +{ + Instruction* line = new Instruction(OpLine); + line->addIdOperand(target); + line->addIdOperand(fileName); + line->addImmediateOperand(lineNum); + line->addImmediateOperand(column); + + lines.push_back(std::unique_ptr(line)); +} + void Builder::addDecoration(Id id, Decoration decoration, int num) { if (decoration == spv::DecorationMax) return; - Instruction* dec = new Instruction(OpDecorate); dec->addIdOperand(id); dec->addImmediateOperand(decoration); @@ -1022,37 +952,8 @@ void Builder::addDecoration(Id id, Decoration decoration, int num) decorations.push_back(std::unique_ptr(dec)); } -void Builder::addDecoration(Id id, Decoration decoration, const char* s) -{ - if (decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpDecorateStringGOOGLE); - dec->addIdOperand(id); - dec->addImmediateOperand(decoration); - dec->addStringOperand(s); - - decorations.push_back(std::unique_ptr(dec)); -} - -void Builder::addDecorationId(Id id, Decoration decoration, Id idDecoration) -{ - if (decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpDecorateId); - dec->addIdOperand(id); - dec->addImmediateOperand(decoration); - dec->addIdOperand(idDecoration); - - decorations.push_back(std::unique_ptr(dec)); -} - void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decoration, int num) { - if (decoration == spv::DecorationMax) - return; - Instruction* dec = new Instruction(OpMemberDecorate); dec->addIdOperand(id); dec->addImmediateOperand(member); @@ -1063,20 +964,6 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat decorations.push_back(std::unique_ptr(dec)); } -void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decoration, const char *s) -{ - if (decoration == spv::DecorationMax) - return; - - Instruction* dec = new Instruction(OpMemberDecorateStringGOOGLE); - dec->addIdOperand(id); - dec->addImmediateOperand(member); - dec->addImmediateOperand(decoration); - dec->addStringOperand(s); - - decorations.push_back(std::unique_ptr(dec)); -} - // Comments in header Function* Builder::makeEntryPoint(const char* entryPoint) { @@ -1084,16 +971,16 @@ Function* Builder::makeEntryPoint(const char* entryPoint) Block* entry; std::vector params; - std::vector> decorations; + std::vector precisions; - entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, decorations, &entry); + entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry); return entryPointFunction; } // Comments in header Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const char* name, - const std::vector& paramTypes, const std::vector>& decorations, Block **entry) + const std::vector& paramTypes, const std::vector& precisions, Block **entry) { // Make the function and initial instructions in it Id typeId = makeFunctionType(returnType, paramTypes); @@ -1102,10 +989,8 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const // Set up the precisions setPrecision(function->getId(), precision); - for (unsigned p = 0; p < (unsigned)decorations.size(); ++p) { - for (int d = 0; d < (int)decorations[p].size(); ++d) - addDecoration(firstParamId + p, decorations[p][d]); - } + for (unsigned p = 0; p < (unsigned)precisions.size(); ++p) + setPrecision(firstParamId + p, precisions[p]); // CFG if (entry) { @@ -1213,7 +1098,7 @@ Id Builder::createLoad(Id lValue) } // Comments in header -Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector& offsets) +Id Builder::createAccessChain(StorageClass storageClass, Id base, std::vector& offsets) { // Figure out the final resulting type. spv::Id typeId = getTypeId(base); @@ -1240,8 +1125,7 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vec Id Builder::createArrayLength(Id base, unsigned int member) { - spv::Id intType = makeIntType(32); - Instruction* length = new Instruction(getUniqueId(), intType, OpArrayLength); + Instruction* length = new Instruction(getUniqueId(), makeIntType(32), OpArrayLength); length->addIdOperand(base); length->addImmediateOperand(member); buildPoint->addInstruction(std::unique_ptr(length)); @@ -1264,7 +1148,7 @@ Id Builder::createCompositeExtract(Id composite, Id typeId, unsigned index) return extract->getResultId(); } -Id Builder::createCompositeExtract(Id composite, Id typeId, const std::vector& indexes) +Id Builder::createCompositeExtract(Id composite, Id typeId, std::vector& indexes) { // Generate code for spec constants if in spec constant operation // generation mode. @@ -1291,7 +1175,7 @@ Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, unsigned i return insert->getResultId(); } -Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, const std::vector& indexes) +Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, std::vector& indexes) { Instruction* insert = new Instruction(getUniqueId(), typeId, OpCompositeInsert); insert->addIdOperand(object); @@ -1442,7 +1326,7 @@ Id Builder::createSpecConstantOp(Op opCode, Id typeId, const std::vector& op return op->getResultId(); } -Id Builder::createFunctionCall(spv::Function* function, const std::vector& args) +Id Builder::createFunctionCall(spv::Function* function, std::vector& args) { Instruction* op = new Instruction(getUniqueId(), function->getReturnType(), OpFunctionCall); op->addIdOperand(function->getId()); @@ -1454,7 +1338,7 @@ Id Builder::createFunctionCall(spv::Function* function, const std::vector& channels) +Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, std::vector& channels) { if (channels.size() == 1) return setPrecision(createCompositeExtract(source, typeId, channels.front()), precision); @@ -1476,19 +1360,22 @@ Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, cons } // Comments in header -Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vector& channels) +Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, std::vector& channels) { if (channels.size() == 1 && getNumComponents(source) == 1) return createCompositeInsert(source, target, typeId, channels.front()); Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle); - assert(isVector(target)); swizzle->addIdOperand(target); - - assert(getNumComponents(source) == (int)channels.size()); - assert(isVector(source)); - swizzle->addIdOperand(source); + if (accessChain.component != NoResult) + // For dynamic component selection, source does not involve in l-value swizzle + swizzle->addIdOperand(target); + else { + assert(getNumComponents(source) == (int)channels.size()); + assert(isVector(source)); + swizzle->addIdOperand(source); + } // Set up an identity shuffle from the base value to the result value unsigned int components[4]; @@ -1497,8 +1384,12 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vect components[i] = i; // Punch in the l-value swizzle - for (int i = 0; i < (int)channels.size(); ++i) - components[channels[i]] = numTargetComponents + i; + for (int i = 0; i < (int)channels.size(); ++i) { + if (accessChain.component != NoResult) + components[i] = channels[i]; // Only shuffle the base value + else + components[channels[i]] = numTargetComponents + i; + } // finish the instruction with these components selectors for (int i = 0; i < numTargetComponents; ++i) @@ -1555,7 +1446,7 @@ Id Builder::smearScalar(Decoration precision, Id scalar, Id vectorType) } // Comments in header -Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, const std::vector& args) +Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, std::vector& args) { Instruction* inst = new Instruction(getUniqueId(), resultType, OpExtInst); inst->addIdOperand(builtins); @@ -1570,8 +1461,7 @@ Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, const // Accept all parameters needed to create a texture instruction. // Create the correct instruction based on the inputs, and make the call. -Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, - bool noImplicitLod, const TextureParameters& parameters) +Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, bool noImplicitLod, const TextureParameters& parameters) { static const int maxTextureArgs = 10; Id texArgs[maxTextureArgs] = {}; @@ -1624,7 +1514,6 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, texArgs[numArgs++] = parameters.offset; } if (parameters.offsets) { - addCapability(CapabilityImageGatherExtended); mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask); texArgs[numArgs++] = parameters.offsets; } @@ -1772,7 +1661,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, } // Comments in header -Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameters, bool isUnsignedResult) +Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameters) { // All these need a capability addCapability(CapabilityImageQuery); @@ -1805,25 +1694,19 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter } if (isArrayedImageType(getImageType(parameters.sampler))) ++numComponents; - - Id intType = isUnsignedResult ? makeUintType(32) : makeIntType(32); if (numComponents == 1) - resultType = intType; + resultType = makeIntType(32); else - resultType = makeVectorType(intType, numComponents); + resultType = makeVectorType(makeIntType(32), numComponents); break; } case OpImageQueryLod: -#ifdef AMD_EXTENSIONS - resultType = makeVectorType(getScalarTypeId(getTypeId(parameters.coords)), 2); -#else resultType = makeVectorType(makeFloatType(32), 2); -#endif break; case OpImageQueryLevels: case OpImageQuerySamples: - resultType = isUnsignedResult ? makeUintType(32) : makeIntType(32); + resultType = makeIntType(32); break; default: assert(0); @@ -1911,7 +1794,7 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b } // OpCompositeConstruct -Id Builder::createCompositeConstruct(Id typeId, const std::vector& constituents) +Id Builder::createCompositeConstruct(Id typeId, std::vector& constituents) { assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && getNumTypeConstituents(typeId) == (int)constituents.size())); @@ -1949,72 +1832,34 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc if (sources.size() == 1 && isScalar(sources[0]) && numTargetComponents > 1) return smearScalar(precision, sources[0], resultTypeId); - // accumulate the arguments for OpCompositeConstruct - std::vector constituents; Id scalarTypeId = getScalarTypeId(resultTypeId); - - // lambda to store the result of visiting an argument component - const auto latchResult = [&](Id comp) { - if (numTargetComponents > 1) - constituents.push_back(comp); - else - result = comp; - ++targetComponent; - }; - - // lambda to visit a vector argument's components - const auto accumulateVectorConstituents = [&](Id sourceArg) { - unsigned int sourceSize = getNumComponents(sourceArg); - unsigned int sourcesToUse = sourceSize; - if (sourcesToUse + targetComponent > numTargetComponents) - sourcesToUse = numTargetComponents - targetComponent; - - for (unsigned int s = 0; s < sourcesToUse; ++s) { - std::vector swiz; - swiz.push_back(s); - latchResult(createRvalueSwizzle(precision, scalarTypeId, sourceArg, swiz)); - } - }; - - // lambda to visit a matrix argument's components - const auto accumulateMatrixConstituents = [&](Id sourceArg) { - unsigned int sourceSize = getNumColumns(sourceArg) * getNumRows(sourceArg); - unsigned int sourcesToUse = sourceSize; - if (sourcesToUse + targetComponent > numTargetComponents) - sourcesToUse = numTargetComponents - targetComponent; - - int col = 0; - int row = 0; - for (unsigned int s = 0; s < sourcesToUse; ++s) { - if (row >= getNumRows(sourceArg)) { - row = 0; - col++; - } - std::vector indexes; - indexes.push_back(col); - indexes.push_back(row); - latchResult(createCompositeExtract(sourceArg, scalarTypeId, indexes)); - row++; - } - }; - - // Go through the source arguments, each one could have either - // a single or multiple components to contribute. + std::vector constituents; // accumulate the arguments for OpCompositeConstruct for (unsigned int i = 0; i < sources.size(); ++i) { - if (isScalar(sources[i])) - latchResult(sources[i]); - else if (isVector(sources[i])) - accumulateVectorConstituents(sources[i]); - else if (isMatrix(sources[i])) - accumulateMatrixConstituents(sources[i]); - else - assert(0); + assert(! isAggregate(sources[i])); + unsigned int sourceSize = getNumComponents(sources[i]); + unsigned int sourcesToUse = sourceSize; + if (sourcesToUse + targetComponent > numTargetComponents) + sourcesToUse = numTargetComponents - targetComponent; + + for (unsigned int s = 0; s < sourcesToUse; ++s) { + Id arg = sources[i]; + if (sourceSize > 1) { + std::vector swiz; + swiz.push_back(s); + arg = createRvalueSwizzle(precision, scalarTypeId, arg, swiz); + } + + if (numTargetComponents > 1) + constituents.push_back(arg); + else + result = arg; + ++targetComponent; + } if (targetComponent >= numTargetComponents) break; } - // If the result is a vector, make it from the gathered constituents. if (constituents.size() > 0) result = createCompositeConstruct(resultTypeId, constituents); @@ -2091,6 +1936,7 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } } + // Step 2: Construct a matrix from that array. // First make the column vectors, then make the matrix. @@ -2111,10 +1957,9 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } // Comments in header -Builder::If::If(Id cond, unsigned int ctrl, Builder& gb) : +Builder::If::If(Id cond, Builder& gb) : builder(gb), condition(cond), - control(ctrl), elseBlock(0) { function = &builder.getBuildPoint()->getParent(); @@ -2155,7 +2000,7 @@ void Builder::If::makeEndIf() // Go back to the headerBlock and make the flow control split builder.setBuildPoint(headerBlock); - builder.createSelectionMerge(mergeBlock, control); + builder.createSelectionMerge(mergeBlock, SelectionControlMaskNone); if (elseBlock) builder.createConditionalBranch(condition, thenBlock, elseBlock); else @@ -2167,8 +2012,7 @@ void Builder::If::makeEndIf() } // Comments in header -void Builder::makeSwitch(Id selector, unsigned int control, int numSegments, const std::vector& caseValues, - const std::vector& valueIndexToSegment, int defaultSegment, +void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseValues, std::vector& valueIndexToSegment, int defaultSegment, std::vector& segmentBlocks) { Function& function = buildPoint->getParent(); @@ -2180,7 +2024,7 @@ void Builder::makeSwitch(Id selector, unsigned int control, int numSegments, con Block* mergeBlock = new Block(getUniqueId(), function); // make and insert the switch's selection-merge instruction - createSelectionMerge(mergeBlock, control); + createSelectionMerge(mergeBlock, SelectionControlMaskNone); // make the switch instruction Instruction* switchInst = new Instruction(NoResult, NoType, OpSwitch); @@ -2296,11 +2140,10 @@ void Builder::accessChainPushSwizzle(std::vector& swizzle, Id preSwizz accessChain.preSwizzleBaseType = preSwizzleBaseType; // if needed, propagate the swizzle for the current access chain - if (accessChain.swizzle.size() > 0) { + if (accessChain.swizzle.size()) { std::vector oldSwizzle = accessChain.swizzle; accessChain.swizzle.resize(0); for (unsigned int i = 0; i < swizzle.size(); ++i) { - assert(swizzle[i] < oldSwizzle.size()); accessChain.swizzle.push_back(oldSwizzle[swizzle[i]]); } } else @@ -2317,28 +2160,34 @@ void Builder::accessChainStore(Id rvalue) transferAccessChainSwizzle(true); Id base = collapseAccessChain(); - Id source = rvalue; - - // dynamic component should be gone - assert(accessChain.component == NoResult); // If swizzle still exists, it is out-of-order or not full, we must load the target vector, // extract and insert elements to perform writeMask and/or swizzle. - if (accessChain.swizzle.size() > 0) { + Id source = NoResult; + if (accessChain.swizzle.size()) { Id tempBaseId = createLoad(base); - source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle); + source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle); } + // dynamic component selection + if (accessChain.component != NoResult) { + Id tempBaseId = (source == NoResult) ? createLoad(base) : source; + source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, accessChain.component); + } + + if (source == NoResult) + source = rvalue; + createStore(source, base); } // Comments in header -Id Builder::accessChainLoad(Decoration precision, Decoration nonUniform, Id resultType) +Id Builder::accessChainLoad(Decoration precision, Id resultType) { Id id; if (accessChain.isRValue) { - // transfer access chain, but try to stay in registers + // transfer access chain, but keep it static, so we can stay in registers transferAccessChainSwizzle(false); if (accessChain.indexChain.size() > 0) { Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType; @@ -2379,7 +2228,6 @@ Id Builder::accessChainLoad(Decoration precision, Decoration nonUniform, Id resu // load through the access chain id = createLoad(collapseAccessChain()); setPrecision(id, precision); - addDecoration(id, nonUniform); } // Done, unless there are swizzles to do @@ -2387,20 +2235,19 @@ Id Builder::accessChainLoad(Decoration precision, Decoration nonUniform, Id resu return id; // Do remaining swizzling - - // Do the basic swizzle - if (accessChain.swizzle.size() > 0) { + // First, static swizzling + if (accessChain.swizzle.size()) { + // static swizzle Id swizzledType = getScalarTypeId(getTypeId(id)); if (accessChain.swizzle.size() > 1) swizzledType = makeVectorType(swizzledType, (int)accessChain.swizzle.size()); id = createRvalueSwizzle(precision, swizzledType, id, accessChain.swizzle); } - // Do the dynamic component + // dynamic single-component selection if (accessChain.component != NoResult) id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), precision); - addDecoration(id, nonUniform); return id; } @@ -2493,7 +2340,7 @@ void Builder::dump(std::vector& out) const { // Header, before first instructions: out.push_back(MagicNumber); - out.push_back(spvVersion); + out.push_back(Version); out.push_back(builderNumber); out.push_back(uniqueId + 1); out.push_back(0); @@ -2507,7 +2354,7 @@ void Builder::dump(std::vector& out) const for (auto it = extensions.cbegin(); it != extensions.cend(); ++it) { Instruction extInst(0, 0, OpExtension); - extInst.addStringOperand(it->c_str()); + extInst.addStringOperand(*it); extInst.dump(out); } @@ -2522,15 +2369,19 @@ void Builder::dump(std::vector& out) const dumpInstructions(out, executionModes); // Debug instructions - dumpInstructions(out, strings); - dumpSourceInstructions(out); + if (source != SourceLanguageUnknown) { + Instruction sourceInst(0, 0, OpSource); + sourceInst.addImmediateOperand(source); + sourceInst.addImmediateOperand(sourceVersion); + sourceInst.dump(out); + } for (int e = 0; e < (int)sourceExtensions.size(); ++e) { Instruction sourceExtInst(0, 0, OpSourceExtension); sourceExtInst.addStringOperand(sourceExtensions[e]); sourceExtInst.dump(out); } dumpInstructions(out, names); - dumpModuleProcesses(out); + dumpInstructions(out, lines); // Annotation instructions dumpInstructions(out, decorations); @@ -2546,66 +2397,26 @@ void Builder::dump(std::vector& out) const // Protected methods. // -// Turn the described access chain in 'accessChain' into an instruction(s) +// Turn the described access chain in 'accessChain' into an instruction // computing its address. This *cannot* include complex swizzles, which must -// be handled after this is called. -// -// Can generate code. +// be handled after this is called, but it does include swizzles that select +// an individual element, as a single address of a scalar type can be +// computed by an OpAccessChain instruction. Id Builder::collapseAccessChain() { assert(accessChain.isRValue == false); - // did we already emit an access chain for this? - if (accessChain.instr != NoResult) + if (accessChain.indexChain.size() > 0) { + if (accessChain.instr == 0) { + StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); + accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain); + } + return accessChain.instr; - - // If we have a dynamic component, we can still transfer - // that into a final operand to the access chain. We need to remap the - // dynamic component through the swizzle to get a new dynamic component to - // update. - // - // This was not done in transferAccessChainSwizzle() because it might - // generate code. - remapDynamicSwizzle(); - if (accessChain.component != NoResult) { - // transfer the dynamic component to the access chain - accessChain.indexChain.push_back(accessChain.component); - accessChain.component = NoResult; - } - - // note that non-trivial swizzling is left pending - - // do we have an access chain? - if (accessChain.indexChain.size() == 0) + } else return accessChain.base; - // emit the access chain - StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); - accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain); - - return accessChain.instr; -} - -// For a dynamic component selection of a swizzle. -// -// Turn the swizzle and dynamic component into just a dynamic component. -// -// Generates code. -void Builder::remapDynamicSwizzle() -{ - // do we have a swizzle to remap a dynamic component through? - if (accessChain.component != NoResult && accessChain.swizzle.size() > 1) { - // build a vector of the swizzle for the component to map into - std::vector components; - for (int c = 0; c < (int)accessChain.swizzle.size(); ++c) - components.push_back(makeUintConstant(accessChain.swizzle[c])); - Id mapType = makeVectorType(makeUintType(32), (int)accessChain.swizzle.size()); - Id map = makeCompositeConstant(mapType, components); - - // use it - accessChain.component = createVectorExtractDynamic(map, makeUintType(32), accessChain.component); - accessChain.swizzle.clear(); - } + // note that non-trivial swizzling is left pending... } // clear out swizzle if it is redundant, that is reselecting the same components @@ -2631,30 +2442,38 @@ void Builder::simplifyAccessChainSwizzle() // To the extent any swizzling can become part of the chain // of accesses instead of a post operation, make it so. -// If 'dynamic' is true, include transferring the dynamic component, -// otherwise, leave it pending. +// If 'dynamic' is true, include transferring a non-static component index, +// otherwise, only transfer static indexes. // -// Does not generate code. just updates the access chain. +// Also, Boolean vectors are likely to be special. While +// for external storage, they should only be integer types, +// function-local bool vectors could use sub-word indexing, +// so keep that as a separate Insert/Extract on a loaded vector. void Builder::transferAccessChainSwizzle(bool dynamic) { + // too complex? + if (accessChain.swizzle.size() > 1) + return; + // non existent? if (accessChain.swizzle.size() == 0 && accessChain.component == NoResult) return; - // too complex? - // (this requires either a swizzle, or generating code for a dynamic component) - if (accessChain.swizzle.size() > 1) + // single component... + + // skip doing it for Boolean vectors + if (isBoolType(getContainedTypeId(accessChain.preSwizzleBaseType))) return; - // single component, either in the swizzle and/or dynamic component if (accessChain.swizzle.size() == 1) { - assert(accessChain.component == NoResult); - // handle static component selection + // handle static component accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle.front())); accessChain.swizzle.clear(); + // note, the only valid remaining dynamic access would be to this one + // component, so don't bother even looking at accessChain.component accessChain.preSwizzleBaseType = NoType; + accessChain.component = NoResult; } else if (dynamic && accessChain.component != NoResult) { - assert(accessChain.swizzle.size() == 0); // handle dynamic component accessChain.indexChain.push_back(accessChain.component); accessChain.preSwizzleBaseType = NoType; @@ -2672,7 +2491,7 @@ void Builder::createAndSetNoPredecessorBlock(const char* /*name*/) buildPoint->getParent().addBlock(block); setBuildPoint(block); - // if (name) + //if (name) // addName(block->getId(), name); } @@ -2693,15 +2512,12 @@ void Builder::createSelectionMerge(Block* mergeBlock, unsigned int control) buildPoint->addInstruction(std::unique_ptr(merge)); } -void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, - unsigned int dependencyLength) +void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control) { Instruction* merge = new Instruction(OpLoopMerge); merge->addIdOperand(mergeBlock->getId()); merge->addIdOperand(continueBlock->getId()); merge->addImmediateOperand(control); - if ((control & LoopControlDependencyLengthMask) != 0) - merge->addImmediateOperand(dependencyLength); buildPoint->addInstruction(std::unique_ptr(merge)); } @@ -2716,48 +2532,6 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els elseBlock->addPredecessor(buildPoint); } -// OpSource -// [OpSourceContinued] -// ... -void Builder::dumpSourceInstructions(std::vector& out) const -{ - const int maxWordCount = 0xFFFF; - const int opSourceWordCount = 4; - const int nonNullBytesPerInstruction = 4 * (maxWordCount - opSourceWordCount) - 1; - - if (source != SourceLanguageUnknown) { - // OpSource Language Version File Source - Instruction sourceInst(NoResult, NoType, OpSource); - sourceInst.addImmediateOperand(source); - sourceInst.addImmediateOperand(sourceVersion); - // File operand - if (sourceFileStringId != NoResult) { - sourceInst.addIdOperand(sourceFileStringId); - // Source operand - if (sourceText.size() > 0) { - int nextByte = 0; - std::string subString; - while ((int)sourceText.size() - nextByte > 0) { - subString = sourceText.substr(nextByte, nonNullBytesPerInstruction); - if (nextByte == 0) { - // OpSource - sourceInst.addStringOperand(subString.c_str()); - sourceInst.dump(out); - } else { - // OpSourcContinued - Instruction sourceContinuedInst(OpSourceContinued); - sourceContinuedInst.addStringOperand(subString.c_str()); - sourceContinuedInst.dump(out); - } - nextByte += nonNullBytesPerInstruction; - } - } else - sourceInst.dump(out); - } else - sourceInst.dump(out); - } -} - void Builder::dumpInstructions(std::vector& out, const std::vector >& instructions) const { for (int i = 0; i < (int)instructions.size(); ++i) { @@ -2765,13 +2539,4 @@ void Builder::dumpInstructions(std::vector& out, const std::vector } } -void Builder::dumpModuleProcesses(std::vector& out) const -{ - for (int i = 0; i < (int)moduleProcesses.size(); ++i) { - Instruction moduleProcessed(OpModuleProcessed); - moduleProcessed.addStringOperand(moduleProcesses[i]); - moduleProcessed.dump(out); - } -} - }; // end spv namespace diff --git a/deps/glslang-new/SPIRV/SpvBuilder.h b/deps/glslang/glslang-old/SPIRV/SpvBuilder.h similarity index 78% rename from deps/glslang-new/SPIRV/SpvBuilder.h rename to deps/glslang/glslang-old/SPIRV/SpvBuilder.h index 099b1d957f..ad5da5ffde 100755 --- a/deps/glslang-new/SPIRV/SpvBuilder.h +++ b/deps/glslang/glslang-old/SPIRV/SpvBuilder.h @@ -1,13 +1,12 @@ // -// Copyright (C) 2014-2015 LunarG, Inc. -// Copyright (C) 2015-2016 Google, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2014-2015 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // "Builder" is an interface to fully build SPIR-V IR. Allocate one of @@ -56,35 +55,22 @@ #include #include #include -#include namespace spv { class Builder { public: - Builder(unsigned int spvVersion, unsigned int userNumber, SpvBuildLogger* logger); + Builder(unsigned int userNumber, SpvBuildLogger* logger); virtual ~Builder(); static const int maxMatrixSize = 4; - unsigned int getSpvVersion() const { return spvVersion; } - void setSource(spv::SourceLanguage lang, int version) { source = lang; sourceVersion = version; } - void setSourceFile(const std::string& file) - { - Instruction* fileString = new Instruction(getUniqueId(), NoType, OpString); - fileString->addStringOperand(file.c_str()); - sourceFileStringId = fileString->getResultId(); - strings.push_back(std::unique_ptr(fileString)); - } - void setSourceText(const std::string& text) { sourceText = text; } void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); } - void addModuleProcessed(const std::string& p) { moduleProcesses.push_back(p.c_str()); } - void setEmitOpLines() { emitOpLines = true; } void addExtension(const char* ext) { extensions.insert(ext); } Id import(const char*); void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem) @@ -106,12 +92,6 @@ public: return id; } - // Log the current line, and if different than the last one, - // issue a new OpLine, using the current file name. - void setLine(int line); - // Low-level OpLine. See setLine() for a layered helper. - void addLine(Id fileName, int line, int column); - // For creating new types (will return old type if the requested one was already made). Id makeVoidType(); Id makeBoolType(); @@ -153,10 +133,7 @@ public: bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); } - bool isBoolType(Id typeId) { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } - bool isIntType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) != 0; } - bool isUintType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) == 0; } - bool isFloatType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat; } + bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; } bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } @@ -176,13 +153,6 @@ public: unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); } StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); } - int getScalarTypeWidth(Id typeId) const - { - Id scalarTypeId = getScalarTypeId(typeId); - assert(getTypeClass(scalarTypeId) == OpTypeInt || getTypeClass(scalarTypeId) == OpTypeFloat); - return module.getInstruction(scalarTypeId)->getImmediateOperand(0); - } - int getTypeNumColumns(Id typeId) const { assert(isMatrixType(typeId)); @@ -215,32 +185,27 @@ public: // For making new constants (will return old constant if the requested one was already made). Id makeBoolConstant(bool b, bool specConstant = false); - Id makeInt8Constant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(8), (unsigned)i, specConstant); } - Id makeUint8Constant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(8), u, specConstant); } - Id makeInt16Constant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(16), (unsigned)i, specConstant); } - Id makeUint16Constant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(16), u, specConstant); } Id makeIntConstant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(32), (unsigned)i, specConstant); } Id makeUintConstant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(32), u, specConstant); } Id makeInt64Constant(long long i, bool specConstant = false) { return makeInt64Constant(makeIntType(64), (unsigned long long)i, specConstant); } Id makeUint64Constant(unsigned long long u, bool specConstant = false) { return makeInt64Constant(makeUintType(64), u, specConstant); } Id makeFloatConstant(float f, bool specConstant = false); Id makeDoubleConstant(double d, bool specConstant = false); +#ifdef AMD_EXTENSIONS Id makeFloat16Constant(float f16, bool specConstant = false); - Id makeFpConstant(Id type, double d, bool specConstant = false); +#endif // Turn the array of constants into a proper spv constant of the requested type. - Id makeCompositeConstant(Id type, const std::vector& comps, bool specConst = false); + Id makeCompositeConstant(Id type, std::vector& comps, bool specConst = false); // Methods for adding information outside the CFG. Instruction* addEntryPoint(ExecutionModel, Function*, const char* name); void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, int value3 = -1); void addName(Id, const char* name); void addMemberName(Id, int member, const char* name); + void addLine(Id target, Id fileName, int line, int column); void addDecoration(Id, Decoration, int num = -1); - void addDecoration(Id, Decoration, const char*); - void addDecorationId(Id id, Decoration, Id idDecoration); void addMemberDecoration(Id, unsigned int member, Decoration, int num = -1); - void addMemberDecoration(Id, unsigned int member, Decoration, const char*); // At the end of what block do the next create*() instructions go? void setBuildPoint(Block* bp) { buildPoint = bp; } @@ -254,7 +219,7 @@ public: // Return the function, pass back the entry. // The returned pointer is only valid for the lifetime of this builder. Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name, const std::vector& paramTypes, - const std::vector>& precisions, Block **entry = 0); + const std::vector& precisions, Block **entry = 0); // Create a return. An 'implicit' return is one not appearing in the source // code. In the case of an implicit return, no post-return block is inserted. @@ -279,16 +244,16 @@ public: Id createLoad(Id lValue); // Create an OpAccessChain instruction - Id createAccessChain(StorageClass, Id base, const std::vector& offsets); + Id createAccessChain(StorageClass, Id base, std::vector& offsets); // Create an OpArrayLength instruction Id createArrayLength(Id base, unsigned int member); // Create an OpCompositeExtract instruction Id createCompositeExtract(Id composite, Id typeId, unsigned index); - Id createCompositeExtract(Id composite, Id typeId, const std::vector& indexes); + Id createCompositeExtract(Id composite, Id typeId, std::vector& indexes); Id createCompositeInsert(Id object, Id composite, Id typeId, unsigned index); - Id createCompositeInsert(Id object, Id composite, Id typeId, const std::vector& indexes); + Id createCompositeInsert(Id object, Id composite, Id typeId, std::vector& indexes); Id createVectorExtractDynamic(Id vector, Id typeId, Id componentIndex); Id createVectorInsertDynamic(Id vector, Id typeId, Id component, Id componentIndex); @@ -302,18 +267,18 @@ public: Id createBinOp(Op, Id typeId, Id operand1, Id operand2); Id createTriOp(Op, Id typeId, Id operand1, Id operand2, Id operand3); Id createOp(Op, Id typeId, const std::vector& operands); - Id createFunctionCall(spv::Function*, const std::vector&); + Id createFunctionCall(spv::Function*, std::vector&); Id createSpecConstantOp(Op, Id typeId, const std::vector& operands, const std::vector& literals); // Take an rvalue (source) and a set of channels to extract from it to // make a new rvalue, which is returned. - Id createRvalueSwizzle(Decoration precision, Id typeId, Id source, const std::vector& channels); + Id createRvalueSwizzle(Decoration precision, Id typeId, Id source, std::vector& channels); // Take a copy of an lvalue (target) and a source of components, and set the // source components into the lvalue where the 'channels' say to put them. // An updated version of the target is returned. // (No true lvalue or stores are used.) - Id createLvalueSwizzle(Id typeId, Id target, Id source, const std::vector& channels); + Id createLvalueSwizzle(Id typeId, Id target, Id source, std::vector& channels); // If both the id and precision are valid, the id // gets tagged with the requested precision. @@ -346,7 +311,7 @@ public: Id smearScalar(Decoration precision, Id scalarVal, Id vectorType); // Create a call to a built-in function. - Id createBuiltinCall(Id resultType, Id builtins, int entryPoint, const std::vector& args); + Id createBuiltinCall(Id resultType, Id builtins, int entryPoint, std::vector& args); // List of parameters used to create a texture operation struct TextureParameters { @@ -370,7 +335,7 @@ public: // Emit the OpTextureQuery* instruction that was passed in. // Figure out the right return value and type, and return it. - Id createTextureQueryCall(Op, const TextureParameters&, bool isUnsignedResult); + Id createTextureQueryCall(Op, const TextureParameters&); Id createSamplePositionCall(Decoration precision, Id, Id); @@ -381,7 +346,7 @@ public: Id createCompositeCompare(Decoration precision, Id, Id, bool /* true if for equal, false if for not-equal */); // OpCompositeConstruct - Id createCompositeConstruct(Id typeId, const std::vector& constituents); + Id createCompositeConstruct(Id typeId, std::vector& constituents); // vector or scalar constructor Id createConstructor(Decoration precision, const std::vector& sources, Id resultTypeId); @@ -392,7 +357,7 @@ public: // Helper to use for building nested control flow with if-then-else. class If { public: - If(Id condition, unsigned int ctrl, Builder& builder); + If(Id condition, Builder& builder); ~If() {} void makeBeginElse(); @@ -404,7 +369,6 @@ public: Builder& builder; Id condition; - unsigned int control; Function* function; Block* headerBlock; Block* thenBlock; @@ -424,8 +388,8 @@ public: // Returns the right set of basic blocks to start each code segment with, so that the caller's // recursion stack can hold the memory for it. // - void makeSwitch(Id condition, unsigned int control, int numSegments, const std::vector& caseValues, - const std::vector& valueToSegment, int defaultSegment, std::vector& segmentBB); // return argument + void makeSwitch(Id condition, int numSegments, std::vector& caseValues, std::vector& valueToSegment, int defaultSegment, + std::vector& segmentBB); // return argument // Add a branch to the innermost switch's merge block. void addSwitchBreak(); @@ -539,22 +503,19 @@ public: // push new swizzle onto the end of any existing swizzle, merging into a single swizzle void accessChainPushSwizzle(std::vector& swizzle, Id preSwizzleBaseType); - // push a dynamic component selection onto the access chain, only applicable with a - // non-trivial swizzle or no swizzle + // push a variable component selection onto the access chain; supporting only one, so unsided void accessChainPushComponent(Id component, Id preSwizzleBaseType) { - if (accessChain.swizzle.size() != 1) { - accessChain.component = component; - if (accessChain.preSwizzleBaseType == NoType) - accessChain.preSwizzleBaseType = preSwizzleBaseType; - } + accessChain.component = component; + if (accessChain.preSwizzleBaseType == NoType) + accessChain.preSwizzleBaseType = preSwizzleBaseType; } // use accessChain and swizzle to store value void accessChainStore(Id rvalue); // use accessChain and swizzle to load an r-value - Id accessChainLoad(Decoration precision, Decoration nonUniform, Id ResultType); + Id accessChainLoad(Decoration precision, Id ResultType); // get the direct pointer for an l-value Id accessChainGetLValue(); @@ -570,7 +531,7 @@ public: void createBranch(Block* block); void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock); - void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, unsigned int dependencyLength); + void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control); // Sets to generate opcode for specialization constants. void setToSpecConstCodeGenMode() { generatingOpCodeForSpecConst = true; } @@ -582,30 +543,20 @@ public: protected: Id makeIntConstant(Id typeId, unsigned value, bool specConstant); Id makeInt64Constant(Id typeId, unsigned long long value, bool specConstant); - Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value); - Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2); - Id findCompositeConstant(Op typeClass, const std::vector& comps); - Id findStructConstant(Id typeId, const std::vector& comps); + Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const; + Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const; + Id findCompositeConstant(Op typeClass, std::vector& comps) const; Id collapseAccessChain(); - void remapDynamicSwizzle(); void transferAccessChainSwizzle(bool dynamic); void simplifyAccessChainSwizzle(); void createAndSetNoPredecessorBlock(const char*); void createSelectionMerge(Block* mergeBlock, unsigned int control); - void dumpSourceInstructions(std::vector&) const; void dumpInstructions(std::vector&, const std::vector >&) const; - void dumpModuleProcesses(std::vector&) const; - unsigned int spvVersion; // the version of SPIR-V to emit in the header SourceLanguage source; int sourceVersion; - spv::Id sourceFileStringId; - std::string sourceText; - int currentLine; - bool emitOpLines; - std::set extensions; + std::set extensions; std::vector sourceExtensions; - std::vector moduleProcesses; AddressingModel addressModel; MemoryModel memoryModel; std::set capabilities; @@ -618,20 +569,19 @@ public: AccessChain accessChain; // special blocks of instructions for output - std::vector > strings; std::vector > imports; std::vector > entryPoints; std::vector > executionModes; std::vector > names; + std::vector > lines; std::vector > decorations; std::vector > constantsTypesGlobals; std::vector > externals; std::vector > functions; // not output, internally used for quick & dirty canonical (unique) creation - std::unordered_map> groupedConstants; // map type opcodes to constant inst. - std::unordered_map> groupedStructConstants; // map struct-id to constant instructions - std::unordered_map> groupedTypes; // map type opcodes to type instructions + std::vector groupedConstants[OpConstant]; // all types appear before OpConstant + std::vector groupedTypes[OpConstant]; // stack of switches std::stack switchMerges; @@ -639,7 +589,7 @@ public: // Our loop stack. std::stack loops; - // The stream for outputting warnings and errors. + // The stream for outputing warnings and errors. SpvBuildLogger* logger; }; // end Builder class diff --git a/deps/glslang-new/SPIRV/bitutils.h b/deps/glslang/glslang-old/SPIRV/bitutils.h similarity index 100% rename from deps/glslang-new/SPIRV/bitutils.h rename to deps/glslang/glslang-old/SPIRV/bitutils.h diff --git a/deps/glslang-new/SPIRV/disassemble.cpp b/deps/glslang/glslang-old/SPIRV/disassemble.cpp old mode 100755 new mode 100644 similarity index 82% rename from deps/glslang-new/SPIRV/disassemble.cpp rename to deps/glslang/glslang-old/SPIRV/disassemble.cpp index b432e65d0f..b1023b9218 --- a/deps/glslang-new/SPIRV/disassemble.cpp +++ b/deps/glslang/glslang-old/SPIRV/disassemble.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2014-2015 LunarG, Inc. +//Copyright (C) 2014-2015 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // Disassembler for SPIR-V. @@ -54,10 +54,6 @@ namespace spv { #ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" #endif - -#ifdef NV_EXTENSIONS - #include "GLSL.ext.NV.h" -#endif } } const char* GlslStd450DebugNames[spv::GLSLstd450Count]; @@ -68,10 +64,6 @@ namespace spv { static const char* GLSLextAMDGetDebugNames(const char*, unsigned); #endif -#ifdef NV_EXTENSIONS -static const char* GLSLextNVGetDebugNames(const char*, unsigned); -#endif - static void Kill(std::ostream& out, const char* message) { out << std::endl << "Disassembly failed: " << message << std::endl; @@ -81,15 +73,9 @@ static void Kill(std::ostream& out, const char* message) // used to identify the extended instruction library imported when printing enum ExtInstSet { GLSL450Inst, - #ifdef AMD_EXTENSIONS GLSLextAMDInst, #endif - -#ifdef NV_EXTENSIONS - GLSLextNVInst, -#endif - OpenCLExtInst, }; @@ -353,21 +339,10 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, if (resultId != 0 && idDescriptor[resultId].size() == 0) { switch (opCode) { case OpTypeInt: - switch (stream[word]) { - case 8: idDescriptor[resultId] = "int8_t"; break; - case 16: idDescriptor[resultId] = "int16_t"; break; - default: assert(0); // fallthrough - case 32: idDescriptor[resultId] = "int"; break; - case 64: idDescriptor[resultId] = "int64_t"; break; - } + idDescriptor[resultId] = "int"; break; case OpTypeFloat: - switch (stream[word]) { - case 16: idDescriptor[resultId] = "float16_t"; break; - default: assert(0); // fallthrough - case 32: idDescriptor[resultId] = "float"; break; - case 64: idDescriptor[resultId] = "float64_t"; break; - } + idDescriptor[resultId] = "float"; break; case OpTypeBool: idDescriptor[resultId] = "bool"; @@ -379,18 +354,8 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, idDescriptor[resultId] = "ptr"; break; case OpTypeVector: - if (idDescriptor[stream[word]].size() > 0) { + if (idDescriptor[stream[word]].size() > 0) idDescriptor[resultId].append(idDescriptor[stream[word]].begin(), idDescriptor[stream[word]].begin() + 1); - if (strstr(idDescriptor[stream[word]].c_str(), "8")) { - idDescriptor[resultId].append("8"); - } - if (strstr(idDescriptor[stream[word]].c_str(), "16")) { - idDescriptor[resultId].append("16"); - } - if (strstr(idDescriptor[stream[word]].c_str(), "64")) { - idDescriptor[resultId].append("64"); - } - } idDescriptor[resultId].append("vec"); switch (stream[word + 1]) { case 2: idDescriptor[resultId].append("2"); break; @@ -504,13 +469,6 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, strcmp(spv::E_SPV_AMD_shader_explicit_vertex_parameter, name) == 0 || strcmp(spv::E_SPV_AMD_gcn_shader, name) == 0) { extInstSet = GLSLextAMDInst; -#endif -#ifdef NV_EXTENSIONS - }else if (strcmp(spv::E_SPV_NV_sample_mask_override_coverage, name) == 0 || - strcmp(spv::E_SPV_NV_geometry_shader_passthrough, name) == 0 || - strcmp(spv::E_SPV_NV_viewport_array2, name) == 0 || - strcmp(spv::E_SPV_NVX_multiview_per_view_attributes, name) == 0) { - extInstSet = GLSLextNVInst; #endif } unsigned entrypoint = stream[word - 1]; @@ -521,11 +479,6 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, #ifdef AMD_EXTENSIONS } else if (extInstSet == GLSLextAMDInst) { out << "(" << GLSLextAMDGetDebugNames(name, entrypoint) << ")"; -#endif -#ifdef NV_EXTENSIONS - } - else if (extInstSet == GLSLextNVInst) { - out << "(" << GLSLextNVGetDebugNames(name, entrypoint) << ")"; #endif } } @@ -678,35 +631,6 @@ static const char* GLSLextAMDGetDebugNames(const char* name, unsigned entrypoint } #endif -#ifdef NV_EXTENSIONS -static const char* GLSLextNVGetDebugNames(const char* name, unsigned entrypoint) -{ - if (strcmp(name, spv::E_SPV_NV_sample_mask_override_coverage) == 0 || - strcmp(name, spv::E_SPV_NV_geometry_shader_passthrough) == 0 || - strcmp(name, spv::E_ARB_shader_viewport_layer_array) == 0 || - strcmp(name, spv::E_SPV_NV_viewport_array2) == 0 || - strcmp(spv::E_SPV_NVX_multiview_per_view_attributes, name) == 0) { - switch (entrypoint) { - case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; - case DecorationPassthroughNV: return "PassthroughNV"; - case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; - case DecorationViewportRelativeNV: return "ViewportRelativeNV"; - case BuiltInViewportMaskNV: return "ViewportMaskNV"; - case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; - case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; - case BuiltInSecondaryPositionNV: return "SecondaryPositionNV"; - case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; - case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; - case BuiltInPositionPerViewNV: return "PositionPerViewNV"; - case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; - case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; - default: return "Bad"; - } - } - return "Bad"; -} -#endif - void Disassemble(std::ostream& out, const std::vector& stream) { SpirvStream SpirvStream(out, stream); diff --git a/deps/glslang/glslang-old/SPIRV/disassemble.h b/deps/glslang/glslang-old/SPIRV/disassemble.h new file mode 100755 index 0000000000..f5d0bc23be --- /dev/null +++ b/deps/glslang/glslang-old/SPIRV/disassemble.h @@ -0,0 +1,52 @@ +// +//Copyright (C) 2014-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. + +// +// Disassembler for SPIR-V. +// + +#pragma once +#ifndef disassembler_H +#define disassembler_H + +#include +#include + +namespace spv { + + void Disassemble(std::ostream& out, const std::vector&); + +}; // end namespace spv + +#endif // disassembler_H diff --git a/deps/glslang-new/SPIRV/doc.cpp b/deps/glslang/glslang-old/SPIRV/doc.cpp similarity index 70% rename from deps/glslang-new/SPIRV/doc.cpp rename to deps/glslang/glslang-old/SPIRV/doc.cpp index a905968735..0e68c7ef0b 100755 --- a/deps/glslang-new/SPIRV/doc.cpp +++ b/deps/glslang/glslang-old/SPIRV/doc.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2014-2015 LunarG, Inc. +//Copyright (C) 2014-2015 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // 1) Programmatically fill in instruction/operand information. @@ -48,13 +48,8 @@ namespace spv { extern "C" { // Include C-based headers that don't have a namespace - #include "GLSL.ext.KHR.h" - #include "GLSL.ext.EXT.h" #ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" -#endif -#ifdef NV_EXTENSIONS - #include "GLSL.ext.NV.h" #endif } } @@ -66,14 +61,16 @@ namespace spv { // the specification (or their sanitized versions for auto-generating the // spirv headers. // -// Also, for masks the ceilings are declared next to these, to help keep them in sync. +// Also, the ceilings are declared next to these, to help keep them in sync. // Ceilings should be // - one more than the maximum value an enumerant takes on, for non-mask enumerants -// (for non-sparse enums, this is the number of enumerants) +// (for non-sparse enums, this is the number of enumurants) // - the number of bits consumed by the set of masks -// (for non-sparse mask enums, this is the number of enumerants) +// (for non-sparse mask enums, this is the number of enumurants) // +const int SourceLanguageCeiling = 6; // HLSL todo: need official enumerant + const char* SourceString(int source) { switch (source) { @@ -84,10 +81,13 @@ const char* SourceString(int source) case 4: return "OpenCL_CPP"; case 5: return "HLSL"; + case SourceLanguageCeiling: default: return "Bad"; } } +const int ExecutionModelCeiling = 7; + const char* ExecutionModelString(int model) { switch (model) { @@ -99,10 +99,13 @@ const char* ExecutionModelString(int model) case 5: return "GLCompute"; case 6: return "Kernel"; + case ExecutionModelCeiling: default: return "Bad"; } } +const int AddressingModelCeiling = 3; + const char* AddressingString(int addr) { switch (addr) { @@ -110,10 +113,13 @@ const char* AddressingString(int addr) case 1: return "Physical32"; case 2: return "Physical64"; + case AddressingModelCeiling: default: return "Bad"; } } +const int MemoryModelCeiling = 3; + const char* MemoryString(int mem) { switch (mem) { @@ -121,6 +127,7 @@ const char* MemoryString(int mem) case 1: return "GLSL450"; case 2: return "OpenCL"; + case MemoryModelCeiling: default: return "Bad"; } } @@ -164,12 +171,13 @@ const char* ExecutionModeString(int mode) case 31: return "ContractionOff"; case 32: return "Bad"; - case 4446: return "PostDepthCoverage"; case ExecutionModeCeiling: default: return "Bad"; } } +const int StorageClassCeiling = 12; + const char* StorageClassString(int StorageClass) { switch (StorageClass) { @@ -185,8 +193,8 @@ const char* StorageClassString(int StorageClass) case 9: return "PushConstant"; case 10: return "AtomicCounter"; case 11: return "Image"; - case 12: return "StorageBuffer"; + case StorageClassCeiling: default: return "Bad"; } } @@ -246,21 +254,13 @@ const char* DecorationString(int decoration) default: return "Bad"; #ifdef AMD_EXTENSIONS - case DecorationExplicitInterpAMD: return "ExplicitInterpAMD"; + case 4999: return "ExplicitInterpAMD"; #endif -#ifdef NV_EXTENSIONS - case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; - case DecorationPassthroughNV: return "PassthroughNV"; - case DecorationViewportRelativeNV: return "ViewportRelativeNV"; - case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; -#endif - - case DecorationNonUniformEXT: return "DecorationNonUniformEXT"; - case DecorationHlslCounterBufferGOOGLE: return "DecorationHlslCounterBufferGOOGLE"; - case DecorationHlslSemanticGOOGLE: return "DecorationHlslSemanticGOOGLE"; } } +const int BuiltInCeiling = 44; + const char* BuiltInString(int builtIn) { switch (builtIn) { @@ -309,17 +309,18 @@ const char* BuiltInString(int builtIn) case 42: return "VertexIndex"; // TBD: put next to VertexId? case 43: return "InstanceIndex"; // TBD: put next to InstanceId? + case BuiltInCeiling: + default: return "Bad"; + case 4416: return "SubgroupEqMaskKHR"; case 4417: return "SubgroupGeMaskKHR"; case 4418: return "SubgroupGtMaskKHR"; case 4419: return "SubgroupLeMaskKHR"; case 4420: return "SubgroupLtMaskKHR"; - case 4438: return "DeviceIndex"; - case 4440: return "ViewIndex"; + case 4424: return "BaseVertex"; case 4425: return "BaseInstance"; case 4426: return "DrawIndex"; - case 5014: return "FragStencilRefEXT"; #ifdef AMD_EXTENSIONS case 4992: return "BaryCoordNoPerspAMD"; @@ -330,21 +331,11 @@ const char* BuiltInString(int builtIn) case 4997: return "BaryCoordSmoothSampleAMD"; case 4998: return "BaryCoordPullModelAMD"; #endif - -#ifdef NV_EXTENSIONS - case 5253: return "ViewportMaskNV"; - case 5257: return "SecondaryPositionNV"; - case 5258: return "SecondaryViewportMaskNV"; - case 5261: return "PositionPerViewNV"; - case 5262: return "ViewportMaskPerViewNV"; -#endif - - case 5264: return "FullyCoveredEXT"; - - default: return "Bad"; } } +const int DimensionCeiling = 7; + const char* DimensionString(int dim) { switch (dim) { @@ -356,10 +347,13 @@ const char* DimensionString(int dim) case 5: return "Buffer"; case 6: return "SubpassData"; + case DimensionCeiling: default: return "Bad"; } } +const int SamplerAddressingModeCeiling = 5; + const char* SamplerAddressingModeString(int mode) { switch (mode) { @@ -369,20 +363,26 @@ const char* SamplerAddressingModeString(int mode) case 3: return "Repeat"; case 4: return "RepeatMirrored"; + case SamplerAddressingModeCeiling: default: return "Bad"; } } +const int SamplerFilterModeCeiling = 2; + const char* SamplerFilterModeString(int mode) { switch (mode) { case 0: return "Nearest"; case 1: return "Linear"; + case SamplerFilterModeCeiling: default: return "Bad"; } } +const int ImageFormatCeiling = 40; + const char* ImageFormatString(int format) { switch (format) { @@ -439,11 +439,14 @@ const char* ImageFormatString(int format) case 38: return "R16ui"; case 39: return "R8ui"; + case ImageFormatCeiling: default: return "Bad"; } } +const int ImageChannelOrderCeiling = 19; + const char* ImageChannelOrderString(int format) { switch (format) { @@ -467,11 +470,14 @@ const char* ImageChannelOrderString(int format) case 17: return "sRGBA"; case 18: return "sBGRA"; + case ImageChannelOrderCeiling: default: return "Bad"; } } +const int ImageChannelDataTypeCeiling = 17; + const char* ImageChannelDataTypeString(int type) { switch (type) @@ -494,6 +500,7 @@ const char* ImageChannelDataTypeString(int type) case 15: return "UnormInt24"; case 16: return "UnormInt101010_2"; + case ImageChannelDataTypeCeiling: default: return "Bad"; } @@ -519,6 +526,8 @@ const char* ImageOperandsString(int format) } } +const int FPFastMathCeiling = 5; + const char* FPFastMathString(int mode) { switch (mode) { @@ -528,10 +537,13 @@ const char* FPFastMathString(int mode) case 3: return "AllowRecip"; case 4: return "Fast"; + case FPFastMathCeiling: default: return "Bad"; } } +const int FPRoundingModeCeiling = 4; + const char* FPRoundingModeString(int mode) { switch (mode) { @@ -540,20 +552,26 @@ const char* FPRoundingModeString(int mode) case 2: return "RTP"; case 3: return "RTN"; + case FPRoundingModeCeiling: default: return "Bad"; } } +const int LinkageTypeCeiling = 2; + const char* LinkageTypeString(int type) { switch (type) { case 0: return "Export"; case 1: return "Import"; + case LinkageTypeCeiling: default: return "Bad"; } } +const int FuncParamAttrCeiling = 8; + const char* FuncParamAttrString(int attr) { switch (attr) { @@ -566,10 +584,13 @@ const char* FuncParamAttrString(int attr) case 6: return "NoWrite"; case 7: return "NoReadWrite"; + case FuncParamAttrCeiling: default: return "Bad"; } } +const int AccessQualifierCeiling = 3; + const char* AccessQualifierString(int attr) { switch (attr) { @@ -577,6 +598,7 @@ const char* AccessQualifierString(int attr) case 1: return "WriteOnly"; case 2: return "ReadWrite"; + case AccessQualifierCeiling: default: return "Bad"; } } @@ -594,15 +616,13 @@ const char* SelectControlString(int cont) } } -const int LoopControlCeiling = 4; +const int LoopControlCeiling = 2; const char* LoopControlString(int cont) { switch (cont) { case 0: return "Unroll"; case 1: return "DontUnroll"; - case 2: return "DependencyInfinite"; - case 3: return "DependencyLength"; case LoopControlCeiling: default: return "Bad"; @@ -624,6 +644,8 @@ const char* FunctionControlString(int cont) } } +const int MemorySemanticsCeiling = 12; + const char* MemorySemanticsString(int mem) { // Note: No bits set (None) means "Relaxed" @@ -641,10 +663,13 @@ const char* MemorySemanticsString(int mem) case 10: return "AtomicCounterMemory"; case 11: return "ImageMemory"; + case MemorySemanticsCeiling: default: return "Bad"; } } +const int MemoryAccessCeiling = 3; + const char* MemoryAccessString(int mem) { switch (mem) { @@ -652,10 +677,13 @@ const char* MemoryAccessString(int mem) case 1: return "Aligned"; case 2: return "Nontemporal"; + case MemoryAccessCeiling: default: return "Bad"; } } +const int ScopeCeiling = 5; + const char* ScopeString(int mem) { switch (mem) { @@ -665,29 +693,29 @@ const char* ScopeString(int mem) case 3: return "Subgroup"; case 4: return "Invocation"; + case ScopeCeiling: default: return "Bad"; } } +const int GroupOperationCeiling = 3; + const char* GroupOperationString(int gop) { switch (gop) { - case GroupOperationReduce: return "Reduce"; - case GroupOperationInclusiveScan: return "InclusiveScan"; - case GroupOperationExclusiveScan: return "ExclusiveScan"; - case GroupOperationClusteredReduce: return "ClusteredReduce"; -#ifdef NV_EXTENSIONS - case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV"; - case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV"; - case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV"; -#endif + case 0: return "Reduce"; + case 1: return "InclusiveScan"; + case 2: return "ExclusiveScan"; + case GroupOperationCeiling: default: return "Bad"; } } +const int KernelEnqueueFlagsCeiling = 3; + const char* KernelEnqueueFlagsString(int flag) { switch (flag) @@ -696,20 +724,26 @@ const char* KernelEnqueueFlagsString(int flag) case 1: return "WaitKernel"; case 2: return "WaitWorkGroup"; + case KernelEnqueueFlagsCeiling: default: return "Bad"; } } +const int KernelProfilingInfoCeiling = 1; + const char* KernelProfilingInfoString(int info) { switch (info) { case 0: return "CmdExecTime"; + case KernelProfilingInfoCeiling: default: return "Bad"; } } +const int CapabilityCeiling = 58; + const char* CapabilityString(int info) { switch (info) @@ -772,64 +806,12 @@ const char* CapabilityString(int info) case 55: return "StorageImageReadWithoutFormat"; case 56: return "StorageImageWriteWithoutFormat"; case 57: return "MultiViewport"; - case 61: return "GroupNonUniform"; - case 62: return "GroupNonUniformVote"; - case 63: return "GroupNonUniformArithmetic"; - case 64: return "GroupNonUniformBallot"; - case 65: return "GroupNonUniformShuffle"; - case 66: return "GroupNonUniformShuffleRelative"; - case 67: return "GroupNonUniformClustered"; - case 68: return "GroupNonUniformQuad"; - - case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR"; - case CapabilityDrawParameters: return "DrawParameters"; - case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR"; - - case CapabilityStorageUniformBufferBlock16: return "StorageUniformBufferBlock16"; - case CapabilityStorageUniform16: return "StorageUniform16"; - case CapabilityStoragePushConstant16: return "StoragePushConstant16"; - case CapabilityStorageInputOutput16: return "StorageInputOutput16"; - - case CapabilityDeviceGroup: return "DeviceGroup"; - case CapabilityMultiView: return "MultiView"; - - case CapabilityStencilExportEXT: return "StencilExportEXT"; - -#ifdef AMD_EXTENSIONS - case CapabilityFloat16ImageAMD: return "Float16ImageAMD"; - case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; - case CapabilityFragmentMaskAMD: return "FragmentMaskAMD"; - case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD"; -#endif - - case CapabilityAtomicStorageOps: return "AtomicStorageOps"; - - case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage"; -#ifdef NV_EXTENSIONS - case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; - case CapabilityShaderViewportIndexLayerNV: return "ShaderViewportIndexLayerNV"; - case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; - case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; - case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; - case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; -#endif - - case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT"; - - case CapabilityShaderNonUniformEXT: return "CapabilityShaderNonUniformEXT"; - case CapabilityRuntimeDescriptorArrayEXT: return "CapabilityRuntimeDescriptorArrayEXT"; - case CapabilityInputAttachmentArrayDynamicIndexingEXT: return "CapabilityInputAttachmentArrayDynamicIndexingEXT"; - case CapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "CapabilityUniformTexelBufferArrayDynamicIndexingEXT"; - case CapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "CapabilityStorageTexelBufferArrayDynamicIndexingEXT"; - case CapabilityUniformBufferArrayNonUniformIndexingEXT: return "CapabilityUniformBufferArrayNonUniformIndexingEXT"; - case CapabilitySampledImageArrayNonUniformIndexingEXT: return "CapabilitySampledImageArrayNonUniformIndexingEXT"; - case CapabilityStorageBufferArrayNonUniformIndexingEXT: return "CapabilityStorageBufferArrayNonUniformIndexingEXT"; - case CapabilityStorageImageArrayNonUniformIndexingEXT: return "CapabilityStorageImageArrayNonUniformIndexingEXT"; - case CapabilityInputAttachmentArrayNonUniformIndexingEXT: return "CapabilityInputAttachmentArrayNonUniformIndexingEXT"; - case CapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "CapabilityUniformTexelBufferArrayNonUniformIndexingEXT"; - case CapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "CapabilityStorageTexelBufferArrayNonUniformIndexingEXT"; + case CapabilityCeiling: default: return "Bad"; + + case 4423: return "SubgroupBallotKHR"; + case 4427: return "DrawParameters"; } } @@ -1158,50 +1140,12 @@ const char* OpcodeString(int op) case 319: return "OpAtomicFlagClear"; case 320: return "OpImageSparseRead"; - case OpModuleProcessed: return "OpModuleProcessed"; - case OpDecorateId: return "OpDecorateId"; - - case 333: return "OpGroupNonUniformElect"; - case 334: return "OpGroupNonUniformAll"; - case 335: return "OpGroupNonUniformAny"; - case 336: return "OpGroupNonUniformAllEqual"; - case 337: return "OpGroupNonUniformBroadcast"; - case 338: return "OpGroupNonUniformBroadcastFirst"; - case 339: return "OpGroupNonUniformBallot"; - case 340: return "OpGroupNonUniformInverseBallot"; - case 341: return "OpGroupNonUniformBallotBitExtract"; - case 342: return "OpGroupNonUniformBallotBitCount"; - case 343: return "OpGroupNonUniformBallotFindLSB"; - case 344: return "OpGroupNonUniformBallotFindMSB"; - case 345: return "OpGroupNonUniformShuffle"; - case 346: return "OpGroupNonUniformShuffleXor"; - case 347: return "OpGroupNonUniformShuffleUp"; - case 348: return "OpGroupNonUniformShuffleDown"; - case 349: return "OpGroupNonUniformIAdd"; - case 350: return "OpGroupNonUniformFAdd"; - case 351: return "OpGroupNonUniformIMul"; - case 352: return "OpGroupNonUniformFMul"; - case 353: return "OpGroupNonUniformSMin"; - case 354: return "OpGroupNonUniformUMin"; - case 355: return "OpGroupNonUniformFMin"; - case 356: return "OpGroupNonUniformSMax"; - case 357: return "OpGroupNonUniformUMax"; - case 358: return "OpGroupNonUniformFMax"; - case 359: return "OpGroupNonUniformBitwiseAnd"; - case 360: return "OpGroupNonUniformBitwiseOr"; - case 361: return "OpGroupNonUniformBitwiseXor"; - case 362: return "OpGroupNonUniformLogicalAnd"; - case 363: return "OpGroupNonUniformLogicalOr"; - case 364: return "OpGroupNonUniformLogicalXor"; - case 365: return "OpGroupNonUniformQuadBroadcast"; - case 366: return "OpGroupNonUniformQuadSwap"; + case OpcodeCeiling: + default: + return "Bad"; case 4421: return "OpSubgroupBallotKHR"; case 4422: return "OpSubgroupFirstInvocationKHR"; - case 4428: return "OpSubgroupAllKHR"; - case 4429: return "OpSubgroupAnyKHR"; - case 4430: return "OpSubgroupAllEqualKHR"; - case 4432: return "OpSubgroupReadInvocationKHR"; #ifdef AMD_EXTENSIONS case 5000: return "OpGroupIAddNonUniformAMD"; @@ -1212,19 +1156,7 @@ const char* OpcodeString(int op) case 5005: return "OpGroupFMaxNonUniformAMD"; case 5006: return "OpGroupUMaxNonUniformAMD"; case 5007: return "OpGroupSMaxNonUniformAMD"; - - case 5011: return "OpFragmentMaskFetchAMD"; - case 5012: return "OpFragmentFetchAMD"; #endif - - case OpDecorateStringGOOGLE: return "OpDecorateStringGOOGLE"; - case OpMemberDecorateStringGOOGLE: return "OpMemberDecorateStringGOOGLE"; - -#ifdef NV_EXTENSIONS - case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; -#endif - default: - return "Bad"; } } @@ -1235,12 +1167,35 @@ OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; OperandParameters DecorationOperands[DecorationCeiling]; EnumDefinition OperandClassParams[OperandCount]; +EnumParameters ExecutionModelParams[ExecutionModelCeiling]; +EnumParameters AddressingParams[AddressingModelCeiling]; +EnumParameters MemoryParams[MemoryModelCeiling]; EnumParameters ExecutionModeParams[ExecutionModeCeiling]; +EnumParameters StorageParams[StorageClassCeiling]; +EnumParameters SamplerAddressingModeParams[SamplerAddressingModeCeiling]; +EnumParameters SamplerFilterModeParams[SamplerFilterModeCeiling]; +EnumParameters ImageFormatParams[ImageFormatCeiling]; +EnumParameters ImageChannelOrderParams[ImageChannelOrderCeiling]; +EnumParameters ImageChannelDataTypeParams[ImageChannelDataTypeCeiling]; EnumParameters ImageOperandsParams[ImageOperandsCeiling]; +EnumParameters FPFastMathParams[FPFastMathCeiling]; +EnumParameters FPRoundingModeParams[FPRoundingModeCeiling]; +EnumParameters LinkageTypeParams[LinkageTypeCeiling]; EnumParameters DecorationParams[DecorationCeiling]; +EnumParameters BuiltInParams[BuiltInCeiling]; +EnumParameters DimensionalityParams[DimensionCeiling]; +EnumParameters FuncParamAttrParams[FuncParamAttrCeiling]; +EnumParameters AccessQualifierParams[AccessQualifierCeiling]; +EnumParameters GroupOperationParams[GroupOperationCeiling]; EnumParameters LoopControlParams[FunctionControlCeiling]; EnumParameters SelectionControlParams[SelectControlCeiling]; EnumParameters FunctionControlParams[FunctionControlCeiling]; +EnumParameters MemorySemanticsParams[MemorySemanticsCeiling]; +EnumParameters MemoryAccessParams[MemoryAccessCeiling]; +EnumParameters ScopeParams[ScopeCeiling]; +EnumParameters KernelEnqueueFlagsParams[KernelEnqueueFlagsCeiling]; +EnumParameters KernelProfilingInfoParams[KernelProfilingInfoCeiling]; +EnumParameters CapabilityParams[CapabilityCeiling]; // Set up all the parameterizing descriptions of the opcodes, operands, etc. void Parameterize() @@ -1290,10 +1245,7 @@ void Parameterize() InstructionDesc[OpImageWrite].setResultAndType(false, false); InstructionDesc[OpDecorationGroup].setResultAndType(true, false); InstructionDesc[OpDecorate].setResultAndType(false, false); - InstructionDesc[OpDecorateId].setResultAndType(false, false); - InstructionDesc[OpDecorateStringGOOGLE].setResultAndType(false, false); InstructionDesc[OpMemberDecorate].setResultAndType(false, false); - InstructionDesc[OpMemberDecorateStringGOOGLE].setResultAndType(false, false); InstructionDesc[OpGroupDecorate].setResultAndType(false, false); InstructionDesc[OpGroupMemberDecorate].setResultAndType(false, false); InstructionDesc[OpName].setResultAndType(false, false); @@ -1332,7 +1284,6 @@ void Parameterize() InstructionDesc[OpReleaseEvent].setResultAndType(false, false); InstructionDesc[OpGroupWaitEvents].setResultAndType(false, false); InstructionDesc[OpAtomicFlagClear].setResultAndType(false, false); - InstructionDesc[OpModuleProcessed].setResultAndType(false, false); // Specific additional context-dependent operands @@ -1370,39 +1321,354 @@ void Parameterize() DecorationOperands[DecorationInputAttachmentIndex].push(OperandLiteralNumber, "'Attachment Index'"); DecorationOperands[DecorationAlignment].push(OperandLiteralNumber, "'Alignment'"); - OperandClassParams[OperandSource].set(0, SourceString, 0); - OperandClassParams[OperandExecutionModel].set(0, ExecutionModelString, nullptr); - OperandClassParams[OperandAddressing].set(0, AddressingString, nullptr); - OperandClassParams[OperandMemory].set(0, MemoryString, nullptr); + OperandClassParams[OperandSource].set(SourceLanguageCeiling, SourceString, 0); + OperandClassParams[OperandExecutionModel].set(ExecutionModelCeiling, ExecutionModelString, ExecutionModelParams); + OperandClassParams[OperandAddressing].set(AddressingModelCeiling, AddressingString, AddressingParams); + OperandClassParams[OperandMemory].set(MemoryModelCeiling, MemoryString, MemoryParams); OperandClassParams[OperandExecutionMode].set(ExecutionModeCeiling, ExecutionModeString, ExecutionModeParams); OperandClassParams[OperandExecutionMode].setOperands(ExecutionModeOperands); - OperandClassParams[OperandStorage].set(0, StorageClassString, nullptr); - OperandClassParams[OperandDimensionality].set(0, DimensionString, nullptr); - OperandClassParams[OperandSamplerAddressingMode].set(0, SamplerAddressingModeString, nullptr); - OperandClassParams[OperandSamplerFilterMode].set(0, SamplerFilterModeString, nullptr); - OperandClassParams[OperandSamplerImageFormat].set(0, ImageFormatString, nullptr); - OperandClassParams[OperandImageChannelOrder].set(0, ImageChannelOrderString, nullptr); - OperandClassParams[OperandImageChannelDataType].set(0, ImageChannelDataTypeString, nullptr); + OperandClassParams[OperandStorage].set(StorageClassCeiling, StorageClassString, StorageParams); + OperandClassParams[OperandDimensionality].set(DimensionCeiling, DimensionString, DimensionalityParams); + OperandClassParams[OperandSamplerAddressingMode].set(SamplerAddressingModeCeiling, SamplerAddressingModeString, SamplerAddressingModeParams); + OperandClassParams[OperandSamplerFilterMode].set(SamplerFilterModeCeiling, SamplerFilterModeString, SamplerFilterModeParams); + OperandClassParams[OperandSamplerImageFormat].set(ImageFormatCeiling, ImageFormatString, ImageFormatParams); + OperandClassParams[OperandImageChannelOrder].set(ImageChannelOrderCeiling, ImageChannelOrderString, ImageChannelOrderParams); + OperandClassParams[OperandImageChannelDataType].set(ImageChannelDataTypeCeiling, ImageChannelDataTypeString, ImageChannelDataTypeParams); OperandClassParams[OperandImageOperands].set(ImageOperandsCeiling, ImageOperandsString, ImageOperandsParams, true); - OperandClassParams[OperandFPFastMath].set(0, FPFastMathString, nullptr, true); - OperandClassParams[OperandFPRoundingMode].set(0, FPRoundingModeString, nullptr); - OperandClassParams[OperandLinkageType].set(0, LinkageTypeString, nullptr); - OperandClassParams[OperandFuncParamAttr].set(0, FuncParamAttrString, nullptr); - OperandClassParams[OperandAccessQualifier].set(0, AccessQualifierString, nullptr); + OperandClassParams[OperandFPFastMath].set(FPFastMathCeiling, FPFastMathString, FPFastMathParams, true); + OperandClassParams[OperandFPRoundingMode].set(FPRoundingModeCeiling, FPRoundingModeString, FPRoundingModeParams); + OperandClassParams[OperandLinkageType].set(LinkageTypeCeiling, LinkageTypeString, LinkageTypeParams); + OperandClassParams[OperandFuncParamAttr].set(FuncParamAttrCeiling, FuncParamAttrString, FuncParamAttrParams); + OperandClassParams[OperandAccessQualifier].set(AccessQualifierCeiling, AccessQualifierString, AccessQualifierParams); OperandClassParams[OperandDecoration].set(DecorationCeiling, DecorationString, DecorationParams); OperandClassParams[OperandDecoration].setOperands(DecorationOperands); - OperandClassParams[OperandBuiltIn].set(0, BuiltInString, nullptr); + OperandClassParams[OperandBuiltIn].set(BuiltInCeiling, BuiltInString, BuiltInParams); OperandClassParams[OperandSelect].set(SelectControlCeiling, SelectControlString, SelectionControlParams, true); OperandClassParams[OperandLoop].set(LoopControlCeiling, LoopControlString, LoopControlParams, true); OperandClassParams[OperandFunction].set(FunctionControlCeiling, FunctionControlString, FunctionControlParams, true); - OperandClassParams[OperandMemorySemantics].set(0, MemorySemanticsString, nullptr, true); - OperandClassParams[OperandMemoryAccess].set(0, MemoryAccessString, nullptr, true); - OperandClassParams[OperandScope].set(0, ScopeString, nullptr); - OperandClassParams[OperandGroupOperation].set(0, GroupOperationString, nullptr); - OperandClassParams[OperandKernelEnqueueFlags].set(0, KernelEnqueueFlagsString, nullptr); - OperandClassParams[OperandKernelProfilingInfo].set(0, KernelProfilingInfoString, nullptr, true); - OperandClassParams[OperandCapability].set(0, CapabilityString, nullptr); - OperandClassParams[OperandOpcode].set(OpCodeMask + 1, OpcodeString, 0); + OperandClassParams[OperandMemorySemantics].set(MemorySemanticsCeiling, MemorySemanticsString, MemorySemanticsParams, true); + OperandClassParams[OperandMemoryAccess].set(MemoryAccessCeiling, MemoryAccessString, MemoryAccessParams, true); + OperandClassParams[OperandScope].set(ScopeCeiling, ScopeString, ScopeParams); + OperandClassParams[OperandGroupOperation].set(GroupOperationCeiling, GroupOperationString, GroupOperationParams); + OperandClassParams[OperandKernelEnqueueFlags].set(KernelEnqueueFlagsCeiling, KernelEnqueueFlagsString, KernelEnqueueFlagsParams); + OperandClassParams[OperandKernelProfilingInfo].set(KernelProfilingInfoCeiling, KernelProfilingInfoString, KernelProfilingInfoParams, true); + OperandClassParams[OperandCapability].set(CapabilityCeiling, CapabilityString, CapabilityParams); + OperandClassParams[OperandOpcode].set(OpcodeCeiling, OpcodeString, 0); + + CapabilityParams[CapabilityShader].caps.push_back(CapabilityMatrix); + CapabilityParams[CapabilityGeometry].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityTessellation].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityVector16].caps.push_back(CapabilityKernel); + CapabilityParams[CapabilityFloat16Buffer].caps.push_back(CapabilityKernel); + CapabilityParams[CapabilityInt64Atomics].caps.push_back(CapabilityInt64); + CapabilityParams[CapabilityImageBasic].caps.push_back(CapabilityKernel); + CapabilityParams[CapabilityImageReadWrite].caps.push_back(CapabilityImageBasic); + CapabilityParams[CapabilityImageMipmap].caps.push_back(CapabilityImageBasic); + CapabilityParams[CapabilityPipes].caps.push_back(CapabilityKernel); + CapabilityParams[CapabilityDeviceEnqueue].caps.push_back(CapabilityKernel); + CapabilityParams[CapabilityLiteralSampler].caps.push_back(CapabilityKernel); + CapabilityParams[CapabilityAtomicStorage].caps.push_back(CapabilityShader); + CapabilityParams[CapabilitySampleRateShading].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityTessellationPointSize].caps.push_back(CapabilityTessellation); + CapabilityParams[CapabilityGeometryPointSize].caps.push_back(CapabilityGeometry); + CapabilityParams[CapabilityImageGatherExtended].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityStorageImageExtendedFormats].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityStorageImageMultisample].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityUniformBufferArrayDynamicIndexing].caps.push_back(CapabilityShader); + CapabilityParams[CapabilitySampledImageArrayDynamicIndexing].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityStorageBufferArrayDynamicIndexing].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityStorageImageArrayDynamicIndexing].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityClipDistance].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityCullDistance].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityGenericPointer].caps.push_back(CapabilityAddresses); + CapabilityParams[CapabilityInt8].caps.push_back(CapabilityKernel); + CapabilityParams[CapabilityInputAttachment].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityMinLod].caps.push_back(CapabilityShader); + CapabilityParams[CapabilitySparseResidency].caps.push_back(CapabilityShader); + CapabilityParams[CapabilitySampled1D].caps.push_back(CapabilityShader); + CapabilityParams[CapabilitySampledRect].caps.push_back(CapabilityShader); + CapabilityParams[CapabilitySampledBuffer].caps.push_back(CapabilityShader); + CapabilityParams[CapabilitySampledCubeArray].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityImageMSArray].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityImage1D].caps.push_back(CapabilitySampled1D); + CapabilityParams[CapabilityImageRect].caps.push_back(CapabilitySampledRect); + CapabilityParams[CapabilityImageBuffer].caps.push_back(CapabilitySampledBuffer); + CapabilityParams[CapabilityImageCubeArray].caps.push_back(CapabilitySampledCubeArray); + CapabilityParams[CapabilityImageQuery].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityDerivativeControl].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityInterpolationFunction].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityTransformFeedback].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityGeometryStreams].caps.push_back(CapabilityGeometry); + CapabilityParams[CapabilityStorageImageReadWithoutFormat].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityStorageImageWriteWithoutFormat].caps.push_back(CapabilityShader); + CapabilityParams[CapabilityMultiViewport].caps.push_back(CapabilityGeometry); + + AddressingParams[AddressingModelPhysical32].caps.push_back(CapabilityAddresses); + AddressingParams[AddressingModelPhysical64].caps.push_back(CapabilityAddresses); + + MemoryParams[MemoryModelSimple].caps.push_back(CapabilityShader); + MemoryParams[MemoryModelGLSL450].caps.push_back(CapabilityShader); + MemoryParams[MemoryModelOpenCL].caps.push_back(CapabilityKernel); + + MemorySemanticsParams[MemorySemanticsUniformMemoryShift].caps.push_back(CapabilityShader); + MemorySemanticsParams[MemorySemanticsAtomicCounterMemoryShift].caps.push_back(CapabilityAtomicStorage); + + ExecutionModelParams[ExecutionModelVertex].caps.push_back(CapabilityShader); + ExecutionModelParams[ExecutionModelTessellationControl].caps.push_back(CapabilityTessellation); + ExecutionModelParams[ExecutionModelTessellationEvaluation].caps.push_back(CapabilityTessellation); + ExecutionModelParams[ExecutionModelGeometry].caps.push_back(CapabilityGeometry); + ExecutionModelParams[ExecutionModelFragment].caps.push_back(CapabilityShader); + ExecutionModelParams[ExecutionModelGLCompute].caps.push_back(CapabilityShader); + ExecutionModelParams[ExecutionModelKernel].caps.push_back(CapabilityKernel); + + // Storage capabilites + StorageParams[StorageClassInput].caps.push_back(CapabilityShader); + StorageParams[StorageClassUniform].caps.push_back(CapabilityShader); + StorageParams[StorageClassOutput].caps.push_back(CapabilityShader); + StorageParams[StorageClassPrivate].caps.push_back(CapabilityShader); + StorageParams[StorageClassGeneric].caps.push_back(CapabilityKernel); + StorageParams[StorageClassAtomicCounter].caps.push_back(CapabilityAtomicStorage); + StorageParams[StorageClassPushConstant].caps.push_back(CapabilityShader); + + // Sampler Filter & Addressing mode capabilities + SamplerAddressingModeParams[SamplerAddressingModeNone].caps.push_back(CapabilityKernel); + SamplerAddressingModeParams[SamplerAddressingModeClampToEdge].caps.push_back(CapabilityKernel); + SamplerAddressingModeParams[SamplerAddressingModeClamp].caps.push_back(CapabilityKernel); + SamplerAddressingModeParams[SamplerAddressingModeRepeat].caps.push_back(CapabilityKernel); + SamplerAddressingModeParams[SamplerAddressingModeRepeatMirrored].caps.push_back(CapabilityKernel); + + SamplerFilterModeParams[SamplerFilterModeNearest].caps.push_back(CapabilityKernel); + SamplerFilterModeParams[SamplerFilterModeLinear].caps.push_back(CapabilityKernel); + + // image format capabilities + + // ES/Desktop float + ImageFormatParams[ImageFormatRgba32f].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatRgba16f].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatR32f].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatRgba8].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatRgba8Snorm].caps.push_back(CapabilityShader); + + // Desktop float + ImageFormatParams[ImageFormatRg32f].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg16f].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR11fG11fB10f].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR16f].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRgba16].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRgb10A2].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg16].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg8].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR16].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR8].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRgba16Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg16Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg8Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR16Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR8Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); + + // ES/Desktop int + ImageFormatParams[ImageFormatRgba32i].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatRgba16i].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatRgba8i].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatR32i].caps.push_back(CapabilityShader); + + // Desktop int + ImageFormatParams[ImageFormatRg32i].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg16i].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg8i].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR16i].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR8i].caps.push_back(CapabilityStorageImageExtendedFormats); + + // ES/Desktop uint + ImageFormatParams[ImageFormatRgba32ui].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatRgba16ui].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatRgba8ui].caps.push_back(CapabilityShader); + ImageFormatParams[ImageFormatR32ui].caps.push_back(CapabilityShader); + + // Desktop uint + ImageFormatParams[ImageFormatRgb10a2ui].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg32ui].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg16ui].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatRg8ui].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR16ui].caps.push_back(CapabilityStorageImageExtendedFormats); + ImageFormatParams[ImageFormatR8ui].caps.push_back(CapabilityStorageImageExtendedFormats); + + // image channel order capabilities + for (int i = 0; i < ImageChannelOrderCeiling; ++i) { + ImageChannelOrderParams[i].caps.push_back(CapabilityKernel); + } + + // image channel type capabilities + for (int i = 0; i < ImageChannelDataTypeCeiling; ++i) { + ImageChannelDataTypeParams[i].caps.push_back(CapabilityKernel); + } + + // image lookup operands + ImageOperandsParams[ImageOperandsBiasShift].caps.push_back(CapabilityShader); + ImageOperandsParams[ImageOperandsOffsetShift].caps.push_back(CapabilityImageGatherExtended); + ImageOperandsParams[ImageOperandsMinLodShift].caps.push_back(CapabilityMinLod); + + // fast math flags capabilities + for (int i = 0; i < FPFastMathCeiling; ++i) { + FPFastMathParams[i].caps.push_back(CapabilityKernel); + } + + // fp rounding mode capabilities + for (int i = 0; i < FPRoundingModeCeiling; ++i) { + FPRoundingModeParams[i].caps.push_back(CapabilityKernel); + } + + // linkage types + for (int i = 0; i < LinkageTypeCeiling; ++i) { + LinkageTypeParams[i].caps.push_back(CapabilityLinkage); + } + + // function argument types + for (int i = 0; i < FuncParamAttrCeiling; ++i) { + FuncParamAttrParams[i].caps.push_back(CapabilityKernel); + } + + // function argument types + for (int i = 0; i < AccessQualifierCeiling; ++i) { + AccessQualifierParams[i].caps.push_back(CapabilityKernel); + } + + ExecutionModeParams[ExecutionModeInvocations].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeSpacingEqual].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeSpacingFractionalEven].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeSpacingFractionalOdd].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeVertexOrderCw].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeVertexOrderCcw].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModePixelCenterInteger].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModeOriginUpperLeft].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModeOriginLowerLeft].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModeEarlyFragmentTests].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModePointMode].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeXfb].caps.push_back(CapabilityTransformFeedback); + ExecutionModeParams[ExecutionModeDepthReplacing].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModeDepthGreater].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModeDepthLess].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModeDepthUnchanged].caps.push_back(CapabilityShader); + ExecutionModeParams[ExecutionModeLocalSizeHint].caps.push_back(CapabilityKernel); + ExecutionModeParams[ExecutionModeInputPoints].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeInputLines].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeInputLinesAdjacency].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeTriangles].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeTriangles].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeInputTrianglesAdjacency].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeQuads].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeIsolines].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeOutputVertices].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeOutputVertices].caps.push_back(CapabilityTessellation); + ExecutionModeParams[ExecutionModeOutputPoints].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeOutputLineStrip].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeOutputTriangleStrip].caps.push_back(CapabilityGeometry); + ExecutionModeParams[ExecutionModeVecTypeHint].caps.push_back(CapabilityKernel); + ExecutionModeParams[ExecutionModeContractionOff].caps.push_back(CapabilityKernel); + + DecorationParams[DecorationRelaxedPrecision].caps.push_back(CapabilityShader); + DecorationParams[DecorationBlock].caps.push_back(CapabilityShader); + DecorationParams[DecorationBufferBlock].caps.push_back(CapabilityShader); + DecorationParams[DecorationRowMajor].caps.push_back(CapabilityMatrix); + DecorationParams[DecorationColMajor].caps.push_back(CapabilityMatrix); + DecorationParams[DecorationGLSLShared].caps.push_back(CapabilityShader); + DecorationParams[DecorationGLSLPacked].caps.push_back(CapabilityShader); + DecorationParams[DecorationNoPerspective].caps.push_back(CapabilityShader); + DecorationParams[DecorationFlat].caps.push_back(CapabilityShader); + DecorationParams[DecorationPatch].caps.push_back(CapabilityTessellation); + DecorationParams[DecorationCentroid].caps.push_back(CapabilityShader); + DecorationParams[DecorationSample].caps.push_back(CapabilitySampleRateShading); + DecorationParams[DecorationInvariant].caps.push_back(CapabilityShader); + DecorationParams[DecorationConstant].caps.push_back(CapabilityKernel); + DecorationParams[DecorationUniform].caps.push_back(CapabilityShader); + DecorationParams[DecorationCPacked].caps.push_back(CapabilityKernel); + DecorationParams[DecorationSaturatedConversion].caps.push_back(CapabilityKernel); + DecorationParams[DecorationStream].caps.push_back(CapabilityGeometryStreams); + DecorationParams[DecorationLocation].caps.push_back(CapabilityShader); + DecorationParams[DecorationComponent].caps.push_back(CapabilityShader); + DecorationParams[DecorationOffset].caps.push_back(CapabilityShader); + DecorationParams[DecorationIndex].caps.push_back(CapabilityShader); + DecorationParams[DecorationBinding].caps.push_back(CapabilityShader); + DecorationParams[DecorationDescriptorSet].caps.push_back(CapabilityShader); + DecorationParams[DecorationXfbBuffer].caps.push_back(CapabilityTransformFeedback); + DecorationParams[DecorationXfbStride].caps.push_back(CapabilityTransformFeedback); + DecorationParams[DecorationArrayStride].caps.push_back(CapabilityShader); + DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityMatrix); + DecorationParams[DecorationFuncParamAttr].caps.push_back(CapabilityKernel); + DecorationParams[DecorationFPRoundingMode].caps.push_back(CapabilityKernel); + DecorationParams[DecorationFPFastMathMode].caps.push_back(CapabilityKernel); + DecorationParams[DecorationLinkageAttributes].caps.push_back(CapabilityLinkage); + DecorationParams[DecorationSpecId].caps.push_back(CapabilityShader); + DecorationParams[DecorationNoContraction].caps.push_back(CapabilityShader); + DecorationParams[DecorationInputAttachmentIndex].caps.push_back(CapabilityInputAttachment); + DecorationParams[DecorationAlignment].caps.push_back(CapabilityKernel); + + BuiltInParams[BuiltInPosition].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInPointSize].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityClipDistance); + BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityCullDistance); + + BuiltInParams[BuiltInVertexId].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInVertexId].desc = "Vertex ID, which takes on values 0, 1, 2, . . . ."; + + BuiltInParams[BuiltInInstanceId].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInInstanceId].desc = "Instance ID, which takes on values 0, 1, 2, . . . ."; + + BuiltInParams[BuiltInVertexIndex].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInVertexIndex].desc = "Vertex index, which takes on values base, base+1, base+2, . . . ."; + + BuiltInParams[BuiltInInstanceIndex].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInInstanceIndex].desc = "Instance index, which takes on values base, base+1, base+2, . . . ."; + + BuiltInParams[BuiltInPrimitiveId].caps.push_back(CapabilityGeometry); + BuiltInParams[BuiltInPrimitiveId].caps.push_back(CapabilityTessellation); + BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityGeometry); + BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityTessellation); + BuiltInParams[BuiltInLayer].caps.push_back(CapabilityGeometry); + BuiltInParams[BuiltInViewportIndex].caps.push_back(CapabilityMultiViewport); + BuiltInParams[BuiltInTessLevelOuter].caps.push_back(CapabilityTessellation); + BuiltInParams[BuiltInTessLevelInner].caps.push_back(CapabilityTessellation); + BuiltInParams[BuiltInTessCoord].caps.push_back(CapabilityTessellation); + BuiltInParams[BuiltInPatchVertices].caps.push_back(CapabilityTessellation); + BuiltInParams[BuiltInFragCoord].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInPointCoord].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInFrontFacing].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInSampleId].caps.push_back(CapabilitySampleRateShading); + BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilitySampleRateShading); + BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilitySampleRateShading); + BuiltInParams[BuiltInFragDepth].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInHelperInvocation].caps.push_back(CapabilityShader); + BuiltInParams[BuiltInWorkDim].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInGlobalSize].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInEnqueuedWorkgroupSize].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInGlobalOffset].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInGlobalLinearId].caps.push_back(CapabilityKernel); + + BuiltInParams[BuiltInSubgroupSize].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInSubgroupMaxSize].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInNumSubgroups].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInNumEnqueuedSubgroups].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInSubgroupId].caps.push_back(CapabilityKernel); + BuiltInParams[BuiltInSubgroupLocalInvocationId].caps.push_back(CapabilityKernel); + + DimensionalityParams[Dim1D].caps.push_back(CapabilitySampled1D); + DimensionalityParams[DimCube].caps.push_back(CapabilityShader); + DimensionalityParams[DimRect].caps.push_back(CapabilitySampledRect); + DimensionalityParams[DimBuffer].caps.push_back(CapabilitySampledBuffer); + DimensionalityParams[DimSubpassData].caps.push_back(CapabilityInputAttachment); + + // Group Operations + for (int i = 0; i < GroupOperationCeiling; ++i) { + GroupOperationParams[i].caps.push_back(CapabilityKernel); + } + + // Enqueue flags + for (int i = 0; i < KernelEnqueueFlagsCeiling; ++i) { + KernelEnqueueFlagsParams[i].caps.push_back(CapabilityKernel); + } + + // Profiling info + KernelProfilingInfoParams[0].caps.push_back(CapabilityKernel); // set name of operator, an initial set of style operands, and the description @@ -1454,6 +1720,7 @@ void Parameterize() InstructionDesc[OpTypeVector].operands.push(OperandId, "'Component Type'"); InstructionDesc[OpTypeVector].operands.push(OperandLiteralNumber, "'Component Count'"); + InstructionDesc[OpTypeMatrix].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpTypeMatrix].operands.push(OperandId, "'Column Type'"); InstructionDesc[OpTypeMatrix].operands.push(OperandLiteralNumber, "'Column Count'"); @@ -1471,19 +1738,31 @@ void Parameterize() InstructionDesc[OpTypeArray].operands.push(OperandId, "'Element Type'"); InstructionDesc[OpTypeArray].operands.push(OperandId, "'Length'"); + InstructionDesc[OpTypeRuntimeArray].capabilities.push_back(CapabilityShader); InstructionDesc[OpTypeRuntimeArray].operands.push(OperandId, "'Element Type'"); InstructionDesc[OpTypeStruct].operands.push(OperandVariableIds, "'Member 0 type', +\n'member 1 type', +\n..."); + InstructionDesc[OpTypeOpaque].capabilities.push_back(CapabilityKernel); InstructionDesc[OpTypeOpaque].operands.push(OperandLiteralString, "The name of the opaque type."); InstructionDesc[OpTypePointer].operands.push(OperandStorage, ""); InstructionDesc[OpTypePointer].operands.push(OperandId, "'Type'"); + InstructionDesc[OpTypeForwardPointer].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpTypeForwardPointer].operands.push(OperandId, "'Pointer Type'"); InstructionDesc[OpTypeForwardPointer].operands.push(OperandStorage, ""); + InstructionDesc[OpTypeEvent].capabilities.push_back(CapabilityKernel); + + InstructionDesc[OpTypeDeviceEvent].capabilities.push_back(CapabilityDeviceEnqueue); + + InstructionDesc[OpTypeReserveId].capabilities.push_back(CapabilityPipes); + + InstructionDesc[OpTypeQueue].capabilities.push_back(CapabilityDeviceEnqueue); + InstructionDesc[OpTypePipe].operands.push(OperandAccessQualifier, "'Qualifier'"); + InstructionDesc[OpTypePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpTypeFunction].operands.push(OperandId, "'Return Type'"); InstructionDesc[OpTypeFunction].operands.push(OperandVariableIds, "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..."); @@ -1492,6 +1771,7 @@ void Parameterize() InstructionDesc[OpConstantComposite].operands.push(OperandVariableIds, "'Constituents'"); + InstructionDesc[OpConstantSampler].capabilities.push_back(CapabilityLiteralSampler); InstructionDesc[OpConstantSampler].operands.push(OperandSamplerAddressingMode, ""); InstructionDesc[OpConstantSampler].operands.push(OperandLiteralNumber, "'Param'"); InstructionDesc[OpConstantSampler].operands.push(OperandSamplerFilterMode, ""); @@ -1529,24 +1809,11 @@ void Parameterize() InstructionDesc[OpDecorate].operands.push(OperandDecoration, ""); InstructionDesc[OpDecorate].operands.push(OperandVariableLiterals, "See <>."); - InstructionDesc[OpDecorateId].operands.push(OperandId, "'Target'"); - InstructionDesc[OpDecorateId].operands.push(OperandDecoration, ""); - InstructionDesc[OpDecorateId].operands.push(OperandVariableIds, "See <>."); - - InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandId, "'Target'"); - InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandDecoration, ""); - InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandLiteralString, "'Literal String'"); - InstructionDesc[OpMemberDecorate].operands.push(OperandId, "'Structure Type'"); InstructionDesc[OpMemberDecorate].operands.push(OperandLiteralNumber, "'Member'"); InstructionDesc[OpMemberDecorate].operands.push(OperandDecoration, ""); InstructionDesc[OpMemberDecorate].operands.push(OperandVariableLiterals, "See <>."); - InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandId, "'Structure Type'"); - InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandLiteralNumber, "'Member'"); - InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandDecoration, ""); - InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandLiteralString, "'Literal String'"); - InstructionDesc[OpGroupDecorate].operands.push(OperandId, "'Decoration Group'"); InstructionDesc[OpGroupDecorate].operands.push(OperandVariableIds, "'Targets'"); @@ -1584,6 +1851,8 @@ void Parameterize() InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Size'"); InstructionDesc[OpCopyMemorySized].operands.push(OperandMemoryAccess, "", true); + InstructionDesc[OpCopyMemorySized].capabilities.push_back(CapabilityAddresses); + InstructionDesc[OpSampledImage].operands.push(OperandId, "'Image'"); InstructionDesc[OpSampledImage].operands.push(OperandId, "'Sampler'"); @@ -1604,6 +1873,7 @@ void Parameterize() InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSampleImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Coordinate'"); @@ -1615,34 +1885,40 @@ void Parameterize() InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSampleDrefImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSampleDrefExplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSampleProjImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSampleProjExplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSampleProjDrefImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSampleProjDrefExplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageFetch].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageFetch].operands.push(OperandId, "'Coordinate'"); @@ -1654,96 +1930,122 @@ void Parameterize() InstructionDesc[OpImageGather].operands.push(OperandId, "'Component'"); InstructionDesc[OpImageGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageGather].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageGather].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageDrefGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageDrefGather].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageDrefGather].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleDrefImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleDrefExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleProjImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleProjExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseFetch].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageSparseFetch].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseFetch].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseFetch].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseFetch].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Component'"); InstructionDesc[OpImageSparseGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseGather].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseGather].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseDrefGather].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseRead].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseRead].operands.push(OperandVariableIds, "", true); + InstructionDesc[OpImageSparseRead].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseTexelsResident].operands.push(OperandId, "'Resident Code'"); + InstructionDesc[OpImageSparseTexelsResident].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Level of Detail'"); + InstructionDesc[OpImageQuerySizeLod].capabilities.push_back(CapabilityKernel); + InstructionDesc[OpImageQuerySizeLod].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQuerySize].operands.push(OperandId, "'Image'"); + InstructionDesc[OpImageQuerySize].capabilities.push_back(CapabilityKernel); + InstructionDesc[OpImageQuerySize].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Coordinate'"); + InstructionDesc[OpImageQueryLod].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQueryLevels].operands.push(OperandId, "'Image'"); + InstructionDesc[OpImageQueryLevels].capabilities.push_back(CapabilityKernel); + InstructionDesc[OpImageQueryLevels].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQuerySamples].operands.push(OperandId, "'Image'"); + InstructionDesc[OpImageQuerySamples].capabilities.push_back(CapabilityKernel); + InstructionDesc[OpImageQuerySamples].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQueryFormat].operands.push(OperandId, "'Image'"); + InstructionDesc[OpImageQueryFormat].capabilities.push_back(CapabilityKernel); InstructionDesc[OpImageQueryOrder].operands.push(OperandId, "'Image'"); + InstructionDesc[OpImageQueryOrder].capabilities.push_back(CapabilityKernel); InstructionDesc[OpAccessChain].operands.push(OperandId, "'Base'"); InstructionDesc[OpAccessChain].operands.push(OperandVariableIds, "'Indexes'"); @@ -1754,10 +2056,12 @@ void Parameterize() InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Base'"); InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Element'"); InstructionDesc[OpPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'"); + InstructionDesc[OpPtrAccessChain].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Base'"); InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Element'"); InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'"); + InstructionDesc[OpInBoundsPtrAccessChain].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpSNegate].operands.push(OperandId, "'Operand'"); @@ -1784,49 +2088,65 @@ void Parameterize() InstructionDesc[OpFConvert].operands.push(OperandId, "'Float Value'"); InstructionDesc[OpSatConvertSToU].operands.push(OperandId, "'Signed Value'"); + InstructionDesc[OpSatConvertSToU].capabilities.push_back(CapabilityKernel); InstructionDesc[OpSatConvertUToS].operands.push(OperandId, "'Unsigned Value'"); + InstructionDesc[OpSatConvertUToS].capabilities.push_back(CapabilityKernel); InstructionDesc[OpConvertPtrToU].operands.push(OperandId, "'Pointer'"); + InstructionDesc[OpConvertPtrToU].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpConvertUToPtr].operands.push(OperandId, "'Integer Value'"); + InstructionDesc[OpConvertUToPtr].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpPtrCastToGeneric].operands.push(OperandId, "'Pointer'"); + InstructionDesc[OpPtrCastToGeneric].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGenericCastToPtr].operands.push(OperandId, "'Pointer'"); + InstructionDesc[OpGenericCastToPtr].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandStorage, "'Storage'"); + InstructionDesc[OpGenericCastToPtrExplicit].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGenericPtrMemSemantics].operands.push(OperandId, "'Pointer'"); + InstructionDesc[OpGenericPtrMemSemantics].capabilities.push_back(CapabilityKernel); InstructionDesc[OpBitcast].operands.push(OperandId, "'Operand'"); InstructionDesc[OpQuantizeToF16].operands.push(OperandId, "'Value'"); + InstructionDesc[OpTranspose].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpTranspose].operands.push(OperandId, "'Matrix'"); InstructionDesc[OpIsNan].operands.push(OperandId, "'x'"); InstructionDesc[OpIsInf].operands.push(OperandId, "'x'"); + InstructionDesc[OpIsFinite].capabilities.push_back(CapabilityKernel); InstructionDesc[OpIsFinite].operands.push(OperandId, "'x'"); + InstructionDesc[OpIsNormal].capabilities.push_back(CapabilityKernel); InstructionDesc[OpIsNormal].operands.push(OperandId, "'x'"); + InstructionDesc[OpSignBitSet].capabilities.push_back(CapabilityKernel); InstructionDesc[OpSignBitSet].operands.push(OperandId, "'x'"); + InstructionDesc[OpLessOrGreater].capabilities.push_back(CapabilityKernel); InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'x'"); InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'y'"); + InstructionDesc[OpOrdered].capabilities.push_back(CapabilityKernel); InstructionDesc[OpOrdered].operands.push(OperandId, "'x'"); InstructionDesc[OpOrdered].operands.push(OperandId, "'y'"); + InstructionDesc[OpUnordered].capabilities.push_back(CapabilityKernel); InstructionDesc[OpUnordered].operands.push(OperandId, "'x'"); InstructionDesc[OpUnordered].operands.push(OperandId, "'y'"); InstructionDesc[OpArrayLength].operands.push(OperandId, "'Structure'"); InstructionDesc[OpArrayLength].operands.push(OperandLiteralNumber, "'Array member'"); + InstructionDesc[OpArrayLength].capabilities.push_back(CapabilityShader); InstructionDesc[OpIAdd].operands.push(OperandId, "'Operand 1'"); InstructionDesc[OpIAdd].operands.push(OperandId, "'Operand 2'"); @@ -1873,18 +2193,23 @@ void Parameterize() InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Vector'"); InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Scalar'"); + InstructionDesc[OpMatrixTimesScalar].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Matrix'"); InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Scalar'"); + InstructionDesc[OpVectorTimesMatrix].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Vector'"); InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Matrix'"); + InstructionDesc[OpMatrixTimesVector].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Matrix'"); InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Vector'"); + InstructionDesc[OpMatrixTimesMatrix].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'LeftMatrix'"); InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'RightMatrix'"); + InstructionDesc[OpOuterProduct].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 1'"); InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 2'"); @@ -1935,19 +2260,23 @@ void Parameterize() InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 1'"); InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 2'"); + InstructionDesc[OpBitFieldInsert].capabilities.push_back(CapabilityShader); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Insert'"); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Offset'"); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Count'"); - + + InstructionDesc[OpBitFieldSExtract].capabilities.push_back(CapabilityShader); InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Offset'"); InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Count'"); + InstructionDesc[OpBitFieldUExtract].capabilities.push_back(CapabilityShader); InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Offset'"); InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Count'"); + InstructionDesc[OpBitReverse].capabilities.push_back(CapabilityShader); InstructionDesc[OpBitReverse].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitCount].operands.push(OperandId, "'Base'"); @@ -2022,27 +2351,42 @@ void Parameterize() InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 1'"); InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 2'"); + InstructionDesc[OpDPdx].capabilities.push_back(CapabilityShader); InstructionDesc[OpDPdx].operands.push(OperandId, "'P'"); + InstructionDesc[OpDPdy].capabilities.push_back(CapabilityShader); InstructionDesc[OpDPdy].operands.push(OperandId, "'P'"); + InstructionDesc[OpFwidth].capabilities.push_back(CapabilityShader); InstructionDesc[OpFwidth].operands.push(OperandId, "'P'"); + InstructionDesc[OpDPdxFine].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdxFine].operands.push(OperandId, "'P'"); + InstructionDesc[OpDPdyFine].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdyFine].operands.push(OperandId, "'P'"); + InstructionDesc[OpFwidthFine].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpFwidthFine].operands.push(OperandId, "'P'"); + InstructionDesc[OpDPdxCoarse].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdxCoarse].operands.push(OperandId, "'P'"); + InstructionDesc[OpDPdyCoarse].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdyCoarse].operands.push(OperandId, "'P'"); + InstructionDesc[OpFwidthCoarse].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpFwidthCoarse].operands.push(OperandId, "'P'"); + InstructionDesc[OpEmitVertex].capabilities.push_back(CapabilityGeometry); + + InstructionDesc[OpEndPrimitive].capabilities.push_back(CapabilityGeometry); + InstructionDesc[OpEmitStreamVertex].operands.push(OperandId, "'Stream'"); + InstructionDesc[OpEmitStreamVertex].capabilities.push_back(CapabilityGeometryStreams); InstructionDesc[OpEndStreamPrimitive].operands.push(OperandId, "'Stream'"); + InstructionDesc[OpEndStreamPrimitive].capabilities.push_back(CapabilityGeometryStreams); InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Memory'"); @@ -2082,6 +2426,7 @@ void Parameterize() InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandMemorySemantics, "'Unequal'"); InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Value'"); InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Comparator'"); + InstructionDesc[OpAtomicCompareExchangeWeak].capabilities.push_back(CapabilityKernel); InstructionDesc[OpAtomicIIncrement].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpAtomicIIncrement].operands.push(OperandScope, "'Scope'"); @@ -2139,15 +2484,16 @@ void Parameterize() InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandScope, "'Scope'"); InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandMemorySemantics, "'Semantics'"); + InstructionDesc[OpAtomicFlagTestAndSet].capabilities.push_back(CapabilityKernel); InstructionDesc[OpAtomicFlagClear].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpAtomicFlagClear].operands.push(OperandScope, "'Scope'"); InstructionDesc[OpAtomicFlagClear].operands.push(OperandMemorySemantics, "'Semantics'"); + InstructionDesc[OpAtomicFlagClear].capabilities.push_back(CapabilityKernel); InstructionDesc[OpLoopMerge].operands.push(OperandId, "'Merge Block'"); InstructionDesc[OpLoopMerge].operands.push(OperandId, "'Continue Target'"); InstructionDesc[OpLoopMerge].operands.push(OperandLoop, ""); - InstructionDesc[OpLoopMerge].operands.push(OperandOptionalLiteral, ""); InstructionDesc[OpSelectionMerge].operands.push(OperandId, "'Merge Block'"); InstructionDesc[OpSelectionMerge].operands.push(OperandSelect, ""); @@ -2163,15 +2509,19 @@ void Parameterize() InstructionDesc[OpSwitch].operands.push(OperandId, "'Default'"); InstructionDesc[OpSwitch].operands.push(OperandVariableLiteralId, "'Target'"); + InstructionDesc[OpKill].capabilities.push_back(CapabilityShader); InstructionDesc[OpReturnValue].operands.push(OperandId, "'Value'"); InstructionDesc[OpLifetimeStart].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpLifetimeStart].operands.push(OperandLiteralNumber, "'Size'"); + InstructionDesc[OpLifetimeStart].capabilities.push_back(CapabilityKernel); InstructionDesc[OpLifetimeStop].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpLifetimeStop].operands.push(OperandLiteralNumber, "'Size'"); + InstructionDesc[OpLifetimeStop].capabilities.push_back(CapabilityKernel); + InstructionDesc[OpGroupAsyncCopy].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Destination'"); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Source'"); @@ -2179,62 +2529,77 @@ void Parameterize() InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Stride'"); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Event'"); + InstructionDesc[OpGroupWaitEvents].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGroupWaitEvents].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Num Events'"); InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Events List'"); + InstructionDesc[OpGroupAll].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupAll].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupAll].operands.push(OperandId, "'Predicate'"); + InstructionDesc[OpGroupAny].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupAny].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupAny].operands.push(OperandId, "'Predicate'"); + InstructionDesc[OpGroupBroadcast].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupBroadcast].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'Value'"); InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'LocalId'"); + InstructionDesc[OpGroupIAdd].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupIAdd].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupIAdd].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupIAdd].operands.push(OperandId, "'X'"); + InstructionDesc[OpGroupFAdd].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFAdd].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFAdd].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFAdd].operands.push(OperandId, "'X'"); + InstructionDesc[OpGroupUMin].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMin].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMin].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMin].operands.push(OperandId, "'X'"); + InstructionDesc[OpGroupSMin].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMin].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMin].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMin].operands.push(OperandId, "X"); + InstructionDesc[OpGroupFMin].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMin].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMin].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMin].operands.push(OperandId, "X"); + InstructionDesc[OpGroupUMax].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMax].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMax].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMax].operands.push(OperandId, "X"); + InstructionDesc[OpGroupSMax].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMax].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMax].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMax].operands.push(OperandId, "X"); + InstructionDesc[OpGroupFMax].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMax].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMax].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMax].operands.push(OperandId, "X"); + InstructionDesc[OpReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpReservedReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Index'"); @@ -2242,6 +2607,7 @@ void Parameterize() InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpReservedWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Index'"); @@ -2249,99 +2615,127 @@ void Parameterize() InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpReserveReadPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpReserveWritePipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpCommitReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpCommitWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpIsValidReserveId].capabilities.push_back(CapabilityPipes); InstructionDesc[OpIsValidReserveId].operands.push(OperandId, "'Reserve Id'"); + InstructionDesc[OpGetNumPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpGetMaxPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpGroupReserveReadPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpGroupReserveWritePipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpGroupCommitReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpGroupCommitWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Packet Alignment'"); + InstructionDesc[OpBuildNDRange].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'GlobalWorkSize'"); InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'LocalWorkSize'"); InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'GlobalWorkOffset'"); + InstructionDesc[OpGetDefaultQueue].capabilities.push_back(CapabilityDeviceEnqueue); + + InstructionDesc[OpCaptureEventProfilingInfo].capabilities.push_back(CapabilityDeviceEnqueue); + InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Event'"); InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Profiling Info'"); InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Value'"); + InstructionDesc[OpSetUserEventStatus].capabilities.push_back(CapabilityDeviceEnqueue); + InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Event'"); InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Status'"); + InstructionDesc[OpIsValidEvent].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpIsValidEvent].operands.push(OperandId, "'Event'"); + InstructionDesc[OpCreateUserEvent].capabilities.push_back(CapabilityDeviceEnqueue); + + InstructionDesc[OpRetainEvent].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpRetainEvent].operands.push(OperandId, "'Event'"); + InstructionDesc[OpReleaseEvent].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpReleaseEvent].operands.push(OperandId, "'Event'"); + InstructionDesc[OpGetKernelWorkGroupSize].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param Align'"); + InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param Align'"); + InstructionDesc[OpGetKernelNDrangeSubGroupCount].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'ND Range'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param Align'"); + InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'ND Range'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param Align'"); + InstructionDesc[OpEnqueueKernel].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Queue'"); InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Flags'"); InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'ND Range'"); @@ -2354,214 +2748,56 @@ void Parameterize() InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param Align'"); InstructionDesc[OpEnqueueKernel].operands.push(OperandVariableIds, "'Local Size'"); + InstructionDesc[OpEnqueueMarker].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Queue'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Num Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'"); - InstructionDesc[OpGroupNonUniformElect].operands.push(OperandScope, "'Execution'"); - - InstructionDesc[OpGroupNonUniformAll].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformAll].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformAny].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformAny].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "ID"); - - InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "Bit"); - - InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandId, "X"); - - InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "'Id'"); - - InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "Mask"); - - InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "Offset"); - - InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "Offset"); - - InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandGroupOperation, "'Operation'"); - InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "'ClusterSize'", true); - - InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "'Id'"); - - InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "X"); - InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandLiteralNumber, "'Direction'"); - InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'"); InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'"); - InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandId, "'Predicate'"); - - InstructionDesc[OpSubgroupAllKHR].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpSubgroupAllKHR].operands.push(OperandId, "'Predicate'"); - - InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandScope, "'Execution'"); - InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandId, "'Predicate'"); - - InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Value'"); - InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Index'"); - - InstructionDesc[OpModuleProcessed].operands.push(OperandLiteralString, "'process'"); - #ifdef AMD_EXTENSIONS + InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandId, "'X'"); + InstructionDesc[OpGroupFAddNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandId, "'X'"); + InstructionDesc[OpGroupUMinNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandId, "'X'"); + InstructionDesc[OpGroupSMinNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandId, "X"); + InstructionDesc[OpGroupFMinNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandId, "X"); + InstructionDesc[OpGroupUMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandId, "X"); + InstructionDesc[OpGroupSMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandId, "X"); + InstructionDesc[OpGroupFMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandId, "X"); - - InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Image'"); - InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Coordinate'"); - - InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Image'"); - InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Fragment Index'"); -#endif - -#ifdef NV_EXTENSIONS - InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X"); #endif } diff --git a/deps/glslang-new/SPIRV/doc.h b/deps/glslang/glslang-old/SPIRV/doc.h similarity index 85% rename from deps/glslang-new/SPIRV/doc.h rename to deps/glslang/glslang-old/SPIRV/doc.h index 7d0475d3eb..e7afbaee27 100644 --- a/deps/glslang-new/SPIRV/doc.h +++ b/deps/glslang/glslang-old/SPIRV/doc.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2014-2015 LunarG, Inc. +//Copyright (C) 2014-2015 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,25 +19,26 @@ // 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 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 _SPIRV_doc_h +#define _SPIRV_doc_h // // Parameterize the SPIR-V enumerants. // -#pragma once - #include "spirv.hpp" #include @@ -190,13 +191,14 @@ protected: class EnumParameters { public: EnumParameters() : desc(0) { } + EnumCaps caps; const char* desc; }; // Parameterize a set of enumerants that form an enum class EnumDefinition : public EnumParameters { public: - EnumDefinition() : + EnumDefinition() : ceiling(0), bitmask(false), getName(0), enumParams(0), operandParams(0) { } void set(int ceil, const char* (*name)(int), EnumParameters* ep, bool mask = false) { @@ -234,6 +236,7 @@ public: bool hasType() const { return typePresent != 0; } const char* opDesc; + EnumCaps capabilities; OpcodeClass opClass; OperandParameters operands; @@ -242,6 +245,8 @@ protected: int resultPresent : 1; }; +const int OpcodeCeiling = 321; + // The set of objects that hold all the instruction/operand // parameterization information. extern InstructionParameters InstructionDesc[]; @@ -256,3 +261,5 @@ const char* AccessQualifierString(int attr); void PrintOperands(const OperandParameters& operands, int reservedOperands); }; // end namespace spv + +#endif diff --git a/deps/glslang-new/SPIRV/hex_float.h b/deps/glslang/glslang-old/SPIRV/hex_float.h similarity index 99% rename from deps/glslang-new/SPIRV/hex_float.h rename to deps/glslang/glslang-old/SPIRV/hex_float.h index 905b21a45a..31b9f9ed89 100644 --- a/deps/glslang-new/SPIRV/hex_float.h +++ b/deps/glslang/glslang-old/SPIRV/hex_float.h @@ -23,7 +23,7 @@ #include #include -#if defined(_MSC_VER) && _MSC_VER < 1800 +#if defined(_MSC_VER) && _MSC_VER < 1700 namespace std { bool isnan(double f) { diff --git a/deps/glslang-new/SPIRV/spirv.hpp b/deps/glslang/glslang-old/SPIRV/spirv.hpp old mode 100644 new mode 100755 similarity index 79% rename from deps/glslang-new/SPIRV/spirv.hpp rename to deps/glslang/glslang-old/SPIRV/spirv.hpp index e21762dbec..bb3c3f4c76 --- a/deps/glslang-new/SPIRV/spirv.hpp +++ b/deps/glslang/glslang-old/SPIRV/spirv.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018 The Khronos Group Inc. +// Copyright (c) 2014-2016 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), @@ -46,12 +46,12 @@ namespace spv { typedef unsigned int Id; -#define SPV_VERSION 0x10300 -#define SPV_REVISION 1 +#define SPV_VERSION 0x10000 +#define SPV_REVISION 8 static const unsigned int MagicNumber = 0x07230203; -static const unsigned int Version = 0x00010300; -static const unsigned int Revision = 1; +static const unsigned int Version = 0x00010000; +static const unsigned int Revision = 8; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; @@ -122,15 +122,6 @@ enum ExecutionMode { ExecutionModeOutputTriangleStrip = 29, ExecutionModeVecTypeHint = 30, ExecutionModeContractionOff = 31, - ExecutionModeInitializer = 33, - ExecutionModeFinalizer = 34, - ExecutionModeSubgroupSize = 35, - ExecutionModeSubgroupsPerWorkgroup = 36, - ExecutionModeSubgroupsPerWorkgroupId = 37, - ExecutionModeLocalSizeId = 38, - ExecutionModeLocalSizeHintId = 39, - ExecutionModePostDepthCoverage = 4446, - ExecutionModeStencilRefReplacingEXT = 5027, ExecutionModeMax = 0x7fffffff, }; @@ -147,7 +138,6 @@ enum StorageClass { StorageClassPushConstant = 9, StorageClassAtomicCounter = 10, StorageClassImage = 11, - StorageClassStorageBuffer = 12, StorageClassMax = 0x7fffffff, }; @@ -385,17 +375,6 @@ enum Decoration { DecorationNoContraction = 42, DecorationInputAttachmentIndex = 43, DecorationAlignment = 44, - DecorationMaxByteOffset = 45, - DecorationAlignmentId = 46, - DecorationMaxByteOffsetId = 47, - DecorationExplicitInterpAMD = 4999, - DecorationOverrideCoverageNV = 5248, - DecorationPassthroughNV = 5250, - DecorationViewportRelativeNV = 5252, - DecorationSecondaryViewportRelativeNV = 5256, - DecorationNonUniformEXT = 5300, - DecorationHlslCounterBufferGOOGLE = 5634, - DecorationHlslSemanticGOOGLE = 5635, DecorationMax = 0x7fffffff, }; @@ -441,35 +420,14 @@ enum BuiltIn { BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, - BuiltInSubgroupEqMask = 4416, BuiltInSubgroupEqMaskKHR = 4416, - BuiltInSubgroupGeMask = 4417, BuiltInSubgroupGeMaskKHR = 4417, - BuiltInSubgroupGtMask = 4418, BuiltInSubgroupGtMaskKHR = 4418, - BuiltInSubgroupLeMask = 4419, BuiltInSubgroupLeMaskKHR = 4419, - BuiltInSubgroupLtMask = 4420, BuiltInSubgroupLtMaskKHR = 4420, BuiltInBaseVertex = 4424, BuiltInBaseInstance = 4425, BuiltInDrawIndex = 4426, - BuiltInDeviceIndex = 4438, - BuiltInViewIndex = 4440, - BuiltInBaryCoordNoPerspAMD = 4992, - BuiltInBaryCoordNoPerspCentroidAMD = 4993, - BuiltInBaryCoordNoPerspSampleAMD = 4994, - BuiltInBaryCoordSmoothAMD = 4995, - BuiltInBaryCoordSmoothCentroidAMD = 4996, - BuiltInBaryCoordSmoothSampleAMD = 4997, - BuiltInBaryCoordPullModelAMD = 4998, - BuiltInFragStencilRefEXT = 5014, - BuiltInViewportMaskNV = 5253, - BuiltInSecondaryPositionNV = 5257, - BuiltInSecondaryViewportMaskNV = 5258, - BuiltInPositionPerViewNV = 5261, - BuiltInViewportMaskPerViewNV = 5262, - BuiltInFullyCoveredEXT = 5264, BuiltInMax = 0x7fffffff, }; @@ -488,8 +446,6 @@ enum SelectionControlMask { enum LoopControlShift { LoopControlUnrollShift = 0, LoopControlDontUnrollShift = 1, - LoopControlDependencyInfiniteShift = 2, - LoopControlDependencyLengthShift = 3, LoopControlMax = 0x7fffffff, }; @@ -497,8 +453,6 @@ enum LoopControlMask { LoopControlMaskNone = 0, LoopControlUnrollMask = 0x00000001, LoopControlDontUnrollMask = 0x00000002, - LoopControlDependencyInfiniteMask = 0x00000004, - LoopControlDependencyLengthMask = 0x00000008, }; enum FunctionControlShift { @@ -572,10 +526,6 @@ enum GroupOperation { GroupOperationReduce = 0, GroupOperationInclusiveScan = 1, GroupOperationExclusiveScan = 2, - GroupOperationClusteredReduce = 3, - GroupOperationPartitionedReduceNV = 6, - GroupOperationPartitionedInclusiveScanNV = 7, - GroupOperationPartitionedExclusiveScanNV = 8, GroupOperationMax = 0x7fffffff, }; @@ -653,61 +603,8 @@ enum Capability { CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, - CapabilitySubgroupDispatch = 58, - CapabilityNamedBarrier = 59, - CapabilityPipeStorage = 60, - CapabilityGroupNonUniform = 61, - CapabilityGroupNonUniformVote = 62, - CapabilityGroupNonUniformArithmetic = 63, - CapabilityGroupNonUniformBallot = 64, - CapabilityGroupNonUniformShuffle = 65, - CapabilityGroupNonUniformShuffleRelative = 66, - CapabilityGroupNonUniformClustered = 67, - CapabilityGroupNonUniformQuad = 68, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, - CapabilitySubgroupVoteKHR = 4431, - CapabilityStorageBuffer16BitAccess = 4433, - CapabilityStorageUniformBufferBlock16 = 4433, - CapabilityStorageUniform16 = 4434, - CapabilityUniformAndStorageBuffer16BitAccess = 4434, - CapabilityStoragePushConstant16 = 4435, - CapabilityStorageInputOutput16 = 4436, - CapabilityDeviceGroup = 4437, - CapabilityMultiView = 4439, - CapabilityVariablePointersStorageBuffer = 4441, - CapabilityVariablePointers = 4442, - CapabilityAtomicStorageOps = 4445, - CapabilitySampleMaskPostDepthCoverage = 4447, - CapabilityFloat16ImageAMD = 5008, - CapabilityImageGatherBiasLodAMD = 5009, - CapabilityFragmentMaskAMD = 5010, - CapabilityStencilExportEXT = 5013, - CapabilityImageReadWriteLodAMD = 5015, - CapabilitySampleMaskOverrideCoverageNV = 5249, - CapabilityGeometryShaderPassthroughNV = 5251, - CapabilityShaderViewportIndexLayerEXT = 5254, - CapabilityShaderViewportIndexLayerNV = 5254, - CapabilityShaderViewportMaskNV = 5255, - CapabilityShaderStereoViewNV = 5259, - CapabilityPerViewAttributesNV = 5260, - CapabilityFragmentFullyCoveredEXT = 5265, - CapabilityGroupNonUniformPartitionedNV = 5297, - CapabilityShaderNonUniformEXT = 5301, - CapabilityRuntimeDescriptorArrayEXT = 5302, - CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, - CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, - CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, - CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, - CapabilitySampledImageArrayNonUniformIndexingEXT = 5307, - CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, - CapabilityStorageImageArrayNonUniformIndexingEXT = 5309, - CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, - CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, - CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, - CapabilitySubgroupShuffleINTEL = 5568, - CapabilitySubgroupBufferBlockIOINTEL = 5569, - CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilityMax = 0x7fffffff, }; @@ -1006,79 +903,8 @@ enum Op { OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, - OpSizeOf = 321, - OpTypePipeStorage = 322, - OpConstantPipeStorage = 323, - OpCreatePipeFromPipeStorage = 324, - OpGetKernelLocalSizeForSubgroupCount = 325, - OpGetKernelMaxNumSubgroups = 326, - OpTypeNamedBarrier = 327, - OpNamedBarrierInitialize = 328, - OpMemoryNamedBarrier = 329, - OpModuleProcessed = 330, - OpExecutionModeId = 331, - OpDecorateId = 332, - OpGroupNonUniformElect = 333, - OpGroupNonUniformAll = 334, - OpGroupNonUniformAny = 335, - OpGroupNonUniformAllEqual = 336, - OpGroupNonUniformBroadcast = 337, - OpGroupNonUniformBroadcastFirst = 338, - OpGroupNonUniformBallot = 339, - OpGroupNonUniformInverseBallot = 340, - OpGroupNonUniformBallotBitExtract = 341, - OpGroupNonUniformBallotBitCount = 342, - OpGroupNonUniformBallotFindLSB = 343, - OpGroupNonUniformBallotFindMSB = 344, - OpGroupNonUniformShuffle = 345, - OpGroupNonUniformShuffleXor = 346, - OpGroupNonUniformShuffleUp = 347, - OpGroupNonUniformShuffleDown = 348, - OpGroupNonUniformIAdd = 349, - OpGroupNonUniformFAdd = 350, - OpGroupNonUniformIMul = 351, - OpGroupNonUniformFMul = 352, - OpGroupNonUniformSMin = 353, - OpGroupNonUniformUMin = 354, - OpGroupNonUniformFMin = 355, - OpGroupNonUniformSMax = 356, - OpGroupNonUniformUMax = 357, - OpGroupNonUniformFMax = 358, - OpGroupNonUniformBitwiseAnd = 359, - OpGroupNonUniformBitwiseOr = 360, - OpGroupNonUniformBitwiseXor = 361, - OpGroupNonUniformLogicalAnd = 362, - OpGroupNonUniformLogicalOr = 363, - OpGroupNonUniformLogicalXor = 364, - OpGroupNonUniformQuadBroadcast = 365, - OpGroupNonUniformQuadSwap = 366, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, - OpSubgroupAllKHR = 4428, - OpSubgroupAnyKHR = 4429, - OpSubgroupAllEqualKHR = 4430, - OpSubgroupReadInvocationKHR = 4432, - OpGroupIAddNonUniformAMD = 5000, - OpGroupFAddNonUniformAMD = 5001, - OpGroupFMinNonUniformAMD = 5002, - OpGroupUMinNonUniformAMD = 5003, - OpGroupSMinNonUniformAMD = 5004, - OpGroupFMaxNonUniformAMD = 5005, - OpGroupUMaxNonUniformAMD = 5006, - OpGroupSMaxNonUniformAMD = 5007, - OpFragmentMaskFetchAMD = 5011, - OpFragmentFetchAMD = 5012, - OpGroupNonUniformPartitionNV = 5296, - OpSubgroupShuffleINTEL = 5571, - OpSubgroupShuffleDownINTEL = 5572, - OpSubgroupShuffleUpINTEL = 5573, - OpSubgroupShuffleXorINTEL = 5574, - OpSubgroupBlockReadINTEL = 5575, - OpSubgroupBlockWriteINTEL = 5576, - OpSubgroupImageBlockReadINTEL = 5577, - OpSubgroupImageBlockWriteINTEL = 5578, - OpDecorateStringGOOGLE = 5632, - OpMemberDecorateStringGOOGLE = 5633, OpMax = 0x7fffffff, }; diff --git a/deps/glslang-new/SPIRV/spvIR.h b/deps/glslang/glslang-old/SPIRV/spvIR.h similarity index 87% rename from deps/glslang-new/SPIRV/spvIR.h rename to deps/glslang/glslang-old/SPIRV/spvIR.h index 8b6c6447f4..88630f899c 100755 --- a/deps/glslang-new/SPIRV/spvIR.h +++ b/deps/glslang/glslang-old/SPIRV/spvIR.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2014 LunarG, Inc. +//Copyright (C) 2014 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // SPIRV-IR // @@ -65,17 +65,12 @@ const Id NoResult = 0; const Id NoType = 0; const Decoration NoPrecision = DecorationMax; - -#ifdef __GNUC__ -# define POTENTIALLY_UNUSED __attribute__((unused)) -#else -# define POTENTIALLY_UNUSED -#endif - -POTENTIALLY_UNUSED const MemorySemanticsMask MemorySemanticsAllMemory = - (MemorySemanticsMask)(MemorySemanticsUniformMemoryMask | + (MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask | + MemorySemanticsUniformMemoryMask | + MemorySemanticsSubgroupMemoryMask | MemorySemanticsWorkgroupMemoryMask | + MemorySemanticsCrossWorkgroupMemoryMask | MemorySemanticsAtomicCounterMemoryMask | MemorySemanticsImageMemoryMask); @@ -92,6 +87,7 @@ public: void addImmediateOperand(unsigned int immediate) { operands.push_back(immediate); } void addStringOperand(const char* str) { + originalString = str; unsigned int word; char* wordString = (char*)&word; char* wordPtr = wordString; @@ -124,6 +120,7 @@ public: Id getTypeId() const { return typeId; } Id getIdOperand(int op) const { return operands[op]; } unsigned int getImmediateOperand(int op) const { return operands[op]; } + const char* getStringOperand() const { return originalString.c_str(); } // Write out the binary form. void dump(std::vector& out) const @@ -154,6 +151,7 @@ protected: Id typeId; Op opCode; std::vector operands; + std::string originalString; // could be optimized away; convenience for getting string operand Block* block; }; @@ -258,8 +256,7 @@ public: delete blocks[i]; } Id getId() const { return functionInstruction.getResultId(); } - Id getParamId(int p) const { return parameterInstructions[p]->getResultId(); } - Id getParamType(int p) const { return parameterInstructions[p]->getTypeId(); } + Id getParamId(int p) { return parameterInstructions[p]->getResultId(); } void addBlock(Block* block) { blocks.push_back(block); } void removeBlock(Block* block) @@ -276,10 +273,6 @@ public: const std::vector& getBlocks() const { return blocks; } void addLocalVariable(std::unique_ptr inst); Id getReturnType() const { return functionInstruction.getTypeId(); } - - void setImplicitThis() { implicitThis = true; } - bool hasImplicitThis() const { return implicitThis; } - void dump(std::vector& out) const { // OpFunction @@ -303,7 +296,6 @@ protected: Instruction functionInstruction; std::vector parameterInstructions; std::vector blocks; - bool implicitThis; // true if this is a member function expecting to be passed a 'this' as the first argument }; // @@ -362,7 +354,7 @@ protected: // - the OpFunction instruction // - all the OpFunctionParameter instructions __inline Function::Function(Id id, Id resultType, Id functionType, Id firstParamId, Module& parent) - : parent(parent), functionInstruction(id, resultType, OpFunction), implicitThis(false) + : parent(parent), functionInstruction(id, resultType, OpFunction) { // OpFunction functionInstruction.addImmediateOperand(FunctionControlMaskNone); diff --git a/deps/glslang-new/StandAlone/CMakeLists.txt b/deps/glslang/glslang-old/StandAlone/CMakeLists.txt old mode 100755 new mode 100644 similarity index 55% rename from deps/glslang-new/StandAlone/CMakeLists.txt rename to deps/glslang/glslang-old/StandAlone/CMakeLists.txt index d500121df5..231ba277a7 --- a/deps/glslang-new/StandAlone/CMakeLists.txt +++ b/deps/glslang/glslang-old/StandAlone/CMakeLists.txt @@ -1,13 +1,14 @@ add_library(glslang-default-resource-limits - ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp) + ${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}) + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC ${PROJECT_SOURCE_DIR} +) -set(SOURCES StandAlone.cpp DirStackFileIncluder.h) +set(SOURCES StandAlone.cpp) set(REMAPPER_SOURCES spirv-remap.cpp) add_executable(glslangValidator ${SOURCES}) @@ -19,6 +20,9 @@ glslang_set_link_args(spirv-remap) set(LIBRARIES glslang + OGLCompiler + OSDependent + HLSL SPIRV SPVRemapper glslang-default-resource-limits) @@ -38,15 +42,8 @@ if(WIN32) source_group("Source" FILES ${SOURCES}) endif(WIN32) -if(ENABLE_GLSLANG_INSTALL) - install(TARGETS glslangValidator - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS glslangValidator + RUNTIME DESTINATION bin) - 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) +install(TARGETS spirv-remap + RUNTIME DESTINATION bin) diff --git a/deps/glslang-new/StandAlone/ResourceLimits.cpp b/deps/glslang/glslang-old/StandAlone/ResourceLimits.cpp similarity index 100% rename from deps/glslang-new/StandAlone/ResourceLimits.cpp rename to deps/glslang/glslang-old/StandAlone/ResourceLimits.cpp diff --git a/deps/glslang-new/StandAlone/ResourceLimits.h b/deps/glslang/glslang-old/StandAlone/ResourceLimits.h similarity index 100% rename from deps/glslang-new/StandAlone/ResourceLimits.h rename to deps/glslang/glslang-old/StandAlone/ResourceLimits.h diff --git a/deps/glslang/glslang-old/StandAlone/StandAlone.cpp b/deps/glslang/glslang-old/StandAlone/StandAlone.cpp new file mode 100644 index 0000000000..84c80f58b3 --- /dev/null +++ b/deps/glslang/glslang-old/StandAlone/StandAlone.cpp @@ -0,0 +1,1106 @@ +// +//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 +#define _CRT_SECURE_NO_WARNINGS + +#include "ResourceLimits.h" +#include "Worklist.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 "../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 << 21), +}; + +// +// 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(); +void FreeFileData(char** data); +char** ReadFileData(const char* fileName); +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; + +// Use to test breaking up a single shader file into multiple strings. +// Set in ReadFileData(). +int NumShaderStrings; + +TBuiltInResource Resources; +std::string ConfigFile; + +// +// Parse either a .conf file provided by the user or the default from glslang::DefaultTBuiltInResource +// +void ProcessConfigFile() +{ + char** configStrings = 0; + char* config = 0; + if (ConfigFile.size() > 0) { + configStrings = ReadFileData(ConfigFile.c_str()); + if (configStrings) + config = *configStrings; + else { + printf("Error opening configuration file; will instead use the default configuration\n"); + usage(); + } + } + + if (config == 0) { + Resources = glslang::DefaultTBuiltInResource; + return; + } + + glslang::DecodeResourceLimits(&Resources, config); + + if (configStrings) + FreeFileData(configStrings); + else + delete[] config; +} + +// thread-safe list of shaders to asynchronously grab and compile +glslang::TWorklist Worklist; + +// array of unique places to leave the shader names and infologs for the asynchronous compiles +glslang::TWorkItem** Work = 0; +int NumWorkItems = 0; + +int Options = 0; +const char* ExecutableName = nullptr; +const char* binaryFileName = nullptr; +const char* entryPointName = nullptr; +const char* sourceEntryPointName = nullptr; +const char* shaderStageName = nullptr; + +std::array baseSamplerBinding; +std::array baseTextureBinding; +std::array baseImageBinding; +std::array baseUboBinding; + +// +// 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) +{ + printf("%s: Error %s (use -h for usage)\n", ExecutableName, message); + exit(EFailUsage); +} + +// +// Process an optional binding base of the form: +// --argname [stage] base +// Where stage is one of the forms accepted by FindLanguage, and base is an integer +// +void ProcessBindingBase(int& argc, char**& argv, std::array& base) +{ + if (argc < 2) + usage(); + + if (!isdigit(argv[1][0])) { + if (argc < 3) // this form needs one more argument + usage(); + + // Parse form: --argname stage base + const EShLanguage lang = FindLanguage(argv[1], false); + base[lang] = atoi(argv[2]); + argc-= 2; + argv+= 2; + } else { + // Parse form: --argname base + for (int lang=0; lang= 1; argc--, argv++) { + if (argv[0][0] == '-') { + switch (argv[0][1]) { + case '-': + { + std::string lowerword(argv[0]+2); + std::transform(lowerword.begin(), lowerword.end(), lowerword.begin(), ::tolower); + + // handle --word style options + if (lowerword == "shift-sampler-bindings" || // synonyms + lowerword == "shift-sampler-binding" || + lowerword == "ssb") { + ProcessBindingBase(argc, argv, baseSamplerBinding); + } else if (lowerword == "shift-texture-bindings" || // synonyms + lowerword == "shift-texture-binding" || + lowerword == "stb") { + ProcessBindingBase(argc, argv, baseTextureBinding); + } else if (lowerword == "shift-image-bindings" || // synonyms + lowerword == "shift-image-binding" || + lowerword == "sib") { + ProcessBindingBase(argc, argv, baseImageBinding); + } else if (lowerword == "shift-ubo-bindings" || // synonyms + lowerword == "shift-ubo-binding" || + lowerword == "sub") { + ProcessBindingBase(argc, argv, baseUboBinding); + } else if (lowerword == "auto-map-bindings" || // synonyms + lowerword == "auto-map-binding" || + lowerword == "amb") { + Options |= EOptionAutoMapBindings; + } else if (lowerword == "flatten-uniform-arrays" || // synonyms + lowerword == "flatten-uniform-array" || + lowerword == "fua") { + Options |= EOptionFlattenUniformArrays; + } else if (lowerword == "no-storage-format" || // synonyms + lowerword == "nsf") { + Options |= EOptionNoStorageFormat; + } else if (lowerword == "source-entrypoint" || // synonyms + lowerword == "sep") { + sourceEntryPointName = argv[1]; + if (argc > 0) { + argc--; + argv++; + } else + Error("no provided for --source-entrypoint"); + break; + } else if (lowerword == "keep-uncalled" || // synonyms + lowerword == "ku") { + Options |= EOptionKeepUncalled; + } else { + usage(); + } + } + break; + case 'H': + Options |= EOptionHumanReadableSpv; + if ((Options & EOptionSpv) == 0) { + // default to Vulkan + Options |= EOptionSpv; + Options |= EOptionVulkanRules; + Options |= EOptionLinkProgram; + } + break; + case 'V': + Options |= EOptionSpv; + Options |= EOptionVulkanRules; + Options |= EOptionLinkProgram; + break; + case 'S': + shaderStageName = argv[1]; + if (argc > 0) { + argc--; + argv++; + } + else + Error("no specified for -S"); + break; + case 'G': + Options |= EOptionSpv; + Options |= EOptionLinkProgram; + // undo a -H default to Vulkan + Options &= ~EOptionVulkanRules; + break; + case 'E': + Options |= EOptionOutputPreprocessed; + break; + case 'c': + Options |= EOptionDumpConfig; + break; + case 'C': + Options |= EOptionCascadingErrors; + break; + case 'd': + Options |= EOptionDefaultDesktop; + break; + case 'D': + Options |= EOptionReadHlsl; + 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 > 0) { + argc--; + argv++; + } else + Error("no provided for -e"); + break; + case 'h': + usage(); + break; + case 'i': + Options |= EOptionIntermediate; + break; + case 'l': + Options |= EOptionLinkProgram; + break; + case 'm': + Options |= EOptionMemoryLeakMode; + break; + case 'o': + binaryFileName = argv[1]; + if (argc > 0) { + argc--; + argv++; + } else + Error("no provided for -o"); + break; + case 'q': + Options |= EOptionDumpReflection; + break; + case 'r': + Options |= EOptionRelaxedErrors; + break; + case 's': + Options |= EOptionSuppressInfolog; + break; + case 't': + #ifdef _WIN32 + Options |= EOptionMultiThreaded; + #endif + 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)) { + Work[argc] = new glslang::TWorkItem(name); + Worklist.add(Work[argc]); + } + } + } + + // 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); +} + +// +// Thread entry point, for non-linking asynchronous mode. +// +// Return 0 for failure, 1 for success. +// +unsigned int CompileShaders(void*) +{ + glslang::TWorkItem* workItem; + while (Worklist.remove(workItem)) { + ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), Options); + if (compiler == 0) + return 0; + + CompileFile(workItem->name.c_str(), compiler); + + if (! (Options & EOptionSuppressInfolog)) + workItem->results = ShGetInfoLog(compiler); + + ShDestruct(compiler); + } + + return 0; +} + +// 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; + std::string fileName; + char** text; // memory owned/managed externally + const char* fileNameList[1]; + + // Need to have a special constructors to adjust the fileNameList, since back end needs a list of ptrs + ShaderCompUnit(EShLanguage istage, std::string &ifileName, char** itext) + { + stage = istage; + fileName = ifileName; + text = itext; + fileNameList[0] = fileName.c_str(); + } + + ShaderCompUnit(const ShaderCompUnit &rhs) + { + stage = rhs.stage; + fileName = rhs.fileName; + text = rhs.text; + fileNameList[0] = fileName.c_str(); + } + +}; + +// +// 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, 1); + if (entryPointName) // HLSL todo: this needs to be tracked per compUnits + shader->setEntryPoint(entryPointName); + if (sourceEntryPointName) + shader->setSourceEntryPoint(sourceEntryPointName); + + shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]); + shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]); + shader->setShiftImageBinding(baseImageBinding[compUnit.stage]); + shader->setShiftUboBinding(baseUboBinding[compUnit.stage]); + shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); + shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0); + + if (Options & EOptionAutoMapBindings) + shader->setAutoMapBindings(true); + + shaders.push_back(shader); + + const int defaultVersion = Options & EOptionDefaultDesktop? 110: 100; + + if (Options & EOptionOutputPreprocessed) { + std::string str; + glslang::TShader::ForbidInclude includer; + 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)) + CompileFailed = true; + + program.addShader(shader); + + if (! (Options & EOptionSuppressInfolog) && + ! (Options & EOptionMemoryLeakMode)) { + PutsIfNonEmpty(compUnit.fileName.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::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), spirv, &logger); + + // 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)); + } 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() +{ + std::vector compUnits; + + // 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), + workItem->name, + ReadFileData(workItem->name.c_str()) + ); + + if (! compUnit.text) { + usage(); + return; + } + + 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(); + } + + for (auto it = compUnits.begin(); it != compUnits.end(); ++it) + FreeFileData(it->text); +} + +int C_DECL main(int argc, char* argv[]) +{ + ProcessArguments(argc, argv); + + if (Options & EOptionDumpConfig) { + printf("%s", glslang::GetDefaultTBuiltInResourceString().c_str()); + if (Worklist.empty()) + return ESuccess; + } + + if (Options & EOptionDumpVersions) { + printf("Glslang Version: %s %s\n", GLSLANG_REVISION, GLSLANG_DATE); + 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("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()) { + usage(); + } + + 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(); + CompileAndLinkShaderFiles(); + glslang::FinalizeProcess(); + for (int w = 0; w < NumWorkItems; ++w) { + if (Work[w]) { + delete Work[w]; + } + } + } else { + ShInitialize(); + + bool printShaderNames = Worklist.size() > 1; + + if (Options & EOptionMultiThreaded) { + const int NumThreads = 16; + void* threads[NumThreads]; + for (int t = 0; t < NumThreads; ++t) { + threads[t] = glslang::OS_CreateThread(&CompileShaders); + if (! threads[t]) { + printf("Failed to create thread\n"); + return EFailThreadCreate; + } + } + glslang::OS_WaitForAllThreads(threads, NumThreads); + } else + CompileShaders(0); + + // Print out all the resulting infologs + for (int w = 0; w < NumWorkItems; ++w) { + if (Work[w]) { + if (printShaderNames || Work[w]->results.size() > 0) + PutsIfNonEmpty(Work[w]->name.c_str()); + PutsIfNonEmpty(Work[w]->results.c_str()); + delete Work[w]; + } + } + + ShFinalize(); + } + + delete[] Work; + + if (CompileFailed) + return EFailCompile; + if (LinkFailed) + return EFailLink; + + return 0; +} + +// +// 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 +// +EShLanguage FindLanguage(const std::string& name, bool parseSuffix) +{ + size_t ext = 0; + + // Search for a suffix on a filename: e.g, "myfile.frag". If given + // the suffix directly, we skip looking the '.' + if (parseSuffix) { + ext = name.rfind('.'); + if (ext == std::string::npos) { + usage(); + return EShLangVertex; + } + ++ext; + } + + std::string suffix = name.substr(ext, std::string::npos); + if (shaderStageName) + suffix = shaderStageName; + + if (suffix == "vert") + return EShLangVertex; + else if (suffix == "tesc") + return EShLangTessControl; + else if (suffix == "tese") + return EShLangTessEvaluation; + else if (suffix == "geom") + return EShLangGeometry; + else if (suffix == "frag") + return EShLangFragment; + else if (suffix == "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** shaderStrings = ReadFileData(fileName); + if (! shaderStrings) { + usage(); + } + + int* lengths = new int[NumShaderStrings]; + + // move to length-based strings, rather than null-terminated strings + for (int s = 0; s < NumShaderStrings; ++s) + lengths[s] = (int)strlen(shaderStrings[s]); + + if (! shaderStrings) { + CompileFailed = true; + return; + } + + EShMessages messages = EShMsgDefault; + SetMessageOptions(messages); + + 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, shaderStrings, NumShaderStrings, 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(shaderStrings); + + if (ret == 0) + CompileFailed = true; +} + +// +// print usage to stdout +// +void usage() +{ + printf("Usage: glslangValidator [option]... [file]...\n" + "\n" + "Where: each 'file' ends in ., where is one of\n" + " .conf to provide an optional 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" + "\n" + "Compilation warnings and errors will be printed to stdout.\n" + "\n" + "To get other information, use one of the following options:\n" + "Each option must be specified separately.\n" + " -V create SPIR-V binary, under Vulkan semantics; turns on -l;\n" + " default file name is .spv (-o overrides this)\n" + " -G create SPIR-V binary, under OpenGL semantics; turns on -l;\n" + " default file name is .spv (-o overrides this)\n" + " -H print human readable form of SPIR-V; turns on -V\n" + " -E print pre-processed GLSL; cannot be used with -l;\n" + " errors will appear on stderr.\n" + " -S uses explicit stage specified, rather then the file extension.\n" + " valid choices are vert, tesc, tese, geom, frag, or comp\n" + " -c configuration dump;\n" + " creates the default configuration file (redirect to a .conf file)\n" + " -C cascading errors; risks crashes from accumulation of error recoveries\n" + " -d default to desktop (#version 110) when there is no shader #version\n" + " (default is ES version 100)\n" + " -D input is HLSL\n" + " -e specify entry-point name\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 relaxed semantic error-checking mode\n" + " -s silent mode\n" + " -t multi-threaded mode\n" + " -v print version strings\n" + " -w suppress warnings (except as required by #extension : warn)\n" + " -x save 32-bit hexadecimal numbers as text, requires a binary option (e.g., -V)\n" + "\n" + " --shift-sampler-binding [stage] num set base binding number for samplers\n" + " --ssb [stage] num synonym for --shift-sampler-binding\n" + "\n" + " --shift-texture-binding [stage] num set base binding number for textures\n" + " --stb [stage] num synonym for --shift-texture-binding\n" + "\n" + " --shift-image-binding [stage] num set base binding number for images (uav)\n" + " --sib [stage] num synonym for --shift-image-binding\n" + "\n" + " --shift-UBO-binding [stage] num set base binding number for UBOs\n" + " --sub [stage] num synonym for --shift-UBO-binding\n" + "\n" + " --auto-map-bindings automatically bind uniform variables without\n" + " explicit bindings.\n" + " --amb synonym for --auto-map-bindings\n" + "\n" + " --flatten-uniform-arrays flatten uniform texture & sampler arrays to scalars\n" + " --fua synonym for --flatten-uniform-arrays\n" + "\n" + " --no-storage-format use Unknown image format\n" + " --nsf synonym for --no-storage-format\n" + "\n" + " --source-entrypoint name the given shader source function is renamed to be the entry point given in -e\n" + " --sep synonym for --source-entrypoint\n" + "\n" + " --keep-uncalled don't eliminate uncalled functions when linking\n" + " --ku synonym for --keep-uncalled\n" + ); + + exit(EFailUsage); +} + +#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"); + + int count = 0; + const int maxSourceStrings = 5; // for testing splitting shader/tokens across multiple strings + char** return_data = (char**)malloc(sizeof(char *) * (maxSourceStrings+1)); // freed in FreeFileData() + + if (errorCode || in == nullptr) + Error("unable to open input file"); + + while (fgetc(in) != EOF) + count++; + + fseek(in, 0, SEEK_SET); + + char *fdata = (char*)malloc(count+2); // freed before return of this function + if (! fdata) + Error("can't allocate memory"); + + if ((int)fread(fdata, 1, count, in) != count) { + free(fdata); + Error("can't read input file"); + } + + fdata[count] = '\0'; + fclose(in); + + if (count == 0) { + // recover from empty file + return_data[0] = (char*)malloc(count+2); // freed in FreeFileData() + return_data[0][0]='\0'; + NumShaderStrings = 0; + free(fdata); + + return return_data; + } else + NumShaderStrings = 1; // Set to larger than 1 for testing multiple strings + + // compute how to split up the file into multiple strings, for testing multiple strings + int len = (int)(ceil)((float)count/(float)NumShaderStrings); + int ptr_len = 0; + int i = 0; + while (count > 0) { + return_data[i] = (char*)malloc(len + 2); // freed in FreeFileData() + memcpy(return_data[i], fdata + ptr_len, len); + return_data[i][len] = '\0'; + count -= len; + ptr_len += len; + if (count < len) { + if (count == 0) { + NumShaderStrings = i + 1; + break; + } + len = count; + } + ++i; + } + + free(fdata); + + return return_data; +} + +void FreeFileData(char** data) +{ + for(int i = 0; i < NumShaderStrings; i++) + free(data[i]); + + 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-new/StandAlone/Worklist.h b/deps/glslang/glslang-old/StandAlone/Worklist.h similarity index 59% rename from deps/glslang-new/StandAlone/Worklist.h rename to deps/glslang/glslang-old/StandAlone/Worklist.h index 91b6f516be..cfa80a8321 100644 --- a/deps/glslang-new/StandAlone/Worklist.h +++ b/deps/glslang/glslang-old/StandAlone/Worklist.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,26 +19,25 @@ // 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 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 +#include namespace glslang { @@ -59,19 +58,24 @@ namespace glslang { void add(TWorkItem* item) { - std::lock_guard guard(mutex); + GetGlobalLock(); + worklist.push_back(item); + + ReleaseGlobalLock(); } bool remove(TWorkItem*& item) { - std::lock_guard guard(mutex); + GetGlobalLock(); if (worklist.empty()) return false; item = worklist.front(); worklist.pop_front(); + ReleaseGlobalLock(); + return true; } @@ -86,7 +90,6 @@ namespace glslang { } protected: - std::mutex mutex; std::list worklist; }; diff --git a/deps/glslang-new/StandAlone/spirv-remap.cpp b/deps/glslang/glslang-old/StandAlone/spirv-remap.cpp similarity index 91% rename from deps/glslang-new/StandAlone/spirv-remap.cpp rename to deps/glslang/glslang-old/StandAlone/spirv-remap.cpp index 998f7428aa..f35b58eda9 100644 --- a/deps/glslang-new/StandAlone/spirv-remap.cpp +++ b/deps/glslang/glslang-old/StandAlone/spirv-remap.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2015 LunarG, Inc. +//Copyright (C) 2015 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 @@ -143,8 +143,8 @@ namespace { << " [--map (all|types|names|funcs)]" << " [--dce (all|types|funcs)]" << " [--opt (all|loadstore)]" - << " [--strip-all | --strip all | -s]" - << " [--do-everything]" + << " [--strip-all | --strip all | -s]" + << " [--do-everything]" << " --input | -i file1 [file2...] --output|-o DESTDIR" << std::endl; @@ -311,6 +311,7 @@ namespace { } // namespace + int main(int argc, char** argv) { std::vector inputFile; diff --git a/deps/glslang-new/Test/100.conf b/deps/glslang/glslang-old/Test/100.conf similarity index 100% rename from deps/glslang-new/Test/100.conf rename to deps/glslang/glslang-old/Test/100.conf diff --git a/deps/glslang-new/Test/100.frag b/deps/glslang/glslang-old/Test/100.frag similarity index 100% rename from deps/glslang-new/Test/100.frag rename to deps/glslang/glslang-old/Test/100.frag diff --git a/deps/glslang-new/Test/100Limits.vert b/deps/glslang/glslang-old/Test/100Limits.vert similarity index 100% rename from deps/glslang-new/Test/100Limits.vert rename to deps/glslang/glslang-old/Test/100Limits.vert diff --git a/deps/glslang-new/Test/100scope.vert b/deps/glslang/glslang-old/Test/100scope.vert similarity index 100% rename from deps/glslang-new/Test/100scope.vert rename to deps/glslang/glslang-old/Test/100scope.vert diff --git a/deps/glslang-new/Test/110scope.vert b/deps/glslang/glslang-old/Test/110scope.vert old mode 100755 new mode 100644 similarity index 81% rename from deps/glslang-new/Test/110scope.vert rename to deps/glslang/glslang-old/Test/110scope.vert index 86c27a584e..e28db0fdb3 --- a/deps/glslang-new/Test/110scope.vert +++ b/deps/glslang/glslang-old/Test/110scope.vert @@ -71,17 +71,4 @@ void main() 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-new/Test/120.frag b/deps/glslang/glslang-old/Test/120.frag similarity index 96% rename from deps/glslang-new/Test/120.frag rename to deps/glslang/glslang-old/Test/120.frag index ea35b80e42..9035aed7b4 100644 --- a/deps/glslang-new/Test/120.frag +++ b/deps/glslang/glslang-old/Test/120.frag @@ -236,13 +236,3 @@ void foo12111() 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-new/Test/120.vert b/deps/glslang/glslang-old/Test/120.vert similarity index 100% rename from deps/glslang-new/Test/120.vert rename to deps/glslang/glslang-old/Test/120.vert diff --git a/deps/glslang-new/Test/130.frag b/deps/glslang/glslang-old/Test/130.frag similarity index 100% rename from deps/glslang-new/Test/130.frag rename to deps/glslang/glslang-old/Test/130.frag diff --git a/deps/glslang-new/Test/130.vert b/deps/glslang/glslang-old/Test/130.vert similarity index 100% rename from deps/glslang-new/Test/130.vert rename to deps/glslang/glslang-old/Test/130.vert diff --git a/deps/glslang-new/Test/140.frag b/deps/glslang/glslang-old/Test/140.frag similarity index 100% rename from deps/glslang-new/Test/140.frag rename to deps/glslang/glslang-old/Test/140.frag diff --git a/deps/glslang-new/Test/140.vert b/deps/glslang/glslang-old/Test/140.vert similarity index 82% rename from deps/glslang-new/Test/140.vert rename to deps/glslang/glslang-old/Test/140.vert index 914e672d8f..380d30e7c4 100644 --- a/deps/glslang-new/Test/140.vert +++ b/deps/glslang/glslang-old/Test/140.vert @@ -57,23 +57,3 @@ void foo() 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-new/Test/150.frag b/deps/glslang/glslang-old/Test/150.frag similarity index 100% rename from deps/glslang-new/Test/150.frag rename to deps/glslang/glslang-old/Test/150.frag diff --git a/deps/glslang-new/Test/150.geom b/deps/glslang/glslang-old/Test/150.geom similarity index 100% rename from deps/glslang-new/Test/150.geom rename to deps/glslang/glslang-old/Test/150.geom diff --git a/deps/glslang-new/Test/150.tesc b/deps/glslang/glslang-old/Test/150.tesc similarity index 100% rename from deps/glslang-new/Test/150.tesc rename to deps/glslang/glslang-old/Test/150.tesc diff --git a/deps/glslang-new/Test/150.tese b/deps/glslang/glslang-old/Test/150.tese similarity index 100% rename from deps/glslang-new/Test/150.tese rename to deps/glslang/glslang-old/Test/150.tese diff --git a/deps/glslang-new/Test/150.vert b/deps/glslang/glslang-old/Test/150.vert similarity index 76% rename from deps/glslang-new/Test/150.vert rename to deps/glslang/glslang-old/Test/150.vert index 4dd9e5ca81..8e1db4dd8b 100644 --- a/deps/glslang-new/Test/150.vert +++ b/deps/glslang/glslang-old/Test/150.vert @@ -1,9 +1,5 @@ #version 150 core -#ifndef GL_core_profile -# error standard macro GL_core_profile not defined -#endif - in vec4 iv4; uniform float ps; diff --git a/deps/glslang-new/Test/300.frag b/deps/glslang/glslang-old/Test/300.frag similarity index 100% rename from deps/glslang-new/Test/300.frag rename to deps/glslang/glslang-old/Test/300.frag diff --git a/deps/glslang-new/Test/300.vert b/deps/glslang/glslang-old/Test/300.vert similarity index 93% rename from deps/glslang-new/Test/300.vert rename to deps/glslang/glslang-old/Test/300.vert index daf98b836f..83b9bb112a 100644 --- a/deps/glslang-new/Test/300.vert +++ b/deps/glslang/glslang-old/Test/300.vert @@ -184,21 +184,4 @@ void fooDeeparray() 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-new/Test/300BuiltIns.frag b/deps/glslang/glslang-old/Test/300BuiltIns.frag similarity index 100% rename from deps/glslang-new/Test/300BuiltIns.frag rename to deps/glslang/glslang-old/Test/300BuiltIns.frag diff --git a/deps/glslang-new/Test/300block.frag b/deps/glslang/glslang-old/Test/300block.frag similarity index 100% rename from deps/glslang-new/Test/300block.frag rename to deps/glslang/glslang-old/Test/300block.frag diff --git a/deps/glslang-new/Test/300layout.frag b/deps/glslang/glslang-old/Test/300layout.frag similarity index 100% rename from deps/glslang-new/Test/300layout.frag rename to deps/glslang/glslang-old/Test/300layout.frag diff --git a/deps/glslang-new/Test/300layout.vert b/deps/glslang/glslang-old/Test/300layout.vert similarity index 100% rename from deps/glslang-new/Test/300layout.vert rename to deps/glslang/glslang-old/Test/300layout.vert diff --git a/deps/glslang-new/Test/300link.frag b/deps/glslang/glslang-old/Test/300link.frag similarity index 100% rename from deps/glslang-new/Test/300link.frag rename to deps/glslang/glslang-old/Test/300link.frag diff --git a/deps/glslang-new/Test/300link2.frag b/deps/glslang/glslang-old/Test/300link2.frag similarity index 100% rename from deps/glslang-new/Test/300link2.frag rename to deps/glslang/glslang-old/Test/300link2.frag diff --git a/deps/glslang-new/Test/300link3.frag b/deps/glslang/glslang-old/Test/300link3.frag similarity index 100% rename from deps/glslang-new/Test/300link3.frag rename to deps/glslang/glslang-old/Test/300link3.frag diff --git a/deps/glslang-new/Test/300operations.frag b/deps/glslang/glslang-old/Test/300operations.frag similarity index 100% rename from deps/glslang-new/Test/300operations.frag rename to deps/glslang/glslang-old/Test/300operations.frag diff --git a/deps/glslang-new/Test/300scope.vert b/deps/glslang/glslang-old/Test/300scope.vert similarity index 100% rename from deps/glslang-new/Test/300scope.vert rename to deps/glslang/glslang-old/Test/300scope.vert diff --git a/deps/glslang-new/Test/310.comp b/deps/glslang/glslang-old/Test/310.comp similarity index 92% rename from deps/glslang-new/Test/310.comp rename to deps/glslang/glslang-old/Test/310.comp index 9ca8eaaa10..3252728c80 100644 --- a/deps/glslang-new/Test/310.comp +++ b/deps/glslang/glslang-old/Test/310.comp @@ -4,7 +4,7 @@ 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 @@ -238,19 +238,3 @@ float t__; // 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-new/Test/310.frag b/deps/glslang/glslang-old/Test/310.frag similarity index 95% rename from deps/glslang-new/Test/310.frag rename to deps/glslang/glslang-old/Test/310.frag index 6814e6c539..e9f0395004 100644 --- a/deps/glslang-new/Test/310.frag +++ b/deps/glslang/glslang-old/Test/310.frag @@ -429,23 +429,3 @@ void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on 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-new/Test/310.geom b/deps/glslang/glslang-old/Test/310.geom similarity index 100% rename from deps/glslang-new/Test/310.geom rename to deps/glslang/glslang-old/Test/310.geom diff --git a/deps/glslang-new/Test/310.tesc b/deps/glslang/glslang-old/Test/310.tesc similarity index 100% rename from deps/glslang-new/Test/310.tesc rename to deps/glslang/glslang-old/Test/310.tesc diff --git a/deps/glslang-new/Test/310.tese b/deps/glslang/glslang-old/Test/310.tese similarity index 94% rename from deps/glslang-new/Test/310.tese rename to deps/glslang/glslang-old/Test/310.tese index bbeaa87fcf..63b1daa697 100644 --- a/deps/glslang-new/Test/310.tese +++ b/deps/glslang/glslang-old/Test/310.tese @@ -55,7 +55,7 @@ patch sample in vec3 badp4; // ERROR #extension GL_ARB_separate_shader_objects : enable -in gl_PerVertex +in gl_PerVertex // ERROR, no size { vec4 gl_Position; } gl_in[]; diff --git a/deps/glslang-new/Test/310.vert b/deps/glslang/glslang-old/Test/310.vert similarity index 100% rename from deps/glslang-new/Test/310.vert rename to deps/glslang/glslang-old/Test/310.vert diff --git a/deps/glslang-new/Test/310AofA.vert b/deps/glslang/glslang-old/Test/310AofA.vert similarity index 94% rename from deps/glslang-new/Test/310AofA.vert rename to deps/glslang/glslang-old/Test/310AofA.vert index fba2977257..a196388de1 100644 --- a/deps/glslang-new/Test/310AofA.vert +++ b/deps/glslang/glslang-old/Test/310AofA.vert @@ -113,9 +113,3 @@ 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-new/Test/310implicitSizeArrayError.vert b/deps/glslang/glslang-old/Test/310implicitSizeArrayError.vert similarity index 71% rename from deps/glslang-new/Test/310implicitSizeArrayError.vert rename to deps/glslang/glslang-old/Test/310implicitSizeArrayError.vert index 7aa0ee1b72..72c403e834 100644 --- a/deps/glslang-new/Test/310implicitSizeArrayError.vert +++ b/deps/glslang/glslang-old/Test/310implicitSizeArrayError.vert @@ -1,5 +1,5 @@ #version 310 es -layout (binding=0) uniform Block { +layout (location=0) uniform Block { highp int a[]; } uni; layout (location=0) out highp int o; diff --git a/deps/glslang-new/Test/330.frag b/deps/glslang/glslang-old/Test/330.frag similarity index 100% rename from deps/glslang-new/Test/330.frag rename to deps/glslang/glslang-old/Test/330.frag diff --git a/deps/glslang-new/Test/330comp.frag b/deps/glslang/glslang-old/Test/330comp.frag similarity index 100% rename from deps/glslang-new/Test/330comp.frag rename to deps/glslang/glslang-old/Test/330comp.frag diff --git a/deps/glslang-new/Test/400.frag b/deps/glslang/glslang-old/Test/400.frag similarity index 96% rename from deps/glslang-new/Test/400.frag rename to deps/glslang/glslang-old/Test/400.frag index 039d4809f1..b7460b4a07 100644 --- a/deps/glslang-new/Test/400.frag +++ b/deps/glslang/glslang-old/Test/400.frag @@ -184,8 +184,10 @@ void qlod() lod = textureQueryLod(sampRect, pf2); // ERROR } +struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member + uniform uint uu; -out uint iout; +out int iout; void bitwiseConv() { @@ -193,9 +195,3 @@ void bitwiseConv() 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-new/Test/400.geom b/deps/glslang/glslang-old/Test/400.geom old mode 100755 new mode 100644 similarity index 96% rename from deps/glslang-new/Test/400.geom rename to deps/glslang/glslang-old/Test/400.geom index f8e89558c0..0b77e12120 --- a/deps/glslang-new/Test/400.geom +++ b/deps/glslang/glslang-old/Test/400.geom @@ -300,9 +300,9 @@ void doubles() dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); - dmat2v *= matrixCompMult(dmat2v, dmat2v); - dmat3v *= matrixCompMult(dmat3v, dmat3v); - dmat4v *= matrixCompMult(dmat4v, dmat4v); + dmat2v *= matrixCompMult(dmat2v, dmat2v); + dmat3v *= matrixCompMult(dmat3v, dmat3v); + dmat4v *= matrixCompMult(dmat4v, dmat4v); dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); diff --git a/deps/glslang-new/Test/400.tesc b/deps/glslang/glslang-old/Test/400.tesc similarity index 84% rename from deps/glslang-new/Test/400.tesc rename to deps/glslang/glslang-old/Test/400.tesc index 415d7f7d7b..d01bd3ea1b 100644 --- a/deps/glslang-new/Test/400.tesc +++ b/deps/glslang/glslang-old/Test/400.tesc @@ -103,23 +103,3 @@ patch out pinbn { 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-new/Test/400.tese b/deps/glslang/glslang-old/Test/400.tese similarity index 85% rename from deps/glslang-new/Test/400.tese rename to deps/glslang/glslang-old/Test/400.tese index c110a1c4de..a1d3ed8289 100644 --- a/deps/glslang-new/Test/400.tese +++ b/deps/glslang/glslang-old/Test/400.tese @@ -51,7 +51,7 @@ patch sample in vec3 badp4; // ERROR #extension GL_ARB_separate_shader_objects : enable -in gl_PerVertex +in gl_PerVertex // ERROR, no size { float gl_ClipDistance[1]; } gl_in[]; @@ -103,23 +103,3 @@ 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-new/Test/400.vert b/deps/glslang/glslang-old/Test/400.vert similarity index 100% rename from deps/glslang-new/Test/400.vert rename to deps/glslang/glslang-old/Test/400.vert diff --git a/deps/glslang-new/Test/410.geom b/deps/glslang/glslang-old/Test/410.geom similarity index 100% rename from deps/glslang-new/Test/410.geom rename to deps/glslang/glslang-old/Test/410.geom diff --git a/deps/glslang-new/Test/410.tesc b/deps/glslang/glslang-old/Test/410.tesc similarity index 100% rename from deps/glslang-new/Test/410.tesc rename to deps/glslang/glslang-old/Test/410.tesc diff --git a/deps/glslang-new/Test/410.vert b/deps/glslang/glslang-old/Test/410.vert similarity index 100% rename from deps/glslang-new/Test/410.vert rename to deps/glslang/glslang-old/Test/410.vert diff --git a/deps/glslang-new/Test/420.comp b/deps/glslang/glslang-old/Test/420.comp similarity index 100% rename from deps/glslang-new/Test/420.comp rename to deps/glslang/glslang-old/Test/420.comp diff --git a/deps/glslang-new/Test/420.frag b/deps/glslang/glslang-old/Test/420.frag similarity index 100% rename from deps/glslang-new/Test/420.frag rename to deps/glslang/glslang-old/Test/420.frag diff --git a/deps/glslang-new/Test/420.geom b/deps/glslang/glslang-old/Test/420.geom similarity index 100% rename from deps/glslang-new/Test/420.geom rename to deps/glslang/glslang-old/Test/420.geom diff --git a/deps/glslang-new/Test/420.tesc b/deps/glslang/glslang-old/Test/420.tesc similarity index 100% rename from deps/glslang-new/Test/420.tesc rename to deps/glslang/glslang-old/Test/420.tesc diff --git a/deps/glslang-new/Test/420.tese b/deps/glslang/glslang-old/Test/420.tese similarity index 100% rename from deps/glslang-new/Test/420.tese rename to deps/glslang/glslang-old/Test/420.tese diff --git a/deps/glslang-new/Test/420.vert b/deps/glslang/glslang-old/Test/420.vert similarity index 100% rename from deps/glslang-new/Test/420.vert rename to deps/glslang/glslang-old/Test/420.vert diff --git a/deps/glslang-new/Test/420_size_gl_in.geom b/deps/glslang/glslang-old/Test/420_size_gl_in.geom similarity index 100% rename from deps/glslang-new/Test/420_size_gl_in.geom rename to deps/glslang/glslang-old/Test/420_size_gl_in.geom diff --git a/deps/glslang-new/Test/430.comp b/deps/glslang/glslang-old/Test/430.comp similarity index 100% rename from deps/glslang-new/Test/430.comp rename to deps/glslang/glslang-old/Test/430.comp diff --git a/deps/glslang-new/Test/430.vert b/deps/glslang/glslang-old/Test/430.vert similarity index 100% rename from deps/glslang-new/Test/430.vert rename to deps/glslang/glslang-old/Test/430.vert diff --git a/deps/glslang-new/Test/430AofA.frag b/deps/glslang/glslang-old/Test/430AofA.frag similarity index 100% rename from deps/glslang-new/Test/430AofA.frag rename to deps/glslang/glslang-old/Test/430AofA.frag diff --git a/deps/glslang-new/Test/430scope.vert b/deps/glslang/glslang-old/Test/430scope.vert similarity index 100% rename from deps/glslang-new/Test/430scope.vert rename to deps/glslang/glslang-old/Test/430scope.vert diff --git a/deps/glslang-new/Test/440.frag b/deps/glslang/glslang-old/Test/440.frag similarity index 100% rename from deps/glslang-new/Test/440.frag rename to deps/glslang/glslang-old/Test/440.frag diff --git a/deps/glslang-new/Test/440.vert b/deps/glslang/glslang-old/Test/440.vert similarity index 95% rename from deps/glslang-new/Test/440.vert rename to deps/glslang/glslang-old/Test/440.vert index 4ab6f2ee21..2e61f79757 100644 --- a/deps/glslang-new/Test/440.vert +++ b/deps/glslang/glslang-old/Test/440.vert @@ -174,12 +174,6 @@ out layout(xfb_buffer=7, xfb_offset=0) bblck10 { // link ERROR, implicit stride 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 diff --git a/deps/glslang/glslang-old/Test/450.comp b/deps/glslang/glslang-old/Test/450.comp new file mode 100644 index 0000000000..7f723ec0fe --- /dev/null +++ b/deps/glslang/glslang-old/Test/450.comp @@ -0,0 +1 @@ +#version 450 core diff --git a/deps/glslang-new/Test/450.frag b/deps/glslang/glslang-old/Test/450.frag similarity index 79% rename from deps/glslang-new/Test/450.frag rename to deps/glslang/glslang-old/Test/450.frag index 076d0b3a96..04f3aa1ca2 100644 --- a/deps/glslang-new/Test/450.frag +++ b/deps/glslang/glslang-old/Test/450.frag @@ -54,15 +54,3 @@ 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-new/Test/450.geom b/deps/glslang/glslang-old/Test/450.geom similarity index 57% rename from deps/glslang-new/Test/450.geom rename to deps/glslang/glslang-old/Test/450.geom index 45cbecba56..af67681378 100644 --- a/deps/glslang-new/Test/450.geom +++ b/deps/glslang/glslang-old/Test/450.geom @@ -8,12 +8,7 @@ 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-new/Test/450.tesc b/deps/glslang/glslang-old/Test/450.tesc similarity index 51% rename from deps/glslang-new/Test/450.tesc rename to deps/glslang/glslang-old/Test/450.tesc index bf5c08373b..75a9bf4692 100644 --- a/deps/glslang-new/Test/450.tesc +++ b/deps/glslang/glslang-old/Test/450.tesc @@ -12,12 +12,3 @@ 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-old/Test/450.tese b/deps/glslang/glslang-old/Test/450.tese new file mode 100644 index 0000000000..61447931c8 --- /dev/null +++ b/deps/glslang/glslang-old/Test/450.tese @@ -0,0 +1,14 @@ +#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]; +} diff --git a/deps/glslang/glslang-old/Test/450.vert b/deps/glslang/glslang-old/Test/450.vert new file mode 100644 index 0000000000..48da3edb96 --- /dev/null +++ b/deps/glslang/glslang-old/Test/450.vert @@ -0,0 +1,23 @@ +#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; diff --git a/deps/glslang-new/Test/Operations.frag b/deps/glslang/glslang-old/Test/Operations.frag similarity index 100% rename from deps/glslang-new/Test/Operations.frag rename to deps/glslang/glslang-old/Test/Operations.frag diff --git a/deps/glslang-new/Test/aggOps.frag b/deps/glslang/glslang-old/Test/aggOps.frag similarity index 100% rename from deps/glslang-new/Test/aggOps.frag rename to deps/glslang/glslang-old/Test/aggOps.frag diff --git a/deps/glslang-new/Test/always-discard.frag b/deps/glslang/glslang-old/Test/always-discard.frag similarity index 100% rename from deps/glslang-new/Test/always-discard.frag rename to deps/glslang/glslang-old/Test/always-discard.frag diff --git a/deps/glslang-new/Test/always-discard2.frag b/deps/glslang/glslang-old/Test/always-discard2.frag similarity index 100% rename from deps/glslang-new/Test/always-discard2.frag rename to deps/glslang/glslang-old/Test/always-discard2.frag diff --git a/deps/glslang-new/Test/array.frag b/deps/glslang/glslang-old/Test/array.frag similarity index 90% rename from deps/glslang-new/Test/array.frag rename to deps/glslang/glslang-old/Test/array.frag index a7b96a4419..4ccb00cdb6 100644 --- a/deps/glslang-new/Test/array.frag +++ b/deps/glslang/glslang-old/Test/array.frag @@ -102,12 +102,5 @@ void foo3() } 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 -} +float emptyA[]; +float b = vec4(emptyA); // ERROR, array can't be a constructor argument diff --git a/deps/glslang-new/Test/array100.frag b/deps/glslang/glslang-old/Test/array100.frag similarity index 100% rename from deps/glslang-new/Test/array100.frag rename to deps/glslang/glslang-old/Test/array100.frag diff --git a/deps/glslang-new/Test/atomic_uint.frag b/deps/glslang/glslang-old/Test/atomic_uint.frag similarity index 100% rename from deps/glslang-new/Test/atomic_uint.frag rename to deps/glslang/glslang-old/Test/atomic_uint.frag diff --git a/deps/glslang-new/Test/badChars.frag b/deps/glslang/glslang-old/Test/badChars.frag similarity index 77% rename from deps/glslang-new/Test/badChars.frag rename to deps/glslang/glslang-old/Test/badChars.frag index 3e9700d934..d67bf3a5e0 100644 --- a/deps/glslang-new/Test/badChars.frag +++ b/deps/glslang/glslang-old/Test/badChars.frag @@ -4,4 +4,3 @@ #if #endif int aÿ -#define A "ÿ \ No newline at end of file diff --git a/deps/glslang-new/Test/badMacroArgs.frag b/deps/glslang/glslang-old/Test/badMacroArgs.frag similarity index 100% rename from deps/glslang-new/Test/badMacroArgs.frag rename to deps/glslang/glslang-old/Test/badMacroArgs.frag diff --git a/deps/glslang/glslang-old/Test/baseResults/100.frag.out b/deps/glslang/glslang-old/Test/baseResults/100.frag.out new file mode 100644 index 0000000000..42635d3b02 --- /dev/null +++ b/deps/glslang/glslang-old/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 +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 implicitly-sized 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-old/Test/baseResults/100Limits.vert.out b/deps/glslang/glslang-old/Test/baseResults/100Limits.vert.out new file mode 100644 index 0000000000..46c256075a --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/100LimitsConf.vert.out b/deps/glslang/glslang-old/Test/baseResults/100LimitsConf.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/100LimitsConf.vert.out rename to deps/glslang/glslang-old/Test/baseResults/100LimitsConf.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/100scope.vert.out b/deps/glslang/glslang-old/Test/baseResults/100scope.vert.out new file mode 100644 index 0000000000..17423dc2d9 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/110scope.vert.out b/deps/glslang/glslang-old/Test/baseResults/110scope.vert.out new file mode 100644 index 0000000000..74002ba72b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/110scope.vert.out @@ -0,0 +1,245 @@ +110scope.vert +ERROR: 0:5: 'a' : redefinition +ERROR: 0:57: 'z' : undeclared identifier +ERROR: 0:57: 'z' : redefinition +ERROR: 3 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:? 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:? 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-old/Test/baseResults/120.frag.out b/deps/glslang/glslang-old/Test/baseResults/120.frag.out new file mode 100644 index 0000000000..79898aafc3 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/120.frag.out @@ -0,0 +1,665 @@ +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' : illegal - vector component fields not from the same set +ERROR: 0:83: 'xyxyx' : illegal vector field selection +ERROR: 0:83: 'scalar swizzle' : not supported for this version or the enabled extensions +ERROR: 0:83: 'xy' : vector field selection out of range +ERROR: 0:84: 'z' : vector field selection out of range +ERROR: 0:85: 'assign' : l-value required +ERROR: 0:91: 'int' : 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: 53 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 direct index (temp float) +0:83 'gl_FragColor' (fragColor 4-component vector of float FragColor) +0:83 Constant: +0:83 0 (const int) +0:84 direct index (temp float) +0:84 'centTexCoord' (centroid smooth in 2-component vector of float) +0:84 Constant: +0:84 0 (const int) +0:85 move second child to first child (temp bool) +0:85 Comma (temp bool) +0:85 'a' (temp int) +0:85 'b' (temp bool) +0:85 Constant: +0:85 true (const bool) +0:91 Function Definition: main( (global int) +0:91 Function Parameters: +0:92 Function Definition: main(i1; (global void) +0:92 Function Parameters: +0:92 'a' (in int) +0:97 Function Definition: foo(f1; (global int) +0:97 Function Parameters: +0:97 'a' (out float) +0:99 Sequence +0:99 Branch: Return with expression +0:99 Constant: +0:99 3.200000 +0:100 Function Call: foo(f1; (global int) +0:100 'a' (out float) +0:103 Function Definition: gen(vf3; (global bool) +0:103 Function Parameters: +0:103 'v' (in 3-component vector of float) +0:105 Sequence +0:105 Test condition and select (temp void) +0:105 Condition +0:105 logical-and (temp bool) +0:105 Compare Less Than (temp bool) +0:105 Absolute value (global float) +0:105 direct index (temp float) +0:105 'v' (in 3-component vector of float) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0.000100 +0:105 Compare Less Than (temp bool) +0:105 Absolute value (global float) +0:105 direct index (temp float) +0:105 'v' (in 3-component vector of float) +0:105 Constant: +0:105 1 (const int) +0:105 Constant: +0:105 0.000100 +0:105 true case +0:106 Branch: Return with expression +0:106 Constant: +0:106 true (const bool) +0:109 Function Definition: v1( (global void) +0:109 Function Parameters: +0:113 Function Definition: v2( (global void) +0:113 Function Parameters: +0:115 Sequence +0:115 Branch: Return +0:118 Function Definition: atest( (global void) +0:118 Function Parameters: +0:120 Sequence +0:120 Sequence +0:120 move second child to first child (temp 4-component vector of float) +0:120 'v' (temp 4-component vector of float) +0:120 direct index (smooth temp 4-component vector of float TexCoord) +0:120 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) +0:120 Constant: +0:120 1 (const int) +0:121 add second child into first child (temp 4-component vector of float) +0:121 'v' (temp 4-component vector of float) +0:121 direct index (smooth temp 4-component vector of float TexCoord) +0:121 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) +0:121 Constant: +0:121 3 (const int) +0:139 Function Definition: foo123( (global void) +0:139 Function Parameters: +0:141 Sequence +0:141 Sequence +0:141 move second child to first child (temp 2X2 matrix of float) +0:141 'r2' (temp 2X2 matrix of float) +0:141 component-wise multiply (global 2X2 matrix of float) +0:141 'm22' (global 2X2 matrix of float) +0:141 'm22' (global 2X2 matrix of float) +0:142 Sequence +0:142 move second child to first child (temp 3X3 matrix of float) +0:142 'r3' (temp 3X3 matrix of float) +0:142 component-wise multiply (global 3X3 matrix of float) +0:142 'm33' (global 3X3 matrix of float) +0:142 'm33' (global 3X3 matrix of float) +0:143 Sequence +0:143 move second child to first child (temp 4X4 matrix of float) +0:143 'r4' (temp 4X4 matrix of float) +0:143 component-wise multiply (global 4X4 matrix of float) +0:143 'm44' (global 4X4 matrix of float) +0:143 'm44' (global 4X4 matrix of float) +0:145 Sequence +0:145 move second child to first child (temp 2X3 matrix of float) +0:145 'r23' (temp 2X3 matrix of float) +0:145 component-wise multiply (global 2X3 matrix of float) +0:145 'm23' (global 2X3 matrix of float) +0:145 'm23' (global 2X3 matrix of float) +0:146 Sequence +0:146 move second child to first child (temp 2X4 matrix of float) +0:146 'r24' (temp 2X4 matrix of float) +0:146 component-wise multiply (global 2X4 matrix of float) +0:146 'm24' (global 2X4 matrix of float) +0:146 'm24' (global 2X4 matrix of float) +0:147 Sequence +0:147 move second child to first child (temp 3X2 matrix of float) +0:147 'r32' (temp 3X2 matrix of float) +0:147 component-wise multiply (global 3X2 matrix of float) +0:147 'm32' (global 3X2 matrix of float) +0:147 'm32' (global 3X2 matrix of float) +0:148 Sequence +0:148 move second child to first child (temp 3X4 matrix of float) +0:148 'r34' (temp 3X4 matrix of float) +0:148 component-wise multiply (global 3X4 matrix of float) +0:148 'm34' (global 3X4 matrix of float) +0:148 'm34' (global 3X4 matrix of float) +0:149 Sequence +0:149 move second child to first child (temp 4X2 matrix of float) +0:149 'r42' (temp 4X2 matrix of float) +0:149 component-wise multiply (global 4X2 matrix of float) +0:149 'm42' (global 4X2 matrix of float) +0:149 'm42' (global 4X2 matrix of float) +0:150 Sequence +0:150 move second child to first child (temp 4X3 matrix of float) +0:150 'r43' (temp 4X3 matrix of float) +0:150 component-wise multiply (global 4X3 matrix of float) +0:150 'm43' (global 4X3 matrix of float) +0:150 'm43' (global 4X3 matrix of float) +0:156 Function Definition: matConst( (global void) +0:156 Function Parameters: +0:? Sequence +0:162 Sequence +0:162 move second child to first child (temp 4X4 matrix of float) +0:162 'm4g' (temp 4X4 matrix of float) +0:162 Construct mat4 (temp 4X4 matrix of float) +0:162 'v2' (temp 2-component vector of float) +0:162 'v3' (temp 3-component vector of float) +0:162 'v3' (temp 3-component vector of float) +0:162 'v3' (temp 3-component vector of float) +0:162 'v3' (temp 3-component vector of float) +0:162 'v3' (temp 3-component vector of float) +0:163 Sequence +0:163 move second child to first child (temp 4X4 matrix of float) +0:163 'm4' (temp 4X4 matrix of float) +0:163 Construct mat4 (temp 4X4 matrix of float) +0:163 'v2' (temp 2-component vector of float) +0:163 'v3' (temp 3-component vector of float) +0:163 'v3' (temp 3-component vector of float) +0:163 'v3' (temp 3-component vector of float) +0:163 'v3' (temp 3-component vector of float) +0:163 'v2' (temp 2-component vector of float) +0:164 Sequence +0:164 move second child to first child (temp 3X3 matrix of float) +0:164 'm3' (temp 3X3 matrix of float) +0:164 Construct mat3 (temp 3X3 matrix of float) +0:164 'm4' (temp 4X4 matrix of float) +0:165 Sequence +0:165 move second child to first child (temp 3X3 matrix of float) +0:165 'm3b1' (temp 3X3 matrix of float) +0:165 Construct mat3 (temp 3X3 matrix of float) +0:165 'm4' (temp 4X4 matrix of float) +0:165 'v2' (temp 2-component vector of float) +0:166 Sequence +0:166 move second child to first child (temp 3X3 matrix of float) +0:166 'm3b2' (temp 3X3 matrix of float) +0:166 Construct mat3 (temp 3X3 matrix of float) +0:166 'm4' (temp 4X4 matrix of float) +0:166 'm4' (temp 4X4 matrix of float) +0:167 Sequence +0:167 move second child to first child (temp 3X2 matrix of float) +0:167 'm32' (temp 3X2 matrix of float) +0:167 Construct mat3x2 (temp 3X2 matrix of float) +0:167 'm4' (temp 4X4 matrix of float) +0:168 Sequence +0:168 move second child to first child (temp 4X4 matrix of float) +0:168 'm4c' (temp 4X4 matrix of float) +0:168 Construct mat4 (temp 4X4 matrix of float) +0:168 'm32' (temp 3X2 matrix of float) +0:169 Sequence +0:169 move second child to first child (temp 3X3 matrix of float) +0:169 'm3s' (temp 3X3 matrix of float) +0:169 Construct mat3 (temp 3X3 matrix of float) +0:169 direct index (temp float) +0:169 'v2' (temp 2-component vector of float) +0:169 Constant: +0:169 0 (const int) +0:171 Sequence +0:171 move second child to first child (temp 2-element array of 3X3 matrix of float) +0:171 'm3a1' (temp 2-element array of 3X3 matrix of float) +0:171 Construct mat3 (temp 2-element array of 3X3 matrix of float) +0:171 'm3s' (temp 3X3 matrix of float) +0:171 'm3s' (temp 3X3 matrix of float) +0:179 Function Definition: foo2323( (global void) +0:179 Function Parameters: +0:? Sequence +0:184 move second child to first child (temp 4-component vector of float) +0:184 'v' (temp 4-component vector of float) +0:184 textureLod (global 4-component vector of float) +0:184 's2D' (uniform sampler2D) +0:184 'v2' (temp 2-component vector of float) +0:184 'f' (temp float) +0:185 move second child to first child (temp 4-component vector of float) +0:185 'v' (temp 4-component vector of float) +0:185 textureProjLod (global 4-component vector of float) +0:185 's3D' (uniform sampler3D) +0:185 'v' (temp 4-component vector of float) +0:185 'f' (temp float) +0:186 move second child to first child (temp 4-component vector of float) +0:186 'v' (temp 4-component vector of float) +0:186 textureProjLod (global 4-component vector of float) +0:186 's1D' (uniform sampler1D) +0:186 'v' (temp 4-component vector of float) +0:186 'f' (temp float) +0:187 move second child to first child (temp 4-component vector of float) +0:187 'v' (temp 4-component vector of float) +0:187 textureProjLod (global 4-component vector of float) +0:187 's2DS' (uniform sampler2DShadow) +0:187 'v' (temp 4-component vector of float) +0:187 'f' (temp float) +0:189 move second child to first child (temp 4-component vector of float) +0:189 'v' (temp 4-component vector of float) +0:189 textureGrad (global 4-component vector of float) +0:189 's1D' (uniform sampler1D) +0:189 'f' (temp float) +0:189 'f' (temp float) +0:189 'f' (temp float) +0:190 move second child to first child (temp 4-component vector of float) +0:190 'v' (temp 4-component vector of float) +0:190 textureProjGrad (global 4-component vector of float) +0:190 's2D' (uniform sampler2D) +0:190 'v' (temp 4-component vector of float) +0:190 'v2' (temp 2-component vector of float) +0:190 'v2' (temp 2-component vector of float) +0:191 move second child to first child (temp 4-component vector of float) +0:191 'v' (temp 4-component vector of float) +0:191 textureProjGrad (global 4-component vector of float) +0:191 's2DS' (uniform sampler2DShadow) +0:191 'v' (temp 4-component vector of float) +0:191 'v2' (temp 2-component vector of float) +0:191 'v2' (temp 2-component vector of float) +0:196 Function Definition: foo2324( (global void) +0:196 Function Parameters: +0:? Sequence +0:201 move second child to first child (temp 4-component vector of float) +0:201 'v' (temp 4-component vector of float) +0:201 textureLod (global 4-component vector of float) +0:201 's2D' (uniform sampler2D) +0:201 'v2' (temp 2-component vector of float) +0:201 'f' (temp float) +0:202 move second child to first child (temp 4-component vector of float) +0:202 'v' (temp 4-component vector of float) +0:202 textureProjLod (global 4-component vector of float) +0:202 's3D' (uniform sampler3D) +0:202 'v' (temp 4-component vector of float) +0:202 'f' (temp float) +0:203 move second child to first child (temp 4-component vector of float) +0:203 'v' (temp 4-component vector of float) +0:203 textureProjLod (global 4-component vector of float) +0:203 's1D' (uniform sampler1D) +0:203 'v' (temp 4-component vector of float) +0:203 'f' (temp float) +0:204 move second child to first child (temp 4-component vector of float) +0:204 'v' (temp 4-component vector of float) +0:204 textureProjLod (global 4-component vector of float) +0:204 's2DS' (uniform sampler2DShadow) +0:204 'v' (temp 4-component vector of float) +0:204 'f' (temp float) +0:206 move second child to first child (temp 4-component vector of float) +0:206 'v' (temp 4-component vector of float) +0:206 textureGrad (global 4-component vector of float) +0:206 's1D' (uniform sampler1D) +0:206 'f' (temp float) +0:206 'f' (temp float) +0:206 'f' (temp float) +0:207 move second child to first child (temp 4-component vector of float) +0:207 'v' (temp 4-component vector of float) +0:207 textureProjGrad (global 4-component vector of float) +0:207 's2D' (uniform sampler2D) +0:207 'v' (temp 4-component vector of float) +0:207 'v2' (temp 2-component vector of float) +0:207 'v2' (temp 2-component vector of float) +0:208 move second child to first child (temp 4-component vector of float) +0:208 'v' (temp 4-component vector of float) +0:208 textureProjGrad (global 4-component vector of float) +0:208 's2DS' (uniform sampler2DShadow) +0:208 'v' (temp 4-component vector of float) +0:208 'v2' (temp 2-component vector of float) +0:208 'v2' (temp 2-component vector of float) +0:209 'v' (temp 4-component vector of float) +0:214 Function Definition: foo121111( (global void) +0:214 Function Parameters: +0:? Sequence +0:217 Sequence +0:217 move second child to first child (temp 4-component vector of float) +0:217 'v' (temp 4-component vector of float) +0:217 texture (global 4-component vector of float) +0:217 's2DRbad' (uniform sampler2DRect) +0:217 'v2' (temp 2-component vector of float) +0:225 Function Definition: foo12111( (global void) +0:225 Function Parameters: +0:? Sequence +0:231 move second child to first child (temp 4-component vector of float) +0:231 'v' (temp 4-component vector of float) +0:231 texture (global 4-component vector of float) +0:231 's2DR' (uniform sampler2DRect) +0:231 'v2' (temp 2-component vector of float) +0:232 move second child to first child (temp 4-component vector of float) +0:232 'v' (temp 4-component vector of float) +0:232 textureProj (global 4-component vector of float) +0:232 's2DR' (uniform sampler2DRect) +0:232 'v3' (temp 3-component vector of float) +0:233 move second child to first child (temp 4-component vector of float) +0:233 'v' (temp 4-component vector of float) +0:233 textureProj (global 4-component vector of float) +0:233 's2DR' (uniform sampler2DRect) +0:233 'v4' (temp 4-component vector of float) +0:234 move second child to first child (temp 4-component vector of float) +0:234 'v' (temp 4-component vector of float) +0:234 texture (global 4-component vector of float) +0:234 's2DRS' (uniform sampler2DRectShadow) +0:234 'v3' (temp 3-component vector of float) +0:235 move second child to first child (temp 4-component vector of float) +0:235 'v' (temp 4-component vector of float) +0:235 textureProj (global 4-component vector of float) +0:235 's2DRS' (uniform sampler2DRectShadow) +0:235 'v4' (temp 4-component vector of float) +0:237 move second child to first child (temp 4-component vector of float) +0:237 'v' (temp 4-component vector of float) +0:237 textureProjGrad (global 4-component vector of float) +0:237 's2DRS' (uniform sampler2DRectShadow) +0:237 'v' (temp 4-component vector of float) +0:237 'v2' (temp 2-component vector of float) +0:237 'v2' (temp 2-component vector of float) +0:? Linker Objects +0:? 'lowp' (global float) +0:? 'mediump' (global float) +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) + + +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) + diff --git a/deps/glslang/glslang-old/Test/baseResults/120.vert.out b/deps/glslang/glslang-old/Test/baseResults/120.vert.out new file mode 100644 index 0000000000..94a97b537e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/120.vert.out @@ -0,0 +1,503 @@ +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: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: 'float' : 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:200: '##' : token pasting not implemented (internal error) +ERROR: 0:200: '' : syntax error +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:? 'abc' (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:? 'abc' (global int) + diff --git a/deps/glslang/glslang-old/Test/baseResults/130.frag.out b/deps/glslang/glslang-old/Test/baseResults/130.frag.out new file mode 100644 index 0000000000..e71b3e28e3 --- /dev/null +++ b/deps/glslang/glslang-old/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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/130.vert.out b/deps/glslang/glslang-old/Test/baseResults/130.vert.out new file mode 100644 index 0000000000..1b3a0e19fa --- /dev/null +++ b/deps/glslang/glslang-old/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: 0:75: '##' : token pasting not implemented (internal error) +ERROR: 0:75: '' : syntax error +ERROR: 6 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance) +0:? 'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord) +0:? 'abc' (global int) +0:? '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:? 'abc' (global int) +0:? 'gl_VertexID' (gl_VertexId int VertexId) + diff --git a/deps/glslang/glslang-old/Test/baseResults/140.frag.out b/deps/glslang/glslang-old/Test/baseResults/140.frag.out new file mode 100644 index 0000000000..224cd30d8e --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/140.vert.out b/deps/glslang/glslang-old/Test/baseResults/140.vert.out new file mode 100644 index 0000000000..e7f88e3207 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/140.vert.out @@ -0,0 +1,199 @@ +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: 10 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: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 implicitly-sized array of 4-component vector of float TexCoord) +0:19 'gl_FogFragCoord' (smooth out float FogFragCoord) +0:20 'gl_FrontColor' (smooth out 4-component vector of float FrontColor) +0:48 Function Definition: foo( (global void) +0:48 Function Parameters: +0:50 Sequence +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:50 'v' (temp 4-component vector of float) +0:50 textureFetch (global 4-component vector of float) +0:50 's2dr' (uniform sampler2DRect) +0:50 'itloc2' (in 2-component vector of int) +0:51 add second child into first child (temp 4-component vector of float) +0:51 'v' (temp 4-component vector of float) +0:51 Constant: +0:51 0.000000 +0:52 add second child into first child (temp 4-component vector of float) +0:52 'v' (temp 4-component vector of float) +0:52 texture (global 4-component vector of float) +0:52 's2dr' (uniform sampler2DRect) +0:52 'tloc2' (in 2-component vector of float) +0:53 add second child into first child (temp 4-component vector of float) +0:53 'v' (temp 4-component vector of float) +0:53 Constant: +0:53 0.000000 +0:54 add second child into first child (temp 4-component vector of float) +0:54 'v' (temp 4-component vector of float) +0:54 texture (global float) +0:54 's2drs' (uniform sampler2DRectShadow) +0:54 'tloc3' (in 3-component vector of float) +0:55 add second child into first child (temp 4-component vector of float) +0:55 'v' (temp 4-component vector of float) +0:55 textureProj (global 4-component vector of float) +0:55 's2dr' (uniform sampler2DRect) +0:55 'tloc3' (in 3-component vector of float) +0:56 add second child into first child (temp 4-component vector of float) +0:56 'v' (temp 4-component vector of float) +0:56 textureProj (global 4-component vector of float) +0:56 's2dr' (uniform sampler2DRect) +0:56 'tloc4' (in 4-component vector of float) +0:57 add second child into first child (temp 4-component vector of float) +0:57 'v' (temp 4-component vector of float) +0:57 textureProjGradOffset (global 4-component vector of float) +0:57 's2dr' (uniform sampler2DRect) +0:57 'tloc4' (in 4-component vector of float) +0:57 Constant: +0:57 0.000000 +0:57 0.000000 +0:57 Constant: +0:57 0.000000 +0:57 0.000000 +0:57 Constant: +0:57 1 (const int) +0:57 2 (const int) +0:58 add second child into first child (temp 4-component vector of float) +0:58 'v' (temp 4-component vector of float) +0:58 textureProjGradOffset (global float) +0:58 's2drs' (uniform sampler2DRectShadow) +0:58 'tloc4' (in 4-component vector of float) +0:58 Constant: +0:58 0.000000 +0:58 0.000000 +0:58 Constant: +0:58 0.000000 +0:58 0.000000 +0:58 Constant: +0:58 1 (const int) +0:58 2 (const int) +0:? Linker Objects +0:? 'sbuf' (uniform isamplerBuffer) +0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem}) +0:? 'gl_TexCoord' (smooth out implicitly-sized 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 +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-old/Test/baseResults/150.frag.out b/deps/glslang/glslang-old/Test/baseResults/150.frag.out new file mode 100644 index 0000000000..143de3b5a1 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/150.geom.out b/deps/glslang/glslang-old/Test/baseResults/150.geom.out new file mode 100644 index 0000000000..dc5a41a27b --- /dev/null +++ b/deps/glslang/glslang-old/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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/150.tesc.out b/deps/glslang/glslang-old/Test/baseResults/150.tesc.out new file mode 100644 index 0000000000..21fade77b9 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/150.tesc.out @@ -0,0 +1,1652 @@ +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) + +400.tesc +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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: 21 compilation errors. No code generated. + + +Shader version: 400 +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 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +0:69 Constant: +0:69 4 (const int) +0:69 Constant: +0:69 1 (const int) +0:71 Barrier (global void) +0:91 Function Definition: foop( (global void) +0:91 Function Parameters: +0:? Sequence +0:95 multiply second child into first child (temp 3-component vector of float) +0:95 'pv3' (noContraction temp 3-component vector of float) +0:95 'pv3' (noContraction temp 3-component vector of float) +0:96 move second child to first child (temp 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:96 fma (global 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:97 move second child to first child (temp double) +0:97 'd' (noContraction temp double) +0:97 fma (global double) +0:97 'd' (noContraction temp double) +0:97 'd' (noContraction temp double) +0:97 'd' (noContraction temp double) +0:? Linker Objects +0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized 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 +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized +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: 30 compilation errors. No code generated. + + +Shader version: 400 +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 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}) +0:? 'outa' (global 1-element array of int) +0:? 'patchOut' (patch out 4-component vector of float) + +420.tesc +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 'temp float' 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 implicitly-sized 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: + gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" +ERROR: Linking tessellation control stage: Types must match: + outa: "global 4-element array of int" versus "global 1-element array of int" +ERROR: Linking tessellation control stage: can't handle multiple entry points per stage +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + 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 implicitly-sized 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 +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 +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-old/Test/baseResults/150.vert.out b/deps/glslang/glslang-old/Test/baseResults/150.vert.out new file mode 100644 index 0000000000..a82e7896fe --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/150.vert.out @@ -0,0 +1,95 @@ +150.vert +ERROR: 0:22: '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:9 Function Definition: main( (global void) +0:9 Function Parameters: +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of float) +0:11 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position) +0:11 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:11 Constant: +0:11 0 (const uint) +0:11 'iv4' (in 4-component vector of float) +0:12 move second child to first child (temp float) +0:12 gl_PointSize: direct index for structure (gl_PointSize float PointSize) +0:12 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:12 Constant: +0:12 1 (const uint) +0:12 'ps' (uniform float) +0:13 move second child to first child (temp float) +0:13 direct index (temp float ClipDistance) +0:13 gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance) +0:13 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 2 (const int) +0:13 direct index (temp float) +0:13 'iv4' (in 4-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:14 move second child to first child (temp 4-component vector of float) +0:14 gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex) +0:14 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:14 Constant: +0:14 3 (const uint) +0:14 '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 implicitly-sized 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:9 Function Definition: main( (global void) +0:9 Function Parameters: +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of float) +0:11 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position) +0:11 '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:11 Constant: +0:11 0 (const uint) +0:11 'iv4' (in 4-component vector of float) +0:12 move second child to first child (temp float) +0:12 gl_PointSize: direct index for structure (gl_PointSize float PointSize) +0:12 '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:12 Constant: +0:12 1 (const uint) +0:12 'ps' (uniform float) +0:13 move second child to first child (temp float) +0:13 direct index (temp float ClipDistance) +0:13 gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance) +0:13 '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:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 2 (const int) +0:13 direct index (temp float) +0:13 'iv4' (in 4-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:14 move second child to first child (temp 4-component vector of float) +0:14 gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex) +0:14 '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:14 Constant: +0:14 3 (const uint) +0:14 '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-old/Test/baseResults/300.frag.out b/deps/glslang/glslang-old/Test/baseResults/300.frag.out new file mode 100644 index 0000000000..cca6abd7ef --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/300.frag.out @@ -0,0 +1,631 @@ +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 with this profile: es +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: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 +ERROR: 45 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 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 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-old/Test/baseResults/300.vert.out b/deps/glslang/glslang-old/Test/baseResults/300.vert.out new file mode 100644 index 0000000000..5f060cba8e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/300.vert.out @@ -0,0 +1,486 @@ +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: 44 compilation errors. No code generated. + + +Shader version: 300 +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:? 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 implicitly-sized array of highp float) +0:? 'badsize2' (global implicitly-sized array of highp float) +0:? 'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a}) +0:? 'okayA' (global 2-element array of highp float) +0:? 'newV' (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:? '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: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:? 'gl_VertexID' (gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang-old/Test/baseResults/300BuiltIns.frag.out b/deps/glslang/glslang-old/Test/baseResults/300BuiltIns.frag.out new file mode 100644 index 0000000000..a3bab69090 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300block.frag.out b/deps/glslang/glslang-old/Test/baseResults/300block.frag.out new file mode 100644 index 0000000000..224bd111b8 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300layout.frag.out b/deps/glslang/glslang-old/Test/baseResults/300layout.frag.out new file mode 100644 index 0000000000..62a0b367d7 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300layout.vert.out b/deps/glslang/glslang-old/Test/baseResults/300layout.vert.out new file mode 100644 index 0000000000..f69a989b1f --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300link.frag.out b/deps/glslang/glslang-old/Test/baseResults/300link.frag.out new file mode 100644 index 0000000000..0713d3df45 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300link2.frag.out b/deps/glslang/glslang-old/Test/baseResults/300link2.frag.out new file mode 100644 index 0000000000..aaf71dc4c1 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300link3.frag.out b/deps/glslang/glslang-old/Test/baseResults/300link3.frag.out new file mode 100644 index 0000000000..3224695121 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300operations.frag.out b/deps/glslang/glslang-old/Test/baseResults/300operations.frag.out new file mode 100644 index 0000000000..ff7663e93e --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/300scope.vert.out b/deps/glslang/glslang-old/Test/baseResults/300scope.vert.out new file mode 100644 index 0000000000..e340cf6aab --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/310.comp.out b/deps/glslang/glslang-old/Test/baseResults/310.comp.out new file mode 100644 index 0000000000..a5be10e13e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310.comp.out @@ -0,0 +1,602 @@ +310.comp +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:4: 'local_size' : cannot change previously set size +ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize +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' must have a format layout qualifier +ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:82: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic +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:136: 'atomic_uint' : layout(binding=X) is required +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' must have a format layout qualifier +ERROR: 0:173: 'image2DMS' : Reserved word. +ERROR: 0:173: '' : image variables not declared 'writeonly' must have a format layout qualifier +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' must have a format layout qualifier +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: 79 compilation errors. No code generated. + + +Shader version: 310 +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 implicitly-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 implicitly-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 implicitly-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 implicitly-sized array of highp float) +0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const int) +0:61 Constant: +0:61 4.700000 +0:62 array length (temp int) +0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:62 Constant: +0:62 1 (const int) +0:63 Pre-Increment (temp highp 4-component vector of float) +0:63 's' (shared highp 4-component vector of float) +0:84 Function Definition: qux( (global void) +0:84 Function Parameters: +0:86 Sequence +0:86 Sequence +0:86 move second child to first child (temp highp int) +0:86 'i' (temp highp int) +0:86 Constant: +0:86 4 (const int) +0:87 imageAtomicCompSwap (global highp int) +0:87 'iimg2D' (layout(r32i ) uniform highp iimage2D) +0:87 Construct ivec2 (temp highp 2-component vector of int) +0:87 'i' (temp highp int) +0:87 'i' (temp highp int) +0:87 'i' (temp highp int) +0:87 'i' (temp highp int) +0:88 imageAtomicAdd (global highp uint) +0:88 'uimg2D' (layout(r32ui ) uniform mediump uimage2D) +0:88 Construct ivec2 (temp highp 2-component vector of int) +0:88 'i' (temp highp int) +0:88 'i' (temp highp int) +0:88 Convert int to uint (temp highp uint) +0:88 'i' (temp highp int) +0:89 imageAtomicMin (global highp int) +0:89 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D) +0:89 Construct ivec2 (temp highp 2-component vector of int) +0:89 'i' (temp highp int) +0:89 'i' (temp highp int) +0:89 'i' (temp highp int) +0:90 Constant: +0:90 0.000000 +0:91 Sequence +0:91 move second child to first child (temp highp 4-component vector of int) +0:91 'pos' (temp highp 4-component vector of int) +0:91 imageLoad (global highp 4-component vector of int) +0:91 'iimg2D' (layout(r32i ) uniform highp iimage2D) +0:91 Construct ivec2 (temp highp 2-component vector of int) +0:91 'i' (temp highp int) +0:91 'i' (temp highp int) +0:92 imageStore (global highp void) +0:92 'ii2da' (writeonly uniform highp iimage2DArray) +0:92 Construct ivec3 (temp 3-component vector of int) +0:92 'i' (temp highp int) +0:92 'i' (temp highp int) +0:92 'i' (temp highp int) +0:92 Constant: +0:92 0 (const int) +0:92 0 (const int) +0:92 0 (const int) +0:92 0 (const int) +0:93 imageLoad (global mediump 4-component vector of float) +0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) +0:93 Construct ivec2 (temp mediump 2-component vector of int) +0:93 'i' (temp highp int) +0:93 'i' (temp highp int) +0:94 imageLoad (global highp 4-component vector of int) +0:94 'ii2da' (writeonly uniform highp iimage2DArray) +0:94 Construct ivec3 (temp highp 3-component vector of int) +0:94 'i' (temp highp int) +0:94 'i' (temp highp int) +0:94 'i' (temp highp int) +0:100 Function Definition: passr(iI21; (global void) +0:100 Function Parameters: +0:100 'image' (coherent readonly in highp iimage2D) +0:107 Function Definition: passrc( (global void) +0:107 Function Parameters: +0:109 Sequence +0:109 Function Call: passr(iI21; (global void) +0:109 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D) +0:110 Function Call: passr(iI21; (global void) +0:110 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D) +0:111 Function Call: passr(iI21; (global void) +0:111 'iimg2D' (layout(r32i ) uniform highp iimage2D) +0:123 Function Definition: func(au1; (global highp uint) +0:123 Function Parameters: +0:123 'c' (in highp atomic_uint) +0:125 Sequence +0:125 Branch: Return with expression +0:125 AtomicCounterIncrement (global highp uint) +0:125 'c' (in highp atomic_uint) +0:128 Function Definition: func2(au1; (global highp uint) +0:128 Function Parameters: +0:128 'c' (out highp atomic_uint) +0:130 Sequence +0:130 Branch: Return with expression +0:130 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) +0:131 Branch: Return with expression +0:131 AtomicCounter (global highp uint) +0:131 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) +0:134 Function Definition: mainAC( (global void) +0:134 Function Parameters: +0:? Sequence +0:137 Sequence +0:137 move second child to first child (temp highp uint) +0:137 'val' (temp highp uint) +0:137 AtomicCounter (global highp uint) +0:137 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) +0:138 AtomicCounterDecrement (global highp uint) +0:138 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) +0:146 Function Definition: opac( (global void) +0:146 Function Parameters: +0:? Sequence +0:149 indirect index (temp highp int) +0:149 'a' (temp 3-element array of highp int) +0:149 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) +0:150 direct index (layout(binding=2 offset=4 ) temp highp atomic_uint) +0:150 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint) +0:150 Constant: +0:150 2 (const int) +0:151 indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint) +0:151 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint) +0:151 'i' (uniform highp int) +0:157 Function Definition: atoms( (global void) +0:157 Function Parameters: +0:159 Sequence +0:159 Sequence +0:159 move second child to first child (temp highp int) +0:159 'origi' (temp highp int) +0:159 AtomicAdd (global highp int) +0:159 'atomi' (shared highp int) +0:159 Constant: +0:159 3 (const int) +0:160 Sequence +0:160 move second child to first child (temp highp uint) +0:160 'origu' (temp highp uint) +0:160 AtomicAnd (global highp uint) +0:160 'atomu' (shared highp uint) +0:160 Constant: +0:160 7 (const uint) +0:161 move second child to first child (temp highp int) +0:161 'origi' (temp highp int) +0:161 AtomicExchange (global highp int) +0:161 'atomi' (shared highp int) +0:161 Constant: +0:161 4 (const int) +0:162 move second child to first child (temp highp uint) +0:162 'origu' (temp highp uint) +0:162 AtomicCompSwap (global highp uint) +0:162 'atomu' (shared highp uint) +0:162 Constant: +0:162 10 (const uint) +0:162 Constant: +0:162 8 (const uint) +0:191 Function Definition: foowo( (global void) +0:191 Function Parameters: +0:? Sequence +0:194 move second child to first child (temp highp float) +0:194 'g' (temp highp float) +0:194 direct index (layout(column_major shared ) temp highp float) +0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:194 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:194 Constant: +0:194 1 (const int) +0:194 Constant: +0:194 2 (const int) +0:195 Sequence +0:195 move second child to first child (temp highp float) +0:195 'f' (temp highp float) +0:195 direct index (layout(column_major shared ) temp highp float) +0:195 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:195 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:195 Constant: +0:195 1 (const int) +0:195 Constant: +0:195 2 (const int) +0:196 Pre-Increment (temp highp float) +0:196 direct index (layout(column_major shared ) temp highp float) +0:196 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:196 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:196 Constant: +0:196 1 (const int) +0:196 Constant: +0:196 2 (const int) +0:197 Post-Decrement (temp highp float) +0:197 direct index (layout(column_major shared ) temp highp float) +0:197 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:197 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:197 Constant: +0:197 1 (const int) +0:197 Constant: +0:197 2 (const int) +0:198 add (temp highp float) +0:198 'f' (temp highp float) +0:198 direct index (layout(column_major shared ) temp highp float) +0:198 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:198 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:198 Constant: +0:198 1 (const int) +0:198 Constant: +0:198 2 (const int) +0:199 subtract (temp highp float) +0:199 direct index (layout(column_major shared ) temp highp float) +0:199 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:199 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:199 Constant: +0:199 1 (const int) +0:199 Constant: +0:199 2 (const int) +0:199 'f' (temp highp float) +0:201 Test condition and select (temp highp float) +0:201 Condition +0:201 'b' (temp bool) +0:201 true case +0:201 'f' (temp highp float) +0:201 false case +0:201 direct index (layout(column_major shared ) temp highp float) +0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:201 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:201 Constant: +0:201 1 (const int) +0:201 Constant: +0:201 2 (const int) +0:202 Test condition and select (temp highp float) +0:202 Condition +0:202 'b' (temp bool) +0:202 true case +0:202 direct index (layout(column_major shared ) temp highp float) +0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:202 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:202 Constant: +0:202 1 (const int) +0:202 Constant: +0:202 2 (const int) +0:202 false case +0:202 'f' (temp highp float) +0:203 Test condition and select (temp void) +0:203 Condition +0:203 Compare Equal (temp bool) +0:203 'f' (temp highp float) +0:203 direct index (layout(column_major shared ) temp highp float) +0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:203 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:203 Constant: +0:203 1 (const int) +0:203 Constant: +0:203 2 (const int) +0:203 true case +0:204 Pre-Increment (temp highp float) +0:204 'f' (temp highp float) +0:205 Test condition and select (temp void) +0:205 Condition +0:205 Compare Greater Than or Equal (temp bool) +0:205 'f' (temp highp float) +0:205 direct index (layout(column_major shared ) temp highp float) +0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:205 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:205 Constant: +0:205 1 (const int) +0:205 Constant: +0:205 2 (const int) +0:205 true case +0:206 Pre-Increment (temp highp float) +0:206 'f' (temp highp float) +0:207 move second child to first child (temp highp float) +0:207 'f' (temp highp float) +0:207 direct index (temp highp float) +0:207 Construct vec3 (temp highp 3-component vector of float) +0:207 direct index (layout(column_major shared ) temp highp float) +0:207 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:207 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:207 Constant: +0:207 1 (const int) +0:207 Constant: +0:207 2 (const int) +0:207 Constant: +0:207 0 (const int) +0:208 Bitwise not (temp highp int) +0:208 value: direct index for structure (layout(column_major shared ) buffer highp int) +0:208 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:208 Constant: +0:208 0 (const int) +0:209 move second child to first child (temp highp float) +0:209 direct index (layout(column_major shared ) temp highp float) +0:209 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:209 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:209 Constant: +0:209 1 (const int) +0:209 Constant: +0:209 2 (const int) +0:209 Constant: +0:209 3.400000 +0:218 Function Definition: foomultio( (global void) +0:218 Function Parameters: +0:? Sequence +0:221 move second child to first child (temp highp float) +0:221 'g' (temp highp float) +0:221 direct index (layout(column_major shared ) temp highp float) +0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:221 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:221 Constant: +0:221 1 (const int) +0:221 Constant: +0:221 2 (const int) +0:222 Bitwise not (temp highp int) +0:222 value: direct index for structure (layout(column_major shared ) buffer highp int) +0:222 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:222 Constant: +0:222 0 (const int) +0:223 move second child to first child (temp highp float) +0:223 direct index (layout(column_major shared ) temp highp float) +0:223 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) +0:223 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:223 Constant: +0:223 1 (const int) +0:223 Constant: +0:223 2 (const int) +0:223 Constant: +0:223 3.400000 +0:224 move second child to first child (temp highp int) +0:224 value: direct index for structure (layout(column_major shared ) buffer highp int) +0:224 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:224 Constant: +0:224 0 (const int) +0:224 Constant: +0:224 2 (const int) +0:? Linker Objects +0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +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 implicitly-sized array of highp float values}) +0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 +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 implicitly-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 implicitly-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 implicitly-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 implicitly-sized array of highp float values}) +0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/310.frag.out b/deps/glslang/glslang-old/Test/baseResults/310.frag.out new file mode 100644 index 0000000000..34cae953bd --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310.frag.out @@ -0,0 +1,1222 @@ +310.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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' must have a format layout qualifier +ERROR: 0:67: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:67: '' : image variables not declared 'writeonly' must have a format layout qualifier +ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:68: '' : image variables not declared 'writeonly' must have a format layout qualifier +ERROR: 0:69: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:69: '' : image variables not declared 'writeonly' must have a format layout qualifier +ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type +ERROR: 0:77: 'location' : location is too large +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' must have a format layout qualifier +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 with this profile: es +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' : required extension not requested: GL_KHR_blend_equation_advanced +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: 125 compilation errors. No code generated. + + +Shader version: 310 +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of highp int SampleMaskIn) +0:273 Constant: +0:273 0 (const int) +0:273 'a3' (temp highp int) +0:274 Sequence +0:274 move second child to first child (temp mediump int) +0:274 'n1' (temp mediump int) +0:274 Constant: +0:274 4 (const int) +0:275 Sequence +0:275 move second child to first child (temp mediump int) +0:275 'n2' (temp mediump int) +0:275 'gl_NumSamples' (uniform lowp int) +0:283 Function Definition: badImageAtom( (global void) +0:283 Function Parameters: +0:? Sequence +0:289 imageAtomicAdd (global highp int) +0:289 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:289 'P' (uniform mediump 2-component vector of int) +0:289 'dati' (temp mediump int) +0:290 imageAtomicAdd (global highp uint) +0:290 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:290 'P' (uniform mediump 2-component vector of int) +0:290 'datu' (temp mediump uint) +0:291 imageAtomicMin (global highp int) +0:291 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:291 'P' (uniform mediump 2-component vector of int) +0:291 'dati' (temp mediump int) +0:292 imageAtomicMin (global highp uint) +0:292 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:292 'P' (uniform mediump 2-component vector of int) +0:292 'datu' (temp mediump uint) +0:293 imageAtomicMax (global highp int) +0:293 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:293 'P' (uniform mediump 2-component vector of int) +0:293 'dati' (temp mediump int) +0:294 imageAtomicMax (global highp uint) +0:294 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:294 'P' (uniform mediump 2-component vector of int) +0:294 'datu' (temp mediump uint) +0:295 imageAtomicAnd (global highp int) +0:295 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:295 'P' (uniform mediump 2-component vector of int) +0:295 'dati' (temp mediump int) +0:296 imageAtomicAnd (global highp uint) +0:296 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:296 'P' (uniform mediump 2-component vector of int) +0:296 'datu' (temp mediump uint) +0:297 imageAtomicOr (global highp int) +0:297 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:297 'P' (uniform mediump 2-component vector of int) +0:297 'dati' (temp mediump int) +0:298 imageAtomicOr (global highp uint) +0:298 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:298 'P' (uniform mediump 2-component vector of int) +0:298 'datu' (temp mediump uint) +0:299 imageAtomicXor (global highp int) +0:299 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:299 'P' (uniform mediump 2-component vector of int) +0:299 'dati' (temp mediump int) +0:300 imageAtomicXor (global highp uint) +0:300 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:300 'P' (uniform mediump 2-component vector of int) +0:300 'datu' (temp mediump uint) +0:301 imageAtomicExchange (global highp int) +0:301 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:301 'P' (uniform mediump 2-component vector of int) +0:301 'dati' (temp mediump int) +0:302 imageAtomicExchange (global highp uint) +0:302 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:302 'P' (uniform mediump 2-component vector of int) +0:302 'datu' (temp mediump uint) +0:303 imageAtomicExchange (global highp float) +0:303 'im2Df' (layout(r32f ) uniform highp image2D) +0:303 'P' (uniform mediump 2-component vector of int) +0:303 'datf' (temp mediump float) +0:304 imageAtomicCompSwap (global highp int) +0:304 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:304 'P' (uniform mediump 2-component vector of int) +0:304 Constant: +0:304 3 (const int) +0:304 'dati' (temp mediump int) +0:305 imageAtomicCompSwap (global highp uint) +0:305 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:305 'P' (uniform mediump 2-component vector of int) +0:305 Constant: +0:305 5 (const uint) +0:305 'datu' (temp mediump uint) +0:316 Function Definition: goodImageAtom( (global void) +0:316 Function Parameters: +0:? Sequence +0:322 imageAtomicAdd (global highp int) +0:322 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:322 'P' (uniform mediump 2-component vector of int) +0:322 'dati' (temp mediump int) +0:323 imageAtomicAdd (global highp uint) +0:323 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:323 'P' (uniform mediump 2-component vector of int) +0:323 'datu' (temp mediump uint) +0:324 imageAtomicMin (global highp int) +0:324 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:324 'P' (uniform mediump 2-component vector of int) +0:324 'dati' (temp mediump int) +0:325 imageAtomicMin (global highp uint) +0:325 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:325 'P' (uniform mediump 2-component vector of int) +0:325 'datu' (temp mediump uint) +0:326 imageAtomicMax (global highp int) +0:326 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:326 'P' (uniform mediump 2-component vector of int) +0:326 'dati' (temp mediump int) +0:327 imageAtomicMax (global highp uint) +0:327 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:327 'P' (uniform mediump 2-component vector of int) +0:327 'datu' (temp mediump uint) +0:328 imageAtomicAnd (global highp int) +0:328 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:328 'P' (uniform mediump 2-component vector of int) +0:328 'dati' (temp mediump int) +0:329 imageAtomicAnd (global highp uint) +0:329 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:329 'P' (uniform mediump 2-component vector of int) +0:329 'datu' (temp mediump uint) +0:330 imageAtomicOr (global highp int) +0:330 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:330 'P' (uniform mediump 2-component vector of int) +0:330 'dati' (temp mediump int) +0:331 imageAtomicOr (global highp uint) +0:331 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:331 'P' (uniform mediump 2-component vector of int) +0:331 'datu' (temp mediump uint) +0:332 imageAtomicXor (global highp int) +0:332 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:332 'P' (uniform mediump 2-component vector of int) +0:332 'dati' (temp mediump int) +0:333 imageAtomicXor (global highp uint) +0:333 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:333 'P' (uniform mediump 2-component vector of int) +0:333 'datu' (temp mediump uint) +0:334 imageAtomicExchange (global highp int) +0:334 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:334 'P' (uniform mediump 2-component vector of int) +0:334 'dati' (temp mediump int) +0:335 imageAtomicExchange (global highp uint) +0:335 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:335 'P' (uniform mediump 2-component vector of int) +0:335 'datu' (temp mediump uint) +0:336 imageAtomicExchange (global highp float) +0:336 'im2Df' (layout(r32f ) uniform highp image2D) +0:336 'P' (uniform mediump 2-component vector of int) +0:336 'datf' (temp mediump float) +0:337 imageAtomicCompSwap (global highp int) +0:337 'im2Di' (layout(r32i ) uniform highp iimage2D) +0:337 'P' (uniform mediump 2-component vector of int) +0:337 Constant: +0:337 3 (const int) +0:337 'dati' (temp mediump int) +0:338 imageAtomicCompSwap (global highp uint) +0:338 'im2Du' (layout(r32ui ) uniform highp uimage2D) +0:338 'P' (uniform mediump 2-component vector of int) +0:338 Constant: +0:338 5 (const uint) +0:338 'datu' (temp mediump uint) +0:340 imageAtomicMax (global highp int) +0:340 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D) +0:340 'P' (uniform mediump 2-component vector of int) +0:340 'dati' (temp mediump int) +0:341 imageAtomicMax (global highp uint) +0:341 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D) +0:341 'P' (uniform mediump 2-component vector of int) +0:341 'datu' (temp mediump uint) +0:342 imageAtomicExchange (global highp float) +0:342 'badIm2Df' (layout(rgba32f ) uniform highp image2D) +0:342 'P' (uniform mediump 2-component vector of int) +0:342 'datf' (temp mediump float) +0:353 Function Definition: badInterp( (global void) +0:353 Function Parameters: +0:355 Sequence +0:355 interpolateAtCentroid (global mediump 2-component vector of float) +0:355 'colorfc' (centroid flat in mediump 2-component vector of float) +0:356 interpolateAtSample (global mediump 2-component vector of float) +0:356 'colorfc' (centroid flat in mediump 2-component vector of float) +0:356 Constant: +0:356 1 (const int) +0:357 interpolateAtOffset (global mediump 2-component vector of float) +0:357 'colorfc' (centroid flat in mediump 2-component vector of float) +0:357 Constant: +0:357 0.200000 +0:357 0.200000 +0:369 Function Definition: interp( (global void) +0:369 Function Parameters: +0:? Sequence +0:376 move second child to first child (temp mediump 2-component vector of float) +0:376 'res2' (temp mediump 2-component vector of float) +0:376 interpolateAtCentroid (global mediump 2-component vector of float) +0:376 'colorfc' (centroid flat in mediump 2-component vector of float) +0:377 move second child to first child (temp mediump 4-component vector of float) +0:377 'res4' (temp mediump 4-component vector of float) +0:377 interpolateAtCentroid (global mediump 4-component vector of float) +0:377 'colorSampIn' (smooth sample in mediump 4-component vector of float) +0:378 move second child to first child (temp mediump 4-component vector of float) +0:378 'res4' (temp mediump 4-component vector of float) +0:378 interpolateAtCentroid (global mediump 4-component vector of float) +0:378 'colorfsi' (flat sample in mediump 4-component vector of float) +0:379 move second child to first child (temp mediump float) +0:379 'res' (temp mediump float) +0:379 interpolateAtCentroid (global mediump float) +0:379 'scalarIn' (smooth in mediump float) +0:380 'res3' (temp mediump 3-component vector of float) +0:381 move second child to first child (temp mediump 3-component vector of float) +0:381 'res3' (temp mediump 3-component vector of float) +0:381 interpolateAtCentroid (global mediump 3-component vector of float) +0:381 direct index (smooth sample temp mediump 3-component vector of float) +0:381 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) +0:381 Constant: +0:381 2 (const int) +0:382 move second child to first child (temp mediump 2-component vector of float) +0:382 'res2' (temp mediump 2-component vector of float) +0:382 interpolateAtCentroid (global mediump 2-component vector of float) +0:382 vector swizzle (temp mediump 2-component vector of float) +0:382 direct index (smooth sample temp mediump 3-component vector of float) +0:382 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) +0:382 Constant: +0:382 2 (const int) +0:382 Sequence +0:382 Constant: +0:382 0 (const int) +0:382 Constant: +0:382 1 (const int) +0:384 'res3' (temp mediump 3-component vector of float) +0:385 move second child to first child (temp mediump 3-component vector of float) +0:385 'res3' (temp mediump 3-component vector of float) +0:385 interpolateAtSample (global mediump 3-component vector of float) +0:385 indirect index (smooth sample temp mediump 3-component vector of float) +0:385 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) +0:385 'i' (uniform mediump int) +0:385 Constant: +0:385 0 (const int) +0:386 move second child to first child (temp mediump 2-component vector of float) +0:386 'res2' (temp mediump 2-component vector of float) +0:386 interpolateAtSample (global mediump 2-component vector of float) +0:386 vector swizzle (temp mediump 2-component vector of float) +0:386 direct index (smooth sample temp mediump 3-component vector of float) +0:386 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) +0:386 Constant: +0:386 2 (const int) +0:386 Sequence +0:386 Constant: +0:386 0 (const int) +0:386 Constant: +0:386 1 (const int) +0:386 Constant: +0:386 2 (const int) +0:387 move second child to first child (temp mediump float) +0:387 'res' (temp mediump float) +0:387 interpolateAtSample (global mediump float) +0:387 'scalarIn' (smooth in mediump float) +0:387 Constant: +0:387 1 (const int) +0:389 'res3' (temp mediump 3-component vector of float) +0:390 move second child to first child (temp mediump 3-component vector of float) +0:390 'res3' (temp mediump 3-component vector of float) +0:390 interpolateAtOffset (global mediump 3-component vector of float) +0:390 direct index (smooth sample temp mediump 3-component vector of float) +0:390 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) +0:390 Constant: +0:390 2 (const int) +0:390 Constant: +0:390 0.200000 +0:390 0.200000 +0:391 move second child to first child (temp mediump 2-component vector of float) +0:391 'res2' (temp mediump 2-component vector of float) +0:391 interpolateAtOffset (global mediump 2-component vector of float) +0:391 vector swizzle (temp mediump 2-component vector of float) +0:391 direct index (smooth sample temp mediump 3-component vector of float) +0:391 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) +0:391 Constant: +0:391 2 (const int) +0:391 Sequence +0:391 Constant: +0:391 0 (const int) +0:391 Constant: +0:391 1 (const int) +0:391 Constant: +0:391 0.200000 +0:391 0.200000 +0:392 move second child to first child (temp mediump float) +0:392 'res' (temp mediump float) +0:392 interpolateAtOffset (global mediump float) +0:392 add (temp mediump float) +0:392 'scalarIn' (smooth in mediump float) +0:392 'scalarIn' (smooth in mediump float) +0:392 Constant: +0:392 0.200000 +0:392 0.200000 +0:393 move second child to first child (temp mediump float) +0:393 'res' (temp mediump float) +0:393 interpolateAtOffset (global mediump float) +0:393 'scalarIn' (smooth in mediump float) +0:393 Constant: +0:393 0.200000 +0:393 0.200000 +0:396 move second child to first child (temp mediump float) +0:396 'res' (temp mediump float) +0:396 interpolateAtCentroid (global mediump float) +0:396 'f' (temp mediump float) +0:397 move second child to first child (temp mediump 4-component vector of float) +0:397 'res4' (temp mediump 4-component vector of float) +0:397 interpolateAtSample (global mediump 4-component vector of float) +0:397 'outp' (out mediump 4-component vector of float) +0:397 Constant: +0:397 0 (const int) +0:427 Function Definition: blendFoo( (temp void) +0:427 Function Parameters: +0:428 Function Definition: blendFoo(vf3; (global void) +0:428 Function Parameters: +0:428 'v' (in mediump 3-component vector of float) +0:? Linker Objects +0:? 'gl_FragCoord' (smooth in mediump 4-component vector of float) +0:? 'v3' (layout(location=2 ) smooth in mediump 3-component vector of float) +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 implicitly-sized array of highp int SampleMaskIn) +0:? 'gl_SampleMask' (out implicitly-sized 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_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-old/Test/baseResults/310.geom.out b/deps/glslang/glslang-old/Test/baseResults/310.geom.out new file mode 100644 index 0000000000..def6b7ab31 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310.geom.out @@ -0,0 +1,278 @@ +310.geom +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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-old/Test/baseResults/310.tesc.out b/deps/glslang/glslang-old/Test/baseResults/310.tesc.out new file mode 100644 index 0000000000..ab27198f61 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310.tesc.out @@ -0,0 +1,543 @@ +310.tesc +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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}) +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}) +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}) +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}) +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}) +0:114 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:114 Constant: +0:114 1 (const int) +0:114 Constant: +0:114 1 (const int) +0:115 move second child to first child (temp highp float) +0:115 gl_PointSize: direct index for structure (out highp float PointSize) +0:115 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:115 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:115 'gl_InvocationID' (in highp int InvocationID) +0:115 Constant: +0:115 1 (const int) +0:115 'ps' (temp highp float) +0:122 Function Definition: goodfoop( (global void) +0:122 Function Parameters: +0:? Sequence +0:126 multiply second child into first child (temp highp 3-component vector of float) +0:126 'pv3' (noContraction temp highp 3-component vector of float) +0:126 'pv3' (noContraction temp highp 3-component vector of float) +0:127 move second child to first child (temp highp 3-component vector of float) +0:127 'pv3' (noContraction temp highp 3-component vector of float) +0:127 fma (global highp 3-component vector of float) +0:127 'pv3' (noContraction temp highp 3-component vector of float) +0:127 'pv3' (noContraction temp highp 3-component vector of float) +0:127 'pv3' (noContraction temp highp 3-component vector of float) +0:128 move second child to first child (temp highp float) +0:128 'd' (noContraction temp highp float) +0:128 fma (global highp float) +0:128 'd' (noContraction temp highp float) +0:128 'd' (noContraction temp highp float) +0:128 'd' (noContraction temp highp float) +0:131 Function Definition: bbBad( (global void) +0:131 Function Parameters: +0:133 Sequence +0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) +0:138 Function Definition: bb( (global void) +0:138 Function Parameters: +0:140 Sequence +0:140 move second child to first child (temp highp 4-component vector of float) +0:140 direct index (patch temp highp 4-component vector of float BoundingBox) +0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) +0:140 Constant: +0:140 0 (const int) +0:140 Constant: +0:140 0.000000 +0:140 0.000000 +0:140 0.000000 +0:140 0.000000 +0:141 move second child to first child (temp highp 4-component vector of float) +0:141 direct index (patch temp highp 4-component vector of float BoundingBox) +0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) +0:141 Constant: +0:141 1 (const int) +0:141 Constant: +0:141 1.000000 +0:141 1.000000 +0:141 1.000000 +0:141 1.000000 +0:142 move second child to first child (temp highp 4-component vector of float) +0:142 direct index (patch temp highp 4-component vector of float BoundingBox) +0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) +0:142 Constant: +0:142 2 (const int) +0:142 Constant: +0:142 2.000000 +0:142 2.000000 +0:142 2.000000 +0:142 2.000000 +0:153 Function Definition: outputtingOutparam(i1; (global void) +0:153 Function Parameters: +0:153 'a' (out highp int) +0:155 Sequence +0:155 move second child to first child (temp highp int) +0:155 'a' (out highp int) +0:155 Constant: +0:155 2 (const int) +0:158 Function Definition: outputting( (global void) +0:158 Function Parameters: +0:160 Sequence +0:160 move second child to first child (temp highp int) +0:160 indirect index (temp highp int) +0:160 'outa' (out 4-element array of highp int) +0:160 'gl_InvocationID' (in highp int InvocationID) +0:160 Constant: +0:160 2 (const int) +0:161 move second child to first child (temp highp int) +0:161 direct index (temp highp int) +0:161 'outa' (out 4-element array of highp int) +0:161 Constant: +0:161 1 (const int) +0:161 Constant: +0:161 2 (const int) +0:162 move second child to first child (temp highp 4-component vector of float) +0:162 gl_Position: direct index for structure (out highp 4-component vector of float Position) +0:162 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:162 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 1.000000 +0:162 1.000000 +0:162 1.000000 +0:162 1.000000 +0:163 direct index (temp highp int) +0:163 'outa' (out 4-element array of highp int) +0:163 Constant: +0:163 1 (const int) +0:164 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:164 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:164 Constant: +0:164 0 (const int) +0:165 Function Call: outputtingOutparam(i1; (global void) +0:165 direct index (temp highp int) +0:165 'outa' (out 4-element array of highp int) +0:165 Constant: +0:165 0 (const int) +0:166 Function Call: outputtingOutparam(i1; (global void) +0:166 indirect index (temp highp int) +0:166 'outa' (out 4-element array of highp int) +0:166 'gl_InvocationID' (in highp int InvocationID) +0:167 move second child to first child (temp highp float) +0:167 f: direct index for structure (out highp float) +0:167 direct index (patch temp block{out highp float f}) +0:167 'patchIName' (patch out 4-element array of block{out highp float f}) +0:167 Constant: +0:167 1 (const int) +0:167 Constant: +0:167 0 (const int) +0:167 Constant: +0:167 3.140000 +0:168 move second child to first child (temp highp int) +0:168 indirect index (temp highp int) +0:168 'outa' (out 4-element array of highp int) +0:168 'gl_InvocationID' (in highp int InvocationID) +0:168 Constant: +0:168 2 (const int) +0:? Linker Objects +0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:? 'outa' (out 4-element array of highp int) +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 implicitly-sized 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 implicitly-sized 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}) +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}) +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}) +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}) +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-old/Test/baseResults/310.tese.out b/deps/glslang/glslang-old/Test/baseResults/310.tese.out new file mode 100644 index 0000000000..62894ec797 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310.tese.out @@ -0,0 +1,302 @@ +310.tese +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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 with this profile: es +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:58: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized +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: 44 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}) +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}) +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}) +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}) +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}) +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}) +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}) +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}) +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-old/Test/baseResults/310.vert.out b/deps/glslang/glslang-old/Test/baseResults/310.vert.out new file mode 100644 index 0000000000..d0dfedf218 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310.vert.out @@ -0,0 +1,1273 @@ +310.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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-old/Test/baseResults/310AofA.vert.out b/deps/glslang/glslang-old/Test/baseResults/310AofA.vert.out new file mode 100644 index 0000000000..6b69e71e8e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310AofA.vert.out @@ -0,0 +1,376 @@ +310AofA.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of 7-element array of highp float) +0:81 Constant: +0:81 0.000000 +0:82 Function Call: bar(f1[5][7]; (global void) +0:82 'g5' (global 5-element array of 7-element array of highp float) +0:84 Test condition and select (temp void) +0:84 Condition +0:84 Compare Equal (temp bool) +0:84 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float) +0:84 'g5' (global 5-element array of 7-element array of highp float) +0:84 'g4' (global 4-element array of 7-element array of highp float) +0:84 true case is null +0:86 Test condition and select (temp void) +0:86 Condition +0:86 Constant: +0:86 false (const bool) +0:86 true case is null +0:90 move second child to first child (temp highp float) +0:90 direct index (temp highp float) +0:90 direct index (temp 7-element array of highp float) +0:90 'u' (temp 5-element array of 7-element array of highp float) +0:90 Constant: +0:90 5 (const int) +0:90 Constant: +0:90 2 (const int) +0:90 Constant: +0:90 5.000000 +0:91 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float) +0:91 'u' (temp 5-element array of 7-element array of highp float) +0:94 direct index (layout(column_major shared ) temp highp 4-component vector of float) +0:94 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) +0:94 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:94 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:94 Constant: +0:94 1 (const int) +0:94 Constant: +0:94 1 (const int) +0:94 Constant: +0:94 -1 (const int) +0:95 move second child to first child (temp highp 4-component vector of float) +0:95 direct index (layout(column_major shared ) temp highp 4-component vector of float) +0:95 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) +0:95 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:95 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:95 Constant: +0:95 1 (const int) +0:95 Constant: +0:95 1 (const int) +0:95 Constant: +0:95 1 (const int) +0:95 Constant: +0:95 4.300000 +0:95 4.300000 +0:95 4.300000 +0:95 4.300000 +0:96 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) +0:96 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:96 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:96 Constant: +0:96 1 (const int) +0:96 Constant: +0:96 1 (const int) +0:98 Constant: +0:98 7 (const int) +0:99 array length (temp int) +0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float) +0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) +0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:? Linker Objects +0:? 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform implicitly-sized 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 implicitly-sized array of implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform 1-element array of highp 4-component vector of float v}) +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 implicitly-sized array of implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/310implicitSizeArrayError.vert.out b/deps/glslang/glslang-old/Test/baseResults/310implicitSizeArrayError.vert.out new file mode 100644 index 0000000000..963735d853 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/310implicitSizeArrayError.vert.out @@ -0,0 +1,50 @@ +310implicitSizeArrayError.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized array of highp int) +0:7 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized 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(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized 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 1-element array of highp int) +0:7 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-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(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-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-old/Test/baseResults/330.frag.out b/deps/glslang/glslang-old/Test/baseResults/330.frag.out new file mode 100644 index 0000000000..d3c54fcf73 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/330.frag.out @@ -0,0 +1,192 @@ +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: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: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: 39 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 component=0 ) 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 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) 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 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k}) +0:? 'outVar2' (layout(location=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 component=0 ) 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 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) 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 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k}) +0:? 'outVar2' (layout(location=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-old/Test/baseResults/330comp.frag.out b/deps/glslang/glslang-old/Test/baseResults/330comp.frag.out new file mode 100644 index 0000000000..58d6e5fdf6 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/400.frag.out b/deps/glslang/glslang-old/Test/baseResults/400.frag.out new file mode 100644 index 0000000000..aea4e49b3d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/400.frag.out @@ -0,0 +1,688 @@ +400.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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:187: '' : syntax error +ERROR: 35 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:? 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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) +0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) +0:? '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) + + +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) + diff --git a/deps/glslang/glslang-old/Test/baseResults/400.geom.out b/deps/glslang/glslang-old/Test/baseResults/400.geom.out new file mode 100644 index 0000000000..86e2b8ffa6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/400.geom.out @@ -0,0 +1,1092 @@ +400.geom +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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 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-old/Test/baseResults/400.tesc.out b/deps/glslang/glslang-old/Test/baseResults/400.tesc.out new file mode 100644 index 0000000000..f3e7b8bb68 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/400.tesc.out @@ -0,0 +1,385 @@ +400.tesc +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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: 21 compilation errors. No code generated. + + +Shader version: 400 +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 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +0:69 Constant: +0:69 4 (const int) +0:69 Constant: +0:69 1 (const int) +0:71 Barrier (global void) +0:91 Function Definition: foop( (global void) +0:91 Function Parameters: +0:? Sequence +0:95 multiply second child into first child (temp 3-component vector of float) +0:95 'pv3' (noContraction temp 3-component vector of float) +0:95 'pv3' (noContraction temp 3-component vector of float) +0:96 move second child to first child (temp 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:96 fma (global 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:96 'pv3' (noContraction temp 3-component vector of float) +0:97 move second child to first child (temp double) +0:97 'd' (noContraction temp double) +0:97 fma (global double) +0:97 'd' (noContraction temp double) +0:97 'd' (noContraction temp double) +0:97 'd' (noContraction temp double) +0:? Linker Objects +0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized 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 +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-old/Test/baseResults/400.tese.out b/deps/glslang/glslang-old/Test/baseResults/400.tese.out new file mode 100644 index 0000000000..324dbaa304 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/400.tese.out @@ -0,0 +1,281 @@ +400.tese +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized +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: 30 compilation errors. No code generated. + + +Shader version: 400 +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 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 +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-old/Test/baseResults/400.vert.out b/deps/glslang/glslang-old/Test/baseResults/400.vert.out new file mode 100755 index 0000000000..bf07887558 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/400.vert.out @@ -0,0 +1,556 @@ +400.vert +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 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-old/Test/baseResults/410.geom.out b/deps/glslang/glslang-old/Test/baseResults/410.geom.out new file mode 100644 index 0000000000..aa421dbe8b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/410.geom.out @@ -0,0 +1,83 @@ +410.geom +Warning, version 410 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/410.tesc.out b/deps/glslang/glslang-old/Test/baseResults/410.tesc.out new file mode 100644 index 0000000000..3305c407fd --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/410.tesc.out @@ -0,0 +1,31 @@ +410.tesc +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}) +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-old/Test/baseResults/410.vert.out b/deps/glslang/glslang-old/Test/baseResults/410.vert.out new file mode 100755 index 0000000000..eb4f43a2e6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/410.vert.out @@ -0,0 +1,29 @@ +410.vert +Warning, version 410 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 410 +0:? Sequence +0:7 Function Definition: main( (global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' (in double) +0:? 'd3' (in 3-component vector of double) +0:? 'dm4' (in 4X4 matrix of double) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 410 +0:? Sequence +0:7 Function Definition: main( (global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' (in double) +0:? 'd3' (in 3-component vector of double) +0:? 'dm4' (in 4X4 matrix of double) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang-old/Test/baseResults/420.comp.out b/deps/glslang/glslang-old/Test/baseResults/420.comp.out new file mode 100755 index 0000000000..a2311d5a80 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/420.comp.out @@ -0,0 +1,122 @@ +420.comp +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions +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-old/Test/baseResults/420.frag.out b/deps/glslang/glslang-old/Test/baseResults/420.frag.out new file mode 100644 index 0000000000..3b4c9be305 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/420.frag.out @@ -0,0 +1,43 @@ +420.frag +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 +WARNING: 0:14: 'atomic_uint' : implicitly sized atomic_uint array treated as having one element for tracking the default offset +ERROR: 3 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 implicitly-sized 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-old/Test/baseResults/420.geom.out b/deps/glslang/glslang-old/Test/baseResults/420.geom.out new file mode 100644 index 0000000000..ca459a64a2 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/420.geom.out @@ -0,0 +1,153 @@ +420.geom +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/420.tesc.out b/deps/glslang/glslang-old/Test/baseResults/420.tesc.out new file mode 100644 index 0000000000..30839ec8db --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/420.tesc.out @@ -0,0 +1,195 @@ +420.tesc +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/420.tese.out b/deps/glslang/glslang-old/Test/baseResults/420.tese.out new file mode 100644 index 0000000000..b8379d1500 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/420.tese.out @@ -0,0 +1,365 @@ +420.tese +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 'temp float' 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 implicitly-sized 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-old/Test/baseResults/420.vert.out b/deps/glslang/glslang-old/Test/baseResults/420.vert.out new file mode 100644 index 0000000000..a70b44e789 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/420.vert.out @@ -0,0 +1,388 @@ +420.vert +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 field selection out of range +ERROR: 0:62: 'xxxxx' : illegal vector field selection +ERROR: 0:63: 'xxy' : vector field 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' must have a format layout qualifier +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: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 array size of one for compile-time checking of binding numbers for implicitly-sized array +ERROR: 50 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 'f' (temp float) +0:63 'f' (temp float) +0:88 Function Definition: bar23444( (global void) +0:88 Function Parameters: +0:? Sequence +0:91 Sequence +0:91 move second child to first child (temp float) +0:91 'a1' (temp float) +0:91 direct index (temp float) +0:91 direct index (temp 3-component vector of float) +0:91 'm43' (temp 4X3 matrix of float) +0:91 Constant: +0:91 3 (const int) +0:91 Constant: +0:91 1 (const int) +0:93 Sequence +0:93 move second child to first child (temp int) +0:93 'a2' (temp int) +0:93 Constant: +0:93 4 (const int) +0:94 add second child into first child (temp int) +0:94 'a2' (temp int) +0:94 Constant: +0:94 3 (const int) +0:95 add second child into first child (temp int) +0:95 'a2' (temp int) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child (temp float) +0:96 'b' (const (read only) float) +0:96 component-wise multiply (temp float) +0:96 Constant: +0:96 2.000000 +0:96 'a1' (temp float) +0:97 Sequence +0:97 move second child to first child (temp int) +0:97 'a' (temp int) +0:97 Constant: +0:97 -1 (const int) +0:109 Function Definition: qux( (global void) +0:109 Function Parameters: +0:111 Sequence +0:111 Sequence +0:111 move second child to first child (temp int) +0:111 'i' (temp int) +0:111 aoeu: direct index for structure (layout(column_major shared ) uniform int) +0:111 'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu}) +0:111 Constant: +0:111 0 (const uint) +0:112 imageAtomicCompSwap (global int) +0:112 'iimg2D' (layout(r32i ) uniform iimage2D) +0:112 Construct ivec2 (temp 2-component vector of int) +0:112 'i' (temp int) +0:112 'i' (temp int) +0:112 'i' (temp int) +0:112 'i' (temp int) +0:113 imageAtomicAdd (global uint) +0:113 'uimg2D' (layout(r32ui ) uniform uimage2D) +0:113 Construct ivec2 (temp 2-component vector of int) +0:113 'i' (temp int) +0:113 'i' (temp int) +0:113 Convert int to uint (temp uint) +0:113 'i' (temp int) +0:114 imageAtomicMin (global int) +0:114 'iimg2Drgba' (layout(rgba32i ) uniform iimage2D) +0:114 Construct ivec2 (temp 2-component vector of int) +0:114 'i' (temp int) +0:114 'i' (temp int) +0:114 'i' (temp int) +0:115 Constant: +0:115 0.000000 +0:116 Sequence +0:116 move second child to first child (temp 4-component vector of int) +0:116 'pos' (temp 4-component vector of int) +0:116 imageLoad (global 4-component vector of int) +0:116 'iimg2D' (layout(r32i ) uniform iimage2D) +0:116 Construct ivec2 (temp 2-component vector of int) +0:116 'i' (temp int) +0:116 'i' (temp int) +0:117 Sequence +0:117 move second child to first child (temp 4-component vector of float) +0:117 'col' (temp 4-component vector of float) +0:117 imageLoad (global 4-component vector of float) +0:117 'img2DMS' (uniform image2DMS) +0:117 Construct ivec2 (temp 2-component vector of int) +0:117 'i' (temp int) +0:117 'i' (temp int) +0:117 'i' (temp int) +0:118 imageStore (global void) +0:118 'img2DMSWO' (writeonly uniform image2DMS) +0:118 Construct ivec2 (temp 2-component vector of int) +0:118 'i' (temp int) +0:118 'i' (temp int) +0:118 'i' (temp int) +0:118 Constant: +0:118 0.000000 +0:118 0.000000 +0:118 0.000000 +0:118 0.000000 +0:119 imageLoad (global 4-component vector of float) +0:119 'img2DMSWO' (writeonly uniform image2DMS) +0:119 Construct ivec2 (temp 2-component vector of int) +0:119 'i' (temp int) +0:119 'i' (temp int) +0:119 'i' (temp int) +0:125 Function Definition: passr(iI21; (global void) +0:125 Function Parameters: +0:125 'image' (coherent readonly in iimage2D) +0:132 Function Definition: passrc( (global void) +0:132 Function Parameters: +0:134 Sequence +0:134 Function Call: passr(iI21; (global void) +0:134 'qualim1' (layout(r32i ) coherent readonly uniform iimage2D) +0:135 Function Call: passr(iI21; (global void) +0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D) +0:136 Function Call: passr(iI21; (global void) +0:136 'iimg2D' (layout(r32i ) uniform iimage2D) +0:153 Function Definition: qlod( (global void) +0:153 Function Parameters: +0:? Sequence +0:157 'levels' (temp int) +0:158 'levels' (temp int) +0:? Linker Objects +0:? 'v2' (smooth out 2-component vector of float) +0:? 'bad' (in 10-element array of 4-component vector of float) +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 implicitly-sized 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-old/Test/baseResults/420_size_gl_in.geom.out b/deps/glslang/glslang-old/Test/baseResults/420_size_gl_in.geom.out new file mode 100644 index 0000000000..54ec99ea86 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/420_size_gl_in.geom.out @@ -0,0 +1,57 @@ +420_size_gl_in.geom +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/430.comp.out b/deps/glslang/glslang-old/Test/baseResults/430.comp.out new file mode 100644 index 0000000000..ed61346fba --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/430.comp.out @@ -0,0 +1,210 @@ +430.comp +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-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 implicitly-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 implicitly-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 implicitly-sized array of float) +0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values}) +0:65 Constant: +0:65 1 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 4.700000 +0:66 array length (temp int) +0:66 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float) +0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values}) +0:66 Constant: +0:66 1 (const int) +0:67 Barrier (global void) +0:72 Function Definition: fooaoeu( (global void) +0:72 Function Parameters: +0:73 Sequence +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of int) +0:73 'storePos' (temp 2-component vector of int) +0:73 Convert uint to int (temp 2-component vector of int) +0:73 vector swizzle (temp 2-component vector of uint) +0:73 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID) +0:73 Sequence +0:73 Constant: +0:73 0 (const int) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp double) +0:74 'localCoef' (temp double) +0:74 Convert float to double (temp double) +0:74 length (global float) +0:74 divide (temp 2-component vector of float) +0:74 Convert int to float (temp 2-component vector of float) +0:74 subtract (temp 2-component vector of int) +0:74 Convert uint to int (temp 2-component vector of int) +0:74 vector swizzle (temp 2-component vector of uint) +0:74 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID) +0:74 Sequence +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 8 (const int) +0:74 Constant: +0:74 8.000000 +0:75 Sequence +0:75 move second child to first child (temp 4-component vector of double) +0:75 'aa' (temp 4-component vector of double) +0:75 Constant: +0:75 0.400000 +0:75 0.200000 +0:75 0.300000 +0:75 0.400000 +0:76 Sequence +0:76 move second child to first child (temp double) +0:76 'globalCoef' (temp double) +0:76 Constant: +0:76 1.000000 +0:78 Sequence +0:78 move second child to first child (temp double) +0:78 'di' (temp double) +0:78 Convert int to double (temp double) +0:78 'i' (temp int) +0:? Linker Objects +0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +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 implicitly-sized array of float values}) +0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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 implicitly-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 implicitly-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 implicitly-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 implicitly-sized array of float values}) +0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/430.vert.out b/deps/glslang/glslang-old/Test/baseResults/430.vert.out new file mode 100644 index 0000000000..8cd1156b5a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/430.vert.out @@ -0,0 +1,340 @@ +430.vert +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. +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: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:65: '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: 63 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 component=0 ) in bool b1, layout(location=29 component=0 ) 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 component=0 ) in bool b1, layout(location=29 component=0 ) 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-new/Test/baseResults/430AofA.frag.out b/deps/glslang/glslang-old/Test/baseResults/430AofA.frag.out similarity index 54% rename from deps/glslang-new/Test/baseResults/430AofA.frag.out rename to deps/glslang/glslang-old/Test/baseResults/430AofA.frag.out index ac23dacb19..fd3892dc49 100644 --- a/deps/glslang-new/Test/baseResults/430AofA.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/430AofA.frag.out @@ -1,19 +1,20 @@ 430AofA.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument ERROR: 0:15: '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: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 implicitly-sized 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: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: '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 @@ -24,14 +25,14 @@ 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 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: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 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: @@ -39,65 +40,65 @@ ERROR: node is still EOpNull! 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 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 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 '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 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 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 '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 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 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 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 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 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: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 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: @@ -107,8 +108,8 @@ ERROR: node is still EOpNull! 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: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 @@ -135,8 +136,8 @@ ERROR: node is still EOpNull! 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: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 @@ -163,8 +164,8 @@ ERROR: node is still EOpNull! 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: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 @@ -191,8 +192,8 @@ ERROR: node is still EOpNull! 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: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 @@ -219,8 +220,8 @@ ERROR: node is still EOpNull! 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 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 @@ -247,8 +248,8 @@ ERROR: node is still EOpNull! 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 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 @@ -275,8 +276,8 @@ ERROR: node is still EOpNull! 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 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 @@ -303,8 +304,8 @@ ERROR: node is still EOpNull! 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 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 @@ -330,60 +331,60 @@ ERROR: node is still EOpNull! 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: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 implicitly-sized 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: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 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 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 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 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: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 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: @@ -403,11 +404,11 @@ ERROR: node is still EOpNull! 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) +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 implicitly-sized array of 7-element array of float) +0:? 'gimp' (global implicitly-sized array of implicitly-sized 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: @@ -415,14 +416,14 @@ 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 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: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 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: @@ -430,65 +431,65 @@ ERROR: node is still EOpNull! 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 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 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 '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 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 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 '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 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 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 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 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 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: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 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: @@ -498,8 +499,8 @@ ERROR: node is still EOpNull! 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: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 @@ -526,8 +527,8 @@ ERROR: node is still EOpNull! 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: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 @@ -554,8 +555,8 @@ ERROR: node is still EOpNull! 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: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 @@ -582,8 +583,8 @@ ERROR: node is still EOpNull! 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: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 @@ -610,8 +611,8 @@ ERROR: node is still EOpNull! 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 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 @@ -638,8 +639,8 @@ ERROR: node is still EOpNull! 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 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 @@ -666,8 +667,8 @@ ERROR: node is still EOpNull! 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 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 @@ -694,8 +695,8 @@ ERROR: node is still EOpNull! 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 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 @@ -721,54 +722,54 @@ ERROR: node is still EOpNull! 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: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: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 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 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 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 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: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) +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 implicitly-sized 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-old/Test/baseResults/430scope.vert.out b/deps/glslang/glslang-old/Test/baseResults/430scope.vert.out new file mode 100644 index 0000000000..c7d05038f9 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/430scope.vert.out @@ -0,0 +1,231 @@ +430scope.vert +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) +0:49 Constant: +0:49 0 (const uint) +0:49 Construct vec4 (temp 4-component vector of float) +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-old/Test/baseResults/440.frag.out b/deps/glslang/glslang-old/Test/baseResults/440.frag.out new file mode 100644 index 0000000000..bdc1b09561 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/440.frag.out @@ -0,0 +1,165 @@ +440.frag +Warning, version 440 is not yet complete; most version-specific features are present, but some are missing. +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: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:43: 'offset/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: 'offset/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: 'align' : can only be used with std140 or std430 layout packing +ERROR: 0:63: '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: 48 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-old/Test/baseResults/440.vert.out b/deps/glslang/glslang-old/Test/baseResults/440.vert.out new file mode 100644 index 0000000000..bf625c8a77 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/440.vert.out @@ -0,0 +1,241 @@ +440.vert +Warning, version 440 is not yet complete; most version-specific features are present, but some are missing. +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:179: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:179: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:179: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:187: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input) +ERROR: 0:188: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) +ERROR: 0:189: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) +ERROR: 0:190: 'glBaseInstanceARB' : undeclared identifier +ERROR: 54 compilation errors. No code generated. + + +Shader version: 440 +Requested GL_ARB_shader_draw_parameters +in xfb mode +ERROR: node is still EOpNull! +0:177 Function Definition: drawParamsBad( (global int) +0:177 Function Parameters: +0:179 Sequence +0:179 Branch: Return with expression +0:179 add (temp int) +0:179 add (temp int) +0:179 'gl_BaseVertexARB' (in int BaseVertex) +0:179 'gl_BaseInstanceARB' (in int BaseInstance) +0:179 'gl_DrawIDARB' (in int DrawId) +0:184 Function Definition: drawParams( (global int) +0:184 Function Parameters: +0:186 Sequence +0:186 Branch: Return with expression +0:186 add (temp int) +0:186 add (temp int) +0:186 'gl_BaseVertexARB' (in int BaseVertex) +0:186 'gl_BaseInstanceARB' (in int BaseInstance) +0:186 'gl_DrawIDARB' (in int DrawId) +0:187 move second child to first child (temp int) +0:187 'gl_BaseVertexARB' (in int BaseVertex) +0:187 Constant: +0:187 3 (const int) +0:188 move second child to first child (temp int) +0:188 'gl_BaseInstanceARB' (in int BaseInstance) +0:188 Constant: +0:188 3 (const int) +0:189 move second child to first child (temp int) +0:189 'gl_DrawIDARB' (in int DrawId) +0:189 Constant: +0:189 3 (const int) +0:190 'glBaseInstanceARB' (temp float) +0:? Linker Objects +0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float) +0:? 'b' (layout(location=2 component=1 ) in float) +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:? '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:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang-old/Test/baseResults/450.comp.out b/deps/glslang/glslang-old/Test/baseResults/450.comp.out new file mode 100644 index 0000000000..203c4b24d1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/450.comp.out @@ -0,0 +1,18 @@ +450.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:? Linker Objects + + +Linked compute stage: + +ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point + +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:? Linker Objects + diff --git a/deps/glslang/glslang-old/Test/baseResults/450.frag.out b/deps/glslang/glslang-old/Test/baseResults/450.frag.out new file mode 100644 index 0000000000..038267335d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/450.frag.out @@ -0,0 +1,276 @@ +450.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 450 +0:? Sequence +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) + + +Linked fragment stage: + + +Shader version: 450 +0:? Sequence +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) + diff --git a/deps/glslang/glslang-old/Test/baseResults/450.geom.out b/deps/glslang/glslang-old/Test/baseResults/450.geom.out new file mode 100644 index 0000000000..fef3486aeb --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/450.geom.out @@ -0,0 +1,72 @@ +450.geom +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 450 +invocations = -1 +max_vertices = -1 +input primitive = none +output primitive = none +0:? Sequence +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 (layout(stream=0 ) temp float CullDistance) +0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance) +0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) 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 implicitly-sized 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 implicitly-sized 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}) + + +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: 450 +invocations = 1 +max_vertices = -1 +input primitive = none +output primitive = none +0:? Sequence +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 (layout(stream=0 ) temp float CullDistance) +0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance) +0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) 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 2-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 2-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}) + diff --git a/deps/glslang/glslang-old/Test/baseResults/450.tesc.out b/deps/glslang/glslang-old/Test/baseResults/450.tesc.out new file mode 100644 index 0000000000..aeef6cb3ad --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/450.tesc.out @@ -0,0 +1,68 @@ +450.tesc +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 450 +vertices = -1 +0:? Sequence +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}) + + +Linked tessellation control stage: + +ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...) + +Shader version: 450 +vertices = -1 +0:? Sequence +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}) + diff --git a/deps/glslang/glslang-old/Test/baseResults/450.tese.out b/deps/glslang/glslang-old/Test/baseResults/450.tese.out new file mode 100644 index 0000000000..f988f1086d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/450.tese.out @@ -0,0 +1,68 @@ +450.tese +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 450 +input primitive = none +vertex spacing = none +triangle order = none +0:? Sequence +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}) + + +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 +0:? Sequence +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}) + diff --git a/deps/glslang/glslang-old/Test/baseResults/450.vert.out b/deps/glslang/glslang-old/Test/baseResults/450.vert.out new file mode 100644 index 0000000000..86338c7612 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/450.vert.out @@ -0,0 +1,69 @@ +450.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +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: 2 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:? 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:? '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:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang-old/Test/baseResults/Operations.frag.out b/deps/glslang/glslang-old/Test/baseResults/Operations.frag.out new file mode 100644 index 0000000000..bc12fe0dae --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/aggOps.frag.out b/deps/glslang/glslang-old/Test/baseResults/aggOps.frag.out new file mode 100644 index 0000000000..7a60fbc6d0 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/always-discard.frag.out b/deps/glslang/glslang-old/Test/baseResults/always-discard.frag.out new file mode 100644 index 0000000000..e1eeae3e6c --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/always-discard2.frag.out b/deps/glslang/glslang-old/Test/baseResults/always-discard2.frag.out new file mode 100644 index 0000000000..72f21d2f00 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/array.frag.out b/deps/glslang/glslang-old/Test/baseResults/array.frag.out new file mode 100644 index 0000000000..e254bf1397 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/array.frag.out @@ -0,0 +1,465 @@ +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 implicitly-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 implicitly-sized array of int' +ERROR: 0:106: 'constructor' : array argument must be sized +ERROR: 26 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 implicitly-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 implicitly-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 implicitly-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 implicitly-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 implicitly-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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of 3-component vector of float) +0:73 Constant: +0:73 2 (const int) +0:73 Constant: +0:73 2.400000 +0:73 2.400000 +0:73 2.400000 +0:76 Constant: +0:76 0.000000 +0:79 Function Definition: foo2( (global implicitly-sized array of float) +0:79 Function Parameters: +0:? Sequence +0:82 Branch: Return with expression +0:82 'f' (temp implicitly-sized 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:? Linker Objects +0:? 'gu' (global implicitly-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 implicitly-sized array of 3-component vector of float) +0:? 'f' (global float) +0:? 'gUnusedUnsized' (global implicitly-sized array of float) +0:? 'i' (global implicitly-sized array of int) +0:? 'emptyA' (global implicitly-sized array of float) +0:? 'b' (global float) + + +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 4-element 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 4-element 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 4-element 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 4-element 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 4-element 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 4-element 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) + diff --git a/deps/glslang/glslang-old/Test/baseResults/array100.frag.out b/deps/glslang/glslang-old/Test/baseResults/array100.frag.out new file mode 100644 index 0000000000..cf54361420 --- /dev/null +++ b/deps/glslang/glslang-old/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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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-old/Test/baseResults/atomic_uint.frag.out b/deps/glslang/glslang-old/Test/baseResults/atomic_uint.frag.out new file mode 100644 index 0000000000..e54b5dcf1e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/atomic_uint.frag.out @@ -0,0 +1,113 @@ +atomic_uint.frag +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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:18: 'atomic_uint' : layout(binding=X) is required +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:37: 'atomic_uint' : layout(binding=X) is required +ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg +ERROR: 0:38: 'atomic_uint' : layout(binding=X) is required +ERROR: 0:40: 'atomic_uint' : layout(binding=X) is required +ERROR: 0:46: 'atomic_uint' : layout(binding=X) is required +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: 18 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-new/Test/baseResults/badChars.frag.out b/deps/glslang/glslang-old/Test/baseResults/badChars.frag.out similarity index 66% rename from deps/glslang-new/Test/baseResults/badChars.frag.out rename to deps/glslang/glslang-old/Test/baseResults/badChars.frag.out index e3fec617a9..a29b22f59b 100644 --- a/deps/glslang-new/Test/baseResults/badChars.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/badChars.frag.out @@ -4,16 +4,15 @@ 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. +ERROR: 0:6: 'ÿ' : unexpected token +ERROR: 0:7: '' : syntax error +ERROR: 7 compilation errors. No code generated. Shader version: 100 ERROR: node is still EOpNull! 0:? Linker Objects -0:? 'a' ( global mediump int) +0:? 'a' (global mediump int) Linked fragment stage: @@ -23,5 +22,5 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr Shader version: 100 ERROR: node is still EOpNull! 0:? Linker Objects -0:? 'a' ( global mediump int) +0:? 'a' (global mediump int) diff --git a/deps/glslang-new/Test/baseResults/badMacroArgs.frag.out b/deps/glslang/glslang-old/Test/baseResults/badMacroArgs.frag.out similarity index 60% rename from deps/glslang-new/Test/baseResults/badMacroArgs.frag.out rename to deps/glslang/glslang-old/Test/baseResults/badMacroArgs.frag.out index 5e6233f8d2..95937ce318 100644 --- a/deps/glslang-new/Test/baseResults/badMacroArgs.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/badMacroArgs.frag.out @@ -1,4 +1,5 @@ badMacroArgs.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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-new/Test/baseResults/comment.frag.out b/deps/glslang/glslang-old/Test/baseResults/comment.frag.out similarity index 58% rename from deps/glslang-new/Test/baseResults/comment.frag.out rename to deps/glslang/glslang-old/Test/baseResults/comment.frag.out index b1a00ff517..1c876bb597 100644 --- a/deps/glslang-new/Test/baseResults/comment.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/comment.frag.out @@ -1,13 +1,14 @@ comment.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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 Definition: main( (global void) 0:17 Function Parameters: 0:? Linker Objects -0:? 'v' ( smooth in 4-component vector of float) +0:? 'v' (smooth in 4-component vector of float) Linked fragment stage: @@ -15,8 +16,8 @@ Linked fragment stage: Shader version: 430 0:? Sequence -0:17 Function Definition: main( ( global void) +0:17 Function Definition: main( (global void) 0:17 Function Parameters: 0:? Linker Objects -0:? 'v' ( smooth in 4-component vector of float) +0:? 'v' (smooth in 4-component vector of float) diff --git a/deps/glslang/glslang-old/Test/baseResults/conditionalDiscard.frag.out b/deps/glslang/glslang-old/Test/baseResults/conditionalDiscard.frag.out new file mode 100644 index 0000000000..169787f46c --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/constErrors.frag.out b/deps/glslang/glslang-old/Test/baseResults/constErrors.frag.out new file mode 100644 index 0000000000..f04c7369ff --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/constFold.frag.out b/deps/glslang/glslang-old/Test/baseResults/constFold.frag.out new file mode 100644 index 0000000000..33bf51306d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/constFold.frag.out @@ -0,0 +1,657 @@ +constFold.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. +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 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-old/Test/baseResults/conversion.frag.out b/deps/glslang/glslang-old/Test/baseResults/conversion.frag.out new file mode 100644 index 0000000000..3abf82ceff --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/cppBad.vert.out b/deps/glslang/glslang-old/Test/baseResults/cppBad.vert.out similarity index 79% rename from deps/glslang-new/Test/baseResults/cppBad.vert.out rename to deps/glslang/glslang-old/Test/baseResults/cppBad.vert.out index 1a2286aa91..1fb18ecd1d 100755 --- a/deps/glslang-new/Test/baseResults/cppBad.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/cppBad.vert.out @@ -2,8 +2,8 @@ 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: 0:5: 'macro expansion' : expected '(' following n +ERROR: 0:5: '' : syntax error ERROR: 5 compilation errors. No code generated. diff --git a/deps/glslang-new/Test/baseResults/cppComplexExpr.vert.out b/deps/glslang/glslang-old/Test/baseResults/cppComplexExpr.vert.out similarity index 52% rename from deps/glslang-new/Test/baseResults/cppComplexExpr.vert.out rename to deps/glslang/glslang-old/Test/baseResults/cppComplexExpr.vert.out index 6bfcd9cca3..352dcac181 100644 --- a/deps/glslang-new/Test/baseResults/cppComplexExpr.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/cppComplexExpr.vert.out @@ -1,8 +1,6 @@ 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:46: 'xyxwx' : illegal vector field selection +ERROR: 0:46: 'xyxwx' : illegal vector field selection ERROR: 0:66: '#define' : Macro redefined; different substitutions: BIG ERROR: 0:81: 'preprocessor evaluation' : bad expression ERROR: 0:81: '#if' : unexpected tokens following directive @@ -49,94 +47,80 @@ 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. +ERROR: 48 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 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 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 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 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 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: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 add (temp highp float) +0:46 add (temp highp float) +0:46 direct index (temp highp float) +0:46 'gl_Position' (gl_Position highp 4-component vector of float Position) +0:46 Constant: +0:46 0 (const int) 0:46 Constant: 0:46 3.000000 -0:46 add ( temp highp 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 add (temp highp float) +0:46 direct index (temp highp float) +0:46 'gl_Position' (gl_Position highp 4-component vector of float Position) +0:46 Constant: +0:46 0 (const int) 0:46 Constant: 0:46 3.000000 0:47 Branch: Return with expression -0:47 add ( temp highp float) -0:47 add ( temp highp float) -0:47 direct index ( temp highp float) -0:47 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:47 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 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: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) +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: @@ -145,37 +129,37 @@ 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 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 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 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 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 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: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: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) +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-old/Test/baseResults/cppIndent.vert.out b/deps/glslang/glslang-old/Test/baseResults/cppIndent.vert.out new file mode 100644 index 0000000000..318ca815d4 --- /dev/null +++ b/deps/glslang/glslang-old/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 +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-old/Test/baseResults/cppNest.vert.out b/deps/glslang/glslang-old/Test/baseResults/cppNest.vert.out new file mode 100644 index 0000000000..2077ec3379 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/cppSimple.vert.out b/deps/glslang/glslang-old/Test/baseResults/cppSimple.vert.out new file mode 100644 index 0000000000..bf4b42aeef --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/cppSimple.vert.out @@ -0,0 +1,304 @@ +cppSimple.vert +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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: 'macro expansion' : expected '(' following FOOOM +ERROR: 12:9014: 'FOOOM' : undeclared identifier +ERROR: 12:9014: '=' : cannot convert from 'temp float' to 'global int' +ERROR: 12:9015: 'macro expansion' : expected '(' following FOOOM +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: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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0: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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? '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-old/Test/baseResults/dataOut.frag.out b/deps/glslang/glslang-old/Test/baseResults/dataOut.frag.out new file mode 100644 index 0000000000..030bae7d9e --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/dataOutIndirect.frag.out b/deps/glslang/glslang-old/Test/baseResults/dataOutIndirect.frag.out new file mode 100644 index 0000000000..31b4f07a5f --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/dce.frag.out b/deps/glslang/glslang-old/Test/baseResults/dce.frag.out similarity index 51% rename from deps/glslang-new/Test/baseResults/dce.frag.out rename to deps/glslang/glslang-old/Test/baseResults/dce.frag.out index 6b02eb1c21..6707ae72f5 100644 --- a/deps/glslang-new/Test/baseResults/dce.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/dce.frag.out @@ -1,119 +1,121 @@ dce.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + 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 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 Definition: bar( (global void) 0:7 Function Parameters: 0:9 Sequence -0:9 Test condition and select ( temp void) +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: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: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 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:14 Pre-Increment (temp int) +0:14 'c' (global int) 0:16 switch 0:16 condition -0:16 'c' ( global int) +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: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: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: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 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 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: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: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 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 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 Test condition and select (temp void) 0:32 Condition -0:32 Compare Less Than ( temp bool) -0:32 'c' ( global int) +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: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: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: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: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 Test condition and select (temp void) 0:48 Condition -0:48 Compare Greater Than ( temp bool) -0:48 'c' ( global int) +0:48 Compare Greater Than (temp bool) +0:48 'c' (global int) 0:48 Constant: 0:48 4 (const int) 0:48 true case @@ -121,17 +123,17 @@ Shader version: 400 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: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:55 Pre-Increment (temp int) +0:55 'c' (global int) 0:? Linker Objects -0:? 'flag' ( const bool) +0:? 'flag' (const bool) 0:? false (const bool) -0:? 'c' ( global int) +0:? 'c' (global int) Linked fragment stage: @@ -141,12 +143,12 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr 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 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:? 'flag' (const bool) 0:? false (const bool) -0:? 'c' ( global int) +0:? 'c' (global int) diff --git a/deps/glslang/glslang-old/Test/baseResults/decls.frag.out b/deps/glslang/glslang-old/Test/baseResults/decls.frag.out new file mode 100644 index 0000000000..a7e2137d4e --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/deepRvalue.frag.out b/deps/glslang/glslang-old/Test/baseResults/deepRvalue.frag.out new file mode 100644 index 0000000000..9441ace975 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/depthOut.frag.out b/deps/glslang/glslang-old/Test/baseResults/depthOut.frag.out new file mode 100644 index 0000000000..0177b39e32 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/discard-dce.frag.out b/deps/glslang/glslang-old/Test/baseResults/discard-dce.frag.out new file mode 100644 index 0000000000..9b194c7bd2 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/doWhileLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/doWhileLoop.frag.out new file mode 100644 index 0000000000..4cfbea97dc --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/earlyReturnDiscard.frag.out b/deps/glslang/glslang-old/Test/baseResults/earlyReturnDiscard.frag.out new file mode 100644 index 0000000000..160b756697 --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/empty.frag.out b/deps/glslang/glslang-old/Test/baseResults/empty.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/empty.frag.out rename to deps/glslang/glslang-old/Test/baseResults/empty.frag.out diff --git a/deps/glslang-new/Test/baseResults/errors.frag.out b/deps/glslang/glslang-old/Test/baseResults/errors.frag.out similarity index 77% rename from deps/glslang-new/Test/baseResults/errors.frag.out rename to deps/glslang/glslang-old/Test/baseResults/errors.frag.out index 7271107e02..23f66315a0 100644 --- a/deps/glslang-new/Test/baseResults/errors.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/errors.frag.out @@ -6,9 +6,9 @@ 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 Definition: main(i1; (global mediump int) 0:1 Function Parameters: -0:1 'foo' ( in mediump int) +0:1 'foo' (in mediump int) 0:3 Sequence 0:3 Branch: Return with expression 0:3 Constant: @@ -21,9 +21,9 @@ Linked fragment stage: Shader version: 100 ERROR: node is still EOpNull! -0:1 Function Definition: main(i1; ( global mediump int) +0:1 Function Definition: main(i1; (global mediump int) 0:1 Function Parameters: -0:1 'foo' ( in mediump int) +0:1 'foo' (in mediump int) 0:3 Sequence 0:3 Branch: Return with expression 0:3 Constant: diff --git a/deps/glslang/glslang-old/Test/baseResults/es-link1.frag.out b/deps/glslang/glslang-old/Test/baseResults/es-link1.frag.out new file mode 100644 index 0000000000..41ce9a0fdf --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/flowControl.frag.out b/deps/glslang/glslang-old/Test/baseResults/flowControl.frag.out new file mode 100644 index 0000000000..324da066c1 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/forLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/forLoop.frag.out new file mode 100644 index 0000000000..babd30e45d --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/forwardRef.frag.out b/deps/glslang/glslang-old/Test/baseResults/forwardRef.frag.out new file mode 100644 index 0000000000..357cc2bd45 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/functionCall.frag.out b/deps/glslang/glslang-old/Test/baseResults/functionCall.frag.out new file mode 100644 index 0000000000..610f2bb1e6 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/functionSemantics.frag.out b/deps/glslang/glslang-old/Test/baseResults/functionSemantics.frag.out new file mode 100644 index 0000000000..e0fd0767a8 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/functionSemantics.frag.out @@ -0,0 +1,402 @@ +functionSemantics.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:74: 'return' : cannot convert return value to function return type +WARNING: 0:74: 'return' : type conversion on return values was not explicitly allowed until version 420 +ERROR: 1 compilation errors. No code generated. + + +Shader version: 400 +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-new/Test/baseResults/glspv.esversion.vert.out b/deps/glslang/glslang-old/Test/baseResults/glspv.esversion.vert.out similarity index 63% rename from deps/glslang-new/Test/baseResults/glspv.esversion.vert.out rename to deps/glslang/glslang-old/Test/baseResults/glspv.esversion.vert.out index 782865abcc..8e4b3b883c 100755 --- a/deps/glslang-new/Test/baseResults/glspv.esversion.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/glspv.esversion.vert.out @@ -1,5 +1,6 @@ glspv.esversion.vert ERROR: #version: ES shaders for OpenGL SPIR-V are not supported +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. ERROR: 1 compilation errors. No code generated. diff --git a/deps/glslang/glslang-old/Test/baseResults/glspv.frag.out b/deps/glslang/glslang-old/Test/baseResults/glspv.frag.out new file mode 100755 index 0000000000..daa1dc1e42 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/glspv.frag.out @@ -0,0 +1,9 @@ +glspv.frag +ERROR: 0:4: '#error' : GL_SPIRV is set ( correct , not an error ) +ERROR: 0:6: '#error' : GL_SPIR is 100 +ERROR: 0:14: 'input_attachment_index' : only allowed when using GLSL for Vulkan +ERROR: 0:14: '' : syntax error +ERROR: 4 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang-new/Test/baseResults/glspv.version.frag.out b/deps/glslang/glslang-old/Test/baseResults/glspv.version.frag.out similarity index 95% rename from deps/glslang-new/Test/baseResults/glspv.version.frag.out rename to deps/glslang/glslang-old/Test/baseResults/glspv.version.frag.out index 4a45b5bfd1..3e8e8c4b00 100755 --- a/deps/glslang-new/Test/baseResults/glspv.version.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/glspv.version.frag.out @@ -2,7 +2,7 @@ glspv.version.frag ERROR: #version: compilation for SPIR-V does not support the compatibility profile // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 6 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/glspv.version.vert.out b/deps/glslang/glslang-old/Test/baseResults/glspv.version.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/glspv.version.vert.out rename to deps/glslang/glslang-old/Test/baseResults/glspv.version.vert.out diff --git a/deps/glslang-new/Test/baseResults/glspv.vert.out b/deps/glslang/glslang-old/Test/baseResults/glspv.vert.out similarity index 79% rename from deps/glslang-new/Test/baseResults/glspv.vert.out rename to deps/glslang/glslang-old/Test/baseResults/glspv.vert.out index f2fe53b295..5f6d9bbd54 100755 --- a/deps/glslang-new/Test/baseResults/glspv.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/glspv.vert.out @@ -1,4 +1,5 @@ glspv.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:3: 'push_constant' : only allowed when using GLSL for Vulkan ERROR: 0:6: 'descriptor set' : only allowed when using GLSL for Vulkan ERROR: 0:8: 'shared' : not allowed when generating SPIR-V @@ -6,7 +7,7 @@ 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: 0:20: '' : syntax error ERROR: 8 compilation errors. No code generated. diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.amend.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.amend.frag.out new file mode 100755 index 0000000000..44d7655296 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.amend.frag.out @@ -0,0 +1,207 @@ +hlsl.amend.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: f1( (temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale (temp 4-component vector of float) +0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure (layout(offset=16 ) uniform float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:12 Function Definition: f2( (temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add (temp float) +0:13 add (temp float) +0:13 direct index (temp float) +0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure (layout(offset=16 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index (temp float) +0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( (temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale (temp 4-component vector of float) +0:25 Convert int to float (temp float) +0:25 d: direct index for structure (layout(offset=44 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: f1( (temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale (temp 4-component vector of float) +0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure (layout(offset=16 ) uniform float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:12 Function Definition: f2( (temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add (temp float) +0:13 add (temp float) +0:13 direct index (temp float) +0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure (layout(offset=16 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index (temp float) +0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( (temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale (temp 4-component vector of float) +0:25 Convert int to float (temp float) +0:25 d: direct index for structure (layout(offset=44 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 47 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "f1" + ExecutionMode 4 OriginUpperLeft + Name 4 "f1" + Name 6 "f2(" + Name 8 "f3(" + Name 10 "f4(" + Name 16 "$Global" + MemberName 16($Global) 0 "a" + MemberName 16($Global) 1 "b" + MemberName 16($Global) 2 "c" + MemberName 16($Global) 3 "d" + MemberName 16($Global) 4 "e" + Name 18 "" + MemberDecorate 16($Global) 0 Offset 0 + MemberDecorate 16($Global) 1 Offset 16 + MemberDecorate 16($Global) 2 Offset 32 + MemberDecorate 16($Global) 3 Offset 44 + MemberDecorate 16($Global) 4 Offset 48 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 12: TypeFloat 32 + 13: TypeVector 12(float) 4 + 14: TypeVector 12(float) 3 + 15: TypeInt 32 1 + 16($Global): TypeStruct 13(fvec4) 12(float) 14(fvec3) 15(int) 15(int) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: 15(int) Constant 0 + 20: TypePointer Uniform 13(fvec4) + 23: 15(int) Constant 1 + 24: TypePointer Uniform 12(float) + 28: TypeInt 32 0 + 29: 28(int) Constant 0 + 35: 15(int) Constant 2 + 39: 15(int) Constant 3 + 40: TypePointer Uniform 15(int) + 4(f1): 2 Function None 3 + 5: Label + 21: 20(ptr) AccessChain 18 19 + 22: 13(fvec4) Load 21 + 25: 24(ptr) AccessChain 18 23 + 26: 12(float) Load 25 + 27: 13(fvec4) VectorTimesScalar 22 26 + Return + FunctionEnd + 6(f2(): 2 Function None 3 + 7: Label + 30: 24(ptr) AccessChain 18 19 29 + 31: 12(float) Load 30 + 32: 24(ptr) AccessChain 18 23 + 33: 12(float) Load 32 + 34: 12(float) FAdd 31 33 + 36: 24(ptr) AccessChain 18 35 29 + 37: 12(float) Load 36 + 38: 12(float) FAdd 34 37 + Return + FunctionEnd + 8(f3(): 2 Function None 3 + 9: Label + Return + FunctionEnd + 10(f4(): 2 Function None 3 + 11: Label + 41: 40(ptr) AccessChain 18 39 + 42: 15(int) Load 41 + 43: 12(float) ConvertSToF 42 + 44: 20(ptr) AccessChain 18 19 + 45: 13(fvec4) Load 44 + 46: 13(fvec4) VectorTimesScalar 45 43 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.array.flatten.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.flatten.frag.out new file mode 100644 index 0000000000..74a348a2ed --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.flatten.frag.out @@ -0,0 +1,526 @@ +hlsl.array.flatten.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( (temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_samp[1]' (uniform sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' (in 3-element array of texture1D) +0:22 'l_samp' (in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture (temp 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1D) +0:23 direct index (temp texture1D) +0:23 'l_tex' (in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index (temp sampler) +0:23 'l_samp' (in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child (temp 5-element array of int) +0:26 'not_flattened_a' (global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:31 Function Parameters: +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:35 Sequence +0:35 move second child to first child (temp 4-element array of float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) +0:37 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:37 add (temp 4-component vector of float) +0:37 Function Call: TestFn1( (temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:37 Comma (temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Comma (temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tex[0]' (uniform texture1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) +0:? 'g_samp[0]' (uniform sampler) +0:? 'g_samp[1]' (uniform sampler) +0:? 'g_samp[2]' (uniform sampler) +0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) +0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) +0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:? 'not_flattened_a' (global 5-element array of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( (temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_samp[1]' (uniform sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' (in 3-element array of texture1D) +0:22 'l_samp' (in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture (temp 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1D) +0:23 direct index (temp texture1D) +0:23 'l_tex' (in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index (temp sampler) +0:23 'l_samp' (in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child (temp 5-element array of int) +0:26 'not_flattened_a' (global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:31 Function Parameters: +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:35 Sequence +0:35 move second child to first child (temp 4-element array of float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) +0:37 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:37 add (temp 4-component vector of float) +0:37 Function Call: TestFn1( (temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:37 Comma (temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Comma (temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tex[0]' (uniform texture1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) +0:? 'g_samp[0]' (uniform sampler) +0:? 'g_samp[1]' (uniform sampler) +0:? 'g_samp[2]' (uniform sampler) +0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) +0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) +0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:? 'not_flattened_a' (global 5-element array of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 123 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 99 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "TestFn1(" + Name 22 "TestFn2(t11[3];p1[3];" + Name 20 "l_tex" + Name 21 "l_samp" + Name 28 "not_flattened_a" + Name 36 "g_tex[1]" + Name 39 "g_samp[1]" + Name 55 "local_sampler_array" + Name 57 "g_samp[0]" + Name 62 "g_samp[2]" + Name 65 "local_texture_array" + Name 66 "g_tex[0]" + Name 71 "g_tex[2]" + Name 77 "local_float_array" + Name 83 "$Global" + MemberName 83($Global) 0 "g_mats" + MemberName 83($Global) 1 "g_mats_explicit" + MemberName 83($Global) 2 "g_floats" + Name 85 "" + Name 99 "color" + Name 101 "aggShadow" + Name 108 "aggShadow" + Name 117 "g_tex_explicit[0]" + Name 118 "g_tex_explicit[1]" + Name 119 "g_tex_explicit[2]" + Name 120 "g_samp_explicit[0]" + Name 121 "g_samp_explicit[1]" + Name 122 "g_samp_explicit[2]" + Decorate 36(g_tex[1]) DescriptorSet 0 + Decorate 39(g_samp[1]) DescriptorSet 0 + Decorate 57(g_samp[0]) DescriptorSet 0 + Decorate 62(g_samp[2]) DescriptorSet 0 + Decorate 66(g_tex[0]) DescriptorSet 0 + Decorate 71(g_tex[2]) DescriptorSet 0 + Decorate 80 ArrayStride 48 + Decorate 81 ArrayStride 48 + Decorate 82 ArrayStride 16 + MemberDecorate 83($Global) 0 RowMajor + MemberDecorate 83($Global) 0 Offset 0 + MemberDecorate 83($Global) 0 MatrixStride 16 + MemberDecorate 83($Global) 1 RowMajor + MemberDecorate 83($Global) 1 Offset 192 + MemberDecorate 83($Global) 1 MatrixStride 16 + MemberDecorate 83($Global) 2 Offset 384 + Decorate 83($Global) Block + Decorate 85 DescriptorSet 0 + Decorate 99(color) Location 0 + Decorate 117(g_tex_explicit[0]) DescriptorSet 0 + Decorate 117(g_tex_explicit[0]) Binding 1 + Decorate 118(g_tex_explicit[1]) DescriptorSet 0 + Decorate 118(g_tex_explicit[1]) Binding 2 + Decorate 119(g_tex_explicit[2]) DescriptorSet 0 + Decorate 119(g_tex_explicit[2]) Binding 3 + Decorate 120(g_samp_explicit[0]) DescriptorSet 0 + Decorate 120(g_samp_explicit[0]) Binding 5 + Decorate 121(g_samp_explicit[1]) DescriptorSet 0 + Decorate 121(g_samp_explicit[1]) Binding 6 + Decorate 122(g_samp_explicit[2]) DescriptorSet 0 + Decorate 122(g_samp_explicit[2]) Binding 7 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeImage 6(float) 1D sampled format:Unknown + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 11 13 + 15: TypePointer UniformConstant 14 + 16: TypeSampler + 17: TypeArray 16 13 + 18: TypePointer UniformConstant 17 + 19: TypeFunction 7(fvec4) 15(ptr) 18(ptr) + 24: TypeInt 32 1 + 25: 12(int) Constant 5 + 26: TypeArray 24(int) 25 + 27: TypePointer Private 26 +28(not_flattened_a): 27(ptr) Variable Private + 29: 24(int) Constant 1 + 30: 24(int) Constant 2 + 31: 24(int) Constant 3 + 32: 24(int) Constant 4 + 33: 24(int) Constant 5 + 34: 26 ConstantComposite 29 30 31 32 33 + 35: TypePointer UniformConstant 11 + 36(g_tex[1]): 35(ptr) Variable UniformConstant + 38: TypePointer UniformConstant 16 + 39(g_samp[1]): 38(ptr) Variable UniformConstant + 41: TypeSampledImage 11 + 43: 6(float) Constant 1045220557 +55(local_sampler_array): 18(ptr) Variable UniformConstant + 56: 24(int) Constant 0 + 57(g_samp[0]): 38(ptr) Variable UniformConstant + 62(g_samp[2]): 38(ptr) Variable UniformConstant +65(local_texture_array): 15(ptr) Variable UniformConstant + 66(g_tex[0]): 35(ptr) Variable UniformConstant + 71(g_tex[2]): 35(ptr) Variable UniformConstant + 74: 12(int) Constant 4 + 75: TypeArray 6(float) 74 + 76: TypePointer Function 75 + 78: TypeVector 6(float) 3 + 79: TypeMatrix 78(fvec3) 3 + 80: TypeArray 79 74 + 81: TypeArray 79 74 + 82: TypeArray 6(float) 74 + 83($Global): TypeStruct 80 81 82 + 84: TypePointer Uniform 83($Global) + 85: 84(ptr) Variable Uniform + 86: TypePointer Uniform 82 + 90: TypePointer Function 6(float) + 98: TypePointer Output 7(fvec4) + 99(color): 98(ptr) Variable Output + 101(aggShadow): 15(ptr) Variable UniformConstant + 108(aggShadow): 18(ptr) Variable UniformConstant +117(g_tex_explicit[0]): 35(ptr) Variable UniformConstant +118(g_tex_explicit[1]): 35(ptr) Variable UniformConstant +119(g_tex_explicit[2]): 35(ptr) Variable UniformConstant +120(g_samp_explicit[0]): 38(ptr) Variable UniformConstant +121(g_samp_explicit[1]): 38(ptr) Variable UniformConstant +122(g_samp_explicit[2]): 38(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +77(local_float_array): 76(ptr) Variable Function + Store 28(not_flattened_a) 34 + 58: 16 Load 57(g_samp[0]) + 59: 38(ptr) AccessChain 55(local_sampler_array) 56 + Store 59 58 + 60: 16 Load 39(g_samp[1]) + 61: 38(ptr) AccessChain 55(local_sampler_array) 29 + Store 61 60 + 63: 16 Load 62(g_samp[2]) + 64: 38(ptr) AccessChain 55(local_sampler_array) 30 + Store 64 63 + 67: 11 Load 66(g_tex[0]) + 68: 35(ptr) AccessChain 65(local_texture_array) 56 + Store 68 67 + 69: 11 Load 36(g_tex[1]) + 70: 35(ptr) AccessChain 65(local_texture_array) 29 + Store 70 69 + 72: 11 Load 71(g_tex[2]) + 73: 35(ptr) AccessChain 65(local_texture_array) 30 + Store 73 72 + 87: 86(ptr) AccessChain 85 30 + 88: 82 Load 87 + 89: 6(float) CompositeExtract 88 0 + 91: 90(ptr) AccessChain 77(local_float_array) 56 + Store 91 89 + 92: 6(float) CompositeExtract 88 1 + 93: 90(ptr) AccessChain 77(local_float_array) 29 + Store 93 92 + 94: 6(float) CompositeExtract 88 2 + 95: 90(ptr) AccessChain 77(local_float_array) 30 + Store 95 94 + 96: 6(float) CompositeExtract 88 3 + 97: 90(ptr) AccessChain 77(local_float_array) 31 + Store 97 96 + 100: 7(fvec4) FunctionCall 9(TestFn1() + 102: 11 Load 66(g_tex[0]) + 103: 35(ptr) AccessChain 101(aggShadow) 56 + Store 103 102 + 104: 11 Load 36(g_tex[1]) + 105: 35(ptr) AccessChain 101(aggShadow) 29 + Store 105 104 + 106: 11 Load 71(g_tex[2]) + 107: 35(ptr) AccessChain 101(aggShadow) 30 + Store 107 106 + 109: 16 Load 57(g_samp[0]) + 110: 38(ptr) AccessChain 108(aggShadow) 56 + Store 110 109 + 111: 16 Load 39(g_samp[1]) + 112: 38(ptr) AccessChain 108(aggShadow) 29 + Store 112 111 + 113: 16 Load 62(g_samp[2]) + 114: 38(ptr) AccessChain 108(aggShadow) 30 + Store 114 113 + 115: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 101(aggShadow) 108(aggShadow) + 116: 7(fvec4) FAdd 100 115 + Store 99(color) 116 + Return + FunctionEnd + 9(TestFn1(): 7(fvec4) Function None 8 + 10: Label + 37: 11 Load 36(g_tex[1]) + 40: 16 Load 39(g_samp[1]) + 42: 41 SampledImage 37 40 + 44: 7(fvec4) ImageSampleImplicitLod 42 43 + ReturnValue 44 + FunctionEnd +22(TestFn2(t11[3];p1[3];): 7(fvec4) Function None 19 + 20(l_tex): 15(ptr) FunctionParameter + 21(l_samp): 18(ptr) FunctionParameter + 23: Label + 47: 35(ptr) AccessChain 20(l_tex) 30 + 48: 11 Load 47 + 49: 38(ptr) AccessChain 21(l_samp) 30 + 50: 16 Load 49 + 51: 41 SampledImage 48 50 + 52: 7(fvec4) ImageSampleImplicitLod 51 43 + ReturnValue 52 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.array.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.frag.out new file mode 100755 index 0000000000..e04a5e8161 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.frag.out @@ -0,0 +1,225 @@ +hlsl.array.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) +0:8 Function Parameters: +0:8 'i' (layout(location=0 ) in int) +0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? Sequence +0:10 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 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 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) +0:10 'i' (layout(location=0 ) in int) +0:10 direct index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 indirect index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) +0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 1 (const uint) +0:10 'i' (layout(location=0 ) in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (layout(location=0 ) in int) +0:10 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'i' (layout(location=0 ) in int) +0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) +0:8 Function Parameters: +0:8 'i' (layout(location=0 ) in int) +0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? Sequence +0:10 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 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 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) +0:10 'i' (layout(location=0 ) in int) +0:10 direct index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 indirect index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) +0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 1 (const uint) +0:10 'i' (layout(location=0 ) in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (layout(location=0 ) in int) +0:10 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'i' (layout(location=0 ) in int) +0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 28 36 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "@entryPointOutput" + Name 15 "" + MemberName 15 0 "m" + Name 18 "$Global" + MemberName 18($Global) 0 "a" + MemberName 18($Global) 1 "s" + Name 20 "" + Name 28 "i" + Name 36 "input" + Name 49 "b" + Decorate 9(@entryPointOutput) Location 0 + Decorate 12 ArrayStride 16 + Decorate 14 ArrayStride 16 + MemberDecorate 15 0 Offset 0 + Decorate 17 ArrayStride 112 + MemberDecorate 18($Global) 0 Offset 0 + MemberDecorate 18($Global) 1 Offset 64 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 28(i) Location 0 + Decorate 36(input) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypeInt 32 0 + 11: 10(int) Constant 4 + 12: TypeArray 7(fvec4) 11 + 13: 10(int) Constant 7 + 14: TypeArray 7(fvec4) 13 + 15: TypeStruct 14 + 16: 10(int) Constant 11 + 17: TypeArray 15(struct) 16 + 18($Global): TypeStruct 12 17 + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: TypeInt 32 1 + 22: 21(int) Constant 0 + 23: 21(int) Constant 1 + 24: TypePointer Uniform 7(fvec4) + 27: TypePointer Input 21(int) + 28(i): 27(ptr) Variable Input + 33: 10(int) Constant 3 + 34: TypeArray 7(fvec4) 33 + 35: TypePointer Input 34 + 36(input): 35(ptr) Variable Input + 37: 21(int) Constant 2 + 38: TypePointer Input 7(fvec4) + 46: 10(int) Constant 10 + 47: TypeArray 7(fvec4) 46 + 48: TypePointer Function 47 + 50: 21(int) Constant 5 + 51: TypePointer Function 7(fvec4) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 49(b): 48(ptr) Variable Function + 25: 24(ptr) AccessChain 20 22 23 + 26: 7(fvec4) Load 25 + 29: 21(int) Load 28(i) + 30: 24(ptr) AccessChain 20 22 29 + 31: 7(fvec4) Load 30 + 32: 7(fvec4) FAdd 26 31 + 39: 38(ptr) AccessChain 36(input) 37 + 40: 7(fvec4) Load 39 + 41: 7(fvec4) FAdd 32 40 + 42: 21(int) Load 28(i) + 43: 38(ptr) AccessChain 36(input) 42 + 44: 7(fvec4) Load 43 + 45: 7(fvec4) FAdd 41 44 + 52: 51(ptr) AccessChain 49(b) 50 + 53: 7(fvec4) Load 52 + 54: 7(fvec4) FAdd 45 53 + 55: 21(int) Load 28(i) + 56: 51(ptr) AccessChain 49(b) 55 + 57: 7(fvec4) Load 56 + 58: 7(fvec4) FAdd 54 57 + 59: 21(int) Load 28(i) + 60: 21(int) Load 28(i) + 61: 24(ptr) AccessChain 20 23 59 22 60 + 62: 7(fvec4) Load 61 + 63: 7(fvec4) FAdd 58 62 + Store 9(@entryPointOutput) 63 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/hlsl.array.implicit-size.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.implicit-size.frag.out similarity index 54% rename from deps/glslang-new/Test/baseResults/hlsl.array.implicit-size.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.array.implicit-size.frag.out index 9af6fed287..5674cb479f 100644 --- a/deps/glslang-new/Test/baseResults/hlsl.array.implicit-size.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -1,10 +1,10 @@ hlsl.array.implicit-size.frag -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence -0:3 move second child to first child ( temp 5-element array of float) -0:3 'g_array' ( global 5-element array of float) +0:3 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 @@ -12,8 +12,8 @@ gl_FragCoord origin is upper left 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 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 @@ -23,72 +23,72 @@ gl_FragCoord origin is upper left 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 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 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: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 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:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (out structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Construct vec4 (temp 4-component vector of float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 direct index (temp float) +0:30 'g_array' (global 5-element array of float) +0:30 Constant: +0:30 0 (const int) +0:30 direct index (temp float) +0:30 'g_array' (global 5-element array of float) +0:30 Constant: +0:30 4 (const int) +0:30 direct index (temp float) +0:30 'l_array' (temp 3-element array of float) +0:30 Constant: +0:30 1 (const int) +0:30 f: direct index for structure (temp float) +0:30 direct index (temp structure{temp int i, temp float f}) +0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 indirect index (temp float) +0:30 'g_array' (global 5-element array of float) +0:30 'idx' (temp void) 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}) +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 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence -0:3 move second child to first child ( temp 5-element array of float) -0:3 'g_array' ( global 5-element array of float) +0:3 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 @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 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 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 @@ -107,63 +107,63 @@ gl_FragCoord origin is upper left 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 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 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: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 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:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (out structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Construct vec4 (temp 4-component vector of float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 direct index (temp float) +0:30 'g_array' (global 5-element array of float) +0:30 Constant: +0:30 0 (const int) +0:30 direct index (temp float) +0:30 'g_array' (global 5-element array of float) +0:30 Constant: +0:30 4 (const int) +0:30 direct index (temp float) +0:30 'l_array' (temp 3-element array of float) +0:30 Constant: +0:30 1 (const int) +0:30 f: direct index for structure (temp float) +0:30 direct index (temp structure{temp int i, temp float f}) +0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 indirect index (temp float) +0:30 'g_array' (global 5-element array of float) +0:30 'idx' (temp void) 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}) +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 +// Generated by (magic number): 80001 // Id's are bound by 72 Capability Shader @@ -171,7 +171,6 @@ gl_FragCoord origin is upper left 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" @@ -229,7 +228,7 @@ gl_FragCoord origin is upper left 49: TypePointer Private 6(float) 52: 32(int) Constant 4 56: TypePointer Function 6(float) - 63: TypePointer Function 32(int) + 63: TypePointer Function 2 70: TypePointer Function 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label @@ -255,7 +254,7 @@ gl_FragCoord origin is upper left 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) + 65: 2 Load 64(idx) 66: 49(ptr) AccessChain 18(g_array) 65 67: 6(float) Load 66 68: 6(float) FAdd 62 67 diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.array.multidim.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.multidim.frag.out new file mode 100644 index 0000000000..66890b52ce --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.array.multidim.frag.out @@ -0,0 +1,210 @@ +hlsl.array.multidim.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 direct index (temp 4-component vector of float) +0:14 direct index (temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 (temp 4-component vector of float) +0:14 direct index (layout(offset=0 ) temp float) +0:14 direct index (layout(offset=0 ) temp 3-element array of float) +0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child (temp 3-element array of 4-component vector of float) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index (temp 4-component vector of float) +0:18 direct index (temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 direct index (temp 4-component vector of float) +0:14 direct index (temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 (temp 4-component vector of float) +0:14 direct index (layout(offset=0 ) temp float) +0:14 direct index (layout(offset=0 ) temp 3-element array of float) +0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child (temp 3-element array of 4-component vector of float) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index (temp 4-component vector of float) +0:18 direct index (temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 52 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 14 "float4_array_1" + Name 23 "$Global" + MemberName 23($Global) 0 "float_array" + Name 25 "" + Name 36 "float4_array_2" + Name 41 "PS_OUTPUT" + MemberName 41(PS_OUTPUT) 0 "Color" + Name 43 "psout" + Name 48 "Color" + Decorate 18 ArrayStride 16 + Decorate 20 ArrayStride 48 + Decorate 22 ArrayStride 192 + MemberDecorate 23($Global) 0 Offset 0 + Decorate 23($Global) Block + Decorate 25 DescriptorSet 0 + Decorate 48(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec4) 9 + 11: 8(int) Constant 2 + 12: TypeArray 10 11 + 13: TypePointer Function 12 + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: 15(int) Constant 2 + 18: TypeArray 6(float) 9 + 19: 8(int) Constant 4 + 20: TypeArray 18 19 + 21: 8(int) Constant 5 + 22: TypeArray 20 21 + 23($Global): TypeStruct 22 + 24: TypePointer Uniform 23($Global) + 25: 24(ptr) Variable Uniform + 26: 15(int) Constant 0 + 27: 15(int) Constant 3 + 28: TypePointer Uniform 6(float) + 32: TypePointer Function 7(fvec4) + 34: TypeArray 10 21 + 35: TypePointer Function 34 + 37: TypePointer Function 10 + 41(PS_OUTPUT): TypeStruct 7(fvec4) + 42: TypePointer Function 41(PS_OUTPUT) + 47: TypePointer Output 7(fvec4) + 48(Color): 47(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label +14(float4_array_1): 13(ptr) Variable Function +36(float4_array_2): 35(ptr) Variable Function + 43(psout): 42(ptr) Variable Function + 29: 28(ptr) AccessChain 25 26 17 27 16 + 30: 6(float) Load 29 + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + 33: 32(ptr) AccessChain 14(float4_array_1) 16 17 + Store 33 31 + 38: 37(ptr) AccessChain 14(float4_array_1) 26 + 39: 10 Load 38 + 40: 37(ptr) AccessChain 36(float4_array_2) 16 + Store 40 39 + 44: 32(ptr) AccessChain 14(float4_array_1) 16 17 + 45: 7(fvec4) Load 44 + 46: 32(ptr) AccessChain 43(psout) 26 + Store 46 45 + 49: 32(ptr) AccessChain 43(psout) 26 + 50: 7(fvec4) Load 49 + Store 48(Color) 50 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.assoc.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.assoc.frag.out new file mode 100755 index 0000000000..bcd1603691 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.assoc.frag.out @@ -0,0 +1,140 @@ +hlsl.assoc.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) in 4-component vector of float) +0:8 'a5' (layout(location=4 ) 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' (layout(location=0 ) in 4-component vector of float) +0:9 move second child to first child (temp 4-component vector of float) +0:9 'a2' (layout(location=1 ) in 4-component vector of float) +0:9 move second child to first child (temp 4-component vector of float) +0:9 'a3' (layout(location=2 ) in 4-component vector of float) +0:9 move second child to first child (temp 4-component vector of float) +0:9 'a4' (layout(location=3 ) in 4-component vector of float) +0:9 'a5' (layout(location=4 ) in 4-component vector of float) +0:10 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 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' (layout(location=0 ) in 4-component vector of float) +0:10 'a2' (layout(location=1 ) in 4-component vector of float) +0:10 'a3' (layout(location=2 ) in 4-component vector of float) +0:10 'a4' (layout(location=3 ) in 4-component vector of float) +0:10 'a5' (layout(location=4 ) in 4-component vector of float) +0:10 Branch: Return +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: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) in 4-component vector of float) +0:8 'a5' (layout(location=4 ) 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' (layout(location=0 ) in 4-component vector of float) +0:9 move second child to first child (temp 4-component vector of float) +0:9 'a2' (layout(location=1 ) in 4-component vector of float) +0:9 move second child to first child (temp 4-component vector of float) +0:9 'a3' (layout(location=2 ) in 4-component vector of float) +0:9 move second child to first child (temp 4-component vector of float) +0:9 'a4' (layout(location=3 ) in 4-component vector of float) +0:9 'a5' (layout(location=4 ) in 4-component vector of float) +0:10 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 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' (layout(location=0 ) in 4-component vector of float) +0:10 'a2' (layout(location=1 ) in 4-component vector of float) +0:10 'a3' (layout(location=2 ) in 4-component vector of float) +0:10 'a4' (layout(location=3 ) in 4-component vector of float) +0:10 'a5' (layout(location=4 ) in 4-component vector of float) +0:10 Branch: Return +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): 80001 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 16 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "a1" + Name 10 "a2" + Name 11 "a3" + Name 12 "a4" + Name 13 "a5" + Name 16 "@entryPointOutput" + Decorate 9(a1) Location 0 + Decorate 10(a2) Location 1 + Decorate 11(a3) Location 2 + Decorate 12(a4) Location 3 + Decorate 13(a5) Location 4 + Decorate 16(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Input 7(fvec4) + 9(a1): 8(ptr) Variable Input + 10(a2): 8(ptr) Variable Input + 11(a3): 8(ptr) Variable Input + 12(a4): 8(ptr) Variable Input + 13(a5): 8(ptr) Variable Input + 15: TypePointer Output 7(fvec4) +16(@entryPointOutput): 15(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 14: 7(fvec4) Load 13(a5) + Store 12(a4) 14 + Store 11(a3) 14 + Store 10(a2) 14 + Store 9(a1) 14 + 17: 7(fvec4) Load 9(a1) + 18: 7(fvec4) Load 10(a2) + 19: 7(fvec4) FAdd 17 18 + 20: 7(fvec4) Load 11(a3) + 21: 7(fvec4) FAdd 19 20 + 22: 7(fvec4) Load 12(a4) + 23: 7(fvec4) FAdd 21 22 + 24: 7(fvec4) Load 13(a5) + 25: 7(fvec4) FAdd 23 24 + Store 16(@entryPointOutput) 25 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.attribute.expression.comp.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.attribute.expression.comp.out new file mode 100644 index 0000000000..2316cd9b9d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.attribute.expression.comp.out @@ -0,0 +1,138 @@ +hlsl.attribute.expression.comp +Shader version: 450 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: main( (temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'x' (temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'x' (temp int) +0:11 bound: direct index for structure (layout(offset=0 ) uniform int) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'x' (temp int) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:14 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) + + +Linked compute stage: + + +Shader version: 450 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: main( (temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'x' (temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'x' (temp int) +0:11 bound: direct index for structure (layout(offset=0 ) uniform int) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'x' (temp int) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:14 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 30 + ExecutionMode 4 LocalSize 4 6 8 + Name 4 "main" + Name 8 "x" + Name 16 "$Global" + MemberName 16($Global) 0 "bound" + Name 18 "" + Name 30 "@entryPointOutput" + MemberDecorate 16($Global) 0 Offset 0 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + Decorate 30(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16($Global): TypeStruct 6(int) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: TypePointer Uniform 6(int) + 22: TypeBool + 25: 6(int) Constant 1 + 27: TypeFloat 32 + 28: TypeVector 27(float) 4 + 29: TypePointer Output 28(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output + 31: 27(float) Constant 0 + 32: 28(fvec4) ConstantComposite 31 31 31 31 + 4(main): 2 Function None 3 + 5: Label + 8(x): 7(ptr) Variable Function + Store 8(x) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(x) + 20: 19(ptr) AccessChain 18 9 + 21: 6(int) Load 20 + 23: 22(bool) SLessThan 15 21 + BranchConditional 23 11 12 + 11: Label + Branch 13 + 13: Label + 24: 6(int) Load 8(x) + 26: 6(int) IAdd 24 25 + Store 8(x) 26 + Branch 10 + 12: Label + Store 30(@entryPointOutput) 32 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.attribute.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.attribute.frag.out new file mode 100755 index 0000000000..a3ce657da0 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.attribute.frag.out @@ -0,0 +1,64 @@ +hlsl.attribute.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Parameters: +0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Constant: +0:11 0 (const int) +0:11 true case is null +0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Parameters: +0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Constant: +0:11 0 (const int) +0:11 true case is null +0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 14 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 13 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 13 "input" + Decorate 13(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Input 11(fvec4) + 13(input): 12(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + SelectionMerge 9 None + BranchConditional 7 8 9 + 8: Label + Branch 9 + 9: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.basic.comp.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.basic.comp.out new file mode 100755 index 0000000000..9101e22f8e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.basic.comp.out @@ -0,0 +1,58 @@ +hlsl.basic.comp +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: main(i1; (temp void) +0:4 Function Parameters: +0:4 'dti' (in int LocalInvocationID) +0:? Sequence +0:5 'dti' (in int LocalInvocationID) +0:? Linker Objects +0:? 'dti' (in int LocalInvocationID) +0:? 'a' (shared 100-element array of 4-component vector of float) + + +Linked compute stage: + + +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: main(i1; (temp void) +0:4 Function Parameters: +0:4 'dti' (in int LocalInvocationID) +0:? Sequence +0:5 'dti' (in int LocalInvocationID) +0:? Linker Objects +0:? 'dti' (in int LocalInvocationID) +0:? 'a' (shared 100-element array of 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 16 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 8 + ExecutionMode 4 LocalSize 1 1 1 + Name 4 "main" + Name 8 "dti" + Name 15 "a" + Decorate 8(dti) BuiltIn LocalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Input 6(int) + 8(dti): 7(ptr) Variable Input + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11: TypeInt 32 0 + 12: 11(int) Constant 100 + 13: TypeArray 10(fvec4) 12 + 14: TypePointer Workgroup 13 + 15(a): 14(ptr) Variable Workgroup + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.basic.geom.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.basic.geom.out new file mode 100644 index 0000000000..2c20b439c1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.basic.geom.out @@ -0,0 +1,201 @@ +hlsl.basic.geom +Shader version: 450 +invocations = -1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void) +0:16 Function Parameters: +0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:16 'test' (layout(location=3 ) in 3-element array of uint) +0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child (temp float) +0:19 myfloat: direct index for structure (temp float) +0:19 'Vert' (temp structure{temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float (temp float) +0:19 add (temp uint) +0:19 add (temp uint) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child (temp int) +0:20 something: direct index for structure (temp int) +0:20 'Vert' (temp structure{temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int (temp int) +0:20 direct index (layout(location=0 ) temp uint) +0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:22 'Vert' (temp structure{temp float myfloat, temp int something}) +0:22 EmitVertex (temp void) +0:23 Sequence +0:23 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:23 'Vert' (temp structure{temp float myfloat, temp int something}) +0:23 EmitVertex (temp void) +0:24 EndPrimitive (temp void) +0:? Linker Objects +0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:? 'test' (layout(location=3 ) in 3-element array of uint) +0:? 'myfloat' (layout(location=0 ) out float) +0:? 'something' (layout(location=1 ) out int) + + +Linked geometry stage: + + +Shader version: 450 +invocations = 1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void) +0:16 Function Parameters: +0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:16 'test' (layout(location=3 ) in 3-element array of uint) +0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child (temp float) +0:19 myfloat: direct index for structure (temp float) +0:19 'Vert' (temp structure{temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float (temp float) +0:19 add (temp uint) +0:19 add (temp uint) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child (temp int) +0:20 something: direct index for structure (temp int) +0:20 'Vert' (temp structure{temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int (temp int) +0:20 direct index (layout(location=0 ) temp uint) +0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:22 'Vert' (temp structure{temp float myfloat, temp int something}) +0:22 EmitVertex (temp void) +0:23 Sequence +0:23 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:23 'Vert' (temp structure{temp float myfloat, temp int something}) +0:23 EmitVertex (temp void) +0:24 EndPrimitive (temp void) +0:? Linker Objects +0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:? 'test' (layout(location=3 ) in 3-element array of uint) +0:? 'myfloat' (layout(location=0 ) out float) +0:? 'something' (layout(location=1 ) out int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 16 31 38 42 44 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 4 + Name 4 "main" + Name 8 "PSInput" + MemberName 8(PSInput) 0 "myfloat" + MemberName 8(PSInput) 1 "something" + Name 10 "Vert" + Name 16 "test" + Name 31 "VertexID" + Name 38 "OutputStream" + Name 42 "myfloat" + Name 44 "something" + Decorate 16(test) Location 3 + Decorate 31(VertexID) Location 0 + Decorate 42(myfloat) Location 0 + Decorate 44(something) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 1 + 8(PSInput): TypeStruct 6(float) 7(int) + 9: TypePointer Function 8(PSInput) + 11: 7(int) Constant 0 + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 12(int) 13 + 15: TypePointer Input 14 + 16(test): 15(ptr) Variable Input + 17: TypePointer Input 12(int) + 20: 7(int) Constant 1 + 24: 7(int) Constant 2 + 29: TypePointer Function 6(float) + 31(VertexID): 15(ptr) Variable Input + 35: TypePointer Function 7(int) + 37: TypePointer Output 8(PSInput) +38(OutputStream): 37(ptr) Variable Output + 41: TypePointer Output 6(float) + 42(myfloat): 41(ptr) Variable Output + 43: TypePointer Output 7(int) + 44(something): 43(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 10(Vert): 9(ptr) Variable Function + 18: 17(ptr) AccessChain 16(test) 11 + 19: 12(int) Load 18 + 21: 17(ptr) AccessChain 16(test) 20 + 22: 12(int) Load 21 + 23: 12(int) IAdd 19 22 + 25: 17(ptr) AccessChain 16(test) 24 + 26: 12(int) Load 25 + 27: 12(int) IAdd 23 26 + 28: 6(float) ConvertUToF 27 + 30: 29(ptr) AccessChain 10(Vert) 11 + Store 30 28 + 32: 17(ptr) AccessChain 31(VertexID) 11 + 33: 12(int) Load 32 + 34: 7(int) Bitcast 33 + 36: 35(ptr) AccessChain 10(Vert) 20 + Store 36 34 + 39: 8(PSInput) Load 10(Vert) + Store 38(OutputStream) 39 + EmitVertex + 40: 8(PSInput) Load 10(Vert) + Store 38(OutputStream) 40 + EmitVertex + EndPrimitive + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.buffer.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.buffer.frag.out new file mode 100755 index 0000000000..dbb2b5e1c4 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.buffer.frag.out @@ -0,0 +1,199 @@ +hlsl.buffer.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:30 Function Parameters: +0:30 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) +0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:31 Constant: +0:31 0 (const uint) +0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) +0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:31 Constant: +0:31 0 (const uint) +0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:31 Constant: +0:31 0 (const uint) +0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +0:31 Constant: +0:31 0 (const uint) +0:31 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:30 Function Parameters: +0:30 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) +0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:31 Constant: +0:31 0 (const uint) +0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) +0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:31 Constant: +0:31 0 (const uint) +0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:31 Constant: +0:31 0 (const uint) +0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +0:31 Constant: +0:31 0 (const uint) +0:31 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 42 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "@entryPointOutput" + Name 11 "input" + Name 13 "" + MemberName 13 0 "v1" + Name 15 "" + Name 22 "" + MemberName 22 0 "v2" + Name 24 "" + Name 28 "cbufName" + MemberName 28(cbufName) 0 "v3" + MemberName 28(cbufName) 1 "i3" + Name 30 "" + Name 35 "tbufName" + MemberName 35(tbufName) 0 "v4" + MemberName 35(tbufName) 1 "i4" + MemberName 35(tbufName) 2 "f1" + MemberName 35(tbufName) 3 "f3" + MemberName 35(tbufName) 4 "f4" + MemberName 35(tbufName) 5 "f5" + MemberName 35(tbufName) 6 "f6" + MemberName 35(tbufName) 7 "f7" + MemberName 35(tbufName) 8 "m1" + MemberName 35(tbufName) 9 "m2" + MemberName 35(tbufName) 10 "m3" + MemberName 35(tbufName) 11 "m4" + Name 37 "" + Decorate 9(@entryPointOutput) Location 0 + Decorate 11(input) Location 0 + MemberDecorate 13 0 Offset 0 + Decorate 13 Block + Decorate 15 DescriptorSet 0 + MemberDecorate 22 0 Offset 0 + Decorate 22 BufferBlock + Decorate 24 DescriptorSet 0 + MemberDecorate 28(cbufName) 0 Offset 0 + MemberDecorate 28(cbufName) 1 Offset 20 + Decorate 28(cbufName) Block + Decorate 30 DescriptorSet 10 + Decorate 30 Binding 2 + MemberDecorate 35(tbufName) 0 Offset 16 + MemberDecorate 35(tbufName) 1 Offset 48 + MemberDecorate 35(tbufName) 2 Offset 60 + MemberDecorate 35(tbufName) 3 Offset 64 + MemberDecorate 35(tbufName) 4 Offset 68 + MemberDecorate 35(tbufName) 5 Offset 72 + MemberDecorate 35(tbufName) 6 Offset 76 + MemberDecorate 35(tbufName) 7 Offset 80 + MemberDecorate 35(tbufName) 8 RowMajor + MemberDecorate 35(tbufName) 8 Offset 96 + MemberDecorate 35(tbufName) 8 MatrixStride 16 + MemberDecorate 35(tbufName) 9 ColMajor + MemberDecorate 35(tbufName) 9 Offset 160 + MemberDecorate 35(tbufName) 9 MatrixStride 16 + MemberDecorate 35(tbufName) 10 RowMajor + MemberDecorate 35(tbufName) 10 Offset 208 + MemberDecorate 35(tbufName) 10 MatrixStride 16 + MemberDecorate 35(tbufName) 11 RowMajor + MemberDecorate 35(tbufName) 11 Offset 272 + MemberDecorate 35(tbufName) 11 MatrixStride 16 + Decorate 35(tbufName) BufferBlock + Decorate 37 DescriptorSet 0 + Decorate 37 Binding 8 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 13: TypeStruct 7(fvec4) + 14: TypePointer Uniform 13(struct) + 15: 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Uniform 7(fvec4) + 22: TypeStruct 7(fvec4) + 23: TypePointer Uniform 22(struct) + 24: 23(ptr) Variable Uniform + 28(cbufName): TypeStruct 7(fvec4) 16(int) + 29: TypePointer Uniform 28(cbufName) + 30: 29(ptr) Variable Uniform + 34: TypeMatrix 7(fvec4) 3 + 35(tbufName): TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 34 34 34 34 + 36: TypePointer Uniform 35(tbufName) + 37: 36(ptr) Variable Uniform +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(input) + 19: 18(ptr) AccessChain 15 17 + 20: 7(fvec4) Load 19 + 21: 7(fvec4) FAdd 12 20 + 25: 18(ptr) AccessChain 24 17 + 26: 7(fvec4) Load 25 + 27: 7(fvec4) FAdd 21 26 + 31: 18(ptr) AccessChain 30 17 + 32: 7(fvec4) Load 31 + 33: 7(fvec4) FAdd 27 32 + 38: 18(ptr) AccessChain 37 17 + 39: 7(fvec4) Load 38 + 40: 7(fvec4) FAdd 33 39 + Store 9(@entryPointOutput) 40 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.calculatelod.dx10.frag.out new file mode 100644 index 0000000000..56a2ce869e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -0,0 +1,553 @@ +hlsl.calculatelod.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 '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 Sequence +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 1 (const int) +0:43 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 '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 Sequence +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 1 (const int) +0:43 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 141 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 132 136 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "txval10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 25 "txval11" + Name 28 "g_tTex1di4a" + Name 36 "txval12" + Name 40 "g_tTex1du4a" + Name 48 "txval20" + Name 51 "g_tTex2df4a" + Name 59 "txval21" + Name 62 "g_tTex2di4a" + Name 71 "txval22" + Name 74 "g_tTex2du4a" + Name 84 "txval40" + Name 87 "g_tTexcdf4a" + Name 96 "txval41" + Name 99 "g_tTexcdi4a" + Name 107 "txval42" + Name 110 "g_tTexcdu4a" + Name 122 "PS_OUTPUT" + MemberName 122(PS_OUTPUT) 0 "Color" + MemberName 122(PS_OUTPUT) 1 "Depth" + Name 124 "psout" + Name 132 "Color" + Name 136 "Depth" + Name 140 "g_tTex1df4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 11(g_tTex1df4a) Binding 1 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 28(g_tTex1di4a) DescriptorSet 0 + Decorate 40(g_tTex1du4a) DescriptorSet 0 + Decorate 51(g_tTex2df4a) DescriptorSet 0 + Decorate 62(g_tTex2di4a) DescriptorSet 0 + Decorate 74(g_tTex2du4a) DescriptorSet 0 + Decorate 87(g_tTexcdf4a) DescriptorSet 0 + Decorate 99(g_tTexcdi4a) DescriptorSet 0 + Decorate 110(g_tTexcdu4a) DescriptorSet 0 + Decorate 132(Color) Location 0 + Decorate 136(Depth) BuiltIn FragDepth + Decorate 140(g_tTex1df4) DescriptorSet 0 + Decorate 140(g_tTex1df4) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeSampledImage 9 + 19: 6(float) Constant 1036831949 + 20: TypeVector 6(float) 2 + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 26: TypeImage 22(int) 1D array sampled format:Unknown + 27: TypePointer UniformConstant 26 + 28(g_tTex1di4a): 27(ptr) Variable UniformConstant + 31: TypeSampledImage 26 + 33: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeImage 37(int) 1D array sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4a): 39(ptr) Variable UniformConstant + 43: TypeSampledImage 38 + 45: 6(float) Constant 1050253722 + 49: TypeImage 6(float) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2df4a): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 20(fvec2) ConstantComposite 19 33 + 60: TypeImage 22(int) 2D array sampled format:Unknown + 61: TypePointer UniformConstant 60 + 62(g_tTex2di4a): 61(ptr) Variable UniformConstant + 65: TypeSampledImage 60 + 67: 6(float) Constant 1053609165 + 68: 20(fvec2) ConstantComposite 45 67 + 72: TypeImage 37(int) 2D array sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4a): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 20(fvec2) ConstantComposite 79 80 + 85: TypeImage 6(float) Cube array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTexcdf4a): 86(ptr) Variable UniformConstant + 90: TypeSampledImage 85 + 92: TypeVector 6(float) 3 + 93: 92(fvec3) ConstantComposite 19 33 45 + 97: TypeImage 22(int) Cube array sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTexcdi4a): 98(ptr) Variable UniformConstant + 102: TypeSampledImage 97 + 104: 92(fvec3) ConstantComposite 67 79 80 + 108: TypeImage 37(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 +110(g_tTexcdu4a): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1060320051 + 116: 6(float) Constant 1061997773 + 117: 6(float) Constant 1063675494 + 118: 92(fvec3) ConstantComposite 115 116 117 + 121: TypeVector 6(float) 4 + 122(PS_OUTPUT): TypeStruct 121(fvec4) 6(float) + 123: TypePointer Function 122(PS_OUTPUT) + 125: 6(float) Constant 1065353216 + 126: 121(fvec4) ConstantComposite 125 125 125 125 + 127: TypePointer Function 121(fvec4) + 129: 22(int) Constant 1 + 131: TypePointer Output 121(fvec4) + 132(Color): 131(ptr) Variable Output + 135: TypePointer Output 6(float) + 136(Depth): 135(ptr) Variable Output + 140(g_tTex1df4): 10(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(txval10): 7(ptr) Variable Function + 25(txval11): 7(ptr) Variable Function + 36(txval12): 7(ptr) Variable Function + 48(txval20): 7(ptr) Variable Function + 59(txval21): 7(ptr) Variable Function + 71(txval22): 7(ptr) Variable Function + 84(txval40): 7(ptr) Variable Function + 96(txval41): 7(ptr) Variable Function + 107(txval42): 7(ptr) Variable Function + 124(psout): 123(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 18: 17 SampledImage 12 16 + 21: 20(fvec2) ImageQueryLod 18 19 + 24: 6(float) CompositeExtract 21 0 + Store 8(txval10) 24 + 29: 26 Load 28(g_tTex1di4a) + 30: 13 Load 15(g_sSamp) + 32: 31 SampledImage 29 30 + 34: 20(fvec2) ImageQueryLod 32 33 + 35: 6(float) CompositeExtract 34 0 + Store 25(txval11) 35 + 41: 38 Load 40(g_tTex1du4a) + 42: 13 Load 15(g_sSamp) + 44: 43 SampledImage 41 42 + 46: 20(fvec2) ImageQueryLod 44 45 + 47: 6(float) CompositeExtract 46 0 + Store 36(txval12) 47 + 52: 49 Load 51(g_tTex2df4a) + 53: 13 Load 15(g_sSamp) + 55: 54 SampledImage 52 53 + 57: 20(fvec2) ImageQueryLod 55 56 + 58: 6(float) CompositeExtract 57 0 + Store 48(txval20) 58 + 63: 60 Load 62(g_tTex2di4a) + 64: 13 Load 15(g_sSamp) + 66: 65 SampledImage 63 64 + 69: 20(fvec2) ImageQueryLod 66 68 + 70: 6(float) CompositeExtract 69 0 + Store 59(txval21) 70 + 75: 72 Load 74(g_tTex2du4a) + 76: 13 Load 15(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 20(fvec2) ImageQueryLod 78 81 + 83: 6(float) CompositeExtract 82 0 + Store 71(txval22) 83 + 88: 85 Load 87(g_tTexcdf4a) + 89: 13 Load 15(g_sSamp) + 91: 90 SampledImage 88 89 + 94: 20(fvec2) ImageQueryLod 91 93 + 95: 6(float) CompositeExtract 94 0 + Store 84(txval40) 95 + 100: 97 Load 99(g_tTexcdi4a) + 101: 13 Load 15(g_sSamp) + 103: 102 SampledImage 100 101 + 105: 20(fvec2) ImageQueryLod 103 104 + 106: 6(float) CompositeExtract 105 0 + Store 96(txval41) 106 + 111: 108 Load 110(g_tTexcdu4a) + 112: 13 Load 15(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 20(fvec2) ImageQueryLod 114 118 + 120: 6(float) CompositeExtract 119 0 + Store 107(txval42) 120 + 128: 127(ptr) AccessChain 124(psout) 23 + Store 128 126 + 130: 7(ptr) AccessChain 124(psout) 129 + Store 130 125 + 133: 127(ptr) AccessChain 124(psout) 23 + 134: 121(fvec4) Load 133 + Store 132(Color) 134 + 137: 7(ptr) AccessChain 124(psout) 129 + 138: 6(float) Load 137 + Store 136(Depth) 138 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out new file mode 100644 index 0000000000..799dcc37fb --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -0,0 +1,358 @@ +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: 450 +gl_FragCoord origin is upper left +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 Sequence +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 1 (const int) +0:43 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 1 (const int) +0:43 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.cast.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.cast.frag.out new file mode 100755 index 0000000000..bf7183f277 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.cast.frag.out @@ -0,0 +1,101 @@ +hlsl.cast.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:3 add (temp 4-component vector of float) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) +0:3 'input' (layout(location=0 ) 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' (layout(location=0 ) 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:3 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:3 add (temp 4-component vector of float) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) +0:3 'input' (layout(location=0 ) 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' (layout(location=0 ) 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:3 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 28 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "@entryPointOutput" + Name 11 "input" + Decorate 9(@entryPointOutput) Location 0 + Decorate 11(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 24: 6(float) Constant 1067014160 + 25: 7(fvec4) ConstantComposite 24 24 24 24 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(input) + 13: 6(float) CompositeExtract 12 0 + 14: 6(float) CompositeExtract 12 1 + 15: 6(float) CompositeExtract 12 2 + 16: 6(float) CompositeExtract 12 3 + 17: 7(fvec4) CompositeConstruct 13 14 15 16 + 18: 7(fvec4) Load 11(input) + 21: 20(ivec4) ConvertFToS 18 + 22: 7(fvec4) ConvertSToF 21 + 23: 7(fvec4) FAdd 17 22 + 26: 7(fvec4) FAdd 23 25 + Store 9(@entryPointOutput) 26 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.comparison.vec.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.comparison.vec.frag.out new file mode 100644 index 0000000000..1bf63ec8a7 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.comparison.vec.frag.out @@ -0,0 +1,402 @@ +hlsl.comparison.vec.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Parameters: +0:4 'a' (in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v04' (temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'v01' (temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of bool) +0:8 'r00' (temp 4-component vector of bool) +0:8 Equal (temp 4-component vector of bool) +0:8 'a' (in 4-component vector of float) +0:8 'v04' (temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of bool) +0:9 'r01' (temp 4-component vector of bool) +0:9 NotEqual (temp 4-component vector of bool) +0:9 'a' (in 4-component vector of float) +0:9 'v04' (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of bool) +0:10 'r02' (temp 4-component vector of bool) +0:10 Compare Less Than (temp 4-component vector of bool) +0:10 'a' (in 4-component vector of float) +0:10 'v04' (temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r03' (temp 4-component vector of bool) +0:11 Compare Greater Than (temp 4-component vector of bool) +0:11 'a' (in 4-component vector of float) +0:11 'v04' (temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r10' (temp 4-component vector of bool) +0:13 Equal (temp 4-component vector of bool) +0:13 'a' (in 4-component vector of float) +0:13 Construct vec4 (in 4-component vector of float) +0:13 'v01' (temp float) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of bool) +0:14 'r11' (temp 4-component vector of bool) +0:14 NotEqual (temp 4-component vector of bool) +0:14 'a' (in 4-component vector of float) +0:14 Construct vec4 (in 4-component vector of float) +0:14 'v01' (temp float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r12' (temp 4-component vector of bool) +0:15 Compare Less Than (temp 4-component vector of bool) +0:15 'a' (in 4-component vector of float) +0:15 Construct vec4 (in 4-component vector of float) +0:15 'v01' (temp float) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r13' (temp 4-component vector of bool) +0:16 Compare Greater Than (temp 4-component vector of bool) +0:16 'a' (in 4-component vector of float) +0:16 Construct vec4 (in 4-component vector of float) +0:16 'v01' (temp float) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 Equal (temp 4-component vector of bool) +0:18 Construct vec4 (in 4-component vector of float) +0:18 'v01' (temp float) +0:18 'a' (in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 NotEqual (temp 4-component vector of bool) +0:19 Construct vec4 (in 4-component vector of float) +0:19 'v01' (temp float) +0:19 'a' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of bool) +0:20 'r22' (temp 4-component vector of bool) +0:20 Compare Less Than (temp 4-component vector of bool) +0:20 Construct vec4 (in 4-component vector of float) +0:20 'v01' (temp float) +0:20 'a' (in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of bool) +0:21 'r23' (temp 4-component vector of bool) +0:21 Compare Greater Than (temp 4-component vector of bool) +0:21 Construct vec4 (in 4-component vector of float) +0:21 'v01' (temp float) +0:21 'a' (in 4-component vector of float) +0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color}) +0:33 Constant: +0:33 0 (const int) +0:33 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Parameters: +0:4 'a' (in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v04' (temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'v01' (temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of bool) +0:8 'r00' (temp 4-component vector of bool) +0:8 Equal (temp 4-component vector of bool) +0:8 'a' (in 4-component vector of float) +0:8 'v04' (temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of bool) +0:9 'r01' (temp 4-component vector of bool) +0:9 NotEqual (temp 4-component vector of bool) +0:9 'a' (in 4-component vector of float) +0:9 'v04' (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of bool) +0:10 'r02' (temp 4-component vector of bool) +0:10 Compare Less Than (temp 4-component vector of bool) +0:10 'a' (in 4-component vector of float) +0:10 'v04' (temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r03' (temp 4-component vector of bool) +0:11 Compare Greater Than (temp 4-component vector of bool) +0:11 'a' (in 4-component vector of float) +0:11 'v04' (temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r10' (temp 4-component vector of bool) +0:13 Equal (temp 4-component vector of bool) +0:13 'a' (in 4-component vector of float) +0:13 Construct vec4 (in 4-component vector of float) +0:13 'v01' (temp float) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of bool) +0:14 'r11' (temp 4-component vector of bool) +0:14 NotEqual (temp 4-component vector of bool) +0:14 'a' (in 4-component vector of float) +0:14 Construct vec4 (in 4-component vector of float) +0:14 'v01' (temp float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r12' (temp 4-component vector of bool) +0:15 Compare Less Than (temp 4-component vector of bool) +0:15 'a' (in 4-component vector of float) +0:15 Construct vec4 (in 4-component vector of float) +0:15 'v01' (temp float) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r13' (temp 4-component vector of bool) +0:16 Compare Greater Than (temp 4-component vector of bool) +0:16 'a' (in 4-component vector of float) +0:16 Construct vec4 (in 4-component vector of float) +0:16 'v01' (temp float) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 Equal (temp 4-component vector of bool) +0:18 Construct vec4 (in 4-component vector of float) +0:18 'v01' (temp float) +0:18 'a' (in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 NotEqual (temp 4-component vector of bool) +0:19 Construct vec4 (in 4-component vector of float) +0:19 'v01' (temp float) +0:19 'a' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of bool) +0:20 'r22' (temp 4-component vector of bool) +0:20 Compare Less Than (temp 4-component vector of bool) +0:20 Construct vec4 (in 4-component vector of float) +0:20 'v01' (temp float) +0:20 'a' (in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of bool) +0:21 'r23' (temp 4-component vector of bool) +0:21 Compare Greater Than (temp 4-component vector of bool) +0:21 Construct vec4 (in 4-component vector of float) +0:21 'v01' (temp float) +0:21 'a' (in 4-component vector of float) +0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color}) +0:33 Constant: +0:33 0 (const int) +0:33 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 91 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 84 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Bug1(vf4;" + Name 10 "a" + Name 13 "v04" + Name 17 "v01" + Name 21 "r00" + Name 25 "r01" + Name 29 "r02" + Name 33 "r03" + Name 37 "r10" + Name 42 "r11" + Name 47 "r12" + Name 52 "r13" + Name 57 "r20" + Name 62 "r21" + Name 67 "r22" + Name 72 "r23" + Name 77 "PS_OUTPUT" + MemberName 77(PS_OUTPUT) 0 "Color" + Name 79 "psout" + Name 84 "Color" + Name 88 "$Global" + MemberName 88($Global) 0 "uf4" + Name 90 "" + Decorate 84(Color) Location 0 + MemberDecorate 88($Global) 0 Offset 0 + Decorate 88($Global) Block + Decorate 90 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 14: 6(float) Constant 0 + 15: 7(fvec4) ConstantComposite 14 14 14 14 + 16: TypePointer Function 6(float) + 18: TypeBool + 19: TypeVector 18(bool) 4 + 20: TypePointer Function 19(bvec4) + 77(PS_OUTPUT): TypeStruct 7(fvec4) + 78: TypePointer Function 77(PS_OUTPUT) + 80: TypeInt 32 1 + 81: 80(int) Constant 0 + 83: TypePointer Output 7(fvec4) + 84(Color): 83(ptr) Variable Output + 88($Global): TypeStruct 7(fvec4) + 89: TypePointer Uniform 88($Global) + 90: 89(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 79(psout): 78(ptr) Variable Function + 82: 8(ptr) AccessChain 79(psout) 81 + Store 82 15 + 85: 8(ptr) AccessChain 79(psout) 81 + 86: 7(fvec4) Load 85 + Store 84(Color) 86 + Return + FunctionEnd + 11(Bug1(vf4;): 2 Function None 9 + 10(a): 8(ptr) FunctionParameter + 12: Label + 13(v04): 8(ptr) Variable Function + 17(v01): 16(ptr) Variable Function + 21(r00): 20(ptr) Variable Function + 25(r01): 20(ptr) Variable Function + 29(r02): 20(ptr) Variable Function + 33(r03): 20(ptr) Variable Function + 37(r10): 20(ptr) Variable Function + 42(r11): 20(ptr) Variable Function + 47(r12): 20(ptr) Variable Function + 52(r13): 20(ptr) Variable Function + 57(r20): 20(ptr) Variable Function + 62(r21): 20(ptr) Variable Function + 67(r22): 20(ptr) Variable Function + 72(r23): 20(ptr) Variable Function + Store 13(v04) 15 + Store 17(v01) 14 + 22: 7(fvec4) Load 10(a) + 23: 7(fvec4) Load 13(v04) + 24: 19(bvec4) FOrdEqual 22 23 + Store 21(r00) 24 + 26: 7(fvec4) Load 10(a) + 27: 7(fvec4) Load 13(v04) + 28: 19(bvec4) FOrdNotEqual 26 27 + Store 25(r01) 28 + 30: 7(fvec4) Load 10(a) + 31: 7(fvec4) Load 13(v04) + 32: 19(bvec4) FOrdLessThan 30 31 + Store 29(r02) 32 + 34: 7(fvec4) Load 10(a) + 35: 7(fvec4) Load 13(v04) + 36: 19(bvec4) FOrdGreaterThan 34 35 + Store 33(r03) 36 + 38: 7(fvec4) Load 10(a) + 39: 6(float) Load 17(v01) + 40: 7(fvec4) CompositeConstruct 39 39 39 39 + 41: 19(bvec4) FOrdEqual 38 40 + Store 37(r10) 41 + 43: 7(fvec4) Load 10(a) + 44: 6(float) Load 17(v01) + 45: 7(fvec4) CompositeConstruct 44 44 44 44 + 46: 19(bvec4) FOrdNotEqual 43 45 + Store 42(r11) 46 + 48: 7(fvec4) Load 10(a) + 49: 6(float) Load 17(v01) + 50: 7(fvec4) CompositeConstruct 49 49 49 49 + 51: 19(bvec4) FOrdLessThan 48 50 + Store 47(r12) 51 + 53: 7(fvec4) Load 10(a) + 54: 6(float) Load 17(v01) + 55: 7(fvec4) CompositeConstruct 54 54 54 54 + 56: 19(bvec4) FOrdGreaterThan 53 55 + Store 52(r13) 56 + 58: 6(float) Load 17(v01) + 59: 7(fvec4) CompositeConstruct 58 58 58 58 + 60: 7(fvec4) Load 10(a) + 61: 19(bvec4) FOrdEqual 59 60 + Store 57(r20) 61 + 63: 6(float) Load 17(v01) + 64: 7(fvec4) CompositeConstruct 63 63 63 63 + 65: 7(fvec4) Load 10(a) + 66: 19(bvec4) FOrdNotEqual 64 65 + Store 62(r21) 66 + 68: 6(float) Load 17(v01) + 69: 7(fvec4) CompositeConstruct 68 68 68 68 + 70: 7(fvec4) Load 10(a) + 71: 19(bvec4) FOrdLessThan 69 70 + Store 67(r22) 71 + 73: 6(float) Load 17(v01) + 74: 7(fvec4) CompositeConstruct 73 73 73 73 + 75: 7(fvec4) Load 10(a) + 76: 19(bvec4) FOrdGreaterThan 74 75 + Store 72(r23) 76 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.conditional.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.conditional.frag.out new file mode 100755 index 0000000000..32edbda72d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.conditional.frag.out @@ -0,0 +1,372 @@ +hlsl.conditional.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp int) +0:3 'a' (temp int) +0:3 Constant: +0:3 5 (const int) +0:4 Sequence +0:4 move second child to first child (temp int) +0:4 'b' (temp int) +0:4 Constant: +0:4 6 (const int) +0:5 Sequence +0:5 move second child to first child (temp int) +0:5 'c' (temp int) +0:5 Constant: +0:5 7 (const int) +0:6 Sequence +0:6 move second child to first child (temp int) +0:6 'd' (temp int) +0:6 Constant: +0:6 7 (const int) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:7 'ret' (temp 4-component vector of float) +0:9 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:7 add (temp 4-component vector of float) +0:7 vector-scale (temp 4-component vector of float) +0:7 Convert int to float (temp float) +0:7 'a' (temp int) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:8 vector-scale (temp 4-component vector of float) +0:8 Convert int to float (temp float) +0:8 'b' (temp int) +0:8 'input' (layout(location=0 ) in 4-component vector of float) +0:9 vector-scale (temp 4-component vector of float) +0:9 Convert int to float (temp float) +0:9 'c' (temp int) +0:9 'input' (layout(location=0 ) in 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 'd' (temp int) +0:10 'input' (layout(location=0 ) in 4-component vector of float) +0:12 Comma (temp int) +0:12 move second child to first child (temp int) +0:12 'e' (temp int) +0:12 move second child to first child (temp int) +0:12 'a' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'b' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'c' (temp int) +0:12 'd' (temp int) +0:12 false case +0:12 Constant: +0:12 10 (const int) +0:12 move second child to first child (temp int) +0:12 'b' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'a' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'd' (temp int) +0:12 'c' (temp int) +0:12 false case +0:12 Constant: +0:12 11 (const int) +0:14 move second child to first child (temp 4-component vector of float) +0:14 'f' (temp 4-component vector of float) +0:14 Test condition and select (temp 4-component vector of float) +0:14 Condition +0:14 Compare Less Than (temp bool) +0:14 direct index (temp float) +0:14 'ret' (temp 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:14 direct index (temp float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 true case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'c' (temp int) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 false case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'd' (temp int) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp int) +0:3 'a' (temp int) +0:3 Constant: +0:3 5 (const int) +0:4 Sequence +0:4 move second child to first child (temp int) +0:4 'b' (temp int) +0:4 Constant: +0:4 6 (const int) +0:5 Sequence +0:5 move second child to first child (temp int) +0:5 'c' (temp int) +0:5 Constant: +0:5 7 (const int) +0:6 Sequence +0:6 move second child to first child (temp int) +0:6 'd' (temp int) +0:6 Constant: +0:6 7 (const int) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:7 'ret' (temp 4-component vector of float) +0:9 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:7 add (temp 4-component vector of float) +0:7 vector-scale (temp 4-component vector of float) +0:7 Convert int to float (temp float) +0:7 'a' (temp int) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:8 vector-scale (temp 4-component vector of float) +0:8 Convert int to float (temp float) +0:8 'b' (temp int) +0:8 'input' (layout(location=0 ) in 4-component vector of float) +0:9 vector-scale (temp 4-component vector of float) +0:9 Convert int to float (temp float) +0:9 'c' (temp int) +0:9 'input' (layout(location=0 ) in 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 'd' (temp int) +0:10 'input' (layout(location=0 ) in 4-component vector of float) +0:12 Comma (temp int) +0:12 move second child to first child (temp int) +0:12 'e' (temp int) +0:12 move second child to first child (temp int) +0:12 'a' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'b' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'c' (temp int) +0:12 'd' (temp int) +0:12 false case +0:12 Constant: +0:12 10 (const int) +0:12 move second child to first child (temp int) +0:12 'b' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'a' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'd' (temp int) +0:12 'c' (temp int) +0:12 false case +0:12 Constant: +0:12 11 (const int) +0:14 move second child to first child (temp 4-component vector of float) +0:14 'f' (temp 4-component vector of float) +0:14 Test condition and select (temp 4-component vector of float) +0:14 Condition +0:14 Compare Less Than (temp bool) +0:14 direct index (temp float) +0:14 'ret' (temp 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:14 direct index (temp float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 true case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'c' (temp int) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 false case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'd' (temp int) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 91 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 22 83 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "a" + Name 10 "b" + Name 12 "c" + Name 14 "d" + Name 18 "ret" + Name 22 "input" + Name 40 "e" + Name 57 "f" + Name 83 "@entryPointOutput" + Decorate 22(input) Location 0 + Decorate 83(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 5 + 11: 6(int) Constant 6 + 13: 6(int) Constant 7 + 15: TypeFloat 32 + 16: TypeVector 15(float) 4 + 17: TypePointer Function 16(fvec4) + 21: TypePointer Input 16(fvec4) + 22(input): 21(ptr) Variable Input + 47: 6(int) Constant 10 + 55: 6(int) Constant 11 + 59: TypeInt 32 0 + 60: 59(int) Constant 0 + 61: TypePointer Function 15(float) + 64: 59(int) Constant 1 + 65: TypePointer Input 15(float) + 68: TypeBool + 82: TypePointer Output 16(fvec4) +83(@entryPointOutput): 82(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 8(a): 7(ptr) Variable Function + 10(b): 7(ptr) Variable Function + 12(c): 7(ptr) Variable Function + 14(d): 7(ptr) Variable Function + 18(ret): 17(ptr) Variable Function + 40(e): 7(ptr) Variable Function + 41: 7(ptr) Variable Function + 49: 7(ptr) Variable Function + 57(f): 17(ptr) Variable Function + 58: 17(ptr) Variable Function + Store 8(a) 9 + Store 10(b) 11 + Store 12(c) 13 + Store 14(d) 13 + 19: 6(int) Load 8(a) + 20: 15(float) ConvertSToF 19 + 23: 16(fvec4) Load 22(input) + 24: 16(fvec4) VectorTimesScalar 23 20 + 25: 6(int) Load 10(b) + 26: 15(float) ConvertSToF 25 + 27: 16(fvec4) Load 22(input) + 28: 16(fvec4) VectorTimesScalar 27 26 + 29: 16(fvec4) FAdd 24 28 + 30: 6(int) Load 12(c) + 31: 15(float) ConvertSToF 30 + 32: 16(fvec4) Load 22(input) + 33: 16(fvec4) VectorTimesScalar 32 31 + 34: 16(fvec4) FAdd 29 33 + 35: 6(int) Load 14(d) + 36: 15(float) ConvertSToF 35 + 37: 16(fvec4) Load 22(input) + 38: 16(fvec4) VectorTimesScalar 37 36 + 39: 16(fvec4) FAdd 34 38 + Store 18(ret) 39 + 42: 6(int) Load 10(b) + SelectionMerge 44 None + BranchConditional 42 43 46 + 43: Label + 45: 6(int) Load 14(d) + Store 12(c) 45 + Store 41 45 + Branch 44 + 46: Label + Store 41 47 + Branch 44 + 44: Label + 48: 6(int) Load 41 + Store 8(a) 48 + Store 40(e) 48 + 50: 6(int) Load 8(a) + SelectionMerge 52 None + BranchConditional 50 51 54 + 51: Label + 53: 6(int) Load 12(c) + Store 14(d) 53 + Store 49 53 + Branch 52 + 54: Label + Store 49 55 + Branch 52 + 52: Label + 56: 6(int) Load 49 + Store 10(b) 56 + 62: 61(ptr) AccessChain 18(ret) 60 + 63: 15(float) Load 62 + 66: 65(ptr) AccessChain 22(input) 64 + 67: 15(float) Load 66 + 69: 68(bool) FOrdLessThan 63 67 + SelectionMerge 71 None + BranchConditional 69 70 76 + 70: Label + 72: 6(int) Load 12(c) + 73: 15(float) ConvertSToF 72 + 74: 16(fvec4) Load 22(input) + 75: 16(fvec4) VectorTimesScalar 74 73 + Store 58 75 + Branch 71 + 76: Label + 77: 6(int) Load 14(d) + 78: 15(float) ConvertSToF 77 + 79: 16(fvec4) Load 22(input) + 80: 16(fvec4) VectorTimesScalar 79 78 + Store 58 80 + Branch 71 + 71: Label + 81: 16(fvec4) Load 58 + Store 57(f) 81 + 84: 6(int) Load 40(e) + 85: 15(float) ConvertSToF 84 + 86: 16(fvec4) Load 18(ret) + 87: 16(fvec4) VectorTimesScalar 86 85 + 88: 16(fvec4) Load 57(f) + 89: 16(fvec4) FAdd 87 88 + Store 83(@entryPointOutput) 89 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.constructexpr.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.constructexpr.frag.out new file mode 100644 index 0000000000..e6ed6e13b8 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.constructexpr.frag.out @@ -0,0 +1,150 @@ +hlsl.constructexpr.frag +Shader version: 450 +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 Sequence +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) +0:16 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 Sequence +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) +0:16 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 31 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 22 "PS_OUTPUT" + MemberName 22(PS_OUTPUT) 0 "color" + Name 24 "ps_output" + Name 31 "color" + Decorate 31(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: 6(int) Constant 3 + 8: 6(int) Constant 4 + 9: 6(int) Constant 5 + 10: 6(int) Constant 6 + 11: 6(int) Constant 7 + 12: 6(int) Constant 8 + 13: TypeFloat 32 + 14: TypeVector 13(float) 2 + 15: 13(float) Constant 1091567616 + 16: 13(float) Constant 1092616192 + 17: 14(fvec2) ConstantComposite 15 16 + 18: 13(float) Constant 1093664768 + 19: 13(float) Constant 1094713344 + 20: 14(fvec2) ConstantComposite 18 19 + 21: TypeVector 13(float) 4 + 22(PS_OUTPUT): TypeStruct 21(fvec4) + 23: TypePointer Function 22(PS_OUTPUT) + 25: 6(int) Constant 0 + 26: 13(float) Constant 1065353216 + 27: 21(fvec4) ConstantComposite 26 26 26 26 + 28: TypePointer Function 21(fvec4) + 30: TypePointer Output 21(fvec4) + 31(color): 30(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 24(ps_output): 23(ptr) Variable Function + 29: 28(ptr) AccessChain 24(ps_output) 25 + Store 29 27 + 32: 28(ptr) AccessChain 24(ps_output) 25 + 33: 21(fvec4) Load 32 + Store 31(color) 33 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out new file mode 100644 index 0000000000..71842afa47 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out @@ -0,0 +1,25 @@ +hlsl.deadFunctionMissingBody.vert +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 13 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 + Name 4 "main" + Name 9 "@entryPointOutput" + Decorate 9(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: 6(float) Constant 0 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 4(main): 2 Function None 3 + 5: Label + Store 9(@entryPointOutput) 11 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.depthGreater.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.depthGreater.frag.out new file mode 100755 index 0000000000..0b53246021 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.depthGreater.frag.out @@ -0,0 +1,59 @@ +hlsl.depthGreater.frag +Shader version: 450 +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 FragDepth) +0:? Sequence +0:3 move second child to first child (temp float) +0:3 'depth' (out float FragDepth) +0:3 Constant: +0:3 0.200000 +0:? Linker Objects +0:? 'depth' (out float FragDepth) + + +Linked fragment stage: + + +Shader version: 450 +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 FragDepth) +0:? Sequence +0:3 move second child to first child (temp float) +0:3 'depth' (out float FragDepth) +0:3 Constant: +0:3 0.200000 +0:? Linker Objects +0:? 'depth' (out float FragDepth) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 10 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 8 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthGreater + Name 4 "PixelShaderFunction" + Name 8 "depth" + Decorate 8(depth) BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) + 8(depth): 7(ptr) Variable Output + 9: 6(float) Constant 1045220557 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Store 8(depth) 9 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.depthLess.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.depthLess.frag.out new file mode 100755 index 0000000000..ec664e1061 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.depthLess.frag.out @@ -0,0 +1,60 @@ +hlsl.depthLess.frag +Shader version: 450 +gl_FragCoord origin is upper left +using depth_less +0:? Sequence +0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp float) +0:? '@entryPointOutput' (out float unknown built-in variable) +0:3 Constant: +0:3 0.200000 +0:3 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (out float unknown built-in variable) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +using depth_less +0:? Sequence +0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp float) +0:? '@entryPointOutput' (out float unknown built-in variable) +0:3 Constant: +0:3 0.200000 +0:3 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (out float unknown built-in variable) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 11 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 8 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthLess + Name 4 "PixelShaderFunction" + Name 8 "@entryPointOutput" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) +8(@entryPointOutput): 7(ptr) Variable Output + 9: 6(float) Constant 1045220557 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Store 8(@entryPointOutput) 9 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.discard.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.discard.frag.out new file mode 100755 index 0000000000..9b4f2c72e0 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.discard.frag.out @@ -0,0 +1,153 @@ +hlsl.discard.frag +Shader version: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:9 Constant: +0:9 2 (const int) +0:10 Test condition and select (temp void) +0:10 Condition +0:10 direct index (temp float) +0:10 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:13 Branch: Kill +0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:9 Constant: +0:9 2 (const int) +0:10 Test condition and select (temp void) +0:10 Condition +0:10 direct index (temp float) +0:10 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:13 Branch: Kill +0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 21 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 10 "foo(f1;" + Name 9 "f" + Name 21 "input" + Name 22 "param" + Name 35 "f" + Decorate 21(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) + 13: 6(float) Constant 1065353216 + 14: TypeBool + 19: TypeVector 6(float) 4 + 20: TypePointer Input 19(fvec4) + 21(input): 20(ptr) Variable Input + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Input 6(float) + 29: 23(int) Constant 0 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 22(param): 7(ptr) Variable Function + 35(f): 7(ptr) Variable Function + 26: 25(ptr) AccessChain 21(input) 24 + 27: 6(float) Load 26 + Store 22(param) 27 + 28: 2 FunctionCall 10(foo(f1;) 22(param) + 30: 25(ptr) AccessChain 21(input) 29 + 31: 6(float) Load 30 + SelectionMerge 33 None + BranchConditional 31 32 33 + 32: Label + Kill + 33: Label + 36: 25(ptr) AccessChain 21(input) 29 + 37: 6(float) Load 36 + Store 35(f) 37 + Kill + FunctionEnd + 10(foo(f1;): 2 Function None 8 + 9(f): 7(ptr) FunctionParameter + 11: Label + 12: 6(float) Load 9(f) + 15: 14(bool) FOrdLessThan 12 13 + SelectionMerge 17 None + BranchConditional 15 16 17 + 16: Label + Kill + 17: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.doLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.doLoop.frag.out new file mode 100755 index 0000000000..c060cdc7e3 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.doLoop.frag.out @@ -0,0 +1,133 @@ +hlsl.doLoop.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Loop with condition not tested first +0:3 Loop Condition +0:3 Constant: +0:3 false (const bool) +0:3 No loop body +0:4 Loop with condition not tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition not tested first +0:5 Loop Condition +0:5 all (temp bool) +0:5 Equal (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 Loop Body +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Loop with condition not tested first +0:3 Loop Condition +0:3 Constant: +0:3 false (const bool) +0:3 No loop body +0:4 Loop with condition not tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition not tested first +0:5 Loop Condition +0:5 all (temp bool) +0:5 Equal (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 Loop Body +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 33 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 23 25 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 23 "@entryPointOutput" + Name 25 "input" + Decorate 23(@entryPointOutput) Location 0 + Decorate 25(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeBool + 11: 10(bool) ConstantFalse + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Output 21(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 24: TypePointer Input 21(fvec4) + 25(input): 24(ptr) Variable Input + 30: TypeVector 10(bool) 4 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Branch 6 + 6: Label + LoopMerge 8 9 None + Branch 7 + 7: Label + Branch 9 + 9: Label + BranchConditional 11 6 8 + 8: Label + Branch 12 + 12: Label + LoopMerge 14 15 None + Branch 13 + 13: Label + Branch 15 + 15: Label + BranchConditional 11 12 14 + 14: Label + Branch 16 + 16: Label + LoopMerge 18 19 None + Branch 17 + 17: Label + 26: 21(fvec4) Load 25(input) + Store 23(@entryPointOutput) 26 + Return + 19: Label + 28: 21(fvec4) Load 25(input) + 29: 21(fvec4) Load 25(input) + 31: 30(bvec4) FOrdEqual 28 29 + 32: 10(bool) All 31 + BranchConditional 32 16 18 + 18: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.entry-in.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.entry-in.frag.out new file mode 100755 index 0000000000..04e3935d1f --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.entry-in.frag.out @@ -0,0 +1,304 @@ +hlsl.entry-in.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (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 FragCoord) +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 Sequence +0:15 move second child to first child (temp 2-component vector of float) +0:15 v: direct index for structure (temp 2-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:15 move second child to first child (temp 4-component vector of float) +0:15 fragCoord: direct index for structure (temp 4-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:15 move second child to first child (temp 2-component vector of int) +0:15 i2: direct index for structure (temp 2-component vector of int) +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 Constant: +0:15 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +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 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 v: direct index for structure (temp 2-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:17 move second child to first child (temp 4-component vector of float) +0:17 fragCoord: direct index for structure (temp 4-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:17 move second child to first child (temp 2-component vector of int) +0:17 i2: direct index for structure (temp 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +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:19 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +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 FragCoord) +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 Sequence +0:15 move second child to first child (temp 2-component vector of float) +0:15 v: direct index for structure (temp 2-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:15 move second child to first child (temp 4-component vector of float) +0:15 fragCoord: direct index for structure (temp 4-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:15 move second child to first child (temp 2-component vector of int) +0:15 i2: direct index for structure (temp 2-component vector of int) +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 Constant: +0:15 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +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 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 v: direct index for structure (temp 2-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:17 move second child to first child (temp 4-component vector of float) +0:17 fragCoord: direct index for structure (temp 4-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:17 move second child to first child (temp 2-component vector of int) +0:17 i2: direct index for structure (temp 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +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:19 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 71 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 32 37 43 63 + ExecutionMode 4 OriginUpperLeft + 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 30 "local" + Name 32 "v" + Name 37 "fragCoord" + Name 43 "i2" + Name 47 "ret1" + Name 48 "param" + Name 51 "ret2" + Name 52 "aggShadow" + Name 59 "param" + Name 63 "@entryPointOutput" + Decorate 32(v) Location 0 + Decorate 37(fragCoord) BuiltIn FragCoord + Decorate 43(i2) Location 1 + Decorate 63(@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: 9(int) Constant 0 + 18: TypeInt 32 0 + 19: 18(int) Constant 1 + 20: TypePointer Function 6(float) + 23: 9(int) Constant 1 + 24: 18(int) Constant 0 + 31: TypePointer Input 7(fvec2) + 32(v): 31(ptr) Variable Input + 34: TypePointer Function 7(fvec2) + 36: TypePointer Input 8(fvec4) + 37(fragCoord): 36(ptr) Variable Input + 39: TypePointer Function 8(fvec4) + 41: 9(int) Constant 2 + 42: TypePointer Input 10(ivec2) + 43(i2): 42(ptr) Variable Input + 45: TypePointer Function 10(ivec2) + 62: TypePointer Output 8(fvec4) +63(@entryPointOutput): 62(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 30(local): 12(ptr) Variable Function + 47(ret1): 20(ptr) Variable Function + 48(param): 12(ptr) Variable Function + 51(ret2): 20(ptr) Variable Function + 52(aggShadow): 12(ptr) Variable Function + 59(param): 12(ptr) Variable Function + 33: 7(fvec2) Load 32(v) + 35: 34(ptr) AccessChain 30(local) 17 + Store 35 33 + 38: 8(fvec4) Load 37(fragCoord) + 40: 39(ptr) AccessChain 30(local) 23 + Store 40 38 + 44: 10(ivec2) Load 43(i2) + 46: 45(ptr) AccessChain 30(local) 41 + Store 46 44 + 49: 11(InParam) Load 30(local) + Store 48(param) 49 + 50: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 48(param) + Store 47(ret1) 50 + 53: 7(fvec2) Load 32(v) + 54: 34(ptr) AccessChain 52(aggShadow) 17 + Store 54 53 + 55: 8(fvec4) Load 37(fragCoord) + 56: 39(ptr) AccessChain 52(aggShadow) 23 + Store 56 55 + 57: 10(ivec2) Load 43(i2) + 58: 45(ptr) AccessChain 52(aggShadow) 41 + Store 58 57 + 60: 11(InParam) Load 52(aggShadow) + Store 59(param) 60 + 61: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 59(param) + Store 51(ret2) 61 + 64: 39(ptr) AccessChain 30(local) 23 + 65: 8(fvec4) Load 64 + 66: 6(float) Load 47(ret1) + 67: 8(fvec4) VectorTimesScalar 65 66 + 68: 6(float) Load 51(ret2) + 69: 8(fvec4) VectorTimesScalar 67 68 + Store 63(@entryPointOutput) 69 + Return + FunctionEnd +15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13 + 14(p): 12(ptr) FunctionParameter + 16: Label + 21: 20(ptr) AccessChain 14(p) 17 19 + 22: 6(float) Load 21 + 25: 20(ptr) AccessChain 14(p) 23 24 + 26: 6(float) Load 25 + 27: 6(float) FAdd 22 26 + ReturnValue 27 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.entry-out.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.entry-out.frag.out new file mode 100755 index 0000000000..86fde14c63 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.entry-out.frag.out @@ -0,0 +1,287 @@ +hlsl.entry-out.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:13 'out1' (layout(location=1 ) out 4-component vector of float) +0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 'out1' (layout(location=1 ) out 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=3 ) out 2-component vector of int) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child (temp 2-component vector of float) +0:18 v: direct index for structure (temp 2-component vector of float) +0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child (temp 2-component vector of int) +0:19 i: direct index for structure (temp 2-component vector of int) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Comma (temp void) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Sequence +0:20 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:20 v: direct index for structure (temp 2-component vector of float) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:20 i: direct index for structure (temp 2-component vector of int) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 1 (const int) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:22 'out1' (layout(location=1 ) out 4-component vector of float) +0:22 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'out1' (layout(location=1 ) out 4-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:? 'i' (layout(location=3 ) out 2-component vector of int) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:? 'i' (layout(location=5 ) out 2-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:13 'out1' (layout(location=1 ) out 4-component vector of float) +0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 'out1' (layout(location=1 ) out 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=3 ) out 2-component vector of int) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child (temp 2-component vector of float) +0:18 v: direct index for structure (temp 2-component vector of float) +0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child (temp 2-component vector of int) +0:19 i: direct index for structure (temp 2-component vector of int) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Comma (temp void) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Sequence +0:20 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:20 v: direct index for structure (temp 2-component vector of float) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:20 i: direct index for structure (temp 2-component vector of int) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 1 (const int) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:22 'out1' (layout(location=1 ) out 4-component vector of float) +0:22 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'out1' (layout(location=1 ) out 4-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:? 'i' (layout(location=3 ) out 2-component vector of int) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:? 'i' (layout(location=5 ) out 2-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 60 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 28 30 33 37 51 54 57 + ExecutionMode 4 OriginUpperLeft + 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 28 "out1" + Name 30 "input" + Name 33 "v" + Name 37 "i" + Name 40 "local" + Name 47 "tempArg" + Name 48 "param" + Name 51 "v" + Name 54 "i" + Name 57 "@entryPointOutput" + Decorate 28(out1) Location 1 + Decorate 30(input) Location 0 + Decorate 33(v) Location 2 + Decorate 37(i) Location 3 + Decorate 51(v) Location 4 + Decorate 54(i) Location 5 + Decorate 57(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 2 + 10(OutParam): TypeStruct 7(fvec2) 9(ivec2) + 11: TypePointer Function 10(OutParam) + 12: TypeFunction 2 11(ptr) + 16: 8(int) Constant 0 + 17: 6(float) Constant 1053609165 + 18: 7(fvec2) ConstantComposite 17 17 + 19: TypePointer Function 7(fvec2) + 21: 8(int) Constant 1 + 22: 8(int) Constant 7 + 23: 9(ivec2) ConstantComposite 22 22 + 24: TypePointer Function 9(ivec2) + 26: TypeVector 6(float) 4 + 27: TypePointer Output 26(fvec4) + 28(out1): 27(ptr) Variable Output + 29: TypePointer Input 26(fvec4) + 30(input): 29(ptr) Variable Input + 32: TypePointer Output 7(fvec2) + 33(v): 32(ptr) Variable Output + 34: 6(float) Constant 1073741824 + 35: 7(fvec2) ConstantComposite 34 34 + 36: TypePointer Output 9(ivec2) + 37(i): 36(ptr) Variable Output + 38: 8(int) Constant 3 + 39: 9(ivec2) ConstantComposite 38 38 + 41: 6(float) Constant 1094713344 + 42: 7(fvec2) ConstantComposite 41 41 + 44: 8(int) Constant 13 + 45: 9(ivec2) ConstantComposite 44 44 + 51(v): 32(ptr) Variable Output + 54(i): 36(ptr) Variable Output +57(@entryPointOutput): 27(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 40(local): 11(ptr) Variable Function + 47(tempArg): 11(ptr) Variable Function + 48(param): 11(ptr) Variable Function + 31: 26(fvec4) Load 30(input) + Store 28(out1) 31 + Store 33(v) 35 + Store 37(i) 39 + 43: 19(ptr) AccessChain 40(local) 16 + Store 43 42 + 46: 24(ptr) AccessChain 40(local) 21 + Store 46 45 + 49: 2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 48(param) + 50:10(OutParam) Load 48(param) + Store 47(tempArg) 50 + 52: 19(ptr) AccessChain 47(tempArg) 16 + 53: 7(fvec2) Load 52 + Store 51(v) 53 + 55: 24(ptr) AccessChain 47(tempArg) 21 + 56: 9(ivec2) Load 55 + Store 54(i) 56 + 58: 26(fvec4) Load 28(out1) + Store 57(@entryPointOutput) 58 + Return + FunctionEnd +14(fun(struct-OutParam-vf2-vi21;): 2 Function None 12 + 13(op): 11(ptr) FunctionParameter + 15: Label + 20: 19(ptr) AccessChain 13(op) 16 + Store 20 18 + 25: 24(ptr) AccessChain 13(op) 21 + Store 25 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.entry.rename.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.entry.rename.frag.out new file mode 100644 index 0000000000..b24cb7a257 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.entry.rename.frag.out @@ -0,0 +1,119 @@ +hlsl.entry.rename.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: not_the_entry_point( (temp void) +0:7 Function Parameters: +0:11 Function Definition: main_in_spv( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 Color: direct index for structure (temp 4-component vector of float) +0:13 'psout' (temp structure{temp 4-component vector of float Color}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:14 Sequence +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:14 Color: direct index for structure (temp 4-component vector of float) +0:14 'psout' (temp structure{temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:14 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: not_the_entry_point( (temp void) +0:7 Function Parameters: +0:11 Function Definition: main_in_spv( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 Color: direct index for structure (temp 4-component vector of float) +0:13 'psout' (temp structure{temp 4-component vector of float Color}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:14 Sequence +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:14 Color: direct index for structure (temp 4-component vector of float) +0:14 'psout' (temp structure{temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:14 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_in_spv" 20 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_in_spv" + Name 6 "not_the_entry_point(" + Name 10 "PS_OUTPUT" + MemberName 10(PS_OUTPUT) 0 "Color" + Name 12 "psout" + Name 20 "Color" + Name 24 "$Global" + MemberName 24($Global) 0 "also_not_the_entry_point" + Name 26 "" + Decorate 20(Color) Location 0 + MemberDecorate 24($Global) 0 Offset 0 + Decorate 24($Global) Block + Decorate 26 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(PS_OUTPUT): TypeStruct 9(fvec4) + 11: TypePointer Function 10(PS_OUTPUT) + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: 8(float) Constant 0 + 16: 9(fvec4) ConstantComposite 15 15 15 15 + 17: TypePointer Function 9(fvec4) + 19: TypePointer Output 9(fvec4) + 20(Color): 19(ptr) Variable Output + 24($Global): TypeStruct 13(int) + 25: TypePointer Uniform 24($Global) + 26: 25(ptr) Variable Uniform + 4(main_in_spv): 2 Function None 3 + 5: Label + 12(psout): 11(ptr) Variable Function + 18: 17(ptr) AccessChain 12(psout) 14 + Store 18 16 + 21: 17(ptr) AccessChain 12(psout) 14 + 22: 9(fvec4) Load 21 + Store 20(Color) 22 + Return + FunctionEnd +6(not_the_entry_point(): 2 Function None 3 + 7: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.flatten.return.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.flatten.return.frag.out new file mode 100644 index 0000000000..39fbf0ef87 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.flatten.return.frag.out @@ -0,0 +1,187 @@ +hlsl.flatten.return.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:17 other_struct_member1: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:17 other_struct_member2: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 2 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member3' (layout(location=3 ) out float) +0:17 other_struct_member3: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:? 'other_struct_member3' (layout(location=3 ) out float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:17 other_struct_member1: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:17 other_struct_member2: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 2 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member3' (layout(location=3 ) out float) +0:17 other_struct_member3: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:? 'other_struct_member3' (layout(location=3 ) out float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 24 31 36 40 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + MemberName 8(PS_OUTPUT) 1 "other_struct_member1" + MemberName 8(PS_OUTPUT) 2 "other_struct_member2" + MemberName 8(PS_OUTPUT) 3 "other_struct_member3" + Name 10 "Func1(" + Name 21 "flattenTemp" + Name 24 "color" + Name 31 "other_struct_member1" + Name 36 "other_struct_member2" + Name 40 "other_struct_member3" + Decorate 24(color) Location 0 + Decorate 31(other_struct_member1) Location 1 + Decorate 36(other_struct_member2) Location 2 + Decorate 40(other_struct_member3) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 6(float) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: 6(float) Constant 1065353216 + 13: 7(fvec4) ConstantComposite 12 12 12 12 + 14: 6(float) Constant 1073741824 + 15: 6(float) Constant 1077936128 + 16: 6(float) Constant 1082130432 + 17:8(PS_OUTPUT) ConstantComposite 13 14 15 16 + 20: TypePointer Function 8(PS_OUTPUT) + 23: TypePointer Output 7(fvec4) + 24(color): 23(ptr) Variable Output + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 27: TypePointer Function 7(fvec4) + 30: TypePointer Output 6(float) +31(other_struct_member1): 30(ptr) Variable Output + 32: 25(int) Constant 1 + 33: TypePointer Function 6(float) +36(other_struct_member2): 30(ptr) Variable Output + 37: 25(int) Constant 2 +40(other_struct_member3): 30(ptr) Variable Output + 41: 25(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 21(flattenTemp): 20(ptr) Variable Function + 22:8(PS_OUTPUT) FunctionCall 10(Func1() + Store 21(flattenTemp) 22 + 28: 27(ptr) AccessChain 21(flattenTemp) 26 + 29: 7(fvec4) Load 28 + Store 24(color) 29 + 34: 33(ptr) AccessChain 21(flattenTemp) 32 + 35: 6(float) Load 34 + Store 31(other_struct_member1) 35 + 38: 33(ptr) AccessChain 21(flattenTemp) 37 + 39: 6(float) Load 38 + Store 36(other_struct_member2) 39 + 42: 33(ptr) AccessChain 21(flattenTemp) 41 + 43: 6(float) Load 42 + Store 40(other_struct_member3) 43 + Return + FunctionEnd + 10(Func1():8(PS_OUTPUT) Function None 9 + 11: Label + ReturnValue 17 + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/hlsl.float1.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.float1.frag.out similarity index 59% rename from deps/glslang-new/Test/baseResults/hlsl.float1.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.float1.frag.out index 7862123138..641febd7bb 100755 --- a/deps/glslang-new/Test/baseResults/hlsl.float1.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.float1.frag.out @@ -1,71 +1,71 @@ hlsl.float1.frag -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence -0:1 move second child to first child ( temp 1-component vector of float) -0:1 'f1' ( global 1-component vector of float) +0:1 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 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 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: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: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) +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 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence -0:1 move second child to first child ( temp 1-component vector of float) -0:1 'f1' ( global 1-component vector of float) +0:1 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 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 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: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: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) +0:? 'f1' (global 1-component vector of float) +0:? 'scalar' (global float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 27 Capability Shader @@ -73,7 +73,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" diff --git a/deps/glslang-new/Test/baseResults/hlsl.float4.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.float4.frag.out similarity index 58% rename from deps/glslang-new/Test/baseResults/hlsl.float4.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.float4.frag.out index cd741ed0c2..27c9a5c6cf 100755 --- a/deps/glslang-new/Test/baseResults/hlsl.float4.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.float4.frag.out @@ -2,47 +2,47 @@ hlsl.float4.frag WARNING: 0:5: 'register' : ignoring shader_profile WARNING: 0:6: 'register' : ignoring shader_profile -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:9 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) +0: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 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 (layout(offset=0 ) uniform 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) 0:10 Constant: 0:10 0 (const uint) 0:? Linker Objects -0:? '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:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:9 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: -0:9 'input' ( in 4-component vector of float) +0: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 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 (layout(offset=0 ) uniform 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) 0:10 Constant: 0:10 0 (const uint) 0:? Linker Objects -0:? '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:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 26 Capability Shader @@ -50,7 +50,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" @@ -63,6 +62,7 @@ gl_FragCoord origin is upper left Name 17 "" MemberDecorate 15($Global) 0 Offset 0 MemberDecorate 15($Global) 1 Offset 16 + MemberDecorate 15($Global) 1 BuiltIn FrontFacing MemberDecorate 15($Global) 2 Offset 20 MemberDecorate 15($Global) 3 Offset 32 MemberDecorate 15($Global) 4 Offset 48 diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.forLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.forLoop.frag.out new file mode 100755 index 0000000000..85b8fb272b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.forLoop.frag.out @@ -0,0 +1,433 @@ +hlsl.forLoop.frag +Shader version: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) 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 +0:5 Loop Condition +0:5 any (temp bool) +0:5 NotEqual (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 No loop body +0:? Sequence +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 any (temp bool) +0:6 NotEqual (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 Loop Body +0:? Sequence +0:6 Sequence +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 Negate value (temp 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 Branch: Return +0:7 Sequence +0:7 Pre-Decrement (temp 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 any (temp bool) +0:7 NotEqual (temp 4-component vector of bool) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Loop Body +0:? Sequence +0:7 Sequence +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 Negate value (temp 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Branch: Return +0:7 Loop Terminal Expression +0:7 add second child into first child (temp 4-component vector of float) +0:7 'input' (layout(location=0 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 true case +0:9 Branch: Continue +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'ii' (temp int) +0:11 Constant: +0:11 -1 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 3 (const int) +0:11 Loop Body +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Compare Equal (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 2 (const int) +0:11 true case +0:11 Branch: Continue +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'ii' (temp int) +0:12 Pre-Decrement (temp float) +0:12 'ii' (temp float) +0:? Linker Objects +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: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) 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 +0:5 Loop Condition +0:5 any (temp bool) +0:5 NotEqual (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 No loop body +0:? Sequence +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 any (temp bool) +0:6 NotEqual (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 Loop Body +0:? Sequence +0:6 Sequence +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 Negate value (temp 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 Branch: Return +0:7 Sequence +0:7 Pre-Decrement (temp 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 any (temp bool) +0:7 NotEqual (temp 4-component vector of bool) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Loop Body +0:? Sequence +0:7 Sequence +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 Negate value (temp 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Branch: Return +0:7 Loop Terminal Expression +0:7 add second child into first child (temp 4-component vector of float) +0:7 'input' (layout(location=0 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 true case +0:9 Branch: Continue +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'ii' (temp int) +0:11 Constant: +0:11 -1 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 3 (const int) +0:11 Loop Body +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Compare Equal (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 2 (const int) +0:11 true case +0:11 Branch: Continue +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'ii' (temp int) +0:12 Pre-Decrement (temp float) +0:12 'ii' (temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 114 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 13 43 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 13 "input" + Name 43 "@entryPointOutput" + Name 91 "ii" + Name 111 "ii" + Decorate 13(input) Location 0 + Decorate 43(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Input 11(fvec4) + 13(input): 12(ptr) Variable Input + 15: 10(float) Constant 1065353216 + 29: TypeBool + 30: TypeVector 29(bool) 4 + 42: TypePointer Output 11(fvec4) +43(@entryPointOutput): 42(ptr) Variable Output + 62: 10(float) Constant 1073741824 + 70: TypeInt 32 0 + 71: 70(int) Constant 0 + 72: TypePointer Input 10(float) + 89: TypeInt 32 1 + 90: TypePointer Function 89(int) + 92: 89(int) Constant 4294967295 + 99: 89(int) Constant 3 + 102: 89(int) Constant 2 + 108: 89(int) Constant 1 + 110: TypePointer Function 10(float) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 91(ii): 90(ptr) Variable Function + 111(ii): 110(ptr) Variable Function + Branch 6 + 6: Label + LoopMerge 8 9 None + Branch 7 + 7: Label + Branch 9 + 9: Label + Branch 6 + 8: Label + 14: 11(fvec4) Load 13(input) + 16: 11(fvec4) CompositeConstruct 15 15 15 15 + 17: 11(fvec4) FAdd 14 16 + Store 13(input) 17 + Branch 18 + 18: Label + LoopMerge 20 21 None + Branch 19 + 19: Label + Branch 21 + 21: Label + Branch 18 + 20: Label + Branch 22 + 22: Label + LoopMerge 24 25 None + Branch 26 + 26: Label + 27: 11(fvec4) Load 13(input) + 28: 11(fvec4) Load 13(input) + 31: 30(bvec4) FOrdNotEqual 27 28 + 32: 29(bool) Any 31 + BranchConditional 32 23 24 + 23: Label + Branch 25 + 25: Label + Branch 22 + 24: Label + Branch 33 + 33: Label + LoopMerge 35 36 None + Branch 37 + 37: Label + 38: 11(fvec4) Load 13(input) + 39: 11(fvec4) Load 13(input) + 40: 30(bvec4) FOrdNotEqual 38 39 + 41: 29(bool) Any 40 + BranchConditional 41 34 35 + 34: Label + 44: 11(fvec4) Load 13(input) + 45: 11(fvec4) FNegate 44 + Store 43(@entryPointOutput) 45 + Return + 36: Label + Branch 33 + 35: Label + 47: 11(fvec4) Load 13(input) + 48: 11(fvec4) CompositeConstruct 15 15 15 15 + 49: 11(fvec4) FSub 47 48 + Store 13(input) 49 + Branch 50 + 50: Label + LoopMerge 52 53 None + Branch 54 + 54: Label + 55: 11(fvec4) Load 13(input) + 56: 11(fvec4) Load 13(input) + 57: 30(bvec4) FOrdNotEqual 55 56 + 58: 29(bool) Any 57 + BranchConditional 58 51 52 + 51: Label + 59: 11(fvec4) Load 13(input) + 60: 11(fvec4) FNegate 59 + Store 43(@entryPointOutput) 60 + Return + 53: Label + 63: 11(fvec4) Load 13(input) + 64: 11(fvec4) CompositeConstruct 62 62 62 62 + 65: 11(fvec4) FAdd 63 64 + Store 13(input) 65 + Branch 50 + 52: Label + Branch 66 + 66: Label + LoopMerge 68 69 None + Branch 67 + 67: Label + 73: 72(ptr) AccessChain 13(input) 71 + 74: 10(float) Load 73 + 75: 29(bool) FOrdGreaterThan 74 62 + SelectionMerge 77 None + BranchConditional 75 76 77 + 76: Label + Branch 68 + 77: Label + Branch 69 + 69: Label + Branch 66 + 68: Label + Branch 79 + 79: Label + LoopMerge 81 82 None + Branch 80 + 80: Label + 83: 72(ptr) AccessChain 13(input) 71 + 84: 10(float) Load 83 + 85: 29(bool) FOrdGreaterThan 84 62 + SelectionMerge 87 None + BranchConditional 85 86 87 + 86: Label + Branch 82 + 87: Label + Branch 82 + 82: Label + Branch 79 + 81: Label + Store 91(ii) 92 + Branch 93 + 93: Label + LoopMerge 95 96 None + Branch 97 + 97: Label + 98: 89(int) Load 91(ii) + 100: 29(bool) SLessThan 98 99 + BranchConditional 100 94 95 + 94: Label + 101: 89(int) Load 91(ii) + 103: 29(bool) IEqual 101 102 + SelectionMerge 105 None + BranchConditional 103 104 105 + 104: Label + Branch 96 + 105: Label + Branch 96 + 96: Label + 107: 89(int) Load 91(ii) + 109: 89(int) IAdd 107 108 + Store 91(ii) 109 + Branch 93 + 95: Label + 112: 10(float) Load 111(ii) + 113: 10(float) FSub 112 15 + Store 111(ii) 113 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/hlsl.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.frag.out diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.array.dx10.frag.out new file mode 100644 index 0000000000..ee550d165c --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -0,0 +1,426 @@ +hlsl.gather.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 117 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 99 103 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4a" + Name 16 "g_sSamp" + Name 30 "txval21" + Name 33 "g_tTex2di4a" + Name 45 "txval22" + Name 48 "g_tTex2du4a" + Name 57 "txval40" + Name 60 "g_tTexcdf4a" + Name 67 "txval41" + Name 70 "g_tTexcdi4a" + Name 77 "txval42" + Name 80 "g_tTexcdu4a" + Name 90 "PS_OUTPUT" + MemberName 90(PS_OUTPUT) 0 "Color" + MemberName 90(PS_OUTPUT) 1 "Depth" + Name 92 "psout" + Name 99 "Color" + Name 103 "Depth" + Name 109 "g_tTex1df4a" + Name 110 "g_tTex1df4" + Name 113 "g_tTex1di4a" + Name 116 "g_tTex1du4a" + Decorate 12(g_tTex2df4a) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 33(g_tTex2di4a) DescriptorSet 0 + Decorate 48(g_tTex2du4a) DescriptorSet 0 + Decorate 60(g_tTexcdf4a) DescriptorSet 0 + Decorate 70(g_tTexcdi4a) DescriptorSet 0 + Decorate 80(g_tTexcdu4a) DescriptorSet 0 + Decorate 99(Color) Location 0 + Decorate 103(Depth) BuiltIn FragDepth + 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_tTex1di4a) DescriptorSet 0 + Decorate 116(g_tTex1du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4a): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 3 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 6(float) Constant 1050253722 + 24: 20(fvec3) ConstantComposite 21 22 23 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 2D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex2di4a): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1053609165 + 39: 6(float) Constant 1056964608 + 40: 20(fvec3) ConstantComposite 23 38 39 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 2D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex2du4a): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1058642330 + 54: 6(float) Constant 1060320051 + 55: 20(fvec3) ConstantComposite 39 53 54 + 58: TypeImage 6(float) Cube array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTexcdf4a): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: 7(fvec4) ConstantComposite 21 22 23 38 + 68: TypeImage 25(int) Cube array sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTexcdi4a): 69(ptr) Variable UniformConstant + 73: TypeSampledImage 68 + 75: 7(fvec4) ConstantComposite 38 39 53 54 + 78: TypeImage 42(int) Cube array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTexcdu4a): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1061997773 + 86: 6(float) Constant 1063675494 + 87: 6(float) Constant 1065353216 + 88: 7(fvec4) ConstantComposite 54 85 86 87 + 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 91: TypePointer Function 90(PS_OUTPUT) + 93: 7(fvec4) ConstantComposite 87 87 87 87 + 95: 25(int) Constant 1 + 96: TypePointer Function 6(float) + 98: TypePointer Output 7(fvec4) + 99(Color): 98(ptr) Variable Output + 102: TypePointer Output 6(float) + 103(Depth): 102(ptr) Variable Output + 107: TypeImage 6(float) 1D array sampled format:Unknown + 108: TypePointer UniformConstant 107 +109(g_tTex1df4a): 108(ptr) Variable UniformConstant + 110(g_tTex1df4): 108(ptr) Variable UniformConstant + 111: TypeImage 25(int) 1D array sampled format:Unknown + 112: TypePointer UniformConstant 111 +113(g_tTex1di4a): 112(ptr) Variable UniformConstant + 114: TypeImage 42(int) 1D array sampled format:Unknown + 115: TypePointer UniformConstant 114 +116(g_tTex1du4a): 115(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 30(txval21): 29(ptr) Variable Function + 45(txval22): 44(ptr) Variable Function + 57(txval40): 8(ptr) Variable Function + 67(txval41): 29(ptr) Variable Function + 77(txval42): 44(ptr) Variable Function + 92(psout): 91(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4a) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageGather 19 24 26 + Store 9(txval20) 27 + 34: 31 Load 33(g_tTex2di4a) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageGather 37 40 26 + Store 30(txval21) 41 + 49: 46 Load 48(g_tTex2du4a) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageGather 52 55 26 + Store 45(txval22) 56 + 61: 58 Load 60(g_tTexcdf4a) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 66: 7(fvec4) ImageGather 64 65 26 + Store 57(txval40) 66 + 71: 68 Load 70(g_tTexcdi4a) + 72: 14 Load 16(g_sSamp) + 74: 73 SampledImage 71 72 + 76: 28(ivec4) ImageGather 74 75 26 + Store 67(txval41) 76 + 81: 78 Load 80(g_tTexcdu4a) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 89: 43(ivec4) ImageGather 84 88 26 + Store 77(txval42) 89 + 94: 8(ptr) AccessChain 92(psout) 26 + Store 94 93 + 97: 96(ptr) AccessChain 92(psout) 95 + Store 97 87 + 100: 8(ptr) AccessChain 92(psout) 26 + 101: 7(fvec4) Load 100 + Store 99(Color) 101 + 104: 96(ptr) AccessChain 92(psout) 95 + 105: 6(float) Load 104 + Store 103(Depth) 105 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.basic.dx10.frag.out new file mode 100644 index 0000000000..86e106ca05 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -0,0 +1,440 @@ +hlsl.gather.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:47 Depth: direct index for structure (temp float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:47 Constant: +0:47 1 (const int) +0:47 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:47 Depth: direct index for structure (temp float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:47 Constant: +0:47 1 (const int) +0:47 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 128 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 100 104 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 29 "txval21" + Name 32 "g_tTex2di4" + Name 44 "txval22" + Name 47 "g_tTex2du4" + Name 56 "txval40" + Name 59 "g_tTexcdf4" + Name 67 "txval41" + Name 70 "g_tTexcdi4" + Name 77 "txval42" + Name 80 "g_tTexcdu4" + Name 90 "PS_OUTPUT" + MemberName 90(PS_OUTPUT) 0 "Color" + MemberName 90(PS_OUTPUT) 1 "Depth" + Name 92 "psout" + Name 100 "Color" + Name 104 "Depth" + Name 108 "g_sSamp2d" + Name 111 "g_tTex1df4a" + Name 112 "g_tTex1df4" + Name 115 "g_tTex1di4" + Name 118 "g_tTex1du4" + Name 121 "g_tTex3df4" + Name 124 "g_tTex3di4" + Name 127 "g_tTex3du4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 32(g_tTex2di4) DescriptorSet 0 + Decorate 47(g_tTex2du4) DescriptorSet 0 + Decorate 59(g_tTexcdf4) DescriptorSet 0 + Decorate 70(g_tTexcdi4) DescriptorSet 0 + Decorate 80(g_tTexcdu4) DescriptorSet 0 + Decorate 100(Color) Location 0 + Decorate 104(Depth) BuiltIn FragDepth + Decorate 108(g_sSamp2d) DescriptorSet 0 + Decorate 111(g_tTex1df4a) DescriptorSet 0 + Decorate 111(g_tTex1df4a) Binding 1 + Decorate 112(g_tTex1df4) DescriptorSet 0 + Decorate 112(g_tTex1df4) Binding 0 + Decorate 115(g_tTex1di4) DescriptorSet 0 + Decorate 118(g_tTex1du4) DescriptorSet 0 + Decorate 121(g_tTex3df4) DescriptorSet 0 + Decorate 124(g_tTex3di4) DescriptorSet 0 + Decorate 127(g_tTex3du4) DescriptorSet 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: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 2D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex2di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 6(float) Constant 1053609165 + 39: 20(fvec2) ConstantComposite 37 38 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 2D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1056964608 + 53: 6(float) Constant 1058642330 + 54: 20(fvec2) ConstantComposite 52 53 + 57: TypeImage 6(float) Cube sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTexcdf4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 64: TypeVector 6(float) 3 + 65: 64(fvec3) ConstantComposite 21 22 37 + 68: TypeImage 24(int) Cube sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTexcdi4): 69(ptr) Variable UniformConstant + 73: TypeSampledImage 68 + 75: 64(fvec3) ConstantComposite 38 52 53 + 78: TypeImage 41(int) Cube sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTexcdu4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1060320051 + 86: 6(float) Constant 1061997773 + 87: 6(float) Constant 1063675494 + 88: 64(fvec3) ConstantComposite 85 86 87 + 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 91: TypePointer Function 90(PS_OUTPUT) + 93: 6(float) Constant 1065353216 + 94: 7(fvec4) ConstantComposite 93 93 93 93 + 96: 24(int) Constant 1 + 97: TypePointer Function 6(float) + 99: TypePointer Output 7(fvec4) + 100(Color): 99(ptr) Variable Output + 103: TypePointer Output 6(float) + 104(Depth): 103(ptr) Variable Output + 108(g_sSamp2d): 15(ptr) Variable UniformConstant + 109: TypeImage 6(float) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTex1df4a): 110(ptr) Variable UniformConstant + 112(g_tTex1df4): 110(ptr) Variable UniformConstant + 113: TypeImage 24(int) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1di4): 114(ptr) Variable UniformConstant + 116: TypeImage 41(int) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex1du4): 117(ptr) Variable UniformConstant + 119: TypeImage 6(float) 3D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex3df4): 120(ptr) Variable UniformConstant + 122: TypeImage 24(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3di4): 123(ptr) Variable UniformConstant + 125: TypeImage 41(int) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3du4): 126(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 29(txval21): 28(ptr) Variable Function + 44(txval22): 43(ptr) Variable Function + 56(txval40): 8(ptr) Variable Function + 67(txval41): 28(ptr) Variable Function + 77(txval42): 43(ptr) Variable Function + 92(psout): 91(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageGather 19 23 25 + Store 9(txval20) 26 + 33: 30 Load 32(g_tTex2di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 40: 27(ivec4) ImageGather 36 39 25 + Store 29(txval21) 40 + 48: 45 Load 47(g_tTex2du4) + 49: 14 Load 16(g_sSamp) + 51: 50 SampledImage 48 49 + 55: 42(ivec4) ImageGather 51 54 25 + Store 44(txval22) 55 + 60: 57 Load 59(g_tTexcdf4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 66: 7(fvec4) ImageGather 63 65 25 + Store 56(txval40) 66 + 71: 68 Load 70(g_tTexcdi4) + 72: 14 Load 16(g_sSamp) + 74: 73 SampledImage 71 72 + 76: 27(ivec4) ImageGather 74 75 25 + Store 67(txval41) 76 + 81: 78 Load 80(g_tTexcdu4) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 89: 42(ivec4) ImageGather 84 88 25 + Store 77(txval42) 89 + 95: 8(ptr) AccessChain 92(psout) 25 + Store 95 94 + 98: 97(ptr) AccessChain 92(psout) 96 + Store 98 93 + 101: 8(ptr) AccessChain 92(psout) 25 + 102: 7(fvec4) Load 101 + Store 100(Color) 102 + 105: 97(ptr) AccessChain 92(psout) 96 + 106: 6(float) Load 105 + Store 104(Depth) 106 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.basic.dx10.vert.out new file mode 100644 index 0000000000..a8936753d3 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -0,0 +1,397 @@ +hlsl.gather.basic.dx10.vert +Shader version: 450 +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 Sequence +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:45 Pos: direct index for structure (temp 4-component vector of float) +0:45 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:45 Constant: +0:45 0 (const int) +0:45 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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) + + +Linked vertex stage: + + +Shader version: 450 +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 Sequence +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:45 Pos: direct index for structure (temp 4-component vector of float) +0:45 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:45 Constant: +0:45 0 (const int) +0:45 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 121 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 97 + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 29 "txval21" + Name 32 "g_tTex2di4" + Name 44 "txval22" + Name 47 "g_tTex2du4" + Name 56 "txval40" + Name 59 "g_tTexcdf4" + Name 67 "txval41" + Name 70 "g_tTexcdi4" + Name 77 "txval42" + Name 80 "g_tTexcdu4" + Name 90 "VS_OUTPUT" + MemberName 90(VS_OUTPUT) 0 "Pos" + Name 92 "vsout" + Name 97 "Pos" + Name 101 "g_sSamp2d" + Name 104 "g_tTex1df4a" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4" + Name 111 "g_tTex1du4" + Name 114 "g_tTex3df4" + Name 117 "g_tTex3di4" + Name 120 "g_tTex3du4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 32(g_tTex2di4) DescriptorSet 0 + Decorate 47(g_tTex2du4) DescriptorSet 0 + Decorate 59(g_tTexcdf4) DescriptorSet 0 + Decorate 70(g_tTexcdi4) DescriptorSet 0 + Decorate 80(g_tTexcdu4) DescriptorSet 0 + Decorate 97(Pos) BuiltIn Position + Decorate 101(g_sSamp2d) DescriptorSet 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 + Decorate 108(g_tTex1di4) DescriptorSet 0 + Decorate 111(g_tTex1du4) DescriptorSet 0 + Decorate 114(g_tTex3df4) DescriptorSet 0 + Decorate 117(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 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: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 2D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex2di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 6(float) Constant 1053609165 + 39: 20(fvec2) ConstantComposite 37 38 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 2D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1056964608 + 53: 6(float) Constant 1058642330 + 54: 20(fvec2) ConstantComposite 52 53 + 57: TypeImage 6(float) Cube sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTexcdf4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 64: TypeVector 6(float) 3 + 65: 64(fvec3) ConstantComposite 21 22 37 + 68: TypeImage 24(int) Cube sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTexcdi4): 69(ptr) Variable UniformConstant + 73: TypeSampledImage 68 + 75: 64(fvec3) ConstantComposite 38 52 53 + 78: TypeImage 41(int) Cube sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTexcdu4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1060320051 + 86: 6(float) Constant 1061997773 + 87: 6(float) Constant 1063675494 + 88: 64(fvec3) ConstantComposite 85 86 87 + 90(VS_OUTPUT): TypeStruct 7(fvec4) + 91: TypePointer Function 90(VS_OUTPUT) + 93: 6(float) Constant 0 + 94: 7(fvec4) ConstantComposite 93 93 93 93 + 96: TypePointer Output 7(fvec4) + 97(Pos): 96(ptr) Variable Output + 101(g_sSamp2d): 15(ptr) Variable UniformConstant + 102: TypeImage 6(float) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1df4a): 103(ptr) Variable UniformConstant + 105(g_tTex1df4): 103(ptr) Variable UniformConstant + 106: TypeImage 24(int) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1di4): 107(ptr) Variable UniformConstant + 109: TypeImage 41(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1du4): 110(ptr) Variable UniformConstant + 112: TypeImage 6(float) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3df4): 113(ptr) Variable UniformConstant + 115: TypeImage 24(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3di4): 116(ptr) Variable UniformConstant + 118: TypeImage 41(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 29(txval21): 28(ptr) Variable Function + 44(txval22): 43(ptr) Variable Function + 56(txval40): 8(ptr) Variable Function + 67(txval41): 28(ptr) Variable Function + 77(txval42): 43(ptr) Variable Function + 92(vsout): 91(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageGather 19 23 25 + Store 9(txval20) 26 + 33: 30 Load 32(g_tTex2di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 40: 27(ivec4) ImageGather 36 39 25 + Store 29(txval21) 40 + 48: 45 Load 47(g_tTex2du4) + 49: 14 Load 16(g_sSamp) + 51: 50 SampledImage 48 49 + 55: 42(ivec4) ImageGather 51 54 25 + Store 44(txval22) 55 + 60: 57 Load 59(g_tTexcdf4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 66: 7(fvec4) ImageGather 63 65 25 + Store 56(txval40) 66 + 71: 68 Load 70(g_tTexcdi4) + 72: 14 Load 16(g_sSamp) + 74: 73 SampledImage 71 72 + 76: 27(ivec4) ImageGather 74 75 25 + Store 67(txval41) 76 + 81: 78 Load 80(g_tTexcdu4) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 89: 42(ivec4) ImageGather 84 88 25 + Store 77(txval42) 89 + 95: 8(ptr) AccessChain 92(vsout) 25 + Store 95 94 + 98: 8(ptr) AccessChain 92(vsout) 25 + 99: 7(fvec4) Load 98 + Store 97(Pos) 99 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.offset.dx10.frag.out new file mode 100644 index 0000000000..5b48bf323b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -0,0 +1,361 @@ +hlsl.gather.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 1 (const int) +0:43 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:43 Constant: +0:43 1 (const int) +0:43 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 107 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 71 75 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 32 "txval21" + Name 35 "g_tTex2di4" + Name 48 "txval22" + Name 51 "g_tTex2du4" + Name 62 "PS_OUTPUT" + MemberName 62(PS_OUTPUT) 0 "Color" + MemberName 62(PS_OUTPUT) 1 "Depth" + Name 64 "psout" + Name 71 "Color" + Name 75 "Depth" + Name 81 "g_tTex1df4a" + Name 82 "g_tTex1df4" + Name 85 "g_tTex1di4" + Name 88 "g_tTex1du4" + Name 91 "g_tTex3df4" + Name 94 "g_tTex3di4" + Name 97 "g_tTex3du4" + Name 100 "g_tTexcdf4" + Name 103 "g_tTexcdi4" + Name 106 "g_tTexcdu4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 35(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + Decorate 71(Color) Location 0 + Decorate 75(Depth) BuiltIn FragDepth + Decorate 81(g_tTex1df4a) DescriptorSet 0 + Decorate 81(g_tTex1df4a) Binding 1 + Decorate 82(g_tTex1df4) DescriptorSet 0 + Decorate 82(g_tTex1df4) Binding 0 + Decorate 85(g_tTex1di4) DescriptorSet 0 + Decorate 88(g_tTex1du4) DescriptorSet 0 + Decorate 91(g_tTex3df4) DescriptorSet 0 + Decorate 94(g_tTex3di4) DescriptorSet 0 + Decorate 97(g_tTex3du4) DescriptorSet 0 + Decorate 100(g_tTexcdf4) DescriptorSet 0 + Decorate 103(g_tTexcdi4) DescriptorSet 0 + Decorate 106(g_tTexcdu4) DescriptorSet 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: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 2 + 26: 24(int) Constant 1 + 27: 24(int) Constant 0 + 28: 25(ivec2) ConstantComposite 26 27 + 30: TypeVector 24(int) 4 + 31: TypePointer Function 30(ivec4) + 33: TypeImage 24(int) 2D sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex2di4): 34(ptr) Variable UniformConstant + 38: TypeSampledImage 33 + 40: 6(float) Constant 1050253722 + 41: 6(float) Constant 1053609165 + 42: 20(fvec2) ConstantComposite 40 41 + 43: 25(ivec2) ConstantComposite 26 26 + 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: 20(fvec2) ConstantComposite 56 57 + 59: 24(int) Constant 4294967295 + 60: 25(ivec2) ConstantComposite 26 59 + 62(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 63: TypePointer Function 62(PS_OUTPUT) + 65: 6(float) Constant 1065353216 + 66: 7(fvec4) ConstantComposite 65 65 65 65 + 68: TypePointer Function 6(float) + 70: TypePointer Output 7(fvec4) + 71(Color): 70(ptr) Variable Output + 74: TypePointer Output 6(float) + 75(Depth): 74(ptr) Variable Output + 79: TypeImage 6(float) 1D sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex1df4a): 80(ptr) Variable UniformConstant + 82(g_tTex1df4): 80(ptr) Variable UniformConstant + 83: TypeImage 24(int) 1D sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex1di4): 84(ptr) Variable UniformConstant + 86: TypeImage 45(int) 1D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex1du4): 87(ptr) Variable UniformConstant + 89: TypeImage 6(float) 3D sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTex3df4): 90(ptr) Variable UniformConstant + 92: TypeImage 24(int) 3D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTex3di4): 93(ptr) Variable UniformConstant + 95: TypeImage 45(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3du4): 96(ptr) Variable UniformConstant + 98: TypeImage 6(float) Cube sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdf4): 99(ptr) Variable UniformConstant + 101: TypeImage 24(int) Cube sampled format:Unknown + 102: TypePointer UniformConstant 101 + 103(g_tTexcdi4): 102(ptr) Variable UniformConstant + 104: TypeImage 45(int) Cube sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTexcdu4): 105(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 32(txval21): 31(ptr) Variable Function + 48(txval22): 47(ptr) Variable Function + 64(psout): 63(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 29: 7(fvec4) ImageGather 19 23 27 ConstOffset 28 + Store 9(txval20) 29 + 36: 33 Load 35(g_tTex2di4) + 37: 14 Load 16(g_sSamp) + 39: 38 SampledImage 36 37 + 44: 30(ivec4) ImageGather 39 42 27 ConstOffset 43 + Store 32(txval21) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 61: 46(ivec4) ImageGather 55 58 27 ConstOffset 60 + Store 48(txval22) 61 + 67: 8(ptr) AccessChain 64(psout) 27 + Store 67 66 + 69: 68(ptr) AccessChain 64(psout) 26 + Store 69 65 + 72: 8(ptr) AccessChain 64(psout) 27 + 73: 7(fvec4) Load 72 + Store 71(Color) 73 + 76: 68(ptr) AccessChain 64(psout) 26 + 77: 6(float) Load 76 + Store 75(Depth) 77 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..a7589cd9b0 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -0,0 +1,326 @@ +hlsl.gather.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:35 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:35 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 90 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 72 76 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 33 "txval21" + Name 36 "g_tTex2di4" + Name 48 "txval22" + Name 51 "g_tTex2du4" + Name 63 "PS_OUTPUT" + MemberName 63(PS_OUTPUT) 0 "Color" + MemberName 63(PS_OUTPUT) 1 "Depth" + Name 65 "psout" + Name 72 "Color" + Name 76 "Depth" + Name 82 "g_tTex1df4a" + Name 83 "g_tTex1df4" + Name 86 "g_tTex1di4" + Name 89 "g_tTex1du4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 36(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + Decorate 72(Color) Location 0 + Decorate 76(Depth) BuiltIn FragDepth + Decorate 82(g_tTex1df4a) DescriptorSet 0 + Decorate 82(g_tTex1df4a) Binding 1 + Decorate 83(g_tTex1df4) DescriptorSet 0 + Decorate 83(g_tTex1df4) Binding 0 + Decorate 86(g_tTex1di4) DescriptorSet 0 + Decorate 89(g_tTex1du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 3 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 6(float) Constant 1050253722 + 24: 20(fvec3) ConstantComposite 21 22 23 + 25: TypeInt 32 1 + 26: TypeVector 25(int) 2 + 27: 25(int) Constant 1 + 28: 25(int) Constant 0 + 29: 26(ivec2) ConstantComposite 27 28 + 31: TypeVector 25(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 25(int) 2D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 41: 6(float) Constant 1053609165 + 42: 20(fvec3) ConstantComposite 23 41 41 + 43: 26(ivec2) ConstantComposite 27 27 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 6(float) Constant 1056964608 + 57: 6(float) Constant 1058642330 + 58: 6(float) Constant 1060320051 + 59: 20(fvec3) ConstantComposite 56 57 58 + 60: 25(int) Constant 4294967295 + 61: 26(ivec2) ConstantComposite 27 60 + 63(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 64: TypePointer Function 63(PS_OUTPUT) + 66: 6(float) Constant 1065353216 + 67: 7(fvec4) ConstantComposite 66 66 66 66 + 69: TypePointer Function 6(float) + 71: TypePointer Output 7(fvec4) + 72(Color): 71(ptr) Variable Output + 75: TypePointer Output 6(float) + 76(Depth): 75(ptr) Variable Output + 80: TypeImage 6(float) 1D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex1df4a): 81(ptr) Variable UniformConstant + 83(g_tTex1df4): 81(ptr) Variable UniformConstant + 84: TypeImage 25(int) 1D array sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex1di4): 85(ptr) Variable UniformConstant + 87: TypeImage 45(int) 1D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex1du4): 88(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 33(txval21): 32(ptr) Variable Function + 48(txval22): 47(ptr) Variable Function + 65(psout): 64(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 30: 7(fvec4) ImageGather 19 24 28 ConstOffset 29 + Store 9(txval20) 30 + 37: 34 Load 36(g_tTex2di4) + 38: 14 Load 16(g_sSamp) + 40: 39 SampledImage 37 38 + 44: 31(ivec4) ImageGather 40 42 28 ConstOffset 43 + Store 33(txval21) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 62: 46(ivec4) ImageGather 55 59 28 ConstOffset 61 + Store 48(txval22) 62 + 68: 8(ptr) AccessChain 65(psout) 28 + Store 68 67 + 70: 69(ptr) AccessChain 65(psout) 27 + Store 70 66 + 73: 8(ptr) AccessChain 65(psout) 28 + 74: 7(fvec4) Load 73 + Store 72(Color) 74 + 77: 69(ptr) AccessChain 65(psout) 27 + 78: 6(float) Load 77 + Store 76(Depth) 78 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out new file mode 100644 index 0000000000..b04a857336 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -0,0 +1,1092 @@ +hlsl.gatherRGBA.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=16 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval01' (temp 4-component vector of int) +0:34 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 0 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval02' (temp 4-component vector of uint) +0:35 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) +0:35 Constant: +0:35 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:37 'txval10' (temp 4-component vector of float) +0:37 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of int) +0:38 'txval11' (temp 4-component vector of int) +0:38 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) +0:38 Constant: +0:38 1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of uint) +0:39 'txval12' (temp 4-component vector of uint) +0:39 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) +0:39 Constant: +0:39 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of float) +0:41 'txval20' (temp 4-component vector of float) +0:41 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) +0:41 Constant: +0:41 2 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of int) +0:42 'txval21' (temp 4-component vector of int) +0:42 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of uint) +0:43 'txval22' (temp 4-component vector of uint) +0:43 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 2 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:45 'txval30' (temp 4-component vector of float) +0:45 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Constant: +0:45 3 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'txval31' (temp 4-component vector of int) +0:46 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Constant: +0:46 3 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'txval32' (temp 4-component vector of uint) +0:47 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval40' (temp 4-component vector of float) +0:51 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval41' (temp 4-component vector of int) +0:52 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval42' (temp 4-component vector of uint) +0:53 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) +0:53 Constant: +0:53 0 (const int) +0:55 Sequence +0:55 move second child to first child (temp 4-component vector of float) +0:55 'txval50' (temp 4-component vector of float) +0:55 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) +0:55 Constant: +0:55 1 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of int) +0:56 'txval51' (temp 4-component vector of int) +0:56 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of uint) +0:57 'txval52' (temp 4-component vector of uint) +0:57 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 1 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'txval60' (temp 4-component vector of float) +0:59 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 2 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'txval61' (temp 4-component vector of int) +0:60 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) +0:60 Constant: +0:60 2 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'txval62' (temp 4-component vector of uint) +0:61 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 2 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of float) +0:63 'txval70' (temp 4-component vector of float) +0:63 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of int) +0:64 'txval71' (temp 4-component vector of int) +0:64 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of uint) +0:65 'txval72' (temp 4-component vector of uint) +0:65 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) +0:65 Constant: +0:65 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +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 Sequence +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 1 (const int) +0:70 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=16 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval01' (temp 4-component vector of int) +0:34 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 0 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval02' (temp 4-component vector of uint) +0:35 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) +0:35 Constant: +0:35 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:37 'txval10' (temp 4-component vector of float) +0:37 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of int) +0:38 'txval11' (temp 4-component vector of int) +0:38 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) +0:38 Constant: +0:38 1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of uint) +0:39 'txval12' (temp 4-component vector of uint) +0:39 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) +0:39 Constant: +0:39 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of float) +0:41 'txval20' (temp 4-component vector of float) +0:41 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) +0:41 Constant: +0:41 2 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of int) +0:42 'txval21' (temp 4-component vector of int) +0:42 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of uint) +0:43 'txval22' (temp 4-component vector of uint) +0:43 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 2 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:45 'txval30' (temp 4-component vector of float) +0:45 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Constant: +0:45 3 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'txval31' (temp 4-component vector of int) +0:46 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Constant: +0:46 3 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'txval32' (temp 4-component vector of uint) +0:47 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval40' (temp 4-component vector of float) +0:51 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval41' (temp 4-component vector of int) +0:52 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval42' (temp 4-component vector of uint) +0:53 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) +0:53 Constant: +0:53 0 (const int) +0:55 Sequence +0:55 move second child to first child (temp 4-component vector of float) +0:55 'txval50' (temp 4-component vector of float) +0:55 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) +0:55 Constant: +0:55 1 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of int) +0:56 'txval51' (temp 4-component vector of int) +0:56 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of uint) +0:57 'txval52' (temp 4-component vector of uint) +0:57 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 1 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'txval60' (temp 4-component vector of float) +0:59 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 2 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'txval61' (temp 4-component vector of int) +0:60 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) +0:60 Constant: +0:60 2 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'txval62' (temp 4-component vector of uint) +0:61 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 2 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of float) +0:63 'txval70' (temp 4-component vector of float) +0:63 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of int) +0:64 'txval71' (temp 4-component vector of int) +0:64 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of uint) +0:65 'txval72' (temp 4-component vector of uint) +0:65 textureGather (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 (layout(offset=32 ) uniform 4-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) +0:65 Constant: +0:65 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +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 Sequence +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 1 (const int) +0:70 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 248 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 230 234 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval00" + Name 12 "g_tTex2df4a" + Name 16 "g_sSamp" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + Name 24 "" + Name 34 "txval01" + Name 37 "g_tTex2di4a" + Name 48 "txval02" + Name 51 "g_tTex2du4a" + Name 59 "txval10" + Name 67 "txval11" + Name 74 "txval12" + Name 81 "txval20" + Name 88 "txval21" + Name 95 "txval22" + Name 102 "txval30" + Name 110 "txval31" + Name 117 "txval32" + Name 124 "txval40" + Name 127 "g_tTexcdf4a" + Name 136 "txval41" + Name 139 "g_tTexcdi4a" + Name 147 "txval42" + Name 150 "g_tTexcdu4a" + Name 158 "txval50" + Name 165 "txval51" + Name 172 "txval52" + Name 179 "txval60" + Name 186 "txval61" + Name 193 "txval62" + Name 200 "txval70" + Name 207 "txval71" + Name 214 "txval72" + Name 221 "PS_OUTPUT" + MemberName 221(PS_OUTPUT) 0 "Color" + MemberName 221(PS_OUTPUT) 1 "Depth" + Name 223 "psout" + Name 230 "Color" + Name 234 "Depth" + Name 238 "g_sSamp2d" + Name 241 "g_tTex1df4a" + Name 244 "g_tTex1di4a" + Name 247 "g_tTex1du4a" + Decorate 12(g_tTex2df4a) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 37(g_tTex2di4a) DescriptorSet 0 + Decorate 51(g_tTex2du4a) DescriptorSet 0 + Decorate 127(g_tTexcdf4a) DescriptorSet 0 + Decorate 139(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 + Decorate 230(Color) Location 0 + Decorate 234(Depth) BuiltIn FragDepth + Decorate 238(g_sSamp2d) DescriptorSet 0 + Decorate 241(g_tTex1df4a) DescriptorSet 0 + Decorate 241(g_tTex1df4a) Binding 0 + Decorate 244(g_tTex1di4a) DescriptorSet 0 + Decorate 247(g_tTex1du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4a): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 27: TypePointer Uniform 21(fvec3) + 30: 25(int) Constant 0 + 32: TypeVector 25(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 25(int) 2D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex2di4a): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4a): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 65: 25(int) Constant 1 + 108: 25(int) Constant 3 + 125: TypeImage 6(float) Cube array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTexcdf4a): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 132: TypePointer Uniform 7(fvec4) + 137: TypeImage 25(int) Cube array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTexcdi4a): 138(ptr) Variable UniformConstant + 142: TypeSampledImage 137 + 148: TypeImage 45(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 153: TypeSampledImage 148 + 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 222: TypePointer Function 221(PS_OUTPUT) + 224: 6(float) Constant 1065353216 + 225: 7(fvec4) ConstantComposite 224 224 224 224 + 227: TypePointer Function 6(float) + 229: TypePointer Output 7(fvec4) + 230(Color): 229(ptr) Variable Output + 233: TypePointer Output 6(float) + 234(Depth): 233(ptr) Variable Output + 238(g_sSamp2d): 15(ptr) Variable UniformConstant + 239: TypeImage 6(float) 1D array sampled format:Unknown + 240: TypePointer UniformConstant 239 +241(g_tTex1df4a): 240(ptr) Variable UniformConstant + 242: TypeImage 25(int) 1D array sampled format:Unknown + 243: TypePointer UniformConstant 242 +244(g_tTex1di4a): 243(ptr) Variable UniformConstant + 245: TypeImage 45(int) 1D array sampled format:Unknown + 246: TypePointer UniformConstant 245 +247(g_tTex1du4a): 246(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval00): 8(ptr) Variable Function + 34(txval01): 33(ptr) Variable Function + 48(txval02): 47(ptr) Variable Function + 59(txval10): 8(ptr) Variable Function + 67(txval11): 33(ptr) Variable Function + 74(txval12): 47(ptr) Variable Function + 81(txval20): 8(ptr) Variable Function + 88(txval21): 33(ptr) Variable Function + 95(txval22): 47(ptr) Variable Function + 102(txval30): 8(ptr) Variable Function + 110(txval31): 33(ptr) Variable Function + 117(txval32): 47(ptr) Variable Function + 124(txval40): 8(ptr) Variable Function + 136(txval41): 33(ptr) Variable Function + 147(txval42): 47(ptr) Variable Function + 158(txval50): 8(ptr) Variable Function + 165(txval51): 33(ptr) Variable Function + 172(txval52): 47(ptr) Variable Function + 179(txval60): 8(ptr) Variable Function + 186(txval61): 33(ptr) Variable Function + 193(txval62): 47(ptr) Variable Function + 200(txval70): 8(ptr) Variable Function + 207(txval71): 33(ptr) Variable Function + 214(txval72): 47(ptr) Variable Function + 223(psout): 222(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4a) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 28: 27(ptr) AccessChain 24 26 + 29: 21(fvec3) Load 28 + 31: 7(fvec4) ImageGather 19 29 30 + Store 9(txval00) 31 + 38: 35 Load 37(g_tTex2di4a) + 39: 14 Load 16(g_sSamp) + 41: 40 SampledImage 38 39 + 42: 27(ptr) AccessChain 24 26 + 43: 21(fvec3) Load 42 + 44: 32(ivec4) ImageGather 41 43 30 + Store 34(txval01) 44 + 52: 49 Load 51(g_tTex2du4a) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 56: 27(ptr) AccessChain 24 26 + 57: 21(fvec3) Load 56 + 58: 46(ivec4) ImageGather 55 57 30 + Store 48(txval02) 58 + 60: 10 Load 12(g_tTex2df4a) + 61: 14 Load 16(g_sSamp) + 62: 18 SampledImage 60 61 + 63: 27(ptr) AccessChain 24 26 + 64: 21(fvec3) Load 63 + 66: 7(fvec4) ImageGather 62 64 65 + Store 59(txval10) 66 + 68: 35 Load 37(g_tTex2di4a) + 69: 14 Load 16(g_sSamp) + 70: 40 SampledImage 68 69 + 71: 27(ptr) AccessChain 24 26 + 72: 21(fvec3) Load 71 + 73: 32(ivec4) ImageGather 70 72 65 + Store 67(txval11) 73 + 75: 49 Load 51(g_tTex2du4a) + 76: 14 Load 16(g_sSamp) + 77: 54 SampledImage 75 76 + 78: 27(ptr) AccessChain 24 26 + 79: 21(fvec3) Load 78 + 80: 46(ivec4) ImageGather 77 79 65 + Store 74(txval12) 80 + 82: 10 Load 12(g_tTex2df4a) + 83: 14 Load 16(g_sSamp) + 84: 18 SampledImage 82 83 + 85: 27(ptr) AccessChain 24 26 + 86: 21(fvec3) Load 85 + 87: 7(fvec4) ImageGather 84 86 26 + Store 81(txval20) 87 + 89: 35 Load 37(g_tTex2di4a) + 90: 14 Load 16(g_sSamp) + 91: 40 SampledImage 89 90 + 92: 27(ptr) AccessChain 24 26 + 93: 21(fvec3) Load 92 + 94: 32(ivec4) ImageGather 91 93 26 + Store 88(txval21) 94 + 96: 49 Load 51(g_tTex2du4a) + 97: 14 Load 16(g_sSamp) + 98: 54 SampledImage 96 97 + 99: 27(ptr) AccessChain 24 26 + 100: 21(fvec3) Load 99 + 101: 46(ivec4) ImageGather 98 100 26 + Store 95(txval22) 101 + 103: 10 Load 12(g_tTex2df4a) + 104: 14 Load 16(g_sSamp) + 105: 18 SampledImage 103 104 + 106: 27(ptr) AccessChain 24 26 + 107: 21(fvec3) Load 106 + 109: 7(fvec4) ImageGather 105 107 108 + Store 102(txval30) 109 + 111: 35 Load 37(g_tTex2di4a) + 112: 14 Load 16(g_sSamp) + 113: 40 SampledImage 111 112 + 114: 27(ptr) AccessChain 24 26 + 115: 21(fvec3) Load 114 + 116: 32(ivec4) ImageGather 113 115 108 + Store 110(txval31) 116 + 118: 49 Load 51(g_tTex2du4a) + 119: 14 Load 16(g_sSamp) + 120: 54 SampledImage 118 119 + 121: 27(ptr) AccessChain 24 26 + 122: 21(fvec3) Load 121 + 123: 46(ivec4) ImageGather 120 122 108 + Store 117(txval32) 123 + 128: 125 Load 127(g_tTexcdf4a) + 129: 14 Load 16(g_sSamp) + 131: 130 SampledImage 128 129 + 133: 132(ptr) AccessChain 24 108 + 134: 7(fvec4) Load 133 + 135: 7(fvec4) ImageGather 131 134 30 + Store 124(txval40) 135 + 140: 137 Load 139(g_tTexcdi4a) + 141: 14 Load 16(g_sSamp) + 143: 142 SampledImage 140 141 + 144: 132(ptr) AccessChain 24 108 + 145: 7(fvec4) Load 144 + 146: 32(ivec4) ImageGather 143 145 30 + Store 136(txval41) 146 + 151: 148 Load 150(g_tTexcdu4a) + 152: 14 Load 16(g_sSamp) + 154: 153 SampledImage 151 152 + 155: 132(ptr) AccessChain 24 108 + 156: 7(fvec4) Load 155 + 157: 46(ivec4) ImageGather 154 156 30 + Store 147(txval42) 157 + 159: 125 Load 127(g_tTexcdf4a) + 160: 14 Load 16(g_sSamp) + 161: 130 SampledImage 159 160 + 162: 132(ptr) AccessChain 24 108 + 163: 7(fvec4) Load 162 + 164: 7(fvec4) ImageGather 161 163 65 + Store 158(txval50) 164 + 166: 137 Load 139(g_tTexcdi4a) + 167: 14 Load 16(g_sSamp) + 168: 142 SampledImage 166 167 + 169: 132(ptr) AccessChain 24 108 + 170: 7(fvec4) Load 169 + 171: 32(ivec4) ImageGather 168 170 65 + Store 165(txval51) 171 + 173: 148 Load 150(g_tTexcdu4a) + 174: 14 Load 16(g_sSamp) + 175: 153 SampledImage 173 174 + 176: 132(ptr) AccessChain 24 108 + 177: 7(fvec4) Load 176 + 178: 46(ivec4) ImageGather 175 177 65 + Store 172(txval52) 178 + 180: 125 Load 127(g_tTexcdf4a) + 181: 14 Load 16(g_sSamp) + 182: 130 SampledImage 180 181 + 183: 132(ptr) AccessChain 24 108 + 184: 7(fvec4) Load 183 + 185: 7(fvec4) ImageGather 182 184 26 + Store 179(txval60) 185 + 187: 137 Load 139(g_tTexcdi4a) + 188: 14 Load 16(g_sSamp) + 189: 142 SampledImage 187 188 + 190: 132(ptr) AccessChain 24 108 + 191: 7(fvec4) Load 190 + 192: 32(ivec4) ImageGather 189 191 26 + Store 186(txval61) 192 + 194: 148 Load 150(g_tTexcdu4a) + 195: 14 Load 16(g_sSamp) + 196: 153 SampledImage 194 195 + 197: 132(ptr) AccessChain 24 108 + 198: 7(fvec4) Load 197 + 199: 46(ivec4) ImageGather 196 198 26 + Store 193(txval62) 199 + 201: 125 Load 127(g_tTexcdf4a) + 202: 14 Load 16(g_sSamp) + 203: 130 SampledImage 201 202 + 204: 132(ptr) AccessChain 24 108 + 205: 7(fvec4) Load 204 + 206: 7(fvec4) ImageGather 203 205 108 + Store 200(txval70) 206 + 208: 137 Load 139(g_tTexcdi4a) + 209: 14 Load 16(g_sSamp) + 210: 142 SampledImage 208 209 + 211: 132(ptr) AccessChain 24 108 + 212: 7(fvec4) Load 211 + 213: 32(ivec4) ImageGather 210 212 108 + Store 207(txval71) 213 + 215: 148 Load 150(g_tTexcdu4a) + 216: 14 Load 16(g_sSamp) + 217: 153 SampledImage 215 216 + 218: 132(ptr) AccessChain 24 108 + 219: 7(fvec4) Load 218 + 220: 46(ivec4) ImageGather 217 219 108 + Store 214(txval72) 220 + 226: 8(ptr) AccessChain 223(psout) 30 + Store 226 225 + 228: 227(ptr) AccessChain 223(psout) 65 + Store 228 224 + 231: 8(ptr) AccessChain 223(psout) 30 + 232: 7(fvec4) Load 231 + Store 230(Color) 232 + 235: 227(ptr) AccessChain 223(psout) 65 + 236: 6(float) Load 235 + Store 234(Depth) 236 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out new file mode 100644 index 0000000000..d2fb0b1714 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -0,0 +1,1118 @@ +hlsl.gatherRGBA.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=8 ) uniform 2-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 0 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval01' (temp 4-component vector of int) +0:40 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval02' (temp 4-component vector of uint) +0:41 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) +0:41 Constant: +0:41 0 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval10' (temp 4-component vector of float) +0:43 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 1 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval11' (temp 4-component vector of int) +0:44 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 1 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval12' (temp 4-component vector of uint) +0:45 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 1 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:47 'txval20' (temp 4-component vector of float) +0:47 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) +0:47 Constant: +0:47 2 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of int) +0:48 'txval21' (temp 4-component vector of int) +0:48 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) +0:48 Constant: +0:48 2 (const int) +0:49 Sequence +0:49 move second child to first child (temp 4-component vector of uint) +0:49 'txval22' (temp 4-component vector of uint) +0:49 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) +0:49 Constant: +0:49 2 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval30' (temp 4-component vector of float) +0:51 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 3 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval31' (temp 4-component vector of int) +0:52 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 3 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval32' (temp 4-component vector of uint) +0:53 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 3 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of float) +0:57 'txval40' (temp 4-component vector of float) +0:57 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of int) +0:58 'txval41' (temp 4-component vector of int) +0:58 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 0 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of uint) +0:59 'txval42' (temp 4-component vector of uint) +0:59 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'txval50' (temp 4-component vector of float) +0:61 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'txval51' (temp 4-component vector of int) +0:62 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'txval52' (temp 4-component vector of uint) +0:63 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 1 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:65 'txval60' (temp 4-component vector of float) +0:65 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) +0:65 Constant: +0:65 2 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of int) +0:66 'txval61' (temp 4-component vector of int) +0:66 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) +0:66 Constant: +0:66 2 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of uint) +0:67 'txval62' (temp 4-component vector of uint) +0:67 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) +0:67 Constant: +0:67 2 (const int) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'txval70' (temp 4-component vector of float) +0:69 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) +0:69 Constant: +0:69 3 (const int) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'txval71' (temp 4-component vector of int) +0:70 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) +0:70 Constant: +0:70 3 (const int) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'txval72' (temp 4-component vector of uint) +0:71 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) +0:71 Constant: +0:71 3 (const int) +0:73 move second child to first child (temp 4-component vector of float) +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 Sequence +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:76 Color: direct index for structure (temp 4-component vector of float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:76 Constant: +0:76 0 (const int) +0:76 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:76 Depth: direct index for structure (temp float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:76 Constant: +0:76 1 (const int) +0:76 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=8 ) uniform 2-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 0 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval01' (temp 4-component vector of int) +0:40 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval02' (temp 4-component vector of uint) +0:41 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) +0:41 Constant: +0:41 0 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval10' (temp 4-component vector of float) +0:43 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 1 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval11' (temp 4-component vector of int) +0:44 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 1 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval12' (temp 4-component vector of uint) +0:45 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 1 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:47 'txval20' (temp 4-component vector of float) +0:47 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) +0:47 Constant: +0:47 2 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of int) +0:48 'txval21' (temp 4-component vector of int) +0:48 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) +0:48 Constant: +0:48 2 (const int) +0:49 Sequence +0:49 move second child to first child (temp 4-component vector of uint) +0:49 'txval22' (temp 4-component vector of uint) +0:49 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) +0:49 Constant: +0:49 2 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval30' (temp 4-component vector of float) +0:51 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 3 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval31' (temp 4-component vector of int) +0:52 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 3 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval32' (temp 4-component vector of uint) +0:53 textureGather (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 (layout(offset=8 ) uniform 2-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 3 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of float) +0:57 'txval40' (temp 4-component vector of float) +0:57 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of int) +0:58 'txval41' (temp 4-component vector of int) +0:58 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 0 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of uint) +0:59 'txval42' (temp 4-component vector of uint) +0:59 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'txval50' (temp 4-component vector of float) +0:61 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'txval51' (temp 4-component vector of int) +0:62 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'txval52' (temp 4-component vector of uint) +0:63 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 1 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:65 'txval60' (temp 4-component vector of float) +0:65 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) +0:65 Constant: +0:65 2 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of int) +0:66 'txval61' (temp 4-component vector of int) +0:66 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) +0:66 Constant: +0:66 2 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of uint) +0:67 'txval62' (temp 4-component vector of uint) +0:67 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) +0:67 Constant: +0:67 2 (const int) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'txval70' (temp 4-component vector of float) +0:69 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) +0:69 Constant: +0:69 3 (const int) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'txval71' (temp 4-component vector of int) +0:70 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) +0:70 Constant: +0:70 3 (const int) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'txval72' (temp 4-component vector of uint) +0:71 textureGather (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 (layout(offset=16 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) +0:71 Constant: +0:71 3 (const int) +0:73 move second child to first child (temp 4-component vector of float) +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 Sequence +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:76 Color: direct index for structure (temp 4-component vector of float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:76 Constant: +0:76 0 (const int) +0:76 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:76 Depth: direct index for structure (temp float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:76 Constant: +0:76 1 (const int) +0:76 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 258 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 230 234 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval00" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + Name 24 "" + Name 34 "txval01" + Name 37 "g_tTex2di4" + Name 48 "txval02" + Name 51 "g_tTex2du4" + Name 59 "txval10" + Name 66 "txval11" + Name 73 "txval12" + Name 80 "txval20" + Name 88 "txval21" + Name 95 "txval22" + Name 102 "txval30" + Name 110 "txval31" + Name 117 "txval32" + Name 124 "txval40" + Name 127 "g_tTexcdf4" + Name 136 "txval41" + Name 139 "g_tTexcdi4" + Name 147 "txval42" + Name 150 "g_tTexcdu4" + Name 158 "txval50" + Name 165 "txval51" + Name 172 "txval52" + Name 179 "txval60" + Name 186 "txval61" + Name 193 "txval62" + Name 200 "txval70" + Name 207 "txval71" + Name 214 "txval72" + Name 221 "PS_OUTPUT" + MemberName 221(PS_OUTPUT) 0 "Color" + MemberName 221(PS_OUTPUT) 1 "Depth" + Name 223 "psout" + Name 230 "Color" + Name 234 "Depth" + Name 238 "g_sSamp2d" + Name 241 "g_tTex1df4a" + Name 242 "g_tTex1df4" + Name 245 "g_tTex1di4" + Name 248 "g_tTex1du4" + Name 251 "g_tTex3df4" + Name 254 "g_tTex3di4" + Name 257 "g_tTex3du4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 37(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 150(g_tTexcdu4) DescriptorSet 0 + Decorate 230(Color) Location 0 + Decorate 234(Depth) BuiltIn FragDepth + Decorate 238(g_sSamp2d) DescriptorSet 0 + Decorate 241(g_tTex1df4a) DescriptorSet 0 + Decorate 241(g_tTex1df4a) Binding 1 + Decorate 242(g_tTex1df4) DescriptorSet 0 + Decorate 242(g_tTex1df4) Binding 0 + Decorate 245(g_tTex1di4) DescriptorSet 0 + Decorate 248(g_tTex1du4) DescriptorSet 0 + Decorate 251(g_tTex3df4) DescriptorSet 0 + Decorate 254(g_tTex3di4) DescriptorSet 0 + Decorate 257(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: TypeInt 32 1 + 26: 25(int) Constant 1 + 27: TypePointer Uniform 20(fvec2) + 30: 25(int) Constant 0 + 32: TypeVector 25(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 25(int) 2D sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex2di4): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 86: 25(int) Constant 2 + 108: 25(int) Constant 3 + 125: TypeImage 6(float) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdf4): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 132: TypePointer Uniform 21(fvec3) + 137: TypeImage 25(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 142: TypeSampledImage 137 + 148: TypeImage 45(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdu4): 149(ptr) Variable UniformConstant + 153: TypeSampledImage 148 + 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 222: TypePointer Function 221(PS_OUTPUT) + 224: 6(float) Constant 1065353216 + 225: 7(fvec4) ConstantComposite 224 224 224 224 + 227: TypePointer Function 6(float) + 229: TypePointer Output 7(fvec4) + 230(Color): 229(ptr) Variable Output + 233: TypePointer Output 6(float) + 234(Depth): 233(ptr) Variable Output + 238(g_sSamp2d): 15(ptr) Variable UniformConstant + 239: TypeImage 6(float) 1D sampled format:Unknown + 240: TypePointer UniformConstant 239 +241(g_tTex1df4a): 240(ptr) Variable UniformConstant + 242(g_tTex1df4): 240(ptr) Variable UniformConstant + 243: TypeImage 25(int) 1D sampled format:Unknown + 244: TypePointer UniformConstant 243 + 245(g_tTex1di4): 244(ptr) Variable UniformConstant + 246: TypeImage 45(int) 1D sampled format:Unknown + 247: TypePointer UniformConstant 246 + 248(g_tTex1du4): 247(ptr) Variable UniformConstant + 249: TypeImage 6(float) 3D sampled format:Unknown + 250: TypePointer UniformConstant 249 + 251(g_tTex3df4): 250(ptr) Variable UniformConstant + 252: TypeImage 25(int) 3D sampled format:Unknown + 253: TypePointer UniformConstant 252 + 254(g_tTex3di4): 253(ptr) Variable UniformConstant + 255: TypeImage 45(int) 3D sampled format:Unknown + 256: TypePointer UniformConstant 255 + 257(g_tTex3du4): 256(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval00): 8(ptr) Variable Function + 34(txval01): 33(ptr) Variable Function + 48(txval02): 47(ptr) Variable Function + 59(txval10): 8(ptr) Variable Function + 66(txval11): 33(ptr) Variable Function + 73(txval12): 47(ptr) Variable Function + 80(txval20): 8(ptr) Variable Function + 88(txval21): 33(ptr) Variable Function + 95(txval22): 47(ptr) Variable Function + 102(txval30): 8(ptr) Variable Function + 110(txval31): 33(ptr) Variable Function + 117(txval32): 47(ptr) Variable Function + 124(txval40): 8(ptr) Variable Function + 136(txval41): 33(ptr) Variable Function + 147(txval42): 47(ptr) Variable Function + 158(txval50): 8(ptr) Variable Function + 165(txval51): 33(ptr) Variable Function + 172(txval52): 47(ptr) Variable Function + 179(txval60): 8(ptr) Variable Function + 186(txval61): 33(ptr) Variable Function + 193(txval62): 47(ptr) Variable Function + 200(txval70): 8(ptr) Variable Function + 207(txval71): 33(ptr) Variable Function + 214(txval72): 47(ptr) Variable Function + 223(psout): 222(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 28: 27(ptr) AccessChain 24 26 + 29: 20(fvec2) Load 28 + 31: 7(fvec4) ImageGather 19 29 30 + Store 9(txval00) 31 + 38: 35 Load 37(g_tTex2di4) + 39: 14 Load 16(g_sSamp) + 41: 40 SampledImage 38 39 + 42: 27(ptr) AccessChain 24 26 + 43: 20(fvec2) Load 42 + 44: 32(ivec4) ImageGather 41 43 30 + Store 34(txval01) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 56: 27(ptr) AccessChain 24 26 + 57: 20(fvec2) Load 56 + 58: 46(ivec4) ImageGather 55 57 30 + Store 48(txval02) 58 + 60: 10 Load 12(g_tTex2df4) + 61: 14 Load 16(g_sSamp) + 62: 18 SampledImage 60 61 + 63: 27(ptr) AccessChain 24 26 + 64: 20(fvec2) Load 63 + 65: 7(fvec4) ImageGather 62 64 26 + Store 59(txval10) 65 + 67: 35 Load 37(g_tTex2di4) + 68: 14 Load 16(g_sSamp) + 69: 40 SampledImage 67 68 + 70: 27(ptr) AccessChain 24 26 + 71: 20(fvec2) Load 70 + 72: 32(ivec4) ImageGather 69 71 26 + Store 66(txval11) 72 + 74: 49 Load 51(g_tTex2du4) + 75: 14 Load 16(g_sSamp) + 76: 54 SampledImage 74 75 + 77: 27(ptr) AccessChain 24 26 + 78: 20(fvec2) Load 77 + 79: 46(ivec4) ImageGather 76 78 26 + Store 73(txval12) 79 + 81: 10 Load 12(g_tTex2df4) + 82: 14 Load 16(g_sSamp) + 83: 18 SampledImage 81 82 + 84: 27(ptr) AccessChain 24 26 + 85: 20(fvec2) Load 84 + 87: 7(fvec4) ImageGather 83 85 86 + Store 80(txval20) 87 + 89: 35 Load 37(g_tTex2di4) + 90: 14 Load 16(g_sSamp) + 91: 40 SampledImage 89 90 + 92: 27(ptr) AccessChain 24 26 + 93: 20(fvec2) Load 92 + 94: 32(ivec4) ImageGather 91 93 86 + Store 88(txval21) 94 + 96: 49 Load 51(g_tTex2du4) + 97: 14 Load 16(g_sSamp) + 98: 54 SampledImage 96 97 + 99: 27(ptr) AccessChain 24 26 + 100: 20(fvec2) Load 99 + 101: 46(ivec4) ImageGather 98 100 86 + Store 95(txval22) 101 + 103: 10 Load 12(g_tTex2df4) + 104: 14 Load 16(g_sSamp) + 105: 18 SampledImage 103 104 + 106: 27(ptr) AccessChain 24 26 + 107: 20(fvec2) Load 106 + 109: 7(fvec4) ImageGather 105 107 108 + Store 102(txval30) 109 + 111: 35 Load 37(g_tTex2di4) + 112: 14 Load 16(g_sSamp) + 113: 40 SampledImage 111 112 + 114: 27(ptr) AccessChain 24 26 + 115: 20(fvec2) Load 114 + 116: 32(ivec4) ImageGather 113 115 108 + Store 110(txval31) 116 + 118: 49 Load 51(g_tTex2du4) + 119: 14 Load 16(g_sSamp) + 120: 54 SampledImage 118 119 + 121: 27(ptr) AccessChain 24 26 + 122: 20(fvec2) Load 121 + 123: 46(ivec4) ImageGather 120 122 108 + Store 117(txval32) 123 + 128: 125 Load 127(g_tTexcdf4) + 129: 14 Load 16(g_sSamp) + 131: 130 SampledImage 128 129 + 133: 132(ptr) AccessChain 24 86 + 134: 21(fvec3) Load 133 + 135: 7(fvec4) ImageGather 131 134 30 + Store 124(txval40) 135 + 140: 137 Load 139(g_tTexcdi4) + 141: 14 Load 16(g_sSamp) + 143: 142 SampledImage 140 141 + 144: 132(ptr) AccessChain 24 86 + 145: 21(fvec3) Load 144 + 146: 32(ivec4) ImageGather 143 145 30 + Store 136(txval41) 146 + 151: 148 Load 150(g_tTexcdu4) + 152: 14 Load 16(g_sSamp) + 154: 153 SampledImage 151 152 + 155: 132(ptr) AccessChain 24 86 + 156: 21(fvec3) Load 155 + 157: 46(ivec4) ImageGather 154 156 30 + Store 147(txval42) 157 + 159: 125 Load 127(g_tTexcdf4) + 160: 14 Load 16(g_sSamp) + 161: 130 SampledImage 159 160 + 162: 132(ptr) AccessChain 24 86 + 163: 21(fvec3) Load 162 + 164: 7(fvec4) ImageGather 161 163 26 + Store 158(txval50) 164 + 166: 137 Load 139(g_tTexcdi4) + 167: 14 Load 16(g_sSamp) + 168: 142 SampledImage 166 167 + 169: 132(ptr) AccessChain 24 86 + 170: 21(fvec3) Load 169 + 171: 32(ivec4) ImageGather 168 170 26 + Store 165(txval51) 171 + 173: 148 Load 150(g_tTexcdu4) + 174: 14 Load 16(g_sSamp) + 175: 153 SampledImage 173 174 + 176: 132(ptr) AccessChain 24 86 + 177: 21(fvec3) Load 176 + 178: 46(ivec4) ImageGather 175 177 26 + Store 172(txval52) 178 + 180: 125 Load 127(g_tTexcdf4) + 181: 14 Load 16(g_sSamp) + 182: 130 SampledImage 180 181 + 183: 132(ptr) AccessChain 24 86 + 184: 21(fvec3) Load 183 + 185: 7(fvec4) ImageGather 182 184 86 + Store 179(txval60) 185 + 187: 137 Load 139(g_tTexcdi4) + 188: 14 Load 16(g_sSamp) + 189: 142 SampledImage 187 188 + 190: 132(ptr) AccessChain 24 86 + 191: 21(fvec3) Load 190 + 192: 32(ivec4) ImageGather 189 191 86 + Store 186(txval61) 192 + 194: 148 Load 150(g_tTexcdu4) + 195: 14 Load 16(g_sSamp) + 196: 153 SampledImage 194 195 + 197: 132(ptr) AccessChain 24 86 + 198: 21(fvec3) Load 197 + 199: 46(ivec4) ImageGather 196 198 86 + Store 193(txval62) 199 + 201: 125 Load 127(g_tTexcdf4) + 202: 14 Load 16(g_sSamp) + 203: 130 SampledImage 201 202 + 204: 132(ptr) AccessChain 24 86 + 205: 21(fvec3) Load 204 + 206: 7(fvec4) ImageGather 203 205 108 + Store 200(txval70) 206 + 208: 137 Load 139(g_tTexcdi4) + 209: 14 Load 16(g_sSamp) + 210: 142 SampledImage 208 209 + 211: 132(ptr) AccessChain 24 86 + 212: 21(fvec3) Load 211 + 213: 32(ivec4) ImageGather 210 212 108 + Store 207(txval71) 213 + 215: 148 Load 150(g_tTexcdu4) + 216: 14 Load 16(g_sSamp) + 217: 153 SampledImage 215 216 + 218: 132(ptr) AccessChain 24 86 + 219: 21(fvec3) Load 218 + 220: 46(ivec4) ImageGather 217 219 108 + Store 214(txval72) 220 + 226: 8(ptr) AccessChain 223(psout) 30 + Store 226 225 + 228: 227(ptr) AccessChain 223(psout) 26 + Store 228 224 + 231: 8(ptr) AccessChain 223(psout) 30 + 232: 7(fvec4) Load 231 + Store 230(Color) 232 + 235: 227(ptr) AccessChain 223(psout) 26 + 236: 6(float) Load 235 + Store 234(Depth) 236 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out new file mode 100644 index 0000000000..433957417e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -0,0 +1,1765 @@ +hlsl.gatherRGBA.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=8 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of int) +0:47 'txval011' (temp 4-component vector of int) +0:47 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of uint) +0:48 'txval021' (temp 4-component vector of uint) +0:48 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:50 'txval004' (temp 4-component vector of float) +0:50 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of int) +0:51 'txval014' (temp 4-component vector of int) +0:51 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of uint) +0:52 'txval024' (temp 4-component vector of uint) +0:52 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of float) +0:62 'txval101' (temp 4-component vector of float) +0:62 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of int) +0:63 'txval111' (temp 4-component vector of int) +0:63 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of uint) +0:64 'txval121' (temp 4-component vector of uint) +0:64 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:66 'txval104' (temp 4-component vector of float) +0:66 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) +0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of int) +0:67 'txval114' (temp 4-component vector of int) +0:67 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) +0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of uint) +0:68 'txval124' (temp 4-component vector of uint) +0:68 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) +0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval201' (temp 4-component vector of float) +0:78 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval211' (temp 4-component vector of int) +0:79 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval221' (temp 4-component vector of uint) +0:80 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval204' (temp 4-component vector of float) +0:82 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) +0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval214' (temp 4-component vector of int) +0:83 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) +0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval224' (temp 4-component vector of uint) +0:84 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) +0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of float) +0:94 'txval301' (temp 4-component vector of float) +0:94 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of int) +0:95 'txval311' (temp 4-component vector of int) +0:95 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of uint) +0:96 'txval321' (temp 4-component vector of uint) +0:96 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of float) +0:98 'txval304' (temp 4-component vector of float) +0:98 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) +0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child (temp 4-component vector of int) +0:99 'txval314' (temp 4-component vector of int) +0:99 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) +0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child (temp 4-component vector of uint) +0:100 'txval324' (temp 4-component vector of uint) +0:100 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) +0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child (temp 4-component vector of float) +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 Sequence +0:115 Sequence +0:115 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:115 Color: direct index for structure (temp 4-component vector of float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:115 Constant: +0:115 0 (const int) +0:115 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:115 Depth: direct index for structure (temp float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:115 Constant: +0:115 1 (const int) +0:115 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 (layout(offset=8 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of int) +0:47 'txval011' (temp 4-component vector of int) +0:47 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of uint) +0:48 'txval021' (temp 4-component vector of uint) +0:48 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:50 'txval004' (temp 4-component vector of float) +0:50 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of int) +0:51 'txval014' (temp 4-component vector of int) +0:51 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of uint) +0:52 'txval024' (temp 4-component vector of uint) +0:52 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of float) +0:62 'txval101' (temp 4-component vector of float) +0:62 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of int) +0:63 'txval111' (temp 4-component vector of int) +0:63 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of uint) +0:64 'txval121' (temp 4-component vector of uint) +0:64 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:66 'txval104' (temp 4-component vector of float) +0:66 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) +0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of int) +0:67 'txval114' (temp 4-component vector of int) +0:67 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) +0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of uint) +0:68 'txval124' (temp 4-component vector of uint) +0:68 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) +0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval201' (temp 4-component vector of float) +0:78 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval211' (temp 4-component vector of int) +0:79 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval221' (temp 4-component vector of uint) +0:80 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval204' (temp 4-component vector of float) +0:82 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) +0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval214' (temp 4-component vector of int) +0:83 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) +0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval224' (temp 4-component vector of uint) +0:84 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) +0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of float) +0:94 'txval301' (temp 4-component vector of float) +0:94 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of int) +0:95 'txval311' (temp 4-component vector of int) +0:95 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of uint) +0:96 'txval321' (temp 4-component vector of uint) +0:96 textureGatherOffset (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 (layout(offset=8 ) uniform 2-component vector of float) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of float) +0:98 'txval304' (temp 4-component vector of float) +0:98 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) +0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child (temp 4-component vector of int) +0:99 'txval314' (temp 4-component vector of int) +0:99 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) +0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child (temp 4-component vector of uint) +0:100 'txval324' (temp 4-component vector of uint) +0:100 textureGatherOffsets (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 (layout(offset=8 ) uniform 2-component vector of float) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) +0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child (temp 4-component vector of float) +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 Sequence +0:115 Sequence +0:115 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:115 Color: direct index for structure (temp 4-component vector of float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:115 Constant: +0:115 0 (const int) +0:115 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:115 Depth: direct index for structure (temp float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:115 Constant: +0:115 1 (const int) +0:115 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 392 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 355 359 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval001" + Name 12 "g_tTex2df4" + Name 16 "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" + MemberName 26($Global) 4 "o1" + MemberName 26($Global) 5 "o2" + MemberName 26($Global) 6 "o3" + MemberName 26($Global) 7 "o4" + Name 28 "" + Name 40 "txval011" + Name 43 "g_tTex2di4" + Name 56 "txval021" + Name 59 "g_tTex2du4" + Name 69 "txval004" + Name 87 "txval014" + Name 103 "txval024" + Name 119 "txval101" + Name 128 "txval111" + Name 137 "txval121" + Name 146 "txval104" + Name 162 "txval114" + Name 178 "txval124" + Name 194 "txval201" + Name 204 "txval211" + Name 213 "txval221" + Name 222 "txval204" + Name 238 "txval214" + Name 254 "txval224" + Name 270 "txval301" + Name 280 "txval311" + Name 289 "txval321" + Name 298 "txval304" + Name 314 "txval314" + Name 330 "txval324" + Name 346 "PS_OUTPUT" + MemberName 346(PS_OUTPUT) 0 "Color" + MemberName 346(PS_OUTPUT) 1 "Depth" + Name 348 "psout" + Name 355 "Color" + Name 359 "Depth" + Name 363 "g_sSamp2d" + Name 366 "g_tTex1df4a" + Name 367 "g_tTex1df4" + Name 370 "g_tTex1di4" + Name 373 "g_tTex1du4" + Name 376 "g_tTex3df4" + Name 379 "g_tTex3di4" + Name 382 "g_tTex3du4" + Name 385 "g_tTexcdf4" + Name 388 "g_tTexcdi4" + Name 391 "g_tTexcdu4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + MemberDecorate 26($Global) 4 Offset 48 + MemberDecorate 26($Global) 5 Offset 56 + MemberDecorate 26($Global) 6 Offset 64 + MemberDecorate 26($Global) 7 Offset 80 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 43(g_tTex2di4) DescriptorSet 0 + Decorate 59(g_tTex2du4) DescriptorSet 0 + Decorate 355(Color) Location 0 + Decorate 359(Depth) BuiltIn FragDepth + Decorate 363(g_sSamp2d) DescriptorSet 0 + Decorate 366(g_tTex1df4a) DescriptorSet 0 + Decorate 366(g_tTex1df4a) Binding 1 + Decorate 367(g_tTex1df4) DescriptorSet 0 + Decorate 367(g_tTex1df4) Binding 0 + Decorate 370(g_tTex1di4) DescriptorSet 0 + Decorate 373(g_tTex1du4) DescriptorSet 0 + Decorate 376(g_tTex3df4) DescriptorSet 0 + Decorate 379(g_tTex3di4) DescriptorSet 0 + Decorate 382(g_tTex3du4) DescriptorSet 0 + Decorate 385(g_tTexcdf4) DescriptorSet 0 + Decorate 388(g_tTexcdi4) DescriptorSet 0 + Decorate 391(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypeVector 22(int) 3 + 25: TypeVector 22(int) 4 + 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: 22(int) Constant 1 + 30: TypePointer Uniform 20(fvec2) + 33: 22(int) Constant 5 + 34: TypePointer Uniform 23(ivec2) + 37: 22(int) Constant 0 + 39: TypePointer Function 25(ivec4) + 41: TypeImage 22(int) 2D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex2di4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 53: TypeInt 32 0 + 54: TypeVector 53(int) 4 + 55: TypePointer Function 54(ivec4) + 57: TypeImage 53(int) 2D sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2du4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 83: 53(int) Constant 4 + 84: TypeArray 23(ivec2) 83 + 202: 22(int) Constant 2 + 278: 22(int) Constant 3 + 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 347: TypePointer Function 346(PS_OUTPUT) + 349: 6(float) Constant 1065353216 + 350: 7(fvec4) ConstantComposite 349 349 349 349 + 352: TypePointer Function 6(float) + 354: TypePointer Output 7(fvec4) + 355(Color): 354(ptr) Variable Output + 358: TypePointer Output 6(float) + 359(Depth): 358(ptr) Variable Output + 363(g_sSamp2d): 15(ptr) Variable UniformConstant + 364: TypeImage 6(float) 1D sampled format:Unknown + 365: TypePointer UniformConstant 364 +366(g_tTex1df4a): 365(ptr) Variable UniformConstant + 367(g_tTex1df4): 365(ptr) Variable UniformConstant + 368: TypeImage 22(int) 1D sampled format:Unknown + 369: TypePointer UniformConstant 368 + 370(g_tTex1di4): 369(ptr) Variable UniformConstant + 371: TypeImage 53(int) 1D sampled format:Unknown + 372: TypePointer UniformConstant 371 + 373(g_tTex1du4): 372(ptr) Variable UniformConstant + 374: TypeImage 6(float) 3D sampled format:Unknown + 375: TypePointer UniformConstant 374 + 376(g_tTex3df4): 375(ptr) Variable UniformConstant + 377: TypeImage 22(int) 3D sampled format:Unknown + 378: TypePointer UniformConstant 377 + 379(g_tTex3di4): 378(ptr) Variable UniformConstant + 380: TypeImage 53(int) 3D sampled format:Unknown + 381: TypePointer UniformConstant 380 + 382(g_tTex3du4): 381(ptr) Variable UniformConstant + 383: TypeImage 6(float) Cube sampled format:Unknown + 384: TypePointer UniformConstant 383 + 385(g_tTexcdf4): 384(ptr) Variable UniformConstant + 386: TypeImage 22(int) Cube sampled format:Unknown + 387: TypePointer UniformConstant 386 + 388(g_tTexcdi4): 387(ptr) Variable UniformConstant + 389: TypeImage 53(int) Cube sampled format:Unknown + 390: TypePointer UniformConstant 389 + 391(g_tTexcdu4): 390(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval001): 8(ptr) Variable Function + 40(txval011): 39(ptr) Variable Function + 56(txval021): 55(ptr) Variable Function + 69(txval004): 8(ptr) Variable Function + 87(txval014): 39(ptr) Variable Function + 103(txval024): 55(ptr) Variable Function + 119(txval101): 8(ptr) Variable Function + 128(txval111): 39(ptr) Variable Function + 137(txval121): 55(ptr) Variable Function + 146(txval104): 8(ptr) Variable Function + 162(txval114): 39(ptr) Variable Function + 178(txval124): 55(ptr) Variable Function + 194(txval201): 8(ptr) Variable Function + 204(txval211): 39(ptr) Variable Function + 213(txval221): 55(ptr) Variable Function + 222(txval204): 8(ptr) Variable Function + 238(txval214): 39(ptr) Variable Function + 254(txval224): 55(ptr) Variable Function + 270(txval301): 8(ptr) Variable Function + 280(txval311): 39(ptr) Variable Function + 289(txval321): 55(ptr) Variable Function + 298(txval304): 8(ptr) Variable Function + 314(txval314): 39(ptr) Variable Function + 330(txval324): 55(ptr) Variable Function + 348(psout): 347(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 31: 30(ptr) AccessChain 28 29 + 32: 20(fvec2) Load 31 + 35: 34(ptr) AccessChain 28 33 + 36: 23(ivec2) Load 35 + 38: 7(fvec4) ImageGather 19 32 37 Offset 36 + Store 9(txval001) 38 + 44: 41 Load 43(g_tTex2di4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 48: 30(ptr) AccessChain 28 29 + 49: 20(fvec2) Load 48 + 50: 34(ptr) AccessChain 28 33 + 51: 23(ivec2) Load 50 + 52: 25(ivec4) ImageGather 47 49 37 Offset 51 + Store 40(txval011) 52 + 60: 57 Load 59(g_tTex2du4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 64: 30(ptr) AccessChain 28 29 + 65: 20(fvec2) Load 64 + 66: 34(ptr) AccessChain 28 33 + 67: 23(ivec2) Load 66 + 68: 54(ivec4) ImageGather 63 65 37 Offset 67 + Store 56(txval021) 68 + 70: 10 Load 12(g_tTex2df4) + 71: 14 Load 16(g_sSamp) + 72: 18 SampledImage 70 71 + 73: 30(ptr) AccessChain 28 29 + 74: 20(fvec2) Load 73 + 75: 34(ptr) AccessChain 28 33 + 76: 23(ivec2) Load 75 + 77: 34(ptr) AccessChain 28 33 + 78: 23(ivec2) Load 77 + 79: 34(ptr) AccessChain 28 33 + 80: 23(ivec2) Load 79 + 81: 34(ptr) AccessChain 28 33 + 82: 23(ivec2) Load 81 + 85: 84 CompositeConstruct 76 78 80 82 + 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 + Store 69(txval004) 86 + 88: 41 Load 43(g_tTex2di4) + 89: 14 Load 16(g_sSamp) + 90: 46 SampledImage 88 89 + 91: 30(ptr) AccessChain 28 29 + 92: 20(fvec2) Load 91 + 93: 34(ptr) AccessChain 28 33 + 94: 23(ivec2) Load 93 + 95: 34(ptr) AccessChain 28 33 + 96: 23(ivec2) Load 95 + 97: 34(ptr) AccessChain 28 33 + 98: 23(ivec2) Load 97 + 99: 34(ptr) AccessChain 28 33 + 100: 23(ivec2) Load 99 + 101: 84 CompositeConstruct 94 96 98 100 + 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 + Store 87(txval014) 102 + 104: 57 Load 59(g_tTex2du4) + 105: 14 Load 16(g_sSamp) + 106: 62 SampledImage 104 105 + 107: 30(ptr) AccessChain 28 29 + 108: 20(fvec2) Load 107 + 109: 34(ptr) AccessChain 28 33 + 110: 23(ivec2) Load 109 + 111: 34(ptr) AccessChain 28 33 + 112: 23(ivec2) Load 111 + 113: 34(ptr) AccessChain 28 33 + 114: 23(ivec2) Load 113 + 115: 34(ptr) AccessChain 28 33 + 116: 23(ivec2) Load 115 + 117: 84 CompositeConstruct 110 112 114 116 + 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 + Store 103(txval024) 118 + 120: 10 Load 12(g_tTex2df4) + 121: 14 Load 16(g_sSamp) + 122: 18 SampledImage 120 121 + 123: 30(ptr) AccessChain 28 29 + 124: 20(fvec2) Load 123 + 125: 34(ptr) AccessChain 28 33 + 126: 23(ivec2) Load 125 + 127: 7(fvec4) ImageGather 122 124 29 Offset 126 + Store 119(txval101) 127 + 129: 41 Load 43(g_tTex2di4) + 130: 14 Load 16(g_sSamp) + 131: 46 SampledImage 129 130 + 132: 30(ptr) AccessChain 28 29 + 133: 20(fvec2) Load 132 + 134: 34(ptr) AccessChain 28 33 + 135: 23(ivec2) Load 134 + 136: 25(ivec4) ImageGather 131 133 29 Offset 135 + Store 128(txval111) 136 + 138: 57 Load 59(g_tTex2du4) + 139: 14 Load 16(g_sSamp) + 140: 62 SampledImage 138 139 + 141: 30(ptr) AccessChain 28 29 + 142: 20(fvec2) Load 141 + 143: 34(ptr) AccessChain 28 33 + 144: 23(ivec2) Load 143 + 145: 54(ivec4) ImageGather 140 142 29 Offset 144 + Store 137(txval121) 145 + 147: 10 Load 12(g_tTex2df4) + 148: 14 Load 16(g_sSamp) + 149: 18 SampledImage 147 148 + 150: 30(ptr) AccessChain 28 29 + 151: 20(fvec2) Load 150 + 152: 34(ptr) AccessChain 28 33 + 153: 23(ivec2) Load 152 + 154: 34(ptr) AccessChain 28 33 + 155: 23(ivec2) Load 154 + 156: 34(ptr) AccessChain 28 33 + 157: 23(ivec2) Load 156 + 158: 34(ptr) AccessChain 28 33 + 159: 23(ivec2) Load 158 + 160: 84 CompositeConstruct 153 155 157 159 + 161: 7(fvec4) ImageGather 149 151 29 ConstOffsets 160 + Store 146(txval104) 161 + 163: 41 Load 43(g_tTex2di4) + 164: 14 Load 16(g_sSamp) + 165: 46 SampledImage 163 164 + 166: 30(ptr) AccessChain 28 29 + 167: 20(fvec2) Load 166 + 168: 34(ptr) AccessChain 28 33 + 169: 23(ivec2) Load 168 + 170: 34(ptr) AccessChain 28 33 + 171: 23(ivec2) Load 170 + 172: 34(ptr) AccessChain 28 33 + 173: 23(ivec2) Load 172 + 174: 34(ptr) AccessChain 28 33 + 175: 23(ivec2) Load 174 + 176: 84 CompositeConstruct 169 171 173 175 + 177: 25(ivec4) ImageGather 165 167 29 ConstOffsets 176 + Store 162(txval114) 177 + 179: 57 Load 59(g_tTex2du4) + 180: 14 Load 16(g_sSamp) + 181: 62 SampledImage 179 180 + 182: 30(ptr) AccessChain 28 29 + 183: 20(fvec2) Load 182 + 184: 34(ptr) AccessChain 28 33 + 185: 23(ivec2) Load 184 + 186: 34(ptr) AccessChain 28 33 + 187: 23(ivec2) Load 186 + 188: 34(ptr) AccessChain 28 33 + 189: 23(ivec2) Load 188 + 190: 34(ptr) AccessChain 28 33 + 191: 23(ivec2) Load 190 + 192: 84 CompositeConstruct 185 187 189 191 + 193: 54(ivec4) ImageGather 181 183 29 ConstOffsets 192 + Store 178(txval124) 193 + 195: 10 Load 12(g_tTex2df4) + 196: 14 Load 16(g_sSamp) + 197: 18 SampledImage 195 196 + 198: 30(ptr) AccessChain 28 29 + 199: 20(fvec2) Load 198 + 200: 34(ptr) AccessChain 28 33 + 201: 23(ivec2) Load 200 + 203: 7(fvec4) ImageGather 197 199 202 Offset 201 + Store 194(txval201) 203 + 205: 41 Load 43(g_tTex2di4) + 206: 14 Load 16(g_sSamp) + 207: 46 SampledImage 205 206 + 208: 30(ptr) AccessChain 28 29 + 209: 20(fvec2) Load 208 + 210: 34(ptr) AccessChain 28 33 + 211: 23(ivec2) Load 210 + 212: 25(ivec4) ImageGather 207 209 202 Offset 211 + Store 204(txval211) 212 + 214: 57 Load 59(g_tTex2du4) + 215: 14 Load 16(g_sSamp) + 216: 62 SampledImage 214 215 + 217: 30(ptr) AccessChain 28 29 + 218: 20(fvec2) Load 217 + 219: 34(ptr) AccessChain 28 33 + 220: 23(ivec2) Load 219 + 221: 54(ivec4) ImageGather 216 218 202 Offset 220 + Store 213(txval221) 221 + 223: 10 Load 12(g_tTex2df4) + 224: 14 Load 16(g_sSamp) + 225: 18 SampledImage 223 224 + 226: 30(ptr) AccessChain 28 29 + 227: 20(fvec2) Load 226 + 228: 34(ptr) AccessChain 28 33 + 229: 23(ivec2) Load 228 + 230: 34(ptr) AccessChain 28 33 + 231: 23(ivec2) Load 230 + 232: 34(ptr) AccessChain 28 33 + 233: 23(ivec2) Load 232 + 234: 34(ptr) AccessChain 28 33 + 235: 23(ivec2) Load 234 + 236: 84 CompositeConstruct 229 231 233 235 + 237: 7(fvec4) ImageGather 225 227 202 ConstOffsets 236 + Store 222(txval204) 237 + 239: 41 Load 43(g_tTex2di4) + 240: 14 Load 16(g_sSamp) + 241: 46 SampledImage 239 240 + 242: 30(ptr) AccessChain 28 29 + 243: 20(fvec2) Load 242 + 244: 34(ptr) AccessChain 28 33 + 245: 23(ivec2) Load 244 + 246: 34(ptr) AccessChain 28 33 + 247: 23(ivec2) Load 246 + 248: 34(ptr) AccessChain 28 33 + 249: 23(ivec2) Load 248 + 250: 34(ptr) AccessChain 28 33 + 251: 23(ivec2) Load 250 + 252: 84 CompositeConstruct 245 247 249 251 + 253: 25(ivec4) ImageGather 241 243 202 ConstOffsets 252 + Store 238(txval214) 253 + 255: 57 Load 59(g_tTex2du4) + 256: 14 Load 16(g_sSamp) + 257: 62 SampledImage 255 256 + 258: 30(ptr) AccessChain 28 29 + 259: 20(fvec2) Load 258 + 260: 34(ptr) AccessChain 28 33 + 261: 23(ivec2) Load 260 + 262: 34(ptr) AccessChain 28 33 + 263: 23(ivec2) Load 262 + 264: 34(ptr) AccessChain 28 33 + 265: 23(ivec2) Load 264 + 266: 34(ptr) AccessChain 28 33 + 267: 23(ivec2) Load 266 + 268: 84 CompositeConstruct 261 263 265 267 + 269: 54(ivec4) ImageGather 257 259 202 ConstOffsets 268 + Store 254(txval224) 269 + 271: 10 Load 12(g_tTex2df4) + 272: 14 Load 16(g_sSamp) + 273: 18 SampledImage 271 272 + 274: 30(ptr) AccessChain 28 29 + 275: 20(fvec2) Load 274 + 276: 34(ptr) AccessChain 28 33 + 277: 23(ivec2) Load 276 + 279: 7(fvec4) ImageGather 273 275 278 Offset 277 + Store 270(txval301) 279 + 281: 41 Load 43(g_tTex2di4) + 282: 14 Load 16(g_sSamp) + 283: 46 SampledImage 281 282 + 284: 30(ptr) AccessChain 28 29 + 285: 20(fvec2) Load 284 + 286: 34(ptr) AccessChain 28 33 + 287: 23(ivec2) Load 286 + 288: 25(ivec4) ImageGather 283 285 278 Offset 287 + Store 280(txval311) 288 + 290: 57 Load 59(g_tTex2du4) + 291: 14 Load 16(g_sSamp) + 292: 62 SampledImage 290 291 + 293: 30(ptr) AccessChain 28 29 + 294: 20(fvec2) Load 293 + 295: 34(ptr) AccessChain 28 33 + 296: 23(ivec2) Load 295 + 297: 54(ivec4) ImageGather 292 294 278 Offset 296 + Store 289(txval321) 297 + 299: 10 Load 12(g_tTex2df4) + 300: 14 Load 16(g_sSamp) + 301: 18 SampledImage 299 300 + 302: 30(ptr) AccessChain 28 29 + 303: 20(fvec2) Load 302 + 304: 34(ptr) AccessChain 28 33 + 305: 23(ivec2) Load 304 + 306: 34(ptr) AccessChain 28 33 + 307: 23(ivec2) Load 306 + 308: 34(ptr) AccessChain 28 33 + 309: 23(ivec2) Load 308 + 310: 34(ptr) AccessChain 28 33 + 311: 23(ivec2) Load 310 + 312: 84 CompositeConstruct 305 307 309 311 + 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 + Store 298(txval304) 313 + 315: 41 Load 43(g_tTex2di4) + 316: 14 Load 16(g_sSamp) + 317: 46 SampledImage 315 316 + 318: 30(ptr) AccessChain 28 29 + 319: 20(fvec2) Load 318 + 320: 34(ptr) AccessChain 28 33 + 321: 23(ivec2) Load 320 + 322: 34(ptr) AccessChain 28 33 + 323: 23(ivec2) Load 322 + 324: 34(ptr) AccessChain 28 33 + 325: 23(ivec2) Load 324 + 326: 34(ptr) AccessChain 28 33 + 327: 23(ivec2) Load 326 + 328: 84 CompositeConstruct 321 323 325 327 + 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 + Store 314(txval314) 329 + 331: 57 Load 59(g_tTex2du4) + 332: 14 Load 16(g_sSamp) + 333: 62 SampledImage 331 332 + 334: 30(ptr) AccessChain 28 29 + 335: 20(fvec2) Load 334 + 336: 34(ptr) AccessChain 28 33 + 337: 23(ivec2) Load 336 + 338: 34(ptr) AccessChain 28 33 + 339: 23(ivec2) Load 338 + 340: 34(ptr) AccessChain 28 33 + 341: 23(ivec2) Load 340 + 342: 34(ptr) AccessChain 28 33 + 343: 23(ivec2) Load 342 + 344: 84 CompositeConstruct 337 339 341 343 + 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 + Store 330(txval324) 345 + 351: 8(ptr) AccessChain 348(psout) 37 + Store 351 350 + 353: 352(ptr) AccessChain 348(psout) 29 + Store 353 349 + 356: 8(ptr) AccessChain 348(psout) 37 + 357: 7(fvec4) Load 356 + Store 355(Color) 357 + 360: 352(ptr) AccessChain 348(psout) 29 + 361: 6(float) Load 360 + Store 359(Depth) 361 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..4722cff67d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -0,0 +1,1739 @@ +hlsl.gatherRGBA.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=16 ) uniform 3-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval011' (temp 4-component vector of int) +0:41 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval021' (temp 4-component vector of uint) +0:42 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval004' (temp 4-component vector of float) +0:44 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval014' (temp 4-component vector of int) +0:45 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval024' (temp 4-component vector of uint) +0:46 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'txval101' (temp 4-component vector of float) +0:56 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'txval111' (temp 4-component vector of int) +0:57 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'txval121' (temp 4-component vector of uint) +0:58 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'txval104' (temp 4-component vector of float) +0:60 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) +0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'txval114' (temp 4-component vector of int) +0:61 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'txval124' (temp 4-component vector of uint) +0:62 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:72 'txval201' (temp 4-component vector of float) +0:72 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of int) +0:73 'txval211' (temp 4-component vector of int) +0:73 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of uint) +0:74 'txval221' (temp 4-component vector of uint) +0:74 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:76 'txval204' (temp 4-component vector of float) +0:76 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) +0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of int) +0:77 'txval214' (temp 4-component vector of int) +0:77 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) +0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of uint) +0:78 'txval224' (temp 4-component vector of uint) +0:78 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) +0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 4-component vector of float) +0:88 'txval301' (temp 4-component vector of float) +0:88 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of int) +0:89 'txval311' (temp 4-component vector of int) +0:89 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child (temp 4-component vector of uint) +0:90 'txval321' (temp 4-component vector of uint) +0:90 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:92 'txval304' (temp 4-component vector of float) +0:92 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) +0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child (temp 4-component vector of int) +0:93 'txval314' (temp 4-component vector of int) +0:93 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) +0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of uint) +0:94 'txval324' (temp 4-component vector of uint) +0:94 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) +0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child (temp 4-component vector of float) +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 Sequence +0:109 Sequence +0:109 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:109 Color: direct index for structure (temp 4-component vector of float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:109 Depth: direct index for structure (temp float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:109 Constant: +0:109 1 (const int) +0:109 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 (layout(offset=16 ) uniform 3-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval011' (temp 4-component vector of int) +0:41 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval021' (temp 4-component vector of uint) +0:42 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval004' (temp 4-component vector of float) +0:44 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval014' (temp 4-component vector of int) +0:45 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval024' (temp 4-component vector of uint) +0:46 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'txval101' (temp 4-component vector of float) +0:56 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'txval111' (temp 4-component vector of int) +0:57 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'txval121' (temp 4-component vector of uint) +0:58 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'txval104' (temp 4-component vector of float) +0:60 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) +0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'txval114' (temp 4-component vector of int) +0:61 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'txval124' (temp 4-component vector of uint) +0:62 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:72 'txval201' (temp 4-component vector of float) +0:72 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of int) +0:73 'txval211' (temp 4-component vector of int) +0:73 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of uint) +0:74 'txval221' (temp 4-component vector of uint) +0:74 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:76 'txval204' (temp 4-component vector of float) +0:76 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) +0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of int) +0:77 'txval214' (temp 4-component vector of int) +0:77 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) +0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of uint) +0:78 'txval224' (temp 4-component vector of uint) +0:78 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) +0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 4-component vector of float) +0:88 'txval301' (temp 4-component vector of float) +0:88 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of int) +0:89 'txval311' (temp 4-component vector of int) +0:89 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child (temp 4-component vector of uint) +0:90 'txval321' (temp 4-component vector of uint) +0:90 textureGatherOffset (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 (layout(offset=16 ) uniform 3-component vector of float) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:92 'txval304' (temp 4-component vector of float) +0:92 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) +0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child (temp 4-component vector of int) +0:93 'txval314' (temp 4-component vector of int) +0:93 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) +0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of uint) +0:94 'txval324' (temp 4-component vector of uint) +0:94 textureGatherOffsets (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 (layout(offset=16 ) uniform 3-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) +0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child (temp 4-component vector of float) +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 Sequence +0:109 Sequence +0:109 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:109 Color: direct index for structure (temp 4-component vector of float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:109 Depth: direct index for structure (temp float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:109 Constant: +0:109 1 (const int) +0:109 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 382 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 355 359 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval001" + Name 12 "g_tTex2df4a" + Name 16 "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" + MemberName 26($Global) 4 "o1" + MemberName 26($Global) 5 "o2" + MemberName 26($Global) 6 "o3" + MemberName 26($Global) 7 "o4" + Name 28 "" + Name 40 "txval011" + Name 43 "g_tTex2di4a" + Name 56 "txval021" + Name 59 "g_tTex2du4a" + Name 69 "txval004" + Name 87 "txval014" + Name 103 "txval024" + Name 119 "txval101" + Name 129 "txval111" + Name 138 "txval121" + Name 147 "txval104" + Name 163 "txval114" + Name 179 "txval124" + Name 195 "txval201" + Name 204 "txval211" + Name 213 "txval221" + Name 222 "txval204" + Name 238 "txval214" + Name 254 "txval224" + Name 270 "txval301" + Name 280 "txval311" + Name 289 "txval321" + Name 298 "txval304" + Name 314 "txval314" + Name 330 "txval324" + Name 346 "PS_OUTPUT" + MemberName 346(PS_OUTPUT) 0 "Color" + MemberName 346(PS_OUTPUT) 1 "Depth" + Name 348 "psout" + Name 355 "Color" + Name 359 "Depth" + Name 363 "g_sSamp2d" + Name 366 "g_tTex1df4a" + Name 369 "g_tTex1di4a" + Name 372 "g_tTex1du4a" + Name 375 "g_tTexcdf4a" + Name 378 "g_tTexcdi4a" + Name 381 "g_tTexcdu4a" + Decorate 12(g_tTex2df4a) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + MemberDecorate 26($Global) 4 Offset 48 + MemberDecorate 26($Global) 5 Offset 56 + MemberDecorate 26($Global) 6 Offset 64 + MemberDecorate 26($Global) 7 Offset 80 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 43(g_tTex2di4a) DescriptorSet 0 + Decorate 59(g_tTex2du4a) DescriptorSet 0 + Decorate 355(Color) Location 0 + Decorate 359(Depth) BuiltIn FragDepth + Decorate 363(g_sSamp2d) DescriptorSet 0 + Decorate 366(g_tTex1df4a) DescriptorSet 0 + Decorate 366(g_tTex1df4a) Binding 0 + Decorate 369(g_tTex1di4a) DescriptorSet 0 + Decorate 372(g_tTex1du4a) DescriptorSet 0 + Decorate 375(g_tTexcdf4a) DescriptorSet 0 + Decorate 378(g_tTexcdi4a) DescriptorSet 0 + Decorate 381(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4a): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypeVector 22(int) 3 + 25: TypeVector 22(int) 4 + 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: 22(int) Constant 2 + 30: TypePointer Uniform 21(fvec3) + 33: 22(int) Constant 5 + 34: TypePointer Uniform 23(ivec2) + 37: 22(int) Constant 0 + 39: TypePointer Function 25(ivec4) + 41: TypeImage 22(int) 2D array sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex2di4a): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 53: TypeInt 32 0 + 54: TypeVector 53(int) 4 + 55: TypePointer Function 54(ivec4) + 57: TypeImage 53(int) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2du4a): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 83: 53(int) Constant 4 + 84: TypeArray 23(ivec2) 83 + 127: 22(int) Constant 1 + 278: 22(int) Constant 3 + 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 347: TypePointer Function 346(PS_OUTPUT) + 349: 6(float) Constant 1065353216 + 350: 7(fvec4) ConstantComposite 349 349 349 349 + 352: TypePointer Function 6(float) + 354: TypePointer Output 7(fvec4) + 355(Color): 354(ptr) Variable Output + 358: TypePointer Output 6(float) + 359(Depth): 358(ptr) Variable Output + 363(g_sSamp2d): 15(ptr) Variable UniformConstant + 364: TypeImage 6(float) 1D array sampled format:Unknown + 365: TypePointer UniformConstant 364 +366(g_tTex1df4a): 365(ptr) Variable UniformConstant + 367: TypeImage 22(int) 1D array sampled format:Unknown + 368: TypePointer UniformConstant 367 +369(g_tTex1di4a): 368(ptr) Variable UniformConstant + 370: TypeImage 53(int) 1D array sampled format:Unknown + 371: TypePointer UniformConstant 370 +372(g_tTex1du4a): 371(ptr) Variable UniformConstant + 373: TypeImage 6(float) Cube array sampled format:Unknown + 374: TypePointer UniformConstant 373 +375(g_tTexcdf4a): 374(ptr) Variable UniformConstant + 376: TypeImage 22(int) Cube array sampled format:Unknown + 377: TypePointer UniformConstant 376 +378(g_tTexcdi4a): 377(ptr) Variable UniformConstant + 379: TypeImage 53(int) Cube array sampled format:Unknown + 380: TypePointer UniformConstant 379 +381(g_tTexcdu4a): 380(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval001): 8(ptr) Variable Function + 40(txval011): 39(ptr) Variable Function + 56(txval021): 55(ptr) Variable Function + 69(txval004): 8(ptr) Variable Function + 87(txval014): 39(ptr) Variable Function + 103(txval024): 55(ptr) Variable Function + 119(txval101): 8(ptr) Variable Function + 129(txval111): 39(ptr) Variable Function + 138(txval121): 55(ptr) Variable Function + 147(txval104): 8(ptr) Variable Function + 163(txval114): 39(ptr) Variable Function + 179(txval124): 55(ptr) Variable Function + 195(txval201): 8(ptr) Variable Function + 204(txval211): 39(ptr) Variable Function + 213(txval221): 55(ptr) Variable Function + 222(txval204): 8(ptr) Variable Function + 238(txval214): 39(ptr) Variable Function + 254(txval224): 55(ptr) Variable Function + 270(txval301): 8(ptr) Variable Function + 280(txval311): 39(ptr) Variable Function + 289(txval321): 55(ptr) Variable Function + 298(txval304): 8(ptr) Variable Function + 314(txval314): 39(ptr) Variable Function + 330(txval324): 55(ptr) Variable Function + 348(psout): 347(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4a) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 31: 30(ptr) AccessChain 28 29 + 32: 21(fvec3) Load 31 + 35: 34(ptr) AccessChain 28 33 + 36: 23(ivec2) Load 35 + 38: 7(fvec4) ImageGather 19 32 37 Offset 36 + Store 9(txval001) 38 + 44: 41 Load 43(g_tTex2di4a) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 48: 30(ptr) AccessChain 28 29 + 49: 21(fvec3) Load 48 + 50: 34(ptr) AccessChain 28 33 + 51: 23(ivec2) Load 50 + 52: 25(ivec4) ImageGather 47 49 37 Offset 51 + Store 40(txval011) 52 + 60: 57 Load 59(g_tTex2du4a) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 64: 30(ptr) AccessChain 28 29 + 65: 21(fvec3) Load 64 + 66: 34(ptr) AccessChain 28 33 + 67: 23(ivec2) Load 66 + 68: 54(ivec4) ImageGather 63 65 37 Offset 67 + Store 56(txval021) 68 + 70: 10 Load 12(g_tTex2df4a) + 71: 14 Load 16(g_sSamp) + 72: 18 SampledImage 70 71 + 73: 30(ptr) AccessChain 28 29 + 74: 21(fvec3) Load 73 + 75: 34(ptr) AccessChain 28 33 + 76: 23(ivec2) Load 75 + 77: 34(ptr) AccessChain 28 33 + 78: 23(ivec2) Load 77 + 79: 34(ptr) AccessChain 28 33 + 80: 23(ivec2) Load 79 + 81: 34(ptr) AccessChain 28 33 + 82: 23(ivec2) Load 81 + 85: 84 CompositeConstruct 76 78 80 82 + 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 + Store 69(txval004) 86 + 88: 41 Load 43(g_tTex2di4a) + 89: 14 Load 16(g_sSamp) + 90: 46 SampledImage 88 89 + 91: 30(ptr) AccessChain 28 29 + 92: 21(fvec3) Load 91 + 93: 34(ptr) AccessChain 28 33 + 94: 23(ivec2) Load 93 + 95: 34(ptr) AccessChain 28 33 + 96: 23(ivec2) Load 95 + 97: 34(ptr) AccessChain 28 33 + 98: 23(ivec2) Load 97 + 99: 34(ptr) AccessChain 28 33 + 100: 23(ivec2) Load 99 + 101: 84 CompositeConstruct 94 96 98 100 + 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 + Store 87(txval014) 102 + 104: 57 Load 59(g_tTex2du4a) + 105: 14 Load 16(g_sSamp) + 106: 62 SampledImage 104 105 + 107: 30(ptr) AccessChain 28 29 + 108: 21(fvec3) Load 107 + 109: 34(ptr) AccessChain 28 33 + 110: 23(ivec2) Load 109 + 111: 34(ptr) AccessChain 28 33 + 112: 23(ivec2) Load 111 + 113: 34(ptr) AccessChain 28 33 + 114: 23(ivec2) Load 113 + 115: 34(ptr) AccessChain 28 33 + 116: 23(ivec2) Load 115 + 117: 84 CompositeConstruct 110 112 114 116 + 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 + Store 103(txval024) 118 + 120: 10 Load 12(g_tTex2df4a) + 121: 14 Load 16(g_sSamp) + 122: 18 SampledImage 120 121 + 123: 30(ptr) AccessChain 28 29 + 124: 21(fvec3) Load 123 + 125: 34(ptr) AccessChain 28 33 + 126: 23(ivec2) Load 125 + 128: 7(fvec4) ImageGather 122 124 127 Offset 126 + Store 119(txval101) 128 + 130: 41 Load 43(g_tTex2di4a) + 131: 14 Load 16(g_sSamp) + 132: 46 SampledImage 130 131 + 133: 30(ptr) AccessChain 28 29 + 134: 21(fvec3) Load 133 + 135: 34(ptr) AccessChain 28 33 + 136: 23(ivec2) Load 135 + 137: 25(ivec4) ImageGather 132 134 127 Offset 136 + Store 129(txval111) 137 + 139: 57 Load 59(g_tTex2du4a) + 140: 14 Load 16(g_sSamp) + 141: 62 SampledImage 139 140 + 142: 30(ptr) AccessChain 28 29 + 143: 21(fvec3) Load 142 + 144: 34(ptr) AccessChain 28 33 + 145: 23(ivec2) Load 144 + 146: 54(ivec4) ImageGather 141 143 127 Offset 145 + Store 138(txval121) 146 + 148: 10 Load 12(g_tTex2df4a) + 149: 14 Load 16(g_sSamp) + 150: 18 SampledImage 148 149 + 151: 30(ptr) AccessChain 28 29 + 152: 21(fvec3) Load 151 + 153: 34(ptr) AccessChain 28 33 + 154: 23(ivec2) Load 153 + 155: 34(ptr) AccessChain 28 33 + 156: 23(ivec2) Load 155 + 157: 34(ptr) AccessChain 28 33 + 158: 23(ivec2) Load 157 + 159: 34(ptr) AccessChain 28 33 + 160: 23(ivec2) Load 159 + 161: 84 CompositeConstruct 154 156 158 160 + 162: 7(fvec4) ImageGather 150 152 127 ConstOffsets 161 + Store 147(txval104) 162 + 164: 41 Load 43(g_tTex2di4a) + 165: 14 Load 16(g_sSamp) + 166: 46 SampledImage 164 165 + 167: 30(ptr) AccessChain 28 29 + 168: 21(fvec3) Load 167 + 169: 34(ptr) AccessChain 28 33 + 170: 23(ivec2) Load 169 + 171: 34(ptr) AccessChain 28 33 + 172: 23(ivec2) Load 171 + 173: 34(ptr) AccessChain 28 33 + 174: 23(ivec2) Load 173 + 175: 34(ptr) AccessChain 28 33 + 176: 23(ivec2) Load 175 + 177: 84 CompositeConstruct 170 172 174 176 + 178: 25(ivec4) ImageGather 166 168 127 ConstOffsets 177 + Store 163(txval114) 178 + 180: 57 Load 59(g_tTex2du4a) + 181: 14 Load 16(g_sSamp) + 182: 62 SampledImage 180 181 + 183: 30(ptr) AccessChain 28 29 + 184: 21(fvec3) Load 183 + 185: 34(ptr) AccessChain 28 33 + 186: 23(ivec2) Load 185 + 187: 34(ptr) AccessChain 28 33 + 188: 23(ivec2) Load 187 + 189: 34(ptr) AccessChain 28 33 + 190: 23(ivec2) Load 189 + 191: 34(ptr) AccessChain 28 33 + 192: 23(ivec2) Load 191 + 193: 84 CompositeConstruct 186 188 190 192 + 194: 54(ivec4) ImageGather 182 184 127 ConstOffsets 193 + Store 179(txval124) 194 + 196: 10 Load 12(g_tTex2df4a) + 197: 14 Load 16(g_sSamp) + 198: 18 SampledImage 196 197 + 199: 30(ptr) AccessChain 28 29 + 200: 21(fvec3) Load 199 + 201: 34(ptr) AccessChain 28 33 + 202: 23(ivec2) Load 201 + 203: 7(fvec4) ImageGather 198 200 29 Offset 202 + Store 195(txval201) 203 + 205: 41 Load 43(g_tTex2di4a) + 206: 14 Load 16(g_sSamp) + 207: 46 SampledImage 205 206 + 208: 30(ptr) AccessChain 28 29 + 209: 21(fvec3) Load 208 + 210: 34(ptr) AccessChain 28 33 + 211: 23(ivec2) Load 210 + 212: 25(ivec4) ImageGather 207 209 29 Offset 211 + Store 204(txval211) 212 + 214: 57 Load 59(g_tTex2du4a) + 215: 14 Load 16(g_sSamp) + 216: 62 SampledImage 214 215 + 217: 30(ptr) AccessChain 28 29 + 218: 21(fvec3) Load 217 + 219: 34(ptr) AccessChain 28 33 + 220: 23(ivec2) Load 219 + 221: 54(ivec4) ImageGather 216 218 29 Offset 220 + Store 213(txval221) 221 + 223: 10 Load 12(g_tTex2df4a) + 224: 14 Load 16(g_sSamp) + 225: 18 SampledImage 223 224 + 226: 30(ptr) AccessChain 28 29 + 227: 21(fvec3) Load 226 + 228: 34(ptr) AccessChain 28 33 + 229: 23(ivec2) Load 228 + 230: 34(ptr) AccessChain 28 33 + 231: 23(ivec2) Load 230 + 232: 34(ptr) AccessChain 28 33 + 233: 23(ivec2) Load 232 + 234: 34(ptr) AccessChain 28 33 + 235: 23(ivec2) Load 234 + 236: 84 CompositeConstruct 229 231 233 235 + 237: 7(fvec4) ImageGather 225 227 29 ConstOffsets 236 + Store 222(txval204) 237 + 239: 41 Load 43(g_tTex2di4a) + 240: 14 Load 16(g_sSamp) + 241: 46 SampledImage 239 240 + 242: 30(ptr) AccessChain 28 29 + 243: 21(fvec3) Load 242 + 244: 34(ptr) AccessChain 28 33 + 245: 23(ivec2) Load 244 + 246: 34(ptr) AccessChain 28 33 + 247: 23(ivec2) Load 246 + 248: 34(ptr) AccessChain 28 33 + 249: 23(ivec2) Load 248 + 250: 34(ptr) AccessChain 28 33 + 251: 23(ivec2) Load 250 + 252: 84 CompositeConstruct 245 247 249 251 + 253: 25(ivec4) ImageGather 241 243 29 ConstOffsets 252 + Store 238(txval214) 253 + 255: 57 Load 59(g_tTex2du4a) + 256: 14 Load 16(g_sSamp) + 257: 62 SampledImage 255 256 + 258: 30(ptr) AccessChain 28 29 + 259: 21(fvec3) Load 258 + 260: 34(ptr) AccessChain 28 33 + 261: 23(ivec2) Load 260 + 262: 34(ptr) AccessChain 28 33 + 263: 23(ivec2) Load 262 + 264: 34(ptr) AccessChain 28 33 + 265: 23(ivec2) Load 264 + 266: 34(ptr) AccessChain 28 33 + 267: 23(ivec2) Load 266 + 268: 84 CompositeConstruct 261 263 265 267 + 269: 54(ivec4) ImageGather 257 259 29 ConstOffsets 268 + Store 254(txval224) 269 + 271: 10 Load 12(g_tTex2df4a) + 272: 14 Load 16(g_sSamp) + 273: 18 SampledImage 271 272 + 274: 30(ptr) AccessChain 28 29 + 275: 21(fvec3) Load 274 + 276: 34(ptr) AccessChain 28 33 + 277: 23(ivec2) Load 276 + 279: 7(fvec4) ImageGather 273 275 278 Offset 277 + Store 270(txval301) 279 + 281: 41 Load 43(g_tTex2di4a) + 282: 14 Load 16(g_sSamp) + 283: 46 SampledImage 281 282 + 284: 30(ptr) AccessChain 28 29 + 285: 21(fvec3) Load 284 + 286: 34(ptr) AccessChain 28 33 + 287: 23(ivec2) Load 286 + 288: 25(ivec4) ImageGather 283 285 278 Offset 287 + Store 280(txval311) 288 + 290: 57 Load 59(g_tTex2du4a) + 291: 14 Load 16(g_sSamp) + 292: 62 SampledImage 290 291 + 293: 30(ptr) AccessChain 28 29 + 294: 21(fvec3) Load 293 + 295: 34(ptr) AccessChain 28 33 + 296: 23(ivec2) Load 295 + 297: 54(ivec4) ImageGather 292 294 278 Offset 296 + Store 289(txval321) 297 + 299: 10 Load 12(g_tTex2df4a) + 300: 14 Load 16(g_sSamp) + 301: 18 SampledImage 299 300 + 302: 30(ptr) AccessChain 28 29 + 303: 21(fvec3) Load 302 + 304: 34(ptr) AccessChain 28 33 + 305: 23(ivec2) Load 304 + 306: 34(ptr) AccessChain 28 33 + 307: 23(ivec2) Load 306 + 308: 34(ptr) AccessChain 28 33 + 309: 23(ivec2) Load 308 + 310: 34(ptr) AccessChain 28 33 + 311: 23(ivec2) Load 310 + 312: 84 CompositeConstruct 305 307 309 311 + 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 + Store 298(txval304) 313 + 315: 41 Load 43(g_tTex2di4a) + 316: 14 Load 16(g_sSamp) + 317: 46 SampledImage 315 316 + 318: 30(ptr) AccessChain 28 29 + 319: 21(fvec3) Load 318 + 320: 34(ptr) AccessChain 28 33 + 321: 23(ivec2) Load 320 + 322: 34(ptr) AccessChain 28 33 + 323: 23(ivec2) Load 322 + 324: 34(ptr) AccessChain 28 33 + 325: 23(ivec2) Load 324 + 326: 34(ptr) AccessChain 28 33 + 327: 23(ivec2) Load 326 + 328: 84 CompositeConstruct 321 323 325 327 + 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 + Store 314(txval314) 329 + 331: 57 Load 59(g_tTex2du4a) + 332: 14 Load 16(g_sSamp) + 333: 62 SampledImage 331 332 + 334: 30(ptr) AccessChain 28 29 + 335: 21(fvec3) Load 334 + 336: 34(ptr) AccessChain 28 33 + 337: 23(ivec2) Load 336 + 338: 34(ptr) AccessChain 28 33 + 339: 23(ivec2) Load 338 + 340: 34(ptr) AccessChain 28 33 + 341: 23(ivec2) Load 340 + 342: 34(ptr) AccessChain 28 33 + 343: 23(ivec2) Load 342 + 344: 84 CompositeConstruct 337 339 341 343 + 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 + Store 330(txval324) 345 + 351: 8(ptr) AccessChain 348(psout) 37 + Store 351 350 + 353: 352(ptr) AccessChain 348(psout) 127 + Store 353 349 + 356: 8(ptr) AccessChain 348(psout) 37 + 357: 7(fvec4) Load 356 + Store 355(Color) 357 + 360: 352(ptr) AccessChain 348(psout) 127 + 361: 6(float) Load 360 + Store 359(Depth) 361 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.dx10.frag.out new file mode 100644 index 0000000000..0c488cfbfa --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -0,0 +1,3089 @@ +hlsl.getdimensions.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sequence +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:279 Color: direct index for structure (temp 4-component vector of float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:279 Constant: +0:279 0 (const int) +0:279 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:279 Depth: direct index for structure (temp float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:279 Constant: +0:279 1 (const int) +0:279 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sequence +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:279 Color: direct index for structure (temp 4-component vector of float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:279 Constant: +0:279 0 (const int) +0:279 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:279 Depth: direct index for structure (temp float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:279 Constant: +0:279 1 (const int) +0:279 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 545 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + Capability ImageMSArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 534 538 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "sizeQueryTemp" + Name 12 "g_tTex1df4" + Name 16 "WidthU" + Name 18 "sizeQueryTemp" + Name 23 "NumberOfLevelsU" + Name 26 "sizeQueryTemp" + Name 29 "g_tTex1di4" + Name 33 "sizeQueryTemp" + Name 39 "sizeQueryTemp" + Name 42 "g_tTex1du4" + Name 46 "sizeQueryTemp" + Name 54 "sizeQueryTemp" + Name 57 "g_tTex1df4a" + Name 64 "ElementsU" + Name 68 "sizeQueryTemp" + Name 77 "sizeQueryTemp" + Name 80 "g_tTex1di4a" + Name 87 "sizeQueryTemp" + Name 96 "sizeQueryTemp" + Name 99 "g_tTex1du4a" + Name 106 "sizeQueryTemp" + Name 115 "sizeQueryTemp" + Name 118 "g_tTex2df4" + Name 123 "HeightU" + Name 126 "sizeQueryTemp" + Name 135 "sizeQueryTemp" + Name 138 "g_tTex2di4" + Name 145 "sizeQueryTemp" + Name 154 "sizeQueryTemp" + Name 157 "g_tTex2du4" + Name 164 "sizeQueryTemp" + Name 175 "sizeQueryTemp" + Name 178 "g_tTex2df4a" + Name 189 "sizeQueryTemp" + Name 200 "sizeQueryTemp" + Name 203 "g_tTex2di4a" + Name 212 "sizeQueryTemp" + Name 223 "sizeQueryTemp" + Name 226 "g_tTex2du4a" + Name 235 "sizeQueryTemp" + Name 246 "sizeQueryTemp" + Name 249 "g_tTex3df4" + Name 256 "DepthU" + Name 259 "sizeQueryTemp" + Name 270 "sizeQueryTemp" + Name 273 "g_tTex3di4" + Name 282 "sizeQueryTemp" + Name 293 "sizeQueryTemp" + Name 296 "g_tTex3du4" + Name 305 "sizeQueryTemp" + Name 316 "sizeQueryTemp" + Name 319 "g_tTexcdf4" + Name 326 "sizeQueryTemp" + Name 335 "sizeQueryTemp" + Name 338 "g_tTexcdi4" + Name 345 "sizeQueryTemp" + Name 354 "sizeQueryTemp" + Name 357 "g_tTexcdu4" + Name 364 "sizeQueryTemp" + Name 373 "sizeQueryTemp" + Name 376 "g_tTexcdf4a" + Name 385 "sizeQueryTemp" + Name 396 "sizeQueryTemp" + Name 399 "g_tTexcdi4a" + Name 408 "sizeQueryTemp" + Name 419 "sizeQueryTemp" + Name 422 "g_tTexcdu4a" + Name 431 "sizeQueryTemp" + Name 442 "sizeQueryTemp" + Name 445 "g_tTex2dmsf4" + Name 452 "NumberOfSamplesU" + Name 455 "sizeQueryTemp" + Name 458 "g_tTex2dmsi4" + Name 467 "sizeQueryTemp" + Name 470 "g_tTex2dmsu4" + Name 479 "sizeQueryTemp" + Name 482 "g_tTex2dmsf4a" + Name 493 "sizeQueryTemp" + Name 496 "g_tTex2dmsi4a" + Name 507 "sizeQueryTemp" + Name 510 "g_tTex2dmsu4a" + Name 522 "PS_OUTPUT" + MemberName 522(PS_OUTPUT) 0 "Color" + MemberName 522(PS_OUTPUT) 1 "Depth" + Name 524 "psout" + Name 534 "Color" + Name 538 "Depth" + Name 544 "g_sSamp" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex1df4a) DescriptorSet 0 + Decorate 80(g_tTex1di4a) DescriptorSet 0 + Decorate 99(g_tTex1du4a) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 138(g_tTex2di4) DescriptorSet 0 + Decorate 157(g_tTex2du4) DescriptorSet 0 + Decorate 178(g_tTex2df4a) DescriptorSet 0 + Decorate 203(g_tTex2di4a) DescriptorSet 0 + Decorate 226(g_tTex2du4a) DescriptorSet 0 + Decorate 249(g_tTex3df4) DescriptorSet 0 + Decorate 273(g_tTex3di4) DescriptorSet 0 + Decorate 296(g_tTex3du4) DescriptorSet 0 + Decorate 319(g_tTexcdf4) DescriptorSet 0 + Decorate 338(g_tTexcdi4) DescriptorSet 0 + Decorate 357(g_tTexcdu4) DescriptorSet 0 + Decorate 376(g_tTexcdf4a) DescriptorSet 0 + Decorate 399(g_tTexcdi4a) DescriptorSet 0 + Decorate 422(g_tTexcdu4a) DescriptorSet 0 + Decorate 445(g_tTex2dmsf4) DescriptorSet 0 + Decorate 458(g_tTex2dmsi4) DescriptorSet 0 + Decorate 470(g_tTex2dmsu4) DescriptorSet 0 + Decorate 482(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 + Decorate 534(Color) Location 0 + Decorate 538(Depth) BuiltIn FragDepth + Decorate 544(g_sSamp) DescriptorSet 0 + Decorate 544(g_sSamp) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypeImage 9(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 20: 6(int) Constant 6 + 27: TypeImage 14(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 40: TypeImage 6(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 52: TypeVector 6(int) 2 + 53: TypePointer Function 52(ivec2) + 55: TypeImage 9(float) 1D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex1df4a): 56(ptr) Variable UniformConstant + 59: TypeVector 14(int) 2 + 61: 6(int) Constant 0 + 65: 6(int) Constant 1 + 78: TypeImage 14(int) 1D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex1di4a): 79(ptr) Variable UniformConstant + 97: TypeImage 6(int) 1D array sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTex1du4a): 98(ptr) Variable UniformConstant + 116: TypeImage 9(float) 2D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 136: TypeImage 14(int) 2D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex2di4): 137(ptr) Variable UniformConstant + 155: TypeImage 6(int) 2D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex2du4): 156(ptr) Variable UniformConstant + 173: TypeVector 6(int) 3 + 174: TypePointer Function 173(ivec3) + 176: TypeImage 9(float) 2D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTex2df4a): 177(ptr) Variable UniformConstant + 180: TypeVector 14(int) 3 + 186: 6(int) Constant 2 + 201: TypeImage 14(int) 2D array sampled format:Unknown + 202: TypePointer UniformConstant 201 +203(g_tTex2di4a): 202(ptr) Variable UniformConstant + 224: TypeImage 6(int) 2D array sampled format:Unknown + 225: TypePointer UniformConstant 224 +226(g_tTex2du4a): 225(ptr) Variable UniformConstant + 247: TypeImage 9(float) 3D sampled format:Unknown + 248: TypePointer UniformConstant 247 + 249(g_tTex3df4): 248(ptr) Variable UniformConstant + 271: TypeImage 14(int) 3D sampled format:Unknown + 272: TypePointer UniformConstant 271 + 273(g_tTex3di4): 272(ptr) Variable UniformConstant + 294: TypeImage 6(int) 3D sampled format:Unknown + 295: TypePointer UniformConstant 294 + 296(g_tTex3du4): 295(ptr) Variable UniformConstant + 317: TypeImage 9(float) Cube sampled format:Unknown + 318: TypePointer UniformConstant 317 + 319(g_tTexcdf4): 318(ptr) Variable UniformConstant + 336: TypeImage 14(int) Cube sampled format:Unknown + 337: TypePointer UniformConstant 336 + 338(g_tTexcdi4): 337(ptr) Variable UniformConstant + 355: TypeImage 6(int) Cube sampled format:Unknown + 356: TypePointer UniformConstant 355 + 357(g_tTexcdu4): 356(ptr) Variable UniformConstant + 374: TypeImage 9(float) Cube array sampled format:Unknown + 375: TypePointer UniformConstant 374 +376(g_tTexcdf4a): 375(ptr) Variable UniformConstant + 397: TypeImage 14(int) Cube array sampled format:Unknown + 398: TypePointer UniformConstant 397 +399(g_tTexcdi4a): 398(ptr) Variable UniformConstant + 420: TypeImage 6(int) Cube array sampled format:Unknown + 421: TypePointer UniformConstant 420 +422(g_tTexcdu4a): 421(ptr) Variable UniformConstant + 443: TypeImage 9(float) 2D multi-sampled sampled format:Unknown + 444: TypePointer UniformConstant 443 +445(g_tTex2dmsf4): 444(ptr) Variable UniformConstant + 456: TypeImage 14(int) 2D multi-sampled sampled format:Unknown + 457: TypePointer UniformConstant 456 +458(g_tTex2dmsi4): 457(ptr) Variable UniformConstant + 468: TypeImage 6(int) 2D multi-sampled sampled format:Unknown + 469: TypePointer UniformConstant 468 +470(g_tTex2dmsu4): 469(ptr) Variable UniformConstant + 480: TypeImage 9(float) 2D array multi-sampled sampled format:Unknown + 481: TypePointer UniformConstant 480 +482(g_tTex2dmsf4a): 481(ptr) Variable UniformConstant + 494: TypeImage 14(int) 2D array multi-sampled sampled format:Unknown + 495: TypePointer UniformConstant 494 +496(g_tTex2dmsi4a): 495(ptr) Variable UniformConstant + 508: TypeImage 6(int) 2D array multi-sampled sampled format:Unknown + 509: TypePointer UniformConstant 508 +510(g_tTex2dmsu4a): 509(ptr) Variable UniformConstant + 521: TypeVector 9(float) 4 + 522(PS_OUTPUT): TypeStruct 521(fvec4) 9(float) + 523: TypePointer Function 522(PS_OUTPUT) + 525: 14(int) Constant 0 + 526: 9(float) Constant 1065353216 + 527: 521(fvec4) ConstantComposite 526 526 526 526 + 528: TypePointer Function 521(fvec4) + 530: 14(int) Constant 1 + 531: TypePointer Function 9(float) + 533: TypePointer Output 521(fvec4) + 534(Color): 533(ptr) Variable Output + 537: TypePointer Output 9(float) + 538(Depth): 537(ptr) Variable Output + 542: TypeSampler + 543: TypePointer UniformConstant 542 + 544(g_sSamp): 543(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +8(sizeQueryTemp): 7(ptr) Variable Function + 16(WidthU): 7(ptr) Variable Function +18(sizeQueryTemp): 7(ptr) Variable Function +23(NumberOfLevelsU): 7(ptr) Variable Function +26(sizeQueryTemp): 7(ptr) Variable Function +33(sizeQueryTemp): 7(ptr) Variable Function +39(sizeQueryTemp): 7(ptr) Variable Function +46(sizeQueryTemp): 7(ptr) Variable Function +54(sizeQueryTemp): 53(ptr) Variable Function + 64(ElementsU): 7(ptr) Variable Function +68(sizeQueryTemp): 53(ptr) Variable Function +77(sizeQueryTemp): 53(ptr) Variable Function +87(sizeQueryTemp): 53(ptr) Variable Function +96(sizeQueryTemp): 53(ptr) Variable Function +106(sizeQueryTemp): 53(ptr) Variable Function +115(sizeQueryTemp): 53(ptr) Variable Function + 123(HeightU): 7(ptr) Variable Function +126(sizeQueryTemp): 53(ptr) Variable Function +135(sizeQueryTemp): 53(ptr) Variable Function +145(sizeQueryTemp): 53(ptr) Variable Function +154(sizeQueryTemp): 53(ptr) Variable Function +164(sizeQueryTemp): 53(ptr) Variable Function +175(sizeQueryTemp): 174(ptr) Variable Function +189(sizeQueryTemp): 174(ptr) Variable Function +200(sizeQueryTemp): 174(ptr) Variable Function +212(sizeQueryTemp): 174(ptr) Variable Function +223(sizeQueryTemp): 174(ptr) Variable Function +235(sizeQueryTemp): 174(ptr) Variable Function +246(sizeQueryTemp): 174(ptr) Variable Function + 256(DepthU): 7(ptr) Variable Function +259(sizeQueryTemp): 174(ptr) Variable Function +270(sizeQueryTemp): 174(ptr) Variable Function +282(sizeQueryTemp): 174(ptr) Variable Function +293(sizeQueryTemp): 174(ptr) Variable Function +305(sizeQueryTemp): 174(ptr) Variable Function +316(sizeQueryTemp): 53(ptr) Variable Function +326(sizeQueryTemp): 53(ptr) Variable Function +335(sizeQueryTemp): 53(ptr) Variable Function +345(sizeQueryTemp): 53(ptr) Variable Function +354(sizeQueryTemp): 53(ptr) Variable Function +364(sizeQueryTemp): 53(ptr) Variable Function +373(sizeQueryTemp): 174(ptr) Variable Function +385(sizeQueryTemp): 174(ptr) Variable Function +396(sizeQueryTemp): 174(ptr) Variable Function +408(sizeQueryTemp): 174(ptr) Variable Function +419(sizeQueryTemp): 174(ptr) Variable Function +431(sizeQueryTemp): 174(ptr) Variable Function +442(sizeQueryTemp): 53(ptr) Variable Function +452(NumberOfSamplesU): 7(ptr) Variable Function +455(sizeQueryTemp): 53(ptr) Variable Function +467(sizeQueryTemp): 53(ptr) Variable Function +479(sizeQueryTemp): 174(ptr) Variable Function +493(sizeQueryTemp): 174(ptr) Variable Function +507(sizeQueryTemp): 174(ptr) Variable Function + 524(psout): 523(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 15: 14(int) ImageQuerySize 13 + Store 8(sizeQueryTemp) 15 + 17: 6(int) Load 8(sizeQueryTemp) + Store 16(WidthU) 17 + 19: 10 Load 12(g_tTex1df4) + 21: 14(int) ImageQuerySizeLod 19 20 + Store 18(sizeQueryTemp) 21 + 22: 6(int) Load 18(sizeQueryTemp) + Store 16(WidthU) 22 + 24: 10 Load 12(g_tTex1df4) + 25: 14(int) ImageQueryLevels 24 + Store 23(NumberOfLevelsU) 25 + 30: 27 Load 29(g_tTex1di4) + 31: 14(int) ImageQuerySize 30 + Store 26(sizeQueryTemp) 31 + 32: 6(int) Load 26(sizeQueryTemp) + Store 16(WidthU) 32 + 34: 27 Load 29(g_tTex1di4) + 35: 14(int) ImageQuerySizeLod 34 20 + Store 33(sizeQueryTemp) 35 + 36: 6(int) Load 33(sizeQueryTemp) + Store 16(WidthU) 36 + 37: 27 Load 29(g_tTex1di4) + 38: 14(int) ImageQueryLevels 37 + Store 23(NumberOfLevelsU) 38 + 43: 40 Load 42(g_tTex1du4) + 44: 14(int) ImageQuerySize 43 + Store 39(sizeQueryTemp) 44 + 45: 6(int) Load 39(sizeQueryTemp) + Store 16(WidthU) 45 + 47: 40 Load 42(g_tTex1du4) + 48: 14(int) ImageQuerySizeLod 47 20 + Store 46(sizeQueryTemp) 48 + 49: 6(int) Load 46(sizeQueryTemp) + Store 16(WidthU) 49 + 50: 40 Load 42(g_tTex1du4) + 51: 14(int) ImageQueryLevels 50 + Store 23(NumberOfLevelsU) 51 + 58: 55 Load 57(g_tTex1df4a) + 60: 59(ivec2) ImageQuerySize 58 + Store 54(sizeQueryTemp) 60 + 62: 7(ptr) AccessChain 54(sizeQueryTemp) 61 + 63: 6(int) Load 62 + Store 16(WidthU) 63 + 66: 7(ptr) AccessChain 54(sizeQueryTemp) 65 + 67: 6(int) Load 66 + Store 64(ElementsU) 67 + 69: 55 Load 57(g_tTex1df4a) + 70: 59(ivec2) ImageQuerySizeLod 69 20 + Store 68(sizeQueryTemp) 70 + 71: 7(ptr) AccessChain 68(sizeQueryTemp) 61 + 72: 6(int) Load 71 + Store 16(WidthU) 72 + 73: 7(ptr) AccessChain 68(sizeQueryTemp) 65 + 74: 6(int) Load 73 + Store 64(ElementsU) 74 + 75: 55 Load 57(g_tTex1df4a) + 76: 14(int) ImageQueryLevels 75 + Store 23(NumberOfLevelsU) 76 + 81: 78 Load 80(g_tTex1di4a) + 82: 59(ivec2) ImageQuerySize 81 + Store 77(sizeQueryTemp) 82 + 83: 7(ptr) AccessChain 77(sizeQueryTemp) 61 + 84: 6(int) Load 83 + Store 16(WidthU) 84 + 85: 7(ptr) AccessChain 77(sizeQueryTemp) 65 + 86: 6(int) Load 85 + Store 64(ElementsU) 86 + 88: 78 Load 80(g_tTex1di4a) + 89: 59(ivec2) ImageQuerySizeLod 88 20 + Store 87(sizeQueryTemp) 89 + 90: 7(ptr) AccessChain 87(sizeQueryTemp) 61 + 91: 6(int) Load 90 + Store 16(WidthU) 91 + 92: 7(ptr) AccessChain 87(sizeQueryTemp) 65 + 93: 6(int) Load 92 + Store 64(ElementsU) 93 + 94: 78 Load 80(g_tTex1di4a) + 95: 14(int) ImageQueryLevels 94 + Store 23(NumberOfLevelsU) 95 + 100: 97 Load 99(g_tTex1du4a) + 101: 59(ivec2) ImageQuerySize 100 + Store 96(sizeQueryTemp) 101 + 102: 7(ptr) AccessChain 96(sizeQueryTemp) 61 + 103: 6(int) Load 102 + Store 16(WidthU) 103 + 104: 7(ptr) AccessChain 96(sizeQueryTemp) 65 + 105: 6(int) Load 104 + Store 64(ElementsU) 105 + 107: 97 Load 99(g_tTex1du4a) + 108: 59(ivec2) ImageQuerySizeLod 107 20 + Store 106(sizeQueryTemp) 108 + 109: 7(ptr) AccessChain 106(sizeQueryTemp) 61 + 110: 6(int) Load 109 + Store 16(WidthU) 110 + 111: 7(ptr) AccessChain 106(sizeQueryTemp) 65 + 112: 6(int) Load 111 + Store 64(ElementsU) 112 + 113: 97 Load 99(g_tTex1du4a) + 114: 14(int) ImageQueryLevels 113 + Store 23(NumberOfLevelsU) 114 + 119: 116 Load 118(g_tTex2df4) + 120: 59(ivec2) ImageQuerySize 119 + Store 115(sizeQueryTemp) 120 + 121: 7(ptr) AccessChain 115(sizeQueryTemp) 61 + 122: 6(int) Load 121 + Store 16(WidthU) 122 + 124: 7(ptr) AccessChain 115(sizeQueryTemp) 65 + 125: 6(int) Load 124 + Store 123(HeightU) 125 + 127: 116 Load 118(g_tTex2df4) + 128: 59(ivec2) ImageQuerySizeLod 127 20 + Store 126(sizeQueryTemp) 128 + 129: 7(ptr) AccessChain 126(sizeQueryTemp) 61 + 130: 6(int) Load 129 + Store 16(WidthU) 130 + 131: 7(ptr) AccessChain 126(sizeQueryTemp) 65 + 132: 6(int) Load 131 + Store 123(HeightU) 132 + 133: 116 Load 118(g_tTex2df4) + 134: 14(int) ImageQueryLevels 133 + Store 23(NumberOfLevelsU) 134 + 139: 136 Load 138(g_tTex2di4) + 140: 59(ivec2) ImageQuerySize 139 + Store 135(sizeQueryTemp) 140 + 141: 7(ptr) AccessChain 135(sizeQueryTemp) 61 + 142: 6(int) Load 141 + Store 16(WidthU) 142 + 143: 7(ptr) AccessChain 135(sizeQueryTemp) 65 + 144: 6(int) Load 143 + Store 123(HeightU) 144 + 146: 136 Load 138(g_tTex2di4) + 147: 59(ivec2) ImageQuerySizeLod 146 20 + Store 145(sizeQueryTemp) 147 + 148: 7(ptr) AccessChain 145(sizeQueryTemp) 61 + 149: 6(int) Load 148 + Store 16(WidthU) 149 + 150: 7(ptr) AccessChain 145(sizeQueryTemp) 65 + 151: 6(int) Load 150 + Store 123(HeightU) 151 + 152: 136 Load 138(g_tTex2di4) + 153: 14(int) ImageQueryLevels 152 + Store 23(NumberOfLevelsU) 153 + 158: 155 Load 157(g_tTex2du4) + 159: 59(ivec2) ImageQuerySize 158 + Store 154(sizeQueryTemp) 159 + 160: 7(ptr) AccessChain 154(sizeQueryTemp) 61 + 161: 6(int) Load 160 + Store 16(WidthU) 161 + 162: 7(ptr) AccessChain 154(sizeQueryTemp) 65 + 163: 6(int) Load 162 + Store 123(HeightU) 163 + 165: 155 Load 157(g_tTex2du4) + 166: 59(ivec2) ImageQuerySizeLod 165 20 + Store 164(sizeQueryTemp) 166 + 167: 7(ptr) AccessChain 164(sizeQueryTemp) 61 + 168: 6(int) Load 167 + Store 16(WidthU) 168 + 169: 7(ptr) AccessChain 164(sizeQueryTemp) 65 + 170: 6(int) Load 169 + Store 123(HeightU) 170 + 171: 155 Load 157(g_tTex2du4) + 172: 14(int) ImageQueryLevels 171 + Store 23(NumberOfLevelsU) 172 + 179: 176 Load 178(g_tTex2df4a) + 181: 180(ivec3) ImageQuerySize 179 + Store 175(sizeQueryTemp) 181 + 182: 7(ptr) AccessChain 175(sizeQueryTemp) 61 + 183: 6(int) Load 182 + Store 16(WidthU) 183 + 184: 7(ptr) AccessChain 175(sizeQueryTemp) 65 + 185: 6(int) Load 184 + Store 123(HeightU) 185 + 187: 7(ptr) AccessChain 175(sizeQueryTemp) 186 + 188: 6(int) Load 187 + Store 64(ElementsU) 188 + 190: 176 Load 178(g_tTex2df4a) + 191: 180(ivec3) ImageQuerySizeLod 190 20 + Store 189(sizeQueryTemp) 191 + 192: 7(ptr) AccessChain 189(sizeQueryTemp) 61 + 193: 6(int) Load 192 + Store 16(WidthU) 193 + 194: 7(ptr) AccessChain 189(sizeQueryTemp) 65 + 195: 6(int) Load 194 + Store 123(HeightU) 195 + 196: 7(ptr) AccessChain 189(sizeQueryTemp) 186 + 197: 6(int) Load 196 + Store 64(ElementsU) 197 + 198: 176 Load 178(g_tTex2df4a) + 199: 14(int) ImageQueryLevels 198 + Store 23(NumberOfLevelsU) 199 + 204: 201 Load 203(g_tTex2di4a) + 205: 180(ivec3) ImageQuerySize 204 + Store 200(sizeQueryTemp) 205 + 206: 7(ptr) AccessChain 200(sizeQueryTemp) 61 + 207: 6(int) Load 206 + Store 16(WidthU) 207 + 208: 7(ptr) AccessChain 200(sizeQueryTemp) 65 + 209: 6(int) Load 208 + Store 123(HeightU) 209 + 210: 7(ptr) AccessChain 200(sizeQueryTemp) 186 + 211: 6(int) Load 210 + Store 64(ElementsU) 211 + 213: 201 Load 203(g_tTex2di4a) + 214: 180(ivec3) ImageQuerySizeLod 213 20 + Store 212(sizeQueryTemp) 214 + 215: 7(ptr) AccessChain 212(sizeQueryTemp) 61 + 216: 6(int) Load 215 + Store 16(WidthU) 216 + 217: 7(ptr) AccessChain 212(sizeQueryTemp) 65 + 218: 6(int) Load 217 + Store 123(HeightU) 218 + 219: 7(ptr) AccessChain 212(sizeQueryTemp) 186 + 220: 6(int) Load 219 + Store 64(ElementsU) 220 + 221: 201 Load 203(g_tTex2di4a) + 222: 14(int) ImageQueryLevels 221 + Store 23(NumberOfLevelsU) 222 + 227: 224 Load 226(g_tTex2du4a) + 228: 180(ivec3) ImageQuerySize 227 + Store 223(sizeQueryTemp) 228 + 229: 7(ptr) AccessChain 223(sizeQueryTemp) 61 + 230: 6(int) Load 229 + Store 16(WidthU) 230 + 231: 7(ptr) AccessChain 223(sizeQueryTemp) 65 + 232: 6(int) Load 231 + Store 123(HeightU) 232 + 233: 7(ptr) AccessChain 223(sizeQueryTemp) 186 + 234: 6(int) Load 233 + Store 64(ElementsU) 234 + 236: 224 Load 226(g_tTex2du4a) + 237: 180(ivec3) ImageQuerySizeLod 236 20 + Store 235(sizeQueryTemp) 237 + 238: 7(ptr) AccessChain 235(sizeQueryTemp) 61 + 239: 6(int) Load 238 + Store 16(WidthU) 239 + 240: 7(ptr) AccessChain 235(sizeQueryTemp) 65 + 241: 6(int) Load 240 + Store 123(HeightU) 241 + 242: 7(ptr) AccessChain 235(sizeQueryTemp) 186 + 243: 6(int) Load 242 + Store 64(ElementsU) 243 + 244: 224 Load 226(g_tTex2du4a) + 245: 14(int) ImageQueryLevels 244 + Store 23(NumberOfLevelsU) 245 + 250: 247 Load 249(g_tTex3df4) + 251: 180(ivec3) ImageQuerySize 250 + Store 246(sizeQueryTemp) 251 + 252: 7(ptr) AccessChain 246(sizeQueryTemp) 61 + 253: 6(int) Load 252 + Store 16(WidthU) 253 + 254: 7(ptr) AccessChain 246(sizeQueryTemp) 65 + 255: 6(int) Load 254 + Store 123(HeightU) 255 + 257: 7(ptr) AccessChain 246(sizeQueryTemp) 186 + 258: 6(int) Load 257 + Store 256(DepthU) 258 + 260: 247 Load 249(g_tTex3df4) + 261: 180(ivec3) ImageQuerySizeLod 260 20 + Store 259(sizeQueryTemp) 261 + 262: 7(ptr) AccessChain 259(sizeQueryTemp) 61 + 263: 6(int) Load 262 + Store 16(WidthU) 263 + 264: 7(ptr) AccessChain 259(sizeQueryTemp) 65 + 265: 6(int) Load 264 + Store 123(HeightU) 265 + 266: 7(ptr) AccessChain 259(sizeQueryTemp) 186 + 267: 6(int) Load 266 + Store 256(DepthU) 267 + 268: 247 Load 249(g_tTex3df4) + 269: 14(int) ImageQueryLevels 268 + Store 23(NumberOfLevelsU) 269 + 274: 271 Load 273(g_tTex3di4) + 275: 180(ivec3) ImageQuerySize 274 + Store 270(sizeQueryTemp) 275 + 276: 7(ptr) AccessChain 270(sizeQueryTemp) 61 + 277: 6(int) Load 276 + Store 16(WidthU) 277 + 278: 7(ptr) AccessChain 270(sizeQueryTemp) 65 + 279: 6(int) Load 278 + Store 123(HeightU) 279 + 280: 7(ptr) AccessChain 270(sizeQueryTemp) 186 + 281: 6(int) Load 280 + Store 256(DepthU) 281 + 283: 271 Load 273(g_tTex3di4) + 284: 180(ivec3) ImageQuerySizeLod 283 20 + Store 282(sizeQueryTemp) 284 + 285: 7(ptr) AccessChain 282(sizeQueryTemp) 61 + 286: 6(int) Load 285 + Store 16(WidthU) 286 + 287: 7(ptr) AccessChain 282(sizeQueryTemp) 65 + 288: 6(int) Load 287 + Store 123(HeightU) 288 + 289: 7(ptr) AccessChain 282(sizeQueryTemp) 186 + 290: 6(int) Load 289 + Store 256(DepthU) 290 + 291: 271 Load 273(g_tTex3di4) + 292: 14(int) ImageQueryLevels 291 + Store 23(NumberOfLevelsU) 292 + 297: 294 Load 296(g_tTex3du4) + 298: 180(ivec3) ImageQuerySize 297 + Store 293(sizeQueryTemp) 298 + 299: 7(ptr) AccessChain 293(sizeQueryTemp) 61 + 300: 6(int) Load 299 + Store 16(WidthU) 300 + 301: 7(ptr) AccessChain 293(sizeQueryTemp) 65 + 302: 6(int) Load 301 + Store 123(HeightU) 302 + 303: 7(ptr) AccessChain 293(sizeQueryTemp) 186 + 304: 6(int) Load 303 + Store 256(DepthU) 304 + 306: 294 Load 296(g_tTex3du4) + 307: 180(ivec3) ImageQuerySizeLod 306 20 + Store 305(sizeQueryTemp) 307 + 308: 7(ptr) AccessChain 305(sizeQueryTemp) 61 + 309: 6(int) Load 308 + Store 16(WidthU) 309 + 310: 7(ptr) AccessChain 305(sizeQueryTemp) 65 + 311: 6(int) Load 310 + Store 123(HeightU) 311 + 312: 7(ptr) AccessChain 305(sizeQueryTemp) 186 + 313: 6(int) Load 312 + Store 256(DepthU) 313 + 314: 294 Load 296(g_tTex3du4) + 315: 14(int) ImageQueryLevels 314 + Store 23(NumberOfLevelsU) 315 + 320: 317 Load 319(g_tTexcdf4) + 321: 59(ivec2) ImageQuerySize 320 + Store 316(sizeQueryTemp) 321 + 322: 7(ptr) AccessChain 316(sizeQueryTemp) 61 + 323: 6(int) Load 322 + Store 16(WidthU) 323 + 324: 7(ptr) AccessChain 316(sizeQueryTemp) 65 + 325: 6(int) Load 324 + Store 123(HeightU) 325 + 327: 317 Load 319(g_tTexcdf4) + 328: 59(ivec2) ImageQuerySizeLod 327 20 + Store 326(sizeQueryTemp) 328 + 329: 7(ptr) AccessChain 326(sizeQueryTemp) 61 + 330: 6(int) Load 329 + Store 16(WidthU) 330 + 331: 7(ptr) AccessChain 326(sizeQueryTemp) 65 + 332: 6(int) Load 331 + Store 123(HeightU) 332 + 333: 317 Load 319(g_tTexcdf4) + 334: 14(int) ImageQueryLevels 333 + Store 23(NumberOfLevelsU) 334 + 339: 336 Load 338(g_tTexcdi4) + 340: 59(ivec2) ImageQuerySize 339 + Store 335(sizeQueryTemp) 340 + 341: 7(ptr) AccessChain 335(sizeQueryTemp) 61 + 342: 6(int) Load 341 + Store 16(WidthU) 342 + 343: 7(ptr) AccessChain 335(sizeQueryTemp) 65 + 344: 6(int) Load 343 + Store 123(HeightU) 344 + 346: 336 Load 338(g_tTexcdi4) + 347: 59(ivec2) ImageQuerySizeLod 346 20 + Store 345(sizeQueryTemp) 347 + 348: 7(ptr) AccessChain 345(sizeQueryTemp) 61 + 349: 6(int) Load 348 + Store 16(WidthU) 349 + 350: 7(ptr) AccessChain 345(sizeQueryTemp) 65 + 351: 6(int) Load 350 + Store 123(HeightU) 351 + 352: 336 Load 338(g_tTexcdi4) + 353: 14(int) ImageQueryLevels 352 + Store 23(NumberOfLevelsU) 353 + 358: 355 Load 357(g_tTexcdu4) + 359: 59(ivec2) ImageQuerySize 358 + Store 354(sizeQueryTemp) 359 + 360: 7(ptr) AccessChain 354(sizeQueryTemp) 61 + 361: 6(int) Load 360 + Store 16(WidthU) 361 + 362: 7(ptr) AccessChain 354(sizeQueryTemp) 65 + 363: 6(int) Load 362 + Store 123(HeightU) 363 + 365: 355 Load 357(g_tTexcdu4) + 366: 59(ivec2) ImageQuerySizeLod 365 20 + Store 364(sizeQueryTemp) 366 + 367: 7(ptr) AccessChain 364(sizeQueryTemp) 61 + 368: 6(int) Load 367 + Store 16(WidthU) 368 + 369: 7(ptr) AccessChain 364(sizeQueryTemp) 65 + 370: 6(int) Load 369 + Store 123(HeightU) 370 + 371: 355 Load 357(g_tTexcdu4) + 372: 14(int) ImageQueryLevels 371 + Store 23(NumberOfLevelsU) 372 + 377: 374 Load 376(g_tTexcdf4a) + 378: 180(ivec3) ImageQuerySize 377 + Store 373(sizeQueryTemp) 378 + 379: 7(ptr) AccessChain 373(sizeQueryTemp) 61 + 380: 6(int) Load 379 + Store 16(WidthU) 380 + 381: 7(ptr) AccessChain 373(sizeQueryTemp) 65 + 382: 6(int) Load 381 + Store 123(HeightU) 382 + 383: 7(ptr) AccessChain 373(sizeQueryTemp) 186 + 384: 6(int) Load 383 + Store 64(ElementsU) 384 + 386: 374 Load 376(g_tTexcdf4a) + 387: 180(ivec3) ImageQuerySizeLod 386 20 + Store 385(sizeQueryTemp) 387 + 388: 7(ptr) AccessChain 385(sizeQueryTemp) 61 + 389: 6(int) Load 388 + Store 16(WidthU) 389 + 390: 7(ptr) AccessChain 385(sizeQueryTemp) 65 + 391: 6(int) Load 390 + Store 123(HeightU) 391 + 392: 7(ptr) AccessChain 385(sizeQueryTemp) 186 + 393: 6(int) Load 392 + Store 64(ElementsU) 393 + 394: 374 Load 376(g_tTexcdf4a) + 395: 14(int) ImageQueryLevels 394 + Store 23(NumberOfLevelsU) 395 + 400: 397 Load 399(g_tTexcdi4a) + 401: 180(ivec3) ImageQuerySize 400 + Store 396(sizeQueryTemp) 401 + 402: 7(ptr) AccessChain 396(sizeQueryTemp) 61 + 403: 6(int) Load 402 + Store 16(WidthU) 403 + 404: 7(ptr) AccessChain 396(sizeQueryTemp) 65 + 405: 6(int) Load 404 + Store 123(HeightU) 405 + 406: 7(ptr) AccessChain 396(sizeQueryTemp) 186 + 407: 6(int) Load 406 + Store 64(ElementsU) 407 + 409: 397 Load 399(g_tTexcdi4a) + 410: 180(ivec3) ImageQuerySizeLod 409 20 + Store 408(sizeQueryTemp) 410 + 411: 7(ptr) AccessChain 408(sizeQueryTemp) 61 + 412: 6(int) Load 411 + Store 16(WidthU) 412 + 413: 7(ptr) AccessChain 408(sizeQueryTemp) 65 + 414: 6(int) Load 413 + Store 123(HeightU) 414 + 415: 7(ptr) AccessChain 408(sizeQueryTemp) 186 + 416: 6(int) Load 415 + Store 64(ElementsU) 416 + 417: 397 Load 399(g_tTexcdi4a) + 418: 14(int) ImageQueryLevels 417 + Store 23(NumberOfLevelsU) 418 + 423: 420 Load 422(g_tTexcdu4a) + 424: 180(ivec3) ImageQuerySize 423 + Store 419(sizeQueryTemp) 424 + 425: 7(ptr) AccessChain 419(sizeQueryTemp) 61 + 426: 6(int) Load 425 + Store 16(WidthU) 426 + 427: 7(ptr) AccessChain 419(sizeQueryTemp) 65 + 428: 6(int) Load 427 + Store 123(HeightU) 428 + 429: 7(ptr) AccessChain 419(sizeQueryTemp) 186 + 430: 6(int) Load 429 + Store 64(ElementsU) 430 + 432: 420 Load 422(g_tTexcdu4a) + 433: 180(ivec3) ImageQuerySizeLod 432 20 + Store 431(sizeQueryTemp) 433 + 434: 7(ptr) AccessChain 431(sizeQueryTemp) 61 + 435: 6(int) Load 434 + Store 16(WidthU) 435 + 436: 7(ptr) AccessChain 431(sizeQueryTemp) 65 + 437: 6(int) Load 436 + Store 123(HeightU) 437 + 438: 7(ptr) AccessChain 431(sizeQueryTemp) 186 + 439: 6(int) Load 438 + Store 64(ElementsU) 439 + 440: 420 Load 422(g_tTexcdu4a) + 441: 14(int) ImageQueryLevels 440 + Store 23(NumberOfLevelsU) 441 + 446: 443 Load 445(g_tTex2dmsf4) + 447: 59(ivec2) ImageQuerySize 446 + Store 442(sizeQueryTemp) 447 + 448: 7(ptr) AccessChain 442(sizeQueryTemp) 61 + 449: 6(int) Load 448 + Store 16(WidthU) 449 + 450: 7(ptr) AccessChain 442(sizeQueryTemp) 65 + 451: 6(int) Load 450 + Store 123(HeightU) 451 + 453: 443 Load 445(g_tTex2dmsf4) + 454: 14(int) ImageQuerySamples 453 + Store 452(NumberOfSamplesU) 454 + 459: 456 Load 458(g_tTex2dmsi4) + 460: 59(ivec2) ImageQuerySize 459 + Store 455(sizeQueryTemp) 460 + 461: 7(ptr) AccessChain 455(sizeQueryTemp) 61 + 462: 6(int) Load 461 + Store 16(WidthU) 462 + 463: 7(ptr) AccessChain 455(sizeQueryTemp) 65 + 464: 6(int) Load 463 + Store 123(HeightU) 464 + 465: 456 Load 458(g_tTex2dmsi4) + 466: 14(int) ImageQuerySamples 465 + Store 452(NumberOfSamplesU) 466 + 471: 468 Load 470(g_tTex2dmsu4) + 472: 59(ivec2) ImageQuerySize 471 + Store 467(sizeQueryTemp) 472 + 473: 7(ptr) AccessChain 467(sizeQueryTemp) 61 + 474: 6(int) Load 473 + Store 16(WidthU) 474 + 475: 7(ptr) AccessChain 467(sizeQueryTemp) 65 + 476: 6(int) Load 475 + Store 123(HeightU) 476 + 477: 468 Load 470(g_tTex2dmsu4) + 478: 14(int) ImageQuerySamples 477 + Store 452(NumberOfSamplesU) 478 + 483: 480 Load 482(g_tTex2dmsf4a) + 484: 180(ivec3) ImageQuerySize 483 + Store 479(sizeQueryTemp) 484 + 485: 7(ptr) AccessChain 479(sizeQueryTemp) 61 + 486: 6(int) Load 485 + Store 16(WidthU) 486 + 487: 7(ptr) AccessChain 479(sizeQueryTemp) 65 + 488: 6(int) Load 487 + Store 123(HeightU) 488 + 489: 7(ptr) AccessChain 479(sizeQueryTemp) 186 + 490: 6(int) Load 489 + Store 64(ElementsU) 490 + 491: 480 Load 482(g_tTex2dmsf4a) + 492: 14(int) ImageQuerySamples 491 + Store 452(NumberOfSamplesU) 492 + 497: 494 Load 496(g_tTex2dmsi4a) + 498: 180(ivec3) ImageQuerySize 497 + Store 493(sizeQueryTemp) 498 + 499: 7(ptr) AccessChain 493(sizeQueryTemp) 61 + 500: 6(int) Load 499 + Store 16(WidthU) 500 + 501: 7(ptr) AccessChain 493(sizeQueryTemp) 65 + 502: 6(int) Load 501 + Store 123(HeightU) 502 + 503: 7(ptr) AccessChain 493(sizeQueryTemp) 186 + 504: 6(int) Load 503 + Store 64(ElementsU) 504 + 505: 494 Load 496(g_tTex2dmsi4a) + 506: 14(int) ImageQuerySamples 505 + Store 452(NumberOfSamplesU) 506 + 511: 508 Load 510(g_tTex2dmsu4a) + 512: 180(ivec3) ImageQuerySize 511 + Store 507(sizeQueryTemp) 512 + 513: 7(ptr) AccessChain 507(sizeQueryTemp) 61 + 514: 6(int) Load 513 + Store 16(WidthU) 514 + 515: 7(ptr) AccessChain 507(sizeQueryTemp) 65 + 516: 6(int) Load 515 + Store 123(HeightU) 516 + 517: 7(ptr) AccessChain 507(sizeQueryTemp) 186 + 518: 6(int) Load 517 + Store 64(ElementsU) 518 + 519: 508 Load 510(g_tTex2dmsu4a) + 520: 14(int) ImageQuerySamples 519 + Store 452(NumberOfSamplesU) 520 + 529: 528(ptr) AccessChain 524(psout) 525 + Store 529 527 + 532: 531(ptr) AccessChain 524(psout) 530 + Store 532 526 + 535: 528(ptr) AccessChain 524(psout) 525 + 536: 521(fvec4) Load 535 + Store 534(Color) 536 + 539: 531(ptr) AccessChain 524(psout) 530 + 540: 9(float) Load 539 + Store 538(Depth) 540 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.dx10.vert.out new file mode 100644 index 0000000000..c1c90f4b25 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -0,0 +1,182 @@ +hlsl.getdimensions.dx10.vert +Shader version: 450 +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 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 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:26 Pos: direct index for structure (temp 4-component vector of float) +0:26 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) + + +Linked vertex stage: + + +Shader version: 450 +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 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 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:26 Pos: direct index for structure (temp 4-component vector of float) +0:26 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 43 + + Capability Shader + Capability Sampled1D + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 36 + Name 4 "main" + Name 8 "sizeQueryTemp" + Name 12 "g_tTex1df4" + Name 16 "WidthU" + Name 18 "sizeQueryTemp" + Name 23 "NumberOfLevelsU" + Name 27 "VS_OUTPUT" + MemberName 27(VS_OUTPUT) 0 "Pos" + Name 29 "vsout" + Name 36 "Pos" + Name 42 "g_sSamp" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 36(Pos) BuiltIn Position + Decorate 42(g_sSamp) DescriptorSet 0 + Decorate 42(g_sSamp) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypeImage 9(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 20: 6(int) Constant 6 + 26: TypeVector 9(float) 4 + 27(VS_OUTPUT): TypeStruct 26(fvec4) + 28: TypePointer Function 27(VS_OUTPUT) + 30: 14(int) Constant 0 + 31: 9(float) Constant 0 + 32: 26(fvec4) ConstantComposite 31 31 31 31 + 33: TypePointer Function 26(fvec4) + 35: TypePointer Output 26(fvec4) + 36(Pos): 35(ptr) Variable Output + 40: TypeSampler + 41: TypePointer UniformConstant 40 + 42(g_sSamp): 41(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +8(sizeQueryTemp): 7(ptr) Variable Function + 16(WidthU): 7(ptr) Variable Function +18(sizeQueryTemp): 7(ptr) Variable Function +23(NumberOfLevelsU): 7(ptr) Variable Function + 29(vsout): 28(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 15: 14(int) ImageQuerySize 13 + Store 8(sizeQueryTemp) 15 + 17: 6(int) Load 8(sizeQueryTemp) + Store 16(WidthU) 17 + 19: 10 Load 12(g_tTex1df4) + 21: 14(int) ImageQuerySizeLod 19 20 + Store 18(sizeQueryTemp) 21 + 22: 6(int) Load 18(sizeQueryTemp) + Store 16(WidthU) 22 + 24: 10 Load 12(g_tTex1df4) + 25: 14(int) ImageQueryLevels 24 + Store 23(NumberOfLevelsU) 25 + 34: 33(ptr) AccessChain 29(vsout) 30 + Store 34 32 + 37: 33(ptr) AccessChain 29(vsout) 30 + 38: 26(fvec4) Load 37 + Store 36(Pos) 38 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out new file mode 100644 index 0000000000..918246b6ed --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out @@ -0,0 +1,1090 @@ +hlsl.getdimensions.rw.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:63 imageQuerySize (temp uint) +0:63 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:63 move second child to first child (temp uint) +0:63 'WidthU' (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:64 Sequence +0:64 move second child to first child (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:64 imageQuerySize (temp uint) +0:64 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:64 move second child to first child (temp uint) +0:64 'WidthU' (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 imageQuerySize (temp uint) +0:65 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:68 Sequence +0:68 move second child to first child (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:68 imageQuerySize (temp uint) +0:68 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:68 move second child to first child (temp uint) +0:68 'WidthU' (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:69 Sequence +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 imageQuerySize (temp uint) +0:69 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 imageQuerySize (temp uint) +0:70 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 imageQuerySize (temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 imageQuerySize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child (temp 2-component vector of uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 imageQuerySize (temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:75 move second child to first child (temp uint) +0:75 'WidthU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp uint) +0:75 'ElementsU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 imageQuerySize (temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'HeightU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 imageQuerySize (temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:79 move second child to first child (temp uint) +0:79 'WidthU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child (temp uint) +0:79 'HeightU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 imageQuerySize (temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:80 move second child to first child (temp uint) +0:80 'WidthU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child (temp uint) +0:80 'HeightU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child (temp 3-component vector of uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 imageQuerySize (temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:83 move second child to first child (temp uint) +0:83 'WidthU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child (temp uint) +0:83 'HeightU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child (temp uint) +0:83 'ElementsU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 3-component vector of uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 imageQuerySize (temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:84 move second child to first child (temp uint) +0:84 'WidthU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child (temp uint) +0:84 'HeightU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child (temp uint) +0:84 'ElementsU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child (temp 3-component vector of uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 imageQuerySize (temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child (temp uint) +0:85 'ElementsU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 imageQuerySize (temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:88 move second child to first child (temp uint) +0:88 'WidthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child (temp uint) +0:88 'HeightU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child (temp uint) +0:88 'DepthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 imageQuerySize (temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child (temp uint) +0:89 'DepthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 imageQuerySize (temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'DepthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child (temp 4-component vector of float) +0:92 Color: direct index for structure (temp 4-component vector of float) +0:92 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child (temp float) +0:93 Depth: direct index for structure (temp float) +0:93 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Sequence +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:95 Color: direct index for structure (temp 4-component vector of float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 0 (const int) +0:95 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:95 Depth: direct index for structure (temp float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 1 (const int) +0:95 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:63 imageQuerySize (temp uint) +0:63 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:63 move second child to first child (temp uint) +0:63 'WidthU' (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:64 Sequence +0:64 move second child to first child (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:64 imageQuerySize (temp uint) +0:64 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:64 move second child to first child (temp uint) +0:64 'WidthU' (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 imageQuerySize (temp uint) +0:65 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:68 Sequence +0:68 move second child to first child (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:68 imageQuerySize (temp uint) +0:68 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:68 move second child to first child (temp uint) +0:68 'WidthU' (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:69 Sequence +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 imageQuerySize (temp uint) +0:69 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 imageQuerySize (temp uint) +0:70 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 imageQuerySize (temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 imageQuerySize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child (temp 2-component vector of uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 imageQuerySize (temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:75 move second child to first child (temp uint) +0:75 'WidthU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp uint) +0:75 'ElementsU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 imageQuerySize (temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'HeightU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 imageQuerySize (temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:79 move second child to first child (temp uint) +0:79 'WidthU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child (temp uint) +0:79 'HeightU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 imageQuerySize (temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:80 move second child to first child (temp uint) +0:80 'WidthU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child (temp uint) +0:80 'HeightU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child (temp 3-component vector of uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 imageQuerySize (temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:83 move second child to first child (temp uint) +0:83 'WidthU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child (temp uint) +0:83 'HeightU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child (temp uint) +0:83 'ElementsU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 3-component vector of uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 imageQuerySize (temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:84 move second child to first child (temp uint) +0:84 'WidthU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child (temp uint) +0:84 'HeightU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child (temp uint) +0:84 'ElementsU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child (temp 3-component vector of uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 imageQuerySize (temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child (temp uint) +0:85 'ElementsU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 imageQuerySize (temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:88 move second child to first child (temp uint) +0:88 'WidthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child (temp uint) +0:88 'HeightU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child (temp uint) +0:88 'DepthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 imageQuerySize (temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child (temp uint) +0:89 'DepthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 imageQuerySize (temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'DepthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child (temp 4-component vector of float) +0:92 Color: direct index for structure (temp 4-component vector of float) +0:92 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child (temp float) +0:93 Depth: direct index for structure (temp float) +0:93 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Sequence +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:95 Color: direct index for structure (temp 4-component vector of float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 0 (const int) +0:95 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:95 Depth: direct index for structure (temp float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 1 (const int) +0:95 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 225 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 210 214 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "sizeQueryTemp" + Name 12 "g_tTex1df4" + Name 16 "WidthU" + Name 18 "sizeQueryTemp" + Name 21 "g_tTex1di4" + Name 25 "sizeQueryTemp" + Name 28 "g_tTex1du4" + Name 32 "sizeQueryTemp" + Name 35 "g_tBuffF" + Name 39 "sizeQueryTemp" + Name 42 "g_tBuffI" + Name 46 "sizeQueryTemp" + Name 49 "g_tBuffU" + Name 55 "sizeQueryTemp" + Name 58 "g_tTex1df4a" + Name 65 "ElementsU" + Name 69 "sizeQueryTemp" + Name 72 "g_tTex1di4a" + Name 79 "sizeQueryTemp" + Name 82 "g_tTex1du4a" + Name 89 "sizeQueryTemp" + Name 92 "g_tTex2df4" + Name 97 "HeightU" + Name 100 "sizeQueryTemp" + Name 103 "g_tTex2di4" + Name 110 "sizeQueryTemp" + Name 113 "g_tTex2du4" + Name 122 "sizeQueryTemp" + Name 125 "g_tTex2df4a" + Name 136 "sizeQueryTemp" + Name 139 "g_tTex2di4a" + Name 148 "sizeQueryTemp" + Name 151 "g_tTex2du4a" + Name 160 "sizeQueryTemp" + Name 163 "g_tTex3df4" + Name 170 "DepthU" + Name 173 "sizeQueryTemp" + Name 176 "g_tTex3di4" + Name 185 "sizeQueryTemp" + Name 188 "g_tTex3du4" + Name 198 "PS_OUTPUT" + MemberName 198(PS_OUTPUT) 0 "Color" + MemberName 198(PS_OUTPUT) 1 "Depth" + Name 200 "psout" + Name 210 "Color" + Name 214 "Depth" + Name 220 "g_sSamp" + Name 222 "$Global" + MemberName 222($Global) 0 "c1" + MemberName 222($Global) 1 "c2" + MemberName 222($Global) 2 "c3" + MemberName 222($Global) 3 "c4" + MemberName 222($Global) 4 "o1" + MemberName 222($Global) 5 "o2" + MemberName 222($Global) 6 "o3" + MemberName 222($Global) 7 "o4" + Name 224 "" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 21(g_tTex1di4) DescriptorSet 0 + Decorate 28(g_tTex1du4) DescriptorSet 0 + Decorate 35(g_tBuffF) DescriptorSet 0 + Decorate 42(g_tBuffI) DescriptorSet 0 + Decorate 49(g_tBuffU) DescriptorSet 0 + Decorate 58(g_tTex1df4a) DescriptorSet 0 + Decorate 72(g_tTex1di4a) DescriptorSet 0 + Decorate 82(g_tTex1du4a) DescriptorSet 0 + Decorate 92(g_tTex2df4) DescriptorSet 0 + Decorate 103(g_tTex2di4) DescriptorSet 0 + Decorate 113(g_tTex2du4) DescriptorSet 0 + Decorate 125(g_tTex2df4a) DescriptorSet 0 + Decorate 139(g_tTex2di4a) DescriptorSet 0 + Decorate 151(g_tTex2du4a) DescriptorSet 0 + Decorate 163(g_tTex3df4) DescriptorSet 0 + Decorate 176(g_tTex3di4) DescriptorSet 0 + Decorate 188(g_tTex3du4) DescriptorSet 0 + Decorate 210(Color) Location 0 + Decorate 214(Depth) BuiltIn FragDepth + Decorate 220(g_sSamp) DescriptorSet 0 + Decorate 220(g_sSamp) Binding 0 + MemberDecorate 222($Global) 0 Offset 0 + MemberDecorate 222($Global) 1 Offset 8 + MemberDecorate 222($Global) 2 Offset 16 + MemberDecorate 222($Global) 3 Offset 32 + MemberDecorate 222($Global) 4 Offset 48 + MemberDecorate 222($Global) 5 Offset 56 + MemberDecorate 222($Global) 6 Offset 64 + MemberDecorate 222($Global) 7 Offset 80 + Decorate 222($Global) Block + Decorate 224 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypeImage 9(float) 1D nonsampled format:Rgba32f + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 19: TypeImage 14(int) 1D nonsampled format:Rgba32i + 20: TypePointer UniformConstant 19 + 21(g_tTex1di4): 20(ptr) Variable UniformConstant + 26: TypeImage 6(int) 1D nonsampled format:Rgba32ui + 27: TypePointer UniformConstant 26 + 28(g_tTex1du4): 27(ptr) Variable UniformConstant + 33: TypeImage 9(float) Buffer nonsampled format:Rgba32f + 34: TypePointer UniformConstant 33 + 35(g_tBuffF): 34(ptr) Variable UniformConstant + 40: TypeImage 14(int) Buffer nonsampled format:Rgba32i + 41: TypePointer UniformConstant 40 + 42(g_tBuffI): 41(ptr) Variable UniformConstant + 47: TypeImage 6(int) Buffer nonsampled format:Rgba32ui + 48: TypePointer UniformConstant 47 + 49(g_tBuffU): 48(ptr) Variable UniformConstant + 53: TypeVector 6(int) 2 + 54: TypePointer Function 53(ivec2) + 56: TypeImage 9(float) 1D array nonsampled format:Rgba32f + 57: TypePointer UniformConstant 56 + 58(g_tTex1df4a): 57(ptr) Variable UniformConstant + 60: TypeVector 14(int) 2 + 62: 6(int) Constant 0 + 66: 6(int) Constant 1 + 70: TypeImage 14(int) 1D array nonsampled format:Rgba32i + 71: TypePointer UniformConstant 70 + 72(g_tTex1di4a): 71(ptr) Variable UniformConstant + 80: TypeImage 6(int) 1D array nonsampled format:Rgba32ui + 81: TypePointer UniformConstant 80 + 82(g_tTex1du4a): 81(ptr) Variable UniformConstant + 90: TypeImage 9(float) 2D nonsampled format:Rgba32f + 91: TypePointer UniformConstant 90 + 92(g_tTex2df4): 91(ptr) Variable UniformConstant + 101: TypeImage 14(int) 2D nonsampled format:Rgba32i + 102: TypePointer UniformConstant 101 + 103(g_tTex2di4): 102(ptr) Variable UniformConstant + 111: TypeImage 6(int) 2D nonsampled format:Rgba32ui + 112: TypePointer UniformConstant 111 + 113(g_tTex2du4): 112(ptr) Variable UniformConstant + 120: TypeVector 6(int) 3 + 121: TypePointer Function 120(ivec3) + 123: TypeImage 9(float) 2D array nonsampled format:Rgba32f + 124: TypePointer UniformConstant 123 +125(g_tTex2df4a): 124(ptr) Variable UniformConstant + 127: TypeVector 14(int) 3 + 133: 6(int) Constant 2 + 137: TypeImage 14(int) 2D array nonsampled format:Rgba32i + 138: TypePointer UniformConstant 137 +139(g_tTex2di4a): 138(ptr) Variable UniformConstant + 149: TypeImage 6(int) 2D array nonsampled format:Rgba32ui + 150: TypePointer UniformConstant 149 +151(g_tTex2du4a): 150(ptr) Variable UniformConstant + 161: TypeImage 9(float) 3D nonsampled format:Rgba32f + 162: TypePointer UniformConstant 161 + 163(g_tTex3df4): 162(ptr) Variable UniformConstant + 174: TypeImage 14(int) 3D nonsampled format:Rgba32i + 175: TypePointer UniformConstant 174 + 176(g_tTex3di4): 175(ptr) Variable UniformConstant + 186: TypeImage 6(int) 3D nonsampled format:Rgba32ui + 187: TypePointer UniformConstant 186 + 188(g_tTex3du4): 187(ptr) Variable UniformConstant + 197: TypeVector 9(float) 4 + 198(PS_OUTPUT): TypeStruct 197(fvec4) 9(float) + 199: TypePointer Function 198(PS_OUTPUT) + 201: 14(int) Constant 0 + 202: 9(float) Constant 1065353216 + 203: 197(fvec4) ConstantComposite 202 202 202 202 + 204: TypePointer Function 197(fvec4) + 206: 14(int) Constant 1 + 207: TypePointer Function 9(float) + 209: TypePointer Output 197(fvec4) + 210(Color): 209(ptr) Variable Output + 213: TypePointer Output 9(float) + 214(Depth): 213(ptr) Variable Output + 218: TypeSampler + 219: TypePointer UniformConstant 218 + 220(g_sSamp): 219(ptr) Variable UniformConstant + 221: TypeVector 14(int) 4 + 222($Global): TypeStruct 14(int) 60(ivec2) 127(ivec3) 221(ivec4) 14(int) 60(ivec2) 127(ivec3) 221(ivec4) + 223: TypePointer Uniform 222($Global) + 224: 223(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label +8(sizeQueryTemp): 7(ptr) Variable Function + 16(WidthU): 7(ptr) Variable Function +18(sizeQueryTemp): 7(ptr) Variable Function +25(sizeQueryTemp): 7(ptr) Variable Function +32(sizeQueryTemp): 7(ptr) Variable Function +39(sizeQueryTemp): 7(ptr) Variable Function +46(sizeQueryTemp): 7(ptr) Variable Function +55(sizeQueryTemp): 54(ptr) Variable Function + 65(ElementsU): 7(ptr) Variable Function +69(sizeQueryTemp): 54(ptr) Variable Function +79(sizeQueryTemp): 54(ptr) Variable Function +89(sizeQueryTemp): 54(ptr) Variable Function + 97(HeightU): 7(ptr) Variable Function +100(sizeQueryTemp): 54(ptr) Variable Function +110(sizeQueryTemp): 54(ptr) Variable Function +122(sizeQueryTemp): 121(ptr) Variable Function +136(sizeQueryTemp): 121(ptr) Variable Function +148(sizeQueryTemp): 121(ptr) Variable Function +160(sizeQueryTemp): 121(ptr) Variable Function + 170(DepthU): 7(ptr) Variable Function +173(sizeQueryTemp): 121(ptr) Variable Function +185(sizeQueryTemp): 121(ptr) Variable Function + 200(psout): 199(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 15: 14(int) ImageQuerySize 13 + Store 8(sizeQueryTemp) 15 + 17: 6(int) Load 8(sizeQueryTemp) + Store 16(WidthU) 17 + 22: 19 Load 21(g_tTex1di4) + 23: 14(int) ImageQuerySize 22 + Store 18(sizeQueryTemp) 23 + 24: 6(int) Load 18(sizeQueryTemp) + Store 16(WidthU) 24 + 29: 26 Load 28(g_tTex1du4) + 30: 14(int) ImageQuerySize 29 + Store 25(sizeQueryTemp) 30 + 31: 6(int) Load 25(sizeQueryTemp) + Store 16(WidthU) 31 + 36: 33 Load 35(g_tBuffF) + 37: 14(int) ImageQuerySize 36 + Store 32(sizeQueryTemp) 37 + 38: 6(int) Load 32(sizeQueryTemp) + Store 16(WidthU) 38 + 43: 40 Load 42(g_tBuffI) + 44: 14(int) ImageQuerySize 43 + Store 39(sizeQueryTemp) 44 + 45: 6(int) Load 39(sizeQueryTemp) + Store 16(WidthU) 45 + 50: 47 Load 49(g_tBuffU) + 51: 14(int) ImageQuerySize 50 + Store 46(sizeQueryTemp) 51 + 52: 6(int) Load 46(sizeQueryTemp) + Store 16(WidthU) 52 + 59: 56 Load 58(g_tTex1df4a) + 61: 60(ivec2) ImageQuerySize 59 + Store 55(sizeQueryTemp) 61 + 63: 7(ptr) AccessChain 55(sizeQueryTemp) 62 + 64: 6(int) Load 63 + Store 16(WidthU) 64 + 67: 7(ptr) AccessChain 55(sizeQueryTemp) 66 + 68: 6(int) Load 67 + Store 65(ElementsU) 68 + 73: 70 Load 72(g_tTex1di4a) + 74: 60(ivec2) ImageQuerySize 73 + Store 69(sizeQueryTemp) 74 + 75: 7(ptr) AccessChain 69(sizeQueryTemp) 62 + 76: 6(int) Load 75 + Store 16(WidthU) 76 + 77: 7(ptr) AccessChain 69(sizeQueryTemp) 66 + 78: 6(int) Load 77 + Store 65(ElementsU) 78 + 83: 80 Load 82(g_tTex1du4a) + 84: 60(ivec2) ImageQuerySize 83 + Store 79(sizeQueryTemp) 84 + 85: 7(ptr) AccessChain 79(sizeQueryTemp) 62 + 86: 6(int) Load 85 + Store 16(WidthU) 86 + 87: 7(ptr) AccessChain 79(sizeQueryTemp) 66 + 88: 6(int) Load 87 + Store 65(ElementsU) 88 + 93: 90 Load 92(g_tTex2df4) + 94: 60(ivec2) ImageQuerySize 93 + Store 89(sizeQueryTemp) 94 + 95: 7(ptr) AccessChain 89(sizeQueryTemp) 62 + 96: 6(int) Load 95 + Store 16(WidthU) 96 + 98: 7(ptr) AccessChain 89(sizeQueryTemp) 66 + 99: 6(int) Load 98 + Store 97(HeightU) 99 + 104: 101 Load 103(g_tTex2di4) + 105: 60(ivec2) ImageQuerySize 104 + Store 100(sizeQueryTemp) 105 + 106: 7(ptr) AccessChain 100(sizeQueryTemp) 62 + 107: 6(int) Load 106 + Store 16(WidthU) 107 + 108: 7(ptr) AccessChain 100(sizeQueryTemp) 66 + 109: 6(int) Load 108 + Store 97(HeightU) 109 + 114: 111 Load 113(g_tTex2du4) + 115: 60(ivec2) ImageQuerySize 114 + Store 110(sizeQueryTemp) 115 + 116: 7(ptr) AccessChain 110(sizeQueryTemp) 62 + 117: 6(int) Load 116 + Store 16(WidthU) 117 + 118: 7(ptr) AccessChain 110(sizeQueryTemp) 66 + 119: 6(int) Load 118 + Store 97(HeightU) 119 + 126: 123 Load 125(g_tTex2df4a) + 128: 127(ivec3) ImageQuerySize 126 + Store 122(sizeQueryTemp) 128 + 129: 7(ptr) AccessChain 122(sizeQueryTemp) 62 + 130: 6(int) Load 129 + Store 16(WidthU) 130 + 131: 7(ptr) AccessChain 122(sizeQueryTemp) 66 + 132: 6(int) Load 131 + Store 97(HeightU) 132 + 134: 7(ptr) AccessChain 122(sizeQueryTemp) 133 + 135: 6(int) Load 134 + Store 65(ElementsU) 135 + 140: 137 Load 139(g_tTex2di4a) + 141: 127(ivec3) ImageQuerySize 140 + Store 136(sizeQueryTemp) 141 + 142: 7(ptr) AccessChain 136(sizeQueryTemp) 62 + 143: 6(int) Load 142 + Store 16(WidthU) 143 + 144: 7(ptr) AccessChain 136(sizeQueryTemp) 66 + 145: 6(int) Load 144 + Store 97(HeightU) 145 + 146: 7(ptr) AccessChain 136(sizeQueryTemp) 133 + 147: 6(int) Load 146 + Store 65(ElementsU) 147 + 152: 149 Load 151(g_tTex2du4a) + 153: 127(ivec3) ImageQuerySize 152 + Store 148(sizeQueryTemp) 153 + 154: 7(ptr) AccessChain 148(sizeQueryTemp) 62 + 155: 6(int) Load 154 + Store 16(WidthU) 155 + 156: 7(ptr) AccessChain 148(sizeQueryTemp) 66 + 157: 6(int) Load 156 + Store 97(HeightU) 157 + 158: 7(ptr) AccessChain 148(sizeQueryTemp) 133 + 159: 6(int) Load 158 + Store 65(ElementsU) 159 + 164: 161 Load 163(g_tTex3df4) + 165: 127(ivec3) ImageQuerySize 164 + Store 160(sizeQueryTemp) 165 + 166: 7(ptr) AccessChain 160(sizeQueryTemp) 62 + 167: 6(int) Load 166 + Store 16(WidthU) 167 + 168: 7(ptr) AccessChain 160(sizeQueryTemp) 66 + 169: 6(int) Load 168 + Store 97(HeightU) 169 + 171: 7(ptr) AccessChain 160(sizeQueryTemp) 133 + 172: 6(int) Load 171 + Store 170(DepthU) 172 + 177: 174 Load 176(g_tTex3di4) + 178: 127(ivec3) ImageQuerySize 177 + Store 173(sizeQueryTemp) 178 + 179: 7(ptr) AccessChain 173(sizeQueryTemp) 62 + 180: 6(int) Load 179 + Store 16(WidthU) 180 + 181: 7(ptr) AccessChain 173(sizeQueryTemp) 66 + 182: 6(int) Load 181 + Store 97(HeightU) 182 + 183: 7(ptr) AccessChain 173(sizeQueryTemp) 133 + 184: 6(int) Load 183 + Store 170(DepthU) 184 + 189: 186 Load 188(g_tTex3du4) + 190: 127(ivec3) ImageQuerySize 189 + Store 185(sizeQueryTemp) 190 + 191: 7(ptr) AccessChain 185(sizeQueryTemp) 62 + 192: 6(int) Load 191 + Store 16(WidthU) 192 + 193: 7(ptr) AccessChain 185(sizeQueryTemp) 66 + 194: 6(int) Load 193 + Store 97(HeightU) 194 + 195: 7(ptr) AccessChain 185(sizeQueryTemp) 133 + 196: 6(int) Load 195 + Store 170(DepthU) 196 + 205: 204(ptr) AccessChain 200(psout) 201 + Store 205 203 + 208: 207(ptr) AccessChain 200(psout) 206 + Store 208 202 + 211: 204(ptr) AccessChain 200(psout) 201 + 212: 197(fvec4) Load 211 + Store 210(Color) 212 + 215: 207(ptr) AccessChain 200(psout) 206 + 216: 9(float) Load 215 + Store 214(Depth) 216 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.getsampleposition.dx10.frag.out new file mode 100644 index 0000000000..5985eadc1f --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -0,0 +1,133 @@ +hlsl.getsampleposition.dx10.frag +ERROR: 0:16: '' : unimplemented: GetSamplePosition +ERROR: 0:17: '' : unimplemented: GetSamplePosition +ERROR: 2 compilation errors. No code generated. + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:13 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp 2-component vector of float) +0:16 'r00' (temp 2-component vector of float) +0:16 ERROR: Bad aggregation op + (temp 2-component vector of float) +0:16 'g_tTex2dmsf4' (uniform texture2DMS) +0:16 Constant: +0:16 1 (const int) +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 ERROR: Bad aggregation op + (temp 2-component vector of float) +0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:17 Constant: +0:17 2 (const int) +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 Sequence +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 1 (const int) +0:22 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:13 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp 2-component vector of float) +0:16 'r00' (temp 2-component vector of float) +0:16 ERROR: Bad aggregation op + (temp 2-component vector of float) +0:16 'g_tTex2dmsf4' (uniform texture2DMS) +0:16 Constant: +0:16 1 (const int) +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 ERROR: Bad aggregation op + (temp 2-component vector of float) +0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:17 Constant: +0:17 2 (const int) +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 Sequence +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 1 (const int) +0:22 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.identifier.sample.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.identifier.sample.frag.out new file mode 100644 index 0000000000..8e7408197f --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.identifier.sample.frag.out @@ -0,0 +1,103 @@ +hlsl.identifier.sample.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; (temp int) +0:9 Function Parameters: +0:9 'x' (in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' (in int) +0:12 Function Definition: main( (temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child (temp int) +0:15 'sample' (temp int) +0:15 Constant: +0:15 3 (const int) +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:17 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; (temp int) +0:9 Function Parameters: +0:9 'x' (in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' (in int) +0:12 Function Definition: main( (temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child (temp int) +0:15 'sample' (temp int) +0:15 Constant: +0:15 3 (const int) +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:17 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 20 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "sample(i1;" + Name 9 "x" + Name 15 "sample" + Name 20 "@entryPointOutput" + Decorate 20(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 16: 6(int) Constant 3 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypePointer Output 18(fvec4) +20(@entryPointOutput): 19(ptr) Variable Output + 21: 17(float) Constant 0 + 22: 18(fvec4) ConstantComposite 21 21 21 21 + 4(main): 2 Function None 3 + 5: Label + 15(sample): 7(ptr) Variable Function + Store 15(sample) 16 + Store 20(@entryPointOutput) 22 + Return + FunctionEnd + 10(sample(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 12: 6(int) Load 9(x) + ReturnValue 12 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.if.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.if.frag.out new file mode 100755 index 0000000000..c37bff61a1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.if.frag.out @@ -0,0 +1,337 @@ +hlsl.if.frag +Shader version: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 true case +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:4 'input' (layout(location=0 ) in 4-component vector of float) +0:4 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 true case +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Branch: Return +0:6 false case +0:9 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 Negate value (temp 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) +0:9 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 all (temp bool) +0:14 Equal (temp 4-component vector of bool) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 true case is null +0:19 Test condition and select (temp void) +0:19 Condition +0:19 all (temp bool) +0:19 Equal (temp 4-component vector of bool) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 true case +0:? Sequence +0:20 Sequence +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 'input' (layout(location=0 ) in 4-component vector of float) +0:20 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 true case +0:? Sequence +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:24 'input' (layout(location=0 ) in 4-component vector of float) +0:24 Branch: Return +0:23 false case +0:? Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (layout(location=0 ) in 4-component vector of float) +0:26 Branch: Return +0:30 Test condition and select (temp void) +0:30 Condition +0:30 move second child to first child (temp float) +0:30 'ii' (temp float) +0:30 direct index (temp float) +0:30 'input' (layout(location=0 ) in 4-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:30 true case +0:31 Pre-Increment (temp float) +0:31 'ii' (temp float) +0:32 Pre-Increment (temp int) +0:32 'ii' (temp int) +0:? Linker Objects +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: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 true case +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:4 'input' (layout(location=0 ) in 4-component vector of float) +0:4 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 true case +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 Branch: Return +0:6 false case +0:9 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 Negate value (temp 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) +0:9 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 all (temp bool) +0:14 Equal (temp 4-component vector of bool) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 true case is null +0:19 Test condition and select (temp void) +0:19 Condition +0:19 all (temp bool) +0:19 Equal (temp 4-component vector of bool) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 true case +0:? Sequence +0:20 Sequence +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 'input' (layout(location=0 ) in 4-component vector of float) +0:20 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 true case +0:? Sequence +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:24 'input' (layout(location=0 ) in 4-component vector of float) +0:24 Branch: Return +0:23 false case +0:? Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (layout(location=0 ) in 4-component vector of float) +0:26 Branch: Return +0:30 Test condition and select (temp void) +0:30 Condition +0:30 move second child to first child (temp float) +0:30 'ii' (temp float) +0:30 direct index (temp float) +0:30 'input' (layout(location=0 ) in 4-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:30 true case +0:31 Pre-Increment (temp float) +0:31 'ii' (temp float) +0:32 Pre-Increment (temp int) +0:32 'ii' (temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 84 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 19 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "input" + Name 19 "@entryPointOutput" + Name 67 "ii" + Name 80 "ii" + Decorate 9(input) Location 0 + Decorate 19(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Input 7(fvec4) + 9(input): 8(ptr) Variable Input + 12: TypeBool + 13: TypeVector 12(bool) 4 + 18: TypePointer Output 7(fvec4) +19(@entryPointOutput): 18(ptr) Variable Output + 66: TypePointer Function 6(float) + 68: TypeInt 32 0 + 69: 68(int) Constant 2 + 70: TypePointer Input 6(float) + 76: 6(float) Constant 1065353216 + 78: TypeInt 32 1 + 79: TypePointer Function 78(int) + 82: 78(int) Constant 1 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 67(ii): 66(ptr) Variable Function + 80(ii): 79(ptr) Variable Function + 10: 7(fvec4) Load 9(input) + 11: 7(fvec4) Load 9(input) + 14: 13(bvec4) FOrdEqual 10 11 + 15: 12(bool) All 14 + SelectionMerge 17 None + BranchConditional 15 16 17 + 16: Label + 20: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 20 + Return + 17: Label + 22: 7(fvec4) Load 9(input) + 23: 7(fvec4) Load 9(input) + 24: 13(bvec4) FOrdEqual 22 23 + 25: 12(bool) All 24 + SelectionMerge 27 None + BranchConditional 25 26 30 + 26: Label + 28: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 28 + Return + 30: Label + 31: 7(fvec4) Load 9(input) + 32: 7(fvec4) FNegate 31 + Store 19(@entryPointOutput) 32 + Return + 27: Label + 34: 7(fvec4) Load 9(input) + 35: 7(fvec4) Load 9(input) + 36: 13(bvec4) FOrdEqual 34 35 + 37: 12(bool) All 36 + SelectionMerge 39 None + BranchConditional 37 38 39 + 38: Label + Branch 39 + 39: Label + 40: 7(fvec4) Load 9(input) + 41: 7(fvec4) Load 9(input) + 42: 13(bvec4) FOrdEqual 40 41 + 43: 12(bool) All 42 + SelectionMerge 45 None + BranchConditional 43 44 45 + 44: Label + Branch 45 + 45: Label + 46: 7(fvec4) Load 9(input) + 47: 7(fvec4) Load 9(input) + 48: 13(bvec4) FOrdEqual 46 47 + 49: 12(bool) All 48 + SelectionMerge 51 None + BranchConditional 49 50 51 + 50: Label + 52: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 52 + Return + 51: Label + 54: 7(fvec4) Load 9(input) + 55: 7(fvec4) Load 9(input) + 56: 13(bvec4) FOrdEqual 54 55 + 57: 12(bool) All 56 + SelectionMerge 59 None + BranchConditional 57 58 62 + 58: Label + 60: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 60 + Return + 62: Label + 63: 7(fvec4) Load 9(input) + 64: 7(fvec4) FNegate 63 + Store 19(@entryPointOutput) 64 + Return + 59: Label + 71: 70(ptr) AccessChain 9(input) 69 + 72: 6(float) Load 71 + Store 67(ii) 72 + SelectionMerge 74 None + BranchConditional 72 73 74 + 73: Label + 75: 6(float) Load 67(ii) + 77: 6(float) FAdd 75 76 + Store 67(ii) 77 + Branch 74 + 74: Label + 81: 78(int) Load 80(ii) + 83: 78(int) IAdd 81 82 + Store 80(ii) 83 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.init.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.init.frag.out new file mode 100755 index 0000000000..42f94caefa --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.init.frag.out @@ -0,0 +1,480 @@ +hlsl.init.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child (temp 4-component vector of float) +0:1 'a1' (global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:1 move second child to first child (temp 4-component vector of float) +0:1 'b1' (global 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 2.500000 +0:? 2.100000 +0:? 2.200000 +0:2 Sequence +0:2 move second child to first child (temp 4-component vector of float) +0:2 'a1i' (global 4-component vector of float) +0:2 Constant: +0:2 1.000000 +0:2 0.500000 +0:2 0.000000 +0:2 1.000000 +0:2 move second child to first child (temp 4-component vector of float) +0:2 'b1i' (global 4-component vector of float) +0:2 Constant: +0:2 2.000000 +0:2 2.500000 +0:2 2.100000 +0:2 2.200000 +0:3 Sequence +0:3 move second child to first child (temp float) +0:3 'a2' (global float) +0:3 Constant: +0:3 0.200000 +0:4 Sequence +0:4 move second child to first child (temp float) +0:4 'b3' (global float) +0:4 Constant: +0:4 0.300000 +0:5 Sequence +0:5 move second child to first child (temp float) +0:5 'b4' (global float) +0:5 Constant: +0:5 0.400000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'a5' (global float) +0:6 Constant: +0:6 0.500000 +0:6 move second child to first child (temp float) +0:6 'c5' (global float) +0:6 Constant: +0:6 1.500000 +0: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' (layout(location=0 ) 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 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 component-wise multiply (temp 4-component vector of float) +0:35 'input' (layout(location=0 ) in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) +0:35 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'a1' (global 4-component vector of float) +0:? 'b1' (global 4-component vector of float) +0:? 'a1i' (global 4-component vector of float) +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}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child (temp 4-component vector of float) +0:1 'a1' (global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:1 move second child to first child (temp 4-component vector of float) +0:1 'b1' (global 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 2.500000 +0:? 2.100000 +0:? 2.200000 +0:2 Sequence +0:2 move second child to first child (temp 4-component vector of float) +0:2 'a1i' (global 4-component vector of float) +0:2 Constant: +0:2 1.000000 +0:2 0.500000 +0:2 0.000000 +0:2 1.000000 +0:2 move second child to first child (temp 4-component vector of float) +0:2 'b1i' (global 4-component vector of float) +0:2 Constant: +0:2 2.000000 +0:2 2.500000 +0:2 2.100000 +0:2 2.200000 +0:3 Sequence +0:3 move second child to first child (temp float) +0:3 'a2' (global float) +0:3 Constant: +0:3 0.200000 +0:4 Sequence +0:4 move second child to first child (temp float) +0:4 'b3' (global float) +0:4 Constant: +0:4 0.300000 +0:5 Sequence +0:5 move second child to first child (temp float) +0:5 'b4' (global float) +0:5 Constant: +0:5 0.400000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'a5' (global float) +0:6 Constant: +0:6 0.500000 +0:6 move second child to first child (temp float) +0:6 'c5' (global float) +0:6 Constant: +0:6 1.500000 +0: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' (layout(location=0 ) 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 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 component-wise multiply (temp 4-component vector of float) +0:35 'input' (layout(location=0 ) in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) +0:35 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'a1' (global 4-component vector of float) +0:? 'b1' (global 4-component vector of float) +0:? 'a1i' (global 4-component vector of float) +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}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 97 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "ShaderFunction" 88 90 + ExecutionMode 4 OriginUpperLeft + Name 4 "ShaderFunction" + Name 9 "a1" + Name 14 "b1" + Name 20 "a1i" + Name 21 "b1i" + Name 23 "a2" + Name 25 "b3" + Name 27 "b4" + Name 29 "a5" + Name 30 "c5" + Name 33 "Single1" + MemberName 33(Single1) 0 "f" + Name 35 "single1" + Name 40 "Single2" + MemberName 40(Single2) 0 "v" + Name 42 "single2" + Name 47 "Single3" + MemberName 47(Single3) 0 "s1" + Name 49 "single3" + Name 53 "Single4" + MemberName 53(Single4) 0 "s1" + Name 55 "single4" + Name 62 "a2" + Name 64 "S1" + MemberName 64(S1) 0 "f" + MemberName 64(S1) 1 "i" + Name 65 "S2" + MemberName 65(S2) 0 "j" + MemberName 65(S2) 1 "g" + MemberName 65(S2) 2 "s1" + Name 67 "s2i" + Name 70 "a3" + Name 71 "a4" + Name 76 "s2" + Name 82 "a8" + Name 83 "b2" + Name 85 "a9" + Name 88 "@entryPointOutput" + Name 90 "input" + Name 95 "c4" + Name 96 "b5" + Decorate 88(@entryPointOutput) Location 0 + Decorate 90(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Private 7(fvec4) + 9(a1): 8(ptr) Variable Private + 10: 6(float) Constant 1065353216 + 11: 6(float) Constant 1056964608 + 12: 6(float) Constant 0 + 13: 7(fvec4) ConstantComposite 10 11 12 10 + 14(b1): 8(ptr) Variable Private + 15: 6(float) Constant 1073741824 + 16: 6(float) Constant 1075838976 + 17: 6(float) Constant 1074161254 + 18: 6(float) Constant 1074580685 + 19: 7(fvec4) ConstantComposite 15 16 17 18 + 20(a1i): 8(ptr) Variable Private + 21(b1i): 8(ptr) Variable Private + 22: TypePointer Private 6(float) + 23(a2): 22(ptr) Variable Private + 24: 6(float) Constant 1045220557 + 25(b3): 22(ptr) Variable Private + 26: 6(float) Constant 1050253722 + 27(b4): 22(ptr) Variable Private + 28: 6(float) Constant 1053609165 + 29(a5): 22(ptr) Variable Private + 30(c5): 22(ptr) Variable Private + 31: 6(float) Constant 1069547520 + 32: TypeInt 32 1 + 33(Single1): TypeStruct 32(int) + 34: TypePointer Private 33(Single1) + 35(single1): 34(ptr) Variable Private + 36: 32(int) Constant 10 + 37: 33(Single1) ConstantComposite 36 + 38: TypeInt 32 0 + 39: TypeVector 38(int) 2 + 40(Single2): TypeStruct 39(ivec2) + 41: TypePointer Private 40(Single2) + 42(single2): 41(ptr) Variable Private + 43: 38(int) Constant 1 + 44: 38(int) Constant 2 + 45: 39(ivec2) ConstantComposite 43 44 + 46: 40(Single2) ConstantComposite 45 + 47(Single3): TypeStruct 33(Single1) + 48: TypePointer Private 47(Single3) + 49(single3): 48(ptr) Variable Private + 50: 32(int) Constant 3 + 51: 33(Single1) ConstantComposite 50 + 52: 47(Single3) ConstantComposite 51 + 53(Single4): TypeStruct 40(Single2) + 54: TypePointer Private 53(Single4) + 55(single4): 54(ptr) Variable Private + 56: 38(int) Constant 4 + 57: 38(int) Constant 5 + 58: 39(ivec2) ConstantComposite 56 57 + 59: 40(Single2) ConstantComposite 58 + 60: 53(Single4) ConstantComposite 59 + 61: TypePointer Function 7(fvec4) + 63: 7(fvec4) ConstantComposite 24 26 28 11 + 64(S1): TypeStruct 6(float) 32(int) + 65(S2): TypeStruct 32(int) 6(float) 64(S1) + 66: TypePointer Function 65(S2) + 68: 32(int) Constant 9 + 70(a3): 22(ptr) Variable Private + 71(a4): 22(ptr) Variable Private + 73: 32(int) Constant 12 + 81: TypePointer Function 6(float) + 83(b2): 22(ptr) Variable Private + 87: TypePointer Output 7(fvec4) +88(@entryPointOutput): 87(ptr) Variable Output + 89: TypePointer Input 7(fvec4) + 90(input): 89(ptr) Variable Input + 95(c4): 22(ptr) Variable Private + 96(b5): 22(ptr) Variable Private +4(ShaderFunction): 2 Function None 3 + 5: Label + 62(a2): 61(ptr) Variable Function + 67(s2i): 66(ptr) Variable Function + 76(s2): 66(ptr) Variable Function + 82(a8): 81(ptr) Variable Function + 85(a9): 81(ptr) Variable Function + Store 9(a1) 13 + Store 14(b1) 19 + Store 20(a1i) 13 + Store 21(b1i) 19 + Store 23(a2) 24 + Store 25(b3) 26 + Store 27(b4) 28 + Store 29(a5) 11 + Store 30(c5) 31 + Store 35(single1) 37 + Store 42(single2) 46 + Store 49(single3) 52 + Store 55(single4) 60 + Store 62(a2) 63 + 69: 6(float) Load 29(a5) + 72: 6(float) Load 71(a4) + 74: 64(S1) CompositeConstruct 72 73 + 75: 65(S2) CompositeConstruct 68 69 74 + Store 67(s2i) 75 + 77: 6(float) Load 29(a5) + 78: 6(float) Load 71(a4) + 79: 64(S1) CompositeConstruct 78 73 + 80: 65(S2) CompositeConstruct 68 77 79 + Store 76(s2) 80 + 84: 6(float) Load 83(b2) + Store 82(a8) 84 + 86: 6(float) Load 29(a5) + Store 85(a9) 86 + 91: 7(fvec4) Load 90(input) + 92: 7(fvec4) Load 9(a1) + 93: 7(fvec4) FMul 91 92 + Store 88(@entryPointOutput) 93 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.init2.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.init2.frag.out new file mode 100644 index 0000000000..9b53e30499 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.init2.frag.out @@ -0,0 +1,197 @@ +hlsl.init2.frag +Shader version: 450 +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:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:26 Function Parameters: +0:? Sequence +0:27 Function Call: Test1( (temp void) +0:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:31 color: direct index for structure (temp 4-component vector of float) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:26 Function Parameters: +0:? Sequence +0:27 Function Call: Test1( (temp void) +0:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:31 color: direct index for structure (temp 4-component vector of float) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 47 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 43 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "Test1(" + Name 10 "mystruct" + MemberName 10(mystruct) 0 "a" + Name 12 "test1" + Name 17 "test2" + Name 23 "test4" + Name 25 "mystruct2" + MemberName 25(mystruct2) 0 "a" + MemberName 25(mystruct2) 1 "b" + MemberName 25(mystruct2) 2 "c" + Name 27 "test5" + Name 34 "PS_OUTPUT" + MemberName 34(PS_OUTPUT) 0 "color" + Name 36 "ps_output" + Name 43 "color" + Decorate 43(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 2 + 10(mystruct): TypeStruct 9(fvec2) + 11: TypePointer Function 10(mystruct) + 13: 8(float) Constant 1065353216 + 14: 8(float) Constant 1073741824 + 15: 9(fvec2) ConstantComposite 13 14 + 16:10(mystruct) ConstantComposite 15 + 18: 8(float) Constant 1077936128 + 19: 8(float) Constant 1082130432 + 20: 9(fvec2) ConstantComposite 18 19 + 21:10(mystruct) ConstantComposite 20 + 22: TypePointer Function 8(float) + 24: 8(float) Constant 1088421888 + 25(mystruct2): TypeStruct 8(float) 8(float) 8(float) + 26: TypePointer Function 25(mystruct2) + 28: 8(float) Constant 1090519040 + 29: 8(float) Constant 1091567616 + 30: 8(float) Constant 1092616192 + 31:25(mystruct2) ConstantComposite 28 29 30 + 33: TypeVector 8(float) 4 + 34(PS_OUTPUT): TypeStruct 33(fvec4) + 35: TypePointer Function 34(PS_OUTPUT) + 37: TypeInt 32 1 + 38: 37(int) Constant 0 + 39: 33(fvec4) ConstantComposite 13 13 13 13 + 40: TypePointer Function 33(fvec4) + 42: TypePointer Output 33(fvec4) + 43(color): 42(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 36(ps_output): 35(ptr) Variable Function + 32: 2 FunctionCall 6(Test1() + 41: 40(ptr) AccessChain 36(ps_output) 38 + Store 41 39 + 44: 40(ptr) AccessChain 36(ps_output) 38 + 45: 33(fvec4) Load 44 + Store 43(color) 45 + Return + FunctionEnd + 6(Test1(): 2 Function None 3 + 7: Label + 12(test1): 11(ptr) Variable Function + 17(test2): 11(ptr) Variable Function + 23(test4): 22(ptr) Variable Function + 27(test5): 26(ptr) Variable Function + Store 12(test1) 16 + Store 17(test2) 21 + Store 23(test4) 24 + Store 27(test5) 31 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.inoutquals.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.inoutquals.frag.out new file mode 100644 index 0000000000..b2716a4c84 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.inoutquals.frag.out @@ -0,0 +1,272 @@ +hlsl.inoutquals.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: MyFunc(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:? 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:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Parameters: +0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:15 'sampleMask' (out int SampleMaskIn) +0:? Sequence +0:18 Sequence +0:18 move second child to first child (temp float) +0:18 'x' (temp float) +0:18 Constant: +0:18 7.000000 +0:18 move second child to first child (temp float) +0:18 'z' (temp float) +0:18 Constant: +0:18 3.000000 +0:19 Function Call: MyFunc(f1;f1;f1; (temp void) +0:19 'x' (temp float) +0:19 'y' (temp float) +0:19 'z' (temp float) +0:21 move second child to first child (temp 4-component vector of float) +0:21 Color: direct index for structure (temp 4-component vector of float) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:21 Constant: +0:21 0 (const int) +0:? Construct vec4 (temp 4-component vector of float) +0:21 'x' (temp float) +0:21 'y' (temp float) +0:21 'z' (temp float) +0:21 Constant: +0:21 1.000000 +0:22 move second child to first child (temp float) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 1 (const int) +0:22 direct index (temp float) +0:22 'inpos' (noperspective in 4-component vector of float FragCoord) +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:24 Color: direct index for structure (temp 4-component vector of float) +0:24 'psout' (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:? 'Depth' (out float FragDepth) +0:24 Depth: direct index for structure (temp float) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:24 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' (out int SampleMaskIn) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: MyFunc(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:? 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:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Parameters: +0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:15 'sampleMask' (out int SampleMaskIn) +0:? Sequence +0:18 Sequence +0:18 move second child to first child (temp float) +0:18 'x' (temp float) +0:18 Constant: +0:18 7.000000 +0:18 move second child to first child (temp float) +0:18 'z' (temp float) +0:18 Constant: +0:18 3.000000 +0:19 Function Call: MyFunc(f1;f1;f1; (temp void) +0:19 'x' (temp float) +0:19 'y' (temp float) +0:19 'z' (temp float) +0:21 move second child to first child (temp 4-component vector of float) +0:21 Color: direct index for structure (temp 4-component vector of float) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:21 Constant: +0:21 0 (const int) +0:? Construct vec4 (temp 4-component vector of float) +0:21 'x' (temp float) +0:21 'y' (temp float) +0:21 'z' (temp float) +0:21 Constant: +0:21 1.000000 +0:22 move second child to first child (temp float) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 1 (const int) +0:22 direct index (temp float) +0:22 'inpos' (noperspective in 4-component vector of float FragCoord) +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:24 Color: direct index for structure (temp 4-component vector of float) +0:24 'psout' (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:? 'Depth' (out float FragDepth) +0:24 Depth: direct index for structure (temp float) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:24 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' (out int SampleMaskIn) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 63 + + Capability Shader + Capability SampleRateShading + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 45 53 57 62 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "MyFunc(f1;f1;f1;" + Name 9 "x" + Name 10 "y" + Name 11 "z" + Name 17 "x" + Name 19 "z" + Name 21 "y" + Name 22 "param" + Name 24 "param" + Name 25 "param" + Name 31 "PS_OUTPUT" + MemberName 31(PS_OUTPUT) 0 "Color" + MemberName 31(PS_OUTPUT) 1 "Depth" + Name 33 "psout" + Name 45 "inpos" + Name 53 "Color" + Name 57 "Depth" + Name 62 "sampleMask" + Decorate 45(inpos) NoPerspective + Decorate 45(inpos) BuiltIn FragCoord + Decorate 53(Color) Location 0 + Decorate 57(Depth) BuiltIn FragDepth + Decorate 62(sampleMask) BuiltIn SampleMask + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) 7(ptr) 7(ptr) + 16: 6(float) Constant 3212836864 + 18: 6(float) Constant 1088421888 + 20: 6(float) Constant 1077936128 + 30: TypeVector 6(float) 4 + 31(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) + 32: TypePointer Function 31(PS_OUTPUT) + 34: TypeInt 32 1 + 35: 34(int) Constant 0 + 39: 6(float) Constant 1065353216 + 41: TypePointer Function 30(fvec4) + 43: 34(int) Constant 1 + 44: TypePointer Input 30(fvec4) + 45(inpos): 44(ptr) Variable Input + 46: TypeInt 32 0 + 47: 46(int) Constant 3 + 48: TypePointer Input 6(float) + 52: TypePointer Output 30(fvec4) + 53(Color): 52(ptr) Variable Output + 56: TypePointer Output 6(float) + 57(Depth): 56(ptr) Variable Output + 61: TypePointer Output 34(int) + 62(sampleMask): 61(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 17(x): 7(ptr) Variable Function + 19(z): 7(ptr) Variable Function + 21(y): 7(ptr) Variable Function + 22(param): 7(ptr) Variable Function + 24(param): 7(ptr) Variable Function + 25(param): 7(ptr) Variable Function + 33(psout): 32(ptr) Variable Function + Store 17(x) 18 + Store 19(z) 20 + 23: 6(float) Load 17(x) + Store 22(param) 23 + 26: 6(float) Load 19(z) + Store 25(param) 26 + 27: 2 FunctionCall 12(MyFunc(f1;f1;f1;) 22(param) 24(param) 25(param) + 28: 6(float) Load 24(param) + Store 21(y) 28 + 29: 6(float) Load 25(param) + Store 19(z) 29 + 36: 6(float) Load 17(x) + 37: 6(float) Load 21(y) + 38: 6(float) Load 19(z) + 40: 30(fvec4) CompositeConstruct 36 37 38 39 + 42: 41(ptr) AccessChain 33(psout) 35 + Store 42 40 + 49: 48(ptr) AccessChain 45(inpos) 47 + 50: 6(float) Load 49 + 51: 7(ptr) AccessChain 33(psout) 43 + Store 51 50 + 54: 41(ptr) AccessChain 33(psout) 35 + 55: 30(fvec4) Load 54 + Store 53(Color) 55 + 58: 7(ptr) AccessChain 33(psout) 43 + 59: 6(float) Load 58 + Store 57(Depth) 59 + Return + FunctionEnd +12(MyFunc(f1;f1;f1;): 2 Function None 8 + 9(x): 7(ptr) FunctionParameter + 10(y): 7(ptr) FunctionParameter + 11(z): 7(ptr) FunctionParameter + 13: Label + 14: 6(float) Load 9(x) + Store 10(y) 14 + 15: 6(float) Load 10(y) + Store 11(z) 15 + Store 9(x) 16 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.barriers.comp.out new file mode 100644 index 0000000000..07bd3709e2 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -0,0 +1,82 @@ +hlsl.intrinsics.barriers.comp +Shader version: 450 +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 GroupMemoryBarrier (temp void) +0:7 GroupMemoryBarrierWithGroupSync (temp void) +0:8 WorkgroupMemoryBarrier (temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:11 Constant: +0:11 0.000000 +0:11 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) + + +Linked compute stage: + + +Shader version: 450 +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 GroupMemoryBarrier (temp void) +0:7 GroupMemoryBarrierWithGroupSync (temp void) +0:8 WorkgroupMemoryBarrier (temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:11 Constant: +0:11 0.000000 +0:11 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 17 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" 14 + ExecutionMode 4 LocalSize 1 1 1 + Name 4 "ComputeShaderFunction" + Name 14 "@entryPointOutput" + Decorate 14(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 1 + 8: 6(int) Constant 4048 + 9: 6(int) Constant 512 + 10: 6(int) Constant 2 + 11: 6(int) Constant 256 + 12: TypeFloat 32 + 13: TypePointer Output 12(float) +14(@entryPointOutput): 13(ptr) Variable Output + 15: 12(float) Constant 0 +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + MemoryBarrier 7 8 + ControlBarrier 7 7 8 + MemoryBarrier 7 9 + ControlBarrier 7 7 9 + MemoryBarrier 10 11 + ControlBarrier 10 10 11 + Store 14(@entryPointOutput) 15 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.comp.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.comp.out new file mode 100644 index 0000000000..42ad973163 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.comp.out @@ -0,0 +1,979 @@ +hlsl.intrinsics.comp +Shader version: 450 +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 'inF0' (in float) +0:24 AtomicAdd (temp void) +0:24 'gs_ua' (shared uint) +0:24 'gs_ub' (shared uint) +0:25 move second child to first child (temp uint) +0:25 'out_u1' (temp uint) +0:25 AtomicAdd (temp uint) +0:25 'gs_ua' (shared uint) +0:25 'gs_ub' (shared uint) +0:26 AtomicAnd (temp void) +0:26 'gs_ua' (shared uint) +0:26 'gs_ub' (shared uint) +0:27 move second child to first child (temp uint) +0:27 'out_u1' (temp uint) +0:27 AtomicAnd (temp uint) +0:27 'gs_ua' (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 void) +0:30 'gs_ua' (shared uint) +0:30 'gs_ub' (shared uint) +0:31 move second child to first child (temp uint) +0:31 'out_u1' (temp uint) +0:31 AtomicMax (temp uint) +0:31 'gs_ua' (shared uint) +0:31 'gs_ub' (shared uint) +0:32 AtomicMin (temp void) +0:32 'gs_ua' (shared uint) +0:32 'gs_ub' (shared uint) +0:33 move second child to first child (temp uint) +0:33 'out_u1' (temp uint) +0:33 AtomicMin (temp uint) +0:33 'gs_ua' (shared uint) +0:33 'gs_ub' (shared uint) +0:34 AtomicOr (temp void) +0:34 'gs_ua' (shared uint) +0:34 'gs_ub' (shared uint) +0:35 move second child to first child (temp uint) +0:35 'out_u1' (temp uint) +0:35 AtomicOr (temp uint) +0:35 'gs_ua' (shared uint) +0:35 'gs_ub' (shared uint) +0:36 AtomicXor (temp void) +0:36 'gs_ua' (shared uint) +0:36 'gs_ub' (shared uint) +0:37 move second child to first child (temp uint) +0:37 'out_u1' (temp uint) +0:37 AtomicXor (temp uint) +0:37 'gs_ua' (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 'inF0' (in 2-component vector of float) +0:58 AtomicAdd (temp void) +0:58 'gs_ua2' (shared 2-component vector of uint) +0:58 'gs_ub2' (shared 2-component vector of uint) +0:59 move second child to first child (temp 2-component vector of uint) +0:59 'out_u2' (temp 2-component vector of uint) +0:59 AtomicAdd (temp 2-component vector of uint) +0:59 'gs_ua2' (shared 2-component vector of uint) +0:59 'gs_ub2' (shared 2-component vector of uint) +0:60 AtomicAnd (temp void) +0:60 'gs_ua2' (shared 2-component vector of uint) +0:60 'gs_ub2' (shared 2-component vector of uint) +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'out_u2' (temp 2-component vector of uint) +0:61 AtomicAnd (temp 2-component vector of uint) +0:61 'gs_ua2' (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 void) +0:64 'gs_ua2' (shared 2-component vector of uint) +0:64 'gs_ub2' (shared 2-component vector of uint) +0:65 move second child to first child (temp 2-component vector of uint) +0:65 'out_u2' (temp 2-component vector of uint) +0:65 AtomicMax (temp 2-component vector of uint) +0:65 'gs_ua2' (shared 2-component vector of uint) +0:65 'gs_ub2' (shared 2-component vector of uint) +0:66 AtomicMin (temp void) +0:66 'gs_ua2' (shared 2-component vector of uint) +0:66 'gs_ub2' (shared 2-component vector of uint) +0:67 move second child to first child (temp 2-component vector of uint) +0:67 'out_u2' (temp 2-component vector of uint) +0:67 AtomicMin (temp 2-component vector of uint) +0:67 'gs_ua2' (shared 2-component vector of uint) +0:67 'gs_ub2' (shared 2-component vector of uint) +0:68 AtomicOr (temp void) +0:68 'gs_ua2' (shared 2-component vector of uint) +0:68 'gs_ub2' (shared 2-component vector of uint) +0:69 move second child to first child (temp 2-component vector of uint) +0:69 'out_u2' (temp 2-component vector of uint) +0:69 AtomicOr (temp 2-component vector of uint) +0:69 'gs_ua2' (shared 2-component vector of uint) +0:69 'gs_ub2' (shared 2-component vector of uint) +0:70 AtomicXor (temp void) +0:70 'gs_ua2' (shared 2-component vector of uint) +0:70 'gs_ub2' (shared 2-component vector of uint) +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'out_u2' (temp 2-component vector of uint) +0:71 AtomicXor (temp 2-component vector of uint) +0:71 'gs_ua2' (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 'inF0' (in 3-component vector of float) +0:85 AtomicAdd (temp void) +0:85 'gs_ua3' (shared 3-component vector of uint) +0:85 'gs_ub3' (shared 3-component vector of uint) +0:86 move second child to first child (temp 3-component vector of uint) +0:86 'out_u3' (temp 3-component vector of uint) +0:86 AtomicAdd (temp 3-component vector of uint) +0:86 'gs_ua3' (shared 3-component vector of uint) +0:86 'gs_ub3' (shared 3-component vector of uint) +0:87 AtomicAnd (temp void) +0:87 'gs_ua3' (shared 3-component vector of uint) +0:87 'gs_ub3' (shared 3-component vector of uint) +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'out_u3' (temp 3-component vector of uint) +0:88 AtomicAnd (temp 3-component vector of uint) +0:88 'gs_ua3' (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 void) +0:91 'gs_ua3' (shared 3-component vector of uint) +0:91 'gs_ub3' (shared 3-component vector of uint) +0:92 move second child to first child (temp 3-component vector of uint) +0:92 'out_u3' (temp 3-component vector of uint) +0:92 AtomicMax (temp 3-component vector of uint) +0:92 'gs_ua3' (shared 3-component vector of uint) +0:92 'gs_ub3' (shared 3-component vector of uint) +0:93 AtomicMin (temp void) +0:93 'gs_ua3' (shared 3-component vector of uint) +0:93 'gs_ub3' (shared 3-component vector of uint) +0:94 move second child to first child (temp 3-component vector of uint) +0:94 'out_u3' (temp 3-component vector of uint) +0:94 AtomicMin (temp 3-component vector of uint) +0:94 'gs_ua3' (shared 3-component vector of uint) +0:94 'gs_ub3' (shared 3-component vector of uint) +0:95 AtomicOr (temp void) +0:95 'gs_ua3' (shared 3-component vector of uint) +0:95 'gs_ub3' (shared 3-component vector of uint) +0:96 move second child to first child (temp 3-component vector of uint) +0:96 'out_u3' (temp 3-component vector of uint) +0:96 AtomicOr (temp 3-component vector of uint) +0:96 'gs_ua3' (shared 3-component vector of uint) +0:96 'gs_ub3' (shared 3-component vector of uint) +0:97 AtomicXor (temp void) +0:97 'gs_ua3' (shared 3-component vector of uint) +0:97 'gs_ub3' (shared 3-component vector of uint) +0:98 move second child to first child (temp 3-component vector of uint) +0:98 'out_u3' (temp 3-component vector of uint) +0:98 AtomicXor (temp 3-component vector of uint) +0:98 'gs_ua3' (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' (layout(location=0 ) in 4-component vector of float) +0:105 'inF1' (layout(location=1 ) in 4-component vector of float) +0:105 'inF2' (layout(location=2 ) in 4-component vector of float) +0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:? Sequence +0:109 all (temp bool) +0:109 'inF0' (layout(location=0 ) in 4-component vector of float) +0:112 AtomicAdd (temp void) +0:112 'gs_ua4' (shared 4-component vector of uint) +0:112 'gs_ub4' (shared 4-component vector of uint) +0:113 move second child to first child (temp 4-component vector of uint) +0:113 'out_u4' (temp 4-component vector of uint) +0:113 AtomicAdd (temp 4-component vector of uint) +0:113 'gs_ua4' (shared 4-component vector of uint) +0:113 'gs_ub4' (shared 4-component vector of uint) +0:114 AtomicAnd (temp void) +0:114 'gs_ua4' (shared 4-component vector of uint) +0:114 'gs_ub4' (shared 4-component vector of uint) +0:115 move second child to first child (temp 4-component vector of uint) +0:115 'out_u4' (temp 4-component vector of uint) +0:115 AtomicAnd (temp 4-component vector of uint) +0:115 'gs_ua4' (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 void) +0:118 'gs_ua4' (shared 4-component vector of uint) +0:118 'gs_ub4' (shared 4-component vector of uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'out_u4' (temp 4-component vector of uint) +0:119 AtomicMax (temp 4-component vector of uint) +0:119 'gs_ua4' (shared 4-component vector of uint) +0:119 'gs_ub4' (shared 4-component vector of uint) +0:120 AtomicMin (temp void) +0:120 'gs_ua4' (shared 4-component vector of uint) +0:120 'gs_ub4' (shared 4-component vector of uint) +0:121 move second child to first child (temp 4-component vector of uint) +0:121 'out_u4' (temp 4-component vector of uint) +0:121 AtomicMin (temp 4-component vector of uint) +0:121 'gs_ua4' (shared 4-component vector of uint) +0:121 'gs_ub4' (shared 4-component vector of uint) +0:122 AtomicOr (temp void) +0:122 'gs_ua4' (shared 4-component vector of uint) +0:122 'gs_ub4' (shared 4-component vector of uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'out_u4' (temp 4-component vector of uint) +0:123 AtomicOr (temp 4-component vector of uint) +0:123 'gs_ua4' (shared 4-component vector of uint) +0:123 'gs_ub4' (shared 4-component vector of uint) +0:124 AtomicXor (temp void) +0:124 'gs_ua4' (shared 4-component vector of uint) +0:124 'gs_ub4' (shared 4-component vector of uint) +0:125 move second child to first child (temp 4-component vector of uint) +0:125 'out_u4' (temp 4-component vector of uint) +0:125 AtomicXor (temp 4-component vector of uint) +0:125 'gs_ua4' (shared 4-component vector of uint) +0:125 'gs_ub4' (shared 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:128 Branch: Return +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:? 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) + + +Linked compute stage: + + +Shader version: 450 +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 'inF0' (in float) +0:24 AtomicAdd (temp void) +0:24 'gs_ua' (shared uint) +0:24 'gs_ub' (shared uint) +0:25 move second child to first child (temp uint) +0:25 'out_u1' (temp uint) +0:25 AtomicAdd (temp uint) +0:25 'gs_ua' (shared uint) +0:25 'gs_ub' (shared uint) +0:26 AtomicAnd (temp void) +0:26 'gs_ua' (shared uint) +0:26 'gs_ub' (shared uint) +0:27 move second child to first child (temp uint) +0:27 'out_u1' (temp uint) +0:27 AtomicAnd (temp uint) +0:27 'gs_ua' (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 void) +0:30 'gs_ua' (shared uint) +0:30 'gs_ub' (shared uint) +0:31 move second child to first child (temp uint) +0:31 'out_u1' (temp uint) +0:31 AtomicMax (temp uint) +0:31 'gs_ua' (shared uint) +0:31 'gs_ub' (shared uint) +0:32 AtomicMin (temp void) +0:32 'gs_ua' (shared uint) +0:32 'gs_ub' (shared uint) +0:33 move second child to first child (temp uint) +0:33 'out_u1' (temp uint) +0:33 AtomicMin (temp uint) +0:33 'gs_ua' (shared uint) +0:33 'gs_ub' (shared uint) +0:34 AtomicOr (temp void) +0:34 'gs_ua' (shared uint) +0:34 'gs_ub' (shared uint) +0:35 move second child to first child (temp uint) +0:35 'out_u1' (temp uint) +0:35 AtomicOr (temp uint) +0:35 'gs_ua' (shared uint) +0:35 'gs_ub' (shared uint) +0:36 AtomicXor (temp void) +0:36 'gs_ua' (shared uint) +0:36 'gs_ub' (shared uint) +0:37 move second child to first child (temp uint) +0:37 'out_u1' (temp uint) +0:37 AtomicXor (temp uint) +0:37 'gs_ua' (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 'inF0' (in 2-component vector of float) +0:58 AtomicAdd (temp void) +0:58 'gs_ua2' (shared 2-component vector of uint) +0:58 'gs_ub2' (shared 2-component vector of uint) +0:59 move second child to first child (temp 2-component vector of uint) +0:59 'out_u2' (temp 2-component vector of uint) +0:59 AtomicAdd (temp 2-component vector of uint) +0:59 'gs_ua2' (shared 2-component vector of uint) +0:59 'gs_ub2' (shared 2-component vector of uint) +0:60 AtomicAnd (temp void) +0:60 'gs_ua2' (shared 2-component vector of uint) +0:60 'gs_ub2' (shared 2-component vector of uint) +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'out_u2' (temp 2-component vector of uint) +0:61 AtomicAnd (temp 2-component vector of uint) +0:61 'gs_ua2' (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 void) +0:64 'gs_ua2' (shared 2-component vector of uint) +0:64 'gs_ub2' (shared 2-component vector of uint) +0:65 move second child to first child (temp 2-component vector of uint) +0:65 'out_u2' (temp 2-component vector of uint) +0:65 AtomicMax (temp 2-component vector of uint) +0:65 'gs_ua2' (shared 2-component vector of uint) +0:65 'gs_ub2' (shared 2-component vector of uint) +0:66 AtomicMin (temp void) +0:66 'gs_ua2' (shared 2-component vector of uint) +0:66 'gs_ub2' (shared 2-component vector of uint) +0:67 move second child to first child (temp 2-component vector of uint) +0:67 'out_u2' (temp 2-component vector of uint) +0:67 AtomicMin (temp 2-component vector of uint) +0:67 'gs_ua2' (shared 2-component vector of uint) +0:67 'gs_ub2' (shared 2-component vector of uint) +0:68 AtomicOr (temp void) +0:68 'gs_ua2' (shared 2-component vector of uint) +0:68 'gs_ub2' (shared 2-component vector of uint) +0:69 move second child to first child (temp 2-component vector of uint) +0:69 'out_u2' (temp 2-component vector of uint) +0:69 AtomicOr (temp 2-component vector of uint) +0:69 'gs_ua2' (shared 2-component vector of uint) +0:69 'gs_ub2' (shared 2-component vector of uint) +0:70 AtomicXor (temp void) +0:70 'gs_ua2' (shared 2-component vector of uint) +0:70 'gs_ub2' (shared 2-component vector of uint) +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'out_u2' (temp 2-component vector of uint) +0:71 AtomicXor (temp 2-component vector of uint) +0:71 'gs_ua2' (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 'inF0' (in 3-component vector of float) +0:85 AtomicAdd (temp void) +0:85 'gs_ua3' (shared 3-component vector of uint) +0:85 'gs_ub3' (shared 3-component vector of uint) +0:86 move second child to first child (temp 3-component vector of uint) +0:86 'out_u3' (temp 3-component vector of uint) +0:86 AtomicAdd (temp 3-component vector of uint) +0:86 'gs_ua3' (shared 3-component vector of uint) +0:86 'gs_ub3' (shared 3-component vector of uint) +0:87 AtomicAnd (temp void) +0:87 'gs_ua3' (shared 3-component vector of uint) +0:87 'gs_ub3' (shared 3-component vector of uint) +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'out_u3' (temp 3-component vector of uint) +0:88 AtomicAnd (temp 3-component vector of uint) +0:88 'gs_ua3' (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 void) +0:91 'gs_ua3' (shared 3-component vector of uint) +0:91 'gs_ub3' (shared 3-component vector of uint) +0:92 move second child to first child (temp 3-component vector of uint) +0:92 'out_u3' (temp 3-component vector of uint) +0:92 AtomicMax (temp 3-component vector of uint) +0:92 'gs_ua3' (shared 3-component vector of uint) +0:92 'gs_ub3' (shared 3-component vector of uint) +0:93 AtomicMin (temp void) +0:93 'gs_ua3' (shared 3-component vector of uint) +0:93 'gs_ub3' (shared 3-component vector of uint) +0:94 move second child to first child (temp 3-component vector of uint) +0:94 'out_u3' (temp 3-component vector of uint) +0:94 AtomicMin (temp 3-component vector of uint) +0:94 'gs_ua3' (shared 3-component vector of uint) +0:94 'gs_ub3' (shared 3-component vector of uint) +0:95 AtomicOr (temp void) +0:95 'gs_ua3' (shared 3-component vector of uint) +0:95 'gs_ub3' (shared 3-component vector of uint) +0:96 move second child to first child (temp 3-component vector of uint) +0:96 'out_u3' (temp 3-component vector of uint) +0:96 AtomicOr (temp 3-component vector of uint) +0:96 'gs_ua3' (shared 3-component vector of uint) +0:96 'gs_ub3' (shared 3-component vector of uint) +0:97 AtomicXor (temp void) +0:97 'gs_ua3' (shared 3-component vector of uint) +0:97 'gs_ub3' (shared 3-component vector of uint) +0:98 move second child to first child (temp 3-component vector of uint) +0:98 'out_u3' (temp 3-component vector of uint) +0:98 AtomicXor (temp 3-component vector of uint) +0:98 'gs_ua3' (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' (layout(location=0 ) in 4-component vector of float) +0:105 'inF1' (layout(location=1 ) in 4-component vector of float) +0:105 'inF2' (layout(location=2 ) in 4-component vector of float) +0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:? Sequence +0:109 all (temp bool) +0:109 'inF0' (layout(location=0 ) in 4-component vector of float) +0:112 AtomicAdd (temp void) +0:112 'gs_ua4' (shared 4-component vector of uint) +0:112 'gs_ub4' (shared 4-component vector of uint) +0:113 move second child to first child (temp 4-component vector of uint) +0:113 'out_u4' (temp 4-component vector of uint) +0:113 AtomicAdd (temp 4-component vector of uint) +0:113 'gs_ua4' (shared 4-component vector of uint) +0:113 'gs_ub4' (shared 4-component vector of uint) +0:114 AtomicAnd (temp void) +0:114 'gs_ua4' (shared 4-component vector of uint) +0:114 'gs_ub4' (shared 4-component vector of uint) +0:115 move second child to first child (temp 4-component vector of uint) +0:115 'out_u4' (temp 4-component vector of uint) +0:115 AtomicAnd (temp 4-component vector of uint) +0:115 'gs_ua4' (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 void) +0:118 'gs_ua4' (shared 4-component vector of uint) +0:118 'gs_ub4' (shared 4-component vector of uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'out_u4' (temp 4-component vector of uint) +0:119 AtomicMax (temp 4-component vector of uint) +0:119 'gs_ua4' (shared 4-component vector of uint) +0:119 'gs_ub4' (shared 4-component vector of uint) +0:120 AtomicMin (temp void) +0:120 'gs_ua4' (shared 4-component vector of uint) +0:120 'gs_ub4' (shared 4-component vector of uint) +0:121 move second child to first child (temp 4-component vector of uint) +0:121 'out_u4' (temp 4-component vector of uint) +0:121 AtomicMin (temp 4-component vector of uint) +0:121 'gs_ua4' (shared 4-component vector of uint) +0:121 'gs_ub4' (shared 4-component vector of uint) +0:122 AtomicOr (temp void) +0:122 'gs_ua4' (shared 4-component vector of uint) +0:122 'gs_ub4' (shared 4-component vector of uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'out_u4' (temp 4-component vector of uint) +0:123 AtomicOr (temp 4-component vector of uint) +0:123 'gs_ua4' (shared 4-component vector of uint) +0:123 'gs_ub4' (shared 4-component vector of uint) +0:124 AtomicXor (temp void) +0:124 'gs_ua4' (shared 4-component vector of uint) +0:124 'gs_ub4' (shared 4-component vector of uint) +0:125 move second child to first child (temp 4-component vector of uint) +0:125 'out_u4' (temp 4-component vector of uint) +0:125 AtomicXor (temp 4-component vector of uint) +0:125 'gs_ua4' (shared 4-component vector of uint) +0:125 'gs_ub4' (shared 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:128 Branch: Return +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:? 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 224 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" 175 215 219 220 222 223 + ExecutionMode 4 LocalSize 1 1 1 + 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 52 "gs_ua" + Name 53 "gs_ub" + Name 58 "out_u1" + Name 66 "gs_uc" + Name 95 "gs_ua2" + Name 96 "gs_ub2" + Name 99 "out_u2" + Name 107 "gs_uc2" + Name 136 "gs_ua3" + Name 137 "gs_ub3" + Name 140 "out_u3" + Name 148 "gs_uc3" + Name 175 "inF0" + Name 180 "gs_ua4" + Name 181 "gs_ub4" + Name 185 "out_u4" + Name 193 "gs_uc4" + Name 215 "@entryPointOutput" + Name 219 "inF1" + Name 220 "inF2" + Name 222 "inU0" + Name 223 "inU1" + Decorate 175(inF0) Location 0 + Decorate 215(@entryPointOutput) Location 0 + Decorate 219(inF1) Location 1 + Decorate 220(inF2) Location 2 + Decorate 222(inU0) Location 3 + Decorate 223(inU1) Location 4 + 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) + 49: TypeBool + 51: TypePointer Workgroup 8(int) + 52(gs_ua): 51(ptr) Variable Workgroup + 53(gs_ub): 51(ptr) Variable Workgroup + 55: 8(int) Constant 1 + 56: 8(int) Constant 0 + 66(gs_uc): 51(ptr) Variable Workgroup + 87: 6(float) Constant 0 + 94: TypePointer Workgroup 26(ivec2) + 95(gs_ua2): 94(ptr) Variable Workgroup + 96(gs_ub2): 94(ptr) Variable Workgroup + 107(gs_uc2): 94(ptr) Variable Workgroup + 128: 6(float) Constant 1065353216 + 129: 6(float) Constant 1073741824 + 130: 24(fvec2) ConstantComposite 128 129 + 135: TypePointer Workgroup 38(ivec3) + 136(gs_ua3): 135(ptr) Variable Workgroup + 137(gs_ub3): 135(ptr) Variable Workgroup + 148(gs_uc3): 135(ptr) Variable Workgroup + 169: 6(float) Constant 1077936128 + 170: 36(fvec3) ConstantComposite 128 129 169 + 173: TypeVector 6(float) 4 + 174: TypePointer Input 173(fvec4) + 175(inF0): 174(ptr) Variable Input + 178: TypeVector 8(int) 4 + 179: TypePointer Workgroup 178(ivec4) + 180(gs_ua4): 179(ptr) Variable Workgroup + 181(gs_ub4): 179(ptr) Variable Workgroup + 184: TypePointer Function 178(ivec4) + 193(gs_uc4): 179(ptr) Variable Workgroup + 214: TypePointer Output 173(fvec4) +215(@entryPointOutput): 214(ptr) Variable Output + 216: 6(float) Constant 1082130432 + 217: 173(fvec4) ConstantComposite 128 129 169 216 + 219(inF1): 174(ptr) Variable Input + 220(inF2): 174(ptr) Variable Input + 221: TypePointer Input 178(ivec4) + 222(inU0): 221(ptr) Variable Input + 223(inU1): 221(ptr) Variable Input +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + 185(out_u4): 184(ptr) Variable Function + 176: 173(fvec4) Load 175(inF0) + 177: 49(bool) All 176 + 182: 178(ivec4) Load 181(gs_ub4) + 183: 2 AtomicIAdd 180(gs_ua4) 55 56 182 + 186: 178(ivec4) Load 181(gs_ub4) + 187: 178(ivec4) AtomicIAdd 180(gs_ua4) 55 56 186 + Store 185(out_u4) 187 + 188: 178(ivec4) Load 181(gs_ub4) + 189: 2 AtomicAnd 180(gs_ua4) 55 56 188 + 190: 178(ivec4) Load 181(gs_ub4) + 191: 178(ivec4) AtomicAnd 180(gs_ua4) 55 56 190 + Store 185(out_u4) 191 + 192: 178(ivec4) Load 181(gs_ub4) + 194: 178(ivec4) Load 193(gs_uc4) + 195: 178(ivec4) AtomicCompareExchange 180(gs_ua4) 55 56 56 194 192 + Store 185(out_u4) 195 + 196: 178(ivec4) Load 181(gs_ub4) + 197: 178(ivec4) AtomicExchange 180(gs_ua4) 55 56 196 + Store 185(out_u4) 197 + 198: 178(ivec4) Load 181(gs_ub4) + 199: 2 AtomicSMax 180(gs_ua4) 55 56 198 + 200: 178(ivec4) Load 181(gs_ub4) + 201: 178(ivec4) AtomicUMax 180(gs_ua4) 55 56 200 + Store 185(out_u4) 201 + 202: 178(ivec4) Load 181(gs_ub4) + 203: 2 AtomicSMin 180(gs_ua4) 55 56 202 + 204: 178(ivec4) Load 181(gs_ub4) + 205: 178(ivec4) AtomicUMin 180(gs_ua4) 55 56 204 + Store 185(out_u4) 205 + 206: 178(ivec4) Load 181(gs_ub4) + 207: 2 AtomicOr 180(gs_ua4) 55 56 206 + 208: 178(ivec4) Load 181(gs_ub4) + 209: 178(ivec4) AtomicOr 180(gs_ua4) 55 56 208 + Store 185(out_u4) 209 + 210: 178(ivec4) Load 181(gs_ub4) + 211: 2 AtomicXor 180(gs_ua4) 55 56 210 + 212: 178(ivec4) Load 181(gs_ub4) + 213: 178(ivec4) AtomicXor 180(gs_ua4) 55 56 212 + Store 185(out_u4) 213 + Store 215(@entryPointOutput) 217 + 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 + 58(out_u1): 9(ptr) Variable Function + 48: 6(float) Load 11(inF0) + 50: 49(bool) All 48 + 54: 8(int) Load 53(gs_ub) + 57: 2 AtomicIAdd 52(gs_ua) 55 56 54 + 59: 8(int) Load 53(gs_ub) + 60: 8(int) AtomicIAdd 52(gs_ua) 55 56 59 + Store 58(out_u1) 60 + 61: 8(int) Load 53(gs_ub) + 62: 2 AtomicAnd 52(gs_ua) 55 56 61 + 63: 8(int) Load 53(gs_ub) + 64: 8(int) AtomicAnd 52(gs_ua) 55 56 63 + Store 58(out_u1) 64 + 65: 8(int) Load 53(gs_ub) + 67: 8(int) Load 66(gs_uc) + 68: 8(int) AtomicCompareExchange 52(gs_ua) 55 56 56 67 65 + Store 58(out_u1) 68 + 69: 8(int) Load 53(gs_ub) + 70: 8(int) AtomicExchange 52(gs_ua) 55 56 69 + Store 58(out_u1) 70 + 71: 8(int) Load 53(gs_ub) + 72: 2 AtomicSMax 52(gs_ua) 55 56 71 + 73: 8(int) Load 53(gs_ub) + 74: 8(int) AtomicUMax 52(gs_ua) 55 56 73 + Store 58(out_u1) 74 + 75: 8(int) Load 53(gs_ub) + 76: 2 AtomicSMin 52(gs_ua) 55 56 75 + 77: 8(int) Load 53(gs_ub) + 78: 8(int) AtomicUMin 52(gs_ua) 55 56 77 + Store 58(out_u1) 78 + 79: 8(int) Load 53(gs_ub) + 80: 2 AtomicOr 52(gs_ua) 55 56 79 + 81: 8(int) Load 53(gs_ub) + 82: 8(int) AtomicOr 52(gs_ua) 55 56 81 + Store 58(out_u1) 82 + 83: 8(int) Load 53(gs_ub) + 84: 2 AtomicXor 52(gs_ua) 55 56 83 + 85: 8(int) Load 53(gs_ub) + 86: 8(int) AtomicXor 52(gs_ua) 55 56 85 + Store 58(out_u1) 86 + ReturnValue 87 + FunctionEnd +22(ComputeShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 + 19(inF0): 7(ptr) FunctionParameter + 20(inF1): 7(ptr) FunctionParameter + 21(inF2): 7(ptr) FunctionParameter + 23: Label + ReturnValue 87 + FunctionEnd +34(ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 + 29(inF0): 25(ptr) FunctionParameter + 30(inF1): 25(ptr) FunctionParameter + 31(inF2): 25(ptr) FunctionParameter + 32(inU0): 27(ptr) FunctionParameter + 33(inU1): 27(ptr) FunctionParameter + 35: Label + 99(out_u2): 27(ptr) Variable Function + 92: 24(fvec2) Load 29(inF0) + 93: 49(bool) All 92 + 97: 26(ivec2) Load 96(gs_ub2) + 98: 2 AtomicIAdd 95(gs_ua2) 55 56 97 + 100: 26(ivec2) Load 96(gs_ub2) + 101: 26(ivec2) AtomicIAdd 95(gs_ua2) 55 56 100 + Store 99(out_u2) 101 + 102: 26(ivec2) Load 96(gs_ub2) + 103: 2 AtomicAnd 95(gs_ua2) 55 56 102 + 104: 26(ivec2) Load 96(gs_ub2) + 105: 26(ivec2) AtomicAnd 95(gs_ua2) 55 56 104 + Store 99(out_u2) 105 + 106: 26(ivec2) Load 96(gs_ub2) + 108: 26(ivec2) Load 107(gs_uc2) + 109: 26(ivec2) AtomicCompareExchange 95(gs_ua2) 55 56 56 108 106 + Store 99(out_u2) 109 + 110: 26(ivec2) Load 96(gs_ub2) + 111: 26(ivec2) AtomicExchange 95(gs_ua2) 55 56 110 + Store 99(out_u2) 111 + 112: 26(ivec2) Load 96(gs_ub2) + 113: 2 AtomicSMax 95(gs_ua2) 55 56 112 + 114: 26(ivec2) Load 96(gs_ub2) + 115: 26(ivec2) AtomicUMax 95(gs_ua2) 55 56 114 + Store 99(out_u2) 115 + 116: 26(ivec2) Load 96(gs_ub2) + 117: 2 AtomicSMin 95(gs_ua2) 55 56 116 + 118: 26(ivec2) Load 96(gs_ub2) + 119: 26(ivec2) AtomicUMin 95(gs_ua2) 55 56 118 + Store 99(out_u2) 119 + 120: 26(ivec2) Load 96(gs_ub2) + 121: 2 AtomicOr 95(gs_ua2) 55 56 120 + 122: 26(ivec2) Load 96(gs_ub2) + 123: 26(ivec2) AtomicOr 95(gs_ua2) 55 56 122 + Store 99(out_u2) 123 + 124: 26(ivec2) Load 96(gs_ub2) + 125: 2 AtomicXor 95(gs_ua2) 55 56 124 + 126: 26(ivec2) Load 96(gs_ub2) + 127: 26(ivec2) AtomicXor 95(gs_ua2) 55 56 126 + Store 99(out_u2) 127 + ReturnValue 130 + FunctionEnd +46(ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 + 41(inF0): 37(ptr) FunctionParameter + 42(inF1): 37(ptr) FunctionParameter + 43(inF2): 37(ptr) FunctionParameter + 44(inU0): 39(ptr) FunctionParameter + 45(inU1): 39(ptr) FunctionParameter + 47: Label + 140(out_u3): 39(ptr) Variable Function + 133: 36(fvec3) Load 41(inF0) + 134: 49(bool) All 133 + 138: 38(ivec3) Load 137(gs_ub3) + 139: 2 AtomicIAdd 136(gs_ua3) 55 56 138 + 141: 38(ivec3) Load 137(gs_ub3) + 142: 38(ivec3) AtomicIAdd 136(gs_ua3) 55 56 141 + Store 140(out_u3) 142 + 143: 38(ivec3) Load 137(gs_ub3) + 144: 2 AtomicAnd 136(gs_ua3) 55 56 143 + 145: 38(ivec3) Load 137(gs_ub3) + 146: 38(ivec3) AtomicAnd 136(gs_ua3) 55 56 145 + Store 140(out_u3) 146 + 147: 38(ivec3) Load 137(gs_ub3) + 149: 38(ivec3) Load 148(gs_uc3) + 150: 38(ivec3) AtomicCompareExchange 136(gs_ua3) 55 56 56 149 147 + Store 140(out_u3) 150 + 151: 38(ivec3) Load 137(gs_ub3) + 152: 38(ivec3) AtomicExchange 136(gs_ua3) 55 56 151 + Store 140(out_u3) 152 + 153: 38(ivec3) Load 137(gs_ub3) + 154: 2 AtomicSMax 136(gs_ua3) 55 56 153 + 155: 38(ivec3) Load 137(gs_ub3) + 156: 38(ivec3) AtomicUMax 136(gs_ua3) 55 56 155 + Store 140(out_u3) 156 + 157: 38(ivec3) Load 137(gs_ub3) + 158: 2 AtomicSMin 136(gs_ua3) 55 56 157 + 159: 38(ivec3) Load 137(gs_ub3) + 160: 38(ivec3) AtomicUMin 136(gs_ua3) 55 56 159 + Store 140(out_u3) 160 + 161: 38(ivec3) Load 137(gs_ub3) + 162: 2 AtomicOr 136(gs_ua3) 55 56 161 + 163: 38(ivec3) Load 137(gs_ub3) + 164: 38(ivec3) AtomicOr 136(gs_ua3) 55 56 163 + Store 140(out_u3) 164 + 165: 38(ivec3) Load 137(gs_ub3) + 166: 2 AtomicXor 136(gs_ua3) 55 56 165 + 167: 38(ivec3) Load 137(gs_ub3) + 168: 38(ivec3) AtomicXor 136(gs_ua3) 55 56 167 + Store 140(out_u3) 168 + ReturnValue 170 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.double.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.double.frag.out new file mode 100644 index 0000000000..91abf73789 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -0,0 +1,169 @@ +hlsl.intrinsics.double.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float) +0:5 Function Parameters: +0:5 'inDV1a' (layout(location=0 ) in double) +0:5 'inDV1b' (layout(location=1 ) in double) +0:5 'inDV1c' (layout(location=2 ) in double) +0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:5 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:5 'inU1a' (layout(location=8 ) in uint) +0:5 'inU1b' (layout(location=9 ) 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' (layout(location=0 ) in double) +0:6 'inDV1b' (layout(location=1 ) in double) +0:6 'inDV1c' (layout(location=2 ) 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' (layout(location=8 ) in uint) +0:7 'inU1b' (layout(location=9 ) in uint) +0:9 Sequence +0:9 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:9 Constant: +0:9 0.000000 +0:9 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:? 'inDV1a' (layout(location=0 ) in double) +0:? 'inDV1b' (layout(location=1 ) in double) +0:? 'inDV1c' (layout(location=2 ) in double) +0:? 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:? 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:? 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:? 'inU1a' (layout(location=8 ) in uint) +0:? 'inU1b' (layout(location=9 ) in uint) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float) +0:5 Function Parameters: +0:5 'inDV1a' (layout(location=0 ) in double) +0:5 'inDV1b' (layout(location=1 ) in double) +0:5 'inDV1c' (layout(location=2 ) in double) +0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:5 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:5 'inU1a' (layout(location=8 ) in uint) +0:5 'inU1b' (layout(location=9 ) 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' (layout(location=0 ) in double) +0:6 'inDV1b' (layout(location=1 ) in double) +0:6 'inDV1c' (layout(location=2 ) 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' (layout(location=8 ) in uint) +0:7 'inU1b' (layout(location=9 ) in uint) +0:9 Sequence +0:9 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:9 Constant: +0:9 0.000000 +0:9 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:? 'inDV1a' (layout(location=0 ) in double) +0:? 'inDV1b' (layout(location=1 ) in double) +0:? 'inDV1c' (layout(location=2 ) in double) +0:? 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:? 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:? 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:? 'inU1a' (layout(location=8 ) in uint) +0:? 'inU1b' (layout(location=9 ) in uint) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 41 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 29 34 37 40 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "r00" + Name 10 "inDV1a" + Name 12 "inDV1b" + Name 14 "inDV1c" + Name 17 "r01" + Name 20 "inU1a" + Name 22 "inU1b" + Name 29 "@entryPointOutput" + Name 34 "inDV2" + Name 37 "inDV3" + Name 40 "inDV4" + Decorate 10(inDV1a) Location 0 + Decorate 12(inDV1b) Location 1 + Decorate 14(inDV1c) Location 2 + Decorate 20(inU1a) Location 8 + Decorate 22(inU1b) Location 9 + Decorate 29(@entryPointOutput) Location 0 + Decorate 34(inDV2) Location 3 + Decorate 37(inDV3) Location 4 + Decorate 40(inDV4) Location 6 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 64 + 7: TypePointer Function 6(float) + 9: TypePointer Input 6(float) + 10(inDV1a): 9(ptr) Variable Input + 12(inDV1b): 9(ptr) Variable Input + 14(inDV1c): 9(ptr) Variable Input + 18: TypeInt 32 0 + 19: TypePointer Input 18(int) + 20(inU1a): 19(ptr) Variable Input + 22(inU1b): 19(ptr) Variable Input + 24: TypeVector 18(int) 2 + 27: TypeFloat 32 + 28: TypePointer Output 27(float) +29(@entryPointOutput): 28(ptr) Variable Output + 30: 27(float) Constant 0 + 32: TypeVector 6(float) 2 + 33: TypePointer Input 32(fvec2) + 34(inDV2): 33(ptr) Variable Input + 35: TypeVector 6(float) 3 + 36: TypePointer Input 35(fvec3) + 37(inDV3): 36(ptr) Variable Input + 38: TypeVector 6(float) 4 + 39: TypePointer Input 38(fvec4) + 40(inDV4): 39(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 17(r01): 7(ptr) Variable Function + 11: 6(float) Load 10(inDV1a) + 13: 6(float) Load 12(inDV1b) + 15: 6(float) Load 14(inDV1c) + 16: 6(float) ExtInst 1(GLSL.std.450) 50(Fma) 11 13 15 + Store 8(r00) 16 + 21: 18(int) Load 20(inU1a) + 23: 18(int) Load 22(inU1b) + 25: 24(ivec2) CompositeConstruct 21 23 + 26: 6(float) Bitcast 25 + Store 17(r01) 26 + Store 29(@entryPointOutput) 30 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.evalfns.frag.out new file mode 100644 index 0000000000..8f8dd61015 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -0,0 +1,174 @@ +hlsl.intrinsics.evalfns.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) +0:3 Function Parameters: +0:3 'inF1' (layout(location=0 ) in float) +0:3 'inF2' (layout(location=1 ) in 2-component vector of float) +0:3 'inF3' (layout(location=2 ) in 3-component vector of float) +0:3 'inF4' (layout(location=3 ) in 4-component vector of float) +0:3 'inI2' (layout(location=4 ) in 2-component vector of int) +0:? Sequence +0:4 interpolateAtOffset (temp float) +0:4 'inF1' (layout(location=0 ) in float) +0:? Constant: +0:? -0.500000 +0:? -0.062500 +0:5 interpolateAtOffset (temp 2-component vector of float) +0:5 'inF2' (layout(location=1 ) 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' (layout(location=2 ) 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' (layout(location=3 ) in 4-component vector of float) +0:? Constant: +0:? 0.437500 +0:? -0.500000 +0:9 interpolateAtOffset (temp float) +0:9 'inF1' (layout(location=0 ) 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' (layout(location=4 ) in 2-component vector of int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 0.062500 +0:? Linker Objects +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 ) in 2-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) in float) +0:3 'inF2' (layout(location=1 ) in 2-component vector of float) +0:3 'inF3' (layout(location=2 ) in 3-component vector of float) +0:3 'inF4' (layout(location=3 ) in 4-component vector of float) +0:3 'inI2' (layout(location=4 ) in 2-component vector of int) +0:? Sequence +0:4 interpolateAtOffset (temp float) +0:4 'inF1' (layout(location=0 ) in float) +0:? Constant: +0:? -0.500000 +0:? -0.062500 +0:5 interpolateAtOffset (temp 2-component vector of float) +0:5 'inF2' (layout(location=1 ) 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' (layout(location=2 ) 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' (layout(location=3 ) in 4-component vector of float) +0:? Constant: +0:? 0.437500 +0:? -0.500000 +0:9 interpolateAtOffset (temp float) +0:9 'inF1' (layout(location=0 ) 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' (layout(location=4 ) in 2-component vector of int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 0.062500 +0:? Linker Objects +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 ) in 2-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 46 + + Capability Shader + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 15 22 29 36 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "inF1" + Name 15 "inF2" + Name 22 "inF3" + Name 29 "inF4" + Name 36 "inI2" + Decorate 8(inF1) Location 0 + Decorate 15(inF2) Location 1 + Decorate 22(inF3) Location 2 + Decorate 29(inF4) Location 3 + Decorate 36(inI2) Location 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Input 6(float) + 8(inF1): 7(ptr) Variable Input + 9: TypeVector 6(float) 2 + 10: 6(float) Constant 3204448256 + 11: 6(float) Constant 3179282432 + 12: 9(fvec2) ConstantComposite 10 11 + 14: TypePointer Input 9(fvec2) + 15(inF2): 14(ptr) Variable Input + 16: 6(float) Constant 0 + 17: 6(float) Constant 1031798784 + 18: 9(fvec2) ConstantComposite 16 17 + 20: TypeVector 6(float) 3 + 21: TypePointer Input 20(fvec3) + 22(inF3): 21(ptr) Variable Input + 23: 6(float) Constant 1044381696 + 24: 6(float) Constant 3200253952 + 25: 9(fvec2) ConstantComposite 23 24 + 27: TypeVector 6(float) 4 + 28: TypePointer Input 27(fvec4) + 29(inF4): 28(ptr) Variable Input + 30: 6(float) Constant 1054867456 + 31: 9(fvec2) ConstantComposite 30 10 + 33: TypeInt 32 1 + 34: TypeVector 33(int) 2 + 35: TypePointer Input 34(ivec2) + 36(inI2): 35(ptr) Variable Input + 38: 33(int) Constant 28 + 4(main): 2 Function None 3 + 5: Label + 13: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 12 + 19: 9(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 15(inF2) 18 + 26: 20(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 22(inF3) 25 + 32: 27(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 29(inF4) 31 + 37: 34(ivec2) Load 36(inI2) + 39: 34(ivec2) CompositeConstruct 38 38 + 40: 34(ivec2) ShiftLeftLogical 37 39 + 41: 34(ivec2) CompositeConstruct 38 38 + 42: 34(ivec2) ShiftRightArithmetic 40 41 + 43: 9(fvec2) ConvertSToF 42 + 44: 9(fvec2) VectorTimesScalar 43 17 + 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 44 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.f1632.frag.out new file mode 100644 index 0000000000..0b4c0746e6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -0,0 +1,139 @@ +hlsl.intrinsics.f1632.frag +ERROR: 0:3: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 0:16: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 0:23: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 0:30: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 4 compilation errors. No code generated. + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (in float) +0:? Sequence +0:3 ERROR: Bad unary op + (temp uint) +0:3 'inF0' (in float) +0:5 Branch: Return with expression +0:5 Constant: +0:5 0.000000 +0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float) +0:9 Function Parameters: +0:9 'inF0' (in 1-component vector of float) +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float) +0:15 Function Parameters: +0:15 'inF0' (in 2-component vector of float) +0:? Sequence +0:16 ERROR: Bad unary op + (temp 2-component vector of uint) +0:16 'inF0' (in 2-component vector of float) +0:18 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float) +0:22 Function Parameters: +0:22 'inF0' (in 3-component vector of float) +0:? Sequence +0:23 ERROR: Bad unary op + (temp 3-component vector of uint) +0:23 'inF0' (in 3-component vector of float) +0:25 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:29 Function Parameters: +0:29 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:30 ERROR: Bad unary op + (temp 4-component vector of uint) +0:30 'inF0' (layout(location=0 ) in 4-component vector of float) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:32 Branch: Return +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (in float) +0:? Sequence +0:3 ERROR: Bad unary op + (temp uint) +0:3 'inF0' (in float) +0:5 Branch: Return with expression +0:5 Constant: +0:5 0.000000 +0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float) +0:9 Function Parameters: +0:9 'inF0' (in 1-component vector of float) +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float) +0:15 Function Parameters: +0:15 'inF0' (in 2-component vector of float) +0:? Sequence +0:16 ERROR: Bad unary op + (temp 2-component vector of uint) +0:16 'inF0' (in 2-component vector of float) +0:18 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float) +0:22 Function Parameters: +0:22 'inF0' (in 3-component vector of float) +0:? Sequence +0:23 ERROR: Bad unary op + (temp 3-component vector of uint) +0:23 'inF0' (in 3-component vector of float) +0:25 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:29 Function Parameters: +0:29 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:30 ERROR: Bad unary op + (temp 4-component vector of uint) +0:30 'inF0' (layout(location=0 ) in 4-component vector of float) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:32 Branch: Return +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) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.frag.out new file mode 100644 index 0000000000..5def9667d6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.frag.out @@ -0,0 +1,8439 @@ +hlsl.intrinsics.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) +0:17 Function Parameters: +0:17 'inF0' (in float) +0:17 'inF1' (in float) +0:17 'inF2' (in float) +0:17 'inU0' (in uint) +0:17 'inU1' (in uint) +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 '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 '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 'inF0' (in float) +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 Sequence +0:34 move second child to first child (temp float) +0:34 'r014' (temp float) +0:34 cosine (temp float) +0:34 'inF0' (in float) +0:35 Sequence +0:35 move second child to first child (temp float) +0:35 'r015' (temp float) +0:35 hyp. cosine (temp float) +0:35 'inF0' (in float) +0:36 Sequence +0:36 move second child to first child (temp int) +0:36 'r016' (temp int) +0:36 bitCount (temp int) +0:36 Constant: +0:36 7 (const int) +0:37 Sequence +0:37 move second child to first child (temp float) +0:37 'r017' (temp float) +0:37 dPdx (temp float) +0:37 'inF0' (in float) +0:38 Sequence +0:38 move second child to first child (temp float) +0:38 'r018' (temp float) +0:38 dPdxCoarse (temp float) +0:38 'inF0' (in float) +0:39 Sequence +0:39 move second child to first child (temp float) +0:39 'r019' (temp float) +0:39 dPdxFine (temp float) +0:39 'inF0' (in float) +0:40 Sequence +0:40 move second child to first child (temp float) +0:40 'r020' (temp float) +0:40 dPdy (temp float) +0:40 'inF0' (in float) +0:41 Sequence +0:41 move second child to first child (temp float) +0:41 'r021' (temp float) +0:41 dPdyCoarse (temp float) +0:41 'inF0' (in float) +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r022' (temp float) +0:42 dPdyFine (temp float) +0:42 'inF0' (in float) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r023' (temp float) +0:43 degrees (temp float) +0:43 'inF0' (in float) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r027' (temp float) +0:47 exp (temp float) +0:47 'inF0' (in float) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r028' (temp float) +0:48 exp2 (temp float) +0:48 'inF0' (in float) +0:49 Sequence +0:49 move second child to first child (temp uint) +0:49 'r029' (temp uint) +0:49 Convert int to uint (temp uint) +0:49 findMSB (temp int) +0:49 Constant: +0:49 7 (const int) +0:50 Sequence +0:50 move second child to first child (temp uint) +0:50 'r030' (temp uint) +0:50 Convert int to uint (temp uint) +0:50 findLSB (temp int) +0:50 Constant: +0:50 7 (const int) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r031' (temp float) +0:51 Floor (temp float) +0:51 'inF0' (in float) +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r033' (temp float) +0:53 mod (temp float) +0:53 'inF0' (in float) +0:53 'inF1' (in float) +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r034' (temp float) +0:54 Fraction (temp float) +0:54 'inF0' (in float) +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r035' (temp float) +0:55 frexp (temp float) +0:55 'inF0' (in float) +0:55 'inF1' (in float) +0:56 Sequence +0:56 move second child to first child (temp float) +0:56 'r036' (temp float) +0:56 fwidth (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 '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 '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 Sequence +0:112 move second child to first child (temp 2-component vector of float) +0:112 'r013' (temp 2-component vector of float) +0:112 cosine (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) +0:113 Sequence +0:113 move second child to first child (temp 2-component vector of float) +0:113 'r015' (temp 2-component vector of float) +0:113 hyp. cosine (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 int) +0:114 '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:115 Sequence +0:115 move second child to first child (temp 2-component vector of float) +0:115 'r017' (temp 2-component vector of float) +0:115 dPdx (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) +0:116 Sequence +0:116 move second child to first child (temp 2-component vector of float) +0:116 'r018' (temp 2-component vector of float) +0:116 dPdxCoarse (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) +0:117 Sequence +0:117 move second child to first child (temp 2-component vector of float) +0:117 'r019' (temp 2-component vector of float) +0:117 dPdxFine (temp 2-component vector of float) +0:117 'inF0' (in 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp 2-component vector of float) +0:118 'r020' (temp 2-component vector of float) +0:118 dPdy (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) +0:119 Sequence +0:119 move second child to first child (temp 2-component vector of float) +0:119 'r021' (temp 2-component vector of float) +0:119 dPdyCoarse (temp 2-component vector of float) +0:119 'inF0' (in 2-component vector of float) +0:120 Sequence +0:120 move second child to first child (temp 2-component vector of float) +0:120 'r022' (temp 2-component vector of float) +0:120 dPdyFine (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) +0:121 Sequence +0:121 move second child to first child (temp 2-component vector of float) +0:121 'r023' (temp 2-component vector of float) +0:121 degrees (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) +0:125 Sequence +0:125 move second child to first child (temp float) +0:125 'r026' (temp float) +0:125 distance (temp float) +0:125 'inF0' (in 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:126 Sequence +0:126 move second child to first child (temp float) +0:126 'r027' (temp float) +0:126 dot-product (temp float) +0:126 'inF0' (in 2-component vector of float) +0:126 'inF1' (in 2-component vector of float) +0:130 Sequence +0:130 move second child to first child (temp 2-component vector of float) +0:130 'r028' (temp 2-component vector of float) +0:130 exp (temp 2-component vector of float) +0:130 'inF0' (in 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp 2-component vector of float) +0:131 'r029' (temp 2-component vector of float) +0:131 exp2 (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) +0:132 Sequence +0:132 move second child to first child (temp 2-component vector of float) +0:132 'r030' (temp 2-component vector of float) +0:132 face-forward (temp 2-component vector of float) +0:132 'inF0' (in 2-component vector of float) +0:132 'inF1' (in 2-component vector of float) +0:132 'inF2' (in 2-component vector of float) +0:133 Sequence +0:133 move second child to first child (temp 2-component vector of uint) +0:133 'r031' (temp 2-component vector of uint) +0:? findMSB (temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:134 Sequence +0:134 move second child to first child (temp 2-component vector of uint) +0:134 'r032' (temp 2-component vector of uint) +0:? findLSB (temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'r033' (temp 2-component vector of float) +0:135 Floor (temp 2-component vector of float) +0:135 'inF0' (in 2-component vector of float) +0:137 Sequence +0:137 move second child to first child (temp 2-component vector of float) +0:137 'r035' (temp 2-component vector of float) +0:137 mod (temp 2-component vector of float) +0:137 'inF0' (in 2-component vector of float) +0:137 'inF1' (in 2-component vector of float) +0:138 Sequence +0:138 move second child to first child (temp 2-component vector of float) +0:138 'r036' (temp 2-component vector of float) +0:138 Fraction (temp 2-component vector of float) +0:138 'inF0' (in 2-component vector of float) +0:139 Sequence +0:139 move second child to first child (temp 2-component vector of float) +0:139 'r037' (temp 2-component vector of float) +0:139 frexp (temp 2-component vector of float) +0:139 'inF0' (in 2-component vector of float) +0:139 'inF1' (in 2-component vector of float) +0:140 Sequence +0:140 move second child to first child (temp 2-component vector of float) +0:140 'r038' (temp 2-component vector of float) +0:140 fwidth (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 '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 '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 Sequence +0:195 move second child to first child (temp 3-component vector of float) +0:195 'r013' (temp 3-component vector of float) +0:195 cosine (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) +0:196 Sequence +0:196 move second child to first child (temp 3-component vector of float) +0:196 'r014' (temp 3-component vector of float) +0:196 hyp. cosine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:197 Sequence +0:197 move second child to first child (temp 3-component vector of uint) +0:197 'r015' (temp 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:198 Sequence +0:198 move second child to first child (temp 3-component vector of float) +0:198 'r016' (temp 3-component vector of float) +0:198 cross-product (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) +0:198 'inF1' (in 3-component vector of float) +0:199 Sequence +0:199 move second child to first child (temp 3-component vector of float) +0:199 'r017' (temp 3-component vector of float) +0:199 dPdx (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) +0:200 Sequence +0:200 move second child to first child (temp 3-component vector of float) +0:200 'r018' (temp 3-component vector of float) +0:200 dPdxCoarse (temp 3-component vector of float) +0:200 'inF0' (in 3-component vector of float) +0:201 Sequence +0:201 move second child to first child (temp 3-component vector of float) +0:201 'r019' (temp 3-component vector of float) +0:201 dPdxFine (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) +0:202 Sequence +0:202 move second child to first child (temp 3-component vector of float) +0:202 'r020' (temp 3-component vector of float) +0:202 dPdy (temp 3-component vector of float) +0:202 'inF0' (in 3-component vector of float) +0:203 Sequence +0:203 move second child to first child (temp 3-component vector of float) +0:203 'r021' (temp 3-component vector of float) +0:203 dPdyCoarse (temp 3-component vector of float) +0:203 'inF0' (in 3-component vector of float) +0:204 Sequence +0:204 move second child to first child (temp 3-component vector of float) +0:204 'r022' (temp 3-component vector of float) +0:204 dPdyFine (temp 3-component vector of float) +0:204 'inF0' (in 3-component vector of float) +0:205 Sequence +0:205 move second child to first child (temp 3-component vector of float) +0:205 'r023' (temp 3-component vector of float) +0:205 degrees (temp 3-component vector of float) +0:205 'inF0' (in 3-component vector of float) +0:206 Sequence +0:206 move second child to first child (temp float) +0:206 'r024' (temp float) +0:206 distance (temp float) +0:206 'inF0' (in 3-component vector of float) +0:206 'inF1' (in 3-component vector of float) +0:207 Sequence +0:207 move second child to first child (temp float) +0:207 'r025' (temp float) +0:207 dot-product (temp float) +0:207 'inF0' (in 3-component vector of float) +0:207 'inF1' (in 3-component vector of float) +0:211 Sequence +0:211 move second child to first child (temp 3-component vector of float) +0:211 'r029' (temp 3-component vector of float) +0:211 exp (temp 3-component vector of float) +0:211 'inF0' (in 3-component vector of float) +0:212 Sequence +0:212 move second child to first child (temp 3-component vector of float) +0:212 'r030' (temp 3-component vector of float) +0:212 exp2 (temp 3-component vector of float) +0:212 'inF0' (in 3-component vector of float) +0:213 Sequence +0:213 move second child to first child (temp 3-component vector of float) +0:213 'r031' (temp 3-component vector of float) +0:213 face-forward (temp 3-component vector of float) +0:213 'inF0' (in 3-component vector of float) +0:213 'inF1' (in 3-component vector of float) +0:213 'inF2' (in 3-component vector of float) +0:214 Sequence +0:214 move second child to first child (temp 3-component vector of uint) +0:214 'r032' (temp 3-component vector of uint) +0:? findMSB (temp 3-component vector of uint) +0:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:215 Sequence +0:215 move second child to first child (temp 3-component vector of uint) +0:215 'r033' (temp 3-component vector of uint) +0:? findLSB (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 float) +0:216 'r034' (temp 3-component vector of float) +0:216 Floor (temp 3-component vector of float) +0:216 'inF0' (in 3-component vector of float) +0:218 Sequence +0:218 move second child to first child (temp 3-component vector of float) +0:218 'r036' (temp 3-component vector of float) +0:218 mod (temp 3-component vector of float) +0:218 'inF0' (in 3-component vector of float) +0:218 'inF1' (in 3-component vector of float) +0:219 Sequence +0:219 move second child to first child (temp 3-component vector of float) +0:219 'r037' (temp 3-component vector of float) +0:219 Fraction (temp 3-component vector of float) +0:219 'inF0' (in 3-component vector of float) +0:220 Sequence +0:220 move second child to first child (temp 3-component vector of float) +0:220 'r038' (temp 3-component vector of float) +0:220 frexp (temp 3-component vector of float) +0:220 'inF0' (in 3-component vector of float) +0:220 'inF1' (in 3-component vector of float) +0:221 Sequence +0:221 move second child to first child (temp 3-component vector of float) +0:221 'r039' (temp 3-component vector of float) +0:221 fwidth (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 '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 '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 Sequence +0:277 move second child to first child (temp 4-component vector of float) +0:277 'r013' (temp 4-component vector of float) +0:277 cosine (temp 4-component vector of float) +0:277 'inF0' (in 4-component vector of float) +0:278 Sequence +0:278 move second child to first child (temp 4-component vector of float) +0:278 'r014' (temp 4-component vector of float) +0:278 hyp. cosine (temp 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of uint) +0:279 'r015' (temp 4-component vector of uint) +0:? bitCount (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:280 Sequence +0:280 move second child to first child (temp 4-component vector of float) +0:280 'r016' (temp 4-component vector of float) +0:280 dPdx (temp 4-component vector of float) +0:280 'inF0' (in 4-component vector of float) +0:281 Sequence +0:281 move second child to first child (temp 4-component vector of float) +0:281 'r017' (temp 4-component vector of float) +0:281 dPdxCoarse (temp 4-component vector of float) +0:281 'inF0' (in 4-component vector of float) +0:282 Sequence +0:282 move second child to first child (temp 4-component vector of float) +0:282 'r018' (temp 4-component vector of float) +0:282 dPdxFine (temp 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) +0:283 Sequence +0:283 move second child to first child (temp 4-component vector of float) +0:283 'r019' (temp 4-component vector of float) +0:283 dPdy (temp 4-component vector of float) +0:283 'inF0' (in 4-component vector of float) +0:284 Sequence +0:284 move second child to first child (temp 4-component vector of float) +0:284 'r020' (temp 4-component vector of float) +0:284 dPdyCoarse (temp 4-component vector of float) +0:284 'inF0' (in 4-component vector of float) +0:285 Sequence +0:285 move second child to first child (temp 4-component vector of float) +0:285 'r021' (temp 4-component vector of float) +0:285 dPdyFine (temp 4-component vector of float) +0:285 'inF0' (in 4-component vector of float) +0:286 Sequence +0:286 move second child to first child (temp 4-component vector of float) +0:286 'r022' (temp 4-component vector of float) +0:286 degrees (temp 4-component vector of float) +0:286 'inF0' (in 4-component vector of float) +0:287 Sequence +0:287 move second child to first child (temp float) +0:287 'r023' (temp float) +0:287 distance (temp float) +0:287 'inF0' (in 4-component vector of float) +0:287 'inF1' (in 4-component vector of float) +0:288 Sequence +0:288 move second child to first child (temp float) +0:288 'r024' (temp float) +0:288 dot-product (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 4-component vector of float) +0:289 'r025' (temp 4-component vector of float) +0:289 Construct vec4 (temp 4-component vector of float) +0:289 Constant: +0:289 1.000000 +0:289 component-wise multiply (temp float) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 2 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 3 (const int) +0:293 Sequence +0:293 move second child to first child (temp 4-component vector of float) +0:293 'r029' (temp 4-component vector of float) +0:293 exp (temp 4-component vector of float) +0:293 'inF0' (in 4-component vector of float) +0:294 Sequence +0:294 move second child to first child (temp 4-component vector of float) +0:294 'r030' (temp 4-component vector of float) +0:294 exp2 (temp 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) +0:295 Sequence +0:295 move second child to first child (temp 4-component vector of float) +0:295 'r031' (temp 4-component vector of float) +0:295 face-forward (temp 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) +0:295 'inF2' (in 4-component vector of float) +0:296 Sequence +0:296 move second child to first child (temp 4-component vector of uint) +0:296 'r032' (temp 4-component vector of uint) +0:? findMSB (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:297 Sequence +0:297 move second child to first child (temp 4-component vector of uint) +0:297 'r033' (temp 4-component vector of uint) +0:? findLSB (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 float) +0:298 'r034' (temp 4-component vector of float) +0:298 Floor (temp 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) +0:300 Sequence +0:300 move second child to first child (temp 4-component vector of float) +0:300 'r036' (temp 4-component vector of float) +0:300 mod (temp 4-component vector of float) +0:300 'inF0' (in 4-component vector of float) +0:300 'inF1' (in 4-component vector of float) +0:301 Sequence +0:301 move second child to first child (temp 4-component vector of float) +0:301 'r037' (temp 4-component vector of float) +0:301 Fraction (temp 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) +0:302 Sequence +0:302 move second child to first child (temp 4-component vector of float) +0:302 'r038' (temp 4-component vector of float) +0:302 frexp (temp 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) +0:302 'inF1' (in 4-component vector of float) +0:303 Sequence +0:303 move second child to first child (temp 4-component vector of float) +0:303 'r039' (temp 4-component vector of float) +0:303 fwidth (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:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:401 Function Parameters: +0:401 'inF0' (in 2X2 matrix of float) +0:401 'inF1' (in 2X2 matrix of float) +0:401 'inF2' (in 2X2 matrix of float) +0:? Sequence +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r000' (temp bool) +0:403 all (temp bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r001' (temp 2X2 matrix of float) +0:403 Absolute value (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 arc cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r003' (temp bool) +0:403 any (temp bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r004' (temp 2X2 matrix of float) +0:403 arc sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r005' (temp 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r006' (temp 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r007' (temp 2X2 matrix of float) +0:403 Ceiling (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Test condition and select (temp void) +0:403 Condition +0:403 any (temp bool) +0:403 Compare Less Than (temp 2X2 matrix of bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 true case +0:403 Branch: Kill +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r008' (temp 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r009' (temp 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r010' (temp 2X2 matrix of float) +0:403 hyp. cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r011' (temp 2X2 matrix of float) +0:403 dPdx (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r012' (temp 2X2 matrix of float) +0:403 dPdxCoarse (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r013' (temp 2X2 matrix of float) +0:403 dPdxFine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r014' (temp 2X2 matrix of float) +0:403 dPdy (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r015' (temp 2X2 matrix of float) +0:403 dPdyCoarse (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r016' (temp 2X2 matrix of float) +0:403 dPdyFine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r017' (temp 2X2 matrix of float) +0:403 degrees (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp float) +0:403 'r018' (temp float) +0:403 determinant (temp float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r019' (temp 2X2 matrix of float) +0:403 exp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'R020' (temp 2X2 matrix of float) +0:403 exp2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r021' (temp 2X2 matrix of float) +0:403 Floor (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r022' (temp 2X2 matrix of float) +0:403 mod (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r023' (temp 2X2 matrix of float) +0:403 Fraction (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r024' (temp 2X2 matrix of float) +0:403 frexp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r025' (temp 2X2 matrix of float) +0:403 fwidth (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026' (temp 2X2 matrix of float) +0:403 ldexp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026a' (temp 2X2 matrix of float) +0:403 mix (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r027' (temp 2X2 matrix of float) +0:403 log (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r028' (temp 2X2 matrix of float) +0:403 matrix-scale (temp 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.301030 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r029' (temp 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r030' (temp 2X2 matrix of float) +0:403 max (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r031' (temp 2X2 matrix of float) +0:403 min (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r032' (temp 2X2 matrix of float) +0:403 pow (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r033' (temp 2X2 matrix of float) +0:403 radians (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r034' (temp 2X2 matrix of float) +0:403 roundEven (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r035' (temp 2X2 matrix of float) +0:403 inverse sqrt (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r036' (temp 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 Constant: +0:403 1.000000 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r037' (temp 2X2 matrix of float) +0:403 Sign (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r038' (temp 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r039' (temp 2X2 matrix of float) +0:403 hyp. sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r049' (temp 2X2 matrix of float) +0:403 smoothstep (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r041' (temp 2X2 matrix of float) +0:403 sqrt (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r042' (temp 2X2 matrix of float) +0:403 step (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r043' (temp 2X2 matrix of float) +0:403 tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r044' (temp 2X2 matrix of float) +0:403 hyp. tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 transpose (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r046' (temp 2X2 matrix of float) +0:403 trunc (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:406 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:410 Function Parameters: +0:410 'inF0' (in 3X3 matrix of float) +0:410 'inF1' (in 3X3 matrix of float) +0:410 'inF2' (in 3X3 matrix of float) +0:? Sequence +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r000' (temp bool) +0:412 all (temp bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r001' (temp 3X3 matrix of float) +0:412 Absolute value (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 arc cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r003' (temp bool) +0:412 any (temp bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r004' (temp 3X3 matrix of float) +0:412 arc sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r005' (temp 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r006' (temp 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r007' (temp 3X3 matrix of float) +0:412 Ceiling (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Test condition and select (temp void) +0:412 Condition +0:412 any (temp bool) +0:412 Compare Less Than (temp 3X3 matrix of bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 true case +0:412 Branch: Kill +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r008' (temp 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r009' (temp 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r010' (temp 3X3 matrix of float) +0:412 hyp. cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r011' (temp 3X3 matrix of float) +0:412 dPdx (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r012' (temp 3X3 matrix of float) +0:412 dPdxCoarse (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r013' (temp 3X3 matrix of float) +0:412 dPdxFine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r014' (temp 3X3 matrix of float) +0:412 dPdy (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r015' (temp 3X3 matrix of float) +0:412 dPdyCoarse (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r016' (temp 3X3 matrix of float) +0:412 dPdyFine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r017' (temp 3X3 matrix of float) +0:412 degrees (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp float) +0:412 'r018' (temp float) +0:412 determinant (temp float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r019' (temp 3X3 matrix of float) +0:412 exp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'R020' (temp 3X3 matrix of float) +0:412 exp2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r021' (temp 3X3 matrix of float) +0:412 Floor (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r022' (temp 3X3 matrix of float) +0:412 mod (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r023' (temp 3X3 matrix of float) +0:412 Fraction (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r024' (temp 3X3 matrix of float) +0:412 frexp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r025' (temp 3X3 matrix of float) +0:412 fwidth (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026' (temp 3X3 matrix of float) +0:412 ldexp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026a' (temp 3X3 matrix of float) +0:412 mix (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r027' (temp 3X3 matrix of float) +0:412 log (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r028' (temp 3X3 matrix of float) +0:412 matrix-scale (temp 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.301030 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r029' (temp 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r030' (temp 3X3 matrix of float) +0:412 max (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r031' (temp 3X3 matrix of float) +0:412 min (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r032' (temp 3X3 matrix of float) +0:412 pow (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r033' (temp 3X3 matrix of float) +0:412 radians (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r034' (temp 3X3 matrix of float) +0:412 roundEven (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r035' (temp 3X3 matrix of float) +0:412 inverse sqrt (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r036' (temp 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 Constant: +0:412 1.000000 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r037' (temp 3X3 matrix of float) +0:412 Sign (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r038' (temp 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r039' (temp 3X3 matrix of float) +0:412 hyp. sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r049' (temp 3X3 matrix of float) +0:412 smoothstep (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r041' (temp 3X3 matrix of float) +0:412 sqrt (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r042' (temp 3X3 matrix of float) +0:412 step (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r043' (temp 3X3 matrix of float) +0:412 tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r044' (temp 3X3 matrix of float) +0:412 hyp. tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 transpose (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r046' (temp 3X3 matrix of float) +0:412 trunc (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:415 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:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:419 Function Parameters: +0:419 'inF0' (in 4X4 matrix of float) +0:419 'inF1' (in 4X4 matrix of float) +0:419 'inF2' (in 4X4 matrix of float) +0:? Sequence +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r000' (temp bool) +0:421 all (temp bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r001' (temp 4X4 matrix of float) +0:421 Absolute value (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 arc cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r003' (temp bool) +0:421 any (temp bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r004' (temp 4X4 matrix of float) +0:421 arc sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r005' (temp 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r006' (temp 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r007' (temp 4X4 matrix of float) +0:421 Ceiling (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Test condition and select (temp void) +0:421 Condition +0:421 any (temp bool) +0:421 Compare Less Than (temp 4X4 matrix of bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 true case +0:421 Branch: Kill +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r008' (temp 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r009' (temp 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r010' (temp 4X4 matrix of float) +0:421 hyp. cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r011' (temp 4X4 matrix of float) +0:421 dPdx (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r012' (temp 4X4 matrix of float) +0:421 dPdxCoarse (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r013' (temp 4X4 matrix of float) +0:421 dPdxFine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r014' (temp 4X4 matrix of float) +0:421 dPdy (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r015' (temp 4X4 matrix of float) +0:421 dPdyCoarse (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r016' (temp 4X4 matrix of float) +0:421 dPdyFine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r017' (temp 4X4 matrix of float) +0:421 degrees (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp float) +0:421 'r018' (temp float) +0:421 determinant (temp float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r019' (temp 4X4 matrix of float) +0:421 exp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'R020' (temp 4X4 matrix of float) +0:421 exp2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r021' (temp 4X4 matrix of float) +0:421 Floor (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r022' (temp 4X4 matrix of float) +0:421 mod (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r023' (temp 4X4 matrix of float) +0:421 Fraction (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r024' (temp 4X4 matrix of float) +0:421 frexp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r025' (temp 4X4 matrix of float) +0:421 fwidth (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026' (temp 4X4 matrix of float) +0:421 ldexp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026a' (temp 4X4 matrix of float) +0:421 mix (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r027' (temp 4X4 matrix of float) +0:421 log (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r028' (temp 4X4 matrix of float) +0:421 matrix-scale (temp 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.301030 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r029' (temp 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r030' (temp 4X4 matrix of float) +0:421 max (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r031' (temp 4X4 matrix of float) +0:421 min (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r032' (temp 4X4 matrix of float) +0:421 pow (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r033' (temp 4X4 matrix of float) +0:421 radians (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r034' (temp 4X4 matrix of float) +0:421 roundEven (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r035' (temp 4X4 matrix of float) +0:421 inverse sqrt (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r036' (temp 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 Constant: +0:421 1.000000 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r037' (temp 4X4 matrix of float) +0:421 Sign (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r038' (temp 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r039' (temp 4X4 matrix of float) +0:421 hyp. sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r049' (temp 4X4 matrix of float) +0:421 smoothstep (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r041' (temp 4X4 matrix of float) +0:421 sqrt (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r042' (temp 4X4 matrix of float) +0:421 step (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r043' (temp 4X4 matrix of float) +0:421 tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r044' (temp 4X4 matrix of float) +0:421 hyp. tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 transpose (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r046' (temp 4X4 matrix of float) +0:421 trunc (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:424 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:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:442 Function Parameters: +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFV1' (in 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFM1' (in 2X2 matrix of float) +0:? Sequence +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r0' (temp float) +0:443 component-wise multiply (temp float) +0:443 'inF1' (in float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r1' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inF0' (in float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r2' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r3' (temp float) +0:443 dot-product (temp float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFV1' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r4' (temp 2-component vector of float) +0:443 vector-times-matrix (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r5' (temp 2-component vector of float) +0:443 matrix-times-vector (temp 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r6' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r7' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r8' (temp 2X2 matrix of float) +0:443 matrix-multiply (temp 2X2 matrix of float) +0:443 'inFM1' (in 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:449 Function Parameters: +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFV1' (in 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFM1' (in 3X3 matrix of float) +0:? Sequence +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r0' (temp float) +0:450 component-wise multiply (temp float) +0:450 'inF1' (in float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r1' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inF0' (in float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r2' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r3' (temp float) +0:450 dot-product (temp float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFV1' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r4' (temp 3-component vector of float) +0:450 vector-times-matrix (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r5' (temp 3-component vector of float) +0:450 matrix-times-vector (temp 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r6' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r7' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r8' (temp 3X3 matrix of float) +0:450 matrix-multiply (temp 3X3 matrix of float) +0:450 'inFM1' (in 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:456 Function Parameters: +0:456 'inF0' (in float) +0:456 'inF1' (in float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFV1' (in 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFM1' (in 4X4 matrix of float) +0:? Sequence +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r0' (temp float) +0:457 component-wise multiply (temp float) +0:457 'inF1' (in float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r1' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inF0' (in float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r2' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r3' (temp float) +0:457 dot-product (temp float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFV1' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r4' (temp 4-component vector of float) +0:457 vector-times-matrix (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r5' (temp 4-component vector of float) +0:457 matrix-times-vector (temp 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r6' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r7' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r8' (temp 4X4 matrix of float) +0:457 matrix-multiply (temp 4X4 matrix of float) +0:457 'inFM1' (in 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) +0:466 Function Parameters: +0:466 'inF0' (in float) +0:466 'inF1' (in float) +0:466 'inFV2' (in 2-component vector of float) +0:466 'inFV3' (in 3-component vector of float) +0:466 'inFM2x3' (in 2X3 matrix of float) +0:466 'inFM3x2' (in 3X2 matrix of float) +0:466 'inFM3x3' (in 3X3 matrix of float) +0:466 'inFM3x4' (in 3X4 matrix of float) +0:466 'inFM2x4' (in 2X4 matrix of float) +0:? Sequence +0:467 Sequence +0:467 move second child to first child (temp float) +0:467 'r00' (temp float) +0:467 component-wise multiply (temp float) +0:467 'inF1' (in float) +0:467 'inF0' (in float) +0:468 Sequence +0:468 move second child to first child (temp 2-component vector of float) +0:468 'r01' (temp 2-component vector of float) +0:468 vector-scale (temp 2-component vector of float) +0:468 'inF0' (in float) +0:468 'inFV2' (in 2-component vector of float) +0:469 Sequence +0:469 move second child to first child (temp 3-component vector of float) +0:469 'r02' (temp 3-component vector of float) +0:469 vector-scale (temp 3-component vector of float) +0:469 'inF0' (in float) +0:469 'inFV3' (in 3-component vector of float) +0:470 Sequence +0:470 move second child to first child (temp 2-component vector of float) +0:470 'r03' (temp 2-component vector of float) +0:470 vector-scale (temp 2-component vector of float) +0:470 'inFV2' (in 2-component vector of float) +0:470 'inF0' (in float) +0:471 Sequence +0:471 move second child to first child (temp 3-component vector of float) +0:471 'r04' (temp 3-component vector of float) +0:471 vector-scale (temp 3-component vector of float) +0:471 'inFV3' (in 3-component vector of float) +0:471 'inF0' (in float) +0:472 Sequence +0:472 move second child to first child (temp float) +0:472 'r05' (temp float) +0:472 dot-product (temp float) +0:472 'inFV2' (in 2-component vector of float) +0:472 'inFV2' (in 2-component vector of float) +0:473 Sequence +0:473 move second child to first child (temp float) +0:473 'r06' (temp float) +0:473 dot-product (temp float) +0:473 'inFV3' (in 3-component vector of float) +0:473 'inFV3' (in 3-component vector of float) +0:474 Sequence +0:474 move second child to first child (temp 3-component vector of float) +0:474 'r07' (temp 3-component vector of float) +0:474 matrix-times-vector (temp 3-component vector of float) +0:474 'inFM2x3' (in 2X3 matrix of float) +0:474 'inFV2' (in 2-component vector of float) +0:475 Sequence +0:475 move second child to first child (temp 2-component vector of float) +0:475 'r08' (temp 2-component vector of float) +0:475 matrix-times-vector (temp 2-component vector of float) +0:475 'inFM3x2' (in 3X2 matrix of float) +0:475 'inFV3' (in 3-component vector of float) +0:476 Sequence +0:476 move second child to first child (temp 2-component vector of float) +0:476 'r09' (temp 2-component vector of float) +0:476 vector-times-matrix (temp 2-component vector of float) +0:476 'inFV3' (in 3-component vector of float) +0:476 'inFM2x3' (in 2X3 matrix of float) +0:477 Sequence +0:477 move second child to first child (temp 3-component vector of float) +0:477 'r10' (temp 3-component vector of float) +0:477 vector-times-matrix (temp 3-component vector of float) +0:477 'inFV2' (in 2-component vector of float) +0:477 'inFM3x2' (in 3X2 matrix of float) +0:478 Sequence +0:478 move second child to first child (temp 2X3 matrix of float) +0:478 'r11' (temp 2X3 matrix of float) +0:478 matrix-scale (temp 2X3 matrix of float) +0:478 'inF0' (in float) +0:478 'inFM2x3' (in 2X3 matrix of float) +0:479 Sequence +0:479 move second child to first child (temp 3X2 matrix of float) +0:479 'r12' (temp 3X2 matrix of float) +0:479 matrix-scale (temp 3X2 matrix of float) +0:479 'inF0' (in float) +0:479 'inFM3x2' (in 3X2 matrix of float) +0:480 Sequence +0:480 move second child to first child (temp 2X2 matrix of float) +0:480 'r13' (temp 2X2 matrix of float) +0:480 matrix-multiply (temp 2X2 matrix of float) +0:480 'inFM3x2' (in 3X2 matrix of float) +0:480 'inFM2x3' (in 2X3 matrix of float) +0:481 Sequence +0:481 move second child to first child (temp 2X3 matrix of float) +0:481 'r14' (temp 2X3 matrix of float) +0:481 matrix-multiply (temp 2X3 matrix of float) +0:481 'inFM3x3' (in 3X3 matrix of float) +0:481 'inFM2x3' (in 2X3 matrix of float) +0:482 Sequence +0:482 move second child to first child (temp 2X4 matrix of float) +0:482 'r15' (temp 2X4 matrix of float) +0:482 matrix-multiply (temp 2X4 matrix of float) +0:482 'inFM3x4' (in 3X4 matrix of float) +0:482 'inFM2x3' (in 2X3 matrix of float) +0:483 Sequence +0:483 move second child to first child (temp 3X4 matrix of float) +0:483 'r16' (temp 3X4 matrix of float) +0:483 matrix-multiply (temp 3X4 matrix of float) +0:483 'inFM2x4' (in 2X4 matrix of float) +0:483 'inFM3x2' (in 3X2 matrix of float) +0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:489 Function Parameters: +0:? Sequence +0:491 move second child to first child (temp 4-component vector of float) +0:491 color: direct index for structure (temp 4-component vector of float) +0:491 'ps_output' (temp structure{temp 4-component vector of float color}) +0:491 Constant: +0:491 0 (const int) +0:491 Constant: +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:492 Sequence +0:492 Sequence +0:492 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:492 color: direct index for structure (temp 4-component vector of float) +0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:492 Constant: +0:492 0 (const int) +0:492 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) +0:17 Function Parameters: +0:17 'inF0' (in float) +0:17 'inF1' (in float) +0:17 'inF2' (in float) +0:17 'inU0' (in uint) +0:17 'inU1' (in uint) +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 '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 '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 'inF0' (in float) +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 Sequence +0:34 move second child to first child (temp float) +0:34 'r014' (temp float) +0:34 cosine (temp float) +0:34 'inF0' (in float) +0:35 Sequence +0:35 move second child to first child (temp float) +0:35 'r015' (temp float) +0:35 hyp. cosine (temp float) +0:35 'inF0' (in float) +0:36 Sequence +0:36 move second child to first child (temp int) +0:36 'r016' (temp int) +0:36 bitCount (temp int) +0:36 Constant: +0:36 7 (const int) +0:37 Sequence +0:37 move second child to first child (temp float) +0:37 'r017' (temp float) +0:37 dPdx (temp float) +0:37 'inF0' (in float) +0:38 Sequence +0:38 move second child to first child (temp float) +0:38 'r018' (temp float) +0:38 dPdxCoarse (temp float) +0:38 'inF0' (in float) +0:39 Sequence +0:39 move second child to first child (temp float) +0:39 'r019' (temp float) +0:39 dPdxFine (temp float) +0:39 'inF0' (in float) +0:40 Sequence +0:40 move second child to first child (temp float) +0:40 'r020' (temp float) +0:40 dPdy (temp float) +0:40 'inF0' (in float) +0:41 Sequence +0:41 move second child to first child (temp float) +0:41 'r021' (temp float) +0:41 dPdyCoarse (temp float) +0:41 'inF0' (in float) +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r022' (temp float) +0:42 dPdyFine (temp float) +0:42 'inF0' (in float) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r023' (temp float) +0:43 degrees (temp float) +0:43 'inF0' (in float) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r027' (temp float) +0:47 exp (temp float) +0:47 'inF0' (in float) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r028' (temp float) +0:48 exp2 (temp float) +0:48 'inF0' (in float) +0:49 Sequence +0:49 move second child to first child (temp uint) +0:49 'r029' (temp uint) +0:49 Convert int to uint (temp uint) +0:49 findMSB (temp int) +0:49 Constant: +0:49 7 (const int) +0:50 Sequence +0:50 move second child to first child (temp uint) +0:50 'r030' (temp uint) +0:50 Convert int to uint (temp uint) +0:50 findLSB (temp int) +0:50 Constant: +0:50 7 (const int) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r031' (temp float) +0:51 Floor (temp float) +0:51 'inF0' (in float) +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r033' (temp float) +0:53 mod (temp float) +0:53 'inF0' (in float) +0:53 'inF1' (in float) +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r034' (temp float) +0:54 Fraction (temp float) +0:54 'inF0' (in float) +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r035' (temp float) +0:55 frexp (temp float) +0:55 'inF0' (in float) +0:55 'inF1' (in float) +0:56 Sequence +0:56 move second child to first child (temp float) +0:56 'r036' (temp float) +0:56 fwidth (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 '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 '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 Sequence +0:112 move second child to first child (temp 2-component vector of float) +0:112 'r013' (temp 2-component vector of float) +0:112 cosine (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) +0:113 Sequence +0:113 move second child to first child (temp 2-component vector of float) +0:113 'r015' (temp 2-component vector of float) +0:113 hyp. cosine (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 int) +0:114 '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:115 Sequence +0:115 move second child to first child (temp 2-component vector of float) +0:115 'r017' (temp 2-component vector of float) +0:115 dPdx (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) +0:116 Sequence +0:116 move second child to first child (temp 2-component vector of float) +0:116 'r018' (temp 2-component vector of float) +0:116 dPdxCoarse (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) +0:117 Sequence +0:117 move second child to first child (temp 2-component vector of float) +0:117 'r019' (temp 2-component vector of float) +0:117 dPdxFine (temp 2-component vector of float) +0:117 'inF0' (in 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp 2-component vector of float) +0:118 'r020' (temp 2-component vector of float) +0:118 dPdy (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) +0:119 Sequence +0:119 move second child to first child (temp 2-component vector of float) +0:119 'r021' (temp 2-component vector of float) +0:119 dPdyCoarse (temp 2-component vector of float) +0:119 'inF0' (in 2-component vector of float) +0:120 Sequence +0:120 move second child to first child (temp 2-component vector of float) +0:120 'r022' (temp 2-component vector of float) +0:120 dPdyFine (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) +0:121 Sequence +0:121 move second child to first child (temp 2-component vector of float) +0:121 'r023' (temp 2-component vector of float) +0:121 degrees (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) +0:125 Sequence +0:125 move second child to first child (temp float) +0:125 'r026' (temp float) +0:125 distance (temp float) +0:125 'inF0' (in 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:126 Sequence +0:126 move second child to first child (temp float) +0:126 'r027' (temp float) +0:126 dot-product (temp float) +0:126 'inF0' (in 2-component vector of float) +0:126 'inF1' (in 2-component vector of float) +0:130 Sequence +0:130 move second child to first child (temp 2-component vector of float) +0:130 'r028' (temp 2-component vector of float) +0:130 exp (temp 2-component vector of float) +0:130 'inF0' (in 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp 2-component vector of float) +0:131 'r029' (temp 2-component vector of float) +0:131 exp2 (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) +0:132 Sequence +0:132 move second child to first child (temp 2-component vector of float) +0:132 'r030' (temp 2-component vector of float) +0:132 face-forward (temp 2-component vector of float) +0:132 'inF0' (in 2-component vector of float) +0:132 'inF1' (in 2-component vector of float) +0:132 'inF2' (in 2-component vector of float) +0:133 Sequence +0:133 move second child to first child (temp 2-component vector of uint) +0:133 'r031' (temp 2-component vector of uint) +0:? findMSB (temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:134 Sequence +0:134 move second child to first child (temp 2-component vector of uint) +0:134 'r032' (temp 2-component vector of uint) +0:? findLSB (temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'r033' (temp 2-component vector of float) +0:135 Floor (temp 2-component vector of float) +0:135 'inF0' (in 2-component vector of float) +0:137 Sequence +0:137 move second child to first child (temp 2-component vector of float) +0:137 'r035' (temp 2-component vector of float) +0:137 mod (temp 2-component vector of float) +0:137 'inF0' (in 2-component vector of float) +0:137 'inF1' (in 2-component vector of float) +0:138 Sequence +0:138 move second child to first child (temp 2-component vector of float) +0:138 'r036' (temp 2-component vector of float) +0:138 Fraction (temp 2-component vector of float) +0:138 'inF0' (in 2-component vector of float) +0:139 Sequence +0:139 move second child to first child (temp 2-component vector of float) +0:139 'r037' (temp 2-component vector of float) +0:139 frexp (temp 2-component vector of float) +0:139 'inF0' (in 2-component vector of float) +0:139 'inF1' (in 2-component vector of float) +0:140 Sequence +0:140 move second child to first child (temp 2-component vector of float) +0:140 'r038' (temp 2-component vector of float) +0:140 fwidth (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 '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 '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 Sequence +0:195 move second child to first child (temp 3-component vector of float) +0:195 'r013' (temp 3-component vector of float) +0:195 cosine (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) +0:196 Sequence +0:196 move second child to first child (temp 3-component vector of float) +0:196 'r014' (temp 3-component vector of float) +0:196 hyp. cosine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:197 Sequence +0:197 move second child to first child (temp 3-component vector of uint) +0:197 'r015' (temp 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:198 Sequence +0:198 move second child to first child (temp 3-component vector of float) +0:198 'r016' (temp 3-component vector of float) +0:198 cross-product (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) +0:198 'inF1' (in 3-component vector of float) +0:199 Sequence +0:199 move second child to first child (temp 3-component vector of float) +0:199 'r017' (temp 3-component vector of float) +0:199 dPdx (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) +0:200 Sequence +0:200 move second child to first child (temp 3-component vector of float) +0:200 'r018' (temp 3-component vector of float) +0:200 dPdxCoarse (temp 3-component vector of float) +0:200 'inF0' (in 3-component vector of float) +0:201 Sequence +0:201 move second child to first child (temp 3-component vector of float) +0:201 'r019' (temp 3-component vector of float) +0:201 dPdxFine (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) +0:202 Sequence +0:202 move second child to first child (temp 3-component vector of float) +0:202 'r020' (temp 3-component vector of float) +0:202 dPdy (temp 3-component vector of float) +0:202 'inF0' (in 3-component vector of float) +0:203 Sequence +0:203 move second child to first child (temp 3-component vector of float) +0:203 'r021' (temp 3-component vector of float) +0:203 dPdyCoarse (temp 3-component vector of float) +0:203 'inF0' (in 3-component vector of float) +0:204 Sequence +0:204 move second child to first child (temp 3-component vector of float) +0:204 'r022' (temp 3-component vector of float) +0:204 dPdyFine (temp 3-component vector of float) +0:204 'inF0' (in 3-component vector of float) +0:205 Sequence +0:205 move second child to first child (temp 3-component vector of float) +0:205 'r023' (temp 3-component vector of float) +0:205 degrees (temp 3-component vector of float) +0:205 'inF0' (in 3-component vector of float) +0:206 Sequence +0:206 move second child to first child (temp float) +0:206 'r024' (temp float) +0:206 distance (temp float) +0:206 'inF0' (in 3-component vector of float) +0:206 'inF1' (in 3-component vector of float) +0:207 Sequence +0:207 move second child to first child (temp float) +0:207 'r025' (temp float) +0:207 dot-product (temp float) +0:207 'inF0' (in 3-component vector of float) +0:207 'inF1' (in 3-component vector of float) +0:211 Sequence +0:211 move second child to first child (temp 3-component vector of float) +0:211 'r029' (temp 3-component vector of float) +0:211 exp (temp 3-component vector of float) +0:211 'inF0' (in 3-component vector of float) +0:212 Sequence +0:212 move second child to first child (temp 3-component vector of float) +0:212 'r030' (temp 3-component vector of float) +0:212 exp2 (temp 3-component vector of float) +0:212 'inF0' (in 3-component vector of float) +0:213 Sequence +0:213 move second child to first child (temp 3-component vector of float) +0:213 'r031' (temp 3-component vector of float) +0:213 face-forward (temp 3-component vector of float) +0:213 'inF0' (in 3-component vector of float) +0:213 'inF1' (in 3-component vector of float) +0:213 'inF2' (in 3-component vector of float) +0:214 Sequence +0:214 move second child to first child (temp 3-component vector of uint) +0:214 'r032' (temp 3-component vector of uint) +0:? findMSB (temp 3-component vector of uint) +0:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:215 Sequence +0:215 move second child to first child (temp 3-component vector of uint) +0:215 'r033' (temp 3-component vector of uint) +0:? findLSB (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 float) +0:216 'r034' (temp 3-component vector of float) +0:216 Floor (temp 3-component vector of float) +0:216 'inF0' (in 3-component vector of float) +0:218 Sequence +0:218 move second child to first child (temp 3-component vector of float) +0:218 'r036' (temp 3-component vector of float) +0:218 mod (temp 3-component vector of float) +0:218 'inF0' (in 3-component vector of float) +0:218 'inF1' (in 3-component vector of float) +0:219 Sequence +0:219 move second child to first child (temp 3-component vector of float) +0:219 'r037' (temp 3-component vector of float) +0:219 Fraction (temp 3-component vector of float) +0:219 'inF0' (in 3-component vector of float) +0:220 Sequence +0:220 move second child to first child (temp 3-component vector of float) +0:220 'r038' (temp 3-component vector of float) +0:220 frexp (temp 3-component vector of float) +0:220 'inF0' (in 3-component vector of float) +0:220 'inF1' (in 3-component vector of float) +0:221 Sequence +0:221 move second child to first child (temp 3-component vector of float) +0:221 'r039' (temp 3-component vector of float) +0:221 fwidth (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 '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 '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 Sequence +0:277 move second child to first child (temp 4-component vector of float) +0:277 'r013' (temp 4-component vector of float) +0:277 cosine (temp 4-component vector of float) +0:277 'inF0' (in 4-component vector of float) +0:278 Sequence +0:278 move second child to first child (temp 4-component vector of float) +0:278 'r014' (temp 4-component vector of float) +0:278 hyp. cosine (temp 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of uint) +0:279 'r015' (temp 4-component vector of uint) +0:? bitCount (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:280 Sequence +0:280 move second child to first child (temp 4-component vector of float) +0:280 'r016' (temp 4-component vector of float) +0:280 dPdx (temp 4-component vector of float) +0:280 'inF0' (in 4-component vector of float) +0:281 Sequence +0:281 move second child to first child (temp 4-component vector of float) +0:281 'r017' (temp 4-component vector of float) +0:281 dPdxCoarse (temp 4-component vector of float) +0:281 'inF0' (in 4-component vector of float) +0:282 Sequence +0:282 move second child to first child (temp 4-component vector of float) +0:282 'r018' (temp 4-component vector of float) +0:282 dPdxFine (temp 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) +0:283 Sequence +0:283 move second child to first child (temp 4-component vector of float) +0:283 'r019' (temp 4-component vector of float) +0:283 dPdy (temp 4-component vector of float) +0:283 'inF0' (in 4-component vector of float) +0:284 Sequence +0:284 move second child to first child (temp 4-component vector of float) +0:284 'r020' (temp 4-component vector of float) +0:284 dPdyCoarse (temp 4-component vector of float) +0:284 'inF0' (in 4-component vector of float) +0:285 Sequence +0:285 move second child to first child (temp 4-component vector of float) +0:285 'r021' (temp 4-component vector of float) +0:285 dPdyFine (temp 4-component vector of float) +0:285 'inF0' (in 4-component vector of float) +0:286 Sequence +0:286 move second child to first child (temp 4-component vector of float) +0:286 'r022' (temp 4-component vector of float) +0:286 degrees (temp 4-component vector of float) +0:286 'inF0' (in 4-component vector of float) +0:287 Sequence +0:287 move second child to first child (temp float) +0:287 'r023' (temp float) +0:287 distance (temp float) +0:287 'inF0' (in 4-component vector of float) +0:287 'inF1' (in 4-component vector of float) +0:288 Sequence +0:288 move second child to first child (temp float) +0:288 'r024' (temp float) +0:288 dot-product (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 4-component vector of float) +0:289 'r025' (temp 4-component vector of float) +0:289 Construct vec4 (temp 4-component vector of float) +0:289 Constant: +0:289 1.000000 +0:289 component-wise multiply (temp float) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 2 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 3 (const int) +0:293 Sequence +0:293 move second child to first child (temp 4-component vector of float) +0:293 'r029' (temp 4-component vector of float) +0:293 exp (temp 4-component vector of float) +0:293 'inF0' (in 4-component vector of float) +0:294 Sequence +0:294 move second child to first child (temp 4-component vector of float) +0:294 'r030' (temp 4-component vector of float) +0:294 exp2 (temp 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) +0:295 Sequence +0:295 move second child to first child (temp 4-component vector of float) +0:295 'r031' (temp 4-component vector of float) +0:295 face-forward (temp 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) +0:295 'inF2' (in 4-component vector of float) +0:296 Sequence +0:296 move second child to first child (temp 4-component vector of uint) +0:296 'r032' (temp 4-component vector of uint) +0:? findMSB (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:297 Sequence +0:297 move second child to first child (temp 4-component vector of uint) +0:297 'r033' (temp 4-component vector of uint) +0:? findLSB (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 float) +0:298 'r034' (temp 4-component vector of float) +0:298 Floor (temp 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) +0:300 Sequence +0:300 move second child to first child (temp 4-component vector of float) +0:300 'r036' (temp 4-component vector of float) +0:300 mod (temp 4-component vector of float) +0:300 'inF0' (in 4-component vector of float) +0:300 'inF1' (in 4-component vector of float) +0:301 Sequence +0:301 move second child to first child (temp 4-component vector of float) +0:301 'r037' (temp 4-component vector of float) +0:301 Fraction (temp 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) +0:302 Sequence +0:302 move second child to first child (temp 4-component vector of float) +0:302 'r038' (temp 4-component vector of float) +0:302 frexp (temp 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) +0:302 'inF1' (in 4-component vector of float) +0:303 Sequence +0:303 move second child to first child (temp 4-component vector of float) +0:303 'r039' (temp 4-component vector of float) +0:303 fwidth (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:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:401 Function Parameters: +0:401 'inF0' (in 2X2 matrix of float) +0:401 'inF1' (in 2X2 matrix of float) +0:401 'inF2' (in 2X2 matrix of float) +0:? Sequence +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r000' (temp bool) +0:403 all (temp bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r001' (temp 2X2 matrix of float) +0:403 Absolute value (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 arc cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r003' (temp bool) +0:403 any (temp bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r004' (temp 2X2 matrix of float) +0:403 arc sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r005' (temp 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r006' (temp 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r007' (temp 2X2 matrix of float) +0:403 Ceiling (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Test condition and select (temp void) +0:403 Condition +0:403 any (temp bool) +0:403 Compare Less Than (temp 2X2 matrix of bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 true case +0:403 Branch: Kill +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r008' (temp 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r009' (temp 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r010' (temp 2X2 matrix of float) +0:403 hyp. cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r011' (temp 2X2 matrix of float) +0:403 dPdx (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r012' (temp 2X2 matrix of float) +0:403 dPdxCoarse (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r013' (temp 2X2 matrix of float) +0:403 dPdxFine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r014' (temp 2X2 matrix of float) +0:403 dPdy (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r015' (temp 2X2 matrix of float) +0:403 dPdyCoarse (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r016' (temp 2X2 matrix of float) +0:403 dPdyFine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r017' (temp 2X2 matrix of float) +0:403 degrees (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp float) +0:403 'r018' (temp float) +0:403 determinant (temp float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r019' (temp 2X2 matrix of float) +0:403 exp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'R020' (temp 2X2 matrix of float) +0:403 exp2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r021' (temp 2X2 matrix of float) +0:403 Floor (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r022' (temp 2X2 matrix of float) +0:403 mod (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r023' (temp 2X2 matrix of float) +0:403 Fraction (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r024' (temp 2X2 matrix of float) +0:403 frexp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r025' (temp 2X2 matrix of float) +0:403 fwidth (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026' (temp 2X2 matrix of float) +0:403 ldexp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026a' (temp 2X2 matrix of float) +0:403 mix (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r027' (temp 2X2 matrix of float) +0:403 log (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r028' (temp 2X2 matrix of float) +0:403 matrix-scale (temp 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.301030 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r029' (temp 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r030' (temp 2X2 matrix of float) +0:403 max (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r031' (temp 2X2 matrix of float) +0:403 min (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r032' (temp 2X2 matrix of float) +0:403 pow (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r033' (temp 2X2 matrix of float) +0:403 radians (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r034' (temp 2X2 matrix of float) +0:403 roundEven (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r035' (temp 2X2 matrix of float) +0:403 inverse sqrt (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r036' (temp 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 Constant: +0:403 1.000000 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r037' (temp 2X2 matrix of float) +0:403 Sign (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r038' (temp 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r039' (temp 2X2 matrix of float) +0:403 hyp. sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r049' (temp 2X2 matrix of float) +0:403 smoothstep (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r041' (temp 2X2 matrix of float) +0:403 sqrt (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r042' (temp 2X2 matrix of float) +0:403 step (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r043' (temp 2X2 matrix of float) +0:403 tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r044' (temp 2X2 matrix of float) +0:403 hyp. tangent (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 transpose (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r046' (temp 2X2 matrix of float) +0:403 trunc (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:406 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:410 Function Parameters: +0:410 'inF0' (in 3X3 matrix of float) +0:410 'inF1' (in 3X3 matrix of float) +0:410 'inF2' (in 3X3 matrix of float) +0:? Sequence +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r000' (temp bool) +0:412 all (temp bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r001' (temp 3X3 matrix of float) +0:412 Absolute value (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 arc cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r003' (temp bool) +0:412 any (temp bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r004' (temp 3X3 matrix of float) +0:412 arc sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r005' (temp 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r006' (temp 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r007' (temp 3X3 matrix of float) +0:412 Ceiling (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Test condition and select (temp void) +0:412 Condition +0:412 any (temp bool) +0:412 Compare Less Than (temp 3X3 matrix of bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 true case +0:412 Branch: Kill +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r008' (temp 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r009' (temp 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r010' (temp 3X3 matrix of float) +0:412 hyp. cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r011' (temp 3X3 matrix of float) +0:412 dPdx (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r012' (temp 3X3 matrix of float) +0:412 dPdxCoarse (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r013' (temp 3X3 matrix of float) +0:412 dPdxFine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r014' (temp 3X3 matrix of float) +0:412 dPdy (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r015' (temp 3X3 matrix of float) +0:412 dPdyCoarse (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r016' (temp 3X3 matrix of float) +0:412 dPdyFine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r017' (temp 3X3 matrix of float) +0:412 degrees (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp float) +0:412 'r018' (temp float) +0:412 determinant (temp float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r019' (temp 3X3 matrix of float) +0:412 exp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'R020' (temp 3X3 matrix of float) +0:412 exp2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r021' (temp 3X3 matrix of float) +0:412 Floor (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r022' (temp 3X3 matrix of float) +0:412 mod (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r023' (temp 3X3 matrix of float) +0:412 Fraction (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r024' (temp 3X3 matrix of float) +0:412 frexp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r025' (temp 3X3 matrix of float) +0:412 fwidth (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026' (temp 3X3 matrix of float) +0:412 ldexp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026a' (temp 3X3 matrix of float) +0:412 mix (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r027' (temp 3X3 matrix of float) +0:412 log (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r028' (temp 3X3 matrix of float) +0:412 matrix-scale (temp 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.301030 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r029' (temp 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r030' (temp 3X3 matrix of float) +0:412 max (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r031' (temp 3X3 matrix of float) +0:412 min (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r032' (temp 3X3 matrix of float) +0:412 pow (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r033' (temp 3X3 matrix of float) +0:412 radians (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r034' (temp 3X3 matrix of float) +0:412 roundEven (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r035' (temp 3X3 matrix of float) +0:412 inverse sqrt (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r036' (temp 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 Constant: +0:412 1.000000 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r037' (temp 3X3 matrix of float) +0:412 Sign (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r038' (temp 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r039' (temp 3X3 matrix of float) +0:412 hyp. sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r049' (temp 3X3 matrix of float) +0:412 smoothstep (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r041' (temp 3X3 matrix of float) +0:412 sqrt (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r042' (temp 3X3 matrix of float) +0:412 step (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r043' (temp 3X3 matrix of float) +0:412 tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r044' (temp 3X3 matrix of float) +0:412 hyp. tangent (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 transpose (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r046' (temp 3X3 matrix of float) +0:412 trunc (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:415 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:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:419 Function Parameters: +0:419 'inF0' (in 4X4 matrix of float) +0:419 'inF1' (in 4X4 matrix of float) +0:419 'inF2' (in 4X4 matrix of float) +0:? Sequence +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r000' (temp bool) +0:421 all (temp bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r001' (temp 4X4 matrix of float) +0:421 Absolute value (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 arc cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r003' (temp bool) +0:421 any (temp bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r004' (temp 4X4 matrix of float) +0:421 arc sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r005' (temp 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r006' (temp 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r007' (temp 4X4 matrix of float) +0:421 Ceiling (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Test condition and select (temp void) +0:421 Condition +0:421 any (temp bool) +0:421 Compare Less Than (temp 4X4 matrix of bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 true case +0:421 Branch: Kill +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r008' (temp 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r009' (temp 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r010' (temp 4X4 matrix of float) +0:421 hyp. cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r011' (temp 4X4 matrix of float) +0:421 dPdx (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r012' (temp 4X4 matrix of float) +0:421 dPdxCoarse (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r013' (temp 4X4 matrix of float) +0:421 dPdxFine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r014' (temp 4X4 matrix of float) +0:421 dPdy (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r015' (temp 4X4 matrix of float) +0:421 dPdyCoarse (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r016' (temp 4X4 matrix of float) +0:421 dPdyFine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r017' (temp 4X4 matrix of float) +0:421 degrees (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp float) +0:421 'r018' (temp float) +0:421 determinant (temp float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r019' (temp 4X4 matrix of float) +0:421 exp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'R020' (temp 4X4 matrix of float) +0:421 exp2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r021' (temp 4X4 matrix of float) +0:421 Floor (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r022' (temp 4X4 matrix of float) +0:421 mod (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r023' (temp 4X4 matrix of float) +0:421 Fraction (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r024' (temp 4X4 matrix of float) +0:421 frexp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r025' (temp 4X4 matrix of float) +0:421 fwidth (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026' (temp 4X4 matrix of float) +0:421 ldexp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026a' (temp 4X4 matrix of float) +0:421 mix (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r027' (temp 4X4 matrix of float) +0:421 log (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r028' (temp 4X4 matrix of float) +0:421 matrix-scale (temp 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.301030 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r029' (temp 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r030' (temp 4X4 matrix of float) +0:421 max (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r031' (temp 4X4 matrix of float) +0:421 min (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r032' (temp 4X4 matrix of float) +0:421 pow (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r033' (temp 4X4 matrix of float) +0:421 radians (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r034' (temp 4X4 matrix of float) +0:421 roundEven (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r035' (temp 4X4 matrix of float) +0:421 inverse sqrt (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r036' (temp 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 Constant: +0:421 1.000000 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r037' (temp 4X4 matrix of float) +0:421 Sign (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r038' (temp 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r039' (temp 4X4 matrix of float) +0:421 hyp. sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r049' (temp 4X4 matrix of float) +0:421 smoothstep (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r041' (temp 4X4 matrix of float) +0:421 sqrt (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r042' (temp 4X4 matrix of float) +0:421 step (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r043' (temp 4X4 matrix of float) +0:421 tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r044' (temp 4X4 matrix of float) +0:421 hyp. tangent (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 transpose (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r046' (temp 4X4 matrix of float) +0:421 trunc (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:424 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:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:442 Function Parameters: +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFV1' (in 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFM1' (in 2X2 matrix of float) +0:? Sequence +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r0' (temp float) +0:443 component-wise multiply (temp float) +0:443 'inF1' (in float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r1' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inF0' (in float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r2' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r3' (temp float) +0:443 dot-product (temp float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFV1' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r4' (temp 2-component vector of float) +0:443 vector-times-matrix (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r5' (temp 2-component vector of float) +0:443 matrix-times-vector (temp 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r6' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r7' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r8' (temp 2X2 matrix of float) +0:443 matrix-multiply (temp 2X2 matrix of float) +0:443 'inFM1' (in 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:449 Function Parameters: +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFV1' (in 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFM1' (in 3X3 matrix of float) +0:? Sequence +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r0' (temp float) +0:450 component-wise multiply (temp float) +0:450 'inF1' (in float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r1' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inF0' (in float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r2' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r3' (temp float) +0:450 dot-product (temp float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFV1' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r4' (temp 3-component vector of float) +0:450 vector-times-matrix (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r5' (temp 3-component vector of float) +0:450 matrix-times-vector (temp 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r6' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r7' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r8' (temp 3X3 matrix of float) +0:450 matrix-multiply (temp 3X3 matrix of float) +0:450 'inFM1' (in 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:456 Function Parameters: +0:456 'inF0' (in float) +0:456 'inF1' (in float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFV1' (in 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFM1' (in 4X4 matrix of float) +0:? Sequence +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r0' (temp float) +0:457 component-wise multiply (temp float) +0:457 'inF1' (in float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r1' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inF0' (in float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r2' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r3' (temp float) +0:457 dot-product (temp float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFV1' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r4' (temp 4-component vector of float) +0:457 vector-times-matrix (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r5' (temp 4-component vector of float) +0:457 matrix-times-vector (temp 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r6' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r7' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r8' (temp 4X4 matrix of float) +0:457 matrix-multiply (temp 4X4 matrix of float) +0:457 'inFM1' (in 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) +0:466 Function Parameters: +0:466 'inF0' (in float) +0:466 'inF1' (in float) +0:466 'inFV2' (in 2-component vector of float) +0:466 'inFV3' (in 3-component vector of float) +0:466 'inFM2x3' (in 2X3 matrix of float) +0:466 'inFM3x2' (in 3X2 matrix of float) +0:466 'inFM3x3' (in 3X3 matrix of float) +0:466 'inFM3x4' (in 3X4 matrix of float) +0:466 'inFM2x4' (in 2X4 matrix of float) +0:? Sequence +0:467 Sequence +0:467 move second child to first child (temp float) +0:467 'r00' (temp float) +0:467 component-wise multiply (temp float) +0:467 'inF1' (in float) +0:467 'inF0' (in float) +0:468 Sequence +0:468 move second child to first child (temp 2-component vector of float) +0:468 'r01' (temp 2-component vector of float) +0:468 vector-scale (temp 2-component vector of float) +0:468 'inF0' (in float) +0:468 'inFV2' (in 2-component vector of float) +0:469 Sequence +0:469 move second child to first child (temp 3-component vector of float) +0:469 'r02' (temp 3-component vector of float) +0:469 vector-scale (temp 3-component vector of float) +0:469 'inF0' (in float) +0:469 'inFV3' (in 3-component vector of float) +0:470 Sequence +0:470 move second child to first child (temp 2-component vector of float) +0:470 'r03' (temp 2-component vector of float) +0:470 vector-scale (temp 2-component vector of float) +0:470 'inFV2' (in 2-component vector of float) +0:470 'inF0' (in float) +0:471 Sequence +0:471 move second child to first child (temp 3-component vector of float) +0:471 'r04' (temp 3-component vector of float) +0:471 vector-scale (temp 3-component vector of float) +0:471 'inFV3' (in 3-component vector of float) +0:471 'inF0' (in float) +0:472 Sequence +0:472 move second child to first child (temp float) +0:472 'r05' (temp float) +0:472 dot-product (temp float) +0:472 'inFV2' (in 2-component vector of float) +0:472 'inFV2' (in 2-component vector of float) +0:473 Sequence +0:473 move second child to first child (temp float) +0:473 'r06' (temp float) +0:473 dot-product (temp float) +0:473 'inFV3' (in 3-component vector of float) +0:473 'inFV3' (in 3-component vector of float) +0:474 Sequence +0:474 move second child to first child (temp 3-component vector of float) +0:474 'r07' (temp 3-component vector of float) +0:474 matrix-times-vector (temp 3-component vector of float) +0:474 'inFM2x3' (in 2X3 matrix of float) +0:474 'inFV2' (in 2-component vector of float) +0:475 Sequence +0:475 move second child to first child (temp 2-component vector of float) +0:475 'r08' (temp 2-component vector of float) +0:475 matrix-times-vector (temp 2-component vector of float) +0:475 'inFM3x2' (in 3X2 matrix of float) +0:475 'inFV3' (in 3-component vector of float) +0:476 Sequence +0:476 move second child to first child (temp 2-component vector of float) +0:476 'r09' (temp 2-component vector of float) +0:476 vector-times-matrix (temp 2-component vector of float) +0:476 'inFV3' (in 3-component vector of float) +0:476 'inFM2x3' (in 2X3 matrix of float) +0:477 Sequence +0:477 move second child to first child (temp 3-component vector of float) +0:477 'r10' (temp 3-component vector of float) +0:477 vector-times-matrix (temp 3-component vector of float) +0:477 'inFV2' (in 2-component vector of float) +0:477 'inFM3x2' (in 3X2 matrix of float) +0:478 Sequence +0:478 move second child to first child (temp 2X3 matrix of float) +0:478 'r11' (temp 2X3 matrix of float) +0:478 matrix-scale (temp 2X3 matrix of float) +0:478 'inF0' (in float) +0:478 'inFM2x3' (in 2X3 matrix of float) +0:479 Sequence +0:479 move second child to first child (temp 3X2 matrix of float) +0:479 'r12' (temp 3X2 matrix of float) +0:479 matrix-scale (temp 3X2 matrix of float) +0:479 'inF0' (in float) +0:479 'inFM3x2' (in 3X2 matrix of float) +0:480 Sequence +0:480 move second child to first child (temp 2X2 matrix of float) +0:480 'r13' (temp 2X2 matrix of float) +0:480 matrix-multiply (temp 2X2 matrix of float) +0:480 'inFM3x2' (in 3X2 matrix of float) +0:480 'inFM2x3' (in 2X3 matrix of float) +0:481 Sequence +0:481 move second child to first child (temp 2X3 matrix of float) +0:481 'r14' (temp 2X3 matrix of float) +0:481 matrix-multiply (temp 2X3 matrix of float) +0:481 'inFM3x3' (in 3X3 matrix of float) +0:481 'inFM2x3' (in 2X3 matrix of float) +0:482 Sequence +0:482 move second child to first child (temp 2X4 matrix of float) +0:482 'r15' (temp 2X4 matrix of float) +0:482 matrix-multiply (temp 2X4 matrix of float) +0:482 'inFM3x4' (in 3X4 matrix of float) +0:482 'inFM2x3' (in 2X3 matrix of float) +0:483 Sequence +0:483 move second child to first child (temp 3X4 matrix of float) +0:483 'r16' (temp 3X4 matrix of float) +0:483 matrix-multiply (temp 3X4 matrix of float) +0:483 'inFM2x4' (in 2X4 matrix of float) +0:483 'inFM3x2' (in 3X2 matrix of float) +0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:489 Function Parameters: +0:? Sequence +0:491 move second child to first child (temp 4-component vector of float) +0:491 color: direct index for structure (temp 4-component vector of float) +0:491 'ps_output' (temp structure{temp 4-component vector of float color}) +0:491 Constant: +0:491 0 (const int) +0:491 Constant: +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:492 Sequence +0:492 Sequence +0:492 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:492 color: direct index for structure (temp 4-component vector of float) +0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:492 Constant: +0:492 0 (const int) +0:492 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 1828 + + Capability Shader + Capability DerivativeControl + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 1808 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inU0" + Name 15 "inU1" + Name 22 "PixelShaderFunction1(vf1;vf1;vf1;" + Name 19 "inF0" + Name 20 "inF1" + Name 21 "inF2" + Name 34 "PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;" + Name 29 "inF0" + Name 30 "inF1" + Name 31 "inF2" + Name 32 "inU0" + Name 33 "inU1" + Name 46 "PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;" + Name 41 "inF0" + Name 42 "inF1" + Name 43 "inF2" + Name 44 "inU0" + Name 45 "inU1" + Name 58 "PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;" + Name 53 "inF0" + Name 54 "inF1" + Name 55 "inF2" + Name 56 "inU0" + Name 57 "inU1" + Name 66 "PixelShaderFunction2x2(mf22;mf22;mf22;" + Name 63 "inF0" + Name 64 "inF1" + Name 65 "inF2" + Name 74 "PixelShaderFunction3x3(mf33;mf33;mf33;" + Name 71 "inF0" + Name 72 "inF1" + Name 73 "inF2" + Name 82 "PixelShaderFunction4x4(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 133 "r000" + Name 136 "r001" + Name 139 "r002" + Name 142 "r003" + Name 145 "r004" + Name 150 "r005" + Name 153 "r006" + Name 156 "r007" + Name 159 "r009" + Name 162 "r010" + Name 166 "r011" + Name 169 "r012" + Name 180 "r014" + Name 183 "r015" + Name 186 "r016" + Name 189 "r017" + Name 192 "r018" + Name 195 "r019" + Name 198 "r020" + Name 201 "r021" + Name 204 "r022" + Name 207 "r023" + Name 210 "r027" + Name 213 "r028" + Name 216 "r029" + Name 219 "r030" + Name 222 "r031" + Name 225 "r033" + Name 229 "r034" + Name 232 "r035" + Name 234 "ResType" + Name 238 "r036" + Name 241 "r037" + Name 244 "r038" + Name 247 "r039" + Name 251 "r039a" + Name 256 "r040" + Name 259 "r041" + Name 264 "r042" + Name 267 "r043" + Name 271 "r044" + Name 275 "r045" + Name 279 "r046" + Name 282 "r047" + Name 286 "r048" + Name 290 "r049" + Name 293 "r050" + Name 296 "r051" + Name 299 "r052" + Name 302 "r053" + Name 309 "r055" + Name 312 "r056" + Name 317 "r057" + Name 320 "r058" + Name 324 "r059" + Name 327 "r060" + Name 330 "r061" + Name 337 "r000" + Name 340 "r001" + Name 343 "r002" + Name 346 "r003" + Name 349 "r004" + Name 354 "r005" + Name 357 "r006" + Name 360 "r007" + Name 363 "r009" + Name 366 "r010" + Name 370 "r011" + Name 373 "r012" + Name 386 "r013" + Name 389 "r015" + Name 392 "r016" + Name 396 "r017" + Name 399 "r018" + Name 402 "r019" + Name 405 "r020" + Name 408 "r021" + Name 411 "r022" + Name 414 "r023" + Name 417 "r026" + Name 421 "r027" + Name 425 "r028" + Name 428 "r029" + Name 431 "r030" + Name 436 "r031" + Name 441 "r032" + Name 443 "r033" + Name 446 "r035" + Name 450 "r036" + Name 453 "r037" + Name 455 "ResType" + Name 459 "r038" + Name 463 "r039" + Name 466 "r040" + Name 469 "r041" + Name 473 "r039a" + Name 478 "r042" + Name 481 "r043" + Name 484 "r044" + Name 488 "r045" + Name 491 "r046" + Name 495 "r047" + Name 499 "r048" + Name 502 "r049" + Name 506 "r050" + Name 509 "r051" + Name 513 "r052" + Name 517 "r053" + Name 522 "r054" + Name 527 "r055" + Name 530 "r056" + Name 533 "r057" + Name 538 "r058" + Name 541 "r059" + Name 548 "r060" + Name 551 "r061" + Name 556 "r062" + Name 559 "r063" + Name 563 "r064" + Name 566 "r065" + Name 569 "r066" + Name 575 "r000" + Name 578 "r001" + Name 581 "r002" + Name 584 "r003" + Name 587 "r004" + Name 592 "r005" + Name 595 "r006" + Name 598 "r007" + Name 601 "r009" + Name 604 "r010" + Name 608 "r011" + Name 611 "r012" + Name 624 "r013" + Name 627 "r014" + Name 630 "r015" + Name 635 "r016" + Name 639 "r017" + Name 642 "r018" + Name 645 "r019" + Name 648 "r020" + Name 651 "r021" + Name 654 "r022" + Name 657 "r023" + Name 660 "r024" + Name 664 "r025" + Name 668 "r029" + Name 671 "r030" + Name 674 "r031" + Name 679 "r032" + Name 683 "r033" + Name 685 "r034" + Name 688 "r036" + Name 692 "r037" + Name 695 "r038" + Name 697 "ResType" + Name 701 "r039" + Name 705 "r040" + Name 708 "r041" + Name 711 "r042" + Name 715 "r039a" + Name 720 "r039b" + Name 726 "r043" + Name 729 "r044" + Name 732 "r045" + Name 736 "r046" + Name 739 "r047" + Name 743 "r048" + Name 747 "r049" + Name 750 "r050" + Name 754 "r051" + Name 757 "r052" + Name 761 "r053" + Name 765 "r054" + Name 769 "r055" + Name 772 "r056" + Name 775 "r057" + Name 778 "r058" + Name 783 "r059" + Name 786 "r060" + Name 793 "r061" + Name 796 "r062" + Name 801 "r063" + Name 804 "r064" + Name 808 "r065" + Name 811 "r066" + Name 814 "r067" + Name 821 "r000" + Name 824 "r001" + Name 827 "r002" + Name 830 "r003" + Name 833 "r004" + Name 838 "r005" + Name 841 "r006" + Name 844 "r007" + Name 847 "r009" + Name 850 "r010" + Name 854 "r011" + Name 857 "r012" + Name 870 "r013" + Name 873 "r014" + Name 876 "r015" + Name 879 "r016" + Name 882 "r017" + Name 885 "r018" + Name 888 "r019" + Name 891 "r020" + Name 894 "r021" + Name 897 "r022" + Name 900 "r023" + Name 904 "r024" + Name 908 "r025" + Name 919 "r029" + Name 922 "r030" + Name 925 "r031" + Name 930 "r032" + Name 935 "r033" + Name 937 "r034" + Name 940 "r036" + Name 944 "r037" + Name 947 "r038" + Name 949 "ResType" + Name 953 "r039" + Name 957 "r040" + Name 960 "r041" + Name 963 "r042" + Name 967 "r039a" + Name 972 "r043" + Name 975 "r044" + Name 978 "r045" + Name 982 "r046" + Name 985 "r047" + Name 989 "r048" + Name 993 "r049" + Name 996 "r050" + Name 1000 "r051" + Name 1003 "r052" + Name 1007 "r053" + Name 1011 "r054" + Name 1015 "r055" + Name 1018 "r056" + Name 1021 "r057" + Name 1024 "r058" + Name 1029 "r059" + Name 1032 "r060" + Name 1039 "r061" + Name 1042 "r062" + Name 1047 "r063" + Name 1050 "r064" + Name 1054 "r065" + Name 1057 "r066" + Name 1060 "r067" + Name 1067 "r000" + Name 1070 "r001" + Name 1075 "r003" + Name 1078 "r004" + Name 1081 "r005" + Name 1084 "r006" + Name 1088 "r007" + Name 1099 "r008" + Name 1104 "r009" + Name 1107 "r010" + Name 1110 "r011" + Name 1113 "r012" + Name 1116 "r013" + Name 1119 "r014" + Name 1122 "r015" + Name 1125 "r016" + Name 1128 "r017" + Name 1131 "r018" + Name 1134 "r019" + Name 1137 "R020" + Name 1140 "r021" + Name 1143 "r022" + Name 1153 "r023" + Name 1156 "r024" + Name 1158 "ResType" + Name 1162 "r025" + Name 1165 "r026" + Name 1169 "r026a" + Name 1174 "r027" + Name 1177 "r028" + Name 1181 "r029" + Name 1184 "r030" + Name 1188 "r031" + Name 1192 "r032" + Name 1196 "r033" + Name 1199 "r034" + Name 1202 "r035" + Name 1205 "r036" + Name 1210 "r037" + Name 1213 "r038" + Name 1220 "r039" + Name 1223 "r049" + Name 1228 "r041" + Name 1231 "r042" + Name 1235 "r043" + Name 1238 "r044" + Name 1243 "r046" + Name 1250 "r000" + Name 1253 "r001" + Name 1258 "r003" + Name 1261 "r004" + Name 1264 "r005" + Name 1267 "r006" + Name 1271 "r007" + Name 1282 "r008" + Name 1287 "r009" + Name 1290 "r010" + Name 1293 "r011" + Name 1296 "r012" + Name 1299 "r013" + Name 1302 "r014" + Name 1305 "r015" + Name 1308 "r016" + Name 1311 "r017" + Name 1314 "r018" + Name 1317 "r019" + Name 1320 "R020" + Name 1323 "r021" + Name 1326 "r022" + Name 1339 "r023" + Name 1342 "r024" + Name 1344 "ResType" + Name 1348 "r025" + Name 1351 "r026" + Name 1355 "r026a" + Name 1360 "r027" + Name 1363 "r028" + Name 1367 "r029" + Name 1370 "r030" + Name 1374 "r031" + Name 1378 "r032" + Name 1382 "r033" + Name 1385 "r034" + Name 1388 "r035" + Name 1391 "r036" + Name 1396 "r037" + Name 1399 "r038" + Name 1406 "r039" + Name 1409 "r049" + Name 1414 "r041" + Name 1417 "r042" + Name 1421 "r043" + Name 1424 "r044" + Name 1429 "r046" + Name 1436 "r000" + Name 1439 "r001" + Name 1444 "r003" + Name 1447 "r004" + Name 1450 "r005" + Name 1453 "r006" + Name 1457 "r007" + Name 1468 "r008" + Name 1473 "r009" + Name 1476 "r010" + Name 1479 "r011" + Name 1482 "r012" + Name 1485 "r013" + Name 1488 "r014" + Name 1491 "r015" + Name 1494 "r016" + Name 1497 "r017" + Name 1500 "r018" + Name 1503 "r019" + Name 1506 "R020" + Name 1509 "r021" + Name 1512 "r022" + Name 1528 "r023" + Name 1531 "r024" + Name 1533 "ResType" + Name 1537 "r025" + Name 1540 "r026" + Name 1544 "r026a" + Name 1549 "r027" + Name 1552 "r028" + Name 1556 "r029" + Name 1559 "r030" + Name 1563 "r031" + Name 1567 "r032" + Name 1571 "r033" + Name 1574 "r034" + Name 1577 "r035" + Name 1580 "r036" + Name 1585 "r037" + Name 1588 "r038" + Name 1595 "r039" + Name 1598 "r049" + Name 1603 "r041" + Name 1606 "r042" + Name 1610 "r043" + Name 1613 "r044" + Name 1618 "r046" + Name 1625 "r0" + Name 1629 "r1" + Name 1633 "r2" + Name 1637 "r3" + Name 1641 "r4" + Name 1645 "r5" + Name 1649 "r6" + Name 1653 "r7" + Name 1657 "r8" + Name 1661 "r0" + Name 1665 "r1" + Name 1669 "r2" + Name 1673 "r3" + Name 1677 "r4" + Name 1681 "r5" + Name 1685 "r6" + Name 1689 "r7" + Name 1693 "r8" + Name 1697 "r0" + Name 1701 "r1" + Name 1705 "r2" + Name 1709 "r3" + Name 1713 "r4" + Name 1717 "r5" + Name 1721 "r6" + Name 1725 "r7" + Name 1729 "r8" + Name 1733 "r00" + Name 1737 "r01" + Name 1741 "r02" + Name 1745 "r03" + Name 1749 "r04" + Name 1753 "r05" + Name 1757 "r06" + Name 1761 "r07" + Name 1765 "r08" + Name 1769 "r09" + Name 1773 "r10" + Name 1777 "r11" + Name 1781 "r12" + Name 1785 "r13" + Name 1789 "r14" + Name 1793 "r15" + Name 1797 "r16" + Name 1801 "PS_OUTPUT" + MemberName 1801(PS_OUTPUT) 0 "color" + Name 1803 "ps_output" + Name 1808 "color" + Name 1813 "gs_ua" + Name 1814 "gs_ub" + Name 1815 "gs_uc" + Name 1817 "gs_ua2" + Name 1818 "gs_ub2" + Name 1819 "gs_uc2" + Name 1821 "gs_ua3" + Name 1822 "gs_ub3" + Name 1823 "gs_uc3" + Name 1825 "gs_ua4" + Name 1826 "gs_ub4" + Name 1827 "gs_uc4" + Decorate 1808(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 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) + 131: TypeBool + 132: TypePointer Function 131(bool) + 148: TypeInt 32 1 + 149: TypePointer Function 148(int) + 175: 6(float) Constant 0 + 187: 148(int) Constant 7 + 234(ResType): TypeStruct 6(float) 148(int) + 262: 6(float) Constant 1050288283 + 283: 6(float) Constant 1065353216 + 287: 148(int) Constant 2 + 352: TypeVector 148(int) 2 + 353: TypePointer Function 352(ivec2) + 379: 24(fvec2) ConstantComposite 175 175 + 380: TypeVector 131(bool) 2 + 393: 148(int) Constant 3 + 394: 352(ivec2) ConstantComposite 187 393 + 437: 8(int) Constant 7 + 438: 8(int) Constant 8 + 439: 26(ivec2) ConstantComposite 437 438 + 455(ResType): TypeStruct 24(fvec2) 352(ivec2) + 462: TypePointer Function 380(bvec2) + 520: 6(float) Constant 1073741824 + 523: 8(int) Constant 1 + 524: 8(int) Constant 2 + 525: 26(ivec2) ConstantComposite 523 524 + 572: 24(fvec2) ConstantComposite 283 520 + 590: TypeVector 148(int) 3 + 591: TypePointer Function 590(ivec3) + 617: 36(fvec3) ConstantComposite 175 175 175 + 618: TypeVector 131(bool) 3 + 631: 8(int) Constant 3 + 632: 8(int) Constant 5 + 633: 38(ivec3) ConstantComposite 437 631 632 + 680: 8(int) Constant 4 + 681: 38(ivec3) ConstantComposite 524 631 680 + 697(ResType): TypeStruct 36(fvec3) 590(ivec3) + 704: TypePointer Function 618(bvec3) + 723: 6(float) Constant 1050253722 + 770: 38(ivec3) ConstantComposite 523 524 631 + 817: 6(float) Constant 1077936128 + 818: 36(fvec3) ConstantComposite 283 520 817 + 836: TypeVector 148(int) 4 + 837: TypePointer Function 836(ivec4) + 863: 48(fvec4) ConstantComposite 175 175 175 175 + 864: TypeVector 131(bool) 4 + 877: 50(ivec4) ConstantComposite 437 631 632 524 + 931: 8(int) Constant 9 + 932: 8(int) Constant 10 + 933: 50(ivec4) ConstantComposite 437 438 931 932 + 949(ResType): TypeStruct 48(fvec4) 836(ivec4) + 956: TypePointer Function 864(bvec4) + 1016: 50(ivec4) ConstantComposite 523 524 631 680 + 1063: 6(float) Constant 1082130432 + 1064: 48(fvec4) ConstantComposite 283 520 817 1063 + 1092: 60 ConstantComposite 379 379 + 1093: TypeMatrix 380(bvec2) 2 + 1158(ResType): TypeStruct 60 352(ivec2) + 1246: 24(fvec2) ConstantComposite 520 520 + 1247: 60 ConstantComposite 1246 1246 + 1275: 68 ConstantComposite 617 617 617 + 1276: TypeMatrix 618(bvec3) 3 + 1344(ResType): TypeStruct 68 590(ivec3) + 1432: 36(fvec3) ConstantComposite 817 817 817 + 1433: 68 ConstantComposite 1432 1432 1432 + 1461: 76 ConstantComposite 863 863 863 863 + 1462: TypeMatrix 864(bvec4) 4 + 1533(ResType): TypeStruct 76 836(ivec4) + 1621: 48(fvec4) ConstantComposite 1063 1063 1063 1063 + 1622: 76 ConstantComposite 1621 1621 1621 1621 + 1801(PS_OUTPUT): TypeStruct 48(fvec4) + 1802: TypePointer Function 1801(PS_OUTPUT) + 1804: 148(int) Constant 0 + 1805: 48(fvec4) ConstantComposite 283 283 283 283 + 1807: TypePointer Output 48(fvec4) + 1808(color): 1807(ptr) Variable Output + 1812: TypePointer Workgroup 8(int) + 1813(gs_ua): 1812(ptr) Variable Workgroup + 1814(gs_ub): 1812(ptr) Variable Workgroup + 1815(gs_uc): 1812(ptr) Variable Workgroup + 1816: TypePointer Workgroup 26(ivec2) + 1817(gs_ua2): 1816(ptr) Variable Workgroup + 1818(gs_ub2): 1816(ptr) Variable Workgroup + 1819(gs_uc2): 1816(ptr) Variable Workgroup + 1820: TypePointer Workgroup 38(ivec3) + 1821(gs_ua3): 1820(ptr) Variable Workgroup + 1822(gs_ub3): 1820(ptr) Variable Workgroup + 1823(gs_uc3): 1820(ptr) Variable Workgroup + 1824: TypePointer Workgroup 50(ivec4) + 1825(gs_ua4): 1824(ptr) Variable Workgroup + 1826(gs_ub4): 1824(ptr) Variable Workgroup + 1827(gs_uc4): 1824(ptr) Variable Workgroup + 4(main): 2 Function None 3 + 5: Label + 1803(ps_output): 1802(ptr) Variable Function + 1806: 49(ptr) AccessChain 1803(ps_output) 1804 + Store 1806 1805 + 1809: 49(ptr) AccessChain 1803(ps_output) 1804 + 1810: 48(fvec4) Load 1809 + Store 1808(color) 1810 + Return + FunctionEnd +16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 + 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 + 133(r000): 132(ptr) Variable Function + 136(r001): 7(ptr) Variable Function + 139(r002): 7(ptr) Variable Function + 142(r003): 132(ptr) Variable Function + 145(r004): 7(ptr) Variable Function + 150(r005): 149(ptr) Variable Function + 153(r006): 9(ptr) Variable Function + 156(r007): 7(ptr) Variable Function + 159(r009): 7(ptr) Variable Function + 162(r010): 7(ptr) Variable Function + 166(r011): 7(ptr) Variable Function + 169(r012): 7(ptr) Variable Function + 180(r014): 7(ptr) Variable Function + 183(r015): 7(ptr) Variable Function + 186(r016): 149(ptr) Variable Function + 189(r017): 7(ptr) Variable Function + 192(r018): 7(ptr) Variable Function + 195(r019): 7(ptr) Variable Function + 198(r020): 7(ptr) Variable Function + 201(r021): 7(ptr) Variable Function + 204(r022): 7(ptr) Variable Function + 207(r023): 7(ptr) Variable Function + 210(r027): 7(ptr) Variable Function + 213(r028): 7(ptr) Variable Function + 216(r029): 9(ptr) Variable Function + 219(r030): 9(ptr) Variable Function + 222(r031): 7(ptr) Variable Function + 225(r033): 7(ptr) Variable Function + 229(r034): 7(ptr) Variable Function + 232(r035): 7(ptr) Variable Function + 238(r036): 7(ptr) Variable Function + 241(r037): 132(ptr) Variable Function + 244(r038): 132(ptr) Variable Function + 247(r039): 7(ptr) Variable Function + 251(r039a): 7(ptr) Variable Function + 256(r040): 7(ptr) Variable Function + 259(r041): 7(ptr) Variable Function + 264(r042): 7(ptr) Variable Function + 267(r043): 7(ptr) Variable Function + 271(r044): 7(ptr) Variable Function + 275(r045): 7(ptr) Variable Function + 279(r046): 7(ptr) Variable Function + 282(r047): 7(ptr) Variable Function + 286(r048): 9(ptr) Variable Function + 290(r049): 7(ptr) Variable Function + 293(r050): 7(ptr) Variable Function + 296(r051): 7(ptr) Variable Function + 299(r052): 7(ptr) Variable Function + 302(r053): 7(ptr) Variable Function + 309(r055): 7(ptr) Variable Function + 312(r056): 7(ptr) Variable Function + 317(r057): 7(ptr) Variable Function + 320(r058): 7(ptr) Variable Function + 324(r059): 7(ptr) Variable Function + 327(r060): 7(ptr) Variable Function + 330(r061): 7(ptr) Variable Function + 134: 6(float) Load 11(inF0) + 135: 131(bool) All 134 + Store 133(r000) 135 + 137: 6(float) Load 11(inF0) + 138: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 137 + Store 136(r001) 138 + 140: 6(float) Load 11(inF0) + 141: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 140 + Store 139(r002) 141 + 143: 6(float) Load 11(inF0) + 144: 131(bool) Any 143 + Store 142(r003) 144 + 146: 6(float) Load 11(inF0) + 147: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 146 + Store 145(r004) 147 + 151: 6(float) Load 11(inF0) + 152: 148(int) Bitcast 151 + Store 150(r005) 152 + 154: 6(float) Load 11(inF0) + 155: 8(int) Bitcast 154 + Store 153(r006) 155 + 157: 8(int) Load 14(inU0) + 158: 6(float) Bitcast 157 + Store 156(r007) 158 + 160: 6(float) Load 11(inF0) + 161: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 160 + Store 159(r009) 161 + 163: 6(float) Load 11(inF0) + 164: 6(float) Load 12(inF1) + 165: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 163 164 + Store 162(r010) 165 + 167: 6(float) Load 11(inF0) + 168: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 167 + Store 166(r011) 168 + 170: 6(float) Load 11(inF0) + 171: 6(float) Load 12(inF1) + 172: 6(float) Load 13(inF2) + 173: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 170 171 172 + Store 169(r012) 173 + 174: 6(float) Load 11(inF0) + 176: 131(bool) FOrdLessThan 174 175 + SelectionMerge 178 None + BranchConditional 176 177 178 + 177: Label + Kill + 178: Label + 181: 6(float) Load 11(inF0) + 182: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 181 + Store 180(r014) 182 + 184: 6(float) Load 11(inF0) + 185: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 184 + Store 183(r015) 185 + 188: 148(int) BitCount 187 + Store 186(r016) 188 + 190: 6(float) Load 11(inF0) + 191: 6(float) DPdx 190 + Store 189(r017) 191 + 193: 6(float) Load 11(inF0) + 194: 6(float) DPdxCoarse 193 + Store 192(r018) 194 + 196: 6(float) Load 11(inF0) + 197: 6(float) DPdxFine 196 + Store 195(r019) 197 + 199: 6(float) Load 11(inF0) + 200: 6(float) DPdy 199 + Store 198(r020) 200 + 202: 6(float) Load 11(inF0) + 203: 6(float) DPdyCoarse 202 + Store 201(r021) 203 + 205: 6(float) Load 11(inF0) + 206: 6(float) DPdyFine 205 + Store 204(r022) 206 + 208: 6(float) Load 11(inF0) + 209: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 208 + Store 207(r023) 209 + 211: 6(float) Load 11(inF0) + 212: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 211 + Store 210(r027) 212 + 214: 6(float) Load 11(inF0) + 215: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 214 + Store 213(r028) 215 + 217: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 187 + 218: 8(int) Bitcast 217 + Store 216(r029) 218 + 220: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 187 + 221: 8(int) Bitcast 220 + Store 219(r030) 221 + 223: 6(float) Load 11(inF0) + 224: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 223 + Store 222(r031) 224 + 226: 6(float) Load 11(inF0) + 227: 6(float) Load 12(inF1) + 228: 6(float) FMod 226 227 + Store 225(r033) 228 + 230: 6(float) Load 11(inF0) + 231: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 230 + Store 229(r034) 231 + 233: 6(float) Load 11(inF0) + 235:234(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 233 + 236: 148(int) CompositeExtract 235 1 + Store 12(inF1) 236 + 237: 6(float) CompositeExtract 235 0 + Store 232(r035) 237 + 239: 6(float) Load 11(inF0) + 240: 6(float) Fwidth 239 + Store 238(r036) 240 + 242: 6(float) Load 11(inF0) + 243: 131(bool) IsInf 242 + Store 241(r037) 243 + 245: 6(float) Load 11(inF0) + 246: 131(bool) IsNan 245 + Store 244(r038) 246 + 248: 6(float) Load 11(inF0) + 249: 6(float) Load 12(inF1) + 250: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 248 249 + Store 247(r039) 250 + 252: 6(float) Load 11(inF0) + 253: 6(float) Load 12(inF1) + 254: 6(float) Load 13(inF2) + 255: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 252 253 254 + Store 251(r039a) 255 + 257: 6(float) Load 11(inF0) + 258: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 257 + Store 256(r040) 258 + 260: 6(float) Load 11(inF0) + 261: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 260 + 263: 6(float) FMul 261 262 + Store 259(r041) 263 + 265: 6(float) Load 11(inF0) + 266: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 265 + Store 264(r042) 266 + 268: 6(float) Load 11(inF0) + 269: 6(float) Load 12(inF1) + 270: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 268 269 + Store 267(r043) 270 + 272: 6(float) Load 11(inF0) + 273: 6(float) Load 12(inF1) + 274: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 272 273 + Store 271(r044) 274 + 276: 6(float) Load 11(inF0) + 277: 6(float) Load 12(inF1) + 278: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 276 277 + Store 275(r045) 278 + 280: 6(float) Load 11(inF0) + 281: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 280 + Store 279(r046) 281 + 284: 6(float) Load 11(inF0) + 285: 6(float) FDiv 283 284 + Store 282(r047) 285 + 288: 148(int) BitReverse 287 + 289: 8(int) Bitcast 288 + Store 286(r048) 289 + 291: 6(float) Load 11(inF0) + 292: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 291 + Store 290(r049) 292 + 294: 6(float) Load 11(inF0) + 295: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 294 + Store 293(r050) 295 + 297: 6(float) Load 11(inF0) + 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 283 + Store 296(r051) 298 + 300: 6(float) Load 11(inF0) + 301: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 300 + Store 299(r052) 301 + 303: 6(float) Load 11(inF0) + 304: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 303 + Store 302(r053) 304 + 305: 6(float) Load 11(inF0) + 306: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 305 + Store 12(inF1) 306 + 307: 6(float) Load 11(inF0) + 308: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 307 + Store 13(inF2) 308 + 310: 6(float) Load 11(inF0) + 311: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 310 + Store 309(r055) 311 + 313: 6(float) Load 11(inF0) + 314: 6(float) Load 12(inF1) + 315: 6(float) Load 13(inF2) + 316: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 313 314 315 + Store 312(r056) 316 + 318: 6(float) Load 11(inF0) + 319: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 318 + Store 317(r057) 319 + 321: 6(float) Load 11(inF0) + 322: 6(float) Load 12(inF1) + 323: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 321 322 + Store 320(r058) 323 + 325: 6(float) Load 11(inF0) + 326: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 325 + Store 324(r059) 326 + 328: 6(float) Load 11(inF0) + 329: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 328 + Store 327(r060) 329 + 331: 6(float) Load 11(inF0) + 332: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 331 + Store 330(r061) 332 + ReturnValue 175 + FunctionEnd +22(PixelShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 + 19(inF0): 7(ptr) FunctionParameter + 20(inF1): 7(ptr) FunctionParameter + 21(inF2): 7(ptr) FunctionParameter + 23: Label + ReturnValue 175 + FunctionEnd +34(PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 + 29(inF0): 25(ptr) FunctionParameter + 30(inF1): 25(ptr) FunctionParameter + 31(inF2): 25(ptr) FunctionParameter + 32(inU0): 27(ptr) FunctionParameter + 33(inU1): 27(ptr) FunctionParameter + 35: Label + 337(r000): 132(ptr) Variable Function + 340(r001): 25(ptr) Variable Function + 343(r002): 25(ptr) Variable Function + 346(r003): 132(ptr) Variable Function + 349(r004): 25(ptr) Variable Function + 354(r005): 353(ptr) Variable Function + 357(r006): 27(ptr) Variable Function + 360(r007): 25(ptr) Variable Function + 363(r009): 25(ptr) Variable Function + 366(r010): 25(ptr) Variable Function + 370(r011): 25(ptr) Variable Function + 373(r012): 25(ptr) Variable Function + 386(r013): 25(ptr) Variable Function + 389(r015): 25(ptr) Variable Function + 392(r016): 353(ptr) Variable Function + 396(r017): 25(ptr) Variable Function + 399(r018): 25(ptr) Variable Function + 402(r019): 25(ptr) Variable Function + 405(r020): 25(ptr) Variable Function + 408(r021): 25(ptr) Variable Function + 411(r022): 25(ptr) Variable Function + 414(r023): 25(ptr) Variable Function + 417(r026): 7(ptr) Variable Function + 421(r027): 7(ptr) Variable Function + 425(r028): 25(ptr) Variable Function + 428(r029): 25(ptr) Variable Function + 431(r030): 25(ptr) Variable Function + 436(r031): 27(ptr) Variable Function + 441(r032): 27(ptr) Variable Function + 443(r033): 25(ptr) Variable Function + 446(r035): 25(ptr) Variable Function + 450(r036): 25(ptr) Variable Function + 453(r037): 25(ptr) Variable Function + 459(r038): 25(ptr) Variable Function + 463(r039): 462(ptr) Variable Function + 466(r040): 462(ptr) Variable Function + 469(r041): 25(ptr) Variable Function + 473(r039a): 25(ptr) Variable Function + 478(r042): 7(ptr) Variable Function + 481(r043): 25(ptr) Variable Function + 484(r044): 25(ptr) Variable Function + 488(r045): 25(ptr) Variable Function + 491(r046): 25(ptr) Variable Function + 495(r047): 25(ptr) Variable Function + 499(r048): 25(ptr) Variable Function + 502(r049): 25(ptr) Variable Function + 506(r050): 25(ptr) Variable Function + 509(r051): 25(ptr) Variable Function + 513(r052): 25(ptr) Variable Function + 517(r053): 25(ptr) Variable Function + 522(r054): 27(ptr) Variable Function + 527(r055): 25(ptr) Variable Function + 530(r056): 25(ptr) Variable Function + 533(r057): 25(ptr) Variable Function + 538(r058): 25(ptr) Variable Function + 541(r059): 25(ptr) Variable Function + 548(r060): 25(ptr) Variable Function + 551(r061): 25(ptr) Variable Function + 556(r062): 25(ptr) Variable Function + 559(r063): 25(ptr) Variable Function + 563(r064): 25(ptr) Variable Function + 566(r065): 25(ptr) Variable Function + 569(r066): 25(ptr) Variable Function + 338: 24(fvec2) Load 29(inF0) + 339: 131(bool) All 338 + Store 337(r000) 339 + 341: 24(fvec2) Load 29(inF0) + 342: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 341 + Store 340(r001) 342 + 344: 24(fvec2) Load 29(inF0) + 345: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 344 + Store 343(r002) 345 + 347: 24(fvec2) Load 29(inF0) + 348: 131(bool) Any 347 + Store 346(r003) 348 + 350: 24(fvec2) Load 29(inF0) + 351: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 350 + Store 349(r004) 351 + 355: 24(fvec2) Load 29(inF0) + 356: 352(ivec2) Bitcast 355 + Store 354(r005) 356 + 358: 24(fvec2) Load 29(inF0) + 359: 26(ivec2) Bitcast 358 + Store 357(r006) 359 + 361: 26(ivec2) Load 32(inU0) + 362: 24(fvec2) Bitcast 361 + Store 360(r007) 362 + 364: 24(fvec2) Load 29(inF0) + 365: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 364 + Store 363(r009) 365 + 367: 24(fvec2) Load 29(inF0) + 368: 24(fvec2) Load 30(inF1) + 369: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 367 368 + Store 366(r010) 369 + 371: 24(fvec2) Load 29(inF0) + 372: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 371 + Store 370(r011) 372 + 374: 24(fvec2) Load 29(inF0) + 375: 24(fvec2) Load 30(inF1) + 376: 24(fvec2) Load 31(inF2) + 377: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 374 375 376 + Store 373(r012) 377 + 378: 24(fvec2) Load 29(inF0) + 381: 380(bvec2) FOrdLessThan 378 379 + 382: 131(bool) Any 381 + SelectionMerge 384 None + BranchConditional 382 383 384 + 383: Label + Kill + 384: Label + 387: 24(fvec2) Load 29(inF0) + 388: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 387 + Store 386(r013) 388 + 390: 24(fvec2) Load 29(inF0) + 391: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 390 + Store 389(r015) 391 + 395: 352(ivec2) BitCount 394 + Store 392(r016) 395 + 397: 24(fvec2) Load 29(inF0) + 398: 24(fvec2) DPdx 397 + Store 396(r017) 398 + 400: 24(fvec2) Load 29(inF0) + 401: 24(fvec2) DPdxCoarse 400 + Store 399(r018) 401 + 403: 24(fvec2) Load 29(inF0) + 404: 24(fvec2) DPdxFine 403 + Store 402(r019) 404 + 406: 24(fvec2) Load 29(inF0) + 407: 24(fvec2) DPdy 406 + Store 405(r020) 407 + 409: 24(fvec2) Load 29(inF0) + 410: 24(fvec2) DPdyCoarse 409 + Store 408(r021) 410 + 412: 24(fvec2) Load 29(inF0) + 413: 24(fvec2) DPdyFine 412 + Store 411(r022) 413 + 415: 24(fvec2) Load 29(inF0) + 416: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 415 + Store 414(r023) 416 + 418: 24(fvec2) Load 29(inF0) + 419: 24(fvec2) Load 30(inF1) + 420: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 418 419 + Store 417(r026) 420 + 422: 24(fvec2) Load 29(inF0) + 423: 24(fvec2) Load 30(inF1) + 424: 6(float) Dot 422 423 + Store 421(r027) 424 + 426: 24(fvec2) Load 29(inF0) + 427: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 426 + Store 425(r028) 427 + 429: 24(fvec2) Load 29(inF0) + 430: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 429 + Store 428(r029) 430 + 432: 24(fvec2) Load 29(inF0) + 433: 24(fvec2) Load 30(inF1) + 434: 24(fvec2) Load 31(inF2) + 435: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 432 433 434 + Store 431(r030) 435 + 440: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 439 + Store 436(r031) 440 + 442: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 439 + Store 441(r032) 442 + 444: 24(fvec2) Load 29(inF0) + 445: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 444 + Store 443(r033) 445 + 447: 24(fvec2) Load 29(inF0) + 448: 24(fvec2) Load 30(inF1) + 449: 24(fvec2) FMod 447 448 + Store 446(r035) 449 + 451: 24(fvec2) Load 29(inF0) + 452: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 451 + Store 450(r036) 452 + 454: 24(fvec2) Load 29(inF0) + 456:455(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 454 + 457: 352(ivec2) CompositeExtract 456 1 + Store 30(inF1) 457 + 458: 24(fvec2) CompositeExtract 456 0 + Store 453(r037) 458 + 460: 24(fvec2) Load 29(inF0) + 461: 24(fvec2) Fwidth 460 + Store 459(r038) 461 + 464: 24(fvec2) Load 29(inF0) + 465: 380(bvec2) IsInf 464 + Store 463(r039) 465 + 467: 24(fvec2) Load 29(inF0) + 468: 380(bvec2) IsNan 467 + Store 466(r040) 468 + 470: 24(fvec2) Load 29(inF0) + 471: 24(fvec2) Load 30(inF1) + 472: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 470 471 + Store 469(r041) 472 + 474: 24(fvec2) Load 29(inF0) + 475: 24(fvec2) Load 30(inF1) + 476: 24(fvec2) Load 31(inF2) + 477: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 474 475 476 + Store 473(r039a) 477 + 479: 24(fvec2) Load 29(inF0) + 480: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 479 + Store 478(r042) 480 + 482: 24(fvec2) Load 29(inF0) + 483: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 482 + Store 481(r043) 483 + 485: 24(fvec2) Load 29(inF0) + 486: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 485 + 487: 24(fvec2) VectorTimesScalar 486 262 + Store 484(r044) 487 + 489: 24(fvec2) Load 29(inF0) + 490: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 489 + Store 488(r045) 490 + 492: 24(fvec2) Load 29(inF0) + 493: 24(fvec2) Load 30(inF1) + 494: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 492 493 + Store 491(r046) 494 + 496: 24(fvec2) Load 29(inF0) + 497: 24(fvec2) Load 30(inF1) + 498: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 496 497 + Store 495(r047) 498 + 500: 24(fvec2) Load 29(inF0) + 501: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 500 + Store 499(r048) 501 + 503: 24(fvec2) Load 29(inF0) + 504: 24(fvec2) Load 30(inF1) + 505: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 503 504 + Store 502(r049) 505 + 507: 24(fvec2) Load 29(inF0) + 508: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 507 + Store 506(r050) 508 + 510: 24(fvec2) Load 29(inF0) + 511: 24(fvec2) CompositeConstruct 283 283 + 512: 24(fvec2) FDiv 511 510 + Store 509(r051) 512 + 514: 24(fvec2) Load 29(inF0) + 515: 24(fvec2) Load 30(inF1) + 516: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 514 515 + Store 513(r052) 516 + 518: 24(fvec2) Load 29(inF0) + 519: 24(fvec2) Load 30(inF1) + 521: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 518 519 520 + Store 517(r053) 521 + 526: 26(ivec2) BitReverse 525 + Store 522(r054) 526 + 528: 24(fvec2) Load 29(inF0) + 529: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 528 + Store 527(r055) 529 + 531: 24(fvec2) Load 29(inF0) + 532: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 531 + Store 530(r056) 532 + 534: 24(fvec2) Load 29(inF0) + 535: 24(fvec2) CompositeConstruct 175 175 + 536: 24(fvec2) CompositeConstruct 283 283 + 537: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 534 535 536 + Store 533(r057) 537 + 539: 24(fvec2) Load 29(inF0) + 540: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 539 + Store 538(r058) 540 + 542: 24(fvec2) Load 29(inF0) + 543: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 542 + Store 541(r059) 543 + 544: 24(fvec2) Load 29(inF0) + 545: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 544 + Store 30(inF1) 545 + 546: 24(fvec2) Load 29(inF0) + 547: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 546 + Store 31(inF2) 547 + 549: 24(fvec2) Load 29(inF0) + 550: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 549 + Store 548(r060) 550 + 552: 24(fvec2) Load 29(inF0) + 553: 24(fvec2) Load 30(inF1) + 554: 24(fvec2) Load 31(inF2) + 555: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 552 553 554 + Store 551(r061) 555 + 557: 24(fvec2) Load 29(inF0) + 558: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 557 + Store 556(r062) 558 + 560: 24(fvec2) Load 29(inF0) + 561: 24(fvec2) Load 30(inF1) + 562: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 560 561 + Store 559(r063) 562 + 564: 24(fvec2) Load 29(inF0) + 565: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 564 + Store 563(r064) 565 + 567: 24(fvec2) Load 29(inF0) + 568: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 567 + Store 566(r065) 568 + 570: 24(fvec2) Load 29(inF0) + 571: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 570 + Store 569(r066) 571 + ReturnValue 572 + FunctionEnd +46(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 + 41(inF0): 37(ptr) FunctionParameter + 42(inF1): 37(ptr) FunctionParameter + 43(inF2): 37(ptr) FunctionParameter + 44(inU0): 39(ptr) FunctionParameter + 45(inU1): 39(ptr) FunctionParameter + 47: Label + 575(r000): 132(ptr) Variable Function + 578(r001): 37(ptr) Variable Function + 581(r002): 37(ptr) Variable Function + 584(r003): 132(ptr) Variable Function + 587(r004): 37(ptr) Variable Function + 592(r005): 591(ptr) Variable Function + 595(r006): 39(ptr) Variable Function + 598(r007): 37(ptr) Variable Function + 601(r009): 37(ptr) Variable Function + 604(r010): 37(ptr) Variable Function + 608(r011): 37(ptr) Variable Function + 611(r012): 37(ptr) Variable Function + 624(r013): 37(ptr) Variable Function + 627(r014): 37(ptr) Variable Function + 630(r015): 39(ptr) Variable Function + 635(r016): 37(ptr) Variable Function + 639(r017): 37(ptr) Variable Function + 642(r018): 37(ptr) Variable Function + 645(r019): 37(ptr) Variable Function + 648(r020): 37(ptr) Variable Function + 651(r021): 37(ptr) Variable Function + 654(r022): 37(ptr) Variable Function + 657(r023): 37(ptr) Variable Function + 660(r024): 7(ptr) Variable Function + 664(r025): 7(ptr) Variable Function + 668(r029): 37(ptr) Variable Function + 671(r030): 37(ptr) Variable Function + 674(r031): 37(ptr) Variable Function + 679(r032): 39(ptr) Variable Function + 683(r033): 39(ptr) Variable Function + 685(r034): 37(ptr) Variable Function + 688(r036): 37(ptr) Variable Function + 692(r037): 37(ptr) Variable Function + 695(r038): 37(ptr) Variable Function + 701(r039): 37(ptr) Variable Function + 705(r040): 704(ptr) Variable Function + 708(r041): 704(ptr) Variable Function + 711(r042): 37(ptr) Variable Function + 715(r039a): 37(ptr) Variable Function + 720(r039b): 37(ptr) Variable Function + 726(r043): 7(ptr) Variable Function + 729(r044): 37(ptr) Variable Function + 732(r045): 37(ptr) Variable Function + 736(r046): 37(ptr) Variable Function + 739(r047): 37(ptr) Variable Function + 743(r048): 37(ptr) Variable Function + 747(r049): 37(ptr) Variable Function + 750(r050): 37(ptr) Variable Function + 754(r051): 37(ptr) Variable Function + 757(r052): 37(ptr) Variable Function + 761(r053): 37(ptr) Variable Function + 765(r054): 37(ptr) Variable Function + 769(r055): 39(ptr) Variable Function + 772(r056): 37(ptr) Variable Function + 775(r057): 37(ptr) Variable Function + 778(r058): 37(ptr) Variable Function + 783(r059): 37(ptr) Variable Function + 786(r060): 37(ptr) Variable Function + 793(r061): 37(ptr) Variable Function + 796(r062): 37(ptr) Variable Function + 801(r063): 37(ptr) Variable Function + 804(r064): 37(ptr) Variable Function + 808(r065): 37(ptr) Variable Function + 811(r066): 37(ptr) Variable Function + 814(r067): 37(ptr) Variable Function + 576: 36(fvec3) Load 41(inF0) + 577: 131(bool) All 576 + Store 575(r000) 577 + 579: 36(fvec3) Load 41(inF0) + 580: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 579 + Store 578(r001) 580 + 582: 36(fvec3) Load 41(inF0) + 583: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 582 + Store 581(r002) 583 + 585: 36(fvec3) Load 41(inF0) + 586: 131(bool) Any 585 + Store 584(r003) 586 + 588: 36(fvec3) Load 41(inF0) + 589: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 588 + Store 587(r004) 589 + 593: 36(fvec3) Load 41(inF0) + 594: 590(ivec3) Bitcast 593 + Store 592(r005) 594 + 596: 36(fvec3) Load 41(inF0) + 597: 38(ivec3) Bitcast 596 + Store 595(r006) 597 + 599: 38(ivec3) Load 44(inU0) + 600: 36(fvec3) Bitcast 599 + Store 598(r007) 600 + 602: 36(fvec3) Load 41(inF0) + 603: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 602 + Store 601(r009) 603 + 605: 36(fvec3) Load 41(inF0) + 606: 36(fvec3) Load 42(inF1) + 607: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 605 606 + Store 604(r010) 607 + 609: 36(fvec3) Load 41(inF0) + 610: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 609 + Store 608(r011) 610 + 612: 36(fvec3) Load 41(inF0) + 613: 36(fvec3) Load 42(inF1) + 614: 36(fvec3) Load 43(inF2) + 615: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 612 613 614 + Store 611(r012) 615 + 616: 36(fvec3) Load 41(inF0) + 619: 618(bvec3) FOrdLessThan 616 617 + 620: 131(bool) Any 619 + SelectionMerge 622 None + BranchConditional 620 621 622 + 621: Label + Kill + 622: Label + 625: 36(fvec3) Load 41(inF0) + 626: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 625 + Store 624(r013) 626 + 628: 36(fvec3) Load 41(inF0) + 629: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 628 + Store 627(r014) 629 + 634: 38(ivec3) BitCount 633 + Store 630(r015) 634 + 636: 36(fvec3) Load 41(inF0) + 637: 36(fvec3) Load 42(inF1) + 638: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 636 637 + Store 635(r016) 638 + 640: 36(fvec3) Load 41(inF0) + 641: 36(fvec3) DPdx 640 + Store 639(r017) 641 + 643: 36(fvec3) Load 41(inF0) + 644: 36(fvec3) DPdxCoarse 643 + Store 642(r018) 644 + 646: 36(fvec3) Load 41(inF0) + 647: 36(fvec3) DPdxFine 646 + Store 645(r019) 647 + 649: 36(fvec3) Load 41(inF0) + 650: 36(fvec3) DPdy 649 + Store 648(r020) 650 + 652: 36(fvec3) Load 41(inF0) + 653: 36(fvec3) DPdyCoarse 652 + Store 651(r021) 653 + 655: 36(fvec3) Load 41(inF0) + 656: 36(fvec3) DPdyFine 655 + Store 654(r022) 656 + 658: 36(fvec3) Load 41(inF0) + 659: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 658 + Store 657(r023) 659 + 661: 36(fvec3) Load 41(inF0) + 662: 36(fvec3) Load 42(inF1) + 663: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 661 662 + Store 660(r024) 663 + 665: 36(fvec3) Load 41(inF0) + 666: 36(fvec3) Load 42(inF1) + 667: 6(float) Dot 665 666 + Store 664(r025) 667 + 669: 36(fvec3) Load 41(inF0) + 670: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 669 + Store 668(r029) 670 + 672: 36(fvec3) Load 41(inF0) + 673: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 672 + Store 671(r030) 673 + 675: 36(fvec3) Load 41(inF0) + 676: 36(fvec3) Load 42(inF1) + 677: 36(fvec3) Load 43(inF2) + 678: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 + Store 674(r031) 678 + 682: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 681 + Store 679(r032) 682 + 684: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 681 + Store 683(r033) 684 + 686: 36(fvec3) Load 41(inF0) + 687: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 686 + Store 685(r034) 687 + 689: 36(fvec3) Load 41(inF0) + 690: 36(fvec3) Load 42(inF1) + 691: 36(fvec3) FMod 689 690 + Store 688(r036) 691 + 693: 36(fvec3) Load 41(inF0) + 694: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 693 + Store 692(r037) 694 + 696: 36(fvec3) Load 41(inF0) + 698:697(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 696 + 699: 590(ivec3) CompositeExtract 698 1 + Store 42(inF1) 699 + 700: 36(fvec3) CompositeExtract 698 0 + Store 695(r038) 700 + 702: 36(fvec3) Load 41(inF0) + 703: 36(fvec3) Fwidth 702 + Store 701(r039) 703 + 706: 36(fvec3) Load 41(inF0) + 707: 618(bvec3) IsInf 706 + Store 705(r040) 707 + 709: 36(fvec3) Load 41(inF0) + 710: 618(bvec3) IsNan 709 + Store 708(r041) 710 + 712: 36(fvec3) Load 41(inF0) + 713: 36(fvec3) Load 42(inF1) + 714: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 712 713 + Store 711(r042) 714 + 716: 36(fvec3) Load 41(inF0) + 717: 36(fvec3) Load 42(inF1) + 718: 36(fvec3) Load 43(inF2) + 719: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 716 717 718 + Store 715(r039a) 719 + 721: 36(fvec3) Load 41(inF0) + 722: 36(fvec3) Load 42(inF1) + 724: 36(fvec3) CompositeConstruct 723 723 723 + 725: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 721 722 724 + Store 720(r039b) 725 + 727: 36(fvec3) Load 41(inF0) + 728: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 727 + Store 726(r043) 728 + 730: 36(fvec3) Load 41(inF0) + 731: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 730 + Store 729(r044) 731 + 733: 36(fvec3) Load 41(inF0) + 734: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 733 + 735: 36(fvec3) VectorTimesScalar 734 262 + Store 732(r045) 735 + 737: 36(fvec3) Load 41(inF0) + 738: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 737 + Store 736(r046) 738 + 740: 36(fvec3) Load 41(inF0) + 741: 36(fvec3) Load 42(inF1) + 742: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 740 741 + Store 739(r047) 742 + 744: 36(fvec3) Load 41(inF0) + 745: 36(fvec3) Load 42(inF1) + 746: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 744 745 + Store 743(r048) 746 + 748: 36(fvec3) Load 41(inF0) + 749: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 748 + Store 747(r049) 749 + 751: 36(fvec3) Load 41(inF0) + 752: 36(fvec3) Load 42(inF1) + 753: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 751 752 + Store 750(r050) 753 + 755: 36(fvec3) Load 41(inF0) + 756: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 755 + Store 754(r051) 756 + 758: 36(fvec3) Load 41(inF0) + 759: 36(fvec3) CompositeConstruct 283 283 283 + 760: 36(fvec3) FDiv 759 758 + Store 757(r052) 760 + 762: 36(fvec3) Load 41(inF0) + 763: 36(fvec3) Load 42(inF1) + 764: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 762 763 + Store 761(r053) 764 + 766: 36(fvec3) Load 41(inF0) + 767: 36(fvec3) Load 42(inF1) + 768: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 766 767 520 + Store 765(r054) 768 + 771: 38(ivec3) BitReverse 770 + Store 769(r055) 771 + 773: 36(fvec3) Load 41(inF0) + 774: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 773 + Store 772(r056) 774 + 776: 36(fvec3) Load 41(inF0) + 777: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 776 + Store 775(r057) 777 + 779: 36(fvec3) Load 41(inF0) + 780: 36(fvec3) CompositeConstruct 175 175 175 + 781: 36(fvec3) CompositeConstruct 283 283 283 + 782: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 779 780 781 + Store 778(r058) 782 + 784: 36(fvec3) Load 41(inF0) + 785: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 784 + Store 783(r059) 785 + 787: 36(fvec3) Load 41(inF0) + 788: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 787 + Store 786(r060) 788 + 789: 36(fvec3) Load 41(inF0) + 790: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 789 + Store 42(inF1) 790 + 791: 36(fvec3) Load 41(inF0) + 792: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 791 + Store 43(inF2) 792 + 794: 36(fvec3) Load 41(inF0) + 795: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 794 + Store 793(r061) 795 + 797: 36(fvec3) Load 41(inF0) + 798: 36(fvec3) Load 42(inF1) + 799: 36(fvec3) Load 43(inF2) + 800: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 797 798 799 + Store 796(r062) 800 + 802: 36(fvec3) Load 41(inF0) + 803: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 802 + Store 801(r063) 803 + 805: 36(fvec3) Load 41(inF0) + 806: 36(fvec3) Load 42(inF1) + 807: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 805 806 + Store 804(r064) 807 + 809: 36(fvec3) Load 41(inF0) + 810: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 809 + Store 808(r065) 810 + 812: 36(fvec3) Load 41(inF0) + 813: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 812 + Store 811(r066) 813 + 815: 36(fvec3) Load 41(inF0) + 816: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 815 + Store 814(r067) 816 + ReturnValue 818 + FunctionEnd +58(PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 + 53(inF0): 49(ptr) FunctionParameter + 54(inF1): 49(ptr) FunctionParameter + 55(inF2): 49(ptr) FunctionParameter + 56(inU0): 51(ptr) FunctionParameter + 57(inU1): 51(ptr) FunctionParameter + 59: Label + 821(r000): 132(ptr) Variable Function + 824(r001): 49(ptr) Variable Function + 827(r002): 49(ptr) Variable Function + 830(r003): 132(ptr) Variable Function + 833(r004): 49(ptr) Variable Function + 838(r005): 837(ptr) Variable Function + 841(r006): 51(ptr) Variable Function + 844(r007): 49(ptr) Variable Function + 847(r009): 49(ptr) Variable Function + 850(r010): 49(ptr) Variable Function + 854(r011): 49(ptr) Variable Function + 857(r012): 49(ptr) Variable Function + 870(r013): 49(ptr) Variable Function + 873(r014): 49(ptr) Variable Function + 876(r015): 51(ptr) Variable Function + 879(r016): 49(ptr) Variable Function + 882(r017): 49(ptr) Variable Function + 885(r018): 49(ptr) Variable Function + 888(r019): 49(ptr) Variable Function + 891(r020): 49(ptr) Variable Function + 894(r021): 49(ptr) Variable Function + 897(r022): 49(ptr) Variable Function + 900(r023): 7(ptr) Variable Function + 904(r024): 7(ptr) Variable Function + 908(r025): 49(ptr) Variable Function + 919(r029): 49(ptr) Variable Function + 922(r030): 49(ptr) Variable Function + 925(r031): 49(ptr) Variable Function + 930(r032): 51(ptr) Variable Function + 935(r033): 51(ptr) Variable Function + 937(r034): 49(ptr) Variable Function + 940(r036): 49(ptr) Variable Function + 944(r037): 49(ptr) Variable Function + 947(r038): 49(ptr) Variable Function + 953(r039): 49(ptr) Variable Function + 957(r040): 956(ptr) Variable Function + 960(r041): 956(ptr) Variable Function + 963(r042): 49(ptr) Variable Function + 967(r039a): 49(ptr) Variable Function + 972(r043): 7(ptr) Variable Function + 975(r044): 49(ptr) Variable Function + 978(r045): 49(ptr) Variable Function + 982(r046): 49(ptr) Variable Function + 985(r047): 49(ptr) Variable Function + 989(r048): 49(ptr) Variable Function + 993(r049): 49(ptr) Variable Function + 996(r050): 49(ptr) Variable Function + 1000(r051): 49(ptr) Variable Function + 1003(r052): 49(ptr) Variable Function + 1007(r053): 49(ptr) Variable Function + 1011(r054): 49(ptr) Variable Function + 1015(r055): 51(ptr) Variable Function + 1018(r056): 49(ptr) Variable Function + 1021(r057): 49(ptr) Variable Function + 1024(r058): 49(ptr) Variable Function + 1029(r059): 49(ptr) Variable Function + 1032(r060): 49(ptr) Variable Function + 1039(r061): 49(ptr) Variable Function + 1042(r062): 49(ptr) Variable Function + 1047(r063): 49(ptr) Variable Function + 1050(r064): 49(ptr) Variable Function + 1054(r065): 49(ptr) Variable Function + 1057(r066): 49(ptr) Variable Function + 1060(r067): 49(ptr) Variable Function + 822: 48(fvec4) Load 53(inF0) + 823: 131(bool) All 822 + Store 821(r000) 823 + 825: 48(fvec4) Load 53(inF0) + 826: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 825 + Store 824(r001) 826 + 828: 48(fvec4) Load 53(inF0) + 829: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 828 + Store 827(r002) 829 + 831: 48(fvec4) Load 53(inF0) + 832: 131(bool) Any 831 + Store 830(r003) 832 + 834: 48(fvec4) Load 53(inF0) + 835: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 834 + Store 833(r004) 835 + 839: 48(fvec4) Load 53(inF0) + 840: 836(ivec4) Bitcast 839 + Store 838(r005) 840 + 842: 48(fvec4) Load 53(inF0) + 843: 50(ivec4) Bitcast 842 + Store 841(r006) 843 + 845: 50(ivec4) Load 56(inU0) + 846: 48(fvec4) Bitcast 845 + Store 844(r007) 846 + 848: 48(fvec4) Load 53(inF0) + 849: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 848 + Store 847(r009) 849 + 851: 48(fvec4) Load 53(inF0) + 852: 48(fvec4) Load 54(inF1) + 853: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 851 852 + Store 850(r010) 853 + 855: 48(fvec4) Load 53(inF0) + 856: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 855 + Store 854(r011) 856 + 858: 48(fvec4) Load 53(inF0) + 859: 48(fvec4) Load 54(inF1) + 860: 48(fvec4) Load 55(inF2) + 861: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 858 859 860 + Store 857(r012) 861 + 862: 48(fvec4) Load 53(inF0) + 865: 864(bvec4) FOrdLessThan 862 863 + 866: 131(bool) Any 865 + SelectionMerge 868 None + BranchConditional 866 867 868 + 867: Label + Kill + 868: Label + 871: 48(fvec4) Load 53(inF0) + 872: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 871 + Store 870(r013) 872 + 874: 48(fvec4) Load 53(inF0) + 875: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 874 + Store 873(r014) 875 + 878: 50(ivec4) BitCount 877 + Store 876(r015) 878 + 880: 48(fvec4) Load 53(inF0) + 881: 48(fvec4) DPdx 880 + Store 879(r016) 881 + 883: 48(fvec4) Load 53(inF0) + 884: 48(fvec4) DPdxCoarse 883 + Store 882(r017) 884 + 886: 48(fvec4) Load 53(inF0) + 887: 48(fvec4) DPdxFine 886 + Store 885(r018) 887 + 889: 48(fvec4) Load 53(inF0) + 890: 48(fvec4) DPdy 889 + Store 888(r019) 890 + 892: 48(fvec4) Load 53(inF0) + 893: 48(fvec4) DPdyCoarse 892 + Store 891(r020) 893 + 895: 48(fvec4) Load 53(inF0) + 896: 48(fvec4) DPdyFine 895 + Store 894(r021) 896 + 898: 48(fvec4) Load 53(inF0) + 899: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 898 + Store 897(r022) 899 + 901: 48(fvec4) Load 53(inF0) + 902: 48(fvec4) Load 54(inF1) + 903: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 901 902 + Store 900(r023) 903 + 905: 48(fvec4) Load 53(inF0) + 906: 48(fvec4) Load 54(inF1) + 907: 6(float) Dot 905 906 + Store 904(r024) 907 + 909: 7(ptr) AccessChain 53(inF0) 523 + 910: 6(float) Load 909 + 911: 7(ptr) AccessChain 54(inF1) 523 + 912: 6(float) Load 911 + 913: 6(float) FMul 910 912 + 914: 7(ptr) AccessChain 53(inF0) 524 + 915: 6(float) Load 914 + 916: 7(ptr) AccessChain 54(inF1) 631 + 917: 6(float) Load 916 + 918: 48(fvec4) CompositeConstruct 283 913 915 917 + Store 908(r025) 918 + 920: 48(fvec4) Load 53(inF0) + 921: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 920 + Store 919(r029) 921 + 923: 48(fvec4) Load 53(inF0) + 924: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 923 + Store 922(r030) 924 + 926: 48(fvec4) Load 53(inF0) + 927: 48(fvec4) Load 54(inF1) + 928: 48(fvec4) Load 55(inF2) + 929: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 926 927 928 + Store 925(r031) 929 + 934: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 933 + Store 930(r032) 934 + 936: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 933 + Store 935(r033) 936 + 938: 48(fvec4) Load 53(inF0) + 939: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 938 + Store 937(r034) 939 + 941: 48(fvec4) Load 53(inF0) + 942: 48(fvec4) Load 54(inF1) + 943: 48(fvec4) FMod 941 942 + Store 940(r036) 943 + 945: 48(fvec4) Load 53(inF0) + 946: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 945 + Store 944(r037) 946 + 948: 48(fvec4) Load 53(inF0) + 950:949(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 948 + 951: 836(ivec4) CompositeExtract 950 1 + Store 54(inF1) 951 + 952: 48(fvec4) CompositeExtract 950 0 + Store 947(r038) 952 + 954: 48(fvec4) Load 53(inF0) + 955: 48(fvec4) Fwidth 954 + Store 953(r039) 955 + 958: 48(fvec4) Load 53(inF0) + 959: 864(bvec4) IsInf 958 + Store 957(r040) 959 + 961: 48(fvec4) Load 53(inF0) + 962: 864(bvec4) IsNan 961 + Store 960(r041) 962 + 964: 48(fvec4) Load 53(inF0) + 965: 48(fvec4) Load 54(inF1) + 966: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 964 965 + Store 963(r042) 966 + 968: 48(fvec4) Load 53(inF0) + 969: 48(fvec4) Load 54(inF1) + 970: 48(fvec4) Load 55(inF2) + 971: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 968 969 970 + Store 967(r039a) 971 + 973: 48(fvec4) Load 53(inF0) + 974: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 973 + Store 972(r043) 974 + 976: 48(fvec4) Load 53(inF0) + 977: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 976 + Store 975(r044) 977 + 979: 48(fvec4) Load 53(inF0) + 980: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979 + 981: 48(fvec4) VectorTimesScalar 980 262 + Store 978(r045) 981 + 983: 48(fvec4) Load 53(inF0) + 984: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 983 + Store 982(r046) 984 + 986: 48(fvec4) Load 53(inF0) + 987: 48(fvec4) Load 54(inF1) + 988: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 986 987 + Store 985(r047) 988 + 990: 48(fvec4) Load 53(inF0) + 991: 48(fvec4) Load 54(inF1) + 992: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 990 991 + Store 989(r048) 992 + 994: 48(fvec4) Load 53(inF0) + 995: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 994 + Store 993(r049) 995 + 997: 48(fvec4) Load 53(inF0) + 998: 48(fvec4) Load 54(inF1) + 999: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 997 998 + Store 996(r050) 999 + 1001: 48(fvec4) Load 53(inF0) + 1002: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1001 + Store 1000(r051) 1002 + 1004: 48(fvec4) Load 53(inF0) + 1005: 48(fvec4) CompositeConstruct 283 283 283 283 + 1006: 48(fvec4) FDiv 1005 1004 + Store 1003(r052) 1006 + 1008: 48(fvec4) Load 53(inF0) + 1009: 48(fvec4) Load 54(inF1) + 1010: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1008 1009 + Store 1007(r053) 1010 + 1012: 48(fvec4) Load 53(inF0) + 1013: 48(fvec4) Load 54(inF1) + 1014: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1012 1013 520 + Store 1011(r054) 1014 + 1017: 50(ivec4) BitReverse 1016 + Store 1015(r055) 1017 + 1019: 48(fvec4) Load 53(inF0) + 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1019 + Store 1018(r056) 1020 + 1022: 48(fvec4) Load 53(inF0) + 1023: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1022 + Store 1021(r057) 1023 + 1025: 48(fvec4) Load 53(inF0) + 1026: 48(fvec4) CompositeConstruct 175 175 175 175 + 1027: 48(fvec4) CompositeConstruct 283 283 283 283 + 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1025 1026 1027 + Store 1024(r058) 1028 + 1030: 48(fvec4) Load 53(inF0) + 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1030 + Store 1029(r059) 1031 + 1033: 48(fvec4) Load 53(inF0) + 1034: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1033 + Store 1032(r060) 1034 + 1035: 48(fvec4) Load 53(inF0) + 1036: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1035 + Store 54(inF1) 1036 + 1037: 48(fvec4) Load 53(inF0) + 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1037 + Store 55(inF2) 1038 + 1040: 48(fvec4) Load 53(inF0) + 1041: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1040 + Store 1039(r061) 1041 + 1043: 48(fvec4) Load 53(inF0) + 1044: 48(fvec4) Load 54(inF1) + 1045: 48(fvec4) Load 55(inF2) + 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 + Store 1042(r062) 1046 + 1048: 48(fvec4) Load 53(inF0) + 1049: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1048 + Store 1047(r063) 1049 + 1051: 48(fvec4) Load 53(inF0) + 1052: 48(fvec4) Load 54(inF1) + 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1051 1052 + Store 1050(r064) 1053 + 1055: 48(fvec4) Load 53(inF0) + 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1055 + Store 1054(r065) 1056 + 1058: 48(fvec4) Load 53(inF0) + 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1058 + Store 1057(r066) 1059 + 1061: 48(fvec4) Load 53(inF0) + 1062: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1061 + Store 1060(r067) 1062 + ReturnValue 1064 + FunctionEnd +66(PixelShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 + 63(inF0): 61(ptr) FunctionParameter + 64(inF1): 61(ptr) FunctionParameter + 65(inF2): 61(ptr) FunctionParameter + 67: Label + 1067(r000): 132(ptr) Variable Function + 1070(r001): 61(ptr) Variable Function + 1075(r003): 132(ptr) Variable Function + 1078(r004): 61(ptr) Variable Function + 1081(r005): 61(ptr) Variable Function + 1084(r006): 61(ptr) Variable Function + 1088(r007): 61(ptr) Variable Function + 1099(r008): 61(ptr) Variable Function + 1104(r009): 61(ptr) Variable Function + 1107(r010): 61(ptr) Variable Function + 1110(r011): 61(ptr) Variable Function + 1113(r012): 61(ptr) Variable Function + 1116(r013): 61(ptr) Variable Function + 1119(r014): 61(ptr) Variable Function + 1122(r015): 61(ptr) Variable Function + 1125(r016): 61(ptr) Variable Function + 1128(r017): 61(ptr) Variable Function + 1131(r018): 7(ptr) Variable Function + 1134(r019): 61(ptr) Variable Function + 1137(R020): 61(ptr) Variable Function + 1140(r021): 61(ptr) Variable Function + 1143(r022): 61(ptr) Variable Function + 1153(r023): 61(ptr) Variable Function + 1156(r024): 61(ptr) Variable Function + 1162(r025): 61(ptr) Variable Function + 1165(r026): 61(ptr) Variable Function + 1169(r026a): 61(ptr) Variable Function + 1174(r027): 61(ptr) Variable Function + 1177(r028): 61(ptr) Variable Function + 1181(r029): 61(ptr) Variable Function + 1184(r030): 61(ptr) Variable Function + 1188(r031): 61(ptr) Variable Function + 1192(r032): 61(ptr) Variable Function + 1196(r033): 61(ptr) Variable Function + 1199(r034): 61(ptr) Variable Function + 1202(r035): 61(ptr) Variable Function + 1205(r036): 61(ptr) Variable Function + 1210(r037): 61(ptr) Variable Function + 1213(r038): 61(ptr) Variable Function + 1220(r039): 61(ptr) Variable Function + 1223(r049): 61(ptr) Variable Function + 1228(r041): 61(ptr) Variable Function + 1231(r042): 61(ptr) Variable Function + 1235(r043): 61(ptr) Variable Function + 1238(r044): 61(ptr) Variable Function + 1243(r046): 61(ptr) Variable Function + 1068: 60 Load 63(inF0) + 1069: 131(bool) All 1068 + Store 1067(r000) 1069 + 1071: 60 Load 63(inF0) + 1072: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1071 + Store 1070(r001) 1072 + 1073: 60 Load 63(inF0) + 1074: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1073 + 1076: 60 Load 63(inF0) + 1077: 131(bool) Any 1076 + Store 1075(r003) 1077 + 1079: 60 Load 63(inF0) + 1080: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1079 + Store 1078(r004) 1080 + 1082: 60 Load 63(inF0) + 1083: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1082 + Store 1081(r005) 1083 + 1085: 60 Load 63(inF0) + 1086: 60 Load 64(inF1) + 1087: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1085 1086 + Store 1084(r006) 1087 + 1089: 60 Load 63(inF0) + 1090: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1089 + Store 1088(r007) 1090 + 1091: 60 Load 63(inF0) + 1094: 1093 FOrdLessThan 1091 1092 + 1095: 131(bool) Any 1094 + SelectionMerge 1097 None + BranchConditional 1095 1096 1097 + 1096: Label + Kill + 1097: Label + 1100: 60 Load 63(inF0) + 1101: 60 Load 64(inF1) + 1102: 60 Load 65(inF2) + 1103: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1100 1101 1102 + Store 1099(r008) 1103 + 1105: 60 Load 63(inF0) + 1106: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1105 + Store 1104(r009) 1106 + 1108: 60 Load 63(inF0) + 1109: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1108 + Store 1107(r010) 1109 + 1111: 60 Load 63(inF0) + 1112: 60 DPdx 1111 + Store 1110(r011) 1112 + 1114: 60 Load 63(inF0) + 1115: 60 DPdxCoarse 1114 + Store 1113(r012) 1115 + 1117: 60 Load 63(inF0) + 1118: 60 DPdxFine 1117 + Store 1116(r013) 1118 + 1120: 60 Load 63(inF0) + 1121: 60 DPdy 1120 + Store 1119(r014) 1121 + 1123: 60 Load 63(inF0) + 1124: 60 DPdyCoarse 1123 + Store 1122(r015) 1124 + 1126: 60 Load 63(inF0) + 1127: 60 DPdyFine 1126 + Store 1125(r016) 1127 + 1129: 60 Load 63(inF0) + 1130: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1129 + Store 1128(r017) 1130 + 1132: 60 Load 63(inF0) + 1133: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1132 + Store 1131(r018) 1133 + 1135: 60 Load 63(inF0) + 1136: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1135 + Store 1134(r019) 1136 + 1138: 60 Load 63(inF0) + 1139: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1138 + Store 1137(R020) 1139 + 1141: 60 Load 63(inF0) + 1142: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1141 + Store 1140(r021) 1142 + 1144: 60 Load 63(inF0) + 1145: 60 Load 64(inF1) + 1146: 24(fvec2) CompositeExtract 1144 0 + 1147: 24(fvec2) CompositeExtract 1145 0 + 1148: 24(fvec2) FMod 1146 1147 + 1149: 24(fvec2) CompositeExtract 1144 1 + 1150: 24(fvec2) CompositeExtract 1145 1 + 1151: 24(fvec2) FMod 1149 1150 + 1152: 60 CompositeConstruct 1148 1151 + Store 1143(r022) 1152 + 1154: 60 Load 63(inF0) + 1155: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1154 + Store 1153(r023) 1155 + 1157: 60 Load 63(inF0) + 1159:1158(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1157 + 1160: 352(ivec2) CompositeExtract 1159 1 + Store 64(inF1) 1160 + 1161: 60 CompositeExtract 1159 0 + Store 1156(r024) 1161 + 1163: 60 Load 63(inF0) + 1164: 60 Fwidth 1163 + Store 1162(r025) 1164 + 1166: 60 Load 63(inF0) + 1167: 60 Load 64(inF1) + 1168: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1166 1167 + Store 1165(r026) 1168 + 1170: 60 Load 63(inF0) + 1171: 60 Load 64(inF1) + 1172: 60 Load 65(inF2) + 1173: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1170 1171 1172 + Store 1169(r026a) 1173 + 1175: 60 Load 63(inF0) + 1176: 60 ExtInst 1(GLSL.std.450) 28(Log) 1175 + Store 1174(r027) 1176 + 1178: 60 Load 63(inF0) + 1179: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1178 + 1180: 60 MatrixTimesScalar 1179 262 + Store 1177(r028) 1180 + 1182: 60 Load 63(inF0) + 1183: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1182 + Store 1181(r029) 1183 + 1185: 60 Load 63(inF0) + 1186: 60 Load 64(inF1) + 1187: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1185 1186 + Store 1184(r030) 1187 + 1189: 60 Load 63(inF0) + 1190: 60 Load 64(inF1) + 1191: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1189 1190 + Store 1188(r031) 1191 + 1193: 60 Load 63(inF0) + 1194: 60 Load 64(inF1) + 1195: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1193 1194 + Store 1192(r032) 1195 + 1197: 60 Load 63(inF0) + 1198: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1197 + Store 1196(r033) 1198 + 1200: 60 Load 63(inF0) + 1201: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1200 + Store 1199(r034) 1201 + 1203: 60 Load 63(inF0) + 1204: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1203 + Store 1202(r035) 1204 + 1206: 60 Load 63(inF0) + 1207: 24(fvec2) CompositeConstruct 175 175 + 1208: 24(fvec2) CompositeConstruct 283 283 + 1209: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1206 1207 1208 + Store 1205(r036) 1209 + 1211: 60 Load 63(inF0) + 1212: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1211 + Store 1210(r037) 1212 + 1214: 60 Load 63(inF0) + 1215: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1214 + Store 1213(r038) 1215 + 1216: 60 Load 63(inF0) + 1217: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1216 + Store 64(inF1) 1217 + 1218: 60 Load 63(inF0) + 1219: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1218 + Store 65(inF2) 1219 + 1221: 60 Load 63(inF0) + 1222: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1221 + Store 1220(r039) 1222 + 1224: 60 Load 63(inF0) + 1225: 60 Load 64(inF1) + 1226: 60 Load 65(inF2) + 1227: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1224 1225 1226 + Store 1223(r049) 1227 + 1229: 60 Load 63(inF0) + 1230: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1229 + Store 1228(r041) 1230 + 1232: 60 Load 63(inF0) + 1233: 60 Load 64(inF1) + 1234: 60 ExtInst 1(GLSL.std.450) 48(Step) 1232 1233 + Store 1231(r042) 1234 + 1236: 60 Load 63(inF0) + 1237: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1236 + Store 1235(r043) 1237 + 1239: 60 Load 63(inF0) + 1240: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1239 + Store 1238(r044) 1240 + 1241: 60 Load 63(inF0) + 1242: 60 Transpose 1241 + 1244: 60 Load 63(inF0) + 1245: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1244 + Store 1243(r046) 1245 + ReturnValue 1247 + FunctionEnd +74(PixelShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 + 71(inF0): 69(ptr) FunctionParameter + 72(inF1): 69(ptr) FunctionParameter + 73(inF2): 69(ptr) FunctionParameter + 75: Label + 1250(r000): 132(ptr) Variable Function + 1253(r001): 69(ptr) Variable Function + 1258(r003): 132(ptr) Variable Function + 1261(r004): 69(ptr) Variable Function + 1264(r005): 69(ptr) Variable Function + 1267(r006): 69(ptr) Variable Function + 1271(r007): 69(ptr) Variable Function + 1282(r008): 69(ptr) Variable Function + 1287(r009): 69(ptr) Variable Function + 1290(r010): 69(ptr) Variable Function + 1293(r011): 69(ptr) Variable Function + 1296(r012): 69(ptr) Variable Function + 1299(r013): 69(ptr) Variable Function + 1302(r014): 69(ptr) Variable Function + 1305(r015): 69(ptr) Variable Function + 1308(r016): 69(ptr) Variable Function + 1311(r017): 69(ptr) Variable Function + 1314(r018): 7(ptr) Variable Function + 1317(r019): 69(ptr) Variable Function + 1320(R020): 69(ptr) Variable Function + 1323(r021): 69(ptr) Variable Function + 1326(r022): 69(ptr) Variable Function + 1339(r023): 69(ptr) Variable Function + 1342(r024): 69(ptr) Variable Function + 1348(r025): 69(ptr) Variable Function + 1351(r026): 69(ptr) Variable Function + 1355(r026a): 69(ptr) Variable Function + 1360(r027): 69(ptr) Variable Function + 1363(r028): 69(ptr) Variable Function + 1367(r029): 69(ptr) Variable Function + 1370(r030): 69(ptr) Variable Function + 1374(r031): 69(ptr) Variable Function + 1378(r032): 69(ptr) Variable Function + 1382(r033): 69(ptr) Variable Function + 1385(r034): 69(ptr) Variable Function + 1388(r035): 69(ptr) Variable Function + 1391(r036): 69(ptr) Variable Function + 1396(r037): 69(ptr) Variable Function + 1399(r038): 69(ptr) Variable Function + 1406(r039): 69(ptr) Variable Function + 1409(r049): 69(ptr) Variable Function + 1414(r041): 69(ptr) Variable Function + 1417(r042): 69(ptr) Variable Function + 1421(r043): 69(ptr) Variable Function + 1424(r044): 69(ptr) Variable Function + 1429(r046): 69(ptr) Variable Function + 1251: 68 Load 71(inF0) + 1252: 131(bool) All 1251 + Store 1250(r000) 1252 + 1254: 68 Load 71(inF0) + 1255: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1254 + Store 1253(r001) 1255 + 1256: 68 Load 71(inF0) + 1257: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1256 + 1259: 68 Load 71(inF0) + 1260: 131(bool) Any 1259 + Store 1258(r003) 1260 + 1262: 68 Load 71(inF0) + 1263: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1262 + Store 1261(r004) 1263 + 1265: 68 Load 71(inF0) + 1266: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1265 + Store 1264(r005) 1266 + 1268: 68 Load 71(inF0) + 1269: 68 Load 72(inF1) + 1270: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1268 1269 + Store 1267(r006) 1270 + 1272: 68 Load 71(inF0) + 1273: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1272 + Store 1271(r007) 1273 + 1274: 68 Load 71(inF0) + 1277: 1276 FOrdLessThan 1274 1275 + 1278: 131(bool) Any 1277 + SelectionMerge 1280 None + BranchConditional 1278 1279 1280 + 1279: Label + Kill + 1280: Label + 1283: 68 Load 71(inF0) + 1284: 68 Load 72(inF1) + 1285: 68 Load 73(inF2) + 1286: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1283 1284 1285 + Store 1282(r008) 1286 + 1288: 68 Load 71(inF0) + 1289: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1288 + Store 1287(r009) 1289 + 1291: 68 Load 71(inF0) + 1292: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1291 + Store 1290(r010) 1292 + 1294: 68 Load 71(inF0) + 1295: 68 DPdx 1294 + Store 1293(r011) 1295 + 1297: 68 Load 71(inF0) + 1298: 68 DPdxCoarse 1297 + Store 1296(r012) 1298 + 1300: 68 Load 71(inF0) + 1301: 68 DPdxFine 1300 + Store 1299(r013) 1301 + 1303: 68 Load 71(inF0) + 1304: 68 DPdy 1303 + Store 1302(r014) 1304 + 1306: 68 Load 71(inF0) + 1307: 68 DPdyCoarse 1306 + Store 1305(r015) 1307 + 1309: 68 Load 71(inF0) + 1310: 68 DPdyFine 1309 + Store 1308(r016) 1310 + 1312: 68 Load 71(inF0) + 1313: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1312 + Store 1311(r017) 1313 + 1315: 68 Load 71(inF0) + 1316: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1315 + Store 1314(r018) 1316 + 1318: 68 Load 71(inF0) + 1319: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1318 + Store 1317(r019) 1319 + 1321: 68 Load 71(inF0) + 1322: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1321 + Store 1320(R020) 1322 + 1324: 68 Load 71(inF0) + 1325: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1324 + Store 1323(r021) 1325 + 1327: 68 Load 71(inF0) + 1328: 68 Load 72(inF1) + 1329: 36(fvec3) CompositeExtract 1327 0 + 1330: 36(fvec3) CompositeExtract 1328 0 + 1331: 36(fvec3) FMod 1329 1330 + 1332: 36(fvec3) CompositeExtract 1327 1 + 1333: 36(fvec3) CompositeExtract 1328 1 + 1334: 36(fvec3) FMod 1332 1333 + 1335: 36(fvec3) CompositeExtract 1327 2 + 1336: 36(fvec3) CompositeExtract 1328 2 + 1337: 36(fvec3) FMod 1335 1336 + 1338: 68 CompositeConstruct 1331 1334 1337 + Store 1326(r022) 1338 + 1340: 68 Load 71(inF0) + 1341: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1340 + Store 1339(r023) 1341 + 1343: 68 Load 71(inF0) + 1345:1344(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1343 + 1346: 590(ivec3) CompositeExtract 1345 1 + Store 72(inF1) 1346 + 1347: 68 CompositeExtract 1345 0 + Store 1342(r024) 1347 + 1349: 68 Load 71(inF0) + 1350: 68 Fwidth 1349 + Store 1348(r025) 1350 + 1352: 68 Load 71(inF0) + 1353: 68 Load 72(inF1) + 1354: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1352 1353 + Store 1351(r026) 1354 + 1356: 68 Load 71(inF0) + 1357: 68 Load 72(inF1) + 1358: 68 Load 73(inF2) + 1359: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1356 1357 1358 + Store 1355(r026a) 1359 + 1361: 68 Load 71(inF0) + 1362: 68 ExtInst 1(GLSL.std.450) 28(Log) 1361 + Store 1360(r027) 1362 + 1364: 68 Load 71(inF0) + 1365: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1364 + 1366: 68 MatrixTimesScalar 1365 262 + Store 1363(r028) 1366 + 1368: 68 Load 71(inF0) + 1369: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1368 + Store 1367(r029) 1369 + 1371: 68 Load 71(inF0) + 1372: 68 Load 72(inF1) + 1373: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1371 1372 + Store 1370(r030) 1373 + 1375: 68 Load 71(inF0) + 1376: 68 Load 72(inF1) + 1377: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1375 1376 + Store 1374(r031) 1377 + 1379: 68 Load 71(inF0) + 1380: 68 Load 72(inF1) + 1381: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1379 1380 + Store 1378(r032) 1381 + 1383: 68 Load 71(inF0) + 1384: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1383 + Store 1382(r033) 1384 + 1386: 68 Load 71(inF0) + 1387: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1386 + Store 1385(r034) 1387 + 1389: 68 Load 71(inF0) + 1390: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1389 + Store 1388(r035) 1390 + 1392: 68 Load 71(inF0) + 1393: 36(fvec3) CompositeConstruct 175 175 175 + 1394: 36(fvec3) CompositeConstruct 283 283 283 + 1395: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1392 1393 1394 + Store 1391(r036) 1395 + 1397: 68 Load 71(inF0) + 1398: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1397 + Store 1396(r037) 1398 + 1400: 68 Load 71(inF0) + 1401: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1400 + Store 1399(r038) 1401 + 1402: 68 Load 71(inF0) + 1403: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1402 + Store 72(inF1) 1403 + 1404: 68 Load 71(inF0) + 1405: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1404 + Store 73(inF2) 1405 + 1407: 68 Load 71(inF0) + 1408: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1407 + Store 1406(r039) 1408 + 1410: 68 Load 71(inF0) + 1411: 68 Load 72(inF1) + 1412: 68 Load 73(inF2) + 1413: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1410 1411 1412 + Store 1409(r049) 1413 + 1415: 68 Load 71(inF0) + 1416: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1415 + Store 1414(r041) 1416 + 1418: 68 Load 71(inF0) + 1419: 68 Load 72(inF1) + 1420: 68 ExtInst 1(GLSL.std.450) 48(Step) 1418 1419 + Store 1417(r042) 1420 + 1422: 68 Load 71(inF0) + 1423: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1422 + Store 1421(r043) 1423 + 1425: 68 Load 71(inF0) + 1426: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1425 + Store 1424(r044) 1426 + 1427: 68 Load 71(inF0) + 1428: 68 Transpose 1427 + 1430: 68 Load 71(inF0) + 1431: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1430 + Store 1429(r046) 1431 + ReturnValue 1433 + FunctionEnd +82(PixelShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 + 79(inF0): 77(ptr) FunctionParameter + 80(inF1): 77(ptr) FunctionParameter + 81(inF2): 77(ptr) FunctionParameter + 83: Label + 1436(r000): 132(ptr) Variable Function + 1439(r001): 77(ptr) Variable Function + 1444(r003): 132(ptr) Variable Function + 1447(r004): 77(ptr) Variable Function + 1450(r005): 77(ptr) Variable Function + 1453(r006): 77(ptr) Variable Function + 1457(r007): 77(ptr) Variable Function + 1468(r008): 77(ptr) Variable Function + 1473(r009): 77(ptr) Variable Function + 1476(r010): 77(ptr) Variable Function + 1479(r011): 77(ptr) Variable Function + 1482(r012): 77(ptr) Variable Function + 1485(r013): 77(ptr) Variable Function + 1488(r014): 77(ptr) Variable Function + 1491(r015): 77(ptr) Variable Function + 1494(r016): 77(ptr) Variable Function + 1497(r017): 77(ptr) Variable Function + 1500(r018): 7(ptr) Variable Function + 1503(r019): 77(ptr) Variable Function + 1506(R020): 77(ptr) Variable Function + 1509(r021): 77(ptr) Variable Function + 1512(r022): 77(ptr) Variable Function + 1528(r023): 77(ptr) Variable Function + 1531(r024): 77(ptr) Variable Function + 1537(r025): 77(ptr) Variable Function + 1540(r026): 77(ptr) Variable Function + 1544(r026a): 77(ptr) Variable Function + 1549(r027): 77(ptr) Variable Function + 1552(r028): 77(ptr) Variable Function + 1556(r029): 77(ptr) Variable Function + 1559(r030): 77(ptr) Variable Function + 1563(r031): 77(ptr) Variable Function + 1567(r032): 77(ptr) Variable Function + 1571(r033): 77(ptr) Variable Function + 1574(r034): 77(ptr) Variable Function + 1577(r035): 77(ptr) Variable Function + 1580(r036): 77(ptr) Variable Function + 1585(r037): 77(ptr) Variable Function + 1588(r038): 77(ptr) Variable Function + 1595(r039): 77(ptr) Variable Function + 1598(r049): 77(ptr) Variable Function + 1603(r041): 77(ptr) Variable Function + 1606(r042): 77(ptr) Variable Function + 1610(r043): 77(ptr) Variable Function + 1613(r044): 77(ptr) Variable Function + 1618(r046): 77(ptr) Variable Function + 1437: 76 Load 79(inF0) + 1438: 131(bool) All 1437 + Store 1436(r000) 1438 + 1440: 76 Load 79(inF0) + 1441: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1440 + Store 1439(r001) 1441 + 1442: 76 Load 79(inF0) + 1443: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1442 + 1445: 76 Load 79(inF0) + 1446: 131(bool) Any 1445 + Store 1444(r003) 1446 + 1448: 76 Load 79(inF0) + 1449: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1448 + Store 1447(r004) 1449 + 1451: 76 Load 79(inF0) + 1452: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1451 + Store 1450(r005) 1452 + 1454: 76 Load 79(inF0) + 1455: 76 Load 80(inF1) + 1456: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1454 1455 + Store 1453(r006) 1456 + 1458: 76 Load 79(inF0) + 1459: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1458 + Store 1457(r007) 1459 + 1460: 76 Load 79(inF0) + 1463: 1462 FOrdLessThan 1460 1461 + 1464: 131(bool) Any 1463 + SelectionMerge 1466 None + BranchConditional 1464 1465 1466 + 1465: Label + Kill + 1466: Label + 1469: 76 Load 79(inF0) + 1470: 76 Load 80(inF1) + 1471: 76 Load 81(inF2) + 1472: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1469 1470 1471 + Store 1468(r008) 1472 + 1474: 76 Load 79(inF0) + 1475: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1474 + Store 1473(r009) 1475 + 1477: 76 Load 79(inF0) + 1478: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1477 + Store 1476(r010) 1478 + 1480: 76 Load 79(inF0) + 1481: 76 DPdx 1480 + Store 1479(r011) 1481 + 1483: 76 Load 79(inF0) + 1484: 76 DPdxCoarse 1483 + Store 1482(r012) 1484 + 1486: 76 Load 79(inF0) + 1487: 76 DPdxFine 1486 + Store 1485(r013) 1487 + 1489: 76 Load 79(inF0) + 1490: 76 DPdy 1489 + Store 1488(r014) 1490 + 1492: 76 Load 79(inF0) + 1493: 76 DPdyCoarse 1492 + Store 1491(r015) 1493 + 1495: 76 Load 79(inF0) + 1496: 76 DPdyFine 1495 + Store 1494(r016) 1496 + 1498: 76 Load 79(inF0) + 1499: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1498 + Store 1497(r017) 1499 + 1501: 76 Load 79(inF0) + 1502: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1501 + Store 1500(r018) 1502 + 1504: 76 Load 79(inF0) + 1505: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1504 + Store 1503(r019) 1505 + 1507: 76 Load 79(inF0) + 1508: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1507 + Store 1506(R020) 1508 + 1510: 76 Load 79(inF0) + 1511: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1510 + Store 1509(r021) 1511 + 1513: 76 Load 79(inF0) + 1514: 76 Load 80(inF1) + 1515: 48(fvec4) CompositeExtract 1513 0 + 1516: 48(fvec4) CompositeExtract 1514 0 + 1517: 48(fvec4) FMod 1515 1516 + 1518: 48(fvec4) CompositeExtract 1513 1 + 1519: 48(fvec4) CompositeExtract 1514 1 + 1520: 48(fvec4) FMod 1518 1519 + 1521: 48(fvec4) CompositeExtract 1513 2 + 1522: 48(fvec4) CompositeExtract 1514 2 + 1523: 48(fvec4) FMod 1521 1522 + 1524: 48(fvec4) CompositeExtract 1513 3 + 1525: 48(fvec4) CompositeExtract 1514 3 + 1526: 48(fvec4) FMod 1524 1525 + 1527: 76 CompositeConstruct 1517 1520 1523 1526 + Store 1512(r022) 1527 + 1529: 76 Load 79(inF0) + 1530: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1529 + Store 1528(r023) 1530 + 1532: 76 Load 79(inF0) + 1534:1533(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1532 + 1535: 836(ivec4) CompositeExtract 1534 1 + Store 80(inF1) 1535 + 1536: 76 CompositeExtract 1534 0 + Store 1531(r024) 1536 + 1538: 76 Load 79(inF0) + 1539: 76 Fwidth 1538 + Store 1537(r025) 1539 + 1541: 76 Load 79(inF0) + 1542: 76 Load 80(inF1) + 1543: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1541 1542 + Store 1540(r026) 1543 + 1545: 76 Load 79(inF0) + 1546: 76 Load 80(inF1) + 1547: 76 Load 81(inF2) + 1548: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1545 1546 1547 + Store 1544(r026a) 1548 + 1550: 76 Load 79(inF0) + 1551: 76 ExtInst 1(GLSL.std.450) 28(Log) 1550 + Store 1549(r027) 1551 + 1553: 76 Load 79(inF0) + 1554: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1553 + 1555: 76 MatrixTimesScalar 1554 262 + Store 1552(r028) 1555 + 1557: 76 Load 79(inF0) + 1558: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1557 + Store 1556(r029) 1558 + 1560: 76 Load 79(inF0) + 1561: 76 Load 80(inF1) + 1562: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1560 1561 + Store 1559(r030) 1562 + 1564: 76 Load 79(inF0) + 1565: 76 Load 80(inF1) + 1566: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1564 1565 + Store 1563(r031) 1566 + 1568: 76 Load 79(inF0) + 1569: 76 Load 80(inF1) + 1570: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1568 1569 + Store 1567(r032) 1570 + 1572: 76 Load 79(inF0) + 1573: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1572 + Store 1571(r033) 1573 + 1575: 76 Load 79(inF0) + 1576: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1575 + Store 1574(r034) 1576 + 1578: 76 Load 79(inF0) + 1579: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1578 + Store 1577(r035) 1579 + 1581: 76 Load 79(inF0) + 1582: 48(fvec4) CompositeConstruct 175 175 175 175 + 1583: 48(fvec4) CompositeConstruct 283 283 283 283 + 1584: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1581 1582 1583 + Store 1580(r036) 1584 + 1586: 76 Load 79(inF0) + 1587: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1586 + Store 1585(r037) 1587 + 1589: 76 Load 79(inF0) + 1590: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1589 + Store 1588(r038) 1590 + 1591: 76 Load 79(inF0) + 1592: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1591 + Store 80(inF1) 1592 + 1593: 76 Load 79(inF0) + 1594: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1593 + Store 81(inF2) 1594 + 1596: 76 Load 79(inF0) + 1597: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1596 + Store 1595(r039) 1597 + 1599: 76 Load 79(inF0) + 1600: 76 Load 80(inF1) + 1601: 76 Load 81(inF2) + 1602: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1599 1600 1601 + Store 1598(r049) 1602 + 1604: 76 Load 79(inF0) + 1605: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1604 + Store 1603(r041) 1605 + 1607: 76 Load 79(inF0) + 1608: 76 Load 80(inF1) + 1609: 76 ExtInst 1(GLSL.std.450) 48(Step) 1607 1608 + Store 1606(r042) 1609 + 1611: 76 Load 79(inF0) + 1612: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1611 + Store 1610(r043) 1612 + 1614: 76 Load 79(inF0) + 1615: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1614 + Store 1613(r044) 1615 + 1616: 76 Load 79(inF0) + 1617: 76 Transpose 1616 + 1619: 76 Load 79(inF0) + 1620: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1619 + Store 1618(r046) 1620 + ReturnValue 1622 + FunctionEnd +91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 + 85(inF0): 7(ptr) FunctionParameter + 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 + 1625(r0): 7(ptr) Variable Function + 1629(r1): 25(ptr) Variable Function + 1633(r2): 25(ptr) Variable Function + 1637(r3): 7(ptr) Variable Function + 1641(r4): 25(ptr) Variable Function + 1645(r5): 25(ptr) Variable Function + 1649(r6): 61(ptr) Variable Function + 1653(r7): 61(ptr) Variable Function + 1657(r8): 61(ptr) Variable Function + 1626: 6(float) Load 86(inF1) + 1627: 6(float) Load 85(inF0) + 1628: 6(float) FMul 1626 1627 + Store 1625(r0) 1628 + 1630: 6(float) Load 85(inF0) + 1631: 24(fvec2) Load 87(inFV0) + 1632: 24(fvec2) VectorTimesScalar 1631 1630 + Store 1629(r1) 1632 + 1634: 24(fvec2) Load 87(inFV0) + 1635: 6(float) Load 85(inF0) + 1636: 24(fvec2) VectorTimesScalar 1634 1635 + Store 1633(r2) 1636 + 1638: 24(fvec2) Load 87(inFV0) + 1639: 24(fvec2) Load 88(inFV1) + 1640: 6(float) Dot 1638 1639 + Store 1637(r3) 1640 + 1642: 24(fvec2) Load 87(inFV0) + 1643: 60 Load 89(inFM0) + 1644: 24(fvec2) VectorTimesMatrix 1642 1643 + Store 1641(r4) 1644 + 1646: 60 Load 89(inFM0) + 1647: 24(fvec2) Load 87(inFV0) + 1648: 24(fvec2) MatrixTimesVector 1646 1647 + Store 1645(r5) 1648 + 1650: 6(float) Load 85(inF0) + 1651: 60 Load 89(inFM0) + 1652: 60 MatrixTimesScalar 1651 1650 + Store 1649(r6) 1652 + 1654: 60 Load 89(inFM0) + 1655: 6(float) Load 85(inF0) + 1656: 60 MatrixTimesScalar 1654 1655 + Store 1653(r7) 1656 + 1658: 60 Load 90(inFM1) + 1659: 60 Load 89(inFM0) + 1660: 60 MatrixTimesMatrix 1658 1659 + Store 1657(r8) 1660 + Return + FunctionEnd +100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 + 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 + 1661(r0): 7(ptr) Variable Function + 1665(r1): 37(ptr) Variable Function + 1669(r2): 37(ptr) Variable Function + 1673(r3): 7(ptr) Variable Function + 1677(r4): 37(ptr) Variable Function + 1681(r5): 37(ptr) Variable Function + 1685(r6): 69(ptr) Variable Function + 1689(r7): 69(ptr) Variable Function + 1693(r8): 69(ptr) Variable Function + 1662: 6(float) Load 95(inF1) + 1663: 6(float) Load 94(inF0) + 1664: 6(float) FMul 1662 1663 + Store 1661(r0) 1664 + 1666: 6(float) Load 94(inF0) + 1667: 36(fvec3) Load 96(inFV0) + 1668: 36(fvec3) VectorTimesScalar 1667 1666 + Store 1665(r1) 1668 + 1670: 36(fvec3) Load 96(inFV0) + 1671: 6(float) Load 94(inF0) + 1672: 36(fvec3) VectorTimesScalar 1670 1671 + Store 1669(r2) 1672 + 1674: 36(fvec3) Load 96(inFV0) + 1675: 36(fvec3) Load 97(inFV1) + 1676: 6(float) Dot 1674 1675 + Store 1673(r3) 1676 + 1678: 36(fvec3) Load 96(inFV0) + 1679: 68 Load 98(inFM0) + 1680: 36(fvec3) VectorTimesMatrix 1678 1679 + Store 1677(r4) 1680 + 1682: 68 Load 98(inFM0) + 1683: 36(fvec3) Load 96(inFV0) + 1684: 36(fvec3) MatrixTimesVector 1682 1683 + Store 1681(r5) 1684 + 1686: 6(float) Load 94(inF0) + 1687: 68 Load 98(inFM0) + 1688: 68 MatrixTimesScalar 1687 1686 + Store 1685(r6) 1688 + 1690: 68 Load 98(inFM0) + 1691: 6(float) Load 94(inF0) + 1692: 68 MatrixTimesScalar 1690 1691 + Store 1689(r7) 1692 + 1694: 68 Load 99(inFM1) + 1695: 68 Load 98(inFM0) + 1696: 68 MatrixTimesMatrix 1694 1695 + Store 1693(r8) 1696 + Return + FunctionEnd +109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 + 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 + 1697(r0): 7(ptr) Variable Function + 1701(r1): 49(ptr) Variable Function + 1705(r2): 49(ptr) Variable Function + 1709(r3): 7(ptr) Variable Function + 1713(r4): 49(ptr) Variable Function + 1717(r5): 49(ptr) Variable Function + 1721(r6): 77(ptr) Variable Function + 1725(r7): 77(ptr) Variable Function + 1729(r8): 77(ptr) Variable Function + 1698: 6(float) Load 104(inF1) + 1699: 6(float) Load 103(inF0) + 1700: 6(float) FMul 1698 1699 + Store 1697(r0) 1700 + 1702: 6(float) Load 103(inF0) + 1703: 48(fvec4) Load 105(inFV0) + 1704: 48(fvec4) VectorTimesScalar 1703 1702 + Store 1701(r1) 1704 + 1706: 48(fvec4) Load 105(inFV0) + 1707: 6(float) Load 103(inF0) + 1708: 48(fvec4) VectorTimesScalar 1706 1707 + Store 1705(r2) 1708 + 1710: 48(fvec4) Load 105(inFV0) + 1711: 48(fvec4) Load 106(inFV1) + 1712: 6(float) Dot 1710 1711 + Store 1709(r3) 1712 + 1714: 48(fvec4) Load 105(inFV0) + 1715: 76 Load 107(inFM0) + 1716: 48(fvec4) VectorTimesMatrix 1714 1715 + Store 1713(r4) 1716 + 1718: 76 Load 107(inFM0) + 1719: 48(fvec4) Load 105(inFV0) + 1720: 48(fvec4) MatrixTimesVector 1718 1719 + Store 1717(r5) 1720 + 1722: 6(float) Load 103(inF0) + 1723: 76 Load 107(inFM0) + 1724: 76 MatrixTimesScalar 1723 1722 + Store 1721(r6) 1724 + 1726: 76 Load 107(inFM0) + 1727: 6(float) Load 103(inF0) + 1728: 76 MatrixTimesScalar 1726 1727 + Store 1725(r7) 1728 + 1730: 76 Load 108(inFM1) + 1731: 76 Load 107(inFM0) + 1732: 76 MatrixTimesMatrix 1730 1731 + Store 1729(r8) 1732 + Return + FunctionEnd +129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 + 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 + 1733(r00): 7(ptr) Variable Function + 1737(r01): 25(ptr) Variable Function + 1741(r02): 37(ptr) Variable Function + 1745(r03): 25(ptr) Variable Function + 1749(r04): 37(ptr) Variable Function + 1753(r05): 7(ptr) Variable Function + 1757(r06): 7(ptr) Variable Function + 1761(r07): 37(ptr) Variable Function + 1765(r08): 25(ptr) Variable Function + 1769(r09): 25(ptr) Variable Function + 1773(r10): 37(ptr) Variable Function + 1777(r11): 112(ptr) Variable Function + 1781(r12): 114(ptr) Variable Function + 1785(r13): 61(ptr) Variable Function + 1789(r14): 112(ptr) Variable Function + 1793(r15): 118(ptr) Variable Function + 1797(r16): 116(ptr) Variable Function + 1734: 6(float) Load 121(inF1) + 1735: 6(float) Load 120(inF0) + 1736: 6(float) FMul 1734 1735 + Store 1733(r00) 1736 + 1738: 6(float) Load 120(inF0) + 1739: 24(fvec2) Load 122(inFV2) + 1740: 24(fvec2) VectorTimesScalar 1739 1738 + Store 1737(r01) 1740 + 1742: 6(float) Load 120(inF0) + 1743: 36(fvec3) Load 123(inFV3) + 1744: 36(fvec3) VectorTimesScalar 1743 1742 + Store 1741(r02) 1744 + 1746: 24(fvec2) Load 122(inFV2) + 1747: 6(float) Load 120(inF0) + 1748: 24(fvec2) VectorTimesScalar 1746 1747 + Store 1745(r03) 1748 + 1750: 36(fvec3) Load 123(inFV3) + 1751: 6(float) Load 120(inF0) + 1752: 36(fvec3) VectorTimesScalar 1750 1751 + Store 1749(r04) 1752 + 1754: 24(fvec2) Load 122(inFV2) + 1755: 24(fvec2) Load 122(inFV2) + 1756: 6(float) Dot 1754 1755 + Store 1753(r05) 1756 + 1758: 36(fvec3) Load 123(inFV3) + 1759: 36(fvec3) Load 123(inFV3) + 1760: 6(float) Dot 1758 1759 + Store 1757(r06) 1760 + 1762: 111 Load 124(inFM2x3) + 1763: 24(fvec2) Load 122(inFV2) + 1764: 36(fvec3) MatrixTimesVector 1762 1763 + Store 1761(r07) 1764 + 1766: 113 Load 125(inFM3x2) + 1767: 36(fvec3) Load 123(inFV3) + 1768: 24(fvec2) MatrixTimesVector 1766 1767 + Store 1765(r08) 1768 + 1770: 36(fvec3) Load 123(inFV3) + 1771: 111 Load 124(inFM2x3) + 1772: 24(fvec2) VectorTimesMatrix 1770 1771 + Store 1769(r09) 1772 + 1774: 24(fvec2) Load 122(inFV2) + 1775: 113 Load 125(inFM3x2) + 1776: 36(fvec3) VectorTimesMatrix 1774 1775 + Store 1773(r10) 1776 + 1778: 6(float) Load 120(inF0) + 1779: 111 Load 124(inFM2x3) + 1780: 111 MatrixTimesScalar 1779 1778 + Store 1777(r11) 1780 + 1782: 6(float) Load 120(inF0) + 1783: 113 Load 125(inFM3x2) + 1784: 113 MatrixTimesScalar 1783 1782 + Store 1781(r12) 1784 + 1786: 113 Load 125(inFM3x2) + 1787: 111 Load 124(inFM2x3) + 1788: 60 MatrixTimesMatrix 1786 1787 + Store 1785(r13) 1788 + 1790: 68 Load 126(inFM3x3) + 1791: 111 Load 124(inFM2x3) + 1792: 111 MatrixTimesMatrix 1790 1791 + Store 1789(r14) 1792 + 1794: 115 Load 127(inFM3x4) + 1795: 111 Load 124(inFM2x3) + 1796: 117 MatrixTimesMatrix 1794 1795 + Store 1793(r15) 1796 + 1798: 117 Load 128(inFM2x4) + 1799: 113 Load 125(inFM3x2) + 1800: 115 MatrixTimesMatrix 1798 1799 + Store 1797(r16) 1800 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.lit.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.lit.frag.out new file mode 100644 index 0000000000..6b393048e7 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -0,0 +1,144 @@ +hlsl.intrinsics.lit.frag +Shader version: 450 +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' (layout(location=0 ) in float) +0:2 'n_dot_h' (layout(location=1 ) in float) +0:2 'm' (layout(location=2 ) 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' (layout(location=0 ) in float) +0:3 Constant: +0:3 0.000000 +0:3 Test condition and select (temp float) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 min (temp float) +0:3 'n_dot_l' (layout(location=0 ) in float) +0:3 'n_dot_h' (layout(location=1 ) 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' (layout(location=1 ) in float) +0:3 'm' (layout(location=2 ) in float) +0:3 Constant: +0:3 1.000000 +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: 450 +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' (layout(location=0 ) in float) +0:2 'n_dot_h' (layout(location=1 ) in float) +0:2 'm' (layout(location=2 ) 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' (layout(location=0 ) in float) +0:3 Constant: +0:3 0.000000 +0:3 Test condition and select (temp float) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 min (temp float) +0:3 'n_dot_l' (layout(location=0 ) in float) +0:3 'n_dot_h' (layout(location=1 ) 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' (layout(location=1 ) in float) +0:3 'm' (layout(location=2 ) in float) +0:3 Constant: +0:3 1.000000 +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): 80001 +// Id's are bound by 33 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 12 19 28 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "r0" + Name 12 "n_dot_l" + Name 19 "n_dot_h" + Name 28 "m" + Decorate 12(n_dot_l) Location 0 + Decorate 19(n_dot_h) Location 1 + Decorate 28(m) Location 2 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: TypePointer Input 6(float) + 12(n_dot_l): 11(ptr) Variable Input + 14: 6(float) Constant 0 + 16: TypePointer Function 6(float) + 19(n_dot_h): 11(ptr) Variable Input + 22: TypeBool + 28(m): 11(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9(r0): 8(ptr) Variable Function + 17: 16(ptr) Variable Function + 13: 6(float) Load 12(n_dot_l) + 15: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 13 14 + 18: 6(float) Load 12(n_dot_l) + 20: 6(float) Load 19(n_dot_h) + 21: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 18 20 + 23: 22(bool) FOrdLessThan 21 14 + SelectionMerge 25 None + BranchConditional 23 24 26 + 24: Label + Store 17 14 + Branch 25 + 26: Label + 27: 6(float) Load 19(n_dot_h) + 29: 6(float) Load 28(m) + 30: 6(float) FMul 27 29 + Store 17 30 + Branch 25 + 25: Label + 31: 6(float) Load 17 + 32: 7(fvec4) CompositeConstruct 10 15 31 10 + Store 9(r0) 32 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.comp.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.comp.out new file mode 100644 index 0000000000..44dedf7706 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -0,0 +1,255 @@ +hlsl.intrinsics.negative.comp +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:158 'inF1' (layout(location=1 ) in 4-component vector of float) +0:158 'inF2' (layout(location=2 ) in 4-component vector of float) +0:158 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? Sequence +0:199 Sequence +0:199 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:199 Branch: Return +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: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:158 'inF1' (layout(location=1 ) in 4-component vector of float) +0:158 'inF2' (layout(location=2 ) in 4-component vector of float) +0:158 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? Sequence +0:199 Sequence +0:199 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:199 Branch: Return +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): 80001 +// Id's are bound by 72 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" 61 66 67 68 71 + ExecutionMode 4 LocalSize 1 1 1 + 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 61 "@entryPointOutput" + Name 66 "inF0" + Name 67 "inF1" + Name 68 "inF2" + Name 71 "inI0" + Decorate 61(@entryPointOutput) Location 0 + Decorate 66(inF0) Location 0 + Decorate 67(inF1) Location 1 + Decorate 68(inF2) Location 2 + Decorate 71(inI0) Location 3 + 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: 6(float) Constant 0 + 50: 6(float) Constant 1065353216 + 51: 6(float) Constant 1073741824 + 52: 23(fvec2) ConstantComposite 50 51 + 55: 6(float) Constant 1077936128 + 56: 34(fvec3) ConstantComposite 50 51 55 + 59: TypeVector 6(float) 4 + 60: TypePointer Output 59(fvec4) +61(@entryPointOutput): 60(ptr) Variable Output + 62: 6(float) Constant 1082130432 + 63: 59(fvec4) ConstantComposite 50 51 55 62 + 65: TypePointer Input 59(fvec4) + 66(inF0): 65(ptr) Variable Input + 67(inF1): 65(ptr) Variable Input + 68(inF2): 65(ptr) Variable Input + 69: TypeVector 8(int) 4 + 70: TypePointer Input 69(ivec4) + 71(inI0): 70(ptr) Variable Input +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + Store 61(@entryPointOutput) 63 + 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 45 + 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 45 + 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 52 + 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 56 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.frag.out new file mode 100644 index 0000000000..e275054325 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -0,0 +1,773 @@ +hlsl.intrinsics.negative.frag +ERROR: 0:10: 'determinant' : no matching overloaded function found +ERROR: 0:12: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 0:28: 'refract' : no matching overloaded function found +ERROR: 0:30: 'transpose' : no matching overloaded function found +ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found +ERROR: 0:46: 'asdouble' : 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:52: 'f32tof16' : unimplemented intrinsic: handle natively +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:68: 'f32tof16' : unimplemented intrinsic: handle natively +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:85: 'f32tof16' : unimplemented intrinsic: handle natively +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: 60 compilation errors. No code generated. + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (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 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) +0:9 Construct vec4 (in 4-component vector of float) +0:9 'inF0' (in float) +0:10 Constant: +0:10 0.000000 +0:12 ERROR: Bad unary op + (temp float) +0:12 Convert float to uint (temp uint) +0:12 'inF0' (in float) +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 Construct vec2 (in 2-component vector of 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 Constant: +0:30 0.000000 +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 ERROR: Bad unary op + (temp 2-component vector of float) +0:52 Convert float to uint (temp 2-component vector of uint) +0:52 'inF0' (in 2-component vector of float) +0:53 findMSB (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 ERROR: Bad unary op + (temp 3-component vector of float) +0:68 Convert float to uint (temp 3-component vector of uint) +0:68 'inF0' (in 3-component vector of float) +0:69 findMSB (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' (layout(location=0 ) in 4-component vector of float) +0:80 'inF1' (layout(location=1 ) in 4-component vector of float) +0:80 'inF2' (layout(location=2 ) in 4-component vector of float) +0:80 'inI0' (layout(location=3 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:83 Construct vec3 (in 3-component vector of float) +0:83 'inF1' (layout(location=1 ) in 4-component vector of float) +0:84 Constant: +0:84 0.000000 +0:85 ERROR: Bad unary op + (temp 4-component vector of float) +0:85 Convert float to uint (temp 4-component vector of uint) +0:85 'inF0' (layout(location=0 ) in 4-component vector of float) +0:86 findMSB (temp 4-component vector of uint) +0:86 Convert float to uint (temp 4-component vector of uint) +0:86 'inF0' (layout(location=0 ) in 4-component vector of float) +0:87 findLSB (temp 4-component vector of uint) +0:87 Convert float to uint (temp 4-component vector of uint) +0:87 'inF0' (layout(location=0 ) in 4-component vector of float) +0:89 bitFieldReverse (temp 4-component vector of uint) +0:89 Convert float to uint (temp 4-component vector of uint) +0:89 'inF0' (layout(location=0 ) in 4-component vector of float) +0:90 Constant: +0:90 0.000000 +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:92 Branch: Return +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 ) in 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (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 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) +0:9 Construct vec4 (in 4-component vector of float) +0:9 'inF0' (in float) +0:10 Constant: +0:10 0.000000 +0:12 ERROR: Bad unary op + (temp float) +0:12 Convert float to uint (temp uint) +0:12 'inF0' (in float) +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 Construct vec2 (in 2-component vector of 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 Constant: +0:30 0.000000 +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 ERROR: Bad unary op + (temp 2-component vector of float) +0:52 Convert float to uint (temp 2-component vector of uint) +0:52 'inF0' (in 2-component vector of float) +0:53 findMSB (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 ERROR: Bad unary op + (temp 3-component vector of float) +0:68 Convert float to uint (temp 3-component vector of uint) +0:68 'inF0' (in 3-component vector of float) +0:69 findMSB (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' (layout(location=0 ) in 4-component vector of float) +0:80 'inF1' (layout(location=1 ) in 4-component vector of float) +0:80 'inF2' (layout(location=2 ) in 4-component vector of float) +0:80 'inI0' (layout(location=3 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:83 Construct vec3 (in 3-component vector of float) +0:83 'inF1' (layout(location=1 ) in 4-component vector of float) +0:84 Constant: +0:84 0.000000 +0:85 ERROR: Bad unary op + (temp 4-component vector of float) +0:85 Convert float to uint (temp 4-component vector of uint) +0:85 'inF0' (layout(location=0 ) in 4-component vector of float) +0:86 findMSB (temp 4-component vector of uint) +0:86 Convert float to uint (temp 4-component vector of uint) +0:86 'inF0' (layout(location=0 ) in 4-component vector of float) +0:87 findLSB (temp 4-component vector of uint) +0:87 Convert float to uint (temp 4-component vector of uint) +0:87 'inF0' (layout(location=0 ) in 4-component vector of float) +0:89 bitFieldReverse (temp 4-component vector of uint) +0:89 Convert float to uint (temp 4-component vector of uint) +0:89 'inF0' (layout(location=0 ) in 4-component vector of float) +0:90 Constant: +0:90 0.000000 +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:92 Branch: Return +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 ) in 4-component vector of int) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.vert.out new file mode 100644 index 0000000000..b57a5a9a27 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -0,0 +1,462 @@ +hlsl.intrinsics.negative.vert +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:176 'inF1' (layout(location=1 ) in 4-component vector of float) +0:176 'inF2' (layout(location=2 ) in 4-component vector of float) +0:176 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? Sequence +0:217 Sequence +0:217 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:217 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? 'gs_ua' (global uint) +0:? 'gs_ub' (global uint) +0:? 'gs_uc' (global uint) +0:? 'gs_ua2' (global 2-component vector of uint) +0:? 'gs_ub2' (global 2-component vector of uint) +0:? 'gs_uc2' (global 2-component vector of uint) +0:? 'gs_ua3' (global 3-component vector of uint) +0:? 'gs_ub3' (global 3-component vector of uint) +0:? 'gs_uc3' (global 3-component vector of uint) +0:? 'gs_ua4' (global 4-component vector of uint) +0:? 'gs_ub4' (global 4-component vector of uint) +0:? 'gs_uc4' (global 4-component vector of uint) + + +Linked vertex stage: + + +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:176 'inF1' (layout(location=1 ) in 4-component vector of float) +0:176 'inF2' (layout(location=2 ) in 4-component vector of float) +0:176 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? Sequence +0:217 Sequence +0:217 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:217 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? 'gs_ua' (global uint) +0:? 'gs_ub' (global uint) +0:? 'gs_uc' (global uint) +0:? 'gs_ua2' (global 2-component vector of uint) +0:? 'gs_ub2' (global 2-component vector of uint) +0:? 'gs_uc2' (global 2-component vector of uint) +0:? 'gs_ua3' (global 3-component vector of uint) +0:? 'gs_ub3' (global 3-component vector of uint) +0:? 'gs_uc3' (global 3-component vector of uint) +0:? 'gs_ua4' (global 4-component vector of uint) +0:? 'gs_ub4' (global 4-component vector of uint) +0:? 'gs_uc4' (global 4-component vector of uint) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 128 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "VertexShaderFunction" 85 102 103 104 107 + 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 51 "VertexShaderFunction2x2(mf22;mf22;mf22;" + Name 48 "inF0" + Name 49 "inF1" + Name 50 "inF2" + Name 59 "VertexShaderFunction3x3(mf33;mf33;mf33;" + Name 56 "inF0" + Name 57 "inF1" + Name 58 "inF2" + Name 68 "VertexShaderFunction4x4(mf44;mf44;mf44;" + Name 65 "inF0" + Name 66 "inF1" + Name 67 "inF2" + Name 85 "@entryPointOutput" + Name 102 "inF0" + Name 103 "inF1" + Name 104 "inF2" + Name 107 "inI0" + Name 110 "gs_ua" + Name 111 "gs_ub" + Name 112 "gs_uc" + Name 115 "gs_ua2" + Name 116 "gs_ub2" + Name 117 "gs_uc2" + Name 120 "gs_ua3" + Name 121 "gs_ub3" + Name 122 "gs_uc3" + Name 125 "gs_ua4" + Name 126 "gs_ub4" + Name 127 "gs_uc4" + Decorate 85(@entryPointOutput) Location 0 + Decorate 102(inF0) Location 0 + Decorate 103(inF1) Location 1 + Decorate 104(inF2) Location 2 + Decorate 107(inI0) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 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: TypeMatrix 23(fvec2) 2 + 46: TypePointer Function 45 + 47: TypeFunction 45 46(ptr) 46(ptr) 46(ptr) + 53: TypeMatrix 34(fvec3) 3 + 54: TypePointer Function 53 + 55: TypeFunction 53 54(ptr) 54(ptr) 54(ptr) + 61: TypeVector 6(float) 4 + 62: TypeMatrix 61(fvec4) 4 + 63: TypePointer Function 62 + 64: TypeFunction 62 63(ptr) 63(ptr) 63(ptr) + 70: 6(float) Constant 0 + 75: 6(float) Constant 1065353216 + 76: 6(float) Constant 1073741824 + 77: 23(fvec2) ConstantComposite 75 76 + 80: 6(float) Constant 1077936128 + 81: 34(fvec3) ConstantComposite 75 76 80 + 84: TypePointer Output 61(fvec4) +85(@entryPointOutput): 84(ptr) Variable Output + 86: 6(float) Constant 1082130432 + 87: 61(fvec4) ConstantComposite 75 76 80 86 + 89: 23(fvec2) ConstantComposite 76 76 + 90: 45 ConstantComposite 89 89 + 93: 34(fvec3) ConstantComposite 80 80 80 + 94: 53 ConstantComposite 93 93 93 + 97: 61(fvec4) ConstantComposite 86 86 86 86 + 98: 62 ConstantComposite 97 97 97 97 + 101: TypePointer Input 61(fvec4) + 102(inF0): 101(ptr) Variable Input + 103(inF1): 101(ptr) Variable Input + 104(inF2): 101(ptr) Variable Input + 105: TypeVector 8(int) 4 + 106: TypePointer Input 105(ivec4) + 107(inI0): 106(ptr) Variable Input + 108: TypeInt 32 0 + 109: TypePointer Private 108(int) + 110(gs_ua): 109(ptr) Variable Private + 111(gs_ub): 109(ptr) Variable Private + 112(gs_uc): 109(ptr) Variable Private + 113: TypeVector 108(int) 2 + 114: TypePointer Private 113(ivec2) + 115(gs_ua2): 114(ptr) Variable Private + 116(gs_ub2): 114(ptr) Variable Private + 117(gs_uc2): 114(ptr) Variable Private + 118: TypeVector 108(int) 3 + 119: TypePointer Private 118(ivec3) + 120(gs_ua3): 119(ptr) Variable Private + 121(gs_ub3): 119(ptr) Variable Private + 122(gs_uc3): 119(ptr) Variable Private + 123: TypeVector 108(int) 4 + 124: TypePointer Private 123(ivec4) + 125(gs_ua4): 124(ptr) Variable Private + 126(gs_ub4): 124(ptr) Variable Private + 127(gs_uc4): 124(ptr) Variable Private +4(VertexShaderFunction): 2 Function None 3 + 5: Label + Store 85(@entryPointOutput) 87 + 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 70 + 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 70 + 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 77 + 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 81 + FunctionEnd +51(VertexShaderFunction2x2(mf22;mf22;mf22;): 45 Function None 47 + 48(inF0): 46(ptr) FunctionParameter + 49(inF1): 46(ptr) FunctionParameter + 50(inF2): 46(ptr) FunctionParameter + 52: Label + ReturnValue 90 + FunctionEnd +59(VertexShaderFunction3x3(mf33;mf33;mf33;): 53 Function None 55 + 56(inF0): 54(ptr) FunctionParameter + 57(inF1): 54(ptr) FunctionParameter + 58(inF2): 54(ptr) FunctionParameter + 60: Label + ReturnValue 94 + FunctionEnd +68(VertexShaderFunction4x4(mf44;mf44;mf44;): 62 Function None 64 + 65(inF0): 63(ptr) FunctionParameter + 66(inF1): 63(ptr) FunctionParameter + 67(inF2): 63(ptr) FunctionParameter + 69: Label + ReturnValue 98 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.down.frag.out new file mode 100644 index 0000000000..f5ba86b023 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.down.frag.out @@ -0,0 +1,184 @@ +hlsl.intrinsics.promote.down.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp uint) +0:16 'r00' (temp uint) +0:16 bitCount (temp uint) +0:16 Convert float to uint (temp uint) +0:16 f: direct index for structure (layout(offset=8 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r01' (temp 2-component vector of uint) +0:17 bitFieldReverse (temp 2-component vector of uint) +0:17 Convert float to uint (temp 2-component vector of uint) +0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child (temp 4-component vector of float) +0:20 color: direct index for structure (temp 4-component vector of float) +0:20 'ps_output' (temp structure{temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:21 color: direct index for structure (temp 4-component vector of float) +0:21 'ps_output' (temp structure{temp 4-component vector of float color}) +0:21 Constant: +0:21 0 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp uint) +0:16 'r00' (temp uint) +0:16 bitCount (temp uint) +0:16 Convert float to uint (temp uint) +0:16 f: direct index for structure (layout(offset=8 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r01' (temp 2-component vector of uint) +0:17 bitFieldReverse (temp 2-component vector of uint) +0:17 Convert float to uint (temp 2-component vector of uint) +0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child (temp 4-component vector of float) +0:20 color: direct index for structure (temp 4-component vector of float) +0:20 'ps_output' (temp structure{temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:21 color: direct index for structure (temp 4-component vector of float) +0:21 'ps_output' (temp structure{temp 4-component vector of float color}) +0:21 Constant: +0:21 0 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 14 "$Global" + MemberName 14($Global) 0 "i" + MemberName 14($Global) 1 "u" + MemberName 14($Global) 2 "f" + MemberName 14($Global) 3 "b" + MemberName 14($Global) 4 "i2" + MemberName 14($Global) 5 "u2" + MemberName 14($Global) 6 "f2" + MemberName 14($Global) 7 "b2" + Name 16 "" + Name 24 "r01" + Name 32 "PS_OUTPUT" + MemberName 32(PS_OUTPUT) 0 "color" + Name 34 "ps_output" + Name 41 "color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 4 + MemberDecorate 14($Global) 2 Offset 8 + MemberDecorate 14($Global) 3 Offset 12 + MemberDecorate 14($Global) 4 Offset 16 + MemberDecorate 14($Global) 5 Offset 24 + MemberDecorate 14($Global) 6 Offset 32 + MemberDecorate 14($Global) 7 Offset 40 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 41(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeInt 32 1 + 10: TypeFloat 32 + 11: TypeVector 9(int) 2 + 12: TypeVector 6(int) 2 + 13: TypeVector 10(float) 2 + 14($Global): TypeStruct 9(int) 6(int) 10(float) 6(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 9(int) Constant 2 + 18: TypePointer Uniform 10(float) + 23: TypePointer Function 12(ivec2) + 25: 9(int) Constant 6 + 26: TypePointer Uniform 13(fvec2) + 31: TypeVector 10(float) 4 + 32(PS_OUTPUT): TypeStruct 31(fvec4) + 33: TypePointer Function 32(PS_OUTPUT) + 35: 9(int) Constant 0 + 36: 10(float) Constant 0 + 37: 31(fvec4) ConstantComposite 36 36 36 36 + 38: TypePointer Function 31(fvec4) + 40: TypePointer Output 31(fvec4) + 41(color): 40(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 24(r01): 23(ptr) Variable Function + 34(ps_output): 33(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 10(float) Load 19 + 21: 6(int) ConvertFToU 20 + 22: 6(int) BitCount 21 + Store 8(r00) 22 + 27: 26(ptr) AccessChain 16 25 + 28: 13(fvec2) Load 27 + 29: 12(ivec2) ConvertFToU 28 + 30: 12(ivec2) BitReverse 29 + Store 24(r01) 30 + 39: 38(ptr) AccessChain 34(ps_output) 35 + Store 39 37 + 42: 38(ptr) AccessChain 34(ps_output) 35 + 43: 31(fvec4) Load 42 + Store 41(color) 43 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.frag.out new file mode 100644 index 0000000000..82b9e6861b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -0,0 +1,1313 @@ +hlsl.intrinsics.promote.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'r00' (temp float) +0:23 max (temp float) +0:23 Convert bool to float (temp float) +0:23 b: direct index for structure (layout(offset=12 ) uniform bool) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure (layout(offset=8 ) uniform float) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child (temp uint) +0:24 'r01' (temp uint) +0:24 max (temp uint) +0:24 Convert bool to uint (temp uint) +0:24 b: direct index for structure (layout(offset=12 ) uniform bool) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure (layout(offset=4 ) uniform uint) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child (temp int) +0:25 'r02' (temp int) +0:25 max (temp int) +0:25 Convert bool to int (temp int) +0:25 b: direct index for structure (layout(offset=12 ) uniform bool) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'r03' (temp float) +0:26 max (temp float) +0:26 Convert int to float (temp float) +0:26 i: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure (layout(offset=8 ) uniform float) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'r04' (temp float) +0:27 max (temp float) +0:27 Convert uint to float (temp float) +0:27 u: direct index for structure (layout(offset=4 ) uniform uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure (layout(offset=8 ) uniform float) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 2-component vector of float) +0:29 'r10' (temp 2-component vector of float) +0:29 max (temp 2-component vector of float) +0:29 Convert bool to float (temp 2-component vector of float) +0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 2-component vector of uint) +0:30 'r11' (temp 2-component vector of uint) +0:30 max (temp 2-component vector of uint) +0:30 Convert bool to uint (temp 2-component vector of uint) +0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 2-component vector of int) +0:31 'r12' (temp 2-component vector of int) +0:31 max (temp 2-component vector of int) +0:31 Convert bool to int (temp 2-component vector of int) +0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child (temp 2-component vector of float) +0:32 'r13' (temp 2-component vector of float) +0:32 max (temp 2-component vector of float) +0:32 Convert int to float (temp 2-component vector of float) +0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child (temp 2-component vector of float) +0:33 'r14' (temp 2-component vector of float) +0:33 max (temp 2-component vector of float) +0:33 Convert uint to float (temp 2-component vector of float) +0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child (temp 2-component vector of float) +0:35 'r20' (temp 2-component vector of float) +0:35 clamp (temp 2-component vector of float) +0:35 Convert int to float (temp 2-component vector of float) +0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float (temp 2-component vector of float) +0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child (temp 2-component vector of uint) +0:36 'r21' (temp 2-component vector of uint) +0:36 clamp (temp 2-component vector of uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child (temp 2-component vector of float) +0:37 'r22' (temp 2-component vector of float) +0:37 clamp (temp 2-component vector of float) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r30' (temp 2-component vector of float) +0:40 max (temp 2-component vector of float) +0:40 Construct vec2 (in 2-component vector of float) +0:40 Convert bool to float (temp float) +0:40 b: direct index for structure (layout(offset=12 ) uniform bool) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of uint) +0:41 'r31' (temp 2-component vector of uint) +0:41 max (temp 2-component vector of uint) +0:41 Construct uvec2 (in 2-component vector of uint) +0:41 Convert bool to uint (temp uint) +0:41 b: direct index for structure (layout(offset=12 ) uniform bool) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child (temp 2-component vector of int) +0:42 'r32' (temp 2-component vector of int) +0:42 max (temp 2-component vector of int) +0:42 Construct ivec2 (in 2-component vector of int) +0:42 Convert bool to int (temp int) +0:42 b: direct index for structure (layout(offset=12 ) uniform bool) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r33' (temp 2-component vector of float) +0:43 max (temp 2-component vector of float) +0:43 Construct vec2 (in 2-component vector of float) +0:43 Convert int to float (temp float) +0:43 i: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r34' (temp 2-component vector of float) +0:44 max (temp 2-component vector of float) +0:44 Construct vec2 (in 2-component vector of float) +0:44 Convert uint to float (temp float) +0:44 u: direct index for structure (layout(offset=4 ) uniform uint) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child (temp 2-component vector of float) +0:46 'r40' (temp 2-component vector of float) +0:46 clamp (temp 2-component vector of float) +0:46 Construct vec2 (in 2-component vector of float) +0:46 Convert int to float (temp float) +0:46 i: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float (temp 2-component vector of float) +0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'r41' (temp 2-component vector of uint) +0:47 clamp (temp 2-component vector of uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 (in 2-component vector of uint) +0:47 u: direct index for structure (layout(offset=4 ) uniform uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'r42' (temp 2-component vector of float) +0:48 clamp (temp 2-component vector of float) +0:48 Convert bool to float (temp 2-component vector of float) +0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 f: direct index for structure (layout(offset=8 ) uniform float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 Convert bool to float (temp float) +0:48 b: direct index for structure (layout(offset=12 ) uniform bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child (temp 2-component vector of int) +0:49 'r43' (temp 2-component vector of int) +0:49 Convert uint to int (temp 2-component vector of int) +0:49 clamp (temp 2-component vector of uint) +0:49 Construct uvec2 (in 2-component vector of uint) +0:49 Convert int to uint (temp uint) +0:49 i: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint (temp 2-component vector of uint) +0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r50' (temp float) +0:51 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:51 Convert uint to int (temp int) +0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r51' (temp float) +0:52 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:52 Convert float to int (temp int) +0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 move second child to first child (temp int) +0:70 'WidthI' (temp int) +0:70 Convert uint to int (temp int) +0:70 'sizeQueryTemp' (temp uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'sizeQueryTemp' (temp uint) +0:71 textureSize (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child (temp int) +0:71 'WidthI' (temp int) +0:71 Convert uint to int (temp int) +0:71 'sizeQueryTemp' (temp uint) +0:71 move second child to first child (temp uint) +0:71 'NumberOfLevelsU' (temp uint) +0:71 textureQueryLevels (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:72 Sequence +0:72 move second child to first child (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 textureSize (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child (temp uint) +0:72 'WidthU' (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 move second child to first child (temp int) +0:72 'NumberOfLevelsI' (temp int) +0:72 Convert uint to int (temp int) +0:72 textureQueryLevels (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:73 Sequence +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child (temp int) +0:73 'WidthI' (temp int) +0:73 Convert uint to int (temp int) +0:73 'sizeQueryTemp' (temp uint) +0:73 move second child to first child (temp int) +0:73 'NumberOfLevelsI' (temp int) +0:73 Convert uint to int (temp int) +0:73 textureQueryLevels (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:77 move second child to first child (temp 4-component vector of float) +0:77 color: direct index for structure (temp 4-component vector of float) +0:77 'ps_output' (temp structure{temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 (temp 4-component vector of float) +0:77 'r00' (temp float) +0:78 Sequence +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:78 color: direct index for structure (temp 4-component vector of float) +0:78 'ps_output' (temp structure{temp 4-component vector of float color}) +0:78 Constant: +0:78 0 (const int) +0:78 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'r00' (temp float) +0:23 max (temp float) +0:23 Convert bool to float (temp float) +0:23 b: direct index for structure (layout(offset=12 ) uniform bool) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure (layout(offset=8 ) uniform float) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child (temp uint) +0:24 'r01' (temp uint) +0:24 max (temp uint) +0:24 Convert bool to uint (temp uint) +0:24 b: direct index for structure (layout(offset=12 ) uniform bool) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure (layout(offset=4 ) uniform uint) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child (temp int) +0:25 'r02' (temp int) +0:25 max (temp int) +0:25 Convert bool to int (temp int) +0:25 b: direct index for structure (layout(offset=12 ) uniform bool) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'r03' (temp float) +0:26 max (temp float) +0:26 Convert int to float (temp float) +0:26 i: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure (layout(offset=8 ) uniform float) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'r04' (temp float) +0:27 max (temp float) +0:27 Convert uint to float (temp float) +0:27 u: direct index for structure (layout(offset=4 ) uniform uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure (layout(offset=8 ) uniform float) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 2-component vector of float) +0:29 'r10' (temp 2-component vector of float) +0:29 max (temp 2-component vector of float) +0:29 Convert bool to float (temp 2-component vector of float) +0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 2-component vector of uint) +0:30 'r11' (temp 2-component vector of uint) +0:30 max (temp 2-component vector of uint) +0:30 Convert bool to uint (temp 2-component vector of uint) +0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 2-component vector of int) +0:31 'r12' (temp 2-component vector of int) +0:31 max (temp 2-component vector of int) +0:31 Convert bool to int (temp 2-component vector of int) +0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child (temp 2-component vector of float) +0:32 'r13' (temp 2-component vector of float) +0:32 max (temp 2-component vector of float) +0:32 Convert int to float (temp 2-component vector of float) +0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child (temp 2-component vector of float) +0:33 'r14' (temp 2-component vector of float) +0:33 max (temp 2-component vector of float) +0:33 Convert uint to float (temp 2-component vector of float) +0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child (temp 2-component vector of float) +0:35 'r20' (temp 2-component vector of float) +0:35 clamp (temp 2-component vector of float) +0:35 Convert int to float (temp 2-component vector of float) +0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float (temp 2-component vector of float) +0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child (temp 2-component vector of uint) +0:36 'r21' (temp 2-component vector of uint) +0:36 clamp (temp 2-component vector of uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child (temp 2-component vector of float) +0:37 'r22' (temp 2-component vector of float) +0:37 clamp (temp 2-component vector of float) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r30' (temp 2-component vector of float) +0:40 max (temp 2-component vector of float) +0:40 Construct vec2 (in 2-component vector of float) +0:40 Convert bool to float (temp float) +0:40 b: direct index for structure (layout(offset=12 ) uniform bool) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of uint) +0:41 'r31' (temp 2-component vector of uint) +0:41 max (temp 2-component vector of uint) +0:41 Construct uvec2 (in 2-component vector of uint) +0:41 Convert bool to uint (temp uint) +0:41 b: direct index for structure (layout(offset=12 ) uniform bool) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child (temp 2-component vector of int) +0:42 'r32' (temp 2-component vector of int) +0:42 max (temp 2-component vector of int) +0:42 Construct ivec2 (in 2-component vector of int) +0:42 Convert bool to int (temp int) +0:42 b: direct index for structure (layout(offset=12 ) uniform bool) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r33' (temp 2-component vector of float) +0:43 max (temp 2-component vector of float) +0:43 Construct vec2 (in 2-component vector of float) +0:43 Convert int to float (temp float) +0:43 i: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r34' (temp 2-component vector of float) +0:44 max (temp 2-component vector of float) +0:44 Construct vec2 (in 2-component vector of float) +0:44 Convert uint to float (temp float) +0:44 u: direct index for structure (layout(offset=4 ) uniform uint) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child (temp 2-component vector of float) +0:46 'r40' (temp 2-component vector of float) +0:46 clamp (temp 2-component vector of float) +0:46 Construct vec2 (in 2-component vector of float) +0:46 Convert int to float (temp float) +0:46 i: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float (temp 2-component vector of float) +0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'r41' (temp 2-component vector of uint) +0:47 clamp (temp 2-component vector of uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 (in 2-component vector of uint) +0:47 u: direct index for structure (layout(offset=4 ) uniform uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'r42' (temp 2-component vector of float) +0:48 clamp (temp 2-component vector of float) +0:48 Convert bool to float (temp 2-component vector of float) +0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 f: direct index for structure (layout(offset=8 ) uniform float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 Convert bool to float (temp float) +0:48 b: direct index for structure (layout(offset=12 ) uniform bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child (temp 2-component vector of int) +0:49 'r43' (temp 2-component vector of int) +0:49 Convert uint to int (temp 2-component vector of int) +0:49 clamp (temp 2-component vector of uint) +0:49 Construct uvec2 (in 2-component vector of uint) +0:49 Convert int to uint (temp uint) +0:49 i: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint (temp 2-component vector of uint) +0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r50' (temp float) +0:51 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:51 Convert uint to int (temp int) +0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r51' (temp float) +0:52 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:52 Convert float to int (temp int) +0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 move second child to first child (temp int) +0:70 'WidthI' (temp int) +0:70 Convert uint to int (temp int) +0:70 'sizeQueryTemp' (temp uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'sizeQueryTemp' (temp uint) +0:71 textureSize (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child (temp int) +0:71 'WidthI' (temp int) +0:71 Convert uint to int (temp int) +0:71 'sizeQueryTemp' (temp uint) +0:71 move second child to first child (temp uint) +0:71 'NumberOfLevelsU' (temp uint) +0:71 textureQueryLevels (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:72 Sequence +0:72 move second child to first child (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 textureSize (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child (temp uint) +0:72 'WidthU' (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 move second child to first child (temp int) +0:72 'NumberOfLevelsI' (temp int) +0:72 Convert uint to int (temp int) +0:72 textureQueryLevels (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:73 Sequence +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child (temp int) +0:73 'WidthI' (temp int) +0:73 Convert uint to int (temp int) +0:73 'sizeQueryTemp' (temp uint) +0:73 move second child to first child (temp int) +0:73 'NumberOfLevelsI' (temp int) +0:73 Convert uint to int (temp int) +0:73 textureQueryLevels (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:77 move second child to first child (temp 4-component vector of float) +0:77 color: direct index for structure (temp 4-component vector of float) +0:77 'ps_output' (temp structure{temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 (temp 4-component vector of float) +0:77 'r00' (temp float) +0:78 Sequence +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:78 color: direct index for structure (temp 4-component vector of float) +0:78 'ps_output' (temp structure{temp 4-component vector of float color}) +0:78 Constant: +0:78 0 (const int) +0:78 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 320 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 316 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 14 "$Global" + MemberName 14($Global) 0 "i" + MemberName 14($Global) 1 "u" + MemberName 14($Global) 2 "f" + MemberName 14($Global) 3 "b" + MemberName 14($Global) 4 "i2" + MemberName 14($Global) 5 "u2" + MemberName 14($Global) 6 "f2" + MemberName 14($Global) 7 "b2" + MemberName 14($Global) 8 "upos" + MemberName 14($Global) 9 "fpos" + Name 16 "" + Name 33 "r01" + Name 44 "r02" + Name 54 "r03" + Name 61 "r04" + Name 69 "r10" + Name 86 "r11" + Name 97 "r12" + Name 109 "r13" + Name 116 "r14" + Name 123 "r20" + Name 133 "r21" + Name 145 "r22" + Name 157 "r30" + Name 166 "r31" + Name 175 "r32" + Name 184 "r33" + Name 192 "r34" + Name 200 "r40" + Name 211 "r41" + Name 224 "r42" + Name 238 "r43" + Name 250 "r50" + Name 254 "g_tTexbfs" + Name 264 "r51" + Name 273 "sizeQueryTemp" + Name 276 "g_tTex1df4" + Name 279 "WidthI" + Name 282 "sizeQueryTemp" + Name 288 "NumberOfLevelsU" + Name 291 "sizeQueryTemp" + Name 294 "WidthU" + Name 296 "NumberOfLevelsI" + Name 300 "sizeQueryTemp" + Name 308 "PS_OUTPUT" + MemberName 308(PS_OUTPUT) 0 "color" + Name 310 "ps_output" + Name 316 "color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 4 + MemberDecorate 14($Global) 2 Offset 8 + MemberDecorate 14($Global) 3 Offset 12 + MemberDecorate 14($Global) 4 Offset 16 + MemberDecorate 14($Global) 5 Offset 24 + MemberDecorate 14($Global) 6 Offset 32 + MemberDecorate 14($Global) 7 Offset 40 + MemberDecorate 14($Global) 8 Offset 48 + MemberDecorate 14($Global) 9 Offset 52 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 254(g_tTexbfs) DescriptorSet 0 + Decorate 276(g_tTex1df4) DescriptorSet 0 + Decorate 316(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeInt 32 1 + 10: TypeInt 32 0 + 11: TypeVector 9(int) 2 + 12: TypeVector 10(int) 2 + 13: TypeVector 6(float) 2 + 14($Global): TypeStruct 9(int) 10(int) 6(float) 10(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) 10(int) 6(float) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 9(int) Constant 3 + 18: TypePointer Uniform 10(int) + 21: TypeBool + 22: 10(int) Constant 0 + 24: 6(float) Constant 0 + 25: 6(float) Constant 1065353216 + 27: 9(int) Constant 2 + 28: TypePointer Uniform 6(float) + 32: TypePointer Function 10(int) + 37: 10(int) Constant 1 + 39: 9(int) Constant 1 + 43: TypePointer Function 9(int) + 48: 9(int) Constant 0 + 50: TypePointer Uniform 9(int) + 68: TypePointer Function 13(fvec2) + 70: 9(int) Constant 7 + 71: TypePointer Uniform 12(ivec2) + 74: TypeVector 21(bool) 2 + 75: 12(ivec2) ConstantComposite 22 22 + 77: 13(fvec2) ConstantComposite 24 24 + 78: 13(fvec2) ConstantComposite 25 25 + 80: 9(int) Constant 6 + 81: TypePointer Uniform 13(fvec2) + 85: TypePointer Function 12(ivec2) + 90: 12(ivec2) ConstantComposite 37 37 + 92: 9(int) Constant 5 + 96: TypePointer Function 11(ivec2) + 101: 11(ivec2) ConstantComposite 48 48 + 102: 11(ivec2) ConstantComposite 39 39 + 104: 9(int) Constant 4 + 105: TypePointer Uniform 11(ivec2) + 251: TypeImage 6(float) Buffer sampled format:R32f + 252: TypeSampledImage 251 + 253: TypePointer UniformConstant 252 + 254(g_tTexbfs): 253(ptr) Variable UniformConstant + 256: 9(int) Constant 8 + 261: TypeVector 6(float) 4 + 266: 9(int) Constant 9 + 274: TypeImage 6(float) 1D sampled format:Unknown + 275: TypePointer UniformConstant 274 + 276(g_tTex1df4): 275(ptr) Variable UniformConstant + 284: 10(int) Constant 6 + 308(PS_OUTPUT): TypeStruct 261(fvec4) + 309: TypePointer Function 308(PS_OUTPUT) + 313: TypePointer Function 261(fvec4) + 315: TypePointer Output 261(fvec4) + 316(color): 315(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 33(r01): 32(ptr) Variable Function + 44(r02): 43(ptr) Variable Function + 54(r03): 7(ptr) Variable Function + 61(r04): 7(ptr) Variable Function + 69(r10): 68(ptr) Variable Function + 86(r11): 85(ptr) Variable Function + 97(r12): 96(ptr) Variable Function + 109(r13): 68(ptr) Variable Function + 116(r14): 68(ptr) Variable Function + 123(r20): 68(ptr) Variable Function + 133(r21): 85(ptr) Variable Function + 145(r22): 68(ptr) Variable Function + 157(r30): 68(ptr) Variable Function + 166(r31): 85(ptr) Variable Function + 175(r32): 96(ptr) Variable Function + 184(r33): 68(ptr) Variable Function + 192(r34): 68(ptr) Variable Function + 200(r40): 68(ptr) Variable Function + 211(r41): 85(ptr) Variable Function + 224(r42): 68(ptr) Variable Function + 238(r43): 96(ptr) Variable Function + 250(r50): 7(ptr) Variable Function + 264(r51): 7(ptr) Variable Function +273(sizeQueryTemp): 32(ptr) Variable Function + 279(WidthI): 43(ptr) Variable Function +282(sizeQueryTemp): 32(ptr) Variable Function +288(NumberOfLevelsU): 32(ptr) Variable Function +291(sizeQueryTemp): 32(ptr) Variable Function + 294(WidthU): 32(ptr) Variable Function +296(NumberOfLevelsI): 43(ptr) Variable Function +300(sizeQueryTemp): 32(ptr) Variable Function + 310(ps_output): 309(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 10(int) Load 19 + 23: 21(bool) INotEqual 20 22 + 26: 6(float) Select 23 25 24 + 29: 28(ptr) AccessChain 16 27 + 30: 6(float) Load 29 + 31: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 26 30 + Store 8(r00) 31 + 34: 18(ptr) AccessChain 16 17 + 35: 10(int) Load 34 + 36: 21(bool) INotEqual 35 22 + 38: 10(int) Select 36 37 22 + 40: 18(ptr) AccessChain 16 39 + 41: 10(int) Load 40 + 42: 10(int) ExtInst 1(GLSL.std.450) 41(UMax) 38 41 + Store 33(r01) 42 + 45: 18(ptr) AccessChain 16 17 + 46: 10(int) Load 45 + 47: 21(bool) INotEqual 46 22 + 49: 9(int) Select 47 39 48 + 51: 50(ptr) AccessChain 16 48 + 52: 9(int) Load 51 + 53: 9(int) ExtInst 1(GLSL.std.450) 42(SMax) 49 52 + Store 44(r02) 53 + 55: 50(ptr) AccessChain 16 48 + 56: 9(int) Load 55 + 57: 6(float) ConvertSToF 56 + 58: 28(ptr) AccessChain 16 27 + 59: 6(float) Load 58 + 60: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 57 59 + Store 54(r03) 60 + 62: 18(ptr) AccessChain 16 39 + 63: 10(int) Load 62 + 64: 6(float) ConvertUToF 63 + 65: 28(ptr) AccessChain 16 27 + 66: 6(float) Load 65 + 67: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 64 66 + Store 61(r04) 67 + 72: 71(ptr) AccessChain 16 70 + 73: 12(ivec2) Load 72 + 76: 74(bvec2) INotEqual 73 75 + 79: 13(fvec2) Select 76 78 77 + 82: 81(ptr) AccessChain 16 80 + 83: 13(fvec2) Load 82 + 84: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 79 83 + Store 69(r10) 84 + 87: 71(ptr) AccessChain 16 70 + 88: 12(ivec2) Load 87 + 89: 74(bvec2) INotEqual 88 75 + 91: 12(ivec2) Select 89 90 75 + 93: 71(ptr) AccessChain 16 92 + 94: 12(ivec2) Load 93 + 95: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 91 94 + Store 86(r11) 95 + 98: 71(ptr) AccessChain 16 70 + 99: 12(ivec2) Load 98 + 100: 74(bvec2) INotEqual 99 75 + 103: 11(ivec2) Select 100 102 101 + 106: 105(ptr) AccessChain 16 104 + 107: 11(ivec2) Load 106 + 108: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 103 107 + Store 97(r12) 108 + 110: 105(ptr) AccessChain 16 104 + 111: 11(ivec2) Load 110 + 112: 13(fvec2) ConvertSToF 111 + 113: 81(ptr) AccessChain 16 80 + 114: 13(fvec2) Load 113 + 115: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 112 114 + Store 109(r13) 115 + 117: 71(ptr) AccessChain 16 92 + 118: 12(ivec2) Load 117 + 119: 13(fvec2) ConvertUToF 118 + 120: 81(ptr) AccessChain 16 80 + 121: 13(fvec2) Load 120 + 122: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 119 121 + Store 116(r14) 122 + 124: 105(ptr) AccessChain 16 104 + 125: 11(ivec2) Load 124 + 126: 13(fvec2) ConvertSToF 125 + 127: 71(ptr) AccessChain 16 92 + 128: 12(ivec2) Load 127 + 129: 13(fvec2) ConvertUToF 128 + 130: 81(ptr) AccessChain 16 80 + 131: 13(fvec2) Load 130 + 132: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 126 129 131 + Store 123(r20) 132 + 134: 71(ptr) AccessChain 16 70 + 135: 12(ivec2) Load 134 + 136: 74(bvec2) INotEqual 135 75 + 137: 12(ivec2) Select 136 90 75 + 138: 71(ptr) AccessChain 16 92 + 139: 12(ivec2) Load 138 + 140: 71(ptr) AccessChain 16 70 + 141: 12(ivec2) Load 140 + 142: 74(bvec2) INotEqual 141 75 + 143: 12(ivec2) Select 142 90 75 + 144: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 137 139 143 + Store 133(r21) 144 + 146: 71(ptr) AccessChain 16 70 + 147: 12(ivec2) Load 146 + 148: 74(bvec2) INotEqual 147 75 + 149: 13(fvec2) Select 148 78 77 + 150: 81(ptr) AccessChain 16 80 + 151: 13(fvec2) Load 150 + 152: 71(ptr) AccessChain 16 70 + 153: 12(ivec2) Load 152 + 154: 74(bvec2) INotEqual 153 75 + 155: 13(fvec2) Select 154 78 77 + 156: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 149 151 155 + Store 145(r22) 156 + 158: 18(ptr) AccessChain 16 17 + 159: 10(int) Load 158 + 160: 21(bool) INotEqual 159 22 + 161: 6(float) Select 160 25 24 + 162: 13(fvec2) CompositeConstruct 161 161 + 163: 81(ptr) AccessChain 16 80 + 164: 13(fvec2) Load 163 + 165: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 162 164 + Store 157(r30) 165 + 167: 18(ptr) AccessChain 16 17 + 168: 10(int) Load 167 + 169: 21(bool) INotEqual 168 22 + 170: 10(int) Select 169 37 22 + 171: 12(ivec2) CompositeConstruct 170 170 + 172: 71(ptr) AccessChain 16 92 + 173: 12(ivec2) Load 172 + 174: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 171 173 + Store 166(r31) 174 + 176: 18(ptr) AccessChain 16 17 + 177: 10(int) Load 176 + 178: 21(bool) INotEqual 177 22 + 179: 9(int) Select 178 39 48 + 180: 11(ivec2) CompositeConstruct 179 179 + 181: 105(ptr) AccessChain 16 104 + 182: 11(ivec2) Load 181 + 183: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 180 182 + Store 175(r32) 183 + 185: 50(ptr) AccessChain 16 48 + 186: 9(int) Load 185 + 187: 6(float) ConvertSToF 186 + 188: 13(fvec2) CompositeConstruct 187 187 + 189: 81(ptr) AccessChain 16 80 + 190: 13(fvec2) Load 189 + 191: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 188 190 + Store 184(r33) 191 + 193: 18(ptr) AccessChain 16 39 + 194: 10(int) Load 193 + 195: 6(float) ConvertUToF 194 + 196: 13(fvec2) CompositeConstruct 195 195 + 197: 81(ptr) AccessChain 16 80 + 198: 13(fvec2) Load 197 + 199: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 196 198 + Store 192(r34) 199 + 201: 50(ptr) AccessChain 16 48 + 202: 9(int) Load 201 + 203: 6(float) ConvertSToF 202 + 204: 13(fvec2) CompositeConstruct 203 203 + 205: 71(ptr) AccessChain 16 92 + 206: 12(ivec2) Load 205 + 207: 13(fvec2) ConvertUToF 206 + 208: 81(ptr) AccessChain 16 80 + 209: 13(fvec2) Load 208 + 210: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 204 207 209 + Store 200(r40) 210 + 212: 71(ptr) AccessChain 16 70 + 213: 12(ivec2) Load 212 + 214: 74(bvec2) INotEqual 213 75 + 215: 12(ivec2) Select 214 90 75 + 216: 18(ptr) AccessChain 16 39 + 217: 10(int) Load 216 + 218: 12(ivec2) CompositeConstruct 217 217 + 219: 71(ptr) AccessChain 16 70 + 220: 12(ivec2) Load 219 + 221: 74(bvec2) INotEqual 220 75 + 222: 12(ivec2) Select 221 90 75 + 223: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 215 218 222 + Store 211(r41) 223 + 225: 71(ptr) AccessChain 16 70 + 226: 12(ivec2) Load 225 + 227: 74(bvec2) INotEqual 226 75 + 228: 13(fvec2) Select 227 78 77 + 229: 28(ptr) AccessChain 16 27 + 230: 6(float) Load 229 + 231: 13(fvec2) CompositeConstruct 230 230 + 232: 18(ptr) AccessChain 16 17 + 233: 10(int) Load 232 + 234: 21(bool) INotEqual 233 22 + 235: 6(float) Select 234 25 24 + 236: 13(fvec2) CompositeConstruct 235 235 + 237: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 228 231 236 + Store 224(r42) 237 + 239: 50(ptr) AccessChain 16 48 + 240: 9(int) Load 239 + 241: 10(int) Bitcast 240 + 242: 12(ivec2) CompositeConstruct 241 241 + 243: 105(ptr) AccessChain 16 104 + 244: 11(ivec2) Load 243 + 245: 12(ivec2) Bitcast 244 + 246: 71(ptr) AccessChain 16 92 + 247: 12(ivec2) Load 246 + 248: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 242 245 247 + 249: 11(ivec2) Bitcast 248 + Store 238(r43) 249 + 255: 252 Load 254(g_tTexbfs) + 257: 18(ptr) AccessChain 16 256 + 258: 10(int) Load 257 + 259: 9(int) Bitcast 258 + 260: 251 Image 255 + 262: 261(fvec4) ImageFetch 260 259 + 263: 6(float) CompositeExtract 262 0 + Store 250(r50) 263 + 265: 252 Load 254(g_tTexbfs) + 267: 28(ptr) AccessChain 16 266 + 268: 6(float) Load 267 + 269: 9(int) ConvertFToS 268 + 270: 251 Image 265 + 271: 261(fvec4) ImageFetch 270 269 + 272: 6(float) CompositeExtract 271 0 + Store 264(r51) 272 + 277: 274 Load 276(g_tTex1df4) + 278: 9(int) ImageQuerySize 277 + Store 273(sizeQueryTemp) 278 + 280: 10(int) Load 273(sizeQueryTemp) + 281: 9(int) Bitcast 280 + Store 279(WidthI) 281 + 283: 274 Load 276(g_tTex1df4) + 285: 9(int) ImageQuerySizeLod 283 284 + Store 282(sizeQueryTemp) 285 + 286: 10(int) Load 282(sizeQueryTemp) + 287: 9(int) Bitcast 286 + Store 279(WidthI) 287 + 289: 274 Load 276(g_tTex1df4) + 290: 9(int) ImageQueryLevels 289 + Store 288(NumberOfLevelsU) 290 + 292: 274 Load 276(g_tTex1df4) + 293: 9(int) ImageQuerySizeLod 292 284 + Store 291(sizeQueryTemp) 293 + 295: 10(int) Load 291(sizeQueryTemp) + Store 294(WidthU) 295 + 297: 274 Load 276(g_tTex1df4) + 298: 9(int) ImageQueryLevels 297 + 299: 9(int) Bitcast 298 + Store 296(NumberOfLevelsI) 299 + 301: 274 Load 276(g_tTex1df4) + 302: 9(int) ImageQuerySizeLod 301 284 + Store 300(sizeQueryTemp) 302 + 303: 10(int) Load 300(sizeQueryTemp) + 304: 9(int) Bitcast 303 + Store 279(WidthI) 304 + 305: 274 Load 276(g_tTex1df4) + 306: 9(int) ImageQueryLevels 305 + 307: 9(int) Bitcast 306 + Store 296(NumberOfLevelsI) 307 + 311: 6(float) Load 8(r00) + 312: 261(fvec4) CompositeConstruct 311 311 311 311 + 314: 313(ptr) AccessChain 310(ps_output) 48 + Store 314 312 + 317: 313(ptr) AccessChain 310(ps_output) 48 + 318: 261(fvec4) Load 317 + Store 316(color) 318 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out new file mode 100644 index 0000000000..ebe6a24c83 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -0,0 +1,337 @@ +hlsl.intrinsics.promote.outputs.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp (temp float) +0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child (temp uint) +0:40 'sizeQueryTemp' (temp uint) +0:40 textureSize (temp uint) +0:40 'g_tTex1df4' (uniform texture1D) +0:40 move second child to first child (temp int) +0:40 'WidthI' (temp int) +0:40 Convert uint to int (temp int) +0:40 'sizeQueryTemp' (temp uint) +0:41 Sequence +0:41 move second child to first child (temp uint) +0:41 'sizeQueryTemp' (temp uint) +0:41 textureSize (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child (temp int) +0:41 'WidthI' (temp int) +0:41 Convert uint to int (temp int) +0:41 'sizeQueryTemp' (temp uint) +0:41 move second child to first child (temp uint) +0:41 'NumberOfLevelsU' (temp uint) +0:41 textureQueryLevels (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:42 Sequence +0:42 move second child to first child (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 textureSize (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child (temp uint) +0:42 'WidthU' (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 move second child to first child (temp int) +0:42 'NumberOfLevelsI' (temp int) +0:42 Convert uint to int (temp int) +0:42 textureQueryLevels (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:43 Sequence +0:43 move second child to first child (temp uint) +0:43 'sizeQueryTemp' (temp uint) +0:43 textureSize (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child (temp int) +0:43 'WidthI' (temp int) +0:43 Convert uint to int (temp int) +0:43 'sizeQueryTemp' (temp uint) +0:43 move second child to first child (temp int) +0:43 'NumberOfLevelsI' (temp int) +0:43 Convert uint to int (temp int) +0:43 textureQueryLevels (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:47 move second child to first child (temp 4-component vector of float) +0:47 color: direct index for structure (temp 4-component vector of float) +0:47 'ps_output' (temp structure{temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:48 color: direct index for structure (temp 4-component vector of float) +0:48 'ps_output' (temp structure{temp 4-component vector of float color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp (temp float) +0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child (temp uint) +0:40 'sizeQueryTemp' (temp uint) +0:40 textureSize (temp uint) +0:40 'g_tTex1df4' (uniform texture1D) +0:40 move second child to first child (temp int) +0:40 'WidthI' (temp int) +0:40 Convert uint to int (temp int) +0:40 'sizeQueryTemp' (temp uint) +0:41 Sequence +0:41 move second child to first child (temp uint) +0:41 'sizeQueryTemp' (temp uint) +0:41 textureSize (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child (temp int) +0:41 'WidthI' (temp int) +0:41 Convert uint to int (temp int) +0:41 'sizeQueryTemp' (temp uint) +0:41 move second child to first child (temp uint) +0:41 'NumberOfLevelsU' (temp uint) +0:41 textureQueryLevels (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:42 Sequence +0:42 move second child to first child (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 textureSize (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child (temp uint) +0:42 'WidthU' (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 move second child to first child (temp int) +0:42 'NumberOfLevelsI' (temp int) +0:42 Convert uint to int (temp int) +0:42 textureQueryLevels (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:43 Sequence +0:43 move second child to first child (temp uint) +0:43 'sizeQueryTemp' (temp uint) +0:43 textureSize (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child (temp int) +0:43 'WidthI' (temp int) +0:43 Convert uint to int (temp int) +0:43 'sizeQueryTemp' (temp uint) +0:43 move second child to first child (temp int) +0:43 'NumberOfLevelsI' (temp int) +0:43 Convert uint to int (temp int) +0:43 textureQueryLevels (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:47 move second child to first child (temp 4-component vector of float) +0:47 color: direct index for structure (temp 4-component vector of float) +0:47 'ps_output' (temp structure{temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:48 color: direct index for structure (temp 4-component vector of float) +0:48 'ps_output' (temp structure{temp 4-component vector of float color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 76 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 68 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "$Global" + MemberName 12($Global) 0 "i" + MemberName 12($Global) 1 "u" + MemberName 12($Global) 2 "f" + MemberName 12($Global) 3 "b" + MemberName 12($Global) 4 "i2" + MemberName 12($Global) 5 "u2" + MemberName 12($Global) 6 "f2" + MemberName 12($Global) 7 "b2" + MemberName 12($Global) 8 "upos" + MemberName 12($Global) 9 "fpos" + Name 14 "" + Name 23 "sizeQueryTemp" + Name 26 "g_tTex1df4" + Name 30 "WidthI" + Name 33 "sizeQueryTemp" + Name 39 "NumberOfLevelsU" + Name 42 "sizeQueryTemp" + Name 45 "WidthU" + Name 47 "NumberOfLevelsI" + Name 51 "sizeQueryTemp" + Name 60 "PS_OUTPUT" + MemberName 60(PS_OUTPUT) 0 "color" + Name 62 "ps_output" + Name 68 "color" + Name 75 "g_tTexbfs" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 4 + MemberDecorate 12($Global) 2 Offset 8 + MemberDecorate 12($Global) 3 Offset 12 + MemberDecorate 12($Global) 4 Offset 16 + MemberDecorate 12($Global) 5 Offset 24 + MemberDecorate 12($Global) 6 Offset 32 + MemberDecorate 12($Global) 7 Offset 40 + MemberDecorate 12($Global) 8 Offset 48 + MemberDecorate 12($Global) 9 Offset 52 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 26(g_tTex1df4) DescriptorSet 0 + Decorate 68(color) Location 0 + Decorate 75(g_tTexbfs) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: TypeFloat 32 + 9: TypeVector 6(int) 2 + 10: TypeVector 7(int) 2 + 11: TypeVector 8(float) 2 + 12($Global): TypeStruct 6(int) 7(int) 8(float) 7(int) 9(ivec2) 10(ivec2) 11(fvec2) 10(ivec2) 7(int) 8(float) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: 6(int) Constant 9 + 16: TypePointer Uniform 8(float) + 19: 8(float) Constant 0 + 20: 8(float) Constant 1065353216 + 22: TypePointer Function 7(int) + 24: TypeImage 8(float) 1D sampled format:Unknown + 25: TypePointer UniformConstant 24 + 26(g_tTex1df4): 25(ptr) Variable UniformConstant + 29: TypePointer Function 6(int) + 35: 7(int) Constant 6 + 59: TypeVector 8(float) 4 + 60(PS_OUTPUT): TypeStruct 59(fvec4) + 61: TypePointer Function 60(PS_OUTPUT) + 63: 6(int) Constant 0 + 64: 59(fvec4) ConstantComposite 19 19 19 19 + 65: TypePointer Function 59(fvec4) + 67: TypePointer Output 59(fvec4) + 68(color): 67(ptr) Variable Output + 72: TypeImage 8(float) Buffer sampled format:R32f + 73: TypeSampledImage 72 + 74: TypePointer UniformConstant 73 + 75(g_tTexbfs): 74(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +23(sizeQueryTemp): 22(ptr) Variable Function + 30(WidthI): 29(ptr) Variable Function +33(sizeQueryTemp): 22(ptr) Variable Function +39(NumberOfLevelsU): 22(ptr) Variable Function +42(sizeQueryTemp): 22(ptr) Variable Function + 45(WidthU): 22(ptr) Variable Function +47(NumberOfLevelsI): 29(ptr) Variable Function +51(sizeQueryTemp): 22(ptr) Variable Function + 62(ps_output): 61(ptr) Variable Function + 17: 16(ptr) AccessChain 14 15 + 18: 8(float) Load 17 + 21: 8(float) ExtInst 1(GLSL.std.450) 43(FClamp) 18 19 20 + 27: 24 Load 26(g_tTex1df4) + 28: 6(int) ImageQuerySize 27 + Store 23(sizeQueryTemp) 28 + 31: 7(int) Load 23(sizeQueryTemp) + 32: 6(int) Bitcast 31 + Store 30(WidthI) 32 + 34: 24 Load 26(g_tTex1df4) + 36: 6(int) ImageQuerySizeLod 34 35 + Store 33(sizeQueryTemp) 36 + 37: 7(int) Load 33(sizeQueryTemp) + 38: 6(int) Bitcast 37 + Store 30(WidthI) 38 + 40: 24 Load 26(g_tTex1df4) + 41: 6(int) ImageQueryLevels 40 + Store 39(NumberOfLevelsU) 41 + 43: 24 Load 26(g_tTex1df4) + 44: 6(int) ImageQuerySizeLod 43 35 + Store 42(sizeQueryTemp) 44 + 46: 7(int) Load 42(sizeQueryTemp) + Store 45(WidthU) 46 + 48: 24 Load 26(g_tTex1df4) + 49: 6(int) ImageQueryLevels 48 + 50: 6(int) Bitcast 49 + Store 47(NumberOfLevelsI) 50 + 52: 24 Load 26(g_tTex1df4) + 53: 6(int) ImageQuerySizeLod 52 35 + Store 51(sizeQueryTemp) 53 + 54: 7(int) Load 51(sizeQueryTemp) + 55: 6(int) Bitcast 54 + Store 30(WidthI) 55 + 56: 24 Load 26(g_tTex1df4) + 57: 6(int) ImageQueryLevels 56 + 58: 6(int) Bitcast 57 + Store 47(NumberOfLevelsI) 58 + 66: 65(ptr) AccessChain 62(ps_output) 63 + Store 66 64 + 69: 65(ptr) AccessChain 62(ps_output) 63 + 70: 59(fvec4) Load 69 + Store 68(color) 70 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.vert.out new file mode 100644 index 0000000000..84146e660e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.intrinsics.vert.out @@ -0,0 +1,4238 @@ +hlsl.intrinsics.vert +Shader version: 450 +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 '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 '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 frexp (temp float) +0:31 'inF0' (in float) +0:31 'inF1' (in float) +0:32 isinf (temp bool) +0:32 'inF0' (in float) +0:33 isnan (temp bool) +0:33 'inF0' (in float) +0:34 ldexp (temp float) +0:34 'inF0' (in float) +0:34 'inF1' (in float) +0:35 mix (temp float) +0:35 'inF0' (in float) +0:35 'inF1' (in float) +0:35 'inF2' (in float) +0:36 log (temp float) +0:36 'inF0' (in float) +0:37 component-wise multiply (temp float) +0:37 log2 (temp float) +0:37 'inF0' (in float) +0:37 Constant: +0:37 0.301030 +0:38 log2 (temp float) +0:38 'inF0' (in float) +0:39 max (temp float) +0:39 'inF0' (in float) +0:39 'inF1' (in float) +0:40 min (temp float) +0:40 'inF0' (in float) +0:40 'inF1' (in float) +0:42 pow (temp float) +0:42 'inF0' (in float) +0:42 'inF1' (in float) +0:43 radians (temp float) +0:43 'inF0' (in float) +0:44 bitFieldReverse (temp int) +0:44 Constant: +0:44 2 (const int) +0:45 roundEven (temp float) +0:45 'inF0' (in float) +0:46 inverse sqrt (temp float) +0:46 'inF0' (in float) +0:47 clamp (temp float) +0:47 'inF0' (in float) +0:47 Constant: +0:47 0.000000 +0:47 Constant: +0:47 1.000000 +0:48 Sign (temp float) +0:48 'inF0' (in float) +0:49 sine (temp float) +0:49 'inF0' (in float) +0:50 Sequence +0:50 move second child to first child (temp float) +0:50 'inF1' (in float) +0:50 sine (temp float) +0:50 'inF0' (in float) +0:50 move second child to first child (temp float) +0:50 'inF2' (in float) +0:50 cosine (temp float) +0:50 'inF0' (in float) +0:51 hyp. sine (temp float) +0:51 'inF0' (in float) +0:52 smoothstep (temp float) +0:52 'inF0' (in float) +0:52 'inF1' (in float) +0:52 'inF2' (in float) +0:53 sqrt (temp float) +0:53 'inF0' (in float) +0:54 step (temp float) +0:54 'inF0' (in float) +0:54 'inF1' (in float) +0:55 tangent (temp float) +0:55 'inF0' (in float) +0:56 hyp. tangent (temp float) +0:56 'inF0' (in float) +0:58 trunc (temp float) +0:58 'inF0' (in float) +0:60 Branch: Return with expression +0:60 Constant: +0:60 0.000000 +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) +0:64 Function Parameters: +0:64 'inF0' (in 1-component vector of float) +0:64 'inF1' (in 1-component vector of float) +0:64 'inF2' (in 1-component vector of float) +0:? Sequence +0:66 Branch: Return with expression +0:66 Constant: +0:66 0.000000 +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:70 Function Parameters: +0:70 'inF0' (in 2-component vector of float) +0:70 'inF1' (in 2-component vector of float) +0:70 'inF2' (in 2-component vector of float) +0:70 'inU0' (in 2-component vector of uint) +0:70 'inU1' (in 2-component vector of uint) +0:? Sequence +0:71 all (temp bool) +0:71 'inF0' (in 2-component vector of float) +0:72 Absolute value (temp 2-component vector of float) +0:72 'inF0' (in 2-component vector of float) +0:73 arc cosine (temp 2-component vector of float) +0:73 'inF0' (in 2-component vector of float) +0:74 any (temp bool) +0:74 'inF0' (in 2-component vector of float) +0:75 arc sine (temp 2-component vector of float) +0:75 'inF0' (in 2-component vector of float) +0:76 floatBitsToInt (temp 2-component vector of int) +0:76 'inF0' (in 2-component vector of float) +0:77 floatBitsToUint (temp 2-component vector of uint) +0:77 'inF0' (in 2-component vector of float) +0:78 intBitsToFloat (temp 2-component vector of float) +0:78 'inU0' (in 2-component vector of uint) +0:80 arc tangent (temp 2-component vector of float) +0:80 'inF0' (in 2-component vector of float) +0:81 arc tangent (temp 2-component vector of float) +0:81 'inF0' (in 2-component vector of float) +0:81 'inF1' (in 2-component vector of float) +0:82 Ceiling (temp 2-component vector of float) +0:82 'inF0' (in 2-component vector of float) +0:83 clamp (temp 2-component vector of float) +0:83 'inF0' (in 2-component vector of float) +0:83 'inF1' (in 2-component vector of float) +0:83 'inF2' (in 2-component vector of float) +0:84 cosine (temp 2-component vector of float) +0:84 'inF0' (in 2-component vector of float) +0:85 hyp. cosine (temp 2-component vector of float) +0:85 'inF0' (in 2-component vector of float) +0:? bitCount (temp 2-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:87 degrees (temp 2-component vector of float) +0:87 'inF0' (in 2-component vector of float) +0:88 distance (temp float) +0:88 'inF0' (in 2-component vector of float) +0:88 'inF1' (in 2-component vector of float) +0:89 dot-product (temp float) +0:89 'inF0' (in 2-component vector of float) +0:89 'inF1' (in 2-component vector of float) +0:93 exp (temp 2-component vector of float) +0:93 'inF0' (in 2-component vector of float) +0:94 exp2 (temp 2-component vector of float) +0:94 'inF0' (in 2-component vector of float) +0:95 face-forward (temp 2-component vector of float) +0:95 'inF0' (in 2-component vector of float) +0:95 'inF1' (in 2-component vector of float) +0:95 'inF2' (in 2-component vector of float) +0:96 findMSB (temp int) +0:96 Constant: +0:96 7 (const int) +0:97 findLSB (temp int) +0:97 Constant: +0:97 7 (const int) +0:98 Floor (temp 2-component vector of float) +0:98 'inF0' (in 2-component vector of float) +0:100 mod (temp 2-component vector of float) +0:100 'inF0' (in 2-component vector of float) +0:100 'inF1' (in 2-component vector of float) +0:101 Fraction (temp 2-component vector of float) +0:101 'inF0' (in 2-component vector of float) +0:102 frexp (temp 2-component vector of float) +0:102 'inF0' (in 2-component vector of float) +0:102 'inF1' (in 2-component vector of float) +0:103 isinf (temp 2-component vector of bool) +0:103 'inF0' (in 2-component vector of float) +0:104 isnan (temp 2-component vector of bool) +0:104 'inF0' (in 2-component vector of float) +0:105 ldexp (temp 2-component vector of float) +0:105 'inF0' (in 2-component vector of float) +0:105 'inF1' (in 2-component vector of float) +0:106 mix (temp 2-component vector of float) +0:106 'inF0' (in 2-component vector of float) +0:106 'inF1' (in 2-component vector of float) +0:106 'inF2' (in 2-component vector of float) +0:107 length (temp float) +0:107 'inF0' (in 2-component vector of float) +0:108 log (temp 2-component vector of float) +0:108 'inF0' (in 2-component vector of float) +0:109 vector-scale (temp 2-component vector of float) +0:109 log2 (temp 2-component vector of float) +0:109 'inF0' (in 2-component vector of float) +0:109 Constant: +0:109 0.301030 +0:110 log2 (temp 2-component vector of float) +0:110 'inF0' (in 2-component vector of float) +0:111 max (temp 2-component vector of float) +0:111 'inF0' (in 2-component vector of float) +0:111 'inF1' (in 2-component vector of float) +0:112 min (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) +0:112 'inF1' (in 2-component vector of float) +0:114 normalize (temp 2-component vector of float) +0:114 'inF0' (in 2-component vector of float) +0:115 pow (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) +0:115 'inF1' (in 2-component vector of float) +0:116 radians (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) +0:117 reflect (temp 2-component vector of float) +0:117 'inF0' (in 2-component vector of float) +0:117 'inF1' (in 2-component vector of float) +0:118 refract (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) +0:118 'inF1' (in 2-component vector of float) +0:118 Constant: +0:118 2.000000 +0:? bitFieldReverse (temp 2-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:120 roundEven (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) +0:121 inverse sqrt (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) +0:122 clamp (temp 2-component vector of float) +0:122 'inF0' (in 2-component vector of float) +0:122 Constant: +0:122 0.000000 +0:122 Constant: +0:122 1.000000 +0:123 Sign (temp 2-component vector of float) +0:123 'inF0' (in 2-component vector of float) +0:124 sine (temp 2-component vector of float) +0:124 'inF0' (in 2-component vector of float) +0:125 Sequence +0:125 move second child to first child (temp 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:125 sine (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:125 move second child to first child (temp 2-component vector of float) +0:125 'inF2' (in 2-component vector of float) +0:125 cosine (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:126 hyp. sine (temp 2-component vector of float) +0:126 'inF0' (in 2-component vector of float) +0:127 smoothstep (temp 2-component vector of float) +0:127 'inF0' (in 2-component vector of float) +0:127 'inF1' (in 2-component vector of float) +0:127 'inF2' (in 2-component vector of float) +0:128 sqrt (temp 2-component vector of float) +0:128 'inF0' (in 2-component vector of float) +0:129 step (temp 2-component vector of float) +0:129 'inF0' (in 2-component vector of float) +0:129 'inF1' (in 2-component vector of float) +0:130 tangent (temp 2-component vector of float) +0:130 'inF0' (in 2-component vector of float) +0:131 hyp. tangent (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) +0:133 trunc (temp 2-component vector of float) +0:133 'inF0' (in 2-component vector of float) +0:136 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:140 Function Parameters: +0:140 'inF0' (in 3-component vector of float) +0:140 'inF1' (in 3-component vector of float) +0:140 'inF2' (in 3-component vector of float) +0:140 'inU0' (in 3-component vector of uint) +0:140 'inU1' (in 3-component vector of uint) +0:? Sequence +0:141 all (temp bool) +0:141 'inF0' (in 3-component vector of float) +0:142 Absolute value (temp 3-component vector of float) +0:142 'inF0' (in 3-component vector of float) +0:143 arc cosine (temp 3-component vector of float) +0:143 'inF0' (in 3-component vector of float) +0:144 any (temp bool) +0:144 'inF0' (in 3-component vector of float) +0:145 arc sine (temp 3-component vector of float) +0:145 'inF0' (in 3-component vector of float) +0:146 floatBitsToInt (temp 3-component vector of int) +0:146 'inF0' (in 3-component vector of float) +0:147 floatBitsToUint (temp 3-component vector of uint) +0:147 'inF0' (in 3-component vector of float) +0:148 intBitsToFloat (temp 3-component vector of float) +0:148 'inU0' (in 3-component vector of uint) +0:150 arc tangent (temp 3-component vector of float) +0:150 'inF0' (in 3-component vector of float) +0:151 arc tangent (temp 3-component vector of float) +0:151 'inF0' (in 3-component vector of float) +0:151 'inF1' (in 3-component vector of float) +0:152 Ceiling (temp 3-component vector of float) +0:152 'inF0' (in 3-component vector of float) +0:153 clamp (temp 3-component vector of float) +0:153 'inF0' (in 3-component vector of float) +0:153 'inF1' (in 3-component vector of float) +0:153 'inF2' (in 3-component vector of float) +0:154 cosine (temp 3-component vector of float) +0:154 'inF0' (in 3-component vector of float) +0:155 hyp. cosine (temp 3-component vector of float) +0:155 'inF0' (in 3-component vector of float) +0:? bitCount (temp 3-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:157 cross-product (temp 3-component vector of float) +0:157 'inF0' (in 3-component vector of float) +0:157 'inF1' (in 3-component vector of float) +0:158 degrees (temp 3-component vector of float) +0:158 'inF0' (in 3-component vector of float) +0:159 distance (temp float) +0:159 'inF0' (in 3-component vector of float) +0:159 'inF1' (in 3-component vector of float) +0:160 dot-product (temp float) +0:160 'inF0' (in 3-component vector of float) +0:160 'inF1' (in 3-component vector of float) +0:164 exp (temp 3-component vector of float) +0:164 'inF0' (in 3-component vector of float) +0:165 exp2 (temp 3-component vector of float) +0:165 'inF0' (in 3-component vector of float) +0:166 face-forward (temp 3-component vector of float) +0:166 'inF0' (in 3-component vector of float) +0:166 'inF1' (in 3-component vector of float) +0:166 'inF2' (in 3-component vector of float) +0:167 findMSB (temp int) +0:167 Constant: +0:167 7 (const int) +0:168 findLSB (temp int) +0:168 Constant: +0:168 7 (const int) +0:169 Floor (temp 3-component vector of float) +0:169 'inF0' (in 3-component vector of float) +0:171 mod (temp 3-component vector of float) +0:171 'inF0' (in 3-component vector of float) +0:171 'inF1' (in 3-component vector of float) +0:172 Fraction (temp 3-component vector of float) +0:172 'inF0' (in 3-component vector of float) +0:173 frexp (temp 3-component vector of float) +0:173 'inF0' (in 3-component vector of float) +0:173 'inF1' (in 3-component vector of float) +0:174 isinf (temp 3-component vector of bool) +0:174 'inF0' (in 3-component vector of float) +0:175 isnan (temp 3-component vector of bool) +0:175 'inF0' (in 3-component vector of float) +0:176 ldexp (temp 3-component vector of float) +0:176 'inF0' (in 3-component vector of float) +0:176 'inF1' (in 3-component vector of float) +0:177 mix (temp 3-component vector of float) +0:177 'inF0' (in 3-component vector of float) +0:177 'inF1' (in 3-component vector of float) +0:177 'inF2' (in 3-component vector of float) +0:178 length (temp float) +0:178 'inF0' (in 3-component vector of float) +0:179 log (temp 3-component vector of float) +0:179 'inF0' (in 3-component vector of float) +0:180 vector-scale (temp 3-component vector of float) +0:180 log2 (temp 3-component vector of float) +0:180 'inF0' (in 3-component vector of float) +0:180 Constant: +0:180 0.301030 +0:181 log2 (temp 3-component vector of float) +0:181 'inF0' (in 3-component vector of float) +0:182 max (temp 3-component vector of float) +0:182 'inF0' (in 3-component vector of float) +0:182 'inF1' (in 3-component vector of float) +0:183 min (temp 3-component vector of float) +0:183 'inF0' (in 3-component vector of float) +0:183 'inF1' (in 3-component vector of float) +0:185 normalize (temp 3-component vector of float) +0:185 'inF0' (in 3-component vector of float) +0:186 pow (temp 3-component vector of float) +0:186 'inF0' (in 3-component vector of float) +0:186 'inF1' (in 3-component vector of float) +0:187 radians (temp 3-component vector of float) +0:187 'inF0' (in 3-component vector of float) +0:188 reflect (temp 3-component vector of float) +0:188 'inF0' (in 3-component vector of float) +0:188 'inF1' (in 3-component vector of float) +0:189 refract (temp 3-component vector of float) +0:189 'inF0' (in 3-component vector of float) +0:189 'inF1' (in 3-component vector of float) +0:189 Constant: +0:189 2.000000 +0:? bitFieldReverse (temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:191 roundEven (temp 3-component vector of float) +0:191 'inF0' (in 3-component vector of float) +0:192 inverse sqrt (temp 3-component vector of float) +0:192 'inF0' (in 3-component vector of float) +0:193 clamp (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 1.000000 +0:194 Sign (temp 3-component vector of float) +0:194 'inF0' (in 3-component vector of float) +0:195 sine (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) +0:196 Sequence +0:196 move second child to first child (temp 3-component vector of float) +0:196 'inF1' (in 3-component vector of float) +0:196 sine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:196 move second child to first child (temp 3-component vector of float) +0:196 'inF2' (in 3-component vector of float) +0:196 cosine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:197 hyp. sine (temp 3-component vector of float) +0:197 'inF0' (in 3-component vector of float) +0:198 smoothstep (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) +0:198 'inF1' (in 3-component vector of float) +0:198 'inF2' (in 3-component vector of float) +0:199 sqrt (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) +0:200 step (temp 3-component vector of float) +0:200 'inF0' (in 3-component vector of float) +0:200 'inF1' (in 3-component vector of float) +0:201 tangent (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) +0:202 hyp. tangent (temp 3-component vector of float) +0:202 'inF0' (in 3-component vector of float) +0:204 trunc (temp 3-component vector of float) +0:204 'inF0' (in 3-component vector of float) +0:207 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:211 Function Parameters: +0:211 'inF0' (in 4-component vector of float) +0:211 'inF1' (in 4-component vector of float) +0:211 'inF2' (in 4-component vector of float) +0:211 'inU0' (in 4-component vector of uint) +0:211 'inU1' (in 4-component vector of uint) +0:? Sequence +0:212 all (temp bool) +0:212 'inF0' (in 4-component vector of float) +0:213 Absolute value (temp 4-component vector of float) +0:213 'inF0' (in 4-component vector of float) +0:214 arc cosine (temp 4-component vector of float) +0:214 'inF0' (in 4-component vector of float) +0:215 any (temp bool) +0:215 'inF0' (in 4-component vector of float) +0:216 arc sine (temp 4-component vector of float) +0:216 'inF0' (in 4-component vector of float) +0:217 floatBitsToInt (temp 4-component vector of int) +0:217 'inF0' (in 4-component vector of float) +0:218 floatBitsToUint (temp 4-component vector of uint) +0:218 'inF0' (in 4-component vector of float) +0:219 intBitsToFloat (temp 4-component vector of float) +0:219 'inU0' (in 4-component vector of uint) +0:221 arc tangent (temp 4-component vector of float) +0:221 'inF0' (in 4-component vector of float) +0:222 arc tangent (temp 4-component vector of float) +0:222 'inF0' (in 4-component vector of float) +0:222 'inF1' (in 4-component vector of float) +0:223 Ceiling (temp 4-component vector of float) +0:223 'inF0' (in 4-component vector of float) +0:224 clamp (temp 4-component vector of float) +0:224 'inF0' (in 4-component vector of float) +0:224 'inF1' (in 4-component vector of float) +0:224 'inF2' (in 4-component vector of float) +0:225 cosine (temp 4-component vector of float) +0:225 'inF0' (in 4-component vector of float) +0:226 hyp. cosine (temp 4-component vector of float) +0:226 'inF0' (in 4-component vector of float) +0:? bitCount (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:228 degrees (temp 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) +0:229 distance (temp float) +0:229 'inF0' (in 4-component vector of float) +0:229 'inF1' (in 4-component vector of float) +0:230 dot-product (temp float) +0:230 'inF0' (in 4-component vector of float) +0:230 'inF1' (in 4-component vector of float) +0:231 Construct vec4 (temp 4-component vector of float) +0:231 Constant: +0:231 1.000000 +0:231 component-wise multiply (temp float) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF1' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 2 (const int) +0:231 direct index (temp float) +0:231 'inF1' (in 4-component vector of float) +0:231 Constant: +0:231 3 (const int) +0:235 exp (temp 4-component vector of float) +0:235 'inF0' (in 4-component vector of float) +0:236 exp2 (temp 4-component vector of float) +0:236 'inF0' (in 4-component vector of float) +0:237 face-forward (temp 4-component vector of float) +0:237 'inF0' (in 4-component vector of float) +0:237 'inF1' (in 4-component vector of float) +0:237 'inF2' (in 4-component vector of float) +0:238 findMSB (temp int) +0:238 Constant: +0:238 7 (const int) +0:239 findLSB (temp int) +0:239 Constant: +0:239 7 (const int) +0:240 Floor (temp 4-component vector of float) +0:240 'inF0' (in 4-component vector of float) +0:242 mod (temp 4-component vector of float) +0:242 'inF0' (in 4-component vector of float) +0:242 'inF1' (in 4-component vector of float) +0:243 Fraction (temp 4-component vector of float) +0:243 'inF0' (in 4-component vector of float) +0:244 frexp (temp 4-component vector of float) +0:244 'inF0' (in 4-component vector of float) +0:244 'inF1' (in 4-component vector of float) +0:245 isinf (temp 4-component vector of bool) +0:245 'inF0' (in 4-component vector of float) +0:246 isnan (temp 4-component vector of bool) +0:246 'inF0' (in 4-component vector of float) +0:247 ldexp (temp 4-component vector of float) +0:247 'inF0' (in 4-component vector of float) +0:247 'inF1' (in 4-component vector of float) +0:248 mix (temp 4-component vector of float) +0:248 'inF0' (in 4-component vector of float) +0:248 'inF1' (in 4-component vector of float) +0:248 'inF2' (in 4-component vector of float) +0:249 length (temp float) +0:249 'inF0' (in 4-component vector of float) +0:250 log (temp 4-component vector of float) +0:250 'inF0' (in 4-component vector of float) +0:251 vector-scale (temp 4-component vector of float) +0:251 log2 (temp 4-component vector of float) +0:251 'inF0' (in 4-component vector of float) +0:251 Constant: +0:251 0.301030 +0:252 log2 (temp 4-component vector of float) +0:252 'inF0' (in 4-component vector of float) +0:253 max (temp 4-component vector of float) +0:253 'inF0' (in 4-component vector of float) +0:253 'inF1' (in 4-component vector of float) +0:254 min (temp 4-component vector of float) +0:254 'inF0' (in 4-component vector of float) +0:254 'inF1' (in 4-component vector of float) +0:256 normalize (temp 4-component vector of float) +0:256 'inF0' (in 4-component vector of float) +0:257 pow (temp 4-component vector of float) +0:257 'inF0' (in 4-component vector of float) +0:257 'inF1' (in 4-component vector of float) +0:258 radians (temp 4-component vector of float) +0:258 'inF0' (in 4-component vector of float) +0:259 reflect (temp 4-component vector of float) +0:259 'inF0' (in 4-component vector of float) +0:259 'inF1' (in 4-component vector of float) +0:260 refract (temp 4-component vector of float) +0:260 'inF0' (in 4-component vector of float) +0:260 'inF1' (in 4-component vector of float) +0:260 Constant: +0:260 2.000000 +0:? bitFieldReverse (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:262 roundEven (temp 4-component vector of float) +0:262 'inF0' (in 4-component vector of float) +0:263 inverse sqrt (temp 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) +0:264 clamp (temp 4-component vector of float) +0:264 'inF0' (in 4-component vector of float) +0:264 Constant: +0:264 0.000000 +0:264 Constant: +0:264 1.000000 +0:265 Sign (temp 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) +0:266 sine (temp 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) +0:267 Sequence +0:267 move second child to first child (temp 4-component vector of float) +0:267 'inF1' (in 4-component vector of float) +0:267 sine (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:267 move second child to first child (temp 4-component vector of float) +0:267 'inF2' (in 4-component vector of float) +0:267 cosine (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:268 hyp. sine (temp 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) +0:269 smoothstep (temp 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) +0:269 'inF1' (in 4-component vector of float) +0:269 'inF2' (in 4-component vector of float) +0:270 sqrt (temp 4-component vector of float) +0:270 'inF0' (in 4-component vector of float) +0:271 step (temp 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) +0:271 'inF1' (in 4-component vector of float) +0:272 tangent (temp 4-component vector of float) +0:272 'inF0' (in 4-component vector of float) +0:273 hyp. tangent (temp 4-component vector of float) +0:273 'inF0' (in 4-component vector of float) +0:275 trunc (temp 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) +0:278 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:336 Function Parameters: +0:336 'inF0' (in 2X2 matrix of float) +0:336 'inF1' (in 2X2 matrix of float) +0:336 'inF2' (in 2X2 matrix of float) +0:? Sequence +0:338 all (temp bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Absolute value (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 any (temp bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 Ceiling (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 hyp. cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 degrees (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 determinant (temp float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp2 (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 findMSB (temp int) +0:338 Constant: +0:338 7 (const int) +0:338 findLSB (temp int) +0:338 Constant: +0:338 7 (const int) +0:338 Floor (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 mod (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 Fraction (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 frexp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 ldexp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 mix (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 log (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 matrix-scale (temp 2X2 matrix of float) +0:338 log2 (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Constant: +0:338 0.301030 +0:338 log2 (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 max (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 min (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 pow (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 radians (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 roundEven (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 inverse sqrt (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Constant: +0:338 0.000000 +0:338 Constant: +0:338 1.000000 +0:338 Sign (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Sequence +0:338 move second child to first child (temp 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 move second child to first child (temp 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 hyp. sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 smoothstep (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 sqrt (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 step (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 hyp. tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 transpose (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 trunc (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:341 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:345 Function Parameters: +0:345 'inF0' (in 3X3 matrix of float) +0:345 'inF1' (in 3X3 matrix of float) +0:345 'inF2' (in 3X3 matrix of float) +0:? Sequence +0:347 all (temp bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Absolute value (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 any (temp bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 Ceiling (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 hyp. cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 degrees (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 determinant (temp float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp2 (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 findMSB (temp int) +0:347 Constant: +0:347 7 (const int) +0:347 findLSB (temp int) +0:347 Constant: +0:347 7 (const int) +0:347 Floor (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 mod (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 Fraction (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 frexp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 ldexp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 mix (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 log (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 matrix-scale (temp 3X3 matrix of float) +0:347 log2 (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Constant: +0:347 0.301030 +0:347 log2 (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 max (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 min (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 pow (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 radians (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 roundEven (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 inverse sqrt (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Constant: +0:347 0.000000 +0:347 Constant: +0:347 1.000000 +0:347 Sign (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Sequence +0:347 move second child to first child (temp 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 move second child to first child (temp 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 hyp. sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 smoothstep (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 sqrt (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 step (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 hyp. tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 transpose (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 trunc (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:350 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:354 Function Parameters: +0:354 'inF0' (in 4X4 matrix of float) +0:354 'inF1' (in 4X4 matrix of float) +0:354 'inF2' (in 4X4 matrix of float) +0:? Sequence +0:356 all (temp bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Absolute value (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 any (temp bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 Ceiling (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 hyp. cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 degrees (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 determinant (temp float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp2 (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 findMSB (temp int) +0:356 Constant: +0:356 7 (const int) +0:356 findLSB (temp int) +0:356 Constant: +0:356 7 (const int) +0:356 Floor (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 mod (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 Fraction (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 frexp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 ldexp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 mix (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 log (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 matrix-scale (temp 4X4 matrix of float) +0:356 log2 (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Constant: +0:356 0.301030 +0:356 log2 (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 max (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 min (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 pow (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 radians (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 roundEven (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 inverse sqrt (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Constant: +0:356 0.000000 +0:356 Constant: +0:356 1.000000 +0:356 Sign (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Sequence +0:356 move second child to first child (temp 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 move second child to first child (temp 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 hyp. sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 smoothstep (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 sqrt (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 step (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 hyp. tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 transpose (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 trunc (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:359 Branch: Return with expression +0:? Constant: +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:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:377 Function Parameters: +0:377 'inF0' (in float) +0:377 'inF1' (in float) +0:377 'inFV0' (in 2-component vector of float) +0:377 'inFV1' (in 2-component vector of float) +0:377 'inFM0' (in 2X2 matrix of float) +0:377 'inFM1' (in 2X2 matrix of float) +0:? Sequence +0:378 Sequence +0:378 move second child to first child (temp float) +0:378 'r0' (temp float) +0:378 component-wise multiply (temp float) +0:378 'inF1' (in float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r1' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inF0' (in float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r2' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp float) +0:378 'r3' (temp float) +0:378 dot-product (temp float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inFV1' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r4' (temp 2-component vector of float) +0:378 vector-times-matrix (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r5' (temp 2-component vector of float) +0:378 matrix-times-vector (temp 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r6' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r7' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r8' (temp 2X2 matrix of float) +0:378 matrix-multiply (temp 2X2 matrix of float) +0:378 'inFM1' (in 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:384 Function Parameters: +0:384 'inF0' (in float) +0:384 'inF1' (in float) +0:384 'inFV0' (in 3-component vector of float) +0:384 'inFV1' (in 3-component vector of float) +0:384 'inFM0' (in 3X3 matrix of float) +0:384 'inFM1' (in 3X3 matrix of float) +0:? Sequence +0:385 Sequence +0:385 move second child to first child (temp float) +0:385 'r0' (temp float) +0:385 component-wise multiply (temp float) +0:385 'inF1' (in float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r1' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inF0' (in float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r2' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp float) +0:385 'r3' (temp float) +0:385 dot-product (temp float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inFV1' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r4' (temp 3-component vector of float) +0:385 vector-times-matrix (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r5' (temp 3-component vector of float) +0:385 matrix-times-vector (temp 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r6' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r7' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r8' (temp 3X3 matrix of float) +0:385 matrix-multiply (temp 3X3 matrix of float) +0:385 'inFM1' (in 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:391 Function Parameters: +0:391 'inF0' (in float) +0:391 'inF1' (in float) +0:391 'inFV0' (in 4-component vector of float) +0:391 'inFV1' (in 4-component vector of float) +0:391 'inFM0' (in 4X4 matrix of float) +0:391 'inFM1' (in 4X4 matrix of float) +0:? Sequence +0:392 Sequence +0:392 move second child to first child (temp float) +0:392 'r0' (temp float) +0:392 component-wise multiply (temp float) +0:392 'inF1' (in float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r1' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inF0' (in float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r2' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp float) +0:392 'r3' (temp float) +0:392 dot-product (temp float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inFV1' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r4' (temp 4-component vector of float) +0:392 vector-times-matrix (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r5' (temp 4-component vector of float) +0:392 matrix-times-vector (temp 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r6' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r7' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r8' (temp 4X4 matrix of float) +0:392 matrix-multiply (temp 4X4 matrix of float) +0:392 'inFM1' (in 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) +0:401 Function Parameters: +0:401 'inF0' (in float) +0:401 'inF1' (in float) +0:401 'inFV2' (in 2-component vector of float) +0:401 'inFV3' (in 3-component vector of float) +0:401 'inFM2x3' (in 2X3 matrix of float) +0:401 'inFM3x2' (in 3X2 matrix of float) +0:401 'inFM3x3' (in 3X3 matrix of float) +0:401 'inFM3x4' (in 3X4 matrix of float) +0:401 'inFM2x4' (in 2X4 matrix of float) +0:? Sequence +0:402 Sequence +0:402 move second child to first child (temp float) +0:402 'r00' (temp float) +0:402 component-wise multiply (temp float) +0:402 'inF1' (in float) +0:402 'inF0' (in float) +0:403 Sequence +0:403 move second child to first child (temp 2-component vector of float) +0:403 'r01' (temp 2-component vector of float) +0:403 vector-scale (temp 2-component vector of float) +0:403 'inF0' (in float) +0:403 'inFV2' (in 2-component vector of float) +0:404 Sequence +0:404 move second child to first child (temp 3-component vector of float) +0:404 'r02' (temp 3-component vector of float) +0:404 vector-scale (temp 3-component vector of float) +0:404 'inF0' (in float) +0:404 'inFV3' (in 3-component vector of float) +0:405 Sequence +0:405 move second child to first child (temp 2-component vector of float) +0:405 'r03' (temp 2-component vector of float) +0:405 vector-scale (temp 2-component vector of float) +0:405 'inFV2' (in 2-component vector of float) +0:405 'inF0' (in float) +0:406 Sequence +0:406 move second child to first child (temp 3-component vector of float) +0:406 'r04' (temp 3-component vector of float) +0:406 vector-scale (temp 3-component vector of float) +0:406 'inFV3' (in 3-component vector of float) +0:406 'inF0' (in float) +0:407 Sequence +0:407 move second child to first child (temp float) +0:407 'r05' (temp float) +0:407 dot-product (temp float) +0:407 'inFV2' (in 2-component vector of float) +0:407 'inFV2' (in 2-component vector of float) +0:408 Sequence +0:408 move second child to first child (temp float) +0:408 'r06' (temp float) +0:408 dot-product (temp float) +0:408 'inFV3' (in 3-component vector of float) +0:408 'inFV3' (in 3-component vector of float) +0:409 Sequence +0:409 move second child to first child (temp 3-component vector of float) +0:409 'r07' (temp 3-component vector of float) +0:409 matrix-times-vector (temp 3-component vector of float) +0:409 'inFM2x3' (in 2X3 matrix of float) +0:409 'inFV2' (in 2-component vector of float) +0:410 Sequence +0:410 move second child to first child (temp 2-component vector of float) +0:410 'r08' (temp 2-component vector of float) +0:410 matrix-times-vector (temp 2-component vector of float) +0:410 'inFM3x2' (in 3X2 matrix of float) +0:410 'inFV3' (in 3-component vector of float) +0:411 Sequence +0:411 move second child to first child (temp 2-component vector of float) +0:411 'r09' (temp 2-component vector of float) +0:411 vector-times-matrix (temp 2-component vector of float) +0:411 'inFV3' (in 3-component vector of float) +0:411 'inFM2x3' (in 2X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3-component vector of float) +0:412 'r10' (temp 3-component vector of float) +0:412 vector-times-matrix (temp 3-component vector of float) +0:412 'inFV2' (in 2-component vector of float) +0:412 'inFM3x2' (in 3X2 matrix of float) +0:413 Sequence +0:413 move second child to first child (temp 2X3 matrix of float) +0:413 'r11' (temp 2X3 matrix of float) +0:413 matrix-scale (temp 2X3 matrix of float) +0:413 'inF0' (in float) +0:413 'inFM2x3' (in 2X3 matrix of float) +0:414 Sequence +0:414 move second child to first child (temp 3X2 matrix of float) +0:414 'r12' (temp 3X2 matrix of float) +0:414 matrix-scale (temp 3X2 matrix of float) +0:414 'inF0' (in float) +0:414 'inFM3x2' (in 3X2 matrix of float) +0:415 Sequence +0:415 move second child to first child (temp 2X2 matrix of float) +0:415 'r13' (temp 2X2 matrix of float) +0:415 matrix-multiply (temp 2X2 matrix of float) +0:415 'inFM3x2' (in 3X2 matrix of float) +0:415 'inFM2x3' (in 2X3 matrix of float) +0:416 Sequence +0:416 move second child to first child (temp 2X3 matrix of float) +0:416 'r14' (temp 2X3 matrix of float) +0:416 matrix-multiply (temp 2X3 matrix of float) +0:416 'inFM3x3' (in 3X3 matrix of float) +0:416 'inFM2x3' (in 2X3 matrix of float) +0:417 Sequence +0:417 move second child to first child (temp 2X4 matrix of float) +0:417 'r15' (temp 2X4 matrix of float) +0:417 matrix-multiply (temp 2X4 matrix of float) +0:417 'inFM3x4' (in 3X4 matrix of float) +0:417 'inFM2x3' (in 2X3 matrix of float) +0:418 Sequence +0:418 move second child to first child (temp 3X4 matrix of float) +0:418 'r16' (temp 3X4 matrix of float) +0:418 matrix-multiply (temp 3X4 matrix of float) +0:418 'inFM2x4' (in 2X4 matrix of float) +0:418 'inFM3x2' (in 3X2 matrix of float) +0:? Linker Objects + + +Linked vertex stage: + +WARNING: Linking vertex stage: Entry point not found + +Shader version: 450 +0:? Sequence +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (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 '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 '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 frexp (temp float) +0:31 'inF0' (in float) +0:31 'inF1' (in float) +0:32 isinf (temp bool) +0:32 'inF0' (in float) +0:33 isnan (temp bool) +0:33 'inF0' (in float) +0:34 ldexp (temp float) +0:34 'inF0' (in float) +0:34 'inF1' (in float) +0:35 mix (temp float) +0:35 'inF0' (in float) +0:35 'inF1' (in float) +0:35 'inF2' (in float) +0:36 log (temp float) +0:36 'inF0' (in float) +0:37 component-wise multiply (temp float) +0:37 log2 (temp float) +0:37 'inF0' (in float) +0:37 Constant: +0:37 0.301030 +0:38 log2 (temp float) +0:38 'inF0' (in float) +0:39 max (temp float) +0:39 'inF0' (in float) +0:39 'inF1' (in float) +0:40 min (temp float) +0:40 'inF0' (in float) +0:40 'inF1' (in float) +0:42 pow (temp float) +0:42 'inF0' (in float) +0:42 'inF1' (in float) +0:43 radians (temp float) +0:43 'inF0' (in float) +0:44 bitFieldReverse (temp int) +0:44 Constant: +0:44 2 (const int) +0:45 roundEven (temp float) +0:45 'inF0' (in float) +0:46 inverse sqrt (temp float) +0:46 'inF0' (in float) +0:47 clamp (temp float) +0:47 'inF0' (in float) +0:47 Constant: +0:47 0.000000 +0:47 Constant: +0:47 1.000000 +0:48 Sign (temp float) +0:48 'inF0' (in float) +0:49 sine (temp float) +0:49 'inF0' (in float) +0:50 Sequence +0:50 move second child to first child (temp float) +0:50 'inF1' (in float) +0:50 sine (temp float) +0:50 'inF0' (in float) +0:50 move second child to first child (temp float) +0:50 'inF2' (in float) +0:50 cosine (temp float) +0:50 'inF0' (in float) +0:51 hyp. sine (temp float) +0:51 'inF0' (in float) +0:52 smoothstep (temp float) +0:52 'inF0' (in float) +0:52 'inF1' (in float) +0:52 'inF2' (in float) +0:53 sqrt (temp float) +0:53 'inF0' (in float) +0:54 step (temp float) +0:54 'inF0' (in float) +0:54 'inF1' (in float) +0:55 tangent (temp float) +0:55 'inF0' (in float) +0:56 hyp. tangent (temp float) +0:56 'inF0' (in float) +0:58 trunc (temp float) +0:58 'inF0' (in float) +0:60 Branch: Return with expression +0:60 Constant: +0:60 0.000000 +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) +0:64 Function Parameters: +0:64 'inF0' (in 1-component vector of float) +0:64 'inF1' (in 1-component vector of float) +0:64 'inF2' (in 1-component vector of float) +0:? Sequence +0:66 Branch: Return with expression +0:66 Constant: +0:66 0.000000 +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:70 Function Parameters: +0:70 'inF0' (in 2-component vector of float) +0:70 'inF1' (in 2-component vector of float) +0:70 'inF2' (in 2-component vector of float) +0:70 'inU0' (in 2-component vector of uint) +0:70 'inU1' (in 2-component vector of uint) +0:? Sequence +0:71 all (temp bool) +0:71 'inF0' (in 2-component vector of float) +0:72 Absolute value (temp 2-component vector of float) +0:72 'inF0' (in 2-component vector of float) +0:73 arc cosine (temp 2-component vector of float) +0:73 'inF0' (in 2-component vector of float) +0:74 any (temp bool) +0:74 'inF0' (in 2-component vector of float) +0:75 arc sine (temp 2-component vector of float) +0:75 'inF0' (in 2-component vector of float) +0:76 floatBitsToInt (temp 2-component vector of int) +0:76 'inF0' (in 2-component vector of float) +0:77 floatBitsToUint (temp 2-component vector of uint) +0:77 'inF0' (in 2-component vector of float) +0:78 intBitsToFloat (temp 2-component vector of float) +0:78 'inU0' (in 2-component vector of uint) +0:80 arc tangent (temp 2-component vector of float) +0:80 'inF0' (in 2-component vector of float) +0:81 arc tangent (temp 2-component vector of float) +0:81 'inF0' (in 2-component vector of float) +0:81 'inF1' (in 2-component vector of float) +0:82 Ceiling (temp 2-component vector of float) +0:82 'inF0' (in 2-component vector of float) +0:83 clamp (temp 2-component vector of float) +0:83 'inF0' (in 2-component vector of float) +0:83 'inF1' (in 2-component vector of float) +0:83 'inF2' (in 2-component vector of float) +0:84 cosine (temp 2-component vector of float) +0:84 'inF0' (in 2-component vector of float) +0:85 hyp. cosine (temp 2-component vector of float) +0:85 'inF0' (in 2-component vector of float) +0:? bitCount (temp 2-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:87 degrees (temp 2-component vector of float) +0:87 'inF0' (in 2-component vector of float) +0:88 distance (temp float) +0:88 'inF0' (in 2-component vector of float) +0:88 'inF1' (in 2-component vector of float) +0:89 dot-product (temp float) +0:89 'inF0' (in 2-component vector of float) +0:89 'inF1' (in 2-component vector of float) +0:93 exp (temp 2-component vector of float) +0:93 'inF0' (in 2-component vector of float) +0:94 exp2 (temp 2-component vector of float) +0:94 'inF0' (in 2-component vector of float) +0:95 face-forward (temp 2-component vector of float) +0:95 'inF0' (in 2-component vector of float) +0:95 'inF1' (in 2-component vector of float) +0:95 'inF2' (in 2-component vector of float) +0:96 findMSB (temp int) +0:96 Constant: +0:96 7 (const int) +0:97 findLSB (temp int) +0:97 Constant: +0:97 7 (const int) +0:98 Floor (temp 2-component vector of float) +0:98 'inF0' (in 2-component vector of float) +0:100 mod (temp 2-component vector of float) +0:100 'inF0' (in 2-component vector of float) +0:100 'inF1' (in 2-component vector of float) +0:101 Fraction (temp 2-component vector of float) +0:101 'inF0' (in 2-component vector of float) +0:102 frexp (temp 2-component vector of float) +0:102 'inF0' (in 2-component vector of float) +0:102 'inF1' (in 2-component vector of float) +0:103 isinf (temp 2-component vector of bool) +0:103 'inF0' (in 2-component vector of float) +0:104 isnan (temp 2-component vector of bool) +0:104 'inF0' (in 2-component vector of float) +0:105 ldexp (temp 2-component vector of float) +0:105 'inF0' (in 2-component vector of float) +0:105 'inF1' (in 2-component vector of float) +0:106 mix (temp 2-component vector of float) +0:106 'inF0' (in 2-component vector of float) +0:106 'inF1' (in 2-component vector of float) +0:106 'inF2' (in 2-component vector of float) +0:107 length (temp float) +0:107 'inF0' (in 2-component vector of float) +0:108 log (temp 2-component vector of float) +0:108 'inF0' (in 2-component vector of float) +0:109 vector-scale (temp 2-component vector of float) +0:109 log2 (temp 2-component vector of float) +0:109 'inF0' (in 2-component vector of float) +0:109 Constant: +0:109 0.301030 +0:110 log2 (temp 2-component vector of float) +0:110 'inF0' (in 2-component vector of float) +0:111 max (temp 2-component vector of float) +0:111 'inF0' (in 2-component vector of float) +0:111 'inF1' (in 2-component vector of float) +0:112 min (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) +0:112 'inF1' (in 2-component vector of float) +0:114 normalize (temp 2-component vector of float) +0:114 'inF0' (in 2-component vector of float) +0:115 pow (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) +0:115 'inF1' (in 2-component vector of float) +0:116 radians (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) +0:117 reflect (temp 2-component vector of float) +0:117 'inF0' (in 2-component vector of float) +0:117 'inF1' (in 2-component vector of float) +0:118 refract (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) +0:118 'inF1' (in 2-component vector of float) +0:118 Constant: +0:118 2.000000 +0:? bitFieldReverse (temp 2-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:120 roundEven (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) +0:121 inverse sqrt (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) +0:122 clamp (temp 2-component vector of float) +0:122 'inF0' (in 2-component vector of float) +0:122 Constant: +0:122 0.000000 +0:122 Constant: +0:122 1.000000 +0:123 Sign (temp 2-component vector of float) +0:123 'inF0' (in 2-component vector of float) +0:124 sine (temp 2-component vector of float) +0:124 'inF0' (in 2-component vector of float) +0:125 Sequence +0:125 move second child to first child (temp 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:125 sine (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:125 move second child to first child (temp 2-component vector of float) +0:125 'inF2' (in 2-component vector of float) +0:125 cosine (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:126 hyp. sine (temp 2-component vector of float) +0:126 'inF0' (in 2-component vector of float) +0:127 smoothstep (temp 2-component vector of float) +0:127 'inF0' (in 2-component vector of float) +0:127 'inF1' (in 2-component vector of float) +0:127 'inF2' (in 2-component vector of float) +0:128 sqrt (temp 2-component vector of float) +0:128 'inF0' (in 2-component vector of float) +0:129 step (temp 2-component vector of float) +0:129 'inF0' (in 2-component vector of float) +0:129 'inF1' (in 2-component vector of float) +0:130 tangent (temp 2-component vector of float) +0:130 'inF0' (in 2-component vector of float) +0:131 hyp. tangent (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) +0:133 trunc (temp 2-component vector of float) +0:133 'inF0' (in 2-component vector of float) +0:136 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:140 Function Parameters: +0:140 'inF0' (in 3-component vector of float) +0:140 'inF1' (in 3-component vector of float) +0:140 'inF2' (in 3-component vector of float) +0:140 'inU0' (in 3-component vector of uint) +0:140 'inU1' (in 3-component vector of uint) +0:? Sequence +0:141 all (temp bool) +0:141 'inF0' (in 3-component vector of float) +0:142 Absolute value (temp 3-component vector of float) +0:142 'inF0' (in 3-component vector of float) +0:143 arc cosine (temp 3-component vector of float) +0:143 'inF0' (in 3-component vector of float) +0:144 any (temp bool) +0:144 'inF0' (in 3-component vector of float) +0:145 arc sine (temp 3-component vector of float) +0:145 'inF0' (in 3-component vector of float) +0:146 floatBitsToInt (temp 3-component vector of int) +0:146 'inF0' (in 3-component vector of float) +0:147 floatBitsToUint (temp 3-component vector of uint) +0:147 'inF0' (in 3-component vector of float) +0:148 intBitsToFloat (temp 3-component vector of float) +0:148 'inU0' (in 3-component vector of uint) +0:150 arc tangent (temp 3-component vector of float) +0:150 'inF0' (in 3-component vector of float) +0:151 arc tangent (temp 3-component vector of float) +0:151 'inF0' (in 3-component vector of float) +0:151 'inF1' (in 3-component vector of float) +0:152 Ceiling (temp 3-component vector of float) +0:152 'inF0' (in 3-component vector of float) +0:153 clamp (temp 3-component vector of float) +0:153 'inF0' (in 3-component vector of float) +0:153 'inF1' (in 3-component vector of float) +0:153 'inF2' (in 3-component vector of float) +0:154 cosine (temp 3-component vector of float) +0:154 'inF0' (in 3-component vector of float) +0:155 hyp. cosine (temp 3-component vector of float) +0:155 'inF0' (in 3-component vector of float) +0:? bitCount (temp 3-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:157 cross-product (temp 3-component vector of float) +0:157 'inF0' (in 3-component vector of float) +0:157 'inF1' (in 3-component vector of float) +0:158 degrees (temp 3-component vector of float) +0:158 'inF0' (in 3-component vector of float) +0:159 distance (temp float) +0:159 'inF0' (in 3-component vector of float) +0:159 'inF1' (in 3-component vector of float) +0:160 dot-product (temp float) +0:160 'inF0' (in 3-component vector of float) +0:160 'inF1' (in 3-component vector of float) +0:164 exp (temp 3-component vector of float) +0:164 'inF0' (in 3-component vector of float) +0:165 exp2 (temp 3-component vector of float) +0:165 'inF0' (in 3-component vector of float) +0:166 face-forward (temp 3-component vector of float) +0:166 'inF0' (in 3-component vector of float) +0:166 'inF1' (in 3-component vector of float) +0:166 'inF2' (in 3-component vector of float) +0:167 findMSB (temp int) +0:167 Constant: +0:167 7 (const int) +0:168 findLSB (temp int) +0:168 Constant: +0:168 7 (const int) +0:169 Floor (temp 3-component vector of float) +0:169 'inF0' (in 3-component vector of float) +0:171 mod (temp 3-component vector of float) +0:171 'inF0' (in 3-component vector of float) +0:171 'inF1' (in 3-component vector of float) +0:172 Fraction (temp 3-component vector of float) +0:172 'inF0' (in 3-component vector of float) +0:173 frexp (temp 3-component vector of float) +0:173 'inF0' (in 3-component vector of float) +0:173 'inF1' (in 3-component vector of float) +0:174 isinf (temp 3-component vector of bool) +0:174 'inF0' (in 3-component vector of float) +0:175 isnan (temp 3-component vector of bool) +0:175 'inF0' (in 3-component vector of float) +0:176 ldexp (temp 3-component vector of float) +0:176 'inF0' (in 3-component vector of float) +0:176 'inF1' (in 3-component vector of float) +0:177 mix (temp 3-component vector of float) +0:177 'inF0' (in 3-component vector of float) +0:177 'inF1' (in 3-component vector of float) +0:177 'inF2' (in 3-component vector of float) +0:178 length (temp float) +0:178 'inF0' (in 3-component vector of float) +0:179 log (temp 3-component vector of float) +0:179 'inF0' (in 3-component vector of float) +0:180 vector-scale (temp 3-component vector of float) +0:180 log2 (temp 3-component vector of float) +0:180 'inF0' (in 3-component vector of float) +0:180 Constant: +0:180 0.301030 +0:181 log2 (temp 3-component vector of float) +0:181 'inF0' (in 3-component vector of float) +0:182 max (temp 3-component vector of float) +0:182 'inF0' (in 3-component vector of float) +0:182 'inF1' (in 3-component vector of float) +0:183 min (temp 3-component vector of float) +0:183 'inF0' (in 3-component vector of float) +0:183 'inF1' (in 3-component vector of float) +0:185 normalize (temp 3-component vector of float) +0:185 'inF0' (in 3-component vector of float) +0:186 pow (temp 3-component vector of float) +0:186 'inF0' (in 3-component vector of float) +0:186 'inF1' (in 3-component vector of float) +0:187 radians (temp 3-component vector of float) +0:187 'inF0' (in 3-component vector of float) +0:188 reflect (temp 3-component vector of float) +0:188 'inF0' (in 3-component vector of float) +0:188 'inF1' (in 3-component vector of float) +0:189 refract (temp 3-component vector of float) +0:189 'inF0' (in 3-component vector of float) +0:189 'inF1' (in 3-component vector of float) +0:189 Constant: +0:189 2.000000 +0:? bitFieldReverse (temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:191 roundEven (temp 3-component vector of float) +0:191 'inF0' (in 3-component vector of float) +0:192 inverse sqrt (temp 3-component vector of float) +0:192 'inF0' (in 3-component vector of float) +0:193 clamp (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 1.000000 +0:194 Sign (temp 3-component vector of float) +0:194 'inF0' (in 3-component vector of float) +0:195 sine (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) +0:196 Sequence +0:196 move second child to first child (temp 3-component vector of float) +0:196 'inF1' (in 3-component vector of float) +0:196 sine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:196 move second child to first child (temp 3-component vector of float) +0:196 'inF2' (in 3-component vector of float) +0:196 cosine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:197 hyp. sine (temp 3-component vector of float) +0:197 'inF0' (in 3-component vector of float) +0:198 smoothstep (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) +0:198 'inF1' (in 3-component vector of float) +0:198 'inF2' (in 3-component vector of float) +0:199 sqrt (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) +0:200 step (temp 3-component vector of float) +0:200 'inF0' (in 3-component vector of float) +0:200 'inF1' (in 3-component vector of float) +0:201 tangent (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) +0:202 hyp. tangent (temp 3-component vector of float) +0:202 'inF0' (in 3-component vector of float) +0:204 trunc (temp 3-component vector of float) +0:204 'inF0' (in 3-component vector of float) +0:207 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:211 Function Parameters: +0:211 'inF0' (in 4-component vector of float) +0:211 'inF1' (in 4-component vector of float) +0:211 'inF2' (in 4-component vector of float) +0:211 'inU0' (in 4-component vector of uint) +0:211 'inU1' (in 4-component vector of uint) +0:? Sequence +0:212 all (temp bool) +0:212 'inF0' (in 4-component vector of float) +0:213 Absolute value (temp 4-component vector of float) +0:213 'inF0' (in 4-component vector of float) +0:214 arc cosine (temp 4-component vector of float) +0:214 'inF0' (in 4-component vector of float) +0:215 any (temp bool) +0:215 'inF0' (in 4-component vector of float) +0:216 arc sine (temp 4-component vector of float) +0:216 'inF0' (in 4-component vector of float) +0:217 floatBitsToInt (temp 4-component vector of int) +0:217 'inF0' (in 4-component vector of float) +0:218 floatBitsToUint (temp 4-component vector of uint) +0:218 'inF0' (in 4-component vector of float) +0:219 intBitsToFloat (temp 4-component vector of float) +0:219 'inU0' (in 4-component vector of uint) +0:221 arc tangent (temp 4-component vector of float) +0:221 'inF0' (in 4-component vector of float) +0:222 arc tangent (temp 4-component vector of float) +0:222 'inF0' (in 4-component vector of float) +0:222 'inF1' (in 4-component vector of float) +0:223 Ceiling (temp 4-component vector of float) +0:223 'inF0' (in 4-component vector of float) +0:224 clamp (temp 4-component vector of float) +0:224 'inF0' (in 4-component vector of float) +0:224 'inF1' (in 4-component vector of float) +0:224 'inF2' (in 4-component vector of float) +0:225 cosine (temp 4-component vector of float) +0:225 'inF0' (in 4-component vector of float) +0:226 hyp. cosine (temp 4-component vector of float) +0:226 'inF0' (in 4-component vector of float) +0:? bitCount (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:228 degrees (temp 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) +0:229 distance (temp float) +0:229 'inF0' (in 4-component vector of float) +0:229 'inF1' (in 4-component vector of float) +0:230 dot-product (temp float) +0:230 'inF0' (in 4-component vector of float) +0:230 'inF1' (in 4-component vector of float) +0:231 Construct vec4 (temp 4-component vector of float) +0:231 Constant: +0:231 1.000000 +0:231 component-wise multiply (temp float) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF1' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 2 (const int) +0:231 direct index (temp float) +0:231 'inF1' (in 4-component vector of float) +0:231 Constant: +0:231 3 (const int) +0:235 exp (temp 4-component vector of float) +0:235 'inF0' (in 4-component vector of float) +0:236 exp2 (temp 4-component vector of float) +0:236 'inF0' (in 4-component vector of float) +0:237 face-forward (temp 4-component vector of float) +0:237 'inF0' (in 4-component vector of float) +0:237 'inF1' (in 4-component vector of float) +0:237 'inF2' (in 4-component vector of float) +0:238 findMSB (temp int) +0:238 Constant: +0:238 7 (const int) +0:239 findLSB (temp int) +0:239 Constant: +0:239 7 (const int) +0:240 Floor (temp 4-component vector of float) +0:240 'inF0' (in 4-component vector of float) +0:242 mod (temp 4-component vector of float) +0:242 'inF0' (in 4-component vector of float) +0:242 'inF1' (in 4-component vector of float) +0:243 Fraction (temp 4-component vector of float) +0:243 'inF0' (in 4-component vector of float) +0:244 frexp (temp 4-component vector of float) +0:244 'inF0' (in 4-component vector of float) +0:244 'inF1' (in 4-component vector of float) +0:245 isinf (temp 4-component vector of bool) +0:245 'inF0' (in 4-component vector of float) +0:246 isnan (temp 4-component vector of bool) +0:246 'inF0' (in 4-component vector of float) +0:247 ldexp (temp 4-component vector of float) +0:247 'inF0' (in 4-component vector of float) +0:247 'inF1' (in 4-component vector of float) +0:248 mix (temp 4-component vector of float) +0:248 'inF0' (in 4-component vector of float) +0:248 'inF1' (in 4-component vector of float) +0:248 'inF2' (in 4-component vector of float) +0:249 length (temp float) +0:249 'inF0' (in 4-component vector of float) +0:250 log (temp 4-component vector of float) +0:250 'inF0' (in 4-component vector of float) +0:251 vector-scale (temp 4-component vector of float) +0:251 log2 (temp 4-component vector of float) +0:251 'inF0' (in 4-component vector of float) +0:251 Constant: +0:251 0.301030 +0:252 log2 (temp 4-component vector of float) +0:252 'inF0' (in 4-component vector of float) +0:253 max (temp 4-component vector of float) +0:253 'inF0' (in 4-component vector of float) +0:253 'inF1' (in 4-component vector of float) +0:254 min (temp 4-component vector of float) +0:254 'inF0' (in 4-component vector of float) +0:254 'inF1' (in 4-component vector of float) +0:256 normalize (temp 4-component vector of float) +0:256 'inF0' (in 4-component vector of float) +0:257 pow (temp 4-component vector of float) +0:257 'inF0' (in 4-component vector of float) +0:257 'inF1' (in 4-component vector of float) +0:258 radians (temp 4-component vector of float) +0:258 'inF0' (in 4-component vector of float) +0:259 reflect (temp 4-component vector of float) +0:259 'inF0' (in 4-component vector of float) +0:259 'inF1' (in 4-component vector of float) +0:260 refract (temp 4-component vector of float) +0:260 'inF0' (in 4-component vector of float) +0:260 'inF1' (in 4-component vector of float) +0:260 Constant: +0:260 2.000000 +0:? bitFieldReverse (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:262 roundEven (temp 4-component vector of float) +0:262 'inF0' (in 4-component vector of float) +0:263 inverse sqrt (temp 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) +0:264 clamp (temp 4-component vector of float) +0:264 'inF0' (in 4-component vector of float) +0:264 Constant: +0:264 0.000000 +0:264 Constant: +0:264 1.000000 +0:265 Sign (temp 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) +0:266 sine (temp 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) +0:267 Sequence +0:267 move second child to first child (temp 4-component vector of float) +0:267 'inF1' (in 4-component vector of float) +0:267 sine (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:267 move second child to first child (temp 4-component vector of float) +0:267 'inF2' (in 4-component vector of float) +0:267 cosine (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:268 hyp. sine (temp 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) +0:269 smoothstep (temp 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) +0:269 'inF1' (in 4-component vector of float) +0:269 'inF2' (in 4-component vector of float) +0:270 sqrt (temp 4-component vector of float) +0:270 'inF0' (in 4-component vector of float) +0:271 step (temp 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) +0:271 'inF1' (in 4-component vector of float) +0:272 tangent (temp 4-component vector of float) +0:272 'inF0' (in 4-component vector of float) +0:273 hyp. tangent (temp 4-component vector of float) +0:273 'inF0' (in 4-component vector of float) +0:275 trunc (temp 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) +0:278 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:336 Function Parameters: +0:336 'inF0' (in 2X2 matrix of float) +0:336 'inF1' (in 2X2 matrix of float) +0:336 'inF2' (in 2X2 matrix of float) +0:? Sequence +0:338 all (temp bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Absolute value (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 any (temp bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 Ceiling (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 hyp. cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 degrees (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 determinant (temp float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp2 (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 findMSB (temp int) +0:338 Constant: +0:338 7 (const int) +0:338 findLSB (temp int) +0:338 Constant: +0:338 7 (const int) +0:338 Floor (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 mod (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 Fraction (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 frexp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 ldexp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 mix (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 log (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 matrix-scale (temp 2X2 matrix of float) +0:338 log2 (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Constant: +0:338 0.301030 +0:338 log2 (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 max (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 min (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 pow (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 radians (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 roundEven (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 inverse sqrt (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Constant: +0:338 0.000000 +0:338 Constant: +0:338 1.000000 +0:338 Sign (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Sequence +0:338 move second child to first child (temp 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 move second child to first child (temp 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 hyp. sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 smoothstep (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 'inF2' (in 2X2 matrix of float) +0:338 sqrt (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 step (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 hyp. tangent (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 transpose (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 trunc (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:341 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:345 Function Parameters: +0:345 'inF0' (in 3X3 matrix of float) +0:345 'inF1' (in 3X3 matrix of float) +0:345 'inF2' (in 3X3 matrix of float) +0:? Sequence +0:347 all (temp bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Absolute value (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 any (temp bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 Ceiling (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 hyp. cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 degrees (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 determinant (temp float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp2 (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 findMSB (temp int) +0:347 Constant: +0:347 7 (const int) +0:347 findLSB (temp int) +0:347 Constant: +0:347 7 (const int) +0:347 Floor (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 mod (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 Fraction (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 frexp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 ldexp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 mix (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 log (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 matrix-scale (temp 3X3 matrix of float) +0:347 log2 (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Constant: +0:347 0.301030 +0:347 log2 (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 max (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 min (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 pow (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 radians (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 roundEven (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 inverse sqrt (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Constant: +0:347 0.000000 +0:347 Constant: +0:347 1.000000 +0:347 Sign (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Sequence +0:347 move second child to first child (temp 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 move second child to first child (temp 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 hyp. sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 smoothstep (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 'inF2' (in 3X3 matrix of float) +0:347 sqrt (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 step (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 hyp. tangent (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 transpose (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 trunc (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:350 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:354 Function Parameters: +0:354 'inF0' (in 4X4 matrix of float) +0:354 'inF1' (in 4X4 matrix of float) +0:354 'inF2' (in 4X4 matrix of float) +0:? Sequence +0:356 all (temp bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Absolute value (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 any (temp bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 Ceiling (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 hyp. cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 degrees (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 determinant (temp float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp2 (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 findMSB (temp int) +0:356 Constant: +0:356 7 (const int) +0:356 findLSB (temp int) +0:356 Constant: +0:356 7 (const int) +0:356 Floor (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 mod (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 Fraction (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 frexp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 ldexp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 mix (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 log (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 matrix-scale (temp 4X4 matrix of float) +0:356 log2 (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Constant: +0:356 0.301030 +0:356 log2 (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 max (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 min (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 pow (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 radians (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 roundEven (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 inverse sqrt (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Constant: +0:356 0.000000 +0:356 Constant: +0:356 1.000000 +0:356 Sign (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Sequence +0:356 move second child to first child (temp 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 move second child to first child (temp 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 hyp. sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 smoothstep (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 'inF2' (in 4X4 matrix of float) +0:356 sqrt (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 step (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 hyp. tangent (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 transpose (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 trunc (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:359 Branch: Return with expression +0:? Constant: +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:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:377 Function Parameters: +0:377 'inF0' (in float) +0:377 'inF1' (in float) +0:377 'inFV0' (in 2-component vector of float) +0:377 'inFV1' (in 2-component vector of float) +0:377 'inFM0' (in 2X2 matrix of float) +0:377 'inFM1' (in 2X2 matrix of float) +0:? Sequence +0:378 Sequence +0:378 move second child to first child (temp float) +0:378 'r0' (temp float) +0:378 component-wise multiply (temp float) +0:378 'inF1' (in float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r1' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inF0' (in float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r2' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp float) +0:378 'r3' (temp float) +0:378 dot-product (temp float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inFV1' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r4' (temp 2-component vector of float) +0:378 vector-times-matrix (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r5' (temp 2-component vector of float) +0:378 matrix-times-vector (temp 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r6' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r7' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r8' (temp 2X2 matrix of float) +0:378 matrix-multiply (temp 2X2 matrix of float) +0:378 'inFM1' (in 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:384 Function Parameters: +0:384 'inF0' (in float) +0:384 'inF1' (in float) +0:384 'inFV0' (in 3-component vector of float) +0:384 'inFV1' (in 3-component vector of float) +0:384 'inFM0' (in 3X3 matrix of float) +0:384 'inFM1' (in 3X3 matrix of float) +0:? Sequence +0:385 Sequence +0:385 move second child to first child (temp float) +0:385 'r0' (temp float) +0:385 component-wise multiply (temp float) +0:385 'inF1' (in float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r1' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inF0' (in float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r2' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp float) +0:385 'r3' (temp float) +0:385 dot-product (temp float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inFV1' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r4' (temp 3-component vector of float) +0:385 vector-times-matrix (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r5' (temp 3-component vector of float) +0:385 matrix-times-vector (temp 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r6' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r7' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r8' (temp 3X3 matrix of float) +0:385 matrix-multiply (temp 3X3 matrix of float) +0:385 'inFM1' (in 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:391 Function Parameters: +0:391 'inF0' (in float) +0:391 'inF1' (in float) +0:391 'inFV0' (in 4-component vector of float) +0:391 'inFV1' (in 4-component vector of float) +0:391 'inFM0' (in 4X4 matrix of float) +0:391 'inFM1' (in 4X4 matrix of float) +0:? Sequence +0:392 Sequence +0:392 move second child to first child (temp float) +0:392 'r0' (temp float) +0:392 component-wise multiply (temp float) +0:392 'inF1' (in float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r1' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inF0' (in float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r2' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp float) +0:392 'r3' (temp float) +0:392 dot-product (temp float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inFV1' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r4' (temp 4-component vector of float) +0:392 vector-times-matrix (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r5' (temp 4-component vector of float) +0:392 matrix-times-vector (temp 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r6' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r7' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r8' (temp 4X4 matrix of float) +0:392 matrix-multiply (temp 4X4 matrix of float) +0:392 'inFM1' (in 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) +0:401 Function Parameters: +0:401 'inF0' (in float) +0:401 'inF1' (in float) +0:401 'inFV2' (in 2-component vector of float) +0:401 'inFV3' (in 3-component vector of float) +0:401 'inFM2x3' (in 2X3 matrix of float) +0:401 'inFM3x2' (in 3X2 matrix of float) +0:401 'inFM3x3' (in 3X3 matrix of float) +0:401 'inFM3x4' (in 3X4 matrix of float) +0:401 'inFM2x4' (in 2X4 matrix of float) +0:? Sequence +0:402 Sequence +0:402 move second child to first child (temp float) +0:402 'r00' (temp float) +0:402 component-wise multiply (temp float) +0:402 'inF1' (in float) +0:402 'inF0' (in float) +0:403 Sequence +0:403 move second child to first child (temp 2-component vector of float) +0:403 'r01' (temp 2-component vector of float) +0:403 vector-scale (temp 2-component vector of float) +0:403 'inF0' (in float) +0:403 'inFV2' (in 2-component vector of float) +0:404 Sequence +0:404 move second child to first child (temp 3-component vector of float) +0:404 'r02' (temp 3-component vector of float) +0:404 vector-scale (temp 3-component vector of float) +0:404 'inF0' (in float) +0:404 'inFV3' (in 3-component vector of float) +0:405 Sequence +0:405 move second child to first child (temp 2-component vector of float) +0:405 'r03' (temp 2-component vector of float) +0:405 vector-scale (temp 2-component vector of float) +0:405 'inFV2' (in 2-component vector of float) +0:405 'inF0' (in float) +0:406 Sequence +0:406 move second child to first child (temp 3-component vector of float) +0:406 'r04' (temp 3-component vector of float) +0:406 vector-scale (temp 3-component vector of float) +0:406 'inFV3' (in 3-component vector of float) +0:406 'inF0' (in float) +0:407 Sequence +0:407 move second child to first child (temp float) +0:407 'r05' (temp float) +0:407 dot-product (temp float) +0:407 'inFV2' (in 2-component vector of float) +0:407 'inFV2' (in 2-component vector of float) +0:408 Sequence +0:408 move second child to first child (temp float) +0:408 'r06' (temp float) +0:408 dot-product (temp float) +0:408 'inFV3' (in 3-component vector of float) +0:408 'inFV3' (in 3-component vector of float) +0:409 Sequence +0:409 move second child to first child (temp 3-component vector of float) +0:409 'r07' (temp 3-component vector of float) +0:409 matrix-times-vector (temp 3-component vector of float) +0:409 'inFM2x3' (in 2X3 matrix of float) +0:409 'inFV2' (in 2-component vector of float) +0:410 Sequence +0:410 move second child to first child (temp 2-component vector of float) +0:410 'r08' (temp 2-component vector of float) +0:410 matrix-times-vector (temp 2-component vector of float) +0:410 'inFM3x2' (in 3X2 matrix of float) +0:410 'inFV3' (in 3-component vector of float) +0:411 Sequence +0:411 move second child to first child (temp 2-component vector of float) +0:411 'r09' (temp 2-component vector of float) +0:411 vector-times-matrix (temp 2-component vector of float) +0:411 'inFV3' (in 3-component vector of float) +0:411 'inFM2x3' (in 2X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3-component vector of float) +0:412 'r10' (temp 3-component vector of float) +0:412 vector-times-matrix (temp 3-component vector of float) +0:412 'inFV2' (in 2-component vector of float) +0:412 'inFM3x2' (in 3X2 matrix of float) +0:413 Sequence +0:413 move second child to first child (temp 2X3 matrix of float) +0:413 'r11' (temp 2X3 matrix of float) +0:413 matrix-scale (temp 2X3 matrix of float) +0:413 'inF0' (in float) +0:413 'inFM2x3' (in 2X3 matrix of float) +0:414 Sequence +0:414 move second child to first child (temp 3X2 matrix of float) +0:414 'r12' (temp 3X2 matrix of float) +0:414 matrix-scale (temp 3X2 matrix of float) +0:414 'inF0' (in float) +0:414 'inFM3x2' (in 3X2 matrix of float) +0:415 Sequence +0:415 move second child to first child (temp 2X2 matrix of float) +0:415 'r13' (temp 2X2 matrix of float) +0:415 matrix-multiply (temp 2X2 matrix of float) +0:415 'inFM3x2' (in 3X2 matrix of float) +0:415 'inFM2x3' (in 2X3 matrix of float) +0:416 Sequence +0:416 move second child to first child (temp 2X3 matrix of float) +0:416 'r14' (temp 2X3 matrix of float) +0:416 matrix-multiply (temp 2X3 matrix of float) +0:416 'inFM3x3' (in 3X3 matrix of float) +0:416 'inFM2x3' (in 2X3 matrix of float) +0:417 Sequence +0:417 move second child to first child (temp 2X4 matrix of float) +0:417 'r15' (temp 2X4 matrix of float) +0:417 matrix-multiply (temp 2X4 matrix of float) +0:417 'inFM3x4' (in 3X4 matrix of float) +0:417 'inFM2x3' (in 2X3 matrix of float) +0:418 Sequence +0:418 move second child to first child (temp 3X4 matrix of float) +0:418 'r16' (temp 3X4 matrix of float) +0:418 matrix-multiply (temp 3X4 matrix of float) +0:418 'inFM2x4' (in 2X4 matrix of float) +0:418 'inFM3x2' (in 3X2 matrix of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 1240 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "VertexShaderFunction" + 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 182 "ResType" + Name 316 "ResType" + Name 464 "ResType" + Name 620 "ResType" + Name 753 "ResType" + Name 873 "ResType" + Name 996 "ResType" + Name 1064 "r0" + Name 1068 "r1" + Name 1072 "r2" + Name 1076 "r3" + Name 1080 "r4" + Name 1084 "r5" + Name 1088 "r6" + Name 1092 "r7" + Name 1096 "r8" + Name 1100 "r0" + Name 1104 "r1" + Name 1108 "r2" + Name 1112 "r3" + Name 1116 "r4" + Name 1120 "r5" + Name 1124 "r6" + Name 1128 "r7" + Name 1132 "r8" + Name 1136 "r0" + Name 1140 "r1" + Name 1144 "r2" + Name 1148 "r3" + Name 1152 "r4" + Name 1156 "r5" + Name 1160 "r6" + Name 1164 "r7" + Name 1168 "r8" + Name 1172 "r00" + Name 1176 "r01" + Name 1180 "r02" + Name 1184 "r03" + Name 1188 "r04" + Name 1192 "r05" + Name 1196 "r06" + Name 1200 "r07" + Name 1204 "r08" + Name 1208 "r09" + Name 1212 "r10" + Name 1216 "r11" + Name 1220 "r12" + Name 1224 "r13" + Name 1228 "r14" + Name 1232 "r15" + Name 1236 "r16" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 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 + 143: TypeInt 32 1 + 164: 143(int) Constant 7 + 182(ResType): TypeStruct 6(float) 143(int) + 201: 6(float) Constant 1050288283 + 216: 143(int) Constant 2 + 223: 6(float) Constant 0 + 224: 6(float) Constant 1065353216 + 266: TypeVector 143(int) 2 + 287: 143(int) Constant 3 + 288: 266(ivec2) ConstantComposite 164 287 + 316(ResType): TypeStruct 24(fvec2) 266(ivec2) + 321: TypeVector 132(bool) 2 + 359: 6(float) Constant 1073741824 + 361: 143(int) Constant 1 + 362: 266(ivec2) ConstantComposite 361 216 + 397: 24(fvec2) ConstantComposite 224 359 + 411: TypeVector 143(int) 3 + 432: 143(int) Constant 5 + 433: 411(ivec3) ConstantComposite 164 287 432 + 464(ResType): TypeStruct 36(fvec3) 411(ivec3) + 469: TypeVector 132(bool) 3 + 508: 411(ivec3) ConstantComposite 361 216 287 + 543: 6(float) Constant 1077936128 + 544: 36(fvec3) ConstantComposite 224 359 543 + 558: TypeVector 143(int) 4 + 579: 558(ivec4) ConstantComposite 164 287 432 216 + 589: 8(int) Constant 1 + 595: 8(int) Constant 2 + 598: 8(int) Constant 3 + 620(ResType): TypeStruct 48(fvec4) 558(ivec4) + 625: TypeVector 132(bool) 4 + 664: 143(int) Constant 4 + 665: 558(ivec4) ConstantComposite 361 216 287 664 + 700: 6(float) Constant 1082130432 + 701: 48(fvec4) ConstantComposite 224 359 543 700 + 753(ResType): TypeStruct 60 266(ivec2) + 817: 24(fvec2) ConstantComposite 359 359 + 818: 60 ConstantComposite 817 817 + 873(ResType): TypeStruct 68 411(ivec3) + 937: 36(fvec3) ConstantComposite 543 543 543 + 938: 68 ConstantComposite 937 937 937 + 996(ResType): TypeStruct 76 558(ivec4) + 1060: 48(fvec4) ConstantComposite 700 700 700 700 + 1061: 76 ConstantComposite 1060 1060 1060 1060 +4(VertexShaderFunction): 2 Function None 3 + 5: Label + Return + FunctionEnd +16(VertexShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inU0): 9(ptr) FunctionParameter + 15(inU1): 9(ptr) FunctionParameter + 17: Label + 131: 6(float) Load 11(inF0) + 133: 132(bool) All 131 + 134: 6(float) Load 11(inF0) + 135: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 134 + 136: 6(float) Load 11(inF0) + 137: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 136 + 138: 6(float) Load 11(inF0) + 139: 132(bool) Any 138 + 140: 6(float) Load 11(inF0) + 141: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 140 + 142: 6(float) Load 11(inF0) + 144: 143(int) Bitcast 142 + 145: 6(float) Load 11(inF0) + 146: 8(int) Bitcast 145 + 147: 8(int) Load 14(inU0) + 148: 6(float) Bitcast 147 + 149: 6(float) Load 11(inF0) + 150: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 149 + 151: 6(float) Load 11(inF0) + 152: 6(float) Load 12(inF1) + 153: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 151 152 + 154: 6(float) Load 11(inF0) + 155: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 154 + 156: 6(float) Load 11(inF0) + 157: 6(float) Load 12(inF1) + 158: 6(float) Load 13(inF2) + 159: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 156 157 158 + 160: 6(float) Load 11(inF0) + 161: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 160 + 162: 6(float) Load 11(inF0) + 163: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 162 + 165: 143(int) BitCount 164 + 166: 6(float) Load 11(inF0) + 167: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 166 + 168: 6(float) Load 11(inF0) + 169: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 168 + 170: 6(float) Load 11(inF0) + 171: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 170 + 172: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 173: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 174: 6(float) Load 11(inF0) + 175: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 174 + 176: 6(float) Load 11(inF0) + 177: 6(float) Load 12(inF1) + 178: 6(float) FMod 176 177 + 179: 6(float) Load 11(inF0) + 180: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 179 + 181: 6(float) Load 11(inF0) + 183:182(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 181 + 184: 143(int) CompositeExtract 183 1 + Store 12(inF1) 184 + 185: 6(float) CompositeExtract 183 0 + 186: 6(float) Load 11(inF0) + 187: 132(bool) IsInf 186 + 188: 6(float) Load 11(inF0) + 189: 132(bool) IsNan 188 + 190: 6(float) Load 11(inF0) + 191: 6(float) Load 12(inF1) + 192: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 190 191 + 193: 6(float) Load 11(inF0) + 194: 6(float) Load 12(inF1) + 195: 6(float) Load 13(inF2) + 196: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 193 194 195 + 197: 6(float) Load 11(inF0) + 198: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 197 + 199: 6(float) Load 11(inF0) + 200: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 199 + 202: 6(float) FMul 200 201 + 203: 6(float) Load 11(inF0) + 204: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 203 + 205: 6(float) Load 11(inF0) + 206: 6(float) Load 12(inF1) + 207: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 205 206 + 208: 6(float) Load 11(inF0) + 209: 6(float) Load 12(inF1) + 210: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 208 209 + 211: 6(float) Load 11(inF0) + 212: 6(float) Load 12(inF1) + 213: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 211 212 + 214: 6(float) Load 11(inF0) + 215: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 214 + 217: 143(int) BitReverse 216 + 218: 6(float) Load 11(inF0) + 219: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 218 + 220: 6(float) Load 11(inF0) + 221: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 220 + 222: 6(float) Load 11(inF0) + 225: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 222 223 224 + 226: 6(float) Load 11(inF0) + 227: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 226 + 228: 6(float) Load 11(inF0) + 229: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 228 + 230: 6(float) Load 11(inF0) + 231: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 230 + Store 12(inF1) 231 + 232: 6(float) Load 11(inF0) + 233: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 232 + Store 13(inF2) 233 + 234: 6(float) Load 11(inF0) + 235: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 234 + 236: 6(float) Load 11(inF0) + 237: 6(float) Load 12(inF1) + 238: 6(float) Load 13(inF2) + 239: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 236 237 238 + 240: 6(float) Load 11(inF0) + 241: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 240 + 242: 6(float) Load 11(inF0) + 243: 6(float) Load 12(inF1) + 244: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 242 243 + 245: 6(float) Load 11(inF0) + 246: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 245 + 247: 6(float) Load 11(inF0) + 248: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 247 + 249: 6(float) Load 11(inF0) + 250: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 249 + ReturnValue 223 + FunctionEnd +22(VertexShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 + 19(inF0): 7(ptr) FunctionParameter + 20(inF1): 7(ptr) FunctionParameter + 21(inF2): 7(ptr) FunctionParameter + 23: Label + ReturnValue 223 + 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 + 255: 24(fvec2) Load 29(inF0) + 256: 132(bool) All 255 + 257: 24(fvec2) Load 29(inF0) + 258: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 257 + 259: 24(fvec2) Load 29(inF0) + 260: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 259 + 261: 24(fvec2) Load 29(inF0) + 262: 132(bool) Any 261 + 263: 24(fvec2) Load 29(inF0) + 264: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 263 + 265: 24(fvec2) Load 29(inF0) + 267: 266(ivec2) Bitcast 265 + 268: 24(fvec2) Load 29(inF0) + 269: 26(ivec2) Bitcast 268 + 270: 26(ivec2) Load 32(inU0) + 271: 24(fvec2) Bitcast 270 + 272: 24(fvec2) Load 29(inF0) + 273: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 272 + 274: 24(fvec2) Load 29(inF0) + 275: 24(fvec2) Load 30(inF1) + 276: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 274 275 + 277: 24(fvec2) Load 29(inF0) + 278: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 277 + 279: 24(fvec2) Load 29(inF0) + 280: 24(fvec2) Load 30(inF1) + 281: 24(fvec2) Load 31(inF2) + 282: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 279 280 281 + 283: 24(fvec2) Load 29(inF0) + 284: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 283 + 285: 24(fvec2) Load 29(inF0) + 286: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 285 + 289: 266(ivec2) BitCount 288 + 290: 24(fvec2) Load 29(inF0) + 291: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 290 + 292: 24(fvec2) Load 29(inF0) + 293: 24(fvec2) Load 30(inF1) + 294: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 292 293 + 295: 24(fvec2) Load 29(inF0) + 296: 24(fvec2) Load 30(inF1) + 297: 6(float) Dot 295 296 + 298: 24(fvec2) Load 29(inF0) + 299: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 298 + 300: 24(fvec2) Load 29(inF0) + 301: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 300 + 302: 24(fvec2) Load 29(inF0) + 303: 24(fvec2) Load 30(inF1) + 304: 24(fvec2) Load 31(inF2) + 305: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 302 303 304 + 306: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 307: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 308: 24(fvec2) Load 29(inF0) + 309: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 308 + 310: 24(fvec2) Load 29(inF0) + 311: 24(fvec2) Load 30(inF1) + 312: 24(fvec2) FMod 310 311 + 313: 24(fvec2) Load 29(inF0) + 314: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 313 + 315: 24(fvec2) Load 29(inF0) + 317:316(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 315 + 318: 266(ivec2) CompositeExtract 317 1 + Store 30(inF1) 318 + 319: 24(fvec2) CompositeExtract 317 0 + 320: 24(fvec2) Load 29(inF0) + 322: 321(bvec2) IsInf 320 + 323: 24(fvec2) Load 29(inF0) + 324: 321(bvec2) IsNan 323 + 325: 24(fvec2) Load 29(inF0) + 326: 24(fvec2) Load 30(inF1) + 327: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 325 326 + 328: 24(fvec2) Load 29(inF0) + 329: 24(fvec2) Load 30(inF1) + 330: 24(fvec2) Load 31(inF2) + 331: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 328 329 330 + 332: 24(fvec2) Load 29(inF0) + 333: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 332 + 334: 24(fvec2) Load 29(inF0) + 335: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 334 + 336: 24(fvec2) Load 29(inF0) + 337: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 336 + 338: 24(fvec2) VectorTimesScalar 337 201 + 339: 24(fvec2) Load 29(inF0) + 340: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 339 + 341: 24(fvec2) Load 29(inF0) + 342: 24(fvec2) Load 30(inF1) + 343: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 341 342 + 344: 24(fvec2) Load 29(inF0) + 345: 24(fvec2) Load 30(inF1) + 346: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 344 345 + 347: 24(fvec2) Load 29(inF0) + 348: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 347 + 349: 24(fvec2) Load 29(inF0) + 350: 24(fvec2) Load 30(inF1) + 351: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 349 350 + 352: 24(fvec2) Load 29(inF0) + 353: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 352 + 354: 24(fvec2) Load 29(inF0) + 355: 24(fvec2) Load 30(inF1) + 356: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 354 355 + 357: 24(fvec2) Load 29(inF0) + 358: 24(fvec2) Load 30(inF1) + 360: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 357 358 359 + 363: 266(ivec2) BitReverse 362 + 364: 24(fvec2) Load 29(inF0) + 365: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 364 + 366: 24(fvec2) Load 29(inF0) + 367: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 366 + 368: 24(fvec2) Load 29(inF0) + 369: 24(fvec2) CompositeConstruct 223 223 + 370: 24(fvec2) CompositeConstruct 224 224 + 371: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 368 369 370 + 372: 24(fvec2) Load 29(inF0) + 373: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 372 + 374: 24(fvec2) Load 29(inF0) + 375: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 374 + 376: 24(fvec2) Load 29(inF0) + 377: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 376 + Store 30(inF1) 377 + 378: 24(fvec2) Load 29(inF0) + 379: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 378 + Store 31(inF2) 379 + 380: 24(fvec2) Load 29(inF0) + 381: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 380 + 382: 24(fvec2) Load 29(inF0) + 383: 24(fvec2) Load 30(inF1) + 384: 24(fvec2) Load 31(inF2) + 385: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 382 383 384 + 386: 24(fvec2) Load 29(inF0) + 387: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 386 + 388: 24(fvec2) Load 29(inF0) + 389: 24(fvec2) Load 30(inF1) + 390: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 388 389 + 391: 24(fvec2) Load 29(inF0) + 392: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 391 + 393: 24(fvec2) Load 29(inF0) + 394: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 393 + 395: 24(fvec2) Load 29(inF0) + 396: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 395 + ReturnValue 397 + FunctionEnd +46(VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 + 41(inF0): 37(ptr) FunctionParameter + 42(inF1): 37(ptr) FunctionParameter + 43(inF2): 37(ptr) FunctionParameter + 44(inU0): 39(ptr) FunctionParameter + 45(inU1): 39(ptr) FunctionParameter + 47: Label + 400: 36(fvec3) Load 41(inF0) + 401: 132(bool) All 400 + 402: 36(fvec3) Load 41(inF0) + 403: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 402 + 404: 36(fvec3) Load 41(inF0) + 405: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 404 + 406: 36(fvec3) Load 41(inF0) + 407: 132(bool) Any 406 + 408: 36(fvec3) Load 41(inF0) + 409: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 408 + 410: 36(fvec3) Load 41(inF0) + 412: 411(ivec3) Bitcast 410 + 413: 36(fvec3) Load 41(inF0) + 414: 38(ivec3) Bitcast 413 + 415: 38(ivec3) Load 44(inU0) + 416: 36(fvec3) Bitcast 415 + 417: 36(fvec3) Load 41(inF0) + 418: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 417 + 419: 36(fvec3) Load 41(inF0) + 420: 36(fvec3) Load 42(inF1) + 421: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 419 420 + 422: 36(fvec3) Load 41(inF0) + 423: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 422 + 424: 36(fvec3) Load 41(inF0) + 425: 36(fvec3) Load 42(inF1) + 426: 36(fvec3) Load 43(inF2) + 427: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 424 425 426 + 428: 36(fvec3) Load 41(inF0) + 429: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 428 + 430: 36(fvec3) Load 41(inF0) + 431: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 430 + 434: 411(ivec3) BitCount 433 + 435: 36(fvec3) Load 41(inF0) + 436: 36(fvec3) Load 42(inF1) + 437: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 436 + 438: 36(fvec3) Load 41(inF0) + 439: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 438 + 440: 36(fvec3) Load 41(inF0) + 441: 36(fvec3) Load 42(inF1) + 442: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 440 441 + 443: 36(fvec3) Load 41(inF0) + 444: 36(fvec3) Load 42(inF1) + 445: 6(float) Dot 443 444 + 446: 36(fvec3) Load 41(inF0) + 447: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 446 + 448: 36(fvec3) Load 41(inF0) + 449: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 448 + 450: 36(fvec3) Load 41(inF0) + 451: 36(fvec3) Load 42(inF1) + 452: 36(fvec3) Load 43(inF2) + 453: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 450 451 452 + 454: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 455: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 456: 36(fvec3) Load 41(inF0) + 457: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 456 + 458: 36(fvec3) Load 41(inF0) + 459: 36(fvec3) Load 42(inF1) + 460: 36(fvec3) FMod 458 459 + 461: 36(fvec3) Load 41(inF0) + 462: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 461 + 463: 36(fvec3) Load 41(inF0) + 465:464(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 463 + 466: 411(ivec3) CompositeExtract 465 1 + Store 42(inF1) 466 + 467: 36(fvec3) CompositeExtract 465 0 + 468: 36(fvec3) Load 41(inF0) + 470: 469(bvec3) IsInf 468 + 471: 36(fvec3) Load 41(inF0) + 472: 469(bvec3) IsNan 471 + 473: 36(fvec3) Load 41(inF0) + 474: 36(fvec3) Load 42(inF1) + 475: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 473 474 + 476: 36(fvec3) Load 41(inF0) + 477: 36(fvec3) Load 42(inF1) + 478: 36(fvec3) Load 43(inF2) + 479: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 476 477 478 + 480: 36(fvec3) Load 41(inF0) + 481: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 480 + 482: 36(fvec3) Load 41(inF0) + 483: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 482 + 484: 36(fvec3) Load 41(inF0) + 485: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 484 + 486: 36(fvec3) VectorTimesScalar 485 201 + 487: 36(fvec3) Load 41(inF0) + 488: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 487 + 489: 36(fvec3) Load 41(inF0) + 490: 36(fvec3) Load 42(inF1) + 491: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 489 490 + 492: 36(fvec3) Load 41(inF0) + 493: 36(fvec3) Load 42(inF1) + 494: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 492 493 + 495: 36(fvec3) Load 41(inF0) + 496: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 495 + 497: 36(fvec3) Load 41(inF0) + 498: 36(fvec3) Load 42(inF1) + 499: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 497 498 + 500: 36(fvec3) Load 41(inF0) + 501: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 500 + 502: 36(fvec3) Load 41(inF0) + 503: 36(fvec3) Load 42(inF1) + 504: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 502 503 + 505: 36(fvec3) Load 41(inF0) + 506: 36(fvec3) Load 42(inF1) + 507: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 505 506 359 + 509: 411(ivec3) BitReverse 508 + 510: 36(fvec3) Load 41(inF0) + 511: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 510 + 512: 36(fvec3) Load 41(inF0) + 513: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 512 + 514: 36(fvec3) Load 41(inF0) + 515: 36(fvec3) CompositeConstruct 223 223 223 + 516: 36(fvec3) CompositeConstruct 224 224 224 + 517: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 514 515 516 + 518: 36(fvec3) Load 41(inF0) + 519: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 518 + 520: 36(fvec3) Load 41(inF0) + 521: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 520 + 522: 36(fvec3) Load 41(inF0) + 523: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 522 + Store 42(inF1) 523 + 524: 36(fvec3) Load 41(inF0) + 525: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 524 + Store 43(inF2) 525 + 526: 36(fvec3) Load 41(inF0) + 527: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 526 + 528: 36(fvec3) Load 41(inF0) + 529: 36(fvec3) Load 42(inF1) + 530: 36(fvec3) Load 43(inF2) + 531: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 528 529 530 + 532: 36(fvec3) Load 41(inF0) + 533: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 532 + 534: 36(fvec3) Load 41(inF0) + 535: 36(fvec3) Load 42(inF1) + 536: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 534 535 + 537: 36(fvec3) Load 41(inF0) + 538: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 537 + 539: 36(fvec3) Load 41(inF0) + 540: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 539 + 541: 36(fvec3) Load 41(inF0) + 542: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 541 + ReturnValue 544 + FunctionEnd +58(VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 + 53(inF0): 49(ptr) FunctionParameter + 54(inF1): 49(ptr) FunctionParameter + 55(inF2): 49(ptr) FunctionParameter + 56(inU0): 51(ptr) FunctionParameter + 57(inU1): 51(ptr) FunctionParameter + 59: Label + 547: 48(fvec4) Load 53(inF0) + 548: 132(bool) All 547 + 549: 48(fvec4) Load 53(inF0) + 550: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 549 + 551: 48(fvec4) Load 53(inF0) + 552: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 551 + 553: 48(fvec4) Load 53(inF0) + 554: 132(bool) Any 553 + 555: 48(fvec4) Load 53(inF0) + 556: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 555 + 557: 48(fvec4) Load 53(inF0) + 559: 558(ivec4) Bitcast 557 + 560: 48(fvec4) Load 53(inF0) + 561: 50(ivec4) Bitcast 560 + 562: 50(ivec4) Load 56(inU0) + 563: 48(fvec4) Bitcast 562 + 564: 48(fvec4) Load 53(inF0) + 565: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 564 + 566: 48(fvec4) Load 53(inF0) + 567: 48(fvec4) Load 54(inF1) + 568: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 566 567 + 569: 48(fvec4) Load 53(inF0) + 570: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 569 + 571: 48(fvec4) Load 53(inF0) + 572: 48(fvec4) Load 54(inF1) + 573: 48(fvec4) Load 55(inF2) + 574: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 571 572 573 + 575: 48(fvec4) Load 53(inF0) + 576: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 575 + 577: 48(fvec4) Load 53(inF0) + 578: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 577 + 580: 558(ivec4) BitCount 579 + 581: 48(fvec4) Load 53(inF0) + 582: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 581 + 583: 48(fvec4) Load 53(inF0) + 584: 48(fvec4) Load 54(inF1) + 585: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 583 584 + 586: 48(fvec4) Load 53(inF0) + 587: 48(fvec4) Load 54(inF1) + 588: 6(float) Dot 586 587 + 590: 7(ptr) AccessChain 53(inF0) 589 + 591: 6(float) Load 590 + 592: 7(ptr) AccessChain 54(inF1) 589 + 593: 6(float) Load 592 + 594: 6(float) FMul 591 593 + 596: 7(ptr) AccessChain 53(inF0) 595 + 597: 6(float) Load 596 + 599: 7(ptr) AccessChain 54(inF1) 598 + 600: 6(float) Load 599 + 601: 48(fvec4) CompositeConstruct 224 594 597 600 + 602: 48(fvec4) Load 53(inF0) + 603: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 602 + 604: 48(fvec4) Load 53(inF0) + 605: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 604 + 606: 48(fvec4) Load 53(inF0) + 607: 48(fvec4) Load 54(inF1) + 608: 48(fvec4) Load 55(inF2) + 609: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 606 607 608 + 610: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 611: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 612: 48(fvec4) Load 53(inF0) + 613: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 612 + 614: 48(fvec4) Load 53(inF0) + 615: 48(fvec4) Load 54(inF1) + 616: 48(fvec4) FMod 614 615 + 617: 48(fvec4) Load 53(inF0) + 618: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 617 + 619: 48(fvec4) Load 53(inF0) + 621:620(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 619 + 622: 558(ivec4) CompositeExtract 621 1 + Store 54(inF1) 622 + 623: 48(fvec4) CompositeExtract 621 0 + 624: 48(fvec4) Load 53(inF0) + 626: 625(bvec4) IsInf 624 + 627: 48(fvec4) Load 53(inF0) + 628: 625(bvec4) IsNan 627 + 629: 48(fvec4) Load 53(inF0) + 630: 48(fvec4) Load 54(inF1) + 631: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 629 630 + 632: 48(fvec4) Load 53(inF0) + 633: 48(fvec4) Load 54(inF1) + 634: 48(fvec4) Load 55(inF2) + 635: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 632 633 634 + 636: 48(fvec4) Load 53(inF0) + 637: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 636 + 638: 48(fvec4) Load 53(inF0) + 639: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 638 + 640: 48(fvec4) Load 53(inF0) + 641: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 640 + 642: 48(fvec4) VectorTimesScalar 641 201 + 643: 48(fvec4) Load 53(inF0) + 644: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 643 + 645: 48(fvec4) Load 53(inF0) + 646: 48(fvec4) Load 54(inF1) + 647: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 645 646 + 648: 48(fvec4) Load 53(inF0) + 649: 48(fvec4) Load 54(inF1) + 650: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 648 649 + 651: 48(fvec4) Load 53(inF0) + 652: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 651 + 653: 48(fvec4) Load 53(inF0) + 654: 48(fvec4) Load 54(inF1) + 655: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 653 654 + 656: 48(fvec4) Load 53(inF0) + 657: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 656 + 658: 48(fvec4) Load 53(inF0) + 659: 48(fvec4) Load 54(inF1) + 660: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 658 659 + 661: 48(fvec4) Load 53(inF0) + 662: 48(fvec4) Load 54(inF1) + 663: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 661 662 359 + 666: 558(ivec4) BitReverse 665 + 667: 48(fvec4) Load 53(inF0) + 668: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 667 + 669: 48(fvec4) Load 53(inF0) + 670: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 669 + 671: 48(fvec4) Load 53(inF0) + 672: 48(fvec4) CompositeConstruct 223 223 223 223 + 673: 48(fvec4) CompositeConstruct 224 224 224 224 + 674: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 671 672 673 + 675: 48(fvec4) Load 53(inF0) + 676: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 675 + 677: 48(fvec4) Load 53(inF0) + 678: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 677 + 679: 48(fvec4) Load 53(inF0) + 680: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 679 + Store 54(inF1) 680 + 681: 48(fvec4) Load 53(inF0) + 682: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 681 + Store 55(inF2) 682 + 683: 48(fvec4) Load 53(inF0) + 684: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 683 + 685: 48(fvec4) Load 53(inF0) + 686: 48(fvec4) Load 54(inF1) + 687: 48(fvec4) Load 55(inF2) + 688: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 685 686 687 + 689: 48(fvec4) Load 53(inF0) + 690: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 689 + 691: 48(fvec4) Load 53(inF0) + 692: 48(fvec4) Load 54(inF1) + 693: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 691 692 + 694: 48(fvec4) Load 53(inF0) + 695: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 694 + 696: 48(fvec4) Load 53(inF0) + 697: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 696 + 698: 48(fvec4) Load 53(inF0) + 699: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 698 + ReturnValue 701 + FunctionEnd +66(VertexShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 + 63(inF0): 61(ptr) FunctionParameter + 64(inF1): 61(ptr) FunctionParameter + 65(inF2): 61(ptr) FunctionParameter + 67: Label + 704: 60 Load 63(inF0) + 705: 132(bool) All 704 + 706: 60 Load 63(inF0) + 707: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 706 + 708: 60 Load 63(inF0) + 709: 60 ExtInst 1(GLSL.std.450) 17(Acos) 708 + 710: 60 Load 63(inF0) + 711: 132(bool) Any 710 + 712: 60 Load 63(inF0) + 713: 60 ExtInst 1(GLSL.std.450) 16(Asin) 712 + 714: 60 Load 63(inF0) + 715: 60 ExtInst 1(GLSL.std.450) 18(Atan) 714 + 716: 60 Load 63(inF0) + 717: 60 Load 64(inF1) + 718: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 716 717 + 719: 60 Load 63(inF0) + 720: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 719 + 721: 60 Load 63(inF0) + 722: 60 Load 64(inF1) + 723: 60 Load 65(inF2) + 724: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 721 722 723 + 725: 60 Load 63(inF0) + 726: 60 ExtInst 1(GLSL.std.450) 14(Cos) 725 + 727: 60 Load 63(inF0) + 728: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 727 + 729: 60 Load 63(inF0) + 730: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 729 + 731: 60 Load 63(inF0) + 732: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 731 + 733: 60 Load 63(inF0) + 734: 60 ExtInst 1(GLSL.std.450) 27(Exp) 733 + 735: 60 Load 63(inF0) + 736: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 735 + 737: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 738: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 739: 60 Load 63(inF0) + 740: 60 ExtInst 1(GLSL.std.450) 8(Floor) 739 + 741: 60 Load 63(inF0) + 742: 60 Load 64(inF1) + 743: 24(fvec2) CompositeExtract 741 0 + 744: 24(fvec2) CompositeExtract 742 0 + 745: 24(fvec2) FMod 743 744 + 746: 24(fvec2) CompositeExtract 741 1 + 747: 24(fvec2) CompositeExtract 742 1 + 748: 24(fvec2) FMod 746 747 + 749: 60 CompositeConstruct 745 748 + 750: 60 Load 63(inF0) + 751: 60 ExtInst 1(GLSL.std.450) 10(Fract) 750 + 752: 60 Load 63(inF0) + 754:753(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 752 + 755: 266(ivec2) CompositeExtract 754 1 + Store 64(inF1) 755 + 756: 60 CompositeExtract 754 0 + 757: 60 Load 63(inF0) + 758: 60 Load 64(inF1) + 759: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 757 758 + 760: 60 Load 63(inF0) + 761: 60 Load 64(inF1) + 762: 60 Load 65(inF2) + 763: 60 ExtInst 1(GLSL.std.450) 46(FMix) 760 761 762 + 764: 60 Load 63(inF0) + 765: 60 ExtInst 1(GLSL.std.450) 28(Log) 764 + 766: 60 Load 63(inF0) + 767: 60 ExtInst 1(GLSL.std.450) 30(Log2) 766 + 768: 60 MatrixTimesScalar 767 201 + 769: 60 Load 63(inF0) + 770: 60 ExtInst 1(GLSL.std.450) 30(Log2) 769 + 771: 60 Load 63(inF0) + 772: 60 Load 64(inF1) + 773: 60 ExtInst 1(GLSL.std.450) 40(FMax) 771 772 + 774: 60 Load 63(inF0) + 775: 60 Load 64(inF1) + 776: 60 ExtInst 1(GLSL.std.450) 37(FMin) 774 775 + 777: 60 Load 63(inF0) + 778: 60 Load 64(inF1) + 779: 60 ExtInst 1(GLSL.std.450) 26(Pow) 777 778 + 780: 60 Load 63(inF0) + 781: 60 ExtInst 1(GLSL.std.450) 11(Radians) 780 + 782: 60 Load 63(inF0) + 783: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 782 + 784: 60 Load 63(inF0) + 785: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 784 + 786: 60 Load 63(inF0) + 787: 24(fvec2) CompositeConstruct 223 223 + 788: 24(fvec2) CompositeConstruct 224 224 + 789: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 786 787 788 + 790: 60 Load 63(inF0) + 791: 60 ExtInst 1(GLSL.std.450) 6(FSign) 790 + 792: 60 Load 63(inF0) + 793: 60 ExtInst 1(GLSL.std.450) 13(Sin) 792 + 794: 60 Load 63(inF0) + 795: 60 ExtInst 1(GLSL.std.450) 13(Sin) 794 + Store 64(inF1) 795 + 796: 60 Load 63(inF0) + 797: 60 ExtInst 1(GLSL.std.450) 14(Cos) 796 + Store 65(inF2) 797 + 798: 60 Load 63(inF0) + 799: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 798 + 800: 60 Load 63(inF0) + 801: 60 Load 64(inF1) + 802: 60 Load 65(inF2) + 803: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 800 801 802 + 804: 60 Load 63(inF0) + 805: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 804 + 806: 60 Load 63(inF0) + 807: 60 Load 64(inF1) + 808: 60 ExtInst 1(GLSL.std.450) 48(Step) 806 807 + 809: 60 Load 63(inF0) + 810: 60 ExtInst 1(GLSL.std.450) 15(Tan) 809 + 811: 60 Load 63(inF0) + 812: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 811 + 813: 60 Load 63(inF0) + 814: 60 Transpose 813 + 815: 60 Load 63(inF0) + 816: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 815 + ReturnValue 818 + FunctionEnd +74(VertexShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 + 71(inF0): 69(ptr) FunctionParameter + 72(inF1): 69(ptr) FunctionParameter + 73(inF2): 69(ptr) FunctionParameter + 75: Label + 821: 68 Load 71(inF0) + 822: 132(bool) All 821 + 823: 68 Load 71(inF0) + 824: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 823 + 825: 68 Load 71(inF0) + 826: 68 ExtInst 1(GLSL.std.450) 17(Acos) 825 + 827: 68 Load 71(inF0) + 828: 132(bool) Any 827 + 829: 68 Load 71(inF0) + 830: 68 ExtInst 1(GLSL.std.450) 16(Asin) 829 + 831: 68 Load 71(inF0) + 832: 68 ExtInst 1(GLSL.std.450) 18(Atan) 831 + 833: 68 Load 71(inF0) + 834: 68 Load 72(inF1) + 835: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 833 834 + 836: 68 Load 71(inF0) + 837: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 836 + 838: 68 Load 71(inF0) + 839: 68 Load 72(inF1) + 840: 68 Load 73(inF2) + 841: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 838 839 840 + 842: 68 Load 71(inF0) + 843: 68 ExtInst 1(GLSL.std.450) 14(Cos) 842 + 844: 68 Load 71(inF0) + 845: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 844 + 846: 68 Load 71(inF0) + 847: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 846 + 848: 68 Load 71(inF0) + 849: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 848 + 850: 68 Load 71(inF0) + 851: 68 ExtInst 1(GLSL.std.450) 27(Exp) 850 + 852: 68 Load 71(inF0) + 853: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 852 + 854: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 855: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 856: 68 Load 71(inF0) + 857: 68 ExtInst 1(GLSL.std.450) 8(Floor) 856 + 858: 68 Load 71(inF0) + 859: 68 Load 72(inF1) + 860: 36(fvec3) CompositeExtract 858 0 + 861: 36(fvec3) CompositeExtract 859 0 + 862: 36(fvec3) FMod 860 861 + 863: 36(fvec3) CompositeExtract 858 1 + 864: 36(fvec3) CompositeExtract 859 1 + 865: 36(fvec3) FMod 863 864 + 866: 36(fvec3) CompositeExtract 858 2 + 867: 36(fvec3) CompositeExtract 859 2 + 868: 36(fvec3) FMod 866 867 + 869: 68 CompositeConstruct 862 865 868 + 870: 68 Load 71(inF0) + 871: 68 ExtInst 1(GLSL.std.450) 10(Fract) 870 + 872: 68 Load 71(inF0) + 874:873(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 872 + 875: 411(ivec3) CompositeExtract 874 1 + Store 72(inF1) 875 + 876: 68 CompositeExtract 874 0 + 877: 68 Load 71(inF0) + 878: 68 Load 72(inF1) + 879: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 877 878 + 880: 68 Load 71(inF0) + 881: 68 Load 72(inF1) + 882: 68 Load 73(inF2) + 883: 68 ExtInst 1(GLSL.std.450) 46(FMix) 880 881 882 + 884: 68 Load 71(inF0) + 885: 68 ExtInst 1(GLSL.std.450) 28(Log) 884 + 886: 68 Load 71(inF0) + 887: 68 ExtInst 1(GLSL.std.450) 30(Log2) 886 + 888: 68 MatrixTimesScalar 887 201 + 889: 68 Load 71(inF0) + 890: 68 ExtInst 1(GLSL.std.450) 30(Log2) 889 + 891: 68 Load 71(inF0) + 892: 68 Load 72(inF1) + 893: 68 ExtInst 1(GLSL.std.450) 40(FMax) 891 892 + 894: 68 Load 71(inF0) + 895: 68 Load 72(inF1) + 896: 68 ExtInst 1(GLSL.std.450) 37(FMin) 894 895 + 897: 68 Load 71(inF0) + 898: 68 Load 72(inF1) + 899: 68 ExtInst 1(GLSL.std.450) 26(Pow) 897 898 + 900: 68 Load 71(inF0) + 901: 68 ExtInst 1(GLSL.std.450) 11(Radians) 900 + 902: 68 Load 71(inF0) + 903: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 902 + 904: 68 Load 71(inF0) + 905: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 904 + 906: 68 Load 71(inF0) + 907: 36(fvec3) CompositeConstruct 223 223 223 + 908: 36(fvec3) CompositeConstruct 224 224 224 + 909: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 906 907 908 + 910: 68 Load 71(inF0) + 911: 68 ExtInst 1(GLSL.std.450) 6(FSign) 910 + 912: 68 Load 71(inF0) + 913: 68 ExtInst 1(GLSL.std.450) 13(Sin) 912 + 914: 68 Load 71(inF0) + 915: 68 ExtInst 1(GLSL.std.450) 13(Sin) 914 + Store 72(inF1) 915 + 916: 68 Load 71(inF0) + 917: 68 ExtInst 1(GLSL.std.450) 14(Cos) 916 + Store 73(inF2) 917 + 918: 68 Load 71(inF0) + 919: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 918 + 920: 68 Load 71(inF0) + 921: 68 Load 72(inF1) + 922: 68 Load 73(inF2) + 923: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 920 921 922 + 924: 68 Load 71(inF0) + 925: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 924 + 926: 68 Load 71(inF0) + 927: 68 Load 72(inF1) + 928: 68 ExtInst 1(GLSL.std.450) 48(Step) 926 927 + 929: 68 Load 71(inF0) + 930: 68 ExtInst 1(GLSL.std.450) 15(Tan) 929 + 931: 68 Load 71(inF0) + 932: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 931 + 933: 68 Load 71(inF0) + 934: 68 Transpose 933 + 935: 68 Load 71(inF0) + 936: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 935 + ReturnValue 938 + FunctionEnd +82(VertexShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 + 79(inF0): 77(ptr) FunctionParameter + 80(inF1): 77(ptr) FunctionParameter + 81(inF2): 77(ptr) FunctionParameter + 83: Label + 941: 76 Load 79(inF0) + 942: 132(bool) All 941 + 943: 76 Load 79(inF0) + 944: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 943 + 945: 76 Load 79(inF0) + 946: 76 ExtInst 1(GLSL.std.450) 17(Acos) 945 + 947: 76 Load 79(inF0) + 948: 132(bool) Any 947 + 949: 76 Load 79(inF0) + 950: 76 ExtInst 1(GLSL.std.450) 16(Asin) 949 + 951: 76 Load 79(inF0) + 952: 76 ExtInst 1(GLSL.std.450) 18(Atan) 951 + 953: 76 Load 79(inF0) + 954: 76 Load 80(inF1) + 955: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 953 954 + 956: 76 Load 79(inF0) + 957: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 956 + 958: 76 Load 79(inF0) + 959: 76 Load 80(inF1) + 960: 76 Load 81(inF2) + 961: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 958 959 960 + 962: 76 Load 79(inF0) + 963: 76 ExtInst 1(GLSL.std.450) 14(Cos) 962 + 964: 76 Load 79(inF0) + 965: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 964 + 966: 76 Load 79(inF0) + 967: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 966 + 968: 76 Load 79(inF0) + 969: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 968 + 970: 76 Load 79(inF0) + 971: 76 ExtInst 1(GLSL.std.450) 27(Exp) 970 + 972: 76 Load 79(inF0) + 973: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 972 + 974: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 975: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 976: 76 Load 79(inF0) + 977: 76 ExtInst 1(GLSL.std.450) 8(Floor) 976 + 978: 76 Load 79(inF0) + 979: 76 Load 80(inF1) + 980: 48(fvec4) CompositeExtract 978 0 + 981: 48(fvec4) CompositeExtract 979 0 + 982: 48(fvec4) FMod 980 981 + 983: 48(fvec4) CompositeExtract 978 1 + 984: 48(fvec4) CompositeExtract 979 1 + 985: 48(fvec4) FMod 983 984 + 986: 48(fvec4) CompositeExtract 978 2 + 987: 48(fvec4) CompositeExtract 979 2 + 988: 48(fvec4) FMod 986 987 + 989: 48(fvec4) CompositeExtract 978 3 + 990: 48(fvec4) CompositeExtract 979 3 + 991: 48(fvec4) FMod 989 990 + 992: 76 CompositeConstruct 982 985 988 991 + 993: 76 Load 79(inF0) + 994: 76 ExtInst 1(GLSL.std.450) 10(Fract) 993 + 995: 76 Load 79(inF0) + 997:996(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 995 + 998: 558(ivec4) CompositeExtract 997 1 + Store 80(inF1) 998 + 999: 76 CompositeExtract 997 0 + 1000: 76 Load 79(inF0) + 1001: 76 Load 80(inF1) + 1002: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1000 1001 + 1003: 76 Load 79(inF0) + 1004: 76 Load 80(inF1) + 1005: 76 Load 81(inF2) + 1006: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1003 1004 1005 + 1007: 76 Load 79(inF0) + 1008: 76 ExtInst 1(GLSL.std.450) 28(Log) 1007 + 1009: 76 Load 79(inF0) + 1010: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1009 + 1011: 76 MatrixTimesScalar 1010 201 + 1012: 76 Load 79(inF0) + 1013: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1012 + 1014: 76 Load 79(inF0) + 1015: 76 Load 80(inF1) + 1016: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1014 1015 + 1017: 76 Load 79(inF0) + 1018: 76 Load 80(inF1) + 1019: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1017 1018 + 1020: 76 Load 79(inF0) + 1021: 76 Load 80(inF1) + 1022: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1020 1021 + 1023: 76 Load 79(inF0) + 1024: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1023 + 1025: 76 Load 79(inF0) + 1026: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1025 + 1027: 76 Load 79(inF0) + 1028: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1027 + 1029: 76 Load 79(inF0) + 1030: 48(fvec4) CompositeConstruct 223 223 223 223 + 1031: 48(fvec4) CompositeConstruct 224 224 224 224 + 1032: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1029 1030 1031 + 1033: 76 Load 79(inF0) + 1034: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1033 + 1035: 76 Load 79(inF0) + 1036: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1035 + 1037: 76 Load 79(inF0) + 1038: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1037 + Store 80(inF1) 1038 + 1039: 76 Load 79(inF0) + 1040: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1039 + Store 81(inF2) 1040 + 1041: 76 Load 79(inF0) + 1042: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1041 + 1043: 76 Load 79(inF0) + 1044: 76 Load 80(inF1) + 1045: 76 Load 81(inF2) + 1046: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 + 1047: 76 Load 79(inF0) + 1048: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1047 + 1049: 76 Load 79(inF0) + 1050: 76 Load 80(inF1) + 1051: 76 ExtInst 1(GLSL.std.450) 48(Step) 1049 1050 + 1052: 76 Load 79(inF0) + 1053: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1052 + 1054: 76 Load 79(inF0) + 1055: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1054 + 1056: 76 Load 79(inF0) + 1057: 76 Transpose 1056 + 1058: 76 Load 79(inF0) + 1059: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1058 + ReturnValue 1061 + FunctionEnd +91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 + 85(inF0): 7(ptr) FunctionParameter + 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 + 1064(r0): 7(ptr) Variable Function + 1068(r1): 25(ptr) Variable Function + 1072(r2): 25(ptr) Variable Function + 1076(r3): 7(ptr) Variable Function + 1080(r4): 25(ptr) Variable Function + 1084(r5): 25(ptr) Variable Function + 1088(r6): 61(ptr) Variable Function + 1092(r7): 61(ptr) Variable Function + 1096(r8): 61(ptr) Variable Function + 1065: 6(float) Load 86(inF1) + 1066: 6(float) Load 85(inF0) + 1067: 6(float) FMul 1065 1066 + Store 1064(r0) 1067 + 1069: 6(float) Load 85(inF0) + 1070: 24(fvec2) Load 87(inFV0) + 1071: 24(fvec2) VectorTimesScalar 1070 1069 + Store 1068(r1) 1071 + 1073: 24(fvec2) Load 87(inFV0) + 1074: 6(float) Load 85(inF0) + 1075: 24(fvec2) VectorTimesScalar 1073 1074 + Store 1072(r2) 1075 + 1077: 24(fvec2) Load 87(inFV0) + 1078: 24(fvec2) Load 88(inFV1) + 1079: 6(float) Dot 1077 1078 + Store 1076(r3) 1079 + 1081: 24(fvec2) Load 87(inFV0) + 1082: 60 Load 89(inFM0) + 1083: 24(fvec2) VectorTimesMatrix 1081 1082 + Store 1080(r4) 1083 + 1085: 60 Load 89(inFM0) + 1086: 24(fvec2) Load 87(inFV0) + 1087: 24(fvec2) MatrixTimesVector 1085 1086 + Store 1084(r5) 1087 + 1089: 6(float) Load 85(inF0) + 1090: 60 Load 89(inFM0) + 1091: 60 MatrixTimesScalar 1090 1089 + Store 1088(r6) 1091 + 1093: 60 Load 89(inFM0) + 1094: 6(float) Load 85(inF0) + 1095: 60 MatrixTimesScalar 1093 1094 + Store 1092(r7) 1095 + 1097: 60 Load 90(inFM1) + 1098: 60 Load 89(inFM0) + 1099: 60 MatrixTimesMatrix 1097 1098 + Store 1096(r8) 1099 + Return + FunctionEnd +100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 + 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 + 1100(r0): 7(ptr) Variable Function + 1104(r1): 37(ptr) Variable Function + 1108(r2): 37(ptr) Variable Function + 1112(r3): 7(ptr) Variable Function + 1116(r4): 37(ptr) Variable Function + 1120(r5): 37(ptr) Variable Function + 1124(r6): 69(ptr) Variable Function + 1128(r7): 69(ptr) Variable Function + 1132(r8): 69(ptr) Variable Function + 1101: 6(float) Load 95(inF1) + 1102: 6(float) Load 94(inF0) + 1103: 6(float) FMul 1101 1102 + Store 1100(r0) 1103 + 1105: 6(float) Load 94(inF0) + 1106: 36(fvec3) Load 96(inFV0) + 1107: 36(fvec3) VectorTimesScalar 1106 1105 + Store 1104(r1) 1107 + 1109: 36(fvec3) Load 96(inFV0) + 1110: 6(float) Load 94(inF0) + 1111: 36(fvec3) VectorTimesScalar 1109 1110 + Store 1108(r2) 1111 + 1113: 36(fvec3) Load 96(inFV0) + 1114: 36(fvec3) Load 97(inFV1) + 1115: 6(float) Dot 1113 1114 + Store 1112(r3) 1115 + 1117: 36(fvec3) Load 96(inFV0) + 1118: 68 Load 98(inFM0) + 1119: 36(fvec3) VectorTimesMatrix 1117 1118 + Store 1116(r4) 1119 + 1121: 68 Load 98(inFM0) + 1122: 36(fvec3) Load 96(inFV0) + 1123: 36(fvec3) MatrixTimesVector 1121 1122 + Store 1120(r5) 1123 + 1125: 6(float) Load 94(inF0) + 1126: 68 Load 98(inFM0) + 1127: 68 MatrixTimesScalar 1126 1125 + Store 1124(r6) 1127 + 1129: 68 Load 98(inFM0) + 1130: 6(float) Load 94(inF0) + 1131: 68 MatrixTimesScalar 1129 1130 + Store 1128(r7) 1131 + 1133: 68 Load 99(inFM1) + 1134: 68 Load 98(inFM0) + 1135: 68 MatrixTimesMatrix 1133 1134 + Store 1132(r8) 1135 + Return + FunctionEnd +109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 + 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 + 1136(r0): 7(ptr) Variable Function + 1140(r1): 49(ptr) Variable Function + 1144(r2): 49(ptr) Variable Function + 1148(r3): 7(ptr) Variable Function + 1152(r4): 49(ptr) Variable Function + 1156(r5): 49(ptr) Variable Function + 1160(r6): 77(ptr) Variable Function + 1164(r7): 77(ptr) Variable Function + 1168(r8): 77(ptr) Variable Function + 1137: 6(float) Load 104(inF1) + 1138: 6(float) Load 103(inF0) + 1139: 6(float) FMul 1137 1138 + Store 1136(r0) 1139 + 1141: 6(float) Load 103(inF0) + 1142: 48(fvec4) Load 105(inFV0) + 1143: 48(fvec4) VectorTimesScalar 1142 1141 + Store 1140(r1) 1143 + 1145: 48(fvec4) Load 105(inFV0) + 1146: 6(float) Load 103(inF0) + 1147: 48(fvec4) VectorTimesScalar 1145 1146 + Store 1144(r2) 1147 + 1149: 48(fvec4) Load 105(inFV0) + 1150: 48(fvec4) Load 106(inFV1) + 1151: 6(float) Dot 1149 1150 + Store 1148(r3) 1151 + 1153: 48(fvec4) Load 105(inFV0) + 1154: 76 Load 107(inFM0) + 1155: 48(fvec4) VectorTimesMatrix 1153 1154 + Store 1152(r4) 1155 + 1157: 76 Load 107(inFM0) + 1158: 48(fvec4) Load 105(inFV0) + 1159: 48(fvec4) MatrixTimesVector 1157 1158 + Store 1156(r5) 1159 + 1161: 6(float) Load 103(inF0) + 1162: 76 Load 107(inFM0) + 1163: 76 MatrixTimesScalar 1162 1161 + Store 1160(r6) 1163 + 1165: 76 Load 107(inFM0) + 1166: 6(float) Load 103(inF0) + 1167: 76 MatrixTimesScalar 1165 1166 + Store 1164(r7) 1167 + 1169: 76 Load 108(inFM1) + 1170: 76 Load 107(inFM0) + 1171: 76 MatrixTimesMatrix 1169 1170 + Store 1168(r8) 1171 + Return + FunctionEnd +129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 + 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 + 1172(r00): 7(ptr) Variable Function + 1176(r01): 25(ptr) Variable Function + 1180(r02): 37(ptr) Variable Function + 1184(r03): 25(ptr) Variable Function + 1188(r04): 37(ptr) Variable Function + 1192(r05): 7(ptr) Variable Function + 1196(r06): 7(ptr) Variable Function + 1200(r07): 37(ptr) Variable Function + 1204(r08): 25(ptr) Variable Function + 1208(r09): 25(ptr) Variable Function + 1212(r10): 37(ptr) Variable Function + 1216(r11): 112(ptr) Variable Function + 1220(r12): 114(ptr) Variable Function + 1224(r13): 61(ptr) Variable Function + 1228(r14): 112(ptr) Variable Function + 1232(r15): 118(ptr) Variable Function + 1236(r16): 116(ptr) Variable Function + 1173: 6(float) Load 121(inF1) + 1174: 6(float) Load 120(inF0) + 1175: 6(float) FMul 1173 1174 + Store 1172(r00) 1175 + 1177: 6(float) Load 120(inF0) + 1178: 24(fvec2) Load 122(inFV2) + 1179: 24(fvec2) VectorTimesScalar 1178 1177 + Store 1176(r01) 1179 + 1181: 6(float) Load 120(inF0) + 1182: 36(fvec3) Load 123(inFV3) + 1183: 36(fvec3) VectorTimesScalar 1182 1181 + Store 1180(r02) 1183 + 1185: 24(fvec2) Load 122(inFV2) + 1186: 6(float) Load 120(inF0) + 1187: 24(fvec2) VectorTimesScalar 1185 1186 + Store 1184(r03) 1187 + 1189: 36(fvec3) Load 123(inFV3) + 1190: 6(float) Load 120(inF0) + 1191: 36(fvec3) VectorTimesScalar 1189 1190 + Store 1188(r04) 1191 + 1193: 24(fvec2) Load 122(inFV2) + 1194: 24(fvec2) Load 122(inFV2) + 1195: 6(float) Dot 1193 1194 + Store 1192(r05) 1195 + 1197: 36(fvec3) Load 123(inFV3) + 1198: 36(fvec3) Load 123(inFV3) + 1199: 6(float) Dot 1197 1198 + Store 1196(r06) 1199 + 1201: 111 Load 124(inFM2x3) + 1202: 24(fvec2) Load 122(inFV2) + 1203: 36(fvec3) MatrixTimesVector 1201 1202 + Store 1200(r07) 1203 + 1205: 113 Load 125(inFM3x2) + 1206: 36(fvec3) Load 123(inFV3) + 1207: 24(fvec2) MatrixTimesVector 1205 1206 + Store 1204(r08) 1207 + 1209: 36(fvec3) Load 123(inFV3) + 1210: 111 Load 124(inFM2x3) + 1211: 24(fvec2) VectorTimesMatrix 1209 1210 + Store 1208(r09) 1211 + 1213: 24(fvec2) Load 122(inFV2) + 1214: 113 Load 125(inFM3x2) + 1215: 36(fvec3) VectorTimesMatrix 1213 1214 + Store 1212(r10) 1215 + 1217: 6(float) Load 120(inF0) + 1218: 111 Load 124(inFM2x3) + 1219: 111 MatrixTimesScalar 1218 1217 + Store 1216(r11) 1219 + 1221: 6(float) Load 120(inF0) + 1222: 113 Load 125(inFM3x2) + 1223: 113 MatrixTimesScalar 1222 1221 + Store 1220(r12) 1223 + 1225: 113 Load 125(inFM3x2) + 1226: 111 Load 124(inFM2x3) + 1227: 60 MatrixTimesMatrix 1225 1226 + Store 1224(r13) 1227 + 1229: 68 Load 126(inFM3x3) + 1230: 111 Load 124(inFM2x3) + 1231: 111 MatrixTimesMatrix 1229 1230 + Store 1228(r14) 1231 + 1233: 115 Load 127(inFM3x4) + 1234: 111 Load 124(inFM2x3) + 1235: 117 MatrixTimesMatrix 1233 1234 + Store 1232(r15) 1235 + 1237: 117 Load 128(inFM2x4) + 1238: 113 Load 125(inFM3x2) + 1239: 115 MatrixTimesMatrix 1237 1238 + Store 1236(r16) 1239 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.layout.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.layout.frag.out new file mode 100755 index 0000000000..0c12435a14 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.layout.frag.out @@ -0,0 +1,139 @@ +hlsl.layout.frag +Shader version: 450 +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 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 'input' (in 4-component vector of float) +0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 Constant: +0:17 0 (const uint) +0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 Constant: +0:17 0 (const uint) +0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 Constant: +0:17 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'specConst' (specialization-constant const int) +0:? 10 (const int) +0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:16 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:16 Function Parameters: +0:16 'input' (in 4-component vector of float) +0:? Sequence +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 'input' (in 4-component vector of float) +0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 Constant: +0:17 0 (const uint) +0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 Constant: +0:17 0 (const uint) +0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 Constant: +0:17 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'specConst' (specialization-constant const int) +0:? 10 (const int) +0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "PixelShaderFunction(vf4;" + Name 10 "input" + Name 14 "tbufName" + MemberName 14(tbufName) 0 "v1" + Name 16 "" + Name 23 "tbufName2" + MemberName 23(tbufName2) 0 "v5" + Name 25 "" + Name 30 "tbufName2" + MemberName 30(tbufName2) 0 "v1PostLayout" + Name 32 "" + MemberDecorate 14(tbufName) 0 Offset 16 + Decorate 14(tbufName) BufferBlock + Decorate 16 DescriptorSet 3 + Decorate 16 Binding 5 + MemberDecorate 23(tbufName2) 0 Offset 0 + Decorate 23(tbufName2) BufferBlock + MemberDecorate 30(tbufName2) 0 Offset 16 + Decorate 30(tbufName2) BufferBlock + Decorate 32 DescriptorSet 4 + Decorate 32 Binding 7 + Decorate 38 SpecId 17 + 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(tbufName): TypeStruct 7(fvec4) + 15: TypePointer Uniform 14(tbufName) + 16: 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 7(fvec4) + 23(tbufName2): TypeStruct 7(fvec4) + 24: TypePointer PushConstant 23(tbufName2) + 25: 24(ptr) Variable PushConstant + 26: TypePointer PushConstant 7(fvec4) + 30(tbufName2): TypeStruct 7(fvec4) + 31: TypePointer Uniform 30(tbufName2) + 32: 31(ptr) Variable Uniform + 38: 17(int) SpecConstant 10 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd +11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13: 7(fvec4) Load 10(input) + 20: 19(ptr) AccessChain 16 18 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 13 21 + 27: 26(ptr) AccessChain 25 18 + 28: 7(fvec4) Load 27 + 29: 7(fvec4) FAdd 22 28 + 33: 19(ptr) AccessChain 32 18 + 34: 7(fvec4) Load 33 + 35: 7(fvec4) FAdd 29 34 + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.2dms.dx10.frag.out new file mode 100644 index 0000000000..288a0f3f5e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -0,0 +1,526 @@ +hlsl.load.2dms.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=8 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 3 (const int) +0:33 textureFetch (temp 4-component vector of int) +0:33 'g_tTex2dmsi4' (uniform itexture2DMS) +0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) +0:33 Constant: +0:33 3 (const int) +0:34 textureFetch (temp 4-component vector of uint) +0:34 'g_tTex2dmsu4' (uniform utexture2DMS) +0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) +0:34 Constant: +0:34 3 (const int) +0:37 textureFetchOffset (temp 4-component vector of float) +0:37 'g_tTex2dmsf4' (uniform texture2DMS) +0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) +0:37 Constant: +0:37 3 (const int) +0:37 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) +0:38 textureFetchOffset (temp 4-component vector of int) +0:38 'g_tTex2dmsi4' (uniform itexture2DMS) +0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 3 (const int) +0:38 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) +0:39 textureFetchOffset (temp 4-component vector of uint) +0:39 'g_tTex2dmsu4' (uniform utexture2DMS) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 3 (const int) +0:39 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) +0:42 textureFetch (temp 4-component vector of float) +0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 3 (const int) +0:43 textureFetch (temp 4-component vector of int) +0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 3 (const int) +0:44 textureFetch (temp 4-component vector of uint) +0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 3 (const int) +0:47 textureFetchOffset (temp 4-component vector of float) +0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:48 textureFetchOffset (temp 4-component vector of int) +0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) +0:48 Constant: +0:48 3 (const int) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:49 textureFetchOffset (temp 4-component vector of uint) +0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:49 Constant: +0:49 3 (const int) +0:49 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) +0:51 move second child to first child (temp 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 Sequence +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:54 Color: direct index for structure (temp 4-component vector of float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 0 (const int) +0:54 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsi4' (uniform itexture2DMS) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 (layout(offset=8 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 3 (const int) +0:33 textureFetch (temp 4-component vector of int) +0:33 'g_tTex2dmsi4' (uniform itexture2DMS) +0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) +0:33 Constant: +0:33 3 (const int) +0:34 textureFetch (temp 4-component vector of uint) +0:34 'g_tTex2dmsu4' (uniform utexture2DMS) +0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) +0:34 Constant: +0:34 3 (const int) +0:37 textureFetchOffset (temp 4-component vector of float) +0:37 'g_tTex2dmsf4' (uniform texture2DMS) +0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) +0:37 Constant: +0:37 3 (const int) +0:37 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) +0:38 textureFetchOffset (temp 4-component vector of int) +0:38 'g_tTex2dmsi4' (uniform itexture2DMS) +0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 3 (const int) +0:38 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) +0:39 textureFetchOffset (temp 4-component vector of uint) +0:39 'g_tTex2dmsu4' (uniform utexture2DMS) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 3 (const int) +0:39 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) +0:42 textureFetch (temp 4-component vector of float) +0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 3 (const int) +0:43 textureFetch (temp 4-component vector of int) +0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 3 (const int) +0:44 textureFetch (temp 4-component vector of uint) +0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 3 (const int) +0:47 textureFetchOffset (temp 4-component vector of float) +0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:48 textureFetchOffset (temp 4-component vector of int) +0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) +0:48 Constant: +0:48 3 (const int) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:49 textureFetchOffset (temp 4-component vector of uint) +0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:49 Constant: +0:49 3 (const int) +0:49 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) +0:51 move second child to first child (temp 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 Sequence +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:54 Color: direct index for structure (temp 4-component vector of float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 0 (const int) +0:54 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsi4' (uniform itexture2DMS) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 123 + + Capability Shader + Capability ImageGatherExtended + Capability ImageMSArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 112 116 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex2dmsf4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 27 "g_tTex2dmsi4" + Name 35 "g_tTex2dmsu4" + Name 62 "g_tTex2dmsf4a" + Name 71 "g_tTex2dmsi4a" + Name 78 "g_tTex2dmsu4a" + Name 101 "PS_OUTPUT" + MemberName 101(PS_OUTPUT) 0 "Color" + MemberName 101(PS_OUTPUT) 1 "Depth" + Name 103 "psout" + Name 112 "Color" + Name 116 "Depth" + Name 122 "g_sSamp" + Decorate 9(g_tTex2dmsf4) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 27(g_tTex2dmsi4) DescriptorSet 0 + Decorate 35(g_tTex2dmsu4) DescriptorSet 0 + Decorate 62(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 71(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 78(g_tTex2dmsu4a) DescriptorSet 0 + Decorate 112(Color) Location 0 + Decorate 116(Depth) BuiltIn FragDepth + Decorate 122(g_sSamp) DescriptorSet 0 + Decorate 122(g_sSamp) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 2D multi-sampled sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex2dmsf4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypePointer Uniform 12(ivec2) + 22: 11(int) Constant 3 + 23: TypeVector 6(float) 4 + 25: TypeImage 11(int) 2D multi-sampled sampled format:Unknown + 26: TypePointer UniformConstant 25 +27(g_tTex2dmsi4): 26(ptr) Variable UniformConstant + 32: TypeInt 32 0 + 33: TypeImage 32(int) 2D multi-sampled sampled format:Unknown + 34: TypePointer UniformConstant 33 +35(g_tTex2dmsu4): 34(ptr) Variable UniformConstant + 39: TypeVector 32(int) 4 + 44: 11(int) Constant 5 + 60: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown + 61: TypePointer UniformConstant 60 +62(g_tTex2dmsf4a): 61(ptr) Variable UniformConstant + 64: 11(int) Constant 2 + 65: TypePointer Uniform 13(ivec3) + 69: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown + 70: TypePointer UniformConstant 69 +71(g_tTex2dmsi4a): 70(ptr) Variable UniformConstant + 76: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown + 77: TypePointer UniformConstant 76 +78(g_tTex2dmsu4a): 77(ptr) Variable UniformConstant + 101(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) + 102: TypePointer Function 101(PS_OUTPUT) + 104: 11(int) Constant 0 + 105: 6(float) Constant 1065353216 + 106: 23(fvec4) ConstantComposite 105 105 105 105 + 107: TypePointer Function 23(fvec4) + 109: TypePointer Function 6(float) + 111: TypePointer Output 23(fvec4) + 112(Color): 111(ptr) Variable Output + 115: TypePointer Output 6(float) + 116(Depth): 115(ptr) Variable Output + 120: TypeSampler + 121: TypePointer UniformConstant 120 + 122(g_sSamp): 121(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 103(psout): 102(ptr) Variable Function + 10: 7 Load 9(g_tTex2dmsf4) + 20: 19(ptr) AccessChain 17 18 + 21: 12(ivec2) Load 20 + 24: 23(fvec4) ImageFetch 10 21 Sample 22 + 28: 25 Load 27(g_tTex2dmsi4) + 29: 19(ptr) AccessChain 17 18 + 30: 12(ivec2) Load 29 + 31: 14(ivec4) ImageFetch 28 30 Sample 22 + 36: 33 Load 35(g_tTex2dmsu4) + 37: 19(ptr) AccessChain 17 18 + 38: 12(ivec2) Load 37 + 40: 39(ivec4) ImageFetch 36 38 Sample 22 + 41: 7 Load 9(g_tTex2dmsf4) + 42: 19(ptr) AccessChain 17 18 + 43: 12(ivec2) Load 42 + 45: 19(ptr) AccessChain 17 44 + 46: 12(ivec2) Load 45 + 47: 23(fvec4) ImageFetch 41 43 Offset Sample 46 22 + 48: 25 Load 27(g_tTex2dmsi4) + 49: 19(ptr) AccessChain 17 18 + 50: 12(ivec2) Load 49 + 51: 19(ptr) AccessChain 17 44 + 52: 12(ivec2) Load 51 + 53: 14(ivec4) ImageFetch 48 50 Offset Sample 52 22 + 54: 33 Load 35(g_tTex2dmsu4) + 55: 19(ptr) AccessChain 17 18 + 56: 12(ivec2) Load 55 + 57: 19(ptr) AccessChain 17 44 + 58: 12(ivec2) Load 57 + 59: 39(ivec4) ImageFetch 54 56 Offset Sample 58 22 + 63: 60 Load 62(g_tTex2dmsf4a) + 66: 65(ptr) AccessChain 17 64 + 67: 13(ivec3) Load 66 + 68: 23(fvec4) ImageFetch 63 67 Sample 22 + 72: 69 Load 71(g_tTex2dmsi4a) + 73: 65(ptr) AccessChain 17 64 + 74: 13(ivec3) Load 73 + 75: 14(ivec4) ImageFetch 72 74 Sample 22 + 79: 76 Load 78(g_tTex2dmsu4a) + 80: 65(ptr) AccessChain 17 64 + 81: 13(ivec3) Load 80 + 82: 39(ivec4) ImageFetch 79 81 Sample 22 + 83: 60 Load 62(g_tTex2dmsf4a) + 84: 65(ptr) AccessChain 17 64 + 85: 13(ivec3) Load 84 + 86: 19(ptr) AccessChain 17 44 + 87: 12(ivec2) Load 86 + 88: 23(fvec4) ImageFetch 83 85 Offset Sample 87 22 + 89: 69 Load 71(g_tTex2dmsi4a) + 90: 65(ptr) AccessChain 17 64 + 91: 13(ivec3) Load 90 + 92: 19(ptr) AccessChain 17 44 + 93: 12(ivec2) Load 92 + 94: 14(ivec4) ImageFetch 89 91 Offset Sample 93 22 + 95: 76 Load 78(g_tTex2dmsu4a) + 96: 65(ptr) AccessChain 17 64 + 97: 13(ivec3) Load 96 + 98: 19(ptr) AccessChain 17 44 + 99: 12(ivec2) Load 98 + 100: 39(ivec4) ImageFetch 95 97 Offset Sample 99 22 + 108: 107(ptr) AccessChain 103(psout) 104 + Store 108 106 + 110: 109(ptr) AccessChain 103(psout) 18 + Store 110 105 + 113: 107(ptr) AccessChain 103(psout) 104 + 114: 23(fvec4) Load 113 + Store 112(Color) 114 + 117: 109(ptr) AccessChain 103(psout) 18 + 118: 6(float) Load 117 + Store 116(Depth) 118 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.array.dx10.frag.out new file mode 100644 index 0000000000..8c4f7c8d05 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -0,0 +1,616 @@ +hlsl.load.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:53 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:54 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:57 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:58 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:59 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +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 Sequence +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 1 (const int) +0:70 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:53 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:54 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:57 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:58 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:59 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +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 Sequence +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:70 Constant: +0:70 1 (const int) +0:70 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 152 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 96 100 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4a" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 32 "g_tTex1di4a" + Name 42 "g_tTex1du4a" + Name 53 "g_tTex2df4a" + Name 66 "g_tTex2di4a" + Name 76 "g_tTex2du4a" + Name 84 "PS_OUTPUT" + MemberName 84(PS_OUTPUT) 0 "Color" + MemberName 84(PS_OUTPUT) 1 "Depth" + Name 86 "psout" + Name 96 "Color" + Name 100 "Depth" + Name 106 "g_sSamp" + Name 109 "g_tTex1df4" + Name 112 "g_tTex1di4" + Name 115 "g_tTex1du4" + Name 118 "g_tTex2df4" + Name 121 "g_tTex2di4" + Name 124 "g_tTex2du4" + Name 127 "g_tTex3df4" + Name 130 "g_tTex3di4" + Name 133 "g_tTex3du4" + Name 136 "g_tTexcdf4" + Name 139 "g_tTexcdi4" + Name 142 "g_tTexcdu4" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" + Decorate 9(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 32(g_tTex1di4a) DescriptorSet 0 + Decorate 42(g_tTex1du4a) DescriptorSet 0 + Decorate 53(g_tTex2df4a) DescriptorSet 0 + Decorate 66(g_tTex2di4a) DescriptorSet 0 + Decorate 76(g_tTex2du4a) DescriptorSet 0 + Decorate 96(Color) Location 0 + Decorate 100(Depth) BuiltIn FragDepth + Decorate 106(g_sSamp) DescriptorSet 0 + Decorate 106(g_sSamp) Binding 0 + Decorate 109(g_tTex1df4) DescriptorSet 0 + Decorate 109(g_tTex1df4) Binding 0 + Decorate 112(g_tTex1di4) DescriptorSet 0 + Decorate 115(g_tTex1du4) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 121(g_tTex2di4) DescriptorSet 0 + Decorate 124(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 130(g_tTex3di4) DescriptorSet 0 + Decorate 133(g_tTex3du4) DescriptorSet 0 + Decorate 136(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D array sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4a): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 2 + 19: TypePointer Uniform 13(ivec3) + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Uniform 11(int) + 28: TypeVector 6(float) 4 + 30: TypeImage 11(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4a): 31(ptr) Variable UniformConstant + 40: TypeImage 23(int) 1D array sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4a): 41(ptr) Variable UniformConstant + 49: TypeVector 23(int) 4 + 51: TypeImage 6(float) 2D array sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4a): 52(ptr) Variable UniformConstant + 55: 11(int) Constant 3 + 56: TypePointer Uniform 14(ivec4) + 60: 23(int) Constant 3 + 64: TypeImage 11(int) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4a): 65(ptr) Variable UniformConstant + 74: TypeImage 23(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4a): 75(ptr) Variable UniformConstant + 84(PS_OUTPUT): TypeStruct 28(fvec4) 6(float) + 85: TypePointer Function 84(PS_OUTPUT) + 87: 11(int) Constant 0 + 88: 6(float) Constant 1065353216 + 89: 28(fvec4) ConstantComposite 88 88 88 88 + 90: TypePointer Function 28(fvec4) + 92: 11(int) Constant 1 + 93: TypePointer Function 6(float) + 95: TypePointer Output 28(fvec4) + 96(Color): 95(ptr) Variable Output + 99: TypePointer Output 6(float) + 100(Depth): 99(ptr) Variable Output + 104: TypeSampler + 105: TypePointer UniformConstant 104 + 106(g_sSamp): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex1df4): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 1D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex1di4): 111(ptr) Variable UniformConstant + 113: TypeImage 23(int) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 2D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex2di4): 120(ptr) Variable UniformConstant + 122: TypeImage 23(int) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2du4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 128: TypeImage 11(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3di4): 129(ptr) Variable UniformConstant + 131: TypeImage 23(int) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3du4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdf4): 135(ptr) Variable UniformConstant + 137: TypeImage 11(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 140: TypeImage 23(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 11(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 23(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 86(psout): 85(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4a) + 20: 19(ptr) AccessChain 17 18 + 21: 13(ivec3) Load 20 + 22: 12(ivec2) VectorShuffle 21 21 0 1 + 26: 25(ptr) AccessChain 17 18 24 + 27: 11(int) Load 26 + 29: 28(fvec4) ImageFetch 10 22 Lod 27 + 33: 30 Load 32(g_tTex1di4a) + 34: 19(ptr) AccessChain 17 18 + 35: 13(ivec3) Load 34 + 36: 12(ivec2) VectorShuffle 35 35 0 1 + 37: 25(ptr) AccessChain 17 18 24 + 38: 11(int) Load 37 + 39: 14(ivec4) ImageFetch 33 36 Lod 38 + 43: 40 Load 42(g_tTex1du4a) + 44: 19(ptr) AccessChain 17 18 + 45: 13(ivec3) Load 44 + 46: 12(ivec2) VectorShuffle 45 45 0 1 + 47: 25(ptr) AccessChain 17 18 24 + 48: 11(int) Load 47 + 50: 49(ivec4) ImageFetch 43 46 Lod 48 + 54: 51 Load 53(g_tTex2df4a) + 57: 56(ptr) AccessChain 17 55 + 58: 14(ivec4) Load 57 + 59: 13(ivec3) VectorShuffle 58 58 0 1 2 + 61: 25(ptr) AccessChain 17 55 60 + 62: 11(int) Load 61 + 63: 28(fvec4) ImageFetch 54 59 Lod 62 + 67: 64 Load 66(g_tTex2di4a) + 68: 56(ptr) AccessChain 17 55 + 69: 14(ivec4) Load 68 + 70: 13(ivec3) VectorShuffle 69 69 0 1 2 + 71: 25(ptr) AccessChain 17 55 60 + 72: 11(int) Load 71 + 73: 14(ivec4) ImageFetch 67 70 Lod 72 + 77: 74 Load 76(g_tTex2du4a) + 78: 56(ptr) AccessChain 17 55 + 79: 14(ivec4) Load 78 + 80: 13(ivec3) VectorShuffle 79 79 0 1 2 + 81: 25(ptr) AccessChain 17 55 60 + 82: 11(int) Load 81 + 83: 49(ivec4) ImageFetch 77 80 Lod 82 + 91: 90(ptr) AccessChain 86(psout) 87 + Store 91 89 + 94: 93(ptr) AccessChain 86(psout) 92 + Store 94 88 + 97: 90(ptr) AccessChain 86(psout) 87 + 98: 28(fvec4) Load 97 + Store 96(Color) 98 + 101: 93(ptr) AccessChain 86(psout) 92 + 102: 6(float) Load 101 + Store 100(Depth) 102 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.basic.dx10.frag.out new file mode 100644 index 0000000000..c8e8eb6307 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -0,0 +1,738 @@ +hlsl.load.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:54 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:57 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:59 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:62 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:72 move second child to first child (temp 4-component vector of float) +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 Sequence +0:75 Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 1 (const int) +0:75 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:54 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:57 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:59 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:62 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:72 move second child to first child (temp 4-component vector of float) +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 Sequence +0:75 Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 1 (const int) +0:75 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 172 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 125 129 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 31 "g_tTex1di4" + Name 40 "g_tTex1du4" + Name 50 "g_tTex2df4" + Name 63 "g_tTex2di4" + Name 73 "g_tTex2du4" + Name 83 "g_tTex3df4" + Name 96 "g_tTex3di4" + Name 106 "g_tTex3du4" + Name 114 "PS_OUTPUT" + MemberName 114(PS_OUTPUT) 0 "Color" + MemberName 114(PS_OUTPUT) 1 "Depth" + Name 116 "psout" + Name 125 "Color" + Name 129 "Depth" + Name 135 "g_sSamp" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 50(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 73(g_tTex2du4) DescriptorSet 0 + Decorate 83(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 125(Color) Location 0 + Decorate 129(Depth) BuiltIn FragDepth + Decorate 135(g_sSamp) DescriptorSet 0 + Decorate 135(g_sSamp) Binding 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: TypeVector 6(float) 4 + 29: TypeImage 11(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 38: TypeImage 19(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 46: TypeVector 19(int) 4 + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2df4): 49(ptr) Variable UniformConstant + 52: 11(int) Constant 2 + 53: TypePointer Uniform 13(ivec3) + 57: 19(int) Constant 2 + 61: TypeImage 11(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 71: TypeImage 19(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2du4): 72(ptr) Variable UniformConstant + 81: TypeImage 6(float) 3D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex3df4): 82(ptr) Variable UniformConstant + 85: 11(int) Constant 3 + 86: TypePointer Uniform 14(ivec4) + 90: 19(int) Constant 3 + 94: TypeImage 11(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 104: TypeImage 19(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 114(PS_OUTPUT): TypeStruct 27(fvec4) 6(float) + 115: TypePointer Function 114(PS_OUTPUT) + 117: 11(int) Constant 0 + 118: 6(float) Constant 1065353216 + 119: 27(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 27(fvec4) + 122: TypePointer Function 6(float) + 124: TypePointer Output 27(fvec4) + 125(Color): 124(ptr) Variable Output + 128: TypePointer Output 6(float) + 129(Depth): 128(ptr) Variable Output + 133: TypeSampler + 134: TypePointer UniformConstant 133 + 135(g_sSamp): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 19(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 11(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 19(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 11(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 19(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 11(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 19(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 116(psout): 115(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 27(fvec4) ImageFetch 10 23 Lod 26 + 32: 29 Load 31(g_tTex1di4) + 33: 21(ptr) AccessChain 17 18 20 + 34: 11(int) Load 33 + 35: 21(ptr) AccessChain 17 18 24 + 36: 11(int) Load 35 + 37: 14(ivec4) ImageFetch 32 34 Lod 36 + 41: 38 Load 40(g_tTex1du4) + 42: 21(ptr) AccessChain 17 18 20 + 43: 11(int) Load 42 + 44: 21(ptr) AccessChain 17 18 24 + 45: 11(int) Load 44 + 47: 46(ivec4) ImageFetch 41 43 Lod 45 + 51: 48 Load 50(g_tTex2df4) + 54: 53(ptr) AccessChain 17 52 + 55: 13(ivec3) Load 54 + 56: 12(ivec2) VectorShuffle 55 55 0 1 + 58: 21(ptr) AccessChain 17 52 57 + 59: 11(int) Load 58 + 60: 27(fvec4) ImageFetch 51 56 Lod 59 + 64: 61 Load 63(g_tTex2di4) + 65: 53(ptr) AccessChain 17 52 + 66: 13(ivec3) Load 65 + 67: 12(ivec2) VectorShuffle 66 66 0 1 + 68: 21(ptr) AccessChain 17 52 57 + 69: 11(int) Load 68 + 70: 14(ivec4) ImageFetch 64 67 Lod 69 + 74: 71 Load 73(g_tTex2du4) + 75: 53(ptr) AccessChain 17 52 + 76: 13(ivec3) Load 75 + 77: 12(ivec2) VectorShuffle 76 76 0 1 + 78: 21(ptr) AccessChain 17 52 57 + 79: 11(int) Load 78 + 80: 46(ivec4) ImageFetch 74 77 Lod 79 + 84: 81 Load 83(g_tTex3df4) + 87: 86(ptr) AccessChain 17 85 + 88: 14(ivec4) Load 87 + 89: 13(ivec3) VectorShuffle 88 88 0 1 2 + 91: 21(ptr) AccessChain 17 85 90 + 92: 11(int) Load 91 + 93: 27(fvec4) ImageFetch 84 89 Lod 92 + 97: 94 Load 96(g_tTex3di4) + 98: 86(ptr) AccessChain 17 85 + 99: 14(ivec4) Load 98 + 100: 13(ivec3) VectorShuffle 99 99 0 1 2 + 101: 21(ptr) AccessChain 17 85 90 + 102: 11(int) Load 101 + 103: 14(ivec4) ImageFetch 97 100 Lod 102 + 107: 104 Load 106(g_tTex3du4) + 108: 86(ptr) AccessChain 17 85 + 109: 14(ivec4) Load 108 + 110: 13(ivec3) VectorShuffle 109 109 0 1 2 + 111: 21(ptr) AccessChain 17 85 90 + 112: 11(int) Load 111 + 113: 46(ivec4) ImageFetch 107 110 Lod 112 + 121: 120(ptr) AccessChain 116(psout) 117 + Store 121 119 + 123: 122(ptr) AccessChain 116(psout) 18 + Store 123 118 + 126: 120(ptr) AccessChain 116(psout) 117 + 127: 27(fvec4) Load 126 + Store 125(Color) 127 + 130: 122(ptr) AccessChain 116(psout) 18 + 131: 6(float) Load 130 + Store 129(Depth) 131 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.basic.dx10.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.basic.dx10.vert.out new file mode 100644 index 0000000000..a86f0aea97 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -0,0 +1,696 @@ +hlsl.load.basic.dx10.vert +Shader version: 450 +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 (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 direct index (temp int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 1 (const int) +0:52 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:56 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 direct index (temp int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Constant: +0:56 2 (const int) +0:57 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:61 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 3 (const int) +0:62 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +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 Sequence +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:69 Pos: direct index for structure (temp 4-component vector of float) +0:69 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:69 Constant: +0:69 0 (const int) +0:69 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked vertex stage: + + +Shader version: 450 +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 (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 direct index (temp int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 1 (const int) +0:52 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:56 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 direct index (temp int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Constant: +0:56 2 (const int) +0:57 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (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 (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:61 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 3 (const int) +0:62 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +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 Sequence +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:69 Pos: direct index for structure (temp 4-component vector of float) +0:69 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:69 Constant: +0:69 0 (const int) +0:69 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 166 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 123 + Name 4 "main" + Name 9 "g_tTex1df4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 31 "g_tTex1di4" + Name 40 "g_tTex1du4" + Name 50 "g_tTex2df4" + Name 63 "g_tTex2di4" + Name 73 "g_tTex2du4" + Name 83 "g_tTex3df4" + Name 96 "g_tTex3di4" + Name 106 "g_tTex3du4" + Name 114 "VS_OUTPUT" + MemberName 114(VS_OUTPUT) 0 "Pos" + Name 116 "vsout" + Name 123 "Pos" + Name 129 "g_sSamp" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 50(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 73(g_tTex2du4) DescriptorSet 0 + Decorate 83(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 123(Pos) BuiltIn Position + Decorate 129(g_sSamp) DescriptorSet 0 + Decorate 129(g_sSamp) Binding 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: TypeVector 6(float) 4 + 29: TypeImage 11(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 38: TypeImage 19(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 46: TypeVector 19(int) 4 + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2df4): 49(ptr) Variable UniformConstant + 52: 11(int) Constant 2 + 53: TypePointer Uniform 13(ivec3) + 57: 19(int) Constant 2 + 61: TypeImage 11(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 71: TypeImage 19(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2du4): 72(ptr) Variable UniformConstant + 81: TypeImage 6(float) 3D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex3df4): 82(ptr) Variable UniformConstant + 85: 11(int) Constant 3 + 86: TypePointer Uniform 14(ivec4) + 90: 19(int) Constant 3 + 94: TypeImage 11(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 104: TypeImage 19(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 114(VS_OUTPUT): TypeStruct 27(fvec4) + 115: TypePointer Function 114(VS_OUTPUT) + 117: 11(int) Constant 0 + 118: 6(float) Constant 0 + 119: 27(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 27(fvec4) + 122: TypePointer Output 27(fvec4) + 123(Pos): 122(ptr) Variable Output + 127: TypeSampler + 128: TypePointer UniformConstant 127 + 129(g_sSamp): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 19(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 19(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 11(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 19(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 11(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 19(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 116(vsout): 115(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 27(fvec4) ImageFetch 10 23 Lod 26 + 32: 29 Load 31(g_tTex1di4) + 33: 21(ptr) AccessChain 17 18 20 + 34: 11(int) Load 33 + 35: 21(ptr) AccessChain 17 18 24 + 36: 11(int) Load 35 + 37: 14(ivec4) ImageFetch 32 34 Lod 36 + 41: 38 Load 40(g_tTex1du4) + 42: 21(ptr) AccessChain 17 18 20 + 43: 11(int) Load 42 + 44: 21(ptr) AccessChain 17 18 24 + 45: 11(int) Load 44 + 47: 46(ivec4) ImageFetch 41 43 Lod 45 + 51: 48 Load 50(g_tTex2df4) + 54: 53(ptr) AccessChain 17 52 + 55: 13(ivec3) Load 54 + 56: 12(ivec2) VectorShuffle 55 55 0 1 + 58: 21(ptr) AccessChain 17 52 57 + 59: 11(int) Load 58 + 60: 27(fvec4) ImageFetch 51 56 Lod 59 + 64: 61 Load 63(g_tTex2di4) + 65: 53(ptr) AccessChain 17 52 + 66: 13(ivec3) Load 65 + 67: 12(ivec2) VectorShuffle 66 66 0 1 + 68: 21(ptr) AccessChain 17 52 57 + 69: 11(int) Load 68 + 70: 14(ivec4) ImageFetch 64 67 Lod 69 + 74: 71 Load 73(g_tTex2du4) + 75: 53(ptr) AccessChain 17 52 + 76: 13(ivec3) Load 75 + 77: 12(ivec2) VectorShuffle 76 76 0 1 + 78: 21(ptr) AccessChain 17 52 57 + 79: 11(int) Load 78 + 80: 46(ivec4) ImageFetch 74 77 Lod 79 + 84: 81 Load 83(g_tTex3df4) + 87: 86(ptr) AccessChain 17 85 + 88: 14(ivec4) Load 87 + 89: 13(ivec3) VectorShuffle 88 88 0 1 2 + 91: 21(ptr) AccessChain 17 85 90 + 92: 11(int) Load 91 + 93: 27(fvec4) ImageFetch 84 89 Lod 92 + 97: 94 Load 96(g_tTex3di4) + 98: 86(ptr) AccessChain 17 85 + 99: 14(ivec4) Load 98 + 100: 13(ivec3) VectorShuffle 99 99 0 1 2 + 101: 21(ptr) AccessChain 17 85 90 + 102: 11(int) Load 101 + 103: 14(ivec4) ImageFetch 97 100 Lod 102 + 107: 104 Load 106(g_tTex3du4) + 108: 86(ptr) AccessChain 17 85 + 109: 14(ivec4) Load 108 + 110: 13(ivec3) VectorShuffle 109 109 0 1 2 + 111: 21(ptr) AccessChain 17 85 90 + 112: 11(int) Load 111 + 113: 46(ivec4) ImageFetch 107 110 Lod 112 + 121: 120(ptr) AccessChain 116(vsout) 117 + Store 121 119 + 124: 120(ptr) AccessChain 116(vsout) 117 + 125: 27(fvec4) Load 124 + Store 123(Pos) 125 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.buffer.dx10.frag.out new file mode 100644 index 0000000000..c80ddcfe91 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -0,0 +1,281 @@ +hlsl.load.buffer.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 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 samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of int) +0:29 'r01' (temp 4-component vector of int) +0:29 textureFetch (temp 4-component vector of int) +0:29 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of uint) +0:30 'r02' (temp 4-component vector of uint) +0:30 textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 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 samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of int) +0:29 'r01' (temp 4-component vector of int) +0:29 textureFetch (temp 4-component vector of int) +0:29 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of uint) +0:30 'r02' (temp 4-component vector of uint) +0:30 textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 71 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 62 66 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "r00" + Name 13 "g_tTexbf4" + Name 19 "$Global" + MemberName 19($Global) 0 "c1" + MemberName 19($Global) 1 "c2" + MemberName 19($Global) 2 "c3" + MemberName 19($Global) 3 "c4" + MemberName 19($Global) 4 "o1" + MemberName 19($Global) 5 "o2" + MemberName 19($Global) 6 "o3" + MemberName 19($Global) 7 "o4" + Name 21 "" + Name 29 "r01" + Name 33 "g_tTexbi4" + Name 42 "r02" + Name 46 "g_tTexbu4" + Name 52 "PS_OUTPUT" + MemberName 52(PS_OUTPUT) 0 "Color" + MemberName 52(PS_OUTPUT) 1 "Depth" + Name 54 "psout" + Name 62 "Color" + Name 66 "Depth" + Name 70 "g_tTexbf4_test" + Decorate 13(g_tTexbf4) DescriptorSet 0 + MemberDecorate 19($Global) 0 Offset 0 + MemberDecorate 19($Global) 1 Offset 8 + MemberDecorate 19($Global) 2 Offset 16 + MemberDecorate 19($Global) 3 Offset 32 + MemberDecorate 19($Global) 4 Offset 48 + MemberDecorate 19($Global) 5 Offset 56 + MemberDecorate 19($Global) 6 Offset 64 + MemberDecorate 19($Global) 7 Offset 80 + Decorate 19($Global) Block + Decorate 21 DescriptorSet 0 + Decorate 33(g_tTexbi4) DescriptorSet 0 + Decorate 46(g_tTexbu4) DescriptorSet 0 + Decorate 62(Color) Location 0 + Decorate 66(Depth) BuiltIn FragDepth + Decorate 70(g_tTexbf4_test) DescriptorSet 0 + Decorate 70(g_tTexbf4_test) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) Buffer sampled format:Rgba32f + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(g_tTexbf4): 12(ptr) Variable UniformConstant + 15: TypeInt 32 1 + 16: TypeVector 15(int) 2 + 17: TypeVector 15(int) 3 + 18: TypeVector 15(int) 4 + 19($Global): TypeStruct 15(int) 16(ivec2) 17(ivec3) 18(ivec4) 15(int) 16(ivec2) 17(ivec3) 18(ivec4) + 20: TypePointer Uniform 19($Global) + 21: 20(ptr) Variable Uniform + 22: 15(int) Constant 0 + 23: TypePointer Uniform 15(int) + 28: TypePointer Function 18(ivec4) + 30: TypeImage 15(int) Buffer sampled format:Rgba32i + 31: TypeSampledImage 30 + 32: TypePointer UniformConstant 31 + 33(g_tTexbi4): 32(ptr) Variable UniformConstant + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) Buffer sampled format:Rgba32ui + 44: TypeSampledImage 43 + 45: TypePointer UniformConstant 44 + 46(g_tTexbu4): 45(ptr) Variable UniformConstant + 52(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 53: TypePointer Function 52(PS_OUTPUT) + 55: 6(float) Constant 1065353216 + 56: 7(fvec4) ConstantComposite 55 55 55 55 + 58: 15(int) Constant 1 + 59: TypePointer Function 6(float) + 61: TypePointer Output 7(fvec4) + 62(Color): 61(ptr) Variable Output + 65: TypePointer Output 6(float) + 66(Depth): 65(ptr) Variable Output +70(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 29(r01): 28(ptr) Variable Function + 42(r02): 41(ptr) Variable Function + 54(psout): 53(ptr) Variable Function + 14: 11 Load 13(g_tTexbf4) + 24: 23(ptr) AccessChain 21 22 + 25: 15(int) Load 24 + 26: 10 Image 14 + 27: 7(fvec4) ImageFetch 26 25 + Store 9(r00) 27 + 34: 31 Load 33(g_tTexbi4) + 35: 23(ptr) AccessChain 21 22 + 36: 15(int) Load 35 + 37: 30 Image 34 + 38: 18(ivec4) ImageFetch 37 36 + Store 29(r01) 38 + 47: 44 Load 46(g_tTexbu4) + 48: 23(ptr) AccessChain 21 22 + 49: 15(int) Load 48 + 50: 43 Image 47 + 51: 40(ivec4) ImageFetch 50 49 + Store 42(r02) 51 + 57: 8(ptr) AccessChain 54(psout) 22 + Store 57 56 + 60: 59(ptr) AccessChain 54(psout) 58 + Store 60 55 + 63: 8(ptr) AccessChain 54(psout) 22 + 64: 7(fvec4) Load 63 + Store 62(Color) 64 + 67: 59(ptr) AccessChain 54(psout) 58 + 68: 6(float) Load 67 + Store 66(Depth) 68 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out new file mode 100644 index 0000000000..c0cd152843 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -0,0 +1,290 @@ +hlsl.load.buffer.float.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'r00' (temp float) +0:28 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp int) +0:29 'r01' (temp int) +0:29 Construct int (temp int) +0:? textureFetch (temp 4-component vector of int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp uint) +0:30 'r02' (temp uint) +0:30 Construct uint (temp uint) +0:? textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'r00' (temp float) +0:28 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp int) +0:29 'r01' (temp int) +0:29 Construct int (temp int) +0:? textureFetch (temp 4-component vector of int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp uint) +0:30 'r02' (temp uint) +0:30 Construct uint (temp uint) +0:? textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 74 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 65 69 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 12 "g_tTexbfs" + Name 18 "$Global" + MemberName 18($Global) 0 "c1" + MemberName 18($Global) 1 "c2" + MemberName 18($Global) 2 "c3" + MemberName 18($Global) 3 "c4" + MemberName 18($Global) 4 "o1" + MemberName 18($Global) 5 "o2" + MemberName 18($Global) 6 "o3" + MemberName 18($Global) 7 "o4" + Name 20 "" + Name 30 "r01" + Name 34 "g_tTexbis" + Name 43 "r02" + Name 47 "g_tTexbus" + Name 55 "PS_OUTPUT" + MemberName 55(PS_OUTPUT) 0 "Color" + MemberName 55(PS_OUTPUT) 1 "Depth" + Name 57 "psout" + Name 65 "Color" + Name 69 "Depth" + Name 73 "g_tTexbfs_test" + Decorate 12(g_tTexbfs) DescriptorSet 0 + MemberDecorate 18($Global) 0 Offset 0 + MemberDecorate 18($Global) 1 Offset 8 + MemberDecorate 18($Global) 2 Offset 16 + MemberDecorate 18($Global) 3 Offset 32 + MemberDecorate 18($Global) 4 Offset 48 + MemberDecorate 18($Global) 5 Offset 56 + MemberDecorate 18($Global) 6 Offset 64 + MemberDecorate 18($Global) 7 Offset 80 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 34(g_tTexbis) DescriptorSet 0 + Decorate 47(g_tTexbus) DescriptorSet 0 + Decorate 65(Color) Location 0 + Decorate 69(Depth) BuiltIn FragDepth + Decorate 73(g_tTexbfs_test) DescriptorSet 0 + Decorate 73(g_tTexbfs_test) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) Buffer sampled format:R32f + 10: TypeSampledImage 9 + 11: TypePointer UniformConstant 10 + 12(g_tTexbfs): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 15: TypeVector 14(int) 2 + 16: TypeVector 14(int) 3 + 17: TypeVector 14(int) 4 + 18($Global): TypeStruct 14(int) 15(ivec2) 16(ivec3) 17(ivec4) 14(int) 15(ivec2) 16(ivec3) 17(ivec4) + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: 14(int) Constant 0 + 22: TypePointer Uniform 14(int) + 26: TypeVector 6(float) 4 + 29: TypePointer Function 14(int) + 31: TypeImage 14(int) Buffer sampled format:R32i + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(g_tTexbis): 33(ptr) Variable UniformConstant + 41: TypeInt 32 0 + 42: TypePointer Function 41(int) + 44: TypeImage 41(int) Buffer sampled format:R32ui + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(g_tTexbus): 46(ptr) Variable UniformConstant + 52: TypeVector 41(int) 4 + 55(PS_OUTPUT): TypeStruct 26(fvec4) 6(float) + 56: TypePointer Function 55(PS_OUTPUT) + 58: 6(float) Constant 1065353216 + 59: 26(fvec4) ConstantComposite 58 58 58 58 + 60: TypePointer Function 26(fvec4) + 62: 14(int) Constant 1 + 64: TypePointer Output 26(fvec4) + 65(Color): 64(ptr) Variable Output + 68: TypePointer Output 6(float) + 69(Depth): 68(ptr) Variable Output +73(g_tTexbfs_test): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 30(r01): 29(ptr) Variable Function + 43(r02): 42(ptr) Variable Function + 57(psout): 56(ptr) Variable Function + 13: 10 Load 12(g_tTexbfs) + 23: 22(ptr) AccessChain 20 21 + 24: 14(int) Load 23 + 25: 9 Image 13 + 27: 26(fvec4) ImageFetch 25 24 + 28: 6(float) CompositeExtract 27 0 + Store 8(r00) 28 + 35: 32 Load 34(g_tTexbis) + 36: 22(ptr) AccessChain 20 21 + 37: 14(int) Load 36 + 38: 31 Image 35 + 39: 17(ivec4) ImageFetch 38 37 + 40: 14(int) CompositeExtract 39 0 + Store 30(r01) 40 + 48: 45 Load 47(g_tTexbus) + 49: 22(ptr) AccessChain 20 21 + 50: 14(int) Load 49 + 51: 44 Image 48 + 53: 52(ivec4) ImageFetch 51 50 + 54: 41(int) CompositeExtract 53 0 + Store 43(r02) 54 + 61: 60(ptr) AccessChain 57(psout) 21 + Store 61 59 + 63: 7(ptr) AccessChain 57(psout) 62 + Store 63 58 + 66: 60(ptr) AccessChain 57(psout) 21 + 67: 26(fvec4) Load 66 + Store 65(Color) 67 + 70: 7(ptr) AccessChain 57(psout) 62 + 71: 6(float) Load 70 + Store 69(Depth) 71 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.offset.dx10.frag.out new file mode 100644 index 0000000000..9a14b658e6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -0,0 +1,833 @@ +hlsl.load.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) +0:53 'g_tTex1di4' (uniform itexture1D) +0:53 vector swizzle (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) +0:54 'g_tTex1du4' (uniform utexture1D) +0:54 vector swizzle (temp int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) +0:57 'g_tTex2df4' (uniform texture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) +0:58 'g_tTex2di4' (uniform itexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) +0:59 'g_tTex2du4' (uniform utexture2D) +0:59 vector swizzle (temp 2-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:62 textureFetchOffset (temp 4-component vector of float) +0:62 'g_tTex3df4' (uniform texture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:62 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) +0:63 textureFetchOffset (temp 4-component vector of int) +0:63 'g_tTex3di4' (uniform itexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:63 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) +0:64 textureFetchOffset (temp 4-component vector of uint) +0:64 'g_tTex3du4' (uniform utexture3D) +0:64 vector swizzle (temp 3-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:64 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) +0:72 move second child to first child (temp 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 Sequence +0:75 Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 1 (const int) +0:75 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) +0:53 'g_tTex1di4' (uniform itexture1D) +0:53 vector swizzle (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) +0:54 'g_tTex1du4' (uniform utexture1D) +0:54 vector swizzle (temp int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) +0:57 'g_tTex2df4' (uniform texture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) +0:58 'g_tTex2di4' (uniform itexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) +0:59 'g_tTex2du4' (uniform utexture2D) +0:59 vector swizzle (temp 2-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:62 textureFetchOffset (temp 4-component vector of float) +0:62 'g_tTex3df4' (uniform texture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:62 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) +0:63 textureFetchOffset (temp 4-component vector of int) +0:63 'g_tTex3di4' (uniform itexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:63 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) +0:64 textureFetchOffset (temp 4-component vector of uint) +0:64 'g_tTex3du4' (uniform utexture3D) +0:64 vector swizzle (temp 3-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:64 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) +0:72 move second child to first child (temp 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 Sequence +0:75 Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:75 Constant: +0:75 1 (const int) +0:75 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 194 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 147 151 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 34 "g_tTex1di4" + Name 45 "g_tTex1du4" + Name 57 "g_tTex2df4" + Name 74 "g_tTex2di4" + Name 86 "g_tTex2du4" + Name 98 "g_tTex3df4" + Name 114 "g_tTex3di4" + Name 126 "g_tTex3du4" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + MemberName 136(PS_OUTPUT) 1 "Depth" + Name 138 "psout" + Name 147 "Color" + Name 151 "Depth" + Name 157 "g_sSamp" + Name 160 "g_tTexcdf4" + Name 163 "g_tTexcdi4" + Name 166 "g_tTexcdu4" + Name 169 "g_tTex1df4a" + Name 172 "g_tTex1di4a" + Name 175 "g_tTex1du4a" + Name 178 "g_tTex2df4a" + Name 181 "g_tTex2di4a" + Name 184 "g_tTex2du4a" + Name 187 "g_tTexcdf4a" + Name 190 "g_tTexcdi4a" + Name 193 "g_tTexcdu4a" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 74(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 98(g_tTex3df4) DescriptorSet 0 + Decorate 114(g_tTex3di4) DescriptorSet 0 + Decorate 126(g_tTex3du4) DescriptorSet 0 + Decorate 147(Color) Location 0 + Decorate 151(Depth) BuiltIn FragDepth + Decorate 157(g_sSamp) DescriptorSet 0 + Decorate 157(g_sSamp) Binding 0 + Decorate 160(g_tTexcdf4) DescriptorSet 0 + Decorate 163(g_tTexcdi4) DescriptorSet 0 + Decorate 166(g_tTexcdu4) DescriptorSet 0 + Decorate 169(g_tTex1df4a) DescriptorSet 0 + Decorate 172(g_tTex1di4a) DescriptorSet 0 + Decorate 175(g_tTex1du4a) DescriptorSet 0 + Decorate 178(g_tTex2df4a) DescriptorSet 0 + Decorate 181(g_tTex2di4a) DescriptorSet 0 + Decorate 184(g_tTex2du4a) DescriptorSet 0 + Decorate 187(g_tTexcdf4a) DescriptorSet 0 + Decorate 190(g_tTexcdi4a) DescriptorSet 0 + Decorate 193(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: 11(int) Constant 4 + 30: TypeVector 6(float) 4 + 32: TypeImage 11(int) 1D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 43: TypeImage 19(int) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 53: TypeVector 19(int) 4 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 59: 11(int) Constant 2 + 60: TypePointer Uniform 13(ivec3) + 64: 19(int) Constant 2 + 67: 11(int) Constant 5 + 68: TypePointer Uniform 12(ivec2) + 72: TypeImage 11(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2di4): 73(ptr) Variable UniformConstant + 84: TypeImage 19(int) 2D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 96: TypeImage 6(float) 3D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex3df4): 97(ptr) Variable UniformConstant + 100: 11(int) Constant 3 + 101: TypePointer Uniform 14(ivec4) + 105: 19(int) Constant 3 + 108: 11(int) Constant 6 + 112: TypeImage 11(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3di4): 113(ptr) Variable UniformConstant + 124: TypeImage 19(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3du4): 125(ptr) Variable UniformConstant + 136(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) + 137: TypePointer Function 136(PS_OUTPUT) + 139: 11(int) Constant 0 + 140: 6(float) Constant 1065353216 + 141: 30(fvec4) ConstantComposite 140 140 140 140 + 142: TypePointer Function 30(fvec4) + 144: TypePointer Function 6(float) + 146: TypePointer Output 30(fvec4) + 147(Color): 146(ptr) Variable Output + 150: TypePointer Output 6(float) + 151(Depth): 150(ptr) Variable Output + 155: TypeSampler + 156: TypePointer UniformConstant 155 + 157(g_sSamp): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdf4): 159(ptr) Variable UniformConstant + 161: TypeImage 11(int) Cube sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTexcdi4): 162(ptr) Variable UniformConstant + 164: TypeImage 19(int) Cube sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTexcdu4): 165(ptr) Variable UniformConstant + 167: TypeImage 6(float) 1D array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTex1df4a): 168(ptr) Variable UniformConstant + 170: TypeImage 11(int) 1D array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTex1di4a): 171(ptr) Variable UniformConstant + 173: TypeImage 19(int) 1D array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTex1du4a): 174(ptr) Variable UniformConstant + 176: TypeImage 6(float) 2D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTex2df4a): 177(ptr) Variable UniformConstant + 179: TypeImage 11(int) 2D array sampled format:Unknown + 180: TypePointer UniformConstant 179 +181(g_tTex2di4a): 180(ptr) Variable UniformConstant + 182: TypeImage 19(int) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2du4a): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) Cube array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTexcdf4a): 186(ptr) Variable UniformConstant + 188: TypeImage 11(int) Cube array sampled format:Unknown + 189: TypePointer UniformConstant 188 +190(g_tTexcdi4a): 189(ptr) Variable UniformConstant + 191: TypeImage 19(int) Cube array sampled format:Unknown + 192: TypePointer UniformConstant 191 +193(g_tTexcdu4a): 192(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 138(psout): 137(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 21(ptr) AccessChain 17 27 + 29: 11(int) Load 28 + 31: 30(fvec4) ImageFetch 10 23 Lod Offset 26 29 + 35: 32 Load 34(g_tTex1di4) + 36: 21(ptr) AccessChain 17 18 20 + 37: 11(int) Load 36 + 38: 21(ptr) AccessChain 17 18 24 + 39: 11(int) Load 38 + 40: 21(ptr) AccessChain 17 27 + 41: 11(int) Load 40 + 42: 14(ivec4) ImageFetch 35 37 Lod Offset 39 41 + 46: 43 Load 45(g_tTex1du4) + 47: 21(ptr) AccessChain 17 18 20 + 48: 11(int) Load 47 + 49: 21(ptr) AccessChain 17 18 24 + 50: 11(int) Load 49 + 51: 21(ptr) AccessChain 17 27 + 52: 11(int) Load 51 + 54: 53(ivec4) ImageFetch 46 48 Lod Offset 50 52 + 58: 55 Load 57(g_tTex2df4) + 61: 60(ptr) AccessChain 17 59 + 62: 13(ivec3) Load 61 + 63: 12(ivec2) VectorShuffle 62 62 0 1 + 65: 21(ptr) AccessChain 17 59 64 + 66: 11(int) Load 65 + 69: 68(ptr) AccessChain 17 67 + 70: 12(ivec2) Load 69 + 71: 30(fvec4) ImageFetch 58 63 Lod Offset 66 70 + 75: 72 Load 74(g_tTex2di4) + 76: 60(ptr) AccessChain 17 59 + 77: 13(ivec3) Load 76 + 78: 12(ivec2) VectorShuffle 77 77 0 1 + 79: 21(ptr) AccessChain 17 59 64 + 80: 11(int) Load 79 + 81: 68(ptr) AccessChain 17 67 + 82: 12(ivec2) Load 81 + 83: 14(ivec4) ImageFetch 75 78 Lod Offset 80 82 + 87: 84 Load 86(g_tTex2du4) + 88: 60(ptr) AccessChain 17 59 + 89: 13(ivec3) Load 88 + 90: 12(ivec2) VectorShuffle 89 89 0 1 + 91: 21(ptr) AccessChain 17 59 64 + 92: 11(int) Load 91 + 93: 68(ptr) AccessChain 17 67 + 94: 12(ivec2) Load 93 + 95: 53(ivec4) ImageFetch 87 90 Lod Offset 92 94 + 99: 96 Load 98(g_tTex3df4) + 102: 101(ptr) AccessChain 17 100 + 103: 14(ivec4) Load 102 + 104: 13(ivec3) VectorShuffle 103 103 0 1 2 + 106: 21(ptr) AccessChain 17 100 105 + 107: 11(int) Load 106 + 109: 60(ptr) AccessChain 17 108 + 110: 13(ivec3) Load 109 + 111: 30(fvec4) ImageFetch 99 104 Lod Offset 107 110 + 115: 112 Load 114(g_tTex3di4) + 116: 101(ptr) AccessChain 17 100 + 117: 14(ivec4) Load 116 + 118: 13(ivec3) VectorShuffle 117 117 0 1 2 + 119: 21(ptr) AccessChain 17 100 105 + 120: 11(int) Load 119 + 121: 60(ptr) AccessChain 17 108 + 122: 13(ivec3) Load 121 + 123: 14(ivec4) ImageFetch 115 118 Lod Offset 120 122 + 127: 124 Load 126(g_tTex3du4) + 128: 101(ptr) AccessChain 17 100 + 129: 14(ivec4) Load 128 + 130: 13(ivec3) VectorShuffle 129 129 0 1 2 + 131: 21(ptr) AccessChain 17 100 105 + 132: 11(int) Load 131 + 133: 60(ptr) AccessChain 17 108 + 134: 13(ivec3) Load 133 + 135: 53(ivec4) ImageFetch 127 130 Lod Offset 132 134 + 143: 142(ptr) AccessChain 138(psout) 139 + Store 143 141 + 145: 144(ptr) AccessChain 138(psout) 18 + Store 145 140 + 148: 142(ptr) AccessChain 138(psout) 139 + 149: 30(fvec4) Load 148 + Store 147(Color) 149 + 152: 144(ptr) AccessChain 138(psout) 18 + 153: 6(float) Load 152 + Store 151(Depth) 153 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..fb58eff35a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -0,0 +1,680 @@ +hlsl.load.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) +0:53 'g_tTex1di4a' (uniform itexture1DArray) +0:53 vector swizzle (temp 2-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) +0:54 'g_tTex1du4a' (uniform utexture1DArray) +0:54 vector swizzle (temp 2-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) +0:57 'g_tTex2df4a' (uniform texture2DArray) +0:57 vector swizzle (temp 3-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) +0:58 'g_tTex2di4a' (uniform itexture2DArray) +0:58 vector swizzle (temp 3-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) +0:59 'g_tTex2du4a' (uniform utexture2DArray) +0:59 vector swizzle (temp 3-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:65 move second child to first child (temp 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 Sequence +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:68 Color: direct index for structure (temp 4-component vector of float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:68 Constant: +0:68 0 (const int) +0:68 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0: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 (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) +0:53 'g_tTex1di4a' (uniform itexture1DArray) +0:53 vector swizzle (temp 2-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) +0:54 'g_tTex1du4a' (uniform utexture1DArray) +0:54 vector swizzle (temp 2-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) +0:57 'g_tTex2df4a' (uniform texture2DArray) +0:57 vector swizzle (temp 3-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) +0:58 'g_tTex2di4a' (uniform itexture2DArray) +0:58 vector swizzle (temp 3-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) +0:59 'g_tTex2du4a' (uniform utexture2DArray) +0:59 vector swizzle (temp 3-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +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 (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:65 move second child to first child (temp 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 Sequence +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:68 Color: direct index for structure (temp 4-component vector of float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:68 Constant: +0:68 0 (const int) +0:68 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 167 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 111 115 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4a" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 35 "g_tTex1di4a" + Name 47 "g_tTex1du4a" + Name 60 "g_tTex2df4a" + Name 77 "g_tTex2di4a" + Name 89 "g_tTex2du4a" + Name 99 "PS_OUTPUT" + MemberName 99(PS_OUTPUT) 0 "Color" + MemberName 99(PS_OUTPUT) 1 "Depth" + Name 101 "psout" + Name 111 "Color" + Name 115 "Depth" + Name 121 "g_sSamp" + Name 124 "g_tTex1df4" + Name 127 "g_tTex1di4" + Name 130 "g_tTex1du4" + Name 133 "g_tTex2df4" + Name 136 "g_tTex2di4" + Name 139 "g_tTex2du4" + Name 142 "g_tTex3df4" + Name 145 "g_tTex3di4" + Name 148 "g_tTex3du4" + Name 151 "g_tTexcdf4" + Name 154 "g_tTexcdi4" + Name 157 "g_tTexcdu4" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" + Decorate 9(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 35(g_tTex1di4a) DescriptorSet 0 + Decorate 47(g_tTex1du4a) DescriptorSet 0 + Decorate 60(g_tTex2df4a) DescriptorSet 0 + Decorate 77(g_tTex2di4a) DescriptorSet 0 + Decorate 89(g_tTex2du4a) DescriptorSet 0 + Decorate 111(Color) Location 0 + Decorate 115(Depth) BuiltIn FragDepth + Decorate 121(g_sSamp) DescriptorSet 0 + Decorate 121(g_sSamp) Binding 0 + Decorate 124(g_tTex1df4) DescriptorSet 0 + Decorate 124(g_tTex1df4) Binding 0 + Decorate 127(g_tTex1di4) DescriptorSet 0 + Decorate 130(g_tTex1du4) DescriptorSet 0 + Decorate 133(g_tTex2df4) DescriptorSet 0 + Decorate 136(g_tTex2di4) DescriptorSet 0 + Decorate 139(g_tTex2du4) DescriptorSet 0 + Decorate 142(g_tTex3df4) DescriptorSet 0 + Decorate 145(g_tTex3di4) DescriptorSet 0 + Decorate 148(g_tTex3du4) DescriptorSet 0 + Decorate 151(g_tTexcdf4) DescriptorSet 0 + Decorate 154(g_tTexcdi4) DescriptorSet 0 + Decorate 157(g_tTexcdu4) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D array sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4a): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 2 + 19: TypePointer Uniform 13(ivec3) + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Uniform 11(int) + 28: 11(int) Constant 4 + 31: TypeVector 6(float) 4 + 33: TypeImage 11(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4a): 34(ptr) Variable UniformConstant + 45: TypeImage 23(int) 1D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4a): 46(ptr) Variable UniformConstant + 56: TypeVector 23(int) 4 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4a): 59(ptr) Variable UniformConstant + 62: 11(int) Constant 3 + 63: TypePointer Uniform 14(ivec4) + 67: 23(int) Constant 3 + 70: 11(int) Constant 5 + 71: TypePointer Uniform 12(ivec2) + 75: TypeImage 11(int) 2D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4a): 76(ptr) Variable UniformConstant + 87: TypeImage 23(int) 2D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex2du4a): 88(ptr) Variable UniformConstant + 99(PS_OUTPUT): TypeStruct 31(fvec4) 6(float) + 100: TypePointer Function 99(PS_OUTPUT) + 102: 11(int) Constant 0 + 103: 6(float) Constant 1065353216 + 104: 31(fvec4) ConstantComposite 103 103 103 103 + 105: TypePointer Function 31(fvec4) + 107: 11(int) Constant 1 + 108: TypePointer Function 6(float) + 110: TypePointer Output 31(fvec4) + 111(Color): 110(ptr) Variable Output + 114: TypePointer Output 6(float) + 115(Depth): 114(ptr) Variable Output + 119: TypeSampler + 120: TypePointer UniformConstant 119 + 121(g_sSamp): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 1D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex1df4): 123(ptr) Variable UniformConstant + 125: TypeImage 11(int) 1D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex1di4): 126(ptr) Variable UniformConstant + 128: TypeImage 23(int) 1D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex1du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 2D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex2df4): 132(ptr) Variable UniformConstant + 134: TypeImage 11(int) 2D sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTex2di4): 135(ptr) Variable UniformConstant + 137: TypeImage 23(int) 2D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex2du4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 3D sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTex3df4): 141(ptr) Variable UniformConstant + 143: TypeImage 11(int) 3D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex3di4): 144(ptr) Variable UniformConstant + 146: TypeImage 23(int) 3D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex3du4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdf4): 150(ptr) Variable UniformConstant + 152: TypeImage 11(int) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdi4): 153(ptr) Variable UniformConstant + 155: TypeImage 23(int) Cube sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTexcdu4): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 11(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 23(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 101(psout): 100(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4a) + 20: 19(ptr) AccessChain 17 18 + 21: 13(ivec3) Load 20 + 22: 12(ivec2) VectorShuffle 21 21 0 1 + 26: 25(ptr) AccessChain 17 18 24 + 27: 11(int) Load 26 + 29: 25(ptr) AccessChain 17 28 + 30: 11(int) Load 29 + 32: 31(fvec4) ImageFetch 10 22 Lod Offset 27 30 + 36: 33 Load 35(g_tTex1di4a) + 37: 19(ptr) AccessChain 17 18 + 38: 13(ivec3) Load 37 + 39: 12(ivec2) VectorShuffle 38 38 0 1 + 40: 25(ptr) AccessChain 17 18 24 + 41: 11(int) Load 40 + 42: 25(ptr) AccessChain 17 28 + 43: 11(int) Load 42 + 44: 14(ivec4) ImageFetch 36 39 Lod Offset 41 43 + 48: 45 Load 47(g_tTex1du4a) + 49: 19(ptr) AccessChain 17 18 + 50: 13(ivec3) Load 49 + 51: 12(ivec2) VectorShuffle 50 50 0 1 + 52: 25(ptr) AccessChain 17 18 24 + 53: 11(int) Load 52 + 54: 25(ptr) AccessChain 17 28 + 55: 11(int) Load 54 + 57: 56(ivec4) ImageFetch 48 51 Lod Offset 53 55 + 61: 58 Load 60(g_tTex2df4a) + 64: 63(ptr) AccessChain 17 62 + 65: 14(ivec4) Load 64 + 66: 13(ivec3) VectorShuffle 65 65 0 1 2 + 68: 25(ptr) AccessChain 17 62 67 + 69: 11(int) Load 68 + 72: 71(ptr) AccessChain 17 70 + 73: 12(ivec2) Load 72 + 74: 31(fvec4) ImageFetch 61 66 Lod Offset 69 73 + 78: 75 Load 77(g_tTex2di4a) + 79: 63(ptr) AccessChain 17 62 + 80: 14(ivec4) Load 79 + 81: 13(ivec3) VectorShuffle 80 80 0 1 2 + 82: 25(ptr) AccessChain 17 62 67 + 83: 11(int) Load 82 + 84: 71(ptr) AccessChain 17 70 + 85: 12(ivec2) Load 84 + 86: 14(ivec4) ImageFetch 78 81 Lod Offset 83 85 + 90: 87 Load 89(g_tTex2du4a) + 91: 63(ptr) AccessChain 17 62 + 92: 14(ivec4) Load 91 + 93: 13(ivec3) VectorShuffle 92 92 0 1 2 + 94: 25(ptr) AccessChain 17 62 67 + 95: 11(int) Load 94 + 96: 71(ptr) AccessChain 17 70 + 97: 12(ivec2) Load 96 + 98: 56(ivec4) ImageFetch 90 93 Lod Offset 95 97 + 106: 105(ptr) AccessChain 101(psout) 102 + Store 106 104 + 109: 108(ptr) AccessChain 101(psout) 107 + Store 109 103 + 112: 105(ptr) AccessChain 101(psout) 102 + 113: 31(fvec4) Load 112 + Store 111(Color) 113 + 116: 108(ptr) AccessChain 101(psout) 107 + 117: 6(float) Load 116 + Store 115(Depth) 117 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out new file mode 100644 index 0000000000..e9cc3940b4 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -0,0 +1,200 @@ +hlsl.load.rwbuffer.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad (temp 4-component vector of float) +0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:25 c1: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad (temp 4-component vector of uint) +0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:26 c1: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad (temp 4-component vector of int) +0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:27 c1: direct index for structure (layout(offset=0 ) uniform int) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child (temp 4-component vector of float) +0:29 Color: direct index for structure (temp 4-component vector of float) +0:29 'psout' (temp structure{temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:31 Color: direct index for structure (temp 4-component vector of float) +0:31 'psout' (temp structure{temp 4-component vector of float Color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad (temp 4-component vector of float) +0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:25 c1: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad (temp 4-component vector of uint) +0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:26 c1: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad (temp 4-component vector of int) +0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:27 c1: direct index for structure (layout(offset=0 ) uniform int) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child (temp 4-component vector of float) +0:29 Color: direct index for structure (temp 4-component vector of float) +0:29 'psout' (temp structure{temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:31 Color: direct index for structure (temp 4-component vector of float) +0:31 'psout' (temp structure{temp 4-component vector of float Color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 52 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tBuffF" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 27 "g_tBuffU" + Name 35 "g_tBuffI" + Name 40 "PS_OUTPUT" + MemberName 40(PS_OUTPUT) 0 "Color" + Name 42 "psout" + Name 48 "Color" + Decorate 9(g_tBuffF) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 27(g_tBuffU) DescriptorSet 0 + Decorate 35(g_tBuffI) DescriptorSet 0 + Decorate 48(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) Buffer nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tBuffF): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 0 + 19: TypePointer Uniform 11(int) + 22: TypeVector 6(float) 4 + 24: TypeInt 32 0 + 25: TypeImage 24(int) Buffer nonsampled format:Rgba32ui + 26: TypePointer UniformConstant 25 + 27(g_tBuffU): 26(ptr) Variable UniformConstant + 31: TypeVector 24(int) 4 + 33: TypeImage 11(int) Buffer nonsampled format:Rgba32i + 34: TypePointer UniformConstant 33 + 35(g_tBuffI): 34(ptr) Variable UniformConstant + 40(PS_OUTPUT): TypeStruct 22(fvec4) + 41: TypePointer Function 40(PS_OUTPUT) + 43: 6(float) Constant 1065353216 + 44: 22(fvec4) ConstantComposite 43 43 43 43 + 45: TypePointer Function 22(fvec4) + 47: TypePointer Output 22(fvec4) + 48(Color): 47(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 42(psout): 41(ptr) Variable Function + 10: 7 Load 9(g_tBuffF) + 20: 19(ptr) AccessChain 17 18 + 21: 11(int) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 28: 25 Load 27(g_tBuffU) + 29: 19(ptr) AccessChain 17 18 + 30: 11(int) Load 29 + 32: 31(ivec4) ImageRead 28 30 + 36: 33 Load 35(g_tBuffI) + 37: 19(ptr) AccessChain 17 18 + 38: 11(int) Load 37 + 39: 14(ivec4) ImageRead 36 38 + 46: 45(ptr) AccessChain 42(psout) 18 + Store 46 44 + 49: 45(ptr) AccessChain 42(psout) 18 + 50: 22(fvec4) Load 49 + Store 48(Color) 50 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out new file mode 100644 index 0000000000..a81ddf57de --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out @@ -0,0 +1,383 @@ +hlsl.load.rwtexture.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child (temp 4-component vector of float) +0:53 Color: direct index for structure (temp 4-component vector of float) +0:53 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child (temp float) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:56 Depth: direct index for structure (temp float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:56 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child (temp 4-component vector of float) +0:53 Color: direct index for structure (temp 4-component vector of float) +0:53 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child (temp float) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:56 Depth: direct index for structure (temp float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:56 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 112 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 78 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4a" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 26 "g_tTex1di4a" + Name 34 "g_tTex1du4a" + Name 42 "g_tTex2df4a" + Name 51 "g_tTex2di4a" + Name 58 "g_tTex2du4a" + Name 63 "PS_OUTPUT" + MemberName 63(PS_OUTPUT) 0 "Color" + MemberName 63(PS_OUTPUT) 1 "Depth" + Name 65 "psout" + Name 74 "Color" + Name 78 "Depth" + Name 84 "g_sSamp" + Name 87 "g_tTex1df4" + Name 90 "g_tTex1di4" + Name 93 "g_tTex1du4" + Name 96 "g_tTex2df4" + Name 99 "g_tTex2di4" + Name 102 "g_tTex2du4" + Name 105 "g_tTex3df4" + Name 108 "g_tTex3di4" + Name 111 "g_tTex3du4" + Decorate 9(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 26(g_tTex1di4a) DescriptorSet 0 + Decorate 34(g_tTex1du4a) DescriptorSet 0 + Decorate 42(g_tTex2df4a) DescriptorSet 0 + Decorate 51(g_tTex2di4a) DescriptorSet 0 + Decorate 58(g_tTex2du4a) DescriptorSet 0 + Decorate 74(Color) Location 0 + Decorate 78(Depth) BuiltIn FragDepth + Decorate 84(g_sSamp) DescriptorSet 0 + Decorate 84(g_sSamp) Binding 0 + Decorate 87(g_tTex1df4) DescriptorSet 0 + Decorate 87(g_tTex1df4) Binding 0 + Decorate 90(g_tTex1di4) DescriptorSet 0 + Decorate 93(g_tTex1du4) DescriptorSet 0 + Decorate 96(g_tTex2df4) DescriptorSet 0 + Decorate 99(g_tTex2di4) DescriptorSet 0 + Decorate 102(g_tTex2du4) DescriptorSet 0 + Decorate 105(g_tTex3df4) DescriptorSet 0 + Decorate 108(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4a): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypePointer Uniform 12(ivec2) + 22: TypeVector 6(float) 4 + 24: TypeImage 11(int) 1D array nonsampled format:Rgba32i + 25: TypePointer UniformConstant 24 + 26(g_tTex1di4a): 25(ptr) Variable UniformConstant + 31: TypeInt 32 0 + 32: TypeImage 31(int) 1D array nonsampled format:Rgba32ui + 33: TypePointer UniformConstant 32 + 34(g_tTex1du4a): 33(ptr) Variable UniformConstant + 38: TypeVector 31(int) 4 + 40: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 41: TypePointer UniformConstant 40 + 42(g_tTex2df4a): 41(ptr) Variable UniformConstant + 44: 11(int) Constant 2 + 45: TypePointer Uniform 13(ivec3) + 49: TypeImage 11(int) 2D array nonsampled format:Rgba32i + 50: TypePointer UniformConstant 49 + 51(g_tTex2di4a): 50(ptr) Variable UniformConstant + 56: TypeImage 31(int) 2D array nonsampled format:Rgba32ui + 57: TypePointer UniformConstant 56 + 58(g_tTex2du4a): 57(ptr) Variable UniformConstant + 63(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) + 64: TypePointer Function 63(PS_OUTPUT) + 66: 11(int) Constant 0 + 67: 6(float) Constant 1065353216 + 68: 22(fvec4) ConstantComposite 67 67 67 67 + 69: TypePointer Function 22(fvec4) + 71: TypePointer Function 6(float) + 73: TypePointer Output 22(fvec4) + 74(Color): 73(ptr) Variable Output + 77: TypePointer Output 6(float) + 78(Depth): 77(ptr) Variable Output + 82: TypeSampler + 83: TypePointer UniformConstant 82 + 84(g_sSamp): 83(ptr) Variable UniformConstant + 85: TypeImage 6(float) 1D nonsampled format:Rgba32f + 86: TypePointer UniformConstant 85 + 87(g_tTex1df4): 86(ptr) Variable UniformConstant + 88: TypeImage 11(int) 1D nonsampled format:Rgba32i + 89: TypePointer UniformConstant 88 + 90(g_tTex1di4): 89(ptr) Variable UniformConstant + 91: TypeImage 31(int) 1D nonsampled format:Rgba32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du4): 92(ptr) Variable UniformConstant + 94: TypeImage 6(float) 2D nonsampled format:Rgba32f + 95: TypePointer UniformConstant 94 + 96(g_tTex2df4): 95(ptr) Variable UniformConstant + 97: TypeImage 11(int) 2D nonsampled format:Rgba32i + 98: TypePointer UniformConstant 97 + 99(g_tTex2di4): 98(ptr) Variable UniformConstant + 100: TypeImage 31(int) 2D nonsampled format:Rgba32ui + 101: TypePointer UniformConstant 100 + 102(g_tTex2du4): 101(ptr) Variable UniformConstant + 103: TypeImage 6(float) 3D nonsampled format:Rgba32f + 104: TypePointer UniformConstant 103 + 105(g_tTex3df4): 104(ptr) Variable UniformConstant + 106: TypeImage 11(int) 3D nonsampled format:Rgba32i + 107: TypePointer UniformConstant 106 + 108(g_tTex3di4): 107(ptr) Variable UniformConstant + 109: TypeImage 31(int) 3D nonsampled format:Rgba32ui + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 65(psout): 64(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4a) + 20: 19(ptr) AccessChain 17 18 + 21: 12(ivec2) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 27: 24 Load 26(g_tTex1di4a) + 28: 19(ptr) AccessChain 17 18 + 29: 12(ivec2) Load 28 + 30: 14(ivec4) ImageRead 27 29 + 35: 32 Load 34(g_tTex1du4a) + 36: 19(ptr) AccessChain 17 18 + 37: 12(ivec2) Load 36 + 39: 38(ivec4) ImageRead 35 37 + 43: 40 Load 42(g_tTex2df4a) + 46: 45(ptr) AccessChain 17 44 + 47: 13(ivec3) Load 46 + 48: 22(fvec4) ImageRead 43 47 + 52: 49 Load 51(g_tTex2di4a) + 53: 45(ptr) AccessChain 17 44 + 54: 13(ivec3) Load 53 + 55: 14(ivec4) ImageRead 52 54 + 59: 56 Load 58(g_tTex2du4a) + 60: 45(ptr) AccessChain 17 44 + 61: 13(ivec3) Load 60 + 62: 38(ivec4) ImageRead 59 61 + 70: 69(ptr) AccessChain 65(psout) 66 + Store 70 68 + 72: 71(ptr) AccessChain 65(psout) 18 + Store 72 67 + 75: 69(ptr) AccessChain 65(psout) 66 + 76: 22(fvec4) Load 75 + Store 74(Color) 76 + 79: 71(ptr) AccessChain 65(psout) 18 + 80: 6(float) Load 79 + Store 78(Depth) 80 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out new file mode 100644 index 0000000000..b5435bac4b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -0,0 +1,432 @@ +hlsl.load.rwtexture.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:44 c1: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:45 c1: direct index for structure (layout(offset=0 ) uniform int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:46 c1: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad (temp 4-component vector of float) +0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad (temp 4-component vector of int) +0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad (temp 4-component vector of uint) +0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child (temp 4-component vector of float) +0:58 Color: direct index for structure (temp 4-component vector of float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child (temp float) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Sequence +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:61 Color: direct index for structure (temp 4-component vector of float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 0 (const int) +0:61 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:61 Depth: direct index for structure (temp float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 1 (const int) +0:61 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:44 c1: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:45 c1: direct index for structure (layout(offset=0 ) uniform int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:46 c1: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad (temp 4-component vector of float) +0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad (temp 4-component vector of int) +0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad (temp 4-component vector of uint) +0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child (temp 4-component vector of float) +0:58 Color: direct index for structure (temp 4-component vector of float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child (temp float) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Sequence +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:61 Color: direct index for structure (temp 4-component vector of float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 0 (const int) +0:61 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:61 Depth: direct index for structure (temp float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 1 (const int) +0:61 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 125 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 96 100 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 26 "g_tTex1di4" + Name 34 "g_tTex1du4" + Name 42 "g_tTex2df4" + Name 51 "g_tTex2di4" + Name 58 "g_tTex2du4" + Name 65 "g_tTex3df4" + Name 74 "g_tTex3di4" + Name 81 "g_tTex3du4" + Name 86 "PS_OUTPUT" + MemberName 86(PS_OUTPUT) 0 "Color" + MemberName 86(PS_OUTPUT) 1 "Depth" + Name 88 "psout" + Name 96 "Color" + Name 100 "Depth" + Name 106 "g_sSamp" + Name 109 "g_tTex1df4a" + Name 112 "g_tTex1di4a" + Name 115 "g_tTex1du4a" + Name 118 "g_tTex2df4a" + Name 121 "g_tTex2di4a" + Name 124 "g_tTex2du4a" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 26(g_tTex1di4) DescriptorSet 0 + Decorate 34(g_tTex1du4) DescriptorSet 0 + Decorate 42(g_tTex2df4) DescriptorSet 0 + Decorate 51(g_tTex2di4) DescriptorSet 0 + Decorate 58(g_tTex2du4) DescriptorSet 0 + Decorate 65(g_tTex3df4) DescriptorSet 0 + Decorate 74(g_tTex3di4) DescriptorSet 0 + Decorate 81(g_tTex3du4) DescriptorSet 0 + Decorate 96(Color) Location 0 + Decorate 100(Depth) BuiltIn FragDepth + Decorate 106(g_sSamp) DescriptorSet 0 + Decorate 106(g_sSamp) Binding 0 + Decorate 109(g_tTex1df4a) DescriptorSet 0 + Decorate 112(g_tTex1di4a) DescriptorSet 0 + Decorate 115(g_tTex1du4a) DescriptorSet 0 + Decorate 118(g_tTex2df4a) DescriptorSet 0 + Decorate 121(g_tTex2di4a) DescriptorSet 0 + Decorate 124(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 0 + 19: TypePointer Uniform 11(int) + 22: TypeVector 6(float) 4 + 24: TypeImage 11(int) 1D nonsampled format:Rgba32i + 25: TypePointer UniformConstant 24 + 26(g_tTex1di4): 25(ptr) Variable UniformConstant + 31: TypeInt 32 0 + 32: TypeImage 31(int) 1D nonsampled format:Rgba32ui + 33: TypePointer UniformConstant 32 + 34(g_tTex1du4): 33(ptr) Variable UniformConstant + 38: TypeVector 31(int) 4 + 40: TypeImage 6(float) 2D nonsampled format:Rgba32f + 41: TypePointer UniformConstant 40 + 42(g_tTex2df4): 41(ptr) Variable UniformConstant + 44: 11(int) Constant 1 + 45: TypePointer Uniform 12(ivec2) + 49: TypeImage 11(int) 2D nonsampled format:Rgba32i + 50: TypePointer UniformConstant 49 + 51(g_tTex2di4): 50(ptr) Variable UniformConstant + 56: TypeImage 31(int) 2D nonsampled format:Rgba32ui + 57: TypePointer UniformConstant 56 + 58(g_tTex2du4): 57(ptr) Variable UniformConstant + 63: TypeImage 6(float) 3D nonsampled format:Rgba32f + 64: TypePointer UniformConstant 63 + 65(g_tTex3df4): 64(ptr) Variable UniformConstant + 67: 11(int) Constant 2 + 68: TypePointer Uniform 13(ivec3) + 72: TypeImage 11(int) 3D nonsampled format:Rgba32i + 73: TypePointer UniformConstant 72 + 74(g_tTex3di4): 73(ptr) Variable UniformConstant + 79: TypeImage 31(int) 3D nonsampled format:Rgba32ui + 80: TypePointer UniformConstant 79 + 81(g_tTex3du4): 80(ptr) Variable UniformConstant + 86(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) + 87: TypePointer Function 86(PS_OUTPUT) + 89: 6(float) Constant 1065353216 + 90: 22(fvec4) ConstantComposite 89 89 89 89 + 91: TypePointer Function 22(fvec4) + 93: TypePointer Function 6(float) + 95: TypePointer Output 22(fvec4) + 96(Color): 95(ptr) Variable Output + 99: TypePointer Output 6(float) + 100(Depth): 99(ptr) Variable Output + 104: TypeSampler + 105: TypePointer UniformConstant 104 + 106(g_sSamp): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 108: TypePointer UniformConstant 107 +109(g_tTex1df4a): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 1D array nonsampled format:Rgba32i + 111: TypePointer UniformConstant 110 +112(g_tTex1di4a): 111(ptr) Variable UniformConstant + 113: TypeImage 31(int) 1D array nonsampled format:Rgba32ui + 114: TypePointer UniformConstant 113 +115(g_tTex1du4a): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 117: TypePointer UniformConstant 116 +118(g_tTex2df4a): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 2D array nonsampled format:Rgba32i + 120: TypePointer UniformConstant 119 +121(g_tTex2di4a): 120(ptr) Variable UniformConstant + 122: TypeImage 31(int) 2D array nonsampled format:Rgba32ui + 123: TypePointer UniformConstant 122 +124(g_tTex2du4a): 123(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 88(psout): 87(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 20: 19(ptr) AccessChain 17 18 + 21: 11(int) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 27: 24 Load 26(g_tTex1di4) + 28: 19(ptr) AccessChain 17 18 + 29: 11(int) Load 28 + 30: 14(ivec4) ImageRead 27 29 + 35: 32 Load 34(g_tTex1du4) + 36: 19(ptr) AccessChain 17 18 + 37: 11(int) Load 36 + 39: 38(ivec4) ImageRead 35 37 + 43: 40 Load 42(g_tTex2df4) + 46: 45(ptr) AccessChain 17 44 + 47: 12(ivec2) Load 46 + 48: 22(fvec4) ImageRead 43 47 + 52: 49 Load 51(g_tTex2di4) + 53: 45(ptr) AccessChain 17 44 + 54: 12(ivec2) Load 53 + 55: 14(ivec4) ImageRead 52 54 + 59: 56 Load 58(g_tTex2du4) + 60: 45(ptr) AccessChain 17 44 + 61: 12(ivec2) Load 60 + 62: 38(ivec4) ImageRead 59 61 + 66: 63 Load 65(g_tTex3df4) + 69: 68(ptr) AccessChain 17 67 + 70: 13(ivec3) Load 69 + 71: 22(fvec4) ImageRead 66 70 + 75: 72 Load 74(g_tTex3di4) + 76: 68(ptr) AccessChain 17 67 + 77: 13(ivec3) Load 76 + 78: 14(ivec4) ImageRead 75 77 + 82: 79 Load 81(g_tTex3du4) + 83: 68(ptr) AccessChain 17 67 + 84: 13(ivec3) Load 83 + 85: 38(ivec4) ImageRead 82 84 + 92: 91(ptr) AccessChain 88(psout) 18 + Store 92 90 + 94: 93(ptr) AccessChain 88(psout) 44 + Store 94 89 + 97: 91(ptr) AccessChain 88(psout) 18 + 98: 22(fvec4) Load 97 + Store 96(Color) 98 + 101: 93(ptr) AccessChain 88(psout) 44 + 102: 6(float) Load 101 + Store 100(Depth) 102 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.binary.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.binary.frag.out new file mode 100644 index 0000000000..d9ae7d5b70 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.binary.frag.out @@ -0,0 +1,220 @@ +hlsl.logical.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 57 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 53 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "$Global" + MemberName 11($Global) 0 "ival" + MemberName 11($Global) 1 "ival4" + MemberName 11($Global) 2 "fval" + MemberName 11($Global) 3 "fval4" + Name 13 "" + Name 45 "PS_OUTPUT" + MemberName 45(PS_OUTPUT) 0 "Color" + Name 47 "psout" + Name 53 "Color" + MemberDecorate 11($Global) 0 Offset 0 + MemberDecorate 11($Global) 1 Offset 16 + MemberDecorate 11($Global) 2 Offset 32 + MemberDecorate 11($Global) 3 Offset 48 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 0 + Decorate 53(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeInt 32 1 + 8: TypeVector 7(int) 4 + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11($Global): TypeStruct 7(int) 8(ivec4) 9(float) 10(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: 7(int) Constant 0 + 15: TypePointer Uniform 7(int) + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 23: 7(int) Constant 2 + 24: TypePointer Uniform 9(float) + 45(PS_OUTPUT): TypeStruct 10(fvec4) + 46: TypePointer Function 45(PS_OUTPUT) + 48: 9(float) Constant 1065353216 + 49: 10(fvec4) ConstantComposite 48 48 48 48 + 50: TypePointer Function 10(fvec4) + 52: TypePointer Output 10(fvec4) + 53(Color): 52(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 47(psout): 46(ptr) Variable Function + 16: 15(ptr) AccessChain 13 14 + 17: 7(int) Load 16 + 20: 6(bool) INotEqual 17 19 + SelectionMerge 22 None + BranchConditional 20 21 22 + 21: Label + 25: 24(ptr) AccessChain 13 23 + 26: 9(float) Load 25 + 27: 7(int) ConvertFToS 26 + 28: 6(bool) INotEqual 27 19 + Branch 22 + 22: Label + 29: 6(bool) Phi 20 5 28 21 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label + Branch 31 + 31: Label + 32: 15(ptr) AccessChain 13 14 + 33: 7(int) Load 32 + 34: 6(bool) INotEqual 33 19 + 35: 6(bool) LogicalNot 34 + SelectionMerge 37 None + BranchConditional 35 36 37 + 36: Label + 38: 24(ptr) AccessChain 13 23 + 39: 9(float) Load 38 + 40: 7(int) ConvertFToS 39 + 41: 6(bool) INotEqual 40 19 + Branch 37 + 37: Label + 42: 6(bool) Phi 34 31 41 36 + SelectionMerge 44 None + BranchConditional 42 43 44 + 43: Label + Branch 44 + 44: Label + 51: 50(ptr) AccessChain 47(psout) 14 + Store 51 49 + 54: 50(ptr) AccessChain 47(psout) 14 + 55: 10(fvec4) Load 54 + Store 53(Color) 55 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.binary.vec.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.binary.vec.frag.out new file mode 100644 index 0000000000..32b5a38597 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.binary.vec.frag.out @@ -0,0 +1,412 @@ +hlsl.logical.binary.vec.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r00' (temp 4-component vector of bool) +0:11 Negate conditional (temp 4-component vector of bool) +0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of bool) +0:12 'r01' (temp 4-component vector of bool) +0:12 logical-and (temp 4-component vector of bool) +0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r02' (temp 4-component vector of bool) +0:13 logical-or (temp 4-component vector of bool) +0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r10' (temp 4-component vector of bool) +0:15 logical-and (temp 4-component vector of bool) +0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r11' (temp 4-component vector of bool) +0:16 logical-or (temp 4-component vector of bool) +0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 logical-and (temp 4-component vector of bool) +0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 logical-or (temp 4-component vector of bool) +0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float (temp 4-component vector of float) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 'r00' (temp 4-component vector of bool) +0:22 'r01' (temp 4-component vector of bool) +0:22 'r02' (temp 4-component vector of bool) +0:22 'r10' (temp 4-component vector of bool) +0:22 'r11' (temp 4-component vector of bool) +0:22 'r20' (temp 4-component vector of bool) +0:22 'r21' (temp 4-component vector of bool) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r00' (temp 4-component vector of bool) +0:11 Negate conditional (temp 4-component vector of bool) +0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of bool) +0:12 'r01' (temp 4-component vector of bool) +0:12 logical-and (temp 4-component vector of bool) +0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r02' (temp 4-component vector of bool) +0:13 logical-or (temp 4-component vector of bool) +0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r10' (temp 4-component vector of bool) +0:15 logical-and (temp 4-component vector of bool) +0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r11' (temp 4-component vector of bool) +0:16 logical-or (temp 4-component vector of bool) +0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 logical-and (temp 4-component vector of bool) +0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 logical-or (temp 4-component vector of bool) +0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float (temp 4-component vector of float) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 'r00' (temp 4-component vector of bool) +0:22 'r01' (temp 4-component vector of bool) +0:22 'r02' (temp 4-component vector of bool) +0:22 'r10' (temp 4-component vector of bool) +0:22 'r11' (temp 4-component vector of bool) +0:22 'r20' (temp 4-component vector of bool) +0:22 'r21' (temp 4-component vector of bool) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 115 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 111 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "r00" + Name 12 "$Global" + MemberName 12($Global) 0 "b4a" + MemberName 12($Global) 1 "b4b" + MemberName 12($Global) 2 "b1a" + MemberName 12($Global) 3 "b1b" + Name 14 "" + Name 24 "r01" + Name 33 "r02" + Name 41 "r10" + Name 52 "r11" + Name 61 "r20" + Name 73 "r21" + Name 87 "PS_OUTPUT" + MemberName 87(PS_OUTPUT) 0 "Color" + Name 89 "psout" + Name 111 "Color" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 16 + MemberDecorate 12($Global) 2 Offset 32 + MemberDecorate 12($Global) 3 Offset 36 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 111(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeVector 6(bool) 4 + 8: TypePointer Function 7(bvec4) + 10: TypeInt 32 0 + 11: TypeVector 10(int) 4 + 12($Global): TypeStruct 11(ivec4) 11(ivec4) 10(int) 10(int) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Uniform 11(ivec4) + 20: 10(int) Constant 0 + 21: 11(ivec4) ConstantComposite 20 20 20 20 + 28: 15(int) Constant 1 + 42: 15(int) Constant 2 + 43: TypePointer Uniform 10(int) + 67: 15(int) Constant 3 + 85: TypeFloat 32 + 86: TypeVector 85(float) 4 + 87(PS_OUTPUT): TypeStruct 86(fvec4) + 88: TypePointer Function 87(PS_OUTPUT) + 103: 85(float) Constant 0 + 104: 85(float) Constant 1065353216 + 105: 86(fvec4) ConstantComposite 103 103 103 103 + 106: 86(fvec4) ConstantComposite 104 104 104 104 + 108: TypePointer Function 86(fvec4) + 110: TypePointer Output 86(fvec4) + 111(Color): 110(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 24(r01): 8(ptr) Variable Function + 33(r02): 8(ptr) Variable Function + 41(r10): 8(ptr) Variable Function + 52(r11): 8(ptr) Variable Function + 61(r20): 8(ptr) Variable Function + 73(r21): 8(ptr) Variable Function + 89(psout): 88(ptr) Variable Function + 18: 17(ptr) AccessChain 14 16 + 19: 11(ivec4) Load 18 + 22: 7(bvec4) INotEqual 19 21 + 23: 7(bvec4) LogicalNot 22 + Store 9(r00) 23 + 25: 17(ptr) AccessChain 14 16 + 26: 11(ivec4) Load 25 + 27: 7(bvec4) INotEqual 26 21 + 29: 17(ptr) AccessChain 14 28 + 30: 11(ivec4) Load 29 + 31: 7(bvec4) INotEqual 30 21 + 32: 7(bvec4) LogicalAnd 27 31 + Store 24(r01) 32 + 34: 17(ptr) AccessChain 14 16 + 35: 11(ivec4) Load 34 + 36: 7(bvec4) INotEqual 35 21 + 37: 17(ptr) AccessChain 14 28 + 38: 11(ivec4) Load 37 + 39: 7(bvec4) INotEqual 38 21 + 40: 7(bvec4) LogicalOr 36 39 + Store 33(r02) 40 + 44: 43(ptr) AccessChain 14 42 + 45: 10(int) Load 44 + 46: 6(bool) INotEqual 45 20 + 47: 7(bvec4) CompositeConstruct 46 46 46 46 + 48: 17(ptr) AccessChain 14 28 + 49: 11(ivec4) Load 48 + 50: 7(bvec4) INotEqual 49 21 + 51: 7(bvec4) LogicalAnd 47 50 + Store 41(r10) 51 + 53: 43(ptr) AccessChain 14 42 + 54: 10(int) Load 53 + 55: 6(bool) INotEqual 54 20 + 56: 7(bvec4) CompositeConstruct 55 55 55 55 + 57: 17(ptr) AccessChain 14 28 + 58: 11(ivec4) Load 57 + 59: 7(bvec4) INotEqual 58 21 + 60: 7(bvec4) LogicalOr 56 59 + Store 52(r11) 60 + 62: 17(ptr) AccessChain 14 16 + 63: 11(ivec4) Load 62 + 64: 7(bvec4) INotEqual 63 21 + SelectionMerge 66 None + BranchConditional 64 65 66 + 65: Label + 68: 43(ptr) AccessChain 14 67 + 69: 10(int) Load 68 + 70: 6(bool) INotEqual 69 20 + 71: 7(bvec4) CompositeConstruct 70 70 70 70 + Branch 66 + 66: Label + 72: 6(bool) Phi 64 5 71 65 + Store 61(r20) 72 + 74: 17(ptr) AccessChain 14 16 + 75: 11(ivec4) Load 74 + 76: 7(bvec4) INotEqual 75 21 + 77: 6(bool) LogicalNot 76 + SelectionMerge 79 None + BranchConditional 77 78 79 + 78: Label + 80: 43(ptr) AccessChain 14 67 + 81: 10(int) Load 80 + 82: 6(bool) INotEqual 81 20 + 83: 7(bvec4) CompositeConstruct 82 82 82 82 + Branch 79 + 79: Label + 84: 6(bool) Phi 76 66 83 78 + Store 73(r21) 84 + 90: 7(bvec4) Load 9(r00) + 91: 7(bvec4) Load 24(r01) + 92: 7(bvec4) LogicalOr 90 91 + 93: 7(bvec4) Load 33(r02) + 94: 7(bvec4) LogicalOr 92 93 + 95: 7(bvec4) Load 41(r10) + 96: 7(bvec4) LogicalOr 94 95 + 97: 7(bvec4) Load 52(r11) + 98: 7(bvec4) LogicalOr 96 97 + 99: 7(bvec4) Load 61(r20) + 100: 7(bvec4) LogicalOr 98 99 + 101: 7(bvec4) Load 73(r21) + 102: 7(bvec4) LogicalOr 100 101 + 107: 86(fvec4) Select 102 106 105 + 109: 108(ptr) AccessChain 89(psout) 16 + Store 109 107 + 112: 108(ptr) AccessChain 89(psout) 16 + 113: 86(fvec4) Load 112 + Store 111(Color) 113 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.unary.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.unary.frag.out new file mode 100644 index 0000000000..1aaa69a24e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.logical.unary.frag.out @@ -0,0 +1,292 @@ +hlsl.logical.unary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 77 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 73 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "$Global" + MemberName 10($Global) 0 "ival" + MemberName 10($Global) 1 "ival4" + MemberName 10($Global) 2 "fval" + MemberName 10($Global) 3 "fval4" + Name 12 "" + Name 65 "PS_OUTPUT" + MemberName 65(PS_OUTPUT) 0 "Color" + Name 67 "psout" + Name 73 "Color" + MemberDecorate 10($Global) 0 Offset 0 + MemberDecorate 10($Global) 1 Offset 16 + MemberDecorate 10($Global) 2 Offset 32 + MemberDecorate 10($Global) 3 Offset 48 + Decorate 10($Global) Block + Decorate 12 DescriptorSet 0 + Decorate 73(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10($Global): TypeStruct 6(int) 7(ivec4) 8(float) 9(fvec4) + 11: TypePointer Uniform 10($Global) + 12: 11(ptr) Variable Uniform + 13: 6(int) Constant 0 + 14: TypePointer Uniform 6(int) + 17: TypeBool + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 22: 6(int) Constant 1 + 23: TypePointer Uniform 7(ivec4) + 26: TypeVector 17(bool) 4 + 27: TypeVector 18(int) 4 + 28: 27(ivec4) ConstantComposite 19 19 19 19 + 31: 6(int) Constant 2 + 32: TypePointer Uniform 8(float) + 35: 8(float) Constant 0 + 38: 6(int) Constant 3 + 39: TypePointer Uniform 9(fvec4) + 42: 9(fvec4) ConstantComposite 35 35 35 35 + 65(PS_OUTPUT): TypeStruct 9(fvec4) + 66: TypePointer Function 65(PS_OUTPUT) + 68: 8(float) Constant 1065353216 + 69: 9(fvec4) ConstantComposite 68 68 68 68 + 70: TypePointer Function 9(fvec4) + 72: TypePointer Output 9(fvec4) + 73(Color): 72(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 67(psout): 66(ptr) Variable Function + 15: 14(ptr) AccessChain 12 13 + 16: 6(int) Load 15 + 20: 17(bool) INotEqual 16 19 + 21: 17(bool) LogicalNot 20 + 24: 23(ptr) AccessChain 12 22 + 25: 7(ivec4) Load 24 + 29: 26(bvec4) INotEqual 25 28 + 30: 26(bvec4) LogicalNot 29 + 33: 32(ptr) AccessChain 12 31 + 34: 8(float) Load 33 + 36: 17(bool) FOrdNotEqual 34 35 + 37: 17(bool) LogicalNot 36 + 40: 39(ptr) AccessChain 12 38 + 41: 9(fvec4) Load 40 + 43: 26(bvec4) FOrdNotEqual 41 42 + 44: 26(bvec4) LogicalNot 43 + 45: 14(ptr) AccessChain 12 13 + 46: 6(int) Load 45 + SelectionMerge 48 None + BranchConditional 46 47 48 + 47: Label + Branch 48 + 48: Label + 49: 32(ptr) AccessChain 12 31 + 50: 8(float) Load 49 + SelectionMerge 52 None + BranchConditional 50 51 52 + 51: Label + Branch 52 + 52: Label + 53: 14(ptr) AccessChain 12 13 + 54: 6(int) Load 53 + 55: 17(bool) INotEqual 54 19 + 56: 17(bool) LogicalNot 55 + SelectionMerge 58 None + BranchConditional 56 57 58 + 57: Label + Branch 58 + 58: Label + 59: 32(ptr) AccessChain 12 31 + 60: 8(float) Load 59 + 61: 17(bool) FOrdNotEqual 60 35 + 62: 17(bool) LogicalNot 61 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + Branch 64 + 64: Label + 71: 70(ptr) AccessChain 67(psout) 13 + Store 71 69 + 74: 70(ptr) AccessChain 67(psout) 13 + 75: 9(fvec4) Load 74 + Store 73(Color) 75 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.matNx1.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.matNx1.frag.out new file mode 100644 index 0000000000..f9dd65f9e7 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.matNx1.frag.out @@ -0,0 +1,261 @@ +hlsl.matNx1.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( (temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp 1X1 matrix of float) +0:13 'r00' (temp 1X1 matrix of float) +0:13 transpose (temp 1X1 matrix of float) +0:13 'f1x1' (temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child (temp 1X2 matrix of float) +0:14 'r01' (temp 1X2 matrix of float) +0:14 transpose (temp 1X2 matrix of float) +0:14 'f2x1' (temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child (temp 1X3 matrix of float) +0:15 'r02' (temp 1X3 matrix of float) +0:15 transpose (temp 1X3 matrix of float) +0:15 'f3x1' (temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child (temp 1X4 matrix of float) +0:16 'r03' (temp 1X4 matrix of float) +0:16 transpose (temp 1X4 matrix of float) +0:16 'f4x1' (temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child (temp 1X1 matrix of float) +0:18 'r10' (temp 1X1 matrix of float) +0:18 transpose (temp 1X1 matrix of float) +0:18 'f1x1' (temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child (temp 2X1 matrix of float) +0:19 'r11' (temp 2X1 matrix of float) +0:19 transpose (temp 2X1 matrix of float) +0:19 'f1x2' (temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child (temp 3X1 matrix of float) +0:20 'r12' (temp 3X1 matrix of float) +0:20 transpose (temp 3X1 matrix of float) +0:20 'f1x3' (temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child (temp 4X1 matrix of float) +0:21 'r13' (temp 4X1 matrix of float) +0:21 transpose (temp 4X1 matrix of float) +0:21 'f1x4' (temp 1X4 matrix of float) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 color: direct index for structure (temp 4-component vector of float) +0:29 'ps_output' (temp structure{temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( (temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp 1X1 matrix of float) +0:13 'r00' (temp 1X1 matrix of float) +0:13 transpose (temp 1X1 matrix of float) +0:13 'f1x1' (temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child (temp 1X2 matrix of float) +0:14 'r01' (temp 1X2 matrix of float) +0:14 transpose (temp 1X2 matrix of float) +0:14 'f2x1' (temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child (temp 1X3 matrix of float) +0:15 'r02' (temp 1X3 matrix of float) +0:15 transpose (temp 1X3 matrix of float) +0:15 'f3x1' (temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child (temp 1X4 matrix of float) +0:16 'r03' (temp 1X4 matrix of float) +0:16 transpose (temp 1X4 matrix of float) +0:16 'f4x1' (temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child (temp 1X1 matrix of float) +0:18 'r10' (temp 1X1 matrix of float) +0:18 transpose (temp 1X1 matrix of float) +0:18 'f1x1' (temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child (temp 2X1 matrix of float) +0:19 'r11' (temp 2X1 matrix of float) +0:19 transpose (temp 2X1 matrix of float) +0:19 'f1x2' (temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child (temp 3X1 matrix of float) +0:20 'r12' (temp 3X1 matrix of float) +0:20 transpose (temp 3X1 matrix of float) +0:20 'f1x3' (temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child (temp 4X1 matrix of float) +0:21 'r13' (temp 4X1 matrix of float) +0:21 transpose (temp 4X1 matrix of float) +0:21 'f1x4' (temp 1X4 matrix of float) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 color: direct index for structure (temp 4-component vector of float) +0:29 'ps_output' (temp structure{temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 72 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 68 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestMatNx1(" + Name 12 "r00" + Name 13 "f1x1" + Name 19 "r01" + Name 22 "f2x1" + Name 28 "r02" + Name 31 "f3x1" + Name 37 "r03" + Name 40 "f4x1" + Name 43 "r10" + Name 46 "r11" + Name 47 "f1x2" + Name 50 "r12" + Name 51 "f1x3" + Name 54 "r13" + Name 55 "f1x4" + Name 58 "PS_OUTPUT" + MemberName 58(PS_OUTPUT) 0 "color" + Name 60 "ps_output" + Name 68 "color" + Decorate 68(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 1 + 10: TypeMatrix 9(fvec) 1 + 11: TypePointer Function 10 + 16: TypeVector 8(float) 2 + 17: TypeMatrix 16(fvec2) 1 + 18: TypePointer Function 17 + 20: TypeMatrix 9(fvec) 2 + 21: TypePointer Function 20 + 25: TypeVector 8(float) 3 + 26: TypeMatrix 25(fvec3) 1 + 27: TypePointer Function 26 + 29: TypeMatrix 9(fvec) 3 + 30: TypePointer Function 29 + 34: TypeVector 8(float) 4 + 35: TypeMatrix 34(fvec4) 1 + 36: TypePointer Function 35 + 38: TypeMatrix 9(fvec) 4 + 39: TypePointer Function 38 + 58(PS_OUTPUT): TypeStruct 34(fvec4) + 59: TypePointer Function 58(PS_OUTPUT) + 61: TypeInt 32 1 + 62: 61(int) Constant 0 + 63: 8(float) Constant 1065353216 + 64: 34(fvec4) ConstantComposite 63 63 63 63 + 65: TypePointer Function 34(fvec4) + 67: TypePointer Output 34(fvec4) + 68(color): 67(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 60(ps_output): 59(ptr) Variable Function + 66: 65(ptr) AccessChain 60(ps_output) 62 + Store 66 64 + 69: 65(ptr) AccessChain 60(ps_output) 62 + 70: 34(fvec4) Load 69 + Store 68(color) 70 + Return + FunctionEnd + 6(TestMatNx1(): 2 Function None 3 + 7: Label + 12(r00): 11(ptr) Variable Function + 13(f1x1): 11(ptr) Variable Function + 19(r01): 18(ptr) Variable Function + 22(f2x1): 21(ptr) Variable Function + 28(r02): 27(ptr) Variable Function + 31(f3x1): 30(ptr) Variable Function + 37(r03): 36(ptr) Variable Function + 40(f4x1): 39(ptr) Variable Function + 43(r10): 11(ptr) Variable Function + 46(r11): 21(ptr) Variable Function + 47(f1x2): 18(ptr) Variable Function + 50(r12): 30(ptr) Variable Function + 51(f1x3): 27(ptr) Variable Function + 54(r13): 39(ptr) Variable Function + 55(f1x4): 36(ptr) Variable Function + 14: 10 Load 13(f1x1) + 15: 10 Transpose 14 + Store 12(r00) 15 + 23: 20 Load 22(f2x1) + 24: 17 Transpose 23 + Store 19(r01) 24 + 32: 29 Load 31(f3x1) + 33: 26 Transpose 32 + Store 28(r02) 33 + 41: 38 Load 40(f4x1) + 42: 35 Transpose 41 + Store 37(r03) 42 + 44: 10 Load 13(f1x1) + 45: 10 Transpose 44 + Store 43(r10) 45 + 48: 17 Load 47(f1x2) + 49: 20 Transpose 48 + Store 46(r11) 49 + 52: 26 Load 51(f1x3) + 53: 29 Transpose 52 + Store 50(r12) 53 + 56: 35 Load 55(f1x4) + 57: 38 Transpose 56 + Store 54(r13) 57 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.bool.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.bool.frag.out new file mode 100644 index 0000000000..e24c878441 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.bool.frag.out @@ -0,0 +1,419 @@ +hlsl.matType.bool.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of bool) +0:25 'r00' (temp 1X1 matrix of bool) +0:25 transpose (temp 1X1 matrix of bool) +0:25 'b1x1' (temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of bool) +0:26 'r01' (temp 1X2 matrix of bool) +0:26 transpose (temp 1X2 matrix of bool) +0:26 'b2x1' (temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of bool) +0:27 'r02' (temp 1X3 matrix of bool) +0:27 transpose (temp 1X3 matrix of bool) +0:27 'b3x1' (temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of bool) +0:28 'r03' (temp 1X4 matrix of bool) +0:28 transpose (temp 1X4 matrix of bool) +0:28 'b4x1' (temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of bool) +0:30 'r10' (temp 2X1 matrix of bool) +0:30 transpose (temp 2X1 matrix of bool) +0:30 'b1x2' (temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of bool) +0:31 'r11' (temp 2X2 matrix of bool) +0:31 transpose (temp 2X2 matrix of bool) +0:31 'b2x2' (temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of bool) +0:32 'r12' (temp 2X3 matrix of bool) +0:32 transpose (temp 2X3 matrix of bool) +0:32 'b3x2' (temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of bool) +0:33 'r13' (temp 2X4 matrix of bool) +0:33 transpose (temp 2X4 matrix of bool) +0:33 'b4x2' (temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of bool) +0:35 'r20' (temp 3X1 matrix of bool) +0:35 transpose (temp 3X1 matrix of bool) +0:35 'b1x3' (temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of bool) +0:36 'r21' (temp 3X2 matrix of bool) +0:36 transpose (temp 3X2 matrix of bool) +0:36 'b2x3' (temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of bool) +0:37 'r22' (temp 3X3 matrix of bool) +0:37 transpose (temp 3X3 matrix of bool) +0:37 'b3x3' (temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of bool) +0:38 'r23' (temp 3X4 matrix of bool) +0:38 transpose (temp 3X4 matrix of bool) +0:38 'b4x3' (temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of bool) +0:40 'r30' (temp 4X1 matrix of bool) +0:40 transpose (temp 4X1 matrix of bool) +0:40 'b1x4' (temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of bool) +0:41 'r31' (temp 4X2 matrix of bool) +0:41 transpose (temp 4X2 matrix of bool) +0:41 'b2x4' (temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of bool) +0:42 'r32' (temp 4X3 matrix of bool) +0:42 transpose (temp 4X3 matrix of bool) +0:42 'b3x4' (temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of bool) +0:43 'r33' (temp 4X4 matrix of bool) +0:43 transpose (temp 4X4 matrix of bool) +0:43 'b4x4' (temp 4X4 matrix of bool) +0:49 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 color: direct index for structure (temp 4-component vector of float) +0:51 'ps_output' (temp structure{temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Sequence +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:52 color: direct index for structure (temp 4-component vector of float) +0:52 'ps_output' (temp structure{temp 4-component vector of float color}) +0:52 Constant: +0:52 0 (const int) +0:52 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of bool) +0:25 'r00' (temp 1X1 matrix of bool) +0:25 transpose (temp 1X1 matrix of bool) +0:25 'b1x1' (temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of bool) +0:26 'r01' (temp 1X2 matrix of bool) +0:26 transpose (temp 1X2 matrix of bool) +0:26 'b2x1' (temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of bool) +0:27 'r02' (temp 1X3 matrix of bool) +0:27 transpose (temp 1X3 matrix of bool) +0:27 'b3x1' (temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of bool) +0:28 'r03' (temp 1X4 matrix of bool) +0:28 transpose (temp 1X4 matrix of bool) +0:28 'b4x1' (temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of bool) +0:30 'r10' (temp 2X1 matrix of bool) +0:30 transpose (temp 2X1 matrix of bool) +0:30 'b1x2' (temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of bool) +0:31 'r11' (temp 2X2 matrix of bool) +0:31 transpose (temp 2X2 matrix of bool) +0:31 'b2x2' (temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of bool) +0:32 'r12' (temp 2X3 matrix of bool) +0:32 transpose (temp 2X3 matrix of bool) +0:32 'b3x2' (temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of bool) +0:33 'r13' (temp 2X4 matrix of bool) +0:33 transpose (temp 2X4 matrix of bool) +0:33 'b4x2' (temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of bool) +0:35 'r20' (temp 3X1 matrix of bool) +0:35 transpose (temp 3X1 matrix of bool) +0:35 'b1x3' (temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of bool) +0:36 'r21' (temp 3X2 matrix of bool) +0:36 transpose (temp 3X2 matrix of bool) +0:36 'b2x3' (temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of bool) +0:37 'r22' (temp 3X3 matrix of bool) +0:37 transpose (temp 3X3 matrix of bool) +0:37 'b3x3' (temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of bool) +0:38 'r23' (temp 3X4 matrix of bool) +0:38 transpose (temp 3X4 matrix of bool) +0:38 'b4x3' (temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of bool) +0:40 'r30' (temp 4X1 matrix of bool) +0:40 transpose (temp 4X1 matrix of bool) +0:40 'b1x4' (temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of bool) +0:41 'r31' (temp 4X2 matrix of bool) +0:41 transpose (temp 4X2 matrix of bool) +0:41 'b2x4' (temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of bool) +0:42 'r32' (temp 4X3 matrix of bool) +0:42 transpose (temp 4X3 matrix of bool) +0:42 'b3x4' (temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of bool) +0:43 'r33' (temp 4X4 matrix of bool) +0:43 transpose (temp 4X4 matrix of bool) +0:43 'b4x4' (temp 4X4 matrix of bool) +0:49 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 color: direct index for structure (temp 4-component vector of float) +0:51 'ps_output' (temp structure{temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Sequence +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:52 color: direct index for structure (temp 4-component vector of float) +0:52 'ps_output' (temp structure{temp 4-component vector of float color}) +0:52 Constant: +0:52 0 (const int) +0:52 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 125 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 121 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestBoolMatTypes(" + Name 12 "r00" + Name 13 "b1x1" + Name 19 "r01" + Name 22 "b2x1" + Name 28 "r02" + Name 31 "b3x1" + Name 37 "r03" + Name 40 "b4x1" + Name 43 "r10" + Name 44 "b1x2" + Name 49 "r11" + Name 50 "b2x2" + Name 55 "r12" + Name 58 "b3x2" + Name 63 "r13" + Name 66 "b4x2" + Name 69 "r20" + Name 70 "b1x3" + Name 73 "r21" + Name 74 "b2x3" + Name 79 "r22" + Name 80 "b3x3" + Name 85 "r23" + Name 88 "b4x3" + Name 91 "r30" + Name 92 "b1x4" + Name 95 "r31" + Name 96 "b2x4" + Name 99 "r32" + Name 100 "b3x4" + Name 105 "r33" + Name 106 "b4x4" + Name 111 "PS_OUTPUT" + MemberName 111(PS_OUTPUT) 0 "color" + Name 113 "ps_output" + Name 121 "color" + Decorate 121(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeBool + 9: TypeVector 8(bool) 1 + 10: TypeMatrix 9(bvec) 1 + 11: TypePointer Function 10 + 16: TypeVector 8(bool) 2 + 17: TypeMatrix 16(bvec2) 1 + 18: TypePointer Function 17 + 20: TypeMatrix 9(bvec) 2 + 21: TypePointer Function 20 + 25: TypeVector 8(bool) 3 + 26: TypeMatrix 25(bvec3) 1 + 27: TypePointer Function 26 + 29: TypeMatrix 9(bvec) 3 + 30: TypePointer Function 29 + 34: TypeVector 8(bool) 4 + 35: TypeMatrix 34(bvec4) 1 + 36: TypePointer Function 35 + 38: TypeMatrix 9(bvec) 4 + 39: TypePointer Function 38 + 47: TypeMatrix 16(bvec2) 2 + 48: TypePointer Function 47 + 53: TypeMatrix 25(bvec3) 2 + 54: TypePointer Function 53 + 56: TypeMatrix 16(bvec2) 3 + 57: TypePointer Function 56 + 61: TypeMatrix 34(bvec4) 2 + 62: TypePointer Function 61 + 64: TypeMatrix 16(bvec2) 4 + 65: TypePointer Function 64 + 77: TypeMatrix 25(bvec3) 3 + 78: TypePointer Function 77 + 83: TypeMatrix 34(bvec4) 3 + 84: TypePointer Function 83 + 86: TypeMatrix 25(bvec3) 4 + 87: TypePointer Function 86 + 103: TypeMatrix 34(bvec4) 4 + 104: TypePointer Function 103 + 109: TypeFloat 32 + 110: TypeVector 109(float) 4 + 111(PS_OUTPUT): TypeStruct 110(fvec4) + 112: TypePointer Function 111(PS_OUTPUT) + 114: TypeInt 32 1 + 115: 114(int) Constant 0 + 116: 109(float) Constant 0 + 117: 110(fvec4) ConstantComposite 116 116 116 116 + 118: TypePointer Function 110(fvec4) + 120: TypePointer Output 110(fvec4) + 121(color): 120(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 113(ps_output): 112(ptr) Variable Function + 119: 118(ptr) AccessChain 113(ps_output) 115 + Store 119 117 + 122: 118(ptr) AccessChain 113(ps_output) 115 + 123: 110(fvec4) Load 122 + Store 121(color) 123 + Return + FunctionEnd +6(TestBoolMatTypes(): 2 Function None 3 + 7: Label + 12(r00): 11(ptr) Variable Function + 13(b1x1): 11(ptr) Variable Function + 19(r01): 18(ptr) Variable Function + 22(b2x1): 21(ptr) Variable Function + 28(r02): 27(ptr) Variable Function + 31(b3x1): 30(ptr) Variable Function + 37(r03): 36(ptr) Variable Function + 40(b4x1): 39(ptr) Variable Function + 43(r10): 21(ptr) Variable Function + 44(b1x2): 18(ptr) Variable Function + 49(r11): 48(ptr) Variable Function + 50(b2x2): 48(ptr) Variable Function + 55(r12): 54(ptr) Variable Function + 58(b3x2): 57(ptr) Variable Function + 63(r13): 62(ptr) Variable Function + 66(b4x2): 65(ptr) Variable Function + 69(r20): 30(ptr) Variable Function + 70(b1x3): 27(ptr) Variable Function + 73(r21): 57(ptr) Variable Function + 74(b2x3): 54(ptr) Variable Function + 79(r22): 78(ptr) Variable Function + 80(b3x3): 78(ptr) Variable Function + 85(r23): 84(ptr) Variable Function + 88(b4x3): 87(ptr) Variable Function + 91(r30): 39(ptr) Variable Function + 92(b1x4): 36(ptr) Variable Function + 95(r31): 65(ptr) Variable Function + 96(b2x4): 62(ptr) Variable Function + 99(r32): 87(ptr) Variable Function + 100(b3x4): 84(ptr) Variable Function + 105(r33): 104(ptr) Variable Function + 106(b4x4): 104(ptr) Variable Function + 14: 10 Load 13(b1x1) + 15: 10 Transpose 14 + Store 12(r00) 15 + 23: 20 Load 22(b2x1) + 24: 17 Transpose 23 + Store 19(r01) 24 + 32: 29 Load 31(b3x1) + 33: 26 Transpose 32 + Store 28(r02) 33 + 41: 38 Load 40(b4x1) + 42: 35 Transpose 41 + Store 37(r03) 42 + 45: 17 Load 44(b1x2) + 46: 20 Transpose 45 + Store 43(r10) 46 + 51: 47 Load 50(b2x2) + 52: 47 Transpose 51 + Store 49(r11) 52 + 59: 56 Load 58(b3x2) + 60: 53 Transpose 59 + Store 55(r12) 60 + 67: 64 Load 66(b4x2) + 68: 61 Transpose 67 + Store 63(r13) 68 + 71: 26 Load 70(b1x3) + 72: 29 Transpose 71 + Store 69(r20) 72 + 75: 53 Load 74(b2x3) + 76: 56 Transpose 75 + Store 73(r21) 76 + 81: 77 Load 80(b3x3) + 82: 77 Transpose 81 + Store 79(r22) 82 + 89: 86 Load 88(b4x3) + 90: 83 Transpose 89 + Store 85(r23) 90 + 93: 35 Load 92(b1x4) + 94: 38 Transpose 93 + Store 91(r30) 94 + 97: 61 Load 96(b2x4) + 98: 64 Transpose 97 + Store 95(r31) 98 + 101: 83 Load 100(b3x4) + 102: 86 Transpose 101 + Store 99(r32) 102 + 107: 103 Load 106(b4x4) + 108: 103 Transpose 107 + Store 105(r33) 108 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/hlsl.matType.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.frag.out similarity index 74% rename from deps/glslang-new/Test/baseResults/hlsl.matType.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.matType.frag.out index 958b37e0d6..038ca738ae 100755 --- a/deps/glslang-new/Test/baseResults/hlsl.matType.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.frag.out @@ -1,37 +1,37 @@ hlsl.matType.frag -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:9 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: -0:9 'inFloat1' ( in 1-component vector of float) -0:9 'inScalar' ( in float) +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: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}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:9 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: -0:9 'inFloat1' ( in 1-component vector of float) -0:9 'inScalar' ( in float) +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: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}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 30 Capability Shader @@ -40,7 +40,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" @@ -82,8 +81,8 @@ gl_FragCoord origin is upper left 19: TypeVector 6(float) 2 20: TypeMatrix 19(fvec2) 1 21: TypeFloat 64 - 22: TypeVector 21(float64_t) 3 - 23: TypeMatrix 22(f64vec3) 2 + 22: TypeVector 21(float) 3 + 23: TypeMatrix 22(fvec3) 2 24: TypeInt 32 1 25: TypeVector 24(int) 4 26: TypeMatrix 25(ivec4) 4 diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.int.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.int.frag.out new file mode 100644 index 0000000000..d7ffb0f780 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.matType.int.frag.out @@ -0,0 +1,738 @@ +hlsl.matType.int.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of int) +0:25 'r00' (temp 1X1 matrix of int) +0:25 transpose (temp 1X1 matrix of int) +0:25 'i1x1' (temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of int) +0:26 'r01' (temp 1X2 matrix of int) +0:26 transpose (temp 1X2 matrix of int) +0:26 'i2x1' (temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of int) +0:27 'r02' (temp 1X3 matrix of int) +0:27 transpose (temp 1X3 matrix of int) +0:27 'i3x1' (temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of int) +0:28 'r03' (temp 1X4 matrix of int) +0:28 transpose (temp 1X4 matrix of int) +0:28 'i4x1' (temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of int) +0:30 'r10' (temp 2X1 matrix of int) +0:30 transpose (temp 2X1 matrix of int) +0:30 'i1x2' (temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of int) +0:31 'r11' (temp 2X2 matrix of int) +0:31 transpose (temp 2X2 matrix of int) +0:31 'i2x2' (temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of int) +0:32 'r12' (temp 2X3 matrix of int) +0:32 transpose (temp 2X3 matrix of int) +0:32 'i3x2' (temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of int) +0:33 'r13' (temp 2X4 matrix of int) +0:33 transpose (temp 2X4 matrix of int) +0:33 'i4x2' (temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of int) +0:35 'r20' (temp 3X1 matrix of int) +0:35 transpose (temp 3X1 matrix of int) +0:35 'i1x3' (temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of int) +0:36 'r21' (temp 3X2 matrix of int) +0:36 transpose (temp 3X2 matrix of int) +0:36 'i2x3' (temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of int) +0:37 'r22' (temp 3X3 matrix of int) +0:37 transpose (temp 3X3 matrix of int) +0:37 'i3x3' (temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of int) +0:38 'r23' (temp 3X4 matrix of int) +0:38 transpose (temp 3X4 matrix of int) +0:38 'i4x3' (temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of int) +0:40 'r30' (temp 4X1 matrix of int) +0:40 transpose (temp 4X1 matrix of int) +0:40 'i1x4' (temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of int) +0:41 'r31' (temp 4X2 matrix of int) +0:41 transpose (temp 4X2 matrix of int) +0:41 'i2x4' (temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of int) +0:42 'r32' (temp 4X3 matrix of int) +0:42 transpose (temp 4X3 matrix of int) +0:42 'i3x4' (temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of int) +0:43 'r33' (temp 4X4 matrix of int) +0:43 transpose (temp 4X4 matrix of int) +0:43 'i4x4' (temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( (temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child (temp 1X1 matrix of uint) +0:69 'r00' (temp 1X1 matrix of uint) +0:69 transpose (temp 1X1 matrix of uint) +0:69 'u1x1' (temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child (temp 1X2 matrix of uint) +0:70 'r01' (temp 1X2 matrix of uint) +0:70 transpose (temp 1X2 matrix of uint) +0:70 'u2x1' (temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child (temp 1X3 matrix of uint) +0:71 'r02' (temp 1X3 matrix of uint) +0:71 transpose (temp 1X3 matrix of uint) +0:71 'u3x1' (temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child (temp 1X4 matrix of uint) +0:72 'r03' (temp 1X4 matrix of uint) +0:72 transpose (temp 1X4 matrix of uint) +0:72 'u4x1' (temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child (temp 2X1 matrix of uint) +0:74 'r10' (temp 2X1 matrix of uint) +0:74 transpose (temp 2X1 matrix of uint) +0:74 'u1x2' (temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child (temp 2X2 matrix of uint) +0:75 'r11' (temp 2X2 matrix of uint) +0:75 transpose (temp 2X2 matrix of uint) +0:75 'u2x2' (temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child (temp 2X3 matrix of uint) +0:76 'r12' (temp 2X3 matrix of uint) +0:76 transpose (temp 2X3 matrix of uint) +0:76 'u3x2' (temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child (temp 2X4 matrix of uint) +0:77 'r13' (temp 2X4 matrix of uint) +0:77 transpose (temp 2X4 matrix of uint) +0:77 'u4x2' (temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child (temp 3X1 matrix of uint) +0:79 'r20' (temp 3X1 matrix of uint) +0:79 transpose (temp 3X1 matrix of uint) +0:79 'u1x3' (temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child (temp 3X2 matrix of uint) +0:80 'r21' (temp 3X2 matrix of uint) +0:80 transpose (temp 3X2 matrix of uint) +0:80 'u2x3' (temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child (temp 3X3 matrix of uint) +0:81 'r22' (temp 3X3 matrix of uint) +0:81 transpose (temp 3X3 matrix of uint) +0:81 'u3x3' (temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child (temp 3X4 matrix of uint) +0:82 'r23' (temp 3X4 matrix of uint) +0:82 transpose (temp 3X4 matrix of uint) +0:82 'u4x3' (temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child (temp 4X1 matrix of uint) +0:84 'r30' (temp 4X1 matrix of uint) +0:84 transpose (temp 4X1 matrix of uint) +0:84 'u1x4' (temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child (temp 4X2 matrix of uint) +0:85 'r31' (temp 4X2 matrix of uint) +0:85 transpose (temp 4X2 matrix of uint) +0:85 'u2x4' (temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child (temp 4X3 matrix of uint) +0:86 'r32' (temp 4X3 matrix of uint) +0:86 transpose (temp 4X3 matrix of uint) +0:86 'u3x4' (temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child (temp 4X4 matrix of uint) +0:87 'r33' (temp 4X4 matrix of uint) +0:87 transpose (temp 4X4 matrix of uint) +0:87 'u4x4' (temp 4X4 matrix of uint) +0:93 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 color: direct index for structure (temp 4-component vector of float) +0:95 'ps_output' (temp structure{temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Sequence +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:96 color: direct index for structure (temp 4-component vector of float) +0:96 'ps_output' (temp structure{temp 4-component vector of float color}) +0:96 Constant: +0:96 0 (const int) +0:96 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of int) +0:25 'r00' (temp 1X1 matrix of int) +0:25 transpose (temp 1X1 matrix of int) +0:25 'i1x1' (temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of int) +0:26 'r01' (temp 1X2 matrix of int) +0:26 transpose (temp 1X2 matrix of int) +0:26 'i2x1' (temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of int) +0:27 'r02' (temp 1X3 matrix of int) +0:27 transpose (temp 1X3 matrix of int) +0:27 'i3x1' (temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of int) +0:28 'r03' (temp 1X4 matrix of int) +0:28 transpose (temp 1X4 matrix of int) +0:28 'i4x1' (temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of int) +0:30 'r10' (temp 2X1 matrix of int) +0:30 transpose (temp 2X1 matrix of int) +0:30 'i1x2' (temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of int) +0:31 'r11' (temp 2X2 matrix of int) +0:31 transpose (temp 2X2 matrix of int) +0:31 'i2x2' (temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of int) +0:32 'r12' (temp 2X3 matrix of int) +0:32 transpose (temp 2X3 matrix of int) +0:32 'i3x2' (temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of int) +0:33 'r13' (temp 2X4 matrix of int) +0:33 transpose (temp 2X4 matrix of int) +0:33 'i4x2' (temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of int) +0:35 'r20' (temp 3X1 matrix of int) +0:35 transpose (temp 3X1 matrix of int) +0:35 'i1x3' (temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of int) +0:36 'r21' (temp 3X2 matrix of int) +0:36 transpose (temp 3X2 matrix of int) +0:36 'i2x3' (temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of int) +0:37 'r22' (temp 3X3 matrix of int) +0:37 transpose (temp 3X3 matrix of int) +0:37 'i3x3' (temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of int) +0:38 'r23' (temp 3X4 matrix of int) +0:38 transpose (temp 3X4 matrix of int) +0:38 'i4x3' (temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of int) +0:40 'r30' (temp 4X1 matrix of int) +0:40 transpose (temp 4X1 matrix of int) +0:40 'i1x4' (temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of int) +0:41 'r31' (temp 4X2 matrix of int) +0:41 transpose (temp 4X2 matrix of int) +0:41 'i2x4' (temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of int) +0:42 'r32' (temp 4X3 matrix of int) +0:42 transpose (temp 4X3 matrix of int) +0:42 'i3x4' (temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of int) +0:43 'r33' (temp 4X4 matrix of int) +0:43 transpose (temp 4X4 matrix of int) +0:43 'i4x4' (temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( (temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child (temp 1X1 matrix of uint) +0:69 'r00' (temp 1X1 matrix of uint) +0:69 transpose (temp 1X1 matrix of uint) +0:69 'u1x1' (temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child (temp 1X2 matrix of uint) +0:70 'r01' (temp 1X2 matrix of uint) +0:70 transpose (temp 1X2 matrix of uint) +0:70 'u2x1' (temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child (temp 1X3 matrix of uint) +0:71 'r02' (temp 1X3 matrix of uint) +0:71 transpose (temp 1X3 matrix of uint) +0:71 'u3x1' (temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child (temp 1X4 matrix of uint) +0:72 'r03' (temp 1X4 matrix of uint) +0:72 transpose (temp 1X4 matrix of uint) +0:72 'u4x1' (temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child (temp 2X1 matrix of uint) +0:74 'r10' (temp 2X1 matrix of uint) +0:74 transpose (temp 2X1 matrix of uint) +0:74 'u1x2' (temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child (temp 2X2 matrix of uint) +0:75 'r11' (temp 2X2 matrix of uint) +0:75 transpose (temp 2X2 matrix of uint) +0:75 'u2x2' (temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child (temp 2X3 matrix of uint) +0:76 'r12' (temp 2X3 matrix of uint) +0:76 transpose (temp 2X3 matrix of uint) +0:76 'u3x2' (temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child (temp 2X4 matrix of uint) +0:77 'r13' (temp 2X4 matrix of uint) +0:77 transpose (temp 2X4 matrix of uint) +0:77 'u4x2' (temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child (temp 3X1 matrix of uint) +0:79 'r20' (temp 3X1 matrix of uint) +0:79 transpose (temp 3X1 matrix of uint) +0:79 'u1x3' (temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child (temp 3X2 matrix of uint) +0:80 'r21' (temp 3X2 matrix of uint) +0:80 transpose (temp 3X2 matrix of uint) +0:80 'u2x3' (temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child (temp 3X3 matrix of uint) +0:81 'r22' (temp 3X3 matrix of uint) +0:81 transpose (temp 3X3 matrix of uint) +0:81 'u3x3' (temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child (temp 3X4 matrix of uint) +0:82 'r23' (temp 3X4 matrix of uint) +0:82 transpose (temp 3X4 matrix of uint) +0:82 'u4x3' (temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child (temp 4X1 matrix of uint) +0:84 'r30' (temp 4X1 matrix of uint) +0:84 transpose (temp 4X1 matrix of uint) +0:84 'u1x4' (temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child (temp 4X2 matrix of uint) +0:85 'r31' (temp 4X2 matrix of uint) +0:85 transpose (temp 4X2 matrix of uint) +0:85 'u2x4' (temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child (temp 4X3 matrix of uint) +0:86 'r32' (temp 4X3 matrix of uint) +0:86 transpose (temp 4X3 matrix of uint) +0:86 'u3x4' (temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child (temp 4X4 matrix of uint) +0:87 'r33' (temp 4X4 matrix of uint) +0:87 transpose (temp 4X4 matrix of uint) +0:87 'u4x4' (temp 4X4 matrix of uint) +0:93 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 color: direct index for structure (temp 4-component vector of float) +0:95 'ps_output' (temp structure{temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Sequence +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:96 color: direct index for structure (temp 4-component vector of float) +0:96 'ps_output' (temp structure{temp 4-component vector of float color}) +0:96 Constant: +0:96 0 (const int) +0:96 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 227 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 223 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestIntMatTypes(" + Name 8 "TestUintMatTypes(" + Name 14 "r00" + Name 15 "i1x1" + Name 21 "r01" + Name 24 "i2x1" + Name 30 "r02" + Name 33 "i3x1" + Name 39 "r03" + Name 42 "i4x1" + Name 45 "r10" + Name 46 "i1x2" + Name 51 "r11" + Name 52 "i2x2" + Name 57 "r12" + Name 60 "i3x2" + Name 65 "r13" + Name 68 "i4x2" + Name 71 "r20" + Name 72 "i1x3" + Name 75 "r21" + Name 76 "i2x3" + Name 81 "r22" + Name 82 "i3x3" + Name 87 "r23" + Name 90 "i4x3" + Name 93 "r30" + Name 94 "i1x4" + Name 97 "r31" + Name 98 "i2x4" + Name 101 "r32" + Name 102 "i3x4" + Name 107 "r33" + Name 108 "i4x4" + Name 115 "r00" + Name 116 "u1x1" + Name 122 "r01" + Name 125 "u2x1" + Name 131 "r02" + Name 134 "u3x1" + Name 140 "r03" + Name 143 "u4x1" + Name 146 "r10" + Name 147 "u1x2" + Name 152 "r11" + Name 153 "u2x2" + Name 158 "r12" + Name 161 "u3x2" + Name 166 "r13" + Name 169 "u4x2" + Name 172 "r20" + Name 173 "u1x3" + Name 176 "r21" + Name 177 "u2x3" + Name 182 "r22" + Name 183 "u3x3" + Name 188 "r23" + Name 191 "u4x3" + Name 194 "r30" + Name 195 "u1x4" + Name 198 "r31" + Name 199 "u2x4" + Name 202 "r32" + Name 203 "u3x4" + Name 208 "r33" + Name 209 "u4x4" + Name 214 "PS_OUTPUT" + MemberName 214(PS_OUTPUT) 0 "color" + Name 216 "ps_output" + Name 223 "color" + Decorate 223(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeInt 32 1 + 11: TypeVector 10(int) 1 + 12: TypeMatrix 11(ivec) 1 + 13: TypePointer Function 12 + 18: TypeVector 10(int) 2 + 19: TypeMatrix 18(ivec2) 1 + 20: TypePointer Function 19 + 22: TypeMatrix 11(ivec) 2 + 23: TypePointer Function 22 + 27: TypeVector 10(int) 3 + 28: TypeMatrix 27(ivec3) 1 + 29: TypePointer Function 28 + 31: TypeMatrix 11(ivec) 3 + 32: TypePointer Function 31 + 36: TypeVector 10(int) 4 + 37: TypeMatrix 36(ivec4) 1 + 38: TypePointer Function 37 + 40: TypeMatrix 11(ivec) 4 + 41: TypePointer Function 40 + 49: TypeMatrix 18(ivec2) 2 + 50: TypePointer Function 49 + 55: TypeMatrix 27(ivec3) 2 + 56: TypePointer Function 55 + 58: TypeMatrix 18(ivec2) 3 + 59: TypePointer Function 58 + 63: TypeMatrix 36(ivec4) 2 + 64: TypePointer Function 63 + 66: TypeMatrix 18(ivec2) 4 + 67: TypePointer Function 66 + 79: TypeMatrix 27(ivec3) 3 + 80: TypePointer Function 79 + 85: TypeMatrix 36(ivec4) 3 + 86: TypePointer Function 85 + 88: TypeMatrix 27(ivec3) 4 + 89: TypePointer Function 88 + 105: TypeMatrix 36(ivec4) 4 + 106: TypePointer Function 105 + 111: TypeInt 32 0 + 112: TypeVector 111(int) 1 + 113: TypeMatrix 112(ivec) 1 + 114: TypePointer Function 113 + 119: TypeVector 111(int) 2 + 120: TypeMatrix 119(ivec2) 1 + 121: TypePointer Function 120 + 123: TypeMatrix 112(ivec) 2 + 124: TypePointer Function 123 + 128: TypeVector 111(int) 3 + 129: TypeMatrix 128(ivec3) 1 + 130: TypePointer Function 129 + 132: TypeMatrix 112(ivec) 3 + 133: TypePointer Function 132 + 137: TypeVector 111(int) 4 + 138: TypeMatrix 137(ivec4) 1 + 139: TypePointer Function 138 + 141: TypeMatrix 112(ivec) 4 + 142: TypePointer Function 141 + 150: TypeMatrix 119(ivec2) 2 + 151: TypePointer Function 150 + 156: TypeMatrix 128(ivec3) 2 + 157: TypePointer Function 156 + 159: TypeMatrix 119(ivec2) 3 + 160: TypePointer Function 159 + 164: TypeMatrix 137(ivec4) 2 + 165: TypePointer Function 164 + 167: TypeMatrix 119(ivec2) 4 + 168: TypePointer Function 167 + 180: TypeMatrix 128(ivec3) 3 + 181: TypePointer Function 180 + 186: TypeMatrix 137(ivec4) 3 + 187: TypePointer Function 186 + 189: TypeMatrix 128(ivec3) 4 + 190: TypePointer Function 189 + 206: TypeMatrix 137(ivec4) 4 + 207: TypePointer Function 206 + 212: TypeFloat 32 + 213: TypeVector 212(float) 4 + 214(PS_OUTPUT): TypeStruct 213(fvec4) + 215: TypePointer Function 214(PS_OUTPUT) + 217: 10(int) Constant 0 + 218: 212(float) Constant 0 + 219: 213(fvec4) ConstantComposite 218 218 218 218 + 220: TypePointer Function 213(fvec4) + 222: TypePointer Output 213(fvec4) + 223(color): 222(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 216(ps_output): 215(ptr) Variable Function + 221: 220(ptr) AccessChain 216(ps_output) 217 + Store 221 219 + 224: 220(ptr) AccessChain 216(ps_output) 217 + 225: 213(fvec4) Load 224 + Store 223(color) 225 + Return + FunctionEnd +6(TestIntMatTypes(): 2 Function None 3 + 7: Label + 14(r00): 13(ptr) Variable Function + 15(i1x1): 13(ptr) Variable Function + 21(r01): 20(ptr) Variable Function + 24(i2x1): 23(ptr) Variable Function + 30(r02): 29(ptr) Variable Function + 33(i3x1): 32(ptr) Variable Function + 39(r03): 38(ptr) Variable Function + 42(i4x1): 41(ptr) Variable Function + 45(r10): 23(ptr) Variable Function + 46(i1x2): 20(ptr) Variable Function + 51(r11): 50(ptr) Variable Function + 52(i2x2): 50(ptr) Variable Function + 57(r12): 56(ptr) Variable Function + 60(i3x2): 59(ptr) Variable Function + 65(r13): 64(ptr) Variable Function + 68(i4x2): 67(ptr) Variable Function + 71(r20): 32(ptr) Variable Function + 72(i1x3): 29(ptr) Variable Function + 75(r21): 59(ptr) Variable Function + 76(i2x3): 56(ptr) Variable Function + 81(r22): 80(ptr) Variable Function + 82(i3x3): 80(ptr) Variable Function + 87(r23): 86(ptr) Variable Function + 90(i4x3): 89(ptr) Variable Function + 93(r30): 41(ptr) Variable Function + 94(i1x4): 38(ptr) Variable Function + 97(r31): 67(ptr) Variable Function + 98(i2x4): 64(ptr) Variable Function + 101(r32): 89(ptr) Variable Function + 102(i3x4): 86(ptr) Variable Function + 107(r33): 106(ptr) Variable Function + 108(i4x4): 106(ptr) Variable Function + 16: 12 Load 15(i1x1) + 17: 12 Transpose 16 + Store 14(r00) 17 + 25: 22 Load 24(i2x1) + 26: 19 Transpose 25 + Store 21(r01) 26 + 34: 31 Load 33(i3x1) + 35: 28 Transpose 34 + Store 30(r02) 35 + 43: 40 Load 42(i4x1) + 44: 37 Transpose 43 + Store 39(r03) 44 + 47: 19 Load 46(i1x2) + 48: 22 Transpose 47 + Store 45(r10) 48 + 53: 49 Load 52(i2x2) + 54: 49 Transpose 53 + Store 51(r11) 54 + 61: 58 Load 60(i3x2) + 62: 55 Transpose 61 + Store 57(r12) 62 + 69: 66 Load 68(i4x2) + 70: 63 Transpose 69 + Store 65(r13) 70 + 73: 28 Load 72(i1x3) + 74: 31 Transpose 73 + Store 71(r20) 74 + 77: 55 Load 76(i2x3) + 78: 58 Transpose 77 + Store 75(r21) 78 + 83: 79 Load 82(i3x3) + 84: 79 Transpose 83 + Store 81(r22) 84 + 91: 88 Load 90(i4x3) + 92: 85 Transpose 91 + Store 87(r23) 92 + 95: 37 Load 94(i1x4) + 96: 40 Transpose 95 + Store 93(r30) 96 + 99: 63 Load 98(i2x4) + 100: 66 Transpose 99 + Store 97(r31) 100 + 103: 85 Load 102(i3x4) + 104: 88 Transpose 103 + Store 101(r32) 104 + 109: 105 Load 108(i4x4) + 110: 105 Transpose 109 + Store 107(r33) 110 + Return + FunctionEnd +8(TestUintMatTypes(): 2 Function None 3 + 9: Label + 115(r00): 114(ptr) Variable Function + 116(u1x1): 114(ptr) Variable Function + 122(r01): 121(ptr) Variable Function + 125(u2x1): 124(ptr) Variable Function + 131(r02): 130(ptr) Variable Function + 134(u3x1): 133(ptr) Variable Function + 140(r03): 139(ptr) Variable Function + 143(u4x1): 142(ptr) Variable Function + 146(r10): 124(ptr) Variable Function + 147(u1x2): 121(ptr) Variable Function + 152(r11): 151(ptr) Variable Function + 153(u2x2): 151(ptr) Variable Function + 158(r12): 157(ptr) Variable Function + 161(u3x2): 160(ptr) Variable Function + 166(r13): 165(ptr) Variable Function + 169(u4x2): 168(ptr) Variable Function + 172(r20): 133(ptr) Variable Function + 173(u1x3): 130(ptr) Variable Function + 176(r21): 160(ptr) Variable Function + 177(u2x3): 157(ptr) Variable Function + 182(r22): 181(ptr) Variable Function + 183(u3x3): 181(ptr) Variable Function + 188(r23): 187(ptr) Variable Function + 191(u4x3): 190(ptr) Variable Function + 194(r30): 142(ptr) Variable Function + 195(u1x4): 139(ptr) Variable Function + 198(r31): 168(ptr) Variable Function + 199(u2x4): 165(ptr) Variable Function + 202(r32): 190(ptr) Variable Function + 203(u3x4): 187(ptr) Variable Function + 208(r33): 207(ptr) Variable Function + 209(u4x4): 207(ptr) Variable Function + 117: 113 Load 116(u1x1) + 118: 113 Transpose 117 + Store 115(r00) 118 + 126: 123 Load 125(u2x1) + 127: 120 Transpose 126 + Store 122(r01) 127 + 135: 132 Load 134(u3x1) + 136: 129 Transpose 135 + Store 131(r02) 136 + 144: 141 Load 143(u4x1) + 145: 138 Transpose 144 + Store 140(r03) 145 + 148: 120 Load 147(u1x2) + 149: 123 Transpose 148 + Store 146(r10) 149 + 154: 150 Load 153(u2x2) + 155: 150 Transpose 154 + Store 152(r11) 155 + 162: 159 Load 161(u3x2) + 163: 156 Transpose 162 + Store 158(r12) 163 + 170: 167 Load 169(u4x2) + 171: 164 Transpose 170 + Store 166(r13) 171 + 174: 129 Load 173(u1x3) + 175: 132 Transpose 174 + Store 172(r20) 175 + 178: 156 Load 177(u2x3) + 179: 159 Transpose 178 + Store 176(r21) 179 + 184: 180 Load 183(u3x3) + 185: 180 Transpose 184 + Store 182(r22) 185 + 192: 189 Load 191(u4x3) + 193: 186 Transpose 192 + Store 188(r23) 193 + 196: 138 Load 195(u1x4) + 197: 141 Transpose 196 + Store 194(r30) 197 + 200: 164 Load 199(u2x4) + 201: 167 Transpose 200 + Store 198(r31) 201 + 204: 186 Load 203(u3x4) + 205: 189 Transpose 204 + Store 202(r32) 205 + 210: 206 Load 209(u4x4) + 211: 206 Transpose 210 + Store 208(r33) 211 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.matrixindex.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.matrixindex.frag.out new file mode 100644 index 0000000000..420ba9f55d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.matrixindex.frag.out @@ -0,0 +1,407 @@ +hlsl.matrixindex.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0: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 (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r0c' (temp 2-component vector of float) +0:44 indirect index (layout(offset=16 ) temp 2-component vector of float) +0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0: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 (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r0c' (temp 2-component vector of float) +0:44 indirect index (layout(offset=16 ) temp 2-component vector of float) +0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "e1_00" + Name 10 "e1_01" + Name 12 "e1_10" + Name 14 "e1_11" + Name 16 "e1_20" + Name 18 "e1_21" + Name 20 "e2_00" + Name 22 "e2_01" + Name 24 "e2_10" + Name 26 "e2_11" + Name 28 "e2_20" + Name 30 "e2_21" + Name 34 "r0a" + Name 36 "r1a" + Name 38 "r2a" + Name 40 "r0b" + Name 47 "$Global" + MemberName 47($Global) 0 "idx" + MemberName 47($Global) 1 "um" + Name 49 "" + Name 55 "indexable" + Name 58 "r0c" + Name 66 "PS_OUTPUT" + MemberName 66(PS_OUTPUT) 0 "Color" + Name 68 "psout" + Name 74 "Color" + MemberDecorate 47($Global) 0 Offset 0 + MemberDecorate 47($Global) 1 RowMajor + MemberDecorate 47($Global) 1 Offset 16 + MemberDecorate 47($Global) 1 MatrixStride 16 + Decorate 47($Global) Block + Decorate 49 DescriptorSet 0 + Decorate 74(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1092616192 + 11: 6(float) Constant 1093664768 + 13: 6(float) Constant 1094713344 + 15: 6(float) Constant 1095761920 + 17: 6(float) Constant 1096810496 + 19: 6(float) Constant 1097859072 + 21: 6(float) Constant 1101004800 + 23: 6(float) Constant 1101529088 + 25: 6(float) Constant 1102053376 + 27: 6(float) Constant 1102577664 + 29: 6(float) Constant 1103101952 + 31: 6(float) Constant 1103626240 + 32: TypeVector 6(float) 2 + 33: TypePointer Function 32(fvec2) + 35: 32(fvec2) ConstantComposite 9 11 + 37: 32(fvec2) ConstantComposite 13 15 + 39: 32(fvec2) ConstantComposite 17 19 + 41: TypeMatrix 32(fvec2) 3 + 42: 32(fvec2) ConstantComposite 21 23 + 43: 32(fvec2) ConstantComposite 25 27 + 44: 32(fvec2) ConstantComposite 29 31 + 45: 41 ConstantComposite 42 43 44 + 46: TypeInt 32 1 + 47($Global): TypeStruct 46(int) 41 + 48: TypePointer Uniform 47($Global) + 49: 48(ptr) Variable Uniform + 50: 46(int) Constant 0 + 51: TypePointer Uniform 46(int) + 54: TypePointer Function 41 + 59: 46(int) Constant 1 + 62: TypePointer Uniform 32(fvec2) + 65: TypeVector 6(float) 4 + 66(PS_OUTPUT): TypeStruct 65(fvec4) + 67: TypePointer Function 66(PS_OUTPUT) + 71: TypePointer Function 65(fvec4) + 73: TypePointer Output 65(fvec4) + 74(Color): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(e1_00): 7(ptr) Variable Function + 10(e1_01): 7(ptr) Variable Function + 12(e1_10): 7(ptr) Variable Function + 14(e1_11): 7(ptr) Variable Function + 16(e1_20): 7(ptr) Variable Function + 18(e1_21): 7(ptr) Variable Function + 20(e2_00): 7(ptr) Variable Function + 22(e2_01): 7(ptr) Variable Function + 24(e2_10): 7(ptr) Variable Function + 26(e2_11): 7(ptr) Variable Function + 28(e2_20): 7(ptr) Variable Function + 30(e2_21): 7(ptr) Variable Function + 34(r0a): 33(ptr) Variable Function + 36(r1a): 33(ptr) Variable Function + 38(r2a): 33(ptr) Variable Function + 40(r0b): 33(ptr) Variable Function + 55(indexable): 54(ptr) Variable Function + 58(r0c): 33(ptr) Variable Function + 68(psout): 67(ptr) Variable Function + Store 8(e1_00) 9 + Store 10(e1_01) 11 + Store 12(e1_10) 13 + Store 14(e1_11) 15 + Store 16(e1_20) 17 + Store 18(e1_21) 19 + Store 20(e2_00) 21 + Store 22(e2_01) 23 + Store 24(e2_10) 25 + Store 26(e2_11) 27 + Store 28(e2_20) 29 + Store 30(e2_21) 31 + Store 34(r0a) 35 + Store 36(r1a) 37 + Store 38(r2a) 39 + 52: 51(ptr) AccessChain 49 50 + 53: 46(int) Load 52 + Store 55(indexable) 45 + 56: 33(ptr) AccessChain 55(indexable) 53 + 57: 32(fvec2) Load 56 + Store 40(r0b) 57 + 60: 51(ptr) AccessChain 49 50 + 61: 46(int) Load 60 + 63: 62(ptr) AccessChain 49 59 61 + 64: 32(fvec2) Load 63 + Store 58(r0c) 64 + 69: 6(float) Load 26(e2_11) + 70: 65(fvec4) CompositeConstruct 69 69 69 69 + 72: 71(ptr) AccessChain 68(psout) 50 + Store 72 70 + 75: 71(ptr) AccessChain 68(psout) 50 + 76: 65(fvec4) Load 75 + Store 74(Color) 76 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.max.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.max.frag.out new file mode 100755 index 0000000000..8995af35dc --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.max.frag.out @@ -0,0 +1,78 @@ +hlsl.max.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:2 'input2' (layout(location=1 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:3 max (temp 4-component vector of float) +0:3 'input1' (layout(location=0 ) in 4-component vector of float) +0:3 'input2' (layout(location=1 ) in 4-component vector of float) +0:3 Branch: Return +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: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:2 'input2' (layout(location=1 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:3 max (temp 4-component vector of float) +0:3 'input1' (layout(location=0 ) in 4-component vector of float) +0:3 'input2' (layout(location=1 ) in 4-component vector of float) +0:3 Branch: Return +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): 80001 +// Id's are bound by 17 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "@entryPointOutput" + Name 11 "input1" + Name 13 "input2" + Decorate 9(@entryPointOutput) Location 0 + Decorate 11(input1) Location 0 + Decorate 13(input2) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input1): 10(ptr) Variable Input + 13(input2): 10(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(input1) + 14: 7(fvec4) Load 13(input2) + 15: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 12 14 + Store 9(@entryPointOutput) 15 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.mintypes.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.mintypes.frag.out new file mode 100644 index 0000000000..84c7a8c894 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.mintypes.frag.out @@ -0,0 +1,224 @@ +hlsl.mintypes.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add (temp mediump 2-component vector of float) +0:40 'mf16_2' (temp mediump 2-component vector of float) +0:40 'mf16' (temp mediump float) +0:41 add (temp mediump 2-component vector of float) +0:41 'mf10_2' (temp mediump 2-component vector of float) +0:41 'mf10' (temp mediump float) +0:42 add (temp mediump 2-component vector of int) +0:42 'mi16_2' (temp mediump 2-component vector of int) +0:42 'mi16' (temp mediump int) +0:43 add (temp mediump 2-component vector of int) +0:43 'mi12_2' (temp mediump 2-component vector of int) +0:43 'mi12' (temp mediump int) +0:44 add (temp mediump 2-component vector of uint) +0:44 'mu16_2' (temp mediump 2-component vector of uint) +0:44 'mu16' (temp mediump uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add (temp mediump 2-component vector of float) +0:40 'mf16_2' (temp mediump 2-component vector of float) +0:40 'mf16' (temp mediump float) +0:41 add (temp mediump 2-component vector of float) +0:41 'mf10_2' (temp mediump 2-component vector of float) +0:41 'mf10' (temp mediump float) +0:42 add (temp mediump 2-component vector of int) +0:42 'mi16_2' (temp mediump 2-component vector of int) +0:42 'mi16' (temp mediump int) +0:43 add (temp mediump 2-component vector of int) +0:43 'mi12_2' (temp mediump 2-component vector of int) +0:43 'mi12' (temp mediump int) +0:44 add (temp mediump 2-component vector of uint) +0:44 'mu16_2' (temp mediump 2-component vector of uint) +0:44 'mu16' (temp mediump uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 58 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "mf16_2" + Name 12 "mf16" + Name 16 "mf10_2" + Name 18 "mf10" + Name 25 "mi16_2" + Name 28 "mi16" + Name 32 "mi12_2" + Name 34 "mi12" + Name 41 "mu16_2" + Name 44 "mu16" + Name 49 "PS_OUTPUT" + MemberName 49(PS_OUTPUT) 0 "Color" + Name 51 "psout" + Name 58 "Color" + Name 62 "$Global" + MemberName 62($Global) 0 "b1a" + MemberName 62($Global) 1 "b1b" + Name 64 "" + Decorate 9(mf16_2) RelaxedPrecision + Decorate 10 RelaxedPrecision + Decorate 12(mf16) RelaxedPrecision + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 15 RelaxedPrecision + Decorate 16(mf10_2) RelaxedPrecision + Decorate 17 RelaxedPrecision + Decorate 18(mf10) RelaxedPrecision + Decorate 19 RelaxedPrecision + Decorate 20 RelaxedPrecision + Decorate 21 RelaxedPrecision + Decorate 25(mi16_2) RelaxedPrecision + Decorate 26 RelaxedPrecision + Decorate 28(mi16) RelaxedPrecision + Decorate 29 RelaxedPrecision + Decorate 30 RelaxedPrecision + Decorate 31 RelaxedPrecision + Decorate 32(mi12_2) RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 34(mi12) RelaxedPrecision + Decorate 35 RelaxedPrecision + Decorate 36 RelaxedPrecision + Decorate 37 RelaxedPrecision + Decorate 41(mu16_2) RelaxedPrecision + Decorate 42 RelaxedPrecision + Decorate 44(mu16) RelaxedPrecision + Decorate 45 RelaxedPrecision + Decorate 46 RelaxedPrecision + Decorate 47 RelaxedPrecision + Decorate 58(Color) Location 0 + MemberDecorate 62($Global) 0 RelaxedPrecision + MemberDecorate 62($Global) 0 Offset 0 + MemberDecorate 62($Global) 1 RelaxedPrecision + MemberDecorate 62($Global) 1 Offset 4 + Decorate 62($Global) Block + Decorate 64 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 11: TypePointer Function 6(float) + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypePointer Function 23(ivec2) + 27: TypePointer Function 22(int) + 38: TypeInt 32 0 + 39: TypeVector 38(int) 2 + 40: TypePointer Function 39(ivec2) + 43: TypePointer Function 38(int) + 48: TypeVector 6(float) 4 + 49(PS_OUTPUT): TypeStruct 48(fvec4) + 50: TypePointer Function 49(PS_OUTPUT) + 52: 22(int) Constant 0 + 53: 6(float) Constant 0 + 54: 48(fvec4) ConstantComposite 53 53 53 53 + 55: TypePointer Function 48(fvec4) + 57: TypePointer Output 48(fvec4) + 58(Color): 57(ptr) Variable Output + 62($Global): TypeStruct 6(float) 6(float) + 63: TypePointer Uniform 62($Global) + 64: 63(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 9(mf16_2): 8(ptr) Variable Function + 12(mf16): 11(ptr) Variable Function + 16(mf10_2): 8(ptr) Variable Function + 18(mf10): 11(ptr) Variable Function + 25(mi16_2): 24(ptr) Variable Function + 28(mi16): 27(ptr) Variable Function + 32(mi12_2): 24(ptr) Variable Function + 34(mi12): 27(ptr) Variable Function + 41(mu16_2): 40(ptr) Variable Function + 44(mu16): 43(ptr) Variable Function + 51(psout): 50(ptr) Variable Function + 10: 7(fvec2) Load 9(mf16_2) + 13: 6(float) Load 12(mf16) + 14: 7(fvec2) CompositeConstruct 13 13 + 15: 7(fvec2) FAdd 10 14 + 17: 7(fvec2) Load 16(mf10_2) + 19: 6(float) Load 18(mf10) + 20: 7(fvec2) CompositeConstruct 19 19 + 21: 7(fvec2) FAdd 17 20 + 26: 23(ivec2) Load 25(mi16_2) + 29: 22(int) Load 28(mi16) + 30: 23(ivec2) CompositeConstruct 29 29 + 31: 23(ivec2) IAdd 26 30 + 33: 23(ivec2) Load 32(mi12_2) + 35: 22(int) Load 34(mi12) + 36: 23(ivec2) CompositeConstruct 35 35 + 37: 23(ivec2) IAdd 33 36 + 42: 39(ivec2) Load 41(mu16_2) + 45: 38(int) Load 44(mu16) + 46: 39(ivec2) CompositeConstruct 45 45 + 47: 39(ivec2) IAdd 42 46 + 56: 55(ptr) AccessChain 51(psout) 52 + Store 56 54 + 59: 55(ptr) AccessChain 51(psout) 52 + 60: 48(fvec4) Load 59 + Store 58(Color) 60 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.multiEntry.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.multiEntry.vert.out new file mode 100755 index 0000000000..f0d05abd8f --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.multiEntry.vert.out @@ -0,0 +1,111 @@ +hlsl.multiEntry.vert +Shader version: 450 +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 samplerBuffer) +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 Position) +0:9 Function Parameters: +0:9 'Index' (in uint VertexIndex) +0:? Sequence +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) +0:10 'Index' (in uint VertexIndex) +0:10 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'Index' (in uint VertexIndex) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) + + +Linked vertex stage: + + +Shader version: 450 +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 samplerBuffer) +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 Position) +0:9 Function Parameters: +0:9 'Index' (in uint VertexIndex) +0:? Sequence +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) +0:10 'Index' (in uint VertexIndex) +0:10 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'Index' (in uint VertexIndex) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 34 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "RealEntrypoint" 27 29 + Name 4 "RealEntrypoint" + Name 12 "FakeEntrypoint(u1;" + Name 11 "Index" + Name 17 "Position" + Name 27 "@entryPointOutput" + Name 29 "Index" + Name 30 "param" + Decorate 17(Position) DescriptorSet 0 + Decorate 27(@entryPointOutput) BuiltIn Position + Decorate 29(Index) BuiltIn VertexIndex + 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: TypeImage 8(float) Buffer sampled format:Rgba32f + 15: TypeSampledImage 14 + 16: TypePointer UniformConstant 15 + 17(Position): 16(ptr) Variable UniformConstant + 20: TypeInt 32 1 + 26: TypePointer Output 9(fvec4) +27(@entryPointOutput): 26(ptr) Variable Output + 28: TypePointer Input 6(int) + 29(Index): 28(ptr) Variable Input +4(RealEntrypoint): 2 Function None 3 + 5: Label + 30(param): 7(ptr) Variable Function + 31: 6(int) Load 29(Index) + Store 30(param) 31 + 32: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 30(param) + Store 27(@entryPointOutput) 32 + Return + FunctionEnd +12(FakeEntrypoint(u1;): 9(fvec4) Function None 10 + 11(Index): 7(ptr) FunctionParameter + 13: Label + 18: 15 Load 17(Position) + 19: 6(int) Load 11(Index) + 21: 20(int) Bitcast 19 + 22: 14 Image 18 + 23: 9(fvec4) ImageFetch 22 21 + ReturnValue 23 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.multiReturn.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.multiReturn.frag.out new file mode 100755 index 0000000000..80d7f1661b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.multiReturn.frag.out @@ -0,0 +1,113 @@ +hlsl.multiReturn.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: main( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: main( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "S" + MemberName 9(S) 0 "f" + MemberName 9(S) 1 "v" + MemberName 9(S) 2 "m" + Name 11 "foo(" + Name 13 "S" + MemberName 13(S) 0 "f" + MemberName 13(S) 1 "v" + MemberName 13(S) 2 "m" + Name 14 "bufName" + MemberName 14(bufName) 0 "s" + Name 16 "" + MemberDecorate 13(S) 0 Offset 0 + MemberDecorate 13(S) 1 Offset 16 + MemberDecorate 13(S) 2 RowMajor + MemberDecorate 13(S) 2 Offset 32 + MemberDecorate 13(S) 2 MatrixStride 16 + MemberDecorate 14(bufName) 0 Offset 0 + Decorate 14(bufName) Block + Decorate 16 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeMatrix 7(fvec3) 3 + 9(S): TypeStruct 6(float) 7(fvec3) 8 + 10: TypeFunction 9(S) + 13(S): TypeStruct 6(float) 7(fvec3) 8 + 14(bufName): TypeStruct 13(S) + 15: TypePointer Uniform 14(bufName) + 16: 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 13(S) + 22: TypePointer Function 9(S) + 25: TypePointer Function 6(float) + 28: 17(int) Constant 1 + 29: TypePointer Function 7(fvec3) + 32: 17(int) Constant 2 + 33: TypePointer Function 8 + 4(main): 2 Function None 3 + 5: Label + 38: 9(S) FunctionCall 11(foo() + Return + FunctionEnd + 11(foo(): 9(S) Function None 10 + 12: Label + 23: 22(ptr) Variable Function + 20: 19(ptr) AccessChain 16 18 + 21: 13(S) Load 20 + 24: 6(float) CompositeExtract 21 0 + 26: 25(ptr) AccessChain 23 18 + Store 26 24 + 27: 7(fvec3) CompositeExtract 21 1 + 30: 29(ptr) AccessChain 23 28 + Store 30 27 + 31: 8 CompositeExtract 21 2 + 34: 33(ptr) AccessChain 23 32 + Store 34 31 + 35: 9(S) Load 23 + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.numericsuffixes.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.numericsuffixes.frag.out new file mode 100644 index 0000000000..e8d3630ed2 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -0,0 +1,225 @@ +hlsl.numericsuffixes.frag +Shader version: 450 +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: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 'ps_output' (temp structure{temp 4-component vector of float color}) +0:18 Constant: +0:18 0 (const int) +0:18 Construct vec4 (temp 4-component vector of float) +0:18 Convert int to float (temp float) +0:18 'r07' (temp int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:19 color: direct index for structure (temp 4-component vector of float) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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: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 'ps_output' (temp structure{temp 4-component vector of float color}) +0:18 Constant: +0:18 0 (const int) +0:18 Construct vec4 (temp 4-component vector of float) +0:18 Convert int to float (temp float) +0:18 'r07' (temp int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:19 color: direct index for structure (temp 4-component vector of float) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 40 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 12 "r01" + Name 14 "r02" + Name 16 "r03" + Name 18 "r04" + Name 21 "r05" + Name 23 "r06" + Name 25 "r07" + Name 27 "r08" + Name 30 "PS_OUTPUT" + MemberName 30(PS_OUTPUT) 0 "color" + Name 32 "ps_output" + Name 40 "color" + Decorate 40(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1065353216 + 10: TypeInt 32 0 + 11: TypePointer Function 10(int) + 13: 10(int) Constant 1 + 15: 10(int) Constant 2 + 17: 10(int) Constant 2748 + 19: TypeInt 32 1 + 20: TypePointer Function 19(int) + 22: 19(int) Constant 5 + 24: 19(int) Constant 6 + 26: 19(int) Constant 57 + 28: 10(int) Constant 58 + 29: TypeVector 6(float) 4 + 30(PS_OUTPUT): TypeStruct 29(fvec4) + 31: TypePointer Function 30(PS_OUTPUT) + 33: 19(int) Constant 0 + 37: TypePointer Function 29(fvec4) + 39: TypePointer Output 29(fvec4) + 40(color): 39(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 12(r01): 11(ptr) Variable Function + 14(r02): 11(ptr) Variable Function + 16(r03): 11(ptr) Variable Function + 18(r04): 11(ptr) Variable Function + 21(r05): 20(ptr) Variable Function + 23(r06): 20(ptr) Variable Function + 25(r07): 20(ptr) Variable Function + 27(r08): 11(ptr) Variable Function + 32(ps_output): 31(ptr) Variable Function + Store 8(r00) 9 + Store 12(r01) 13 + Store 14(r02) 15 + Store 16(r03) 17 + Store 18(r04) 17 + Store 21(r05) 22 + Store 23(r06) 24 + Store 25(r07) 26 + Store 27(r08) 28 + 34: 19(int) Load 25(r07) + 35: 6(float) ConvertSToF 34 + 36: 29(fvec4) CompositeConstruct 35 35 35 35 + 38: 37(ptr) AccessChain 32(ps_output) 33 + Store 38 36 + 41: 37(ptr) AccessChain 32(ps_output) 33 + 42: 29(fvec4) Load 41 + Store 40(color) 42 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.numthreads.comp.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.numthreads.comp.out new file mode 100644 index 0000000000..76e95c8f86 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.numthreads.comp.out @@ -0,0 +1,60 @@ +hlsl.numthreads.comp +Shader version: 450 +local_size = (4, 4, 2) +0:? Sequence +0:4 Function Definition: main(vu3; (temp void) +0:4 Function Parameters: +0:4 'tid' (in 3-component vector of uint) +0:9 Function Definition: main_aux1(vu3; (temp void) +0:9 Function Parameters: +0:9 'tid' (in 3-component vector of uint LocalInvocationID) +0:? Linker Objects +0:? 'tid' (in 3-component vector of uint LocalInvocationID) + + +Linked compute stage: + + +Shader version: 450 +local_size = (4, 4, 2) +0:? Sequence +0:4 Function Definition: main(vu3; (temp void) +0:4 Function Parameters: +0:4 'tid' (in 3-component vector of uint) +0:9 Function Definition: main_aux1(vu3; (temp void) +0:9 Function Parameters: +0:9 'tid' (in 3-component vector of uint LocalInvocationID) +0:? Linker Objects +0:? 'tid' (in 3-component vector of uint LocalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 15 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main_aux1" 14 + ExecutionMode 4 LocalSize 4 4 2 + Name 4 "main_aux1" + Name 11 "main(vu3;" + Name 10 "tid" + Name 14 "tid" + Decorate 14(tid) BuiltIn LocalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypePointer Input 7(ivec3) + 14(tid): 13(ptr) Variable Input + 4(main_aux1): 2 Function None 3 + 5: Label + Return + FunctionEnd + 11(main(vu3;): 2 Function None 9 + 10(tid): 8(ptr) FunctionParameter + 12: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.overload.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.overload.frag.out new file mode 100755 index 0000000000..4eed1a3fc5 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.overload.frag.out @@ -0,0 +1,1592 @@ +hlsl.overload.frag +Shader version: 450 +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' (layout(location=0 ) 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 Sequence +0:141 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:141 'input' (layout(location=0 ) in 4-component vector of float) +0:141 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) 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 Sequence +0:141 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:141 'input' (layout(location=0 ) in 4-component vector of float) +0:141 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 509 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 504 506 + ExecutionMode 4 OriginUpperLeft + 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 149 "d" + Name 150 "b" + Name 151 "param" + Name 153 "param" + Name 156 "param" + Name 158 "param" + Name 161 "u" + Name 162 "param" + Name 164 "param" + Name 167 "i" + Name 168 "param" + Name 170 "param" + Name 173 "f" + Name 174 "param" + Name 176 "param" + Name 181 "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 299 "param" + Name 301 "param" + Name 304 "param" + Name 306 "param" + Name 309 "param" + Name 311 "param" + Name 314 "param" + Name 316 "param" + Name 319 "param" + Name 321 "param" + Name 324 "param" + Name 330 "param" + Name 335 "param" + Name 339 "param" + Name 344 "param" + Name 349 "param" + Name 353 "param" + Name 355 "param" + Name 360 "param" + Name 364 "param" + Name 370 "param" + Name 374 "param" + Name 378 "param" + Name 380 "param" + Name 385 "param" + Name 390 "param" + Name 394 "param" + Name 398 "param" + Name 402 "param" + Name 404 "param" + Name 410 "param" + Name 412 "param" + Name 417 "param" + Name 421 "param" + Name 425 "param" + Name 429 "param" + Name 433 "param" + Name 437 "param" + Name 441 "param" + Name 445 "param" + Name 449 "param" + Name 453 "param" + Name 457 "param" + Name 461 "param" + Name 465 "param" + Name 469 "param" + Name 474 "param" + Name 481 "param" + Name 485 "param" + Name 491 "param" + Name 494 "param" + Name 500 "param" + Name 504 "@entryPointOutput" + Name 506 "input" + Decorate 504(@entryPointOutput) Location 0 + Decorate 506(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 64 + 7: TypePointer Function 6(float) + 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(float) 3 + 126: TypePointer Function 125(fvec3) + 127: TypeFunction 2 126(ptr) + 134: TypeVector 15(int) 2 + 135: TypePointer Function 134(ivec2) + 136: TypeFunction 2 135(ptr) + 328: 6(float) Constant 0 0 + 333: 15(int) Constant 0 + 342: 29(float) Constant 0 + 347: 15(int) Constant 1 + 367: 22(int) Constant 0 + 368: 22(int) Constant 1 + 388: 29(float) Constant 1065353216 + 408: 6(float) Constant 0 1072693248 + 478: TypeVector 22(int) 2 + 488: TypeVector 22(int) 4 + 497: TypeVector 8(bool) 3 + 502: TypeVector 29(float) 4 + 503: TypePointer Output 502(fvec4) +504(@entryPointOutput): 503(ptr) Variable Output + 505: TypePointer Input 502(fvec4) + 506(input): 505(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 149(d): 7(ptr) Variable Function + 150(b): 9(ptr) Variable Function + 151(param): 7(ptr) Variable Function + 153(param): 9(ptr) Variable Function + 156(param): 7(ptr) Variable Function + 158(param): 7(ptr) Variable Function + 161(u): 16(ptr) Variable Function + 162(param): 7(ptr) Variable Function + 164(param): 16(ptr) Variable Function + 167(i): 23(ptr) Variable Function + 168(param): 7(ptr) Variable Function + 170(param): 23(ptr) Variable Function + 173(f): 30(ptr) Variable Function + 174(param): 7(ptr) Variable Function + 176(param): 30(ptr) Variable Function + 181(param): 7(ptr) Variable Function + 182(param): 9(ptr) Variable Function + 187(param): 7(ptr) Variable Function + 188(param): 7(ptr) Variable Function + 193(param): 7(ptr) Variable Function + 194(param): 16(ptr) Variable Function + 199(param): 7(ptr) Variable Function + 200(param): 23(ptr) Variable Function + 205(param): 7(ptr) Variable Function + 206(param): 30(ptr) Variable Function + 211(param): 7(ptr) Variable Function + 212(param): 9(ptr) Variable Function + 217(param): 7(ptr) Variable Function + 218(param): 7(ptr) Variable Function + 223(param): 7(ptr) Variable Function + 224(param): 16(ptr) Variable Function + 229(param): 7(ptr) Variable Function + 230(param): 23(ptr) Variable Function + 235(param): 7(ptr) Variable Function + 236(param): 30(ptr) Variable Function + 241(param): 7(ptr) Variable Function + 242(param): 9(ptr) Variable Function + 247(param): 7(ptr) Variable Function + 248(param): 7(ptr) Variable Function + 253(param): 7(ptr) Variable Function + 254(param): 16(ptr) Variable Function + 259(param): 7(ptr) Variable Function + 260(param): 23(ptr) Variable Function + 265(param): 7(ptr) Variable Function + 266(param): 30(ptr) Variable Function + 271(param): 23(ptr) Variable Function + 272(param): 9(ptr) Variable Function + 277(param): 23(ptr) Variable Function + 278(param): 7(ptr) Variable Function + 283(param): 23(ptr) Variable Function + 284(param): 16(ptr) Variable Function + 289(param): 23(ptr) Variable Function + 290(param): 23(ptr) Variable Function + 295(param): 23(ptr) Variable Function + 296(param): 30(ptr) Variable Function + 299(param): 23(ptr) Variable Function + 301(param): 9(ptr) Variable Function + 304(param): 23(ptr) Variable Function + 306(param): 7(ptr) Variable Function + 309(param): 23(ptr) Variable Function + 311(param): 16(ptr) Variable Function + 314(param): 23(ptr) Variable Function + 316(param): 23(ptr) Variable Function + 319(param): 23(ptr) Variable Function + 321(param): 30(ptr) Variable Function + 324(param): 9(ptr) Variable Function + 330(param): 9(ptr) Variable Function + 335(param): 9(ptr) Variable Function + 339(param): 9(ptr) Variable Function + 344(param): 9(ptr) Variable Function + 349(param): 16(ptr) Variable Function + 353(param): 16(ptr) Variable Function + 355(param): 16(ptr) Variable Function + 360(param): 16(ptr) Variable Function + 364(param): 16(ptr) Variable Function + 370(param): 23(ptr) Variable Function + 374(param): 23(ptr) Variable Function + 378(param): 23(ptr) Variable Function + 380(param): 23(ptr) Variable Function + 385(param): 23(ptr) Variable Function + 390(param): 30(ptr) Variable Function + 394(param): 30(ptr) Variable Function + 398(param): 30(ptr) Variable Function + 402(param): 30(ptr) Variable Function + 404(param): 30(ptr) Variable Function + 410(param): 7(ptr) Variable Function + 412(param): 7(ptr) Variable Function + 417(param): 7(ptr) Variable Function + 421(param): 7(ptr) Variable Function + 425(param): 7(ptr) Variable Function + 429(param): 30(ptr) Variable Function + 433(param): 30(ptr) Variable Function + 437(param): 30(ptr) Variable Function + 441(param): 23(ptr) Variable Function + 445(param): 16(ptr) Variable Function + 449(param): 16(ptr) Variable Function + 453(param): 23(ptr) Variable Function + 457(param): 23(ptr) Variable Function + 461(param): 23(ptr) Variable Function + 465(param): 16(ptr) Variable Function + 469(param): 7(ptr) Variable Function + 474(param): 126(ptr) Variable Function + 481(param): 135(ptr) Variable Function + 485(param): 105(ptr) Variable Function + 491(param): 23(ptr) Variable Function + 494(param): 9(ptr) Variable Function + 500(param): 9(ptr) Variable Function + 152: 6(float) Load 149(d) + Store 151(param) 152 + 154: 8(bool) Load 150(b) + Store 153(param) 154 + 155: 2 FunctionCall 13(foo1(d1;b1;) 151(param) 153(param) + 157: 6(float) Load 149(d) + Store 156(param) 157 + 159: 6(float) Load 149(d) + Store 158(param) 159 + 160: 2 FunctionCall 39(foo1(d1;d1;) 156(param) 158(param) + 163: 6(float) Load 149(d) + Store 162(param) 163 + 165: 15(int) Load 161(u) + Store 164(param) 165 + 166: 2 FunctionCall 20(foo1(d1;u1;) 162(param) 164(param) + 169: 6(float) Load 149(d) + Store 168(param) 169 + 171: 22(int) Load 167(i) + Store 170(param) 171 + 172: 2 FunctionCall 27(foo1(d1;i1;) 168(param) 170(param) + 175: 6(float) Load 149(d) + Store 174(param) 175 + 177: 29(float) Load 173(f) + Store 176(param) 177 + 178: 2 FunctionCall 34(foo1(d1;f1;) 174(param) 176(param) + 179: 29(float) Load 173(f) + 180: 6(float) FConvert 179 + Store 181(param) 180 + 183: 8(bool) Load 150(b) + Store 182(param) 183 + 184: 2 FunctionCall 13(foo1(d1;b1;) 181(param) 182(param) + 185: 29(float) Load 173(f) + 186: 6(float) FConvert 185 + Store 187(param) 186 + 189: 6(float) Load 149(d) + Store 188(param) 189 + 190: 2 FunctionCall 39(foo1(d1;d1;) 187(param) 188(param) + 191: 29(float) Load 173(f) + 192: 6(float) FConvert 191 + Store 193(param) 192 + 195: 15(int) Load 161(u) + Store 194(param) 195 + 196: 2 FunctionCall 20(foo1(d1;u1;) 193(param) 194(param) + 197: 29(float) Load 173(f) + 198: 6(float) FConvert 197 + Store 199(param) 198 + 201: 22(int) Load 167(i) + Store 200(param) 201 + 202: 2 FunctionCall 27(foo1(d1;i1;) 199(param) 200(param) + 203: 29(float) Load 173(f) + 204: 6(float) FConvert 203 + Store 205(param) 204 + 207: 29(float) Load 173(f) + Store 206(param) 207 + 208: 2 FunctionCall 34(foo1(d1;f1;) 205(param) 206(param) + 209: 15(int) Load 161(u) + 210: 6(float) ConvertUToF 209 + Store 211(param) 210 + 213: 8(bool) Load 150(b) + Store 212(param) 213 + 214: 2 FunctionCall 13(foo1(d1;b1;) 211(param) 212(param) + 215: 15(int) Load 161(u) + 216: 6(float) ConvertUToF 215 + Store 217(param) 216 + 219: 6(float) Load 149(d) + Store 218(param) 219 + 220: 2 FunctionCall 39(foo1(d1;d1;) 217(param) 218(param) + 221: 15(int) Load 161(u) + 222: 6(float) ConvertUToF 221 + Store 223(param) 222 + 225: 15(int) Load 161(u) + Store 224(param) 225 + 226: 2 FunctionCall 20(foo1(d1;u1;) 223(param) 224(param) + 227: 15(int) Load 161(u) + 228: 6(float) ConvertUToF 227 + Store 229(param) 228 + 231: 22(int) Load 167(i) + Store 230(param) 231 + 232: 2 FunctionCall 27(foo1(d1;i1;) 229(param) 230(param) + 233: 15(int) Load 161(u) + 234: 6(float) ConvertUToF 233 + Store 235(param) 234 + 237: 29(float) Load 173(f) + Store 236(param) 237 + 238: 2 FunctionCall 34(foo1(d1;f1;) 235(param) 236(param) + 239: 22(int) Load 167(i) + 240: 6(float) ConvertSToF 239 + Store 241(param) 240 + 243: 8(bool) Load 150(b) + Store 242(param) 243 + 244: 2 FunctionCall 13(foo1(d1;b1;) 241(param) 242(param) + 245: 22(int) Load 167(i) + 246: 6(float) ConvertSToF 245 + Store 247(param) 246 + 249: 6(float) Load 149(d) + Store 248(param) 249 + 250: 2 FunctionCall 39(foo1(d1;d1;) 247(param) 248(param) + 251: 22(int) Load 167(i) + 252: 6(float) ConvertSToF 251 + Store 253(param) 252 + 255: 15(int) Load 161(u) + Store 254(param) 255 + 256: 2 FunctionCall 20(foo1(d1;u1;) 253(param) 254(param) + 257: 22(int) Load 167(i) + 258: 6(float) ConvertSToF 257 + Store 259(param) 258 + 261: 22(int) Load 167(i) + Store 260(param) 261 + 262: 2 FunctionCall 27(foo1(d1;i1;) 259(param) 260(param) + 263: 22(int) Load 167(i) + 264: 6(float) ConvertSToF 263 + Store 265(param) 264 + 267: 29(float) Load 173(f) + Store 266(param) 267 + 268: 2 FunctionCall 34(foo1(d1;f1;) 265(param) 266(param) + 269: 15(int) Load 161(u) + 270: 22(int) Bitcast 269 + Store 271(param) 270 + 273: 8(bool) Load 150(b) + Store 272(param) 273 + 274: 2 FunctionCall 44(foo2(i1;b1;) 271(param) 272(param) + 275: 15(int) Load 161(u) + 276: 22(int) Bitcast 275 + Store 277(param) 276 + 279: 6(float) Load 149(d) + Store 278(param) 279 + 280: 2 FunctionCall 64(foo2(i1;d1;) 277(param) 278(param) + 281: 15(int) Load 161(u) + 282: 22(int) Bitcast 281 + Store 283(param) 282 + 285: 15(int) Load 161(u) + Store 284(param) 285 + 286: 2 FunctionCall 49(foo2(i1;u1;) 283(param) 284(param) + 287: 15(int) Load 161(u) + 288: 22(int) Bitcast 287 + Store 289(param) 288 + 291: 22(int) Load 167(i) + Store 290(param) 291 + 292: 2 FunctionCall 54(foo2(i1;i1;) 289(param) 290(param) + 293: 15(int) Load 161(u) + 294: 22(int) Bitcast 293 + Store 295(param) 294 + 297: 29(float) Load 173(f) + Store 296(param) 297 + 298: 2 FunctionCall 59(foo2(i1;f1;) 295(param) 296(param) + 300: 22(int) Load 167(i) + Store 299(param) 300 + 302: 8(bool) Load 150(b) + Store 301(param) 302 + 303: 2 FunctionCall 44(foo2(i1;b1;) 299(param) 301(param) + 305: 22(int) Load 167(i) + Store 304(param) 305 + 307: 6(float) Load 149(d) + Store 306(param) 307 + 308: 2 FunctionCall 64(foo2(i1;d1;) 304(param) 306(param) + 310: 22(int) Load 167(i) + Store 309(param) 310 + 312: 15(int) Load 161(u) + Store 311(param) 312 + 313: 2 FunctionCall 49(foo2(i1;u1;) 309(param) 311(param) + 315: 22(int) Load 167(i) + Store 314(param) 315 + 317: 22(int) Load 167(i) + Store 316(param) 317 + 318: 2 FunctionCall 54(foo2(i1;i1;) 314(param) 316(param) + 320: 22(int) Load 167(i) + Store 319(param) 320 + 322: 29(float) Load 173(f) + Store 321(param) 322 + 323: 2 FunctionCall 59(foo2(i1;f1;) 319(param) 321(param) + 325: 8(bool) Load 150(b) + Store 324(param) 325 + 326: 2 FunctionCall 68(foo3(b1;) 324(param) + 327: 6(float) Load 149(d) + 329: 8(bool) FOrdNotEqual 327 328 + Store 330(param) 329 + 331: 2 FunctionCall 68(foo3(b1;) 330(param) + 332: 15(int) Load 161(u) + 334: 8(bool) INotEqual 332 333 + Store 335(param) 334 + 336: 2 FunctionCall 68(foo3(b1;) 335(param) + 337: 22(int) Load 167(i) + 338: 8(bool) INotEqual 337 333 + Store 339(param) 338 + 340: 2 FunctionCall 68(foo3(b1;) 339(param) + 341: 29(float) Load 173(f) + 343: 8(bool) FOrdNotEqual 341 342 + Store 344(param) 343 + 345: 2 FunctionCall 68(foo3(b1;) 344(param) + 346: 8(bool) Load 150(b) + 348: 15(int) Select 346 347 333 + Store 349(param) 348 + 350: 2 FunctionCall 72(foo4(u1;) 349(param) + 351: 6(float) Load 149(d) + 352: 15(int) ConvertFToU 351 + Store 353(param) 352 + 354: 2 FunctionCall 72(foo4(u1;) 353(param) + 356: 15(int) Load 161(u) + Store 355(param) 356 + 357: 2 FunctionCall 72(foo4(u1;) 355(param) + 358: 22(int) Load 167(i) + 359: 15(int) Bitcast 358 + Store 360(param) 359 + 361: 2 FunctionCall 72(foo4(u1;) 360(param) + 362: 29(float) Load 173(f) + 363: 15(int) ConvertFToU 362 + Store 364(param) 363 + 365: 2 FunctionCall 72(foo4(u1;) 364(param) + 366: 8(bool) Load 150(b) + 369: 22(int) Select 366 368 367 + Store 370(param) 369 + 371: 2 FunctionCall 76(foo5(i1;) 370(param) + 372: 6(float) Load 149(d) + 373: 22(int) ConvertFToS 372 + Store 374(param) 373 + 375: 2 FunctionCall 76(foo5(i1;) 374(param) + 376: 15(int) Load 161(u) + 377: 22(int) Bitcast 376 + Store 378(param) 377 + 379: 2 FunctionCall 76(foo5(i1;) 378(param) + 381: 22(int) Load 167(i) + Store 380(param) 381 + 382: 2 FunctionCall 76(foo5(i1;) 380(param) + 383: 29(float) Load 173(f) + 384: 22(int) ConvertFToS 383 + Store 385(param) 384 + 386: 2 FunctionCall 76(foo5(i1;) 385(param) + 387: 8(bool) Load 150(b) + 389: 29(float) Select 387 388 342 + Store 390(param) 389 + 391: 2 FunctionCall 80(foo6(f1;) 390(param) + 392: 6(float) Load 149(d) + 393: 29(float) FConvert 392 + Store 394(param) 393 + 395: 2 FunctionCall 80(foo6(f1;) 394(param) + 396: 15(int) Load 161(u) + 397: 29(float) ConvertUToF 396 + Store 398(param) 397 + 399: 2 FunctionCall 80(foo6(f1;) 398(param) + 400: 22(int) Load 167(i) + 401: 29(float) ConvertSToF 400 + Store 402(param) 401 + 403: 2 FunctionCall 80(foo6(f1;) 402(param) + 405: 29(float) Load 173(f) + Store 404(param) 405 + 406: 2 FunctionCall 80(foo6(f1;) 404(param) + 407: 8(bool) Load 150(b) + 409: 6(float) Select 407 408 328 + Store 410(param) 409 + 411: 2 FunctionCall 84(foo7(d1;) 410(param) + 413: 6(float) Load 149(d) + Store 412(param) 413 + 414: 2 FunctionCall 84(foo7(d1;) 412(param) + 415: 15(int) Load 161(u) + 416: 6(float) ConvertUToF 415 + Store 417(param) 416 + 418: 2 FunctionCall 84(foo7(d1;) 417(param) + 419: 22(int) Load 167(i) + 420: 6(float) ConvertSToF 419 + Store 421(param) 420 + 422: 2 FunctionCall 84(foo7(d1;) 421(param) + 423: 29(float) Load 173(f) + 424: 6(float) FConvert 423 + Store 425(param) 424 + 426: 2 FunctionCall 84(foo7(d1;) 425(param) + 427: 8(bool) Load 150(b) + 428: 29(float) Select 427 388 342 + Store 429(param) 428 + 430: 2 FunctionCall 87(foo8(f1;) 429(param) + 431: 15(int) Load 161(u) + 432: 29(float) ConvertUToF 431 + Store 433(param) 432 + 434: 2 FunctionCall 87(foo8(f1;) 433(param) + 435: 22(int) Load 167(i) + 436: 29(float) ConvertSToF 435 + Store 437(param) 436 + 438: 2 FunctionCall 87(foo8(f1;) 437(param) + 439: 8(bool) Load 150(b) + 440: 22(int) Select 439 368 367 + Store 441(param) 440 + 442: 2 FunctionCall 93(foo9(i1;) 441(param) + 443: 29(float) Load 173(f) + 444: 15(int) ConvertFToU 443 + Store 445(param) 444 + 446: 2 FunctionCall 96(foo9(u1;) 445(param) + 447: 6(float) Load 149(d) + 448: 15(int) ConvertFToU 447 + Store 449(param) 448 + 450: 2 FunctionCall 96(foo9(u1;) 449(param) + 451: 15(int) Load 161(u) + 452: 22(int) Bitcast 451 + Store 453(param) 452 + 454: 2 FunctionCall 102(foo10(i1;) 453(param) + 455: 29(float) Load 173(f) + 456: 22(int) ConvertFToS 455 + Store 457(param) 456 + 458: 2 FunctionCall 102(foo10(i1;) 457(param) + 459: 6(float) Load 149(d) + 460: 22(int) ConvertFToS 459 + Store 461(param) 460 + 462: 2 FunctionCall 102(foo10(i1;) 461(param) + 463: 8(bool) Load 150(b) + 464: 15(int) Select 463 347 333 + Store 465(param) 464 + 466: 2 FunctionCall 120(foo11(u1;) 465(param) + 467: 29(float) Load 173(f) + 468: 6(float) FConvert 467 + Store 469(param) 468 + 470: 2 FunctionCall 111(foo11(d1;) 469(param) + 471: 29(float) Load 173(f) + 472: 104(fvec3) CompositeConstruct 471 471 471 + 473: 125(fvec3) FConvert 472 + Store 474(param) 473 + 475: 2 FunctionCall 129(foo12(vd3;) 474(param) + 476: 22(int) Load 167(i) + 477: 22(int) Load 167(i) + 479: 478(ivec2) CompositeConstruct 476 477 + 480: 134(ivec2) Bitcast 479 + Store 481(param) 480 + 482: 2 FunctionCall 138(foo16(vu2;) 481(param) + 483: 29(float) Load 173(f) + 484: 104(fvec3) CompositeConstruct 483 483 483 + Store 485(param) 484 + 486: 2 FunctionCall 141(foo13(vf3;) 485(param) + 487: 22(int) Load 167(i) + 489: 488(ivec4) CompositeConstruct 487 487 487 487 + 490: 22(int) CompositeExtract 489 0 + Store 491(param) 490 + 492: 2 FunctionCall 144(foo14(vi1;) 491(param) + 493: 8(bool) Load 150(b) + Store 494(param) 493 + 495: 2 FunctionCall 147(foo15(vb1;) 494(param) + 496: 8(bool) Load 150(b) + 498: 497(bvec3) CompositeConstruct 496 496 496 + 499: 8(bool) CompositeExtract 498 0 + Store 500(param) 499 + 501: 2 FunctionCall 147(foo15(vb1;) 500(param) + 507: 502(fvec4) Load 506(input) + Store 504(@entryPointOutput) 507 + 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 diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.partialInit.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.partialInit.frag.out new file mode 100755 index 0000000000..5bf838a4a5 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.partialInit.frag.out @@ -0,0 +1,418 @@ +hlsl.partialInit.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'gv' (global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child (temp 3-element array of float) +0:9 'gfa' (global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:19 Sequence +0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child (temp 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale (temp 4-component vector of float) +0:21 'gv' (global 4-component vector of float) +0:21 direct index (temp float) +0:21 'gfa' (global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child (temp bool) +0:25 c: direct index for structure (temp bool) +0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure (temp bool) +0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 Sequence +0:28 move second child to first child (temp int) +0:? 'a' (layout(location=0 ) out int) +0:28 a: direct index for structure (temp int) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child (temp float) +0:? 'b' (layout(location=1 ) out float) +0:28 b: direct index for structure (temp float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 1 (const int) +0:28 move second child to first child (temp bool) +0:? 'c' (layout(location=2 ) out bool) +0:28 c: direct index for structure (temp bool) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 2 (const int) +0:28 move second child to first child (temp 4-component vector of float) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:28 v: direct index for structure (temp 4-component vector of float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 3 (const int) +0:28 Branch: Return +0:? Linker Objects +0:? 'a' (layout(location=0 ) out int) +0:? 'b' (layout(location=1 ) out float) +0:? 'c' (layout(location=2 ) out bool) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'gv' (global 4-component vector of float) +0:? 'gfa' (global 3-element array of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'gv' (global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child (temp 3-element array of float) +0:9 'gfa' (global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:19 Sequence +0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child (temp 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale (temp 4-component vector of float) +0:21 'gv' (global 4-component vector of float) +0:21 direct index (temp float) +0:21 'gfa' (global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child (temp bool) +0:25 c: direct index for structure (temp bool) +0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure (temp bool) +0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 Sequence +0:28 move second child to first child (temp int) +0:? 'a' (layout(location=0 ) out int) +0:28 a: direct index for structure (temp int) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child (temp float) +0:? 'b' (layout(location=1 ) out float) +0:28 b: direct index for structure (temp float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 1 (const int) +0:28 move second child to first child (temp bool) +0:? 'c' (layout(location=2 ) out bool) +0:28 c: direct index for structure (temp bool) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 2 (const int) +0:28 move second child to first child (temp 4-component vector of float) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:28 v: direct index for structure (temp 4-component vector of float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 3 (const int) +0:28 Branch: Return +0:? Linker Objects +0:? 'a' (layout(location=0 ) out int) +0:? 'b' (layout(location=1 ) out float) +0:? 'c' (layout(location=2 ) out bool) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'gv' (global 4-component vector of float) +0:? 'gfa' (global 3-element array of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 75 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 54 59 65 69 74 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "gv" + Name 17 "gfa" + Name 21 "outs" + MemberName 21(outs) 0 "a" + MemberName 21(outs) 1 "b" + MemberName 21(outs) 2 "c" + MemberName 21(outs) 3 "v" + Name 23 "o2" + Name 28 "o4" + Name 37 "o1" + Name 40 "o3" + Name 47 "Nest" + MemberName 47(Nest) 0 "m" + MemberName 47(Nest) 1 "os" + MemberName 47(Nest) 2 "b" + Name 49 "nest" + Name 54 "a" + Name 59 "b" + Name 65 "c" + Name 69 "v" + Name 74 "input" + Decorate 54(a) Location 0 + Decorate 59(b) Location 1 + Decorate 65(c) Location 2 + Decorate 69(v) Location 3 + Decorate 74(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Private 7(fvec4) + 9(gv): 8(ptr) Variable Private + 10: 6(float) Constant 0 + 11: 6(float) Constant 1065353216 + 12: 7(fvec4) ConstantComposite 10 10 11 10 + 13: TypeInt 32 0 + 14: 13(int) Constant 3 + 15: TypeArray 6(float) 14 + 16: TypePointer Private 15 + 17(gfa): 16(ptr) Variable Private + 18: 15 ConstantComposite 10 10 10 + 19: TypeInt 32 1 + 20: TypeBool + 21(outs): TypeStruct 19(int) 6(float) 20(bool) 7(fvec4) + 22: TypePointer Function 21(outs) + 24: 19(int) Constant 3 + 25: 20(bool) ConstantFalse + 26: 7(fvec4) ConstantComposite 10 10 10 10 + 27: 21(outs) ConstantComposite 24 10 25 26 + 30: 19(int) Constant 2 + 31: TypePointer Private 6(float) + 35: TypePointer Function 7(fvec4) + 38: 19(int) Constant 0 + 39: 21(outs) ConstantComposite 38 10 25 26 + 41: TypePointer Function 20(bool) + 45: TypeVector 6(float) 3 + 46: TypeMatrix 45(fvec3) 4 + 47(Nest): TypeStruct 46 21(outs) 20(bool) + 48: TypePointer Function 47(Nest) + 50: 45(fvec3) ConstantComposite 10 10 10 + 51: 46 ConstantComposite 50 50 50 50 + 52: 47(Nest) ConstantComposite 51 39 25 + 53: TypePointer Output 19(int) + 54(a): 53(ptr) Variable Output + 55: TypePointer Function 19(int) + 58: TypePointer Output 6(float) + 59(b): 58(ptr) Variable Output + 60: 19(int) Constant 1 + 61: TypePointer Function 6(float) + 64: TypePointer Output 20(bool) + 65(c): 64(ptr) Variable Output + 68: TypePointer Output 7(fvec4) + 69(v): 68(ptr) Variable Output + 73: TypePointer Input 7(fvec4) + 74(input): 73(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 23(o2): 22(ptr) Variable Function + 28(o4): 22(ptr) Variable Function + 37(o1): 22(ptr) Variable Function + 40(o3): 22(ptr) Variable Function + 49(nest): 48(ptr) Variable Function + Store 9(gv) 12 + Store 17(gfa) 18 + Store 23(o2) 27 + 29: 7(fvec4) Load 9(gv) + 32: 31(ptr) AccessChain 17(gfa) 30 + 33: 6(float) Load 32 + 34: 7(fvec4) VectorTimesScalar 29 33 + 36: 35(ptr) AccessChain 28(o4) 24 + Store 36 34 + Store 37(o1) 39 + Store 40(o3) 39 + Store 28(o4) 39 + 42: 41(ptr) AccessChain 37(o1) 30 + 43: 20(bool) Load 42 + 44: 41(ptr) AccessChain 28(o4) 30 + Store 44 43 + Store 49(nest) 52 + 56: 55(ptr) AccessChain 28(o4) 38 + 57: 19(int) Load 56 + Store 54(a) 57 + 62: 61(ptr) AccessChain 28(o4) 60 + 63: 6(float) Load 62 + Store 59(b) 63 + 66: 41(ptr) AccessChain 28(o4) 30 + 67: 20(bool) Load 66 + Store 65(c) 67 + 70: 35(ptr) AccessChain 28(o4) 24 + 71: 7(fvec4) Load 70 + Store 69(v) 71 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.pp.line.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.pp.line.frag.out new file mode 100644 index 0000000000..6bbbee6451 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.pp.line.frag.out @@ -0,0 +1,165 @@ +hlsl.pp.line.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:129 Sequence +0:129 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:129 Color: direct index for structure (temp 4-component vector of float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:129 Depth: direct index for structure (temp float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:129 Constant: +0:129 1 (const int) +0:129 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:129 Sequence +0:129 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:129 Color: direct index for structure (temp 4-component vector of float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:129 Depth: direct index for structure (temp float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:129 Constant: +0:129 1 (const int) +0:129 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 27 31 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "thisLineIs" + Name 12 "PS_OUTPUT" + MemberName 12(PS_OUTPUT) 0 "Color" + MemberName 12(PS_OUTPUT) 1 "Depth" + Name 14 "psout" + Name 27 "Color" + Name 31 "Depth" + Decorate 27(Color) Location 0 + Decorate 31(Depth) BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 124 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12(PS_OUTPUT): TypeStruct 11(fvec4) 10(float) + 13: TypePointer Function 12(PS_OUTPUT) + 15: 6(int) Constant 0 + 18: 10(float) Constant 0 + 19: 10(float) Constant 1065353216 + 21: TypePointer Function 11(fvec4) + 23: 6(int) Constant 1 + 24: TypePointer Function 10(float) + 26: TypePointer Output 11(fvec4) + 27(Color): 26(ptr) Variable Output + 30: TypePointer Output 10(float) + 31(Depth): 30(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(thisLineIs): 7(ptr) Variable Function + 14(psout): 13(ptr) Variable Function + Store 8(thisLineIs) 9 + 16: 6(int) Load 8(thisLineIs) + 17: 10(float) ConvertSToF 16 + 20: 11(fvec4) CompositeConstruct 17 18 18 19 + 22: 21(ptr) AccessChain 14(psout) 15 + Store 22 20 + 25: 24(ptr) AccessChain 14(psout) 23 + Store 25 19 + 28: 21(ptr) AccessChain 14(psout) 15 + 29: 11(fvec4) Load 28 + Store 27(Color) 29 + 32: 24(ptr) AccessChain 14(psout) 23 + 33: 10(float) Load 32 + Store 31(Depth) 33 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.precedence.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.precedence.frag.out new file mode 100755 index 0000000000..1e18a405b8 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.precedence.frag.out @@ -0,0 +1,170 @@ +hlsl.precedence.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:7 'a2' (layout(location=1 ) in 4-component vector of float) +0:7 'a3' (layout(location=2 ) in 4-component vector of float) +0:7 'a4' (layout(location=3 ) in 4-component vector of float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 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' (layout(location=0 ) in 4-component vector of float) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) 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' (layout(location=0 ) 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' (layout(location=1 ) 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' (layout(location=2 ) in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:8 Branch: Return +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: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:7 'a2' (layout(location=1 ) in 4-component vector of float) +0:7 'a3' (layout(location=2 ) in 4-component vector of float) +0:7 'a4' (layout(location=3 ) in 4-component vector of float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 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' (layout(location=0 ) in 4-component vector of float) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) 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' (layout(location=0 ) 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' (layout(location=1 ) 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' (layout(location=2 ) in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:8 Branch: Return +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): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 15 19 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "@entryPointOutput" + Name 11 "a1" + Name 13 "a2" + Name 15 "a3" + Name 19 "a4" + Decorate 9(@entryPointOutput) Location 0 + Decorate 11(a1) Location 0 + Decorate 13(a2) Location 1 + Decorate 15(a3) Location 2 + Decorate 19(a4) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(a1): 10(ptr) Variable Input + 13(a2): 10(ptr) Variable Input + 15(a3): 10(ptr) Variable Input + 19(a4): 10(ptr) Variable Input + 22: TypeVector 6(float) 3 + 28: TypeInt 32 0 + 29: 28(int) Constant 3 + 30: TypePointer Input 6(float) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(a1) + 14: 7(fvec4) Load 13(a2) + 16: 7(fvec4) Load 15(a3) + 17: 7(fvec4) FMul 14 16 + 18: 7(fvec4) FAdd 12 17 + 20: 7(fvec4) Load 19(a4) + 21: 7(fvec4) FAdd 18 20 + 23: 7(fvec4) Load 11(a1) + 24: 22(fvec3) VectorShuffle 23 23 0 1 2 + 25: 7(fvec4) Load 13(a2) + 26: 22(fvec3) VectorShuffle 25 25 0 1 2 + 27: 22(fvec3) FMul 24 26 + 31: 30(ptr) AccessChain 15(a3) 29 + 32: 6(float) Load 31 + 33: 6(float) CompositeExtract 27 0 + 34: 6(float) CompositeExtract 27 1 + 35: 6(float) CompositeExtract 27 2 + 36: 7(fvec4) CompositeConstruct 33 34 35 32 + 37: 7(fvec4) FAdd 21 36 + Store 9(@entryPointOutput) 37 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.precedence2.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.precedence2.frag.out new file mode 100755 index 0000000000..64cce2c736 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.precedence2.frag.out @@ -0,0 +1,127 @@ +hlsl.precedence2.frag +Shader version: 450 +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' (layout(location=0 ) in int) +0:7 'a2' (layout(location=1 ) in int) +0:7 'a3' (layout(location=2 ) in int) +0:7 'a4' (layout(location=3 ) in int) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp int) +0:? '@entryPointOutput' (layout(location=0 ) out int) +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' (layout(location=0 ) in int) +0:8 'a2' (layout(location=1 ) in int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) +0:8 left-shift (temp int) +0:8 'a1' (layout(location=0 ) in int) +0:8 add (temp int) +0:8 'a2' (layout(location=1 ) in int) +0:8 component-wise multiply (temp int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out int) +0:? 'a1' (layout(location=0 ) in int) +0:? 'a2' (layout(location=1 ) in int) +0:? 'a3' (layout(location=2 ) in int) +0:? 'a4' (layout(location=3 ) in int) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) in int) +0:7 'a2' (layout(location=1 ) in int) +0:7 'a3' (layout(location=2 ) in int) +0:7 'a4' (layout(location=3 ) in int) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp int) +0:? '@entryPointOutput' (layout(location=0 ) out int) +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' (layout(location=0 ) in int) +0:8 'a2' (layout(location=1 ) in int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) +0:8 left-shift (temp int) +0:8 'a1' (layout(location=0 ) in int) +0:8 add (temp int) +0:8 'a2' (layout(location=1 ) in int) +0:8 component-wise multiply (temp int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out int) +0:? 'a1' (layout(location=0 ) in int) +0:? 'a2' (layout(location=1 ) in int) +0:? 'a3' (layout(location=2 ) in int) +0:? 'a4' (layout(location=3 ) in int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 30 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 8 10 12 15 18 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "@entryPointOutput" + Name 10 "a1" + Name 12 "a2" + Name 15 "a3" + Name 18 "a4" + Decorate 8(@entryPointOutput) Location 0 + Decorate 10(a1) Location 0 + Decorate 12(a2) Location 1 + Decorate 15(a3) Location 2 + Decorate 18(a4) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Output 6(int) +8(@entryPointOutput): 7(ptr) Variable Output + 9: TypePointer Input 6(int) + 10(a1): 9(ptr) Variable Input + 12(a2): 9(ptr) Variable Input + 15(a3): 9(ptr) Variable Input + 18(a4): 9(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 11: 6(int) Load 10(a1) + 13: 6(int) Load 12(a2) + 14: 6(int) IMul 11 13 + 16: 6(int) Load 15(a3) + 17: 6(int) IAdd 14 16 + 19: 6(int) Load 18(a4) + 20: 6(int) ShiftLeftLogical 17 19 + 21: 6(int) Load 10(a1) + 22: 6(int) Load 12(a2) + 23: 6(int) Load 15(a3) + 24: 6(int) Load 18(a4) + 25: 6(int) IMul 23 24 + 26: 6(int) IAdd 22 25 + 27: 6(int) ShiftLeftLogical 21 26 + 28: 6(int) IAdd 20 27 + Store 8(@entryPointOutput) 28 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.precise.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.precise.frag.out new file mode 100644 index 0000000000..cd2af74658 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.precise.frag.out @@ -0,0 +1,125 @@ +hlsl.precise.frag +Shader version: 450 +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 Sequence +0:12 Sequence +0:12 move second child to first child (noContraction temp 4-component vector of float) +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:12 color: direct index for structure (noContraction temp 4-component vector of float) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Constant: +0:12 0 (const int) +0:12 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:? 'precisefloat' (noContraction global float) + + +Linked fragment stage: + + +Shader version: 450 +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 Sequence +0:12 Sequence +0:12 move second child to first child (noContraction temp 4-component vector of float) +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:12 color: direct index for structure (noContraction temp 4-component vector of float) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Constant: +0:12 0 (const int) +0:12 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:? 'precisefloat' (noContraction global float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 26 + ExecutionMode 4 OriginUpperLeft + 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 "ps_output" + Name 26 "color" + Name 31 "precisefloat" + Decorate 26(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: TypePointer Function 16(PS_OUTPUT) + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 21: 6(float) Constant 1065353216 + 22: 15(fvec4) ConstantComposite 21 21 21 21 + 23: TypePointer Function 15(fvec4) + 25: TypePointer Output 15(fvec4) + 26(color): 25(ptr) Variable Output + 30: TypePointer Private 6(float) +31(precisefloat): 30(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 18(ps_output): 17(ptr) Variable Function + 24: 23(ptr) AccessChain 18(ps_output) 20 + Store 24 22 + 27: 23(ptr) AccessChain 18(ps_output) 20 + 28: 15(fvec4) Load 27 + Store 26(color) 28 + Return + FunctionEnd +13(MyFunction(f1;vf3;): 2 Function None 10 + 11(myfloat): 7(ptr) FunctionParameter + 12(myfloat3): 9(ptr) FunctionParameter + 14: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.atomic.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.atomic.frag.out new file mode 100644 index 0000000000..7fa0cad86b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.atomic.frag.out @@ -0,0 +1,109 @@ +hlsl.promote.atomic.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: main( (temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp int) +0:13 'Orig' (temp int) +0:13 Convert uint to int (temp int) +0:13 imageAtomicAdd (temp uint) +0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) +0:13 'Loc' (temp int) +0:13 Convert int to uint (temp uint) +0:13 'Inc' (temp int) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: main( (temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp int) +0:13 'Orig' (temp int) +0:13 Convert uint to int (temp int) +0:13 imageAtomicAdd (temp uint) +0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) +0:13 'Loc' (temp int) +0:13 Convert int to uint (temp uint) +0:13 'Inc' (temp int) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 31 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 27 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "Orig" + Name 12 "s_uintbuff" + Name 13 "Loc" + Name 15 "Inc" + Name 27 "@entryPointOutput" + Decorate 12(s_uintbuff) DescriptorSet 0 + Decorate 27(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypeInt 32 0 + 10: TypeImage 9(int) Buffer nonsampled format:R32ui + 11: TypePointer UniformConstant 10 + 12(s_uintbuff): 11(ptr) Variable UniformConstant + 18: 9(int) Constant 0 + 19: TypePointer Image 9(int) + 21: 9(int) Constant 1 + 24: TypeFloat 32 + 25: TypeVector 24(float) 4 + 26: TypePointer Output 25(fvec4) +27(@entryPointOutput): 26(ptr) Variable Output + 28: 24(float) Constant 0 + 29: 25(fvec4) ConstantComposite 28 28 28 28 + 4(main): 2 Function None 3 + 5: Label + 8(Orig): 7(ptr) Variable Function + 13(Loc): 7(ptr) Variable Function + 15(Inc): 7(ptr) Variable Function + 14: 6(int) Load 13(Loc) + 16: 6(int) Load 15(Inc) + 17: 9(int) Bitcast 16 + 20: 19(ptr) ImageTexelPointer 12(s_uintbuff) 14 18 + 22: 9(int) AtomicIAdd 20 21 18 17 + 23: 6(int) Bitcast 22 + Store 8(Orig) 23 + Store 27(@entryPointOutput) 29 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.binary.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.binary.frag.out new file mode 100644 index 0000000000..2c7425e18a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.binary.frag.out @@ -0,0 +1,280 @@ +hlsl.promote.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "$Global" + MemberName 12($Global) 0 "bval" + MemberName 12($Global) 1 "bval4" + MemberName 12($Global) 2 "ival" + MemberName 12($Global) 3 "ival4" + MemberName 12($Global) 4 "fval" + MemberName 12($Global) 5 "fval4" + Name 14 "" + Name 62 "l_int" + Name 68 "PS_OUTPUT" + MemberName 68(PS_OUTPUT) 0 "Color" + Name 70 "psout" + Name 74 "Color" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 16 + MemberDecorate 12($Global) 2 Offset 32 + MemberDecorate 12($Global) 3 Offset 48 + MemberDecorate 12($Global) 4 Offset 64 + MemberDecorate 12($Global) 5 Offset 80 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 74(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 4 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12($Global): TypeStruct 6(int) 7(ivec4) 8(int) 9(ivec4) 10(float) 11(fvec4) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: 8(int) Constant 2 + 16: TypePointer Uniform 8(int) + 20: 8(int) Constant 4 + 21: TypePointer Uniform 10(float) + 25: 8(int) Constant 3 + 26: TypePointer Uniform 9(ivec4) + 30: 8(int) Constant 5 + 31: TypePointer Uniform 11(fvec4) + 35: 8(int) Constant 0 + 36: TypePointer Uniform 6(int) + 39: TypeBool + 40: 6(int) Constant 0 + 42: 10(float) Constant 0 + 43: 10(float) Constant 1065353216 + 48: 8(int) Constant 1 + 49: TypePointer Uniform 7(ivec4) + 52: TypeVector 39(bool) 4 + 53: 7(ivec4) ConstantComposite 40 40 40 40 + 55: 11(fvec4) ConstantComposite 42 42 42 42 + 56: 11(fvec4) ConstantComposite 43 43 43 43 + 61: TypePointer Function 8(int) + 68(PS_OUTPUT): TypeStruct 11(fvec4) + 69: TypePointer Function 68(PS_OUTPUT) + 71: TypePointer Function 11(fvec4) + 73: TypePointer Output 11(fvec4) + 74(Color): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 62(l_int): 61(ptr) Variable Function + 70(psout): 69(ptr) Variable Function + 17: 16(ptr) AccessChain 14 15 + 18: 8(int) Load 17 + 19: 10(float) ConvertSToF 18 + 22: 21(ptr) AccessChain 14 20 + 23: 10(float) Load 22 + 24: 10(float) FMod 19 23 + 27: 26(ptr) AccessChain 14 25 + 28: 9(ivec4) Load 27 + 29: 11(fvec4) ConvertSToF 28 + 32: 31(ptr) AccessChain 14 30 + 33: 11(fvec4) Load 32 + 34: 11(fvec4) FMod 29 33 + 37: 36(ptr) AccessChain 14 35 + 38: 6(int) Load 37 + 41: 39(bool) INotEqual 38 40 + 44: 10(float) Select 41 43 42 + 45: 21(ptr) AccessChain 14 20 + 46: 10(float) Load 45 + 47: 10(float) FMod 44 46 + 50: 49(ptr) AccessChain 14 48 + 51: 7(ivec4) Load 50 + 54: 52(bvec4) INotEqual 51 53 + 57: 11(fvec4) Select 54 56 55 + 58: 31(ptr) AccessChain 14 30 + 59: 11(fvec4) Load 58 + 60: 11(fvec4) FMod 57 59 + Store 62(l_int) 48 + 63: 21(ptr) AccessChain 14 20 + 64: 10(float) Load 63 + 65: 8(int) ConvertFToS 64 + 66: 8(int) Load 62(l_int) + 67: 8(int) SMod 66 65 + Store 62(l_int) 67 + 72: 71(ptr) AccessChain 70(psout) 35 + Store 72 55 + 75: 71(ptr) AccessChain 70(psout) 35 + 76: 11(fvec4) Load 75 + Store 74(Color) 76 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.vec1.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.vec1.frag.out new file mode 100644 index 0000000000..9179dbcc52 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.promote.vec1.frag.out @@ -0,0 +1,118 @@ +hlsl.promote.vec1.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: main( (temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child (temp float) +0:7 'f1a' (temp float) +0:7 Construct float (temp float) +0:7 'f1b' (temp 1-component vector of float) +0:8 move second child to first child (temp 1-component vector of float) +0:8 'f1b' (temp 1-component vector of float) +0:8 Construct float (temp 1-component vector of float) +0:8 'f1a' (temp float) +0:11 step (temp 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' (temp 3-component vector of float) +0:13 sine (temp float) +0:13 Construct float (in float) +0:13 'f1b' (temp 1-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: main( (temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child (temp float) +0:7 'f1a' (temp float) +0:7 Construct float (temp float) +0:7 'f1b' (temp 1-component vector of float) +0:8 move second child to first child (temp 1-component vector of float) +0:8 'f1b' (temp 1-component vector of float) +0:8 Construct float (temp 1-component vector of float) +0:8 'f1a' (temp float) +0:11 step (temp 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' (temp 3-component vector of float) +0:13 sine (temp float) +0:13 Construct float (in float) +0:13 'f1b' (temp 1-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 26 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 23 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "f1a" + Name 9 "f1b" + Name 16 "f3" + Name 23 "@entryPointOutput" + Decorate 23(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 12: TypeVector 6(float) 3 + 13: 6(float) Constant 0 + 14: 12(fvec3) ConstantComposite 13 13 13 + 15: TypePointer Function 12(fvec3) + 21: TypeVector 6(float) 4 + 22: TypePointer Output 21(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 24: 21(fvec4) ConstantComposite 13 13 13 13 + 4(main): 2 Function None 3 + 5: Label + 8(f1a): 7(ptr) Variable Function + 9(f1b): 7(ptr) Variable Function + 16(f3): 15(ptr) Variable Function + 10: 6(float) Load 9(f1b) + Store 8(f1a) 10 + 11: 6(float) Load 8(f1a) + Store 9(f1b) 11 + 17: 12(fvec3) Load 16(f3) + 18: 12(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 14 17 + 19: 6(float) Load 9(f1b) + 20: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 19 + Store 23(@entryPointOutput) 24 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.promotions.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.promotions.frag.out new file mode 100644 index 0000000000..01ced16996 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.promotions.frag.out @@ -0,0 +1,2367 @@ +hlsl.promotions.frag +Shader version: 450 +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 (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:26 Branch: Return with expression +0:26 Convert int to float (temp 3-component vector of float) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float) +0:27 Function Parameters: +0:27 'p' (out 3-component vector of float) +0:? Sequence +0:27 move second child to first child (temp 3-component vector of float) +0:27 'p' (out 3-component vector of float) +0:27 Convert uint to float (temp 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:27 Branch: Return with expression +0:27 Convert uint to float (temp 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float) +0:28 Function Parameters: +0:28 'p' (out 3-component vector of float) +0:? Sequence +0:28 move second child to first child (temp 3-component vector of float) +0:28 'p' (out 3-component vector of float) +0:28 Convert bool to float (temp 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:28 Branch: Return with expression +0:28 Convert bool to float (temp 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float) +0:29 Function Parameters: +0:29 'p' (out 3-component vector of float) +0:? Sequence +0:29 move second child to first child (temp 3-component vector of float) +0:29 'p' (out 3-component vector of float) +0:29 Convert double to float (temp 3-component vector of float) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:29 Branch: Return with expression +0:29 Convert double to float (temp 3-component vector of float) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int) +0:31 Function Parameters: +0:31 'p' (out 3-component vector of int) +0:? Sequence +0:31 move second child to first child (temp 3-component vector of int) +0:31 'p' (out 3-component vector of int) +0:31 Convert uint to int (temp 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:31 Branch: Return with expression +0:31 Convert uint to int (temp 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int) +0:32 Function Parameters: +0:32 'p' (out 3-component vector of int) +0:? Sequence +0:32 move second child to first child (temp 3-component vector of int) +0:32 'p' (out 3-component vector of int) +0:32 Convert bool to int (temp 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:32 Branch: Return with expression +0:32 Convert bool to int (temp 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int) +0:33 Function Parameters: +0:33 'p' (out 3-component vector of int) +0:? Sequence +0:33 move second child to first child (temp 3-component vector of int) +0:33 'p' (out 3-component vector of int) +0:33 Convert float to int (temp 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:33 Branch: Return with expression +0:33 Convert float to int (temp 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int) +0:34 Function Parameters: +0:34 'p' (out 3-component vector of int) +0:? Sequence +0:34 move second child to first child (temp 3-component vector of int) +0:34 'p' (out 3-component vector of int) +0:34 Convert double to int (temp 3-component vector of int) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:34 Branch: Return with expression +0:34 Convert double to int (temp 3-component vector of int) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint) +0:36 Function Parameters: +0:36 'p' (out 3-component vector of uint) +0:? Sequence +0:36 move second child to first child (temp 3-component vector of uint) +0:36 'p' (out 3-component vector of uint) +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:36 Branch: Return with expression +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint) +0:37 Function Parameters: +0:37 'p' (out 3-component vector of uint) +0:? Sequence +0:37 move second child to first child (temp 3-component vector of uint) +0:37 'p' (out 3-component vector of uint) +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:37 Branch: Return with expression +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint) +0:38 Function Parameters: +0:38 'p' (out 3-component vector of uint) +0:? Sequence +0:38 move second child to first child (temp 3-component vector of uint) +0:38 'p' (out 3-component vector of uint) +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:38 Branch: Return with expression +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint) +0:39 Function Parameters: +0:39 'p' (out 3-component vector of uint) +0:? Sequence +0:39 move second child to first child (temp 3-component vector of uint) +0:39 'p' (out 3-component vector of uint) +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:39 Branch: Return with expression +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool) +0:41 Function Parameters: +0:41 'p' (out 3-component vector of bool) +0:? Sequence +0:41 move second child to first child (temp 3-component vector of bool) +0:41 'p' (out 3-component vector of bool) +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:41 Branch: Return with expression +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool) +0:42 Function Parameters: +0:42 'p' (out 3-component vector of bool) +0:? Sequence +0:42 move second child to first child (temp 3-component vector of bool) +0:42 'p' (out 3-component vector of bool) +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:42 Branch: Return with expression +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool) +0:43 Function Parameters: +0:43 'p' (out 3-component vector of bool) +0:? Sequence +0:43 move second child to first child (temp 3-component vector of bool) +0:43 'p' (out 3-component vector of bool) +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:43 Branch: Return with expression +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool) +0:44 Function Parameters: +0:44 'p' (out 3-component vector of bool) +0:? Sequence +0:44 move second child to first child (temp 3-component vector of bool) +0:44 'p' (out 3-component vector of bool) +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:44 Branch: Return with expression +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double) +0:46 Function Parameters: +0:46 'p' (out 3-component vector of double) +0:? Sequence +0:46 move second child to first child (temp 3-component vector of double) +0:46 'p' (out 3-component vector of double) +0:46 Convert int to double (temp 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:46 Branch: Return with expression +0:46 Convert int to double (temp 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double) +0:47 Function Parameters: +0:47 'p' (out 3-component vector of double) +0:? Sequence +0:47 move second child to first child (temp 3-component vector of double) +0:47 'p' (out 3-component vector of double) +0:47 Convert uint to double (temp 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:47 Branch: Return with expression +0:47 Convert uint to double (temp 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double) +0:48 Function Parameters: +0:48 'p' (out 3-component vector of double) +0:? Sequence +0:48 move second child to first child (temp 3-component vector of double) +0:48 'p' (out 3-component vector of double) +0:48 Convert bool to double (temp 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:48 Branch: Return with expression +0:48 Convert bool to double (temp 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double) +0:49 Function Parameters: +0:49 'p' (out 3-component vector of double) +0:? Sequence +0:49 move second child to first child (temp 3-component vector of double) +0:49 'p' (out 3-component vector of double) +0:49 Convert float to double (temp 3-component vector of double) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:49 Branch: Return with expression +0:49 Convert float to double (temp 3-component vector of double) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:52 Function Parameters: +0:? Sequence +0:54 Sequence +0:54 move second child to first child (temp 3-component vector of float) +0:54 'r00' (temp 3-component vector of float) +0:54 Convert int to float (temp 3-component vector of float) +0:54 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 Constant: +0:54 0 (const uint) +0:55 Sequence +0:55 move second child to first child (temp 3-component vector of float) +0:55 'r01' (temp 3-component vector of float) +0:55 Convert bool to float (temp 3-component vector of float) +0:55 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 Constant: +0:55 1 (const uint) +0:56 Sequence +0:56 move second child to first child (temp 3-component vector of float) +0:56 'r02' (temp 3-component vector of float) +0:56 Convert uint to float (temp 3-component vector of float) +0:56 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 Constant: +0:56 3 (const uint) +0:57 Sequence +0:57 move second child to first child (temp 3-component vector of float) +0:57 'r03' (temp 3-component vector of float) +0:57 Convert double to float (temp 3-component vector of float) +0:57 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 Constant: +0:57 4 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 3-component vector of int) +0:59 'r10' (temp 3-component vector of int) +0:59 Convert bool to int (temp 3-component vector of int) +0:59 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 Constant: +0:59 1 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 3-component vector of int) +0:60 'r11' (temp 3-component vector of int) +0:60 Convert uint to int (temp 3-component vector of int) +0:60 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 Constant: +0:60 3 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 3-component vector of int) +0:61 'r12' (temp 3-component vector of int) +0:61 Convert float to int (temp 3-component vector of int) +0:61 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 Constant: +0:61 2 (const uint) +0:62 Sequence +0:62 move second child to first child (temp 3-component vector of int) +0:62 'r13' (temp 3-component vector of int) +0:62 Convert double to int (temp 3-component vector of int) +0:62 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 Constant: +0:62 4 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 3-component vector of uint) +0:64 'r20' (temp 3-component vector of uint) +0:64 Convert bool to uint (temp 3-component vector of uint) +0:64 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 3-component vector of uint) +0:65 'r21' (temp 3-component vector of uint) +0:65 Convert int to uint (temp 3-component vector of uint) +0:65 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 Constant: +0:65 0 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 3-component vector of uint) +0:66 'r22' (temp 3-component vector of uint) +0:66 Convert float to uint (temp 3-component vector of uint) +0:66 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 Constant: +0:66 2 (const uint) +0:67 Sequence +0:67 move second child to first child (temp 3-component vector of uint) +0:67 'r23' (temp 3-component vector of uint) +0:67 Convert double to uint (temp 3-component vector of uint) +0:67 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 Constant: +0:67 4 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 3-component vector of bool) +0:69 'r30' (temp 3-component vector of bool) +0:69 Convert int to bool (temp 3-component vector of bool) +0:69 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 Constant: +0:69 0 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 3-component vector of bool) +0:70 'r31' (temp 3-component vector of bool) +0:70 Convert uint to bool (temp 3-component vector of bool) +0:70 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 Constant: +0:70 3 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 3-component vector of bool) +0:71 'r32' (temp 3-component vector of bool) +0:71 Convert float to bool (temp 3-component vector of bool) +0:71 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 Constant: +0:71 2 (const uint) +0:72 Sequence +0:72 move second child to first child (temp 3-component vector of bool) +0:72 'r33' (temp 3-component vector of bool) +0:72 Convert double to bool (temp 3-component vector of bool) +0:72 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 Constant: +0:72 4 (const uint) +0:74 Sequence +0:74 move second child to first child (temp 3-component vector of double) +0:74 'r40' (temp 3-component vector of double) +0:74 Convert int to double (temp 3-component vector of double) +0:74 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 Constant: +0:74 0 (const uint) +0:75 Sequence +0:75 move second child to first child (temp 3-component vector of double) +0:75 'r41' (temp 3-component vector of double) +0:75 Convert uint to double (temp 3-component vector of double) +0:75 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 Constant: +0:75 3 (const uint) +0:76 Sequence +0:76 move second child to first child (temp 3-component vector of double) +0:76 'r42' (temp 3-component vector of double) +0:76 Convert float to double (temp 3-component vector of double) +0:76 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 Constant: +0:76 2 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 3-component vector of double) +0:77 'r43' (temp 3-component vector of double) +0:77 Convert bool to double (temp 3-component vector of double) +0:77 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 Constant: +0:77 1 (const uint) +0:80 multiply second child into first child (temp 3-component vector of float) +0:80 'r00' (temp 3-component vector of float) +0:80 Convert int to float (temp 3-component vector of float) +0:80 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 Constant: +0:80 0 (const uint) +0:81 multiply second child into first child (temp 3-component vector of float) +0:81 'r01' (temp 3-component vector of float) +0:81 Convert bool to float (temp 3-component vector of float) +0:81 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 Constant: +0:81 1 (const uint) +0:82 multiply second child into first child (temp 3-component vector of float) +0:82 'r02' (temp 3-component vector of float) +0:82 Convert uint to float (temp 3-component vector of float) +0:82 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 Constant: +0:82 3 (const uint) +0:83 multiply second child into first child (temp 3-component vector of float) +0:83 'r03' (temp 3-component vector of float) +0:83 Convert double to float (temp 3-component vector of float) +0:83 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 Constant: +0:83 4 (const uint) +0:85 multiply second child into first child (temp 3-component vector of int) +0:85 'r10' (temp 3-component vector of int) +0:85 Convert bool to int (temp 3-component vector of int) +0:85 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 Constant: +0:85 1 (const uint) +0:86 multiply second child into first child (temp 3-component vector of int) +0:86 'r11' (temp 3-component vector of int) +0:86 Convert uint to int (temp 3-component vector of int) +0:86 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 Constant: +0:86 3 (const uint) +0:87 multiply second child into first child (temp 3-component vector of int) +0:87 'r12' (temp 3-component vector of int) +0:87 Convert float to int (temp 3-component vector of int) +0:87 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 Constant: +0:87 2 (const uint) +0:88 multiply second child into first child (temp 3-component vector of int) +0:88 'r13' (temp 3-component vector of int) +0:88 Convert double to int (temp 3-component vector of int) +0:88 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 Constant: +0:88 4 (const uint) +0:90 multiply second child into first child (temp 3-component vector of uint) +0:90 'r20' (temp 3-component vector of uint) +0:90 Convert bool to uint (temp 3-component vector of uint) +0:90 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 Constant: +0:90 1 (const uint) +0:91 multiply second child into first child (temp 3-component vector of uint) +0:91 'r21' (temp 3-component vector of uint) +0:91 Convert int to uint (temp 3-component vector of uint) +0:91 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 Constant: +0:91 0 (const uint) +0:92 multiply second child into first child (temp 3-component vector of uint) +0:92 'r22' (temp 3-component vector of uint) +0:92 Convert float to uint (temp 3-component vector of uint) +0:92 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 Constant: +0:92 2 (const uint) +0:93 multiply second child into first child (temp 3-component vector of uint) +0:93 'r23' (temp 3-component vector of uint) +0:93 Convert double to uint (temp 3-component vector of uint) +0:93 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 Constant: +0:93 4 (const uint) +0:97 multiply second child into first child (temp 3-component vector of double) +0:97 'r40' (temp 3-component vector of double) +0:97 Convert int to double (temp 3-component vector of double) +0:97 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 Constant: +0:97 0 (const uint) +0:98 multiply second child into first child (temp 3-component vector of double) +0:98 'r41' (temp 3-component vector of double) +0:98 Convert uint to double (temp 3-component vector of double) +0:98 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 Constant: +0:98 3 (const uint) +0:99 multiply second child into first child (temp 3-component vector of double) +0:99 'r42' (temp 3-component vector of double) +0:99 Convert float to double (temp 3-component vector of double) +0:99 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 Constant: +0:99 2 (const uint) +0:100 multiply second child into first child (temp 3-component vector of double) +0:100 'r43' (temp 3-component vector of double) +0:100 Convert bool to double (temp 3-component vector of double) +0:100 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 Constant: +0:100 1 (const uint) +0:103 vector scale second child into first child (temp 3-component vector of float) +0:103 'r00' (temp 3-component vector of float) +0:103 Convert int to float (temp float) +0:103 is: direct index for structure (layout(offset=88 ) uniform int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 Constant: +0:103 5 (const uint) +0:104 vector scale second child into first child (temp 3-component vector of float) +0:104 'r01' (temp 3-component vector of float) +0:104 Convert bool to float (temp float) +0:104 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 Constant: +0:104 6 (const uint) +0:105 vector scale second child into first child (temp 3-component vector of float) +0:105 'r02' (temp 3-component vector of float) +0:105 Convert uint to float (temp float) +0:105 us: direct index for structure (layout(offset=100 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 Constant: +0:105 8 (const uint) +0:106 vector scale second child into first child (temp 3-component vector of float) +0:106 'r03' (temp 3-component vector of float) +0:106 Convert double to float (temp float) +0:106 ds: direct index for structure (layout(offset=104 ) uniform double) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 Constant: +0:106 9 (const uint) +0:108 vector scale second child into first child (temp 3-component vector of int) +0:108 'r10' (temp 3-component vector of int) +0:108 Convert bool to int (temp int) +0:108 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 Constant: +0:108 6 (const uint) +0:109 vector scale second child into first child (temp 3-component vector of int) +0:109 'r11' (temp 3-component vector of int) +0:109 Convert uint to int (temp int) +0:109 us: direct index for structure (layout(offset=100 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 Constant: +0:109 8 (const uint) +0:110 vector scale second child into first child (temp 3-component vector of int) +0:110 'r12' (temp 3-component vector of int) +0:110 Convert float to int (temp int) +0:110 fs: direct index for structure (layout(offset=96 ) uniform float) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 Constant: +0:110 7 (const uint) +0:111 vector scale second child into first child (temp 3-component vector of int) +0:111 'r13' (temp 3-component vector of int) +0:111 Convert double to int (temp int) +0:111 ds: direct index for structure (layout(offset=104 ) uniform double) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 Constant: +0:111 9 (const uint) +0:113 vector scale second child into first child (temp 3-component vector of uint) +0:113 'r20' (temp 3-component vector of uint) +0:113 Convert bool to uint (temp uint) +0:113 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 Constant: +0:113 6 (const uint) +0:114 vector scale second child into first child (temp 3-component vector of uint) +0:114 'r21' (temp 3-component vector of uint) +0:114 Convert int to uint (temp uint) +0:114 is: direct index for structure (layout(offset=88 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 Constant: +0:114 5 (const uint) +0:115 vector scale second child into first child (temp 3-component vector of uint) +0:115 'r22' (temp 3-component vector of uint) +0:115 Convert float to uint (temp uint) +0:115 fs: direct index for structure (layout(offset=96 ) uniform float) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 Constant: +0:115 7 (const uint) +0:116 vector scale second child into first child (temp 3-component vector of uint) +0:116 'r23' (temp 3-component vector of uint) +0:116 Convert double to uint (temp uint) +0:116 ds: direct index for structure (layout(offset=104 ) uniform double) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 Constant: +0:116 9 (const uint) +0:120 vector scale second child into first child (temp 3-component vector of double) +0:120 'r40' (temp 3-component vector of double) +0:120 Convert int to double (temp double) +0:120 is: direct index for structure (layout(offset=88 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 Constant: +0:120 5 (const uint) +0:121 vector scale second child into first child (temp 3-component vector of double) +0:121 'r41' (temp 3-component vector of double) +0:121 Convert uint to double (temp double) +0:121 us: direct index for structure (layout(offset=100 ) uniform uint) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 Constant: +0:121 8 (const uint) +0:122 vector scale second child into first child (temp 3-component vector of double) +0:122 'r42' (temp 3-component vector of double) +0:122 Convert float to double (temp double) +0:122 fs: direct index for structure (layout(offset=96 ) uniform float) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 Constant: +0:122 7 (const uint) +0:123 vector scale second child into first child (temp 3-component vector of double) +0:123 'r43' (temp 3-component vector of double) +0:123 Convert bool to double (temp double) +0:123 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 Constant: +0:123 6 (const uint) +0:193 Sequence +0:193 move second child to first child (temp int) +0:193 'c1' (temp int) +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 Sequence +0:200 Sequence +0:200 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:200 Color: direct index for structure (temp 4-component vector of float) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Constant: +0:200 0 (const int) +0:200 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) + + +Linked fragment stage: + + +Shader version: 450 +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 (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:26 Branch: Return with expression +0:26 Convert int to float (temp 3-component vector of float) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float) +0:27 Function Parameters: +0:27 'p' (out 3-component vector of float) +0:? Sequence +0:27 move second child to first child (temp 3-component vector of float) +0:27 'p' (out 3-component vector of float) +0:27 Convert uint to float (temp 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:27 Branch: Return with expression +0:27 Convert uint to float (temp 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float) +0:28 Function Parameters: +0:28 'p' (out 3-component vector of float) +0:? Sequence +0:28 move second child to first child (temp 3-component vector of float) +0:28 'p' (out 3-component vector of float) +0:28 Convert bool to float (temp 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:28 Branch: Return with expression +0:28 Convert bool to float (temp 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float) +0:29 Function Parameters: +0:29 'p' (out 3-component vector of float) +0:? Sequence +0:29 move second child to first child (temp 3-component vector of float) +0:29 'p' (out 3-component vector of float) +0:29 Convert double to float (temp 3-component vector of float) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:29 Branch: Return with expression +0:29 Convert double to float (temp 3-component vector of float) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int) +0:31 Function Parameters: +0:31 'p' (out 3-component vector of int) +0:? Sequence +0:31 move second child to first child (temp 3-component vector of int) +0:31 'p' (out 3-component vector of int) +0:31 Convert uint to int (temp 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:31 Branch: Return with expression +0:31 Convert uint to int (temp 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int) +0:32 Function Parameters: +0:32 'p' (out 3-component vector of int) +0:? Sequence +0:32 move second child to first child (temp 3-component vector of int) +0:32 'p' (out 3-component vector of int) +0:32 Convert bool to int (temp 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:32 Branch: Return with expression +0:32 Convert bool to int (temp 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int) +0:33 Function Parameters: +0:33 'p' (out 3-component vector of int) +0:? Sequence +0:33 move second child to first child (temp 3-component vector of int) +0:33 'p' (out 3-component vector of int) +0:33 Convert float to int (temp 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:33 Branch: Return with expression +0:33 Convert float to int (temp 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int) +0:34 Function Parameters: +0:34 'p' (out 3-component vector of int) +0:? Sequence +0:34 move second child to first child (temp 3-component vector of int) +0:34 'p' (out 3-component vector of int) +0:34 Convert double to int (temp 3-component vector of int) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:34 Branch: Return with expression +0:34 Convert double to int (temp 3-component vector of int) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint) +0:36 Function Parameters: +0:36 'p' (out 3-component vector of uint) +0:? Sequence +0:36 move second child to first child (temp 3-component vector of uint) +0:36 'p' (out 3-component vector of uint) +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:36 Branch: Return with expression +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint) +0:37 Function Parameters: +0:37 'p' (out 3-component vector of uint) +0:? Sequence +0:37 move second child to first child (temp 3-component vector of uint) +0:37 'p' (out 3-component vector of uint) +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:37 Branch: Return with expression +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint) +0:38 Function Parameters: +0:38 'p' (out 3-component vector of uint) +0:? Sequence +0:38 move second child to first child (temp 3-component vector of uint) +0:38 'p' (out 3-component vector of uint) +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:38 Branch: Return with expression +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint) +0:39 Function Parameters: +0:39 'p' (out 3-component vector of uint) +0:? Sequence +0:39 move second child to first child (temp 3-component vector of uint) +0:39 'p' (out 3-component vector of uint) +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:39 Branch: Return with expression +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool) +0:41 Function Parameters: +0:41 'p' (out 3-component vector of bool) +0:? Sequence +0:41 move second child to first child (temp 3-component vector of bool) +0:41 'p' (out 3-component vector of bool) +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:41 Branch: Return with expression +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool) +0:42 Function Parameters: +0:42 'p' (out 3-component vector of bool) +0:? Sequence +0:42 move second child to first child (temp 3-component vector of bool) +0:42 'p' (out 3-component vector of bool) +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:42 Branch: Return with expression +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool) +0:43 Function Parameters: +0:43 'p' (out 3-component vector of bool) +0:? Sequence +0:43 move second child to first child (temp 3-component vector of bool) +0:43 'p' (out 3-component vector of bool) +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:43 Branch: Return with expression +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool) +0:44 Function Parameters: +0:44 'p' (out 3-component vector of bool) +0:? Sequence +0:44 move second child to first child (temp 3-component vector of bool) +0:44 'p' (out 3-component vector of bool) +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:44 Branch: Return with expression +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double) +0:46 Function Parameters: +0:46 'p' (out 3-component vector of double) +0:? Sequence +0:46 move second child to first child (temp 3-component vector of double) +0:46 'p' (out 3-component vector of double) +0:46 Convert int to double (temp 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:46 Branch: Return with expression +0:46 Convert int to double (temp 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double) +0:47 Function Parameters: +0:47 'p' (out 3-component vector of double) +0:? Sequence +0:47 move second child to first child (temp 3-component vector of double) +0:47 'p' (out 3-component vector of double) +0:47 Convert uint to double (temp 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:47 Branch: Return with expression +0:47 Convert uint to double (temp 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double) +0:48 Function Parameters: +0:48 'p' (out 3-component vector of double) +0:? Sequence +0:48 move second child to first child (temp 3-component vector of double) +0:48 'p' (out 3-component vector of double) +0:48 Convert bool to double (temp 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:48 Branch: Return with expression +0:48 Convert bool to double (temp 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double) +0:49 Function Parameters: +0:49 'p' (out 3-component vector of double) +0:? Sequence +0:49 move second child to first child (temp 3-component vector of double) +0:49 'p' (out 3-component vector of double) +0:49 Convert float to double (temp 3-component vector of double) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:49 Branch: Return with expression +0:49 Convert float to double (temp 3-component vector of double) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:52 Function Parameters: +0:? Sequence +0:54 Sequence +0:54 move second child to first child (temp 3-component vector of float) +0:54 'r00' (temp 3-component vector of float) +0:54 Convert int to float (temp 3-component vector of float) +0:54 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 Constant: +0:54 0 (const uint) +0:55 Sequence +0:55 move second child to first child (temp 3-component vector of float) +0:55 'r01' (temp 3-component vector of float) +0:55 Convert bool to float (temp 3-component vector of float) +0:55 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 Constant: +0:55 1 (const uint) +0:56 Sequence +0:56 move second child to first child (temp 3-component vector of float) +0:56 'r02' (temp 3-component vector of float) +0:56 Convert uint to float (temp 3-component vector of float) +0:56 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 Constant: +0:56 3 (const uint) +0:57 Sequence +0:57 move second child to first child (temp 3-component vector of float) +0:57 'r03' (temp 3-component vector of float) +0:57 Convert double to float (temp 3-component vector of float) +0:57 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 Constant: +0:57 4 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 3-component vector of int) +0:59 'r10' (temp 3-component vector of int) +0:59 Convert bool to int (temp 3-component vector of int) +0:59 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 Constant: +0:59 1 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 3-component vector of int) +0:60 'r11' (temp 3-component vector of int) +0:60 Convert uint to int (temp 3-component vector of int) +0:60 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 Constant: +0:60 3 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 3-component vector of int) +0:61 'r12' (temp 3-component vector of int) +0:61 Convert float to int (temp 3-component vector of int) +0:61 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 Constant: +0:61 2 (const uint) +0:62 Sequence +0:62 move second child to first child (temp 3-component vector of int) +0:62 'r13' (temp 3-component vector of int) +0:62 Convert double to int (temp 3-component vector of int) +0:62 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 Constant: +0:62 4 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 3-component vector of uint) +0:64 'r20' (temp 3-component vector of uint) +0:64 Convert bool to uint (temp 3-component vector of uint) +0:64 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 3-component vector of uint) +0:65 'r21' (temp 3-component vector of uint) +0:65 Convert int to uint (temp 3-component vector of uint) +0:65 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 Constant: +0:65 0 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 3-component vector of uint) +0:66 'r22' (temp 3-component vector of uint) +0:66 Convert float to uint (temp 3-component vector of uint) +0:66 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 Constant: +0:66 2 (const uint) +0:67 Sequence +0:67 move second child to first child (temp 3-component vector of uint) +0:67 'r23' (temp 3-component vector of uint) +0:67 Convert double to uint (temp 3-component vector of uint) +0:67 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 Constant: +0:67 4 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 3-component vector of bool) +0:69 'r30' (temp 3-component vector of bool) +0:69 Convert int to bool (temp 3-component vector of bool) +0:69 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 Constant: +0:69 0 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 3-component vector of bool) +0:70 'r31' (temp 3-component vector of bool) +0:70 Convert uint to bool (temp 3-component vector of bool) +0:70 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 Constant: +0:70 3 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 3-component vector of bool) +0:71 'r32' (temp 3-component vector of bool) +0:71 Convert float to bool (temp 3-component vector of bool) +0:71 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 Constant: +0:71 2 (const uint) +0:72 Sequence +0:72 move second child to first child (temp 3-component vector of bool) +0:72 'r33' (temp 3-component vector of bool) +0:72 Convert double to bool (temp 3-component vector of bool) +0:72 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 Constant: +0:72 4 (const uint) +0:74 Sequence +0:74 move second child to first child (temp 3-component vector of double) +0:74 'r40' (temp 3-component vector of double) +0:74 Convert int to double (temp 3-component vector of double) +0:74 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 Constant: +0:74 0 (const uint) +0:75 Sequence +0:75 move second child to first child (temp 3-component vector of double) +0:75 'r41' (temp 3-component vector of double) +0:75 Convert uint to double (temp 3-component vector of double) +0:75 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 Constant: +0:75 3 (const uint) +0:76 Sequence +0:76 move second child to first child (temp 3-component vector of double) +0:76 'r42' (temp 3-component vector of double) +0:76 Convert float to double (temp 3-component vector of double) +0:76 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 Constant: +0:76 2 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 3-component vector of double) +0:77 'r43' (temp 3-component vector of double) +0:77 Convert bool to double (temp 3-component vector of double) +0:77 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 Constant: +0:77 1 (const uint) +0:80 multiply second child into first child (temp 3-component vector of float) +0:80 'r00' (temp 3-component vector of float) +0:80 Convert int to float (temp 3-component vector of float) +0:80 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 Constant: +0:80 0 (const uint) +0:81 multiply second child into first child (temp 3-component vector of float) +0:81 'r01' (temp 3-component vector of float) +0:81 Convert bool to float (temp 3-component vector of float) +0:81 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 Constant: +0:81 1 (const uint) +0:82 multiply second child into first child (temp 3-component vector of float) +0:82 'r02' (temp 3-component vector of float) +0:82 Convert uint to float (temp 3-component vector of float) +0:82 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 Constant: +0:82 3 (const uint) +0:83 multiply second child into first child (temp 3-component vector of float) +0:83 'r03' (temp 3-component vector of float) +0:83 Convert double to float (temp 3-component vector of float) +0:83 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 Constant: +0:83 4 (const uint) +0:85 multiply second child into first child (temp 3-component vector of int) +0:85 'r10' (temp 3-component vector of int) +0:85 Convert bool to int (temp 3-component vector of int) +0:85 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 Constant: +0:85 1 (const uint) +0:86 multiply second child into first child (temp 3-component vector of int) +0:86 'r11' (temp 3-component vector of int) +0:86 Convert uint to int (temp 3-component vector of int) +0:86 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 Constant: +0:86 3 (const uint) +0:87 multiply second child into first child (temp 3-component vector of int) +0:87 'r12' (temp 3-component vector of int) +0:87 Convert float to int (temp 3-component vector of int) +0:87 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 Constant: +0:87 2 (const uint) +0:88 multiply second child into first child (temp 3-component vector of int) +0:88 'r13' (temp 3-component vector of int) +0:88 Convert double to int (temp 3-component vector of int) +0:88 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 Constant: +0:88 4 (const uint) +0:90 multiply second child into first child (temp 3-component vector of uint) +0:90 'r20' (temp 3-component vector of uint) +0:90 Convert bool to uint (temp 3-component vector of uint) +0:90 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 Constant: +0:90 1 (const uint) +0:91 multiply second child into first child (temp 3-component vector of uint) +0:91 'r21' (temp 3-component vector of uint) +0:91 Convert int to uint (temp 3-component vector of uint) +0:91 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 Constant: +0:91 0 (const uint) +0:92 multiply second child into first child (temp 3-component vector of uint) +0:92 'r22' (temp 3-component vector of uint) +0:92 Convert float to uint (temp 3-component vector of uint) +0:92 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 Constant: +0:92 2 (const uint) +0:93 multiply second child into first child (temp 3-component vector of uint) +0:93 'r23' (temp 3-component vector of uint) +0:93 Convert double to uint (temp 3-component vector of uint) +0:93 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 Constant: +0:93 4 (const uint) +0:97 multiply second child into first child (temp 3-component vector of double) +0:97 'r40' (temp 3-component vector of double) +0:97 Convert int to double (temp 3-component vector of double) +0:97 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 Constant: +0:97 0 (const uint) +0:98 multiply second child into first child (temp 3-component vector of double) +0:98 'r41' (temp 3-component vector of double) +0:98 Convert uint to double (temp 3-component vector of double) +0:98 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 Constant: +0:98 3 (const uint) +0:99 multiply second child into first child (temp 3-component vector of double) +0:99 'r42' (temp 3-component vector of double) +0:99 Convert float to double (temp 3-component vector of double) +0:99 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 Constant: +0:99 2 (const uint) +0:100 multiply second child into first child (temp 3-component vector of double) +0:100 'r43' (temp 3-component vector of double) +0:100 Convert bool to double (temp 3-component vector of double) +0:100 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 Constant: +0:100 1 (const uint) +0:103 vector scale second child into first child (temp 3-component vector of float) +0:103 'r00' (temp 3-component vector of float) +0:103 Convert int to float (temp float) +0:103 is: direct index for structure (layout(offset=88 ) uniform int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 Constant: +0:103 5 (const uint) +0:104 vector scale second child into first child (temp 3-component vector of float) +0:104 'r01' (temp 3-component vector of float) +0:104 Convert bool to float (temp float) +0:104 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 Constant: +0:104 6 (const uint) +0:105 vector scale second child into first child (temp 3-component vector of float) +0:105 'r02' (temp 3-component vector of float) +0:105 Convert uint to float (temp float) +0:105 us: direct index for structure (layout(offset=100 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 Constant: +0:105 8 (const uint) +0:106 vector scale second child into first child (temp 3-component vector of float) +0:106 'r03' (temp 3-component vector of float) +0:106 Convert double to float (temp float) +0:106 ds: direct index for structure (layout(offset=104 ) uniform double) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 Constant: +0:106 9 (const uint) +0:108 vector scale second child into first child (temp 3-component vector of int) +0:108 'r10' (temp 3-component vector of int) +0:108 Convert bool to int (temp int) +0:108 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 Constant: +0:108 6 (const uint) +0:109 vector scale second child into first child (temp 3-component vector of int) +0:109 'r11' (temp 3-component vector of int) +0:109 Convert uint to int (temp int) +0:109 us: direct index for structure (layout(offset=100 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 Constant: +0:109 8 (const uint) +0:110 vector scale second child into first child (temp 3-component vector of int) +0:110 'r12' (temp 3-component vector of int) +0:110 Convert float to int (temp int) +0:110 fs: direct index for structure (layout(offset=96 ) uniform float) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 Constant: +0:110 7 (const uint) +0:111 vector scale second child into first child (temp 3-component vector of int) +0:111 'r13' (temp 3-component vector of int) +0:111 Convert double to int (temp int) +0:111 ds: direct index for structure (layout(offset=104 ) uniform double) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 Constant: +0:111 9 (const uint) +0:113 vector scale second child into first child (temp 3-component vector of uint) +0:113 'r20' (temp 3-component vector of uint) +0:113 Convert bool to uint (temp uint) +0:113 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 Constant: +0:113 6 (const uint) +0:114 vector scale second child into first child (temp 3-component vector of uint) +0:114 'r21' (temp 3-component vector of uint) +0:114 Convert int to uint (temp uint) +0:114 is: direct index for structure (layout(offset=88 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 Constant: +0:114 5 (const uint) +0:115 vector scale second child into first child (temp 3-component vector of uint) +0:115 'r22' (temp 3-component vector of uint) +0:115 Convert float to uint (temp uint) +0:115 fs: direct index for structure (layout(offset=96 ) uniform float) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 Constant: +0:115 7 (const uint) +0:116 vector scale second child into first child (temp 3-component vector of uint) +0:116 'r23' (temp 3-component vector of uint) +0:116 Convert double to uint (temp uint) +0:116 ds: direct index for structure (layout(offset=104 ) uniform double) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 Constant: +0:116 9 (const uint) +0:120 vector scale second child into first child (temp 3-component vector of double) +0:120 'r40' (temp 3-component vector of double) +0:120 Convert int to double (temp double) +0:120 is: direct index for structure (layout(offset=88 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 Constant: +0:120 5 (const uint) +0:121 vector scale second child into first child (temp 3-component vector of double) +0:121 'r41' (temp 3-component vector of double) +0:121 Convert uint to double (temp double) +0:121 us: direct index for structure (layout(offset=100 ) uniform uint) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 Constant: +0:121 8 (const uint) +0:122 vector scale second child into first child (temp 3-component vector of double) +0:122 'r42' (temp 3-component vector of double) +0:122 Convert float to double (temp double) +0:122 fs: direct index for structure (layout(offset=96 ) uniform float) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 Constant: +0:122 7 (const uint) +0:123 vector scale second child into first child (temp 3-component vector of double) +0:123 'r43' (temp 3-component vector of double) +0:123 Convert bool to double (temp double) +0:123 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 Constant: +0:123 6 (const uint) +0:193 Sequence +0:193 move second child to first child (temp int) +0:193 'c1' (temp int) +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 Sequence +0:200 Sequence +0:200 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:200 Color: direct index for structure (temp 4-component vector of float) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Constant: +0:200 0 (const int) +0:200 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 591 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 587 + ExecutionMode 4 OriginUpperLeft + 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 106 "$Global" + MemberName 106($Global) 0 "i3" + MemberName 106($Global) 1 "b3" + MemberName 106($Global) 2 "f3" + MemberName 106($Global) 3 "u3" + MemberName 106($Global) 4 "d3" + MemberName 106($Global) 5 "is" + MemberName 106($Global) 6 "bs" + MemberName 106($Global) 7 "fs" + MemberName 106($Global) 8 "us" + MemberName 106($Global) 9 "ds" + Name 108 "" + Name 300 "r00" + Name 304 "r01" + Name 309 "r02" + Name 313 "r03" + Name 317 "r10" + Name 322 "r11" + Name 326 "r12" + Name 330 "r13" + Name 334 "r20" + Name 339 "r21" + Name 343 "r22" + Name 347 "r23" + Name 351 "r30" + Name 355 "r31" + Name 359 "r32" + Name 363 "r33" + Name 367 "r40" + Name 371 "r41" + Name 375 "r42" + Name 379 "r43" + Name 570 "c1" + Name 571 "c2" + Name 574 "outval" + Name 581 "PS_OUTPUT" + MemberName 581(PS_OUTPUT) 0 "Color" + Name 583 "psout" + Name 587 "Color" + MemberDecorate 106($Global) 0 Offset 0 + MemberDecorate 106($Global) 1 Offset 16 + MemberDecorate 106($Global) 2 Offset 32 + MemberDecorate 106($Global) 3 Offset 48 + MemberDecorate 106($Global) 4 Offset 64 + MemberDecorate 106($Global) 5 Offset 88 + MemberDecorate 106($Global) 6 Offset 92 + MemberDecorate 106($Global) 7 Offset 96 + MemberDecorate 106($Global) 8 Offset 100 + MemberDecorate 106($Global) 9 Offset 104 + Decorate 106($Global) Block + Decorate 108 DescriptorSet 0 + Decorate 587(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 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(float) 3 + 36: TypePointer Function 35(fvec3) + 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(fvec3) 36(ptr) + 106($Global): TypeStruct 14(ivec3) 21(ivec3) 7(fvec3) 21(ivec3) 35(fvec3) 13(int) 20(int) 6(float) 20(int) 34(float) + 107: TypePointer Uniform 106($Global) + 108: 107(ptr) Variable Uniform + 109: 13(int) Constant 0 + 110: TypePointer Uniform 14(ivec3) + 119: 13(int) Constant 3 + 120: TypePointer Uniform 21(ivec3) + 129: 13(int) Constant 1 + 132: 20(int) Constant 0 + 133: 21(ivec3) ConstantComposite 132 132 132 + 135: 6(float) Constant 0 + 136: 6(float) Constant 1065353216 + 137: 7(fvec3) ConstantComposite 135 135 135 + 138: 7(fvec3) ConstantComposite 136 136 136 + 146: 13(int) Constant 4 + 147: TypePointer Uniform 35(fvec3) + 167: 14(ivec3) ConstantComposite 109 109 109 + 168: 14(ivec3) ConstantComposite 129 129 129 + 176: 13(int) Constant 2 + 177: TypePointer Uniform 7(fvec3) + 213: 20(int) Constant 1 + 214: 21(ivec3) ConstantComposite 213 213 213 + 256: 34(float) Constant 0 0 + 257: 35(fvec3) ConstantComposite 256 256 256 + 283: 34(float) Constant 0 1072693248 + 284: 35(fvec3) ConstantComposite 283 283 283 + 468: 13(int) Constant 5 + 469: TypePointer Uniform 13(int) + 475: 13(int) Constant 6 + 476: TypePointer Uniform 20(int) + 483: 13(int) Constant 8 + 489: 13(int) Constant 9 + 490: TypePointer Uniform 34(float) + 509: 13(int) Constant 7 + 510: TypePointer Uniform 6(float) + 569: TypePointer Function 13(int) + 572: TypeVector 6(float) 4 + 573: TypePointer Function 572(fvec4) + 575: 6(float) Constant 1080452710 + 581(PS_OUTPUT): TypeStruct 572(fvec4) + 582: TypePointer Function 581(PS_OUTPUT) + 586: TypePointer Output 572(fvec4) + 587(Color): 586(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 300(r00): 8(ptr) Variable Function + 304(r01): 8(ptr) Variable Function + 309(r02): 8(ptr) Variable Function + 313(r03): 8(ptr) Variable Function + 317(r10): 15(ptr) Variable Function + 322(r11): 15(ptr) Variable Function + 326(r12): 15(ptr) Variable Function + 330(r13): 15(ptr) Variable Function + 334(r20): 22(ptr) Variable Function + 339(r21): 22(ptr) Variable Function + 343(r22): 22(ptr) Variable Function + 347(r23): 22(ptr) Variable Function + 351(r30): 29(ptr) Variable Function + 355(r31): 29(ptr) Variable Function + 359(r32): 29(ptr) Variable Function + 363(r33): 29(ptr) Variable Function + 367(r40): 36(ptr) Variable Function + 371(r41): 36(ptr) Variable Function + 375(r42): 36(ptr) Variable Function + 379(r43): 36(ptr) Variable Function + 570(c1): 569(ptr) Variable Function + 571(c2): 569(ptr) Variable Function + 574(outval): 573(ptr) Variable Function + 583(psout): 582(ptr) Variable Function + 301: 110(ptr) AccessChain 108 109 + 302: 14(ivec3) Load 301 + 303: 7(fvec3) ConvertSToF 302 + Store 300(r00) 303 + 305: 120(ptr) AccessChain 108 129 + 306: 21(ivec3) Load 305 + 307: 28(bvec3) INotEqual 306 133 + 308: 7(fvec3) Select 307 138 137 + Store 304(r01) 308 + 310: 120(ptr) AccessChain 108 119 + 311: 21(ivec3) Load 310 + 312: 7(fvec3) ConvertUToF 311 + Store 309(r02) 312 + 314: 147(ptr) AccessChain 108 146 + 315: 35(fvec3) Load 314 + 316: 7(fvec3) FConvert 315 + Store 313(r03) 316 + 318: 120(ptr) AccessChain 108 129 + 319: 21(ivec3) Load 318 + 320: 28(bvec3) INotEqual 319 133 + 321: 14(ivec3) Select 320 168 167 + Store 317(r10) 321 + 323: 120(ptr) AccessChain 108 119 + 324: 21(ivec3) Load 323 + 325: 14(ivec3) Bitcast 324 + Store 322(r11) 325 + 327: 177(ptr) AccessChain 108 176 + 328: 7(fvec3) Load 327 + 329: 14(ivec3) ConvertFToS 328 + Store 326(r12) 329 + 331: 147(ptr) AccessChain 108 146 + 332: 35(fvec3) Load 331 + 333: 14(ivec3) ConvertFToS 332 + Store 330(r13) 333 + 335: 120(ptr) AccessChain 108 129 + 336: 21(ivec3) Load 335 + 337: 28(bvec3) INotEqual 336 133 + 338: 21(ivec3) Select 337 214 133 + Store 334(r20) 338 + 340: 110(ptr) AccessChain 108 109 + 341: 14(ivec3) Load 340 + 342: 21(ivec3) Bitcast 341 + Store 339(r21) 342 + 344: 177(ptr) AccessChain 108 176 + 345: 7(fvec3) Load 344 + 346: 21(ivec3) ConvertFToU 345 + Store 343(r22) 346 + 348: 147(ptr) AccessChain 108 146 + 349: 35(fvec3) Load 348 + 350: 21(ivec3) ConvertFToU 349 + Store 347(r23) 350 + 352: 110(ptr) AccessChain 108 109 + 353: 14(ivec3) Load 352 + 354: 28(bvec3) INotEqual 353 133 + Store 351(r30) 354 + 356: 120(ptr) AccessChain 108 119 + 357: 21(ivec3) Load 356 + 358: 28(bvec3) INotEqual 357 133 + Store 355(r31) 358 + 360: 177(ptr) AccessChain 108 176 + 361: 7(fvec3) Load 360 + 362: 28(bvec3) FOrdNotEqual 361 137 + Store 359(r32) 362 + 364: 147(ptr) AccessChain 108 146 + 365: 35(fvec3) Load 364 + 366: 28(bvec3) FOrdNotEqual 365 257 + Store 363(r33) 366 + 368: 110(ptr) AccessChain 108 109 + 369: 14(ivec3) Load 368 + 370: 35(fvec3) ConvertSToF 369 + Store 367(r40) 370 + 372: 120(ptr) AccessChain 108 119 + 373: 21(ivec3) Load 372 + 374: 35(fvec3) ConvertUToF 373 + Store 371(r41) 374 + 376: 177(ptr) AccessChain 108 176 + 377: 7(fvec3) Load 376 + 378: 35(fvec3) FConvert 377 + Store 375(r42) 378 + 380: 120(ptr) AccessChain 108 129 + 381: 21(ivec3) Load 380 + 382: 28(bvec3) INotEqual 381 133 + 383: 35(fvec3) Select 382 284 257 + Store 379(r43) 383 + 384: 110(ptr) AccessChain 108 109 + 385: 14(ivec3) Load 384 + 386: 7(fvec3) ConvertSToF 385 + 387: 7(fvec3) Load 300(r00) + 388: 7(fvec3) FMul 387 386 + Store 300(r00) 388 + 389: 120(ptr) AccessChain 108 129 + 390: 21(ivec3) Load 389 + 391: 28(bvec3) INotEqual 390 133 + 392: 7(fvec3) Select 391 138 137 + 393: 7(fvec3) Load 304(r01) + 394: 7(fvec3) FMul 393 392 + Store 304(r01) 394 + 395: 120(ptr) AccessChain 108 119 + 396: 21(ivec3) Load 395 + 397: 7(fvec3) ConvertUToF 396 + 398: 7(fvec3) Load 309(r02) + 399: 7(fvec3) FMul 398 397 + Store 309(r02) 399 + 400: 147(ptr) AccessChain 108 146 + 401: 35(fvec3) Load 400 + 402: 7(fvec3) FConvert 401 + 403: 7(fvec3) Load 313(r03) + 404: 7(fvec3) FMul 403 402 + Store 313(r03) 404 + 405: 120(ptr) AccessChain 108 129 + 406: 21(ivec3) Load 405 + 407: 28(bvec3) INotEqual 406 133 + 408: 14(ivec3) Select 407 168 167 + 409: 14(ivec3) Load 317(r10) + 410: 14(ivec3) IMul 409 408 + Store 317(r10) 410 + 411: 120(ptr) AccessChain 108 119 + 412: 21(ivec3) Load 411 + 413: 14(ivec3) Bitcast 412 + 414: 14(ivec3) Load 322(r11) + 415: 14(ivec3) IMul 414 413 + Store 322(r11) 415 + 416: 177(ptr) AccessChain 108 176 + 417: 7(fvec3) Load 416 + 418: 14(ivec3) ConvertFToS 417 + 419: 14(ivec3) Load 326(r12) + 420: 14(ivec3) IMul 419 418 + Store 326(r12) 420 + 421: 147(ptr) AccessChain 108 146 + 422: 35(fvec3) Load 421 + 423: 14(ivec3) ConvertFToS 422 + 424: 14(ivec3) Load 330(r13) + 425: 14(ivec3) IMul 424 423 + Store 330(r13) 425 + 426: 120(ptr) AccessChain 108 129 + 427: 21(ivec3) Load 426 + 428: 28(bvec3) INotEqual 427 133 + 429: 21(ivec3) Select 428 214 133 + 430: 21(ivec3) Load 334(r20) + 431: 21(ivec3) IMul 430 429 + Store 334(r20) 431 + 432: 110(ptr) AccessChain 108 109 + 433: 14(ivec3) Load 432 + 434: 21(ivec3) Bitcast 433 + 435: 21(ivec3) Load 339(r21) + 436: 21(ivec3) IMul 435 434 + Store 339(r21) 436 + 437: 177(ptr) AccessChain 108 176 + 438: 7(fvec3) Load 437 + 439: 21(ivec3) ConvertFToU 438 + 440: 21(ivec3) Load 343(r22) + 441: 21(ivec3) IMul 440 439 + Store 343(r22) 441 + 442: 147(ptr) AccessChain 108 146 + 443: 35(fvec3) Load 442 + 444: 21(ivec3) ConvertFToU 443 + 445: 21(ivec3) Load 347(r23) + 446: 21(ivec3) IMul 445 444 + Store 347(r23) 446 + 447: 110(ptr) AccessChain 108 109 + 448: 14(ivec3) Load 447 + 449: 35(fvec3) ConvertSToF 448 + 450: 35(fvec3) Load 367(r40) + 451: 35(fvec3) FMul 450 449 + Store 367(r40) 451 + 452: 120(ptr) AccessChain 108 119 + 453: 21(ivec3) Load 452 + 454: 35(fvec3) ConvertUToF 453 + 455: 35(fvec3) Load 371(r41) + 456: 35(fvec3) FMul 455 454 + Store 371(r41) 456 + 457: 177(ptr) AccessChain 108 176 + 458: 7(fvec3) Load 457 + 459: 35(fvec3) FConvert 458 + 460: 35(fvec3) Load 375(r42) + 461: 35(fvec3) FMul 460 459 + Store 375(r42) 461 + 462: 120(ptr) AccessChain 108 129 + 463: 21(ivec3) Load 462 + 464: 28(bvec3) INotEqual 463 133 + 465: 35(fvec3) Select 464 284 257 + 466: 35(fvec3) Load 379(r43) + 467: 35(fvec3) FMul 466 465 + Store 379(r43) 467 + 470: 469(ptr) AccessChain 108 468 + 471: 13(int) Load 470 + 472: 6(float) ConvertSToF 471 + 473: 7(fvec3) Load 300(r00) + 474: 7(fvec3) VectorTimesScalar 473 472 + Store 300(r00) 474 + 477: 476(ptr) AccessChain 108 475 + 478: 20(int) Load 477 + 479: 27(bool) INotEqual 478 132 + 480: 6(float) Select 479 136 135 + 481: 7(fvec3) Load 304(r01) + 482: 7(fvec3) VectorTimesScalar 481 480 + Store 304(r01) 482 + 484: 476(ptr) AccessChain 108 483 + 485: 20(int) Load 484 + 486: 6(float) ConvertUToF 485 + 487: 7(fvec3) Load 309(r02) + 488: 7(fvec3) VectorTimesScalar 487 486 + Store 309(r02) 488 + 491: 490(ptr) AccessChain 108 489 + 492: 34(float) Load 491 + 493: 6(float) FConvert 492 + 494: 7(fvec3) Load 313(r03) + 495: 7(fvec3) VectorTimesScalar 494 493 + Store 313(r03) 495 + 496: 476(ptr) AccessChain 108 475 + 497: 20(int) Load 496 + 498: 27(bool) INotEqual 497 132 + 499: 13(int) Select 498 129 109 + 500: 14(ivec3) Load 317(r10) + 501: 14(ivec3) CompositeConstruct 499 499 499 + 502: 14(ivec3) IMul 500 501 + Store 317(r10) 502 + 503: 476(ptr) AccessChain 108 483 + 504: 20(int) Load 503 + 505: 13(int) Bitcast 504 + 506: 14(ivec3) Load 322(r11) + 507: 14(ivec3) CompositeConstruct 505 505 505 + 508: 14(ivec3) IMul 506 507 + Store 322(r11) 508 + 511: 510(ptr) AccessChain 108 509 + 512: 6(float) Load 511 + 513: 13(int) ConvertFToS 512 + 514: 14(ivec3) Load 326(r12) + 515: 14(ivec3) CompositeConstruct 513 513 513 + 516: 14(ivec3) IMul 514 515 + Store 326(r12) 516 + 517: 490(ptr) AccessChain 108 489 + 518: 34(float) Load 517 + 519: 13(int) ConvertFToS 518 + 520: 14(ivec3) Load 330(r13) + 521: 14(ivec3) CompositeConstruct 519 519 519 + 522: 14(ivec3) IMul 520 521 + Store 330(r13) 522 + 523: 476(ptr) AccessChain 108 475 + 524: 20(int) Load 523 + 525: 27(bool) INotEqual 524 132 + 526: 20(int) Select 525 213 132 + 527: 21(ivec3) Load 334(r20) + 528: 21(ivec3) CompositeConstruct 526 526 526 + 529: 21(ivec3) IMul 527 528 + Store 334(r20) 529 + 530: 469(ptr) AccessChain 108 468 + 531: 13(int) Load 530 + 532: 20(int) Bitcast 531 + 533: 21(ivec3) Load 339(r21) + 534: 21(ivec3) CompositeConstruct 532 532 532 + 535: 21(ivec3) IMul 533 534 + Store 339(r21) 535 + 536: 510(ptr) AccessChain 108 509 + 537: 6(float) Load 536 + 538: 20(int) ConvertFToU 537 + 539: 21(ivec3) Load 343(r22) + 540: 21(ivec3) CompositeConstruct 538 538 538 + 541: 21(ivec3) IMul 539 540 + Store 343(r22) 541 + 542: 490(ptr) AccessChain 108 489 + 543: 34(float) Load 542 + 544: 20(int) ConvertFToU 543 + 545: 21(ivec3) Load 347(r23) + 546: 21(ivec3) CompositeConstruct 544 544 544 + 547: 21(ivec3) IMul 545 546 + Store 347(r23) 547 + 548: 469(ptr) AccessChain 108 468 + 549: 13(int) Load 548 + 550: 34(float) ConvertSToF 549 + 551: 35(fvec3) Load 367(r40) + 552: 35(fvec3) VectorTimesScalar 551 550 + Store 367(r40) 552 + 553: 476(ptr) AccessChain 108 483 + 554: 20(int) Load 553 + 555: 34(float) ConvertUToF 554 + 556: 35(fvec3) Load 371(r41) + 557: 35(fvec3) VectorTimesScalar 556 555 + Store 371(r41) 557 + 558: 510(ptr) AccessChain 108 509 + 559: 6(float) Load 558 + 560: 34(float) FConvert 559 + 561: 35(fvec3) Load 375(r42) + 562: 35(fvec3) VectorTimesScalar 561 560 + Store 375(r42) 562 + 563: 476(ptr) AccessChain 108 475 + 564: 20(int) Load 563 + 565: 27(bool) INotEqual 564 132 + 566: 34(float) Select 565 283 256 + 567: 35(fvec3) Load 379(r43) + 568: 35(fvec3) VectorTimesScalar 567 566 + Store 379(r43) 568 + Store 570(c1) 119 + Store 571(c2) 119 + 576: 13(int) Load 570(c1) + 577: 6(float) ConvertSToF 576 + 578: 13(int) Load 571(c2) + 579: 6(float) ConvertSToF 578 + 580: 572(fvec4) CompositeConstruct 575 575 577 579 + Store 574(outval) 580 + 584: 572(fvec4) Load 574(outval) + 585: 573(ptr) AccessChain 583(psout) 109 + Store 585 584 + 588: 573(ptr) AccessChain 583(psout) 109 + 589: 572(fvec4) Load 588 + Store 587(Color) 589 + Return + FunctionEnd + 11(Fn_F3(vf3;): 2 Function None 9 + 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 + 111: 110(ptr) AccessChain 108 109 + 112: 14(ivec3) Load 111 + 113: 7(fvec3) ConvertSToF 112 + Store 42(p) 113 + 114: 110(ptr) AccessChain 108 109 + 115: 14(ivec3) Load 114 + 116: 7(fvec3) ConvertSToF 115 + ReturnValue 116 + FunctionEnd +46(Fn_R_F3U(vf3;): 7(fvec3) Function None 41 + 45(p): 8(ptr) FunctionParameter + 47: Label + 121: 120(ptr) AccessChain 108 119 + 122: 21(ivec3) Load 121 + 123: 7(fvec3) ConvertUToF 122 + Store 45(p) 123 + 124: 120(ptr) AccessChain 108 119 + 125: 21(ivec3) Load 124 + 126: 7(fvec3) ConvertUToF 125 + ReturnValue 126 + FunctionEnd +49(Fn_R_F3B(vf3;): 7(fvec3) Function None 41 + 48(p): 8(ptr) FunctionParameter + 50: Label + 130: 120(ptr) AccessChain 108 129 + 131: 21(ivec3) Load 130 + 134: 28(bvec3) INotEqual 131 133 + 139: 7(fvec3) Select 134 138 137 + Store 48(p) 139 + 140: 120(ptr) AccessChain 108 129 + 141: 21(ivec3) Load 140 + 142: 28(bvec3) INotEqual 141 133 + 143: 7(fvec3) Select 142 138 137 + ReturnValue 143 + FunctionEnd +52(Fn_R_F3D(vf3;): 7(fvec3) Function None 41 + 51(p): 8(ptr) FunctionParameter + 53: Label + 148: 147(ptr) AccessChain 108 146 + 149: 35(fvec3) Load 148 + 150: 7(fvec3) FConvert 149 + Store 51(p) 150 + 151: 147(ptr) AccessChain 108 146 + 152: 35(fvec3) Load 151 + 153: 7(fvec3) FConvert 152 + ReturnValue 153 + FunctionEnd +56(Fn_R_I3U(vi3;): 14(ivec3) Function None 54 + 55(p): 15(ptr) FunctionParameter + 57: Label + 156: 120(ptr) AccessChain 108 119 + 157: 21(ivec3) Load 156 + 158: 14(ivec3) Bitcast 157 + Store 55(p) 158 + 159: 120(ptr) AccessChain 108 119 + 160: 21(ivec3) Load 159 + 161: 14(ivec3) Bitcast 160 + ReturnValue 161 + FunctionEnd +59(Fn_R_I3B(vi3;): 14(ivec3) Function None 54 + 58(p): 15(ptr) FunctionParameter + 60: Label + 164: 120(ptr) AccessChain 108 129 + 165: 21(ivec3) Load 164 + 166: 28(bvec3) INotEqual 165 133 + 169: 14(ivec3) Select 166 168 167 + Store 58(p) 169 + 170: 120(ptr) AccessChain 108 129 + 171: 21(ivec3) Load 170 + 172: 28(bvec3) INotEqual 171 133 + 173: 14(ivec3) Select 172 168 167 + ReturnValue 173 + FunctionEnd +62(Fn_R_I3F(vi3;): 14(ivec3) Function None 54 + 61(p): 15(ptr) FunctionParameter + 63: Label + 178: 177(ptr) AccessChain 108 176 + 179: 7(fvec3) Load 178 + 180: 14(ivec3) ConvertFToS 179 + Store 61(p) 180 + 181: 177(ptr) AccessChain 108 176 + 182: 7(fvec3) Load 181 + 183: 14(ivec3) ConvertFToS 182 + ReturnValue 183 + FunctionEnd +65(Fn_R_I3D(vi3;): 14(ivec3) Function None 54 + 64(p): 15(ptr) FunctionParameter + 66: Label + 186: 147(ptr) AccessChain 108 146 + 187: 35(fvec3) Load 186 + 188: 14(ivec3) ConvertFToS 187 + Store 64(p) 188 + 189: 147(ptr) AccessChain 108 146 + 190: 35(fvec3) Load 189 + 191: 14(ivec3) ConvertFToS 190 + ReturnValue 191 + FunctionEnd +69(Fn_R_U3I(vu3;): 21(ivec3) Function None 67 + 68(p): 22(ptr) FunctionParameter + 70: Label + 194: 110(ptr) AccessChain 108 109 + 195: 14(ivec3) Load 194 + 196: 21(ivec3) Bitcast 195 + Store 68(p) 196 + 197: 110(ptr) AccessChain 108 109 + 198: 14(ivec3) Load 197 + 199: 21(ivec3) Bitcast 198 + ReturnValue 199 + FunctionEnd +72(Fn_R_U3F(vu3;): 21(ivec3) Function None 67 + 71(p): 22(ptr) FunctionParameter + 73: Label + 202: 177(ptr) AccessChain 108 176 + 203: 7(fvec3) Load 202 + 204: 21(ivec3) ConvertFToU 203 + Store 71(p) 204 + 205: 177(ptr) AccessChain 108 176 + 206: 7(fvec3) Load 205 + 207: 21(ivec3) ConvertFToU 206 + ReturnValue 207 + FunctionEnd +75(Fn_R_U3B(vu3;): 21(ivec3) Function None 67 + 74(p): 22(ptr) FunctionParameter + 76: Label + 210: 120(ptr) AccessChain 108 129 + 211: 21(ivec3) Load 210 + 212: 28(bvec3) INotEqual 211 133 + 215: 21(ivec3) Select 212 214 133 + Store 74(p) 215 + 216: 120(ptr) AccessChain 108 129 + 217: 21(ivec3) Load 216 + 218: 28(bvec3) INotEqual 217 133 + 219: 21(ivec3) Select 218 214 133 + ReturnValue 219 + FunctionEnd +78(Fn_R_U3D(vu3;): 21(ivec3) Function None 67 + 77(p): 22(ptr) FunctionParameter + 79: Label + 222: 147(ptr) AccessChain 108 146 + 223: 35(fvec3) Load 222 + 224: 21(ivec3) ConvertFToU 223 + Store 77(p) 224 + 225: 147(ptr) AccessChain 108 146 + 226: 35(fvec3) Load 225 + 227: 21(ivec3) ConvertFToU 226 + ReturnValue 227 + FunctionEnd +82(Fn_R_B3I(vb3;): 28(bvec3) Function None 80 + 81(p): 29(ptr) FunctionParameter + 83: Label + 230: 110(ptr) AccessChain 108 109 + 231: 14(ivec3) Load 230 + 232: 28(bvec3) INotEqual 231 133 + Store 81(p) 232 + 233: 110(ptr) AccessChain 108 109 + 234: 14(ivec3) Load 233 + 235: 28(bvec3) INotEqual 234 133 + ReturnValue 235 + FunctionEnd +85(Fn_R_B3U(vb3;): 28(bvec3) Function None 80 + 84(p): 29(ptr) FunctionParameter + 86: Label + 238: 120(ptr) AccessChain 108 119 + 239: 21(ivec3) Load 238 + 240: 28(bvec3) INotEqual 239 133 + Store 84(p) 240 + 241: 120(ptr) AccessChain 108 119 + 242: 21(ivec3) Load 241 + 243: 28(bvec3) INotEqual 242 133 + ReturnValue 243 + FunctionEnd +88(Fn_R_B3F(vb3;): 28(bvec3) Function None 80 + 87(p): 29(ptr) FunctionParameter + 89: Label + 246: 177(ptr) AccessChain 108 176 + 247: 7(fvec3) Load 246 + 248: 28(bvec3) FOrdNotEqual 247 137 + Store 87(p) 248 + 249: 177(ptr) AccessChain 108 176 + 250: 7(fvec3) Load 249 + 251: 28(bvec3) FOrdNotEqual 250 137 + ReturnValue 251 + FunctionEnd +91(Fn_R_B3D(vb3;): 28(bvec3) Function None 80 + 90(p): 29(ptr) FunctionParameter + 92: Label + 254: 147(ptr) AccessChain 108 146 + 255: 35(fvec3) Load 254 + 258: 28(bvec3) FOrdNotEqual 255 257 + Store 90(p) 258 + 259: 147(ptr) AccessChain 108 146 + 260: 35(fvec3) Load 259 + 261: 28(bvec3) FOrdNotEqual 260 257 + ReturnValue 261 + FunctionEnd +95(Fn_R_D3I(vd3;): 35(fvec3) Function None 93 + 94(p): 36(ptr) FunctionParameter + 96: Label + 264: 110(ptr) AccessChain 108 109 + 265: 14(ivec3) Load 264 + 266: 35(fvec3) ConvertSToF 265 + Store 94(p) 266 + 267: 110(ptr) AccessChain 108 109 + 268: 14(ivec3) Load 267 + 269: 35(fvec3) ConvertSToF 268 + ReturnValue 269 + FunctionEnd +98(Fn_R_D3U(vd3;): 35(fvec3) Function None 93 + 97(p): 36(ptr) FunctionParameter + 99: Label + 272: 120(ptr) AccessChain 108 119 + 273: 21(ivec3) Load 272 + 274: 35(fvec3) ConvertUToF 273 + Store 97(p) 274 + 275: 120(ptr) AccessChain 108 119 + 276: 21(ivec3) Load 275 + 277: 35(fvec3) ConvertUToF 276 + ReturnValue 277 + FunctionEnd +101(Fn_R_D3B(vd3;): 35(fvec3) Function None 93 + 100(p): 36(ptr) FunctionParameter + 102: Label + 280: 120(ptr) AccessChain 108 129 + 281: 21(ivec3) Load 280 + 282: 28(bvec3) INotEqual 281 133 + 285: 35(fvec3) Select 282 284 257 + Store 100(p) 285 + 286: 120(ptr) AccessChain 108 129 + 287: 21(ivec3) Load 286 + 288: 28(bvec3) INotEqual 287 133 + 289: 35(fvec3) Select 288 284 257 + ReturnValue 289 + FunctionEnd +104(Fn_R_D3F(vd3;): 35(fvec3) Function None 93 + 103(p): 36(ptr) FunctionParameter + 105: Label + 292: 177(ptr) AccessChain 108 176 + 293: 7(fvec3) Load 292 + 294: 35(fvec3) FConvert 293 + Store 103(p) 294 + 295: 177(ptr) AccessChain 108 176 + 296: 7(fvec3) Load 295 + 297: 35(fvec3) FConvert 296 + ReturnValue 297 + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/hlsl.reflection.binding.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.reflection.binding.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.reflection.binding.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.reflection.binding.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.reflection.binding.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.reflection.binding.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.reflection.binding.vert.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.reflection.binding.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.reflection.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.reflection.vert.out similarity index 75% rename from deps/glslang-new/Test/baseResults/hlsl.reflection.vert.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.reflection.vert.out index 5f7a033961..8ecfde6168 100644 --- a/deps/glslang-new/Test/baseResults/hlsl.reflection.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.reflection.vert.out @@ -2,19 +2,26 @@ 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 +ablock.scalar: offset 12, type 1404, size 1, index 2, binding -1 m23: offset 16, type 8b67, size 1, index 0, binding -1 scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 -c_m23: offset 16, type 8b67, size 1, index 2, binding -1 -c_scalarAfterm23: offset 48, type 1404, size 1, index 2, binding -1 +c_m23: offset 16, type 8b67, size 1, index 3, binding -1 +c_scalarAfterm23: offset 48, type 1404, size 1, index 3, binding -1 scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 floatArray: offset 112, type 1406, size 5, index 0, binding -1 scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 -m22: offset 208, type 8b5a, size 9, index 0, binding -1 +ablock.memfloat2: offset 48, type 8b50, size 1, index 2, binding -1 +ablock.memf1: offset 56, type 1406, size 1, index 2, binding -1 +ablock.memf2: offset 60, type 8b56, size 1, index 2, binding -1 +ablock.memf3: offset 64, type 1404, size 1, index 2, binding -1 +ablock.memfloat2a: offset 72, type 8b50, size 1, index 2, binding -1 +ablock.m22: offset 80, type 8b5a, size 7, index 2, binding -1 dm22: offset 32, type 8b5a, size 4, index 1, binding -1 -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 +m22: offset 208, type 8b5a, size 3, index 0, binding -1 +nest.foo.n1.a: offset 0, type 1406, size 1, index 4, binding -1 +nest.foo.n2.b: offset 16, type 1406, size 1, index 4, binding -1 +nest.foo.n2.c: offset 20, type 1406, size 1, index 4, binding -1 +nest.foo.n2.d: offset 24, type 1406, size 1, index 4, binding -1 deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1, binding -1 deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1, binding -1 deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1, binding -1 @@ -54,18 +61,19 @@ 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 +arrBl.foo: offset 0, type 1406, size 1, index 5, binding -1 +arrBl2.foo: offset 0, type 1406, size 1, index 6, binding -1 anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 uf1: offset 16, type 1406, size 1, index 1, binding -1 Uniform block reflection: nameless: offset -1, type ffffffff, size 496, index -1, binding -1 $Global: offset -1, type ffffffff, size 3088, index -1, binding -1 +ablock: offset -1, type ffffffff, size 304, index -1, binding -1 c_nameless: offset -1, type ffffffff, size 96, index -1, binding -1 -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 +nest: offset -1, type ffffffff, size 32, index -1, binding -1 +arrBl: offset -1, type ffffffff, size 4, index -1, binding -1 +arrBl2: offset -1, type ffffffff, size 4, index -1, binding -1 Vertex attribute reflection: attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.atomics.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.atomics.frag.out new file mode 100644 index 0000000000..123bd4cbee --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.atomics.frag.out @@ -0,0 +1,5261 @@ +hlsl.rw.atomics.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 1142 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 1111 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1di1" + Name 15 "$Global" + MemberName 15($Global) 0 "u1" + MemberName 15($Global) 1 "u2" + MemberName 15($Global) 2 "u3" + MemberName 15($Global) 3 "u1b" + MemberName 15($Global) 4 "u1c" + MemberName 15($Global) 5 "i1" + MemberName 15($Global) 6 "i2" + MemberName 15($Global) 7 "i3" + MemberName 15($Global) 8 "i1b" + MemberName 15($Global) 9 "i1c" + Name 17 "" + Name 31 "out_i1" + Name 115 "g_tTex1du1" + Name 126 "out_u1" + Name 211 "g_tTex2di1" + Name 302 "g_tTex2du1" + Name 393 "g_tTex3di1" + Name 484 "g_tTex3du1" + Name 575 "g_tTex1di1a" + Name 664 "g_tTex1du1a" + Name 925 "g_tBuffI" + Name 1014 "g_tBuffU" + Name 1103 "PS_OUTPUT" + MemberName 1103(PS_OUTPUT) 0 "Color" + Name 1105 "psout" + Name 1111 "Color" + Name 1117 "g_sSamp" + Name 1120 "g_tTex1df1" + Name 1123 "g_tTex2df1" + Name 1126 "g_tTex3df1" + Name 1129 "g_tTex1df1a" + Name 1132 "g_tTex2df1a" + Name 1135 "g_tTex2di1a" + Name 1138 "g_tTex2du1a" + Name 1141 "g_tBuffF" + Decorate 9(g_tTex1di1) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 28 + MemberDecorate 15($Global) 4 Offset 32 + MemberDecorate 15($Global) 5 Offset 36 + MemberDecorate 15($Global) 6 Offset 40 + MemberDecorate 15($Global) 7 Offset 48 + MemberDecorate 15($Global) 8 Offset 60 + MemberDecorate 15($Global) 9 Offset 64 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 115(g_tTex1du1) DescriptorSet 0 + Decorate 211(g_tTex2di1) DescriptorSet 0 + Decorate 302(g_tTex2du1) DescriptorSet 0 + Decorate 393(g_tTex3di1) DescriptorSet 0 + Decorate 484(g_tTex3du1) DescriptorSet 0 + Decorate 575(g_tTex1di1a) DescriptorSet 0 + Decorate 664(g_tTex1du1a) DescriptorSet 0 + Decorate 925(g_tBuffI) DescriptorSet 0 + Decorate 1014(g_tBuffU) DescriptorSet 0 + Decorate 1111(Color) Location 0 + Decorate 1117(g_sSamp) DescriptorSet 0 + Decorate 1120(g_tTex1df1) DescriptorSet 0 + Decorate 1123(g_tTex2df1) DescriptorSet 0 + Decorate 1126(g_tTex3df1) DescriptorSet 0 + Decorate 1129(g_tTex1df1a) DescriptorSet 0 + Decorate 1132(g_tTex2df1a) DescriptorSet 0 + Decorate 1135(g_tTex2di1a) DescriptorSet 0 + Decorate 1138(g_tTex2du1a) DescriptorSet 0 + Decorate 1141(g_tBuffF) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeImage 6(int) 1D nonsampled format:R32i + 8: TypePointer UniformConstant 7 + 9(g_tTex1di1): 8(ptr) Variable UniformConstant + 10: TypeInt 32 0 + 11: TypeVector 10(int) 2 + 12: TypeVector 10(int) 3 + 13: TypeVector 6(int) 2 + 14: TypeVector 6(int) 3 + 15($Global): TypeStruct 10(int) 11(ivec2) 12(ivec3) 10(int) 10(int) 6(int) 13(ivec2) 14(ivec3) 6(int) 6(int) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 6(int) Constant 5 + 19: TypePointer Uniform 6(int) + 22: 6(int) Constant 8 + 25: 10(int) Constant 0 + 26: TypePointer Image 6(int) + 28: 10(int) Constant 1 + 30: TypePointer Function 6(int) + 54: 6(int) Constant 9 + 113: TypeImage 10(int) 1D nonsampled format:R32ui + 114: TypePointer UniformConstant 113 + 115(g_tTex1du1): 114(ptr) Variable UniformConstant + 116: 6(int) Constant 0 + 117: TypePointer Uniform 10(int) + 122: TypePointer Image 10(int) + 125: TypePointer Function 10(int) + 147: 6(int) Constant 3 + 150: 6(int) Constant 4 + 209: TypeImage 6(int) 2D nonsampled format:R32i + 210: TypePointer UniformConstant 209 + 211(g_tTex2di1): 210(ptr) Variable UniformConstant + 212: 6(int) Constant 6 + 213: TypePointer Uniform 13(ivec2) + 300: TypeImage 10(int) 2D nonsampled format:R32ui + 301: TypePointer UniformConstant 300 + 302(g_tTex2du1): 301(ptr) Variable UniformConstant + 303: 6(int) Constant 1 + 304: TypePointer Uniform 11(ivec2) + 391: TypeImage 6(int) 3D nonsampled format:R32i + 392: TypePointer UniformConstant 391 + 393(g_tTex3di1): 392(ptr) Variable UniformConstant + 394: 6(int) Constant 7 + 395: TypePointer Uniform 14(ivec3) + 482: TypeImage 10(int) 3D nonsampled format:R32ui + 483: TypePointer UniformConstant 482 + 484(g_tTex3du1): 483(ptr) Variable UniformConstant + 485: 6(int) Constant 2 + 486: TypePointer Uniform 12(ivec3) + 573: TypeImage 6(int) 1D array nonsampled format:R32i + 574: TypePointer UniformConstant 573 +575(g_tTex1di1a): 574(ptr) Variable UniformConstant + 662: TypeImage 10(int) 1D array nonsampled format:R32ui + 663: TypePointer UniformConstant 662 +664(g_tTex1du1a): 663(ptr) Variable UniformConstant + 923: TypeImage 6(int) Buffer nonsampled format:R32i + 924: TypePointer UniformConstant 923 + 925(g_tBuffI): 924(ptr) Variable UniformConstant + 1012: TypeImage 10(int) Buffer nonsampled format:R32ui + 1013: TypePointer UniformConstant 1012 + 1014(g_tBuffU): 1013(ptr) Variable UniformConstant + 1101: TypeFloat 32 + 1102: TypeVector 1101(float) 4 + 1103(PS_OUTPUT): TypeStruct 1102(fvec4) + 1104: TypePointer Function 1103(PS_OUTPUT) + 1106: 1101(float) Constant 1065353216 + 1107: 1102(fvec4) ConstantComposite 1106 1106 1106 1106 + 1108: TypePointer Function 1102(fvec4) + 1110: TypePointer Output 1102(fvec4) + 1111(Color): 1110(ptr) Variable Output + 1115: TypeSampler + 1116: TypePointer UniformConstant 1115 + 1117(g_sSamp): 1116(ptr) Variable UniformConstant + 1118: TypeImage 1101(float) 1D nonsampled format:R32f + 1119: TypePointer UniformConstant 1118 +1120(g_tTex1df1): 1119(ptr) Variable UniformConstant + 1121: TypeImage 1101(float) 2D nonsampled format:R32f + 1122: TypePointer UniformConstant 1121 +1123(g_tTex2df1): 1122(ptr) Variable UniformConstant + 1124: TypeImage 1101(float) 3D nonsampled format:R32f + 1125: TypePointer UniformConstant 1124 +1126(g_tTex3df1): 1125(ptr) Variable UniformConstant + 1127: TypeImage 1101(float) 1D array nonsampled format:R32f + 1128: TypePointer UniformConstant 1127 +1129(g_tTex1df1a): 1128(ptr) Variable UniformConstant + 1130: TypeImage 1101(float) 2D array nonsampled format:R32f + 1131: TypePointer UniformConstant 1130 +1132(g_tTex2df1a): 1131(ptr) Variable UniformConstant + 1133: TypeImage 6(int) 2D array nonsampled format:R32i + 1134: TypePointer UniformConstant 1133 +1135(g_tTex2di1a): 1134(ptr) Variable UniformConstant + 1136: TypeImage 10(int) 2D array nonsampled format:R32ui + 1137: TypePointer UniformConstant 1136 +1138(g_tTex2du1a): 1137(ptr) Variable UniformConstant + 1139: TypeImage 1101(float) Buffer nonsampled format:R32f + 1140: TypePointer UniformConstant 1139 + 1141(g_tBuffF): 1140(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 31(out_i1): 30(ptr) Variable Function + 126(out_u1): 125(ptr) Variable Function + 1105(psout): 1104(ptr) Variable Function + 20: 19(ptr) AccessChain 17 18 + 21: 6(int) Load 20 + 23: 19(ptr) AccessChain 17 22 + 24: 6(int) Load 23 + 27: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 21 25 + 29: 6(int) AtomicIAdd 27 28 25 24 + 32: 19(ptr) AccessChain 17 18 + 33: 6(int) Load 32 + 34: 19(ptr) AccessChain 17 18 + 35: 6(int) Load 34 + 36: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 33 25 + 37: 6(int) AtomicIAdd 36 28 25 35 + Store 31(out_i1) 37 + 38: 19(ptr) AccessChain 17 18 + 39: 6(int) Load 38 + 40: 19(ptr) AccessChain 17 22 + 41: 6(int) Load 40 + 42: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 39 25 + 43: 6(int) AtomicAnd 42 28 25 41 + 44: 19(ptr) AccessChain 17 18 + 45: 6(int) Load 44 + 46: 19(ptr) AccessChain 17 18 + 47: 6(int) Load 46 + 48: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 45 25 + 49: 6(int) AtomicAnd 48 28 25 47 + Store 31(out_i1) 49 + 50: 19(ptr) AccessChain 17 18 + 51: 6(int) Load 50 + 52: 19(ptr) AccessChain 17 22 + 53: 6(int) Load 52 + 55: 19(ptr) AccessChain 17 54 + 56: 6(int) Load 55 + 57: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 51 25 + 58: 6(int) AtomicCompareExchange 57 28 25 25 56 53 + Store 31(out_i1) 58 + 59: 19(ptr) AccessChain 17 18 + 60: 6(int) Load 59 + 61: 19(ptr) AccessChain 17 18 + 62: 6(int) Load 61 + 63: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 60 25 + 64: 6(int) AtomicExchange 63 28 25 62 + Store 31(out_i1) 64 + 65: 19(ptr) AccessChain 17 18 + 66: 6(int) Load 65 + 67: 19(ptr) AccessChain 17 22 + 68: 6(int) Load 67 + 69: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 66 25 + 70: 6(int) AtomicSMax 69 28 25 68 + 71: 19(ptr) AccessChain 17 18 + 72: 6(int) Load 71 + 73: 19(ptr) AccessChain 17 18 + 74: 6(int) Load 73 + 75: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 72 25 + 76: 6(int) AtomicSMax 75 28 25 74 + Store 31(out_i1) 76 + 77: 19(ptr) AccessChain 17 18 + 78: 6(int) Load 77 + 79: 19(ptr) AccessChain 17 22 + 80: 6(int) Load 79 + 81: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 78 25 + 82: 6(int) AtomicSMin 81 28 25 80 + 83: 19(ptr) AccessChain 17 18 + 84: 6(int) Load 83 + 85: 19(ptr) AccessChain 17 18 + 86: 6(int) Load 85 + 87: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 84 25 + 88: 6(int) AtomicSMin 87 28 25 86 + Store 31(out_i1) 88 + 89: 19(ptr) AccessChain 17 18 + 90: 6(int) Load 89 + 91: 19(ptr) AccessChain 17 22 + 92: 6(int) Load 91 + 93: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 90 25 + 94: 6(int) AtomicOr 93 28 25 92 + 95: 19(ptr) AccessChain 17 18 + 96: 6(int) Load 95 + 97: 19(ptr) AccessChain 17 18 + 98: 6(int) Load 97 + 99: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 96 25 + 100: 6(int) AtomicOr 99 28 25 98 + Store 31(out_i1) 100 + 101: 19(ptr) AccessChain 17 18 + 102: 6(int) Load 101 + 103: 19(ptr) AccessChain 17 22 + 104: 6(int) Load 103 + 105: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 102 25 + 106: 6(int) AtomicXor 105 28 25 104 + 107: 19(ptr) AccessChain 17 18 + 108: 6(int) Load 107 + 109: 19(ptr) AccessChain 17 18 + 110: 6(int) Load 109 + 111: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 108 25 + 112: 6(int) AtomicXor 111 28 25 110 + Store 31(out_i1) 112 + 118: 117(ptr) AccessChain 17 116 + 119: 10(int) Load 118 + 120: 117(ptr) AccessChain 17 116 + 121: 10(int) Load 120 + 123: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 119 25 + 124: 10(int) AtomicIAdd 123 28 25 121 + 127: 117(ptr) AccessChain 17 116 + 128: 10(int) Load 127 + 129: 117(ptr) AccessChain 17 116 + 130: 10(int) Load 129 + 131: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 128 25 + 132: 10(int) AtomicIAdd 131 28 25 130 + Store 126(out_u1) 132 + 133: 117(ptr) AccessChain 17 116 + 134: 10(int) Load 133 + 135: 117(ptr) AccessChain 17 116 + 136: 10(int) Load 135 + 137: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 134 25 + 138: 10(int) AtomicAnd 137 28 25 136 + 139: 117(ptr) AccessChain 17 116 + 140: 10(int) Load 139 + 141: 117(ptr) AccessChain 17 116 + 142: 10(int) Load 141 + 143: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 140 25 + 144: 10(int) AtomicAnd 143 28 25 142 + Store 126(out_u1) 144 + 145: 117(ptr) AccessChain 17 116 + 146: 10(int) Load 145 + 148: 117(ptr) AccessChain 17 147 + 149: 10(int) Load 148 + 151: 117(ptr) AccessChain 17 150 + 152: 10(int) Load 151 + 153: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 146 25 + 154: 10(int) AtomicCompareExchange 153 28 25 25 152 149 + Store 126(out_u1) 154 + 155: 117(ptr) AccessChain 17 116 + 156: 10(int) Load 155 + 157: 117(ptr) AccessChain 17 116 + 158: 10(int) Load 157 + 159: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 156 25 + 160: 10(int) AtomicExchange 159 28 25 158 + Store 126(out_u1) 160 + 161: 117(ptr) AccessChain 17 116 + 162: 10(int) Load 161 + 163: 117(ptr) AccessChain 17 116 + 164: 10(int) Load 163 + 165: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 162 25 + 166: 10(int) AtomicUMax 165 28 25 164 + 167: 117(ptr) AccessChain 17 116 + 168: 10(int) Load 167 + 169: 117(ptr) AccessChain 17 116 + 170: 10(int) Load 169 + 171: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 168 25 + 172: 10(int) AtomicUMax 171 28 25 170 + Store 126(out_u1) 172 + 173: 117(ptr) AccessChain 17 116 + 174: 10(int) Load 173 + 175: 117(ptr) AccessChain 17 116 + 176: 10(int) Load 175 + 177: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 174 25 + 178: 10(int) AtomicUMin 177 28 25 176 + 179: 117(ptr) AccessChain 17 116 + 180: 10(int) Load 179 + 181: 117(ptr) AccessChain 17 116 + 182: 10(int) Load 181 + 183: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 180 25 + 184: 10(int) AtomicUMin 183 28 25 182 + Store 126(out_u1) 184 + 185: 117(ptr) AccessChain 17 116 + 186: 10(int) Load 185 + 187: 117(ptr) AccessChain 17 116 + 188: 10(int) Load 187 + 189: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 186 25 + 190: 10(int) AtomicOr 189 28 25 188 + 191: 117(ptr) AccessChain 17 116 + 192: 10(int) Load 191 + 193: 117(ptr) AccessChain 17 116 + 194: 10(int) Load 193 + 195: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 192 25 + 196: 10(int) AtomicOr 195 28 25 194 + Store 126(out_u1) 196 + 197: 117(ptr) AccessChain 17 116 + 198: 10(int) Load 197 + 199: 117(ptr) AccessChain 17 116 + 200: 10(int) Load 199 + 201: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 198 25 + 202: 10(int) AtomicXor 201 28 25 200 + 203: 117(ptr) AccessChain 17 116 + 204: 10(int) Load 203 + 205: 117(ptr) AccessChain 17 116 + 206: 10(int) Load 205 + 207: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 204 25 + 208: 10(int) AtomicXor 207 28 25 206 + Store 126(out_u1) 208 + 214: 213(ptr) AccessChain 17 212 + 215: 13(ivec2) Load 214 + 216: 19(ptr) AccessChain 17 22 + 217: 6(int) Load 216 + 218: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 215 25 + 219: 6(int) AtomicIAdd 218 28 25 217 + 220: 213(ptr) AccessChain 17 212 + 221: 13(ivec2) Load 220 + 222: 19(ptr) AccessChain 17 18 + 223: 6(int) Load 222 + 224: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 221 25 + 225: 6(int) AtomicIAdd 224 28 25 223 + Store 31(out_i1) 225 + 226: 213(ptr) AccessChain 17 212 + 227: 13(ivec2) Load 226 + 228: 19(ptr) AccessChain 17 22 + 229: 6(int) Load 228 + 230: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 227 25 + 231: 6(int) AtomicAnd 230 28 25 229 + 232: 213(ptr) AccessChain 17 212 + 233: 13(ivec2) Load 232 + 234: 19(ptr) AccessChain 17 18 + 235: 6(int) Load 234 + 236: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 233 25 + 237: 6(int) AtomicAnd 236 28 25 235 + Store 31(out_i1) 237 + 238: 213(ptr) AccessChain 17 212 + 239: 13(ivec2) Load 238 + 240: 19(ptr) AccessChain 17 22 + 241: 6(int) Load 240 + 242: 19(ptr) AccessChain 17 54 + 243: 6(int) Load 242 + 244: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 239 25 + 245: 6(int) AtomicCompareExchange 244 28 25 25 243 241 + Store 31(out_i1) 245 + 246: 213(ptr) AccessChain 17 212 + 247: 13(ivec2) Load 246 + 248: 19(ptr) AccessChain 17 18 + 249: 6(int) Load 248 + 250: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 247 25 + 251: 6(int) AtomicExchange 250 28 25 249 + Store 31(out_i1) 251 + 252: 213(ptr) AccessChain 17 212 + 253: 13(ivec2) Load 252 + 254: 19(ptr) AccessChain 17 22 + 255: 6(int) Load 254 + 256: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 253 25 + 257: 6(int) AtomicSMax 256 28 25 255 + 258: 213(ptr) AccessChain 17 212 + 259: 13(ivec2) Load 258 + 260: 19(ptr) AccessChain 17 18 + 261: 6(int) Load 260 + 262: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 259 25 + 263: 6(int) AtomicSMax 262 28 25 261 + Store 31(out_i1) 263 + 264: 213(ptr) AccessChain 17 212 + 265: 13(ivec2) Load 264 + 266: 19(ptr) AccessChain 17 22 + 267: 6(int) Load 266 + 268: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 265 25 + 269: 6(int) AtomicSMin 268 28 25 267 + 270: 213(ptr) AccessChain 17 212 + 271: 13(ivec2) Load 270 + 272: 19(ptr) AccessChain 17 18 + 273: 6(int) Load 272 + 274: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 271 25 + 275: 6(int) AtomicSMin 274 28 25 273 + Store 31(out_i1) 275 + 276: 213(ptr) AccessChain 17 212 + 277: 13(ivec2) Load 276 + 278: 19(ptr) AccessChain 17 22 + 279: 6(int) Load 278 + 280: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 277 25 + 281: 6(int) AtomicOr 280 28 25 279 + 282: 213(ptr) AccessChain 17 212 + 283: 13(ivec2) Load 282 + 284: 19(ptr) AccessChain 17 18 + 285: 6(int) Load 284 + 286: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 283 25 + 287: 6(int) AtomicOr 286 28 25 285 + Store 31(out_i1) 287 + 288: 213(ptr) AccessChain 17 212 + 289: 13(ivec2) Load 288 + 290: 19(ptr) AccessChain 17 22 + 291: 6(int) Load 290 + 292: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 289 25 + 293: 6(int) AtomicXor 292 28 25 291 + 294: 213(ptr) AccessChain 17 212 + 295: 13(ivec2) Load 294 + 296: 19(ptr) AccessChain 17 18 + 297: 6(int) Load 296 + 298: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 295 25 + 299: 6(int) AtomicXor 298 28 25 297 + Store 31(out_i1) 299 + 305: 304(ptr) AccessChain 17 303 + 306: 11(ivec2) Load 305 + 307: 117(ptr) AccessChain 17 116 + 308: 10(int) Load 307 + 309: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 306 25 + 310: 10(int) AtomicIAdd 309 28 25 308 + 311: 304(ptr) AccessChain 17 303 + 312: 11(ivec2) Load 311 + 313: 117(ptr) AccessChain 17 116 + 314: 10(int) Load 313 + 315: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 312 25 + 316: 10(int) AtomicIAdd 315 28 25 314 + Store 126(out_u1) 316 + 317: 304(ptr) AccessChain 17 303 + 318: 11(ivec2) Load 317 + 319: 117(ptr) AccessChain 17 116 + 320: 10(int) Load 319 + 321: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 318 25 + 322: 10(int) AtomicAnd 321 28 25 320 + 323: 304(ptr) AccessChain 17 303 + 324: 11(ivec2) Load 323 + 325: 117(ptr) AccessChain 17 116 + 326: 10(int) Load 325 + 327: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 324 25 + 328: 10(int) AtomicAnd 327 28 25 326 + Store 126(out_u1) 328 + 329: 304(ptr) AccessChain 17 303 + 330: 11(ivec2) Load 329 + 331: 117(ptr) AccessChain 17 147 + 332: 10(int) Load 331 + 333: 117(ptr) AccessChain 17 150 + 334: 10(int) Load 333 + 335: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 330 25 + 336: 10(int) AtomicCompareExchange 335 28 25 25 334 332 + Store 126(out_u1) 336 + 337: 304(ptr) AccessChain 17 303 + 338: 11(ivec2) Load 337 + 339: 117(ptr) AccessChain 17 116 + 340: 10(int) Load 339 + 341: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 338 25 + 342: 10(int) AtomicExchange 341 28 25 340 + Store 126(out_u1) 342 + 343: 304(ptr) AccessChain 17 303 + 344: 11(ivec2) Load 343 + 345: 117(ptr) AccessChain 17 116 + 346: 10(int) Load 345 + 347: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 344 25 + 348: 10(int) AtomicUMax 347 28 25 346 + 349: 304(ptr) AccessChain 17 303 + 350: 11(ivec2) Load 349 + 351: 117(ptr) AccessChain 17 116 + 352: 10(int) Load 351 + 353: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 350 25 + 354: 10(int) AtomicUMax 353 28 25 352 + Store 126(out_u1) 354 + 355: 304(ptr) AccessChain 17 303 + 356: 11(ivec2) Load 355 + 357: 117(ptr) AccessChain 17 116 + 358: 10(int) Load 357 + 359: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 356 25 + 360: 10(int) AtomicUMin 359 28 25 358 + 361: 304(ptr) AccessChain 17 303 + 362: 11(ivec2) Load 361 + 363: 117(ptr) AccessChain 17 116 + 364: 10(int) Load 363 + 365: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 362 25 + 366: 10(int) AtomicUMin 365 28 25 364 + Store 126(out_u1) 366 + 367: 304(ptr) AccessChain 17 303 + 368: 11(ivec2) Load 367 + 369: 117(ptr) AccessChain 17 116 + 370: 10(int) Load 369 + 371: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 368 25 + 372: 10(int) AtomicOr 371 28 25 370 + 373: 304(ptr) AccessChain 17 303 + 374: 11(ivec2) Load 373 + 375: 117(ptr) AccessChain 17 116 + 376: 10(int) Load 375 + 377: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 374 25 + 378: 10(int) AtomicOr 377 28 25 376 + Store 126(out_u1) 378 + 379: 304(ptr) AccessChain 17 303 + 380: 11(ivec2) Load 379 + 381: 117(ptr) AccessChain 17 116 + 382: 10(int) Load 381 + 383: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 380 25 + 384: 10(int) AtomicXor 383 28 25 382 + 385: 304(ptr) AccessChain 17 303 + 386: 11(ivec2) Load 385 + 387: 117(ptr) AccessChain 17 116 + 388: 10(int) Load 387 + 389: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 386 25 + 390: 10(int) AtomicXor 389 28 25 388 + Store 126(out_u1) 390 + 396: 395(ptr) AccessChain 17 394 + 397: 14(ivec3) Load 396 + 398: 19(ptr) AccessChain 17 22 + 399: 6(int) Load 398 + 400: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 397 25 + 401: 6(int) AtomicIAdd 400 28 25 399 + 402: 395(ptr) AccessChain 17 394 + 403: 14(ivec3) Load 402 + 404: 19(ptr) AccessChain 17 18 + 405: 6(int) Load 404 + 406: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 403 25 + 407: 6(int) AtomicIAdd 406 28 25 405 + Store 31(out_i1) 407 + 408: 395(ptr) AccessChain 17 394 + 409: 14(ivec3) Load 408 + 410: 19(ptr) AccessChain 17 22 + 411: 6(int) Load 410 + 412: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 409 25 + 413: 6(int) AtomicAnd 412 28 25 411 + 414: 395(ptr) AccessChain 17 394 + 415: 14(ivec3) Load 414 + 416: 19(ptr) AccessChain 17 18 + 417: 6(int) Load 416 + 418: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 415 25 + 419: 6(int) AtomicAnd 418 28 25 417 + Store 31(out_i1) 419 + 420: 395(ptr) AccessChain 17 394 + 421: 14(ivec3) Load 420 + 422: 19(ptr) AccessChain 17 22 + 423: 6(int) Load 422 + 424: 19(ptr) AccessChain 17 54 + 425: 6(int) Load 424 + 426: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 421 25 + 427: 6(int) AtomicCompareExchange 426 28 25 25 425 423 + Store 31(out_i1) 427 + 428: 395(ptr) AccessChain 17 394 + 429: 14(ivec3) Load 428 + 430: 19(ptr) AccessChain 17 18 + 431: 6(int) Load 430 + 432: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 429 25 + 433: 6(int) AtomicExchange 432 28 25 431 + Store 31(out_i1) 433 + 434: 395(ptr) AccessChain 17 394 + 435: 14(ivec3) Load 434 + 436: 19(ptr) AccessChain 17 22 + 437: 6(int) Load 436 + 438: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 435 25 + 439: 6(int) AtomicSMax 438 28 25 437 + 440: 395(ptr) AccessChain 17 394 + 441: 14(ivec3) Load 440 + 442: 19(ptr) AccessChain 17 18 + 443: 6(int) Load 442 + 444: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 441 25 + 445: 6(int) AtomicSMax 444 28 25 443 + Store 31(out_i1) 445 + 446: 395(ptr) AccessChain 17 394 + 447: 14(ivec3) Load 446 + 448: 19(ptr) AccessChain 17 22 + 449: 6(int) Load 448 + 450: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 447 25 + 451: 6(int) AtomicSMin 450 28 25 449 + 452: 395(ptr) AccessChain 17 394 + 453: 14(ivec3) Load 452 + 454: 19(ptr) AccessChain 17 18 + 455: 6(int) Load 454 + 456: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 453 25 + 457: 6(int) AtomicSMin 456 28 25 455 + Store 31(out_i1) 457 + 458: 395(ptr) AccessChain 17 394 + 459: 14(ivec3) Load 458 + 460: 19(ptr) AccessChain 17 22 + 461: 6(int) Load 460 + 462: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 459 25 + 463: 6(int) AtomicOr 462 28 25 461 + 464: 395(ptr) AccessChain 17 394 + 465: 14(ivec3) Load 464 + 466: 19(ptr) AccessChain 17 18 + 467: 6(int) Load 466 + 468: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 465 25 + 469: 6(int) AtomicOr 468 28 25 467 + Store 31(out_i1) 469 + 470: 395(ptr) AccessChain 17 394 + 471: 14(ivec3) Load 470 + 472: 19(ptr) AccessChain 17 22 + 473: 6(int) Load 472 + 474: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 471 25 + 475: 6(int) AtomicXor 474 28 25 473 + 476: 395(ptr) AccessChain 17 394 + 477: 14(ivec3) Load 476 + 478: 19(ptr) AccessChain 17 18 + 479: 6(int) Load 478 + 480: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 477 25 + 481: 6(int) AtomicXor 480 28 25 479 + Store 31(out_i1) 481 + 487: 486(ptr) AccessChain 17 485 + 488: 12(ivec3) Load 487 + 489: 117(ptr) AccessChain 17 116 + 490: 10(int) Load 489 + 491: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 488 25 + 492: 10(int) AtomicIAdd 491 28 25 490 + 493: 486(ptr) AccessChain 17 485 + 494: 12(ivec3) Load 493 + 495: 117(ptr) AccessChain 17 116 + 496: 10(int) Load 495 + 497: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 494 25 + 498: 10(int) AtomicIAdd 497 28 25 496 + Store 126(out_u1) 498 + 499: 486(ptr) AccessChain 17 485 + 500: 12(ivec3) Load 499 + 501: 117(ptr) AccessChain 17 116 + 502: 10(int) Load 501 + 503: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 500 25 + 504: 10(int) AtomicAnd 503 28 25 502 + 505: 486(ptr) AccessChain 17 485 + 506: 12(ivec3) Load 505 + 507: 117(ptr) AccessChain 17 116 + 508: 10(int) Load 507 + 509: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 506 25 + 510: 10(int) AtomicAnd 509 28 25 508 + Store 126(out_u1) 510 + 511: 486(ptr) AccessChain 17 485 + 512: 12(ivec3) Load 511 + 513: 117(ptr) AccessChain 17 147 + 514: 10(int) Load 513 + 515: 117(ptr) AccessChain 17 150 + 516: 10(int) Load 515 + 517: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 512 25 + 518: 10(int) AtomicCompareExchange 517 28 25 25 516 514 + Store 126(out_u1) 518 + 519: 486(ptr) AccessChain 17 485 + 520: 12(ivec3) Load 519 + 521: 117(ptr) AccessChain 17 116 + 522: 10(int) Load 521 + 523: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 520 25 + 524: 10(int) AtomicExchange 523 28 25 522 + Store 126(out_u1) 524 + 525: 486(ptr) AccessChain 17 485 + 526: 12(ivec3) Load 525 + 527: 117(ptr) AccessChain 17 116 + 528: 10(int) Load 527 + 529: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 526 25 + 530: 10(int) AtomicUMax 529 28 25 528 + 531: 486(ptr) AccessChain 17 485 + 532: 12(ivec3) Load 531 + 533: 117(ptr) AccessChain 17 116 + 534: 10(int) Load 533 + 535: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 532 25 + 536: 10(int) AtomicUMax 535 28 25 534 + Store 126(out_u1) 536 + 537: 486(ptr) AccessChain 17 485 + 538: 12(ivec3) Load 537 + 539: 117(ptr) AccessChain 17 116 + 540: 10(int) Load 539 + 541: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 538 25 + 542: 10(int) AtomicUMin 541 28 25 540 + 543: 486(ptr) AccessChain 17 485 + 544: 12(ivec3) Load 543 + 545: 117(ptr) AccessChain 17 116 + 546: 10(int) Load 545 + 547: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 544 25 + 548: 10(int) AtomicUMin 547 28 25 546 + Store 126(out_u1) 548 + 549: 486(ptr) AccessChain 17 485 + 550: 12(ivec3) Load 549 + 551: 117(ptr) AccessChain 17 116 + 552: 10(int) Load 551 + 553: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 550 25 + 554: 10(int) AtomicOr 553 28 25 552 + 555: 486(ptr) AccessChain 17 485 + 556: 12(ivec3) Load 555 + 557: 117(ptr) AccessChain 17 116 + 558: 10(int) Load 557 + 559: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 556 25 + 560: 10(int) AtomicOr 559 28 25 558 + Store 126(out_u1) 560 + 561: 486(ptr) AccessChain 17 485 + 562: 12(ivec3) Load 561 + 563: 117(ptr) AccessChain 17 116 + 564: 10(int) Load 563 + 565: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 562 25 + 566: 10(int) AtomicXor 565 28 25 564 + 567: 486(ptr) AccessChain 17 485 + 568: 12(ivec3) Load 567 + 569: 117(ptr) AccessChain 17 116 + 570: 10(int) Load 569 + 571: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 568 25 + 572: 10(int) AtomicXor 571 28 25 570 + Store 126(out_u1) 572 + 576: 213(ptr) AccessChain 17 212 + 577: 13(ivec2) Load 576 + 578: 19(ptr) AccessChain 17 22 + 579: 6(int) Load 578 + 580: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 577 25 + 581: 6(int) AtomicIAdd 580 28 25 579 + 582: 213(ptr) AccessChain 17 212 + 583: 13(ivec2) Load 582 + 584: 19(ptr) AccessChain 17 18 + 585: 6(int) Load 584 + 586: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 583 25 + 587: 6(int) AtomicIAdd 586 28 25 585 + Store 31(out_i1) 587 + 588: 213(ptr) AccessChain 17 212 + 589: 13(ivec2) Load 588 + 590: 19(ptr) AccessChain 17 22 + 591: 6(int) Load 590 + 592: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 589 25 + 593: 6(int) AtomicAnd 592 28 25 591 + 594: 213(ptr) AccessChain 17 212 + 595: 13(ivec2) Load 594 + 596: 19(ptr) AccessChain 17 18 + 597: 6(int) Load 596 + 598: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 595 25 + 599: 6(int) AtomicAnd 598 28 25 597 + Store 31(out_i1) 599 + 600: 213(ptr) AccessChain 17 212 + 601: 13(ivec2) Load 600 + 602: 19(ptr) AccessChain 17 22 + 603: 6(int) Load 602 + 604: 19(ptr) AccessChain 17 54 + 605: 6(int) Load 604 + 606: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 601 25 + 607: 6(int) AtomicCompareExchange 606 28 25 25 605 603 + Store 31(out_i1) 607 + 608: 213(ptr) AccessChain 17 212 + 609: 13(ivec2) Load 608 + 610: 19(ptr) AccessChain 17 18 + 611: 6(int) Load 610 + 612: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 609 25 + 613: 6(int) AtomicExchange 612 28 25 611 + Store 31(out_i1) 613 + 614: 213(ptr) AccessChain 17 212 + 615: 13(ivec2) Load 614 + 616: 19(ptr) AccessChain 17 22 + 617: 6(int) Load 616 + 618: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 615 25 + 619: 6(int) AtomicSMax 618 28 25 617 + 620: 213(ptr) AccessChain 17 212 + 621: 13(ivec2) Load 620 + 622: 19(ptr) AccessChain 17 18 + 623: 6(int) Load 622 + 624: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 621 25 + 625: 6(int) AtomicSMax 624 28 25 623 + Store 31(out_i1) 625 + 626: 213(ptr) AccessChain 17 212 + 627: 13(ivec2) Load 626 + 628: 19(ptr) AccessChain 17 22 + 629: 6(int) Load 628 + 630: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 627 25 + 631: 6(int) AtomicSMin 630 28 25 629 + 632: 213(ptr) AccessChain 17 212 + 633: 13(ivec2) Load 632 + 634: 19(ptr) AccessChain 17 18 + 635: 6(int) Load 634 + 636: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 633 25 + 637: 6(int) AtomicSMin 636 28 25 635 + Store 31(out_i1) 637 + 638: 213(ptr) AccessChain 17 212 + 639: 13(ivec2) Load 638 + 640: 19(ptr) AccessChain 17 22 + 641: 6(int) Load 640 + 642: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 639 25 + 643: 6(int) AtomicOr 642 28 25 641 + 644: 213(ptr) AccessChain 17 212 + 645: 13(ivec2) Load 644 + 646: 19(ptr) AccessChain 17 18 + 647: 6(int) Load 646 + 648: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 645 25 + 649: 6(int) AtomicOr 648 28 25 647 + Store 31(out_i1) 649 + 650: 213(ptr) AccessChain 17 212 + 651: 13(ivec2) Load 650 + 652: 19(ptr) AccessChain 17 22 + 653: 6(int) Load 652 + 654: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 651 25 + 655: 6(int) AtomicXor 654 28 25 653 + 656: 213(ptr) AccessChain 17 212 + 657: 13(ivec2) Load 656 + 658: 19(ptr) AccessChain 17 18 + 659: 6(int) Load 658 + 660: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 657 25 + 661: 6(int) AtomicXor 660 28 25 659 + Store 31(out_i1) 661 + 665: 304(ptr) AccessChain 17 303 + 666: 11(ivec2) Load 665 + 667: 117(ptr) AccessChain 17 116 + 668: 10(int) Load 667 + 669: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 666 25 + 670: 10(int) AtomicIAdd 669 28 25 668 + 671: 304(ptr) AccessChain 17 303 + 672: 11(ivec2) Load 671 + 673: 117(ptr) AccessChain 17 116 + 674: 10(int) Load 673 + 675: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 672 25 + 676: 10(int) AtomicIAdd 675 28 25 674 + Store 126(out_u1) 676 + 677: 304(ptr) AccessChain 17 303 + 678: 11(ivec2) Load 677 + 679: 117(ptr) AccessChain 17 116 + 680: 10(int) Load 679 + 681: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 678 25 + 682: 10(int) AtomicAnd 681 28 25 680 + 683: 304(ptr) AccessChain 17 303 + 684: 11(ivec2) Load 683 + 685: 117(ptr) AccessChain 17 116 + 686: 10(int) Load 685 + 687: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 684 25 + 688: 10(int) AtomicAnd 687 28 25 686 + Store 126(out_u1) 688 + 689: 304(ptr) AccessChain 17 303 + 690: 11(ivec2) Load 689 + 691: 117(ptr) AccessChain 17 147 + 692: 10(int) Load 691 + 693: 117(ptr) AccessChain 17 150 + 694: 10(int) Load 693 + 695: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 690 25 + 696: 10(int) AtomicCompareExchange 695 28 25 25 694 692 + Store 126(out_u1) 696 + 697: 304(ptr) AccessChain 17 303 + 698: 11(ivec2) Load 697 + 699: 117(ptr) AccessChain 17 116 + 700: 10(int) Load 699 + 701: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 698 25 + 702: 10(int) AtomicExchange 701 28 25 700 + Store 126(out_u1) 702 + 703: 304(ptr) AccessChain 17 303 + 704: 11(ivec2) Load 703 + 705: 117(ptr) AccessChain 17 116 + 706: 10(int) Load 705 + 707: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 704 25 + 708: 10(int) AtomicUMax 707 28 25 706 + 709: 304(ptr) AccessChain 17 303 + 710: 11(ivec2) Load 709 + 711: 117(ptr) AccessChain 17 116 + 712: 10(int) Load 711 + 713: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 710 25 + 714: 10(int) AtomicUMax 713 28 25 712 + Store 126(out_u1) 714 + 715: 304(ptr) AccessChain 17 303 + 716: 11(ivec2) Load 715 + 717: 117(ptr) AccessChain 17 116 + 718: 10(int) Load 717 + 719: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 716 25 + 720: 10(int) AtomicUMin 719 28 25 718 + 721: 304(ptr) AccessChain 17 303 + 722: 11(ivec2) Load 721 + 723: 117(ptr) AccessChain 17 116 + 724: 10(int) Load 723 + 725: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 722 25 + 726: 10(int) AtomicUMin 725 28 25 724 + Store 126(out_u1) 726 + 727: 304(ptr) AccessChain 17 303 + 728: 11(ivec2) Load 727 + 729: 117(ptr) AccessChain 17 116 + 730: 10(int) Load 729 + 731: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 728 25 + 732: 10(int) AtomicOr 731 28 25 730 + 733: 304(ptr) AccessChain 17 303 + 734: 11(ivec2) Load 733 + 735: 117(ptr) AccessChain 17 116 + 736: 10(int) Load 735 + 737: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 734 25 + 738: 10(int) AtomicOr 737 28 25 736 + Store 126(out_u1) 738 + 739: 304(ptr) AccessChain 17 303 + 740: 11(ivec2) Load 739 + 741: 117(ptr) AccessChain 17 116 + 742: 10(int) Load 741 + 743: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 740 25 + 744: 10(int) AtomicXor 743 28 25 742 + 745: 304(ptr) AccessChain 17 303 + 746: 11(ivec2) Load 745 + 747: 117(ptr) AccessChain 17 116 + 748: 10(int) Load 747 + 749: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 746 25 + 750: 10(int) AtomicXor 749 28 25 748 + Store 126(out_u1) 750 + 751: 213(ptr) AccessChain 17 212 + 752: 13(ivec2) Load 751 + 753: 19(ptr) AccessChain 17 22 + 754: 6(int) Load 753 + 755: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 752 25 + 756: 6(int) AtomicIAdd 755 28 25 754 + 757: 213(ptr) AccessChain 17 212 + 758: 13(ivec2) Load 757 + 759: 19(ptr) AccessChain 17 18 + 760: 6(int) Load 759 + 761: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 758 25 + 762: 6(int) AtomicIAdd 761 28 25 760 + Store 31(out_i1) 762 + 763: 213(ptr) AccessChain 17 212 + 764: 13(ivec2) Load 763 + 765: 19(ptr) AccessChain 17 22 + 766: 6(int) Load 765 + 767: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 764 25 + 768: 6(int) AtomicAnd 767 28 25 766 + 769: 213(ptr) AccessChain 17 212 + 770: 13(ivec2) Load 769 + 771: 19(ptr) AccessChain 17 18 + 772: 6(int) Load 771 + 773: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 770 25 + 774: 6(int) AtomicAnd 773 28 25 772 + Store 31(out_i1) 774 + 775: 213(ptr) AccessChain 17 212 + 776: 13(ivec2) Load 775 + 777: 19(ptr) AccessChain 17 22 + 778: 6(int) Load 777 + 779: 19(ptr) AccessChain 17 54 + 780: 6(int) Load 779 + 781: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 776 25 + 782: 6(int) AtomicCompareExchange 781 28 25 25 780 778 + Store 31(out_i1) 782 + 783: 213(ptr) AccessChain 17 212 + 784: 13(ivec2) Load 783 + 785: 19(ptr) AccessChain 17 18 + 786: 6(int) Load 785 + 787: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 784 25 + 788: 6(int) AtomicExchange 787 28 25 786 + Store 31(out_i1) 788 + 789: 213(ptr) AccessChain 17 212 + 790: 13(ivec2) Load 789 + 791: 19(ptr) AccessChain 17 22 + 792: 6(int) Load 791 + 793: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 790 25 + 794: 6(int) AtomicSMax 793 28 25 792 + 795: 213(ptr) AccessChain 17 212 + 796: 13(ivec2) Load 795 + 797: 19(ptr) AccessChain 17 18 + 798: 6(int) Load 797 + 799: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 796 25 + 800: 6(int) AtomicSMax 799 28 25 798 + Store 31(out_i1) 800 + 801: 213(ptr) AccessChain 17 212 + 802: 13(ivec2) Load 801 + 803: 19(ptr) AccessChain 17 22 + 804: 6(int) Load 803 + 805: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 802 25 + 806: 6(int) AtomicSMin 805 28 25 804 + 807: 213(ptr) AccessChain 17 212 + 808: 13(ivec2) Load 807 + 809: 19(ptr) AccessChain 17 18 + 810: 6(int) Load 809 + 811: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 808 25 + 812: 6(int) AtomicSMin 811 28 25 810 + Store 31(out_i1) 812 + 813: 213(ptr) AccessChain 17 212 + 814: 13(ivec2) Load 813 + 815: 19(ptr) AccessChain 17 22 + 816: 6(int) Load 815 + 817: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 814 25 + 818: 6(int) AtomicOr 817 28 25 816 + 819: 213(ptr) AccessChain 17 212 + 820: 13(ivec2) Load 819 + 821: 19(ptr) AccessChain 17 18 + 822: 6(int) Load 821 + 823: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 820 25 + 824: 6(int) AtomicOr 823 28 25 822 + Store 31(out_i1) 824 + 825: 213(ptr) AccessChain 17 212 + 826: 13(ivec2) Load 825 + 827: 19(ptr) AccessChain 17 22 + 828: 6(int) Load 827 + 829: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 826 25 + 830: 6(int) AtomicXor 829 28 25 828 + 831: 213(ptr) AccessChain 17 212 + 832: 13(ivec2) Load 831 + 833: 19(ptr) AccessChain 17 18 + 834: 6(int) Load 833 + 835: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 832 25 + 836: 6(int) AtomicXor 835 28 25 834 + Store 31(out_i1) 836 + 837: 304(ptr) AccessChain 17 303 + 838: 11(ivec2) Load 837 + 839: 117(ptr) AccessChain 17 116 + 840: 10(int) Load 839 + 841: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 838 25 + 842: 10(int) AtomicIAdd 841 28 25 840 + 843: 304(ptr) AccessChain 17 303 + 844: 11(ivec2) Load 843 + 845: 117(ptr) AccessChain 17 116 + 846: 10(int) Load 845 + 847: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 844 25 + 848: 10(int) AtomicIAdd 847 28 25 846 + Store 126(out_u1) 848 + 849: 304(ptr) AccessChain 17 303 + 850: 11(ivec2) Load 849 + 851: 117(ptr) AccessChain 17 116 + 852: 10(int) Load 851 + 853: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 850 25 + 854: 10(int) AtomicAnd 853 28 25 852 + 855: 304(ptr) AccessChain 17 303 + 856: 11(ivec2) Load 855 + 857: 117(ptr) AccessChain 17 116 + 858: 10(int) Load 857 + 859: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 856 25 + 860: 10(int) AtomicAnd 859 28 25 858 + Store 126(out_u1) 860 + 861: 304(ptr) AccessChain 17 303 + 862: 11(ivec2) Load 861 + 863: 117(ptr) AccessChain 17 147 + 864: 10(int) Load 863 + 865: 117(ptr) AccessChain 17 150 + 866: 10(int) Load 865 + 867: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 862 25 + 868: 10(int) AtomicCompareExchange 867 28 25 25 866 864 + Store 126(out_u1) 868 + 869: 304(ptr) AccessChain 17 303 + 870: 11(ivec2) Load 869 + 871: 117(ptr) AccessChain 17 116 + 872: 10(int) Load 871 + 873: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 870 25 + 874: 10(int) AtomicExchange 873 28 25 872 + Store 126(out_u1) 874 + 875: 304(ptr) AccessChain 17 303 + 876: 11(ivec2) Load 875 + 877: 117(ptr) AccessChain 17 116 + 878: 10(int) Load 877 + 879: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 876 25 + 880: 10(int) AtomicUMax 879 28 25 878 + 881: 304(ptr) AccessChain 17 303 + 882: 11(ivec2) Load 881 + 883: 117(ptr) AccessChain 17 116 + 884: 10(int) Load 883 + 885: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 882 25 + 886: 10(int) AtomicUMax 885 28 25 884 + Store 126(out_u1) 886 + 887: 304(ptr) AccessChain 17 303 + 888: 11(ivec2) Load 887 + 889: 117(ptr) AccessChain 17 116 + 890: 10(int) Load 889 + 891: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 888 25 + 892: 10(int) AtomicUMin 891 28 25 890 + 893: 304(ptr) AccessChain 17 303 + 894: 11(ivec2) Load 893 + 895: 117(ptr) AccessChain 17 116 + 896: 10(int) Load 895 + 897: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 894 25 + 898: 10(int) AtomicUMin 897 28 25 896 + Store 126(out_u1) 898 + 899: 304(ptr) AccessChain 17 303 + 900: 11(ivec2) Load 899 + 901: 117(ptr) AccessChain 17 116 + 902: 10(int) Load 901 + 903: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 900 25 + 904: 10(int) AtomicOr 903 28 25 902 + 905: 304(ptr) AccessChain 17 303 + 906: 11(ivec2) Load 905 + 907: 117(ptr) AccessChain 17 116 + 908: 10(int) Load 907 + 909: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 906 25 + 910: 10(int) AtomicOr 909 28 25 908 + Store 126(out_u1) 910 + 911: 304(ptr) AccessChain 17 303 + 912: 11(ivec2) Load 911 + 913: 117(ptr) AccessChain 17 116 + 914: 10(int) Load 913 + 915: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 912 25 + 916: 10(int) AtomicXor 915 28 25 914 + 917: 304(ptr) AccessChain 17 303 + 918: 11(ivec2) Load 917 + 919: 117(ptr) AccessChain 17 116 + 920: 10(int) Load 919 + 921: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 918 25 + 922: 10(int) AtomicXor 921 28 25 920 + Store 126(out_u1) 922 + 926: 19(ptr) AccessChain 17 18 + 927: 6(int) Load 926 + 928: 19(ptr) AccessChain 17 22 + 929: 6(int) Load 928 + 930: 26(ptr) ImageTexelPointer 925(g_tBuffI) 927 25 + 931: 6(int) AtomicIAdd 930 28 25 929 + 932: 19(ptr) AccessChain 17 18 + 933: 6(int) Load 932 + 934: 19(ptr) AccessChain 17 18 + 935: 6(int) Load 934 + 936: 26(ptr) ImageTexelPointer 925(g_tBuffI) 933 25 + 937: 6(int) AtomicIAdd 936 28 25 935 + Store 31(out_i1) 937 + 938: 19(ptr) AccessChain 17 18 + 939: 6(int) Load 938 + 940: 19(ptr) AccessChain 17 22 + 941: 6(int) Load 940 + 942: 26(ptr) ImageTexelPointer 925(g_tBuffI) 939 25 + 943: 6(int) AtomicAnd 942 28 25 941 + 944: 19(ptr) AccessChain 17 18 + 945: 6(int) Load 944 + 946: 19(ptr) AccessChain 17 18 + 947: 6(int) Load 946 + 948: 26(ptr) ImageTexelPointer 925(g_tBuffI) 945 25 + 949: 6(int) AtomicAnd 948 28 25 947 + Store 31(out_i1) 949 + 950: 19(ptr) AccessChain 17 18 + 951: 6(int) Load 950 + 952: 19(ptr) AccessChain 17 22 + 953: 6(int) Load 952 + 954: 19(ptr) AccessChain 17 54 + 955: 6(int) Load 954 + 956: 26(ptr) ImageTexelPointer 925(g_tBuffI) 951 25 + 957: 6(int) AtomicCompareExchange 956 28 25 25 955 953 + Store 31(out_i1) 957 + 958: 19(ptr) AccessChain 17 18 + 959: 6(int) Load 958 + 960: 19(ptr) AccessChain 17 18 + 961: 6(int) Load 960 + 962: 26(ptr) ImageTexelPointer 925(g_tBuffI) 959 25 + 963: 6(int) AtomicExchange 962 28 25 961 + Store 31(out_i1) 963 + 964: 19(ptr) AccessChain 17 18 + 965: 6(int) Load 964 + 966: 19(ptr) AccessChain 17 22 + 967: 6(int) Load 966 + 968: 26(ptr) ImageTexelPointer 925(g_tBuffI) 965 25 + 969: 6(int) AtomicSMax 968 28 25 967 + 970: 19(ptr) AccessChain 17 18 + 971: 6(int) Load 970 + 972: 19(ptr) AccessChain 17 18 + 973: 6(int) Load 972 + 974: 26(ptr) ImageTexelPointer 925(g_tBuffI) 971 25 + 975: 6(int) AtomicSMax 974 28 25 973 + Store 31(out_i1) 975 + 976: 19(ptr) AccessChain 17 18 + 977: 6(int) Load 976 + 978: 19(ptr) AccessChain 17 22 + 979: 6(int) Load 978 + 980: 26(ptr) ImageTexelPointer 925(g_tBuffI) 977 25 + 981: 6(int) AtomicSMin 980 28 25 979 + 982: 19(ptr) AccessChain 17 18 + 983: 6(int) Load 982 + 984: 19(ptr) AccessChain 17 18 + 985: 6(int) Load 984 + 986: 26(ptr) ImageTexelPointer 925(g_tBuffI) 983 25 + 987: 6(int) AtomicSMin 986 28 25 985 + Store 31(out_i1) 987 + 988: 19(ptr) AccessChain 17 18 + 989: 6(int) Load 988 + 990: 19(ptr) AccessChain 17 22 + 991: 6(int) Load 990 + 992: 26(ptr) ImageTexelPointer 925(g_tBuffI) 989 25 + 993: 6(int) AtomicOr 992 28 25 991 + 994: 19(ptr) AccessChain 17 18 + 995: 6(int) Load 994 + 996: 19(ptr) AccessChain 17 18 + 997: 6(int) Load 996 + 998: 26(ptr) ImageTexelPointer 925(g_tBuffI) 995 25 + 999: 6(int) AtomicOr 998 28 25 997 + Store 31(out_i1) 999 + 1000: 19(ptr) AccessChain 17 18 + 1001: 6(int) Load 1000 + 1002: 19(ptr) AccessChain 17 22 + 1003: 6(int) Load 1002 + 1004: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1001 25 + 1005: 6(int) AtomicXor 1004 28 25 1003 + 1006: 19(ptr) AccessChain 17 18 + 1007: 6(int) Load 1006 + 1008: 19(ptr) AccessChain 17 18 + 1009: 6(int) Load 1008 + 1010: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1007 25 + 1011: 6(int) AtomicXor 1010 28 25 1009 + Store 31(out_i1) 1011 + 1015: 117(ptr) AccessChain 17 116 + 1016: 10(int) Load 1015 + 1017: 117(ptr) AccessChain 17 116 + 1018: 10(int) Load 1017 + 1019: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1016 25 + 1020: 10(int) AtomicIAdd 1019 28 25 1018 + 1021: 117(ptr) AccessChain 17 116 + 1022: 10(int) Load 1021 + 1023: 117(ptr) AccessChain 17 116 + 1024: 10(int) Load 1023 + 1025: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1022 25 + 1026: 10(int) AtomicIAdd 1025 28 25 1024 + Store 126(out_u1) 1026 + 1027: 117(ptr) AccessChain 17 116 + 1028: 10(int) Load 1027 + 1029: 117(ptr) AccessChain 17 116 + 1030: 10(int) Load 1029 + 1031: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1028 25 + 1032: 10(int) AtomicAnd 1031 28 25 1030 + 1033: 117(ptr) AccessChain 17 116 + 1034: 10(int) Load 1033 + 1035: 117(ptr) AccessChain 17 116 + 1036: 10(int) Load 1035 + 1037: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1034 25 + 1038: 10(int) AtomicAnd 1037 28 25 1036 + Store 126(out_u1) 1038 + 1039: 117(ptr) AccessChain 17 116 + 1040: 10(int) Load 1039 + 1041: 117(ptr) AccessChain 17 147 + 1042: 10(int) Load 1041 + 1043: 117(ptr) AccessChain 17 150 + 1044: 10(int) Load 1043 + 1045: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1040 25 + 1046: 10(int) AtomicCompareExchange 1045 28 25 25 1044 1042 + Store 126(out_u1) 1046 + 1047: 117(ptr) AccessChain 17 116 + 1048: 10(int) Load 1047 + 1049: 117(ptr) AccessChain 17 116 + 1050: 10(int) Load 1049 + 1051: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1048 25 + 1052: 10(int) AtomicExchange 1051 28 25 1050 + Store 126(out_u1) 1052 + 1053: 117(ptr) AccessChain 17 116 + 1054: 10(int) Load 1053 + 1055: 117(ptr) AccessChain 17 116 + 1056: 10(int) Load 1055 + 1057: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1054 25 + 1058: 10(int) AtomicUMax 1057 28 25 1056 + 1059: 117(ptr) AccessChain 17 116 + 1060: 10(int) Load 1059 + 1061: 117(ptr) AccessChain 17 116 + 1062: 10(int) Load 1061 + 1063: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1060 25 + 1064: 10(int) AtomicUMax 1063 28 25 1062 + Store 126(out_u1) 1064 + 1065: 117(ptr) AccessChain 17 116 + 1066: 10(int) Load 1065 + 1067: 117(ptr) AccessChain 17 116 + 1068: 10(int) Load 1067 + 1069: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1066 25 + 1070: 10(int) AtomicUMin 1069 28 25 1068 + 1071: 117(ptr) AccessChain 17 116 + 1072: 10(int) Load 1071 + 1073: 117(ptr) AccessChain 17 116 + 1074: 10(int) Load 1073 + 1075: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1072 25 + 1076: 10(int) AtomicUMin 1075 28 25 1074 + Store 126(out_u1) 1076 + 1077: 117(ptr) AccessChain 17 116 + 1078: 10(int) Load 1077 + 1079: 117(ptr) AccessChain 17 116 + 1080: 10(int) Load 1079 + 1081: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1078 25 + 1082: 10(int) AtomicOr 1081 28 25 1080 + 1083: 117(ptr) AccessChain 17 116 + 1084: 10(int) Load 1083 + 1085: 117(ptr) AccessChain 17 116 + 1086: 10(int) Load 1085 + 1087: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1084 25 + 1088: 10(int) AtomicOr 1087 28 25 1086 + Store 126(out_u1) 1088 + 1089: 117(ptr) AccessChain 17 116 + 1090: 10(int) Load 1089 + 1091: 117(ptr) AccessChain 17 116 + 1092: 10(int) Load 1091 + 1093: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1090 25 + 1094: 10(int) AtomicXor 1093 28 25 1092 + 1095: 117(ptr) AccessChain 17 116 + 1096: 10(int) Load 1095 + 1097: 117(ptr) AccessChain 17 116 + 1098: 10(int) Load 1097 + 1099: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1096 25 + 1100: 10(int) AtomicXor 1099 28 25 1098 + Store 126(out_u1) 1100 + 1109: 1108(ptr) AccessChain 1105(psout) 116 + Store 1109 1107 + 1112: 1108(ptr) AccessChain 1105(psout) 116 + 1113: 1102(fvec4) Load 1112 + Store 1111(Color) 1113 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.bracket.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.bracket.frag.out new file mode 100644 index 0000000000..31ed4a9826 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.bracket.frag.out @@ -0,0 +1,2651 @@ +hlsl.rw.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 4-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 4-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 4-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; (temp void) +0:46 Function Parameters: +0:46 'x' (out 4-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'x' (out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; (temp void) +0:47 Function Parameters: +0:47 'x' (out 4-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'x' (out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; (temp void) +0:48 Function Parameters: +0:48 'x' (out 4-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:48 'x' (out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 4-component vector of float) +0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 4-component vector of float) +0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'r00' (temp 4-component vector of float) +0:59 imageLoad (temp 4-component vector of float) +0:59 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'r01' (temp 4-component vector of int) +0:60 imageLoad (temp 4-component vector of int) +0:60 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'r02' (temp 4-component vector of uint) +0:61 imageLoad (temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of float) +0:64 'r10' (temp 4-component vector of float) +0:64 imageLoad (temp 4-component vector of float) +0:64 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of int) +0:65 'r11' (temp 4-component vector of int) +0:65 imageLoad (temp 4-component vector of int) +0:65 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of uint) +0:66 'r12' (temp 4-component vector of uint) +0:66 imageLoad (temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'r20' (temp 4-component vector of float) +0:69 imageLoad (temp 4-component vector of float) +0:69 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'r21' (temp 4-component vector of int) +0:70 imageLoad (temp 4-component vector of int) +0:70 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'r22' (temp 4-component vector of uint) +0:71 imageLoad (temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of float) +0:73 'lf4' (temp 4-component vector of float) +0:73 uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 Function Call: SomeValue( (temp 4-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' (temp 4-component vector of float) +0:78 'lf4' (temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of float) +0:83 'val1' (temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 imageLoad (temp 4-component vector of float) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 imageLoad (temp 4-component vector of float) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 imageLoad (temp 4-component vector of float) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 imageLoad (temp 4-component vector of int) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 imageLoad (temp 4-component vector of int) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 imageLoad (temp 4-component vector of int) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 imageLoad (temp 4-component vector of int) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 imageLoad (temp 4-component vector of int) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 Function Call: SomeValue( (temp 4-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' (temp 4-component vector of float) +0:96 'lf4' (temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 Function Call: SomeValue( (temp 4-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' (temp 4-component vector of float) +0:102 'lf4' (temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:107 imageLoad (temp 4-component vector of float) +0:107 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:108 imageLoad (temp 4-component vector of int) +0:108 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:109 imageLoad (temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf4; (temp void) +0:111 'tempArg' (temp 4-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 4-component vector of float) +0:111 'tempArg' (temp 4-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi4; (temp void) +0:112 'tempArg' (temp 4-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 4-component vector of int) +0:112 'tempArg' (temp 4-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu4; (temp void) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageLoad (temp 4-component vector of float) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageLoad (temp 4-component vector of int) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageLoad (temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageLoad (temp 4-component vector of float) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageLoad (temp 4-component vector of int) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageLoad (temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 imageLoad (temp 4-component vector of float) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 Post-Increment (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 imageLoad (temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 Post-Decrement (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 imageLoad (temp 4-component vector of int) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 Post-Increment (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 imageLoad (temp 4-component vector of float) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 Post-Decrement (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 imageLoad (temp 4-component vector of int) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 Post-Increment (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 imageLoad (temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 Post-Decrement (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:? imageLoad (temp 4-component vector of float) +0:135 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 4-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 4-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 4-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; (temp void) +0:46 Function Parameters: +0:46 'x' (out 4-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'x' (out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; (temp void) +0:47 Function Parameters: +0:47 'x' (out 4-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'x' (out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; (temp void) +0:48 Function Parameters: +0:48 'x' (out 4-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:48 'x' (out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 4-component vector of float) +0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 4-component vector of float) +0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'r00' (temp 4-component vector of float) +0:59 imageLoad (temp 4-component vector of float) +0:59 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'r01' (temp 4-component vector of int) +0:60 imageLoad (temp 4-component vector of int) +0:60 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'r02' (temp 4-component vector of uint) +0:61 imageLoad (temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of float) +0:64 'r10' (temp 4-component vector of float) +0:64 imageLoad (temp 4-component vector of float) +0:64 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of int) +0:65 'r11' (temp 4-component vector of int) +0:65 imageLoad (temp 4-component vector of int) +0:65 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of uint) +0:66 'r12' (temp 4-component vector of uint) +0:66 imageLoad (temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'r20' (temp 4-component vector of float) +0:69 imageLoad (temp 4-component vector of float) +0:69 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'r21' (temp 4-component vector of int) +0:70 imageLoad (temp 4-component vector of int) +0:70 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'r22' (temp 4-component vector of uint) +0:71 imageLoad (temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of float) +0:73 'lf4' (temp 4-component vector of float) +0:73 uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 Function Call: SomeValue( (temp 4-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' (temp 4-component vector of float) +0:78 'lf4' (temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of float) +0:83 'val1' (temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 imageLoad (temp 4-component vector of float) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 imageLoad (temp 4-component vector of float) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 imageLoad (temp 4-component vector of float) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 imageLoad (temp 4-component vector of int) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 imageLoad (temp 4-component vector of int) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 imageLoad (temp 4-component vector of int) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 imageLoad (temp 4-component vector of int) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 imageLoad (temp 4-component vector of int) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 Function Call: SomeValue( (temp 4-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' (temp 4-component vector of float) +0:96 'lf4' (temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 Function Call: SomeValue( (temp 4-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' (temp 4-component vector of float) +0:102 'lf4' (temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:107 imageLoad (temp 4-component vector of float) +0:107 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:108 imageLoad (temp 4-component vector of int) +0:108 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:109 imageLoad (temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf4; (temp void) +0:111 'tempArg' (temp 4-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 4-component vector of float) +0:111 'tempArg' (temp 4-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi4; (temp void) +0:112 'tempArg' (temp 4-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 4-component vector of int) +0:112 'tempArg' (temp 4-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu4; (temp void) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageLoad (temp 4-component vector of float) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageLoad (temp 4-component vector of int) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageLoad (temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageLoad (temp 4-component vector of float) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageLoad (temp 4-component vector of int) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageLoad (temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 imageLoad (temp 4-component vector of float) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 Post-Increment (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 imageLoad (temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 Post-Decrement (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 imageLoad (temp 4-component vector of int) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 Post-Increment (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 imageLoad (temp 4-component vector of float) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 Post-Decrement (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 imageLoad (temp 4-component vector of int) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 Post-Increment (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 imageLoad (temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 Post-Decrement (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:? imageLoad (temp 4-component vector of float) +0:135 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 602 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 577 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 29 "Fn2(vi4;" + Name 28 "x" + Name 33 "Fn2(vu4;" + Name 32 "x" + Name 37 "Fn2(vf4;" + Name 36 "x" + Name 40 "SomeValue(" + Name 59 "$Global" + MemberName 59($Global) 0 "c1" + MemberName 59($Global) 1 "c2" + MemberName 59($Global) 2 "c3" + MemberName 59($Global) 3 "c4" + MemberName 59($Global) 4 "o1" + MemberName 59($Global) 5 "o2" + MemberName 59($Global) 6 "o3" + MemberName 59($Global) 7 "o4" + MemberName 59($Global) 8 "uf4" + MemberName 59($Global) 9 "ui4" + MemberName 59($Global) 10 "uu4" + Name 61 "" + Name 71 "g_tTex1df4" + Name 77 "r00" + Name 82 "r01" + Name 85 "g_tTex1di4" + Name 90 "r02" + Name 93 "g_tTex1du4" + Name 98 "r10" + Name 101 "g_tTex2df4" + Name 108 "r11" + Name 111 "g_tTex2di4" + Name 116 "r12" + Name 119 "g_tTex2du4" + Name 124 "r20" + Name 127 "g_tTex3df4" + Name 134 "r21" + Name 137 "g_tTex3di4" + Name 142 "r22" + Name 145 "g_tTex3du4" + Name 150 "lf4" + Name 155 "storeTemp" + Name 165 "storeTemp" + Name 172 "storeTemp" + Name 181 "val1" + Name 183 "coordTemp" + Name 186 "storeTemp" + Name 197 "coordTemp" + Name 200 "storeTemp" + Name 211 "coordTemp" + Name 214 "storeTemp" + Name 225 "coordTemp" + Name 228 "storeTemp" + Name 238 "coordTemp" + Name 241 "storeTemp" + Name 251 "coordTemp" + Name 254 "storeTemp" + Name 265 "coordTemp" + Name 268 "storeTemp" + Name 279 "coordTemp" + Name 282 "storeTemp" + Name 292 "coordTemp" + Name 295 "storeTemp" + Name 305 "storeTemp" + Name 315 "storeTemp" + Name 322 "storeTemp" + Name 329 "storeTemp" + Name 339 "storeTemp" + Name 347 "storeTemp" + Name 358 "param" + Name 364 "param" + Name 370 "param" + Name 372 "tempArg" + Name 373 "param" + Name 380 "tempArg" + Name 381 "param" + Name 388 "tempArg" + Name 389 "param" + Name 396 "coordTemp" + Name 399 "storeTemp" + Name 410 "coordTemp" + Name 413 "storeTemp" + Name 423 "coordTemp" + Name 426 "storeTemp" + Name 436 "coordTemp" + Name 439 "storeTemp" + Name 449 "coordTemp" + Name 452 "storeTemp" + Name 462 "coordTemp" + Name 465 "storeTemp" + Name 475 "coordTemp" + Name 478 "storeTempPre" + Name 482 "storeTempPost" + Name 490 "coordTemp" + Name 493 "storeTempPre" + Name 497 "storeTempPost" + Name 505 "coordTemp" + Name 508 "storeTempPre" + Name 512 "storeTempPost" + Name 520 "coordTemp" + Name 523 "storeTempPre" + Name 527 "storeTempPost" + Name 535 "coordTemp" + Name 538 "storeTempPre" + Name 542 "storeTempPost" + Name 550 "coordTemp" + Name 553 "storeTempPre" + Name 557 "storeTempPost" + Name 565 "storeTemp" + Name 571 "PS_OUTPUT" + MemberName 571(PS_OUTPUT) 0 "Color" + Name 573 "psout" + Name 577 "Color" + Name 583 "g_sSamp" + Name 586 "g_tTex1df4a" + Name 589 "g_tTex1di4a" + Name 592 "g_tTex1du4a" + Name 595 "g_tTex2df4a" + Name 598 "g_tTex2di4a" + Name 601 "g_tTex2du4a" + MemberDecorate 59($Global) 0 Offset 0 + MemberDecorate 59($Global) 1 Offset 8 + MemberDecorate 59($Global) 2 Offset 16 + MemberDecorate 59($Global) 3 Offset 32 + MemberDecorate 59($Global) 4 Offset 48 + MemberDecorate 59($Global) 5 Offset 56 + MemberDecorate 59($Global) 6 Offset 64 + MemberDecorate 59($Global) 7 Offset 80 + MemberDecorate 59($Global) 8 Offset 96 + MemberDecorate 59($Global) 9 Offset 112 + MemberDecorate 59($Global) 10 Offset 128 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + Decorate 71(g_tTex1df4) DescriptorSet 0 + Decorate 71(g_tTex1df4) Binding 0 + Decorate 85(g_tTex1di4) DescriptorSet 0 + Decorate 93(g_tTex1du4) DescriptorSet 0 + Decorate 101(g_tTex2df4) DescriptorSet 0 + Decorate 111(g_tTex2di4) DescriptorSet 0 + Decorate 119(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 137(g_tTex3di4) DescriptorSet 0 + Decorate 145(g_tTex3du4) DescriptorSet 0 + Decorate 577(Color) Location 0 + Decorate 583(g_sSamp) DescriptorSet 0 + Decorate 583(g_sSamp) Binding 0 + Decorate 586(g_tTex1df4a) DescriptorSet 0 + Decorate 589(g_tTex1di4a) DescriptorSet 0 + Decorate 592(g_tTex1du4a) DescriptorSet 0 + Decorate 595(g_tTex2df4a) DescriptorSet 0 + Decorate 598(g_tTex2di4a) DescriptorSet 0 + Decorate 601(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 39: TypeFunction 21(fvec4) + 51: 6(int) Constant 0 + 52: 7(ivec4) ConstantComposite 51 51 51 51 + 53: 13(int) Constant 0 + 54: 14(ivec4) ConstantComposite 53 53 53 53 + 55: 20(float) Constant 0 + 56: 21(fvec4) ConstantComposite 55 55 55 55 + 57: TypeVector 6(int) 2 + 58: TypeVector 6(int) 3 + 59($Global): TypeStruct 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 21(fvec4) 7(ivec4) 14(ivec4) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62: 6(int) Constant 3 + 63: TypePointer Uniform 7(ivec4) + 69: TypeImage 20(float) 1D nonsampled format:Rgba32f + 70: TypePointer UniformConstant 69 + 71(g_tTex1df4): 70(ptr) Variable UniformConstant + 73: TypePointer Uniform 6(int) + 83: TypeImage 6(int) 1D nonsampled format:Rgba32i + 84: TypePointer UniformConstant 83 + 85(g_tTex1di4): 84(ptr) Variable UniformConstant + 91: TypeImage 13(int) 1D nonsampled format:Rgba32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du4): 92(ptr) Variable UniformConstant + 99: TypeImage 20(float) 2D nonsampled format:Rgba32f + 100: TypePointer UniformConstant 99 + 101(g_tTex2df4): 100(ptr) Variable UniformConstant + 103: 6(int) Constant 1 + 104: TypePointer Uniform 57(ivec2) + 109: TypeImage 6(int) 2D nonsampled format:Rgba32i + 110: TypePointer UniformConstant 109 + 111(g_tTex2di4): 110(ptr) Variable UniformConstant + 117: TypeImage 13(int) 2D nonsampled format:Rgba32ui + 118: TypePointer UniformConstant 117 + 119(g_tTex2du4): 118(ptr) Variable UniformConstant + 125: TypeImage 20(float) 3D nonsampled format:Rgba32f + 126: TypePointer UniformConstant 125 + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 129: 6(int) Constant 2 + 130: TypePointer Uniform 58(ivec3) + 135: TypeImage 6(int) 3D nonsampled format:Rgba32i + 136: TypePointer UniformConstant 135 + 137(g_tTex3di4): 136(ptr) Variable UniformConstant + 143: TypeImage 13(int) 3D nonsampled format:Rgba32ui + 144: TypePointer UniformConstant 143 + 145(g_tTex3du4): 144(ptr) Variable UniformConstant + 151: 6(int) Constant 8 + 152: TypePointer Uniform 21(fvec4) + 166: 6(int) Constant 4 + 167: 7(ivec4) ConstantComposite 129 129 62 166 + 173: 13(int) Constant 3 + 174: 13(int) Constant 2 + 175: 13(int) Constant 4 + 176: 14(ivec4) ConstantComposite 173 174 173 175 + 182: TypePointer Function 6(int) + 190: 20(float) Constant 1073741824 + 204: 20(float) Constant 1077936128 + 218: 20(float) Constant 1082130432 + 258: 6(int) Constant 65535 + 272: 6(int) Constant 61680 + 316: 6(int) Constant 5 + 317: 7(ivec4) ConstantComposite 316 129 62 166 + 323: 13(int) Constant 6 + 324: 14(ivec4) ConstantComposite 323 174 173 175 + 340: 6(int) Constant 6 + 341: 6(int) Constant 7 + 342: 7(ivec4) ConstantComposite 151 340 341 151 + 348: 13(int) Constant 9 + 349: 14(ivec4) ConstantComposite 348 174 173 175 + 404: 20(float) Constant 1065353216 + 567: 57(ivec2) ConstantComposite 129 62 + 571(PS_OUTPUT): TypeStruct 21(fvec4) + 572: TypePointer Function 571(PS_OUTPUT) + 574: 21(fvec4) ConstantComposite 404 404 404 404 + 576: TypePointer Output 21(fvec4) + 577(Color): 576(ptr) Variable Output + 581: TypeSampler + 582: TypePointer UniformConstant 581 + 583(g_sSamp): 582(ptr) Variable UniformConstant + 584: TypeImage 20(float) 1D array nonsampled format:Rgba32f + 585: TypePointer UniformConstant 584 +586(g_tTex1df4a): 585(ptr) Variable UniformConstant + 587: TypeImage 6(int) 1D array nonsampled format:Rgba32i + 588: TypePointer UniformConstant 587 +589(g_tTex1di4a): 588(ptr) Variable UniformConstant + 590: TypeImage 13(int) 1D array nonsampled format:Rgba32ui + 591: TypePointer UniformConstant 590 +592(g_tTex1du4a): 591(ptr) Variable UniformConstant + 593: TypeImage 20(float) 2D array nonsampled format:Rgba32f + 594: TypePointer UniformConstant 593 +595(g_tTex2df4a): 594(ptr) Variable UniformConstant + 596: TypeImage 6(int) 2D array nonsampled format:Rgba32i + 597: TypePointer UniformConstant 596 +598(g_tTex2di4a): 597(ptr) Variable UniformConstant + 599: TypeImage 13(int) 2D array nonsampled format:Rgba32ui + 600: TypePointer UniformConstant 599 +601(g_tTex2du4a): 600(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 77(r00): 22(ptr) Variable Function + 82(r01): 8(ptr) Variable Function + 90(r02): 15(ptr) Variable Function + 98(r10): 22(ptr) Variable Function + 108(r11): 8(ptr) Variable Function + 116(r12): 15(ptr) Variable Function + 124(r20): 22(ptr) Variable Function + 134(r21): 8(ptr) Variable Function + 142(r22): 15(ptr) Variable Function + 150(lf4): 22(ptr) Variable Function + 155(storeTemp): 22(ptr) Variable Function + 165(storeTemp): 8(ptr) Variable Function + 172(storeTemp): 15(ptr) Variable Function + 181(val1): 22(ptr) Variable Function + 183(coordTemp): 182(ptr) Variable Function + 186(storeTemp): 22(ptr) Variable Function + 197(coordTemp): 182(ptr) Variable Function + 200(storeTemp): 22(ptr) Variable Function + 211(coordTemp): 182(ptr) Variable Function + 214(storeTemp): 22(ptr) Variable Function + 225(coordTemp): 182(ptr) Variable Function + 228(storeTemp): 8(ptr) Variable Function + 238(coordTemp): 182(ptr) Variable Function + 241(storeTemp): 8(ptr) Variable Function + 251(coordTemp): 182(ptr) Variable Function + 254(storeTemp): 8(ptr) Variable Function + 265(coordTemp): 182(ptr) Variable Function + 268(storeTemp): 8(ptr) Variable Function + 279(coordTemp): 182(ptr) Variable Function + 282(storeTemp): 8(ptr) Variable Function + 292(coordTemp): 182(ptr) Variable Function + 295(storeTemp): 8(ptr) Variable Function + 305(storeTemp): 22(ptr) Variable Function + 315(storeTemp): 8(ptr) Variable Function + 322(storeTemp): 15(ptr) Variable Function + 329(storeTemp): 22(ptr) Variable Function + 339(storeTemp): 8(ptr) Variable Function + 347(storeTemp): 15(ptr) Variable Function + 358(param): 22(ptr) Variable Function + 364(param): 8(ptr) Variable Function + 370(param): 15(ptr) Variable Function + 372(tempArg): 22(ptr) Variable Function + 373(param): 22(ptr) Variable Function + 380(tempArg): 8(ptr) Variable Function + 381(param): 8(ptr) Variable Function + 388(tempArg): 15(ptr) Variable Function + 389(param): 15(ptr) Variable Function + 396(coordTemp): 182(ptr) Variable Function + 399(storeTemp): 22(ptr) Variable Function + 410(coordTemp): 182(ptr) Variable Function + 413(storeTemp): 8(ptr) Variable Function + 423(coordTemp): 182(ptr) Variable Function + 426(storeTemp): 15(ptr) Variable Function + 436(coordTemp): 182(ptr) Variable Function + 439(storeTemp): 22(ptr) Variable Function + 449(coordTemp): 182(ptr) Variable Function + 452(storeTemp): 8(ptr) Variable Function + 462(coordTemp): 182(ptr) Variable Function + 465(storeTemp): 15(ptr) Variable Function + 475(coordTemp): 182(ptr) Variable Function +478(storeTempPre): 22(ptr) Variable Function +482(storeTempPost): 22(ptr) Variable Function + 490(coordTemp): 182(ptr) Variable Function +493(storeTempPre): 15(ptr) Variable Function +497(storeTempPost): 15(ptr) Variable Function + 505(coordTemp): 182(ptr) Variable Function +508(storeTempPre): 8(ptr) Variable Function +512(storeTempPost): 8(ptr) Variable Function + 520(coordTemp): 182(ptr) Variable Function +523(storeTempPre): 22(ptr) Variable Function +527(storeTempPost): 22(ptr) Variable Function + 535(coordTemp): 182(ptr) Variable Function +538(storeTempPre): 8(ptr) Variable Function +542(storeTempPost): 8(ptr) Variable Function + 550(coordTemp): 182(ptr) Variable Function +553(storeTempPre): 15(ptr) Variable Function +557(storeTempPost): 15(ptr) Variable Function + 565(storeTemp): 22(ptr) Variable Function + 573(psout): 572(ptr) Variable Function + 72: 69 Load 71(g_tTex1df4) + 74: 73(ptr) AccessChain 61 51 + 75: 6(int) Load 74 + 76: 21(fvec4) ImageRead 72 75 + 78: 69 Load 71(g_tTex1df4) + 79: 73(ptr) AccessChain 61 51 + 80: 6(int) Load 79 + 81: 21(fvec4) ImageRead 78 80 + Store 77(r00) 81 + 86: 83 Load 85(g_tTex1di4) + 87: 73(ptr) AccessChain 61 51 + 88: 6(int) Load 87 + 89: 7(ivec4) ImageRead 86 88 + Store 82(r01) 89 + 94: 91 Load 93(g_tTex1du4) + 95: 73(ptr) AccessChain 61 51 + 96: 6(int) Load 95 + 97: 14(ivec4) ImageRead 94 96 + Store 90(r02) 97 + 102: 99 Load 101(g_tTex2df4) + 105: 104(ptr) AccessChain 61 103 + 106: 57(ivec2) Load 105 + 107: 21(fvec4) ImageRead 102 106 + Store 98(r10) 107 + 112: 109 Load 111(g_tTex2di4) + 113: 104(ptr) AccessChain 61 103 + 114: 57(ivec2) Load 113 + 115: 7(ivec4) ImageRead 112 114 + Store 108(r11) 115 + 120: 117 Load 119(g_tTex2du4) + 121: 104(ptr) AccessChain 61 103 + 122: 57(ivec2) Load 121 + 123: 14(ivec4) ImageRead 120 122 + Store 116(r12) 123 + 128: 125 Load 127(g_tTex3df4) + 131: 130(ptr) AccessChain 61 129 + 132: 58(ivec3) Load 131 + 133: 21(fvec4) ImageRead 128 132 + Store 124(r20) 133 + 138: 135 Load 137(g_tTex3di4) + 139: 130(ptr) AccessChain 61 129 + 140: 58(ivec3) Load 139 + 141: 7(ivec4) ImageRead 138 140 + Store 134(r21) 141 + 146: 143 Load 145(g_tTex3du4) + 147: 130(ptr) AccessChain 61 129 + 148: 58(ivec3) Load 147 + 149: 14(ivec4) ImageRead 146 148 + Store 142(r22) 149 + 153: 152(ptr) AccessChain 61 151 + 154: 21(fvec4) Load 153 + Store 150(lf4) 154 + 156: 21(fvec4) FunctionCall 40(SomeValue() + Store 155(storeTemp) 156 + 157: 69 Load 71(g_tTex1df4) + 158: 73(ptr) AccessChain 61 51 + 159: 6(int) Load 158 + 160: 21(fvec4) Load 155(storeTemp) + ImageWrite 157 159 160 + 161: 69 Load 71(g_tTex1df4) + 162: 73(ptr) AccessChain 61 51 + 163: 6(int) Load 162 + 164: 21(fvec4) Load 150(lf4) + ImageWrite 161 163 164 + Store 165(storeTemp) 167 + 168: 83 Load 85(g_tTex1di4) + 169: 73(ptr) AccessChain 61 51 + 170: 6(int) Load 169 + 171: 7(ivec4) Load 165(storeTemp) + ImageWrite 168 170 171 + Store 172(storeTemp) 176 + 177: 91 Load 93(g_tTex1du4) + 178: 73(ptr) AccessChain 61 51 + 179: 6(int) Load 178 + 180: 14(ivec4) Load 172(storeTemp) + ImageWrite 177 179 180 + 184: 73(ptr) AccessChain 61 51 + 185: 6(int) Load 184 + Store 183(coordTemp) 185 + 187: 69 Load 71(g_tTex1df4) + 188: 6(int) Load 183(coordTemp) + 189: 21(fvec4) ImageRead 187 188 + Store 186(storeTemp) 189 + 191: 21(fvec4) Load 186(storeTemp) + 192: 21(fvec4) VectorTimesScalar 191 190 + Store 186(storeTemp) 192 + 193: 69 Load 71(g_tTex1df4) + 194: 6(int) Load 183(coordTemp) + 195: 21(fvec4) Load 186(storeTemp) + ImageWrite 193 194 195 + 196: 21(fvec4) Load 186(storeTemp) + Store 181(val1) 196 + 198: 73(ptr) AccessChain 61 51 + 199: 6(int) Load 198 + Store 197(coordTemp) 199 + 201: 69 Load 71(g_tTex1df4) + 202: 6(int) Load 197(coordTemp) + 203: 21(fvec4) ImageRead 201 202 + Store 200(storeTemp) 203 + 205: 21(fvec4) Load 200(storeTemp) + 206: 21(fvec4) CompositeConstruct 204 204 204 204 + 207: 21(fvec4) FSub 205 206 + Store 200(storeTemp) 207 + 208: 69 Load 71(g_tTex1df4) + 209: 6(int) Load 197(coordTemp) + 210: 21(fvec4) Load 200(storeTemp) + ImageWrite 208 209 210 + 212: 73(ptr) AccessChain 61 51 + 213: 6(int) Load 212 + Store 211(coordTemp) 213 + 215: 69 Load 71(g_tTex1df4) + 216: 6(int) Load 211(coordTemp) + 217: 21(fvec4) ImageRead 215 216 + Store 214(storeTemp) 217 + 219: 21(fvec4) Load 214(storeTemp) + 220: 21(fvec4) CompositeConstruct 218 218 218 218 + 221: 21(fvec4) FAdd 219 220 + Store 214(storeTemp) 221 + 222: 69 Load 71(g_tTex1df4) + 223: 6(int) Load 211(coordTemp) + 224: 21(fvec4) Load 214(storeTemp) + ImageWrite 222 223 224 + 226: 73(ptr) AccessChain 61 51 + 227: 6(int) Load 226 + Store 225(coordTemp) 227 + 229: 83 Load 85(g_tTex1di4) + 230: 6(int) Load 225(coordTemp) + 231: 7(ivec4) ImageRead 229 230 + Store 228(storeTemp) 231 + 232: 7(ivec4) Load 228(storeTemp) + 233: 7(ivec4) CompositeConstruct 129 129 129 129 + 234: 7(ivec4) SDiv 232 233 + Store 228(storeTemp) 234 + 235: 83 Load 85(g_tTex1di4) + 236: 6(int) Load 225(coordTemp) + 237: 7(ivec4) Load 228(storeTemp) + ImageWrite 235 236 237 + 239: 73(ptr) AccessChain 61 51 + 240: 6(int) Load 239 + Store 238(coordTemp) 240 + 242: 83 Load 85(g_tTex1di4) + 243: 6(int) Load 238(coordTemp) + 244: 7(ivec4) ImageRead 242 243 + Store 241(storeTemp) 244 + 245: 7(ivec4) Load 241(storeTemp) + 246: 7(ivec4) CompositeConstruct 129 129 129 129 + 247: 7(ivec4) SMod 245 246 + Store 241(storeTemp) 247 + 248: 83 Load 85(g_tTex1di4) + 249: 6(int) Load 238(coordTemp) + 250: 7(ivec4) Load 241(storeTemp) + ImageWrite 248 249 250 + 252: 73(ptr) AccessChain 61 51 + 253: 6(int) Load 252 + Store 251(coordTemp) 253 + 255: 83 Load 85(g_tTex1di4) + 256: 6(int) Load 251(coordTemp) + 257: 7(ivec4) ImageRead 255 256 + Store 254(storeTemp) 257 + 259: 7(ivec4) Load 254(storeTemp) + 260: 7(ivec4) CompositeConstruct 258 258 258 258 + 261: 7(ivec4) BitwiseAnd 259 260 + Store 254(storeTemp) 261 + 262: 83 Load 85(g_tTex1di4) + 263: 6(int) Load 251(coordTemp) + 264: 7(ivec4) Load 254(storeTemp) + ImageWrite 262 263 264 + 266: 73(ptr) AccessChain 61 51 + 267: 6(int) Load 266 + Store 265(coordTemp) 267 + 269: 83 Load 85(g_tTex1di4) + 270: 6(int) Load 265(coordTemp) + 271: 7(ivec4) ImageRead 269 270 + Store 268(storeTemp) 271 + 273: 7(ivec4) Load 268(storeTemp) + 274: 7(ivec4) CompositeConstruct 272 272 272 272 + 275: 7(ivec4) BitwiseOr 273 274 + Store 268(storeTemp) 275 + 276: 83 Load 85(g_tTex1di4) + 277: 6(int) Load 265(coordTemp) + 278: 7(ivec4) Load 268(storeTemp) + ImageWrite 276 277 278 + 280: 73(ptr) AccessChain 61 51 + 281: 6(int) Load 280 + Store 279(coordTemp) 281 + 283: 83 Load 85(g_tTex1di4) + 284: 6(int) Load 279(coordTemp) + 285: 7(ivec4) ImageRead 283 284 + Store 282(storeTemp) 285 + 286: 7(ivec4) Load 282(storeTemp) + 287: 7(ivec4) CompositeConstruct 129 129 129 129 + 288: 7(ivec4) ShiftLeftLogical 286 287 + Store 282(storeTemp) 288 + 289: 83 Load 85(g_tTex1di4) + 290: 6(int) Load 279(coordTemp) + 291: 7(ivec4) Load 282(storeTemp) + ImageWrite 289 290 291 + 293: 73(ptr) AccessChain 61 51 + 294: 6(int) Load 293 + Store 292(coordTemp) 294 + 296: 83 Load 85(g_tTex1di4) + 297: 6(int) Load 292(coordTemp) + 298: 7(ivec4) ImageRead 296 297 + Store 295(storeTemp) 298 + 299: 7(ivec4) Load 295(storeTemp) + 300: 7(ivec4) CompositeConstruct 129 129 129 129 + 301: 7(ivec4) ShiftRightArithmetic 299 300 + Store 295(storeTemp) 301 + 302: 83 Load 85(g_tTex1di4) + 303: 6(int) Load 292(coordTemp) + 304: 7(ivec4) Load 295(storeTemp) + ImageWrite 302 303 304 + 306: 21(fvec4) FunctionCall 40(SomeValue() + Store 305(storeTemp) 306 + 307: 99 Load 101(g_tTex2df4) + 308: 104(ptr) AccessChain 61 103 + 309: 57(ivec2) Load 308 + 310: 21(fvec4) Load 305(storeTemp) + ImageWrite 307 309 310 + 311: 99 Load 101(g_tTex2df4) + 312: 104(ptr) AccessChain 61 103 + 313: 57(ivec2) Load 312 + 314: 21(fvec4) Load 150(lf4) + ImageWrite 311 313 314 + Store 315(storeTemp) 317 + 318: 109 Load 111(g_tTex2di4) + 319: 104(ptr) AccessChain 61 103 + 320: 57(ivec2) Load 319 + 321: 7(ivec4) Load 315(storeTemp) + ImageWrite 318 320 321 + Store 322(storeTemp) 324 + 325: 117 Load 119(g_tTex2du4) + 326: 104(ptr) AccessChain 61 103 + 327: 57(ivec2) Load 326 + 328: 14(ivec4) Load 322(storeTemp) + ImageWrite 325 327 328 + 330: 21(fvec4) FunctionCall 40(SomeValue() + Store 329(storeTemp) 330 + 331: 125 Load 127(g_tTex3df4) + 332: 130(ptr) AccessChain 61 129 + 333: 58(ivec3) Load 332 + 334: 21(fvec4) Load 329(storeTemp) + ImageWrite 331 333 334 + 335: 125 Load 127(g_tTex3df4) + 336: 130(ptr) AccessChain 61 129 + 337: 58(ivec3) Load 336 + 338: 21(fvec4) Load 150(lf4) + ImageWrite 335 337 338 + Store 339(storeTemp) 342 + 343: 135 Load 137(g_tTex3di4) + 344: 130(ptr) AccessChain 61 129 + 345: 58(ivec3) Load 344 + 346: 7(ivec4) Load 339(storeTemp) + ImageWrite 343 345 346 + Store 347(storeTemp) 349 + 350: 143 Load 145(g_tTex3du4) + 351: 130(ptr) AccessChain 61 129 + 352: 58(ivec3) Load 351 + 353: 14(ivec4) Load 347(storeTemp) + ImageWrite 350 352 353 + 354: 69 Load 71(g_tTex1df4) + 355: 73(ptr) AccessChain 61 51 + 356: 6(int) Load 355 + 357: 21(fvec4) ImageRead 354 356 + Store 358(param) 357 + 359: 21(fvec4) FunctionCall 25(Fn1(vf4;) 358(param) + 360: 83 Load 85(g_tTex1di4) + 361: 73(ptr) AccessChain 61 51 + 362: 6(int) Load 361 + 363: 7(ivec4) ImageRead 360 362 + Store 364(param) 363 + 365: 7(ivec4) FunctionCall 11(Fn1(vi4;) 364(param) + 366: 91 Load 93(g_tTex1du4) + 367: 73(ptr) AccessChain 61 51 + 368: 6(int) Load 367 + 369: 14(ivec4) ImageRead 366 368 + Store 370(param) 369 + 371: 14(ivec4) FunctionCall 18(Fn1(vu4;) 370(param) + 374: 2 FunctionCall 37(Fn2(vf4;) 373(param) + 375: 21(fvec4) Load 373(param) + Store 372(tempArg) 375 + 376: 69 Load 71(g_tTex1df4) + 377: 73(ptr) AccessChain 61 51 + 378: 6(int) Load 377 + 379: 21(fvec4) Load 372(tempArg) + ImageWrite 376 378 379 + 382: 2 FunctionCall 29(Fn2(vi4;) 381(param) + 383: 7(ivec4) Load 381(param) + Store 380(tempArg) 383 + 384: 83 Load 85(g_tTex1di4) + 385: 73(ptr) AccessChain 61 51 + 386: 6(int) Load 385 + 387: 7(ivec4) Load 380(tempArg) + ImageWrite 384 386 387 + 390: 2 FunctionCall 33(Fn2(vu4;) 389(param) + 391: 14(ivec4) Load 389(param) + Store 388(tempArg) 391 + 392: 91 Load 93(g_tTex1du4) + 393: 73(ptr) AccessChain 61 51 + 394: 6(int) Load 393 + 395: 14(ivec4) Load 388(tempArg) + ImageWrite 392 394 395 + 397: 73(ptr) AccessChain 61 51 + 398: 6(int) Load 397 + Store 396(coordTemp) 398 + 400: 69 Load 71(g_tTex1df4) + 401: 6(int) Load 396(coordTemp) + 402: 21(fvec4) ImageRead 400 401 + Store 399(storeTemp) 402 + 403: 21(fvec4) Load 399(storeTemp) + 405: 21(fvec4) CompositeConstruct 404 404 404 404 + 406: 21(fvec4) FAdd 403 405 + Store 399(storeTemp) 406 + 407: 69 Load 71(g_tTex1df4) + 408: 6(int) Load 396(coordTemp) + 409: 21(fvec4) Load 399(storeTemp) + ImageWrite 407 408 409 + 411: 73(ptr) AccessChain 61 51 + 412: 6(int) Load 411 + Store 410(coordTemp) 412 + 414: 83 Load 85(g_tTex1di4) + 415: 6(int) Load 410(coordTemp) + 416: 7(ivec4) ImageRead 414 415 + Store 413(storeTemp) 416 + 417: 7(ivec4) Load 413(storeTemp) + 418: 7(ivec4) CompositeConstruct 103 103 103 103 + 419: 7(ivec4) IAdd 417 418 + Store 413(storeTemp) 419 + 420: 83 Load 85(g_tTex1di4) + 421: 6(int) Load 410(coordTemp) + 422: 7(ivec4) Load 413(storeTemp) + ImageWrite 420 421 422 + 424: 73(ptr) AccessChain 61 51 + 425: 6(int) Load 424 + Store 423(coordTemp) 425 + 427: 91 Load 93(g_tTex1du4) + 428: 6(int) Load 423(coordTemp) + 429: 14(ivec4) ImageRead 427 428 + Store 426(storeTemp) 429 + 430: 14(ivec4) Load 426(storeTemp) + 431: 7(ivec4) CompositeConstruct 103 103 103 103 + 432: 14(ivec4) IAdd 430 431 + Store 426(storeTemp) 432 + 433: 91 Load 93(g_tTex1du4) + 434: 6(int) Load 423(coordTemp) + 435: 14(ivec4) Load 426(storeTemp) + ImageWrite 433 434 435 + 437: 73(ptr) AccessChain 61 51 + 438: 6(int) Load 437 + Store 436(coordTemp) 438 + 440: 69 Load 71(g_tTex1df4) + 441: 6(int) Load 436(coordTemp) + 442: 21(fvec4) ImageRead 440 441 + Store 439(storeTemp) 442 + 443: 21(fvec4) Load 439(storeTemp) + 444: 21(fvec4) CompositeConstruct 404 404 404 404 + 445: 21(fvec4) FSub 443 444 + Store 439(storeTemp) 445 + 446: 69 Load 71(g_tTex1df4) + 447: 6(int) Load 436(coordTemp) + 448: 21(fvec4) Load 439(storeTemp) + ImageWrite 446 447 448 + 450: 73(ptr) AccessChain 61 51 + 451: 6(int) Load 450 + Store 449(coordTemp) 451 + 453: 83 Load 85(g_tTex1di4) + 454: 6(int) Load 449(coordTemp) + 455: 7(ivec4) ImageRead 453 454 + Store 452(storeTemp) 455 + 456: 7(ivec4) Load 452(storeTemp) + 457: 7(ivec4) CompositeConstruct 103 103 103 103 + 458: 7(ivec4) ISub 456 457 + Store 452(storeTemp) 458 + 459: 83 Load 85(g_tTex1di4) + 460: 6(int) Load 449(coordTemp) + 461: 7(ivec4) Load 452(storeTemp) + ImageWrite 459 460 461 + 463: 73(ptr) AccessChain 61 51 + 464: 6(int) Load 463 + Store 462(coordTemp) 464 + 466: 91 Load 93(g_tTex1du4) + 467: 6(int) Load 462(coordTemp) + 468: 14(ivec4) ImageRead 466 467 + Store 465(storeTemp) 468 + 469: 14(ivec4) Load 465(storeTemp) + 470: 7(ivec4) CompositeConstruct 103 103 103 103 + 471: 14(ivec4) ISub 469 470 + Store 465(storeTemp) 471 + 472: 91 Load 93(g_tTex1du4) + 473: 6(int) Load 462(coordTemp) + 474: 14(ivec4) Load 465(storeTemp) + ImageWrite 472 473 474 + 476: 73(ptr) AccessChain 61 51 + 477: 6(int) Load 476 + Store 475(coordTemp) 477 + 479: 69 Load 71(g_tTex1df4) + 480: 6(int) Load 475(coordTemp) + 481: 21(fvec4) ImageRead 479 480 + Store 478(storeTempPre) 481 + 483: 21(fvec4) Load 478(storeTempPre) + Store 482(storeTempPost) 483 + 484: 21(fvec4) Load 482(storeTempPost) + 485: 21(fvec4) CompositeConstruct 404 404 404 404 + 486: 21(fvec4) FAdd 484 485 + Store 482(storeTempPost) 486 + 487: 69 Load 71(g_tTex1df4) + 488: 6(int) Load 475(coordTemp) + 489: 21(fvec4) Load 482(storeTempPost) + ImageWrite 487 488 489 + 491: 73(ptr) AccessChain 61 51 + 492: 6(int) Load 491 + Store 490(coordTemp) 492 + 494: 91 Load 93(g_tTex1du4) + 495: 6(int) Load 490(coordTemp) + 496: 14(ivec4) ImageRead 494 495 + Store 493(storeTempPre) 496 + 498: 14(ivec4) Load 493(storeTempPre) + Store 497(storeTempPost) 498 + 499: 14(ivec4) Load 497(storeTempPost) + 500: 7(ivec4) CompositeConstruct 103 103 103 103 + 501: 14(ivec4) ISub 499 500 + Store 497(storeTempPost) 501 + 502: 91 Load 93(g_tTex1du4) + 503: 6(int) Load 490(coordTemp) + 504: 14(ivec4) Load 497(storeTempPost) + ImageWrite 502 503 504 + 506: 73(ptr) AccessChain 61 51 + 507: 6(int) Load 506 + Store 505(coordTemp) 507 + 509: 83 Load 85(g_tTex1di4) + 510: 6(int) Load 505(coordTemp) + 511: 7(ivec4) ImageRead 509 510 + Store 508(storeTempPre) 511 + 513: 7(ivec4) Load 508(storeTempPre) + Store 512(storeTempPost) 513 + 514: 7(ivec4) Load 512(storeTempPost) + 515: 7(ivec4) CompositeConstruct 103 103 103 103 + 516: 7(ivec4) IAdd 514 515 + Store 512(storeTempPost) 516 + 517: 83 Load 85(g_tTex1di4) + 518: 6(int) Load 505(coordTemp) + 519: 7(ivec4) Load 512(storeTempPost) + ImageWrite 517 518 519 + 521: 73(ptr) AccessChain 61 51 + 522: 6(int) Load 521 + Store 520(coordTemp) 522 + 524: 69 Load 71(g_tTex1df4) + 525: 6(int) Load 520(coordTemp) + 526: 21(fvec4) ImageRead 524 525 + Store 523(storeTempPre) 526 + 528: 21(fvec4) Load 523(storeTempPre) + Store 527(storeTempPost) 528 + 529: 21(fvec4) Load 527(storeTempPost) + 530: 21(fvec4) CompositeConstruct 404 404 404 404 + 531: 21(fvec4) FSub 529 530 + Store 527(storeTempPost) 531 + 532: 69 Load 71(g_tTex1df4) + 533: 6(int) Load 520(coordTemp) + 534: 21(fvec4) Load 527(storeTempPost) + ImageWrite 532 533 534 + 536: 73(ptr) AccessChain 61 51 + 537: 6(int) Load 536 + Store 535(coordTemp) 537 + 539: 83 Load 85(g_tTex1di4) + 540: 6(int) Load 535(coordTemp) + 541: 7(ivec4) ImageRead 539 540 + Store 538(storeTempPre) 541 + 543: 7(ivec4) Load 538(storeTempPre) + Store 542(storeTempPost) 543 + 544: 7(ivec4) Load 542(storeTempPost) + 545: 7(ivec4) CompositeConstruct 103 103 103 103 + 546: 7(ivec4) IAdd 544 545 + Store 542(storeTempPost) 546 + 547: 83 Load 85(g_tTex1di4) + 548: 6(int) Load 535(coordTemp) + 549: 7(ivec4) Load 542(storeTempPost) + ImageWrite 547 548 549 + 551: 73(ptr) AccessChain 61 51 + 552: 6(int) Load 551 + Store 550(coordTemp) 552 + 554: 91 Load 93(g_tTex1du4) + 555: 6(int) Load 550(coordTemp) + 556: 14(ivec4) ImageRead 554 555 + Store 553(storeTempPre) 556 + 558: 14(ivec4) Load 553(storeTempPre) + Store 557(storeTempPost) 558 + 559: 14(ivec4) Load 557(storeTempPost) + 560: 7(ivec4) CompositeConstruct 103 103 103 103 + 561: 14(ivec4) ISub 559 560 + Store 557(storeTempPost) 561 + 562: 91 Load 93(g_tTex1du4) + 563: 6(int) Load 550(coordTemp) + 564: 14(ivec4) Load 557(storeTempPost) + ImageWrite 562 563 564 + 566: 99 Load 101(g_tTex2df4) + 568: 21(fvec4) ImageRead 566 567 + Store 565(storeTemp) 568 + 569: 69 Load 71(g_tTex1df4) + 570: 21(fvec4) Load 565(storeTemp) + ImageWrite 569 103 570 + 575: 22(ptr) AccessChain 573(psout) 51 + Store 575 574 + 578: 22(ptr) AccessChain 573(psout) 51 + 579: 21(fvec4) Load 578 + Store 577(Color) 579 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 42: 7(ivec4) Load 10(x) + ReturnValue 42 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 45: 14(ivec4) Load 17(x) + ReturnValue 45 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 48: 21(fvec4) Load 24(x) + ReturnValue 48 + FunctionEnd + 29(Fn2(vi4;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 52 + Return + FunctionEnd + 33(Fn2(vu4;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 54 + Return + FunctionEnd + 37(Fn2(vf4;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 56 + Return + FunctionEnd + 40(SomeValue(): 21(fvec4) Function None 39 + 41: Label + 64: 63(ptr) AccessChain 61 62 + 65: 7(ivec4) Load 64 + 66: 21(fvec4) ConvertSToF 65 + ReturnValue 66 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.register.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.register.frag.out new file mode 100644 index 0000000000..f369cac79f --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.register.frag.out @@ -0,0 +1,158 @@ +hlsl.rw.register.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'r00' (temp float) +0:12 imageLoad (temp float) +0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child (temp uint) +0:13 'r01' (temp uint) +0:13 imageLoad (temp uint) +0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child (temp 4-component vector of float) +0:16 Color: direct index for structure (temp 4-component vector of float) +0:16 'psout' (temp structure{temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'r00' (temp float) +0:12 imageLoad (temp float) +0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child (temp uint) +0:13 'r01' (temp uint) +0:13 imageLoad (temp uint) +0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child (temp 4-component vector of float) +0:16 Color: direct index for structure (temp 4-component vector of float) +0:16 'psout' (temp structure{temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 37 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df1" + Name 18 "r01" + Name 21 "g_tBuf1du1" + Name 25 "PS_OUTPUT" + MemberName 25(PS_OUTPUT) 0 "Color" + Name 27 "psout" + Name 33 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 11(g_tTex1df1) Binding 2 + Decorate 21(g_tBuf1du1) DescriptorSet 0 + Decorate 21(g_tBuf1du1) Binding 3 + Decorate 33(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D nonsampled format:R32f + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 16: TypeInt 32 0 + 17: TypePointer Function 16(int) + 19: TypeImage 16(int) Buffer nonsampled format:R32ui + 20: TypePointer UniformConstant 19 + 21(g_tBuf1du1): 20(ptr) Variable UniformConstant + 24: TypeVector 6(float) 4 + 25(PS_OUTPUT): TypeStruct 24(fvec4) + 26: TypePointer Function 25(PS_OUTPUT) + 28: 6(float) Constant 1065353216 + 29: 24(fvec4) ConstantComposite 28 28 28 28 + 30: TypePointer Function 24(fvec4) + 32: TypePointer Output 24(fvec4) + 33(Color): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 18(r01): 17(ptr) Variable Function + 27(psout): 26(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 15: 6(float) ImageRead 12 14 + Store 8(r00) 15 + 22: 19 Load 21(g_tBuf1du1) + 23: 16(int) ImageRead 22 14 + Store 18(r01) 23 + 31: 30(ptr) AccessChain 27(psout) 14 + Store 31 29 + 34: 30(ptr) AccessChain 27(psout) 14 + 35: 24(fvec4) Load 34 + Store 33(Color) 35 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.scalar.bracket.frag.out new file mode 100644 index 0000000000..8e40fd2e35 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -0,0 +1,2560 @@ +hlsl.rw.scalar.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Parameters: +0:42 'x' (in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in int) +0:43 Function Definition: Fn1(u1; (temp uint) +0:43 Function Parameters: +0:43 'x' (in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in uint) +0:44 Function Definition: Fn1(f1; (temp float) +0:44 Function Parameters: +0:44 'x' (in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in float) +0:46 Function Definition: Fn2(i1; (temp void) +0:46 Function Parameters: +0:46 'x' (out int) +0:? Sequence +0:46 move second child to first child (temp int) +0:46 'x' (out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; (temp void) +0:47 Function Parameters: +0:47 'x' (out uint) +0:? Sequence +0:47 move second child to first child (temp uint) +0:47 'x' (out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; (temp void) +0:48 Function Parameters: +0:48 'x' (out float) +0:? Sequence +0:48 move second child to first child (temp float) +0:48 'x' (out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp float) +0:50 c1: direct index for structure (layout(offset=0 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp float) +0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp float) +0:59 'r00' (temp float) +0:59 imageLoad (temp float) +0:59 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp int) +0:60 'r01' (temp int) +0:60 imageLoad (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'r02' (temp uint) +0:61 imageLoad (temp uint) +0:61 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp float) +0:64 'r10' (temp float) +0:64 imageLoad (temp float) +0:64 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp int) +0:65 'r11' (temp int) +0:65 imageLoad (temp int) +0:65 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'r12' (temp uint) +0:66 imageLoad (temp uint) +0:66 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp float) +0:69 'r20' (temp float) +0:69 imageLoad (temp float) +0:69 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp int) +0:70 'r21' (temp int) +0:70 imageLoad (temp int) +0:70 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'r22' (temp uint) +0:71 imageLoad (temp uint) +0:71 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp float) +0:73 'lf1' (temp float) +0:73 uf1: direct index for structure (layout(offset=96 ) uniform float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp float) +0:77 'storeTemp' (temp float) +0:77 Function Call: SomeValue( (temp float) +0:77 imageStore (temp void) +0:77 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp float) +0:77 'storeTemp' (temp float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' (temp float) +0:78 'lf1' (temp float) +0:79 Sequence +0:79 move second child to first child (temp int) +0:79 'storeTemp' (temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp int) +0:79 'storeTemp' (temp int) +0:80 Sequence +0:80 move second child to first child (temp uint) +0:80 'storeTemp' (temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp uint) +0:80 'storeTemp' (temp uint) +0:83 Sequence +0:83 move second child to first child (temp float) +0:83 'val1' (temp float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp float) +0:83 'storeTemp' (temp float) +0:83 imageLoad (temp float) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 multiply second child into first child (temp float) +0:83 'storeTemp' (temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp float) +0:83 'storeTemp' (temp float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp float) +0:84 'storeTemp' (temp float) +0:84 imageLoad (temp float) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp float) +0:84 'storeTemp' (temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp float) +0:84 'storeTemp' (temp float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp float) +0:85 'storeTemp' (temp float) +0:85 imageLoad (temp float) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp float) +0:85 'storeTemp' (temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp float) +0:85 'storeTemp' (temp float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp int) +0:87 'storeTemp' (temp int) +0:87 imageLoad (temp int) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp int) +0:87 'storeTemp' (temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp int) +0:87 'storeTemp' (temp int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp int) +0:88 'storeTemp' (temp int) +0:88 imageLoad (temp int) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp int) +0:88 'storeTemp' (temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp int) +0:88 'storeTemp' (temp int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp int) +0:89 'storeTemp' (temp int) +0:89 imageLoad (temp int) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp int) +0:89 'storeTemp' (temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp int) +0:89 'storeTemp' (temp int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp int) +0:90 'storeTemp' (temp int) +0:90 imageLoad (temp int) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp int) +0:90 'storeTemp' (temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp int) +0:90 'storeTemp' (temp int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp int) +0:91 'storeTemp' (temp int) +0:91 imageLoad (temp int) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp int) +0:91 'storeTemp' (temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp int) +0:91 'storeTemp' (temp int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp int) +0:92 'storeTemp' (temp int) +0:92 imageLoad (temp int) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp int) +0:92 'storeTemp' (temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp int) +0:92 'storeTemp' (temp int) +0:95 Sequence +0:95 move second child to first child (temp float) +0:95 'storeTemp' (temp float) +0:95 Function Call: SomeValue( (temp float) +0:95 imageStore (temp void) +0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp float) +0:95 'storeTemp' (temp float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' (temp float) +0:96 'lf1' (temp float) +0:97 Sequence +0:97 move second child to first child (temp int) +0:97 'storeTemp' (temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp int) +0:97 'storeTemp' (temp int) +0:98 Sequence +0:98 move second child to first child (temp uint) +0:98 'storeTemp' (temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp uint) +0:98 'storeTemp' (temp uint) +0:101 Sequence +0:101 move second child to first child (temp float) +0:101 'storeTemp' (temp float) +0:101 Function Call: SomeValue( (temp float) +0:101 imageStore (temp void) +0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp float) +0:101 'storeTemp' (temp float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' (temp float) +0:102 'lf1' (temp float) +0:103 Sequence +0:103 move second child to first child (temp int) +0:103 'storeTemp' (temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp int) +0:103 'storeTemp' (temp int) +0:104 Sequence +0:104 move second child to first child (temp uint) +0:104 'storeTemp' (temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp uint) +0:104 'storeTemp' (temp uint) +0:107 Function Call: Fn1(f1; (temp float) +0:107 imageLoad (temp float) +0:107 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; (temp int) +0:108 imageLoad (temp int) +0:108 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; (temp uint) +0:109 imageLoad (temp uint) +0:109 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(f1; (temp void) +0:111 'tempArg' (temp float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp float) +0:111 'tempArg' (temp float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(i1; (temp void) +0:112 'tempArg' (temp int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp int) +0:112 'tempArg' (temp int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(u1; (temp void) +0:113 'tempArg' (temp uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp uint) +0:113 'tempArg' (temp uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp float) +0:117 'storeTemp' (temp float) +0:117 imageLoad (temp float) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp float) +0:117 'storeTemp' (temp float) +0:117 imageStore (temp void) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp float) +0:117 'storeTemp' (temp float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp int) +0:118 'storeTemp' (temp int) +0:118 imageLoad (temp int) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp int) +0:118 'storeTemp' (temp int) +0:118 imageStore (temp void) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp int) +0:118 'storeTemp' (temp int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageLoad (temp uint) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp uint) +0:119 'storeTemp' (temp uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp float) +0:121 'storeTemp' (temp float) +0:121 imageLoad (temp float) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp float) +0:121 'storeTemp' (temp float) +0:121 imageStore (temp void) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp float) +0:121 'storeTemp' (temp float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp int) +0:122 'storeTemp' (temp int) +0:122 imageLoad (temp int) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp int) +0:122 'storeTemp' (temp int) +0:122 imageStore (temp void) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp int) +0:122 'storeTemp' (temp int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageLoad (temp uint) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp uint) +0:123 'storeTemp' (temp uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp float) +0:126 'storeTempPre' (temp float) +0:126 imageLoad (temp float) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp float) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:126 Post-Increment (temp float) +0:126 'storeTempPost' (temp float) +0:126 imageStore (temp void) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 imageLoad (temp uint) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 Post-Decrement (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp int) +0:128 'storeTempPre' (temp int) +0:128 imageLoad (temp int) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:128 Post-Increment (temp int) +0:128 'storeTempPost' (temp int) +0:128 imageStore (temp void) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp float) +0:130 'storeTempPre' (temp float) +0:130 imageLoad (temp float) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp float) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:130 Post-Decrement (temp float) +0:130 'storeTempPost' (temp float) +0:130 imageStore (temp void) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp int) +0:131 'storeTempPre' (temp int) +0:131 imageLoad (temp int) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:131 Post-Increment (temp int) +0:131 'storeTempPost' (temp int) +0:131 imageStore (temp void) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 imageLoad (temp uint) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 Post-Decrement (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:135 Sequence +0:135 move second child to first child (temp float) +0:135 'storeTemp' (temp float) +0:? imageLoad (temp float) +0:135 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp float) +0:135 'storeTemp' (temp float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Parameters: +0:42 'x' (in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in int) +0:43 Function Definition: Fn1(u1; (temp uint) +0:43 Function Parameters: +0:43 'x' (in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in uint) +0:44 Function Definition: Fn1(f1; (temp float) +0:44 Function Parameters: +0:44 'x' (in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in float) +0:46 Function Definition: Fn2(i1; (temp void) +0:46 Function Parameters: +0:46 'x' (out int) +0:? Sequence +0:46 move second child to first child (temp int) +0:46 'x' (out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; (temp void) +0:47 Function Parameters: +0:47 'x' (out uint) +0:? Sequence +0:47 move second child to first child (temp uint) +0:47 'x' (out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; (temp void) +0:48 Function Parameters: +0:48 'x' (out float) +0:? Sequence +0:48 move second child to first child (temp float) +0:48 'x' (out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp float) +0:50 c1: direct index for structure (layout(offset=0 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp float) +0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp float) +0:59 'r00' (temp float) +0:59 imageLoad (temp float) +0:59 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp int) +0:60 'r01' (temp int) +0:60 imageLoad (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'r02' (temp uint) +0:61 imageLoad (temp uint) +0:61 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp float) +0:64 'r10' (temp float) +0:64 imageLoad (temp float) +0:64 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp int) +0:65 'r11' (temp int) +0:65 imageLoad (temp int) +0:65 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'r12' (temp uint) +0:66 imageLoad (temp uint) +0:66 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp float) +0:69 'r20' (temp float) +0:69 imageLoad (temp float) +0:69 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp int) +0:70 'r21' (temp int) +0:70 imageLoad (temp int) +0:70 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'r22' (temp uint) +0:71 imageLoad (temp uint) +0:71 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp float) +0:73 'lf1' (temp float) +0:73 uf1: direct index for structure (layout(offset=96 ) uniform float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp float) +0:77 'storeTemp' (temp float) +0:77 Function Call: SomeValue( (temp float) +0:77 imageStore (temp void) +0:77 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp float) +0:77 'storeTemp' (temp float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' (temp float) +0:78 'lf1' (temp float) +0:79 Sequence +0:79 move second child to first child (temp int) +0:79 'storeTemp' (temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp int) +0:79 'storeTemp' (temp int) +0:80 Sequence +0:80 move second child to first child (temp uint) +0:80 'storeTemp' (temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp uint) +0:80 'storeTemp' (temp uint) +0:83 Sequence +0:83 move second child to first child (temp float) +0:83 'val1' (temp float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp float) +0:83 'storeTemp' (temp float) +0:83 imageLoad (temp float) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 multiply second child into first child (temp float) +0:83 'storeTemp' (temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp float) +0:83 'storeTemp' (temp float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp float) +0:84 'storeTemp' (temp float) +0:84 imageLoad (temp float) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp float) +0:84 'storeTemp' (temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp float) +0:84 'storeTemp' (temp float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp float) +0:85 'storeTemp' (temp float) +0:85 imageLoad (temp float) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp float) +0:85 'storeTemp' (temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp float) +0:85 'storeTemp' (temp float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp int) +0:87 'storeTemp' (temp int) +0:87 imageLoad (temp int) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp int) +0:87 'storeTemp' (temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp int) +0:87 'storeTemp' (temp int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp int) +0:88 'storeTemp' (temp int) +0:88 imageLoad (temp int) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp int) +0:88 'storeTemp' (temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp int) +0:88 'storeTemp' (temp int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp int) +0:89 'storeTemp' (temp int) +0:89 imageLoad (temp int) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp int) +0:89 'storeTemp' (temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp int) +0:89 'storeTemp' (temp int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp int) +0:90 'storeTemp' (temp int) +0:90 imageLoad (temp int) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp int) +0:90 'storeTemp' (temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp int) +0:90 'storeTemp' (temp int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp int) +0:91 'storeTemp' (temp int) +0:91 imageLoad (temp int) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp int) +0:91 'storeTemp' (temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp int) +0:91 'storeTemp' (temp int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp int) +0:92 'storeTemp' (temp int) +0:92 imageLoad (temp int) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp int) +0:92 'storeTemp' (temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp int) +0:92 'storeTemp' (temp int) +0:95 Sequence +0:95 move second child to first child (temp float) +0:95 'storeTemp' (temp float) +0:95 Function Call: SomeValue( (temp float) +0:95 imageStore (temp void) +0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp float) +0:95 'storeTemp' (temp float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' (temp float) +0:96 'lf1' (temp float) +0:97 Sequence +0:97 move second child to first child (temp int) +0:97 'storeTemp' (temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp int) +0:97 'storeTemp' (temp int) +0:98 Sequence +0:98 move second child to first child (temp uint) +0:98 'storeTemp' (temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp uint) +0:98 'storeTemp' (temp uint) +0:101 Sequence +0:101 move second child to first child (temp float) +0:101 'storeTemp' (temp float) +0:101 Function Call: SomeValue( (temp float) +0:101 imageStore (temp void) +0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp float) +0:101 'storeTemp' (temp float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' (temp float) +0:102 'lf1' (temp float) +0:103 Sequence +0:103 move second child to first child (temp int) +0:103 'storeTemp' (temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp int) +0:103 'storeTemp' (temp int) +0:104 Sequence +0:104 move second child to first child (temp uint) +0:104 'storeTemp' (temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp uint) +0:104 'storeTemp' (temp uint) +0:107 Function Call: Fn1(f1; (temp float) +0:107 imageLoad (temp float) +0:107 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; (temp int) +0:108 imageLoad (temp int) +0:108 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; (temp uint) +0:109 imageLoad (temp uint) +0:109 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(f1; (temp void) +0:111 'tempArg' (temp float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp float) +0:111 'tempArg' (temp float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(i1; (temp void) +0:112 'tempArg' (temp int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp int) +0:112 'tempArg' (temp int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(u1; (temp void) +0:113 'tempArg' (temp uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp uint) +0:113 'tempArg' (temp uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp float) +0:117 'storeTemp' (temp float) +0:117 imageLoad (temp float) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp float) +0:117 'storeTemp' (temp float) +0:117 imageStore (temp void) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp float) +0:117 'storeTemp' (temp float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp int) +0:118 'storeTemp' (temp int) +0:118 imageLoad (temp int) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp int) +0:118 'storeTemp' (temp int) +0:118 imageStore (temp void) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp int) +0:118 'storeTemp' (temp int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageLoad (temp uint) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp uint) +0:119 'storeTemp' (temp uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp float) +0:121 'storeTemp' (temp float) +0:121 imageLoad (temp float) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp float) +0:121 'storeTemp' (temp float) +0:121 imageStore (temp void) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp float) +0:121 'storeTemp' (temp float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp int) +0:122 'storeTemp' (temp int) +0:122 imageLoad (temp int) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp int) +0:122 'storeTemp' (temp int) +0:122 imageStore (temp void) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp int) +0:122 'storeTemp' (temp int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageLoad (temp uint) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp uint) +0:123 'storeTemp' (temp uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp float) +0:126 'storeTempPre' (temp float) +0:126 imageLoad (temp float) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp float) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:126 Post-Increment (temp float) +0:126 'storeTempPost' (temp float) +0:126 imageStore (temp void) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 imageLoad (temp uint) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 Post-Decrement (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp int) +0:128 'storeTempPre' (temp int) +0:128 imageLoad (temp int) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:128 Post-Increment (temp int) +0:128 'storeTempPost' (temp int) +0:128 imageStore (temp void) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp float) +0:130 'storeTempPre' (temp float) +0:130 imageLoad (temp float) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp float) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:130 Post-Decrement (temp float) +0:130 'storeTempPost' (temp float) +0:130 imageStore (temp void) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp int) +0:131 'storeTempPre' (temp int) +0:131 imageLoad (temp int) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:131 Post-Increment (temp int) +0:131 'storeTempPost' (temp int) +0:131 imageStore (temp void) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 imageLoad (temp uint) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 Post-Decrement (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:135 Sequence +0:135 move second child to first child (temp float) +0:135 'storeTemp' (temp float) +0:? imageLoad (temp float) +0:135 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp float) +0:135 'storeTemp' (temp float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 566 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 541 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "Fn1(i1;" + Name 9 "x" + Name 16 "Fn1(u1;" + Name 15 "x" + Name 22 "Fn1(f1;" + Name 21 "x" + Name 26 "Fn2(i1;" + Name 25 "x" + Name 30 "Fn2(u1;" + Name 29 "x" + Name 34 "Fn2(f1;" + Name 33 "x" + Name 37 "SomeValue(" + Name 54 "$Global" + MemberName 54($Global) 0 "c1" + MemberName 54($Global) 1 "c2" + MemberName 54($Global) 2 "c3" + MemberName 54($Global) 3 "c4" + MemberName 54($Global) 4 "o1" + MemberName 54($Global) 5 "o2" + MemberName 54($Global) 6 "o3" + MemberName 54($Global) 7 "o4" + MemberName 54($Global) 8 "uf1" + MemberName 54($Global) 9 "ui1" + MemberName 54($Global) 10 "uu1" + Name 56 "" + Name 65 "g_tTex1df1" + Name 70 "r00" + Name 75 "r01" + Name 78 "g_tTex1di1" + Name 83 "r02" + Name 86 "g_tTex1du1" + Name 91 "r10" + Name 94 "g_tTex2df1" + Name 101 "r11" + Name 104 "g_tTex2di1" + Name 109 "r12" + Name 112 "g_tTex2du1" + Name 117 "r20" + Name 120 "g_tTex3df1" + Name 127 "r21" + Name 130 "g_tTex3di1" + Name 135 "r22" + Name 138 "g_tTex3du1" + Name 143 "lf1" + Name 148 "storeTemp" + Name 158 "storeTemp" + Name 163 "storeTemp" + Name 169 "val1" + Name 170 "coordTemp" + Name 173 "storeTemp" + Name 184 "coordTemp" + Name 187 "storeTemp" + Name 197 "coordTemp" + Name 200 "storeTemp" + Name 210 "coordTemp" + Name 213 "storeTemp" + Name 222 "coordTemp" + Name 225 "storeTemp" + Name 234 "coordTemp" + Name 237 "storeTemp" + Name 247 "coordTemp" + Name 250 "storeTemp" + Name 260 "coordTemp" + Name 263 "storeTemp" + Name 272 "coordTemp" + Name 275 "storeTemp" + Name 284 "storeTemp" + Name 294 "storeTemp" + Name 300 "storeTemp" + Name 306 "storeTemp" + Name 316 "storeTemp" + Name 321 "storeTemp" + Name 331 "param" + Name 337 "param" + Name 343 "param" + Name 345 "tempArg" + Name 346 "param" + Name 353 "tempArg" + Name 354 "param" + Name 361 "tempArg" + Name 362 "param" + Name 369 "coordTemp" + Name 372 "storeTemp" + Name 382 "coordTemp" + Name 385 "storeTemp" + Name 394 "coordTemp" + Name 397 "storeTemp" + Name 406 "coordTemp" + Name 409 "storeTemp" + Name 418 "coordTemp" + Name 421 "storeTemp" + Name 430 "coordTemp" + Name 433 "storeTemp" + Name 442 "coordTemp" + Name 445 "storeTempPre" + Name 449 "storeTempPost" + Name 456 "coordTemp" + Name 459 "storeTempPre" + Name 463 "storeTempPost" + Name 470 "coordTemp" + Name 473 "storeTempPre" + Name 477 "storeTempPost" + Name 484 "coordTemp" + Name 487 "storeTempPre" + Name 491 "storeTempPost" + Name 498 "coordTemp" + Name 501 "storeTempPre" + Name 505 "storeTempPost" + Name 512 "coordTemp" + Name 515 "storeTempPre" + Name 519 "storeTempPost" + Name 526 "storeTemp" + Name 534 "PS_OUTPUT" + MemberName 534(PS_OUTPUT) 0 "Color" + Name 536 "psout" + Name 541 "Color" + Name 547 "g_sSamp" + Name 550 "g_tTex1df1a" + Name 553 "g_tTex1di1a" + Name 556 "g_tTex1du1a" + Name 559 "g_tTex2df1a" + Name 562 "g_tTex2di1a" + Name 565 "g_tTex2du1a" + MemberDecorate 54($Global) 0 Offset 0 + MemberDecorate 54($Global) 1 Offset 8 + MemberDecorate 54($Global) 2 Offset 16 + MemberDecorate 54($Global) 3 Offset 32 + MemberDecorate 54($Global) 4 Offset 48 + MemberDecorate 54($Global) 5 Offset 56 + MemberDecorate 54($Global) 6 Offset 64 + MemberDecorate 54($Global) 7 Offset 80 + MemberDecorate 54($Global) 8 Offset 96 + MemberDecorate 54($Global) 9 Offset 100 + MemberDecorate 54($Global) 10 Offset 104 + Decorate 54($Global) Block + Decorate 56 DescriptorSet 0 + Decorate 65(g_tTex1df1) DescriptorSet 0 + Decorate 78(g_tTex1di1) DescriptorSet 0 + Decorate 86(g_tTex1du1) DescriptorSet 0 + Decorate 94(g_tTex2df1) DescriptorSet 0 + Decorate 104(g_tTex2di1) DescriptorSet 0 + Decorate 112(g_tTex2du1) DescriptorSet 0 + Decorate 120(g_tTex3df1) DescriptorSet 0 + Decorate 130(g_tTex3di1) DescriptorSet 0 + Decorate 138(g_tTex3du1) DescriptorSet 0 + Decorate 541(Color) Location 0 + Decorate 547(g_sSamp) DescriptorSet 0 + Decorate 547(g_sSamp) Binding 0 + Decorate 550(g_tTex1df1a) DescriptorSet 0 + Decorate 553(g_tTex1di1a) DescriptorSet 0 + Decorate 556(g_tTex1du1a) DescriptorSet 0 + Decorate 559(g_tTex2df1a) DescriptorSet 0 + Decorate 562(g_tTex2di1a) DescriptorSet 0 + Decorate 565(g_tTex2du1a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 14: TypeFunction 12(int) 13(ptr) + 18: TypeFloat 32 + 19: TypePointer Function 18(float) + 20: TypeFunction 18(float) 19(ptr) + 24: TypeFunction 2 7(ptr) + 28: TypeFunction 2 13(ptr) + 32: TypeFunction 2 19(ptr) + 36: TypeFunction 18(float) + 48: 6(int) Constant 0 + 49: 12(int) Constant 0 + 50: 18(float) Constant 0 + 51: TypeVector 6(int) 2 + 52: TypeVector 6(int) 3 + 53: TypeVector 6(int) 4 + 54($Global): TypeStruct 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 18(float) 6(int) 12(int) + 55: TypePointer Uniform 54($Global) + 56: 55(ptr) Variable Uniform + 57: TypePointer Uniform 6(int) + 63: TypeImage 18(float) 1D nonsampled format:R32f + 64: TypePointer UniformConstant 63 + 65(g_tTex1df1): 64(ptr) Variable UniformConstant + 76: TypeImage 6(int) 1D nonsampled format:R32i + 77: TypePointer UniformConstant 76 + 78(g_tTex1di1): 77(ptr) Variable UniformConstant + 84: TypeImage 12(int) 1D nonsampled format:R32ui + 85: TypePointer UniformConstant 84 + 86(g_tTex1du1): 85(ptr) Variable UniformConstant + 92: TypeImage 18(float) 2D nonsampled format:R32f + 93: TypePointer UniformConstant 92 + 94(g_tTex2df1): 93(ptr) Variable UniformConstant + 96: 6(int) Constant 1 + 97: TypePointer Uniform 51(ivec2) + 102: TypeImage 6(int) 2D nonsampled format:R32i + 103: TypePointer UniformConstant 102 + 104(g_tTex2di1): 103(ptr) Variable UniformConstant + 110: TypeImage 12(int) 2D nonsampled format:R32ui + 111: TypePointer UniformConstant 110 + 112(g_tTex2du1): 111(ptr) Variable UniformConstant + 118: TypeImage 18(float) 3D nonsampled format:R32f + 119: TypePointer UniformConstant 118 + 120(g_tTex3df1): 119(ptr) Variable UniformConstant + 122: 6(int) Constant 2 + 123: TypePointer Uniform 52(ivec3) + 128: TypeImage 6(int) 3D nonsampled format:R32i + 129: TypePointer UniformConstant 128 + 130(g_tTex3di1): 129(ptr) Variable UniformConstant + 136: TypeImage 12(int) 3D nonsampled format:R32ui + 137: TypePointer UniformConstant 136 + 138(g_tTex3du1): 137(ptr) Variable UniformConstant + 144: 6(int) Constant 8 + 145: TypePointer Uniform 18(float) + 164: 12(int) Constant 3 + 177: 18(float) Constant 1073741824 + 191: 18(float) Constant 1077936128 + 204: 18(float) Constant 1082130432 + 241: 6(int) Constant 65535 + 254: 6(int) Constant 61680 + 295: 6(int) Constant 5 + 301: 12(int) Constant 6 + 322: 12(int) Constant 9 + 377: 18(float) Constant 1065353216 + 528: 6(int) Constant 3 + 529: 51(ivec2) ConstantComposite 122 528 + 533: TypeVector 18(float) 4 + 534(PS_OUTPUT): TypeStruct 533(fvec4) + 535: TypePointer Function 534(PS_OUTPUT) + 537: 533(fvec4) ConstantComposite 377 377 377 377 + 538: TypePointer Function 533(fvec4) + 540: TypePointer Output 533(fvec4) + 541(Color): 540(ptr) Variable Output + 545: TypeSampler + 546: TypePointer UniformConstant 545 + 547(g_sSamp): 546(ptr) Variable UniformConstant + 548: TypeImage 18(float) 1D array nonsampled format:R32f + 549: TypePointer UniformConstant 548 +550(g_tTex1df1a): 549(ptr) Variable UniformConstant + 551: TypeImage 6(int) 1D array nonsampled format:R32i + 552: TypePointer UniformConstant 551 +553(g_tTex1di1a): 552(ptr) Variable UniformConstant + 554: TypeImage 12(int) 1D array nonsampled format:R32ui + 555: TypePointer UniformConstant 554 +556(g_tTex1du1a): 555(ptr) Variable UniformConstant + 557: TypeImage 18(float) 2D array nonsampled format:R32f + 558: TypePointer UniformConstant 557 +559(g_tTex2df1a): 558(ptr) Variable UniformConstant + 560: TypeImage 6(int) 2D array nonsampled format:R32i + 561: TypePointer UniformConstant 560 +562(g_tTex2di1a): 561(ptr) Variable UniformConstant + 563: TypeImage 12(int) 2D array nonsampled format:R32ui + 564: TypePointer UniformConstant 563 +565(g_tTex2du1a): 564(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 70(r00): 19(ptr) Variable Function + 75(r01): 7(ptr) Variable Function + 83(r02): 13(ptr) Variable Function + 91(r10): 19(ptr) Variable Function + 101(r11): 7(ptr) Variable Function + 109(r12): 13(ptr) Variable Function + 117(r20): 19(ptr) Variable Function + 127(r21): 7(ptr) Variable Function + 135(r22): 13(ptr) Variable Function + 143(lf1): 19(ptr) Variable Function + 148(storeTemp): 19(ptr) Variable Function + 158(storeTemp): 7(ptr) Variable Function + 163(storeTemp): 13(ptr) Variable Function + 169(val1): 19(ptr) Variable Function + 170(coordTemp): 7(ptr) Variable Function + 173(storeTemp): 19(ptr) Variable Function + 184(coordTemp): 7(ptr) Variable Function + 187(storeTemp): 19(ptr) Variable Function + 197(coordTemp): 7(ptr) Variable Function + 200(storeTemp): 19(ptr) Variable Function + 210(coordTemp): 7(ptr) Variable Function + 213(storeTemp): 7(ptr) Variable Function + 222(coordTemp): 7(ptr) Variable Function + 225(storeTemp): 7(ptr) Variable Function + 234(coordTemp): 7(ptr) Variable Function + 237(storeTemp): 7(ptr) Variable Function + 247(coordTemp): 7(ptr) Variable Function + 250(storeTemp): 7(ptr) Variable Function + 260(coordTemp): 7(ptr) Variable Function + 263(storeTemp): 7(ptr) Variable Function + 272(coordTemp): 7(ptr) Variable Function + 275(storeTemp): 7(ptr) Variable Function + 284(storeTemp): 19(ptr) Variable Function + 294(storeTemp): 7(ptr) Variable Function + 300(storeTemp): 13(ptr) Variable Function + 306(storeTemp): 19(ptr) Variable Function + 316(storeTemp): 7(ptr) Variable Function + 321(storeTemp): 13(ptr) Variable Function + 331(param): 19(ptr) Variable Function + 337(param): 7(ptr) Variable Function + 343(param): 13(ptr) Variable Function + 345(tempArg): 19(ptr) Variable Function + 346(param): 19(ptr) Variable Function + 353(tempArg): 7(ptr) Variable Function + 354(param): 7(ptr) Variable Function + 361(tempArg): 13(ptr) Variable Function + 362(param): 13(ptr) Variable Function + 369(coordTemp): 7(ptr) Variable Function + 372(storeTemp): 19(ptr) Variable Function + 382(coordTemp): 7(ptr) Variable Function + 385(storeTemp): 7(ptr) Variable Function + 394(coordTemp): 7(ptr) Variable Function + 397(storeTemp): 13(ptr) Variable Function + 406(coordTemp): 7(ptr) Variable Function + 409(storeTemp): 19(ptr) Variable Function + 418(coordTemp): 7(ptr) Variable Function + 421(storeTemp): 7(ptr) Variable Function + 430(coordTemp): 7(ptr) Variable Function + 433(storeTemp): 13(ptr) Variable Function + 442(coordTemp): 7(ptr) Variable Function +445(storeTempPre): 19(ptr) Variable Function +449(storeTempPost): 19(ptr) Variable Function + 456(coordTemp): 7(ptr) Variable Function +459(storeTempPre): 13(ptr) Variable Function +463(storeTempPost): 13(ptr) Variable Function + 470(coordTemp): 7(ptr) Variable Function +473(storeTempPre): 7(ptr) Variable Function +477(storeTempPost): 7(ptr) Variable Function + 484(coordTemp): 7(ptr) Variable Function +487(storeTempPre): 19(ptr) Variable Function +491(storeTempPost): 19(ptr) Variable Function + 498(coordTemp): 7(ptr) Variable Function +501(storeTempPre): 7(ptr) Variable Function +505(storeTempPost): 7(ptr) Variable Function + 512(coordTemp): 7(ptr) Variable Function +515(storeTempPre): 13(ptr) Variable Function +519(storeTempPost): 13(ptr) Variable Function + 526(storeTemp): 19(ptr) Variable Function + 536(psout): 535(ptr) Variable Function + 66: 63 Load 65(g_tTex1df1) + 67: 57(ptr) AccessChain 56 48 + 68: 6(int) Load 67 + 69: 18(float) ImageRead 66 68 + 71: 63 Load 65(g_tTex1df1) + 72: 57(ptr) AccessChain 56 48 + 73: 6(int) Load 72 + 74: 18(float) ImageRead 71 73 + Store 70(r00) 74 + 79: 76 Load 78(g_tTex1di1) + 80: 57(ptr) AccessChain 56 48 + 81: 6(int) Load 80 + 82: 6(int) ImageRead 79 81 + Store 75(r01) 82 + 87: 84 Load 86(g_tTex1du1) + 88: 57(ptr) AccessChain 56 48 + 89: 6(int) Load 88 + 90: 12(int) ImageRead 87 89 + Store 83(r02) 90 + 95: 92 Load 94(g_tTex2df1) + 98: 97(ptr) AccessChain 56 96 + 99: 51(ivec2) Load 98 + 100: 18(float) ImageRead 95 99 + Store 91(r10) 100 + 105: 102 Load 104(g_tTex2di1) + 106: 97(ptr) AccessChain 56 96 + 107: 51(ivec2) Load 106 + 108: 6(int) ImageRead 105 107 + Store 101(r11) 108 + 113: 110 Load 112(g_tTex2du1) + 114: 97(ptr) AccessChain 56 96 + 115: 51(ivec2) Load 114 + 116: 12(int) ImageRead 113 115 + Store 109(r12) 116 + 121: 118 Load 120(g_tTex3df1) + 124: 123(ptr) AccessChain 56 122 + 125: 52(ivec3) Load 124 + 126: 18(float) ImageRead 121 125 + Store 117(r20) 126 + 131: 128 Load 130(g_tTex3di1) + 132: 123(ptr) AccessChain 56 122 + 133: 52(ivec3) Load 132 + 134: 6(int) ImageRead 131 133 + Store 127(r21) 134 + 139: 136 Load 138(g_tTex3du1) + 140: 123(ptr) AccessChain 56 122 + 141: 52(ivec3) Load 140 + 142: 12(int) ImageRead 139 141 + Store 135(r22) 142 + 146: 145(ptr) AccessChain 56 144 + 147: 18(float) Load 146 + Store 143(lf1) 147 + 149: 18(float) FunctionCall 37(SomeValue() + Store 148(storeTemp) 149 + 150: 63 Load 65(g_tTex1df1) + 151: 57(ptr) AccessChain 56 48 + 152: 6(int) Load 151 + 153: 18(float) Load 148(storeTemp) + ImageWrite 150 152 153 + 154: 63 Load 65(g_tTex1df1) + 155: 57(ptr) AccessChain 56 48 + 156: 6(int) Load 155 + 157: 18(float) Load 143(lf1) + ImageWrite 154 156 157 + Store 158(storeTemp) 122 + 159: 76 Load 78(g_tTex1di1) + 160: 57(ptr) AccessChain 56 48 + 161: 6(int) Load 160 + 162: 6(int) Load 158(storeTemp) + ImageWrite 159 161 162 + Store 163(storeTemp) 164 + 165: 84 Load 86(g_tTex1du1) + 166: 57(ptr) AccessChain 56 48 + 167: 6(int) Load 166 + 168: 12(int) Load 163(storeTemp) + ImageWrite 165 167 168 + 171: 57(ptr) AccessChain 56 48 + 172: 6(int) Load 171 + Store 170(coordTemp) 172 + 174: 63 Load 65(g_tTex1df1) + 175: 6(int) Load 170(coordTemp) + 176: 18(float) ImageRead 174 175 + Store 173(storeTemp) 176 + 178: 18(float) Load 173(storeTemp) + 179: 18(float) FMul 178 177 + Store 173(storeTemp) 179 + 180: 63 Load 65(g_tTex1df1) + 181: 6(int) Load 170(coordTemp) + 182: 18(float) Load 173(storeTemp) + ImageWrite 180 181 182 + 183: 18(float) Load 173(storeTemp) + Store 169(val1) 183 + 185: 57(ptr) AccessChain 56 48 + 186: 6(int) Load 185 + Store 184(coordTemp) 186 + 188: 63 Load 65(g_tTex1df1) + 189: 6(int) Load 184(coordTemp) + 190: 18(float) ImageRead 188 189 + Store 187(storeTemp) 190 + 192: 18(float) Load 187(storeTemp) + 193: 18(float) FSub 192 191 + Store 187(storeTemp) 193 + 194: 63 Load 65(g_tTex1df1) + 195: 6(int) Load 184(coordTemp) + 196: 18(float) Load 187(storeTemp) + ImageWrite 194 195 196 + 198: 57(ptr) AccessChain 56 48 + 199: 6(int) Load 198 + Store 197(coordTemp) 199 + 201: 63 Load 65(g_tTex1df1) + 202: 6(int) Load 197(coordTemp) + 203: 18(float) ImageRead 201 202 + Store 200(storeTemp) 203 + 205: 18(float) Load 200(storeTemp) + 206: 18(float) FAdd 205 204 + Store 200(storeTemp) 206 + 207: 63 Load 65(g_tTex1df1) + 208: 6(int) Load 197(coordTemp) + 209: 18(float) Load 200(storeTemp) + ImageWrite 207 208 209 + 211: 57(ptr) AccessChain 56 48 + 212: 6(int) Load 211 + Store 210(coordTemp) 212 + 214: 76 Load 78(g_tTex1di1) + 215: 6(int) Load 210(coordTemp) + 216: 6(int) ImageRead 214 215 + Store 213(storeTemp) 216 + 217: 6(int) Load 213(storeTemp) + 218: 6(int) SDiv 217 122 + Store 213(storeTemp) 218 + 219: 76 Load 78(g_tTex1di1) + 220: 6(int) Load 210(coordTemp) + 221: 6(int) Load 213(storeTemp) + ImageWrite 219 220 221 + 223: 57(ptr) AccessChain 56 48 + 224: 6(int) Load 223 + Store 222(coordTemp) 224 + 226: 76 Load 78(g_tTex1di1) + 227: 6(int) Load 222(coordTemp) + 228: 6(int) ImageRead 226 227 + Store 225(storeTemp) 228 + 229: 6(int) Load 225(storeTemp) + 230: 6(int) SMod 229 122 + Store 225(storeTemp) 230 + 231: 76 Load 78(g_tTex1di1) + 232: 6(int) Load 222(coordTemp) + 233: 6(int) Load 225(storeTemp) + ImageWrite 231 232 233 + 235: 57(ptr) AccessChain 56 48 + 236: 6(int) Load 235 + Store 234(coordTemp) 236 + 238: 76 Load 78(g_tTex1di1) + 239: 6(int) Load 234(coordTemp) + 240: 6(int) ImageRead 238 239 + Store 237(storeTemp) 240 + 242: 6(int) Load 237(storeTemp) + 243: 6(int) BitwiseAnd 242 241 + Store 237(storeTemp) 243 + 244: 76 Load 78(g_tTex1di1) + 245: 6(int) Load 234(coordTemp) + 246: 6(int) Load 237(storeTemp) + ImageWrite 244 245 246 + 248: 57(ptr) AccessChain 56 48 + 249: 6(int) Load 248 + Store 247(coordTemp) 249 + 251: 76 Load 78(g_tTex1di1) + 252: 6(int) Load 247(coordTemp) + 253: 6(int) ImageRead 251 252 + Store 250(storeTemp) 253 + 255: 6(int) Load 250(storeTemp) + 256: 6(int) BitwiseOr 255 254 + Store 250(storeTemp) 256 + 257: 76 Load 78(g_tTex1di1) + 258: 6(int) Load 247(coordTemp) + 259: 6(int) Load 250(storeTemp) + ImageWrite 257 258 259 + 261: 57(ptr) AccessChain 56 48 + 262: 6(int) Load 261 + Store 260(coordTemp) 262 + 264: 76 Load 78(g_tTex1di1) + 265: 6(int) Load 260(coordTemp) + 266: 6(int) ImageRead 264 265 + Store 263(storeTemp) 266 + 267: 6(int) Load 263(storeTemp) + 268: 6(int) ShiftLeftLogical 267 122 + Store 263(storeTemp) 268 + 269: 76 Load 78(g_tTex1di1) + 270: 6(int) Load 260(coordTemp) + 271: 6(int) Load 263(storeTemp) + ImageWrite 269 270 271 + 273: 57(ptr) AccessChain 56 48 + 274: 6(int) Load 273 + Store 272(coordTemp) 274 + 276: 76 Load 78(g_tTex1di1) + 277: 6(int) Load 272(coordTemp) + 278: 6(int) ImageRead 276 277 + Store 275(storeTemp) 278 + 279: 6(int) Load 275(storeTemp) + 280: 6(int) ShiftRightArithmetic 279 122 + Store 275(storeTemp) 280 + 281: 76 Load 78(g_tTex1di1) + 282: 6(int) Load 272(coordTemp) + 283: 6(int) Load 275(storeTemp) + ImageWrite 281 282 283 + 285: 18(float) FunctionCall 37(SomeValue() + Store 284(storeTemp) 285 + 286: 92 Load 94(g_tTex2df1) + 287: 97(ptr) AccessChain 56 96 + 288: 51(ivec2) Load 287 + 289: 18(float) Load 284(storeTemp) + ImageWrite 286 288 289 + 290: 92 Load 94(g_tTex2df1) + 291: 97(ptr) AccessChain 56 96 + 292: 51(ivec2) Load 291 + 293: 18(float) Load 143(lf1) + ImageWrite 290 292 293 + Store 294(storeTemp) 295 + 296: 102 Load 104(g_tTex2di1) + 297: 97(ptr) AccessChain 56 96 + 298: 51(ivec2) Load 297 + 299: 6(int) Load 294(storeTemp) + ImageWrite 296 298 299 + Store 300(storeTemp) 301 + 302: 110 Load 112(g_tTex2du1) + 303: 97(ptr) AccessChain 56 96 + 304: 51(ivec2) Load 303 + 305: 12(int) Load 300(storeTemp) + ImageWrite 302 304 305 + 307: 18(float) FunctionCall 37(SomeValue() + Store 306(storeTemp) 307 + 308: 118 Load 120(g_tTex3df1) + 309: 123(ptr) AccessChain 56 122 + 310: 52(ivec3) Load 309 + 311: 18(float) Load 306(storeTemp) + ImageWrite 308 310 311 + 312: 118 Load 120(g_tTex3df1) + 313: 123(ptr) AccessChain 56 122 + 314: 52(ivec3) Load 313 + 315: 18(float) Load 143(lf1) + ImageWrite 312 314 315 + Store 316(storeTemp) 144 + 317: 128 Load 130(g_tTex3di1) + 318: 123(ptr) AccessChain 56 122 + 319: 52(ivec3) Load 318 + 320: 6(int) Load 316(storeTemp) + ImageWrite 317 319 320 + Store 321(storeTemp) 322 + 323: 136 Load 138(g_tTex3du1) + 324: 123(ptr) AccessChain 56 122 + 325: 52(ivec3) Load 324 + 326: 12(int) Load 321(storeTemp) + ImageWrite 323 325 326 + 327: 63 Load 65(g_tTex1df1) + 328: 57(ptr) AccessChain 56 48 + 329: 6(int) Load 328 + 330: 18(float) ImageRead 327 329 + Store 331(param) 330 + 332: 18(float) FunctionCall 22(Fn1(f1;) 331(param) + 333: 76 Load 78(g_tTex1di1) + 334: 57(ptr) AccessChain 56 48 + 335: 6(int) Load 334 + 336: 6(int) ImageRead 333 335 + Store 337(param) 336 + 338: 6(int) FunctionCall 10(Fn1(i1;) 337(param) + 339: 84 Load 86(g_tTex1du1) + 340: 57(ptr) AccessChain 56 48 + 341: 6(int) Load 340 + 342: 12(int) ImageRead 339 341 + Store 343(param) 342 + 344: 12(int) FunctionCall 16(Fn1(u1;) 343(param) + 347: 2 FunctionCall 34(Fn2(f1;) 346(param) + 348: 18(float) Load 346(param) + Store 345(tempArg) 348 + 349: 63 Load 65(g_tTex1df1) + 350: 57(ptr) AccessChain 56 48 + 351: 6(int) Load 350 + 352: 18(float) Load 345(tempArg) + ImageWrite 349 351 352 + 355: 2 FunctionCall 26(Fn2(i1;) 354(param) + 356: 6(int) Load 354(param) + Store 353(tempArg) 356 + 357: 76 Load 78(g_tTex1di1) + 358: 57(ptr) AccessChain 56 48 + 359: 6(int) Load 358 + 360: 6(int) Load 353(tempArg) + ImageWrite 357 359 360 + 363: 2 FunctionCall 30(Fn2(u1;) 362(param) + 364: 12(int) Load 362(param) + Store 361(tempArg) 364 + 365: 84 Load 86(g_tTex1du1) + 366: 57(ptr) AccessChain 56 48 + 367: 6(int) Load 366 + 368: 12(int) Load 361(tempArg) + ImageWrite 365 367 368 + 370: 57(ptr) AccessChain 56 48 + 371: 6(int) Load 370 + Store 369(coordTemp) 371 + 373: 63 Load 65(g_tTex1df1) + 374: 6(int) Load 369(coordTemp) + 375: 18(float) ImageRead 373 374 + Store 372(storeTemp) 375 + 376: 18(float) Load 372(storeTemp) + 378: 18(float) FAdd 376 377 + Store 372(storeTemp) 378 + 379: 63 Load 65(g_tTex1df1) + 380: 6(int) Load 369(coordTemp) + 381: 18(float) Load 372(storeTemp) + ImageWrite 379 380 381 + 383: 57(ptr) AccessChain 56 48 + 384: 6(int) Load 383 + Store 382(coordTemp) 384 + 386: 76 Load 78(g_tTex1di1) + 387: 6(int) Load 382(coordTemp) + 388: 6(int) ImageRead 386 387 + Store 385(storeTemp) 388 + 389: 6(int) Load 385(storeTemp) + 390: 6(int) IAdd 389 96 + Store 385(storeTemp) 390 + 391: 76 Load 78(g_tTex1di1) + 392: 6(int) Load 382(coordTemp) + 393: 6(int) Load 385(storeTemp) + ImageWrite 391 392 393 + 395: 57(ptr) AccessChain 56 48 + 396: 6(int) Load 395 + Store 394(coordTemp) 396 + 398: 84 Load 86(g_tTex1du1) + 399: 6(int) Load 394(coordTemp) + 400: 12(int) ImageRead 398 399 + Store 397(storeTemp) 400 + 401: 12(int) Load 397(storeTemp) + 402: 12(int) IAdd 401 96 + Store 397(storeTemp) 402 + 403: 84 Load 86(g_tTex1du1) + 404: 6(int) Load 394(coordTemp) + 405: 12(int) Load 397(storeTemp) + ImageWrite 403 404 405 + 407: 57(ptr) AccessChain 56 48 + 408: 6(int) Load 407 + Store 406(coordTemp) 408 + 410: 63 Load 65(g_tTex1df1) + 411: 6(int) Load 406(coordTemp) + 412: 18(float) ImageRead 410 411 + Store 409(storeTemp) 412 + 413: 18(float) Load 409(storeTemp) + 414: 18(float) FSub 413 377 + Store 409(storeTemp) 414 + 415: 63 Load 65(g_tTex1df1) + 416: 6(int) Load 406(coordTemp) + 417: 18(float) Load 409(storeTemp) + ImageWrite 415 416 417 + 419: 57(ptr) AccessChain 56 48 + 420: 6(int) Load 419 + Store 418(coordTemp) 420 + 422: 76 Load 78(g_tTex1di1) + 423: 6(int) Load 418(coordTemp) + 424: 6(int) ImageRead 422 423 + Store 421(storeTemp) 424 + 425: 6(int) Load 421(storeTemp) + 426: 6(int) ISub 425 96 + Store 421(storeTemp) 426 + 427: 76 Load 78(g_tTex1di1) + 428: 6(int) Load 418(coordTemp) + 429: 6(int) Load 421(storeTemp) + ImageWrite 427 428 429 + 431: 57(ptr) AccessChain 56 48 + 432: 6(int) Load 431 + Store 430(coordTemp) 432 + 434: 84 Load 86(g_tTex1du1) + 435: 6(int) Load 430(coordTemp) + 436: 12(int) ImageRead 434 435 + Store 433(storeTemp) 436 + 437: 12(int) Load 433(storeTemp) + 438: 12(int) ISub 437 96 + Store 433(storeTemp) 438 + 439: 84 Load 86(g_tTex1du1) + 440: 6(int) Load 430(coordTemp) + 441: 12(int) Load 433(storeTemp) + ImageWrite 439 440 441 + 443: 57(ptr) AccessChain 56 48 + 444: 6(int) Load 443 + Store 442(coordTemp) 444 + 446: 63 Load 65(g_tTex1df1) + 447: 6(int) Load 442(coordTemp) + 448: 18(float) ImageRead 446 447 + Store 445(storeTempPre) 448 + 450: 18(float) Load 445(storeTempPre) + Store 449(storeTempPost) 450 + 451: 18(float) Load 449(storeTempPost) + 452: 18(float) FAdd 451 377 + Store 449(storeTempPost) 452 + 453: 63 Load 65(g_tTex1df1) + 454: 6(int) Load 442(coordTemp) + 455: 18(float) Load 449(storeTempPost) + ImageWrite 453 454 455 + 457: 57(ptr) AccessChain 56 48 + 458: 6(int) Load 457 + Store 456(coordTemp) 458 + 460: 84 Load 86(g_tTex1du1) + 461: 6(int) Load 456(coordTemp) + 462: 12(int) ImageRead 460 461 + Store 459(storeTempPre) 462 + 464: 12(int) Load 459(storeTempPre) + Store 463(storeTempPost) 464 + 465: 12(int) Load 463(storeTempPost) + 466: 12(int) ISub 465 96 + Store 463(storeTempPost) 466 + 467: 84 Load 86(g_tTex1du1) + 468: 6(int) Load 456(coordTemp) + 469: 12(int) Load 463(storeTempPost) + ImageWrite 467 468 469 + 471: 57(ptr) AccessChain 56 48 + 472: 6(int) Load 471 + Store 470(coordTemp) 472 + 474: 76 Load 78(g_tTex1di1) + 475: 6(int) Load 470(coordTemp) + 476: 6(int) ImageRead 474 475 + Store 473(storeTempPre) 476 + 478: 6(int) Load 473(storeTempPre) + Store 477(storeTempPost) 478 + 479: 6(int) Load 477(storeTempPost) + 480: 6(int) IAdd 479 96 + Store 477(storeTempPost) 480 + 481: 76 Load 78(g_tTex1di1) + 482: 6(int) Load 470(coordTemp) + 483: 6(int) Load 477(storeTempPost) + ImageWrite 481 482 483 + 485: 57(ptr) AccessChain 56 48 + 486: 6(int) Load 485 + Store 484(coordTemp) 486 + 488: 63 Load 65(g_tTex1df1) + 489: 6(int) Load 484(coordTemp) + 490: 18(float) ImageRead 488 489 + Store 487(storeTempPre) 490 + 492: 18(float) Load 487(storeTempPre) + Store 491(storeTempPost) 492 + 493: 18(float) Load 491(storeTempPost) + 494: 18(float) FSub 493 377 + Store 491(storeTempPost) 494 + 495: 63 Load 65(g_tTex1df1) + 496: 6(int) Load 484(coordTemp) + 497: 18(float) Load 491(storeTempPost) + ImageWrite 495 496 497 + 499: 57(ptr) AccessChain 56 48 + 500: 6(int) Load 499 + Store 498(coordTemp) 500 + 502: 76 Load 78(g_tTex1di1) + 503: 6(int) Load 498(coordTemp) + 504: 6(int) ImageRead 502 503 + Store 501(storeTempPre) 504 + 506: 6(int) Load 501(storeTempPre) + Store 505(storeTempPost) 506 + 507: 6(int) Load 505(storeTempPost) + 508: 6(int) IAdd 507 96 + Store 505(storeTempPost) 508 + 509: 76 Load 78(g_tTex1di1) + 510: 6(int) Load 498(coordTemp) + 511: 6(int) Load 505(storeTempPost) + ImageWrite 509 510 511 + 513: 57(ptr) AccessChain 56 48 + 514: 6(int) Load 513 + Store 512(coordTemp) 514 + 516: 84 Load 86(g_tTex1du1) + 517: 6(int) Load 512(coordTemp) + 518: 12(int) ImageRead 516 517 + Store 515(storeTempPre) 518 + 520: 12(int) Load 515(storeTempPre) + Store 519(storeTempPost) 520 + 521: 12(int) Load 519(storeTempPost) + 522: 12(int) ISub 521 96 + Store 519(storeTempPost) 522 + 523: 84 Load 86(g_tTex1du1) + 524: 6(int) Load 512(coordTemp) + 525: 12(int) Load 519(storeTempPost) + ImageWrite 523 524 525 + 527: 92 Load 94(g_tTex2df1) + 530: 18(float) ImageRead 527 529 + Store 526(storeTemp) 530 + 531: 63 Load 65(g_tTex1df1) + 532: 18(float) Load 526(storeTemp) + ImageWrite 531 96 532 + 539: 538(ptr) AccessChain 536(psout) 48 + Store 539 537 + 542: 538(ptr) AccessChain 536(psout) 48 + 543: 533(fvec4) Load 542 + Store 541(Color) 543 + Return + FunctionEnd + 10(Fn1(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 39: 6(int) Load 9(x) + ReturnValue 39 + FunctionEnd + 16(Fn1(u1;): 12(int) Function None 14 + 15(x): 13(ptr) FunctionParameter + 17: Label + 42: 12(int) Load 15(x) + ReturnValue 42 + FunctionEnd + 22(Fn1(f1;): 18(float) Function None 20 + 21(x): 19(ptr) FunctionParameter + 23: Label + 45: 18(float) Load 21(x) + ReturnValue 45 + FunctionEnd + 26(Fn2(i1;): 2 Function None 24 + 25(x): 7(ptr) FunctionParameter + 27: Label + Store 25(x) 48 + Return + FunctionEnd + 30(Fn2(u1;): 2 Function None 28 + 29(x): 13(ptr) FunctionParameter + 31: Label + Store 29(x) 49 + Return + FunctionEnd + 34(Fn2(f1;): 2 Function None 32 + 33(x): 19(ptr) FunctionParameter + 35: Label + Store 33(x) 50 + Return + FunctionEnd + 37(SomeValue(): 18(float) Function None 36 + 38: Label + 58: 57(ptr) AccessChain 56 48 + 59: 6(int) Load 58 + 60: 18(float) ConvertSToF 59 + ReturnValue 60 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.vec2.bracket.frag.out new file mode 100644 index 0000000000..7ca7e3e4bc --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -0,0 +1,2613 @@ +hlsl.rw.vec2.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; (temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; (temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; (temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; (temp void) +0:46 Function Parameters: +0:46 'x' (out 2-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 2-component vector of int) +0:46 'x' (out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; (temp void) +0:47 Function Parameters: +0:47 'x' (out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'x' (out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; (temp void) +0:48 Function Parameters: +0:48 'x' (out 2-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'x' (out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( (temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 2-component vector of float) +0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 2-component vector of float) +0:59 'r00' (temp 2-component vector of float) +0:59 imageLoad (temp 2-component vector of float) +0:59 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 2-component vector of int) +0:60 'r01' (temp 2-component vector of int) +0:60 imageLoad (temp 2-component vector of int) +0:60 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'r02' (temp 2-component vector of uint) +0:61 imageLoad (temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 2-component vector of float) +0:64 'r10' (temp 2-component vector of float) +0:64 imageLoad (temp 2-component vector of float) +0:64 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 2-component vector of int) +0:65 'r11' (temp 2-component vector of int) +0:65 imageLoad (temp 2-component vector of int) +0:65 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 2-component vector of uint) +0:66 'r12' (temp 2-component vector of uint) +0:66 imageLoad (temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of float) +0:69 'r20' (temp 2-component vector of float) +0:69 imageLoad (temp 2-component vector of float) +0:69 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of int) +0:70 'r21' (temp 2-component vector of int) +0:70 imageLoad (temp 2-component vector of int) +0:70 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'r22' (temp 2-component vector of uint) +0:71 imageLoad (temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of float) +0:73 'lf2' (temp 2-component vector of float) +0:73 uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 Function Call: SomeValue( (temp 2-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' (temp 2-component vector of float) +0:78 'lf2' (temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 2-component vector of float) +0:83 'val1' (temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 imageLoad (temp 2-component vector of float) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 imageLoad (temp 2-component vector of float) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 imageLoad (temp 2-component vector of float) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 imageLoad (temp 2-component vector of int) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 imageLoad (temp 2-component vector of int) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 imageLoad (temp 2-component vector of int) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 imageLoad (temp 2-component vector of int) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 imageLoad (temp 2-component vector of int) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 imageLoad (temp 2-component vector of int) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 Function Call: SomeValue( (temp 2-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' (temp 2-component vector of float) +0:96 'lf2' (temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 Function Call: SomeValue( (temp 2-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' (temp 2-component vector of float) +0:102 'lf2' (temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; (temp 2-component vector of float) +0:107 imageLoad (temp 2-component vector of float) +0:107 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; (temp 2-component vector of int) +0:108 imageLoad (temp 2-component vector of int) +0:108 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; (temp 2-component vector of uint) +0:109 imageLoad (temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf2; (temp void) +0:111 'tempArg' (temp 2-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 2-component vector of float) +0:111 'tempArg' (temp 2-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi2; (temp void) +0:112 'tempArg' (temp 2-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 2-component vector of int) +0:112 'tempArg' (temp 2-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu2; (temp void) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageLoad (temp 2-component vector of float) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageLoad (temp 2-component vector of int) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageLoad (temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageLoad (temp 2-component vector of float) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageLoad (temp 2-component vector of int) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageLoad (temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 imageLoad (temp 2-component vector of float) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 Post-Increment (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 imageLoad (temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 Post-Decrement (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 imageLoad (temp 2-component vector of int) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 Post-Increment (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 imageLoad (temp 2-component vector of float) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 Post-Decrement (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 imageLoad (temp 2-component vector of int) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 Post-Increment (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 imageLoad (temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 Post-Decrement (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:? imageLoad (temp 2-component vector of float) +0:135 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) +0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) +0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; (temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; (temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; (temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; (temp void) +0:46 Function Parameters: +0:46 'x' (out 2-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 2-component vector of int) +0:46 'x' (out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; (temp void) +0:47 Function Parameters: +0:47 'x' (out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'x' (out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; (temp void) +0:48 Function Parameters: +0:48 'x' (out 2-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'x' (out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( (temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 2-component vector of float) +0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 2-component vector of float) +0:59 'r00' (temp 2-component vector of float) +0:59 imageLoad (temp 2-component vector of float) +0:59 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 2-component vector of int) +0:60 'r01' (temp 2-component vector of int) +0:60 imageLoad (temp 2-component vector of int) +0:60 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'r02' (temp 2-component vector of uint) +0:61 imageLoad (temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 2-component vector of float) +0:64 'r10' (temp 2-component vector of float) +0:64 imageLoad (temp 2-component vector of float) +0:64 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 2-component vector of int) +0:65 'r11' (temp 2-component vector of int) +0:65 imageLoad (temp 2-component vector of int) +0:65 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 2-component vector of uint) +0:66 'r12' (temp 2-component vector of uint) +0:66 imageLoad (temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of float) +0:69 'r20' (temp 2-component vector of float) +0:69 imageLoad (temp 2-component vector of float) +0:69 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of int) +0:70 'r21' (temp 2-component vector of int) +0:70 imageLoad (temp 2-component vector of int) +0:70 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'r22' (temp 2-component vector of uint) +0:71 imageLoad (temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of float) +0:73 'lf2' (temp 2-component vector of float) +0:73 uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 Function Call: SomeValue( (temp 2-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' (temp 2-component vector of float) +0:78 'lf2' (temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 2-component vector of float) +0:83 'val1' (temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 imageLoad (temp 2-component vector of float) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 imageLoad (temp 2-component vector of float) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 imageLoad (temp 2-component vector of float) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 imageLoad (temp 2-component vector of int) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 imageLoad (temp 2-component vector of int) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 imageLoad (temp 2-component vector of int) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 imageLoad (temp 2-component vector of int) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 imageLoad (temp 2-component vector of int) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 imageLoad (temp 2-component vector of int) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 Function Call: SomeValue( (temp 2-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' (temp 2-component vector of float) +0:96 'lf2' (temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 Function Call: SomeValue( (temp 2-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' (temp 2-component vector of float) +0:102 'lf2' (temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; (temp 2-component vector of float) +0:107 imageLoad (temp 2-component vector of float) +0:107 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; (temp 2-component vector of int) +0:108 imageLoad (temp 2-component vector of int) +0:108 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; (temp 2-component vector of uint) +0:109 imageLoad (temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf2; (temp void) +0:111 'tempArg' (temp 2-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 2-component vector of float) +0:111 'tempArg' (temp 2-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi2; (temp void) +0:112 'tempArg' (temp 2-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 2-component vector of int) +0:112 'tempArg' (temp 2-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu2; (temp void) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageLoad (temp 2-component vector of float) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageLoad (temp 2-component vector of int) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageLoad (temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageLoad (temp 2-component vector of float) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageLoad (temp 2-component vector of int) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageLoad (temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 imageLoad (temp 2-component vector of float) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 Post-Increment (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 imageLoad (temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 Post-Decrement (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 imageLoad (temp 2-component vector of int) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 Post-Increment (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 imageLoad (temp 2-component vector of float) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 Post-Decrement (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 imageLoad (temp 2-component vector of int) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 Post-Increment (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 imageLoad (temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 Post-Decrement (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:? imageLoad (temp 2-component vector of float) +0:135 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) +0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) +0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 600 + + Capability Shader + Capability Sampled1D + Capability StorageImageExtendedFormats + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 575 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi2;" + Name 10 "x" + Name 18 "Fn1(vu2;" + Name 17 "x" + Name 25 "Fn1(vf2;" + Name 24 "x" + Name 29 "Fn2(vi2;" + Name 28 "x" + Name 33 "Fn2(vu2;" + Name 32 "x" + Name 37 "Fn2(vf2;" + Name 36 "x" + Name 40 "SomeValue(" + Name 59 "$Global" + MemberName 59($Global) 0 "c1" + MemberName 59($Global) 1 "c2" + MemberName 59($Global) 2 "c3" + MemberName 59($Global) 3 "c4" + MemberName 59($Global) 4 "o1" + MemberName 59($Global) 5 "o2" + MemberName 59($Global) 6 "o3" + MemberName 59($Global) 7 "o4" + MemberName 59($Global) 8 "uf2" + MemberName 59($Global) 9 "ui2" + MemberName 59($Global) 10 "uu2" + Name 61 "" + Name 71 "g_tTex1df2" + Name 77 "r00" + Name 82 "r01" + Name 85 "g_tTex1di2" + Name 90 "r02" + Name 93 "g_tTex1du2" + Name 98 "r10" + Name 101 "g_tTex2df2" + Name 106 "r11" + Name 109 "g_tTex2di2" + Name 114 "r12" + Name 117 "g_tTex2du2" + Name 122 "r20" + Name 125 "g_tTex3df2" + Name 132 "r21" + Name 135 "g_tTex3di2" + Name 140 "r22" + Name 143 "g_tTex3du2" + Name 148 "lf2" + Name 153 "storeTemp" + Name 163 "storeTemp" + Name 169 "storeTemp" + Name 177 "val1" + Name 179 "coordTemp" + Name 182 "storeTemp" + Name 193 "coordTemp" + Name 196 "storeTemp" + Name 207 "coordTemp" + Name 210 "storeTemp" + Name 221 "coordTemp" + Name 224 "storeTemp" + Name 234 "coordTemp" + Name 237 "storeTemp" + Name 247 "coordTemp" + Name 250 "storeTemp" + Name 261 "coordTemp" + Name 264 "storeTemp" + Name 275 "coordTemp" + Name 278 "storeTemp" + Name 288 "coordTemp" + Name 291 "storeTemp" + Name 301 "storeTemp" + Name 311 "storeTemp" + Name 318 "storeTemp" + Name 325 "storeTemp" + Name 335 "storeTemp" + Name 342 "storeTemp" + Name 353 "param" + Name 359 "param" + Name 365 "param" + Name 367 "tempArg" + Name 368 "param" + Name 375 "tempArg" + Name 376 "param" + Name 383 "tempArg" + Name 384 "param" + Name 391 "coordTemp" + Name 394 "storeTemp" + Name 405 "coordTemp" + Name 408 "storeTemp" + Name 418 "coordTemp" + Name 421 "storeTemp" + Name 431 "coordTemp" + Name 434 "storeTemp" + Name 444 "coordTemp" + Name 447 "storeTemp" + Name 457 "coordTemp" + Name 460 "storeTemp" + Name 470 "coordTemp" + Name 473 "storeTempPre" + Name 477 "storeTempPost" + Name 485 "coordTemp" + Name 488 "storeTempPre" + Name 492 "storeTempPost" + Name 500 "coordTemp" + Name 503 "storeTempPre" + Name 507 "storeTempPost" + Name 515 "coordTemp" + Name 518 "storeTempPre" + Name 522 "storeTempPost" + Name 530 "coordTemp" + Name 533 "storeTempPre" + Name 537 "storeTempPost" + Name 545 "coordTemp" + Name 548 "storeTempPre" + Name 552 "storeTempPost" + Name 560 "storeTemp" + Name 568 "PS_OUTPUT" + MemberName 568(PS_OUTPUT) 0 "Color" + Name 570 "psout" + Name 575 "Color" + Name 581 "g_sSamp" + Name 584 "g_tTex1df2a" + Name 587 "g_tTex1di2a" + Name 590 "g_tTex1du2a" + Name 593 "g_tTex2df2a" + Name 596 "g_tTex2di2a" + Name 599 "g_tTex2du2a" + MemberDecorate 59($Global) 0 Offset 0 + MemberDecorate 59($Global) 1 Offset 8 + MemberDecorate 59($Global) 2 Offset 16 + MemberDecorate 59($Global) 3 Offset 32 + MemberDecorate 59($Global) 4 Offset 48 + MemberDecorate 59($Global) 5 Offset 56 + MemberDecorate 59($Global) 6 Offset 64 + MemberDecorate 59($Global) 7 Offset 80 + MemberDecorate 59($Global) 8 Offset 96 + MemberDecorate 59($Global) 9 Offset 104 + MemberDecorate 59($Global) 10 Offset 112 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + Decorate 71(g_tTex1df2) DescriptorSet 0 + Decorate 85(g_tTex1di2) DescriptorSet 0 + Decorate 93(g_tTex1du2) DescriptorSet 0 + Decorate 101(g_tTex2df2) DescriptorSet 0 + Decorate 109(g_tTex2di2) DescriptorSet 0 + Decorate 117(g_tTex2du2) DescriptorSet 0 + Decorate 125(g_tTex3df2) DescriptorSet 0 + Decorate 135(g_tTex3di2) DescriptorSet 0 + Decorate 143(g_tTex3du2) DescriptorSet 0 + Decorate 575(Color) Location 0 + Decorate 581(g_sSamp) DescriptorSet 0 + Decorate 581(g_sSamp) Binding 0 + Decorate 584(g_tTex1df2a) DescriptorSet 0 + Decorate 587(g_tTex1di2a) DescriptorSet 0 + Decorate 590(g_tTex1du2a) DescriptorSet 0 + Decorate 593(g_tTex2df2a) DescriptorSet 0 + Decorate 596(g_tTex2di2a) DescriptorSet 0 + Decorate 599(g_tTex2du2a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 9: TypeFunction 7(ivec2) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 2 + 15: TypePointer Function 14(ivec2) + 16: TypeFunction 14(ivec2) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 2 + 22: TypePointer Function 21(fvec2) + 23: TypeFunction 21(fvec2) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 39: TypeFunction 21(fvec2) + 51: 6(int) Constant 0 + 52: 7(ivec2) ConstantComposite 51 51 + 53: 13(int) Constant 0 + 54: 14(ivec2) ConstantComposite 53 53 + 55: 20(float) Constant 0 + 56: 21(fvec2) ConstantComposite 55 55 + 57: TypeVector 6(int) 3 + 58: TypeVector 6(int) 4 + 59($Global): TypeStruct 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 21(fvec2) 7(ivec2) 14(ivec2) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62: 6(int) Constant 1 + 63: TypePointer Uniform 7(ivec2) + 69: TypeImage 20(float) 1D nonsampled format:Rg32f + 70: TypePointer UniformConstant 69 + 71(g_tTex1df2): 70(ptr) Variable UniformConstant + 73: TypePointer Uniform 6(int) + 83: TypeImage 6(int) 1D nonsampled format:Rg32i + 84: TypePointer UniformConstant 83 + 85(g_tTex1di2): 84(ptr) Variable UniformConstant + 91: TypeImage 13(int) 1D nonsampled format:Rg32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du2): 92(ptr) Variable UniformConstant + 99: TypeImage 20(float) 2D nonsampled format:Rg32f + 100: TypePointer UniformConstant 99 + 101(g_tTex2df2): 100(ptr) Variable UniformConstant + 107: TypeImage 6(int) 2D nonsampled format:Rg32i + 108: TypePointer UniformConstant 107 + 109(g_tTex2di2): 108(ptr) Variable UniformConstant + 115: TypeImage 13(int) 2D nonsampled format:Rg32ui + 116: TypePointer UniformConstant 115 + 117(g_tTex2du2): 116(ptr) Variable UniformConstant + 123: TypeImage 20(float) 3D nonsampled format:Rg32f + 124: TypePointer UniformConstant 123 + 125(g_tTex3df2): 124(ptr) Variable UniformConstant + 127: 6(int) Constant 2 + 128: TypePointer Uniform 57(ivec3) + 133: TypeImage 6(int) 3D nonsampled format:Rg32i + 134: TypePointer UniformConstant 133 + 135(g_tTex3di2): 134(ptr) Variable UniformConstant + 141: TypeImage 13(int) 3D nonsampled format:Rg32ui + 142: TypePointer UniformConstant 141 + 143(g_tTex3du2): 142(ptr) Variable UniformConstant + 149: 6(int) Constant 8 + 150: TypePointer Uniform 21(fvec2) + 164: 7(ivec2) ConstantComposite 127 127 + 170: 13(int) Constant 3 + 171: 13(int) Constant 2 + 172: 14(ivec2) ConstantComposite 170 171 + 178: TypePointer Function 6(int) + 186: 20(float) Constant 1073741824 + 200: 20(float) Constant 1077936128 + 214: 20(float) Constant 1082130432 + 254: 6(int) Constant 65535 + 268: 6(int) Constant 61680 + 312: 6(int) Constant 5 + 313: 7(ivec2) ConstantComposite 312 127 + 319: 13(int) Constant 6 + 320: 14(ivec2) ConstantComposite 319 171 + 336: 6(int) Constant 6 + 337: 7(ivec2) ConstantComposite 149 336 + 343: 13(int) Constant 9 + 344: 14(ivec2) ConstantComposite 343 171 + 399: 20(float) Constant 1065353216 + 562: 6(int) Constant 3 + 563: 7(ivec2) ConstantComposite 127 562 + 567: TypeVector 20(float) 4 + 568(PS_OUTPUT): TypeStruct 567(fvec4) + 569: TypePointer Function 568(PS_OUTPUT) + 571: 567(fvec4) ConstantComposite 399 399 399 399 + 572: TypePointer Function 567(fvec4) + 574: TypePointer Output 567(fvec4) + 575(Color): 574(ptr) Variable Output + 579: TypeSampler + 580: TypePointer UniformConstant 579 + 581(g_sSamp): 580(ptr) Variable UniformConstant + 582: TypeImage 20(float) 1D array nonsampled format:Rg32f + 583: TypePointer UniformConstant 582 +584(g_tTex1df2a): 583(ptr) Variable UniformConstant + 585: TypeImage 6(int) 1D array nonsampled format:Rg32i + 586: TypePointer UniformConstant 585 +587(g_tTex1di2a): 586(ptr) Variable UniformConstant + 588: TypeImage 13(int) 1D array nonsampled format:Rg32ui + 589: TypePointer UniformConstant 588 +590(g_tTex1du2a): 589(ptr) Variable UniformConstant + 591: TypeImage 20(float) 2D array nonsampled format:Rg32f + 592: TypePointer UniformConstant 591 +593(g_tTex2df2a): 592(ptr) Variable UniformConstant + 594: TypeImage 6(int) 2D array nonsampled format:Rg32i + 595: TypePointer UniformConstant 594 +596(g_tTex2di2a): 595(ptr) Variable UniformConstant + 597: TypeImage 13(int) 2D array nonsampled format:Rg32ui + 598: TypePointer UniformConstant 597 +599(g_tTex2du2a): 598(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 77(r00): 22(ptr) Variable Function + 82(r01): 8(ptr) Variable Function + 90(r02): 15(ptr) Variable Function + 98(r10): 22(ptr) Variable Function + 106(r11): 8(ptr) Variable Function + 114(r12): 15(ptr) Variable Function + 122(r20): 22(ptr) Variable Function + 132(r21): 8(ptr) Variable Function + 140(r22): 15(ptr) Variable Function + 148(lf2): 22(ptr) Variable Function + 153(storeTemp): 22(ptr) Variable Function + 163(storeTemp): 8(ptr) Variable Function + 169(storeTemp): 15(ptr) Variable Function + 177(val1): 22(ptr) Variable Function + 179(coordTemp): 178(ptr) Variable Function + 182(storeTemp): 22(ptr) Variable Function + 193(coordTemp): 178(ptr) Variable Function + 196(storeTemp): 22(ptr) Variable Function + 207(coordTemp): 178(ptr) Variable Function + 210(storeTemp): 22(ptr) Variable Function + 221(coordTemp): 178(ptr) Variable Function + 224(storeTemp): 8(ptr) Variable Function + 234(coordTemp): 178(ptr) Variable Function + 237(storeTemp): 8(ptr) Variable Function + 247(coordTemp): 178(ptr) Variable Function + 250(storeTemp): 8(ptr) Variable Function + 261(coordTemp): 178(ptr) Variable Function + 264(storeTemp): 8(ptr) Variable Function + 275(coordTemp): 178(ptr) Variable Function + 278(storeTemp): 8(ptr) Variable Function + 288(coordTemp): 178(ptr) Variable Function + 291(storeTemp): 8(ptr) Variable Function + 301(storeTemp): 22(ptr) Variable Function + 311(storeTemp): 8(ptr) Variable Function + 318(storeTemp): 15(ptr) Variable Function + 325(storeTemp): 22(ptr) Variable Function + 335(storeTemp): 8(ptr) Variable Function + 342(storeTemp): 15(ptr) Variable Function + 353(param): 22(ptr) Variable Function + 359(param): 8(ptr) Variable Function + 365(param): 15(ptr) Variable Function + 367(tempArg): 22(ptr) Variable Function + 368(param): 22(ptr) Variable Function + 375(tempArg): 8(ptr) Variable Function + 376(param): 8(ptr) Variable Function + 383(tempArg): 15(ptr) Variable Function + 384(param): 15(ptr) Variable Function + 391(coordTemp): 178(ptr) Variable Function + 394(storeTemp): 22(ptr) Variable Function + 405(coordTemp): 178(ptr) Variable Function + 408(storeTemp): 8(ptr) Variable Function + 418(coordTemp): 178(ptr) Variable Function + 421(storeTemp): 15(ptr) Variable Function + 431(coordTemp): 178(ptr) Variable Function + 434(storeTemp): 22(ptr) Variable Function + 444(coordTemp): 178(ptr) Variable Function + 447(storeTemp): 8(ptr) Variable Function + 457(coordTemp): 178(ptr) Variable Function + 460(storeTemp): 15(ptr) Variable Function + 470(coordTemp): 178(ptr) Variable Function +473(storeTempPre): 22(ptr) Variable Function +477(storeTempPost): 22(ptr) Variable Function + 485(coordTemp): 178(ptr) Variable Function +488(storeTempPre): 15(ptr) Variable Function +492(storeTempPost): 15(ptr) Variable Function + 500(coordTemp): 178(ptr) Variable Function +503(storeTempPre): 8(ptr) Variable Function +507(storeTempPost): 8(ptr) Variable Function + 515(coordTemp): 178(ptr) Variable Function +518(storeTempPre): 22(ptr) Variable Function +522(storeTempPost): 22(ptr) Variable Function + 530(coordTemp): 178(ptr) Variable Function +533(storeTempPre): 8(ptr) Variable Function +537(storeTempPost): 8(ptr) Variable Function + 545(coordTemp): 178(ptr) Variable Function +548(storeTempPre): 15(ptr) Variable Function +552(storeTempPost): 15(ptr) Variable Function + 560(storeTemp): 22(ptr) Variable Function + 570(psout): 569(ptr) Variable Function + 72: 69 Load 71(g_tTex1df2) + 74: 73(ptr) AccessChain 61 51 + 75: 6(int) Load 74 + 76: 21(fvec2) ImageRead 72 75 + 78: 69 Load 71(g_tTex1df2) + 79: 73(ptr) AccessChain 61 51 + 80: 6(int) Load 79 + 81: 21(fvec2) ImageRead 78 80 + Store 77(r00) 81 + 86: 83 Load 85(g_tTex1di2) + 87: 73(ptr) AccessChain 61 51 + 88: 6(int) Load 87 + 89: 7(ivec2) ImageRead 86 88 + Store 82(r01) 89 + 94: 91 Load 93(g_tTex1du2) + 95: 73(ptr) AccessChain 61 51 + 96: 6(int) Load 95 + 97: 14(ivec2) ImageRead 94 96 + Store 90(r02) 97 + 102: 99 Load 101(g_tTex2df2) + 103: 63(ptr) AccessChain 61 62 + 104: 7(ivec2) Load 103 + 105: 21(fvec2) ImageRead 102 104 + Store 98(r10) 105 + 110: 107 Load 109(g_tTex2di2) + 111: 63(ptr) AccessChain 61 62 + 112: 7(ivec2) Load 111 + 113: 7(ivec2) ImageRead 110 112 + Store 106(r11) 113 + 118: 115 Load 117(g_tTex2du2) + 119: 63(ptr) AccessChain 61 62 + 120: 7(ivec2) Load 119 + 121: 14(ivec2) ImageRead 118 120 + Store 114(r12) 121 + 126: 123 Load 125(g_tTex3df2) + 129: 128(ptr) AccessChain 61 127 + 130: 57(ivec3) Load 129 + 131: 21(fvec2) ImageRead 126 130 + Store 122(r20) 131 + 136: 133 Load 135(g_tTex3di2) + 137: 128(ptr) AccessChain 61 127 + 138: 57(ivec3) Load 137 + 139: 7(ivec2) ImageRead 136 138 + Store 132(r21) 139 + 144: 141 Load 143(g_tTex3du2) + 145: 128(ptr) AccessChain 61 127 + 146: 57(ivec3) Load 145 + 147: 14(ivec2) ImageRead 144 146 + Store 140(r22) 147 + 151: 150(ptr) AccessChain 61 149 + 152: 21(fvec2) Load 151 + Store 148(lf2) 152 + 154: 21(fvec2) FunctionCall 40(SomeValue() + Store 153(storeTemp) 154 + 155: 69 Load 71(g_tTex1df2) + 156: 73(ptr) AccessChain 61 51 + 157: 6(int) Load 156 + 158: 21(fvec2) Load 153(storeTemp) + ImageWrite 155 157 158 + 159: 69 Load 71(g_tTex1df2) + 160: 73(ptr) AccessChain 61 51 + 161: 6(int) Load 160 + 162: 21(fvec2) Load 148(lf2) + ImageWrite 159 161 162 + Store 163(storeTemp) 164 + 165: 83 Load 85(g_tTex1di2) + 166: 73(ptr) AccessChain 61 51 + 167: 6(int) Load 166 + 168: 7(ivec2) Load 163(storeTemp) + ImageWrite 165 167 168 + Store 169(storeTemp) 172 + 173: 91 Load 93(g_tTex1du2) + 174: 73(ptr) AccessChain 61 51 + 175: 6(int) Load 174 + 176: 14(ivec2) Load 169(storeTemp) + ImageWrite 173 175 176 + 180: 73(ptr) AccessChain 61 51 + 181: 6(int) Load 180 + Store 179(coordTemp) 181 + 183: 69 Load 71(g_tTex1df2) + 184: 6(int) Load 179(coordTemp) + 185: 21(fvec2) ImageRead 183 184 + Store 182(storeTemp) 185 + 187: 21(fvec2) Load 182(storeTemp) + 188: 21(fvec2) VectorTimesScalar 187 186 + Store 182(storeTemp) 188 + 189: 69 Load 71(g_tTex1df2) + 190: 6(int) Load 179(coordTemp) + 191: 21(fvec2) Load 182(storeTemp) + ImageWrite 189 190 191 + 192: 21(fvec2) Load 182(storeTemp) + Store 177(val1) 192 + 194: 73(ptr) AccessChain 61 51 + 195: 6(int) Load 194 + Store 193(coordTemp) 195 + 197: 69 Load 71(g_tTex1df2) + 198: 6(int) Load 193(coordTemp) + 199: 21(fvec2) ImageRead 197 198 + Store 196(storeTemp) 199 + 201: 21(fvec2) Load 196(storeTemp) + 202: 21(fvec2) CompositeConstruct 200 200 + 203: 21(fvec2) FSub 201 202 + Store 196(storeTemp) 203 + 204: 69 Load 71(g_tTex1df2) + 205: 6(int) Load 193(coordTemp) + 206: 21(fvec2) Load 196(storeTemp) + ImageWrite 204 205 206 + 208: 73(ptr) AccessChain 61 51 + 209: 6(int) Load 208 + Store 207(coordTemp) 209 + 211: 69 Load 71(g_tTex1df2) + 212: 6(int) Load 207(coordTemp) + 213: 21(fvec2) ImageRead 211 212 + Store 210(storeTemp) 213 + 215: 21(fvec2) Load 210(storeTemp) + 216: 21(fvec2) CompositeConstruct 214 214 + 217: 21(fvec2) FAdd 215 216 + Store 210(storeTemp) 217 + 218: 69 Load 71(g_tTex1df2) + 219: 6(int) Load 207(coordTemp) + 220: 21(fvec2) Load 210(storeTemp) + ImageWrite 218 219 220 + 222: 73(ptr) AccessChain 61 51 + 223: 6(int) Load 222 + Store 221(coordTemp) 223 + 225: 83 Load 85(g_tTex1di2) + 226: 6(int) Load 221(coordTemp) + 227: 7(ivec2) ImageRead 225 226 + Store 224(storeTemp) 227 + 228: 7(ivec2) Load 224(storeTemp) + 229: 7(ivec2) CompositeConstruct 127 127 + 230: 7(ivec2) SDiv 228 229 + Store 224(storeTemp) 230 + 231: 83 Load 85(g_tTex1di2) + 232: 6(int) Load 221(coordTemp) + 233: 7(ivec2) Load 224(storeTemp) + ImageWrite 231 232 233 + 235: 73(ptr) AccessChain 61 51 + 236: 6(int) Load 235 + Store 234(coordTemp) 236 + 238: 83 Load 85(g_tTex1di2) + 239: 6(int) Load 234(coordTemp) + 240: 7(ivec2) ImageRead 238 239 + Store 237(storeTemp) 240 + 241: 7(ivec2) Load 237(storeTemp) + 242: 7(ivec2) CompositeConstruct 127 127 + 243: 7(ivec2) SMod 241 242 + Store 237(storeTemp) 243 + 244: 83 Load 85(g_tTex1di2) + 245: 6(int) Load 234(coordTemp) + 246: 7(ivec2) Load 237(storeTemp) + ImageWrite 244 245 246 + 248: 73(ptr) AccessChain 61 51 + 249: 6(int) Load 248 + Store 247(coordTemp) 249 + 251: 83 Load 85(g_tTex1di2) + 252: 6(int) Load 247(coordTemp) + 253: 7(ivec2) ImageRead 251 252 + Store 250(storeTemp) 253 + 255: 7(ivec2) Load 250(storeTemp) + 256: 7(ivec2) CompositeConstruct 254 254 + 257: 7(ivec2) BitwiseAnd 255 256 + Store 250(storeTemp) 257 + 258: 83 Load 85(g_tTex1di2) + 259: 6(int) Load 247(coordTemp) + 260: 7(ivec2) Load 250(storeTemp) + ImageWrite 258 259 260 + 262: 73(ptr) AccessChain 61 51 + 263: 6(int) Load 262 + Store 261(coordTemp) 263 + 265: 83 Load 85(g_tTex1di2) + 266: 6(int) Load 261(coordTemp) + 267: 7(ivec2) ImageRead 265 266 + Store 264(storeTemp) 267 + 269: 7(ivec2) Load 264(storeTemp) + 270: 7(ivec2) CompositeConstruct 268 268 + 271: 7(ivec2) BitwiseOr 269 270 + Store 264(storeTemp) 271 + 272: 83 Load 85(g_tTex1di2) + 273: 6(int) Load 261(coordTemp) + 274: 7(ivec2) Load 264(storeTemp) + ImageWrite 272 273 274 + 276: 73(ptr) AccessChain 61 51 + 277: 6(int) Load 276 + Store 275(coordTemp) 277 + 279: 83 Load 85(g_tTex1di2) + 280: 6(int) Load 275(coordTemp) + 281: 7(ivec2) ImageRead 279 280 + Store 278(storeTemp) 281 + 282: 7(ivec2) Load 278(storeTemp) + 283: 7(ivec2) CompositeConstruct 127 127 + 284: 7(ivec2) ShiftLeftLogical 282 283 + Store 278(storeTemp) 284 + 285: 83 Load 85(g_tTex1di2) + 286: 6(int) Load 275(coordTemp) + 287: 7(ivec2) Load 278(storeTemp) + ImageWrite 285 286 287 + 289: 73(ptr) AccessChain 61 51 + 290: 6(int) Load 289 + Store 288(coordTemp) 290 + 292: 83 Load 85(g_tTex1di2) + 293: 6(int) Load 288(coordTemp) + 294: 7(ivec2) ImageRead 292 293 + Store 291(storeTemp) 294 + 295: 7(ivec2) Load 291(storeTemp) + 296: 7(ivec2) CompositeConstruct 127 127 + 297: 7(ivec2) ShiftRightArithmetic 295 296 + Store 291(storeTemp) 297 + 298: 83 Load 85(g_tTex1di2) + 299: 6(int) Load 288(coordTemp) + 300: 7(ivec2) Load 291(storeTemp) + ImageWrite 298 299 300 + 302: 21(fvec2) FunctionCall 40(SomeValue() + Store 301(storeTemp) 302 + 303: 99 Load 101(g_tTex2df2) + 304: 63(ptr) AccessChain 61 62 + 305: 7(ivec2) Load 304 + 306: 21(fvec2) Load 301(storeTemp) + ImageWrite 303 305 306 + 307: 99 Load 101(g_tTex2df2) + 308: 63(ptr) AccessChain 61 62 + 309: 7(ivec2) Load 308 + 310: 21(fvec2) Load 148(lf2) + ImageWrite 307 309 310 + Store 311(storeTemp) 313 + 314: 107 Load 109(g_tTex2di2) + 315: 63(ptr) AccessChain 61 62 + 316: 7(ivec2) Load 315 + 317: 7(ivec2) Load 311(storeTemp) + ImageWrite 314 316 317 + Store 318(storeTemp) 320 + 321: 115 Load 117(g_tTex2du2) + 322: 63(ptr) AccessChain 61 62 + 323: 7(ivec2) Load 322 + 324: 14(ivec2) Load 318(storeTemp) + ImageWrite 321 323 324 + 326: 21(fvec2) FunctionCall 40(SomeValue() + Store 325(storeTemp) 326 + 327: 123 Load 125(g_tTex3df2) + 328: 128(ptr) AccessChain 61 127 + 329: 57(ivec3) Load 328 + 330: 21(fvec2) Load 325(storeTemp) + ImageWrite 327 329 330 + 331: 123 Load 125(g_tTex3df2) + 332: 128(ptr) AccessChain 61 127 + 333: 57(ivec3) Load 332 + 334: 21(fvec2) Load 148(lf2) + ImageWrite 331 333 334 + Store 335(storeTemp) 337 + 338: 133 Load 135(g_tTex3di2) + 339: 128(ptr) AccessChain 61 127 + 340: 57(ivec3) Load 339 + 341: 7(ivec2) Load 335(storeTemp) + ImageWrite 338 340 341 + Store 342(storeTemp) 344 + 345: 141 Load 143(g_tTex3du2) + 346: 128(ptr) AccessChain 61 127 + 347: 57(ivec3) Load 346 + 348: 14(ivec2) Load 342(storeTemp) + ImageWrite 345 347 348 + 349: 69 Load 71(g_tTex1df2) + 350: 73(ptr) AccessChain 61 51 + 351: 6(int) Load 350 + 352: 21(fvec2) ImageRead 349 351 + Store 353(param) 352 + 354: 21(fvec2) FunctionCall 25(Fn1(vf2;) 353(param) + 355: 83 Load 85(g_tTex1di2) + 356: 73(ptr) AccessChain 61 51 + 357: 6(int) Load 356 + 358: 7(ivec2) ImageRead 355 357 + Store 359(param) 358 + 360: 7(ivec2) FunctionCall 11(Fn1(vi2;) 359(param) + 361: 91 Load 93(g_tTex1du2) + 362: 73(ptr) AccessChain 61 51 + 363: 6(int) Load 362 + 364: 14(ivec2) ImageRead 361 363 + Store 365(param) 364 + 366: 14(ivec2) FunctionCall 18(Fn1(vu2;) 365(param) + 369: 2 FunctionCall 37(Fn2(vf2;) 368(param) + 370: 21(fvec2) Load 368(param) + Store 367(tempArg) 370 + 371: 69 Load 71(g_tTex1df2) + 372: 73(ptr) AccessChain 61 51 + 373: 6(int) Load 372 + 374: 21(fvec2) Load 367(tempArg) + ImageWrite 371 373 374 + 377: 2 FunctionCall 29(Fn2(vi2;) 376(param) + 378: 7(ivec2) Load 376(param) + Store 375(tempArg) 378 + 379: 83 Load 85(g_tTex1di2) + 380: 73(ptr) AccessChain 61 51 + 381: 6(int) Load 380 + 382: 7(ivec2) Load 375(tempArg) + ImageWrite 379 381 382 + 385: 2 FunctionCall 33(Fn2(vu2;) 384(param) + 386: 14(ivec2) Load 384(param) + Store 383(tempArg) 386 + 387: 91 Load 93(g_tTex1du2) + 388: 73(ptr) AccessChain 61 51 + 389: 6(int) Load 388 + 390: 14(ivec2) Load 383(tempArg) + ImageWrite 387 389 390 + 392: 73(ptr) AccessChain 61 51 + 393: 6(int) Load 392 + Store 391(coordTemp) 393 + 395: 69 Load 71(g_tTex1df2) + 396: 6(int) Load 391(coordTemp) + 397: 21(fvec2) ImageRead 395 396 + Store 394(storeTemp) 397 + 398: 21(fvec2) Load 394(storeTemp) + 400: 21(fvec2) CompositeConstruct 399 399 + 401: 21(fvec2) FAdd 398 400 + Store 394(storeTemp) 401 + 402: 69 Load 71(g_tTex1df2) + 403: 6(int) Load 391(coordTemp) + 404: 21(fvec2) Load 394(storeTemp) + ImageWrite 402 403 404 + 406: 73(ptr) AccessChain 61 51 + 407: 6(int) Load 406 + Store 405(coordTemp) 407 + 409: 83 Load 85(g_tTex1di2) + 410: 6(int) Load 405(coordTemp) + 411: 7(ivec2) ImageRead 409 410 + Store 408(storeTemp) 411 + 412: 7(ivec2) Load 408(storeTemp) + 413: 7(ivec2) CompositeConstruct 62 62 + 414: 7(ivec2) IAdd 412 413 + Store 408(storeTemp) 414 + 415: 83 Load 85(g_tTex1di2) + 416: 6(int) Load 405(coordTemp) + 417: 7(ivec2) Load 408(storeTemp) + ImageWrite 415 416 417 + 419: 73(ptr) AccessChain 61 51 + 420: 6(int) Load 419 + Store 418(coordTemp) 420 + 422: 91 Load 93(g_tTex1du2) + 423: 6(int) Load 418(coordTemp) + 424: 14(ivec2) ImageRead 422 423 + Store 421(storeTemp) 424 + 425: 14(ivec2) Load 421(storeTemp) + 426: 7(ivec2) CompositeConstruct 62 62 + 427: 14(ivec2) IAdd 425 426 + Store 421(storeTemp) 427 + 428: 91 Load 93(g_tTex1du2) + 429: 6(int) Load 418(coordTemp) + 430: 14(ivec2) Load 421(storeTemp) + ImageWrite 428 429 430 + 432: 73(ptr) AccessChain 61 51 + 433: 6(int) Load 432 + Store 431(coordTemp) 433 + 435: 69 Load 71(g_tTex1df2) + 436: 6(int) Load 431(coordTemp) + 437: 21(fvec2) ImageRead 435 436 + Store 434(storeTemp) 437 + 438: 21(fvec2) Load 434(storeTemp) + 439: 21(fvec2) CompositeConstruct 399 399 + 440: 21(fvec2) FSub 438 439 + Store 434(storeTemp) 440 + 441: 69 Load 71(g_tTex1df2) + 442: 6(int) Load 431(coordTemp) + 443: 21(fvec2) Load 434(storeTemp) + ImageWrite 441 442 443 + 445: 73(ptr) AccessChain 61 51 + 446: 6(int) Load 445 + Store 444(coordTemp) 446 + 448: 83 Load 85(g_tTex1di2) + 449: 6(int) Load 444(coordTemp) + 450: 7(ivec2) ImageRead 448 449 + Store 447(storeTemp) 450 + 451: 7(ivec2) Load 447(storeTemp) + 452: 7(ivec2) CompositeConstruct 62 62 + 453: 7(ivec2) ISub 451 452 + Store 447(storeTemp) 453 + 454: 83 Load 85(g_tTex1di2) + 455: 6(int) Load 444(coordTemp) + 456: 7(ivec2) Load 447(storeTemp) + ImageWrite 454 455 456 + 458: 73(ptr) AccessChain 61 51 + 459: 6(int) Load 458 + Store 457(coordTemp) 459 + 461: 91 Load 93(g_tTex1du2) + 462: 6(int) Load 457(coordTemp) + 463: 14(ivec2) ImageRead 461 462 + Store 460(storeTemp) 463 + 464: 14(ivec2) Load 460(storeTemp) + 465: 7(ivec2) CompositeConstruct 62 62 + 466: 14(ivec2) ISub 464 465 + Store 460(storeTemp) 466 + 467: 91 Load 93(g_tTex1du2) + 468: 6(int) Load 457(coordTemp) + 469: 14(ivec2) Load 460(storeTemp) + ImageWrite 467 468 469 + 471: 73(ptr) AccessChain 61 51 + 472: 6(int) Load 471 + Store 470(coordTemp) 472 + 474: 69 Load 71(g_tTex1df2) + 475: 6(int) Load 470(coordTemp) + 476: 21(fvec2) ImageRead 474 475 + Store 473(storeTempPre) 476 + 478: 21(fvec2) Load 473(storeTempPre) + Store 477(storeTempPost) 478 + 479: 21(fvec2) Load 477(storeTempPost) + 480: 21(fvec2) CompositeConstruct 399 399 + 481: 21(fvec2) FAdd 479 480 + Store 477(storeTempPost) 481 + 482: 69 Load 71(g_tTex1df2) + 483: 6(int) Load 470(coordTemp) + 484: 21(fvec2) Load 477(storeTempPost) + ImageWrite 482 483 484 + 486: 73(ptr) AccessChain 61 51 + 487: 6(int) Load 486 + Store 485(coordTemp) 487 + 489: 91 Load 93(g_tTex1du2) + 490: 6(int) Load 485(coordTemp) + 491: 14(ivec2) ImageRead 489 490 + Store 488(storeTempPre) 491 + 493: 14(ivec2) Load 488(storeTempPre) + Store 492(storeTempPost) 493 + 494: 14(ivec2) Load 492(storeTempPost) + 495: 7(ivec2) CompositeConstruct 62 62 + 496: 14(ivec2) ISub 494 495 + Store 492(storeTempPost) 496 + 497: 91 Load 93(g_tTex1du2) + 498: 6(int) Load 485(coordTemp) + 499: 14(ivec2) Load 492(storeTempPost) + ImageWrite 497 498 499 + 501: 73(ptr) AccessChain 61 51 + 502: 6(int) Load 501 + Store 500(coordTemp) 502 + 504: 83 Load 85(g_tTex1di2) + 505: 6(int) Load 500(coordTemp) + 506: 7(ivec2) ImageRead 504 505 + Store 503(storeTempPre) 506 + 508: 7(ivec2) Load 503(storeTempPre) + Store 507(storeTempPost) 508 + 509: 7(ivec2) Load 507(storeTempPost) + 510: 7(ivec2) CompositeConstruct 62 62 + 511: 7(ivec2) IAdd 509 510 + Store 507(storeTempPost) 511 + 512: 83 Load 85(g_tTex1di2) + 513: 6(int) Load 500(coordTemp) + 514: 7(ivec2) Load 507(storeTempPost) + ImageWrite 512 513 514 + 516: 73(ptr) AccessChain 61 51 + 517: 6(int) Load 516 + Store 515(coordTemp) 517 + 519: 69 Load 71(g_tTex1df2) + 520: 6(int) Load 515(coordTemp) + 521: 21(fvec2) ImageRead 519 520 + Store 518(storeTempPre) 521 + 523: 21(fvec2) Load 518(storeTempPre) + Store 522(storeTempPost) 523 + 524: 21(fvec2) Load 522(storeTempPost) + 525: 21(fvec2) CompositeConstruct 399 399 + 526: 21(fvec2) FSub 524 525 + Store 522(storeTempPost) 526 + 527: 69 Load 71(g_tTex1df2) + 528: 6(int) Load 515(coordTemp) + 529: 21(fvec2) Load 522(storeTempPost) + ImageWrite 527 528 529 + 531: 73(ptr) AccessChain 61 51 + 532: 6(int) Load 531 + Store 530(coordTemp) 532 + 534: 83 Load 85(g_tTex1di2) + 535: 6(int) Load 530(coordTemp) + 536: 7(ivec2) ImageRead 534 535 + Store 533(storeTempPre) 536 + 538: 7(ivec2) Load 533(storeTempPre) + Store 537(storeTempPost) 538 + 539: 7(ivec2) Load 537(storeTempPost) + 540: 7(ivec2) CompositeConstruct 62 62 + 541: 7(ivec2) IAdd 539 540 + Store 537(storeTempPost) 541 + 542: 83 Load 85(g_tTex1di2) + 543: 6(int) Load 530(coordTemp) + 544: 7(ivec2) Load 537(storeTempPost) + ImageWrite 542 543 544 + 546: 73(ptr) AccessChain 61 51 + 547: 6(int) Load 546 + Store 545(coordTemp) 547 + 549: 91 Load 93(g_tTex1du2) + 550: 6(int) Load 545(coordTemp) + 551: 14(ivec2) ImageRead 549 550 + Store 548(storeTempPre) 551 + 553: 14(ivec2) Load 548(storeTempPre) + Store 552(storeTempPost) 553 + 554: 14(ivec2) Load 552(storeTempPost) + 555: 7(ivec2) CompositeConstruct 62 62 + 556: 14(ivec2) ISub 554 555 + Store 552(storeTempPost) 556 + 557: 91 Load 93(g_tTex1du2) + 558: 6(int) Load 545(coordTemp) + 559: 14(ivec2) Load 552(storeTempPost) + ImageWrite 557 558 559 + 561: 99 Load 101(g_tTex2df2) + 564: 21(fvec2) ImageRead 561 563 + Store 560(storeTemp) 564 + 565: 69 Load 71(g_tTex1df2) + 566: 21(fvec2) Load 560(storeTemp) + ImageWrite 565 62 566 + 573: 572(ptr) AccessChain 570(psout) 51 + Store 573 571 + 576: 572(ptr) AccessChain 570(psout) 51 + 577: 567(fvec4) Load 576 + Store 575(Color) 577 + Return + FunctionEnd + 11(Fn1(vi2;): 7(ivec2) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 42: 7(ivec2) Load 10(x) + ReturnValue 42 + FunctionEnd + 18(Fn1(vu2;): 14(ivec2) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 45: 14(ivec2) Load 17(x) + ReturnValue 45 + FunctionEnd + 25(Fn1(vf2;): 21(fvec2) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 48: 21(fvec2) Load 24(x) + ReturnValue 48 + FunctionEnd + 29(Fn2(vi2;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 52 + Return + FunctionEnd + 33(Fn2(vu2;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 54 + Return + FunctionEnd + 37(Fn2(vf2;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 56 + Return + FunctionEnd + 40(SomeValue(): 21(fvec2) Function None 39 + 41: Label + 64: 63(ptr) AccessChain 61 62 + 65: 7(ivec2) Load 64 + 66: 21(fvec2) ConvertSToF 65 + ReturnValue 66 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.array.dx10.frag.out new file mode 100644 index 0000000000..f223e4bf6b --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -0,0 +1,514 @@ +hlsl.sample.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 139 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 130 134 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 28 "txval11" + Name 31 "g_tTex1di4" + Name 42 "txval12" + Name 45 "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 "txval40" + Name 90 "g_tTexcdf4" + Name 97 "txval41" + Name 100 "g_tTexcdi4" + Name 107 "txval42" + Name 110 "g_tTexcdu4" + Name 120 "PS_OUTPUT" + MemberName 120(PS_OUTPUT) 0 "Color" + MemberName 120(PS_OUTPUT) 1 "Depth" + Name 122 "psout" + Name 130 "Color" + Name 134 "Depth" + Name 138 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 45(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_tTexcdf4) DescriptorSet 0 + Decorate 100(g_tTexcdi4) DescriptorSet 0 + Decorate 110(g_tTexcdu4) DescriptorSet 0 + Decorate 130(Color) Location 0 + Decorate 134(Depth) BuiltIn FragDepth + Decorate 138(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 25: TypeInt 32 1 + 26: TypeVector 25(int) 4 + 27: TypePointer Function 26(ivec4) + 29: TypeImage 25(int) 1D array sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeSampledImage 29 + 36: 6(float) Constant 1050253722 + 37: 20(fvec2) ConstantComposite 22 36 + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 50: 6(float) Constant 1053609165 + 51: 20(fvec2) ConstantComposite 36 50 + 54: TypeImage 6(float) 2D array sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: TypeVector 6(float) 3 + 62: 61(fvec3) ConstantComposite 21 22 36 + 65: TypeImage 25(int) 2D array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1056964608 + 73: 61(fvec3) ConstantComposite 36 50 72 + 76: TypeImage 39(int) 2D array sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1058642330 + 84: 6(float) Constant 1060320051 + 85: 61(fvec3) ConstantComposite 72 83 84 + 88: TypeImage 6(float) Cube array sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTexcdf4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 7(fvec4) ConstantComposite 21 22 36 50 + 98: TypeImage 25(int) Cube array sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdi4): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 105: 7(fvec4) ConstantComposite 50 72 83 84 + 108: TypeImage 39(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTexcdu4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1061997773 + 116: 6(float) Constant 1063675494 + 117: 6(float) Constant 1065353216 + 118: 7(fvec4) ConstantComposite 84 115 116 117 + 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 121: TypePointer Function 120(PS_OUTPUT) + 123: 25(int) Constant 0 + 124: 7(fvec4) ConstantComposite 117 117 117 117 + 126: 25(int) Constant 1 + 127: TypePointer Function 6(float) + 129: TypePointer Output 7(fvec4) + 130(Color): 129(ptr) Variable Output + 133: TypePointer Output 6(float) + 134(Depth): 133(ptr) Variable Output +138(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 28(txval11): 27(ptr) Variable Function + 42(txval12): 41(ptr) Variable Function + 53(txval20): 8(ptr) Variable Function + 64(txval21): 27(ptr) Variable Function + 75(txval22): 41(ptr) Variable Function + 87(txval40): 8(ptr) Variable Function + 97(txval41): 27(ptr) Variable Function + 107(txval42): 41(ptr) Variable Function + 122(psout): 121(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleImplicitLod 19 23 + Store 9(txval10) 24 + 32: 29 Load 31(g_tTex1di4) + 33: 14 Load 16(g_sSamp) + 35: 34 SampledImage 32 33 + 38: 26(ivec4) ImageSampleImplicitLod 35 37 + Store 28(txval11) 38 + 46: 43 Load 45(g_tTex1du4) + 47: 14 Load 16(g_sSamp) + 49: 48 SampledImage 46 47 + 52: 40(ivec4) ImageSampleImplicitLod 49 51 + Store 42(txval12) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 14 Load 16(g_sSamp) + 60: 59 SampledImage 57 58 + 63: 7(fvec4) ImageSampleImplicitLod 60 62 + Store 53(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 26(ivec4) ImageSampleImplicitLod 71 73 + Store 64(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 14 Load 16(g_sSamp) + 82: 81 SampledImage 79 80 + 86: 40(ivec4) ImageSampleImplicitLod 82 85 + Store 75(txval22) 86 + 91: 88 Load 90(g_tTexcdf4) + 92: 14 Load 16(g_sSamp) + 94: 93 SampledImage 91 92 + 96: 7(fvec4) ImageSampleImplicitLod 94 95 + Store 87(txval40) 96 + 101: 98 Load 100(g_tTexcdi4) + 102: 14 Load 16(g_sSamp) + 104: 103 SampledImage 101 102 + 106: 26(ivec4) ImageSampleImplicitLod 104 105 + Store 97(txval41) 106 + 111: 108 Load 110(g_tTexcdu4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 40(ivec4) ImageSampleImplicitLod 114 118 + Store 107(txval42) 119 + 125: 8(ptr) AccessChain 122(psout) 123 + Store 125 124 + 128: 127(ptr) AccessChain 122(psout) 126 + Store 128 117 + 131: 8(ptr) AccessChain 122(psout) 123 + 132: 7(fvec4) Load 131 + Store 130(Color) 132 + 135: 127(ptr) AccessChain 122(psout) 126 + 136: 6(float) Load 135 + Store 134(Depth) 136 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.basic.dx10.frag.out new file mode 100644 index 0000000000..a222125a82 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -0,0 +1,835 @@ +hlsl.sample.basic.dx10.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:89 Color: direct index for structure (temp 4-component vector of float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:89 Depth: direct index for structure (temp float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:89 Constant: +0:89 1 (const int) +0:89 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_sSamp2D_b' (uniform sampler) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:89 Color: direct index for structure (temp 4-component vector of float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:89 Depth: direct index for structure (temp float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:89 Constant: +0:89 1 (const int) +0:89 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_sSamp2D_b' (uniform sampler) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 191 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 180 184 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 7 "MemberTest" + MemberName 7(MemberTest) 0 "Sample" + MemberName 7(MemberTest) 1 "CalculateLevelOfDetail" + MemberName 7(MemberTest) 2 "CalculateLevelOfDetailUnclamped" + MemberName 7(MemberTest) 3 "Gather" + MemberName 7(MemberTest) 4 "GetDimensions" + MemberName 7(MemberTest) 5 "GetSamplePosition" + MemberName 7(MemberTest) 6 "Load" + MemberName 7(MemberTest) 7 "SampleBias" + MemberName 7(MemberTest) 8 "SampleCmp" + MemberName 7(MemberTest) 9 "SampleCmpLevelZero" + MemberName 7(MemberTest) 10 "SampleGrad" + MemberName 7(MemberTest) 11 "SampleLevel" + Name 9 "mtest" + Name 38 "txval10" + Name 41 "g_tTex1df4" + Name 45 "g_sSamp" + Name 53 "txval11" + Name 56 "g_tTex1di4" + Name 66 "txval12" + Name 69 "g_tTex1du4" + Name 76 "txval20" + Name 79 "g_tTex2df4" + Name 87 "txval21" + Name 90 "g_tTex2di4" + Name 98 "txval22" + Name 101 "g_tTex2du4" + Name 110 "txval30" + Name 113 "g_tTex3df4" + Name 121 "txval31" + Name 124 "g_tTex3di4" + Name 131 "txval32" + Name 134 "g_tTex3du4" + Name 144 "txval40" + Name 147 "g_tTexcdf4" + Name 153 "txval41" + Name 156 "g_tTexcdi4" + Name 162 "txval42" + Name 165 "g_tTexcdu4" + Name 171 "PS_OUTPUT" + MemberName 171(PS_OUTPUT) 0 "Color" + MemberName 171(PS_OUTPUT) 1 "Depth" + Name 173 "psout" + Name 180 "Color" + Name 184 "Depth" + Name 188 "g_sSamp2d" + Name 189 "g_sSamp2D_b" + Name 190 "g_tTex1df4a" + Decorate 41(g_tTex1df4) DescriptorSet 0 + Decorate 41(g_tTex1df4) Binding 0 + Decorate 45(g_sSamp) DescriptorSet 0 + Decorate 45(g_sSamp) Binding 0 + Decorate 56(g_tTex1di4) DescriptorSet 0 + Decorate 69(g_tTex1du4) DescriptorSet 0 + Decorate 79(g_tTex2df4) DescriptorSet 0 + Decorate 90(g_tTex2di4) DescriptorSet 0 + Decorate 101(g_tTex2du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 124(g_tTex3di4) DescriptorSet 0 + Decorate 134(g_tTex3du4) DescriptorSet 0 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 156(g_tTexcdi4) DescriptorSet 0 + Decorate 165(g_tTexcdu4) DescriptorSet 0 + Decorate 180(Color) Location 0 + Decorate 184(Depth) BuiltIn FragDepth + Decorate 188(g_sSamp2d) DescriptorSet 0 + Decorate 189(g_sSamp2D_b) DescriptorSet 0 + Decorate 190(g_tTex1df4a) DescriptorSet 0 + Decorate 190(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7(MemberTest): TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Function 7(MemberTest) + 10: 6(int) Constant 1 + 11: TypePointer Function 6(int) + 13: 6(int) Constant 2 + 15: 6(int) Constant 3 + 17: 6(int) Constant 4 + 19: 6(int) Constant 5 + 21: 6(int) Constant 6 + 23: 6(int) Constant 0 + 25: 6(int) Constant 7 + 27: 6(int) Constant 8 + 29: 6(int) Constant 9 + 31: 6(int) Constant 10 + 33: 6(int) Constant 11 + 35: TypeFloat 32 + 36: TypeVector 35(float) 4 + 37: TypePointer Function 36(fvec4) + 39: TypeImage 35(float) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1df4): 40(ptr) Variable UniformConstant + 43: TypeSampler + 44: TypePointer UniformConstant 43 + 45(g_sSamp): 44(ptr) Variable UniformConstant + 47: TypeSampledImage 39 + 49: 35(float) Constant 1036831949 + 51: TypeVector 6(int) 4 + 52: TypePointer Function 51(ivec4) + 54: TypeImage 6(int) 1D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex1di4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: 35(float) Constant 1045220557 + 63: TypeInt 32 0 + 64: TypeVector 63(int) 4 + 65: TypePointer Function 64(ivec4) + 67: TypeImage 63(int) 1D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex1du4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 35(float) Constant 1050253722 + 77: TypeImage 35(float) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2df4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: TypeVector 35(float) 2 + 85: 84(fvec2) ConstantComposite 49 61 + 88: TypeImage 6(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2di4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 35(float) Constant 1053609165 + 96: 84(fvec2) ConstantComposite 74 95 + 99: TypeImage 63(int) 2D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex2du4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 35(float) Constant 1056964608 + 107: 35(float) Constant 1058642330 + 108: 84(fvec2) ConstantComposite 106 107 + 111: TypeImage 35(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 116: TypeSampledImage 111 + 118: TypeVector 35(float) 3 + 119: 118(fvec3) ConstantComposite 49 61 74 + 122: TypeImage 6(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3di4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 129: 118(fvec3) ConstantComposite 95 106 107 + 132: TypeImage 63(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3du4): 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 139: 35(float) Constant 1060320051 + 140: 35(float) Constant 1061997773 + 141: 35(float) Constant 1063675494 + 142: 118(fvec3) ConstantComposite 139 140 141 + 145: TypeImage 35(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 150: TypeSampledImage 145 + 154: TypeImage 6(int) Cube sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTexcdi4): 155(ptr) Variable UniformConstant + 159: TypeSampledImage 154 + 163: TypeImage 63(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdu4): 164(ptr) Variable UniformConstant + 168: TypeSampledImage 163 + 171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) + 172: TypePointer Function 171(PS_OUTPUT) + 174: 35(float) Constant 1065353216 + 175: 36(fvec4) ConstantComposite 174 174 174 174 + 177: TypePointer Function 35(float) + 179: TypePointer Output 36(fvec4) + 180(Color): 179(ptr) Variable Output + 183: TypePointer Output 35(float) + 184(Depth): 183(ptr) Variable Output + 188(g_sSamp2d): 44(ptr) Variable UniformConstant +189(g_sSamp2D_b): 44(ptr) Variable UniformConstant +190(g_tTex1df4a): 40(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(mtest): 8(ptr) Variable Function + 38(txval10): 37(ptr) Variable Function + 53(txval11): 52(ptr) Variable Function + 66(txval12): 65(ptr) Variable Function + 76(txval20): 37(ptr) Variable Function + 87(txval21): 52(ptr) Variable Function + 98(txval22): 65(ptr) Variable Function + 110(txval30): 37(ptr) Variable Function + 121(txval31): 52(ptr) Variable Function + 131(txval32): 65(ptr) Variable Function + 144(txval40): 37(ptr) Variable Function + 153(txval41): 52(ptr) Variable Function + 162(txval42): 65(ptr) Variable Function + 173(psout): 172(ptr) Variable Function + 12: 11(ptr) AccessChain 9(mtest) 10 + Store 12 10 + 14: 11(ptr) AccessChain 9(mtest) 13 + Store 14 10 + 16: 11(ptr) AccessChain 9(mtest) 15 + Store 16 10 + 18: 11(ptr) AccessChain 9(mtest) 17 + Store 18 10 + 20: 11(ptr) AccessChain 9(mtest) 19 + Store 20 10 + 22: 11(ptr) AccessChain 9(mtest) 21 + Store 22 10 + 24: 11(ptr) AccessChain 9(mtest) 23 + Store 24 10 + 26: 11(ptr) AccessChain 9(mtest) 25 + Store 26 10 + 28: 11(ptr) AccessChain 9(mtest) 27 + Store 28 10 + 30: 11(ptr) AccessChain 9(mtest) 29 + Store 30 10 + 32: 11(ptr) AccessChain 9(mtest) 31 + Store 32 10 + 34: 11(ptr) AccessChain 9(mtest) 33 + Store 34 10 + 42: 39 Load 41(g_tTex1df4) + 46: 43 Load 45(g_sSamp) + 48: 47 SampledImage 42 46 + 50: 36(fvec4) ImageSampleImplicitLod 48 49 + Store 38(txval10) 50 + 57: 54 Load 56(g_tTex1di4) + 58: 43 Load 45(g_sSamp) + 60: 59 SampledImage 57 58 + 62: 51(ivec4) ImageSampleImplicitLod 60 61 + Store 53(txval11) 62 + 70: 67 Load 69(g_tTex1du4) + 71: 43 Load 45(g_sSamp) + 73: 72 SampledImage 70 71 + 75: 64(ivec4) ImageSampleImplicitLod 73 74 + Store 66(txval12) 75 + 80: 77 Load 79(g_tTex2df4) + 81: 43 Load 45(g_sSamp) + 83: 82 SampledImage 80 81 + 86: 36(fvec4) ImageSampleImplicitLod 83 85 + Store 76(txval20) 86 + 91: 88 Load 90(g_tTex2di4) + 92: 43 Load 45(g_sSamp) + 94: 93 SampledImage 91 92 + 97: 51(ivec4) ImageSampleImplicitLod 94 96 + Store 87(txval21) 97 + 102: 99 Load 101(g_tTex2du4) + 103: 43 Load 45(g_sSamp) + 105: 104 SampledImage 102 103 + 109: 64(ivec4) ImageSampleImplicitLod 105 108 + Store 98(txval22) 109 + 114: 111 Load 113(g_tTex3df4) + 115: 43 Load 45(g_sSamp) + 117: 116 SampledImage 114 115 + 120: 36(fvec4) ImageSampleImplicitLod 117 119 + Store 110(txval30) 120 + 125: 122 Load 124(g_tTex3di4) + 126: 43 Load 45(g_sSamp) + 128: 127 SampledImage 125 126 + 130: 51(ivec4) ImageSampleImplicitLod 128 129 + Store 121(txval31) 130 + 135: 132 Load 134(g_tTex3du4) + 136: 43 Load 45(g_sSamp) + 138: 137 SampledImage 135 136 + 143: 64(ivec4) ImageSampleImplicitLod 138 142 + Store 131(txval32) 143 + 148: 145 Load 147(g_tTexcdf4) + 149: 43 Load 45(g_sSamp) + 151: 150 SampledImage 148 149 + 152: 36(fvec4) ImageSampleImplicitLod 151 119 + Store 144(txval40) 152 + 157: 154 Load 156(g_tTexcdi4) + 158: 43 Load 45(g_sSamp) + 160: 159 SampledImage 157 158 + 161: 51(ivec4) ImageSampleImplicitLod 160 129 + Store 153(txval41) 161 + 166: 163 Load 165(g_tTexcdu4) + 167: 43 Load 45(g_sSamp) + 169: 168 SampledImage 166 167 + 170: 64(ivec4) ImageSampleImplicitLod 169 142 + Store 162(txval42) 170 + 176: 37(ptr) AccessChain 173(psout) 23 + Store 176 175 + 178: 177(ptr) AccessChain 173(psout) 10 + Store 178 174 + 181: 37(ptr) AccessChain 173(psout) 23 + 182: 36(fvec4) Load 181 + Store 180(Color) 182 + 185: 177(ptr) AccessChain 173(psout) 10 + 186: 35(float) Load 185 + Store 184(Depth) 186 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.offset.dx10.frag.out new file mode 100644 index 0000000000..a148a86ed7 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -0,0 +1,576 @@ +hlsl.sample.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 154 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 136 140 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 63 "txval21" + Name 66 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 89 "txval30" + Name 92 "g_tTex3df4" + Name 102 "txval31" + Name 105 "g_tTex3di4" + Name 113 "txval32" + Name 116 "g_tTex3du4" + Name 127 "PS_OUTPUT" + MemberName 127(PS_OUTPUT) 0 "Color" + MemberName 127(PS_OUTPUT) 1 "Depth" + Name 129 "psout" + Name 136 "Color" + Name 140 "Depth" + Name 144 "g_tTex1df4a" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 66(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 92(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 116(g_tTex3du4) DescriptorSet 0 + Decorate 136(Color) Location 0 + Decorate 140(Depth) BuiltIn FragDepth + Decorate 144(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1df4a) Binding 1 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) 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 sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: TypeInt 32 1 + 22: 21(int) Constant 1 + 24: TypeVector 21(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 21(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 59: TypeVector 21(int) 2 + 60: 21(int) Constant 0 + 61: 59(ivec2) ConstantComposite 22 60 + 64: TypeImage 21(int) 2D sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4): 65(ptr) Variable UniformConstant + 69: TypeSampledImage 64 + 71: 6(float) Constant 1053609165 + 72: 57(fvec2) ConstantComposite 47 71 + 73: 59(ivec2) ConstantComposite 22 22 + 76: TypeImage 36(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: 57(fvec2) ConstantComposite 83 84 + 86: 21(int) Constant 4294967295 + 87: 59(ivec2) ConstantComposite 22 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 20 34 47 + 99: TypeVector 21(int) 3 + 100: 99(ivec3) ConstantComposite 22 60 22 + 103: TypeImage 21(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 97(fvec3) ConstantComposite 71 83 84 + 111: 99(ivec3) ConstantComposite 22 22 22 + 114: TypeImage 36(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3du4): 115(ptr) Variable UniformConstant + 119: TypeSampledImage 114 + 121: 6(float) Constant 1060320051 + 122: 6(float) Constant 1061997773 + 123: 6(float) Constant 1063675494 + 124: 97(fvec3) ConstantComposite 121 122 123 + 125: 99(ivec3) ConstantComposite 22 60 86 + 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 128: TypePointer Function 127(PS_OUTPUT) + 130: 6(float) Constant 1065353216 + 131: 7(fvec4) ConstantComposite 130 130 130 130 + 133: TypePointer Function 6(float) + 135: TypePointer Output 7(fvec4) + 136(Color): 135(ptr) Variable Output + 139: TypePointer Output 6(float) + 140(Depth): 139(ptr) Variable Output +144(g_tTex1df4a): 11(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 21(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 36(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 63(txval21): 25(ptr) Variable Function + 75(txval22): 38(ptr) Variable Function + 89(txval30): 8(ptr) Variable Function + 102(txval31): 25(ptr) Variable Function + 113(txval32): 38(ptr) Variable Function + 129(psout): 128(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleImplicitLod 19 20 ConstOffset 22 + Store 9(txval10) 23 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleImplicitLod 33 34 ConstOffset 22 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleImplicitLod 46 47 ConstOffset 22 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 62: 7(fvec4) ImageSampleImplicitLod 56 58 ConstOffset 61 + Store 49(txval20) 62 + 67: 64 Load 66(g_tTex2di4) + 68: 14 Load 16(g_sSamp) + 70: 69 SampledImage 67 68 + 74: 24(ivec4) ImageSampleImplicitLod 70 72 ConstOffset 73 + Store 63(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 14 Load 16(g_sSamp) + 82: 81 SampledImage 79 80 + 88: 37(ivec4) ImageSampleImplicitLod 82 85 ConstOffset 87 + Store 75(txval22) 88 + 93: 90 Load 92(g_tTex3df4) + 94: 14 Load 16(g_sSamp) + 96: 95 SampledImage 93 94 + 101: 7(fvec4) ImageSampleImplicitLod 96 98 ConstOffset 100 + Store 89(txval30) 101 + 106: 103 Load 105(g_tTex3di4) + 107: 14 Load 16(g_sSamp) + 109: 108 SampledImage 106 107 + 112: 24(ivec4) ImageSampleImplicitLod 109 110 ConstOffset 111 + Store 102(txval31) 112 + 117: 114 Load 116(g_tTex3du4) + 118: 14 Load 16(g_sSamp) + 120: 119 SampledImage 117 118 + 126: 37(ivec4) ImageSampleImplicitLod 120 124 ConstOffset 125 + Store 113(txval32) 126 + 132: 8(ptr) AccessChain 129(psout) 60 + Store 132 131 + 134: 133(ptr) AccessChain 129(psout) 22 + Store 134 130 + 137: 8(ptr) AccessChain 129(psout) 60 + 138: 7(fvec4) Load 137 + Store 136(Color) 138 + 141: 133(ptr) AccessChain 129(psout) 22 + 142: 6(float) Load 141 + Store 140(Depth) 142 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..abdf03270f --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -0,0 +1,425 @@ +hlsl.sample.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 111 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 102 106 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4" + Name 44 "txval12" + Name 47 "g_tTex1du4" + Name 56 "txval20" + Name 59 "g_tTex2df4" + Name 69 "txval21" + Name 72 "g_tTex2di4" + Name 80 "txval22" + Name 83 "g_tTex2du4" + Name 93 "PS_OUTPUT" + MemberName 93(PS_OUTPUT) 0 "Color" + MemberName 93(PS_OUTPUT) 1 "Depth" + Name 95 "psout" + Name 102 "Color" + Name 106 "Depth" + Name 110 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 59(g_tTex2df4) DescriptorSet 0 + Decorate 72(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + Decorate 102(Color) Location 0 + Decorate 106(Depth) BuiltIn FragDepth + Decorate 110(g_tTex1df4a) DescriptorSet 0 + Decorate 110(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 39: 24(int) Constant 1 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 1D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1053609165 + 53: 20(fvec2) ConstantComposite 37 52 + 54: 24(int) Constant 2 + 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: 64(fvec3) ConstantComposite 21 22 37 + 66: TypeVector 24(int) 2 + 67: 66(ivec2) ConstantComposite 25 25 + 70: TypeImage 24(int) 2D array sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4): 71(ptr) Variable UniformConstant + 75: TypeSampledImage 70 + 77: 6(float) Constant 1056964608 + 78: 64(fvec3) ConstantComposite 37 52 77 + 81: TypeImage 41(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1058642330 + 89: 6(float) Constant 1060320051 + 90: 64(fvec3) ConstantComposite 77 88 89 + 91: 66(ivec2) ConstantComposite 25 39 + 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 94: TypePointer Function 93(PS_OUTPUT) + 96: 6(float) Constant 1065353216 + 97: 7(fvec4) ConstantComposite 96 96 96 96 + 99: TypePointer Function 6(float) + 101: TypePointer Output 7(fvec4) + 102(Color): 101(ptr) Variable Output + 105: TypePointer Output 6(float) + 106(Depth): 105(ptr) Variable Output +110(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 44(txval12): 43(ptr) Variable Function + 56(txval20): 8(ptr) Variable Function + 69(txval21): 28(ptr) Variable Function + 80(txval22): 43(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageSampleImplicitLod 19 23 ConstOffset 25 + Store 9(txval10) 26 + 33: 30 Load 32(g_tTex1di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 40: 27(ivec4) ImageSampleImplicitLod 36 38 ConstOffset 39 + Store 29(txval11) 40 + 48: 45 Load 47(g_tTex1du4) + 49: 14 Load 16(g_sSamp) + 51: 50 SampledImage 48 49 + 55: 42(ivec4) ImageSampleImplicitLod 51 53 ConstOffset 54 + Store 44(txval12) 55 + 60: 57 Load 59(g_tTex2df4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 68: 7(fvec4) ImageSampleImplicitLod 63 65 ConstOffset 67 + Store 56(txval20) 68 + 73: 70 Load 72(g_tTex2di4) + 74: 14 Load 16(g_sSamp) + 76: 75 SampledImage 73 74 + 79: 27(ivec4) ImageSampleImplicitLod 76 78 ConstOffset 67 + Store 69(txval21) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 14 Load 16(g_sSamp) + 87: 86 SampledImage 84 85 + 92: 42(ivec4) ImageSampleImplicitLod 87 90 ConstOffset 91 + Store 80(txval22) 92 + 98: 8(ptr) AccessChain 95(psout) 25 + Store 98 97 + 100: 99(ptr) AccessChain 95(psout) 39 + Store 100 96 + 103: 8(ptr) AccessChain 95(psout) 25 + 104: 7(fvec4) Load 103 + Store 102(Color) 104 + 107: 99(ptr) AccessChain 95(psout) 39 + 108: 6(float) Load 107 + Store 106(Depth) 108 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out new file mode 100644 index 0000000000..bfbad5c207 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out @@ -0,0 +1,252 @@ +hlsl.sample.sub-vec4.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'txval10' (temp float) +0:17 Construct float (temp float) +0:? texture (temp 4-component vector of float) +0:17 Construct combined texture-sampler (temp sampler1D) +0:17 'g_tTex1df1' (uniform texture1D) +0:17 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child (temp 2-component vector of float) +0:18 'txval11' (temp 2-component vector of float) +0:18 Construct vec2 (temp 2-component vector of float) +0:? texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:18 'g_tTex1df2' (uniform texture1D) +0:18 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of float) +0:19 'txval12' (temp 3-component vector of float) +0:19 Construct vec3 (temp 3-component vector of float) +0:? texture (temp 4-component vector of float) +0:19 Construct combined texture-sampler (temp sampler1D) +0:19 'g_tTex1df3' (uniform texture1D) +0:19 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:20 'txval13' (temp 4-component vector of float) +0:20 texture (temp 4-component vector of float) +0:20 Construct combined texture-sampler (temp sampler1D) +0:20 'g_tTex1df4' (uniform texture1D) +0:20 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (uniform texture1D) +0:? 'g_tTex1df2' (uniform texture1D) +0:? 'g_tTex1df3' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'txval10' (temp float) +0:17 Construct float (temp float) +0:? texture (temp 4-component vector of float) +0:17 Construct combined texture-sampler (temp sampler1D) +0:17 'g_tTex1df1' (uniform texture1D) +0:17 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child (temp 2-component vector of float) +0:18 'txval11' (temp 2-component vector of float) +0:18 Construct vec2 (temp 2-component vector of float) +0:? texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:18 'g_tTex1df2' (uniform texture1D) +0:18 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of float) +0:19 'txval12' (temp 3-component vector of float) +0:19 Construct vec3 (temp 3-component vector of float) +0:? texture (temp 4-component vector of float) +0:19 Construct combined texture-sampler (temp sampler1D) +0:19 'g_tTex1df3' (uniform texture1D) +0:19 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:20 'txval13' (temp 4-component vector of float) +0:20 texture (temp 4-component vector of float) +0:20 Construct combined texture-sampler (temp sampler1D) +0:20 'g_tTex1df4' (uniform texture1D) +0:20 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (uniform texture1D) +0:? 'g_tTex1df2' (uniform texture1D) +0:? 'g_tTex1df3' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 67 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 63 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "txval10" + Name 11 "g_tTex1df1" + Name 15 "g_sSamp" + Name 25 "txval11" + Name 26 "g_tTex1df2" + Name 37 "txval12" + Name 38 "g_tTex1df3" + Name 48 "txval13" + Name 49 "g_tTex1df4" + Name 54 "PS_OUTPUT" + MemberName 54(PS_OUTPUT) 0 "Color" + Name 56 "psout" + Name 63 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 26(g_tTex1df2) DescriptorSet 0 + Decorate 38(g_tTex1df3) DescriptorSet 0 + Decorate 49(g_tTex1df4) DescriptorSet 0 + Decorate 63(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeSampledImage 9 + 19: 6(float) Constant 1036831949 + 20: TypeVector 6(float) 4 + 23: TypeVector 6(float) 2 + 24: TypePointer Function 23(fvec2) + 26(g_tTex1df2): 10(ptr) Variable UniformConstant + 30: 6(float) Constant 1045220557 + 35: TypeVector 6(float) 3 + 36: TypePointer Function 35(fvec3) + 38(g_tTex1df3): 10(ptr) Variable UniformConstant + 47: TypePointer Function 20(fvec4) + 49(g_tTex1df4): 10(ptr) Variable UniformConstant + 54(PS_OUTPUT): TypeStruct 20(fvec4) + 55: TypePointer Function 54(PS_OUTPUT) + 57: TypeInt 32 1 + 58: 57(int) Constant 0 + 59: 6(float) Constant 1065353216 + 60: 20(fvec4) ConstantComposite 59 59 59 59 + 62: TypePointer Output 20(fvec4) + 63(Color): 62(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(txval10): 7(ptr) Variable Function + 25(txval11): 24(ptr) Variable Function + 37(txval12): 36(ptr) Variable Function + 48(txval13): 47(ptr) Variable Function + 56(psout): 55(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 16: 13 Load 15(g_sSamp) + 18: 17 SampledImage 12 16 + 21: 20(fvec4) ImageSampleImplicitLod 18 19 + 22: 6(float) CompositeExtract 21 0 + Store 8(txval10) 22 + 27: 9 Load 26(g_tTex1df2) + 28: 13 Load 15(g_sSamp) + 29: 17 SampledImage 27 28 + 31: 20(fvec4) ImageSampleImplicitLod 29 30 + 32: 6(float) CompositeExtract 31 0 + 33: 6(float) CompositeExtract 31 1 + 34: 23(fvec2) CompositeConstruct 32 33 + Store 25(txval11) 34 + 39: 9 Load 38(g_tTex1df3) + 40: 13 Load 15(g_sSamp) + 41: 17 SampledImage 39 40 + 42: 20(fvec4) ImageSampleImplicitLod 41 30 + 43: 6(float) CompositeExtract 42 0 + 44: 6(float) CompositeExtract 42 1 + 45: 6(float) CompositeExtract 42 2 + 46: 35(fvec3) CompositeConstruct 43 44 45 + Store 37(txval12) 46 + 50: 9 Load 49(g_tTex1df4) + 51: 13 Load 15(g_sSamp) + 52: 17 SampledImage 50 51 + 53: 20(fvec4) ImageSampleImplicitLod 52 30 + Store 48(txval13) 53 + 61: 47(ptr) AccessChain 56(psout) 58 + Store 61 60 + 64: 47(ptr) AccessChain 56(psout) 58 + 65: 20(fvec4) Load 64 + Store 63(Color) 65 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.array.dx10.frag.out new file mode 100644 index 0000000000..05ac32a507 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -0,0 +1,550 @@ +hlsl.samplebias.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 139 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 130 134 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 65 "txval21" + Name 68 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 87 "txval40" + Name 90 "g_tTexcdf4" + Name 97 "txval41" + Name 100 "g_tTexcdi4" + Name 107 "txval42" + Name 110 "g_tTexcdu4" + Name 120 "PS_OUTPUT" + MemberName 120(PS_OUTPUT) 0 "Color" + MemberName 120(PS_OUTPUT) 1 "Depth" + Name 122 "psout" + Name 130 "Color" + Name 134 "Depth" + Name 138 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 68(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTexcdf4) DescriptorSet 0 + Decorate 100(g_tTexcdi4) DescriptorSet 0 + Decorate 110(g_tTexcdu4) DescriptorSet 0 + Decorate 130(Color) Location 0 + Decorate 134(Depth) BuiltIn FragDepth + Decorate 138(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1056964608 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 26(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1053609165 + 52: 20(fvec2) ConstantComposite 37 51 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 3 + 63: 62(fvec3) ConstantComposite 21 22 37 + 66: TypeImage 26(int) 2D array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2di4): 67(ptr) Variable UniformConstant + 71: TypeSampledImage 66 + 73: 62(fvec3) ConstantComposite 37 51 24 + 76: TypeImage 40(int) 2D array sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1058642330 + 84: 6(float) Constant 1060320051 + 85: 62(fvec3) ConstantComposite 24 83 84 + 88: TypeImage 6(float) Cube array sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTexcdf4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 7(fvec4) ConstantComposite 21 22 37 51 + 98: TypeImage 26(int) Cube array sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdi4): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 105: 7(fvec4) ConstantComposite 51 24 83 84 + 108: TypeImage 40(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTexcdu4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1061997773 + 116: 6(float) Constant 1063675494 + 117: 6(float) Constant 1065353216 + 118: 7(fvec4) ConstantComposite 84 115 116 117 + 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 121: TypePointer Function 120(PS_OUTPUT) + 123: 26(int) Constant 0 + 124: 7(fvec4) ConstantComposite 117 117 117 117 + 126: 26(int) Constant 1 + 127: TypePointer Function 6(float) + 129: TypePointer Output 7(fvec4) + 130(Color): 129(ptr) Variable Output + 133: TypePointer Output 6(float) + 134(Depth): 133(ptr) Variable Output +138(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 54(txval20): 8(ptr) Variable Function + 65(txval21): 28(ptr) Variable Function + 75(txval22): 42(ptr) Variable Function + 87(txval40): 8(ptr) Variable Function + 97(txval41): 28(ptr) Variable Function + 107(txval42): 42(ptr) Variable Function + 122(psout): 121(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleImplicitLod 19 23 Bias 24 + Store 9(txval10) 25 + 33: 30 Load 32(g_tTex1di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 39: 27(ivec4) ImageSampleImplicitLod 36 38 Bias 24 + Store 29(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 53: 41(ivec4) ImageSampleImplicitLod 50 52 Bias 24 + Store 43(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 14 Load 16(g_sSamp) + 61: 60 SampledImage 58 59 + 64: 7(fvec4) ImageSampleImplicitLod 61 63 Bias 24 + Store 54(txval20) 64 + 69: 66 Load 68(g_tTex2di4) + 70: 14 Load 16(g_sSamp) + 72: 71 SampledImage 69 70 + 74: 27(ivec4) ImageSampleImplicitLod 72 73 Bias 24 + Store 65(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 14 Load 16(g_sSamp) + 82: 81 SampledImage 79 80 + 86: 41(ivec4) ImageSampleImplicitLod 82 85 Bias 24 + Store 75(txval22) 86 + 91: 88 Load 90(g_tTexcdf4) + 92: 14 Load 16(g_sSamp) + 94: 93 SampledImage 91 92 + 96: 7(fvec4) ImageSampleImplicitLod 94 95 Bias 24 + Store 87(txval40) 96 + 101: 98 Load 100(g_tTexcdi4) + 102: 14 Load 16(g_sSamp) + 104: 103 SampledImage 101 102 + 106: 27(ivec4) ImageSampleImplicitLod 104 105 Bias 24 + Store 97(txval41) 106 + 111: 108 Load 110(g_tTexcdu4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 24 + Store 107(txval42) 119 + 125: 8(ptr) AccessChain 122(psout) 123 + Store 125 124 + 128: 127(ptr) AccessChain 122(psout) 126 + Store 128 117 + 131: 8(ptr) AccessChain 122(psout) 123 + 132: 7(fvec4) Load 131 + Store 130(Color) 132 + 135: 127(ptr) AccessChain 122(psout) 126 + 136: 6(float) Load 135 + Store 134(Depth) 136 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out new file mode 100644 index 0000000000..1442fc3c78 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -0,0 +1,651 @@ +hlsl.samplebias.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 1 (const int) +0:50 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 1 (const int) +0:50 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 163 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 154 158 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 82 "txval30" + Name 85 "g_tTex3df4" + Name 93 "txval31" + Name 96 "g_tTex3di4" + Name 103 "txval32" + Name 106 "g_tTex3du4" + Name 116 "txval40" + Name 119 "g_tTexcdf4" + Name 125 "txval41" + Name 128 "g_tTexcdi4" + Name 134 "txval42" + Name 137 "g_tTexcdu4" + Name 143 "PS_OUTPUT" + MemberName 143(PS_OUTPUT) 0 "Color" + MemberName 143(PS_OUTPUT) 1 "Depth" + Name 145 "psout" + Name 154 "Color" + Name 158 "Depth" + Name 162 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 85(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 119(g_tTexcdf4) DescriptorSet 0 + Decorate 128(g_tTexcdi4) DescriptorSet 0 + Decorate 137(g_tTexcdu4) DescriptorSet 0 + Decorate 154(Color) Location 0 + Decorate 158(Depth) BuiltIn FragDepth + Decorate 162(g_tTex1df4a) DescriptorSet 0 + Decorate 162(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1056964608 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1058642330 + 80: 57(fvec2) ConstantComposite 21 79 + 83: TypeImage 6(float) 3D sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex3df4): 84(ptr) Variable UniformConstant + 88: TypeSampledImage 83 + 90: TypeVector 6(float) 3 + 91: 90(fvec3) ConstantComposite 20 34 47 + 94: TypeImage 23(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 99: TypeSampledImage 94 + 101: 90(fvec3) ConstantComposite 68 21 79 + 104: TypeImage 36(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: 6(float) Constant 1060320051 + 112: 6(float) Constant 1061997773 + 113: 6(float) Constant 1063675494 + 114: 90(fvec3) ConstantComposite 111 112 113 + 117: TypeImage 6(float) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdf4): 118(ptr) Variable UniformConstant + 122: TypeSampledImage 117 + 126: TypeImage 23(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdi4): 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 135: TypeImage 36(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdu4): 136(ptr) Variable UniformConstant + 140: TypeSampledImage 135 + 143(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 144: TypePointer Function 143(PS_OUTPUT) + 146: 23(int) Constant 0 + 147: 6(float) Constant 1065353216 + 148: 7(fvec4) ConstantComposite 147 147 147 147 + 150: 23(int) Constant 1 + 151: TypePointer Function 6(float) + 153: TypePointer Output 7(fvec4) + 154(Color): 153(ptr) Variable Output + 157: TypePointer Output 6(float) + 158(Depth): 157(ptr) Variable Output +162(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 82(txval30): 8(ptr) Variable Function + 93(txval31): 25(ptr) Variable Function + 103(txval32): 38(ptr) Variable Function + 116(txval40): 8(ptr) Variable Function + 125(txval41): 25(ptr) Variable Function + 134(txval42): 38(ptr) Variable Function + 145(psout): 144(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleImplicitLod 19 20 Bias 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleImplicitLod 33 34 Bias 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleImplicitLod 46 47 Bias 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleImplicitLod 56 58 Bias 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleImplicitLod 67 69 Bias 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 81: 37(ivec4) ImageSampleImplicitLod 78 80 Bias 21 + Store 71(txval22) 81 + 86: 83 Load 85(g_tTex3df4) + 87: 14 Load 16(g_sSamp) + 89: 88 SampledImage 86 87 + 92: 7(fvec4) ImageSampleImplicitLod 89 91 Bias 21 + Store 82(txval30) 92 + 97: 94 Load 96(g_tTex3di4) + 98: 14 Load 16(g_sSamp) + 100: 99 SampledImage 97 98 + 102: 24(ivec4) ImageSampleImplicitLod 100 101 Bias 21 + Store 93(txval31) 102 + 107: 104 Load 106(g_tTex3du4) + 108: 14 Load 16(g_sSamp) + 110: 109 SampledImage 107 108 + 115: 37(ivec4) ImageSampleImplicitLod 110 114 Bias 21 + Store 103(txval32) 115 + 120: 117 Load 119(g_tTexcdf4) + 121: 14 Load 16(g_sSamp) + 123: 122 SampledImage 120 121 + 124: 7(fvec4) ImageSampleImplicitLod 123 91 Bias 21 + Store 116(txval40) 124 + 129: 126 Load 128(g_tTexcdi4) + 130: 14 Load 16(g_sSamp) + 132: 131 SampledImage 129 130 + 133: 24(ivec4) ImageSampleImplicitLod 132 101 Bias 21 + Store 125(txval41) 133 + 138: 135 Load 137(g_tTexcdu4) + 139: 14 Load 16(g_sSamp) + 141: 140 SampledImage 138 139 + 142: 37(ivec4) ImageSampleImplicitLod 141 114 Bias 21 + Store 134(txval42) 142 + 149: 8(ptr) AccessChain 145(psout) 146 + Store 149 148 + 152: 151(ptr) AccessChain 145(psout) 150 + Store 152 147 + 155: 8(ptr) AccessChain 145(psout) 146 + 156: 7(fvec4) Load 155 + Store 154(Color) 156 + 159: 151(ptr) AccessChain 145(psout) 150 + 160: 6(float) Load 159 + Store 158(Depth) 160 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out new file mode 100644 index 0000000000..01facb65d7 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -0,0 +1,612 @@ +hlsl.samplebias.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 154 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 136 140 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 89 "txval30" + Name 92 "g_tTex3df4" + Name 102 "txval31" + Name 105 "g_tTex3di4" + Name 113 "txval32" + Name 116 "g_tTex3du4" + Name 127 "PS_OUTPUT" + MemberName 127(PS_OUTPUT) 0 "Color" + MemberName 127(PS_OUTPUT) 1 "Depth" + Name 129 "psout" + Name 136 "Color" + Name 140 "Depth" + Name 144 "g_tTex1df4a" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 92(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 116(g_tTex3du4) DescriptorSet 0 + Decorate 136(Color) Location 0 + Decorate 140(Depth) BuiltIn FragDepth + Decorate 144(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1df4a) Binding 1 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) 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 sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1056964608 + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 25: TypeVector 22(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 22(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: TypeVector 22(int) 2 + 61: 22(int) Constant 0 + 62: 60(ivec2) ConstantComposite 23 61 + 65: TypeImage 22(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: 58(fvec2) ConstantComposite 48 72 + 74: 60(ivec2) ConstantComposite 23 23 + 77: TypeImage 37(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1058642330 + 85: 58(fvec2) ConstantComposite 21 84 + 86: 22(int) Constant 4294967295 + 87: 60(ivec2) ConstantComposite 23 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 20 35 48 + 99: TypeVector 22(int) 3 + 100: 99(ivec3) ConstantComposite 23 61 23 + 103: TypeImage 22(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 97(fvec3) ConstantComposite 72 21 84 + 111: 99(ivec3) ConstantComposite 23 23 23 + 114: TypeImage 37(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3du4): 115(ptr) Variable UniformConstant + 119: TypeSampledImage 114 + 121: 6(float) Constant 1060320051 + 122: 6(float) Constant 1061997773 + 123: 6(float) Constant 1063675494 + 124: 97(fvec3) ConstantComposite 121 122 123 + 125: 99(ivec3) ConstantComposite 23 61 86 + 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 128: TypePointer Function 127(PS_OUTPUT) + 130: 6(float) Constant 1065353216 + 131: 7(fvec4) ConstantComposite 130 130 130 130 + 133: TypePointer Function 6(float) + 135: TypePointer Output 7(fvec4) + 136(Color): 135(ptr) Variable Output + 139: TypePointer Output 6(float) + 140(Depth): 139(ptr) Variable Output +144(g_tTex1df4a): 11(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 22(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 37(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 64(txval21): 26(ptr) Variable Function + 76(txval22): 39(ptr) Variable Function + 89(txval30): 8(ptr) Variable Function + 102(txval31): 26(ptr) Variable Function + 113(txval32): 39(ptr) Variable Function + 129(psout): 128(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleImplicitLod 19 20 Bias ConstOffset 23 21 + Store 9(txval10) 24 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleImplicitLod 34 35 Bias ConstOffset 23 21 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleImplicitLod 47 48 Bias ConstOffset 23 21 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 63: 7(fvec4) ImageSampleImplicitLod 57 59 Bias ConstOffset 62 21 + Store 50(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 75: 25(ivec4) ImageSampleImplicitLod 71 73 Bias ConstOffset 74 21 + Store 64(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 88: 38(ivec4) ImageSampleImplicitLod 83 85 Bias ConstOffset 87 21 + Store 76(txval22) 88 + 93: 90 Load 92(g_tTex3df4) + 94: 14 Load 16(g_sSamp) + 96: 95 SampledImage 93 94 + 101: 7(fvec4) ImageSampleImplicitLod 96 98 Bias ConstOffset 100 21 + Store 89(txval30) 101 + 106: 103 Load 105(g_tTex3di4) + 107: 14 Load 16(g_sSamp) + 109: 108 SampledImage 106 107 + 112: 25(ivec4) ImageSampleImplicitLod 109 110 Bias ConstOffset 111 21 + Store 102(txval31) 112 + 117: 114 Load 116(g_tTex3du4) + 118: 14 Load 16(g_sSamp) + 120: 119 SampledImage 117 118 + 126: 38(ivec4) ImageSampleImplicitLod 120 124 Bias ConstOffset 125 21 + Store 113(txval32) 126 + 132: 8(ptr) AccessChain 129(psout) 61 + Store 132 131 + 134: 133(ptr) AccessChain 129(psout) 23 + Store 134 130 + 137: 8(ptr) AccessChain 129(psout) 61 + 138: 7(fvec4) Load 137 + Store 136(Color) 138 + 141: 133(ptr) AccessChain 129(psout) 23 + 142: 6(float) Load 141 + Store 140(Depth) 142 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..17aef7aec8 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -0,0 +1,449 @@ +hlsl.samplebias.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 111 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 102 106 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 45 "txval12" + Name 48 "g_tTex1du4" + Name 57 "txval20" + Name 60 "g_tTex2df4" + Name 70 "txval21" + Name 73 "g_tTex2di4" + Name 80 "txval22" + Name 83 "g_tTex2du4" + Name 93 "PS_OUTPUT" + MemberName 93(PS_OUTPUT) 0 "Color" + MemberName 93(PS_OUTPUT) 1 "Depth" + Name 95 "psout" + Name 102 "Color" + Name 106 "Depth" + Name 110 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 60(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + Decorate 102(Color) Location 0 + Decorate 106(Depth) BuiltIn FragDepth + Decorate 110(g_tTex1df4a) DescriptorSet 0 + Decorate 110(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1056964608 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1050253722 + 39: 20(fvec2) ConstantComposite 22 38 + 40: 25(int) Constant 1 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 1D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1053609165 + 54: 20(fvec2) ConstantComposite 38 53 + 55: 25(int) Constant 2 + 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 21 22 38 + 67: TypeVector 25(int) 2 + 68: 67(ivec2) ConstantComposite 26 26 + 71: TypeImage 25(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 65(fvec3) ConstantComposite 38 53 24 + 81: TypeImage 42(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1058642330 + 89: 6(float) Constant 1060320051 + 90: 65(fvec3) ConstantComposite 24 88 89 + 91: 67(ivec2) ConstantComposite 26 40 + 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 94: TypePointer Function 93(PS_OUTPUT) + 96: 6(float) Constant 1065353216 + 97: 7(fvec4) ConstantComposite 96 96 96 96 + 99: TypePointer Function 6(float) + 101: TypePointer Output 7(fvec4) + 102(Color): 101(ptr) Variable Output + 105: TypePointer Output 6(float) + 106(Depth): 105(ptr) Variable Output +110(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 45(txval12): 44(ptr) Variable Function + 57(txval20): 8(ptr) Variable Function + 70(txval21): 29(ptr) Variable Function + 80(txval22): 44(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageSampleImplicitLod 19 23 Bias ConstOffset 26 24 + Store 9(txval10) 27 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageSampleImplicitLod 37 39 Bias ConstOffset 40 24 + Store 30(txval11) 41 + 49: 46 Load 48(g_tTex1du4) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageSampleImplicitLod 52 54 Bias ConstOffset 55 24 + Store 45(txval12) 56 + 61: 58 Load 60(g_tTex2df4) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 69: 7(fvec4) ImageSampleImplicitLod 64 66 Bias ConstOffset 68 24 + Store 57(txval20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 14 Load 16(g_sSamp) + 77: 76 SampledImage 74 75 + 79: 28(ivec4) ImageSampleImplicitLod 77 78 Bias ConstOffset 68 24 + Store 70(txval21) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 14 Load 16(g_sSamp) + 87: 86 SampledImage 84 85 + 92: 43(ivec4) ImageSampleImplicitLod 87 90 Bias ConstOffset 91 24 + Store 80(txval22) 92 + 98: 8(ptr) AccessChain 95(psout) 26 + Store 98 97 + 100: 99(ptr) AccessChain 95(psout) 40 + Store 100 96 + 103: 8(ptr) AccessChain 95(psout) 26 + 104: 7(fvec4) Load 103 + Store 102(Color) 104 + 107: 99(ptr) AccessChain 95(psout) 40 + 108: 6(float) Load 107 + Store 106(Depth) 108 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out new file mode 100644 index 0000000000..c4f5d11c8c --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -0,0 +1,683 @@ +hlsl.samplecmp.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 textureCubeArray) +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 itextureCubeArray) +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 utextureCubeArray) +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 Sequence +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 textureCubeArray) +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 itextureCubeArray) +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 utextureCubeArray) +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 Sequence +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 211 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 167 171 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 31 "r12" + Name 35 "g_tTex1di4a" + Name 46 "r14" + Name 50 "g_tTex1du4a" + Name 61 "r30" + Name 64 "g_tTex2df4a" + Name 79 "r32" + Name 82 "g_tTex2di4a" + Name 94 "r34" + Name 97 "g_tTex2du4a" + Name 109 "r60" + Name 112 "g_tTexcdf4a" + Name 126 "r62" + Name 129 "g_tTexcdi4a" + Name 141 "r64" + Name 144 "g_tTexcdu4a" + Name 156 "PS_OUTPUT" + MemberName 156(PS_OUTPUT) 0 "Color" + MemberName 156(PS_OUTPUT) 1 "Depth" + Name 158 "psout" + Name 167 "Color" + Name 171 "Depth" + Name 177 "g_tTex1df4" + Name 180 "g_tTex1di4" + Name 183 "g_tTex1du4" + Name 186 "g_tTex2df4" + Name 189 "g_tTex2di4" + Name 192 "g_tTex2du4" + Name 195 "g_tTex3df4" + Name 198 "g_tTex3di4" + Name 201 "g_tTex3du4" + Name 204 "g_tTexcdf4" + Name 207 "g_tTexcdi4" + Name 210 "g_tTexcdu4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 35(g_tTex1di4a) DescriptorSet 0 + Decorate 50(g_tTex1du4a) DescriptorSet 0 + Decorate 64(g_tTex2df4a) DescriptorSet 0 + Decorate 82(g_tTex2di4a) DescriptorSet 0 + Decorate 97(g_tTex2du4a) DescriptorSet 0 + Decorate 112(g_tTexcdf4a) DescriptorSet 0 + Decorate 129(g_tTexcdi4a) DescriptorSet 0 + Decorate 144(g_tTexcdu4a) DescriptorSet 0 + Decorate 167(Color) Location 0 + Decorate 171(Depth) BuiltIn FragDepth + Decorate 177(g_tTex1df4) DescriptorSet 0 + Decorate 177(g_tTex1df4) Binding 0 + Decorate 180(g_tTex1di4) DescriptorSet 0 + Decorate 183(g_tTex1du4) DescriptorSet 0 + Decorate 186(g_tTex2df4) DescriptorSet 0 + Decorate 189(g_tTex2di4) DescriptorSet 0 + Decorate 192(g_tTex2du4) DescriptorSet 0 + Decorate 195(g_tTex3df4) DescriptorSet 0 + Decorate 198(g_tTex3di4) DescriptorSet 0 + Decorate 201(g_tTex3du4) DescriptorSet 0 + Decorate 204(g_tTexcdf4) DescriptorSet 0 + Decorate 207(g_tTexcdi4) DescriptorSet 0 + Decorate 210(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 25: TypeVector 6(float) 3 + 32: TypeInt 32 1 + 33: TypeImage 32(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4a): 34(ptr) Variable UniformConstant + 38: TypeImage 32(int) 1D depth array sampled format:Unknown + 39: TypeSampledImage 38 + 47: TypeInt 32 0 + 48: TypeImage 47(int) 1D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex1du4a): 49(ptr) Variable UniformConstant + 53: TypeImage 47(int) 1D depth array sampled format:Unknown + 54: TypeSampledImage 53 + 62: TypeImage 6(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTex2df4a): 63(ptr) Variable UniformConstant + 67: TypeImage 6(float) 2D depth array sampled format:Unknown + 68: TypeSampledImage 67 + 70: 6(float) Constant 1050253722 + 71: 25(fvec3) ConstantComposite 21 22 70 + 72: TypeVector 6(float) 4 + 80: TypeImage 32(int) 2D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2di4a): 81(ptr) Variable UniformConstant + 85: TypeImage 32(int) 2D depth array sampled format:Unknown + 86: TypeSampledImage 85 + 95: TypeImage 47(int) 2D array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex2du4a): 96(ptr) Variable UniformConstant + 100: TypeImage 47(int) 2D depth array sampled format:Unknown + 101: TypeSampledImage 100 + 110: TypeImage 6(float) Cube array sampled format:Unknown + 111: TypePointer UniformConstant 110 +112(g_tTexcdf4a): 111(ptr) Variable UniformConstant + 115: TypeImage 6(float) Cube depth array sampled format:Unknown + 116: TypeSampledImage 115 + 118: 6(float) Constant 1053609165 + 119: 72(fvec4) ConstantComposite 21 22 70 118 + 127: TypeImage 32(int) Cube array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTexcdi4a): 128(ptr) Variable UniformConstant + 132: TypeImage 32(int) Cube depth array sampled format:Unknown + 133: TypeSampledImage 132 + 142: TypeImage 47(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 147: TypeImage 47(int) Cube depth array sampled format:Unknown + 148: TypeSampledImage 147 + 156(PS_OUTPUT): TypeStruct 72(fvec4) 6(float) + 157: TypePointer Function 156(PS_OUTPUT) + 159: 32(int) Constant 0 + 160: 6(float) Constant 1065353216 + 161: 72(fvec4) ConstantComposite 160 160 160 160 + 162: TypePointer Function 72(fvec4) + 164: 32(int) Constant 1 + 166: TypePointer Output 72(fvec4) + 167(Color): 166(ptr) Variable Output + 170: TypePointer Output 6(float) + 171(Depth): 170(ptr) Variable Output + 175: TypeImage 6(float) 1D sampled format:Unknown + 176: TypePointer UniformConstant 175 + 177(g_tTex1df4): 176(ptr) Variable UniformConstant + 178: TypeImage 32(int) 1D sampled format:Unknown + 179: TypePointer UniformConstant 178 + 180(g_tTex1di4): 179(ptr) Variable UniformConstant + 181: TypeImage 47(int) 1D sampled format:Unknown + 182: TypePointer UniformConstant 181 + 183(g_tTex1du4): 182(ptr) Variable UniformConstant + 184: TypeImage 6(float) 2D sampled format:Unknown + 185: TypePointer UniformConstant 184 + 186(g_tTex2df4): 185(ptr) Variable UniformConstant + 187: TypeImage 32(int) 2D sampled format:Unknown + 188: TypePointer UniformConstant 187 + 189(g_tTex2di4): 188(ptr) Variable UniformConstant + 190: TypeImage 47(int) 2D sampled format:Unknown + 191: TypePointer UniformConstant 190 + 192(g_tTex2du4): 191(ptr) Variable UniformConstant + 193: TypeImage 6(float) 3D sampled format:Unknown + 194: TypePointer UniformConstant 193 + 195(g_tTex3df4): 194(ptr) Variable UniformConstant + 196: TypeImage 32(int) 3D sampled format:Unknown + 197: TypePointer UniformConstant 196 + 198(g_tTex3di4): 197(ptr) Variable UniformConstant + 199: TypeImage 47(int) 3D sampled format:Unknown + 200: TypePointer UniformConstant 199 + 201(g_tTex3du4): 200(ptr) Variable UniformConstant + 202: TypeImage 6(float) Cube sampled format:Unknown + 203: TypePointer UniformConstant 202 + 204(g_tTexcdf4): 203(ptr) Variable UniformConstant + 205: TypeImage 32(int) Cube sampled format:Unknown + 206: TypePointer UniformConstant 205 + 207(g_tTexcdi4): 206(ptr) Variable UniformConstant + 208: TypeImage 47(int) Cube sampled format:Unknown + 209: TypePointer UniformConstant 208 + 210(g_tTexcdu4): 209(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r10): 7(ptr) Variable Function + 31(r12): 7(ptr) Variable Function + 46(r14): 7(ptr) Variable Function + 61(r30): 7(ptr) Variable Function + 79(r32): 7(ptr) Variable Function + 94(r34): 7(ptr) Variable Function + 109(r60): 7(ptr) Variable Function + 126(r62): 7(ptr) Variable Function + 141(r64): 7(ptr) Variable Function + 158(psout): 157(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 29: 6(float) CompositeExtract 28 2 + 30: 6(float) ImageSampleDrefImplicitLod 19 28 29 + Store 8(r10) 30 + 36: 33 Load 35(g_tTex1di4a) + 37: 13 Load 15(g_sSamp) + 40: 39 SampledImage 36 37 + 41: 6(float) CompositeExtract 23 0 + 42: 6(float) CompositeExtract 23 1 + 43: 25(fvec3) CompositeConstruct 41 42 24 + 44: 6(float) CompositeExtract 43 2 + 45: 6(float) ImageSampleDrefImplicitLod 40 43 44 + Store 31(r12) 45 + 51: 48 Load 50(g_tTex1du4a) + 52: 13 Load 15(g_sSamp) + 55: 54 SampledImage 51 52 + 56: 6(float) CompositeExtract 23 0 + 57: 6(float) CompositeExtract 23 1 + 58: 25(fvec3) CompositeConstruct 56 57 24 + 59: 6(float) CompositeExtract 58 2 + 60: 6(float) ImageSampleDrefImplicitLod 55 58 59 + Store 46(r14) 60 + 65: 62 Load 64(g_tTex2df4a) + 66: 13 Load 15(g_sSamp) + 69: 68 SampledImage 65 66 + 73: 6(float) CompositeExtract 71 0 + 74: 6(float) CompositeExtract 71 1 + 75: 6(float) CompositeExtract 71 2 + 76: 72(fvec4) CompositeConstruct 73 74 75 24 + 77: 6(float) CompositeExtract 76 3 + 78: 6(float) ImageSampleDrefImplicitLod 69 76 77 + Store 61(r30) 78 + 83: 80 Load 82(g_tTex2di4a) + 84: 13 Load 15(g_sSamp) + 87: 86 SampledImage 83 84 + 88: 6(float) CompositeExtract 71 0 + 89: 6(float) CompositeExtract 71 1 + 90: 6(float) CompositeExtract 71 2 + 91: 72(fvec4) CompositeConstruct 88 89 90 24 + 92: 6(float) CompositeExtract 91 3 + 93: 6(float) ImageSampleDrefImplicitLod 87 91 92 + Store 79(r32) 93 + 98: 95 Load 97(g_tTex2du4a) + 99: 13 Load 15(g_sSamp) + 102: 101 SampledImage 98 99 + 103: 6(float) CompositeExtract 71 0 + 104: 6(float) CompositeExtract 71 1 + 105: 6(float) CompositeExtract 71 2 + 106: 72(fvec4) CompositeConstruct 103 104 105 24 + 107: 6(float) CompositeExtract 106 3 + 108: 6(float) ImageSampleDrefImplicitLod 102 106 107 + Store 94(r34) 108 + 113: 110 Load 112(g_tTexcdf4a) + 114: 13 Load 15(g_sSamp) + 117: 116 SampledImage 113 114 + 120: 6(float) CompositeExtract 119 0 + 121: 6(float) CompositeExtract 119 1 + 122: 6(float) CompositeExtract 119 2 + 123: 6(float) CompositeExtract 119 3 + 124: 72(fvec4) CompositeConstruct 120 121 122 123 + 125: 6(float) ImageSampleDrefImplicitLod 117 124 24 + Store 109(r60) 125 + 130: 127 Load 129(g_tTexcdi4a) + 131: 13 Load 15(g_sSamp) + 134: 133 SampledImage 130 131 + 135: 6(float) CompositeExtract 119 0 + 136: 6(float) CompositeExtract 119 1 + 137: 6(float) CompositeExtract 119 2 + 138: 6(float) CompositeExtract 119 3 + 139: 72(fvec4) CompositeConstruct 135 136 137 138 + 140: 6(float) ImageSampleDrefImplicitLod 134 139 24 + Store 126(r62) 140 + 145: 142 Load 144(g_tTexcdu4a) + 146: 13 Load 15(g_sSamp) + 149: 148 SampledImage 145 146 + 150: 6(float) CompositeExtract 119 0 + 151: 6(float) CompositeExtract 119 1 + 152: 6(float) CompositeExtract 119 2 + 153: 6(float) CompositeExtract 119 3 + 154: 72(fvec4) CompositeConstruct 150 151 152 153 + 155: 6(float) ImageSampleDrefImplicitLod 149 154 24 + Store 141(r64) 155 + 163: 162(ptr) AccessChain 158(psout) 159 + Store 163 161 + 165: 7(ptr) AccessChain 158(psout) 164 + Store 165 160 + 168: 162(ptr) AccessChain 158(psout) 159 + 169: 72(fvec4) Load 168 + Store 167(Color) 169 + 172: 7(ptr) AccessChain 158(psout) 164 + 173: 6(float) Load 172 + Store 171(Depth) 173 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out new file mode 100644 index 0000000000..acd24b8bb4 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -0,0 +1,654 @@ +hlsl.samplecmp.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 textureCube) +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 itextureCube) +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 utextureCube) +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 Sequence +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 1 (const int) +0:60 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 textureCube) +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 itextureCube) +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 utextureCube) +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 Sequence +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 1 (const int) +0:60 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 200 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 156 160 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 26 "r02" + Name 30 "g_tTex1di4" + Name 39 "r04" + Name 43 "g_tTex1du4" + Name 52 "r20" + Name 55 "g_tTex2df4" + Name 69 "r22" + Name 72 "g_tTex2di4" + Name 83 "r24" + Name 86 "g_tTex2du4" + Name 97 "r50" + Name 100 "g_tTexcdf4" + Name 115 "r52" + Name 118 "g_tTexcdi4" + Name 130 "r54" + Name 133 "g_tTexcdu4" + Name 145 "PS_OUTPUT" + MemberName 145(PS_OUTPUT) 0 "Color" + MemberName 145(PS_OUTPUT) 1 "Depth" + Name 147 "psout" + Name 156 "Color" + Name 160 "Depth" + Name 166 "g_tTex3df4" + Name 169 "g_tTex3di4" + Name 172 "g_tTex3du4" + Name 175 "g_tTex1df4a" + Name 178 "g_tTex1di4a" + Name 181 "g_tTex1du4a" + Name 184 "g_tTex2df4a" + Name 187 "g_tTex2di4a" + Name 190 "g_tTex2du4a" + Name 193 "g_tTexcdf4a" + Name 196 "g_tTexcdi4a" + Name 199 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 55(g_tTex2df4) DescriptorSet 0 + Decorate 72(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 100(g_tTexcdf4) DescriptorSet 0 + Decorate 118(g_tTexcdi4) DescriptorSet 0 + Decorate 133(g_tTexcdu4) DescriptorSet 0 + Decorate 156(Color) Location 0 + Decorate 160(Depth) BuiltIn FragDepth + Decorate 166(g_tTex3df4) DescriptorSet 0 + Decorate 169(g_tTex3di4) DescriptorSet 0 + Decorate 172(g_tTex3du4) DescriptorSet 0 + Decorate 175(g_tTex1df4a) DescriptorSet 0 + Decorate 178(g_tTex1di4a) DescriptorSet 0 + Decorate 181(g_tTex1du4a) DescriptorSet 0 + Decorate 184(g_tTex2df4a) DescriptorSet 0 + Decorate 187(g_tTex2di4a) DescriptorSet 0 + Decorate 190(g_tTex2du4a) DescriptorSet 0 + Decorate 193(g_tTexcdf4a) DescriptorSet 0 + Decorate 196(g_tTexcdi4a) DescriptorSet 0 + Decorate 199(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeVector 6(float) 2 + 27: TypeInt 32 1 + 28: TypeImage 27(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeImage 27(int) 1D depth sampled format:Unknown + 34: TypeSampledImage 33 + 40: TypeInt 32 0 + 41: TypeImage 40(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeImage 40(int) 1D depth sampled format:Unknown + 47: TypeSampledImage 46 + 53: TypeImage 6(float) 2D sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2df4): 54(ptr) Variable UniformConstant + 58: TypeImage 6(float) 2D depth sampled format:Unknown + 59: TypeSampledImage 58 + 61: 6(float) Constant 1045220557 + 62: 22(fvec2) ConstantComposite 20 61 + 63: TypeVector 6(float) 3 + 70: TypeImage 27(int) 2D sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4): 71(ptr) Variable UniformConstant + 75: TypeImage 27(int) 2D depth sampled format:Unknown + 76: TypeSampledImage 75 + 84: TypeImage 40(int) 2D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 89: TypeImage 40(int) 2D depth sampled format:Unknown + 90: TypeSampledImage 89 + 98: TypeImage 6(float) Cube sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdf4): 99(ptr) Variable UniformConstant + 103: TypeImage 6(float) Cube depth sampled format:Unknown + 104: TypeSampledImage 103 + 106: 6(float) Constant 1050253722 + 107: 63(fvec3) ConstantComposite 20 61 106 + 108: TypeVector 6(float) 4 + 116: TypeImage 27(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdi4): 117(ptr) Variable UniformConstant + 121: TypeImage 27(int) Cube depth sampled format:Unknown + 122: TypeSampledImage 121 + 131: TypeImage 40(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdu4): 132(ptr) Variable UniformConstant + 136: TypeImage 40(int) Cube depth sampled format:Unknown + 137: TypeSampledImage 136 + 145(PS_OUTPUT): TypeStruct 108(fvec4) 6(float) + 146: TypePointer Function 145(PS_OUTPUT) + 148: 27(int) Constant 0 + 149: 6(float) Constant 1065353216 + 150: 108(fvec4) ConstantComposite 149 149 149 149 + 151: TypePointer Function 108(fvec4) + 153: 27(int) Constant 1 + 155: TypePointer Output 108(fvec4) + 156(Color): 155(ptr) Variable Output + 159: TypePointer Output 6(float) + 160(Depth): 159(ptr) Variable Output + 164: TypeImage 6(float) 3D sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTex3df4): 165(ptr) Variable UniformConstant + 167: TypeImage 27(int) 3D sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTex3di4): 168(ptr) Variable UniformConstant + 170: TypeImage 40(int) 3D sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTex3du4): 171(ptr) Variable UniformConstant + 173: TypeImage 6(float) 1D array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTex1df4a): 174(ptr) Variable UniformConstant + 176: TypeImage 27(int) 1D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTex1di4a): 177(ptr) Variable UniformConstant + 179: TypeImage 40(int) 1D array sampled format:Unknown + 180: TypePointer UniformConstant 179 +181(g_tTex1du4a): 180(ptr) Variable UniformConstant + 182: TypeImage 6(float) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2df4a): 183(ptr) Variable UniformConstant + 185: TypeImage 27(int) 2D array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTex2di4a): 186(ptr) Variable UniformConstant + 188: TypeImage 40(int) 2D array sampled format:Unknown + 189: TypePointer UniformConstant 188 +190(g_tTex2du4a): 189(ptr) Variable UniformConstant + 191: TypeImage 6(float) Cube array sampled format:Unknown + 192: TypePointer UniformConstant 191 +193(g_tTexcdf4a): 192(ptr) Variable UniformConstant + 194: TypeImage 27(int) Cube array sampled format:Unknown + 195: TypePointer UniformConstant 194 +196(g_tTexcdi4a): 195(ptr) Variable UniformConstant + 197: TypeImage 40(int) Cube array sampled format:Unknown + 198: TypePointer UniformConstant 197 +199(g_tTexcdu4a): 198(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 26(r02): 7(ptr) Variable Function + 39(r04): 7(ptr) Variable Function + 52(r20): 7(ptr) Variable Function + 69(r22): 7(ptr) Variable Function + 83(r24): 7(ptr) Variable Function + 97(r50): 7(ptr) Variable Function + 115(r52): 7(ptr) Variable Function + 130(r54): 7(ptr) Variable Function + 147(psout): 146(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 23: 22(fvec2) CompositeConstruct 20 21 + 24: 6(float) CompositeExtract 23 1 + 25: 6(float) ImageSampleDrefImplicitLod 19 23 24 + Store 8(r00) 25 + 31: 28 Load 30(g_tTex1di4) + 32: 13 Load 15(g_sSamp) + 35: 34 SampledImage 31 32 + 36: 22(fvec2) CompositeConstruct 20 21 + 37: 6(float) CompositeExtract 36 1 + 38: 6(float) ImageSampleDrefImplicitLod 35 36 37 + Store 26(r02) 38 + 44: 41 Load 43(g_tTex1du4) + 45: 13 Load 15(g_sSamp) + 48: 47 SampledImage 44 45 + 49: 22(fvec2) CompositeConstruct 20 21 + 50: 6(float) CompositeExtract 49 1 + 51: 6(float) ImageSampleDrefImplicitLod 48 49 50 + Store 39(r04) 51 + 56: 53 Load 55(g_tTex2df4) + 57: 13 Load 15(g_sSamp) + 60: 59 SampledImage 56 57 + 64: 6(float) CompositeExtract 62 0 + 65: 6(float) CompositeExtract 62 1 + 66: 63(fvec3) CompositeConstruct 64 65 21 + 67: 6(float) CompositeExtract 66 2 + 68: 6(float) ImageSampleDrefImplicitLod 60 66 67 + Store 52(r20) 68 + 73: 70 Load 72(g_tTex2di4) + 74: 13 Load 15(g_sSamp) + 77: 76 SampledImage 73 74 + 78: 6(float) CompositeExtract 62 0 + 79: 6(float) CompositeExtract 62 1 + 80: 63(fvec3) CompositeConstruct 78 79 21 + 81: 6(float) CompositeExtract 80 2 + 82: 6(float) ImageSampleDrefImplicitLod 77 80 81 + Store 69(r22) 82 + 87: 84 Load 86(g_tTex2du4) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 62 0 + 93: 6(float) CompositeExtract 62 1 + 94: 63(fvec3) CompositeConstruct 92 93 21 + 95: 6(float) CompositeExtract 94 2 + 96: 6(float) ImageSampleDrefImplicitLod 91 94 95 + Store 83(r24) 96 + 101: 98 Load 100(g_tTexcdf4) + 102: 13 Load 15(g_sSamp) + 105: 104 SampledImage 101 102 + 109: 6(float) CompositeExtract 107 0 + 110: 6(float) CompositeExtract 107 1 + 111: 6(float) CompositeExtract 107 2 + 112: 108(fvec4) CompositeConstruct 109 110 111 21 + 113: 6(float) CompositeExtract 112 3 + 114: 6(float) ImageSampleDrefImplicitLod 105 112 113 + Store 97(r50) 114 + 119: 116 Load 118(g_tTexcdi4) + 120: 13 Load 15(g_sSamp) + 123: 122 SampledImage 119 120 + 124: 6(float) CompositeExtract 107 0 + 125: 6(float) CompositeExtract 107 1 + 126: 6(float) CompositeExtract 107 2 + 127: 108(fvec4) CompositeConstruct 124 125 126 21 + 128: 6(float) CompositeExtract 127 3 + 129: 6(float) ImageSampleDrefImplicitLod 123 127 128 + Store 115(r52) 129 + 134: 131 Load 133(g_tTexcdu4) + 135: 13 Load 15(g_sSamp) + 138: 137 SampledImage 134 135 + 139: 6(float) CompositeExtract 107 0 + 140: 6(float) CompositeExtract 107 1 + 141: 6(float) CompositeExtract 107 2 + 142: 108(fvec4) CompositeConstruct 139 140 141 21 + 143: 6(float) CompositeExtract 142 3 + 144: 6(float) ImageSampleDrefImplicitLod 138 142 143 + Store 130(r54) 144 + 152: 151(ptr) AccessChain 147(psout) 148 + Store 152 150 + 154: 7(ptr) AccessChain 147(psout) 153 + Store 154 149 + 157: 151(ptr) AccessChain 147(psout) 148 + 158: 108(fvec4) Load 157 + Store 156(Color) 158 + 161: 7(ptr) AccessChain 147(psout) 153 + 162: 6(float) Load 161 + Store 160(Depth) 162 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out new file mode 100644 index 0000000000..fe2c74f569 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -0,0 +1,560 @@ +hlsl.samplecmp.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 Sequence +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:65 Constant: +0:65 1 (const int) +0:65 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 Sequence +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:65 Constant: +0:65 1 (const int) +0:65 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 166 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 113 117 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r01" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 28 "r03" + Name 31 "g_tTex1di4" + Name 40 "r05" + Name 44 "g_tTex1du4" + Name 53 "r21" + Name 56 "g_tTex2df4" + Name 73 "r23" + Name 76 "g_tTex2di4" + Name 87 "r25" + Name 90 "g_tTex2du4" + Name 102 "PS_OUTPUT" + MemberName 102(PS_OUTPUT) 0 "Color" + MemberName 102(PS_OUTPUT) 1 "Depth" + Name 104 "psout" + Name 113 "Color" + Name 117 "Depth" + Name 123 "g_tTex3df4" + Name 126 "g_tTex3di4" + Name 129 "g_tTex3du4" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 76(g_tTex2di4) DescriptorSet 0 + Decorate 90(g_tTex2du4) DescriptorSet 0 + Decorate 113(Color) Location 0 + Decorate 117(Depth) BuiltIn FragDepth + Decorate 123(g_tTex3df4) DescriptorSet 0 + Decorate 126(g_tTex3di4) DescriptorSet 0 + Decorate 129(g_tTex3du4) DescriptorSet 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeVector 6(float) 2 + 24: TypeInt 32 1 + 25: 24(int) Constant 2 + 29: TypeImage 24(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 24(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 68: TypeVector 24(int) 2 + 69: 24(int) Constant 3 + 70: 68(ivec2) ConstantComposite 25 69 + 74: TypeImage 24(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2di4): 75(ptr) Variable UniformConstant + 79: TypeImage 24(int) 2D depth sampled format:Unknown + 80: TypeSampledImage 79 + 88: TypeImage 41(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2du4): 89(ptr) Variable UniformConstant + 93: TypeImage 41(int) 2D depth sampled format:Unknown + 94: TypeSampledImage 93 + 101: TypeVector 6(float) 4 + 102(PS_OUTPUT): TypeStruct 101(fvec4) 6(float) + 103: TypePointer Function 102(PS_OUTPUT) + 105: 24(int) Constant 0 + 106: 6(float) Constant 1065353216 + 107: 101(fvec4) ConstantComposite 106 106 106 106 + 108: TypePointer Function 101(fvec4) + 110: 24(int) Constant 1 + 112: TypePointer Output 101(fvec4) + 113(Color): 112(ptr) Variable Output + 116: TypePointer Output 6(float) + 117(Depth): 116(ptr) Variable Output + 121: TypeImage 6(float) 3D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex3df4): 122(ptr) Variable UniformConstant + 124: TypeImage 24(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3di4): 125(ptr) Variable UniformConstant + 127: TypeImage 41(int) 3D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex3du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 24(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 41(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 24(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 41(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 24(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 41(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 24(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 41(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r01): 7(ptr) Variable Function + 28(r03): 7(ptr) Variable Function + 40(r05): 7(ptr) Variable Function + 53(r21): 7(ptr) Variable Function + 73(r23): 7(ptr) Variable Function + 87(r25): 7(ptr) Variable Function + 104(psout): 103(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 23: 22(fvec2) CompositeConstruct 20 21 + 26: 6(float) CompositeExtract 23 1 + 27: 6(float) ImageSampleDrefImplicitLod 19 23 26 ConstOffset 25 + Store 8(r01) 27 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefImplicitLod 36 37 38 ConstOffset 25 + Store 28(r03) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefImplicitLod 49 50 51 ConstOffset 25 + Store 40(r05) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 71: 6(float) CompositeExtract 67 2 + 72: 6(float) ImageSampleDrefImplicitLod 61 67 71 ConstOffset 70 + Store 53(r21) 72 + 77: 74 Load 76(g_tTex2di4) + 78: 13 Load 15(g_sSamp) + 81: 80 SampledImage 77 78 + 82: 6(float) CompositeExtract 63 0 + 83: 6(float) CompositeExtract 63 1 + 84: 64(fvec3) CompositeConstruct 82 83 21 + 85: 6(float) CompositeExtract 84 2 + 86: 6(float) ImageSampleDrefImplicitLod 81 84 85 ConstOffset 70 + Store 73(r23) 86 + 91: 88 Load 90(g_tTex2du4) + 92: 13 Load 15(g_sSamp) + 95: 94 SampledImage 91 92 + 96: 6(float) CompositeExtract 63 0 + 97: 6(float) CompositeExtract 63 1 + 98: 64(fvec3) CompositeConstruct 96 97 21 + 99: 6(float) CompositeExtract 98 2 + 100: 6(float) ImageSampleDrefImplicitLod 95 98 99 ConstOffset 70 + Store 87(r25) 100 + 109: 108(ptr) AccessChain 104(psout) 105 + Store 109 107 + 111: 7(ptr) AccessChain 104(psout) 110 + Store 111 106 + 114: 108(ptr) AccessChain 104(psout) 105 + 115: 101(fvec4) Load 114 + Store 113(Color) 115 + 118: 7(ptr) AccessChain 104(psout) 110 + 119: 6(float) Load 118 + Store 117(Depth) 119 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..013a645c49 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -0,0 +1,583 @@ +hlsl.samplecmp.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 Sequence +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 Sequence +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 177 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 124 128 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r11" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 33 "r13" + Name 36 "g_tTex1di4a" + Name 47 "r15" + Name 51 "g_tTex1du4a" + Name 62 "r31" + Name 65 "g_tTex2df4a" + Name 83 "r33" + Name 86 "g_tTex2di4a" + Name 98 "r35" + Name 101 "g_tTex2du4a" + Name 113 "PS_OUTPUT" + MemberName 113(PS_OUTPUT) 0 "Color" + MemberName 113(PS_OUTPUT) 1 "Depth" + Name 115 "psout" + Name 124 "Color" + Name 128 "Depth" + Name 134 "g_tTex1df4" + Name 137 "g_tTex1di4" + Name 140 "g_tTex1du4" + Name 143 "g_tTex2df4" + Name 146 "g_tTex2di4" + Name 149 "g_tTex2du4" + Name 152 "g_tTex3df4" + Name 155 "g_tTex3di4" + Name 158 "g_tTex3du4" + Name 161 "g_tTexcdf4" + Name 164 "g_tTexcdi4" + Name 167 "g_tTexcdu4" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 86(g_tTex2di4a) DescriptorSet 0 + Decorate 101(g_tTex2du4a) DescriptorSet 0 + Decorate 124(Color) Location 0 + Decorate 128(Depth) BuiltIn FragDepth + Decorate 134(g_tTex1df4) DescriptorSet 0 + Decorate 134(g_tTex1df4) Binding 0 + Decorate 137(g_tTex1di4) DescriptorSet 0 + Decorate 140(g_tTex1du4) DescriptorSet 0 + Decorate 143(g_tTex2df4) DescriptorSet 0 + Decorate 146(g_tTex2di4) DescriptorSet 0 + Decorate 149(g_tTex2du4) DescriptorSet 0 + Decorate 152(g_tTex3df4) DescriptorSet 0 + Decorate 155(g_tTex3di4) DescriptorSet 0 + Decorate 158(g_tTex3du4) DescriptorSet 0 + Decorate 161(g_tTexcdf4) DescriptorSet 0 + Decorate 164(g_tTexcdi4) DescriptorSet 0 + Decorate 167(g_tTexcdu4) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 25: TypeVector 6(float) 3 + 29: TypeInt 32 1 + 30: 29(int) Constant 2 + 34: TypeImage 29(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 29(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 78: TypeVector 29(int) 2 + 79: 29(int) Constant 3 + 80: 78(ivec2) ConstantComposite 30 79 + 84: TypeImage 29(int) 2D array sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2di4a): 85(ptr) Variable UniformConstant + 89: TypeImage 29(int) 2D depth array sampled format:Unknown + 90: TypeSampledImage 89 + 99: TypeImage 48(int) 2D array sampled format:Unknown + 100: TypePointer UniformConstant 99 +101(g_tTex2du4a): 100(ptr) Variable UniformConstant + 104: TypeImage 48(int) 2D depth array sampled format:Unknown + 105: TypeSampledImage 104 + 113(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 114: TypePointer Function 113(PS_OUTPUT) + 116: 29(int) Constant 0 + 117: 6(float) Constant 1065353216 + 118: 73(fvec4) ConstantComposite 117 117 117 117 + 119: TypePointer Function 73(fvec4) + 121: 29(int) Constant 1 + 123: TypePointer Output 73(fvec4) + 124(Color): 123(ptr) Variable Output + 127: TypePointer Output 6(float) + 128(Depth): 127(ptr) Variable Output + 132: TypeImage 6(float) 1D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex1df4): 133(ptr) Variable UniformConstant + 135: TypeImage 29(int) 1D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex1di4): 136(ptr) Variable UniformConstant + 138: TypeImage 48(int) 1D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex1du4): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) 2D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex2df4): 142(ptr) Variable UniformConstant + 144: TypeImage 29(int) 2D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex2di4): 145(ptr) Variable UniformConstant + 147: TypeImage 48(int) 2D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex2du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 3D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex3df4): 151(ptr) Variable UniformConstant + 153: TypeImage 29(int) 3D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex3di4): 154(ptr) Variable UniformConstant + 156: TypeImage 48(int) 3D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex3du4): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) Cube sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTexcdf4): 160(ptr) Variable UniformConstant + 162: TypeImage 29(int) Cube sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTexcdi4): 163(ptr) Variable UniformConstant + 165: TypeImage 48(int) Cube sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTexcdu4): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 29(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 48(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r11): 7(ptr) Variable Function + 33(r13): 7(ptr) Variable Function + 47(r15): 7(ptr) Variable Function + 62(r31): 7(ptr) Variable Function + 83(r33): 7(ptr) Variable Function + 98(r35): 7(ptr) Variable Function + 115(psout): 114(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 31: 6(float) CompositeExtract 28 2 + 32: 6(float) ImageSampleDrefImplicitLod 19 28 31 ConstOffset 30 + Store 8(r11) 32 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefImplicitLod 41 44 45 ConstOffset 30 + Store 33(r13) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefImplicitLod 56 59 60 ConstOffset 30 + Store 47(r15) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 81: 6(float) CompositeExtract 77 3 + 82: 6(float) ImageSampleDrefImplicitLod 70 77 81 ConstOffset 80 + Store 62(r31) 82 + 87: 84 Load 86(g_tTex2di4a) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 72 0 + 93: 6(float) CompositeExtract 72 1 + 94: 6(float) CompositeExtract 72 2 + 95: 73(fvec4) CompositeConstruct 92 93 94 24 + 96: 6(float) CompositeExtract 95 3 + 97: 6(float) ImageSampleDrefImplicitLod 91 95 96 ConstOffset 80 + Store 83(r33) 97 + 102: 99 Load 101(g_tTex2du4a) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 107: 6(float) CompositeExtract 72 0 + 108: 6(float) CompositeExtract 72 1 + 109: 6(float) CompositeExtract 72 2 + 110: 73(fvec4) CompositeConstruct 107 108 109 24 + 111: 6(float) CompositeExtract 110 3 + 112: 6(float) ImageSampleDrefImplicitLod 106 110 111 ConstOffset 80 + Store 98(r35) 112 + 120: 119(ptr) AccessChain 115(psout) 116 + Store 120 118 + 122: 7(ptr) AccessChain 115(psout) 121 + Store 122 117 + 125: 119(ptr) AccessChain 115(psout) 116 + 126: 73(fvec4) Load 125 + Store 124(Color) 126 + 129: 7(ptr) AccessChain 115(psout) 121 + 130: 6(float) Load 129 + Store 128(Depth) 130 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out new file mode 100644 index 0000000000..29e02cd908 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -0,0 +1,720 @@ +hlsl.samplecmplevelzero.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 textureCubeArray) +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 itextureCubeArray) +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 utextureCubeArray) +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 Sequence +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 textureCubeArray) +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 itextureCubeArray) +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 utextureCubeArray) +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 Sequence +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 212 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 168 172 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 32 "r12" + Name 36 "g_tTex1di4a" + Name 47 "r14" + Name 51 "g_tTex1du4a" + Name 62 "r30" + Name 65 "g_tTex2df4a" + Name 80 "r32" + Name 83 "g_tTex2di4a" + Name 95 "r34" + Name 98 "g_tTex2du4a" + Name 110 "r60" + Name 113 "g_tTexcdf4a" + Name 127 "r62" + Name 130 "g_tTexcdi4a" + Name 142 "r64" + Name 145 "g_tTexcdu4a" + Name 157 "PS_OUTPUT" + MemberName 157(PS_OUTPUT) 0 "Color" + MemberName 157(PS_OUTPUT) 1 "Depth" + Name 159 "psout" + Name 168 "Color" + Name 172 "Depth" + Name 178 "g_tTex1df4" + Name 181 "g_tTex1di4" + Name 184 "g_tTex1du4" + Name 187 "g_tTex2df4" + Name 190 "g_tTex2di4" + Name 193 "g_tTex2du4" + Name 196 "g_tTex3df4" + Name 199 "g_tTex3di4" + Name 202 "g_tTex3du4" + Name 205 "g_tTexcdf4" + Name 208 "g_tTexcdi4" + Name 211 "g_tTexcdu4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 83(g_tTex2di4a) DescriptorSet 0 + Decorate 98(g_tTex2du4a) DescriptorSet 0 + Decorate 113(g_tTexcdf4a) DescriptorSet 0 + Decorate 130(g_tTexcdi4a) DescriptorSet 0 + Decorate 145(g_tTexcdu4a) DescriptorSet 0 + Decorate 168(Color) Location 0 + Decorate 172(Depth) BuiltIn FragDepth + Decorate 178(g_tTex1df4) DescriptorSet 0 + Decorate 178(g_tTex1df4) Binding 0 + Decorate 181(g_tTex1di4) DescriptorSet 0 + Decorate 184(g_tTex1du4) DescriptorSet 0 + Decorate 187(g_tTex2df4) DescriptorSet 0 + Decorate 190(g_tTex2di4) DescriptorSet 0 + Decorate 193(g_tTex2du4) DescriptorSet 0 + Decorate 196(g_tTex3df4) DescriptorSet 0 + Decorate 199(g_tTex3di4) DescriptorSet 0 + Decorate 202(g_tTex3du4) DescriptorSet 0 + Decorate 205(g_tTexcdf4) DescriptorSet 0 + Decorate 208(g_tTexcdi4) DescriptorSet 0 + Decorate 211(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 33: TypeInt 32 1 + 34: TypeImage 33(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 33(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 81: TypeImage 33(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2di4a): 82(ptr) Variable UniformConstant + 86: TypeImage 33(int) 2D depth array sampled format:Unknown + 87: TypeSampledImage 86 + 96: TypeImage 48(int) 2D array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex2du4a): 97(ptr) Variable UniformConstant + 101: TypeImage 48(int) 2D depth array sampled format:Unknown + 102: TypeSampledImage 101 + 111: TypeImage 6(float) Cube array sampled format:Unknown + 112: TypePointer UniformConstant 111 +113(g_tTexcdf4a): 112(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube depth array sampled format:Unknown + 117: TypeSampledImage 116 + 119: 6(float) Constant 1053609165 + 120: 73(fvec4) ConstantComposite 21 22 71 119 + 128: TypeImage 33(int) Cube array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTexcdi4a): 129(ptr) Variable UniformConstant + 133: TypeImage 33(int) Cube depth array sampled format:Unknown + 134: TypeSampledImage 133 + 143: TypeImage 48(int) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdu4a): 144(ptr) Variable UniformConstant + 148: TypeImage 48(int) Cube depth array sampled format:Unknown + 149: TypeSampledImage 148 + 157(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 158: TypePointer Function 157(PS_OUTPUT) + 160: 33(int) Constant 0 + 161: 6(float) Constant 1065353216 + 162: 73(fvec4) ConstantComposite 161 161 161 161 + 163: TypePointer Function 73(fvec4) + 165: 33(int) Constant 1 + 167: TypePointer Output 73(fvec4) + 168(Color): 167(ptr) Variable Output + 171: TypePointer Output 6(float) + 172(Depth): 171(ptr) Variable Output + 176: TypeImage 6(float) 1D sampled format:Unknown + 177: TypePointer UniformConstant 176 + 178(g_tTex1df4): 177(ptr) Variable UniformConstant + 179: TypeImage 33(int) 1D sampled format:Unknown + 180: TypePointer UniformConstant 179 + 181(g_tTex1di4): 180(ptr) Variable UniformConstant + 182: TypeImage 48(int) 1D sampled format:Unknown + 183: TypePointer UniformConstant 182 + 184(g_tTex1du4): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) 2D sampled format:Unknown + 186: TypePointer UniformConstant 185 + 187(g_tTex2df4): 186(ptr) Variable UniformConstant + 188: TypeImage 33(int) 2D sampled format:Unknown + 189: TypePointer UniformConstant 188 + 190(g_tTex2di4): 189(ptr) Variable UniformConstant + 191: TypeImage 48(int) 2D sampled format:Unknown + 192: TypePointer UniformConstant 191 + 193(g_tTex2du4): 192(ptr) Variable UniformConstant + 194: TypeImage 6(float) 3D sampled format:Unknown + 195: TypePointer UniformConstant 194 + 196(g_tTex3df4): 195(ptr) Variable UniformConstant + 197: TypeImage 33(int) 3D sampled format:Unknown + 198: TypePointer UniformConstant 197 + 199(g_tTex3di4): 198(ptr) Variable UniformConstant + 200: TypeImage 48(int) 3D sampled format:Unknown + 201: TypePointer UniformConstant 200 + 202(g_tTex3du4): 201(ptr) Variable UniformConstant + 203: TypeImage 6(float) Cube sampled format:Unknown + 204: TypePointer UniformConstant 203 + 205(g_tTexcdf4): 204(ptr) Variable UniformConstant + 206: TypeImage 33(int) Cube sampled format:Unknown + 207: TypePointer UniformConstant 206 + 208(g_tTexcdi4): 207(ptr) Variable UniformConstant + 209: TypeImage 48(int) Cube sampled format:Unknown + 210: TypePointer UniformConstant 209 + 211(g_tTexcdu4): 210(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r10): 7(ptr) Variable Function + 32(r12): 7(ptr) Variable Function + 47(r14): 7(ptr) Variable Function + 62(r30): 7(ptr) Variable Function + 80(r32): 7(ptr) Variable Function + 95(r34): 7(ptr) Variable Function + 110(r60): 7(ptr) Variable Function + 127(r62): 7(ptr) Variable Function + 142(r64): 7(ptr) Variable Function + 159(psout): 158(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 30: 6(float) CompositeExtract 28 2 + 31: 6(float) ImageSampleDrefExplicitLod 19 28 30 Lod 29 + Store 8(r10) 31 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefExplicitLod 41 44 45 Lod 29 + Store 32(r12) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefExplicitLod 56 59 60 Lod 29 + Store 47(r14) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 78: 6(float) CompositeExtract 77 3 + 79: 6(float) ImageSampleDrefExplicitLod 70 77 78 Lod 29 + Store 62(r30) 79 + 84: 81 Load 83(g_tTex2di4a) + 85: 13 Load 15(g_sSamp) + 88: 87 SampledImage 84 85 + 89: 6(float) CompositeExtract 72 0 + 90: 6(float) CompositeExtract 72 1 + 91: 6(float) CompositeExtract 72 2 + 92: 73(fvec4) CompositeConstruct 89 90 91 24 + 93: 6(float) CompositeExtract 92 3 + 94: 6(float) ImageSampleDrefExplicitLod 88 92 93 Lod 29 + Store 80(r32) 94 + 99: 96 Load 98(g_tTex2du4a) + 100: 13 Load 15(g_sSamp) + 103: 102 SampledImage 99 100 + 104: 6(float) CompositeExtract 72 0 + 105: 6(float) CompositeExtract 72 1 + 106: 6(float) CompositeExtract 72 2 + 107: 73(fvec4) CompositeConstruct 104 105 106 24 + 108: 6(float) CompositeExtract 107 3 + 109: 6(float) ImageSampleDrefExplicitLod 103 107 108 Lod 29 + Store 95(r34) 109 + 114: 111 Load 113(g_tTexcdf4a) + 115: 13 Load 15(g_sSamp) + 118: 117 SampledImage 114 115 + 121: 6(float) CompositeExtract 120 0 + 122: 6(float) CompositeExtract 120 1 + 123: 6(float) CompositeExtract 120 2 + 124: 6(float) CompositeExtract 120 3 + 125: 73(fvec4) CompositeConstruct 121 122 123 124 + 126: 6(float) ImageSampleDrefExplicitLod 118 125 24 Lod 24 + Store 110(r60) 126 + 131: 128 Load 130(g_tTexcdi4a) + 132: 13 Load 15(g_sSamp) + 135: 134 SampledImage 131 132 + 136: 6(float) CompositeExtract 120 0 + 137: 6(float) CompositeExtract 120 1 + 138: 6(float) CompositeExtract 120 2 + 139: 6(float) CompositeExtract 120 3 + 140: 73(fvec4) CompositeConstruct 136 137 138 139 + 141: 6(float) ImageSampleDrefExplicitLod 135 140 24 Lod 24 + Store 127(r62) 141 + 146: 143 Load 145(g_tTexcdu4a) + 147: 13 Load 15(g_sSamp) + 150: 149 SampledImage 146 147 + 151: 6(float) CompositeExtract 120 0 + 152: 6(float) CompositeExtract 120 1 + 153: 6(float) CompositeExtract 120 2 + 154: 6(float) CompositeExtract 120 3 + 155: 73(fvec4) CompositeConstruct 151 152 153 154 + 156: 6(float) ImageSampleDrefExplicitLod 150 155 24 Lod 24 + Store 142(r64) 156 + 164: 163(ptr) AccessChain 159(psout) 160 + Store 164 162 + 166: 7(ptr) AccessChain 159(psout) 165 + Store 166 161 + 169: 163(ptr) AccessChain 159(psout) 160 + 170: 73(fvec4) Load 169 + Store 168(Color) 170 + 173: 7(ptr) AccessChain 159(psout) 165 + 174: 6(float) Load 173 + Store 172(Depth) 174 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out new file mode 100644 index 0000000000..de8227649a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -0,0 +1,691 @@ +hlsl.samplecmplevelzero.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 textureCube) +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 itextureCube) +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 utextureCube) +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 Sequence +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 1 (const int) +0:60 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 textureCube) +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 itextureCube) +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 utextureCube) +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 Sequence +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:60 Constant: +0:60 1 (const int) +0:60 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 201 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 157 161 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 27 "r02" + Name 31 "g_tTex1di4" + Name 40 "r04" + Name 44 "g_tTex1du4" + Name 53 "r20" + Name 56 "g_tTex2df4" + Name 70 "r22" + Name 73 "g_tTex2di4" + Name 84 "r24" + Name 87 "g_tTex2du4" + Name 98 "r50" + Name 101 "g_tTexcdf4" + Name 116 "r52" + Name 119 "g_tTexcdi4" + Name 131 "r54" + Name 134 "g_tTexcdu4" + Name 146 "PS_OUTPUT" + MemberName 146(PS_OUTPUT) 0 "Color" + MemberName 146(PS_OUTPUT) 1 "Depth" + Name 148 "psout" + Name 157 "Color" + Name 161 "Depth" + Name 167 "g_tTex3df4" + Name 170 "g_tTex3di4" + Name 173 "g_tTex3du4" + Name 176 "g_tTex1df4a" + Name 179 "g_tTex1di4a" + Name 182 "g_tTex1du4a" + Name 185 "g_tTex2df4a" + Name 188 "g_tTex2di4a" + Name 191 "g_tTex2du4a" + Name 194 "g_tTexcdf4a" + Name 197 "g_tTexcdi4a" + Name 200 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 87(g_tTex2du4) DescriptorSet 0 + Decorate 101(g_tTexcdf4) DescriptorSet 0 + Decorate 119(g_tTexcdi4) DescriptorSet 0 + Decorate 134(g_tTexcdu4) DescriptorSet 0 + Decorate 157(Color) Location 0 + Decorate 161(Depth) BuiltIn FragDepth + Decorate 167(g_tTex3df4) DescriptorSet 0 + Decorate 170(g_tTex3di4) DescriptorSet 0 + Decorate 173(g_tTex3du4) DescriptorSet 0 + Decorate 176(g_tTex1df4a) DescriptorSet 0 + Decorate 179(g_tTex1di4a) DescriptorSet 0 + Decorate 182(g_tTex1du4a) DescriptorSet 0 + Decorate 185(g_tTex2df4a) DescriptorSet 0 + Decorate 188(g_tTex2di4a) DescriptorSet 0 + Decorate 191(g_tTex2du4a) DescriptorSet 0 + Decorate 194(g_tTexcdf4a) DescriptorSet 0 + Decorate 197(g_tTexcdi4a) DescriptorSet 0 + Decorate 200(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 28: TypeInt 32 1 + 29: TypeImage 28(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 28(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 71: TypeImage 28(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeImage 28(int) 2D depth sampled format:Unknown + 77: TypeSampledImage 76 + 85: TypeImage 41(int) 2D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2du4): 86(ptr) Variable UniformConstant + 90: TypeImage 41(int) 2D depth sampled format:Unknown + 91: TypeSampledImage 90 + 99: TypeImage 6(float) Cube sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdf4): 100(ptr) Variable UniformConstant + 104: TypeImage 6(float) Cube depth sampled format:Unknown + 105: TypeSampledImage 104 + 107: 6(float) Constant 1050253722 + 108: 64(fvec3) ConstantComposite 20 62 107 + 109: TypeVector 6(float) 4 + 117: TypeImage 28(int) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdi4): 118(ptr) Variable UniformConstant + 122: TypeImage 28(int) Cube depth sampled format:Unknown + 123: TypeSampledImage 122 + 132: TypeImage 41(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdu4): 133(ptr) Variable UniformConstant + 137: TypeImage 41(int) Cube depth sampled format:Unknown + 138: TypeSampledImage 137 + 146(PS_OUTPUT): TypeStruct 109(fvec4) 6(float) + 147: TypePointer Function 146(PS_OUTPUT) + 149: 28(int) Constant 0 + 150: 6(float) Constant 1065353216 + 151: 109(fvec4) ConstantComposite 150 150 150 150 + 152: TypePointer Function 109(fvec4) + 154: 28(int) Constant 1 + 156: TypePointer Output 109(fvec4) + 157(Color): 156(ptr) Variable Output + 160: TypePointer Output 6(float) + 161(Depth): 160(ptr) Variable Output + 165: TypeImage 6(float) 3D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex3df4): 166(ptr) Variable UniformConstant + 168: TypeImage 28(int) 3D sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTex3di4): 169(ptr) Variable UniformConstant + 171: TypeImage 41(int) 3D sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTex3du4): 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 28(int) 1D array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(g_tTex1di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 41(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 28(int) 2D array sampled format:Unknown + 187: TypePointer UniformConstant 186 +188(g_tTex2di4a): 187(ptr) Variable UniformConstant + 189: TypeImage 41(int) 2D array sampled format:Unknown + 190: TypePointer UniformConstant 189 +191(g_tTex2du4a): 190(ptr) Variable UniformConstant + 192: TypeImage 6(float) Cube array sampled format:Unknown + 193: TypePointer UniformConstant 192 +194(g_tTexcdf4a): 193(ptr) Variable UniformConstant + 195: TypeImage 28(int) Cube array sampled format:Unknown + 196: TypePointer UniformConstant 195 +197(g_tTexcdi4a): 196(ptr) Variable UniformConstant + 198: TypeImage 41(int) Cube array sampled format:Unknown + 199: TypePointer UniformConstant 198 +200(g_tTexcdu4a): 199(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 27(r02): 7(ptr) Variable Function + 40(r04): 7(ptr) Variable Function + 53(r20): 7(ptr) Variable Function + 70(r22): 7(ptr) Variable Function + 84(r24): 7(ptr) Variable Function + 98(r50): 7(ptr) Variable Function + 116(r52): 7(ptr) Variable Function + 131(r54): 7(ptr) Variable Function + 148(psout): 147(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 23: 22(fvec2) CompositeConstruct 20 21 + 25: 6(float) CompositeExtract 23 1 + 26: 6(float) ImageSampleDrefExplicitLod 19 23 25 Lod 24 + Store 8(r00) 26 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefExplicitLod 36 37 38 Lod 24 + Store 27(r02) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefExplicitLod 49 50 51 Lod 24 + Store 40(r04) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 68: 6(float) CompositeExtract 67 2 + 69: 6(float) ImageSampleDrefExplicitLod 61 67 68 Lod 24 + Store 53(r20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 13 Load 15(g_sSamp) + 78: 77 SampledImage 74 75 + 79: 6(float) CompositeExtract 63 0 + 80: 6(float) CompositeExtract 63 1 + 81: 64(fvec3) CompositeConstruct 79 80 21 + 82: 6(float) CompositeExtract 81 2 + 83: 6(float) ImageSampleDrefExplicitLod 78 81 82 Lod 24 + Store 70(r22) 83 + 88: 85 Load 87(g_tTex2du4) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 63 0 + 94: 6(float) CompositeExtract 63 1 + 95: 64(fvec3) CompositeConstruct 93 94 21 + 96: 6(float) CompositeExtract 95 2 + 97: 6(float) ImageSampleDrefExplicitLod 92 95 96 Lod 24 + Store 84(r24) 97 + 102: 99 Load 101(g_tTexcdf4) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 110: 6(float) CompositeExtract 108 0 + 111: 6(float) CompositeExtract 108 1 + 112: 6(float) CompositeExtract 108 2 + 113: 109(fvec4) CompositeConstruct 110 111 112 21 + 114: 6(float) CompositeExtract 113 3 + 115: 6(float) ImageSampleDrefExplicitLod 106 113 114 Lod 24 + Store 98(r50) 115 + 120: 117 Load 119(g_tTexcdi4) + 121: 13 Load 15(g_sSamp) + 124: 123 SampledImage 120 121 + 125: 6(float) CompositeExtract 108 0 + 126: 6(float) CompositeExtract 108 1 + 127: 6(float) CompositeExtract 108 2 + 128: 109(fvec4) CompositeConstruct 125 126 127 21 + 129: 6(float) CompositeExtract 128 3 + 130: 6(float) ImageSampleDrefExplicitLod 124 128 129 Lod 24 + Store 116(r52) 130 + 135: 132 Load 134(g_tTexcdu4) + 136: 13 Load 15(g_sSamp) + 139: 138 SampledImage 135 136 + 140: 6(float) CompositeExtract 108 0 + 141: 6(float) CompositeExtract 108 1 + 142: 6(float) CompositeExtract 108 2 + 143: 109(fvec4) CompositeConstruct 140 141 142 21 + 144: 6(float) CompositeExtract 143 3 + 145: 6(float) ImageSampleDrefExplicitLod 139 143 144 Lod 24 + Store 131(r54) 145 + 153: 152(ptr) AccessChain 148(psout) 149 + Store 153 151 + 155: 7(ptr) AccessChain 148(psout) 154 + Store 155 150 + 158: 152(ptr) AccessChain 148(psout) 149 + 159: 109(fvec4) Load 158 + Store 157(Color) 159 + 162: 7(ptr) AccessChain 148(psout) 154 + 163: 6(float) Load 162 + Store 161(Depth) 163 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out new file mode 100644 index 0000000000..216ed41917 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -0,0 +1,585 @@ +hlsl.samplecmplevelzero.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 Sequence +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:65 Constant: +0:65 1 (const int) +0:65 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1D) +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 itexture1D) +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 utexture1D) +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 texture2D) +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 itexture2D) +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 utexture2D) +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 Sequence +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:65 Constant: +0:65 1 (const int) +0:65 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 167 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 114 118 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r01" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 29 "r03" + Name 32 "g_tTex1di4" + Name 41 "r05" + Name 45 "g_tTex1du4" + Name 54 "r21" + Name 57 "g_tTex2df4" + Name 74 "r23" + Name 77 "g_tTex2di4" + Name 88 "r25" + Name 91 "g_tTex2du4" + Name 103 "PS_OUTPUT" + MemberName 103(PS_OUTPUT) 0 "Color" + MemberName 103(PS_OUTPUT) 1 "Depth" + Name 105 "psout" + Name 114 "Color" + Name 118 "Depth" + Name 124 "g_tTex3df4" + Name 127 "g_tTex3di4" + Name 130 "g_tTex3du4" + Name 133 "g_tTexcdf4" + Name 136 "g_tTexcdi4" + Name 139 "g_tTexcdu4" + Name 142 "g_tTex1df4a" + Name 145 "g_tTex1di4a" + Name 148 "g_tTex1du4a" + Name 151 "g_tTex2df4a" + Name 154 "g_tTex2di4a" + Name 157 "g_tTex2du4a" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 77(g_tTex2di4) DescriptorSet 0 + Decorate 91(g_tTex2du4) DescriptorSet 0 + Decorate 114(Color) Location 0 + Decorate 118(Depth) BuiltIn FragDepth + Decorate 124(g_tTex3df4) DescriptorSet 0 + Decorate 127(g_tTex3di4) DescriptorSet 0 + Decorate 130(g_tTex3du4) DescriptorSet 0 + Decorate 133(g_tTexcdf4) DescriptorSet 0 + Decorate 136(g_tTexcdi4) DescriptorSet 0 + Decorate 139(g_tTexcdu4) DescriptorSet 0 + Decorate 142(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1di4a) DescriptorSet 0 + Decorate 148(g_tTex1du4a) DescriptorSet 0 + Decorate 151(g_tTex2df4a) DescriptorSet 0 + Decorate 154(g_tTex2di4a) DescriptorSet 0 + Decorate 157(g_tTex2du4a) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 30: TypeImage 25(int) 1D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeImage 25(int) 1D depth sampled format:Unknown + 36: TypeSampledImage 35 + 42: TypeInt 32 0 + 43: TypeImage 42(int) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeImage 42(int) 1D depth sampled format:Unknown + 49: TypeSampledImage 48 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeImage 6(float) 2D depth sampled format:Unknown + 61: TypeSampledImage 60 + 63: 6(float) Constant 1045220557 + 64: 22(fvec2) ConstantComposite 20 63 + 65: TypeVector 6(float) 3 + 69: TypeVector 25(int) 2 + 70: 25(int) Constant 3 + 71: 69(ivec2) ConstantComposite 26 70 + 75: TypeImage 25(int) 2D sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4): 76(ptr) Variable UniformConstant + 80: TypeImage 25(int) 2D depth sampled format:Unknown + 81: TypeSampledImage 80 + 89: TypeImage 42(int) 2D sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTex2du4): 90(ptr) Variable UniformConstant + 94: TypeImage 42(int) 2D depth sampled format:Unknown + 95: TypeSampledImage 94 + 102: TypeVector 6(float) 4 + 103(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) + 104: TypePointer Function 103(PS_OUTPUT) + 106: 25(int) Constant 0 + 107: 6(float) Constant 1065353216 + 108: 102(fvec4) ConstantComposite 107 107 107 107 + 109: TypePointer Function 102(fvec4) + 111: 25(int) Constant 1 + 113: TypePointer Output 102(fvec4) + 114(Color): 113(ptr) Variable Output + 117: TypePointer Output 6(float) + 118(Depth): 117(ptr) Variable Output + 122: TypeImage 6(float) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3df4): 123(ptr) Variable UniformConstant + 125: TypeImage 25(int) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3di4): 126(ptr) Variable UniformConstant + 128: TypeImage 42(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdf4): 132(ptr) Variable UniformConstant + 134: TypeImage 25(int) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdi4): 135(ptr) Variable UniformConstant + 137: TypeImage 42(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdu4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 1D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex1df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 25(int) 1D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex1di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 42(int) 1D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex1du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) 2D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex2df4a): 150(ptr) Variable UniformConstant + 152: TypeImage 25(int) 2D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex2di4a): 153(ptr) Variable UniformConstant + 155: TypeImage 42(int) 2D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex2du4a): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 25(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 42(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r01): 7(ptr) Variable Function + 29(r03): 7(ptr) Variable Function + 41(r05): 7(ptr) Variable Function + 54(r21): 7(ptr) Variable Function + 74(r23): 7(ptr) Variable Function + 88(r25): 7(ptr) Variable Function + 105(psout): 104(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 23: 22(fvec2) CompositeConstruct 20 21 + 27: 6(float) CompositeExtract 23 1 + 28: 6(float) ImageSampleDrefExplicitLod 19 23 27 Lod ConstOffset 24 26 + Store 8(r01) 28 + 33: 30 Load 32(g_tTex1di4) + 34: 13 Load 15(g_sSamp) + 37: 36 SampledImage 33 34 + 38: 22(fvec2) CompositeConstruct 20 21 + 39: 6(float) CompositeExtract 38 1 + 40: 6(float) ImageSampleDrefExplicitLod 37 38 39 Lod ConstOffset 24 26 + Store 29(r03) 40 + 46: 43 Load 45(g_tTex1du4) + 47: 13 Load 15(g_sSamp) + 50: 49 SampledImage 46 47 + 51: 22(fvec2) CompositeConstruct 20 21 + 52: 6(float) CompositeExtract 51 1 + 53: 6(float) ImageSampleDrefExplicitLod 50 51 52 Lod ConstOffset 24 26 + Store 41(r05) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 13 Load 15(g_sSamp) + 62: 61 SampledImage 58 59 + 66: 6(float) CompositeExtract 64 0 + 67: 6(float) CompositeExtract 64 1 + 68: 65(fvec3) CompositeConstruct 66 67 21 + 72: 6(float) CompositeExtract 68 2 + 73: 6(float) ImageSampleDrefExplicitLod 62 68 72 Lod ConstOffset 24 71 + Store 54(r21) 73 + 78: 75 Load 77(g_tTex2di4) + 79: 13 Load 15(g_sSamp) + 82: 81 SampledImage 78 79 + 83: 6(float) CompositeExtract 64 0 + 84: 6(float) CompositeExtract 64 1 + 85: 65(fvec3) CompositeConstruct 83 84 21 + 86: 6(float) CompositeExtract 85 2 + 87: 6(float) ImageSampleDrefExplicitLod 82 85 86 Lod ConstOffset 24 71 + Store 74(r23) 87 + 92: 89 Load 91(g_tTex2du4) + 93: 13 Load 15(g_sSamp) + 96: 95 SampledImage 92 93 + 97: 6(float) CompositeExtract 64 0 + 98: 6(float) CompositeExtract 64 1 + 99: 65(fvec3) CompositeConstruct 97 98 21 + 100: 6(float) CompositeExtract 99 2 + 101: 6(float) ImageSampleDrefExplicitLod 96 99 100 Lod ConstOffset 24 71 + Store 88(r25) 101 + 110: 109(ptr) AccessChain 105(psout) 106 + Store 110 108 + 112: 7(ptr) AccessChain 105(psout) 111 + Store 112 107 + 115: 109(ptr) AccessChain 105(psout) 106 + 116: 102(fvec4) Load 115 + Store 114(Color) 116 + 119: 7(ptr) AccessChain 105(psout) 111 + 120: 6(float) Load 119 + Store 118(Depth) 120 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..2e5f3cda46 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -0,0 +1,608 @@ +hlsl.samplecmplevelzero.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 Sequence +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 texture1DArray) +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 itexture1DArray) +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 utexture1DArray) +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 texture2DArray) +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 itexture2DArray) +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 utexture2DArray) +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 Sequence +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 178 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 125 129 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r11" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 34 "r13" + Name 37 "g_tTex1di4a" + Name 48 "r15" + Name 52 "g_tTex1du4a" + Name 63 "r31" + Name 66 "g_tTex2df4a" + Name 84 "r33" + Name 87 "g_tTex2di4a" + Name 99 "r35" + Name 102 "g_tTex2du4a" + Name 114 "PS_OUTPUT" + MemberName 114(PS_OUTPUT) 0 "Color" + MemberName 114(PS_OUTPUT) 1 "Depth" + Name 116 "psout" + Name 125 "Color" + Name 129 "Depth" + Name 135 "g_tTex1df4" + Name 138 "g_tTex1di4" + Name 141 "g_tTex1du4" + Name 144 "g_tTex2df4" + Name 147 "g_tTex2di4" + Name 150 "g_tTex2du4" + Name 153 "g_tTex3df4" + Name 156 "g_tTex3di4" + Name 159 "g_tTex3du4" + Name 162 "g_tTexcdf4" + Name 165 "g_tTexcdi4" + Name 168 "g_tTexcdu4" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 37(g_tTex1di4a) DescriptorSet 0 + Decorate 52(g_tTex1du4a) DescriptorSet 0 + Decorate 66(g_tTex2df4a) DescriptorSet 0 + Decorate 87(g_tTex2di4a) DescriptorSet 0 + Decorate 102(g_tTex2du4a) DescriptorSet 0 + Decorate 125(Color) Location 0 + Decorate 129(Depth) BuiltIn FragDepth + Decorate 135(g_tTex1df4) DescriptorSet 0 + Decorate 135(g_tTex1df4) Binding 0 + Decorate 138(g_tTex1di4) DescriptorSet 0 + Decorate 141(g_tTex1du4) DescriptorSet 0 + Decorate 144(g_tTex2df4) DescriptorSet 0 + Decorate 147(g_tTex2di4) DescriptorSet 0 + Decorate 150(g_tTex2du4) DescriptorSet 0 + Decorate 153(g_tTex3df4) DescriptorSet 0 + Decorate 156(g_tTex3di4) DescriptorSet 0 + Decorate 159(g_tTex3du4) DescriptorSet 0 + Decorate 162(g_tTexcdf4) DescriptorSet 0 + Decorate 165(g_tTexcdi4) DescriptorSet 0 + Decorate 168(g_tTexcdu4) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 30: TypeInt 32 1 + 31: 30(int) Constant 2 + 35: TypeImage 30(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1di4a): 36(ptr) Variable UniformConstant + 40: TypeImage 30(int) 1D depth array sampled format:Unknown + 41: TypeSampledImage 40 + 49: TypeInt 32 0 + 50: TypeImage 49(int) 1D array sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex1du4a): 51(ptr) Variable UniformConstant + 55: TypeImage 49(int) 1D depth array sampled format:Unknown + 56: TypeSampledImage 55 + 64: TypeImage 6(float) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2df4a): 65(ptr) Variable UniformConstant + 69: TypeImage 6(float) 2D depth array sampled format:Unknown + 70: TypeSampledImage 69 + 72: 6(float) Constant 1050253722 + 73: 25(fvec3) ConstantComposite 21 22 72 + 74: TypeVector 6(float) 4 + 79: TypeVector 30(int) 2 + 80: 30(int) Constant 3 + 81: 79(ivec2) ConstantComposite 31 80 + 85: TypeImage 30(int) 2D array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2di4a): 86(ptr) Variable UniformConstant + 90: TypeImage 30(int) 2D depth array sampled format:Unknown + 91: TypeSampledImage 90 + 100: TypeImage 49(int) 2D array sampled format:Unknown + 101: TypePointer UniformConstant 100 +102(g_tTex2du4a): 101(ptr) Variable UniformConstant + 105: TypeImage 49(int) 2D depth array sampled format:Unknown + 106: TypeSampledImage 105 + 114(PS_OUTPUT): TypeStruct 74(fvec4) 6(float) + 115: TypePointer Function 114(PS_OUTPUT) + 117: 30(int) Constant 0 + 118: 6(float) Constant 1065353216 + 119: 74(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 74(fvec4) + 122: 30(int) Constant 1 + 124: TypePointer Output 74(fvec4) + 125(Color): 124(ptr) Variable Output + 128: TypePointer Output 6(float) + 129(Depth): 128(ptr) Variable Output + 133: TypeImage 6(float) 1D sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTex1df4): 134(ptr) Variable UniformConstant + 136: TypeImage 30(int) 1D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex1di4): 137(ptr) Variable UniformConstant + 139: TypeImage 49(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 30(int) 2D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex2di4): 146(ptr) Variable UniformConstant + 148: TypeImage 49(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 30(int) 3D sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTex3di4): 155(ptr) Variable UniformConstant + 157: TypeImage 49(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 30(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdi4): 164(ptr) Variable UniformConstant + 166: TypeImage 49(int) Cube sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTexcdu4): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 30(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 49(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r11): 7(ptr) Variable Function + 34(r13): 7(ptr) Variable Function + 48(r15): 7(ptr) Variable Function + 63(r31): 7(ptr) Variable Function + 84(r33): 7(ptr) Variable Function + 99(r35): 7(ptr) Variable Function + 116(psout): 115(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 32: 6(float) CompositeExtract 28 2 + 33: 6(float) ImageSampleDrefExplicitLod 19 28 32 Lod ConstOffset 29 31 + Store 8(r11) 33 + 38: 35 Load 37(g_tTex1di4a) + 39: 13 Load 15(g_sSamp) + 42: 41 SampledImage 38 39 + 43: 6(float) CompositeExtract 23 0 + 44: 6(float) CompositeExtract 23 1 + 45: 25(fvec3) CompositeConstruct 43 44 24 + 46: 6(float) CompositeExtract 45 2 + 47: 6(float) ImageSampleDrefExplicitLod 42 45 46 Lod ConstOffset 29 31 + Store 34(r13) 47 + 53: 50 Load 52(g_tTex1du4a) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 58: 6(float) CompositeExtract 23 0 + 59: 6(float) CompositeExtract 23 1 + 60: 25(fvec3) CompositeConstruct 58 59 24 + 61: 6(float) CompositeExtract 60 2 + 62: 6(float) ImageSampleDrefExplicitLod 57 60 61 Lod ConstOffset 29 31 + Store 48(r15) 62 + 67: 64 Load 66(g_tTex2df4a) + 68: 13 Load 15(g_sSamp) + 71: 70 SampledImage 67 68 + 75: 6(float) CompositeExtract 73 0 + 76: 6(float) CompositeExtract 73 1 + 77: 6(float) CompositeExtract 73 2 + 78: 74(fvec4) CompositeConstruct 75 76 77 24 + 82: 6(float) CompositeExtract 78 3 + 83: 6(float) ImageSampleDrefExplicitLod 71 78 82 Lod ConstOffset 29 81 + Store 63(r31) 83 + 88: 85 Load 87(g_tTex2di4a) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 73 0 + 94: 6(float) CompositeExtract 73 1 + 95: 6(float) CompositeExtract 73 2 + 96: 74(fvec4) CompositeConstruct 93 94 95 24 + 97: 6(float) CompositeExtract 96 3 + 98: 6(float) ImageSampleDrefExplicitLod 92 96 97 Lod ConstOffset 29 81 + Store 84(r33) 98 + 103: 100 Load 102(g_tTex2du4a) + 104: 13 Load 15(g_sSamp) + 107: 106 SampledImage 103 104 + 108: 6(float) CompositeExtract 73 0 + 109: 6(float) CompositeExtract 73 1 + 110: 6(float) CompositeExtract 73 2 + 111: 74(fvec4) CompositeConstruct 108 109 110 24 + 112: 6(float) CompositeExtract 111 3 + 113: 6(float) ImageSampleDrefExplicitLod 107 111 112 Lod ConstOffset 29 81 + Store 99(r35) 113 + 121: 120(ptr) AccessChain 116(psout) 117 + Store 121 119 + 123: 7(ptr) AccessChain 116(psout) 122 + Store 123 118 + 126: 120(ptr) AccessChain 116(psout) 117 + 127: 74(fvec4) Load 126 + Store 125(Color) 127 + 130: 7(ptr) AccessChain 116(psout) 122 + 131: 6(float) Load 130 + Store 129(Depth) 131 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out new file mode 100644 index 0000000000..2a0d77a0c3 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -0,0 +1,616 @@ +hlsl.samplegrad.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 133 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 124 128 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 42 "txval12" + Name 45 "g_tTex1du4" + Name 51 "txval20" + Name 54 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 82 "txval40" + Name 85 "g_tTexcdf4" + Name 95 "txval41" + Name 98 "g_tTexcdi4" + Name 104 "txval42" + Name 107 "g_tTexcdu4" + Name 113 "PS_OUTPUT" + MemberName 113(PS_OUTPUT) 0 "Color" + MemberName 113(PS_OUTPUT) 1 "Depth" + Name 115 "psout" + Name 124 "Color" + Name 128 "Depth" + Name 132 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 85(g_tTexcdf4) DescriptorSet 0 + Decorate 98(g_tTexcdi4) DescriptorSet 0 + Decorate 107(g_tTexcdu4) DescriptorSet 0 + Decorate 124(Color) Location 0 + Decorate 128(Depth) BuiltIn FragDepth + Decorate 132(g_tTex1df4a) DescriptorSet 0 + Decorate 132(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1066192077 + 25: 6(float) Constant 1067030938 + 27: TypeInt 32 1 + 28: TypeVector 27(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 27(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 52: TypeImage 6(float) 2D array sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 59: TypeVector 6(float) 3 + 60: 6(float) Constant 1050253722 + 61: 59(fvec3) ConstantComposite 21 22 60 + 62: 20(fvec2) ConstantComposite 24 25 + 65: TypeImage 27(int) 2D array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 74: TypeImage 39(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 83: TypeImage 6(float) Cube array sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTexcdf4): 84(ptr) Variable UniformConstant + 88: TypeSampledImage 83 + 90: 6(float) Constant 1053609165 + 91: 7(fvec4) ConstantComposite 21 22 60 90 + 92: 6(float) Constant 1067869798 + 93: 59(fvec3) ConstantComposite 24 25 92 + 96: TypeImage 27(int) Cube array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTexcdi4): 97(ptr) Variable UniformConstant + 101: TypeSampledImage 96 + 105: TypeImage 39(int) Cube array sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTexcdu4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 113(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 114: TypePointer Function 113(PS_OUTPUT) + 116: 27(int) Constant 0 + 117: 6(float) Constant 1065353216 + 118: 7(fvec4) ConstantComposite 117 117 117 117 + 120: 27(int) Constant 1 + 121: TypePointer Function 6(float) + 123: TypePointer Output 7(fvec4) + 124(Color): 123(ptr) Variable Output + 127: TypePointer Output 6(float) + 128(Depth): 127(ptr) Variable Output +132(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 42(txval12): 41(ptr) Variable Function + 51(txval20): 8(ptr) Variable Function + 64(txval21): 29(ptr) Variable Function + 73(txval22): 41(ptr) Variable Function + 82(txval40): 8(ptr) Variable Function + 95(txval41): 29(ptr) Variable Function + 104(txval42): 41(ptr) Variable Function + 115(psout): 114(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageSampleExplicitLod 19 23 Grad 24 25 + Store 9(txval10) 26 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 38: 28(ivec4) ImageSampleExplicitLod 37 23 Grad 24 25 + Store 30(txval11) 38 + 46: 43 Load 45(g_tTex1du4) + 47: 14 Load 16(g_sSamp) + 49: 48 SampledImage 46 47 + 50: 40(ivec4) ImageSampleExplicitLod 49 23 Grad 24 25 + Store 42(txval12) 50 + 55: 52 Load 54(g_tTex2df4) + 56: 14 Load 16(g_sSamp) + 58: 57 SampledImage 55 56 + 63: 7(fvec4) ImageSampleExplicitLod 58 61 Grad 62 62 + Store 51(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 72: 28(ivec4) ImageSampleExplicitLod 71 61 Grad 62 62 + Store 64(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 81: 40(ivec4) ImageSampleExplicitLod 80 61 Grad 62 62 + Store 73(txval22) 81 + 86: 83 Load 85(g_tTexcdf4) + 87: 14 Load 16(g_sSamp) + 89: 88 SampledImage 86 87 + 94: 7(fvec4) ImageSampleExplicitLod 89 91 Grad 93 93 + Store 82(txval40) 94 + 99: 96 Load 98(g_tTexcdi4) + 100: 14 Load 16(g_sSamp) + 102: 101 SampledImage 99 100 + 103: 28(ivec4) ImageSampleExplicitLod 102 91 Grad 93 93 + Store 95(txval41) 103 + 108: 105 Load 107(g_tTexcdu4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 112: 40(ivec4) ImageSampleExplicitLod 111 91 Grad 93 93 + Store 104(txval42) 112 + 119: 8(ptr) AccessChain 115(psout) 116 + Store 119 118 + 122: 121(ptr) AccessChain 115(psout) 120 + Store 122 117 + 125: 8(ptr) AccessChain 115(psout) 116 + 126: 7(fvec4) Load 125 + Store 124(Color) 126 + 129: 121(ptr) AccessChain 115(psout) 120 + 130: 6(float) Load 129 + Store 128(Depth) 130 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out new file mode 100644 index 0000000000..feaba77021 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -0,0 +1,764 @@ +hlsl.samplegrad.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 1 (const int) +0:50 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:50 Constant: +0:50 1 (const int) +0:50 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 168 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 159 163 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 62 "txval21" + Name 65 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 85 "txval30" + Name 88 "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 148 "PS_OUTPUT" + MemberName 148(PS_OUTPUT) 0 "Color" + MemberName 148(PS_OUTPUT) 1 "Depth" + Name 150 "psout" + Name 159 "Color" + Name 163 "Depth" + Name 167 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 65(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 88(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 159(Color) Location 0 + Decorate 163(Depth) BuiltIn FragDepth + Decorate 167(g_tTex1df4a) DescriptorSet 0 + Decorate 167(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 24(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: 58(fvec2) ConstantComposite 21 22 + 63: TypeImage 24(int) 2D sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2di4): 64(ptr) Variable UniformConstant + 68: TypeSampledImage 63 + 70: 6(float) Constant 1053609165 + 71: 58(fvec2) ConstantComposite 48 70 + 74: TypeImage 37(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 81: 6(float) Constant 1056964608 + 82: 6(float) Constant 1058642330 + 83: 58(fvec2) ConstantComposite 81 82 + 86: TypeImage 6(float) 3D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex3df4): 87(ptr) Variable UniformConstant + 91: TypeSampledImage 86 + 93: TypeVector 6(float) 3 + 94: 93(fvec3) ConstantComposite 20 35 48 + 95: 6(float) Constant 1067869798 + 96: 93(fvec3) ConstantComposite 21 22 95 + 99: TypeImage 24(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 93(fvec3) ConstantComposite 70 81 82 + 109: TypeImage 37(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: 93(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 24(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 37(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 149: TypePointer Function 148(PS_OUTPUT) + 151: 24(int) Constant 0 + 152: 6(float) Constant 1065353216 + 153: 7(fvec4) ConstantComposite 152 152 152 152 + 155: 24(int) Constant 1 + 156: TypePointer Function 6(float) + 158: TypePointer Output 7(fvec4) + 159(Color): 158(ptr) Variable Output + 162: TypePointer Output 6(float) + 163(Depth): 162(ptr) Variable Output +167(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 62(txval21): 26(ptr) Variable Function + 73(txval22): 39(ptr) Variable Function + 85(txval30): 8(ptr) Variable Function + 98(txval31): 26(ptr) Variable Function + 108(txval32): 39(ptr) Variable Function + 121(txval40): 8(ptr) Variable Function + 130(txval41): 26(ptr) Variable Function + 139(txval42): 39(ptr) Variable Function + 150(psout): 149(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 + Store 9(txval10) 23 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 + Store 50(txval20) 61 + 66: 63 Load 65(g_tTex2di4) + 67: 14 Load 16(g_sSamp) + 69: 68 SampledImage 66 67 + 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 + Store 62(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 + Store 73(txval22) 84 + 89: 86 Load 88(g_tTex3df4) + 90: 14 Load 16(g_sSamp) + 92: 91 SampledImage 89 90 + 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 + Store 85(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 14 Load 16(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 14 Load 16(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 14 Load 16(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 + Store 139(txval42) 147 + 154: 8(ptr) AccessChain 150(psout) 151 + Store 154 153 + 157: 156(ptr) AccessChain 150(psout) 155 + Store 157 152 + 160: 8(ptr) AccessChain 150(psout) 151 + 161: 7(fvec4) Load 160 + Store 159(Color) 161 + 164: 156(ptr) AccessChain 150(psout) 155 + 165: 6(float) Load 164 + Store 163(Depth) 165 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out new file mode 100644 index 0000000000..f6d37c3be2 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -0,0 +1,721 @@ +hlsl.samplegrad.basic.dx10.vert +Shader version: 450 +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked vertex stage: + + +Shader version: 450 +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 161 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 156 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 62 "txval21" + Name 65 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 85 "txval30" + Name 88 "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 148 "VS_OUTPUT" + MemberName 148(VS_OUTPUT) 0 "Pos" + Name 150 "vsout" + Name 156 "Pos" + Name 160 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 65(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 88(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 156(Pos) BuiltIn Position + Decorate 160(g_tTex1df4a) DescriptorSet 0 + Decorate 160(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 24(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: 58(fvec2) ConstantComposite 21 22 + 63: TypeImage 24(int) 2D sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2di4): 64(ptr) Variable UniformConstant + 68: TypeSampledImage 63 + 70: 6(float) Constant 1053609165 + 71: 58(fvec2) ConstantComposite 48 70 + 74: TypeImage 37(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 81: 6(float) Constant 1056964608 + 82: 6(float) Constant 1058642330 + 83: 58(fvec2) ConstantComposite 81 82 + 86: TypeImage 6(float) 3D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex3df4): 87(ptr) Variable UniformConstant + 91: TypeSampledImage 86 + 93: TypeVector 6(float) 3 + 94: 93(fvec3) ConstantComposite 20 35 48 + 95: 6(float) Constant 1067869798 + 96: 93(fvec3) ConstantComposite 21 22 95 + 99: TypeImage 24(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 93(fvec3) ConstantComposite 70 81 82 + 109: TypeImage 37(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: 93(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 24(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 37(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148(VS_OUTPUT): TypeStruct 7(fvec4) + 149: TypePointer Function 148(VS_OUTPUT) + 151: 24(int) Constant 0 + 152: 6(float) Constant 0 + 153: 7(fvec4) ConstantComposite 152 152 152 152 + 155: TypePointer Output 7(fvec4) + 156(Pos): 155(ptr) Variable Output +160(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 62(txval21): 26(ptr) Variable Function + 73(txval22): 39(ptr) Variable Function + 85(txval30): 8(ptr) Variable Function + 98(txval31): 26(ptr) Variable Function + 108(txval32): 39(ptr) Variable Function + 121(txval40): 8(ptr) Variable Function + 130(txval41): 26(ptr) Variable Function + 139(txval42): 39(ptr) Variable Function + 150(vsout): 149(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 + Store 9(txval10) 23 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 + Store 50(txval20) 61 + 66: 63 Load 65(g_tTex2di4) + 67: 14 Load 16(g_sSamp) + 69: 68 SampledImage 66 67 + 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 + Store 62(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 + Store 73(txval22) 84 + 89: 86 Load 88(g_tTex3df4) + 90: 14 Load 16(g_sSamp) + 92: 91 SampledImage 89 90 + 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 + Store 85(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 14 Load 16(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 14 Load 16(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 14 Load 16(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 + Store 139(txval42) 147 + 154: 8(ptr) AccessChain 150(vsout) 151 + Store 154 153 + 157: 8(ptr) AccessChain 150(vsout) 151 + 158: 7(fvec4) Load 157 + Store 156(Pos) 158 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out new file mode 100644 index 0000000000..7938e52756 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -0,0 +1,689 @@ +hlsl.samplegrad.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 159 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 141 145 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 28 "txval11" + Name 31 "g_tTex1di4" + Name 41 "txval12" + Name 44 "g_tTex1du4" + Name 51 "txval20" + Name 54 "g_tTex2df4" + Name 66 "txval21" + Name 69 "g_tTex2di4" + Name 78 "txval22" + Name 81 "g_tTex2du4" + Name 92 "txval30" + Name 95 "g_tTex3df4" + Name 107 "txval31" + Name 110 "g_tTex3di4" + Name 118 "txval32" + Name 121 "g_tTex3du4" + Name 132 "PS_OUTPUT" + MemberName 132(PS_OUTPUT) 0 "Color" + MemberName 132(PS_OUTPUT) 1 "Depth" + Name 134 "psout" + Name 141 "Color" + Name 145 "Depth" + Name 149 "g_tTex1df4a" + Name 152 "g_tTexcdf4" + Name 155 "g_tTexcdi4" + Name 158 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 69(g_tTex2di4) DescriptorSet 0 + Decorate 81(g_tTex2du4) DescriptorSet 0 + Decorate 95(g_tTex3df4) DescriptorSet 0 + Decorate 110(g_tTex3di4) DescriptorSet 0 + Decorate 121(g_tTex3du4) DescriptorSet 0 + Decorate 141(Color) Location 0 + Decorate 145(Depth) BuiltIn FragDepth + Decorate 149(g_tTex1df4a) DescriptorSet 0 + Decorate 149(g_tTex1df4a) Binding 1 + Decorate 152(g_tTexcdf4) DescriptorSet 0 + Decorate 155(g_tTexcdi4) DescriptorSet 0 + Decorate 158(g_tTexcdu4) 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 sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 23: TypeInt 32 1 + 24: 23(int) Constant 1 + 26: TypeVector 23(int) 4 + 27: TypePointer Function 26(ivec4) + 29: TypeImage 23(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeSampledImage 29 + 36: 6(float) Constant 1045220557 + 38: TypeInt 32 0 + 39: TypeVector 38(int) 4 + 40: TypePointer Function 39(ivec4) + 42: TypeImage 38(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeSampledImage 42 + 49: 6(float) Constant 1050253722 + 52: TypeImage 6(float) 2D sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 59: TypeVector 6(float) 2 + 60: 59(fvec2) ConstantComposite 20 36 + 61: 59(fvec2) ConstantComposite 21 22 + 62: TypeVector 23(int) 2 + 63: 23(int) Constant 0 + 64: 62(ivec2) ConstantComposite 24 63 + 67: TypeImage 23(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: 59(fvec2) ConstantComposite 49 74 + 76: 62(ivec2) ConstantComposite 24 24 + 79: TypeImage 38(int) 2D sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex2du4): 80(ptr) Variable UniformConstant + 84: TypeSampledImage 79 + 86: 6(float) Constant 1056964608 + 87: 6(float) Constant 1058642330 + 88: 59(fvec2) ConstantComposite 86 87 + 89: 23(int) Constant 4294967295 + 90: 62(ivec2) ConstantComposite 24 89 + 93: TypeImage 6(float) 3D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex3df4): 94(ptr) Variable UniformConstant + 98: TypeSampledImage 93 + 100: TypeVector 6(float) 3 + 101: 100(fvec3) ConstantComposite 20 36 49 + 102: 6(float) Constant 1067869798 + 103: 100(fvec3) ConstantComposite 21 22 102 + 104: TypeVector 23(int) 3 + 105: 104(ivec3) ConstantComposite 24 63 24 + 108: TypeImage 23(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3di4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 100(fvec3) ConstantComposite 74 86 87 + 116: 104(ivec3) ConstantComposite 24 24 24 + 119: TypeImage 38(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: 100(fvec3) ConstantComposite 126 127 128 + 130: 104(ivec3) ConstantComposite 24 63 89 + 132(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 133: TypePointer Function 132(PS_OUTPUT) + 135: 6(float) Constant 1065353216 + 136: 7(fvec4) ConstantComposite 135 135 135 135 + 138: TypePointer Function 6(float) + 140: TypePointer Output 7(fvec4) + 141(Color): 140(ptr) Variable Output + 144: TypePointer Output 6(float) + 145(Depth): 144(ptr) Variable Output +149(g_tTex1df4a): 11(ptr) Variable UniformConstant + 150: TypeImage 6(float) Cube sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTexcdf4): 151(ptr) Variable UniformConstant + 153: TypeImage 23(int) Cube sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTexcdi4): 154(ptr) Variable UniformConstant + 156: TypeImage 38(int) Cube sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTexcdu4): 157(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 28(txval11): 27(ptr) Variable Function + 41(txval12): 40(ptr) Variable Function + 51(txval20): 8(ptr) Variable Function + 66(txval21): 27(ptr) Variable Function + 78(txval22): 40(ptr) Variable Function + 92(txval30): 8(ptr) Variable Function + 107(txval31): 27(ptr) Variable Function + 118(txval32): 40(ptr) Variable Function + 134(psout): 133(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleExplicitLod 19 20 Grad ConstOffset 21 22 24 + Store 9(txval10) 25 + 32: 29 Load 31(g_tTex1di4) + 33: 14 Load 16(g_sSamp) + 35: 34 SampledImage 32 33 + 37: 26(ivec4) ImageSampleExplicitLod 35 36 Grad ConstOffset 21 22 24 + Store 28(txval11) 37 + 45: 42 Load 44(g_tTex1du4) + 46: 14 Load 16(g_sSamp) + 48: 47 SampledImage 45 46 + 50: 39(ivec4) ImageSampleExplicitLod 48 49 Grad ConstOffset 21 22 24 + Store 41(txval12) 50 + 55: 52 Load 54(g_tTex2df4) + 56: 14 Load 16(g_sSamp) + 58: 57 SampledImage 55 56 + 65: 7(fvec4) ImageSampleExplicitLod 58 60 Grad ConstOffset 60 61 64 + Store 51(txval20) 65 + 70: 67 Load 69(g_tTex2di4) + 71: 14 Load 16(g_sSamp) + 73: 72 SampledImage 70 71 + 77: 26(ivec4) ImageSampleExplicitLod 73 75 Grad ConstOffset 60 61 76 + Store 66(txval21) 77 + 82: 79 Load 81(g_tTex2du4) + 83: 14 Load 16(g_sSamp) + 85: 84 SampledImage 82 83 + 91: 39(ivec4) ImageSampleExplicitLod 85 88 Grad ConstOffset 60 61 90 + Store 78(txval22) 91 + 96: 93 Load 95(g_tTex3df4) + 97: 14 Load 16(g_sSamp) + 99: 98 SampledImage 96 97 + 106: 7(fvec4) ImageSampleExplicitLod 99 101 Grad ConstOffset 103 103 105 + Store 92(txval30) 106 + 111: 108 Load 110(g_tTex3di4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 117: 26(ivec4) ImageSampleExplicitLod 114 115 Grad ConstOffset 103 103 116 + Store 107(txval31) 117 + 122: 119 Load 121(g_tTex3du4) + 123: 14 Load 16(g_sSamp) + 125: 124 SampledImage 122 123 + 131: 39(ivec4) ImageSampleExplicitLod 125 129 Grad ConstOffset 103 103 130 + Store 118(txval32) 131 + 137: 8(ptr) AccessChain 134(psout) 63 + Store 137 136 + 139: 138(ptr) AccessChain 134(psout) 24 + Store 139 135 + 142: 8(ptr) AccessChain 134(psout) 63 + 143: 7(fvec4) Load 142 + Store 141(Color) 143 + 146: 138(ptr) AccessChain 134(psout) 24 + 147: 6(float) Load 146 + Store 145(Depth) 147 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..dee78bc48a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -0,0 +1,500 @@ +hlsl.samplegrad.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:38 Color: direct index for structure (temp 4-component vector of float) +0:38 'psout' (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:? 'Depth' (out float FragDepth) +0:38 Depth: direct index for structure (temp float) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:38 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:38 Color: direct index for structure (temp 4-component vector of float) +0:38 'psout' (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:? 'Depth' (out float FragDepth) +0:38 Depth: direct index for structure (temp float) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:38 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 113 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 95 99 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 31 "txval11" + Name 34 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 52 "txval20" + Name 55 "g_tTex2df4" + Name 68 "txval21" + Name 71 "g_tTex2di4" + Name 77 "txval22" + Name 80 "g_tTex2du4" + Name 86 "PS_OUTPUT" + MemberName 86(PS_OUTPUT) 0 "Color" + MemberName 86(PS_OUTPUT) 1 "Depth" + Name 88 "psout" + Name 95 "Color" + Name 99 "Depth" + Name 103 "g_tTex1df4a" + Name 106 "g_tTexcdf4" + Name 109 "g_tTexcdi4" + Name 112 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 55(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 80(g_tTex2du4) DescriptorSet 0 + Decorate 95(Color) Location 0 + Decorate 99(Depth) BuiltIn FragDepth + Decorate 103(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) Binding 1 + Decorate 106(g_tTexcdf4) DescriptorSet 0 + Decorate 109(g_tTexcdi4) DescriptorSet 0 + Decorate 112(g_tTexcdu4) 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 array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1066192077 + 25: 6(float) Constant 1067030938 + 26: TypeInt 32 1 + 27: 26(int) Constant 1 + 29: TypeVector 26(int) 4 + 30: TypePointer Function 29(ivec4) + 32: TypeImage 26(int) 1D array sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 53: TypeImage 6(float) 2D array sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2df4): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 60: TypeVector 6(float) 3 + 61: 6(float) Constant 1050253722 + 62: 60(fvec3) ConstantComposite 21 22 61 + 63: 20(fvec2) ConstantComposite 24 25 + 64: TypeVector 26(int) 2 + 65: 26(int) Constant 0 + 66: 64(ivec2) ConstantComposite 27 65 + 69: TypeImage 26(int) 2D array sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 78: TypeImage 40(int) 2D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex2du4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 86(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 87: TypePointer Function 86(PS_OUTPUT) + 89: 6(float) Constant 1065353216 + 90: 7(fvec4) ConstantComposite 89 89 89 89 + 92: TypePointer Function 6(float) + 94: TypePointer Output 7(fvec4) + 95(Color): 94(ptr) Variable Output + 98: TypePointer Output 6(float) + 99(Depth): 98(ptr) Variable Output +103(g_tTex1df4a): 11(ptr) Variable UniformConstant + 104: TypeImage 6(float) Cube array sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTexcdf4): 105(ptr) Variable UniformConstant + 107: TypeImage 26(int) Cube array sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTexcdi4): 108(ptr) Variable UniformConstant + 110: TypeImage 40(int) Cube array sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTexcdu4): 111(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 31(txval11): 30(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 52(txval20): 8(ptr) Variable Function + 68(txval21): 30(ptr) Variable Function + 77(txval22): 42(ptr) Variable Function + 88(psout): 87(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 28: 7(fvec4) ImageSampleExplicitLod 19 23 Grad ConstOffset 24 25 27 + Store 9(txval10) 28 + 35: 32 Load 34(g_tTex1di4) + 36: 14 Load 16(g_sSamp) + 38: 37 SampledImage 35 36 + 39: 29(ivec4) ImageSampleExplicitLod 38 23 Grad ConstOffset 24 25 27 + Store 31(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 51: 41(ivec4) ImageSampleExplicitLod 50 23 Grad ConstOffset 24 25 27 + Store 43(txval12) 51 + 56: 53 Load 55(g_tTex2df4) + 57: 14 Load 16(g_sSamp) + 59: 58 SampledImage 56 57 + 67: 7(fvec4) ImageSampleExplicitLod 59 62 Grad ConstOffset 63 63 66 + Store 52(txval20) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 14 Load 16(g_sSamp) + 75: 74 SampledImage 72 73 + 76: 29(ivec4) ImageSampleExplicitLod 75 62 Grad ConstOffset 63 63 66 + Store 68(txval21) 76 + 81: 78 Load 80(g_tTex2du4) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 85: 41(ivec4) ImageSampleExplicitLod 84 62 Grad ConstOffset 63 63 66 + Store 77(txval22) 85 + 91: 8(ptr) AccessChain 88(psout) 65 + Store 91 90 + 93: 92(ptr) AccessChain 88(psout) 27 + Store 93 89 + 96: 8(ptr) AccessChain 88(psout) 65 + 97: 7(fvec4) Load 96 + Store 95(Color) 97 + 100: 92(ptr) AccessChain 88(psout) 27 + 101: 6(float) Load 100 + Store 99(Depth) 101 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out new file mode 100644 index 0000000000..afdedb7dad --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -0,0 +1,551 @@ +hlsl.samplelevel.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0: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 Sequence +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:42 Constant: +0:42 1 (const int) +0:42 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 140 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 131 135 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4a" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4a" + Name 43 "txval12" + Name 46 "g_tTex1du4a" + Name 54 "txval20" + Name 57 "g_tTex2df4a" + Name 65 "txval21" + Name 68 "g_tTex2di4a" + Name 76 "txval22" + Name 79 "g_tTex2du4a" + Name 88 "txval40" + Name 91 "g_tTexcdf4a" + Name 98 "txval41" + Name 101 "g_tTexcdi4a" + Name 108 "txval42" + Name 111 "g_tTexcdu4a" + Name 121 "PS_OUTPUT" + MemberName 121(PS_OUTPUT) 0 "Color" + MemberName 121(PS_OUTPUT) 1 "Depth" + Name 123 "psout" + Name 131 "Color" + Name 135 "Depth" + Name 139 "g_tTex1df4" + Decorate 12(g_tTex1df4a) DescriptorSet 0 + Decorate 12(g_tTex1df4a) Binding 1 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 32(g_tTex1di4a) DescriptorSet 0 + Decorate 46(g_tTex1du4a) DescriptorSet 0 + Decorate 57(g_tTex2df4a) DescriptorSet 0 + Decorate 68(g_tTex2di4a) DescriptorSet 0 + Decorate 79(g_tTex2du4a) DescriptorSet 0 + Decorate 91(g_tTexcdf4a) DescriptorSet 0 + Decorate 101(g_tTexcdi4a) DescriptorSet 0 + Decorate 111(g_tTexcdu4a) DescriptorSet 0 + Decorate 131(Color) Location 0 + Decorate 135(Depth) BuiltIn FragDepth + Decorate 139(g_tTex1df4) DescriptorSet 0 + Decorate 139(g_tTex1df4) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4a): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 26(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4a): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4a): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1053609165 + 52: 20(fvec2) ConstantComposite 37 51 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4a): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 3 + 63: 62(fvec3) ConstantComposite 21 22 37 + 66: TypeImage 26(int) 2D array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2di4a): 67(ptr) Variable UniformConstant + 71: TypeSampledImage 66 + 73: 6(float) Constant 1056964608 + 74: 62(fvec3) ConstantComposite 37 51 73 + 77: TypeImage 40(int) 2D array sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4a): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1058642330 + 85: 6(float) Constant 1060320051 + 86: 62(fvec3) ConstantComposite 73 84 85 + 89: TypeImage 6(float) Cube array sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTexcdf4a): 90(ptr) Variable UniformConstant + 94: TypeSampledImage 89 + 96: 7(fvec4) ConstantComposite 21 22 37 51 + 99: TypeImage 26(int) Cube array sampled format:Unknown + 100: TypePointer UniformConstant 99 +101(g_tTexcdi4a): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 7(fvec4) ConstantComposite 51 73 84 85 + 109: TypeImage 40(int) Cube array sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTexcdu4a): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1061997773 + 117: 6(float) Constant 1063675494 + 118: 6(float) Constant 1065353216 + 119: 7(fvec4) ConstantComposite 85 116 117 118 + 121(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 122: TypePointer Function 121(PS_OUTPUT) + 124: 26(int) Constant 0 + 125: 7(fvec4) ConstantComposite 118 118 118 118 + 127: 26(int) Constant 1 + 128: TypePointer Function 6(float) + 130: TypePointer Output 7(fvec4) + 131(Color): 130(ptr) Variable Output + 134: TypePointer Output 6(float) + 135(Depth): 134(ptr) Variable Output + 139(g_tTex1df4): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 54(txval20): 8(ptr) Variable Function + 65(txval21): 28(ptr) Variable Function + 76(txval22): 42(ptr) Variable Function + 88(txval40): 8(ptr) Variable Function + 98(txval41): 28(ptr) Variable Function + 108(txval42): 42(ptr) Variable Function + 123(psout): 122(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4a) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24 + Store 9(txval10) 25 + 33: 30 Load 32(g_tTex1di4a) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24 + Store 29(txval11) 39 + 47: 44 Load 46(g_tTex1du4a) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24 + Store 43(txval12) 53 + 58: 55 Load 57(g_tTex2df4a) + 59: 14 Load 16(g_sSamp) + 61: 60 SampledImage 58 59 + 64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24 + Store 54(txval20) 64 + 69: 66 Load 68(g_tTex2di4a) + 70: 14 Load 16(g_sSamp) + 72: 71 SampledImage 69 70 + 75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24 + Store 65(txval21) 75 + 80: 77 Load 79(g_tTex2du4a) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24 + Store 76(txval22) 87 + 92: 89 Load 91(g_tTexcdf4a) + 93: 14 Load 16(g_sSamp) + 95: 94 SampledImage 92 93 + 97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24 + Store 88(txval40) 97 + 102: 99 Load 101(g_tTexcdi4a) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24 + Store 98(txval41) 107 + 112: 109 Load 111(g_tTexcdu4a) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24 + Store 108(txval42) 120 + 126: 8(ptr) AccessChain 123(psout) 124 + Store 126 125 + 129: 128(ptr) AccessChain 123(psout) 127 + Store 129 118 + 132: 8(ptr) AccessChain 123(psout) 124 + 133: 7(fvec4) Load 132 + Store 131(Color) 133 + 136: 128(ptr) AccessChain 123(psout) 127 + 137: 6(float) Load 136 + Store 135(Depth) 137 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out new file mode 100644 index 0000000000..34a6597883 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -0,0 +1,657 @@ +hlsl.samplelevel.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:51 Depth: direct index for structure (temp float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:51 Constant: +0:51 1 (const int) +0:51 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +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 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:51 Depth: direct index for structure (temp float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:51 Constant: +0:51 1 (const int) +0:51 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 165 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 155 159 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 83 "txval30" + Name 86 "g_tTex3df4" + Name 94 "txval31" + Name 97 "g_tTex3di4" + Name 104 "txval32" + Name 107 "g_tTex3du4" + Name 117 "txval40" + Name 120 "g_tTexcdf4" + Name 126 "txval41" + Name 129 "g_tTexcdi4" + Name 135 "txval42" + Name 138 "g_tTexcdu4" + Name 144 "PS_OUTPUT" + MemberName 144(PS_OUTPUT) 0 "Color" + MemberName 144(PS_OUTPUT) 1 "Depth" + Name 146 "psout" + Name 155 "Color" + Name 159 "Depth" + Name 163 "g_sSamp2d" + Name 164 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 97(g_tTex3di4) DescriptorSet 0 + Decorate 107(g_tTex3du4) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 155(Color) Location 0 + Decorate 159(Depth) BuiltIn FragDepth + Decorate 163(g_sSamp2d) DescriptorSet 0 + Decorate 164(g_tTex1df4a) DescriptorSet 0 + Decorate 164(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 57(fvec2) ConstantComposite 79 80 + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 91: TypeVector 6(float) 3 + 92: 91(fvec3) ConstantComposite 20 34 47 + 95: TypeImage 23(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3di4): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 102: 91(fvec3) ConstantComposite 68 79 80 + 105: TypeImage 36(int) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3du4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 112: 6(float) Constant 1060320051 + 113: 6(float) Constant 1061997773 + 114: 6(float) Constant 1063675494 + 115: 91(fvec3) ConstantComposite 112 113 114 + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 127: TypeImage 23(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 132: TypeSampledImage 127 + 136: TypeImage 36(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 144(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 145: TypePointer Function 144(PS_OUTPUT) + 147: 23(int) Constant 0 + 148: 6(float) Constant 1065353216 + 149: 7(fvec4) ConstantComposite 148 148 148 148 + 151: 23(int) Constant 1 + 152: TypePointer Function 6(float) + 154: TypePointer Output 7(fvec4) + 155(Color): 154(ptr) Variable Output + 158: TypePointer Output 6(float) + 159(Depth): 158(ptr) Variable Output + 163(g_sSamp2d): 15(ptr) Variable UniformConstant +164(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 83(txval30): 8(ptr) Variable Function + 94(txval31): 25(ptr) Variable Function + 104(txval32): 38(ptr) Variable Function + 117(txval40): 8(ptr) Variable Function + 126(txval41): 25(ptr) Variable Function + 135(txval42): 38(ptr) Variable Function + 146(psout): 145(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 + Store 71(txval22) 82 + 87: 84 Load 86(g_tTex3df4) + 88: 14 Load 16(g_sSamp) + 90: 89 SampledImage 87 88 + 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 + Store 83(txval30) 93 + 98: 95 Load 97(g_tTex3di4) + 99: 14 Load 16(g_sSamp) + 101: 100 SampledImage 98 99 + 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 + Store 94(txval31) 103 + 108: 105 Load 107(g_tTex3du4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 + Store 104(txval32) 116 + 121: 118 Load 120(g_tTexcdf4) + 122: 14 Load 16(g_sSamp) + 124: 123 SampledImage 121 122 + 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 + Store 117(txval40) 125 + 130: 127 Load 129(g_tTexcdi4) + 131: 14 Load 16(g_sSamp) + 133: 132 SampledImage 130 131 + 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 + Store 126(txval41) 134 + 139: 136 Load 138(g_tTexcdu4) + 140: 14 Load 16(g_sSamp) + 142: 141 SampledImage 139 140 + 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 + Store 135(txval42) 143 + 150: 8(ptr) AccessChain 146(psout) 147 + Store 150 149 + 153: 152(ptr) AccessChain 146(psout) 151 + Store 153 148 + 156: 8(ptr) AccessChain 146(psout) 147 + 157: 7(fvec4) Load 156 + Store 155(Color) 157 + 160: 152(ptr) AccessChain 146(psout) 151 + 161: 6(float) Load 160 + Store 159(Depth) 161 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out new file mode 100644 index 0000000000..04d0870e27 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -0,0 +1,609 @@ +hlsl.samplelevel.basic.dx10.vert +Shader version: 450 +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked vertex stage: + + +Shader version: 450 +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 157 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 152 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 83 "txval30" + Name 86 "g_tTex3df4" + Name 94 "txval31" + Name 97 "g_tTex3di4" + Name 104 "txval32" + Name 107 "g_tTex3du4" + Name 117 "txval40" + Name 120 "g_tTexcdf4" + Name 126 "txval41" + Name 129 "g_tTexcdi4" + Name 135 "txval42" + Name 138 "g_tTexcdu4" + Name 144 "VS_OUTPUT" + MemberName 144(VS_OUTPUT) 0 "Pos" + Name 146 "vsout" + Name 152 "Pos" + Name 156 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 97(g_tTex3di4) DescriptorSet 0 + Decorate 107(g_tTex3du4) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 152(Pos) BuiltIn Position + Decorate 156(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 57(fvec2) ConstantComposite 79 80 + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 91: TypeVector 6(float) 3 + 92: 91(fvec3) ConstantComposite 20 34 47 + 95: TypeImage 23(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3di4): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 102: 91(fvec3) ConstantComposite 68 79 80 + 105: TypeImage 36(int) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3du4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 112: 6(float) Constant 1060320051 + 113: 6(float) Constant 1061997773 + 114: 6(float) Constant 1063675494 + 115: 91(fvec3) ConstantComposite 112 113 114 + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 127: TypeImage 23(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 132: TypeSampledImage 127 + 136: TypeImage 36(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 144(VS_OUTPUT): TypeStruct 7(fvec4) + 145: TypePointer Function 144(VS_OUTPUT) + 147: 23(int) Constant 0 + 148: 6(float) Constant 0 + 149: 7(fvec4) ConstantComposite 148 148 148 148 + 151: TypePointer Output 7(fvec4) + 152(Pos): 151(ptr) Variable Output +156(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 83(txval30): 8(ptr) Variable Function + 94(txval31): 25(ptr) Variable Function + 104(txval32): 38(ptr) Variable Function + 117(txval40): 8(ptr) Variable Function + 126(txval41): 25(ptr) Variable Function + 135(txval42): 38(ptr) Variable Function + 146(vsout): 145(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 + Store 71(txval22) 82 + 87: 84 Load 86(g_tTex3df4) + 88: 14 Load 16(g_sSamp) + 90: 89 SampledImage 87 88 + 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 + Store 83(txval30) 93 + 98: 95 Load 97(g_tTex3di4) + 99: 14 Load 16(g_sSamp) + 101: 100 SampledImage 98 99 + 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 + Store 94(txval31) 103 + 108: 105 Load 107(g_tTex3du4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 + Store 104(txval32) 116 + 121: 118 Load 120(g_tTexcdf4) + 122: 14 Load 16(g_sSamp) + 124: 123 SampledImage 121 122 + 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 + Store 117(txval40) 125 + 130: 127 Load 129(g_tTexcdi4) + 131: 14 Load 16(g_sSamp) + 133: 132 SampledImage 130 131 + 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 + Store 126(txval41) 134 + 139: 136 Load 138(g_tTexcdu4) + 140: 14 Load 16(g_sSamp) + 142: 141 SampledImage 139 140 + 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 + Store 135(txval42) 143 + 150: 8(ptr) AccessChain 146(vsout) 147 + Store 150 149 + 153: 8(ptr) AccessChain 146(vsout) 147 + 154: 7(fvec4) Load 153 + Store 152(Pos) 154 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out new file mode 100644 index 0000000000..aa77961067 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -0,0 +1,613 @@ +hlsl.samplelevel.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +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 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 155 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 141 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 90 "txval30" + Name 93 "g_tTex3df4" + Name 103 "txval31" + Name 106 "g_tTex3di4" + Name 114 "txval32" + Name 117 "g_tTex3du4" + Name 128 "PS_OUTPUT" + MemberName 128(PS_OUTPUT) 0 "Color" + MemberName 128(PS_OUTPUT) 1 "Depth" + Name 130 "psout" + Name 137 "Color" + Name 141 "Depth" + Name 145 "g_tTex1df4a" + Name 148 "g_tTexcdf4" + Name 151 "g_tTexcdi4" + Name 154 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 93(g_tTex3df4) DescriptorSet 0 + Decorate 106(g_tTex3di4) DescriptorSet 0 + Decorate 117(g_tTex3du4) DescriptorSet 0 + Decorate 137(Color) Location 0 + Decorate 141(Depth) BuiltIn FragDepth + Decorate 145(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1df4a) Binding 1 + Decorate 148(g_tTexcdf4) DescriptorSet 0 + Decorate 151(g_tTexcdi4) DescriptorSet 0 + Decorate 154(g_tTexcdu4) 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 sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 25: TypeVector 22(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 22(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: TypeVector 22(int) 2 + 61: 22(int) Constant 0 + 62: 60(ivec2) ConstantComposite 23 61 + 65: TypeImage 22(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: 58(fvec2) ConstantComposite 48 72 + 74: 60(ivec2) ConstantComposite 23 23 + 77: TypeImage 37(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1056964608 + 85: 6(float) Constant 1058642330 + 86: 58(fvec2) ConstantComposite 84 85 + 87: 22(int) Constant 4294967295 + 88: 60(ivec2) ConstantComposite 23 87 + 91: TypeImage 6(float) 3D sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTex3df4): 92(ptr) Variable UniformConstant + 96: TypeSampledImage 91 + 98: TypeVector 6(float) 3 + 99: 98(fvec3) ConstantComposite 20 35 48 + 100: TypeVector 22(int) 3 + 101: 100(ivec3) ConstantComposite 23 61 23 + 104: TypeImage 22(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3di4): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: 98(fvec3) ConstantComposite 72 84 85 + 112: 100(ivec3) ConstantComposite 23 23 23 + 115: TypeImage 37(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3du4): 116(ptr) Variable UniformConstant + 120: TypeSampledImage 115 + 122: 6(float) Constant 1060320051 + 123: 6(float) Constant 1061997773 + 124: 6(float) Constant 1063675494 + 125: 98(fvec3) ConstantComposite 122 123 124 + 126: 100(ivec3) ConstantComposite 23 61 87 + 128(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 129: TypePointer Function 128(PS_OUTPUT) + 131: 6(float) Constant 1065353216 + 132: 7(fvec4) ConstantComposite 131 131 131 131 + 134: TypePointer Function 6(float) + 136: TypePointer Output 7(fvec4) + 137(Color): 136(ptr) Variable Output + 140: TypePointer Output 6(float) + 141(Depth): 140(ptr) Variable Output +145(g_tTex1df4a): 11(ptr) Variable UniformConstant + 146: TypeImage 6(float) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdf4): 147(ptr) Variable UniformConstant + 149: TypeImage 22(int) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdi4): 150(ptr) Variable UniformConstant + 152: TypeImage 37(int) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdu4): 153(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 64(txval21): 26(ptr) Variable Function + 76(txval22): 39(ptr) Variable Function + 90(txval30): 8(ptr) Variable Function + 103(txval31): 26(ptr) Variable Function + 114(txval32): 39(ptr) Variable Function + 130(psout): 129(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleExplicitLod 19 20 Lod ConstOffset 21 23 + Store 9(txval10) 24 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Lod ConstOffset 21 23 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Lod ConstOffset 21 23 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 63: 7(fvec4) ImageSampleExplicitLod 57 59 Lod ConstOffset 21 62 + Store 50(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 75: 25(ivec4) ImageSampleExplicitLod 71 73 Lod ConstOffset 21 74 + Store 64(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 89: 38(ivec4) ImageSampleExplicitLod 83 86 Lod ConstOffset 21 88 + Store 76(txval22) 89 + 94: 91 Load 93(g_tTex3df4) + 95: 14 Load 16(g_sSamp) + 97: 96 SampledImage 94 95 + 102: 7(fvec4) ImageSampleExplicitLod 97 99 Lod ConstOffset 21 101 + Store 90(txval30) 102 + 107: 104 Load 106(g_tTex3di4) + 108: 14 Load 16(g_sSamp) + 110: 109 SampledImage 107 108 + 113: 25(ivec4) ImageSampleExplicitLod 110 111 Lod ConstOffset 21 112 + Store 103(txval31) 113 + 118: 115 Load 117(g_tTex3du4) + 119: 14 Load 16(g_sSamp) + 121: 120 SampledImage 118 119 + 127: 38(ivec4) ImageSampleExplicitLod 121 125 Lod ConstOffset 21 126 + Store 114(txval32) 127 + 133: 8(ptr) AccessChain 130(psout) 61 + Store 133 132 + 135: 134(ptr) AccessChain 130(psout) 23 + Store 135 131 + 138: 8(ptr) AccessChain 130(psout) 61 + 139: 7(fvec4) Load 138 + Store 137(Color) 139 + 142: 134(ptr) AccessChain 130(psout) 23 + 143: 6(float) Load 142 + Store 141(Depth) 143 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..056a4f13c8 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -0,0 +1,450 @@ +hlsl.samplelevel.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, 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 Sequence +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +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 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +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) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 112 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 103 107 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 45 "txval12" + Name 48 "g_tTex1du4" + Name 57 "txval20" + Name 60 "g_tTex2df4" + Name 70 "txval21" + Name 73 "g_tTex2di4" + Name 81 "txval22" + Name 84 "g_tTex2du4" + Name 94 "PS_OUTPUT" + MemberName 94(PS_OUTPUT) 0 "Color" + MemberName 94(PS_OUTPUT) 1 "Depth" + Name 96 "psout" + Name 103 "Color" + Name 107 "Depth" + Name 111 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 60(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 84(g_tTex2du4) DescriptorSet 0 + Decorate 103(Color) Location 0 + Decorate 107(Depth) BuiltIn FragDepth + Decorate 111(g_tTex1df4a) DescriptorSet 0 + Decorate 111(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1050253722 + 39: 20(fvec2) ConstantComposite 22 38 + 40: 25(int) Constant 1 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 1D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1053609165 + 54: 20(fvec2) ConstantComposite 38 53 + 55: 25(int) Constant 2 + 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 21 22 38 + 67: TypeVector 25(int) 2 + 68: 67(ivec2) ConstantComposite 26 26 + 71: TypeImage 25(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 6(float) Constant 1056964608 + 79: 65(fvec3) ConstantComposite 38 53 78 + 82: TypeImage 42(int) 2D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2du4): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 89: 6(float) Constant 1058642330 + 90: 6(float) Constant 1060320051 + 91: 65(fvec3) ConstantComposite 78 89 90 + 92: 67(ivec2) ConstantComposite 26 40 + 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 95: TypePointer Function 94(PS_OUTPUT) + 97: 6(float) Constant 1065353216 + 98: 7(fvec4) ConstantComposite 97 97 97 97 + 100: TypePointer Function 6(float) + 102: TypePointer Output 7(fvec4) + 103(Color): 102(ptr) Variable Output + 106: TypePointer Output 6(float) + 107(Depth): 106(ptr) Variable Output +111(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 45(txval12): 44(ptr) Variable Function + 57(txval20): 8(ptr) Variable Function + 70(txval21): 29(ptr) Variable Function + 81(txval22): 44(ptr) Variable Function + 96(psout): 95(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageSampleExplicitLod 19 23 Lod ConstOffset 24 26 + Store 9(txval10) 27 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageSampleExplicitLod 37 39 Lod ConstOffset 24 40 + Store 30(txval11) 41 + 49: 46 Load 48(g_tTex1du4) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageSampleExplicitLod 52 54 Lod ConstOffset 24 55 + Store 45(txval12) 56 + 61: 58 Load 60(g_tTex2df4) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 69: 7(fvec4) ImageSampleExplicitLod 64 66 Lod ConstOffset 24 68 + Store 57(txval20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 14 Load 16(g_sSamp) + 77: 76 SampledImage 74 75 + 80: 28(ivec4) ImageSampleExplicitLod 77 79 Lod ConstOffset 24 68 + Store 70(txval21) 80 + 85: 82 Load 84(g_tTex2du4) + 86: 14 Load 16(g_sSamp) + 88: 87 SampledImage 85 86 + 93: 43(ivec4) ImageSampleExplicitLod 88 91 Lod ConstOffset 24 92 + Store 81(txval22) 93 + 99: 8(ptr) AccessChain 96(psout) 26 + Store 99 98 + 101: 100(ptr) AccessChain 96(psout) 40 + Store 101 97 + 104: 8(ptr) AccessChain 96(psout) 26 + 105: 7(fvec4) Load 104 + Store 103(Color) 105 + 108: 100(ptr) AccessChain 96(psout) 40 + 109: 6(float) Load 108 + Store 107(Depth) 109 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.scope.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.scope.frag.out new file mode 100755 index 0000000000..81c1a8442f --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.scope.frag.out @@ -0,0 +1,156 @@ +hlsl.scope.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Parameters: +0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:4 'x' (temp int) +0:? Sequence +0:7 'x' (temp float) +0:? Sequence +0:10 'x' (temp bool) +0:? Sequence +0:13 'x' (temp 3-component vector of float) +0:15 'x' (temp bool) +0:17 'x' (temp float) +0:19 'x' (temp int) +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Compare Greater Than (temp bool) +0:21 'x' (temp int) +0:21 Constant: +0:21 0 (const int) +0:21 true case is null +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Greater Than (temp bool) +0:24 'x' (temp int) +0:24 Constant: +0:24 0 (const int) +0:24 No loop body +0:27 Loop with condition not tested first +0:27 Loop Condition +0:29 Compare Greater Than (temp bool) +0:29 'x' (temp int) +0:29 Constant: +0:29 0 (const int) +0:27 No loop body +0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Parameters: +0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:4 'x' (temp int) +0:? Sequence +0:7 'x' (temp float) +0:? Sequence +0:10 'x' (temp bool) +0:? Sequence +0:13 'x' (temp 3-component vector of float) +0:15 'x' (temp bool) +0:17 'x' (temp float) +0:19 'x' (temp int) +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Compare Greater Than (temp bool) +0:21 'x' (temp int) +0:21 Constant: +0:21 0 (const int) +0:21 true case is null +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Greater Than (temp bool) +0:24 'x' (temp int) +0:24 Constant: +0:24 0 (const int) +0:24 No loop body +0:27 Loop with condition not tested first +0:27 Loop Condition +0:29 Compare Greater Than (temp bool) +0:29 'x' (temp int) +0:29 Constant: +0:29 0 (const int) +0:27 No loop body +0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 38 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "x" + Name 11 "x" + Name 14 "x" + Name 17 "x" + Name 38 "input" + Decorate 38(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypePointer Function 9(float) + 12: TypeBool + 13: TypePointer Function 12(bool) + 15: TypeVector 9(float) 3 + 16: TypePointer Function 15(fvec3) + 19: 6(int) Constant 0 + 36: TypeVector 9(float) 4 + 37: TypePointer Input 36(fvec4) + 38(input): 37(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 8(x): 7(ptr) Variable Function + 11(x): 10(ptr) Variable Function + 14(x): 13(ptr) Variable Function + 17(x): 16(ptr) Variable Function + 18: 6(int) Load 8(x) + 20: 12(bool) SGreaterThan 18 19 + SelectionMerge 22 None + BranchConditional 20 21 22 + 21: Label + Branch 22 + 22: Label + Branch 23 + 23: Label + LoopMerge 25 26 None + Branch 27 + 27: Label + 28: 6(int) Load 8(x) + 29: 12(bool) SGreaterThan 28 19 + BranchConditional 29 24 25 + 24: Label + Branch 26 + 26: Label + Branch 23 + 25: Label + Branch 30 + 30: Label + LoopMerge 32 33 None + Branch 31 + 31: Label + Branch 33 + 33: Label + 34: 6(int) Load 8(x) + 35: 12(bool) SGreaterThan 34 19 + BranchConditional 35 30 32 + 32: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.semicolons.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.semicolons.frag.out new file mode 100644 index 0000000000..a9f927687c --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.semicolons.frag.out @@ -0,0 +1,117 @@ +hlsl.semicolons.frag +Shader version: 450 +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 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 26 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 22 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "MyFunc(" + Name 8 "MyFunc2(" + Name 12 "PS_OUTPUT" + MemberName 12(PS_OUTPUT) 0 "color" + Name 14 "ps_output" + Name 22 "color" + Decorate 22(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12(PS_OUTPUT): TypeStruct 11(fvec4) + 13: TypePointer Function 12(PS_OUTPUT) + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: 10(float) Constant 1065353216 + 18: 11(fvec4) ConstantComposite 17 17 17 17 + 19: TypePointer Function 11(fvec4) + 21: TypePointer Output 11(fvec4) + 22(color): 21(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 14(ps_output): 13(ptr) Variable Function + 20: 19(ptr) AccessChain 14(ps_output) 16 + Store 20 18 + 23: 19(ptr) AccessChain 14(ps_output) 16 + 24: 11(fvec4) Load 23 + Store 22(color) 24 + Return + FunctionEnd + 6(MyFunc(): 2 Function None 3 + 7: Label + Return + FunctionEnd + 8(MyFunc2(): 2 Function None 3 + 9: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.shapeConv.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.shapeConv.frag.out new file mode 100755 index 0000000000..a15caac5b3 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.shapeConv.frag.out @@ -0,0 +1,346 @@ +hlsl.shapeConv.frag +Shader version: 450 +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 Construct float (temp 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 Compare Equal (temp bool) +0:26 'f1' (temp 1-component vector of float) +0:26 Construct float (temp 1-component vector of float) +0:26 'v' (temp 4-component vector of float) +0:27 Compare Less Than (temp bool) +0:27 Construct float (temp 1-component vector of float) +0:27 'v' (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:31 Branch: Return with expression +0:31 'input' (in 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunction(vf4;f1; (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 Construct float (temp 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 Compare Equal (temp bool) +0:26 'f1' (temp 1-component vector of float) +0:26 Construct float (temp 1-component vector of float) +0:26 'v' (temp 4-component vector of float) +0:27 Compare Less Than (temp bool) +0:27 Construct float (temp 1-component vector of float) +0:27 'v' (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:31 Branch: Return with expression +0:31 'input' (in 4-component vector of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 85 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + 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" + 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 + 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 + 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) Load 15(v) + 73: 6(float) CompositeExtract 72 0 + 74: 41(bool) FOrdEqual 71 73 + 75: 7(fvec4) Load 15(v) + 76: 6(float) CompositeExtract 75 0 + 77: 6(float) Load 70(f1) + 78: 41(bool) FOrdLessThan 76 77 + 79: 6(float) Load 70(f1) + 80: 6(float) Load 70(f1) + 81: 22(fvec3) CompositeConstruct 80 80 80 + 82: 7(fvec4) Load 11(input) + ReturnValue 82 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.shapeConvRet.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.shapeConvRet.frag.out new file mode 100755 index 0000000000..c21378703c --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.shapeConvRet.frag.out @@ -0,0 +1,94 @@ +hlsl.shapeConvRet.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( (temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: main(f1; (temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' (layout(location=0 ) in float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 'f' (layout(location=0 ) in float) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'f' (layout(location=0 ) in float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( (temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: main(f1; (temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' (layout(location=0 ) in float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 'f' (layout(location=0 ) in float) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'f' (layout(location=0 ) in float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 18 20 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "foo(" + Name 18 "@entryPointOutput" + Name 20 "f" + Decorate 18(@entryPointOutput) Location 0 + Decorate 20(f) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 3 + 8: TypeFunction 7(ivec3) + 11: 6(int) Constant 13 + 12: 7(ivec3) ConstantComposite 11 11 11 + 15: TypeFloat 32 + 16: TypeVector 15(float) 4 + 17: TypePointer Output 16(fvec4) +18(@entryPointOutput): 17(ptr) Variable Output + 19: TypePointer Input 15(float) + 20(f): 19(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 21: 15(float) Load 20(f) + 22: 16(fvec4) CompositeConstruct 21 21 21 21 + Store 18(@entryPointOutput) 22 + Return + FunctionEnd + 9(foo(): 7(ivec3) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.sin.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.sin.frag.out new file mode 100755 index 0000000000..629668ac78 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.sin.frag.out @@ -0,0 +1,68 @@ +hlsl.sin.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:3 sine (temp 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 Branch: Return +0:? Linker Objects +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: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:3 sine (temp 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 15 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "@entryPointOutput" + Name 11 "input" + Decorate 9(@entryPointOutput) Location 0 + Decorate 11(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(input) + 13: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 12 + Store 9(@entryPointOutput) 13 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.string.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.string.frag.out new file mode 100755 index 0000000000..3d80ce5354 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.string.frag.out @@ -0,0 +1,64 @@ +hlsl.string.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main(f1; (temp float) +0:10 Function Parameters: +0:10 'f' (layout(location=0 ) in float) +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:11 'f' (layout(location=0 ) in float) +0:11 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:? 'f' (layout(location=0 ) in float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main(f1; (temp float) +0:10 Function Parameters: +0:10 'f' (layout(location=0 ) in float) +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:11 'f' (layout(location=0 ) in float) +0:11 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:? 'f' (layout(location=0 ) in float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 13 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 10 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "@entryPointOutput" + Name 10 "f" + Decorate 8(@entryPointOutput) Location 0 + Decorate 10(f) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) +8(@entryPointOutput): 7(ptr) Variable Output + 9: TypePointer Input 6(float) + 10(f): 9(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 11: 6(float) Load 10(f) + Store 8(@entryPointOutput) 11 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.stringtoken.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.stringtoken.frag.out new file mode 100644 index 0000000000..94c1b2ad34 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.stringtoken.frag.out @@ -0,0 +1,118 @@ +hlsl.stringtoken.frag +Shader version: 450 +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 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'TestTexture' (uniform texture2D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) + + +Linked fragment stage: + + +Shader version: 450 +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 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'TestTexture' (uniform texture2D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 29 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 19 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "psout" + Name 19 "Color" + Name 25 "TestTexture" + Name 26 "$Global" + MemberName 26($Global) 0 "TestUF" + Name 28 "" + Decorate 19(Color) Location 0 + Decorate 25(TestTexture) DescriptorSet 0 + MemberDecorate 26($Global) 0 Offset 0 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13: 6(float) Constant 0 + 14: 6(float) Constant 1065353216 + 15: 7(fvec4) ConstantComposite 13 13 13 14 + 16: TypePointer Function 7(fvec4) + 18: TypePointer Output 7(fvec4) + 19(Color): 18(ptr) Variable Output + 23: TypeImage 6(float) 2D sampled format:Unknown + 24: TypePointer UniformConstant 23 + 25(TestTexture): 24(ptr) Variable UniformConstant + 26($Global): TypeStruct 7(fvec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 10(psout): 9(ptr) Variable Function + 17: 16(ptr) AccessChain 10(psout) 12 + Store 17 15 + 20: 16(ptr) AccessChain 10(psout) 12 + 21: 7(fvec4) Load 20 + Store 19(Color) 21 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.struct.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.struct.frag.out new file mode 100755 index 0000000000..c14018ea23 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.struct.frag.out @@ -0,0 +1,196 @@ +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: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) +0:34 Function Parameters: +0:34 'input' (layout(location=0 ) in 4-component vector of float) +0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:? Sequence +0:39 Compare Equal (temp bool) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:40 move second child to first child (temp 4-component vector of float) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 's2' (global structure{temp 4-component vector of float i}) +0:40 Constant: +0:40 0 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:42 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 'input' (layout(location=0 ) in 4-component vector of float) +0:42 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) +0:? 'b' (layout(location=2 ) flat in bool) +0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float) +0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float) +0:? 'ff1' (in bool Face) +0:? 'ff2' (layout(location=5 offset=4 ) in bool) +0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:? 's2' (global structure{temp 4-component vector of float i}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) +0:34 Function Parameters: +0:34 'input' (layout(location=0 ) in 4-component vector of float) +0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:? Sequence +0:39 Compare Equal (temp bool) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:40 move second child to first child (temp 4-component vector of float) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 's2' (global structure{temp 4-component vector of float i}) +0:40 Constant: +0:40 0 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:42 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 'input' (layout(location=0 ) in 4-component vector of float) +0:42 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) +0:? 'b' (layout(location=2 ) flat in bool) +0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float) +0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float) +0:? 'ff1' (in bool Face) +0:? 'ff2' (layout(location=5 offset=4 ) in bool) +0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:? 's2' (global structure{temp 4-component vector of float i}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 34 36 38 41 42 43 44 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "FS" + MemberName 8(FS) 0 "b3" + Name 10 "s3" + Name 19 "" + MemberName 19 0 "i" + Name 21 "s2" + Name 25 "ff4" + Name 30 "@entryPointOutput" + Name 31 "input" + Name 34 "a" + Name 36 "b" + Name 38 "c" + Name 41 "d" + Name 42 "ff1" + Name 43 "ff2" + Name 44 "ff3" + Name 46 "myS" + MemberName 46(myS) 0 "b" + MemberName 46(myS) 1 "c" + MemberName 46(myS) 2 "a" + MemberName 46(myS) 3 "d" + Name 47 "$Global" + MemberName 47($Global) 0 "s1" + MemberName 47($Global) 1 "ff5" + MemberName 47($Global) 2 "ff6" + Name 49 "" + Decorate 25(ff4) Offset 4 + Decorate 25(ff4) Location 7 + Decorate 25(ff4) Binding 0 + Decorate 30(@entryPointOutput) Location 0 + Decorate 31(input) Location 0 + Decorate 34(a) Location 1 + Decorate 36(b) Flat + Decorate 36(b) Location 2 + Decorate 38(c) NoPerspective + Decorate 38(c) Centroid + Decorate 38(c) Location 3 + Decorate 41(d) Centroid + Decorate 41(d) Location 4 + Decorate 42(ff1) BuiltIn FrontFacing + Decorate 43(ff2) Offset 4 + Decorate 43(ff2) Location 5 + Decorate 44(ff3) Offset 4 + Decorate 44(ff3) Location 6 + Decorate 44(ff3) Binding 0 + MemberDecorate 46(myS) 0 Offset 0 + MemberDecorate 46(myS) 1 Offset 4 + MemberDecorate 46(myS) 2 Offset 16 + MemberDecorate 46(myS) 3 Offset 32 + MemberDecorate 47($Global) 0 Offset 0 + MemberDecorate 47($Global) 1 Offset 1620 + MemberDecorate 47($Global) 2 Offset 1636 + Decorate 47($Global) Block + Decorate 49 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeVector 6(bool) 3 + 8(FS): TypeStruct 7(bvec3) + 9: TypePointer Function 8(FS) + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeStruct 18(fvec4) + 20: TypePointer Private 19(struct) + 21(s2): 20(ptr) Variable Private + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: TypePointer Input 18(fvec4) + 25(ff4): 24(ptr) Variable Input + 27: TypePointer Private 18(fvec4) + 29: TypePointer Output 18(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output + 31(input): 24(ptr) Variable Input + 34(a): 24(ptr) Variable Input + 35: TypePointer Input 6(bool) + 36(b): 35(ptr) Variable Input + 37: TypePointer Input 17(float) + 38(c): 37(ptr) Variable Input + 39: TypeVector 17(float) 2 + 40: TypePointer Input 39(fvec2) + 41(d): 40(ptr) Variable Input + 42(ff1): 35(ptr) Variable Input + 43(ff2): 35(ptr) Variable Input + 44(ff3): 35(ptr) Variable Input + 45: TypeInt 32 0 + 46(myS): TypeStruct 45(int) 45(int) 18(fvec4) 18(fvec4) + 47($Global): TypeStruct 46(myS) 17(float) 17(float) + 48: TypePointer Uniform 47($Global) + 49: 48(ptr) Variable Uniform +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 10(s3): 9(ptr) Variable Function + 11: 8(FS) Load 10(s3) + 12: 8(FS) Load 10(s3) + 13: 7(bvec3) CompositeExtract 11 0 + 14: 7(bvec3) CompositeExtract 12 0 + 15: 7(bvec3) LogicalEqual 13 14 + 16: 6(bool) All 15 + 26: 18(fvec4) Load 25(ff4) + 28: 27(ptr) AccessChain 21(s2) 23 + Store 28 26 + 32: 18(fvec4) Load 31(input) + Store 30(@entryPointOutput) 32 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.structarray.flatten.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.structarray.flatten.frag.out new file mode 100644 index 0000000000..6b22d6638a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.structarray.flatten.frag.out @@ -0,0 +1,197 @@ +hlsl.structarray.flatten.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:23 Function Parameters: +0:23 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:26 add (temp 4-component vector of float) +0:25 add (temp 4-component vector of float) +0:25 texture (temp 4-component vector of float) +0:25 Construct combined texture-sampler (temp sampler1D) +0:? 'tex' (uniform texture1D) +0:? 'samp' (uniform sampler) +0:25 Constant: +0:25 0.500000 +0:26 texture (temp 4-component vector of float) +0:26 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array[1].tex' (uniform texture1D) +0:? 'g_texdata_array[1].samp' (uniform sampler) +0:26 Constant: +0:26 0.400000 +0:27 texture (temp 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:27 Constant: +0:27 0.300000 +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_samp' (uniform sampler) +0:? 'g_tex' (uniform texture1D) +0:? 'g_texdata_array2[0].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[0].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[1].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[2].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[2].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:23 Function Parameters: +0:23 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:26 add (temp 4-component vector of float) +0:25 add (temp 4-component vector of float) +0:25 texture (temp 4-component vector of float) +0:25 Construct combined texture-sampler (temp sampler1D) +0:? 'tex' (uniform texture1D) +0:? 'samp' (uniform sampler) +0:25 Constant: +0:25 0.500000 +0:26 texture (temp 4-component vector of float) +0:26 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array[1].tex' (uniform texture1D) +0:? 'g_texdata_array[1].samp' (uniform sampler) +0:26 Constant: +0:26 0.400000 +0:27 texture (temp 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:27 Constant: +0:27 0.300000 +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_samp' (uniform sampler) +0:? 'g_tex' (uniform texture1D) +0:? 'g_texdata_array2[0].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[0].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[1].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[2].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[2].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 50 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "color" + Name 12 "tex" + Name 16 "samp" + Name 22 "g_texdata_array[1].tex" + Name 24 "g_texdata_array[1].samp" + Name 30 "g_texdata_array2[1].tex[0]" + Name 32 "g_texdata_array2[1].samp[0]" + Name 38 "g_samp" + Name 39 "g_tex" + Name 40 "g_texdata_array2[0].samp[0]" + Name 41 "g_texdata_array2[0].samp[1]" + Name 42 "g_texdata_array2[0].tex[0]" + Name 43 "g_texdata_array2[0].tex[1]" + Name 44 "g_texdata_array2[1].samp[1]" + Name 45 "g_texdata_array2[1].tex[1]" + Name 46 "g_texdata_array2[2].samp[0]" + Name 47 "g_texdata_array2[2].samp[1]" + Name 48 "g_texdata_array2[2].tex[0]" + Name 49 "g_texdata_array2[2].tex[1]" + Decorate 9(color) Location 0 + Decorate 12(tex) DescriptorSet 0 + Decorate 16(samp) DescriptorSet 0 + Decorate 22(g_texdata_array[1].tex) DescriptorSet 0 + Decorate 24(g_texdata_array[1].samp) DescriptorSet 0 + Decorate 30(g_texdata_array2[1].tex[0]) DescriptorSet 0 + Decorate 32(g_texdata_array2[1].samp[0]) DescriptorSet 0 + Decorate 38(g_samp) DescriptorSet 0 + Decorate 39(g_tex) DescriptorSet 0 + Decorate 40(g_texdata_array2[0].samp[0]) DescriptorSet 0 + Decorate 41(g_texdata_array2[0].samp[1]) DescriptorSet 0 + Decorate 42(g_texdata_array2[0].tex[0]) DescriptorSet 0 + Decorate 43(g_texdata_array2[0].tex[1]) DescriptorSet 0 + Decorate 44(g_texdata_array2[1].samp[1]) DescriptorSet 0 + Decorate 45(g_texdata_array2[1].tex[1]) DescriptorSet 0 + Decorate 46(g_texdata_array2[2].samp[0]) DescriptorSet 0 + Decorate 47(g_texdata_array2[2].samp[1]) DescriptorSet 0 + Decorate 48(g_texdata_array2[2].tex[0]) DescriptorSet 0 + Decorate 49(g_texdata_array2[2].tex[1]) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(color): 8(ptr) Variable Output + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(tex): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(samp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1056964608 +22(g_texdata_array[1].tex): 11(ptr) Variable UniformConstant +24(g_texdata_array[1].samp): 15(ptr) Variable UniformConstant + 27: 6(float) Constant 1053609165 +30(g_texdata_array2[1].tex[0]): 11(ptr) Variable UniformConstant +32(g_texdata_array2[1].samp[0]): 15(ptr) Variable UniformConstant + 35: 6(float) Constant 1050253722 + 38(g_samp): 15(ptr) Variable UniformConstant + 39(g_tex): 11(ptr) Variable UniformConstant +40(g_texdata_array2[0].samp[0]): 15(ptr) Variable UniformConstant +41(g_texdata_array2[0].samp[1]): 15(ptr) Variable UniformConstant +42(g_texdata_array2[0].tex[0]): 11(ptr) Variable UniformConstant +43(g_texdata_array2[0].tex[1]): 11(ptr) Variable UniformConstant +44(g_texdata_array2[1].samp[1]): 15(ptr) Variable UniformConstant +45(g_texdata_array2[1].tex[1]): 11(ptr) Variable UniformConstant +46(g_texdata_array2[2].samp[0]): 15(ptr) Variable UniformConstant +47(g_texdata_array2[2].samp[1]): 15(ptr) Variable UniformConstant +48(g_texdata_array2[2].tex[0]): 11(ptr) Variable UniformConstant +49(g_texdata_array2[2].tex[1]): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 13: 10 Load 12(tex) + 17: 14 Load 16(samp) + 19: 18 SampledImage 13 17 + 21: 7(fvec4) ImageSampleImplicitLod 19 20 + 23: 10 Load 22(g_texdata_array[1].tex) + 25: 14 Load 24(g_texdata_array[1].samp) + 26: 18 SampledImage 23 25 + 28: 7(fvec4) ImageSampleImplicitLod 26 27 + 29: 7(fvec4) FAdd 21 28 + 31: 10 Load 30(g_texdata_array2[1].tex[0]) + 33: 14 Load 32(g_texdata_array2[1].samp[0]) + 34: 18 SampledImage 31 33 + 36: 7(fvec4) ImageSampleImplicitLod 34 35 + 37: 7(fvec4) FAdd 29 36 + Store 9(color) 37 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.structarray.flatten.geom.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.structarray.flatten.geom.out new file mode 100644 index 0000000000..0994af84f6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.structarray.flatten.geom.out @@ -0,0 +1,100 @@ +hlsl.structarray.flatten.geom +ERROR: 0:10: 'vin' : recursive type not yet supported in GS input +ERROR: 1 compilation errors. No code generated. + + +Shader version: 450 +invocations = -1 +max_vertices = 4 +input primitive = lines +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void) +0:10 Function Parameters: +0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 color: direct index for structure (temp 4-component vector of float) +0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:13 Constant: +0:13 1 (const int) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:14 move second child to first child (temp 2-component vector of float) +0:14 uv: direct index for structure (temp 2-component vector of float) +0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:14 Constant: +0:14 2 (const int) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:15 move second child to first child (temp 4-component vector of float) +0:15 position: direct index for structure (temp 4-component vector of float) +0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:15 Constant: +0:15 0 (const int) +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 EmitVertex (temp void) +0:? Linker Objects +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float) +0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float) +0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float) +0:? 'position' (layout(location=0 ) out 4-component vector of float) +0:? 'color' (layout(location=1 ) out 4-component vector of float) +0:? 'uv' (layout(location=2 ) out 2-component vector of float) + + +Linked geometry stage: + + +Shader version: 450 +invocations = 1 +max_vertices = 4 +input primitive = lines +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void) +0:10 Function Parameters: +0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 color: direct index for structure (temp 4-component vector of float) +0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:13 Constant: +0:13 1 (const int) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:14 move second child to first child (temp 2-component vector of float) +0:14 uv: direct index for structure (temp 2-component vector of float) +0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:14 Constant: +0:14 2 (const int) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:15 move second child to first child (temp 4-component vector of float) +0:15 position: direct index for structure (temp 4-component vector of float) +0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:15 Constant: +0:15 0 (const int) +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 EmitVertex (temp void) +0:? Linker Objects +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float) +0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float) +0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float) +0:? 'position' (layout(location=0 ) out 4-component vector of float) +0:? 'color' (layout(location=1 ) out 4-component vector of float) +0:? 'uv' (layout(location=2 ) out 2-component vector of float) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.structin.vert.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.structin.vert.out new file mode 100755 index 0000000000..a5feea8aa9 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.structin.vert.out @@ -0,0 +1,254 @@ +hlsl.structin.vert +Shader version: 450 +0:? Sequence +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Parameters: +0:8 'd' (layout(location=0 ) in 4-component vector of float) +0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'e' (layout(location=5 ) 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 2-component vector of uint 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:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:11 Construct vec4 (temp 4-component vector of float) +0:11 Convert uint to float (temp float) +0:11 direct index (temp uint) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:11 Constant: +0:11 0 (const int) +0:11 'd' (layout(location=0 ) in 4-component vector of float) +0:11 'e' (layout(location=5 ) in 4-component vector of float) +0:13 Sequence +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child (temp 2-component vector of uint) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:13 coord: direct index for structure (temp 2-component vector of uint) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) +0:13 b: direct index for structure (temp 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 2 (const int) +0:13 Branch: Return +0:? Linker Objects +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) +0:? 'd' (layout(location=0 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:? 'b' (layout(location=4 ) in 4-component vector of float) +0:? 'e' (layout(location=5 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Parameters: +0:8 'd' (layout(location=0 ) in 4-component vector of float) +0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'e' (layout(location=5 ) 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 2-component vector of uint 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:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:11 Construct vec4 (temp 4-component vector of float) +0:11 Convert uint to float (temp float) +0:11 direct index (temp uint) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:11 Constant: +0:11 0 (const int) +0:11 'd' (layout(location=0 ) in 4-component vector of float) +0:11 'e' (layout(location=5 ) in 4-component vector of float) +0:13 Sequence +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child (temp 2-component vector of uint) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:13 coord: direct index for structure (temp 2-component vector of uint) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) +0:13 b: direct index for structure (temp 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 2 (const int) +0:13 Branch: Return +0:? Linker Objects +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) +0:? 'd' (layout(location=0 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:? 'b' (layout(location=4 ) in 4-component vector of float) +0:? 'e' (layout(location=5 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 59 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 18 20 24 32 35 41 45 50 54 58 + Name 4 "main" + Name 12 "VI" + MemberName 12(VI) 0 "m" + MemberName 12(VI) 1 "coord" + MemberName 12(VI) 2 "b" + Name 14 "local" + Name 18 "m[1]" + Name 20 "m[0]" + Name 24 "coord" + Name 32 "d" + Name 35 "e" + Name 41 "m[0]" + Name 45 "m[1]" + Name 50 "coord" + Name 54 "b" + Name 58 "b" + Decorate 18(m[1]) Location 2 + Decorate 20(m[0]) Location 1 + Decorate 24(coord) Location 3 + Decorate 32(d) Location 0 + Decorate 35(e) Location 5 + Decorate 41(m[0]) Location 0 + Decorate 45(m[1]) Location 1 + Decorate 50(coord) Location 2 + Decorate 54(b) Location 3 + Decorate 58(b) Location 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 2 + 10: TypeArray 7(fvec4) 9 + 11: TypeVector 8(int) 2 + 12(VI): TypeStruct 10 11(ivec2) 7(fvec4) + 13: TypePointer Function 12(VI) + 15: TypeInt 32 1 + 16: 15(int) Constant 2 + 17: TypePointer Input 7(fvec4) + 18(m[1]): 17(ptr) Variable Input + 20(m[0]): 17(ptr) Variable Input + 23: TypePointer Input 11(ivec2) + 24(coord): 23(ptr) Variable Input + 25: 8(int) Constant 0 + 26: TypePointer Input 8(int) + 32(d): 17(ptr) Variable Input + 35(e): 17(ptr) Variable Input + 38: TypePointer Function 7(fvec4) + 40: TypePointer Output 7(fvec4) + 41(m[0]): 40(ptr) Variable Output + 42: 15(int) Constant 0 + 45(m[1]): 40(ptr) Variable Output + 46: 15(int) Constant 1 + 49: TypePointer Output 11(ivec2) + 50(coord): 49(ptr) Variable Output + 51: TypePointer Function 11(ivec2) + 54(b): 40(ptr) Variable Output + 58(b): 17(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 14(local): 13(ptr) Variable Function + 19: 7(fvec4) Load 18(m[1]) + 21: 7(fvec4) Load 20(m[0]) + 22: 7(fvec4) FAdd 19 21 + 27: 26(ptr) AccessChain 24(coord) 25 + 28: 8(int) Load 27 + 29: 6(float) ConvertUToF 28 + 30: 7(fvec4) CompositeConstruct 29 29 29 29 + 31: 7(fvec4) FAdd 22 30 + 33: 7(fvec4) Load 32(d) + 34: 7(fvec4) FAdd 31 33 + 36: 7(fvec4) Load 35(e) + 37: 7(fvec4) FAdd 34 36 + 39: 38(ptr) AccessChain 14(local) 16 + Store 39 37 + 43: 38(ptr) AccessChain 14(local) 42 42 + 44: 7(fvec4) Load 43 + Store 41(m[0]) 44 + 47: 38(ptr) AccessChain 14(local) 42 46 + 48: 7(fvec4) Load 47 + Store 45(m[1]) 48 + 52: 51(ptr) AccessChain 14(local) 46 + 53: 11(ivec2) Load 52 + Store 50(coord) 53 + 55: 38(ptr) AccessChain 14(local) 16 + 56: 7(fvec4) Load 55 + Store 54(b) 56 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.switch.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.switch.frag.out new file mode 100755 index 0000000000..af516e2c92 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.switch.frag.out @@ -0,0 +1,397 @@ +hlsl.switch.frag +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:2 'c' (layout(location=1 ) in int) +0:2 'd' (layout(location=2 ) in int) +0:? Sequence +0:3 'c' (layout(location=1 ) in int) +0:7 switch +0:7 condition +0:7 'c' (layout(location=1 ) 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' (layout(location=1 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:18 Branch: Break +0:21 switch +0:21 condition +0:21 'c' (layout(location=1 ) 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' (layout(location=0 ) 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' (layout(location=2 ) 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' (layout(location=0 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:36 Constant: +0:36 4.000000 +0:39 switch +0:39 condition +0:39 'c' (layout(location=1 ) 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' (layout(location=1 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:54 'input' (layout(location=0 ) in 4-component vector of float) +0:54 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'c' (layout(location=1 ) in int) +0:? 'd' (layout(location=2 ) in int) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:2 'c' (layout(location=1 ) in int) +0:2 'd' (layout(location=2 ) in int) +0:? Sequence +0:3 'c' (layout(location=1 ) in int) +0:7 switch +0:7 condition +0:7 'c' (layout(location=1 ) 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' (layout(location=1 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:18 Branch: Break +0:21 switch +0:21 condition +0:21 'c' (layout(location=1 ) 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' (layout(location=0 ) 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' (layout(location=2 ) 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' (layout(location=0 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:36 Constant: +0:36 4.000000 +0:39 switch +0:39 condition +0:39 'c' (layout(location=1 ) 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' (layout(location=1 ) 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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:54 'input' (layout(location=0 ) in 4-component vector of float) +0:54 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'c' (layout(location=1 ) in int) +0:? 'd' (layout(location=2 ) in int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 84 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41 81 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "c" + Name 21 "input" + Name 41 "d" + Name 81 "@entryPointOutput" + Decorate 8(c) Location 1 + Decorate 21(input) Location 0 + Decorate 41(d) Location 2 + Decorate 81(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Input 6(int) + 8(c): 7(ptr) Variable Input + 18: TypeFloat 32 + 19: TypeVector 18(float) 4 + 20: TypePointer Input 19(fvec4) + 21(input): 20(ptr) Variable Input + 23: 18(float) Constant 1065353216 + 41(d): 7(ptr) Variable Input + 46: 18(float) Constant 1073741824 + 51: 18(float) Constant 1077936128 + 58: 18(float) Constant 1082130432 + 80: TypePointer Output 19(fvec4) +81(@entryPointOutput): 80(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9: 6(int) Load 8(c) + SelectionMerge 11 None + Switch 9 10 + 10: Label + Branch 11 + 11: Label + 14: 6(int) Load 8(c) + SelectionMerge 17 None + Switch 14 17 + case 1: 15 + case 2: 16 + 15: Label + 22: 19(fvec4) Load 21(input) + 24: 19(fvec4) CompositeConstruct 23 23 23 23 + 25: 19(fvec4) FAdd 22 24 + Store 21(input) 25 + Branch 17 + 16: Label + 27: 19(fvec4) Load 21(input) + 28: 19(fvec4) CompositeConstruct 23 23 23 23 + 29: 19(fvec4) FSub 27 28 + Store 21(input) 29 + Branch 17 + 17: Label + 32: 6(int) Load 8(c) + SelectionMerge 36 None + Switch 32 35 + case 1: 33 + case 2: 34 + 35: Label + 59: 19(fvec4) Load 21(input) + 60: 19(fvec4) CompositeConstruct 58 58 58 58 + 61: 19(fvec4) FAdd 59 60 + Store 21(input) 61 + Branch 36 + 33: Label + 37: 19(fvec4) Load 21(input) + 38: 19(fvec4) CompositeConstruct 23 23 23 23 + 39: 19(fvec4) FAdd 37 38 + Store 21(input) 39 + Branch 36 + 34: Label + 42: 6(int) Load 41(d) + SelectionMerge 45 None + Switch 42 45 + case 2: 43 + case 3: 44 + 43: Label + 47: 19(fvec4) Load 21(input) + 48: 19(fvec4) CompositeConstruct 46 46 46 46 + 49: 19(fvec4) FAdd 47 48 + Store 21(input) 49 + Branch 45 + 44: Label + 52: 19(fvec4) Load 21(input) + 53: 19(fvec4) CompositeConstruct 51 51 51 51 + 54: 19(fvec4) FAdd 52 53 + Store 21(input) 54 + Branch 45 + 45: Label + Branch 36 + 36: Label + 63: 6(int) Load 8(c) + SelectionMerge 65 None + Switch 63 65 + case 1: 64 + 64: Label + Branch 65 + 65: Label + 68: 6(int) Load 8(c) + SelectionMerge 71 None + Switch 68 71 + case 1: 69 + case 2: 69 + case 3: 69 + case 4: 70 + case 5: 70 + 69: Label + 72: 19(fvec4) Load 21(input) + 73: 19(fvec4) CompositeConstruct 23 23 23 23 + 74: 19(fvec4) FAdd 72 73 + Store 21(input) 74 + Branch 71 + 70: Label + 76: 19(fvec4) Load 21(input) + 77: 19(fvec4) CompositeConstruct 23 23 23 23 + 78: 19(fvec4) FSub 76 77 + Store 21(input) 78 + Branch 71 + 71: Label + 82: 19(fvec4) Load 21(input) + Store 81(@entryPointOutput) 82 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/hlsl.swizzle.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.swizzle.frag.out similarity index 69% rename from deps/glslang-new/Test/baseResults/hlsl.swizzle.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.swizzle.frag.out index c734d50983..54fc662e04 100755 --- a/deps/glslang-new/Test/baseResults/hlsl.swizzle.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.swizzle.frag.out @@ -1,23 +1,23 @@ hlsl.swizzle.frag -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence -0:1 move second child to first child ( temp 4-component vector of float) -0:1 'AmbientColor' ( global 4-component vector of float) +0: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 Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) +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 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) @@ -27,38 +27,38 @@ gl_FragCoord origin is upper left 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 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) +0:? 'AmbientColor' (global 4-component vector of float) Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence -0:1 move second child to first child ( temp 4-component vector of float) -0:1 'AmbientColor' ( global 4-component vector of float) +0: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 Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) +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 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) @@ -68,16 +68,16 @@ gl_FragCoord origin is upper left 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 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) +0:? 'AmbientColor' (global 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 30 Capability Shader @@ -85,7 +85,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.templatetypes.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.templatetypes.frag.out new file mode 100644 index 0000000000..c5c73ecb45 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.templatetypes.frag.out @@ -0,0 +1,720 @@ +hlsl.templatetypes.frag +Shader version: 450 +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 Sequence +0:45 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:45 Constant: +0:45 0.000000 +0:45 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) + + +Linked fragment stage: + + +Shader version: 450 +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 Sequence +0:45 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:45 Constant: +0:45 0.000000 +0:45 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 148 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 146 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "r00" + Name 15 "r01" + Name 20 "r12" + Name 24 "r13" + Name 27 "r14" + Name 30 "r15" + Name 34 "r16" + Name 38 "r20" + Name 43 "r21" + Name 48 "r22" + Name 52 "r23" + Name 57 "r24" + Name 62 "r30" + Name 66 "r31" + Name 71 "r32" + Name 75 "r33" + Name 80 "r34" + Name 85 "r40" + Name 89 "r41" + Name 92 "r42" + Name 95 "r43" + Name 100 "r44" + Name 105 "r50" + Name 122 "r51" + Name 125 "r61" + Name 130 "r62" + Name 136 "r65" + Name 141 "r66" + Name 146 "@entryPointOutput" + Decorate 146(@entryPointOutput) 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: 6(float) Constant 1073741824 + 12: 6(float) Constant 1077936128 + 13: 6(float) Constant 1082130432 + 14: 7(fvec4) ConstantComposite 10 11 12 13 + 16: 6(float) Constant 1084227584 + 17: 7(fvec4) ConstantComposite 11 12 13 16 + 18: TypeBool + 19: TypePointer Function 18(bool) + 21: 18(bool) ConstantFalse + 22: TypeInt 32 1 + 23: TypePointer Function 22(int) + 25: 22(int) Constant 1 + 26: TypePointer Function 6(float) + 28: TypeFloat 64 + 29: TypePointer Function 28(float) + 31: 28(float) Constant 0 1072693248 + 32: TypeInt 32 0 + 33: TypePointer Function 32(int) + 35: 32(int) Constant 1 + 36: TypeVector 18(bool) 2 + 37: TypePointer Function 36(bvec2) + 39: 18(bool) ConstantTrue + 40: 36(bvec2) ConstantComposite 21 39 + 41: TypeVector 22(int) 2 + 42: TypePointer Function 41(ivec2) + 44: 22(int) Constant 2 + 45: 41(ivec2) ConstantComposite 25 44 + 46: TypeVector 6(float) 2 + 47: TypePointer Function 46(fvec2) + 49: 46(fvec2) ConstantComposite 10 11 + 50: TypeVector 28(float) 2 + 51: TypePointer Function 50(fvec2) + 53: 28(float) Constant 0 1073741824 + 54: 50(fvec2) ConstantComposite 31 53 + 55: TypeVector 32(int) 2 + 56: TypePointer Function 55(ivec2) + 58: 32(int) Constant 2 + 59: 55(ivec2) ConstantComposite 35 58 + 60: TypeVector 18(bool) 3 + 61: TypePointer Function 60(bvec3) + 63: 60(bvec3) ConstantComposite 21 39 39 + 64: TypeVector 22(int) 3 + 65: TypePointer Function 64(ivec3) + 67: 22(int) Constant 3 + 68: 64(ivec3) ConstantComposite 25 44 67 + 69: TypeVector 6(float) 3 + 70: TypePointer Function 69(fvec3) + 72: 69(fvec3) ConstantComposite 10 11 12 + 73: TypeVector 28(float) 3 + 74: TypePointer Function 73(fvec3) + 76: 28(float) Constant 0 1074266112 + 77: 73(fvec3) ConstantComposite 31 53 76 + 78: TypeVector 32(int) 3 + 79: TypePointer Function 78(ivec3) + 81: 32(int) Constant 3 + 82: 78(ivec3) ConstantComposite 35 58 81 + 83: TypeVector 18(bool) 4 + 84: TypePointer Function 83(bvec4) + 86: 83(bvec4) ConstantComposite 21 39 39 21 + 87: TypeVector 22(int) 4 + 88: TypePointer Function 87(ivec4) + 90: 22(int) Constant 4 + 91: 87(ivec4) ConstantComposite 25 44 67 90 + 93: TypeVector 28(float) 4 + 94: TypePointer Function 93(fvec4) + 96: 28(float) Constant 0 1074790400 + 97: 93(fvec4) ConstantComposite 31 53 76 96 + 98: TypeVector 32(int) 4 + 99: TypePointer Function 98(ivec4) + 101: 32(int) Constant 4 + 102: 98(ivec4) ConstantComposite 35 58 81 101 + 103: TypeMatrix 7(fvec4) 4 + 104: TypePointer Function 103 + 106: 6(float) Constant 0 + 107: 7(fvec4) ConstantComposite 106 10 11 12 + 108: 6(float) Constant 1086324736 + 109: 6(float) Constant 1088421888 + 110: 7(fvec4) ConstantComposite 13 16 108 109 + 111: 6(float) Constant 1090519040 + 112: 6(float) Constant 1091567616 + 113: 6(float) Constant 1092616192 + 114: 6(float) Constant 1093664768 + 115: 7(fvec4) ConstantComposite 111 112 113 114 + 116: 6(float) Constant 1094713344 + 117: 6(float) Constant 1095761920 + 118: 6(float) Constant 1096810496 + 119: 6(float) Constant 1097859072 + 120: 7(fvec4) ConstantComposite 116 117 118 119 + 121: 103 ConstantComposite 107 110 115 120 + 123: TypeMatrix 69(fvec3) 2 + 124: TypePointer Function 123 + 126: 69(fvec3) ConstantComposite 13 16 108 + 127: 123 ConstantComposite 72 126 + 128: TypeMatrix 46(fvec2) 3 + 129: TypePointer Function 128 + 131: 46(fvec2) ConstantComposite 12 13 + 132: 46(fvec2) ConstantComposite 16 108 + 133: 128 ConstantComposite 49 131 132 + 134: TypeMatrix 46(fvec2) 4 + 135: TypePointer Function 134 + 137: 46(fvec2) ConstantComposite 109 111 + 138: 134 ConstantComposite 49 131 132 137 + 139: TypeMatrix 69(fvec3) 4 + 140: TypePointer Function 139 + 142: 69(fvec3) ConstantComposite 109 111 112 + 143: 69(fvec3) ConstantComposite 113 114 116 + 144: 139 ConstantComposite 72 126 142 143 + 145: TypePointer Output 6(float) +146(@entryPointOutput): 145(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 15(r01): 8(ptr) Variable Function + 20(r12): 19(ptr) Variable Function + 24(r13): 23(ptr) Variable Function + 27(r14): 26(ptr) Variable Function + 30(r15): 29(ptr) Variable Function + 34(r16): 33(ptr) Variable Function + 38(r20): 37(ptr) Variable Function + 43(r21): 42(ptr) Variable Function + 48(r22): 47(ptr) Variable Function + 52(r23): 51(ptr) Variable Function + 57(r24): 56(ptr) Variable Function + 62(r30): 61(ptr) Variable Function + 66(r31): 65(ptr) Variable Function + 71(r32): 70(ptr) Variable Function + 75(r33): 74(ptr) Variable Function + 80(r34): 79(ptr) Variable Function + 85(r40): 84(ptr) Variable Function + 89(r41): 88(ptr) Variable Function + 92(r42): 8(ptr) Variable Function + 95(r43): 94(ptr) Variable Function + 100(r44): 99(ptr) Variable Function + 105(r50): 104(ptr) Variable Function + 122(r51): 104(ptr) Variable Function + 125(r61): 124(ptr) Variable Function + 130(r62): 129(ptr) Variable Function + 136(r65): 135(ptr) Variable Function + 141(r66): 140(ptr) Variable Function + Store 9(r00) 14 + Store 15(r01) 17 + Store 20(r12) 21 + Store 24(r13) 25 + Store 27(r14) 10 + Store 30(r15) 31 + Store 34(r16) 35 + Store 38(r20) 40 + Store 43(r21) 45 + Store 48(r22) 49 + Store 52(r23) 54 + Store 57(r24) 59 + Store 62(r30) 63 + Store 66(r31) 68 + Store 71(r32) 72 + Store 75(r33) 77 + Store 80(r34) 82 + Store 85(r40) 86 + Store 89(r41) 91 + Store 92(r42) 14 + Store 95(r43) 97 + Store 100(r44) 102 + Store 105(r50) 121 + Store 122(r51) 121 + Store 125(r61) 127 + Store 130(r62) 133 + Store 136(r65) 138 + Store 141(r66) 144 + Store 146(@entryPointOutput) 106 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.tx.bracket.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.tx.bracket.frag.out new file mode 100644 index 0000000000..d000257e16 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.tx.bracket.frag.out @@ -0,0 +1,702 @@ +hlsl.tx.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: SomeValue( (temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float (temp 4-component vector of float) +0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch (temp 4-component vector of float) +0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:49 c1: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'r00' (temp 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:51 c1: direct index for structure (layout(offset=0 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'r01' (temp 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 c1: direct index for structure (layout(offset=0 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'r02' (temp 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'r10' (temp 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'r11' (temp 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'r12' (temp 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'r20' (temp 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'r21' (temp 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'r22' (temp 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:66 textureFetch (temp 4-component vector of float) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:66 c1: direct index for structure (layout(offset=0 ) uniform int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:67 textureFetch (temp 4-component vector of int) +0:67 'g_tTex1di4' (uniform itexture1D) +0:67 c1: direct index for structure (layout(offset=0 ) uniform int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:68 textureFetch (temp 4-component vector of uint) +0:68 'g_tTex1du4' (uniform utexture1D) +0:68 c1: direct index for structure (layout(offset=0 ) uniform int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child (temp 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Sequence +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color}) +0:72 Constant: +0:72 0 (const int) +0:72 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: SomeValue( (temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float (temp 4-component vector of float) +0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch (temp 4-component vector of float) +0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:49 c1: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'r00' (temp 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:51 c1: direct index for structure (layout(offset=0 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'r01' (temp 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 c1: direct index for structure (layout(offset=0 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'r02' (temp 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'r10' (temp 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'r11' (temp 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'r12' (temp 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'r20' (temp 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'r21' (temp 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'r22' (temp 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:66 textureFetch (temp 4-component vector of float) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:66 c1: direct index for structure (layout(offset=0 ) uniform int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:67 textureFetch (temp 4-component vector of int) +0:67 'g_tTex1di4' (uniform itexture1D) +0:67 c1: direct index for structure (layout(offset=0 ) uniform int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:68 textureFetch (temp 4-component vector of uint) +0:68 'g_tTex1du4' (uniform utexture1D) +0:68 c1: direct index for structure (layout(offset=0 ) uniform int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child (temp 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Sequence +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color}) +0:72 Constant: +0:72 0 (const int) +0:72 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 183 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 158 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 28 "SomeValue(" + Name 41 "$Global" + MemberName 41($Global) 0 "c1" + MemberName 41($Global) 1 "c2" + MemberName 41($Global) 2 "c3" + MemberName 41($Global) 3 "c4" + MemberName 41($Global) 4 "o1" + MemberName 41($Global) 5 "o2" + MemberName 41($Global) 6 "o3" + MemberName 41($Global) 7 "o4" + Name 43 "" + Name 53 "g_tTex1df4" + Name 60 "r00" + Name 65 "r01" + Name 68 "g_tTex1di4" + Name 73 "r02" + Name 76 "g_tTex1du4" + Name 81 "r10" + Name 84 "g_tTex2df4" + Name 91 "r11" + Name 94 "g_tTex2di4" + Name 99 "r12" + Name 102 "g_tTex2du4" + Name 107 "r20" + Name 110 "g_tTex3df4" + Name 117 "r21" + Name 120 "g_tTex3di4" + Name 125 "r22" + Name 128 "g_tTex3du4" + Name 137 "param" + Name 143 "param" + Name 149 "param" + Name 151 "PS_OUTPUT" + MemberName 151(PS_OUTPUT) 0 "Color" + Name 153 "psout" + Name 158 "Color" + Name 164 "g_sSamp" + Name 167 "g_tTex1df4a" + Name 170 "g_tTex1di4a" + Name 173 "g_tTex1du4a" + Name 176 "g_tTex2df4a" + Name 179 "g_tTex2di4a" + Name 182 "g_tTex2du4a" + MemberDecorate 41($Global) 0 Offset 0 + MemberDecorate 41($Global) 1 Offset 8 + MemberDecorate 41($Global) 2 Offset 16 + MemberDecorate 41($Global) 3 Offset 32 + MemberDecorate 41($Global) 4 Offset 48 + MemberDecorate 41($Global) 5 Offset 56 + MemberDecorate 41($Global) 6 Offset 64 + MemberDecorate 41($Global) 7 Offset 80 + Decorate 41($Global) Block + Decorate 43 DescriptorSet 0 + Decorate 53(g_tTex1df4) DescriptorSet 0 + Decorate 53(g_tTex1df4) Binding 0 + Decorate 68(g_tTex1di4) DescriptorSet 0 + Decorate 76(g_tTex1du4) DescriptorSet 0 + Decorate 84(g_tTex2df4) DescriptorSet 0 + Decorate 94(g_tTex2di4) DescriptorSet 0 + Decorate 102(g_tTex2du4) DescriptorSet 0 + Decorate 110(g_tTex3df4) DescriptorSet 0 + Decorate 120(g_tTex3di4) DescriptorSet 0 + Decorate 128(g_tTex3du4) DescriptorSet 0 + Decorate 158(Color) Location 0 + Decorate 164(g_sSamp) DescriptorSet 0 + Decorate 164(g_sSamp) Binding 0 + Decorate 167(g_tTex1df4a) DescriptorSet 0 + Decorate 170(g_tTex1di4a) DescriptorSet 0 + Decorate 173(g_tTex1du4a) DescriptorSet 0 + Decorate 176(g_tTex2df4a) DescriptorSet 0 + Decorate 179(g_tTex2di4a) DescriptorSet 0 + Decorate 182(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 21(fvec4) + 39: TypeVector 6(int) 2 + 40: TypeVector 6(int) 3 + 41($Global): TypeStruct 6(int) 39(ivec2) 40(ivec3) 7(ivec4) 6(int) 39(ivec2) 40(ivec3) 7(ivec4) + 42: TypePointer Uniform 41($Global) + 43: 42(ptr) Variable Uniform + 44: 6(int) Constant 3 + 45: TypePointer Uniform 7(ivec4) + 51: TypeImage 20(float) 1D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex1df4): 52(ptr) Variable UniformConstant + 55: 6(int) Constant 0 + 56: TypePointer Uniform 6(int) + 66: TypeImage 6(int) 1D sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex1di4): 67(ptr) Variable UniformConstant + 74: TypeImage 13(int) 1D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex1du4): 75(ptr) Variable UniformConstant + 82: TypeImage 20(float) 2D sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2df4): 83(ptr) Variable UniformConstant + 86: 6(int) Constant 1 + 87: TypePointer Uniform 39(ivec2) + 92: TypeImage 6(int) 2D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTex2di4): 93(ptr) Variable UniformConstant + 100: TypeImage 13(int) 2D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex2du4): 101(ptr) Variable UniformConstant + 108: TypeImage 20(float) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3df4): 109(ptr) Variable UniformConstant + 112: 6(int) Constant 2 + 113: TypePointer Uniform 40(ivec3) + 118: TypeImage 6(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3di4): 119(ptr) Variable UniformConstant + 126: TypeImage 13(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3du4): 127(ptr) Variable UniformConstant + 151(PS_OUTPUT): TypeStruct 21(fvec4) + 152: TypePointer Function 151(PS_OUTPUT) + 154: 20(float) Constant 1065353216 + 155: 21(fvec4) ConstantComposite 154 154 154 154 + 157: TypePointer Output 21(fvec4) + 158(Color): 157(ptr) Variable Output + 162: TypeSampler + 163: TypePointer UniformConstant 162 + 164(g_sSamp): 163(ptr) Variable UniformConstant + 165: TypeImage 20(float) 1D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex1df4a): 166(ptr) Variable UniformConstant + 168: TypeImage 6(int) 1D array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTex1di4a): 169(ptr) Variable UniformConstant + 171: TypeImage 13(int) 1D array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTex1du4a): 172(ptr) Variable UniformConstant + 174: TypeImage 20(float) 2D array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTex2df4a): 175(ptr) Variable UniformConstant + 177: TypeImage 6(int) 2D array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(g_tTex2di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 13(int) 2D array sampled format:Unknown + 181: TypePointer UniformConstant 180 +182(g_tTex2du4a): 181(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 60(r00): 22(ptr) Variable Function + 65(r01): 8(ptr) Variable Function + 73(r02): 15(ptr) Variable Function + 81(r10): 22(ptr) Variable Function + 91(r11): 8(ptr) Variable Function + 99(r12): 15(ptr) Variable Function + 107(r20): 22(ptr) Variable Function + 117(r21): 8(ptr) Variable Function + 125(r22): 15(ptr) Variable Function + 137(param): 22(ptr) Variable Function + 143(param): 8(ptr) Variable Function + 149(param): 15(ptr) Variable Function + 153(psout): 152(ptr) Variable Function + 54: 51 Load 53(g_tTex1df4) + 57: 56(ptr) AccessChain 43 55 + 58: 6(int) Load 57 + 59: 21(fvec4) ImageFetch 54 58 Lod 55 + 61: 51 Load 53(g_tTex1df4) + 62: 56(ptr) AccessChain 43 55 + 63: 6(int) Load 62 + 64: 21(fvec4) ImageFetch 61 63 Lod 55 + Store 60(r00) 64 + 69: 66 Load 68(g_tTex1di4) + 70: 56(ptr) AccessChain 43 55 + 71: 6(int) Load 70 + 72: 7(ivec4) ImageFetch 69 71 Lod 55 + Store 65(r01) 72 + 77: 74 Load 76(g_tTex1du4) + 78: 56(ptr) AccessChain 43 55 + 79: 6(int) Load 78 + 80: 14(ivec4) ImageFetch 77 79 Lod 55 + Store 73(r02) 80 + 85: 82 Load 84(g_tTex2df4) + 88: 87(ptr) AccessChain 43 86 + 89: 39(ivec2) Load 88 + 90: 21(fvec4) ImageFetch 85 89 Lod 55 + Store 81(r10) 90 + 95: 92 Load 94(g_tTex2di4) + 96: 87(ptr) AccessChain 43 86 + 97: 39(ivec2) Load 96 + 98: 7(ivec4) ImageFetch 95 97 Lod 55 + Store 91(r11) 98 + 103: 100 Load 102(g_tTex2du4) + 104: 87(ptr) AccessChain 43 86 + 105: 39(ivec2) Load 104 + 106: 14(ivec4) ImageFetch 103 105 Lod 55 + Store 99(r12) 106 + 111: 108 Load 110(g_tTex3df4) + 114: 113(ptr) AccessChain 43 112 + 115: 40(ivec3) Load 114 + 116: 21(fvec4) ImageFetch 111 115 Lod 55 + Store 107(r20) 116 + 121: 118 Load 120(g_tTex3di4) + 122: 113(ptr) AccessChain 43 112 + 123: 40(ivec3) Load 122 + 124: 7(ivec4) ImageFetch 121 123 Lod 55 + Store 117(r21) 124 + 129: 126 Load 128(g_tTex3du4) + 130: 113(ptr) AccessChain 43 112 + 131: 40(ivec3) Load 130 + 132: 14(ivec4) ImageFetch 129 131 Lod 55 + Store 125(r22) 132 + 133: 51 Load 53(g_tTex1df4) + 134: 56(ptr) AccessChain 43 55 + 135: 6(int) Load 134 + 136: 21(fvec4) ImageFetch 133 135 Lod 55 + Store 137(param) 136 + 138: 21(fvec4) FunctionCall 25(Fn1(vf4;) 137(param) + 139: 66 Load 68(g_tTex1di4) + 140: 56(ptr) AccessChain 43 55 + 141: 6(int) Load 140 + 142: 7(ivec4) ImageFetch 139 141 Lod 55 + Store 143(param) 142 + 144: 7(ivec4) FunctionCall 11(Fn1(vi4;) 143(param) + 145: 74 Load 76(g_tTex1du4) + 146: 56(ptr) AccessChain 43 55 + 147: 6(int) Load 146 + 148: 14(ivec4) ImageFetch 145 147 Lod 55 + Store 149(param) 148 + 150: 14(ivec4) FunctionCall 18(Fn1(vu4;) 149(param) + 156: 22(ptr) AccessChain 153(psout) 55 + Store 156 155 + 159: 22(ptr) AccessChain 153(psout) 55 + 160: 21(fvec4) Load 159 + Store 158(Color) 160 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 30: 7(ivec4) Load 10(x) + ReturnValue 30 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 33: 14(ivec4) Load 17(x) + ReturnValue 33 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 36: 21(fvec4) Load 24(x) + ReturnValue 36 + FunctionEnd + 28(SomeValue(): 21(fvec4) Function None 27 + 29: Label + 46: 45(ptr) AccessChain 43 44 + 47: 7(ivec4) Load 46 + 48: 21(fvec4) ConvertSToF 47 + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/hlsl.typedef.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.typedef.frag.out similarity index 61% rename from deps/glslang-new/Test/baseResults/hlsl.typedef.frag.out rename to deps/glslang/glslang-old/Test/baseResults/hlsl.typedef.frag.out index 11fd10741a..565f45fd5b 100755 --- a/deps/glslang-new/Test/baseResults/hlsl.typedef.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.typedef.frag.out @@ -1,39 +1,39 @@ hlsl.typedef.frag -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (temp 4-component vector of float) 0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) -0:4 'ii' ( in int) +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 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 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: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: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 @@ -41,45 +41,45 @@ Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 500 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (temp 4-component vector of float) 0:4 Function Parameters: -0:4 'input' ( in 4-component vector of float) -0:4 'ii' ( in int) +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 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 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: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: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 +// Generated by (magic number): 80001 // Id's are bound by 34 Capability Shader @@ -87,7 +87,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 500 Name 4 "PixelShaderFunction" Name 14 "ShaderFunction(vf4;i1;" Name 12 "input" diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.void.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.void.frag.out new file mode 100755 index 0000000000..6faa388a3a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.void.frag.out @@ -0,0 +1,73 @@ +hlsl.void.frag +Shader version: 450 +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' (layout(location=0 ) 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:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +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' (layout(location=0 ) 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:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 17 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 16 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 6 "foo1(" + Name 8 "foo2(" + Name 16 "input" + Decorate 16(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 13: TypeFloat 32 + 14: TypeVector 13(float) 4 + 15: TypePointer Input 14(fvec4) + 16(input): 15(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 10: 2 FunctionCall 6(foo1() + 11: 2 FunctionCall 8(foo2() + Return + FunctionEnd + 6(foo1(): 2 Function None 3 + 7: Label + Return + FunctionEnd + 8(foo2(): 2 Function None 3 + 9: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/hlsl.whileLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/hlsl.whileLoop.frag.out new file mode 100755 index 0000000000..699364ff0d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/hlsl.whileLoop.frag.out @@ -0,0 +1,162 @@ +hlsl.whileLoop.frag +Shader version: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 Loop Body +0:? Sequence +0:3 Sequence +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 'input' (layout(location=0 ) in 4-component vector of float) +0:3 Branch: Return +0:4 Loop with condition tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition tested first +0:5 Loop Condition +0:5 Constant: +0:5 false (const bool) +0:5 No loop body +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Constant: +0:6 false (const bool) +0:6 No loop body +0:? Linker Objects +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: 450 +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' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 Loop Body +0:? Sequence +0:3 Sequence +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 'input' (layout(location=0 ) in 4-component vector of float) +0:3 Branch: Return +0:4 Loop with condition tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition tested first +0:5 Loop Condition +0:5 Constant: +0:5 false (const bool) +0:5 No loop body +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Constant: +0:6 false (const bool) +0:6 No loop body +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 41 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 14 22 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 14 "input" + Name 22 "@entryPointOutput" + Decorate 14(input) Location 0 + Decorate 22(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 11: TypeFloat 32 + 12: TypeVector 11(float) 4 + 13: TypePointer Input 12(fvec4) + 14(input): 13(ptr) Variable Input + 17: TypeBool + 18: TypeVector 17(bool) 4 + 21: TypePointer Output 12(fvec4) +22(@entryPointOutput): 21(ptr) Variable Output + 30: 17(bool) ConstantFalse +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Branch 6 + 6: Label + LoopMerge 8 9 None + Branch 10 + 10: Label + 15: 12(fvec4) Load 14(input) + 16: 12(fvec4) Load 14(input) + 19: 18(bvec4) FOrdNotEqual 15 16 + 20: 17(bool) Any 19 + BranchConditional 20 7 8 + 7: Label + 23: 12(fvec4) Load 14(input) + Store 22(@entryPointOutput) 23 + Return + 9: Label + Branch 6 + 8: Label + Branch 25 + 25: Label + LoopMerge 27 28 None + Branch 29 + 29: Label + BranchConditional 30 26 27 + 26: Label + Branch 28 + 28: Label + Branch 25 + 27: Label + Branch 31 + 31: Label + LoopMerge 33 34 None + Branch 35 + 35: Label + BranchConditional 30 32 33 + 32: Label + Branch 34 + 34: Label + Branch 31 + 33: Label + Branch 36 + 36: Label + LoopMerge 38 39 None + Branch 40 + 40: Label + BranchConditional 30 37 38 + 37: Label + Branch 39 + 39: Label + Branch 36 + 38: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/length.frag.out b/deps/glslang/glslang-old/Test/baseResults/length.frag.out new file mode 100644 index 0000000000..1c42560711 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/lineContinuation.vert.out b/deps/glslang/glslang-old/Test/baseResults/lineContinuation.vert.out new file mode 100644 index 0000000000..d91ffa31ac --- /dev/null +++ b/deps/glslang/glslang-old/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 +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 12300000000000000.000000 +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 12300000000000000.000000 +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-new/Test/baseResults/lineContinuation100.vert.out b/deps/glslang/glslang-old/Test/baseResults/lineContinuation100.vert.out similarity index 50% rename from deps/glslang-new/Test/baseResults/lineContinuation100.vert.out rename to deps/glslang/glslang-old/Test/baseResults/lineContinuation100.vert.out index c86b52bf91..1fb309b3c9 100644 --- a/deps/glslang-new/Test/baseResults/lineContinuation100.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/lineContinuation100.vert.out @@ -25,57 +25,57 @@ 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 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: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: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: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: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 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 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 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 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:? 'foo' (global highp float) +0:? 'a1' (const highp int) 0:? 4 (const int) -0:? 'a2' ( const highp int) +0:? 'a2' (const highp int) 0:? 3 (const int) -0:? 'a3' ( const highp int) +0:? 'a3' (const highp int) 0:? 4 (const int) -0:? 'a4' ( const highp 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:? 'q1' (global highp int) +0:? 'q2' (global highp int) +0:? 'q3' (global highp int) +0:? 'q4' (global highp int) Linked vertex stage: @@ -83,45 +83,45 @@ Linked vertex stage: Shader version: 100 ERROR: node is still EOpNull! -0:20 Function Definition: main( ( global void) +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: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 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 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 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 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:? 'foo' (global highp float) +0:? 'a1' (const highp int) 0:? 4 (const int) -0:? 'a2' ( const highp int) +0:? 'a2' (const highp int) 0:? 3 (const int) -0:? 'a3' ( const highp int) +0:? 'a3' (const highp int) 0:? 4 (const int) -0:? 'a4' ( const highp 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:? '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-old/Test/baseResults/link1.frag.out b/deps/glslang/glslang-old/Test/baseResults/link1.frag.out new file mode 100644 index 0000000000..51d7475a5b --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/localAggregates.frag.out b/deps/glslang/glslang-old/Test/baseResults/localAggregates.frag.out new file mode 100644 index 0000000000..2e8ae76c0b --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/loops.frag.out b/deps/glslang/glslang-old/Test/baseResults/loops.frag.out new file mode 100644 index 0000000000..b592dbd845 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/loopsArtificial.frag.out b/deps/glslang/glslang-old/Test/baseResults/loopsArtificial.frag.out new file mode 100644 index 0000000000..39fae13d4d --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/mains1.frag.out b/deps/glslang/glslang-old/Test/baseResults/mains1.frag.out similarity index 85% rename from deps/glslang-new/Test/baseResults/mains1.frag.out rename to deps/glslang/glslang-old/Test/baseResults/mains1.frag.out index 3b318b6260..95e98e40ba 100644 --- a/deps/glslang-new/Test/baseResults/mains1.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/mains1.frag.out @@ -1,14 +1,14 @@ mains1.frag Shader version: 110 0:? Sequence -0:3 Function Definition: main( ( global void) +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 Definition: main( (global void) 0:3 Function Parameters: 0:? Linker Objects @@ -23,7 +23,7 @@ max_vertices = -1 input primitive = none output primitive = points ERROR: node is still EOpNull! -0:3 Function Definition: foo( ( global void) +0:3 Function Definition: foo( (global void) 0:3 Function Parameters: 0:? Linker Objects @@ -34,7 +34,7 @@ max_vertices = -1 input primitive = none output primitive = line_strip 0:? Sequence -0:3 Function Definition: bar( ( global void) +0:3 Function Definition: bar( (global void) 0:3 Function Parameters: 0:? Linker Objects @@ -61,9 +61,9 @@ ERROR: node is still EOpNull! 0:? Linker Objects Shader version: 110 0:? Sequence -0:3 Function Definition: main( ( global void) +0:3 Function Definition: main( (global void) 0:3 Function Parameters: -0:3 Function Definition: main( ( global void) +0:3 Function Definition: main( (global void) 0:3 Function Parameters: 0:? Linker Objects diff --git a/deps/glslang/glslang-old/Test/baseResults/matrix.frag.out b/deps/glslang/glslang-old/Test/baseResults/matrix.frag.out new file mode 100644 index 0000000000..14c3548b14 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/matrix2.frag.out b/deps/glslang/glslang-old/Test/baseResults/matrix2.frag.out new file mode 100644 index 0000000000..d09dec0bf1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/matrix2.frag.out @@ -0,0 +1,347 @@ +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:? 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:? 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-old/Test/baseResults/matrixError.vert.out b/deps/glslang/glslang-old/Test/baseResults/matrixError.vert.out new file mode 100644 index 0000000000..ee0646ea0c --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/matrixError.vert.out @@ -0,0 +1,71 @@ +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: 7 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:? 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:? 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-old/Test/baseResults/maxClipDistances.vert.out b/deps/glslang/glslang-old/Test/baseResults/maxClipDistances.vert.out new file mode 100644 index 0000000000..4ad4ef15b8 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/max_vertices_0.geom.out b/deps/glslang/glslang-old/Test/baseResults/max_vertices_0.geom.out new file mode 100644 index 0000000000..94890bc891 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/missingBodies.vert.out b/deps/glslang/glslang-old/Test/baseResults/missingBodies.vert.out new file mode 100755 index 0000000000..6d77e0933e --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/missingBodies.vert.out @@ -0,0 +1,98 @@ +missingBodies.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 450 +0:? Sequence +0:4 Function Definition: foo( (global void) +0:4 Function Parameters: +0:4 Sequence +0:4 Function Call: bar( (global void) +0:8 Function Definition: C(i1;i1; (global void) +0:8 Function Parameters: +0:8 '' (in int) +0:8 '' (in int) +0:10 Function Definition: A( (global void) +0:10 Function Parameters: +0:10 Sequence +0:10 Function Call: B( (global void) +0:10 Function Call: C(i1; (global void) +0:10 Constant: +0:10 1 (const int) +0:10 Function Call: C(b1; (global void) +0:10 Constant: +0:10 true (const bool) +0:10 Function Call: C(i1;i1; (global void) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 2 (const int) +0:12 Function Definition: main( (global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Function Call: foo( (global void) +0:15 Function Call: C(b1; (global void) +0:15 Constant: +0:15 true (const bool) +0:20 Sequence +0:20 move second child to first child (temp int) +0:20 'f1' (global int) +0:20 Function Call: ret1( (global int) +0:22 Function Definition: ret2( (global int) +0:22 Function Parameters: +0:22 Sequence +0:22 Branch: Return with expression +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 move second child to first child (temp int) +0:24 'f2' (global int) +0:24 Function Call: ret2( (global int) +0:? Linker Objects +0:? 'f1' (global int) +0:? 'f2' (global int) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + ret1( +ERROR: Linking vertex stage: No function definition (body) found: + C(b1; +ERROR: Linking vertex stage: No function definition (body) found: + bar( + +Shader version: 450 +0:? Sequence +0:4 Function Definition: foo( (global void) +0:4 Function Parameters: +0:4 Sequence +0:4 Function Call: bar( (global void) +0:12 Function Definition: main( (global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Function Call: foo( (global void) +0:15 Function Call: C(b1; (global void) +0:15 Constant: +0:15 true (const bool) +0:20 Sequence +0:20 move second child to first child (temp int) +0:20 'f1' (global int) +0:20 Function Call: ret1( (global int) +0:22 Function Definition: ret2( (global int) +0:22 Function Parameters: +0:22 Sequence +0:22 Branch: Return with expression +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 move second child to first child (temp int) +0:24 'f2' (global int) +0:24 Function Call: ret2( (global int) +0:? Linker Objects +0:? 'f1' (global int) +0:? 'f2' (global int) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/deps/glslang-new/Test/baseResults/negativeArraySize.comp.out b/deps/glslang/glslang-old/Test/baseResults/negativeArraySize.comp.out similarity index 66% rename from deps/glslang-new/Test/baseResults/negativeArraySize.comp.out rename to deps/glslang/glslang-old/Test/baseResults/negativeArraySize.comp.out index 0a5ba310fb..ccbabf5f15 100644 --- a/deps/glslang-new/Test/baseResults/negativeArraySize.comp.out +++ b/deps/glslang/glslang-old/Test/baseResults/negativeArraySize.comp.out @@ -1,4 +1,5 @@ negativeArraySize.comp +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:9: '' : array size must be a positive integer ERROR: 1 compilation errors. No code generated. @@ -6,7 +7,7 @@ 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 Definition: main( (global void) 0:7 Function Parameters: 0:? Linker Objects @@ -17,7 +18,7 @@ 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 Definition: main( (global void) 0:7 Function Parameters: 0:? Linker Objects diff --git a/deps/glslang/glslang-old/Test/baseResults/newTexture.frag.out b/deps/glslang/glslang-old/Test/baseResults/newTexture.frag.out new file mode 100644 index 0000000000..f63d79f12d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/newTexture.frag.out @@ -0,0 +1,523 @@ +newTexture.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. + +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-new/Test/baseResults/noMain.vert.out b/deps/glslang/glslang-old/Test/baseResults/noMain.vert.out similarity index 58% rename from deps/glslang-new/Test/baseResults/noMain.vert.out rename to deps/glslang/glslang-old/Test/baseResults/noMain.vert.out index dd26243856..60ac3a3a5b 100644 --- a/deps/glslang-new/Test/baseResults/noMain.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/noMain.vert.out @@ -1,11 +1,11 @@ noMain.vert Shader version: 300 0:? Sequence -0:3 Function Definition: foo( ( global void) +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) +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 @@ -14,9 +14,9 @@ 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 Definition: main( (global void) 0:3 Function Parameters: -0:7 Function Definition: main( ( global void) +0:7 Function Definition: main( (global void) 0:7 Function Parameters: 0:? Linker Objects @@ -31,13 +31,13 @@ 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) +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 Definition: main( (global void) 0:3 Function Parameters: -0:7 Function Definition: main( ( global void) +0:7 Function Definition: main( (global void) 0:7 Function Parameters: 0:? Linker Objects diff --git a/deps/glslang/glslang-old/Test/baseResults/nonSquare.vert.out b/deps/glslang/glslang-old/Test/baseResults/nonSquare.vert.out new file mode 100644 index 0000000000..c0753696a2 --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/nonVulkan.frag.out b/deps/glslang/glslang-old/Test/baseResults/nonVulkan.frag.out similarity index 55% rename from deps/glslang-new/Test/baseResults/nonVulkan.frag.out rename to deps/glslang/glslang-old/Test/baseResults/nonVulkan.frag.out index 2b8b6a0ce3..8e03610e0d 100644 --- a/deps/glslang-new/Test/baseResults/nonVulkan.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/nonVulkan.frag.out @@ -1,4 +1,5 @@ nonVulkan.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -9,10 +10,10 @@ 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:? '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}) +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: @@ -22,8 +23,8 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr Shader version: 450 ERROR: node is still EOpNull! 0:? Linker Objects -0:? 'arraySize' ( specialization-constant const int) +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}) +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-old/Test/baseResults/numeral.frag.out b/deps/glslang/glslang-old/Test/baseResults/numeral.frag.out new file mode 100644 index 0000000000..e5b2041056 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/numeral.frag.out @@ -0,0 +1,829 @@ +numeral.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +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: 12 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 995208915 (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 536870912 (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 -1 (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 0.000005 +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) + + +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 995208915 (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 536870912 (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 -1 (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 0.000005 +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) + diff --git a/deps/glslang/glslang-old/Test/baseResults/pointCoord.frag.out b/deps/glslang/glslang-old/Test/baseResults/pointCoord.frag.out new file mode 100644 index 0000000000..5d53aea180 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/precise.tesc.out b/deps/glslang/glslang-old/Test/baseResults/precise.tesc.out new file mode 100644 index 0000000000..17c7d53f70 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/precise.tesc.out @@ -0,0 +1,398 @@ +precise.tesc +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +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-old/Test/baseResults/precise_struct_block.vert.out b/deps/glslang/glslang-old/Test/baseResults/precise_struct_block.vert.out new file mode 100644 index 0000000000..e40fd0cd60 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/precise_struct_block.vert.out @@ -0,0 +1,536 @@ +precise_struct_block.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +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-old/Test/baseResults/precision.frag.out b/deps/glslang/glslang-old/Test/baseResults/precision.frag.out new file mode 100644 index 0000000000..5ab99e99a3 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/precision.vert.out b/deps/glslang/glslang-old/Test/baseResults/precision.vert.out new file mode 100644 index 0000000000..f433ba5257 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/prepost.frag.out b/deps/glslang/glslang-old/Test/baseResults/prepost.frag.out new file mode 100644 index 0000000000..ac24229597 --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err diff --git a/deps/glslang-new/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out diff --git a/deps/glslang-new/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err diff --git a/deps/glslang-new/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out diff --git a/deps/glslang-new/Test/baseResults/preprocessor.defined.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.defined.vert.err similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.defined.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.defined.vert.err diff --git a/deps/glslang-new/Test/baseResults/preprocessor.defined.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.defined.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.defined.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.defined.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/preprocessor.edge_cases.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.edge_cases.vert.err new file mode 100644 index 0000000000..5f177e6cc1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.edge_cases.vert.err @@ -0,0 +1,2 @@ +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + diff --git a/deps/glslang-new/Test/baseResults/preprocessor.edge_cases.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.edge_cases.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.edge_cases.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.edge_cases.vert.out diff --git a/deps/glslang-new/Test/baseResults/preprocessor.eof_missing.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.eof_missing.vert.err similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.eof_missing.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.eof_missing.vert.err diff --git a/deps/glslang-new/Test/baseResults/preprocessor.eof_missing.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.eof_missing.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.eof_missing.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.eof_missing.vert.out diff --git a/deps/glslang-new/Test/baseResults/preprocessor.errors.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.errors.vert.err similarity index 72% rename from deps/glslang-new/Test/baseResults/preprocessor.errors.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.errors.vert.err index bc588958fe..cfde4041e9 100644 --- a/deps/glslang-new/Test/baseResults/preprocessor.errors.vert.err +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.errors.vert.err @@ -1,3 +1,4 @@ +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 diff --git a/deps/glslang-new/Test/baseResults/preprocessor.errors.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.errors.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.errors.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.errors.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/preprocessor.extensions.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.extensions.vert.err new file mode 100644 index 0000000000..925cc0ca05 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.extensions.vert.err @@ -0,0 +1,3 @@ +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples + diff --git a/deps/glslang-new/Test/baseResults/preprocessor.extensions.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.extensions.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.extensions.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.extensions.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/preprocessor.function_macro.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.function_macro.vert.err new file mode 100644 index 0000000000..5f177e6cc1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.function_macro.vert.err @@ -0,0 +1,2 @@ +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + diff --git a/deps/glslang-new/Test/baseResults/preprocessor.function_macro.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.function_macro.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.function_macro.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.function_macro.vert.out diff --git a/deps/glslang-new/Test/baseResults/preprocessor.include.disabled.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.include.disabled.vert.err similarity index 59% rename from deps/glslang-new/Test/baseResults/preprocessor.include.disabled.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.include.disabled.vert.err index 14192046a8..7d1f0a0058 100644 --- a/deps/glslang-new/Test/baseResults/preprocessor.include.disabled.vert.err +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.include.disabled.vert.err @@ -1,13 +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:8000: '#include' : must be followed by a file designation 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:8001: '#include' : must be followed by a file designation 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:8002: '#include' : unexpected include directive ERROR: 0:8003: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8003: '#include' : extra content after header name: foo +ERROR: 0:8003: '#include' : extra content after file designation ERROR: 0:8004: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8004: '#include' : expected newline after header name: no-eol +ERROR: 0:8004: '#include' : unexpected include directive ERROR: 10 compilation errors. No code generated. diff --git a/deps/glslang-new/Test/baseResults/preprocessor.include.disabled.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.include.disabled.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.include.disabled.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.include.disabled.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/preprocessor.include.enabled.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.include.enabled.vert.err new file mode 100644 index 0000000000..be8c5cf3a1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.include.enabled.vert.err @@ -0,0 +1,8 @@ +ERROR: 0:8000: '#include' : must be followed by a file designation +ERROR: 0:8001: '#include' : must be followed by a file designation +ERROR: 0:8002: '#include' : unexpected include directive +ERROR: 0:8003: '#include' : extra content after file designation +ERROR: 0:8004: '#include' : unexpected include directive +ERROR: 5 compilation errors. No code generated. + + diff --git a/deps/glslang-new/Test/baseResults/preprocessor.include.enabled.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.include.enabled.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.include.enabled.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.include.enabled.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/preprocessor.line.frag.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.line.frag.err new file mode 100644 index 0000000000..5f177e6cc1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.line.frag.err @@ -0,0 +1,2 @@ +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + diff --git a/deps/glslang-new/Test/baseResults/preprocessor.line.frag.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.line.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.line.frag.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.line.frag.out diff --git a/deps/glslang-new/Test/baseResults/preprocessor.line.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.line.vert.err similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.line.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.line.vert.err diff --git a/deps/glslang-new/Test/baseResults/preprocessor.line.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.line.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.line.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.line.vert.out diff --git a/deps/glslang-new/Test/baseResults/preprocessor.many.endif.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.many.endif.vert.err similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.many.endif.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.many.endif.vert.err diff --git a/deps/glslang-new/Test/baseResults/preprocessor.many.endif.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.many.endif.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.many.endif.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.many.endif.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/preprocessor.pragma.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.pragma.vert.err new file mode 100644 index 0000000000..5f177e6cc1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.pragma.vert.err @@ -0,0 +1,2 @@ +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + diff --git a/deps/glslang-new/Test/baseResults/preprocessor.pragma.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.pragma.vert.out similarity index 91% rename from deps/glslang-new/Test/baseResults/preprocessor.pragma.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.pragma.vert.out index ebe1e4a749..8c52814468 100644 --- a/deps/glslang-new/Test/baseResults/preprocessor.pragma.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.pragma.vert.out @@ -7,8 +7,6 @@ #pragma undefined_pragma(x,4) -#pragma once - int main(){ } diff --git a/deps/glslang/glslang-old/Test/baseResults/preprocessor.simple.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.simple.vert.err new file mode 100644 index 0000000000..5f177e6cc1 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.simple.vert.err @@ -0,0 +1,2 @@ +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + diff --git a/deps/glslang-new/Test/baseResults/preprocessor.simple.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.simple.vert.out similarity index 94% rename from deps/glslang-new/Test/baseResults/preprocessor.simple.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.simple.vert.out index 56bfe010f9..8cbabdad89 100644 --- a/deps/glslang-new/Test/baseResults/preprocessor.simple.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/preprocessor.simple.vert.out @@ -25,6 +25,6 @@ int main(){ == != & ^ | && ^^ || ? : += -= *= /= %= <<= >>= &= |= ^= - 1.2 2E10 5u - 5l f + 1.2 2E10 5u - 5 lf } diff --git a/deps/glslang-new/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err b/deps/glslang/glslang-old/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err diff --git a/deps/glslang-new/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out b/deps/glslang/glslang-old/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out rename to deps/glslang/glslang-old/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out diff --git a/deps/glslang/glslang-old/Test/baseResults/recurse1.vert.out b/deps/glslang/glslang-old/Test/baseResults/recurse1.vert.out new file mode 100644 index 0000000000..4274eb3849 --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/reflection.vert.out b/deps/glslang/glslang-old/Test/baseResults/reflection.vert.out similarity index 91% rename from deps/glslang-new/Test/baseResults/reflection.vert.out rename to deps/glslang/glslang-old/Test/baseResults/reflection.vert.out index 422c049be6..ba3e0e698a 100644 --- a/deps/glslang-new/Test/baseResults/reflection.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/reflection.vert.out @@ -1,4 +1,6 @@ reflection.vert +Warning, version 440 is not yet complete; most version-specific features are present, but some are missing. + 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 @@ -70,10 +72,6 @@ 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 @@ -92,10 +90,6 @@ 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 @@ -103,5 +97,4 @@ 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-old/Test/baseResults/remap.basic.dcefunc.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.basic.dcefunc.frag.out new file mode 100644 index 0000000000..99b4d55194 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/remap.basic.dcefunc.frag.out @@ -0,0 +1,36 @@ +remap.basic.dcefunc.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 19 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 16 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "dead_fn(" + Name 14 "outf4" + Name 16 "inf" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 10: 6(float) Constant 0 + 11: 7(fvec3) ConstantComposite 10 10 10 + 12: TypeVector 6(float) 4 + 13: TypePointer Output 12(fvec4) + 14(outf4): 13(ptr) Variable Output + 15: TypePointer Input 6(float) + 16(inf): 15(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 17: 6(float) Load 16(inf) + 18: 12(fvec4) CompositeConstruct 17 17 17 17 + Store 14(outf4) 18 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/remap.basic.dcevartype.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.basic.dcevartype.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/remap.basic.dcevartype.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.basic.dcevartype.frag.out diff --git a/deps/glslang-new/Test/baseResults/remap.basic.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.basic.everything.frag.out similarity index 88% rename from deps/glslang-new/Test/baseResults/remap.basic.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.basic.everything.frag.out index 858d629e46..357a8d2be5 100644 --- a/deps/glslang-new/Test/baseResults/remap.basic.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.basic.everything.frag.out @@ -1,6 +1,8 @@ remap.basic.everything.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 24969 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/remap.basic.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.basic.none.frag.out similarity index 59% rename from deps/glslang-new/Test/baseResults/remap.basic.none.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.basic.none.frag.out index 1ad1d74c78..39e56b2e01 100644 --- a/deps/glslang-new/Test/baseResults/remap.basic.none.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.basic.none.frag.out @@ -1,18 +1,20 @@ remap.basic.none.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): 80007 -// Id's are bound by 22 +// Generated by (magic number): 80001 +// Id's are bound by 20 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 19 + EntryPoint Fragment 4 "main" 15 17 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "dead_fn(" - Name 17 "outf4" - Name 19 "inf" + Name 15 "outf4" + Name 17 "inf" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -20,16 +22,16 @@ remap.basic.none.frag 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 + 13: TypeVector 6(float) 4 + 14: TypePointer Output 13(fvec4) + 15(outf4): 14(ptr) Variable Output + 16: TypePointer Input 6(float) + 17(inf): 16(ptr) Variable Input 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 + 18: 6(float) Load 17(inf) + 19: 13(fvec4) CompositeConstruct 18 18 18 18 + Store 15(outf4) 19 Return FunctionEnd 9(dead_fn(): 7(fvec3) Function None 8 diff --git a/deps/glslang-new/Test/baseResults/remap.basic.strip.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.basic.strip.frag.out similarity index 59% rename from deps/glslang-new/Test/baseResults/remap.basic.strip.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.basic.strip.frag.out index 3d876d0d68..27c0874b7d 100644 --- a/deps/glslang-new/Test/baseResults/remap.basic.strip.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.basic.strip.frag.out @@ -1,12 +1,14 @@ remap.basic.strip.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): 80007 -// Id's are bound by 22 +// Generated by (magic number): 80001 +// Id's are bound by 20 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 19 + EntryPoint Fragment 4 "main" 15 17 ExecutionMode 4 OriginUpperLeft 2: TypeVoid 3: TypeFunction 2 @@ -15,16 +17,16 @@ remap.basic.strip.frag 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 + 13: TypeVector 6(float) 4 + 14: TypePointer Output 13(fvec4) + 15: 14(ptr) Variable Output + 16: TypePointer Input 6(float) + 17: 16(ptr) Variable Input 4: 2 Function None 3 5: Label - 20: 6(float) Load 19 - 21: 15(fvec4) CompositeConstruct 20 20 20 20 - Store 17 21 + 18: 6(float) Load 17 + 19: 13(fvec4) CompositeConstruct 18 18 18 18 + Store 15 19 Return FunctionEnd 9: 7(fvec3) Function None 8 diff --git a/deps/glslang-new/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out similarity index 60% rename from deps/glslang-new/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index 211daba25b..b49a10ba61 100644 --- a/deps/glslang-new/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -2,16 +2,15 @@ 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 +// Generated by (magic number): 80001 +// Id's are bound by 24916 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4253 3709 + EntryPoint Fragment 5663 "main" 4656 4112 ExecutionMode 5663 OriginUpperLeft - ExecutionMode 5663 DepthReplacing Decorate 4727 DescriptorSet 0 Decorate 4727 Binding 0 Decorate 3305 DescriptorSet 0 @@ -27,14 +26,10 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Decorate 3789 DescriptorSet 0 Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 - Decorate 4253 Location 0 - Decorate 3709 BuiltIn FragDepth + Decorate 4656 Location 0 + Decorate 4112 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) @@ -51,6 +46,8 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented 2598: 12(int) Constant 9 2601: 12(int) Constant 10 2604: 12(int) Constant 11 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 666: TypePointer Function 29(fvec4) 149: TypeImage 13(float) 1D sampled format:Unknown 786: TypePointer UniformConstant 149 @@ -123,107 +120,100 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented 795: TypePointer UniformConstant 158 3869: 795(ptr) Variable UniformConstant 521: TypeSampledImage 158 + 1032: TypeStruct 29(fvec4) 13(float) 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 + 4656: 667(ptr) Variable Output 651: TypePointer Output 13(float) - 3709: 651(ptr) Variable Output + 4112: 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 + 24915: 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 + 22097: 649(ptr) AccessChain 5830 2574 + Store 22097 2574 + 19732: 649(ptr) AccessChain 5830 2577 + Store 19732 2574 + 19733: 649(ptr) AccessChain 5830 2580 + Store 19733 2574 + 19734: 649(ptr) AccessChain 5830 2583 + Store 19734 2574 + 19735: 649(ptr) AccessChain 5830 2586 + Store 19735 2574 + 19736: 649(ptr) AccessChain 5830 2589 + Store 19736 2574 + 19737: 649(ptr) AccessChain 5830 2571 + Store 19737 2574 + 19738: 649(ptr) AccessChain 5830 2592 + Store 19738 2574 + 19739: 649(ptr) AccessChain 5830 2595 + Store 19739 2574 + 19740: 649(ptr) AccessChain 5830 2598 + Store 19740 2574 + 19741: 649(ptr) AccessChain 5830 2601 + Store 19741 2574 + 19656: 649(ptr) AccessChain 5830 2604 + Store 19656 2574 + 14934: 149 Load 4727 + 11686: 508 Load 3305 + 11940: 510 SampledImage 14934 11686 + 7877: 29(fvec4) ImageSampleImplicitLod 11940 2935 + 15360: 148 Load 4743 + 15706: 508 Load 3305 + 11941: 511 SampledImage 15360 15706 + 7878: 26(ivec4) ImageSampleImplicitLod 11941 2821 + 15361: 147 Load 4807 + 15707: 508 Load 3305 + 11942: 512 SampledImage 15361 15707 + 7879: 23(ivec4) ImageSampleImplicitLod 11942 2151 + 15362: 150 Load 5042 + 15708: 508 Load 3305 + 11943: 513 SampledImage 15362 15708 + 7880: 29(fvec4) ImageSampleImplicitLod 11943 1825 + 15363: 151 Load 5058 + 15709: 508 Load 3305 + 11944: 514 SampledImage 15363 15709 + 7881: 26(ivec4) ImageSampleImplicitLod 11944 2028 + 15364: 152 Load 5122 + 15710: 508 Load 3305 + 11945: 515 SampledImage 15364 15710 + 7882: 23(ivec4) ImageSampleImplicitLod 11945 2684 + 15365: 153 Load 3967 + 15711: 508 Load 3305 + 11946: 516 SampledImage 15365 15711 + 7883: 29(fvec4) ImageSampleImplicitLod 11946 1660 + 15366: 154 Load 3983 + 15712: 508 Load 3305 + 11947: 517 SampledImage 15366 15712 + 7884: 26(ivec4) ImageSampleImplicitLod 11947 2174 + 15367: 155 Load 4047 + 15713: 508 Load 3305 + 11948: 518 SampledImage 15367 15713 + 7885: 23(ivec4) ImageSampleImplicitLod 11948 2476 + 15368: 156 Load 3789 + 15714: 508 Load 3305 + 11949: 519 SampledImage 15368 15714 + 7886: 29(fvec4) ImageSampleImplicitLod 11949 1660 + 15369: 157 Load 3805 + 15715: 508 Load 3305 + 11950: 520 SampledImage 15369 15715 + 7887: 26(ivec4) ImageSampleImplicitLod 11950 2174 + 15370: 158 Load 3869 + 15716: 508 Load 3305 + 12016: 521 SampledImage 15370 15716 + 7204: 23(ivec4) ImageSampleImplicitLod 12016 2476 + 20158: 666(ptr) AccessChain 5072 2571 + Store 20158 1284 + 19742: 650(ptr) AccessChain 5072 2574 + Store 19742 138 + 19848: 666(ptr) AccessChain 5072 2571 + 7967: 29(fvec4) Load 19848 + Store 4656 7967 + 16622: 650(ptr) AccessChain 5072 2574 + 11539: 13(float) Load 16622 + Store 4112 11539 + Return FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.none.frag.out new file mode 100644 index 0000000000..28c384cee4 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -0,0 +1,301 @@ +remap.hlsl.sample.basic.none.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 190 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 180 184 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 7 "MemberTest" + MemberName 7(MemberTest) 0 "Sample" + MemberName 7(MemberTest) 1 "CalculateLevelOfDetail" + MemberName 7(MemberTest) 2 "CalculateLevelOfDetailUnclamped" + MemberName 7(MemberTest) 3 "Gather" + MemberName 7(MemberTest) 4 "GetDimensions" + MemberName 7(MemberTest) 5 "GetSamplePosition" + MemberName 7(MemberTest) 6 "Load" + MemberName 7(MemberTest) 7 "SampleBias" + MemberName 7(MemberTest) 8 "SampleCmp" + MemberName 7(MemberTest) 9 "SampleCmpLevelZero" + MemberName 7(MemberTest) 10 "SampleGrad" + MemberName 7(MemberTest) 11 "SampleLevel" + Name 9 "mtest" + Name 38 "txval10" + Name 41 "g_tTex1df4" + Name 45 "g_sSamp" + Name 53 "txval11" + Name 56 "g_tTex1di4" + Name 66 "txval12" + Name 69 "g_tTex1du4" + Name 76 "txval20" + Name 79 "g_tTex2df4" + Name 87 "txval21" + Name 90 "g_tTex2di4" + Name 98 "txval22" + Name 101 "g_tTex2du4" + Name 110 "txval30" + Name 113 "g_tTex3df4" + Name 121 "txval31" + Name 124 "g_tTex3di4" + Name 131 "txval32" + Name 134 "g_tTex3du4" + Name 144 "txval40" + Name 147 "g_tTexcdf4" + Name 153 "txval41" + Name 156 "g_tTexcdi4" + Name 162 "txval42" + Name 165 "g_tTexcdu4" + Name 171 "PS_OUTPUT" + MemberName 171(PS_OUTPUT) 0 "Color" + MemberName 171(PS_OUTPUT) 1 "Depth" + Name 173 "psout" + Name 180 "Color" + Name 184 "Depth" + Name 187 "g_sSamp2d" + Name 188 "g_sSamp2D_b" + Name 189 "g_tTex1df4a" + Decorate 41(g_tTex1df4) DescriptorSet 0 + Decorate 41(g_tTex1df4) Binding 0 + Decorate 45(g_sSamp) DescriptorSet 0 + Decorate 45(g_sSamp) Binding 0 + Decorate 56(g_tTex1di4) DescriptorSet 0 + Decorate 69(g_tTex1du4) DescriptorSet 0 + Decorate 79(g_tTex2df4) DescriptorSet 0 + Decorate 90(g_tTex2di4) DescriptorSet 0 + Decorate 101(g_tTex2du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 124(g_tTex3di4) DescriptorSet 0 + Decorate 134(g_tTex3du4) DescriptorSet 0 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 156(g_tTexcdi4) DescriptorSet 0 + Decorate 165(g_tTexcdu4) DescriptorSet 0 + Decorate 180(Color) Location 0 + Decorate 184(Depth) BuiltIn FragDepth + Decorate 187(g_sSamp2d) DescriptorSet 0 + Decorate 188(g_sSamp2D_b) DescriptorSet 0 + Decorate 189(g_tTex1df4a) DescriptorSet 0 + Decorate 189(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7(MemberTest): TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Function 7(MemberTest) + 10: 6(int) Constant 1 + 11: TypePointer Function 6(int) + 13: 6(int) Constant 2 + 15: 6(int) Constant 3 + 17: 6(int) Constant 4 + 19: 6(int) Constant 5 + 21: 6(int) Constant 6 + 23: 6(int) Constant 0 + 25: 6(int) Constant 7 + 27: 6(int) Constant 8 + 29: 6(int) Constant 9 + 31: 6(int) Constant 10 + 33: 6(int) Constant 11 + 35: TypeFloat 32 + 36: TypeVector 35(float) 4 + 37: TypePointer Function 36(fvec4) + 39: TypeImage 35(float) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1df4): 40(ptr) Variable UniformConstant + 43: TypeSampler + 44: TypePointer UniformConstant 43 + 45(g_sSamp): 44(ptr) Variable UniformConstant + 47: TypeSampledImage 39 + 49: 35(float) Constant 1036831949 + 51: TypeVector 6(int) 4 + 52: TypePointer Function 51(ivec4) + 54: TypeImage 6(int) 1D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex1di4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: 35(float) Constant 1045220557 + 63: TypeInt 32 0 + 64: TypeVector 63(int) 4 + 65: TypePointer Function 64(ivec4) + 67: TypeImage 63(int) 1D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex1du4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 35(float) Constant 1050253722 + 77: TypeImage 35(float) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2df4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: TypeVector 35(float) 2 + 85: 84(fvec2) ConstantComposite 49 61 + 88: TypeImage 6(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2di4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 35(float) Constant 1053609165 + 96: 84(fvec2) ConstantComposite 74 95 + 99: TypeImage 63(int) 2D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex2du4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 35(float) Constant 1056964608 + 107: 35(float) Constant 1058642330 + 108: 84(fvec2) ConstantComposite 106 107 + 111: TypeImage 35(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 116: TypeSampledImage 111 + 118: TypeVector 35(float) 3 + 119: 118(fvec3) ConstantComposite 49 61 74 + 122: TypeImage 6(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3di4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 129: 118(fvec3) ConstantComposite 95 106 107 + 132: TypeImage 63(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3du4): 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 139: 35(float) Constant 1060320051 + 140: 35(float) Constant 1061997773 + 141: 35(float) Constant 1063675494 + 142: 118(fvec3) ConstantComposite 139 140 141 + 145: TypeImage 35(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 150: TypeSampledImage 145 + 154: TypeImage 6(int) Cube sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTexcdi4): 155(ptr) Variable UniformConstant + 159: TypeSampledImage 154 + 163: TypeImage 63(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdu4): 164(ptr) Variable UniformConstant + 168: TypeSampledImage 163 + 171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) + 172: TypePointer Function 171(PS_OUTPUT) + 174: 35(float) Constant 1065353216 + 175: 36(fvec4) ConstantComposite 174 174 174 174 + 177: TypePointer Function 35(float) + 179: TypePointer Output 36(fvec4) + 180(Color): 179(ptr) Variable Output + 183: TypePointer Output 35(float) + 184(Depth): 183(ptr) Variable Output + 187(g_sSamp2d): 44(ptr) Variable UniformConstant +188(g_sSamp2D_b): 44(ptr) Variable UniformConstant +189(g_tTex1df4a): 40(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(mtest): 8(ptr) Variable Function + 38(txval10): 37(ptr) Variable Function + 53(txval11): 52(ptr) Variable Function + 66(txval12): 65(ptr) Variable Function + 76(txval20): 37(ptr) Variable Function + 87(txval21): 52(ptr) Variable Function + 98(txval22): 65(ptr) Variable Function + 110(txval30): 37(ptr) Variable Function + 121(txval31): 52(ptr) Variable Function + 131(txval32): 65(ptr) Variable Function + 144(txval40): 37(ptr) Variable Function + 153(txval41): 52(ptr) Variable Function + 162(txval42): 65(ptr) Variable Function + 173(psout): 172(ptr) Variable Function + 12: 11(ptr) AccessChain 9(mtest) 10 + Store 12 10 + 14: 11(ptr) AccessChain 9(mtest) 13 + Store 14 10 + 16: 11(ptr) AccessChain 9(mtest) 15 + Store 16 10 + 18: 11(ptr) AccessChain 9(mtest) 17 + Store 18 10 + 20: 11(ptr) AccessChain 9(mtest) 19 + Store 20 10 + 22: 11(ptr) AccessChain 9(mtest) 21 + Store 22 10 + 24: 11(ptr) AccessChain 9(mtest) 23 + Store 24 10 + 26: 11(ptr) AccessChain 9(mtest) 25 + Store 26 10 + 28: 11(ptr) AccessChain 9(mtest) 27 + Store 28 10 + 30: 11(ptr) AccessChain 9(mtest) 29 + Store 30 10 + 32: 11(ptr) AccessChain 9(mtest) 31 + Store 32 10 + 34: 11(ptr) AccessChain 9(mtest) 33 + Store 34 10 + 42: 39 Load 41(g_tTex1df4) + 46: 43 Load 45(g_sSamp) + 48: 47 SampledImage 42 46 + 50: 36(fvec4) ImageSampleImplicitLod 48 49 + Store 38(txval10) 50 + 57: 54 Load 56(g_tTex1di4) + 58: 43 Load 45(g_sSamp) + 60: 59 SampledImage 57 58 + 62: 51(ivec4) ImageSampleImplicitLod 60 61 + Store 53(txval11) 62 + 70: 67 Load 69(g_tTex1du4) + 71: 43 Load 45(g_sSamp) + 73: 72 SampledImage 70 71 + 75: 64(ivec4) ImageSampleImplicitLod 73 74 + Store 66(txval12) 75 + 80: 77 Load 79(g_tTex2df4) + 81: 43 Load 45(g_sSamp) + 83: 82 SampledImage 80 81 + 86: 36(fvec4) ImageSampleImplicitLod 83 85 + Store 76(txval20) 86 + 91: 88 Load 90(g_tTex2di4) + 92: 43 Load 45(g_sSamp) + 94: 93 SampledImage 91 92 + 97: 51(ivec4) ImageSampleImplicitLod 94 96 + Store 87(txval21) 97 + 102: 99 Load 101(g_tTex2du4) + 103: 43 Load 45(g_sSamp) + 105: 104 SampledImage 102 103 + 109: 64(ivec4) ImageSampleImplicitLod 105 108 + Store 98(txval22) 109 + 114: 111 Load 113(g_tTex3df4) + 115: 43 Load 45(g_sSamp) + 117: 116 SampledImage 114 115 + 120: 36(fvec4) ImageSampleImplicitLod 117 119 + Store 110(txval30) 120 + 125: 122 Load 124(g_tTex3di4) + 126: 43 Load 45(g_sSamp) + 128: 127 SampledImage 125 126 + 130: 51(ivec4) ImageSampleImplicitLod 128 129 + Store 121(txval31) 130 + 135: 132 Load 134(g_tTex3du4) + 136: 43 Load 45(g_sSamp) + 138: 137 SampledImage 135 136 + 143: 64(ivec4) ImageSampleImplicitLod 138 142 + Store 131(txval32) 143 + 148: 145 Load 147(g_tTexcdf4) + 149: 43 Load 45(g_sSamp) + 151: 150 SampledImage 148 149 + 152: 36(fvec4) ImageSampleImplicitLod 151 119 + Store 144(txval40) 152 + 157: 154 Load 156(g_tTexcdi4) + 158: 43 Load 45(g_sSamp) + 160: 159 SampledImage 157 158 + 161: 51(ivec4) ImageSampleImplicitLod 160 129 + Store 153(txval41) 161 + 166: 163 Load 165(g_tTexcdu4) + 167: 43 Load 45(g_sSamp) + 169: 168 SampledImage 166 167 + 170: 64(ivec4) ImageSampleImplicitLod 169 142 + Store 162(txval42) 170 + 176: 37(ptr) AccessChain 173(psout) 23 + Store 176 175 + 178: 177(ptr) AccessChain 173(psout) 10 + Store 178 174 + 181: 37(ptr) AccessChain 173(psout) 23 + 182: 36(fvec4) Load 181 + Store 180(Color) 182 + 185: 177(ptr) AccessChain 173(psout) 10 + 186: 35(float) Load 185 + Store 184(Depth) 186 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out new file mode 100644 index 0000000000..10a8938df3 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -0,0 +1,252 @@ +remap.hlsl.sample.basic.strip.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 190 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 180 184 + ExecutionMode 4 OriginUpperLeft + Decorate 41 DescriptorSet 0 + Decorate 41 Binding 0 + Decorate 45 DescriptorSet 0 + Decorate 45 Binding 0 + Decorate 56 DescriptorSet 0 + Decorate 69 DescriptorSet 0 + Decorate 79 DescriptorSet 0 + Decorate 90 DescriptorSet 0 + Decorate 101 DescriptorSet 0 + Decorate 113 DescriptorSet 0 + Decorate 124 DescriptorSet 0 + Decorate 134 DescriptorSet 0 + Decorate 147 DescriptorSet 0 + Decorate 156 DescriptorSet 0 + Decorate 165 DescriptorSet 0 + Decorate 180 Location 0 + Decorate 184 BuiltIn FragDepth + Decorate 187 DescriptorSet 0 + Decorate 188 DescriptorSet 0 + Decorate 189 DescriptorSet 0 + Decorate 189 Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Function 7(struct) + 10: 6(int) Constant 1 + 11: TypePointer Function 6(int) + 13: 6(int) Constant 2 + 15: 6(int) Constant 3 + 17: 6(int) Constant 4 + 19: 6(int) Constant 5 + 21: 6(int) Constant 6 + 23: 6(int) Constant 0 + 25: 6(int) Constant 7 + 27: 6(int) Constant 8 + 29: 6(int) Constant 9 + 31: 6(int) Constant 10 + 33: 6(int) Constant 11 + 35: TypeFloat 32 + 36: TypeVector 35(float) 4 + 37: TypePointer Function 36(fvec4) + 39: TypeImage 35(float) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41: 40(ptr) Variable UniformConstant + 43: TypeSampler + 44: TypePointer UniformConstant 43 + 45: 44(ptr) Variable UniformConstant + 47: TypeSampledImage 39 + 49: 35(float) Constant 1036831949 + 51: TypeVector 6(int) 4 + 52: TypePointer Function 51(ivec4) + 54: TypeImage 6(int) 1D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56: 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: 35(float) Constant 1045220557 + 63: TypeInt 32 0 + 64: TypeVector 63(int) 4 + 65: TypePointer Function 64(ivec4) + 67: TypeImage 63(int) 1D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69: 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 35(float) Constant 1050253722 + 77: TypeImage 35(float) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79: 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: TypeVector 35(float) 2 + 85: 84(fvec2) ConstantComposite 49 61 + 88: TypeImage 6(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90: 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 35(float) Constant 1053609165 + 96: 84(fvec2) ConstantComposite 74 95 + 99: TypeImage 63(int) 2D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101: 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 35(float) Constant 1056964608 + 107: 35(float) Constant 1058642330 + 108: 84(fvec2) ConstantComposite 106 107 + 111: TypeImage 35(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113: 112(ptr) Variable UniformConstant + 116: TypeSampledImage 111 + 118: TypeVector 35(float) 3 + 119: 118(fvec3) ConstantComposite 49 61 74 + 122: TypeImage 6(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124: 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 129: 118(fvec3) ConstantComposite 95 106 107 + 132: TypeImage 63(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134: 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 139: 35(float) Constant 1060320051 + 140: 35(float) Constant 1061997773 + 141: 35(float) Constant 1063675494 + 142: 118(fvec3) ConstantComposite 139 140 141 + 145: TypeImage 35(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147: 146(ptr) Variable UniformConstant + 150: TypeSampledImage 145 + 154: TypeImage 6(int) Cube sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156: 155(ptr) Variable UniformConstant + 159: TypeSampledImage 154 + 163: TypeImage 63(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165: 164(ptr) Variable UniformConstant + 168: TypeSampledImage 163 + 171: TypeStruct 36(fvec4) 35(float) + 172: TypePointer Function 171(struct) + 174: 35(float) Constant 1065353216 + 175: 36(fvec4) ConstantComposite 174 174 174 174 + 177: TypePointer Function 35(float) + 179: TypePointer Output 36(fvec4) + 180: 179(ptr) Variable Output + 183: TypePointer Output 35(float) + 184: 183(ptr) Variable Output + 187: 44(ptr) Variable UniformConstant + 188: 44(ptr) Variable UniformConstant + 189: 40(ptr) Variable UniformConstant + 4: 2 Function None 3 + 5: Label + 9: 8(ptr) Variable Function + 38: 37(ptr) Variable Function + 53: 52(ptr) Variable Function + 66: 65(ptr) Variable Function + 76: 37(ptr) Variable Function + 87: 52(ptr) Variable Function + 98: 65(ptr) Variable Function + 110: 37(ptr) Variable Function + 121: 52(ptr) Variable Function + 131: 65(ptr) Variable Function + 144: 37(ptr) Variable Function + 153: 52(ptr) Variable Function + 162: 65(ptr) Variable Function + 173: 172(ptr) Variable Function + 12: 11(ptr) AccessChain 9 10 + Store 12 10 + 14: 11(ptr) AccessChain 9 13 + Store 14 10 + 16: 11(ptr) AccessChain 9 15 + Store 16 10 + 18: 11(ptr) AccessChain 9 17 + Store 18 10 + 20: 11(ptr) AccessChain 9 19 + Store 20 10 + 22: 11(ptr) AccessChain 9 21 + Store 22 10 + 24: 11(ptr) AccessChain 9 23 + Store 24 10 + 26: 11(ptr) AccessChain 9 25 + Store 26 10 + 28: 11(ptr) AccessChain 9 27 + Store 28 10 + 30: 11(ptr) AccessChain 9 29 + Store 30 10 + 32: 11(ptr) AccessChain 9 31 + Store 32 10 + 34: 11(ptr) AccessChain 9 33 + Store 34 10 + 42: 39 Load 41 + 46: 43 Load 45 + 48: 47 SampledImage 42 46 + 50: 36(fvec4) ImageSampleImplicitLod 48 49 + Store 38 50 + 57: 54 Load 56 + 58: 43 Load 45 + 60: 59 SampledImage 57 58 + 62: 51(ivec4) ImageSampleImplicitLod 60 61 + Store 53 62 + 70: 67 Load 69 + 71: 43 Load 45 + 73: 72 SampledImage 70 71 + 75: 64(ivec4) ImageSampleImplicitLod 73 74 + Store 66 75 + 80: 77 Load 79 + 81: 43 Load 45 + 83: 82 SampledImage 80 81 + 86: 36(fvec4) ImageSampleImplicitLod 83 85 + Store 76 86 + 91: 88 Load 90 + 92: 43 Load 45 + 94: 93 SampledImage 91 92 + 97: 51(ivec4) ImageSampleImplicitLod 94 96 + Store 87 97 + 102: 99 Load 101 + 103: 43 Load 45 + 105: 104 SampledImage 102 103 + 109: 64(ivec4) ImageSampleImplicitLod 105 108 + Store 98 109 + 114: 111 Load 113 + 115: 43 Load 45 + 117: 116 SampledImage 114 115 + 120: 36(fvec4) ImageSampleImplicitLod 117 119 + Store 110 120 + 125: 122 Load 124 + 126: 43 Load 45 + 128: 127 SampledImage 125 126 + 130: 51(ivec4) ImageSampleImplicitLod 128 129 + Store 121 130 + 135: 132 Load 134 + 136: 43 Load 45 + 138: 137 SampledImage 135 136 + 143: 64(ivec4) ImageSampleImplicitLod 138 142 + Store 131 143 + 148: 145 Load 147 + 149: 43 Load 45 + 151: 150 SampledImage 148 149 + 152: 36(fvec4) ImageSampleImplicitLod 151 119 + Store 144 152 + 157: 154 Load 156 + 158: 43 Load 45 + 160: 159 SampledImage 157 158 + 161: 51(ivec4) ImageSampleImplicitLod 160 129 + Store 153 161 + 166: 163 Load 165 + 167: 43 Load 45 + 169: 168 SampledImage 166 167 + 170: 64(ivec4) ImageSampleImplicitLod 169 142 + Store 162 170 + 176: 37(ptr) AccessChain 173 23 + Store 176 175 + 178: 177(ptr) AccessChain 173 10 + Store 178 174 + 181: 37(ptr) AccessChain 173 23 + 182: 36(fvec4) Load 181 + Store 180 182 + 185: 177(ptr) AccessChain 173 10 + 186: 35(float) Load 185 + Store 184 186 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out similarity index 55% rename from deps/glslang-new/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out index aff0998cd0..c42a037bb3 100644 --- a/deps/glslang-new/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -1,38 +1,27 @@ remap.hlsl.templatetypes.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 24954 +// Generated by (magic number): 80001 +// Id's are bound by 9012 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4872 4045 + EntryPoint Fragment 5663 "main" 4045 4872 ExecutionMode 5663 OriginUpperLeft - Decorate 4872 Location 0 Decorate 4045 Location 0 + Decorate 4872 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 + 666: TypePointer Input 29(fvec4) + 4872: 666(ptr) Variable Input 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 + 9011: Label + Store 4045 2572 Return FunctionEnd - 3917: 13(float) Function None 255 - 10636: 666(ptr) FunctionParameter - 10637: Label - ReturnValue 2572 - FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.templatetypes.none.frag.out new file mode 100644 index 0000000000..c3fab1a29a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -0,0 +1,222 @@ +remap.hlsl.templatetypes.none.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 149 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 146 148 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "r00" + Name 15 "r01" + Name 20 "r12" + Name 24 "r13" + Name 27 "r14" + Name 30 "r15" + Name 34 "r16" + Name 38 "r20" + Name 43 "r21" + Name 48 "r22" + Name 52 "r23" + Name 57 "r24" + Name 62 "r30" + Name 66 "r31" + Name 71 "r32" + Name 75 "r33" + Name 80 "r34" + Name 85 "r40" + Name 89 "r41" + Name 92 "r42" + Name 95 "r43" + Name 100 "r44" + Name 105 "r50" + Name 122 "r51" + Name 125 "r61" + Name 130 "r62" + Name 136 "r65" + Name 141 "r66" + Name 146 "@entryPointOutput" + Name 148 "input" + Decorate 146(@entryPointOutput) Location 0 + Decorate 148(input) 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: 6(float) Constant 1073741824 + 12: 6(float) Constant 1077936128 + 13: 6(float) Constant 1082130432 + 14: 7(fvec4) ConstantComposite 10 11 12 13 + 16: 6(float) Constant 1084227584 + 17: 7(fvec4) ConstantComposite 11 12 13 16 + 18: TypeBool + 19: TypePointer Function 18(bool) + 21: 18(bool) ConstantFalse + 22: TypeInt 32 1 + 23: TypePointer Function 22(int) + 25: 22(int) Constant 1 + 26: TypePointer Function 6(float) + 28: TypeFloat 64 + 29: TypePointer Function 28(float) + 31: 28(float) Constant 0 1072693248 + 32: TypeInt 32 0 + 33: TypePointer Function 32(int) + 35: 32(int) Constant 1 + 36: TypeVector 18(bool) 2 + 37: TypePointer Function 36(bvec2) + 39: 18(bool) ConstantTrue + 40: 36(bvec2) ConstantComposite 21 39 + 41: TypeVector 22(int) 2 + 42: TypePointer Function 41(ivec2) + 44: 22(int) Constant 2 + 45: 41(ivec2) ConstantComposite 25 44 + 46: TypeVector 6(float) 2 + 47: TypePointer Function 46(fvec2) + 49: 46(fvec2) ConstantComposite 10 11 + 50: TypeVector 28(float) 2 + 51: TypePointer Function 50(fvec2) + 53: 28(float) Constant 0 1073741824 + 54: 50(fvec2) ConstantComposite 31 53 + 55: TypeVector 32(int) 2 + 56: TypePointer Function 55(ivec2) + 58: 32(int) Constant 2 + 59: 55(ivec2) ConstantComposite 35 58 + 60: TypeVector 18(bool) 3 + 61: TypePointer Function 60(bvec3) + 63: 60(bvec3) ConstantComposite 21 39 39 + 64: TypeVector 22(int) 3 + 65: TypePointer Function 64(ivec3) + 67: 22(int) Constant 3 + 68: 64(ivec3) ConstantComposite 25 44 67 + 69: TypeVector 6(float) 3 + 70: TypePointer Function 69(fvec3) + 72: 69(fvec3) ConstantComposite 10 11 12 + 73: TypeVector 28(float) 3 + 74: TypePointer Function 73(fvec3) + 76: 28(float) Constant 0 1074266112 + 77: 73(fvec3) ConstantComposite 31 53 76 + 78: TypeVector 32(int) 3 + 79: TypePointer Function 78(ivec3) + 81: 32(int) Constant 3 + 82: 78(ivec3) ConstantComposite 35 58 81 + 83: TypeVector 18(bool) 4 + 84: TypePointer Function 83(bvec4) + 86: 83(bvec4) ConstantComposite 21 39 39 21 + 87: TypeVector 22(int) 4 + 88: TypePointer Function 87(ivec4) + 90: 22(int) Constant 4 + 91: 87(ivec4) ConstantComposite 25 44 67 90 + 93: TypeVector 28(float) 4 + 94: TypePointer Function 93(fvec4) + 96: 28(float) Constant 0 1074790400 + 97: 93(fvec4) ConstantComposite 31 53 76 96 + 98: TypeVector 32(int) 4 + 99: TypePointer Function 98(ivec4) + 101: 32(int) Constant 4 + 102: 98(ivec4) ConstantComposite 35 58 81 101 + 103: TypeMatrix 7(fvec4) 4 + 104: TypePointer Function 103 + 106: 6(float) Constant 0 + 107: 7(fvec4) ConstantComposite 106 10 11 12 + 108: 6(float) Constant 1086324736 + 109: 6(float) Constant 1088421888 + 110: 7(fvec4) ConstantComposite 13 16 108 109 + 111: 6(float) Constant 1090519040 + 112: 6(float) Constant 1091567616 + 113: 6(float) Constant 1092616192 + 114: 6(float) Constant 1093664768 + 115: 7(fvec4) ConstantComposite 111 112 113 114 + 116: 6(float) Constant 1094713344 + 117: 6(float) Constant 1095761920 + 118: 6(float) Constant 1096810496 + 119: 6(float) Constant 1097859072 + 120: 7(fvec4) ConstantComposite 116 117 118 119 + 121: 103 ConstantComposite 107 110 115 120 + 123: TypeMatrix 69(fvec3) 2 + 124: TypePointer Function 123 + 126: 69(fvec3) ConstantComposite 13 16 108 + 127: 123 ConstantComposite 72 126 + 128: TypeMatrix 46(fvec2) 3 + 129: TypePointer Function 128 + 131: 46(fvec2) ConstantComposite 12 13 + 132: 46(fvec2) ConstantComposite 16 108 + 133: 128 ConstantComposite 49 131 132 + 134: TypeMatrix 46(fvec2) 4 + 135: TypePointer Function 134 + 137: 46(fvec2) ConstantComposite 109 111 + 138: 134 ConstantComposite 49 131 132 137 + 139: TypeMatrix 69(fvec3) 4 + 140: TypePointer Function 139 + 142: 69(fvec3) ConstantComposite 109 111 112 + 143: 69(fvec3) ConstantComposite 113 114 116 + 144: 139 ConstantComposite 72 126 142 143 + 145: TypePointer Output 6(float) +146(@entryPointOutput): 145(ptr) Variable Output + 147: TypePointer Input 7(fvec4) + 148(input): 147(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 15(r01): 8(ptr) Variable Function + 20(r12): 19(ptr) Variable Function + 24(r13): 23(ptr) Variable Function + 27(r14): 26(ptr) Variable Function + 30(r15): 29(ptr) Variable Function + 34(r16): 33(ptr) Variable Function + 38(r20): 37(ptr) Variable Function + 43(r21): 42(ptr) Variable Function + 48(r22): 47(ptr) Variable Function + 52(r23): 51(ptr) Variable Function + 57(r24): 56(ptr) Variable Function + 62(r30): 61(ptr) Variable Function + 66(r31): 65(ptr) Variable Function + 71(r32): 70(ptr) Variable Function + 75(r33): 74(ptr) Variable Function + 80(r34): 79(ptr) Variable Function + 85(r40): 84(ptr) Variable Function + 89(r41): 88(ptr) Variable Function + 92(r42): 8(ptr) Variable Function + 95(r43): 94(ptr) Variable Function + 100(r44): 99(ptr) Variable Function + 105(r50): 104(ptr) Variable Function + 122(r51): 104(ptr) Variable Function + 125(r61): 124(ptr) Variable Function + 130(r62): 129(ptr) Variable Function + 136(r65): 135(ptr) Variable Function + 141(r66): 140(ptr) Variable Function + Store 9(r00) 14 + Store 15(r01) 17 + Store 20(r12) 21 + Store 24(r13) 25 + Store 27(r14) 10 + Store 30(r15) 31 + Store 34(r16) 35 + Store 38(r20) 40 + Store 43(r21) 45 + Store 48(r22) 49 + Store 52(r23) 54 + Store 57(r24) 59 + Store 62(r30) 63 + Store 66(r31) 68 + Store 71(r32) 72 + Store 75(r33) 77 + Store 80(r34) 82 + Store 85(r40) 86 + Store 89(r41) 91 + Store 92(r42) 14 + Store 95(r43) 97 + Store 100(r44) 102 + Store 105(r50) 121 + Store 122(r51) 121 + Store 125(r61) 127 + Store 130(r62) 133 + Store 136(r65) 138 + Store 141(r66) 144 + Store 146(@entryPointOutput) 106 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/remap.if.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.if.everything.frag.out similarity index 92% rename from deps/glslang-new/Test/baseResults/remap.if.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.if.everything.frag.out index cdb007b317..d20564c5dd 100644 --- a/deps/glslang-new/Test/baseResults/remap.if.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.if.everything.frag.out @@ -1,6 +1,8 @@ remap.if.everything.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 22855 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/remap.if.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.if.none.frag.out similarity index 93% rename from deps/glslang-new/Test/baseResults/remap.if.none.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.if.none.frag.out index 0c8d27836d..081d5cdd69 100644 --- a/deps/glslang-new/Test/baseResults/remap.if.none.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.if.none.frag.out @@ -1,6 +1,8 @@ remap.if.none.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 25 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/remap.literal64.everything.spv.out b/deps/glslang/glslang-old/Test/baseResults/remap.literal64.everything.spv.out similarity index 100% rename from deps/glslang-new/Test/baseResults/remap.literal64.everything.spv.out rename to deps/glslang/glslang-old/Test/baseResults/remap.literal64.everything.spv.out diff --git a/deps/glslang-new/Test/baseResults/remap.literal64.none.spv.out b/deps/glslang/glslang-old/Test/baseResults/remap.literal64.none.spv.out similarity index 95% rename from deps/glslang-new/Test/baseResults/remap.literal64.none.spv.out rename to deps/glslang/glslang-old/Test/baseResults/remap.literal64.none.spv.out index d88992fc11..792b13a612 100644 --- a/deps/glslang-new/Test/baseResults/remap.literal64.none.spv.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.literal64.none.spv.out @@ -8,7 +8,7 @@ remap.literal64.none.spv 1: TypeVoid 2: TypeInt 64 1 3: TypeFunction 1 - 4: 2(int64_t) Constant 0 0 + 4: 2(int) Constant 0 0 5: 1 Function None 3 6: Label SelectionMerge 7 None diff --git a/deps/glslang-new/Test/baseResults/remap.similar_1a.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1a.everything.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/remap.similar_1a.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.similar_1a.everything.frag.out index 2f8f1c737d..384b8e8619 100644 --- a/deps/glslang-new/Test/baseResults/remap.similar_1a.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1a.everything.frag.out @@ -1,6 +1,8 @@ remap.similar_1a.everything.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 24916 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/remap.similar_1a.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1a.none.frag.out similarity index 51% rename from deps/glslang-new/Test/baseResults/remap.similar_1a.none.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.similar_1a.none.frag.out index 80d35c3fa1..ad1273aec3 100644 --- a/deps/glslang-new/Test/baseResults/remap.similar_1a.none.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1a.none.frag.out @@ -1,12 +1,14 @@ remap.similar_1a.none.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): 80007 -// Id's are bound by 86 +// Generated by (magic number): 80001 +// Id's are bound by 82 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 53 73 75 + EntryPoint Fragment 4 "main" 50 69 71 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -16,13 +18,13 @@ remap.similar_1a.none.frag Name 13 "bound" Name 17 "r" Name 19 "x" - Name 44 "param" - Name 53 "ini4" - Name 73 "outf4" - Name 75 "inf" + Name 42 "param" + Name 50 "ini4" + Name 69 "outf4" + Name 71 "inf" + Name 74 "param" Name 78 "param" - Name 82 "param" - Decorate 53(ini4) Flat + Decorate 50(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -35,35 +37,35 @@ remap.similar_1a.none.frag 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 + 38: 6(int) Constant 2 + 48: TypeVector 6(int) 4 + 49: TypePointer Input 48(ivec4) + 50(ini4): 49(ptr) Variable Input + 51: TypeInt 32 0 + 52: 51(int) Constant 1 + 53: TypePointer Input 6(int) + 56: 51(int) Constant 2 + 61: 51(int) Constant 0 + 67: TypeVector 8(float) 4 + 68: TypePointer Output 67(fvec4) + 69(outf4): 68(ptr) Variable Output + 70: TypePointer Input 8(float) + 71(inf): 70(ptr) Variable Input 4(main): 2 Function None 3 5: Label + 74(param): 7(ptr) Variable Function 78(param): 7(ptr) Variable Function - 82(param): 7(ptr) Variable Function - 76: 8(float) Load 75(inf) + 72: 8(float) Load 71(inf) + 73: 6(int) ConvertFToS 72 + Store 74(param) 73 + 75: 8(float) FunctionCall 11(Test1(i1;) 74(param) + 76: 8(float) Load 71(inf) 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 + 79: 8(float) FunctionCall 14(Test2(i1;) 78(param) + 80: 8(float) FAdd 75 79 + 81: 67(fvec4) CompositeConstruct 80 80 80 80 + Store 69(outf4) 81 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 @@ -99,31 +101,31 @@ remap.similar_1a.none.frag 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 + 42(param): 7(ptr) Variable Function + 37: 6(int) Load 13(bound) + 39: 28(bool) SGreaterThan 37 38 + SelectionMerge 41 None + BranchConditional 39 40 45 + 40: Label + 43: 6(int) Load 13(bound) + Store 42(param) 43 + 44: 8(float) FunctionCall 11(Test1(i1;) 42(param) + ReturnValue 44 + 45: Label + 46: 6(int) Load 13(bound) + 47: 6(int) IMul 46 38 + 54: 53(ptr) AccessChain 50(ini4) 52 + 55: 6(int) Load 54 + 57: 53(ptr) AccessChain 50(ini4) 56 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 + 59: 6(int) IMul 55 58 + 60: 6(int) IAdd 47 59 + 62: 53(ptr) AccessChain 50(ini4) 61 + 63: 6(int) Load 62 + 64: 6(int) IAdd 60 63 + 65: 8(float) ConvertSToF 64 + ReturnValue 65 + 41: Label + 66: 8(float) Undef + ReturnValue 66 FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/remap.similar_1b.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1b.everything.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/remap.similar_1b.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.similar_1b.everything.frag.out index c76c4bfa06..0ce4544c96 100644 --- a/deps/glslang-new/Test/baseResults/remap.similar_1b.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1b.everything.frag.out @@ -1,6 +1,8 @@ remap.similar_1b.everything.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 24916 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/remap.similar_1b.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1b.none.frag.out similarity index 52% rename from deps/glslang-new/Test/baseResults/remap.similar_1b.none.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.similar_1b.none.frag.out index 0a854d6ea2..b86fd4b61b 100644 --- a/deps/glslang-new/Test/baseResults/remap.similar_1b.none.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.similar_1b.none.frag.out @@ -1,12 +1,14 @@ remap.similar_1b.none.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): 80007 -// Id's are bound by 91 +// Generated by (magic number): 80001 +// Id's are bound by 87 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 58 78 80 + EntryPoint Fragment 4 "main" 55 74 76 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -16,13 +18,13 @@ remap.similar_1b.none.frag Name 13 "bound" Name 17 "r" Name 19 "x" - Name 49 "param" - Name 58 "ini4" - Name 78 "outf4" - Name 80 "inf" + Name 47 "param" + Name 55 "ini4" + Name 74 "outf4" + Name 76 "inf" + Name 79 "param" Name 83 "param" - Name 87 "param" - Decorate 58(ini4) Flat + Decorate 55(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -36,36 +38,36 @@ remap.similar_1b.none.frag 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 + 41: 6(int) Constant 2 + 51: 6(int) Constant 4 + 53: TypeVector 6(int) 4 + 54: TypePointer Input 53(ivec4) + 55(ini4): 54(ptr) Variable Input + 56: TypeInt 32 0 + 57: 56(int) Constant 1 + 58: TypePointer Input 6(int) + 61: 56(int) Constant 2 + 66: 56(int) Constant 0 + 72: TypeVector 8(float) 4 + 73: TypePointer Output 72(fvec4) + 74(outf4): 73(ptr) Variable Output + 75: TypePointer Input 8(float) + 76(inf): 75(ptr) Variable Input 4(main): 2 Function None 3 5: Label + 79(param): 7(ptr) Variable Function 83(param): 7(ptr) Variable Function - 87(param): 7(ptr) Variable Function - 81: 8(float) Load 80(inf) + 77: 8(float) Load 76(inf) + 78: 6(int) ConvertFToS 77 + Store 79(param) 78 + 80: 8(float) FunctionCall 11(Test1(i1;) 79(param) + 81: 8(float) Load 76(inf) 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 + 84: 8(float) FunctionCall 14(Test2(i1;) 83(param) + 85: 8(float) FAdd 80 84 + 86: 72(fvec4) CompositeConstruct 85 85 85 85 + Store 74(outf4) 86 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 @@ -104,32 +106,32 @@ remap.similar_1b.none.frag 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 + 47(param): 7(ptr) Variable Function + 40: 6(int) Load 13(bound) + 42: 28(bool) SGreaterThan 40 41 + SelectionMerge 44 None + BranchConditional 42 43 49 + 43: Label + 45: 6(int) Load 13(bound) + 46: 6(int) IMul 45 41 + Store 47(param) 46 + 48: 8(float) FunctionCall 11(Test1(i1;) 47(param) + ReturnValue 48 + 49: Label + 50: 6(int) Load 13(bound) + 52: 6(int) IMul 50 51 + 59: 58(ptr) AccessChain 55(ini4) 57 + 60: 6(int) Load 59 + 62: 58(ptr) AccessChain 55(ini4) 61 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 + 64: 6(int) IMul 60 63 + 65: 6(int) IAdd 52 64 + 67: 58(ptr) AccessChain 55(ini4) 66 + 68: 6(int) Load 67 + 69: 6(int) IAdd 65 68 + 70: 8(float) ConvertSToF 69 + ReturnValue 70 + 44: Label + 71: 8(float) Undef + ReturnValue 71 FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/remap.switch.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.switch.everything.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/remap.switch.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.switch.everything.frag.out index ffd64d4f6a..e5a7ef7597 100644 --- a/deps/glslang-new/Test/baseResults/remap.switch.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.switch.everything.frag.out @@ -1,9 +1,10 @@ remap.switch.everything.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 +// Generated by (magic number): 80001 // Id's are bound by 23990 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/remap.switch.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.switch.none.frag.out similarity index 71% rename from deps/glslang-new/Test/baseResults/remap.switch.none.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.switch.none.frag.out index 4dd78977a4..5d373ccf9c 100644 --- a/deps/glslang-new/Test/baseResults/remap.switch.none.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.switch.none.frag.out @@ -1,10 +1,11 @@ remap.switch.none.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 +// Generated by (magic number): 80001 +// Id's are bound by 44 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -19,8 +20,8 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to Decorate 23(FragColor) RelaxedPrecision Decorate 23(FragColor) Location 0 Decorate 29 RelaxedPrecision - Decorate 36 RelaxedPrecision - Decorate 43 RelaxedPrecision + Decorate 35 RelaxedPrecision + Decorate 41 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -35,12 +36,12 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to 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 + 30: 10(int) Constant 1 + 33: 6(float) Constant 1065353216 + 36: 10(int) Constant 2 + 39: 6(float) Constant 1073741824 + 42: 6(float) Constant 3212836864 + 43: 7(fvec4) ConstantComposite 42 42 42 42 4(main): 2 Function None 3 5: Label 13: 12(ptr) AccessChain 9(in0) 11 @@ -52,7 +53,7 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to case 1: 18 case 2: 19 20: Label - Store 23(FragColor) 46 + Store 23(FragColor) 43 Branch 21 17: Label 25: 12(ptr) AccessChain 9(in0) 24 @@ -62,18 +63,18 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to 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 + 31: 12(ptr) AccessChain 9(in0) 30 + 32: 6(float) Load 31 + 34: 6(float) FAdd 32 33 + 35: 7(fvec4) CompositeConstruct 34 34 34 34 + Store 23(FragColor) 35 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 + 37: 12(ptr) AccessChain 9(in0) 36 + 38: 6(float) Load 37 + 40: 6(float) FAdd 38 39 + 41: 7(fvec4) CompositeConstruct 40 40 40 40 + Store 23(FragColor) 41 Branch 21 21: Label Return diff --git a/deps/glslang-new/Test/baseResults/remap.uniformarray.everything.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.uniformarray.everything.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/remap.uniformarray.everything.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.uniformarray.everything.frag.out index c1f306e109..ed906d535a 100644 --- a/deps/glslang-new/Test/baseResults/remap.uniformarray.everything.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.uniformarray.everything.frag.out @@ -1,6 +1,6 @@ remap.uniformarray.everything.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 25030 Capability Shader @@ -8,7 +8,6 @@ remap.uniformarray.everything.frag 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 diff --git a/deps/glslang-new/Test/baseResults/remap.uniformarray.none.frag.out b/deps/glslang/glslang-old/Test/baseResults/remap.uniformarray.none.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/remap.uniformarray.none.frag.out rename to deps/glslang/glslang-old/Test/baseResults/remap.uniformarray.none.frag.out index 6ed2d45e09..526b9e4969 100644 --- a/deps/glslang-new/Test/baseResults/remap.uniformarray.none.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/remap.uniformarray.none.frag.out @@ -1,6 +1,6 @@ remap.uniformarray.none.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 53 Capability Shader @@ -16,7 +16,6 @@ remap.uniformarray.none.frag 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 diff --git a/deps/glslang/glslang-old/Test/baseResults/sample.frag.out b/deps/glslang/glslang-old/Test/baseResults/sample.frag.out new file mode 100644 index 0000000000..7ad929554c --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/sample.vert.out b/deps/glslang/glslang-old/Test/baseResults/sample.vert.out new file mode 100644 index 0000000000..e67db5748f --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/simpleFunctionCall.frag.out b/deps/glslang/glslang-old/Test/baseResults/simpleFunctionCall.frag.out new file mode 100644 index 0000000000..2cc42a3be1 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/specExamples.frag.out b/deps/glslang/glslang-old/Test/baseResults/specExamples.frag.out new file mode 100644 index 0000000000..a66144a7c5 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/specExamples.frag.out @@ -0,0 +1,600 @@ +specExamples.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. +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 field 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 field 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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) + + +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-old/Test/baseResults/specExamples.vert.out b/deps/glslang/glslang-old/Test/baseResults/specExamples.vert.out new file mode 100644 index 0000000000..d7de758c18 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/specExamples.vert.out @@ -0,0 +1,600 @@ +specExamples.vert +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) +0:? 'ColorInv' (smooth out 3-component vector of float) +0:? 'Color4' (invariant centroid smooth out 3-component vector of float) +0:? 'position' (noContraction smooth out 4-component vector of float) +0:? 'Color5' (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-new/Test/baseResults/spv.100ops.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.100ops.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.100ops.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.100ops.frag.out index 8f656ebb5c..efd82012b0 100755 --- a/deps/glslang-new/Test/baseResults/spv.100ops.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.100ops.frag.out @@ -1,6 +1,8 @@ spv.100ops.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 49 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.130.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.130.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.130.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.130.frag.out index d1a626d8dc..19c6db0df2 100644 --- a/deps/glslang-new/Test/baseResults/spv.130.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.130.frag.out @@ -2,7 +2,7 @@ spv.130.frag WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 205 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.140.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.140.frag.out new file mode 100755 index 0000000000..f8e75ebdac --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.140.frag.out @@ -0,0 +1,177 @@ +spv.140.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 101 + + Capability Shader + Capability ClipDistance + Capability SampledRect + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 16 28 33 43 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "foo(" + Name 11 "i1" + Name 16 "gl_FrontFacing" + Name 24 "i2" + Name 28 "o" + Name 33 "gl_ClipDistance" + Name 43 "k" + Name 55 "sampR" + Name 63 "sampB" + Name 87 "samp2Da" + Name 92 "bn" + MemberName 92(bn) 0 "matra" + MemberName 92(bn) 1 "matca" + MemberName 92(bn) 2 "matr" + MemberName 92(bn) 3 "matc" + MemberName 92(bn) 4 "matrdef" + Name 94 "" + Name 97 "bi" + MemberName 97(bi) 0 "v" + Name 100 "bname" + Decorate 16(gl_FrontFacing) BuiltIn FrontFacing + Decorate 33(gl_ClipDistance) BuiltIn ClipDistance + Decorate 55(sampR) DescriptorSet 0 + Decorate 63(sampB) DescriptorSet 0 + Decorate 87(samp2Da) DescriptorSet 0 + Decorate 90 ArrayStride 64 + Decorate 91 ArrayStride 64 + MemberDecorate 92(bn) 0 RowMajor + MemberDecorate 92(bn) 0 Offset 0 + MemberDecorate 92(bn) 0 MatrixStride 16 + MemberDecorate 92(bn) 1 ColMajor + MemberDecorate 92(bn) 1 Offset 256 + MemberDecorate 92(bn) 1 MatrixStride 16 + MemberDecorate 92(bn) 2 RowMajor + MemberDecorate 92(bn) 2 Offset 512 + MemberDecorate 92(bn) 2 MatrixStride 16 + MemberDecorate 92(bn) 3 ColMajor + MemberDecorate 92(bn) 3 Offset 576 + MemberDecorate 92(bn) 3 MatrixStride 16 + MemberDecorate 92(bn) 4 RowMajor + MemberDecorate 92(bn) 4 Offset 640 + MemberDecorate 92(bn) 4 MatrixStride 16 + Decorate 92(bn) Block + Decorate 94 DescriptorSet 0 + Decorate 96 ArrayStride 16 + MemberDecorate 97(bi) 0 Offset 0 + Decorate 97(bi) Block + Decorate 100(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: TypePointer Function 6(float) + 14: TypeBool + 15: TypePointer Input 14(bool) +16(gl_FrontFacing): 15(ptr) Variable Input + 20: 6(float) Constant 3221225472 + 22: 6(float) Constant 1073741824 + 24(i2): 10(ptr) Variable Private + 25: 6(float) Constant 1120665600 + 26: TypeVector 6(float) 4 + 27: TypePointer Output 26(fvec4) + 28(o): 27(ptr) Variable Output + 29: TypeInt 32 0 + 30: 29(int) Constant 5 + 31: TypeArray 6(float) 30 + 32: TypePointer Input 31 +33(gl_ClipDistance): 32(ptr) Variable Input + 34: TypeInt 32 1 + 35: 34(int) Constant 2 + 36: TypePointer Input 6(float) + 39: 29(int) Constant 1 + 40: TypePointer Output 6(float) + 42: TypePointer Input 26(fvec4) + 43(k): 42(ptr) Variable Input + 45: TypeVector 34(int) 4 + 50: 29(int) Constant 2 + 52: TypeImage 6(float) Rect sampled format:Unknown + 53: TypeSampledImage 52 + 54: TypePointer UniformConstant 53 + 55(sampR): 54(ptr) Variable UniformConstant + 58: TypeVector 34(int) 2 + 60: TypeImage 34(int) Buffer sampled format:Unknown + 61: TypeSampledImage 60 + 62: TypePointer UniformConstant 61 + 63(sampB): 62(ptr) Variable UniformConstant + 69: TypeVector 6(float) 2 + 72: 6(float) Constant 1120403456 + 74: 29(int) Constant 3 + 83: TypeImage 6(float) 2D sampled format:Unknown + 84: TypeSampledImage 83 + 85: TypeArray 84 74 + 86: TypePointer UniformConstant 85 + 87(samp2Da): 86(ptr) Variable UniformConstant + 88: TypeMatrix 26(fvec4) 4 + 89: 29(int) Constant 4 + 90: TypeArray 88 89 + 91: TypeArray 88 89 + 92(bn): TypeStruct 90 91 88 88 88 + 93: TypePointer Uniform 92(bn) + 94: 93(ptr) Variable Uniform + 95: TypeVector 6(float) 3 + 96: TypeArray 95(fvec3) 50 + 97(bi): TypeStruct 96 + 98: TypeArray 97(bi) 89 + 99: TypePointer Uniform 98 + 100(bname): 99(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 13: 12(ptr) Variable Function + 17: 14(bool) Load 16(gl_FrontFacing) + SelectionMerge 19 None + BranchConditional 17 18 21 + 18: Label + Store 13 20 + Branch 19 + 21: Label + Store 13 22 + Branch 19 + 19: Label + 23: 6(float) Load 13 + Store 11(i1) 23 + Store 24(i2) 25 + 37: 36(ptr) AccessChain 33(gl_ClipDistance) 35 + 38: 6(float) Load 37 + 41: 40(ptr) AccessChain 28(o) 39 + Store 41 38 + 44: 26(fvec4) Load 43(k) + 46: 45(ivec4) ConvertFToS 44 + 47: 34(int) CompositeExtract 46 0 + 48: 36(ptr) AccessChain 33(gl_ClipDistance) 47 + 49: 6(float) Load 48 + 51: 40(ptr) AccessChain 28(o) 50 + Store 51 49 + 56: 53 Load 55(sampR) + 57: 52 Image 56 + 59: 58(ivec2) ImageQuerySize 57 + 64: 61 Load 63(sampB) + 65: 60 Image 64 + 66: 34(int) ImageQuerySize 65 + 67: 58(ivec2) CompositeConstruct 66 66 + 68: 58(ivec2) IAdd 59 67 + 70: 69(fvec2) ConvertSToF 68 + 71: 6(float) CompositeExtract 70 0 + 73: 6(float) FDiv 71 72 + 75: 40(ptr) AccessChain 28(o) 74 + Store 75 73 + 76: 6(float) FunctionCall 8(foo() + 77: 40(ptr) AccessChain 28(o) 50 + Store 77 76 + Return + FunctionEnd + 8(foo(): 6(float) Function None 7 + 9: Label + 78: 6(float) Load 11(i1) + 79: 6(float) Load 24(i2) + 80: 6(float) FAdd 78 79 + ReturnValue 80 + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.150.geom.out b/deps/glslang/glslang-old/Test/baseResults/spv.150.geom.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.150.geom.out rename to deps/glslang/glslang-old/Test/baseResults/spv.150.geom.out index f759793839..1c98c70e72 100755 --- a/deps/glslang-new/Test/baseResults/spv.150.geom.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.150.geom.out @@ -1,6 +1,6 @@ spv.150.geom // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 71 Capability Geometry diff --git a/deps/glslang-new/Test/baseResults/spv.150.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.150.vert.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.150.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.150.vert.out index 282f5f9c0f..2843139721 100755 --- a/deps/glslang-new/Test/baseResults/spv.150.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.150.vert.out @@ -1,6 +1,6 @@ spv.150.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 63 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.300BuiltIns.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.300BuiltIns.vert.out similarity index 96% rename from deps/glslang-new/Test/baseResults/spv.300BuiltIns.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.300BuiltIns.vert.out index ee2c236e78..7dc949dcaf 100755 --- a/deps/glslang-new/Test/baseResults/spv.300BuiltIns.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.300BuiltIns.vert.out @@ -1,6 +1,8 @@ spv.300BuiltIns.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 42 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.300layout.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.300layout.frag.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.300layout.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.300layout.frag.out index 10a6d00eb1..7ce08d8689 100755 --- a/deps/glslang-new/Test/baseResults/spv.300layout.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.300layout.frag.out @@ -1,6 +1,8 @@ spv.300layout.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 37 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.300layout.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.300layout.vert.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.300layout.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.300layout.vert.out index 0c0663e817..20eb8e7d57 100644 --- a/deps/glslang-new/Test/baseResults/spv.300layout.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.300layout.vert.out @@ -1,6 +1,8 @@ spv.300layout.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 163 Capability Shader @@ -59,7 +61,7 @@ spv.300layout.vert MemberDecorate 45(T3) 2 ColMajor MemberDecorate 45(T3) 2 Offset 128 MemberDecorate 45(T3) 2 MatrixStride 16 - MemberDecorate 45(T3) 3 Offset 2048 + MemberDecorate 45(T3) 3 Offset 160 Decorate 45(T3) Block Decorate 47 DescriptorSet 0 MemberDecorate 78(T2) 0 Offset 0 diff --git a/deps/glslang-new/Test/baseResults/spv.300layoutp.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.300layoutp.vert.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.300layoutp.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.300layoutp.vert.out index 9c4201de50..5924137cdc 100755 --- a/deps/glslang-new/Test/baseResults/spv.300layoutp.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.300layoutp.vert.out @@ -1,6 +1,8 @@ spv.300layoutp.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 115 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.310.bitcast.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.310.bitcast.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.310.bitcast.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.310.bitcast.frag.out index d7a244f862..14e184a47d 100755 --- a/deps/glslang-new/Test/baseResults/spv.310.bitcast.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.310.bitcast.frag.out @@ -1,6 +1,8 @@ spv.310.bitcast.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 153 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.310.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.310.comp.out new file mode 100644 index 0000000000..095bf39fc9 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.310.comp.out @@ -0,0 +1,124 @@ +spv.310.comp +Warning, version 310 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 67 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 53 + ExecutionMode 4 LocalSize 16 32 4 + Source ESSL 310 + Name 4 "main" + Name 13 "outb" + MemberName 13(outb) 0 "f" + MemberName 13(outb) 1 "g" + MemberName 13(outb) 2 "h" + MemberName 13(outb) 3 "uns" + Name 15 "outbname" + Name 19 "s" + Name 24 "outbna" + MemberName 24(outbna) 0 "k" + MemberName 24(outbna) 1 "na" + Name 26 "outbnamena" + Name 42 "i" + Name 48 "outs" + MemberName 48(outs) 0 "s" + MemberName 48(outs) 1 "va" + Name 50 "outnames" + Name 53 "gl_LocalInvocationID" + Decorate 12 ArrayStride 16 + MemberDecorate 13(outb) 0 Offset 0 + MemberDecorate 13(outb) 1 Offset 4 + MemberDecorate 13(outb) 2 Offset 8 + MemberDecorate 13(outb) 3 Offset 16 + Decorate 13(outb) BufferBlock + Decorate 15(outbname) DescriptorSet 0 + MemberDecorate 24(outbna) 0 Offset 0 + MemberDecorate 24(outbna) 1 Offset 16 + Decorate 24(outbna) BufferBlock + Decorate 26(outbnamena) DescriptorSet 0 + Decorate 47 ArrayStride 16 + MemberDecorate 48(outs) 0 Offset 0 + MemberDecorate 48(outs) 1 Offset 16 + Decorate 48(outs) BufferBlock + Decorate 50(outnames) DescriptorSet 0 + Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 66 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 2 + 8: 6(int) Constant 1 + 9: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 3 + 12: TypeRuntimeArray 11(fvec3) + 13(outb): TypeStruct 10(float) 10(float) 10(float) 12 + 14: TypePointer Uniform 13(outb) + 15(outbname): 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Workgroup 10(float) + 19(s): 18(ptr) Variable Workgroup + 21: TypePointer Uniform 10(float) + 23: TypeVector 10(float) 4 + 24(outbna): TypeStruct 16(int) 23(fvec4) + 25: TypePointer Uniform 24(outbna) + 26(outbnamena): 25(ptr) Variable Uniform + 27: 16(int) Constant 1 + 30: TypePointer Uniform 23(fvec4) + 32: 16(int) Constant 3 + 33: 16(int) Constant 18 + 36: 16(int) Constant 17 + 37: 10(float) Constant 1077936128 + 38: 11(fvec3) ConstantComposite 37 37 37 + 39: TypePointer Uniform 11(fvec3) + 41: TypePointer Workgroup 16(int) + 42(i): 41(ptr) Variable Workgroup + 47: TypeRuntimeArray 23(fvec4) + 48(outs): TypeStruct 16(int) 47 + 49: TypePointer Uniform 48(outs) + 50(outnames): 49(ptr) Variable Uniform + 51: TypeVector 6(int) 3 + 52: TypePointer Input 51(ivec3) +53(gl_LocalInvocationID): 52(ptr) Variable Input + 54: TypePointer Input 6(int) + 61: TypePointer Uniform 16(int) + 63: 6(int) Constant 16 + 64: 6(int) Constant 32 + 65: 6(int) Constant 4 + 66: 51(ivec3) ConstantComposite 63 64 65 + 4(main): 2 Function None 3 + 5: Label + ControlBarrier 7 8 9 + 20: 10(float) Load 19(s) + 22: 21(ptr) AccessChain 15(outbname) 17 + Store 22 20 + 28: 10(float) Load 19(s) + 29: 23(fvec4) CompositeConstruct 28 28 28 28 + 31: 30(ptr) AccessChain 26(outbnamena) 27 + Store 31 29 + 34: 21(ptr) AccessChain 15(outbname) 32 33 9 + 35: 10(float) Load 34 + Store 19(s) 35 + 40: 39(ptr) AccessChain 15(outbname) 32 36 + Store 40 38 + 43: 16(int) Load 42(i) + 44: 10(float) Load 19(s) + 45: 11(fvec3) CompositeConstruct 44 44 44 + 46: 39(ptr) AccessChain 15(outbname) 32 43 + Store 46 45 + 55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 9 + 56: 6(int) Load 55 + 57: 10(float) Load 19(s) + 58: 23(fvec4) CompositeConstruct 57 57 57 57 + 59: 30(ptr) AccessChain 50(outnames) 27 56 + Store 59 58 + 60: 16(int) ArrayLength 15(outbname) 3 + 62: 61(ptr) AccessChain 50(outnames) 17 + Store 62 60 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.330.geom.out b/deps/glslang/glslang-old/Test/baseResults/spv.330.geom.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.330.geom.out rename to deps/glslang/glslang-old/Test/baseResults/spv.330.geom.out index 1ccbfb6c4c..3e81dcbc79 100644 --- a/deps/glslang-new/Test/baseResults/spv.330.geom.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.330.geom.out @@ -1,6 +1,6 @@ spv.330.geom // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 32 Capability Geometry diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.400.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.400.frag.out new file mode 100644 index 0000000000..cb2de96871 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.400.frag.out @@ -0,0 +1,1393 @@ +spv.400.frag +Warning, version 400 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 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(float) + 42: 39(float) Constant 2507418074 1073430332 + 43: TypeVector 39(float) 2 + 44: TypePointer Function 43(fvec2) + 46: 39(float) Constant 796182188 1073367658 + 47: 43(fvec2) ConstantComposite 46 46 + 48: TypeVector 39(float) 3 + 49: TypePointer Function 48(fvec3) + 51: 39(float) Constant 1719614413 1073127582 + 52: 48(fvec3) ConstantComposite 51 51 51 + 53: TypeVector 39(float) 4 + 54: TypePointer Function 53(fvec4) + 428: TypeBool + 429: TypePointer Function 428(bool) + 437: TypeVector 428(bool) 2 + 438: TypePointer Function 437(bvec2) + 446: TypeVector 428(bool) 3 + 447: TypePointer Function 446(bvec3) + 455: TypeVector 428(bool) 4 + 456: TypePointer Function 455(bvec4) + 563: 428(bool) ConstantFalse + 572: 437(bvec2) ConstantComposite 563 563 + 581: 446(bvec3) ConstantComposite 563 563 563 + 590: 455(bvec4) ConstantComposite 563 563 563 563 + 737: TypeMatrix 43(fvec2) 2 + 738: TypePointer Function 737 + 743: TypeMatrix 48(fvec3) 3 + 744: TypePointer Function 743 + 749: TypeMatrix 53(fvec4) 4 + 750: TypePointer Function 749 + 755: TypeMatrix 48(fvec3) 2 + 756: TypePointer Function 755 + 761: TypeMatrix 43(fvec2) 3 + 762: TypePointer Function 761 + 767: TypeMatrix 53(fvec4) 2 + 768: TypePointer Function 767 + 773: TypeMatrix 43(fvec2) 4 + 774: TypePointer Function 773 + 779: TypeMatrix 53(fvec4) 3 + 780: TypePointer Function 779 + 785: TypeMatrix 48(fvec3) 4 + 786: TypePointer Function 785 + 954: 32(int) Constant 1 + 958: 32(int) Constant 2 + 962: 32(int) Constant 3 + 966: 23(int) Constant 1 + 970: 23(int) Constant 2 + 996: 10(float) Constant 1065353216 + 1018: TypePointer Function 11(fvec4) + 1020: TypeImage 10(float) 2D sampled format:Unknown + 1021: TypeSampledImage 1020 + 1022: 32(int) Constant 5 + 1023: TypeArray 1021 1022 + 1024: TypePointer UniformConstant 1023 +1025(arrayedSampler): 1024(ptr) Variable UniformConstant + 1026: TypePointer Input 23(int) + 1027(i): 1026(ptr) Variable Input + 1029: TypePointer UniformConstant 1021 + 1032: TypePointer Input 20(fvec2) + 1033(c2D): 1032(ptr) Variable Input + 1036: TypeArray 10(float) 958 + 1037: TypePointer Input 1036 +1038(gl_ClipDistance): 1037(ptr) Variable Input + 1039: TypePointer Input 10(float) + 1043: TypeVector 10(float) 3 + 1048: TypeVector 32(int) 4 + 1049: TypePointer Output 1048(ivec4) + 1050(uoutp): 1049(ptr) Variable Output + 1051: TypeImage 32(int) Rect sampled format:Unknown + 1052: TypeSampledImage 1051 + 1053: TypePointer UniformConstant 1052 + 1054(samp2dr): 1053(ptr) Variable UniformConstant + 1057: 32(int) Constant 4 + 1058: TypeArray 24(ivec2) 1057 + 1059: 24(ivec2) ConstantComposite 966 970 + 1060: 23(int) Constant 15 + 1061: 23(int) Constant 16 + 1062: 24(ivec2) ConstantComposite 1060 1061 + 1063: 23(int) Constant 4294967294 + 1064: 23(int) Constant 0 + 1065: 24(ivec2) ConstantComposite 1063 1064 + 1066: 1058 ConstantComposite 1059 27 1062 1065 + 1074: TypeVector 23(int) 4 + 1075: TypePointer Output 1074(ivec4) + 1076(ioutp): 1075(ptr) Variable Output + 1077: TypeImage 23(int) 2D array sampled format:Unknown + 1078: TypeSampledImage 1077 + 1079: TypePointer UniformConstant 1078 + 1080(isamp2DA): 1079(ptr) Variable UniformConstant + 1082: 10(float) Constant 1036831949 + 1083: 1043(fvec3) ConstantComposite 1082 1082 1082 + 1084: 24(ivec2) ConstantComposite 966 966 + 1096: TypePointer Input 11(fvec4) +1097(gl_FragCoord): 1096(ptr) Variable Input + 1099(vl2): 1096(ptr) Variable Input + 1104: TypePointer Output 32(int) + 1105(uo): 1104(ptr) Variable Output + 1106: TypePointer Input 32(int) + 1107(u): 1106(ptr) Variable Input + 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 + 556: 429(ptr) Variable Function + 565: 438(ptr) Variable Function + 574: 447(ptr) Variable Function + 583: 456(ptr) Variable Function + 739(dmat2v): 738(ptr) Variable Function + 745(dmat3v): 744(ptr) Variable Function + 751(dmat4v): 750(ptr) Variable Function + 757(dmat2x3v): 756(ptr) Variable Function + 763(dmat3x2v): 762(ptr) Variable Function + 769(dmat2x4v): 768(ptr) Variable Function + 775(dmat4x2v): 774(ptr) Variable Function + 781(dmat3x4v): 780(ptr) Variable Function + 787(dmat4x3v): 786(ptr) Variable Function + Store 41(doublev) 42 + Store 45(dvec2v) 47 + Store 50(dvec3v) 52 + 56: 39(float) Load 41(doublev) + 57: 53(fvec4) CompositeConstruct 56 56 56 56 + 58: 53(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 57 + Store 55(dvec4v) 58 + 59: 39(float) Load 41(doublev) + 60: 39(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 59 + 61: 39(float) Load 41(doublev) + 62: 39(float) FAdd 61 60 + Store 41(doublev) 62 + 63: 43(fvec2) Load 45(dvec2v) + 64: 43(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 63 + 65: 43(fvec2) Load 45(dvec2v) + 66: 43(fvec2) FAdd 65 64 + Store 45(dvec2v) 66 + 67: 48(fvec3) Load 50(dvec3v) + 68: 48(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 67 + 69: 48(fvec3) Load 50(dvec3v) + 70: 48(fvec3) FAdd 69 68 + Store 50(dvec3v) 70 + 71: 53(fvec4) Load 55(dvec4v) + 72: 53(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 71 + 73: 53(fvec4) Load 55(dvec4v) + 74: 53(fvec4) FAdd 73 72 + Store 55(dvec4v) 74 + 75: 39(float) Load 41(doublev) + 76: 39(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75 + 77: 39(float) Load 41(doublev) + 78: 39(float) FAdd 77 76 + Store 41(doublev) 78 + 79: 43(fvec2) Load 45(dvec2v) + 80: 43(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 79 + 81: 43(fvec2) Load 45(dvec2v) + 82: 43(fvec2) FAdd 81 80 + Store 45(dvec2v) 82 + 83: 48(fvec3) Load 50(dvec3v) + 84: 48(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 83 + 85: 48(fvec3) Load 50(dvec3v) + 86: 48(fvec3) FAdd 85 84 + Store 50(dvec3v) 86 + 87: 53(fvec4) Load 55(dvec4v) + 88: 53(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 87 + 89: 53(fvec4) Load 55(dvec4v) + 90: 53(fvec4) FAdd 89 88 + Store 55(dvec4v) 90 + 91: 39(float) Load 41(doublev) + 92: 39(float) ExtInst 1(GLSL.std.450) 6(FSign) 91 + 93: 39(float) Load 41(doublev) + 94: 39(float) FAdd 93 92 + Store 41(doublev) 94 + 95: 43(fvec2) Load 45(dvec2v) + 96: 43(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 95 + 97: 43(fvec2) Load 45(dvec2v) + 98: 43(fvec2) FAdd 97 96 + Store 45(dvec2v) 98 + 99: 48(fvec3) Load 50(dvec3v) + 100: 48(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 99 + 101: 48(fvec3) Load 50(dvec3v) + 102: 48(fvec3) FAdd 101 100 + Store 50(dvec3v) 102 + 103: 53(fvec4) Load 55(dvec4v) + 104: 53(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 103 + 105: 53(fvec4) Load 55(dvec4v) + 106: 53(fvec4) FAdd 105 104 + Store 55(dvec4v) 106 + 107: 39(float) Load 41(doublev) + 108: 39(float) ExtInst 1(GLSL.std.450) 8(Floor) 107 + 109: 39(float) Load 41(doublev) + 110: 39(float) FAdd 109 108 + Store 41(doublev) 110 + 111: 43(fvec2) Load 45(dvec2v) + 112: 43(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 111 + 113: 43(fvec2) Load 45(dvec2v) + 114: 43(fvec2) FAdd 113 112 + Store 45(dvec2v) 114 + 115: 48(fvec3) Load 50(dvec3v) + 116: 48(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 115 + 117: 48(fvec3) Load 50(dvec3v) + 118: 48(fvec3) FAdd 117 116 + Store 50(dvec3v) 118 + 119: 53(fvec4) Load 55(dvec4v) + 120: 53(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 119 + 121: 53(fvec4) Load 55(dvec4v) + 122: 53(fvec4) FAdd 121 120 + Store 55(dvec4v) 122 + 123: 39(float) Load 41(doublev) + 124: 39(float) ExtInst 1(GLSL.std.450) 3(Trunc) 123 + 125: 39(float) Load 41(doublev) + 126: 39(float) FAdd 125 124 + Store 41(doublev) 126 + 127: 43(fvec2) Load 45(dvec2v) + 128: 43(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 127 + 129: 43(fvec2) Load 45(dvec2v) + 130: 43(fvec2) FAdd 129 128 + Store 45(dvec2v) 130 + 131: 48(fvec3) Load 50(dvec3v) + 132: 48(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 131 + 133: 48(fvec3) Load 50(dvec3v) + 134: 48(fvec3) FAdd 133 132 + Store 50(dvec3v) 134 + 135: 53(fvec4) Load 55(dvec4v) + 136: 53(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 135 + 137: 53(fvec4) Load 55(dvec4v) + 138: 53(fvec4) FAdd 137 136 + Store 55(dvec4v) 138 + 139: 39(float) Load 41(doublev) + 140: 39(float) ExtInst 1(GLSL.std.450) 1(Round) 139 + 141: 39(float) Load 41(doublev) + 142: 39(float) FAdd 141 140 + Store 41(doublev) 142 + 143: 43(fvec2) Load 45(dvec2v) + 144: 43(fvec2) ExtInst 1(GLSL.std.450) 1(Round) 143 + 145: 43(fvec2) Load 45(dvec2v) + 146: 43(fvec2) FAdd 145 144 + Store 45(dvec2v) 146 + 147: 48(fvec3) Load 50(dvec3v) + 148: 48(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 147 + 149: 48(fvec3) Load 50(dvec3v) + 150: 48(fvec3) FAdd 149 148 + Store 50(dvec3v) 150 + 151: 53(fvec4) Load 55(dvec4v) + 152: 53(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 151 + 153: 53(fvec4) Load 55(dvec4v) + 154: 53(fvec4) FAdd 153 152 + Store 55(dvec4v) 154 + 155: 39(float) Load 41(doublev) + 156: 39(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 155 + 157: 39(float) Load 41(doublev) + 158: 39(float) FAdd 157 156 + Store 41(doublev) 158 + 159: 43(fvec2) Load 45(dvec2v) + 160: 43(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 159 + 161: 43(fvec2) Load 45(dvec2v) + 162: 43(fvec2) FAdd 161 160 + Store 45(dvec2v) 162 + 163: 48(fvec3) Load 50(dvec3v) + 164: 48(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 163 + 165: 48(fvec3) Load 50(dvec3v) + 166: 48(fvec3) FAdd 165 164 + Store 50(dvec3v) 166 + 167: 53(fvec4) Load 55(dvec4v) + 168: 53(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 167 + 169: 53(fvec4) Load 55(dvec4v) + 170: 53(fvec4) FAdd 169 168 + Store 55(dvec4v) 170 + 171: 39(float) Load 41(doublev) + 172: 39(float) ExtInst 1(GLSL.std.450) 9(Ceil) 171 + 173: 39(float) Load 41(doublev) + 174: 39(float) FAdd 173 172 + Store 41(doublev) 174 + 175: 43(fvec2) Load 45(dvec2v) + 176: 43(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 175 + 177: 43(fvec2) Load 45(dvec2v) + 178: 43(fvec2) FAdd 177 176 + Store 45(dvec2v) 178 + 179: 48(fvec3) Load 50(dvec3v) + 180: 48(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 179 + 181: 48(fvec3) Load 50(dvec3v) + 182: 48(fvec3) FAdd 181 180 + Store 50(dvec3v) 182 + 183: 53(fvec4) Load 55(dvec4v) + 184: 53(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 183 + 185: 53(fvec4) Load 55(dvec4v) + 186: 53(fvec4) FAdd 185 184 + Store 55(dvec4v) 186 + 187: 39(float) Load 41(doublev) + 188: 39(float) ExtInst 1(GLSL.std.450) 10(Fract) 187 + 189: 39(float) Load 41(doublev) + 190: 39(float) FAdd 189 188 + Store 41(doublev) 190 + 191: 43(fvec2) Load 45(dvec2v) + 192: 43(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 191 + 193: 43(fvec2) Load 45(dvec2v) + 194: 43(fvec2) FAdd 193 192 + Store 45(dvec2v) 194 + 195: 48(fvec3) Load 50(dvec3v) + 196: 48(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 195 + 197: 48(fvec3) Load 50(dvec3v) + 198: 48(fvec3) FAdd 197 196 + Store 50(dvec3v) 198 + 199: 53(fvec4) Load 55(dvec4v) + 200: 53(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 199 + 201: 53(fvec4) Load 55(dvec4v) + 202: 53(fvec4) FAdd 201 200 + Store 55(dvec4v) 202 + 203: 39(float) Load 41(doublev) + 204: 39(float) Load 41(doublev) + 205: 39(float) FMod 203 204 + 206: 39(float) Load 41(doublev) + 207: 39(float) FAdd 206 205 + Store 41(doublev) 207 + 208: 43(fvec2) Load 45(dvec2v) + 209: 39(float) Load 41(doublev) + 210: 43(fvec2) CompositeConstruct 209 209 + 211: 43(fvec2) FMod 208 210 + 212: 43(fvec2) Load 45(dvec2v) + 213: 43(fvec2) FAdd 212 211 + Store 45(dvec2v) 213 + 214: 48(fvec3) Load 50(dvec3v) + 215: 39(float) Load 41(doublev) + 216: 48(fvec3) CompositeConstruct 215 215 215 + 217: 48(fvec3) FMod 214 216 + 218: 48(fvec3) Load 50(dvec3v) + 219: 48(fvec3) FAdd 218 217 + Store 50(dvec3v) 219 + 220: 53(fvec4) Load 55(dvec4v) + 221: 39(float) Load 41(doublev) + 222: 53(fvec4) CompositeConstruct 221 221 221 221 + 223: 53(fvec4) FMod 220 222 + 224: 53(fvec4) Load 55(dvec4v) + 225: 53(fvec4) FAdd 224 223 + Store 55(dvec4v) 225 + 226: 43(fvec2) Load 45(dvec2v) + 227: 43(fvec2) Load 45(dvec2v) + 228: 43(fvec2) FMod 226 227 + 229: 43(fvec2) Load 45(dvec2v) + 230: 43(fvec2) FAdd 229 228 + Store 45(dvec2v) 230 + 231: 48(fvec3) Load 50(dvec3v) + 232: 48(fvec3) Load 50(dvec3v) + 233: 48(fvec3) FMod 231 232 + 234: 48(fvec3) Load 50(dvec3v) + 235: 48(fvec3) FAdd 234 233 + Store 50(dvec3v) 235 + 236: 53(fvec4) Load 55(dvec4v) + 237: 53(fvec4) Load 55(dvec4v) + 238: 53(fvec4) FMod 236 237 + 239: 53(fvec4) Load 55(dvec4v) + 240: 53(fvec4) FAdd 239 238 + Store 55(dvec4v) 240 + 241: 39(float) Load 41(doublev) + 242: 39(float) ExtInst 1(GLSL.std.450) 35(Modf) 241 41(doublev) + 243: 39(float) Load 41(doublev) + 244: 39(float) FAdd 243 242 + Store 41(doublev) 244 + 245: 43(fvec2) Load 45(dvec2v) + 246: 43(fvec2) ExtInst 1(GLSL.std.450) 35(Modf) 245 45(dvec2v) + 247: 43(fvec2) Load 45(dvec2v) + 248: 43(fvec2) FAdd 247 246 + Store 45(dvec2v) 248 + 249: 48(fvec3) Load 50(dvec3v) + 250: 48(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 249 50(dvec3v) + 251: 48(fvec3) Load 50(dvec3v) + 252: 48(fvec3) FAdd 251 250 + Store 50(dvec3v) 252 + 253: 53(fvec4) Load 55(dvec4v) + 254: 53(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 253 55(dvec4v) + 255: 53(fvec4) Load 55(dvec4v) + 256: 53(fvec4) FAdd 255 254 + Store 55(dvec4v) 256 + 257: 39(float) Load 41(doublev) + 258: 39(float) Load 41(doublev) + 259: 39(float) ExtInst 1(GLSL.std.450) 37(FMin) 257 258 + 260: 39(float) Load 41(doublev) + 261: 39(float) FAdd 260 259 + Store 41(doublev) 261 + 262: 43(fvec2) Load 45(dvec2v) + 263: 39(float) Load 41(doublev) + 264: 43(fvec2) CompositeConstruct 263 263 + 265: 43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 262 264 + 266: 43(fvec2) Load 45(dvec2v) + 267: 43(fvec2) FAdd 266 265 + Store 45(dvec2v) 267 + 268: 48(fvec3) Load 50(dvec3v) + 269: 39(float) Load 41(doublev) + 270: 48(fvec3) CompositeConstruct 269 269 269 + 271: 48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 268 270 + 272: 48(fvec3) Load 50(dvec3v) + 273: 48(fvec3) FAdd 272 271 + Store 50(dvec3v) 273 + 274: 53(fvec4) Load 55(dvec4v) + 275: 39(float) Load 41(doublev) + 276: 53(fvec4) CompositeConstruct 275 275 275 275 + 277: 53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 274 276 + 278: 53(fvec4) Load 55(dvec4v) + 279: 53(fvec4) FAdd 278 277 + Store 55(dvec4v) 279 + 280: 43(fvec2) Load 45(dvec2v) + 281: 43(fvec2) Load 45(dvec2v) + 282: 43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 280 281 + 283: 43(fvec2) Load 45(dvec2v) + 284: 43(fvec2) FAdd 283 282 + Store 45(dvec2v) 284 + 285: 48(fvec3) Load 50(dvec3v) + 286: 48(fvec3) Load 50(dvec3v) + 287: 48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 285 286 + 288: 48(fvec3) Load 50(dvec3v) + 289: 48(fvec3) FAdd 288 287 + Store 50(dvec3v) 289 + 290: 53(fvec4) Load 55(dvec4v) + 291: 53(fvec4) Load 55(dvec4v) + 292: 53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 290 291 + 293: 53(fvec4) Load 55(dvec4v) + 294: 53(fvec4) FAdd 293 292 + Store 55(dvec4v) 294 + 295: 39(float) Load 41(doublev) + 296: 39(float) Load 41(doublev) + 297: 39(float) ExtInst 1(GLSL.std.450) 40(FMax) 295 296 + 298: 39(float) Load 41(doublev) + 299: 39(float) FAdd 298 297 + Store 41(doublev) 299 + 300: 43(fvec2) Load 45(dvec2v) + 301: 39(float) Load 41(doublev) + 302: 43(fvec2) CompositeConstruct 301 301 + 303: 43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 300 302 + 304: 43(fvec2) Load 45(dvec2v) + 305: 43(fvec2) FAdd 304 303 + Store 45(dvec2v) 305 + 306: 48(fvec3) Load 50(dvec3v) + 307: 39(float) Load 41(doublev) + 308: 48(fvec3) CompositeConstruct 307 307 307 + 309: 48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 306 308 + 310: 48(fvec3) Load 50(dvec3v) + 311: 48(fvec3) FAdd 310 309 + Store 50(dvec3v) 311 + 312: 53(fvec4) Load 55(dvec4v) + 313: 39(float) Load 41(doublev) + 314: 53(fvec4) CompositeConstruct 313 313 313 313 + 315: 53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 312 314 + 316: 53(fvec4) Load 55(dvec4v) + 317: 53(fvec4) FAdd 316 315 + Store 55(dvec4v) 317 + 318: 43(fvec2) Load 45(dvec2v) + 319: 43(fvec2) Load 45(dvec2v) + 320: 43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 318 319 + 321: 43(fvec2) Load 45(dvec2v) + 322: 43(fvec2) FAdd 321 320 + Store 45(dvec2v) 322 + 323: 48(fvec3) Load 50(dvec3v) + 324: 48(fvec3) Load 50(dvec3v) + 325: 48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 323 324 + 326: 48(fvec3) Load 50(dvec3v) + 327: 48(fvec3) FAdd 326 325 + Store 50(dvec3v) 327 + 328: 53(fvec4) Load 55(dvec4v) + 329: 53(fvec4) Load 55(dvec4v) + 330: 53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 328 329 + 331: 53(fvec4) Load 55(dvec4v) + 332: 53(fvec4) FAdd 331 330 + Store 55(dvec4v) 332 + 333: 39(float) Load 41(doublev) + 334: 39(float) Load 41(doublev) + 335: 39(float) Load 41(doublev) + 336: 39(float) ExtInst 1(GLSL.std.450) 43(FClamp) 333 334 335 + 337: 39(float) Load 41(doublev) + 338: 39(float) FAdd 337 336 + Store 41(doublev) 338 + 339: 43(fvec2) Load 45(dvec2v) + 340: 39(float) Load 41(doublev) + 341: 39(float) Load 41(doublev) + 342: 43(fvec2) CompositeConstruct 340 340 + 343: 43(fvec2) CompositeConstruct 341 341 + 344: 43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 339 342 343 + 345: 43(fvec2) Load 45(dvec2v) + 346: 43(fvec2) FAdd 345 344 + Store 45(dvec2v) 346 + 347: 48(fvec3) Load 50(dvec3v) + 348: 39(float) Load 41(doublev) + 349: 39(float) Load 41(doublev) + 350: 48(fvec3) CompositeConstruct 348 348 348 + 351: 48(fvec3) CompositeConstruct 349 349 349 + 352: 48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 347 350 351 + 353: 48(fvec3) Load 50(dvec3v) + 354: 48(fvec3) FAdd 353 352 + Store 50(dvec3v) 354 + 355: 53(fvec4) Load 55(dvec4v) + 356: 39(float) Load 41(doublev) + 357: 39(float) Load 41(doublev) + 358: 53(fvec4) CompositeConstruct 356 356 356 356 + 359: 53(fvec4) CompositeConstruct 357 357 357 357 + 360: 53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 355 358 359 + 361: 53(fvec4) Load 55(dvec4v) + 362: 53(fvec4) FAdd 361 360 + Store 55(dvec4v) 362 + 363: 43(fvec2) Load 45(dvec2v) + 364: 43(fvec2) Load 45(dvec2v) + 365: 43(fvec2) Load 45(dvec2v) + 366: 43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365 + 367: 43(fvec2) Load 45(dvec2v) + 368: 43(fvec2) FAdd 367 366 + Store 45(dvec2v) 368 + 369: 48(fvec3) Load 50(dvec3v) + 370: 48(fvec3) Load 50(dvec3v) + 371: 48(fvec3) Load 50(dvec3v) + 372: 48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371 + 373: 48(fvec3) Load 50(dvec3v) + 374: 48(fvec3) FAdd 373 372 + Store 50(dvec3v) 374 + 375: 53(fvec4) Load 55(dvec4v) + 376: 53(fvec4) Load 55(dvec4v) + 377: 53(fvec4) Load 55(dvec4v) + 378: 53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 375 376 377 + 379: 53(fvec4) Load 55(dvec4v) + 380: 53(fvec4) FAdd 379 378 + Store 55(dvec4v) 380 + 381: 39(float) Load 41(doublev) + 382: 39(float) Load 41(doublev) + 383: 39(float) Load 41(doublev) + 384: 39(float) ExtInst 1(GLSL.std.450) 46(FMix) 381 382 383 + 385: 39(float) Load 41(doublev) + 386: 39(float) FAdd 385 384 + Store 41(doublev) 386 + 387: 43(fvec2) Load 45(dvec2v) + 388: 43(fvec2) Load 45(dvec2v) + 389: 39(float) Load 41(doublev) + 390: 43(fvec2) CompositeConstruct 389 389 + 391: 43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 387 388 390 + 392: 43(fvec2) Load 45(dvec2v) + 393: 43(fvec2) FAdd 392 391 + Store 45(dvec2v) 393 + 394: 48(fvec3) Load 50(dvec3v) + 395: 48(fvec3) Load 50(dvec3v) + 396: 39(float) Load 41(doublev) + 397: 48(fvec3) CompositeConstruct 396 396 396 + 398: 48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 394 395 397 + 399: 48(fvec3) Load 50(dvec3v) + 400: 48(fvec3) FAdd 399 398 + Store 50(dvec3v) 400 + 401: 53(fvec4) Load 55(dvec4v) + 402: 53(fvec4) Load 55(dvec4v) + 403: 39(float) Load 41(doublev) + 404: 53(fvec4) CompositeConstruct 403 403 403 403 + 405: 53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 401 402 404 + 406: 53(fvec4) Load 55(dvec4v) + 407: 53(fvec4) FAdd 406 405 + Store 55(dvec4v) 407 + 408: 43(fvec2) Load 45(dvec2v) + 409: 43(fvec2) Load 45(dvec2v) + 410: 43(fvec2) Load 45(dvec2v) + 411: 43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 408 409 410 + 412: 43(fvec2) Load 45(dvec2v) + 413: 43(fvec2) FAdd 412 411 + Store 45(dvec2v) 413 + 414: 48(fvec3) Load 50(dvec3v) + 415: 48(fvec3) Load 50(dvec3v) + 416: 48(fvec3) Load 50(dvec3v) + 417: 48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 414 415 416 + 418: 48(fvec3) Load 50(dvec3v) + 419: 48(fvec3) FAdd 418 417 + Store 50(dvec3v) 419 + 420: 53(fvec4) Load 55(dvec4v) + 421: 53(fvec4) Load 55(dvec4v) + 422: 53(fvec4) Load 55(dvec4v) + 423: 53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 420 421 422 + 424: 53(fvec4) Load 55(dvec4v) + 425: 53(fvec4) FAdd 424 423 + Store 55(dvec4v) 425 + 426: 39(float) Load 41(doublev) + 427: 39(float) Load 41(doublev) + 431: 428(bool) Load 430(boolv) + 432: 39(float) Select 431 427 426 + 433: 39(float) Load 41(doublev) + 434: 39(float) FAdd 433 432 + Store 41(doublev) 434 + 435: 43(fvec2) Load 45(dvec2v) + 436: 43(fvec2) Load 45(dvec2v) + 440: 437(bvec2) Load 439(bvec2v) + 441: 43(fvec2) Select 440 436 435 + 442: 43(fvec2) Load 45(dvec2v) + 443: 43(fvec2) FAdd 442 441 + Store 45(dvec2v) 443 + 444: 48(fvec3) Load 50(dvec3v) + 445: 48(fvec3) Load 50(dvec3v) + 449: 446(bvec3) Load 448(bvec3v) + 450: 48(fvec3) Select 449 445 444 + 451: 48(fvec3) Load 50(dvec3v) + 452: 48(fvec3) FAdd 451 450 + Store 50(dvec3v) 452 + 453: 53(fvec4) Load 55(dvec4v) + 454: 53(fvec4) Load 55(dvec4v) + 458: 455(bvec4) Load 457(bvec4v) + 459: 53(fvec4) Select 458 454 453 + 460: 53(fvec4) Load 55(dvec4v) + 461: 53(fvec4) FAdd 460 459 + Store 55(dvec4v) 461 + 462: 39(float) Load 41(doublev) + 463: 39(float) Load 41(doublev) + 464: 39(float) ExtInst 1(GLSL.std.450) 48(Step) 462 463 + 465: 39(float) Load 41(doublev) + 466: 39(float) FAdd 465 464 + Store 41(doublev) 466 + 467: 43(fvec2) Load 45(dvec2v) + 468: 43(fvec2) Load 45(dvec2v) + 469: 43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 467 468 + 470: 43(fvec2) Load 45(dvec2v) + 471: 43(fvec2) FAdd 470 469 + Store 45(dvec2v) 471 + 472: 48(fvec3) Load 50(dvec3v) + 473: 48(fvec3) Load 50(dvec3v) + 474: 48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 472 473 + 475: 48(fvec3) Load 50(dvec3v) + 476: 48(fvec3) FAdd 475 474 + Store 50(dvec3v) 476 + 477: 53(fvec4) Load 55(dvec4v) + 478: 53(fvec4) Load 55(dvec4v) + 479: 53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 477 478 + 480: 53(fvec4) Load 55(dvec4v) + 481: 53(fvec4) FAdd 480 479 + Store 55(dvec4v) 481 + 482: 39(float) Load 41(doublev) + 483: 43(fvec2) Load 45(dvec2v) + 484: 43(fvec2) CompositeConstruct 482 482 + 485: 43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 484 483 + 486: 43(fvec2) Load 45(dvec2v) + 487: 43(fvec2) FAdd 486 485 + Store 45(dvec2v) 487 + 488: 39(float) Load 41(doublev) + 489: 48(fvec3) Load 50(dvec3v) + 490: 48(fvec3) CompositeConstruct 488 488 488 + 491: 48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 490 489 + 492: 48(fvec3) Load 50(dvec3v) + 493: 48(fvec3) FAdd 492 491 + Store 50(dvec3v) 493 + 494: 39(float) Load 41(doublev) + 495: 53(fvec4) Load 55(dvec4v) + 496: 53(fvec4) CompositeConstruct 494 494 494 494 + 497: 53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 496 495 + 498: 53(fvec4) Load 55(dvec4v) + 499: 53(fvec4) FAdd 498 497 + Store 55(dvec4v) 499 + 500: 39(float) Load 41(doublev) + 501: 39(float) Load 41(doublev) + 502: 39(float) Load 41(doublev) + 503: 39(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 500 501 502 + 504: 39(float) Load 41(doublev) + 505: 39(float) FAdd 504 503 + Store 41(doublev) 505 + 506: 43(fvec2) Load 45(dvec2v) + 507: 43(fvec2) Load 45(dvec2v) + 508: 43(fvec2) Load 45(dvec2v) + 509: 43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 506 507 508 + 510: 43(fvec2) Load 45(dvec2v) + 511: 43(fvec2) FAdd 510 509 + Store 45(dvec2v) 511 + 512: 48(fvec3) Load 50(dvec3v) + 513: 48(fvec3) Load 50(dvec3v) + 514: 48(fvec3) Load 50(dvec3v) + 515: 48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 512 513 514 + 516: 48(fvec3) Load 50(dvec3v) + 517: 48(fvec3) FAdd 516 515 + Store 50(dvec3v) 517 + 518: 53(fvec4) Load 55(dvec4v) + 519: 53(fvec4) Load 55(dvec4v) + 520: 53(fvec4) Load 55(dvec4v) + 521: 53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 518 519 520 + 522: 53(fvec4) Load 55(dvec4v) + 523: 53(fvec4) FAdd 522 521 + Store 55(dvec4v) 523 + 524: 39(float) Load 41(doublev) + 525: 39(float) Load 41(doublev) + 526: 43(fvec2) Load 45(dvec2v) + 527: 43(fvec2) CompositeConstruct 524 524 + 528: 43(fvec2) CompositeConstruct 525 525 + 529: 43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 527 528 526 + 530: 43(fvec2) Load 45(dvec2v) + 531: 43(fvec2) FAdd 530 529 + Store 45(dvec2v) 531 + 532: 39(float) Load 41(doublev) + 533: 39(float) Load 41(doublev) + 534: 48(fvec3) Load 50(dvec3v) + 535: 48(fvec3) CompositeConstruct 532 532 532 + 536: 48(fvec3) CompositeConstruct 533 533 533 + 537: 48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 535 536 534 + 538: 48(fvec3) Load 50(dvec3v) + 539: 48(fvec3) FAdd 538 537 + Store 50(dvec3v) 539 + 540: 39(float) Load 41(doublev) + 541: 39(float) Load 41(doublev) + 542: 53(fvec4) Load 55(dvec4v) + 543: 53(fvec4) CompositeConstruct 540 540 540 540 + 544: 53(fvec4) CompositeConstruct 541 541 541 541 + 545: 53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 543 544 542 + 546: 53(fvec4) Load 55(dvec4v) + 547: 53(fvec4) FAdd 546 545 + Store 55(dvec4v) 547 + 548: 39(float) Load 41(doublev) + 549: 428(bool) IsNan 548 + Store 430(boolv) 549 + 550: 43(fvec2) Load 45(dvec2v) + 551: 437(bvec2) IsNan 550 + Store 439(bvec2v) 551 + 552: 48(fvec3) Load 50(dvec3v) + 553: 446(bvec3) IsNan 552 + Store 448(bvec3v) 553 + 554: 53(fvec4) Load 55(dvec4v) + 555: 455(bvec4) IsNan 554 + Store 457(bvec4v) 555 + 557: 428(bool) Load 430(boolv) + SelectionMerge 559 None + BranchConditional 557 558 562 + 558: Label + 560: 39(float) Load 41(doublev) + 561: 428(bool) IsInf 560 + Store 556 561 + Branch 559 + 562: Label + Store 556 563 + Branch 559 + 559: Label + 564: 428(bool) Load 556 + Store 430(boolv) 564 + 566: 428(bool) Load 430(boolv) + SelectionMerge 568 None + BranchConditional 566 567 571 + 567: Label + 569: 43(fvec2) Load 45(dvec2v) + 570: 437(bvec2) IsInf 569 + Store 565 570 + Branch 568 + 571: Label + Store 565 572 + Branch 568 + 568: Label + 573: 437(bvec2) Load 565 + Store 439(bvec2v) 573 + 575: 428(bool) Load 430(boolv) + SelectionMerge 577 None + BranchConditional 575 576 580 + 576: Label + 578: 48(fvec3) Load 50(dvec3v) + 579: 446(bvec3) IsInf 578 + Store 574 579 + Branch 577 + 580: Label + Store 574 581 + Branch 577 + 577: Label + 582: 446(bvec3) Load 574 + Store 448(bvec3v) 582 + 584: 428(bool) Load 430(boolv) + SelectionMerge 586 None + BranchConditional 584 585 589 + 585: Label + 587: 53(fvec4) Load 55(dvec4v) + 588: 455(bvec4) IsInf 587 + Store 583 588 + Branch 586 + 589: Label + Store 583 590 + Branch 586 + 586: Label + 591: 455(bvec4) Load 583 + Store 457(bvec4v) 591 + 592: 39(float) Load 41(doublev) + 593: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 592 + 594: 39(float) Load 41(doublev) + 595: 39(float) FAdd 594 593 + Store 41(doublev) 595 + 596: 43(fvec2) Load 45(dvec2v) + 597: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 596 + 598: 39(float) Load 41(doublev) + 599: 39(float) FAdd 598 597 + Store 41(doublev) 599 + 600: 48(fvec3) Load 50(dvec3v) + 601: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 600 + 602: 39(float) Load 41(doublev) + 603: 39(float) FAdd 602 601 + Store 41(doublev) 603 + 604: 53(fvec4) Load 55(dvec4v) + 605: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 604 + 606: 39(float) Load 41(doublev) + 607: 39(float) FAdd 606 605 + Store 41(doublev) 607 + 608: 39(float) Load 41(doublev) + 609: 39(float) Load 41(doublev) + 610: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 608 609 + 611: 39(float) Load 41(doublev) + 612: 39(float) FAdd 611 610 + Store 41(doublev) 612 + 613: 43(fvec2) Load 45(dvec2v) + 614: 43(fvec2) Load 45(dvec2v) + 615: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 613 614 + 616: 39(float) Load 41(doublev) + 617: 39(float) FAdd 616 615 + Store 41(doublev) 617 + 618: 48(fvec3) Load 50(dvec3v) + 619: 48(fvec3) Load 50(dvec3v) + 620: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 618 619 + 621: 39(float) Load 41(doublev) + 622: 39(float) FAdd 621 620 + Store 41(doublev) 622 + 623: 53(fvec4) Load 55(dvec4v) + 624: 53(fvec4) Load 55(dvec4v) + 625: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 623 624 + 626: 39(float) Load 41(doublev) + 627: 39(float) FAdd 626 625 + Store 41(doublev) 627 + 628: 39(float) Load 41(doublev) + 629: 39(float) Load 41(doublev) + 630: 39(float) FMul 628 629 + 631: 39(float) Load 41(doublev) + 632: 39(float) FAdd 631 630 + Store 41(doublev) 632 + 633: 43(fvec2) Load 45(dvec2v) + 634: 43(fvec2) Load 45(dvec2v) + 635: 39(float) Dot 633 634 + 636: 39(float) Load 41(doublev) + 637: 39(float) FAdd 636 635 + Store 41(doublev) 637 + 638: 48(fvec3) Load 50(dvec3v) + 639: 48(fvec3) Load 50(dvec3v) + 640: 39(float) Dot 638 639 + 641: 39(float) Load 41(doublev) + 642: 39(float) FAdd 641 640 + Store 41(doublev) 642 + 643: 53(fvec4) Load 55(dvec4v) + 644: 53(fvec4) Load 55(dvec4v) + 645: 39(float) Dot 643 644 + 646: 39(float) Load 41(doublev) + 647: 39(float) FAdd 646 645 + Store 41(doublev) 647 + 648: 48(fvec3) Load 50(dvec3v) + 649: 48(fvec3) Load 50(dvec3v) + 650: 48(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 648 649 + 651: 48(fvec3) Load 50(dvec3v) + 652: 48(fvec3) FAdd 651 650 + Store 50(dvec3v) 652 + 653: 39(float) Load 41(doublev) + 654: 39(float) ExtInst 1(GLSL.std.450) 69(Normalize) 653 + 655: 39(float) Load 41(doublev) + 656: 39(float) FAdd 655 654 + Store 41(doublev) 656 + 657: 43(fvec2) Load 45(dvec2v) + 658: 43(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 657 + 659: 43(fvec2) Load 45(dvec2v) + 660: 43(fvec2) FAdd 659 658 + Store 45(dvec2v) 660 + 661: 48(fvec3) Load 50(dvec3v) + 662: 48(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 661 + 663: 48(fvec3) Load 50(dvec3v) + 664: 48(fvec3) FAdd 663 662 + Store 50(dvec3v) 664 + 665: 53(fvec4) Load 55(dvec4v) + 666: 53(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 665 + 667: 53(fvec4) Load 55(dvec4v) + 668: 53(fvec4) FAdd 667 666 + Store 55(dvec4v) 668 + 669: 39(float) Load 41(doublev) + 670: 39(float) Load 41(doublev) + 671: 39(float) Load 41(doublev) + 672: 39(float) ExtInst 1(GLSL.std.450) 70(FaceForward) 669 670 671 + 673: 39(float) Load 41(doublev) + 674: 39(float) FAdd 673 672 + Store 41(doublev) 674 + 675: 43(fvec2) Load 45(dvec2v) + 676: 43(fvec2) Load 45(dvec2v) + 677: 43(fvec2) Load 45(dvec2v) + 678: 43(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 + 679: 43(fvec2) Load 45(dvec2v) + 680: 43(fvec2) FAdd 679 678 + Store 45(dvec2v) 680 + 681: 48(fvec3) Load 50(dvec3v) + 682: 48(fvec3) Load 50(dvec3v) + 683: 48(fvec3) Load 50(dvec3v) + 684: 48(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 681 682 683 + 685: 48(fvec3) Load 50(dvec3v) + 686: 48(fvec3) FAdd 685 684 + Store 50(dvec3v) 686 + 687: 53(fvec4) Load 55(dvec4v) + 688: 53(fvec4) Load 55(dvec4v) + 689: 53(fvec4) Load 55(dvec4v) + 690: 53(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 687 688 689 + 691: 53(fvec4) Load 55(dvec4v) + 692: 53(fvec4) FAdd 691 690 + Store 55(dvec4v) 692 + 693: 39(float) Load 41(doublev) + 694: 39(float) Load 41(doublev) + 695: 39(float) ExtInst 1(GLSL.std.450) 71(Reflect) 693 694 + 696: 39(float) Load 41(doublev) + 697: 39(float) FAdd 696 695 + Store 41(doublev) 697 + 698: 43(fvec2) Load 45(dvec2v) + 699: 43(fvec2) Load 45(dvec2v) + 700: 43(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 698 699 + 701: 43(fvec2) Load 45(dvec2v) + 702: 43(fvec2) FAdd 701 700 + Store 45(dvec2v) 702 + 703: 48(fvec3) Load 50(dvec3v) + 704: 48(fvec3) Load 50(dvec3v) + 705: 48(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 703 704 + 706: 48(fvec3) Load 50(dvec3v) + 707: 48(fvec3) FAdd 706 705 + Store 50(dvec3v) 707 + 708: 53(fvec4) Load 55(dvec4v) + 709: 53(fvec4) Load 55(dvec4v) + 710: 53(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 708 709 + 711: 53(fvec4) Load 55(dvec4v) + 712: 53(fvec4) FAdd 711 710 + Store 55(dvec4v) 712 + 713: 39(float) Load 41(doublev) + 714: 39(float) Load 41(doublev) + 715: 39(float) Load 41(doublev) + 716: 39(float) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715 + 717: 39(float) Load 41(doublev) + 718: 39(float) FAdd 717 716 + Store 41(doublev) 718 + 719: 43(fvec2) Load 45(dvec2v) + 720: 43(fvec2) Load 45(dvec2v) + 721: 39(float) Load 41(doublev) + 722: 43(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721 + 723: 43(fvec2) Load 45(dvec2v) + 724: 43(fvec2) FAdd 723 722 + Store 45(dvec2v) 724 + 725: 48(fvec3) Load 50(dvec3v) + 726: 48(fvec3) Load 50(dvec3v) + 727: 39(float) Load 41(doublev) + 728: 48(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727 + 729: 48(fvec3) Load 50(dvec3v) + 730: 48(fvec3) FAdd 729 728 + Store 50(dvec3v) 730 + 731: 53(fvec4) Load 55(dvec4v) + 732: 53(fvec4) Load 55(dvec4v) + 733: 39(float) Load 41(doublev) + 734: 53(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733 + 735: 53(fvec4) Load 55(dvec4v) + 736: 53(fvec4) FAdd 735 734 + Store 55(dvec4v) 736 + 740: 43(fvec2) Load 45(dvec2v) + 741: 43(fvec2) Load 45(dvec2v) + 742: 737 OuterProduct 740 741 + Store 739(dmat2v) 742 + 746: 48(fvec3) Load 50(dvec3v) + 747: 48(fvec3) Load 50(dvec3v) + 748: 743 OuterProduct 746 747 + Store 745(dmat3v) 748 + 752: 53(fvec4) Load 55(dvec4v) + 753: 53(fvec4) Load 55(dvec4v) + 754: 749 OuterProduct 752 753 + Store 751(dmat4v) 754 + 758: 48(fvec3) Load 50(dvec3v) + 759: 43(fvec2) Load 45(dvec2v) + 760: 755 OuterProduct 758 759 + Store 757(dmat2x3v) 760 + 764: 43(fvec2) Load 45(dvec2v) + 765: 48(fvec3) Load 50(dvec3v) + 766: 761 OuterProduct 764 765 + Store 763(dmat3x2v) 766 + 770: 53(fvec4) Load 55(dvec4v) + 771: 43(fvec2) Load 45(dvec2v) + 772: 767 OuterProduct 770 771 + Store 769(dmat2x4v) 772 + 776: 43(fvec2) Load 45(dvec2v) + 777: 53(fvec4) Load 55(dvec4v) + 778: 773 OuterProduct 776 777 + Store 775(dmat4x2v) 778 + 782: 53(fvec4) Load 55(dvec4v) + 783: 48(fvec3) Load 50(dvec3v) + 784: 779 OuterProduct 782 783 + Store 781(dmat3x4v) 784 + 788: 48(fvec3) Load 50(dvec3v) + 789: 53(fvec4) Load 55(dvec4v) + 790: 785 OuterProduct 788 789 + Store 787(dmat4x3v) 790 + 791: 737 Load 739(dmat2v) + 792: 737 Load 739(dmat2v) + 793: 43(fvec2) CompositeExtract 791 0 + 794: 43(fvec2) CompositeExtract 792 0 + 795: 43(fvec2) FMul 793 794 + 796: 43(fvec2) CompositeExtract 791 1 + 797: 43(fvec2) CompositeExtract 792 1 + 798: 43(fvec2) FMul 796 797 + 799: 737 CompositeConstruct 795 798 + 800: 737 Load 739(dmat2v) + 801: 737 MatrixTimesMatrix 800 799 + Store 739(dmat2v) 801 + 802: 743 Load 745(dmat3v) + 803: 743 Load 745(dmat3v) + 804: 48(fvec3) CompositeExtract 802 0 + 805: 48(fvec3) CompositeExtract 803 0 + 806: 48(fvec3) FMul 804 805 + 807: 48(fvec3) CompositeExtract 802 1 + 808: 48(fvec3) CompositeExtract 803 1 + 809: 48(fvec3) FMul 807 808 + 810: 48(fvec3) CompositeExtract 802 2 + 811: 48(fvec3) CompositeExtract 803 2 + 812: 48(fvec3) FMul 810 811 + 813: 743 CompositeConstruct 806 809 812 + 814: 743 Load 745(dmat3v) + 815: 743 MatrixTimesMatrix 814 813 + Store 745(dmat3v) 815 + 816: 749 Load 751(dmat4v) + 817: 749 Load 751(dmat4v) + 818: 53(fvec4) CompositeExtract 816 0 + 819: 53(fvec4) CompositeExtract 817 0 + 820: 53(fvec4) FMul 818 819 + 821: 53(fvec4) CompositeExtract 816 1 + 822: 53(fvec4) CompositeExtract 817 1 + 823: 53(fvec4) FMul 821 822 + 824: 53(fvec4) CompositeExtract 816 2 + 825: 53(fvec4) CompositeExtract 817 2 + 826: 53(fvec4) FMul 824 825 + 827: 53(fvec4) CompositeExtract 816 3 + 828: 53(fvec4) CompositeExtract 817 3 + 829: 53(fvec4) FMul 827 828 + 830: 749 CompositeConstruct 820 823 826 829 + 831: 749 Load 751(dmat4v) + 832: 749 MatrixTimesMatrix 831 830 + Store 751(dmat4v) 832 + 833: 755 Load 757(dmat2x3v) + 834: 755 Load 757(dmat2x3v) + 835: 48(fvec3) CompositeExtract 833 0 + 836: 48(fvec3) CompositeExtract 834 0 + 837: 48(fvec3) FMul 835 836 + 838: 48(fvec3) CompositeExtract 833 1 + 839: 48(fvec3) CompositeExtract 834 1 + 840: 48(fvec3) FMul 838 839 + 841: 755 CompositeConstruct 837 840 + Store 757(dmat2x3v) 841 + 842: 767 Load 769(dmat2x4v) + 843: 767 Load 769(dmat2x4v) + 844: 53(fvec4) CompositeExtract 842 0 + 845: 53(fvec4) CompositeExtract 843 0 + 846: 53(fvec4) FMul 844 845 + 847: 53(fvec4) CompositeExtract 842 1 + 848: 53(fvec4) CompositeExtract 843 1 + 849: 53(fvec4) FMul 847 848 + 850: 767 CompositeConstruct 846 849 + Store 769(dmat2x4v) 850 + 851: 761 Load 763(dmat3x2v) + 852: 761 Load 763(dmat3x2v) + 853: 43(fvec2) CompositeExtract 851 0 + 854: 43(fvec2) CompositeExtract 852 0 + 855: 43(fvec2) FMul 853 854 + 856: 43(fvec2) CompositeExtract 851 1 + 857: 43(fvec2) CompositeExtract 852 1 + 858: 43(fvec2) FMul 856 857 + 859: 43(fvec2) CompositeExtract 851 2 + 860: 43(fvec2) CompositeExtract 852 2 + 861: 43(fvec2) FMul 859 860 + 862: 761 CompositeConstruct 855 858 861 + Store 763(dmat3x2v) 862 + 863: 779 Load 781(dmat3x4v) + 864: 779 Load 781(dmat3x4v) + 865: 53(fvec4) CompositeExtract 863 0 + 866: 53(fvec4) CompositeExtract 864 0 + 867: 53(fvec4) FMul 865 866 + 868: 53(fvec4) CompositeExtract 863 1 + 869: 53(fvec4) CompositeExtract 864 1 + 870: 53(fvec4) FMul 868 869 + 871: 53(fvec4) CompositeExtract 863 2 + 872: 53(fvec4) CompositeExtract 864 2 + 873: 53(fvec4) FMul 871 872 + 874: 779 CompositeConstruct 867 870 873 + Store 781(dmat3x4v) 874 + 875: 773 Load 775(dmat4x2v) + 876: 773 Load 775(dmat4x2v) + 877: 43(fvec2) CompositeExtract 875 0 + 878: 43(fvec2) CompositeExtract 876 0 + 879: 43(fvec2) FMul 877 878 + 880: 43(fvec2) CompositeExtract 875 1 + 881: 43(fvec2) CompositeExtract 876 1 + 882: 43(fvec2) FMul 880 881 + 883: 43(fvec2) CompositeExtract 875 2 + 884: 43(fvec2) CompositeExtract 876 2 + 885: 43(fvec2) FMul 883 884 + 886: 43(fvec2) CompositeExtract 875 3 + 887: 43(fvec2) CompositeExtract 876 3 + 888: 43(fvec2) FMul 886 887 + 889: 773 CompositeConstruct 879 882 885 888 + Store 775(dmat4x2v) 889 + 890: 785 Load 787(dmat4x3v) + 891: 785 Load 787(dmat4x3v) + 892: 48(fvec3) CompositeExtract 890 0 + 893: 48(fvec3) CompositeExtract 891 0 + 894: 48(fvec3) FMul 892 893 + 895: 48(fvec3) CompositeExtract 890 1 + 896: 48(fvec3) CompositeExtract 891 1 + 897: 48(fvec3) FMul 895 896 + 898: 48(fvec3) CompositeExtract 890 2 + 899: 48(fvec3) CompositeExtract 891 2 + 900: 48(fvec3) FMul 898 899 + 901: 48(fvec3) CompositeExtract 890 3 + 902: 48(fvec3) CompositeExtract 891 3 + 903: 48(fvec3) FMul 901 902 + 904: 785 CompositeConstruct 894 897 900 903 + Store 787(dmat4x3v) 904 + 905: 737 Load 739(dmat2v) + 906: 737 Transpose 905 + 907: 737 Load 739(dmat2v) + 908: 737 MatrixTimesMatrix 907 906 + Store 739(dmat2v) 908 + 909: 743 Load 745(dmat3v) + 910: 743 Transpose 909 + 911: 743 Load 745(dmat3v) + 912: 743 MatrixTimesMatrix 911 910 + Store 745(dmat3v) 912 + 913: 749 Load 751(dmat4v) + 914: 749 Transpose 913 + 915: 749 Load 751(dmat4v) + 916: 749 MatrixTimesMatrix 915 914 + Store 751(dmat4v) 916 + 917: 761 Load 763(dmat3x2v) + 918: 755 Transpose 917 + Store 757(dmat2x3v) 918 + 919: 755 Load 757(dmat2x3v) + 920: 761 Transpose 919 + Store 763(dmat3x2v) 920 + 921: 773 Load 775(dmat4x2v) + 922: 767 Transpose 921 + Store 769(dmat2x4v) 922 + 923: 767 Load 769(dmat2x4v) + 924: 773 Transpose 923 + Store 775(dmat4x2v) 924 + 925: 785 Load 787(dmat4x3v) + 926: 779 Transpose 925 + Store 781(dmat3x4v) 926 + 927: 779 Load 781(dmat3x4v) + 928: 785 Transpose 927 + Store 787(dmat4x3v) 928 + 929: 737 Load 739(dmat2v) + 930: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 929 + 931: 39(float) Load 41(doublev) + 932: 39(float) FAdd 931 930 + Store 41(doublev) 932 + 933: 743 Load 745(dmat3v) + 934: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 933 + 935: 39(float) Load 41(doublev) + 936: 39(float) FAdd 935 934 + Store 41(doublev) 936 + 937: 749 Load 751(dmat4v) + 938: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 937 + 939: 39(float) Load 41(doublev) + 940: 39(float) FAdd 939 938 + Store 41(doublev) 940 + 941: 737 Load 739(dmat2v) + 942: 737 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 941 + 943: 737 Load 739(dmat2v) + 944: 737 MatrixTimesMatrix 943 942 + Store 739(dmat2v) 944 + 945: 743 Load 745(dmat3v) + 946: 743 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 945 + 947: 743 Load 745(dmat3v) + 948: 743 MatrixTimesMatrix 947 946 + Store 745(dmat3v) 948 + 949: 749 Load 751(dmat4v) + 950: 749 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 949 + 951: 749 Load 751(dmat4v) + 952: 749 MatrixTimesMatrix 951 950 + Store 751(dmat4v) 952 + 953: 39(float) Load 41(doublev) + 955: 40(ptr) AccessChain 45(dvec2v) 954 + 956: 39(float) Load 955 + 957: 39(float) FAdd 953 956 + 959: 40(ptr) AccessChain 50(dvec3v) 958 + 960: 39(float) Load 959 + 961: 39(float) FAdd 957 960 + 963: 40(ptr) AccessChain 55(dvec4v) 962 + 964: 39(float) Load 963 + 965: 39(float) FAdd 961 964 + 967: 40(ptr) AccessChain 739(dmat2v) 966 954 + 968: 39(float) Load 967 + 969: 39(float) FAdd 965 968 + 971: 40(ptr) AccessChain 745(dmat3v) 970 958 + 972: 39(float) Load 971 + 973: 39(float) FAdd 969 972 + 974: 40(ptr) AccessChain 751(dmat4v) 25 962 + 975: 39(float) Load 974 + 976: 39(float) FAdd 973 975 + 977: 40(ptr) AccessChain 757(dmat2x3v) 966 954 + 978: 39(float) Load 977 + 979: 39(float) FAdd 976 978 + 980: 40(ptr) AccessChain 763(dmat3x2v) 966 954 + 981: 39(float) Load 980 + 982: 39(float) FAdd 979 981 + 983: 40(ptr) AccessChain 781(dmat3x4v) 970 958 + 984: 39(float) Load 983 + 985: 39(float) FAdd 982 984 + 986: 40(ptr) AccessChain 787(dmat4x3v) 970 958 + 987: 39(float) Load 986 + 988: 39(float) FAdd 985 987 + 989: 40(ptr) AccessChain 769(dmat2x4v) 966 954 + 990: 39(float) Load 989 + 991: 39(float) FAdd 988 990 + 992: 40(ptr) AccessChain 775(dmat4x2v) 966 954 + 993: 39(float) Load 992 + 994: 39(float) FAdd 991 993 + 995: 428(bool) Load 430(boolv) + 997: 10(float) Select 995 996 21 + 998: 39(float) FConvert 997 + 999: 39(float) FAdd 994 998 + 1000: 437(bvec2) Load 439(bvec2v) + 1001: 428(bool) CompositeExtract 1000 0 + 1002: 10(float) Select 1001 996 21 + 1003: 39(float) FConvert 1002 + 1004: 39(float) FAdd 999 1003 + 1005: 446(bvec3) Load 448(bvec3v) + 1006: 428(bool) CompositeExtract 1005 0 + 1007: 10(float) Select 1006 996 21 + 1008: 39(float) FConvert 1007 + 1009: 39(float) FAdd 1004 1008 + 1010: 455(bvec4) Load 457(bvec4v) + 1011: 428(bool) CompositeExtract 1010 0 + 1012: 10(float) Select 1011 996 21 + 1013: 39(float) FConvert 1012 + 1014: 39(float) FAdd 1009 1013 + 1015: 10(float) FConvert 1014 + 1016: 11(fvec4) Load 13(outp) + 1017: 11(fvec4) VectorTimesScalar 1016 1015 + Store 13(outp) 1017 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.400.tesc.out b/deps/glslang/glslang-old/Test/baseResults/spv.400.tesc.out similarity index 59% rename from deps/glslang-new/Test/baseResults/spv.400.tesc.out rename to deps/glslang/glslang-old/Test/baseResults/spv.400.tesc.out index ce7c3afa4b..68b142e5af 100644 --- a/deps/glslang-new/Test/baseResults/spv.400.tesc.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.400.tesc.out @@ -1,14 +1,16 @@ spv.400.tesc +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 92 +// Generated by (magic number): 80001 +// Id's are bound by 93 Capability Tessellation Capability TessellationPointSize Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 24 41 44 47 53 67 72 78 82 83 86 87 90 91 + EntryPoint TessellationControl 4 "main" 24 41 44 47 54 68 73 79 83 84 87 88 91 92 ExecutionMode 4 OutputVertices 4 Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" @@ -32,17 +34,17 @@ spv.400.tesc 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" + Name 54 "gl_out" + Name 68 "gl_TessLevelOuter" + Name 73 "gl_TessLevelInner" + Name 78 "outa" + Name 79 "patchOut" + Name 83 "inb" + Name 84 "ind" + Name 87 "ivla" + Name 88 "ivlb" + Name 91 "ovla" + Name 92 "ovlb" MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance @@ -54,20 +56,20 @@ spv.400.tesc 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 + Decorate 68(gl_TessLevelOuter) Patch + Decorate 68(gl_TessLevelOuter) BuiltIn TessLevelOuter + Decorate 73(gl_TessLevelInner) Patch + Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner + Decorate 79(patchOut) Patch + Decorate 87(ivla) Location 3 + Decorate 88(ivlb) Location 4 + Decorate 91(ovla) Location 3 + Decorate 92(ovlb) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: 6(int) Constant 2 - 8: 6(int) Constant 4 + 8: 6(int) Constant 1 9: 6(int) Constant 0 10: TypeInt 32 1 11: TypePointer Function 10(int) @@ -94,36 +96,37 @@ spv.400.tesc 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 + 51: 6(int) Constant 4 + 52: TypeArray 50(gl_PerVertex) 51 + 53: TypePointer Output 52 + 54(gl_out): 53(ptr) Variable Output + 57: TypePointer Output 15(fvec4) + 61: TypePointer Output 14(float) + 66: TypeArray 14(float) 51 + 67: TypePointer Output 66 +68(gl_TessLevelOuter): 67(ptr) Variable Output + 69: 10(int) Constant 3 + 70: 14(float) Constant 1078774989 + 72: TypePointer Output 49 +73(gl_TessLevelInner): 72(ptr) Variable Output + 74: 14(float) Constant 1067869798 + 76: TypeArray 10(int) 51 + 77: TypePointer Private 76 + 78(outa): 77(ptr) Variable Private + 79(patchOut): 57(ptr) Variable Output + 80: TypeVector 14(float) 2 + 81: TypeArray 80(fvec2) 21 + 82: TypePointer Input 81 + 83(inb): 82(ptr) Variable Input + 84(ind): 82(ptr) Variable Input + 85: TypeArray 15(fvec4) 21 + 86: TypePointer Input 85 + 87(ivla): 86(ptr) Variable Input + 88(ivlb): 86(ptr) Variable Input + 89: TypeArray 15(fvec4) 51 + 90: TypePointer Output 89 + 91(ovla): 90(ptr) Variable Output + 92(ovlb): 90(ptr) Variable Output 4(main): 2 Function None 3 5: Label 12(a): 11(ptr) Variable Function @@ -150,21 +153,21 @@ spv.400.tesc 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 + 55: 10(int) Load 47(gl_InvocationID) + 56: 15(fvec4) Load 17(p) + 58: 57(ptr) AccessChain 54(gl_out) 55 26 + Store 58 56 + 59: 10(int) Load 47(gl_InvocationID) + 60: 14(float) Load 31(ps) + 62: 61(ptr) AccessChain 54(gl_out) 59 25 + Store 62 60 + 63: 10(int) Load 47(gl_InvocationID) + 64: 14(float) Load 35(cd) + 65: 61(ptr) AccessChain 54(gl_out) 63 36 25 + Store 65 64 + 71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69 + Store 71 70 + 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 25 + Store 75 74 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.400.tese.out b/deps/glslang/glslang-old/Test/baseResults/spv.400.tese.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.400.tese.out rename to deps/glslang/glslang-old/Test/baseResults/spv.400.tese.out index 43b6a9159a..0c62bed6d2 100755 --- a/deps/glslang-new/Test/baseResults/spv.400.tese.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.400.tese.out @@ -1,6 +1,8 @@ spv.400.tese +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 96 Capability Tessellation diff --git a/deps/glslang-new/Test/baseResults/spv.420.geom.out b/deps/glslang/glslang-old/Test/baseResults/spv.420.geom.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.420.geom.out rename to deps/glslang/glslang-old/Test/baseResults/spv.420.geom.out index 74a4f0b31f..6413d5a452 100644 --- a/deps/glslang-new/Test/baseResults/spv.420.geom.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.420.geom.out @@ -1,6 +1,8 @@ spv.420.geom +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 72 Capability Geometry diff --git a/deps/glslang-new/Test/baseResults/spv.430.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.430.frag.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.430.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.430.frag.out index 330489f2df..abe2a58a0e 100755 --- a/deps/glslang-new/Test/baseResults/spv.430.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.430.frag.out @@ -1,6 +1,8 @@ spv.430.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 24 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.430.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.430.vert.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.430.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.430.vert.out index 1cd9e619e7..8ea95d1a73 100755 --- a/deps/glslang-new/Test/baseResults/spv.430.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.430.vert.out @@ -1,6 +1,8 @@ spv.430.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 66 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.450.tesc.out b/deps/glslang/glslang-old/Test/baseResults/spv.450.tesc.out new file mode 100755 index 0000000000..a0bf3dd3ba --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.450.tesc.out @@ -0,0 +1,79 @@ +spv.450.tesc +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 23 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 9 16 19 22 + ExecutionMode 4 OutputVertices 4 + Source GLSL 450 + Name 4 "main" + Name 9 "patchOut" + Name 10 "S" + MemberName 10(S) 0 "sMem1" + MemberName 10(S) 1 "sMem2" + Name 11 "TheBlock" + MemberName 11(TheBlock) 0 "bMem1" + MemberName 11(TheBlock) 1 "bMem2" + MemberName 11(TheBlock) 2 "s" + Name 16 "tcBlock" + Name 17 "SingleBlock" + MemberName 17(SingleBlock) 0 "bMem1" + MemberName 17(SingleBlock) 1 "bMem2" + MemberName 17(SingleBlock) 2 "s" + Name 19 "singleBlock" + Name 20 "bn" + MemberName 20(bn) 0 "v1" + MemberName 20(bn) 1 "v2" + MemberName 20(bn) 2 "v3" + Name 22 "" + Decorate 9(patchOut) Patch + MemberDecorate 11(TheBlock) 0 Patch + MemberDecorate 11(TheBlock) 1 Patch + MemberDecorate 11(TheBlock) 2 Patch + Decorate 11(TheBlock) Block + Decorate 16(tcBlock) Location 12 + MemberDecorate 17(SingleBlock) 0 Patch + MemberDecorate 17(SingleBlock) 0 Location 2 + MemberDecorate 17(SingleBlock) 1 Patch + MemberDecorate 17(SingleBlock) 1 Location 3 + MemberDecorate 17(SingleBlock) 2 Patch + MemberDecorate 17(SingleBlock) 2 Location 4 + Decorate 17(SingleBlock) Block + Decorate 19(singleBlock) Location 2 + MemberDecorate 20(bn) 0 Patch + MemberDecorate 20(bn) 0 Location 20 + MemberDecorate 20(bn) 0 Component 0 + MemberDecorate 20(bn) 1 Patch + MemberDecorate 20(bn) 1 Location 24 + MemberDecorate 20(bn) 2 Patch + MemberDecorate 20(bn) 2 Location 25 + MemberDecorate 20(bn) 2 Component 0 + Decorate 20(bn) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(patchOut): 8(ptr) Variable Output + 10(S): TypeStruct 6(float) 6(float) + 11(TheBlock): TypeStruct 6(float) 6(float) 10(S) + 12: TypeInt 32 0 + 13: 12(int) Constant 2 + 14: TypeArray 11(TheBlock) 13 + 15: TypePointer Output 14 + 16(tcBlock): 15(ptr) Variable Output + 17(SingleBlock): TypeStruct 6(float) 6(float) 10(S) + 18: TypePointer Output 17(SingleBlock) + 19(singleBlock): 18(ptr) Variable Output + 20(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) + 21: TypePointer Output 20(bn) + 22: 21(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.AofA.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.AofA.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.AofA.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.AofA.frag.out index a19fae9218..4eb756301b 100644 --- a/deps/glslang-new/Test/baseResults/spv.AofA.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.AofA.frag.out @@ -1,8 +1,8 @@ spv.AofA.frag -WARNING: 0:6: '[][]' : Generating SPIR-V array-of-arrays, but Vulkan only supports single array level for this resource +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 104 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.Operations.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.Operations.frag.out similarity index 91% rename from deps/glslang-new/Test/baseResults/spv.Operations.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.Operations.frag.out index 4113ddf119..1a74192ee5 100755 --- a/deps/glslang-new/Test/baseResults/spv.Operations.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.Operations.frag.out @@ -1,12 +1,14 @@ spv.Operations.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): 80007 -// Id's are bound by 532 +// Generated by (magic number): 80001 +// Id's are bound by 509 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 22 212 288 485 526 531 + EntryPoint Fragment 4 "main" 11 22 212 288 485 503 508 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -22,15 +24,13 @@ spv.Operations.frag Name 305 "b" Name 342 "ub42" Name 485 "FragColor" - Name 503 "m1" - Name 510 "m2" - Name 526 "uiv4" - Name 528 "ub" - Name 531 "uuv4" + Name 503 "uiv4" + Name 505 "ub" + Name 508 "uuv4" Decorate 22(ui) Flat Decorate 288(uui) Flat - Decorate 526(uiv4) Flat - Decorate 531(uuv4) Flat + Decorate 503(uiv4) Flat + Decorate 508(uuv4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -65,24 +65,14 @@ spv.Operations.frag 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 + 501: TypeVector 18(int) 4 + 502: TypePointer Input 501(ivec4) + 503(uiv4): 502(ptr) Variable Input + 504: TypePointer Private 178(bool) + 505(ub): 504(ptr) Variable Private + 506: TypeVector 141(int) 4 + 507: TypePointer Input 506(ivec4) + 508(uuv4): 507(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(v): 8(ptr) Variable Function @@ -90,10 +80,7 @@ spv.Operations.frag 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 + 486: 8(ptr) Variable Function 12: 7(fvec4) Load 11(uv4) 13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12 Store 9(v) 13 @@ -658,9 +645,9 @@ spv.Operations.frag 482: 178(bool) Load 305(b) 483: 178(bool) LogicalNot 482 Store 305(b) 483 - 486: 178(bool) Load 305(b) + 487: 178(bool) Load 305(b) SelectionMerge 489 None - BranchConditional 486 488 498 + BranchConditional 487 488 498 488: Label 490: 18(int) Load 20(i) 491: 6(float) ConvertSToF 490 @@ -670,33 +657,14 @@ spv.Operations.frag 495: 7(fvec4) FAdd 492 494 496: 7(fvec4) Load 9(v) 497: 7(fvec4) FAdd 495 496 - Store 487 497 + Store 486 497 Branch 489 498: Label 499: 7(fvec4) Load 9(v) - Store 487 499 + Store 486 499 Branch 489 489: Label - 500: 7(fvec4) Load 487 + 500: 7(fvec4) Load 486 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-old/Test/baseResults/spv.accessChain.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.accessChain.frag.out new file mode 100755 index 0000000000..b319cfd13d --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.accessChain.frag.out @@ -0,0 +1,329 @@ +spv.accessChain.frag +Warning, version 420 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 206 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 65 158 + 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 65 "OutColor" + Name 153 "s" + Name 158 "u" + Name 159 "param" + Name 163 "param" + Name 167 "param" + Name 171 "param" + Name 175 "param" + Name 179 "param" + Name 183 "param" + Name 187 "param" + Name 191 "param" + Name 195 "param" + Name 199 "param" + Name 203 "param" + Decorate 65(OutColor) Location 0 + Decorate 158(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) + 64: TypePointer Output 7(fvec3) + 65(OutColor): 64(ptr) Variable Output + 66: 13(int) Constant 0 + 67: TypeInt 32 0 + 68: 67(int) Constant 0 + 95: TypeVector 6(float) 2 + 109: 67(int) Constant 2 + 136: TypePointer Output 6(float) + 150: 6(float) Constant 0 + 151: 7(fvec3) ConstantComposite 150 150 150 + 152: TypePointer Function 8(S) + 157: TypePointer Input 13(int) + 158(u): 157(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 153(s): 152(ptr) Variable Function + 159(param): 14(ptr) Variable Function + 163(param): 14(ptr) Variable Function + 167(param): 14(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 + Store 65(OutColor) 151 + 154: 8(S) Load 153(s) + 155: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 154 + 156: 8(S) Load 153(s) + 160: 13(int) Load 158(u) + Store 159(param) 160 + 161: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 156 159(param) + 162: 8(S) Load 153(s) + 164: 13(int) Load 158(u) + Store 163(param) 164 + 165: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 162 163(param) + 166: 8(S) Load 153(s) + 168: 13(int) Load 158(u) + Store 167(param) 168 + 169: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 166 167(param) + 170: 8(S) Load 153(s) + 172: 13(int) Load 158(u) + Store 171(param) 172 + 173: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 170 171(param) + 174: 8(S) Load 153(s) + 176: 13(int) Load 158(u) + Store 175(param) 176 + 177: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 174 175(param) + 178: 8(S) Load 153(s) + 180: 13(int) Load 158(u) + Store 179(param) 180 + 181: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 178 179(param) + 182: 8(S) Load 153(s) + 184: 13(int) Load 158(u) + Store 183(param) 184 + 185: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 182 183(param) + 186: 8(S) Load 153(s) + 188: 13(int) Load 158(u) + Store 187(param) 188 + 189: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 186 187(param) + 190: 8(S) Load 153(s) + 192: 13(int) Load 158(u) + Store 191(param) 192 + 193: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 190 191(param) + 194: 8(S) Load 153(s) + 196: 13(int) Load 158(u) + Store 195(param) 196 + 197: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 194 195(param) + 198: 8(S) Load 153(s) + 200: 13(int) Load 158(u) + Store 199(param) 200 + 201: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 198 199(param) + 202: 8(S) Load 153(s) + 204: 13(int) Load 158(u) + Store 203(param) 204 + 205: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 202 203(param) + Return + FunctionEnd +11(GetColor1(struct-S-vf31;): 2 Function None 9 + 10(i): 8(S) FunctionParameter + 12: Label + 69: 6(float) CompositeExtract 10(i) 0 0 + 70: 7(fvec3) Load 65(OutColor) + 71: 7(fvec3) CompositeConstruct 69 69 69 + 72: 7(fvec3) FAdd 70 71 + Store 65(OutColor) 72 + Return + FunctionEnd +18(GetColor2(struct-S-vf31;i1;): 2 Function None 15 + 16(i): 8(S) FunctionParameter + 17(comp): 14(ptr) FunctionParameter + 19: Label + 73: 13(int) Load 17(comp) + 74: 7(fvec3) CompositeExtract 16(i) 0 + 75: 6(float) VectorExtractDynamic 74 73 + 76: 7(fvec3) Load 65(OutColor) + 77: 7(fvec3) CompositeConstruct 75 75 75 + 78: 7(fvec3) FAdd 76 77 + Store 65(OutColor) 78 + Return + FunctionEnd +22(GetColor3(struct-S-vf31;i1;): 2 Function None 15 + 20(i): 8(S) FunctionParameter + 21(comp): 14(ptr) FunctionParameter + 23: Label + 79: 13(int) Load 21(comp) + 80: 7(fvec3) CompositeExtract 20(i) 0 + 81: 6(float) VectorExtractDynamic 80 79 + 82: 7(fvec3) Load 65(OutColor) + 83: 7(fvec3) CompositeConstruct 81 81 81 + 84: 7(fvec3) FAdd 82 83 + Store 65(OutColor) 84 + Return + FunctionEnd +26(GetColor4(struct-S-vf31;i1;): 2 Function None 15 + 24(i): 8(S) FunctionParameter + 25(comp): 14(ptr) FunctionParameter + 27: Label + 85: 13(int) Load 25(comp) + 86: 7(fvec3) CompositeExtract 24(i) 0 + 87: 6(float) VectorExtractDynamic 86 85 + 88: 7(fvec3) Load 65(OutColor) + 89: 7(fvec3) CompositeConstruct 87 87 87 + 90: 7(fvec3) FAdd 88 89 + Store 65(OutColor) 90 + Return + FunctionEnd +30(GetColor5(struct-S-vf31;i1;): 2 Function None 15 + 28(i): 8(S) FunctionParameter + 29(comp): 14(ptr) FunctionParameter + 31: Label + 91: 7(fvec3) CompositeExtract 28(i) 0 + 92: 7(fvec3) Load 65(OutColor) + 93: 7(fvec3) FAdd 92 91 + Store 65(OutColor) 93 + Return + FunctionEnd +34(GetColor6(struct-S-vf31;i1;): 2 Function None 15 + 32(i): 8(S) FunctionParameter + 33(comp): 14(ptr) FunctionParameter + 35: Label + 94: 13(int) Load 33(comp) + 96: 7(fvec3) CompositeExtract 32(i) 0 + 97: 95(fvec2) VectorShuffle 96 96 1 0 + 98: 6(float) VectorExtractDynamic 97 94 + 99: 7(fvec3) Load 65(OutColor) + 100: 7(fvec3) CompositeConstruct 98 98 98 + 101: 7(fvec3) FAdd 99 100 + Store 65(OutColor) 101 + Return + FunctionEnd +38(GetColor7(struct-S-vf31;i1;): 2 Function None 15 + 36(i): 8(S) FunctionParameter + 37(comp): 14(ptr) FunctionParameter + 39: Label + 102: 7(fvec3) CompositeExtract 36(i) 0 + 103: 95(fvec2) VectorShuffle 102 102 0 1 + 104: 7(fvec3) Load 65(OutColor) + 105: 95(fvec2) VectorShuffle 104 104 0 1 + 106: 95(fvec2) FAdd 105 103 + 107: 7(fvec3) Load 65(OutColor) + 108: 7(fvec3) VectorShuffle 107 106 3 4 2 + Store 65(OutColor) 108 + Return + FunctionEnd +42(GetColor8(struct-S-vf31;i1;): 2 Function None 15 + 40(i): 8(S) FunctionParameter + 41(comp): 14(ptr) FunctionParameter + 43: Label + 110: 6(float) CompositeExtract 40(i) 0 2 + 111: 7(fvec3) Load 65(OutColor) + 112: 7(fvec3) CompositeConstruct 110 110 110 + 113: 7(fvec3) FAdd 111 112 + Store 65(OutColor) 113 + Return + FunctionEnd +46(GetColor9(struct-S-vf31;i1;): 2 Function None 15 + 44(i): 8(S) FunctionParameter + 45(comp): 14(ptr) FunctionParameter + 47: Label + 114: 7(fvec3) CompositeExtract 44(i) 0 + 115: 7(fvec3) Load 65(OutColor) + 116: 7(fvec3) VectorShuffle 115 115 2 0 1 + 117: 7(fvec3) FAdd 116 114 + 118: 7(fvec3) Load 65(OutColor) + 119: 7(fvec3) VectorShuffle 118 117 4 5 3 + Store 65(OutColor) 119 + Return + FunctionEnd +50(GetColor10(struct-S-vf31;i1;): 2 Function None 15 + 48(i): 8(S) FunctionParameter + 49(comp): 14(ptr) FunctionParameter + 51: Label + 120: 7(fvec3) CompositeExtract 48(i) 0 + 121: 95(fvec2) VectorShuffle 120 120 0 1 + 122: 7(fvec3) Load 65(OutColor) + 123: 95(fvec2) VectorShuffle 122 122 2 1 + 124: 95(fvec2) FAdd 123 121 + 125: 7(fvec3) Load 65(OutColor) + 126: 7(fvec3) VectorShuffle 125 124 0 4 3 + Store 65(OutColor) 126 + Return + FunctionEnd +54(GetColor11(struct-S-vf31;i1;): 2 Function None 15 + 52(i): 8(S) FunctionParameter + 53(comp): 14(ptr) FunctionParameter + 55: Label + 127: 7(fvec3) CompositeExtract 52(i) 0 + 128: 95(fvec2) VectorShuffle 127 127 0 1 + 129: 7(fvec3) Load 65(OutColor) + 130: 95(fvec2) VectorShuffle 129 129 0 2 + 131: 95(fvec2) FAdd 130 128 + 132: 7(fvec3) Load 65(OutColor) + 133: 7(fvec3) VectorShuffle 132 131 3 1 4 + Store 65(OutColor) 133 + Return + FunctionEnd +58(GetColor12(struct-S-vf31;i1;): 2 Function None 15 + 56(i): 8(S) FunctionParameter + 57(comp): 14(ptr) FunctionParameter + 59: Label + 134: 13(int) Load 57(comp) + 135: 6(float) CompositeExtract 56(i) 0 0 + 137: 136(ptr) AccessChain 65(OutColor) 134 + 138: 6(float) Load 137 + 139: 6(float) FAdd 138 135 + 140: 136(ptr) AccessChain 65(OutColor) 134 + Store 140 139 + Return + FunctionEnd +62(GetColor13(struct-S-vf31;i1;): 2 Function None 15 + 60(i): 8(S) FunctionParameter + 61(comp): 14(ptr) FunctionParameter + 63: Label + 141: 13(int) Load 61(comp) + 142: 6(float) CompositeExtract 60(i) 0 0 + 143: 7(fvec3) Load 65(OutColor) + 144: 95(fvec2) VectorShuffle 143 143 2 1 + 145: 6(float) VectorExtractDynamic 144 141 + 146: 6(float) FAdd 145 142 + 147: 7(fvec3) Load 65(OutColor) + 148: 7(fvec3) VectorShuffle 147 147 2 1 2 + 149: 7(fvec3) VectorInsertDynamic 148 146 141 + Store 65(OutColor) 149 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.aggOps.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.aggOps.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.aggOps.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.aggOps.frag.out index 1c0c7e91c4..c3ceb9a67b 100644 --- a/deps/glslang-new/Test/baseResults/spv.aggOps.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.aggOps.frag.out @@ -1,9 +1,10 @@ spv.aggOps.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 +// Generated by (magic number): 80001 // Id's are bound by 215 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.always-discard.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.always-discard.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.always-discard.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.always-discard.frag.out index 8074cf8264..652d45c846 100644 --- a/deps/glslang-new/Test/baseResults/spv.always-discard.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.always-discard.frag.out @@ -1,6 +1,6 @@ spv.always-discard.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 84 Capability Shader @@ -18,7 +18,6 @@ spv.always-discard.frag Name 30 "y" Name 36 "radius" Name 59 "gl_FragColor" - Decorate 59(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.always-discard2.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.always-discard2.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/spv.always-discard2.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.always-discard2.frag.out index e3fa43a394..0bbb9eee89 100755 --- a/deps/glslang-new/Test/baseResults/spv.always-discard2.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.always-discard2.frag.out @@ -1,6 +1,6 @@ spv.always-discard2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 40 Capability Shader @@ -17,7 +17,6 @@ spv.always-discard2.frag 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 diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.atomic.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.atomic.comp.out new file mode 100755 index 0000000000..97c7f6e3ab --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.atomic.comp.out @@ -0,0 +1,129 @@ +spv.atomic.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 73 + + Capability Shader + Capability AtomicStorage + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 450 + Name 4 "main" + Name 10 "func(au1;" + Name 9 "c" + Name 12 "atoms(" + Name 20 "counter" + Name 23 "val" + Name 27 "countArr" + Name 35 "origi" + Name 37 "atomi" + Name 40 "origu" + Name 42 "atomu" + Name 43 "value" + Name 60 "dataSSB" + MemberName 60(dataSSB) 0 "f" + MemberName 60(dataSSB) 1 "n_frames_rendered" + Name 62 "result" + Name 70 "arrX" + Name 71 "arrY" + Name 72 "arrZ" + Decorate 20(counter) Offset 0 + Decorate 20(counter) Binding 0 + Decorate 27(countArr) Offset 4 + Decorate 27(countArr) Binding 0 + MemberDecorate 60(dataSSB) 0 Restrict + MemberDecorate 60(dataSSB) 0 Offset 0 + MemberDecorate 60(dataSSB) 1 Restrict + MemberDecorate 60(dataSSB) 1 Offset 16 + Decorate 60(dataSSB) BufferBlock + Decorate 62(result) DescriptorSet 0 + Decorate 62(result) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer AtomicCounter 6(int) + 8: TypeFunction 6(int) 7(ptr) + 14: 6(int) Constant 1 + 15: 6(int) Constant 0 + 19: 6(int) Constant 1024 + 20(counter): 7(ptr) Variable AtomicCounter + 22: TypePointer Function 6(int) + 24: 6(int) Constant 4 + 25: TypeArray 6(int) 24 + 26: TypePointer AtomicCounter 25 + 27(countArr): 26(ptr) Variable AtomicCounter + 28: TypeInt 32 1 + 29: 28(int) Constant 2 + 34: TypePointer Function 28(int) + 36: TypePointer Workgroup 28(int) + 37(atomi): 36(ptr) Variable Workgroup + 38: 28(int) Constant 3 + 41: TypePointer Workgroup 6(int) + 42(atomu): 41(ptr) Variable Workgroup + 43(value): 41(ptr) Variable Workgroup + 46: 6(int) Constant 7 + 51: 28(int) Constant 7 + 55: 6(int) Constant 10 + 58: TypeFloat 32 + 59: TypeVector 28(int) 4 + 60(dataSSB): TypeStruct 58(float) 59(ivec4) + 61: TypePointer Uniform 60(dataSSB) + 62(result): 61(ptr) Variable Uniform + 63: 28(int) Constant 1 + 64: 6(int) Constant 2 + 65: TypePointer Uniform 28(int) + 68: TypeArray 28(int) 14 + 69: TypePointer Private 68 + 70(arrX): 69(ptr) Variable Private + 71(arrY): 69(ptr) Variable Private + 72(arrZ): 69(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 23(val): 22(ptr) Variable Function + MemoryBarrier 14 19 + 21: 6(int) FunctionCall 10(func(au1;) 20(counter) + 30: 7(ptr) AccessChain 27(countArr) 29 + 31: 6(int) AtomicLoad 30 14 15 + Store 23(val) 31 + 32: 6(int) AtomicIDecrement 20(counter) 14 15 + 33: 6(int) AtomicIIncrement 20(counter) 14 15 + Return + FunctionEnd + 10(func(au1;): 6(int) Function None 8 + 9(c): 7(ptr) FunctionParameter + 11: Label + 16: 6(int) AtomicIIncrement 9(c) 14 15 + ReturnValue 16 + FunctionEnd + 12(atoms(): 2 Function None 3 + 13: Label + 35(origi): 34(ptr) Variable Function + 40(origu): 22(ptr) Variable Function + 39: 28(int) AtomicIAdd 37(atomi) 14 15 38 + Store 35(origi) 39 + 44: 6(int) Load 43(value) + 45: 6(int) AtomicAnd 42(atomu) 14 15 44 + Store 40(origu) 45 + 47: 6(int) AtomicOr 42(atomu) 14 15 46 + Store 40(origu) 47 + 48: 6(int) AtomicXor 42(atomu) 14 15 46 + Store 40(origu) 48 + 49: 6(int) Load 43(value) + 50: 6(int) AtomicUMin 42(atomu) 14 15 49 + Store 40(origu) 50 + 52: 28(int) AtomicSMax 37(atomi) 14 15 51 + Store 35(origi) 52 + 53: 28(int) Load 35(origi) + 54: 28(int) AtomicExchange 37(atomi) 14 15 53 + Store 35(origi) 54 + 56: 6(int) Load 43(value) + 57: 6(int) AtomicCompareExchange 42(atomu) 14 15 15 56 55 + Store 40(origu) 57 + 66: 65(ptr) AccessChain 62(result) 63 64 + 67: 28(int) AtomicIAdd 66 14 15 63 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.bitCast.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.bitCast.frag.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.bitCast.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.bitCast.frag.out index a687b8da2e..07dd729e6d 100644 --- a/deps/glslang-new/Test/baseResults/spv.bitCast.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.bitCast.frag.out @@ -1,6 +1,8 @@ spv.bitCast.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 172 Capability Shader @@ -86,8 +88,8 @@ spv.bitCast.frag 148(u4): 147(ptr) Variable Input 153: TypePointer Output 46(fvec4) 154(fragColor): 153(ptr) Variable Output - 158: TypeBool - 159: TypeVector 158(bool) 4 + 159: TypeBool + 160: TypeVector 159(bool) 4 168: 12(float) Constant 1045220557 169: 46(fvec4) ConstantComposite 168 168 168 168 4(main): 2 Function None 3 @@ -95,7 +97,7 @@ spv.bitCast.frag 9(idata): 8(ptr) Variable Function 55(udata): 54(ptr) Variable Function 85(fdata): 84(ptr) Variable Function - 162: 84(ptr) Variable Function + 155: 84(ptr) Variable Function Store 9(idata) 11 15: 12(float) Load 14(f1) 16: 6(int) Bitcast 15 @@ -211,24 +213,24 @@ spv.bitCast.frag 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 + 156: 7(ivec4) Load 9(idata) + 157: 53(ivec4) Bitcast 156 + 158: 53(ivec4) Load 55(udata) + 161: 160(bvec4) IEqual 157 158 + 162: 159(bool) All 161 SelectionMerge 164 None - BranchConditional 161 163 166 + BranchConditional 162 163 166 163: Label 165: 46(fvec4) Load 85(fdata) - Store 162 165 + Store 155 165 Branch 164 166: Label 167: 46(fvec4) Load 85(fdata) 170: 46(fvec4) FAdd 167 169 - Store 162 170 + Store 155 170 Branch 164 164: Label - 171: 46(fvec4) Load 162 + 171: 46(fvec4) Load 155 Store 154(fragColor) 171 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.bool.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.bool.vert.out similarity index 55% rename from deps/glslang-new/Test/baseResults/spv.bool.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.bool.vert.out index becd707a0c..f84687a5bc 100644 --- a/deps/glslang-new/Test/baseResults/spv.bool.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.bool.vert.out @@ -1,7 +1,9 @@ spv.bool.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 46 +// Generated by (magic number): 80001 +// Id's are bound by 49 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -17,18 +19,18 @@ spv.bool.vert 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" + Name 29 "ubname" + MemberName 29(ubname) 0 "b" + Name 31 "ubinst" + Name 32 "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 + MemberDecorate 29(ubname) 0 Offset 0 + Decorate 29(ubname) Block + Decorate 31(ubinst) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -45,29 +47,38 @@ spv.bool.vert 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) + 27: TypePointer Function 18(fvec4) + 29(ubname): TypeStruct 19(int) + 30: TypePointer Uniform 29(ubname) + 31(ubinst): 30(ptr) Variable Uniform + 33: TypePointer Uniform 19(int) + 36: 19(int) Constant 0 + 41: 17(float) Constant 0 + 42: 18(fvec4) ConstantComposite 41 41 41 41 + 44: 17(float) Constant 1065353216 + 45: 18(fvec4) ConstantComposite 44 44 44 44 + 47: 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 + 28: 27(ptr) Variable Function + 32(param): 7(ptr) Variable Function + 34: 33(ptr) AccessChain 31(ubinst) 26 + 35: 19(int) Load 34 + 37: 6(bool) INotEqual 35 36 + Store 32(param) 37 + 38: 6(bool) FunctionCall 10(foo(b1;) 32(param) + SelectionMerge 40 None + BranchConditional 38 39 43 + 39: Label + Store 28 42 + Branch 40 + 43: Label + Store 28 45 + Branch 40 + 40: Label + 46: 18(fvec4) Load 28 + 48: 47(ptr) AccessChain 24 26 + Store 48 46 Return FunctionEnd 10(foo(b1;): 6(bool) Function None 8 diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.boolInBlock.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.boolInBlock.frag.out new file mode 100644 index 0000000000..2181f26d68 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.boolInBlock.frag.out @@ -0,0 +1,165 @@ +spv.boolInBlock.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 107 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 75 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 14 "foo(vb4;vb2;" + Name 12 "paramb4" + Name 13 "paramb2" + Name 17 "b1" + Name 24 "Buffer" + MemberName 24(Buffer) 0 "b2" + Name 26 "" + Name 39 "Uniform" + MemberName 39(Uniform) 0 "b4" + Name 41 "" + Name 62 "param" + Name 67 "param" + Name 75 "fragColor" + MemberDecorate 24(Buffer) 0 Offset 0 + Decorate 24(Buffer) BufferBlock + Decorate 26 DescriptorSet 0 + Decorate 26 Binding 1 + MemberDecorate 39(Uniform) 0 Offset 0 + Decorate 39(Uniform) Block + Decorate 41 DescriptorSet 0 + Decorate 41 Binding 0 + Decorate 75(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) + 22: TypeInt 32 0 + 23: TypeVector 22(int) 2 + 24(Buffer): TypeStruct 23(ivec2) + 25: TypePointer Uniform 24(Buffer) + 26: 25(ptr) Variable Uniform + 27: TypeInt 32 1 + 28: 27(int) Constant 0 + 29: 6(bool) ConstantFalse + 30: 9(bvec2) ConstantComposite 29 29 + 31: 22(int) Constant 0 + 32: 23(ivec2) ConstantComposite 31 31 + 33: 22(int) Constant 1 + 34: 23(ivec2) ConstantComposite 33 33 + 36: TypePointer Uniform 23(ivec2) + 38: TypeVector 22(int) 4 + 39(Uniform): TypeStruct 38(ivec4) + 40: TypePointer Uniform 39(Uniform) + 41: 40(ptr) Variable Uniform + 42: TypePointer Uniform 38(ivec4) + 65: 38(ivec4) ConstantComposite 31 31 31 31 + 72: TypeFloat 32 + 73: TypeVector 72(float) 4 + 74: TypePointer Output 73(fvec4) + 75(fragColor): 74(ptr) Variable Output + 87: 72(float) Constant 0 + 88: 72(float) Constant 1065353216 + 4(main): 2 Function None 3 + 5: Label + 62(param): 8(ptr) Variable Function + 67(param): 10(ptr) Variable Function + 35: 23(ivec2) Select 30 34 32 + 37: 36(ptr) AccessChain 26 28 + Store 37 35 + 43: 42(ptr) AccessChain 41 28 + 44: 38(ivec4) Load 43 + 45: 22(int) CompositeExtract 44 2 + 46: 6(bool) INotEqual 45 31 + SelectionMerge 48 None + BranchConditional 46 47 48 + 47: Label + 49: 42(ptr) AccessChain 41 28 + 50: 38(ivec4) Load 49 + 51: 22(int) CompositeExtract 50 0 + 52: 6(bool) INotEqual 51 31 + 53: 9(bvec2) CompositeConstruct 52 52 + 54: 23(ivec2) Select 53 34 32 + 55: 36(ptr) AccessChain 26 28 + Store 55 54 + Branch 48 + 48: Label + 56: 36(ptr) AccessChain 26 28 + 57: 23(ivec2) Load 56 + 58: 22(int) CompositeExtract 57 0 + 59: 6(bool) INotEqual 58 31 + SelectionMerge 61 None + BranchConditional 59 60 61 + 60: Label + 63: 42(ptr) AccessChain 41 28 + 64: 38(ivec4) Load 63 + 66: 7(bvec4) INotEqual 64 65 + Store 62(param) 66 + 68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param) + 69: 9(bvec2) Load 67(param) + 70: 23(ivec2) Select 69 34 32 + 71: 36(ptr) AccessChain 26 28 + Store 71 70 + Branch 61 + 61: Label + 76: 42(ptr) AccessChain 41 28 + 77: 38(ivec4) Load 76 + 78: 22(int) CompositeExtract 77 0 + 79: 6(bool) INotEqual 78 31 + SelectionMerge 81 None + BranchConditional 79 80 81 + 80: Label + 82: 42(ptr) AccessChain 41 28 + 83: 38(ivec4) Load 82 + 84: 22(int) CompositeExtract 83 1 + 85: 6(bool) INotEqual 84 31 + Branch 81 + 81: Label + 86: 6(bool) Phi 79 61 85 80 + 89: 72(float) Select 86 88 87 + 90: 73(fvec4) CompositeConstruct 89 89 89 89 + Store 75(fragColor) 90 + 91: 42(ptr) AccessChain 41 28 + 92: 38(ivec4) Load 91 + 93: 22(int) CompositeExtract 92 0 + 94: 6(bool) INotEqual 93 31 + 95: 6(bool) LogicalNot 94 + SelectionMerge 97 None + BranchConditional 95 96 97 + 96: Label + 98: 42(ptr) AccessChain 41 28 + 99: 38(ivec4) Load 98 + 100: 22(int) CompositeExtract 99 1 + 101: 6(bool) INotEqual 100 31 + Branch 97 + 97: Label + 102: 6(bool) Phi 94 81 101 96 + 103: 72(float) Select 102 88 87 + 104: 73(fvec4) CompositeConstruct 103 103 103 103 + 105: 73(fvec4) Load 75(fragColor) + 106: 73(fvec4) FSub 105 104 + Store 75(fragColor) 106 + 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 + 18: 7(bvec4) Load 12(paramb4) + 19: 6(bool) CompositeExtract 18 2 + Store 17(b1) 19 + 20: 6(bool) Load 17(b1) + 21: 9(bvec2) CompositeConstruct 20 20 + Store 13(paramb2) 21 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.branch-return.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.branch-return.vert.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.branch-return.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.branch-return.vert.out index ca44724587..9093135b95 100644 --- a/deps/glslang-new/Test/baseResults/spv.branch-return.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.branch-return.vert.out @@ -1,6 +1,8 @@ spv.branch-return.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 38 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.buffer.autoassign.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.buffer.autoassign.frag.out new file mode 100644 index 0000000000..f2c8d6d923 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.buffer.autoassign.frag.out @@ -0,0 +1,85 @@ +spv.buffer.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "psout" + Name 13 "MyUB1" + MemberName 13(MyUB1) 0 "g_a" + MemberName 13(MyUB1) 1 "g_b" + Name 15 "" + Name 25 "MyUB2" + MemberName 25(MyUB2) 0 "g_c" + Name 27 "" + Name 31 "MyUB3" + MemberName 31(MyUB3) 0 "g_d" + Name 33 "" + Name 41 "Color" + MemberDecorate 13(MyUB1) 0 Offset 0 + MemberDecorate 13(MyUB1) 1 Offset 4 + Decorate 13(MyUB1) Block + Decorate 15 DescriptorSet 0 + Decorate 15 Binding 20 + MemberDecorate 25(MyUB2) 0 Offset 0 + Decorate 25(MyUB2) Block + Decorate 27 DescriptorSet 0 + Decorate 27 Binding 15 + MemberDecorate 31(MyUB3) 0 Offset 0 + Decorate 31(MyUB3) Block + Decorate 33 DescriptorSet 0 + Decorate 33 Binding 16 + Decorate 41(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13(MyUB1): TypeStruct 6(float) 11(int) + 14: TypePointer Uniform 13(MyUB1) + 15: 14(ptr) Variable Uniform + 16: TypePointer Uniform 6(float) + 19: 11(int) Constant 1 + 20: TypePointer Uniform 11(int) + 25(MyUB2): TypeStruct 6(float) + 26: TypePointer Uniform 25(MyUB2) + 27: 26(ptr) Variable Uniform + 31(MyUB3): TypeStruct 6(float) + 32: TypePointer Uniform 31(MyUB3) + 33: 32(ptr) Variable Uniform + 38: TypePointer Function 7(fvec4) + 40: TypePointer Output 7(fvec4) + 41(Color): 40(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 10(psout): 9(ptr) Variable Function + 17: 16(ptr) AccessChain 15 12 + 18: 6(float) Load 17 + 21: 20(ptr) AccessChain 15 19 + 22: 11(int) Load 21 + 23: 6(float) ConvertSToF 22 + 24: 6(float) FAdd 18 23 + 28: 16(ptr) AccessChain 27 12 + 29: 6(float) Load 28 + 30: 6(float) FAdd 24 29 + 34: 16(ptr) AccessChain 33 12 + 35: 6(float) Load 34 + 36: 6(float) FAdd 30 35 + 37: 7(fvec4) CompositeConstruct 36 36 36 36 + 39: 38(ptr) AccessChain 10(psout) 12 + Store 39 37 + 42: 38(ptr) AccessChain 10(psout) 12 + 43: 7(fvec4) Load 42 + Store 41(Color) 43 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.conditionalDiscard.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.conditionalDiscard.frag.out similarity index 94% rename from deps/glslang-new/Test/baseResults/spv.conditionalDiscard.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.conditionalDiscard.frag.out index f5e9e6fa00..b3cb8e866a 100755 --- a/deps/glslang-new/Test/baseResults/spv.conditionalDiscard.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.conditionalDiscard.frag.out @@ -1,6 +1,8 @@ spv.conditionalDiscard.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 36 Capability Shader @@ -15,7 +17,6 @@ spv.conditionalDiscard.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.conversion.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.conversion.frag.out similarity index 85% rename from deps/glslang-new/Test/baseResults/spv.conversion.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.conversion.frag.out index a3215324ba..b38d84e826 100755 --- a/deps/glslang-new/Test/baseResults/spv.conversion.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.conversion.frag.out @@ -1,6 +1,6 @@ spv.conversion.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 455 Capability Shader @@ -51,7 +51,6 @@ spv.conversion.frag 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 @@ -119,8 +118,8 @@ spv.conversion.frag 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 + 367: 13(int) Constant 2 + 380: 13(int) Constant 3 427: TypePointer Private 6(bool) 428(u_b): 427(ptr) Variable Private 429: TypePointer Private 23(bvec2) @@ -163,9 +162,9 @@ spv.conversion.frag 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 + 297: 105(ptr) Variable Function + 307: 105(ptr) Variable Function + 323: 117(ptr) Variable Function 417(cv2): 93(ptr) Variable Function 418(cv5): 44(ptr) Variable Function 12: 9(int) Load 11(u_i) @@ -425,101 +424,101 @@ spv.conversion.frag SelectionMerge 296 None BranchConditional 294 295 296 295: Label - 297: 6(bool) Load 8(b) + 298: 6(bool) Load 8(b) SelectionMerge 300 None - BranchConditional 297 299 303 + BranchConditional 298 299 303 299: Label 301: 9(int) Load 58(i) 302: 16(float) ConvertSToF 301 - Store 298 302 + Store 297 302 Branch 300 303: Label 304: 105(ptr) AccessChain 110(f2) 14 305: 16(float) Load 304 - Store 298 305 + Store 297 305 Branch 300 300: Label - 306: 16(float) Load 298 - 307: 7(ptr) AccessChain 25(b2) 14 - 308: 6(bool) Load 307 + 306: 16(float) Load 297 + 308: 23(bvec2) Load 25(b2) + 309: 6(bool) CompositeExtract 308 0 SelectionMerge 311 None - BranchConditional 308 310 314 + BranchConditional 309 310 314 310: Label 312: 105(ptr) AccessChain 114(f3) 14 313: 16(float) Load 312 - Store 309 313 + Store 307 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 + Store 307 318 Branch 311 311: Label - 319: 16(float) Load 309 + 319: 16(float) Load 307 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 + 324: 6(bool) Load 8(b) + 325: 23(bvec2) Load 25(b2) + 326: 6(bool) CompositeExtract 325 0 + 327: 6(bool) LogicalOr 324 326 + 328: 23(bvec2) Load 25(b2) + 329: 6(bool) CompositeExtract 328 1 + 330: 6(bool) LogicalOr 327 329 + 331: 31(bvec3) Load 33(b3) + 332: 6(bool) CompositeExtract 331 0 + 333: 6(bool) LogicalOr 330 332 + 334: 31(bvec3) Load 33(b3) + 335: 6(bool) CompositeExtract 334 1 + 336: 6(bool) LogicalOr 333 335 + 337: 31(bvec3) Load 33(b3) + 338: 6(bool) CompositeExtract 337 2 + 339: 6(bool) LogicalOr 336 338 + 340: 43(bvec4) Load 45(b4) + 341: 6(bool) CompositeExtract 340 0 342: 6(bool) LogicalOr 339 341 - 343: 7(ptr) AccessChain 45(b4) 315 - 344: 6(bool) Load 343 + 343: 43(bvec4) Load 45(b4) + 344: 6(bool) CompositeExtract 343 1 345: 6(bool) LogicalOr 342 344 - 346: 7(ptr) AccessChain 45(b4) 336 - 347: 6(bool) Load 346 + 346: 43(bvec4) Load 45(b4) + 347: 6(bool) CompositeExtract 346 2 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 + 349: 43(bvec4) Load 45(b4) + 350: 6(bool) CompositeExtract 349 3 + 351: 6(bool) LogicalOr 348 350 + SelectionMerge 353 None + BranchConditional 351 352 415 + 352: Label + 354: 9(int) Load 58(i) + 355: 57(ptr) AccessChain 68(i2) 14 + 356: 9(int) Load 355 + 357: 9(int) IAdd 354 356 + 358: 57(ptr) AccessChain 68(i2) 315 + 359: 9(int) Load 358 + 360: 9(int) IAdd 357 359 + 361: 57(ptr) AccessChain 81(i3) 14 + 362: 9(int) Load 361 + 363: 9(int) IAdd 360 362 + 364: 57(ptr) AccessChain 81(i3) 315 + 365: 9(int) Load 364 + 366: 9(int) IAdd 363 365 + 368: 57(ptr) AccessChain 81(i3) 367 + 369: 9(int) Load 368 + 370: 9(int) IAdd 366 369 + 371: 57(ptr) AccessChain 94(i4) 14 + 372: 9(int) Load 371 + 373: 9(int) IAdd 370 372 + 374: 57(ptr) AccessChain 94(i4) 315 + 375: 9(int) Load 374 + 376: 9(int) IAdd 373 375 + 377: 57(ptr) AccessChain 94(i4) 367 + 378: 9(int) Load 377 + 379: 9(int) IAdd 376 378 + 381: 57(ptr) AccessChain 94(i4) 380 382: 9(int) Load 381 - 383: 9(int) IAdd 380 382 + 383: 9(int) IAdd 379 382 384: 16(float) ConvertSToF 383 385: 16(float) Load 106(f) 386: 16(float) FAdd 384 385 @@ -535,7 +534,7 @@ spv.conversion.frag 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 + 399: 105(ptr) AccessChain 114(f3) 367 400: 16(float) Load 399 401: 16(float) FAdd 398 400 402: 105(ptr) AccessChain 118(f4) 14 @@ -544,20 +543,20 @@ spv.conversion.frag 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 + 408: 105(ptr) AccessChain 118(f4) 367 409: 16(float) Load 408 410: 16(float) FAdd 407 409 - 411: 105(ptr) AccessChain 118(f4) 349 + 411: 105(ptr) AccessChain 118(f4) 380 412: 16(float) Load 411 413: 16(float) FAdd 410 412 414: 95(fvec4) CompositeConstruct 413 413 413 413 - Store 353 414 - Branch 355 + Store 323 414 + Branch 353 415: Label - Store 353 151 - Branch 355 - 355: Label - 416: 95(fvec4) Load 353 + Store 323 151 + Branch 353 + 353: Label + 416: 95(fvec4) Load 323 Store 322(gl_FragColor) 416 Store 417(cv2) 102 419: 92(ivec4) Load 417(cv2) diff --git a/deps/glslang-new/Test/baseResults/spv.dataOut.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.dataOut.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.dataOut.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.dataOut.frag.out index f3847213f2..9dbe5d124b 100755 --- a/deps/glslang-new/Test/baseResults/spv.dataOut.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.dataOut.frag.out @@ -1,6 +1,6 @@ spv.dataOut.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 20 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.dataOutIndirect.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.dataOutIndirect.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.dataOutIndirect.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.dataOutIndirect.frag.out index c0b52ae3c6..663092fd32 100755 --- a/deps/glslang-new/Test/baseResults/spv.dataOutIndirect.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.dataOutIndirect.frag.out @@ -1,6 +1,6 @@ spv.dataOutIndirect.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 26 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.dataOutIndirect.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.dataOutIndirect.vert.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.dataOutIndirect.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.dataOutIndirect.vert.out index 9ba988c653..1523fab59e 100755 --- a/deps/glslang-new/Test/baseResults/spv.dataOutIndirect.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.dataOutIndirect.vert.out @@ -2,7 +2,7 @@ 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 +// Generated by (magic number): 80001 // Id's are bound by 38 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.deepRvalue.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.deepRvalue.frag.out similarity index 72% rename from deps/glslang-new/Test/baseResults/spv.deepRvalue.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.deepRvalue.frag.out index a0e4eabc34..29cf848873 100644 --- a/deps/glslang-new/Test/baseResults/spv.deepRvalue.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.deepRvalue.frag.out @@ -1,12 +1,12 @@ spv.deepRvalue.frag // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 152 +// Generated by (magic number): 80001 +// Id's are bound by 155 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 146 + EntryPoint Fragment 4 "main" 149 ExecutionMode 4 OriginUpperLeft Source GLSL 330 Name 4 "main" @@ -21,14 +21,13 @@ spv.deepRvalue.frag 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" + Name 134 "str" + MemberName 134(str) 0 "a" + MemberName 134(str) 1 "b" + MemberName 134(str) 2 "c" + Name 136 "t" + Name 149 "gl_FragColor" Decorate 111(samp2D) DescriptorSet 0 - Decorate 146(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -76,22 +75,22 @@ spv.deepRvalue.frag 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 + 118: TypePointer Function 7(fvec4) + 121: 6(float) Constant 1036831949 + 122: TypeBool + 133: TypeArray 113(fvec2) 84 + 134(str): TypeStruct 81(int) 133 122(bool) + 135: TypePointer Function 134(str) + 137: 113(fvec2) ConstantComposite 10 11 + 138: 6(float) Constant 1082130432 + 139: 113(fvec2) ConstantComposite 138 12 + 140: 6(float) Constant 1086324736 + 141: 113(fvec2) ConstantComposite 140 13 + 142: 133 ConstantComposite 137 139 141 + 143: 122(bool) ConstantTrue + 144: 134(str) ConstantComposite 82 142 143 + 148: TypePointer Output 7(fvec4) +149(gl_FragColor): 148(ptr) Variable Output 4(main): 2 Function None 3 5: Label 35(m): 34(ptr) Variable Function @@ -100,7 +99,8 @@ spv.deepRvalue.frag 87(g): 79(ptr) Variable Function 106(h): 79(ptr) Variable Function 107(i): 79(ptr) Variable Function - 133(t): 132(ptr) Variable Function + 119: 118(ptr) Variable Function + 136(t): 135(ptr) Variable Function Store 9(v1) 14 Store 15(v2) 20 Store 21(v3) 26 @@ -172,26 +172,34 @@ spv.deepRvalue.frag 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 + 120: 6(float) Load 107(i) + 123: 122(bool) FOrdGreaterThan 120 121 + SelectionMerge 125 None + BranchConditional 123 124 127 + 124: Label + 126: 7(fvec4) Load 9(v1) + Store 119 126 + Branch 125 + 127: Label + 128: 7(fvec4) Load 15(v2) + Store 119 128 + Branch 125 + 125: Label + 129: 79(ptr) AccessChain 119 84 + 130: 6(float) Load 129 + 131: 6(float) Load 107(i) + 132: 6(float) FAdd 131 130 + Store 107(i) 132 + Store 136(t) 144 + 145: 6(float) CompositeExtract 144 1 2 1 + 146: 6(float) Load 107(i) + 147: 6(float) FAdd 146 145 + Store 107(i) 147 + 150: 6(float) Load 80(f) + 151: 6(float) Load 87(g) + 152: 6(float) Load 106(h) + 153: 6(float) Load 107(i) + 154: 7(fvec4) CompositeConstruct 150 151 152 153 + Store 149(gl_FragColor) 154 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.depthOut.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.depthOut.frag.out similarity index 91% rename from deps/glslang-new/Test/baseResults/spv.depthOut.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.depthOut.frag.out index 5da0df07da..247b2f3d08 100755 --- a/deps/glslang-new/Test/baseResults/spv.depthOut.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.depthOut.frag.out @@ -1,6 +1,8 @@ spv.depthOut.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 15 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.discard-dce.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.discard-dce.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.discard-dce.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.discard-dce.frag.out index 9d138f294b..173ea260ae 100755 --- a/deps/glslang-new/Test/baseResults/spv.discard-dce.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.discard-dce.frag.out @@ -1,6 +1,6 @@ spv.discard-dce.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 84 Capability Shader @@ -18,7 +18,6 @@ spv.discard-dce.frag Name 30 "y" Name 36 "radius" Name 59 "gl_FragColor" - Decorate 59(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.do-simple.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.do-simple.vert.out similarity index 91% rename from deps/glslang-new/Test/baseResults/spv.do-simple.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.do-simple.vert.out index 6014dfec80..d6d4c28f33 100755 --- a/deps/glslang-new/Test/baseResults/spv.do-simple.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.do-simple.vert.out @@ -1,6 +1,8 @@ spv.do-simple.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 21 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.do-while-continue-break.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.do-while-continue-break.vert.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.do-while-continue-break.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.do-while-continue-break.vert.out index 2838880015..d1d0c85c98 100644 --- a/deps/glslang-new/Test/baseResults/spv.do-while-continue-break.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.do-while-continue-break.vert.out @@ -1,6 +1,8 @@ spv.do-while-continue-break.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 43 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.doWhileLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.doWhileLoop.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/spv.doWhileLoop.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.doWhileLoop.frag.out index 808466eb00..9b8cee7013 100755 --- a/deps/glslang-new/Test/baseResults/spv.doWhileLoop.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.doWhileLoop.frag.out @@ -1,6 +1,6 @@ spv.doWhileLoop.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 34 Capability Shader @@ -15,7 +15,6 @@ spv.doWhileLoop.frag Name 17 "bigColor" Name 27 "d" Name 32 "gl_FragColor" - Decorate 32(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.double.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.double.comp.out similarity index 82% rename from deps/glslang-new/Test/baseResults/spv.double.comp.out rename to deps/glslang/glslang-old/Test/baseResults/spv.double.comp.out index eb8e1226d0..3b1bdc89ca 100755 --- a/deps/glslang-new/Test/baseResults/spv.double.comp.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.double.comp.out @@ -1,6 +1,8 @@ spv.double.comp +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 60 Capability Shader @@ -34,13 +36,13 @@ spv.double.comp 3: TypeFunction 2 6: TypeFloat 32 7: TypeFloat 64 - 8(bufName): TypeStruct 6(float) 7(float64_t) + 8(bufName): TypeStruct 6(float) 7(float) 9: TypePointer Uniform 8(bufName) 10(bufInst): 9(ptr) Variable Uniform 11: TypeInt 32 1 12: 11(int) Constant 1 - 13:7(float64_t) Constant 1413754136 1074340347 - 14: TypePointer Uniform 7(float64_t) + 13: 7(float) Constant 1413754136 1074340347 + 14: TypePointer Uniform 7(float) 16: 11(int) Constant 0 17: 6(float) Constant 1095307129 18: TypePointer Uniform 6(float) @@ -51,19 +53,19 @@ spv.double.comp 25: TypePointer Input 24(ivec3) 26(gl_GlobalInvocationID): 25(ptr) Variable Input 27: TypeVector 23(int) 2 - 31: TypePointer Function 7(float64_t) + 31: TypePointer Function 7(float) 33(gl_LocalInvocationID): 25(ptr) Variable Input 37: 11(int) Constant 8 40: TypeVector 6(float) 2 42: 6(float) Constant 1090519040 - 47: TypeVector 7(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 + 47: TypeVector 7(float) 4 + 48: TypePointer Function 47(fvec4) + 50: 7(float) Constant 2576980378 1071225241 + 51: 7(float) Constant 2576980378 1070176665 + 52: 7(float) Constant 858993459 1070805811 + 53: 47(fvec4) ConstantComposite 50 51 52 50 + 55: 7(float) Constant 0 1072693248 + 56: 7(float) Constant 3229815407 1074340298 57: TypeImage 6(float) 2D nonsampled format:Unknown 58: TypePointer UniformConstant 57 59(destTex): 58(ptr) Variable UniformConstant @@ -90,7 +92,7 @@ spv.double.comp 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 + 46: 7(float) FConvert 45 Store 32(localCoef) 46 Store 49(aa) 53 Store 54(globalCoef) 55 diff --git a/deps/glslang-new/Test/baseResults/spv.earlyReturnDiscard.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.earlyReturnDiscard.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.earlyReturnDiscard.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.earlyReturnDiscard.frag.out index c44b722f0f..41441b7f6f 100755 --- a/deps/glslang-new/Test/baseResults/spv.earlyReturnDiscard.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.earlyReturnDiscard.frag.out @@ -1,6 +1,6 @@ spv.earlyReturnDiscard.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 110 Capability Shader @@ -24,7 +24,6 @@ spv.earlyReturnDiscard.frag Name 77 "b" Name 105 "gl_FragColor" Name 109 "threshhold3" - Decorate 105(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.float16.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.float16.frag.out similarity index 56% rename from deps/glslang-new/Test/baseResults/spv.float16.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.float16.frag.out index b6d37f4555..5499b7e8e8 100644 --- a/deps/glslang-new/Test/baseResults/spv.float16.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.float16.frag.out @@ -1,6 +1,8 @@ spv.float16.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 534 Capability Shader @@ -9,11 +11,7 @@ spv.float16.frag 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 @@ -107,9 +105,6 @@ spv.float16.frag 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 @@ -150,92 +145,92 @@ spv.float16.frag 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 + Decorate 526 SpecId 100 + Decorate 527 SpecId 101 + Decorate 528 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 + 29: TypeVector 28(float) 2 + 30: TypePointer Function 29(fvec2) + 32: 28(float) Constant 16 33: TypeInt 32 0 34: 33(int) Constant 0 - 35: TypePointer Function 28(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 + 35: TypePointer Function 28(float) + 37: 28(float) Constant 46080 + 38: 28(float) Constant 10158 + 39: 29(fvec2) ConstantComposite 37 38 + 56: 28(float) Constant 15360 + 62: TypeMatrix 29(fvec2) 2 63: TypePointer Function 62 90: 33(int) Constant 1 109: TypeBool 110: TypePointer Function 109(bool) - 151: TypeVector 28(float16_t) 3 - 152: TypePointer Function 151(f16vec3) + 151: TypeVector 28(float) 3 + 152: TypePointer Function 151(fvec3) 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 + 158: 28(float) Constant 0 + 159: 151(fvec3) ConstantComposite 158 158 158 + 160: 151(fvec3) ConstantComposite 56 56 56 164: TypeFloat 32 165: TypeVector 164(float) 3 166: TypePointer Function 165(fvec3) 172: TypeFloat 64 - 173: TypeVector 172(float64_t) 3 - 174: TypePointer Function 173(f64vec3) + 173: TypeVector 172(float) 3 + 174: TypePointer Function 173(fvec3) 183: TypeInt 32 1 184: TypeVector 183(int) 3 185: TypePointer Function 184(ivec3) 191: TypeVector 33(int) 3 192: TypePointer Function 191(ivec3) 198: TypeInt 64 1 - 199: TypeVector 198(int64_t) 3 - 200: TypePointer Function 199(i64vec3) + 199: TypeVector 198(int) 3 + 200: TypePointer Function 199(ivec3) 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) + 207: TypeVector 206(int) 3 + 208: TypePointer Function 207(ivec3) + 214: TypeVector 28(float) 4 + 215: TypePointer Function 214(fvec4) + 364(ResType): TypeStruct 151(fvec3) 184(ivec3) 371: TypePointer Function 33(int) - 406: TypeMatrix 151(f16vec3) 2 + 406: TypeMatrix 151(fvec3) 2 407: TypePointer Function 406 - 425: TypeMatrix 29(f16vec2) 3 + 425: TypeMatrix 29(fvec2) 3 426: TypePointer Function 425 - 431: TypeMatrix 151(f16vec3) 3 + 431: TypeMatrix 151(fvec3) 3 432: TypePointer Function 431 - 436: TypeMatrix 214(f16vec4) 4 + 436: TypeMatrix 214(fvec4) 4 437: TypePointer Function 436 - 464: TypePointer Input 151(f16vec3) + 464: TypePointer Input 151(fvec3) 465(if16v): 464(ptr) Variable Input - 466: TypePointer Input 28(float16_t) + 466: TypePointer Input 28(float) 503: 183(int) Constant 1 - 508:28(float16_t) Constant 14336 - 509: 29(f16vec2) ConstantComposite 508 508 + 508: 28(float) Constant 14336 + 509: 29(fvec2) ConstantComposite 508 508 511: 33(int) Constant 2 - 512: TypeArray 28(float16_t) 511 + 512: TypeArray 28(float) 511 513: TypeArray 406 511 - 514(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) + 514(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) 515: TypeArray 514(S) 511 - 516(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 512 406 513 514(S) 515 + 516(B1): TypeStruct 28(float) 29(fvec2) 151(fvec3) 512 406 513 514(S) 515 517: TypePointer Uniform 516(B1) 518: 517(ptr) Variable Uniform - 519: TypeArray 28(float16_t) 511 + 519: TypeArray 28(float) 511 520: TypeArray 406 511 - 521(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) + 521(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) 522: TypeArray 521(S) 511 - 523(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 519 406 520 521(S) 522 + 523(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 519 406 520 521(S) 522 524: TypePointer Uniform 523(B2) 525: 524(ptr) Variable Uniform - 526(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) + 526: 28(float) SpecConstant 12288 + 527: 164(float) SpecConstant 1048576000 + 528: 172(float) SpecConstant 0 1071644672 + 529: 164(float) SpecConstantOp 115 526 + 530: 164(float) SpecConstantOp 115 526 + 531: 172(float) SpecConstantOp 115 530 + 532: 28(float) SpecConstantOp 115 527 + 533: 28(float) SpecConstantOp 115 528 4(main): 2 Function None 3 5: Label Return @@ -245,8 +240,8 @@ spv.float16.frag 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 + 40: 29(fvec2) Load 31(f16v) + 41: 29(fvec2) FAdd 40 39 Store 31(f16v) 41 Return FunctionEnd @@ -256,125 +251,125 @@ spv.float16.frag 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 + 43: 29(fvec2) Load 42(f16v) + 44: 29(fvec2) Load 42(f16v) + 45: 29(fvec2) 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 + 46: 29(fvec2) Load 42(f16v) + 47: 29(fvec2) Load 42(f16v) + 48: 29(fvec2) 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 + 49: 29(fvec2) Load 42(f16v) + 50: 29(fvec2) Load 42(f16v) + 51: 29(fvec2) 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 + 52: 29(fvec2) Load 42(f16v) + 53: 29(fvec2) Load 42(f16v) + 54: 29(fvec2) 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 + 55: 29(fvec2) Load 42(f16v) + 57: 29(fvec2) CompositeConstruct 56 56 + 58: 29(fvec2) 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 + 59: 29(fvec2) Load 42(f16v) + 60: 29(fvec2) CompositeConstruct 56 56 + 61: 29(fvec2) FSub 59 60 Store 42(f16v) 61 65: 62 Load 64(f16m) - 66: 29(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 + 66: 29(fvec2) CompositeConstruct 56 56 + 67: 29(fvec2) CompositeExtract 65 0 + 68: 29(fvec2) FAdd 67 66 + 69: 29(fvec2) CompositeExtract 65 1 + 70: 29(fvec2) FAdd 69 66 71: 62 CompositeConstruct 68 70 Store 64(f16m) 71 72: 62 Load 64(f16m) - 73: 29(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 + 73: 29(fvec2) CompositeConstruct 56 56 + 74: 29(fvec2) CompositeExtract 72 0 + 75: 29(fvec2) FSub 74 73 + 76: 29(fvec2) CompositeExtract 72 1 + 77: 29(fvec2) FSub 76 73 78: 62 CompositeConstruct 75 77 Store 64(f16m) 78 - 79: 29(f16vec2) Load 42(f16v) - 80: 29(f16vec2) FNegate 79 + 79: 29(fvec2) Load 42(f16v) + 80: 29(fvec2) 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 + 82: 29(fvec2) CompositeExtract 81 0 + 83: 29(fvec2) FNegate 82 + 84: 29(fvec2) CompositeExtract 81 1 + 85: 29(fvec2) FNegate 84 86: 62 CompositeConstruct 83 85 Store 64(f16m) 86 88: 35(ptr) AccessChain 42(f16v) 34 - 89:28(float16_t) Load 88 + 89: 28(float) Load 88 91: 35(ptr) AccessChain 42(f16v) 90 - 92:28(float16_t) Load 91 - 93:28(float16_t) FAdd 89 92 + 92: 28(float) Load 91 + 93: 28(float) FAdd 89 92 Store 87(f16) 93 94: 35(ptr) AccessChain 42(f16v) 34 - 95:28(float16_t) Load 94 + 95: 28(float) Load 94 96: 35(ptr) AccessChain 42(f16v) 90 - 97:28(float16_t) Load 96 - 98:28(float16_t) FSub 95 97 + 97: 28(float) Load 96 + 98: 28(float) FSub 95 97 Store 87(f16) 98 99: 35(ptr) AccessChain 42(f16v) 34 - 100:28(float16_t) Load 99 + 100: 28(float) Load 99 101: 35(ptr) AccessChain 42(f16v) 90 - 102:28(float16_t) Load 101 - 103:28(float16_t) FMul 100 102 + 102: 28(float) Load 101 + 103: 28(float) FMul 100 102 Store 87(f16) 103 104: 35(ptr) AccessChain 42(f16v) 34 - 105:28(float16_t) Load 104 + 105: 28(float) Load 104 106: 35(ptr) AccessChain 42(f16v) 90 - 107:28(float16_t) Load 106 - 108:28(float16_t) FDiv 105 107 + 107: 28(float) Load 106 + 108: 28(float) 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) + 113: 28(float) Load 112 + 114: 28(float) Load 87(f16) 115: 109(bool) FOrdNotEqual 113 114 Store 111(b) 115 116: 35(ptr) AccessChain 42(f16v) 90 - 117:28(float16_t) Load 116 - 118:28(float16_t) Load 87(f16) + 117: 28(float) Load 116 + 118: 28(float) Load 87(f16) 119: 109(bool) FOrdEqual 117 118 Store 111(b) 119 120: 35(ptr) AccessChain 42(f16v) 34 - 121:28(float16_t) Load 120 - 122:28(float16_t) Load 87(f16) + 121: 28(float) Load 120 + 122: 28(float) Load 87(f16) 123: 109(bool) FOrdGreaterThan 121 122 Store 111(b) 123 124: 35(ptr) AccessChain 42(f16v) 90 - 125:28(float16_t) Load 124 - 126:28(float16_t) Load 87(f16) + 125: 28(float) Load 124 + 126: 28(float) Load 87(f16) 127: 109(bool) FOrdLessThan 125 126 Store 111(b) 127 128: 35(ptr) AccessChain 42(f16v) 34 - 129:28(float16_t) Load 128 - 130:28(float16_t) Load 87(f16) + 129: 28(float) Load 128 + 130: 28(float) Load 87(f16) 131: 109(bool) FOrdGreaterThanEqual 129 130 Store 111(b) 131 132: 35(ptr) AccessChain 42(f16v) 90 - 133:28(float16_t) Load 132 - 134:28(float16_t) Load 87(f16) + 133: 28(float) Load 132 + 134: 28(float) 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 + 136: 29(fvec2) Load 42(f16v) + 137: 28(float) Load 87(f16) + 138: 29(fvec2) VectorTimesScalar 136 137 Store 42(f16v) 138 139: 62 Load 64(f16m) - 140:28(float16_t) Load 87(f16) + 140: 28(float) 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 + 143: 29(fvec2) Load 42(f16v) + 144: 29(fvec2) MatrixTimesVector 142 143 Store 42(f16v) 144 - 145: 29(f16vec2) Load 42(f16v) + 145: 29(fvec2) Load 42(f16v) 146: 62 Load 64(f16m) - 147: 29(f16vec2) VectorTimesMatrix 145 146 + 147: 29(fvec2) VectorTimesMatrix 145 146 Store 42(f16v) 147 148: 62 Load 64(f16m) 149: 62 Load 64(f16m) @@ -393,49 +388,49 @@ spv.float16.frag 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 + 161: 151(fvec3) Select 157 160 159 Store 153(f16v) 161 - 162:151(f16vec3) Load 153(f16v) + 162: 151(fvec3) Load 153(f16v) 163: 154(bvec3) FOrdNotEqual 162 159 Store 156(bv) 163 168: 165(fvec3) Load 167(fv) - 169:151(f16vec3) FConvert 168 + 169: 151(fvec3) FConvert 168 Store 153(f16v) 169 - 170:151(f16vec3) Load 153(f16v) + 170: 151(fvec3) Load 153(f16v) 171: 165(fvec3) FConvert 170 Store 167(fv) 171 - 176:173(f64vec3) Load 175(dv) - 177:151(f16vec3) FConvert 176 + 176: 173(fvec3) Load 175(dv) + 177: 151(fvec3) 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 + 178: 173(fvec3) Load 175(dv) + 179: 172(float) CompositeExtract 178 0 + 180: 172(float) CompositeExtract 178 1 + 181: 172(float) CompositeExtract 178 2 + 182: 173(fvec3) CompositeConstruct 179 180 181 Store 175(dv) 182 187: 184(ivec3) Load 186(iv) - 188:151(f16vec3) ConvertSToF 187 + 188: 151(fvec3) ConvertSToF 187 Store 153(f16v) 188 - 189:151(f16vec3) Load 153(f16v) + 189: 151(fvec3) Load 153(f16v) 190: 184(ivec3) ConvertFToS 189 Store 186(iv) 190 194: 191(ivec3) Load 193(uv) - 195:151(f16vec3) ConvertUToF 194 + 195: 151(fvec3) ConvertUToF 194 Store 153(f16v) 195 - 196:151(f16vec3) Load 153(f16v) + 196: 151(fvec3) Load 153(f16v) 197: 191(ivec3) ConvertFToU 196 Store 193(uv) 197 - 202:199(i64vec3) Load 201(i64v) - 203:151(f16vec3) ConvertSToF 202 + 202: 199(ivec3) Load 201(i64v) + 203: 151(fvec3) ConvertSToF 202 Store 153(f16v) 203 - 204:151(f16vec3) Load 153(f16v) - 205:199(i64vec3) ConvertFToS 204 + 204: 151(fvec3) Load 153(f16v) + 205: 199(ivec3) ConvertFToS 204 Store 201(i64v) 205 - 210:207(i64vec3) Load 209(u64v) - 211:151(f16vec3) ConvertUToF 210 + 210: 207(ivec3) Load 209(u64v) + 211: 151(fvec3) ConvertUToF 210 Store 153(f16v) 211 - 212:151(f16vec3) Load 153(f16v) - 213:207(i64vec3) ConvertFToU 212 + 212: 151(fvec3) Load 153(f16v) + 213: 207(ivec3) ConvertFToU 212 Store 209(u64v) 213 Return FunctionEnd @@ -443,51 +438,51 @@ spv.float16.frag 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 + 218: 214(fvec4) Load 217(f16v1) + 219: 214(fvec4) 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 + 220: 214(fvec4) Load 217(f16v1) + 221: 214(fvec4) 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 + 222: 214(fvec4) Load 217(f16v1) + 223: 214(fvec4) 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 + 224: 214(fvec4) Load 217(f16v1) + 225: 214(fvec4) 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 + 226: 214(fvec4) Load 217(f16v1) + 227: 214(fvec4) 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 + 228: 214(fvec4) Load 217(f16v1) + 229: 214(fvec4) 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 + 230: 214(fvec4) Load 217(f16v1) + 231: 214(fvec4) 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 + 232: 214(fvec4) Load 217(f16v1) + 233: 214(fvec4) Load 216(f16v2) + 234: 214(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 Store 216(f16v2) 234 - 235:214(f16vec4) Load 217(f16v1) - 236:214(f16vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 + 235: 214(fvec4) Load 217(f16v1) + 236: 214(fvec4) 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 + 237: 214(fvec4) Load 217(f16v1) + 238: 214(fvec4) 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 + 239: 214(fvec4) Load 217(f16v1) + 240: 214(fvec4) 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 + 241: 214(fvec4) Load 217(f16v1) + 242: 214(fvec4) 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 + 243: 214(fvec4) Load 217(f16v1) + 244: 214(fvec4) 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 + 245: 214(fvec4) Load 217(f16v1) + 246: 214(fvec4) 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 + 247: 214(fvec4) Load 217(f16v1) + 248: 214(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 Store 216(f16v2) 248 Return FunctionEnd @@ -495,27 +490,27 @@ spv.float16.frag 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 + 251: 29(fvec2) Load 250(f16v1) + 252: 29(fvec2) Load 249(f16v2) + 253: 29(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 Store 249(f16v2) 253 - 254: 29(f16vec2) Load 250(f16v1) - 255: 29(f16vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 + 254: 29(fvec2) Load 250(f16v1) + 255: 29(fvec2) 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 + 256: 29(fvec2) Load 250(f16v1) + 257: 29(fvec2) 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 + 258: 29(fvec2) Load 250(f16v1) + 259: 29(fvec2) 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 + 260: 29(fvec2) Load 250(f16v1) + 261: 29(fvec2) 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 + 262: 29(fvec2) Load 250(f16v1) + 263: 29(fvec2) 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 + 264: 29(fvec2) Load 250(f16v1) + 265: 29(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 Store 249(f16v2) 265 Return FunctionEnd @@ -528,132 +523,132 @@ spv.float16.frag 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 + 268: 151(fvec3) Load 267(f16v1) + 269: 151(fvec3) 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 + 270: 151(fvec3) Load 267(f16v1) + 271: 151(fvec3) 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 + 272: 151(fvec3) Load 267(f16v1) + 273: 151(fvec3) 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 + 274: 151(fvec3) Load 267(f16v1) + 275: 151(fvec3) 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 + 276: 151(fvec3) Load 267(f16v1) + 277: 151(fvec3) 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 + 278: 151(fvec3) Load 267(f16v1) + 279: 151(fvec3) 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 + 280: 151(fvec3) Load 267(f16v1) + 281: 151(fvec3) 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 + 282: 151(fvec3) Load 267(f16v1) + 283: 151(fvec3) 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 + 284: 151(fvec3) Load 267(f16v1) + 285: 151(fvec3) Load 266(f16v2) + 286: 151(fvec3) 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 + 287: 151(fvec3) Load 267(f16v1) + 289: 28(float) Load 288(f16) + 290: 151(fvec3) CompositeConstruct 289 289 289 + 291: 151(fvec3) FMod 287 290 Store 266(f16v2) 291 - 293:151(f16vec3) Load 267(f16v1) - 294:151(f16vec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) + 293: 151(fvec3) Load 267(f16v1) + 294: 151(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) Store 292(f16v3) 294 - 295:151(f16vec3) Load 267(f16v1) - 296:151(f16vec3) Load 266(f16v2) - 297:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 + 295: 151(fvec3) Load 267(f16v1) + 296: 151(fvec3) Load 266(f16v2) + 297: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 Store 292(f16v3) 297 - 298:151(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 + 298: 151(fvec3) Load 267(f16v1) + 299: 28(float) Load 288(f16) + 300: 151(fvec3) CompositeConstruct 299 299 299 + 301: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 Store 292(f16v3) 301 - 302:151(f16vec3) Load 267(f16v1) - 303:151(f16vec3) Load 266(f16v2) - 304:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 + 302: 151(fvec3) Load 267(f16v1) + 303: 151(fvec3) Load 266(f16v2) + 304: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 Store 292(f16v3) 304 - 305:151(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 + 305: 151(fvec3) Load 267(f16v1) + 306: 28(float) Load 288(f16) + 307: 151(fvec3) CompositeConstruct 306 306 306 + 308: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 Store 292(f16v3) 308 - 309:151(f16vec3) Load 267(f16v1) - 310:28(float16_t) Load 288(f16) + 309: 151(fvec3) Load 267(f16v1) + 310: 28(float) 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 + 312: 28(float) Load 311 + 313: 151(fvec3) CompositeConstruct 310 310 310 + 314: 151(fvec3) CompositeConstruct 312 312 312 + 315: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 Store 292(f16v3) 315 - 316:151(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 + 316: 151(fvec3) Load 267(f16v1) + 317: 151(fvec3) Load 266(f16v2) + 318: 28(float) Load 288(f16) + 319: 151(fvec3) CompositeConstruct 318 318 318 + 320: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 Store 292(f16v3) 320 - 321:151(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 + 321: 151(fvec3) Load 267(f16v1) + 322: 151(fvec3) Load 266(f16v2) + 323: 28(float) Load 288(f16) + 324: 151(fvec3) CompositeConstruct 323 323 323 + 325: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 Store 292(f16v3) 325 - 326:151(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 + 326: 151(fvec3) Load 267(f16v1) + 327: 151(fvec3) Load 266(f16v2) + 328: 151(fvec3) Load 292(f16v3) + 329: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 Store 292(f16v3) 329 - 330:151(f16vec3) Load 267(f16v1) - 331:151(f16vec3) Load 266(f16v2) + 330: 151(fvec3) Load 267(f16v1) + 331: 151(fvec3) Load 266(f16v2) 333: 154(bvec3) Load 332(bv) - 334:151(f16vec3) Select 333 331 330 + 334: 151(fvec3) 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 + 335: 151(fvec3) Load 267(f16v1) + 336: 151(fvec3) Load 266(f16v2) + 337: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 Store 292(f16v3) 337 - 338:28(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 + 338: 28(float) Load 288(f16) + 339: 151(fvec3) Load 292(f16v3) + 340: 151(fvec3) CompositeConstruct 338 338 338 + 341: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 Store 292(f16v3) 341 - 342:151(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 + 342: 151(fvec3) Load 267(f16v1) + 343: 151(fvec3) Load 266(f16v2) + 344: 151(fvec3) Load 292(f16v3) + 345: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 Store 292(f16v3) 345 - 346:28(float16_t) Load 288(f16) + 346: 28(float) 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 + 348: 28(float) Load 347 + 349: 151(fvec3) Load 266(f16v2) + 350: 151(fvec3) CompositeConstruct 346 346 346 + 351: 151(fvec3) CompositeConstruct 348 348 348 + 352: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 Store 292(f16v3) 352 - 354:28(float16_t) Load 288(f16) + 354: 28(float) Load 288(f16) 355: 109(bool) IsNan 354 Store 353(b) 355 - 356:151(f16vec3) Load 267(f16v1) + 356: 151(fvec3) 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 + 358: 151(fvec3) Load 267(f16v1) + 359: 151(fvec3) Load 266(f16v2) + 360: 151(fvec3) Load 292(f16v3) + 361: 151(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 Store 292(f16v3) 361 - 362:151(f16vec3) Load 267(f16v1) + 362: 151(fvec3) Load 267(f16v1) 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 366: 184(ivec3) CompositeExtract 365 1 Store 363(iv) 366 - 367:151(f16vec3) CompositeExtract 365 0 + 367: 151(fvec3) CompositeExtract 365 0 Store 266(f16v2) 367 - 368:151(f16vec3) Load 267(f16v1) + 368: 151(fvec3) Load 267(f16v1) 369: 184(ivec3) Load 363(iv) - 370:151(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 + 370: 151(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 Store 266(f16v2) 370 Return FunctionEnd @@ -661,11 +656,11 @@ spv.float16.frag 19: Label 372(u): 371(ptr) Variable Function 373(f16v): 30(ptr) Variable Function - 374: 29(f16vec2) Load 373(f16v) + 374: 29(fvec2) Load 373(f16v) 375: 33(int) Bitcast 374 Store 372(u) 375 376: 33(int) Load 372(u) - 377: 29(f16vec2) Bitcast 376 + 377: 29(fvec2) Bitcast 376 Store 373(f16v) 377 Return FunctionEnd @@ -675,37 +670,37 @@ spv.float16.frag 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 + 380: 151(fvec3) Load 379(f16v1) + 381: 28(float) 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 + 382: 151(fvec3) Load 379(f16v1) + 384: 151(fvec3) Load 383(f16v2) + 385: 28(float) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 Store 378(f16) 385 - 386:151(f16vec3) Load 379(f16v1) - 387:151(f16vec3) Load 383(f16v2) - 388:28(float16_t) Dot 386 387 + 386: 151(fvec3) Load 379(f16v1) + 387: 151(fvec3) Load 383(f16v2) + 388: 28(float) 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 + 390: 151(fvec3) Load 379(f16v1) + 391: 151(fvec3) Load 383(f16v2) + 392: 151(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 Store 389(f16v3) 392 - 393:151(f16vec3) Load 379(f16v1) - 394:151(f16vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 + 393: 151(fvec3) Load 379(f16v1) + 394: 151(fvec3) 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 + 395: 151(fvec3) Load 379(f16v1) + 396: 151(fvec3) Load 383(f16v2) + 397: 151(fvec3) Load 389(f16v3) + 398: 151(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 Store 389(f16v3) 398 - 399:151(f16vec3) Load 379(f16v1) - 400:151(f16vec3) Load 383(f16v2) - 401:151(f16vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 + 399: 151(fvec3) Load 379(f16v1) + 400: 151(fvec3) Load 383(f16v2) + 401: 151(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 Store 389(f16v3) 401 - 402:151(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 + 402: 151(fvec3) Load 379(f16v1) + 403: 151(fvec3) Load 383(f16v2) + 404: 28(float) Load 378(f16) + 405: 151(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 Store 389(f16v3) 405 Return FunctionEnd @@ -723,23 +718,23 @@ spv.float16.frag 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 + 413: 151(fvec3) CompositeExtract 410 0 + 414: 151(fvec3) CompositeExtract 412 0 + 415: 151(fvec3) FMul 413 414 + 416: 151(fvec3) CompositeExtract 410 1 + 417: 151(fvec3) CompositeExtract 412 1 + 418: 151(fvec3) FMul 416 417 419: 406 CompositeConstruct 415 418 Store 408(f16m3) 419 - 421:151(f16vec3) Load 420(f16v1) - 423: 29(f16vec2) Load 422(f16v2) + 421: 151(fvec3) Load 420(f16v1) + 423: 29(fvec2) Load 422(f16v2) 424: 406 OuterProduct 421 423 Store 409(f16m1) 424 428: 406 Load 409(f16m1) 429: 425 Transpose 428 Store 427(f16m4) 429 434: 431 Load 433(f16m5) - 435:28(float16_t) ExtInst 1(GLSL.std.450) 33(Determinant) 434 + 435: 28(float) ExtInst 1(GLSL.std.450) 33(Determinant) 434 Store 430(f16) 435 440: 436 Load 439(f16m7) 441: 436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440 @@ -751,28 +746,28 @@ spv.float16.frag 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) + 444: 151(fvec3) Load 443(f16v1) + 446: 151(fvec3) 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) + 448: 151(fvec3) Load 443(f16v1) + 449: 151(fvec3) 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) + 451: 151(fvec3) Load 443(f16v1) + 452: 151(fvec3) 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) + 454: 151(fvec3) Load 443(f16v1) + 455: 151(fvec3) 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) + 457: 151(fvec3) Load 443(f16v1) + 458: 151(fvec3) 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) + 460: 151(fvec3) Load 443(f16v1) + 461: 151(fvec3) Load 445(f16v2) 462: 154(bvec3) FOrdNotEqual 460 461 Store 442(bv) 462 Return @@ -781,57 +776,57 @@ spv.float16.frag 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 + 468: 28(float) Load 467 + 469: 28(float) DPdx 468 470: 35(ptr) AccessChain 463(f16v) 34 Store 470 469 471: 466(ptr) AccessChain 465(if16v) 90 - 472:28(float16_t) Load 471 - 473:28(float16_t) DPdy 472 + 472: 28(float) Load 471 + 473: 28(float) 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 + 475: 151(fvec3) Load 465(if16v) + 476: 29(fvec2) VectorShuffle 475 475 0 1 + 477: 29(fvec2) DPdxFine 476 + 478: 151(fvec3) Load 463(f16v) + 479: 151(fvec3) VectorShuffle 478 477 3 4 2 Store 463(f16v) 479 - 480:151(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 + 480: 151(fvec3) Load 465(if16v) + 481: 29(fvec2) VectorShuffle 480 480 0 1 + 482: 29(fvec2) DPdyFine 481 + 483: 151(fvec3) Load 463(f16v) + 484: 151(fvec3) VectorShuffle 483 482 3 4 2 Store 463(f16v) 484 - 485:151(f16vec3) Load 465(if16v) - 486:151(f16vec3) DPdxCoarse 485 + 485: 151(fvec3) Load 465(if16v) + 486: 151(fvec3) DPdxCoarse 485 Store 463(f16v) 486 - 487:151(f16vec3) Load 465(if16v) - 488:151(f16vec3) DPdxCoarse 487 + 487: 151(fvec3) Load 465(if16v) + 488: 151(fvec3) 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 + 490: 28(float) Load 489 + 491: 28(float) 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 + 493: 151(fvec3) Load 465(if16v) + 494: 29(fvec2) VectorShuffle 493 493 0 1 + 495: 29(fvec2) FwidthFine 494 + 496: 151(fvec3) Load 463(f16v) + 497: 151(fvec3) VectorShuffle 496 495 3 4 2 Store 463(f16v) 497 - 498:151(f16vec3) Load 465(if16v) - 499:151(f16vec3) FwidthCoarse 498 + 498: 151(fvec3) Load 465(if16v) + 499: 151(fvec3) 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 + 501: 28(float) 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 + 504: 151(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503 + 505: 29(fvec2) VectorShuffle 504 504 0 1 + 506: 151(fvec3) Load 463(f16v) + 507: 151(fvec3) VectorShuffle 506 505 3 4 2 Store 463(f16v) 507 - 510:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 + 510: 151(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 Store 463(f16v) 510 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.flowControl.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.flowControl.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/spv.flowControl.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.flowControl.frag.out index 30c2a4b6ec..274cb74612 100755 --- a/deps/glslang-new/Test/baseResults/spv.flowControl.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.flowControl.frag.out @@ -1,6 +1,6 @@ spv.flowControl.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 39 Capability Shader @@ -19,7 +19,6 @@ spv.flowControl.frag Name 25 "bigColor" Name 30 "smallColor" Name 35 "gl_FragColor" - Decorate 35(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.for-complex-condition.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.for-complex-condition.vert.out new file mode 100644 index 0000000000..bb3bc2a1cc --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.for-complex-condition.vert.out @@ -0,0 +1,70 @@ +spv.for-complex-condition.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 18 31 + Source GLSL 450 + Name 4 "main" + Name 8 "i" + Name 18 "flag" + Name 31 "r" + Decorate 18(flag) RelaxedPrecision + Decorate 18(flag) Location 0 + Decorate 19 RelaxedPrecision + Decorate 31(r) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 17: TypePointer Input 6(int) + 18(flag): 17(ptr) Variable Input + 20: 6(int) Constant 1 + 21: TypeBool + 25: 6(int) Constant 10 + 27: 6(int) Constant 15 + 30: TypePointer Output 6(int) + 31(r): 30(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 16: 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) + 19: 6(int) Load 18(flag) + 22: 21(bool) IEqual 19 20 + SelectionMerge 24 None + BranchConditional 22 23 26 + 23: Label + Store 16 25 + Branch 24 + 26: Label + Store 16 27 + Branch 24 + 24: Label + 28: 6(int) Load 16 + 29: 21(bool) SLessThan 15 28 + BranchConditional 29 11 12 + 11: Label + 32: 6(int) Load 8(i) + Store 31(r) 32 + Branch 13 + 13: Label + 33: 6(int) Load 8(i) + 34: 6(int) IAdd 33 20 + Store 8(i) 34 + Branch 10 + 12: Label + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.for-continue-break.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.for-continue-break.vert.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.for-continue-break.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.for-continue-break.vert.out index ff94a93136..764001dbe3 100644 --- a/deps/glslang-new/Test/baseResults/spv.for-continue-break.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.for-continue-break.vert.out @@ -1,6 +1,8 @@ spv.for-continue-break.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 45 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.for-nobody.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.for-nobody.vert.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.for-nobody.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.for-nobody.vert.out index 2a3bcf40ee..0ec3584da8 100644 --- a/deps/glslang-new/Test/baseResults/spv.for-nobody.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.for-nobody.vert.out @@ -1,6 +1,8 @@ spv.for-nobody.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 25 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.for-notest.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.for-notest.vert.out similarity index 92% rename from deps/glslang-new/Test/baseResults/spv.for-notest.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.for-notest.vert.out index 36c4a96a3a..c7346f9df8 100644 --- a/deps/glslang-new/Test/baseResults/spv.for-notest.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.for-notest.vert.out @@ -1,6 +1,8 @@ spv.for-notest.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 20 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.for-simple.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.for-simple.vert.out similarity index 92% rename from deps/glslang-new/Test/baseResults/spv.for-simple.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.for-simple.vert.out index ecb539f902..996b65a4af 100755 --- a/deps/glslang-new/Test/baseResults/spv.for-simple.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.for-simple.vert.out @@ -1,6 +1,8 @@ spv.for-simple.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 24 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.forLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.forLoop.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.forLoop.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.forLoop.frag.out index a07921ce77..628c791f67 100755 --- a/deps/glslang-new/Test/baseResults/spv.forLoop.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.forLoop.frag.out @@ -1,6 +1,6 @@ spv.forLoop.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 131 Capability Shader @@ -26,7 +26,6 @@ spv.forLoop.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.forwardFun.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.forwardFun.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.forwardFun.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.forwardFun.frag.out index 32875b2ce3..65759531ed 100755 --- a/deps/glslang-new/Test/baseResults/spv.forwardFun.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.forwardFun.frag.out @@ -1,6 +1,6 @@ spv.forwardFun.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 60 Capability Shader @@ -32,7 +32,6 @@ spv.forwardFun.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.functionCall.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.functionCall.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.functionCall.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.functionCall.frag.out index 269b74e64e..69a525f791 100755 --- a/deps/glslang-new/Test/baseResults/spv.functionCall.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.functionCall.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas WARNING: 0:5: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 76 Capability Shader @@ -28,7 +28,6 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas Name 66 "g" Name 69 "gl_FragColor" Name 75 "bigColor" - Decorate 69(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.functionSemantics.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.functionSemantics.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.functionSemantics.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.functionSemantics.frag.out index 49bdf7cdb7..005a315bb1 100755 --- a/deps/glslang-new/Test/baseResults/spv.functionSemantics.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.functionSemantics.frag.out @@ -1,6 +1,8 @@ spv.functionSemantics.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 156 Capability Shader @@ -42,7 +44,6 @@ spv.functionSemantics.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.glFragColor.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.glFragColor.frag.out similarity index 91% rename from deps/glslang-new/Test/baseResults/spv.glFragColor.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.glFragColor.frag.out index 55fb24f125..febbdf4698 100755 --- a/deps/glslang-new/Test/baseResults/spv.glFragColor.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.glFragColor.frag.out @@ -1,6 +1,6 @@ spv.glFragColor.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 12 Capability Shader @@ -11,7 +11,6 @@ spv.glFragColor.frag Source GLSL 330 Name 4 "main" Name 9 "gl_FragColor" - Decorate 9(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.glsl.register.autoassign.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.glsl.register.autoassign.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.glsl.register.autoassign.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.glsl.register.autoassign.frag.out index 079e8d5233..11818f6473 100644 --- a/deps/glslang-new/Test/baseResults/spv.glsl.register.autoassign.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.glsl.register.autoassign.frag.out @@ -1,6 +1,8 @@ spv.glsl.register.autoassign.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 142 Capability Shader @@ -76,7 +78,6 @@ spv.glsl.register.autoassign.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.glsl.register.noautoassign.frag.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.glsl.register.noautoassign.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.glsl.register.noautoassign.frag.out index 44d63ed1d7..327ac04aea 100644 --- a/deps/glslang-new/Test/baseResults/spv.glsl.register.noautoassign.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.glsl.register.noautoassign.frag.out @@ -1,6 +1,8 @@ spv.glsl.register.noautoassign.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 142 Capability Shader @@ -41,25 +43,19 @@ spv.glsl.register.noautoassign.frag Name 137 "FragColor" Name 141 "g_tTex_unused3" Decorate 17(g_tTex1) DescriptorSet 0 - Decorate 17(g_tTex1) Binding 17 + 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 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 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 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 @@ -71,16 +67,12 @@ spv.glsl.register.noautoassign.frag Decorate 97 DescriptorSet 0 Decorate 97 Binding 19 Decorate 119(g_tTex_unused1) DescriptorSet 0 - Decorate 119(g_tTex_unused1) Binding 22 + Decorate 119(g_tTex_unused1) Binding 10 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 126(g_tTex_unused2) Binding 12 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 diff --git a/deps/glslang-new/Test/baseResults/spv.image.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.image.frag.out similarity index 94% rename from deps/glslang-new/Test/baseResults/spv.image.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.image.frag.out index 2c35a0c2f8..2dd7d4b3f4 100644 --- a/deps/glslang-new/Test/baseResults/spv.image.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.image.frag.out @@ -1,21 +1,22 @@ spv.image.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): 80007 -// Id's are bound by 376 +// Generated by (magic number): 80001 +// Id's are bound by 378 Capability Shader - Capability StorageImageMultisample - Capability ImageCubeArray - Capability ImageRect - Capability Image1D - Capability ImageBuffer + Capability SampledRect + Capability Sampled1D + Capability SampledCubeArray + Capability SampledBuffer 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 + EntryPoint Fragment 4 "main" 132 142 152 248 362 377 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -41,7 +42,7 @@ spv.image.frag Name 248 "value" Name 357 "wo2D" Name 362 "fragData" - Name 375 "ic4D" + Name 377 "ic4D" Decorate 15(i1D) DescriptorSet 0 Decorate 15(i1D) Binding 0 Decorate 27(i2D) DescriptorSet 0 @@ -75,7 +76,7 @@ spv.image.frag Decorate 357(wo2D) DescriptorSet 0 Decorate 357(wo2D) Binding 1 Decorate 357(wo2D) NonReadable - Decorate 375(ic4D) Flat + Decorate 377(ic4D) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -162,16 +163,16 @@ spv.image.frag 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 + 368: TypeBool + 375: TypeVector 6(int) 4 + 376: TypePointer Input 375(ivec4) + 377(ic4D): 376(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 + 363: 126(ptr) Variable Function Store 9(iv) 11 16: 13 Load 15(i1D) 17: 6(int) ImageQuerySize 16 @@ -497,14 +498,22 @@ spv.image.frag 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 + 364: 18(int) Load 229(ui) + 365: 20(ptr) AccessChain 9(iv) 237 + 366: 6(int) Load 365 + 367: 18(int) Bitcast 366 + 369: 368(bool) INotEqual 364 367 + SelectionMerge 371 None + BranchConditional 369 370 373 + 370: Label + 372: 125(fvec4) Load 127(v) + Store 363 372 + Branch 371 + 373: Label + Store 363 129 + Branch 371 + 371: Label + 374: 125(fvec4) Load 363 + Store 362(fragData) 374 Return FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.int64.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.int64.frag.out new file mode 100644 index 0000000000..cb5433ec6a --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.int64.frag.out @@ -0,0 +1,653 @@ +spv.int64.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 480 + + 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" + 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 218 "b" + Name 278 "i64v" + Name 281 "i64" + Name 291 "u64v" + Name 293 "u64" + Name 365 "dv" + Name 384 "iv" + Name 389 "uv" + Name 393 "bv" + Name 454 "Block" + MemberName 454(Block) 0 "i64v" + MemberName 454(Block) 1 "u64" + Name 456 "block" + MemberDecorate 28(Uniforms) 0 Offset 0 + Decorate 28(Uniforms) Block + Decorate 30 DescriptorSet 0 + Decorate 30 Binding 0 + MemberDecorate 454(Block) 0 Offset 0 + MemberDecorate 454(Block) 1 Offset 24 + Decorate 454(Block) Block + Decorate 456(block) DescriptorSet 0 + Decorate 456(block) Binding 1 + Decorate 457 SpecId 100 + Decorate 458 SpecId 101 + Decorate 459 SpecId 102 + Decorate 460 SpecId 103 + Decorate 461 SpecId 104 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 64 0 + 15: TypePointer Private 14(int) + 16(u64Max): 15(ptr) Variable Private + 17: 14(int) Constant 4294967295 4294967295 + 18: TypeInt 64 1 + 19: TypePointer Function 18(int) + 21: TypeInt 32 0 + 22: 21(int) Constant 3 + 23: TypeArray 18(int) 22 + 24: 18(int) Constant 4008636143 4008636142 + 25: 18(int) Constant 4294967295 4294967295 + 26: 18(int) 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(int) + 42: TypeArray 14(int) 22 + 43: 14(int) Constant 0 1 + 44: 14(int) Constant 4294967295 1 + 45: 42 ConstantComposite 17 43 44 + 48: TypePointer Function 42 + 52: TypeVector 18(int) 2 + 53: TypePointer Function 52(ivec2) + 55: TypeBool + 56: TypeVector 55(bool) 2 + 57: TypePointer Function 56(bvec2) + 60: 18(int) Constant 0 0 + 61: 18(int) Constant 1 0 + 62: 52(ivec2) ConstantComposite 60 60 + 63: 52(ivec2) ConstantComposite 61 61 + 65: TypeVector 14(int) 2 + 66: TypePointer Function 65(ivec2) + 69: 14(int) Constant 0 0 + 70: 14(int) Constant 1 0 + 71: 65(ivec2) ConstantComposite 69 69 + 72: 65(ivec2) 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(float) 2 + 96: TypePointer Function 95(fvec2) + 132: TypeVector 14(int) 3 + 133: TypePointer Function 132(ivec3) + 136: TypeVector 18(int) 3 + 158: TypePointer Function 31(int) + 164: TypeVector 21(int) 3 + 165: TypePointer Function 164(ivec3) + 199: TypeVector 31(int) 3 + 202: 21(int) Constant 1 + 203: TypePointer Function 21(int) + 209: 21(int) Constant 2 + 217: TypePointer Function 55(bool) + 219: 21(int) Constant 0 + 289: 52(ivec2) ConstantComposite 25 25 + 298: 132(ivec3) ConstantComposite 69 69 69 + 340: 55(bool) ConstantTrue + 347: 55(bool) ConstantFalse + 348: 56(bvec2) ConstantComposite 347 347 + 360: TypeVector 55(bool) 3 + 361: 360(bvec3) ConstantComposite 347 347 347 + 363: TypeVector 94(float) 3 + 364: TypePointer Function 363(fvec3) + 369: TypePointer Function 94(float) + 380: 31(int) Constant 1 + 381: 31(int) Constant 2 + 382: 74(ivec2) ConstantComposite 380 381 + 387: 81(ivec2) ConstantComposite 209 22 + 392: TypePointer Function 360(bvec3) + 454(Block): TypeStruct 136(ivec3) 14(int) + 455: TypePointer Uniform 454(Block) + 456(block): 455(ptr) Variable Uniform + 457: 18(int) SpecConstant 4294967286 4294967295 + 458: 14(int) SpecConstant 20 0 + 459: 31(int) SpecConstant 4294967291 + 460: 21(int) SpecConstant 4 + 461: 55(bool) SpecConstantTrue + 462: 55(bool) SpecConstantOp 171 457 69 + 463: 55(bool) SpecConstantOp 171 458 69 + 464: 18(int) SpecConstantOp 169 461 61 60 + 465: 14(int) SpecConstantOp 169 461 70 69 + 466: 31(int) SpecConstantOp 114 457 + 467: 18(int) SpecConstantOp 114 459 + 468: 21(int) SpecConstantOp 113 458 + 469: 14(int) SpecConstantOp 113 460 + 470: 18(int) SpecConstantOp 128 458 69 + 471: 14(int) SpecConstantOp 128 457 69 + 472: 21(int) SpecConstantOp 113 458 + 473: 31(int) SpecConstantOp 128 472 219 + 474: 18(int) SpecConstantOp 114 459 + 475: 14(int) SpecConstantOp 128 474 69 + 476: 31(int) SpecConstantOp 114 457 + 477: 21(int) SpecConstantOp 128 476 219 + 478: 14(int) SpecConstantOp 113 460 + 479: 18(int) SpecConstantOp 128 478 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(int) 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(int) 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(ivec2) Select 59 63 62 + Store 54(i64v) 64 + 68: 56(bvec2) Load 58(bv) + 73: 65(ivec2) Select 68 72 71 + Store 67(u64v) 73 + 77: 74(ivec2) Load 76(iv) + 78: 52(ivec2) SConvert 77 + Store 54(i64v) 78 + 79: 52(ivec2) Load 54(i64v) + 80: 74(ivec2) SConvert 79 + Store 76(iv) 80 + 84: 81(ivec2) Load 83(uv) + 85: 65(ivec2) UConvert 84 + Store 67(u64v) 85 + 86: 65(ivec2) Load 67(u64v) + 87: 81(ivec2) UConvert 86 + Store 83(uv) 87 + 92: 52(ivec2) Load 54(i64v) + 93: 89(fvec2) ConvertSToF 92 + Store 91(fv) 93 + 98: 52(ivec2) Load 54(i64v) + 99: 95(fvec2) ConvertSToF 98 + Store 97(dv) 99 + 100: 65(ivec2) Load 67(u64v) + 101: 89(fvec2) ConvertUToF 100 + Store 91(fv) 101 + 102: 65(ivec2) Load 67(u64v) + 103: 95(fvec2) ConvertUToF 102 + Store 97(dv) 103 + 104: 89(fvec2) Load 91(fv) + 105: 52(ivec2) ConvertFToS 104 + Store 54(i64v) 105 + 106: 95(fvec2) Load 97(dv) + 107: 52(ivec2) ConvertFToS 106 + Store 54(i64v) 107 + 108: 89(fvec2) Load 91(fv) + 109: 65(ivec2) ConvertFToU 108 + Store 67(u64v) 109 + 110: 95(fvec2) Load 97(dv) + 111: 65(ivec2) ConvertFToU 110 + Store 67(u64v) 111 + 112: 52(ivec2) Load 54(i64v) + 113: 56(bvec2) INotEqual 112 71 + Store 58(bv) 113 + 114: 65(ivec2) Load 67(u64v) + 115: 56(bvec2) INotEqual 114 71 + Store 58(bv) 115 + 116: 52(ivec2) Load 54(i64v) + 117: 65(ivec2) Bitcast 116 + Store 67(u64v) 117 + 118: 65(ivec2) Load 67(u64v) + 119: 52(ivec2) Bitcast 118 + Store 54(i64v) 119 + 120: 52(ivec2) 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(ivec2) UConvert 123 + 125: 52(ivec2) Bitcast 124 + Store 54(i64v) 125 + 126: 65(ivec2) 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(ivec2) SConvert 129 + 131: 65(ivec2) 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 + 218(b): 217(ptr) Variable Function + 135: 132(ivec3) Load 134(u64v) + 137: 136(ivec3) CompositeConstruct 61 61 61 + 138: 132(ivec3) IAdd 135 137 + Store 134(u64v) 138 + 140: 18(int) Load 139(i64) + 141: 18(int) ISub 140 61 + Store 139(i64) 141 + 142: 18(int) Load 139(i64) + 143: 18(int) IAdd 142 61 + Store 139(i64) 143 + 144: 132(ivec3) Load 134(u64v) + 145: 136(ivec3) CompositeConstruct 61 61 61 + 146: 132(ivec3) ISub 144 145 + Store 134(u64v) 146 + 147: 132(ivec3) Load 134(u64v) + 148: 132(ivec3) Not 147 + Store 134(u64v) 148 + 149: 18(int) Load 139(i64) + Store 139(i64) 149 + 150: 132(ivec3) Load 134(u64v) + 151: 132(ivec3) SNegate 150 + Store 134(u64v) 151 + 152: 18(int) Load 139(i64) + 153: 18(int) Load 139(i64) + 154: 18(int) IAdd 153 152 + Store 139(i64) 154 + 155: 132(ivec3) Load 134(u64v) + 156: 132(ivec3) Load 134(u64v) + 157: 132(ivec3) ISub 156 155 + Store 134(u64v) 157 + 160: 31(int) Load 159(i) + 161: 18(int) SConvert 160 + 162: 18(int) Load 139(i64) + 163: 18(int) IMul 162 161 + Store 139(i64) 163 + 167: 164(ivec3) Load 166(uv) + 168: 132(ivec3) UConvert 167 + 169: 132(ivec3) Load 134(u64v) + 170: 132(ivec3) UDiv 169 168 + Store 134(u64v) 170 + 171: 31(int) Load 159(i) + 172: 18(int) SConvert 171 + 173: 14(int) Bitcast 172 + 174: 132(ivec3) Load 134(u64v) + 175: 132(ivec3) CompositeConstruct 173 173 173 + 176: 132(ivec3) UMod 174 175 + Store 134(u64v) 176 + 177: 132(ivec3) Load 134(u64v) + 178: 164(ivec3) Load 166(uv) + 179: 132(ivec3) UConvert 178 + 180: 132(ivec3) IAdd 177 179 + Store 134(u64v) 180 + 181: 18(int) Load 139(i64) + 182: 31(int) Load 159(i) + 183: 18(int) SConvert 182 + 184: 18(int) ISub 181 183 + Store 139(i64) 184 + 185: 132(ivec3) Load 134(u64v) + 186: 164(ivec3) Load 166(uv) + 187: 132(ivec3) UConvert 186 + 188: 132(ivec3) IMul 185 187 + Store 134(u64v) 188 + 189: 18(int) Load 139(i64) + 190: 31(int) Load 159(i) + 191: 18(int) SConvert 190 + 192: 18(int) IMul 189 191 + Store 139(i64) 192 + 193: 18(int) Load 139(i64) + 194: 31(int) Load 159(i) + 195: 18(int) SConvert 194 + 196: 18(int) SMod 193 195 + Store 139(i64) 196 + 197: 31(int) Load 159(i) + 198: 132(ivec3) Load 134(u64v) + 200: 199(ivec3) CompositeConstruct 197 197 197 + 201: 132(ivec3) ShiftLeftLogical 198 200 + Store 134(u64v) 201 + 204: 203(ptr) AccessChain 166(uv) 202 + 205: 21(int) Load 204 + 206: 18(int) Load 139(i64) + 207: 18(int) ShiftRightArithmetic 206 205 + Store 139(i64) 207 + 208: 18(int) Load 139(i64) + 210: 40(ptr) AccessChain 134(u64v) 209 + 211: 14(int) Load 210 + 212: 18(int) ShiftLeftLogical 208 211 + Store 139(i64) 212 + 213: 132(ivec3) Load 134(u64v) + 214: 18(int) Load 139(i64) + 215: 136(ivec3) CompositeConstruct 214 214 214 + 216: 132(ivec3) ShiftLeftLogical 213 215 + Store 134(u64v) 216 + 220: 40(ptr) AccessChain 134(u64v) 219 + 221: 14(int) Load 220 + 222: 18(int) Load 139(i64) + 223: 14(int) Bitcast 222 + 224: 55(bool) INotEqual 221 223 + Store 218(b) 224 + 225: 18(int) Load 139(i64) + 226: 14(int) Bitcast 225 + 227: 40(ptr) AccessChain 134(u64v) 219 + 228: 14(int) Load 227 + 229: 55(bool) IEqual 226 228 + Store 218(b) 229 + 230: 40(ptr) AccessChain 134(u64v) 219 + 231: 14(int) Load 230 + 232: 203(ptr) AccessChain 166(uv) 202 + 233: 21(int) Load 232 + 234: 14(int) UConvert 233 + 235: 55(bool) UGreaterThan 231 234 + Store 218(b) 235 + 236: 18(int) Load 139(i64) + 237: 31(int) Load 159(i) + 238: 18(int) SConvert 237 + 239: 55(bool) SLessThan 236 238 + Store 218(b) 239 + 240: 40(ptr) AccessChain 134(u64v) 202 + 241: 14(int) Load 240 + 242: 203(ptr) AccessChain 166(uv) 219 + 243: 21(int) Load 242 + 244: 14(int) UConvert 243 + 245: 55(bool) UGreaterThanEqual 241 244 + Store 218(b) 245 + 246: 18(int) Load 139(i64) + 247: 31(int) Load 159(i) + 248: 18(int) SConvert 247 + 249: 55(bool) SLessThanEqual 246 248 + Store 218(b) 249 + 250: 31(int) Load 159(i) + 251: 18(int) SConvert 250 + 252: 14(int) Bitcast 251 + 253: 132(ivec3) Load 134(u64v) + 254: 132(ivec3) CompositeConstruct 252 252 252 + 255: 132(ivec3) BitwiseOr 253 254 + Store 134(u64v) 255 + 256: 18(int) Load 139(i64) + 257: 31(int) Load 159(i) + 258: 18(int) SConvert 257 + 259: 18(int) BitwiseOr 256 258 + Store 139(i64) 259 + 260: 31(int) Load 159(i) + 261: 18(int) SConvert 260 + 262: 18(int) Load 139(i64) + 263: 18(int) BitwiseAnd 262 261 + Store 139(i64) 263 + 264: 132(ivec3) Load 134(u64v) + 265: 164(ivec3) Load 166(uv) + 266: 132(ivec3) UConvert 265 + 267: 132(ivec3) BitwiseAnd 264 266 + Store 134(u64v) 267 + 268: 18(int) Load 139(i64) + 269: 14(int) Bitcast 268 + 270: 132(ivec3) Load 134(u64v) + 271: 132(ivec3) CompositeConstruct 269 269 269 + 272: 132(ivec3) BitwiseXor 270 271 + Store 134(u64v) 272 + 273: 132(ivec3) Load 134(u64v) + 274: 18(int) Load 139(i64) + 275: 14(int) Bitcast 274 + 276: 132(ivec3) CompositeConstruct 275 275 275 + 277: 132(ivec3) BitwiseXor 273 276 + Store 134(u64v) 277 + Return + FunctionEnd +12(builtinFuncs(): 2 Function None 3 + 13: Label + 278(i64v): 53(ptr) Variable Function + 281(i64): 19(ptr) Variable Function + 291(u64v): 133(ptr) Variable Function + 293(u64): 40(ptr) Variable Function + 365(dv): 364(ptr) Variable Function + 384(iv): 75(ptr) Variable Function + 389(uv): 82(ptr) Variable Function + 393(bv): 392(ptr) Variable Function + 279: 52(ivec2) Load 278(i64v) + 280: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 279 + Store 278(i64v) 280 + 282: 18(int) Load 281(i64) + 283: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 282 + Store 281(i64) 283 + 284: 52(ivec2) Load 278(i64v) + 285: 18(int) Load 281(i64) + 286: 52(ivec2) CompositeConstruct 285 285 + 287: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 284 286 + Store 278(i64v) 287 + 288: 52(ivec2) Load 278(i64v) + 290: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 288 289 + Store 278(i64v) 290 + 292: 132(ivec3) Load 291(u64v) + 294: 14(int) Load 293(u64) + 295: 132(ivec3) CompositeConstruct 294 294 294 + 296: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 292 295 + Store 291(u64v) 296 + 297: 132(ivec3) Load 291(u64v) + 299: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 297 298 + Store 291(u64v) 299 + 300: 52(ivec2) Load 278(i64v) + 301: 18(int) Load 281(i64) + 302: 52(ivec2) CompositeConstruct 301 301 + 303: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 300 302 + Store 278(i64v) 303 + 304: 52(ivec2) Load 278(i64v) + 305: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 304 289 + Store 278(i64v) 305 + 306: 132(ivec3) Load 291(u64v) + 307: 14(int) Load 293(u64) + 308: 132(ivec3) CompositeConstruct 307 307 307 + 309: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 306 308 + Store 291(u64v) 309 + 310: 132(ivec3) Load 291(u64v) + 311: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 310 298 + Store 291(u64v) 311 + 312: 52(ivec2) Load 278(i64v) + 313: 18(int) Load 281(i64) + 314: 18(int) SNegate 313 + 315: 18(int) Load 281(i64) + 316: 52(ivec2) CompositeConstruct 314 314 + 317: 52(ivec2) CompositeConstruct 315 315 + 318: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 312 316 317 + Store 278(i64v) 318 + 319: 52(ivec2) Load 278(i64v) + 320: 52(ivec2) Load 278(i64v) + 321: 52(ivec2) SNegate 320 + 322: 52(ivec2) Load 278(i64v) + 323: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 319 321 322 + Store 278(i64v) 323 + 324: 132(ivec3) Load 291(u64v) + 325: 14(int) Load 293(u64) + 326: 14(int) SNegate 325 + 327: 14(int) Load 293(u64) + 328: 132(ivec3) CompositeConstruct 326 326 326 + 329: 132(ivec3) CompositeConstruct 327 327 327 + 330: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 324 328 329 + Store 291(u64v) 330 + 331: 132(ivec3) Load 291(u64v) + 332: 132(ivec3) Load 291(u64v) + 333: 132(ivec3) SNegate 332 + 334: 132(ivec3) Load 291(u64v) + 335: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 331 333 334 + Store 291(u64v) 335 + 336: 19(ptr) AccessChain 278(i64v) 219 + 337: 18(int) Load 336 + 338: 19(ptr) AccessChain 278(i64v) 202 + 339: 18(int) Load 338 + 341: 18(int) Select 340 339 337 + Store 281(i64) 341 + 342: 18(int) Load 281(i64) + 343: 52(ivec2) CompositeConstruct 342 342 + 344: 18(int) Load 281(i64) + 345: 18(int) SNegate 344 + 346: 52(ivec2) CompositeConstruct 345 345 + 349: 52(ivec2) Select 348 346 343 + Store 278(i64v) 349 + 350: 40(ptr) AccessChain 291(u64v) 219 + 351: 14(int) Load 350 + 352: 40(ptr) AccessChain 291(u64v) 202 + 353: 14(int) Load 352 + 354: 14(int) Select 340 353 351 + Store 293(u64) 354 + 355: 14(int) Load 293(u64) + 356: 132(ivec3) CompositeConstruct 355 355 355 + 357: 14(int) Load 293(u64) + 358: 14(int) SNegate 357 + 359: 132(ivec3) CompositeConstruct 358 358 358 + 362: 132(ivec3) Select 361 359 356 + Store 291(u64v) 362 + 366: 363(fvec3) Load 365(dv) + 367: 95(fvec2) VectorShuffle 366 366 0 1 + 368: 52(ivec2) Bitcast 367 + Store 278(i64v) 368 + 370: 369(ptr) AccessChain 365(dv) 209 + 371: 94(float) Load 370 + 372: 14(int) Bitcast 371 + 373: 40(ptr) AccessChain 291(u64v) 219 + Store 373 372 + 374: 52(ivec2) Load 278(i64v) + 375: 95(fvec2) Bitcast 374 + 376: 363(fvec3) Load 365(dv) + 377: 363(fvec3) VectorShuffle 376 375 3 4 2 + Store 365(dv) 377 + 378: 132(ivec3) Load 291(u64v) + 379: 363(fvec3) Bitcast 378 + Store 365(dv) 379 + 383: 18(int) Bitcast 382 + Store 281(i64) 383 + 385: 18(int) Load 281(i64) + 386: 74(ivec2) Bitcast 385 + Store 384(iv) 386 + 388: 14(int) Bitcast 387 + Store 293(u64) 388 + 390: 14(int) Load 293(u64) + 391: 81(ivec2) Bitcast 390 + Store 389(uv) 391 + 394: 132(ivec3) Load 291(u64v) + 395: 14(int) Load 293(u64) + 396: 132(ivec3) CompositeConstruct 395 395 395 + 397: 360(bvec3) ULessThan 394 396 + Store 393(bv) 397 + 398: 52(ivec2) Load 278(i64v) + 399: 18(int) Load 281(i64) + 400: 52(ivec2) CompositeConstruct 399 399 + 401: 56(bvec2) SLessThan 398 400 + 402: 360(bvec3) Load 393(bv) + 403: 360(bvec3) VectorShuffle 402 401 3 4 2 + Store 393(bv) 403 + 404: 132(ivec3) Load 291(u64v) + 405: 14(int) Load 293(u64) + 406: 132(ivec3) CompositeConstruct 405 405 405 + 407: 360(bvec3) ULessThanEqual 404 406 + Store 393(bv) 407 + 408: 52(ivec2) Load 278(i64v) + 409: 18(int) Load 281(i64) + 410: 52(ivec2) CompositeConstruct 409 409 + 411: 56(bvec2) SLessThanEqual 408 410 + 412: 360(bvec3) Load 393(bv) + 413: 360(bvec3) VectorShuffle 412 411 3 4 2 + Store 393(bv) 413 + 414: 132(ivec3) Load 291(u64v) + 415: 14(int) Load 293(u64) + 416: 132(ivec3) CompositeConstruct 415 415 415 + 417: 360(bvec3) UGreaterThan 414 416 + Store 393(bv) 417 + 418: 52(ivec2) Load 278(i64v) + 419: 18(int) Load 281(i64) + 420: 52(ivec2) CompositeConstruct 419 419 + 421: 56(bvec2) SGreaterThan 418 420 + 422: 360(bvec3) Load 393(bv) + 423: 360(bvec3) VectorShuffle 422 421 3 4 2 + Store 393(bv) 423 + 424: 132(ivec3) Load 291(u64v) + 425: 14(int) Load 293(u64) + 426: 132(ivec3) CompositeConstruct 425 425 425 + 427: 360(bvec3) UGreaterThanEqual 424 426 + Store 393(bv) 427 + 428: 52(ivec2) Load 278(i64v) + 429: 18(int) Load 281(i64) + 430: 52(ivec2) CompositeConstruct 429 429 + 431: 56(bvec2) SGreaterThanEqual 428 430 + 432: 360(bvec3) Load 393(bv) + 433: 360(bvec3) VectorShuffle 432 431 3 4 2 + Store 393(bv) 433 + 434: 132(ivec3) Load 291(u64v) + 435: 14(int) Load 293(u64) + 436: 132(ivec3) CompositeConstruct 435 435 435 + 437: 360(bvec3) IEqual 434 436 + Store 393(bv) 437 + 438: 52(ivec2) Load 278(i64v) + 439: 18(int) Load 281(i64) + 440: 52(ivec2) CompositeConstruct 439 439 + 441: 56(bvec2) IEqual 438 440 + 442: 360(bvec3) Load 393(bv) + 443: 360(bvec3) VectorShuffle 442 441 3 4 2 + Store 393(bv) 443 + 444: 132(ivec3) Load 291(u64v) + 445: 14(int) Load 293(u64) + 446: 132(ivec3) CompositeConstruct 445 445 445 + 447: 360(bvec3) INotEqual 444 446 + Store 393(bv) 447 + 448: 52(ivec2) Load 278(i64v) + 449: 18(int) Load 281(i64) + 450: 52(ivec2) CompositeConstruct 449 449 + 451: 56(bvec2) INotEqual 448 450 + 452: 360(bvec3) Load 393(bv) + 453: 360(bvec3) VectorShuffle 452 451 3 4 2 + Store 393(bv) 453 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.intOps.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.intOps.vert.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.intOps.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.intOps.vert.out index 2a63783207..93d2dfdae1 100644 --- a/deps/glslang-new/Test/baseResults/spv.intOps.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.intOps.vert.out @@ -1,6 +1,8 @@ spv.intOps.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 268 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.interpOps.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.interpOps.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.interpOps.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.interpOps.frag.out index 699524dd95..88d8e53cfd 100644 --- a/deps/glslang-new/Test/baseResults/spv.interpOps.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.interpOps.frag.out @@ -1,6 +1,8 @@ spv.interpOps.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 100 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.layoutNested.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.layoutNested.vert.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.layoutNested.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.layoutNested.vert.out index b5ef883454..0d0b28bbec 100644 --- a/deps/glslang-new/Test/baseResults/spv.layoutNested.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.layoutNested.vert.out @@ -1,6 +1,8 @@ spv.layoutNested.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 66 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.length.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.length.frag.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.length.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.length.frag.out index 8e799fbb42..76f6ca63d6 100755 --- a/deps/glslang-new/Test/baseResults/spv.length.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.length.frag.out @@ -1,6 +1,6 @@ spv.length.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 33 Capability Shader @@ -14,7 +14,6 @@ spv.length.frag Name 14 "v" Name 26 "gl_FragColor" Name 32 "u" - Decorate 26(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.localAggregates.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.localAggregates.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.localAggregates.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.localAggregates.frag.out index 5f89611e6f..7ffa874171 100755 --- a/deps/glslang-new/Test/baseResults/spv.localAggregates.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.localAggregates.frag.out @@ -1,6 +1,8 @@ spv.localAggregates.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 136 Capability Shader @@ -40,7 +42,6 @@ spv.localAggregates.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.loops.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.loops.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.loops.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.loops.frag.out index 046360f609..8b1b48076d 100755 --- a/deps/glslang-new/Test/baseResults/spv.loops.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.loops.frag.out @@ -1,6 +1,6 @@ spv.loops.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 725 Capability Shader @@ -49,7 +49,6 @@ spv.loops.frag Name 687 "d18" Name 698 "d17" Decorate 157(Count) Flat - Decorate 615(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.loopsArtificial.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.loopsArtificial.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.loopsArtificial.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.loopsArtificial.frag.out index d0d60542f8..707a78df0e 100755 --- a/deps/glslang-new/Test/baseResults/spv.loopsArtificial.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.loopsArtificial.frag.out @@ -1,6 +1,6 @@ spv.loopsArtificial.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 158 Capability Shader @@ -30,7 +30,6 @@ spv.loopsArtificial.frag Name 153 "d2" Name 154 "d3" Name 157 "Count" - Decorate 140(gl_FragColor) Location 0 Decorate 157(Count) Flat 2: TypeVoid 3: TypeFunction 2 diff --git a/deps/glslang-new/Test/baseResults/spv.matFun.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.matFun.vert.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.matFun.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.matFun.vert.out index 47b692f725..38d9d2cf1f 100755 --- a/deps/glslang-new/Test/baseResults/spv.matFun.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.matFun.vert.out @@ -1,6 +1,8 @@ spv.matFun.vert +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 103 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.matrix.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.matrix.frag.out similarity index 88% rename from deps/glslang-new/Test/baseResults/spv.matrix.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.matrix.frag.out index c2b4a1f6c8..700e90ebcd 100644 --- a/deps/glslang-new/Test/baseResults/spv.matrix.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.matrix.frag.out @@ -1,7 +1,9 @@ spv.matrix.frag +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 286 +// Generated by (magic number): 80001 +// Id's are bound by 261 Capability Shader Capability Float64 @@ -36,8 +38,8 @@ spv.matrix.frag 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 + 137: TypeVector 136(float) 4 + 138: TypeMatrix 137(fvec4) 3 139: TypePointer Function 138 157: TypeVector 6(float) 3 158: TypePointer Function 157(fvec3) @@ -53,9 +55,6 @@ spv.matrix.frag 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 @@ -193,19 +192,19 @@ spv.matrix.frag Store 10(sum34) 135 141: 8 Load 10(sum34) 142: 7(fvec4) CompositeExtract 141 0 - 143:137(f64vec4) FConvert 142 + 143: 137(fvec4) FConvert 142 144: 7(fvec4) CompositeExtract 141 1 - 145:137(f64vec4) FConvert 144 + 145: 137(fvec4) FConvert 144 146: 7(fvec4) CompositeExtract 141 2 - 147:137(f64vec4) FConvert 146 + 147: 137(fvec4) FConvert 146 148: 138 CompositeConstruct 143 145 147 Store 140(dm) 148 149: 138 Load 140(dm) - 150:137(f64vec4) CompositeExtract 149 0 + 150: 137(fvec4) CompositeExtract 149 0 151: 7(fvec4) FConvert 150 - 152:137(f64vec4) CompositeExtract 149 1 + 152: 137(fvec4) CompositeExtract 149 1 153: 7(fvec4) FConvert 152 - 154:137(f64vec4) CompositeExtract 149 2 + 154: 137(fvec4) CompositeExtract 149 2 155: 7(fvec4) FConvert 154 156: 8 CompositeConstruct 151 153 155 Store 10(sum34) 156 @@ -306,29 +305,5 @@ spv.matrix.frag 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-new/Test/baseResults/spv.matrix2.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.matrix2.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.matrix2.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.matrix2.frag.out index dc574a40d8..78facff346 100644 --- a/deps/glslang-new/Test/baseResults/spv.matrix2.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.matrix2.frag.out @@ -1,6 +1,6 @@ spv.matrix2.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 221 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.memoryQualifier.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.memoryQualifier.frag.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.memoryQualifier.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.memoryQualifier.frag.out index 02783b9835..a990e47594 100644 --- a/deps/glslang-new/Test/baseResults/spv.memoryQualifier.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.memoryQualifier.frag.out @@ -1,11 +1,13 @@ spv.memoryQualifier.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 97 Capability Shader - Capability ImageRect - Capability Image1D + Capability SampledRect + Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" @@ -35,7 +37,6 @@ spv.memoryQualifier.frag 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 @@ -45,11 +46,12 @@ spv.memoryQualifier.frag Decorate 44(iCube) DescriptorSet 0 Decorate 44(iCube) Binding 3 Decorate 44(iCube) NonReadable + MemberDecorate 49(Data) 0 Coherent MemberDecorate 49(Data) 0 Offset 0 + MemberDecorate 49(Data) 1 Coherent 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 diff --git a/deps/glslang-new/Test/baseResults/spv.merge-unreachable.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.merge-unreachable.frag.out similarity index 92% rename from deps/glslang-new/Test/baseResults/spv.merge-unreachable.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.merge-unreachable.frag.out index 7ec0f33dfc..58bbb0627a 100644 --- a/deps/glslang-new/Test/baseResults/spv.merge-unreachable.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.merge-unreachable.frag.out @@ -1,6 +1,8 @@ spv.merge-unreachable.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 25 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.multiStruct.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.multiStruct.comp.out new file mode 100755 index 0000000000..f8c0eead85 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.multiStruct.comp.out @@ -0,0 +1,264 @@ +spv.multiStruct.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 157 + + 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 37 "SSBO1" + MemberName 37(SSBO1) 0 "b" + Name 39 "outBuf" + Name 57 "MyStruct" + MemberName 57(MyStruct) 0 "foo" + MemberName 57(MyStruct) 1 "sb" + Name 58 "UBO" + MemberName 58(UBO) 0 "c" + Name 60 "uBuf" + Name 84 "Nested" + MemberName 84(Nested) 0 "f" + MemberName 84(Nested) 1 "S" + Name 86 "n" + Name 88 "Nested" + MemberName 88(Nested) 0 "f" + MemberName 88(Nested) 1 "S" + Name 89 "UBON" + MemberName 89(UBON) 0 "N1" + Name 91 "uBufN" + Name 122 "Nested" + MemberName 122(Nested) 0 "f" + MemberName 122(Nested) 1 "S" + Name 123 "SSBO1N" + MemberName 123(SSBO1N) 0 "N2" + Name 125 "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 37(SSBO1) 0 Offset 0 + Decorate 37(SSBO1) BufferBlock + Decorate 39(outBuf) DescriptorSet 0 + Decorate 39(outBuf) Binding 1 + Decorate 56 ArrayStride 16 + MemberDecorate 57(MyStruct) 0 Offset 0 + MemberDecorate 57(MyStruct) 1 Offset 32 + MemberDecorate 58(UBO) 0 Offset 0 + Decorate 58(UBO) Block + Decorate 60(uBuf) DescriptorSet 0 + Decorate 60(uBuf) Binding 2 + Decorate 87 ArrayStride 48 + MemberDecorate 88(Nested) 0 Offset 0 + MemberDecorate 88(Nested) 1 Offset 16 + MemberDecorate 89(UBON) 0 Offset 0 + Decorate 89(UBON) Block + Decorate 91(uBufN) DescriptorSet 0 + Decorate 91(uBufN) Binding 2 + Decorate 121 ArrayStride 24 + MemberDecorate 122(Nested) 0 Offset 0 + MemberDecorate 122(Nested) 1 Offset 8 + MemberDecorate 123(SSBO1N) 0 Offset 0 + Decorate 123(SSBO1N) BufferBlock + Decorate 125(outBufN) DescriptorSet 0 + Decorate 125(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: TypePointer Function 11(bool) + 37(SSBO1): TypeStruct 16(MyStruct) + 38: TypePointer Uniform 37(SSBO1) + 39(outBuf): 38(ptr) Variable Uniform + 43: TypePointer Uniform 15 + 46: TypePointer Uniform 7(fvec2) + 51: 8(int) Constant 0 + 52: 8(int) Constant 1 + 54: TypePointer Uniform 8(int) + 56: TypeArray 7(fvec2) 9 + 57(MyStruct): TypeStruct 56 8(int) + 58(UBO): TypeStruct 57(MyStruct) + 59: TypePointer Uniform 58(UBO) + 60(uBuf): 59(ptr) Variable Uniform + 61: TypePointer Uniform 57(MyStruct) + 83: TypeArray 12(MyStruct) 9 + 84(Nested): TypeStruct 6(float) 83 + 85: TypePointer Function 84(Nested) + 87: TypeArray 57(MyStruct) 9 + 88(Nested): TypeStruct 6(float) 87 + 89(UBON): TypeStruct 88(Nested) + 90: TypePointer Uniform 89(UBON) + 91(uBufN): 90(ptr) Variable Uniform + 92: TypePointer Uniform 88(Nested) + 96: TypePointer Function 6(float) + 99: TypePointer Function 83 + 121: TypeArray 16(MyStruct) 9 + 122(Nested): TypeStruct 6(float) 121 + 123(SSBO1N): TypeStruct 122(Nested) + 124: TypePointer Uniform 123(SSBO1N) + 125(outBufN): 124(ptr) Variable Uniform + 127: TypePointer Uniform 122(Nested) + 130: TypePointer Uniform 6(float) + 133: TypePointer Uniform 121 + 4(main): 2 Function None 3 + 5: Label + 14(t): 13(ptr) Variable Function + 86(n): 85(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: 35(ptr) AccessChain 14(t) 32 + Store 36 34 + 40:12(MyStruct) Load 14(t) + 41: 22(ptr) AccessChain 39(outBuf) 21 + 42: 10 CompositeExtract 40 0 + 44: 43(ptr) AccessChain 41 21 + 45: 7(fvec2) CompositeExtract 42 0 + 47: 46(ptr) AccessChain 44 21 + Store 47 45 + 48: 7(fvec2) CompositeExtract 42 1 + 49: 46(ptr) AccessChain 44 32 + Store 49 48 + 50: 11(bool) CompositeExtract 40 1 + 53: 8(int) Select 50 52 51 + 55: 54(ptr) AccessChain 41 32 + Store 55 53 + 62: 61(ptr) AccessChain 60(uBuf) 21 + 63:57(MyStruct) Load 62 + 64: 56 CompositeExtract 63 0 + 65: 26(ptr) AccessChain 14(t) 21 + 66: 7(fvec2) CompositeExtract 64 0 + 67: 29(ptr) AccessChain 65 21 + Store 67 66 + 68: 7(fvec2) CompositeExtract 64 1 + 69: 29(ptr) AccessChain 65 32 + Store 69 68 + 70: 8(int) CompositeExtract 63 1 + 71: 35(ptr) AccessChain 14(t) 32 + Store 71 70 + 72:12(MyStruct) Load 14(t) + 73: 22(ptr) AccessChain 39(outBuf) 21 + 74: 10 CompositeExtract 72 0 + 75: 43(ptr) AccessChain 73 21 + 76: 7(fvec2) CompositeExtract 74 0 + 77: 46(ptr) AccessChain 75 21 + Store 77 76 + 78: 7(fvec2) CompositeExtract 74 1 + 79: 46(ptr) AccessChain 75 32 + Store 79 78 + 80: 11(bool) CompositeExtract 72 1 + 81: 8(int) Select 80 52 51 + 82: 54(ptr) AccessChain 73 32 + Store 82 81 + 93: 92(ptr) AccessChain 91(uBufN) 21 + 94: 88(Nested) Load 93 + 95: 6(float) CompositeExtract 94 0 + 97: 96(ptr) AccessChain 86(n) 21 + Store 97 95 + 98: 87 CompositeExtract 94 1 + 100: 99(ptr) AccessChain 86(n) 32 + 101:57(MyStruct) CompositeExtract 98 0 + 102: 13(ptr) AccessChain 100 21 + 103: 56 CompositeExtract 101 0 + 104: 26(ptr) AccessChain 102 21 + 105: 7(fvec2) CompositeExtract 103 0 + 106: 29(ptr) AccessChain 104 21 + Store 106 105 + 107: 7(fvec2) CompositeExtract 103 1 + 108: 29(ptr) AccessChain 104 32 + Store 108 107 + 109: 8(int) CompositeExtract 101 1 + 110: 35(ptr) AccessChain 102 32 + Store 110 109 + 111:57(MyStruct) CompositeExtract 98 1 + 112: 13(ptr) AccessChain 100 32 + 113: 56 CompositeExtract 111 0 + 114: 26(ptr) AccessChain 112 21 + 115: 7(fvec2) CompositeExtract 113 0 + 116: 29(ptr) AccessChain 114 21 + Store 116 115 + 117: 7(fvec2) CompositeExtract 113 1 + 118: 29(ptr) AccessChain 114 32 + Store 118 117 + 119: 8(int) CompositeExtract 111 1 + 120: 35(ptr) AccessChain 112 32 + Store 120 119 + 126: 84(Nested) Load 86(n) + 128: 127(ptr) AccessChain 125(outBufN) 21 + 129: 6(float) CompositeExtract 126 0 + 131: 130(ptr) AccessChain 128 21 + Store 131 129 + 132: 83 CompositeExtract 126 1 + 134: 133(ptr) AccessChain 128 32 + 135:12(MyStruct) CompositeExtract 132 0 + 136: 22(ptr) AccessChain 134 21 + 137: 10 CompositeExtract 135 0 + 138: 43(ptr) AccessChain 136 21 + 139: 7(fvec2) CompositeExtract 137 0 + 140: 46(ptr) AccessChain 138 21 + Store 140 139 + 141: 7(fvec2) CompositeExtract 137 1 + 142: 46(ptr) AccessChain 138 32 + Store 142 141 + 143: 11(bool) CompositeExtract 135 1 + 144: 8(int) Select 143 52 51 + 145: 54(ptr) AccessChain 136 32 + Store 145 144 + 146:12(MyStruct) CompositeExtract 132 1 + 147: 22(ptr) AccessChain 134 32 + 148: 10 CompositeExtract 146 0 + 149: 43(ptr) AccessChain 147 21 + 150: 7(fvec2) CompositeExtract 148 0 + 151: 46(ptr) AccessChain 149 21 + Store 151 150 + 152: 7(fvec2) CompositeExtract 148 1 + 153: 46(ptr) AccessChain 149 32 + Store 153 152 + 154: 11(bool) CompositeExtract 146 1 + 155: 8(int) Select 154 52 51 + 156: 54(ptr) AccessChain 147 32 + Store 156 155 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.multiStructFuncall.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.multiStructFuncall.frag.out similarity index 56% rename from deps/glslang-new/Test/baseResults/spv.multiStructFuncall.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.multiStructFuncall.frag.out index 14c851cac1..b9b0cb2cb6 100755 --- a/deps/glslang-new/Test/baseResults/spv.multiStructFuncall.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.multiStructFuncall.frag.out @@ -1,7 +1,9 @@ spv.multiStructFuncall.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): 80007 -// Id's are bound by 66 +// Generated by (magic number): 80001 +// Id's are bound by 63 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -23,21 +25,20 @@ spv.multiStructFuncall.frag 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 33 "s2" + Name 36 "S" + MemberName 36(S) 0 "m" + Name 38 "param" + Name 45 "param" Name 48 "param" - Name 51 "param" - Name 62 "param" + Name 59 "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 + MemberDecorate 36(S) 0 ColMajor 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -54,52 +55,48 @@ spv.multiStructFuncall.frag 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 + 32: TypePointer Private 9(S) + 33(s2): 32(ptr) Variable Private + 36(S): TypeStruct 8 + 37: TypePointer Function 36(S) + 42: TypePointer Function 8 + 57: 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 + 38(param): 37(ptr) Variable Function + 45(param): 14(ptr) Variable Function + 48(param): 37(ptr) Variable Function + 59(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 + 31: 2 FunctionCall 12(fooConst(struct-S-mf441;) 30 + 34: 9(S) Load 33(s2) + 35: 2 FunctionCall 12(fooConst(struct-S-mf441;) 34 + 39: 28(ptr) AccessChain 25 27 + 40: 22(S) Load 39 + 41: 8 CompositeExtract 40 0 + 43: 42(ptr) AccessChain 38(param) 27 + Store 43 41 + 44: 2 FunctionCall 17(foo(struct-S-mf441;) 38(param) + 46: 9(S) Load 33(s2) + Store 45(param) 46 + 47: 2 FunctionCall 17(foo(struct-S-mf441;) 45(param) + 49: 28(ptr) AccessChain 25 27 + 50: 22(S) Load 49 + 51: 8 CompositeExtract 50 0 + 52: 42(ptr) AccessChain 48(param) 27 + Store 52 51 + 53: 2 FunctionCall 20(fooOut(struct-S-mf441;) 48(param) + 54: 36(S) Load 48(param) + 55: 28(ptr) AccessChain 25 27 + 56: 8 CompositeExtract 54 0 + 58: 57(ptr) AccessChain 55 27 + Store 58 56 + 60: 9(S) Load 33(s2) + Store 59(param) 60 + 61: 2 FunctionCall 20(fooOut(struct-S-mf441;) 59(param) + 62: 9(S) Load 59(param) + Store 33(s2) 62 Return FunctionEnd 12(fooConst(struct-S-mf441;): 2 Function None 10 diff --git a/deps/glslang-new/Test/baseResults/spv.newTexture.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.newTexture.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.newTexture.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.newTexture.frag.out index 5ddd8a545f..ea694eeafb 100755 --- a/deps/glslang-new/Test/baseResults/spv.newTexture.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.newTexture.frag.out @@ -1,6 +1,8 @@ spv.newTexture.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 284 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.noDeadDecorations.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.noDeadDecorations.vert.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.noDeadDecorations.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.noDeadDecorations.vert.out index d7e3702718..41d2a43147 100644 --- a/deps/glslang-new/Test/baseResults/spv.noDeadDecorations.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.noDeadDecorations.vert.out @@ -1,6 +1,8 @@ spv.noDeadDecorations.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 32 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.noWorkgroup.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.noWorkgroup.comp.out similarity index 89% rename from deps/glslang-new/Test/baseResults/spv.noWorkgroup.comp.out rename to deps/glslang/glslang-old/Test/baseResults/spv.noWorkgroup.comp.out index 2624fdcdbd..0f88436c5a 100755 --- a/deps/glslang-new/Test/baseResults/spv.noWorkgroup.comp.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.noWorkgroup.comp.out @@ -1,6 +1,8 @@ spv.noWorkgroup.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 12 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.nonSquare.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.nonSquare.vert.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.nonSquare.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.nonSquare.vert.out index 679a5f0f96..684d4f16b3 100755 --- a/deps/glslang-new/Test/baseResults/spv.nonSquare.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.nonSquare.vert.out @@ -1,6 +1,6 @@ spv.nonSquare.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 90 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.offsets.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.offsets.frag.out similarity index 94% rename from deps/glslang-new/Test/baseResults/spv.offsets.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.offsets.frag.out index 17d7b86e11..ea4be8f4c6 100755 --- a/deps/glslang-new/Test/baseResults/spv.offsets.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.offsets.frag.out @@ -1,6 +1,8 @@ spv.offsets.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 15 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.precise.tesc.out b/deps/glslang/glslang-old/Test/baseResults/spv.precise.tesc.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.precise.tesc.out rename to deps/glslang/glslang-old/Test/baseResults/spv.precise.tesc.out index 95a048fc75..4bae395a8a 100644 --- a/deps/glslang-new/Test/baseResults/spv.precise.tesc.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.precise.tesc.out @@ -1,6 +1,8 @@ spv.precise.tesc +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 72 Capability Tessellation diff --git a/deps/glslang-new/Test/baseResults/spv.precise.tese.out b/deps/glslang/glslang-old/Test/baseResults/spv.precise.tese.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.precise.tese.out rename to deps/glslang/glslang-old/Test/baseResults/spv.precise.tese.out index a73cbd8327..4f1839c775 100644 --- a/deps/glslang-new/Test/baseResults/spv.precise.tese.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.precise.tese.out @@ -1,6 +1,8 @@ spv.precise.tese +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 119 Capability Tessellation diff --git a/deps/glslang-new/Test/baseResults/spv.precision.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.precision.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.precision.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.precision.frag.out index 5ddb492724..f49b356638 100755 --- a/deps/glslang-new/Test/baseResults/spv.precision.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.precision.frag.out @@ -1,6 +1,8 @@ spv.precision.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 127 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.prepost.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.prepost.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.prepost.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.prepost.frag.out index 3b4bfd8aca..410286cad0 100755 --- a/deps/glslang-new/Test/baseResults/spv.prepost.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.prepost.frag.out @@ -1,6 +1,6 @@ spv.prepost.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 94 Capability Shader @@ -20,7 +20,6 @@ spv.prepost.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.pushConstant.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.pushConstant.vert.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.pushConstant.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.pushConstant.vert.out index 40ee328461..bdefd63de6 100644 --- a/deps/glslang-new/Test/baseResults/spv.pushConstant.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.pushConstant.vert.out @@ -1,6 +1,8 @@ spv.pushConstant.vert +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 35 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.qualifiers.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.qualifiers.vert.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.qualifiers.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.qualifiers.vert.out index ffdc6f8056..37f474cca5 100755 --- a/deps/glslang-new/Test/baseResults/spv.qualifiers.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.qualifiers.vert.out @@ -1,6 +1,8 @@ spv.qualifiers.vert +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 21 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.queryL.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.queryL.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.queryL.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.queryL.frag.out index 33f0d95cde..fbdcbc8130 100755 --- a/deps/glslang-new/Test/baseResults/spv.queryL.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.queryL.frag.out @@ -1,6 +1,8 @@ spv.queryL.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 224 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign-2.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign-2.frag.out new file mode 100644 index 0000000000..6d2ad36e83 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign-2.frag.out @@ -0,0 +1,54 @@ +spv.register.autoassign-2.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 31 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "Color" + Name 12 "g_tScene[0]" + Name 16 "g_tSamp" + Name 25 "g_tScene[1]" + Decorate 9(Color) Location 0 + Decorate 12(g_tScene[0]) DescriptorSet 0 + Decorate 12(g_tScene[0]) Binding 10 + Decorate 16(g_tSamp) DescriptorSet 0 + Decorate 16(g_tSamp) Binding 5 + Decorate 25(g_tScene[1]) DescriptorSet 0 + Decorate 25(g_tScene[1]) Binding 11 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(Color): 8(ptr) Variable Output + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tScene[0]): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_tSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1050253722 + 22: 6(float) Constant 1053609165 + 23: 20(fvec2) ConstantComposite 21 22 + 25(g_tScene[1]): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 13: 10 Load 12(g_tScene[0]) + 17: 14 Load 16(g_tSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleImplicitLod 19 23 + 26: 10 Load 25(g_tScene[1]) + 27: 14 Load 16(g_tSamp) + 28: 18 SampledImage 26 27 + 29: 7(fvec4) ImageSampleImplicitLod 28 23 + 30: 7(fvec4) FAdd 24 29 + Store 9(Color) 30 + Return + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign.frag.out new file mode 100644 index 0000000000..4b4655e3bb --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign.frag.out @@ -0,0 +1,233 @@ +spv.register.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 150 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 145 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "$Global" + MemberName 95($Global) 0 "mystruct" + MemberName 95($Global) 1 "myfloat4_a" + MemberName 95($Global) 2 "myfloat4_b" + MemberName 95($Global) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + Name 138 "psout" + Name 145 "Color" + Name 149 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 27(g_tTex2) Binding 14 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 29(g_sSamp2) Binding 6 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 64(g_tTex4) Binding 15 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 69(g_sSamp4) Binding 8 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 84(g_tTex5) Binding 16 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 86(g_sSamp5) Binding 9 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95($Global) 0 Offset 0 + MemberDecorate 95($Global) 1 Offset 32 + MemberDecorate 95($Global) 2 Offset 48 + MemberDecorate 95($Global) 3 Offset 64 + Decorate 95($Global) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 20 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 145(Color) Location 0 + Decorate 149(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95($Global) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136(PS_OUTPUT): TypeStruct 7(fvec4) + 137: TypePointer Function 136(PS_OUTPUT) + 142: TypePointer Function 7(fvec4) + 144: TypePointer Output 7(fvec4) + 145(Color): 144(ptr) Variable Output +149(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 138(psout): 137(ptr) Variable Function + 139: 7(fvec4) FunctionCall 9(Func1() + 140: 7(fvec4) FunctionCall 11(Func2() + 141: 7(fvec4) FAdd 139 140 + 143: 142(ptr) AccessChain 138(psout) 41 + Store 143 141 + 146: 142(ptr) AccessChain 138(psout) 41 + 147: 7(fvec4) Load 146 + Store 145(Color) 147 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign.rangetest.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.register.autoassign.rangetest.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.register.autoassign.rangetest.frag.out diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.register.noautoassign.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.register.noautoassign.frag.out new file mode 100644 index 0000000000..71140dcd96 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.register.noautoassign.frag.out @@ -0,0 +1,226 @@ +spv.register.noautoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 150 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 145 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "$Global" + MemberName 95($Global) 0 "mystruct" + MemberName 95($Global) 1 "myfloat4_a" + MemberName 95($Global) 2 "myfloat4_b" + MemberName 95($Global) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + Name 138 "psout" + Name 145 "Color" + Name 149 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 86(g_sSamp5) DescriptorSet 0 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95($Global) 0 Offset 0 + MemberDecorate 95($Global) 1 Offset 32 + MemberDecorate 95($Global) 2 Offset 48 + MemberDecorate 95($Global) 3 Offset 64 + Decorate 95($Global) Block + Decorate 97 DescriptorSet 0 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 145(Color) Location 0 + Decorate 149(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95($Global) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136(PS_OUTPUT): TypeStruct 7(fvec4) + 137: TypePointer Function 136(PS_OUTPUT) + 142: TypePointer Function 7(fvec4) + 144: TypePointer Output 7(fvec4) + 145(Color): 144(ptr) Variable Output +149(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 138(psout): 137(ptr) Variable Function + 139: 7(fvec4) FunctionCall 9(Func1() + 140: 7(fvec4) FunctionCall 11(Func2() + 141: 7(fvec4) FAdd 139 140 + 143: 142(ptr) AccessChain 138(psout) 41 + Store 143 141 + 146: 142(ptr) AccessChain 138(psout) 41 + 147: 7(fvec4) Load 146 + Store 145(Color) 147 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.rw.autoassign.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.rw.autoassign.frag.out new file mode 100644 index 0000000000..d6b75ba3c7 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.rw.autoassign.frag.out @@ -0,0 +1,66 @@ +spv.rw.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 37 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df1" + Name 18 "r01" + Name 21 "g_tBuf1du1" + Name 25 "PS_OUTPUT" + MemberName 25(PS_OUTPUT) 0 "Color" + Name 27 "psout" + Name 33 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 11(g_tTex1df1) Binding 20 + Decorate 21(g_tBuf1du1) DescriptorSet 0 + Decorate 21(g_tBuf1du1) Binding 21 + Decorate 33(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D nonsampled format:R32f + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 16: TypeInt 32 0 + 17: TypePointer Function 16(int) + 19: TypeImage 16(int) Buffer nonsampled format:R32ui + 20: TypePointer UniformConstant 19 + 21(g_tBuf1du1): 20(ptr) Variable UniformConstant + 24: TypeVector 6(float) 4 + 25(PS_OUTPUT): TypeStruct 24(fvec4) + 26: TypePointer Function 25(PS_OUTPUT) + 28: 6(float) Constant 0 + 29: 24(fvec4) ConstantComposite 28 28 28 28 + 30: TypePointer Function 24(fvec4) + 32: TypePointer Output 24(fvec4) + 33(Color): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 18(r01): 17(ptr) Variable Function + 27(psout): 26(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 15: 6(float) ImageRead 12 14 + Store 8(r00) 15 + 22: 19 Load 21(g_tBuf1du1) + 23: 16(int) ImageRead 22 14 + Store 18(r01) 23 + 31: 30(ptr) AccessChain 27(psout) 14 + Store 31 29 + 34: 30(ptr) AccessChain 27(psout) 14 + 35: 24(fvec4) Load 34 + Store 33(Color) 35 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.separate.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.separate.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.separate.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.separate.frag.out index a834efdc8e..c654117f7f 100644 --- a/deps/glslang-new/Test/baseResults/spv.separate.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.separate.frag.out @@ -1,6 +1,8 @@ spv.separate.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 319 Capability Shader @@ -8,6 +10,7 @@ spv.separate.frag Capability Sampled1D Capability SampledCubeArray Capability SampledBuffer + Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 34 diff --git a/deps/glslang-new/Test/baseResults/spv.set.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.set.vert.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.set.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.set.vert.out index 16d771fce6..38cb669c6a 100755 --- a/deps/glslang-new/Test/baseResults/spv.set.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.set.vert.out @@ -1,6 +1,8 @@ spv.set.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 22 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.shaderBallot.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.shaderBallot.comp.out new file mode 100644 index 0000000000..4f03312848 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.shaderBallot.comp.out @@ -0,0 +1,377 @@ +spv.shaderBallot.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 299 + + Capability Shader + Capability Int64 + Capability Groups + Capability SubgroupBallotKHR + Extension "SPV_KHR_shader_ballot" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 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 298 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubGroupInvocationARB): 9(ptr) Variable Input +12(gl_SubGroupSizeARB): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeInt 64 0 + 18: TypePointer Function 17(int) + 20: TypePointer Input 17(int) +21(gl_SubGroupEqMaskARB): 20(ptr) Variable Input +23(gl_SubGroupGeMaskARB): 20(ptr) Variable Input +26(gl_SubGroupGtMaskARB): 20(ptr) Variable Input +29(gl_SubGroupLeMaskARB): 20(ptr) Variable Input +32(gl_SubGroupLtMaskARB): 20(ptr) Variable Input + 36: TypeBool + 37: 36(bool) ConstantTrue + 38: TypeVector 6(int) 4 + 42: TypeVector 6(int) 2 + 48: TypeFloat 32 + 49: TypeVector 48(float) 4 + 50: TypeInt 32 1 + 51: TypeVector 50(int) 4 + 52(Buffers): TypeStruct 49(fvec4) 51(ivec4) 38(ivec4) + 53: TypeArray 52(Buffers) 15 + 54: TypePointer Uniform 53 + 55(data): 54(ptr) Variable Uniform + 57: 50(int) Constant 0 + 58: 6(int) Constant 0 + 59: TypePointer Uniform 48(float) + 63: 6(int) Constant 3 + 67: 50(int) Constant 1 + 68: TypeVector 48(float) 2 + 69: TypePointer Uniform 49(fvec4) + 83: 50(int) Constant 2 + 84: TypeVector 48(float) 3 + 100: 50(int) Constant 3 + 115: TypePointer Uniform 50(int) + 122: TypeVector 50(int) 2 + 123: TypePointer Uniform 51(ivec4) + 137: TypeVector 50(int) 3 + 167: TypePointer Uniform 6(int) + 174: TypePointer Uniform 38(ivec4) + 188: TypeVector 6(int) 3 + 296: 6(int) Constant 8 + 297: 6(int) Constant 1 + 298: 188(ivec3) ConstantComposite 296 296 297 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 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(int) Load 21(gl_SubGroupEqMaskARB) + 24: 17(int) Load 23(gl_SubGroupGeMaskARB) + 25: 17(int) IAdd 22 24 + 27: 17(int) Load 26(gl_SubGroupGtMaskARB) + 28: 17(int) IAdd 25 27 + 30: 17(int) Load 29(gl_SubGroupLeMaskARB) + 31: 17(int) IAdd 28 30 + 33: 17(int) Load 32(gl_SubGroupLtMaskARB) + 34: 17(int) IAdd 31 33 + Store 19(relMask) 34 + 35: 17(int) Load 19(relMask) + 39: 38(ivec4) SubgroupBallotKHR 37 + 40: 6(int) CompositeExtract 39 0 + 41: 6(int) CompositeExtract 39 1 + 43: 42(ivec2) CompositeConstruct 40 41 + 44: 17(int) Bitcast 43 + 45: 36(bool) IEqual 35 44 + SelectionMerge 47 None + BranchConditional 45 46 217 + 46: Label + 56: 6(int) Load 8(invocation) + 60: 59(ptr) AccessChain 55(data) 57 57 58 + 61: 48(float) Load 60 + 62: 6(int) Load 8(invocation) + 64: 48(float) GroupBroadcast 63 61 62 + 65: 59(ptr) AccessChain 55(data) 56 57 58 + Store 65 64 + 66: 6(int) Load 8(invocation) + 70: 69(ptr) AccessChain 55(data) 67 57 + 71: 49(fvec4) Load 70 + 72: 68(fvec2) VectorShuffle 71 71 0 1 + 73: 6(int) Load 8(invocation) + 74: 48(float) CompositeExtract 72 0 + 75: 48(float) GroupBroadcast 63 74 73 + 76: 48(float) CompositeExtract 72 1 + 77: 48(float) GroupBroadcast 63 76 73 + 78: 68(fvec2) CompositeConstruct 75 77 + 79: 69(ptr) AccessChain 55(data) 66 57 + 80: 49(fvec4) Load 79 + 81: 49(fvec4) VectorShuffle 80 78 4 5 2 3 + Store 79 81 + 82: 6(int) Load 8(invocation) + 85: 69(ptr) AccessChain 55(data) 83 57 + 86: 49(fvec4) Load 85 + 87: 84(fvec3) VectorShuffle 86 86 0 1 2 + 88: 6(int) Load 8(invocation) + 89: 48(float) CompositeExtract 87 0 + 90: 48(float) GroupBroadcast 63 89 88 + 91: 48(float) CompositeExtract 87 1 + 92: 48(float) GroupBroadcast 63 91 88 + 93: 48(float) CompositeExtract 87 2 + 94: 48(float) GroupBroadcast 63 93 88 + 95: 84(fvec3) CompositeConstruct 90 92 94 + 96: 69(ptr) AccessChain 55(data) 82 57 + 97: 49(fvec4) Load 96 + 98: 49(fvec4) VectorShuffle 97 95 4 5 6 3 + Store 96 98 + 99: 6(int) Load 8(invocation) + 101: 69(ptr) AccessChain 55(data) 100 57 + 102: 49(fvec4) Load 101 + 103: 6(int) Load 8(invocation) + 104: 48(float) CompositeExtract 102 0 + 105: 48(float) GroupBroadcast 63 104 103 + 106: 48(float) CompositeExtract 102 1 + 107: 48(float) GroupBroadcast 63 106 103 + 108: 48(float) CompositeExtract 102 2 + 109: 48(float) GroupBroadcast 63 108 103 + 110: 48(float) CompositeExtract 102 3 + 111: 48(float) GroupBroadcast 63 110 103 + 112: 49(fvec4) CompositeConstruct 105 107 109 111 + 113: 69(ptr) AccessChain 55(data) 99 57 + Store 113 112 + 114: 6(int) Load 8(invocation) + 116: 115(ptr) AccessChain 55(data) 57 67 58 + 117: 50(int) Load 116 + 118: 6(int) Load 8(invocation) + 119: 50(int) GroupBroadcast 63 117 118 + 120: 115(ptr) AccessChain 55(data) 114 67 58 + Store 120 119 + 121: 6(int) Load 8(invocation) + 124: 123(ptr) AccessChain 55(data) 67 67 + 125: 51(ivec4) Load 124 + 126: 122(ivec2) VectorShuffle 125 125 0 1 + 127: 6(int) Load 8(invocation) + 128: 50(int) CompositeExtract 126 0 + 129: 50(int) GroupBroadcast 63 128 127 + 130: 50(int) CompositeExtract 126 1 + 131: 50(int) GroupBroadcast 63 130 127 + 132: 122(ivec2) CompositeConstruct 129 131 + 133: 123(ptr) AccessChain 55(data) 121 67 + 134: 51(ivec4) Load 133 + 135: 51(ivec4) VectorShuffle 134 132 4 5 2 3 + Store 133 135 + 136: 6(int) Load 8(invocation) + 138: 123(ptr) AccessChain 55(data) 83 67 + 139: 51(ivec4) Load 138 + 140: 137(ivec3) VectorShuffle 139 139 0 1 2 + 141: 6(int) Load 8(invocation) + 142: 50(int) CompositeExtract 140 0 + 143: 50(int) GroupBroadcast 63 142 141 + 144: 50(int) CompositeExtract 140 1 + 145: 50(int) GroupBroadcast 63 144 141 + 146: 50(int) CompositeExtract 140 2 + 147: 50(int) GroupBroadcast 63 146 141 + 148: 137(ivec3) CompositeConstruct 143 145 147 + 149: 123(ptr) AccessChain 55(data) 136 67 + 150: 51(ivec4) Load 149 + 151: 51(ivec4) VectorShuffle 150 148 4 5 6 3 + Store 149 151 + 152: 6(int) Load 8(invocation) + 153: 123(ptr) AccessChain 55(data) 100 67 + 154: 51(ivec4) Load 153 + 155: 6(int) Load 8(invocation) + 156: 50(int) CompositeExtract 154 0 + 157: 50(int) GroupBroadcast 63 156 155 + 158: 50(int) CompositeExtract 154 1 + 159: 50(int) GroupBroadcast 63 158 155 + 160: 50(int) CompositeExtract 154 2 + 161: 50(int) GroupBroadcast 63 160 155 + 162: 50(int) CompositeExtract 154 3 + 163: 50(int) GroupBroadcast 63 162 155 + 164: 51(ivec4) CompositeConstruct 157 159 161 163 + 165: 123(ptr) AccessChain 55(data) 152 67 + Store 165 164 + 166: 6(int) Load 8(invocation) + 168: 167(ptr) AccessChain 55(data) 57 83 58 + 169: 6(int) Load 168 + 170: 6(int) Load 8(invocation) + 171: 6(int) GroupBroadcast 63 169 170 + 172: 167(ptr) AccessChain 55(data) 166 83 58 + Store 172 171 + 173: 6(int) Load 8(invocation) + 175: 174(ptr) AccessChain 55(data) 67 83 + 176: 38(ivec4) Load 175 + 177: 42(ivec2) VectorShuffle 176 176 0 1 + 178: 6(int) Load 8(invocation) + 179: 6(int) CompositeExtract 177 0 + 180: 6(int) GroupBroadcast 63 179 178 + 181: 6(int) CompositeExtract 177 1 + 182: 6(int) GroupBroadcast 63 181 178 + 183: 42(ivec2) CompositeConstruct 180 182 + 184: 174(ptr) AccessChain 55(data) 173 83 + 185: 38(ivec4) Load 184 + 186: 38(ivec4) VectorShuffle 185 183 4 5 2 3 + Store 184 186 + 187: 6(int) Load 8(invocation) + 189: 174(ptr) AccessChain 55(data) 83 83 + 190: 38(ivec4) Load 189 + 191: 188(ivec3) VectorShuffle 190 190 0 1 2 + 192: 6(int) Load 8(invocation) + 193: 6(int) CompositeExtract 191 0 + 194: 6(int) GroupBroadcast 63 193 192 + 195: 6(int) CompositeExtract 191 1 + 196: 6(int) GroupBroadcast 63 195 192 + 197: 6(int) CompositeExtract 191 2 + 198: 6(int) GroupBroadcast 63 197 192 + 199: 188(ivec3) CompositeConstruct 194 196 198 + 200: 174(ptr) AccessChain 55(data) 187 83 + 201: 38(ivec4) Load 200 + 202: 38(ivec4) VectorShuffle 201 199 4 5 6 3 + Store 200 202 + 203: 6(int) Load 8(invocation) + 204: 174(ptr) AccessChain 55(data) 100 83 + 205: 38(ivec4) Load 204 + 206: 6(int) Load 8(invocation) + 207: 6(int) CompositeExtract 205 0 + 208: 6(int) GroupBroadcast 63 207 206 + 209: 6(int) CompositeExtract 205 1 + 210: 6(int) GroupBroadcast 63 209 206 + 211: 6(int) CompositeExtract 205 2 + 212: 6(int) GroupBroadcast 63 211 206 + 213: 6(int) CompositeExtract 205 3 + 214: 6(int) GroupBroadcast 63 213 206 + 215: 38(ivec4) CompositeConstruct 208 210 212 214 + 216: 174(ptr) AccessChain 55(data) 203 83 + Store 216 215 + Branch 47 + 217: Label + 218: 6(int) Load 8(invocation) + 219: 59(ptr) AccessChain 55(data) 57 57 58 + 220: 48(float) Load 219 + 221: 48(float) SubgroupFirstInvocationKHR 220 + 222: 59(ptr) AccessChain 55(data) 218 57 58 + Store 222 221 + 223: 6(int) Load 8(invocation) + 224: 69(ptr) AccessChain 55(data) 67 57 + 225: 49(fvec4) Load 224 + 226: 68(fvec2) VectorShuffle 225 225 0 1 + 227: 68(fvec2) SubgroupFirstInvocationKHR 226 + 228: 69(ptr) AccessChain 55(data) 223 57 + 229: 49(fvec4) Load 228 + 230: 49(fvec4) VectorShuffle 229 227 4 5 2 3 + Store 228 230 + 231: 6(int) Load 8(invocation) + 232: 69(ptr) AccessChain 55(data) 83 57 + 233: 49(fvec4) Load 232 + 234: 84(fvec3) VectorShuffle 233 233 0 1 2 + 235: 84(fvec3) SubgroupFirstInvocationKHR 234 + 236: 69(ptr) AccessChain 55(data) 231 57 + 237: 49(fvec4) Load 236 + 238: 49(fvec4) VectorShuffle 237 235 4 5 6 3 + Store 236 238 + 239: 6(int) Load 8(invocation) + 240: 69(ptr) AccessChain 55(data) 100 57 + 241: 49(fvec4) Load 240 + 242: 49(fvec4) SubgroupFirstInvocationKHR 241 + 243: 69(ptr) AccessChain 55(data) 239 57 + Store 243 242 + 244: 6(int) Load 8(invocation) + 245: 115(ptr) AccessChain 55(data) 57 67 58 + 246: 50(int) Load 245 + 247: 50(int) SubgroupFirstInvocationKHR 246 + 248: 115(ptr) AccessChain 55(data) 244 67 58 + Store 248 247 + 249: 6(int) Load 8(invocation) + 250: 123(ptr) AccessChain 55(data) 67 67 + 251: 51(ivec4) Load 250 + 252: 122(ivec2) VectorShuffle 251 251 0 1 + 253: 122(ivec2) SubgroupFirstInvocationKHR 252 + 254: 123(ptr) AccessChain 55(data) 249 67 + 255: 51(ivec4) Load 254 + 256: 51(ivec4) VectorShuffle 255 253 4 5 2 3 + Store 254 256 + 257: 6(int) Load 8(invocation) + 258: 123(ptr) AccessChain 55(data) 83 67 + 259: 51(ivec4) Load 258 + 260: 137(ivec3) VectorShuffle 259 259 0 1 2 + 261: 137(ivec3) SubgroupFirstInvocationKHR 260 + 262: 123(ptr) AccessChain 55(data) 257 67 + 263: 51(ivec4) Load 262 + 264: 51(ivec4) VectorShuffle 263 261 4 5 6 3 + Store 262 264 + 265: 6(int) Load 8(invocation) + 266: 123(ptr) AccessChain 55(data) 100 67 + 267: 51(ivec4) Load 266 + 268: 51(ivec4) SubgroupFirstInvocationKHR 267 + 269: 123(ptr) AccessChain 55(data) 265 67 + Store 269 268 + 270: 6(int) Load 8(invocation) + 271: 167(ptr) AccessChain 55(data) 57 83 58 + 272: 6(int) Load 271 + 273: 6(int) SubgroupFirstInvocationKHR 272 + 274: 167(ptr) AccessChain 55(data) 270 83 58 + Store 274 273 + 275: 6(int) Load 8(invocation) + 276: 174(ptr) AccessChain 55(data) 67 83 + 277: 38(ivec4) Load 276 + 278: 42(ivec2) VectorShuffle 277 277 0 1 + 279: 42(ivec2) SubgroupFirstInvocationKHR 278 + 280: 174(ptr) AccessChain 55(data) 275 83 + 281: 38(ivec4) Load 280 + 282: 38(ivec4) VectorShuffle 281 279 4 5 2 3 + Store 280 282 + 283: 6(int) Load 8(invocation) + 284: 174(ptr) AccessChain 55(data) 83 83 + 285: 38(ivec4) Load 284 + 286: 188(ivec3) VectorShuffle 285 285 0 1 2 + 287: 188(ivec3) SubgroupFirstInvocationKHR 286 + 288: 174(ptr) AccessChain 55(data) 283 83 + 289: 38(ivec4) Load 288 + 290: 38(ivec4) VectorShuffle 289 287 4 5 6 3 + Store 288 290 + 291: 6(int) Load 8(invocation) + 292: 174(ptr) AccessChain 55(data) 100 83 + 293: 38(ivec4) Load 292 + 294: 38(ivec4) SubgroupFirstInvocationKHR 293 + 295: 174(ptr) AccessChain 55(data) 291 83 + Store 295 294 + Branch 47 + 47: Label + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.shaderDrawParams.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.shaderDrawParams.vert.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.shaderDrawParams.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.shaderDrawParams.vert.out index d6b43e8fe9..41ad78d480 100644 --- a/deps/glslang-new/Test/baseResults/spv.shaderDrawParams.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.shaderDrawParams.vert.out @@ -1,6 +1,8 @@ spv.shaderDrawParams.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 53 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.shaderGroupVote.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.shaderGroupVote.comp.out similarity index 62% rename from deps/glslang-new/Test/baseResults/spv.shaderGroupVote.comp.out rename to deps/glslang/glslang-old/Test/baseResults/spv.shaderGroupVote.comp.out index e45f585837..f8bfae804a 100644 --- a/deps/glslang-new/Test/baseResults/spv.shaderGroupVote.comp.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.shaderGroupVote.comp.out @@ -1,11 +1,12 @@ spv.shaderGroupVote.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 33 +// Generated by (magic number): 80001 +// Id's are bound by 37 Capability Shader - Capability SubgroupVoteKHR - Extension "SPV_KHR_subgroup_vote" + Capability Groups 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" @@ -21,7 +22,7 @@ spv.shaderGroupVote.comp Decorate 10(Buffers) BufferBlock Decorate 12 DescriptorSet 0 Decorate 12 Binding 0 - Decorate 32 BuiltIn WorkgroupSize + Decorate 36 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -34,10 +35,11 @@ spv.shaderGroupVote.comp 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 + 21: 9(int) Constant 3 + 31: 9(int) Constant 1 + 34: TypeVector 9(int) 3 + 35: 9(int) Constant 4 + 36: 34(ivec3) ConstantComposite 35 35 31 4(main): 2 Function None 3 5: Label 8(b1): 7(ptr) Variable Function @@ -46,17 +48,20 @@ spv.shaderGroupVote.comp 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 + 22: 6(bool) GroupAny 21 20 + Store 8(b1) 22 + 23: 6(bool) Load 8(b1) + 24: 6(bool) GroupAll 21 23 + Store 8(b1) 24 + 25: 6(bool) Load 8(b1) + 26: 6(bool) GroupAll 21 25 + 27: 6(bool) GroupAny 21 25 + 28: 6(bool) LogicalNot 27 + 29: 6(bool) LogicalOr 26 28 + Store 8(b1) 29 + 30: 6(bool) Load 8(b1) + 32: 9(int) Select 30 31 18 + 33: 15(ptr) AccessChain 12 14 + Store 33 32 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.shiftOps.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.shiftOps.frag.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.shiftOps.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.shiftOps.frag.out index 3085a55d45..498c287784 100644 --- a/deps/glslang-new/Test/baseResults/spv.shiftOps.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.shiftOps.frag.out @@ -1,6 +1,8 @@ spv.shiftOps.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 38 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.shortCircuit.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.shortCircuit.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.shortCircuit.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.shortCircuit.frag.out index d651824597..7d5189a251 100644 --- a/deps/glslang-new/Test/baseResults/spv.shortCircuit.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.shortCircuit.frag.out @@ -1,6 +1,8 @@ spv.shortCircuit.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 147 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.simpleFunctionCall.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.simpleFunctionCall.frag.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.simpleFunctionCall.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.simpleFunctionCall.frag.out index 627b31c1a8..2e6b671f46 100755 --- a/deps/glslang-new/Test/baseResults/spv.simpleFunctionCall.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.simpleFunctionCall.frag.out @@ -1,6 +1,6 @@ spv.simpleFunctionCall.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 19 Capability Shader @@ -13,7 +13,6 @@ spv.simpleFunctionCall.frag Name 9 "foo(" Name 12 "BaseColor" Name 17 "gl_FragColor" - Decorate 17(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.simpleMat.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.simpleMat.vert.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.simpleMat.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.simpleMat.vert.out index 8557458545..2cad63137f 100755 --- a/deps/glslang-new/Test/baseResults/spv.simpleMat.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.simpleMat.vert.out @@ -2,7 +2,7 @@ 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 +// Generated by (magic number): 80001 // Id's are bound by 39 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.sparseTexture.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.sparseTexture.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.sparseTexture.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.sparseTexture.frag.out index d94f643861..431ef15284 100644 --- a/deps/glslang-new/Test/baseResults/spv.sparseTexture.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.sparseTexture.frag.out @@ -1,11 +1,11 @@ spv.sparseTexture.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 438 Capability Shader - Capability ImageGatherExtended - Capability StorageImageMultisample Capability SampledRect Capability SparseResidency Capability SampledCubeArray @@ -183,14 +183,14 @@ spv.sparseTexture.frag 414(i2DMS): 413(ptr) Variable UniformConstant 422: TypePointer Output 11(fvec4) 423(outColor): 422(ptr) Variable Output - 425: TypeBool + 426: TypeBool 4(main): 2 Function None 3 5: Label 8(resident): 7(ptr) Variable Function 13(texel): 12(ptr) Variable Function 18(itexel): 17(ptr) Variable Function 23(utexel): 22(ptr) Variable Function - 427: 12(ptr) Variable Function + 424: 12(ptr) Variable Function Store 8(resident) 9 Store 13(texel) 15 Store 18(itexel) 19 @@ -566,13 +566,13 @@ spv.sparseTexture.frag 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 + 425: 6(int) Load 8(resident) + 427: 426(bool) ImageSparseTexelsResident 425 SelectionMerge 429 None - BranchConditional 426 428 431 + BranchConditional 427 428 431 428: Label 430: 11(fvec4) Load 13(texel) - Store 427 430 + Store 424 430 Branch 429 431: Label 432: 16(ivec4) Load 18(itexel) @@ -580,10 +580,10 @@ spv.sparseTexture.frag 434: 21(ivec4) Load 23(utexel) 435: 11(fvec4) ConvertUToF 434 436: 11(fvec4) FAdd 433 435 - Store 427 436 + Store 424 436 Branch 429 429: Label - 437: 11(fvec4) Load 427 + 437: 11(fvec4) Load 424 Store 423(outColor) 437 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.sparseTextureClamp.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.sparseTextureClamp.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.sparseTextureClamp.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.sparseTextureClamp.frag.out index f63fd2f5c0..175dc35c8a 100644 --- a/deps/glslang-new/Test/baseResults/spv.sparseTextureClamp.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.sparseTextureClamp.frag.out @@ -1,6 +1,8 @@ spv.sparseTextureClamp.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 360 Capability Shader @@ -145,14 +147,14 @@ spv.sparseTextureClamp.frag 310: 157(ivec2) ConstantComposite 143 143 344: TypePointer Output 11(fvec4) 345(outColor): 344(ptr) Variable Output - 347: TypeBool + 348: 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 + 346: 12(ptr) Variable Function Store 8(resident) 9 Store 13(texel) 15 Store 18(itexel) 19 @@ -442,13 +444,13 @@ spv.sparseTextureClamp.frag 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 + 347: 6(int) Load 8(resident) + 349: 348(bool) ImageSparseTexelsResident 347 SelectionMerge 351 None - BranchConditional 348 350 353 + BranchConditional 349 350 353 350: Label 352: 11(fvec4) Load 13(texel) - Store 349 352 + Store 346 352 Branch 351 353: Label 354: 16(ivec4) Load 18(itexel) @@ -456,10 +458,10 @@ spv.sparseTextureClamp.frag 356: 21(ivec4) Load 23(utexel) 357: 11(fvec4) ConvertUToF 356 358: 11(fvec4) FAdd 355 357 - Store 349 358 + Store 346 358 Branch 351 351: Label - 359: 11(fvec4) Load 349 + 359: 11(fvec4) Load 346 Store 345(outColor) 359 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.specConst.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.specConst.vert.out similarity index 90% rename from deps/glslang-new/Test/baseResults/spv.specConst.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.specConst.vert.out index 70fbd09e2e..5a7de46fee 100755 --- a/deps/glslang-new/Test/baseResults/spv.specConst.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.specConst.vert.out @@ -1,6 +1,8 @@ spv.specConst.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 27 Capability Shader @@ -15,7 +17,6 @@ spv.specConst.vert 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 @@ -23,7 +24,7 @@ spv.specConst.vert 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 18 SpecId 11 Decorate 25(gl_VertexID) BuiltIn VertexId Decorate 26(gl_InstanceID) BuiltIn InstanceId 2: TypeVoid @@ -40,14 +41,14 @@ spv.specConst.vert 15: 14(int) Constant 0 16: 6(float) Constant 1065353216 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18(a): 14(int) SpecConstant 8 + 18: 14(int) SpecConstant 8 22: TypePointer Output 7(fvec4) 24: TypePointer Input 14(int) 25(gl_VertexID): 24(ptr) Variable Input 26(gl_InstanceID): 24(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 19: 6(float) ConvertSToF 18(a) + 19: 6(float) ConvertSToF 18 20: 7(fvec4) CompositeConstruct 19 19 19 19 21: 7(fvec4) FDiv 17 20 23: 22(ptr) AccessChain 13 15 diff --git a/deps/glslang-new/Test/baseResults/spv.specConstant.comp.out b/deps/glslang/glslang-old/Test/baseResults/spv.specConstant.comp.out similarity index 93% rename from deps/glslang-new/Test/baseResults/spv.specConstant.comp.out rename to deps/glslang/glslang-old/Test/baseResults/spv.specConstant.comp.out index b8aa3ddfb2..481ed68c3a 100644 --- a/deps/glslang-new/Test/baseResults/spv.specConstant.comp.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.specConstant.comp.out @@ -1,6 +1,8 @@ spv.specConstant.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 27 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.specConstant.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.specConstant.vert.out similarity index 60% rename from deps/glslang-new/Test/baseResults/spv.specConstant.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.specConstant.vert.out index ab70471e82..dc10e23879 100644 --- a/deps/glslang-new/Test/baseResults/spv.specConstant.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.specConstant.vert.out @@ -1,6 +1,8 @@ spv.specConstant.vert +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 81 Capability Shader @@ -10,44 +12,33 @@ spv.specConstant.vert EntryPoint Vertex 4 "main" 20 22 28 53 Source GLSL 400 Name 4 "main" - Name 9 "arraySize" - Name 14 "foo(vf4[s2468];" + Name 14 "foo(vf4[s1516];" 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 + Decorate 9 SpecId 16 + Decorate 30 SpecId 17 + Decorate 34 SpecId 22 + Decorate 39 SpecId 19 + Decorate 40 SpecId 18 + Decorate 50 SpecId 116 + Decorate 60 SpecId 117 + Decorate 63 SpecId 122 + Decorate 67 SpecId 119 + Decorate 68 SpecId 118 + Decorate 77 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) + 9: 8(int) SpecConstant 5 + 10: TypeArray 7(fvec4) 9 11: TypePointer Function 10 12: TypeFunction 2 11(ptr) 16: TypeFunction 8(int) @@ -60,41 +51,41 @@ spv.specConstant.vert 27: TypePointer Output 8(int) 28(size): 27(ptr) Variable Output 29: TypeBool - 30(spBool): 29(bool) SpecConstantTrue + 30: 29(bool) SpecConstantTrue 33: TypeInt 32 0 - 34(scale): 33(int) SpecConstant 2 + 34: 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) + 39: 38(float) SpecConstant 1413754136 1074340347 + 40: 6(float) SpecConstant 1078523331 + 41: 38(float) SpecConstantOp 115 40 + 50: 8(int) SpecConstant 12 + 51: TypeArray 7(fvec4) 50 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) + 60: 29(bool) SpecConstantTrue + 63: 33(int) SpecConstant 2 + 67: 38(float) SpecConstant 1413754136 1074340347 + 68: 6(float) SpecConstant 1078523331 + 69: 38(float) SpecConstantOp 115 68 75: TypePointer Function 8(int) -77(gl_MaxImageUnits): 8(int) SpecConstant 8 + 77: 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) + Store 28(size) 9 SelectionMerge 32 None - BranchConditional 30(spBool) 31 32 + BranchConditional 30 31 32 31: Label - 35: 6(float) ConvertUToF 34(scale) + 35: 6(float) ConvertUToF 34 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 + 42: 38(float) FDiv 39 41 43: 6(float) FConvert 42 44: 7(fvec4) Load 20(color) 45: 7(fvec4) CompositeConstruct 43 43 43 43 @@ -102,10 +93,10 @@ spv.specConstant.vert Store 20(color) 46 48: 10 Load 22(ucol) Store 47(param) 48 - 49: 2 FunctionCall 14(foo(vf4[s2468];) 47(param) + 49: 2 FunctionCall 14(foo(vf4[s1516];) 47(param) Return FunctionEnd -14(foo(vf4[s2468];): 2 Function None 12 +14(foo(vf4[s1516];): 2 Function None 12 13(p): 11(ptr) FunctionParameter 15: Label 54: 24(ptr) AccessChain 53(dupUcol) 23 @@ -114,18 +105,18 @@ spv.specConstant.vert 57: 7(fvec4) FAdd 56 55 Store 20(color) 57 58: 8(int) Load 28(size) - 59: 8(int) IAdd 58 50(dupArraySize) + 59: 8(int) IAdd 58 50 Store 28(size) 59 SelectionMerge 62 None - BranchConditional 60(spDupBool) 61 62 + BranchConditional 60 61 62 61: Label - 64: 6(float) ConvertUToF 63(dupScale) + 64: 6(float) ConvertUToF 63 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 + 70: 38(float) FDiv 67 69 71: 6(float) FConvert 70 72: 7(fvec4) Load 20(color) 73: 7(fvec4) CompositeConstruct 71 71 71 71 @@ -136,7 +127,7 @@ spv.specConstant.vert 17(builtin_spec_constant(): 8(int) Function None 16 18: Label 76(result): 75(ptr) Variable Function - Store 76(result) 77(gl_MaxImageUnits) + Store 76(result) 77 78: 8(int) Load 76(result) ReturnValue 78 FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.specConstantComposite.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.specConstantComposite.vert.out similarity index 77% rename from deps/glslang-new/Test/baseResults/spv.specConstantComposite.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.specConstantComposite.vert.out index 58d4b6a3fd..f8c556edca 100644 --- a/deps/glslang-new/Test/baseResults/spv.specConstantComposite.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.specConstantComposite.vert.out @@ -1,6 +1,8 @@ spv.specConstantComposite.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 43 Capability Shader @@ -16,33 +18,29 @@ spv.specConstantComposite.vert 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 + Decorate 21 SpecId 203 + Decorate 28 SpecId 200 + Decorate 37 SpecId 201 + Decorate 39 SpecId 202 2: TypeVoid 3: TypeFunction 2 14: TypeInt 32 1 15: TypeFunction 14(int) 20: TypeBool - 21(spec_bool): 20(bool) SpecConstantTrue + 21: 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 + 28: 14(int) SpecConstant 3 32: TypePointer Function 14(int) - 37(spec_float): 24(float) SpecConstant 1078523331 + 37: 24(float) SpecConstant 1078523331 38: TypeFloat 64 - 39(spec_double):38(float64_t) SpecConstant 1413754136 1074340347 - 40: TypeArray 25(fvec4) 28(spec_int) + 39: 38(float) SpecConstant 1413754136 1074340347 + 40: TypeArray 25(fvec4) 28 41: TypePointer Input 40 42(global_vec4_array_with_spec_length): 41(ptr) Variable Input 4(main): 2 Function None 3 @@ -52,9 +50,9 @@ spv.specConstantComposite.vert 6(refer_primary_spec_const(): 2 Function None 3 7: Label SelectionMerge 23 None - BranchConditional 21(spec_bool) 22 23 + BranchConditional 21 22 23 22: Label - 29: 24(float) ConvertSToF 28(spec_int) + 29: 24(float) ConvertSToF 28 30: 25(fvec4) Load 27(color) 31: 25(fvec4) VectorTimesScalar 30 29 Store 27(color) 31 @@ -77,7 +75,7 @@ spv.specConstantComposite.vert 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) + Store 33(len) 28 34: 14(int) Load 33(len) ReturnValue 34 FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.specConstantOperations.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.specConstantOperations.vert.out similarity index 56% rename from deps/glslang-new/Test/baseResults/spv.specConstantOperations.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.specConstantOperations.vert.out index 4bc948b189..e2395c82b8 100644 --- a/deps/glslang-new/Test/baseResults/spv.specConstantOperations.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.specConstantOperations.vert.out @@ -1,7 +1,9 @@ spv.specConstantOperations.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 -// Id's are bound by 162 +// Generated by (magic number): 80001 +// Id's are bound by 135 Capability Shader Capability Float64 @@ -12,97 +14,85 @@ spv.specConstantOperations.vert 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 + Decorate 19 SpecId 201 + Decorate 40 SpecId 200 + Decorate 42 SpecId 202 + Decorate 43 SpecId 203 + Decorate 45 SpecId 204 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 + 19: 6(int) SpecConstant 10 20: 6(int) Constant 2 - 21: 6(int) SpecConstantOp 128 19(sp_int) 20 + 21: 6(int) SpecConstantOp 128 19 20 22: TypeBool - 24: 6(int) SpecConstantOp 128 19(sp_int) 20 + 24: 6(int) SpecConstantOp 128 19 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 + 34: 6(int) SpecConstantOp 128 19 32 39: TypeFloat 32 - 40(sp_float): 39(float) SpecConstant 1078530010 + 40: 39(float) SpecConstant 1078530010 41: TypeInt 32 0 - 42(sp_uint): 41(int) SpecConstant 100 - 43(sp_sint): 6(int) SpecConstant 4294967286 + 42: 41(int) SpecConstant 100 + 43: 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) + 45: 44(float) SpecConstant 2333366019 1074118410 + 46: 39(float) SpecConstantOp 115 45 + 47: 44(float) SpecConstantOp 115 40 48: 41(int) Constant 0 - 49: 22(bool) SpecConstantOp 171 19(sp_int) 48 - 50: 22(bool) SpecConstantOp 171 42(sp_uint) 48 + 49: 22(bool) SpecConstantOp 171 19 48 + 50: 22(bool) SpecConstantOp 171 42 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 + 54: 41(int) SpecConstantOp 128 43 48 + 55: 6(int) SpecConstantOp 128 42 48 + 56: 6(int) SpecConstantOp 126 19 + 57: 6(int) SpecConstantOp 200 19 + 58: 6(int) SpecConstantOp 128 19 20 + 59: 6(int) SpecConstantOp 128 19 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 + 64: 6(int) SpecConstantOp 132 43 20 65: 41(int) Constant 2 - 66: 41(int) SpecConstantOp 132 42(sp_uint) 65 + 66: 41(int) SpecConstantOp 132 42 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 + 71: 6(int) SpecConstantOp 139 43 62 72: 41(int) Constant 4 - 73: 41(int) SpecConstantOp 137 42(sp_uint) 72 - 74: 6(int) SpecConstantOp 132 43(sp_sint) 60 + 73: 41(int) SpecConstantOp 137 42 72 + 74: 6(int) SpecConstantOp 132 43 60 75: 6(int) SpecConstantOp 135 74 67 76: 6(int) Constant 10 - 77: 6(int) SpecConstantOp 195 43(sp_sint) 76 + 77: 6(int) SpecConstantOp 195 43 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 + 79: 41(int) SpecConstantOp 194 42 78 + 80: 6(int) SpecConstantOp 196 43 32 + 81: 41(int) SpecConstantOp 196 42 20 82: 6(int) Constant 256 - 83: 6(int) SpecConstantOp 197 43(sp_sint) 82 + 83: 6(int) SpecConstantOp 197 43 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) + 85: 41(int) SpecConstantOp 198 42 84 + 86: 22(bool) SpecConstantOp 177 19 43 + 87: 22(bool) SpecConstantOp 170 42 42 + 88: 22(bool) SpecConstantOp 173 19 43 89: 6(int) Constant 30 90: TypeVector 6(int) 4 - 91: 90(ivec4) SpecConstantComposite 78 89 19(sp_int) 19(sp_int) + 91: 90(ivec4) SpecConstantComposite 78 89 19 19 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 + 95: 94(ivec4) SpecConstantComposite 42 42 92 93 96: TypeVector 22(bool) 4 97: 94(ivec4) ConstantComposite 48 48 48 48 98: 96(bvec4) SpecConstantOp 171 91 97 @@ -142,33 +132,6 @@ spv.specConstantOperations.vert 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 diff --git a/deps/glslang-new/Test/baseResults/spv.structAssignment.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.structAssignment.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.structAssignment.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.structAssignment.frag.out index ec771cc367..eb796f7c89 100755 --- a/deps/glslang-new/Test/baseResults/spv.structAssignment.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.structAssignment.frag.out @@ -3,7 +3,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 50 Capability Shader @@ -36,7 +36,6 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to 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 diff --git a/deps/glslang-new/Test/baseResults/spv.structDeref.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.structDeref.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.structDeref.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.structDeref.frag.out index a7915b4029..e60159f995 100755 --- a/deps/glslang-new/Test/baseResults/spv.structDeref.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.structDeref.frag.out @@ -1,6 +1,6 @@ spv.structDeref.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 123 Capability Shader @@ -40,7 +40,6 @@ spv.structDeref.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.structure.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.structure.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.structure.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.structure.frag.out index 0592084b90..f7cb2d2a25 100755 --- a/deps/glslang-new/Test/baseResults/spv.structure.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.structure.frag.out @@ -1,6 +1,6 @@ spv.structure.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 60 Capability Shader @@ -24,7 +24,6 @@ spv.structure.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.subpass.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.subpass.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.subpass.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.subpass.frag.out index 044243e21f..c242111388 100644 --- a/deps/glslang-new/Test/baseResults/spv.subpass.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.subpass.frag.out @@ -1,6 +1,8 @@ spv.subpass.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 67 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.switch.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.switch.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.switch.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.switch.frag.out index 47cc5d4c12..86acb6c8ee 100755 --- a/deps/glslang-new/Test/baseResults/spv.switch.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.switch.frag.out @@ -1,10 +1,11 @@ spv.switch.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 +// Generated by (magic number): 80001 // Id's are bound by 269 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.swizzle.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.swizzle.frag.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.swizzle.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.swizzle.frag.out index 2a132d5824..46978f8c60 100755 --- a/deps/glslang-new/Test/baseResults/spv.swizzle.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.swizzle.frag.out @@ -1,6 +1,6 @@ spv.swizzle.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 108 Capability Shader @@ -24,7 +24,6 @@ spv.swizzle.frag Name 81 "c" Name 83 "rep" Name 107 "blend" - Decorate 69(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.swizzleInversion.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.swizzleInversion.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/spv.swizzleInversion.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.swizzleInversion.frag.out index 0aee7ae729..bf0699a3cf 100755 --- a/deps/glslang-new/Test/baseResults/spv.swizzleInversion.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.swizzleInversion.frag.out @@ -1,6 +1,8 @@ spv.swizzleInversion.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): 80007 +// Generated by (magic number): 80001 // Id's are bound by 46 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.test.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.test.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/spv.test.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.test.frag.out index b5fccc32a5..bf0135aebe 100644 --- a/deps/glslang-new/Test/baseResults/spv.test.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.test.frag.out @@ -1,6 +1,8 @@ spv.test.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 55 Capability Shader @@ -23,7 +25,6 @@ spv.test.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.test.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.test.vert.out similarity index 98% rename from deps/glslang-new/Test/baseResults/spv.test.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.test.vert.out index 3303c88b54..623d16ba67 100644 --- a/deps/glslang-new/Test/baseResults/spv.test.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.test.vert.out @@ -2,7 +2,7 @@ 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 +// Generated by (magic number): 80001 // Id's are bound by 24 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.texture.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.texture.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.texture.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.texture.frag.out index e685018f09..467f254589 100755 --- a/deps/glslang-new/Test/baseResults/spv.texture.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.texture.frag.out @@ -4,7 +4,7 @@ WARNING: 0:11: varying deprecated in version 130; may be removed in future relea WARNING: 0:12: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 305 Capability Shader @@ -45,7 +45,6 @@ WARNING: 0:12: varying deprecated in version 130; may be removed in future relea 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 diff --git a/deps/glslang-new/Test/baseResults/spv.texture.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.texture.vert.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.texture.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.texture.vert.out index 0c1b7a14bc..c361549952 100755 --- a/deps/glslang-new/Test/baseResults/spv.texture.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.texture.vert.out @@ -1,6 +1,6 @@ spv.texture.vert // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 150 Capability Shader diff --git a/deps/glslang/glslang-old/Test/baseResults/spv.types.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.types.frag.out new file mode 100755 index 0000000000..9a2d8e35f9 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/spv.types.frag.out @@ -0,0 +1,336 @@ +spv.types.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 260 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 91 93 100 102 109 111 118 120 127 129 136 138 145 147 154 156 160 + 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 22 "i_b2" + Name 35 "b3" + Name 37 "u_b3" + Name 40 "i_b3" + Name 59 "b4" + Name 61 "u_b4" + Name 64 "i_b4" + Name 89 "i" + Name 91 "u_i" + Name 93 "i_i" + Name 98 "i2" + Name 100 "u_i2" + Name 102 "i_i2" + Name 107 "i3" + Name 109 "u_i3" + Name 111 "i_i3" + Name 116 "i4" + Name 118 "u_i4" + Name 120 "i_i4" + Name 125 "f" + Name 127 "u_f" + Name 129 "i_f" + Name 134 "f2" + Name 136 "u_f2" + Name 138 "i_f2" + Name 143 "f3" + Name 145 "u_f3" + Name 147 "i_f3" + Name 152 "f4" + Name 154 "u_f4" + Name 156 "i_f4" + Name 160 "gl_FragColor" + Decorate 91(u_i) Flat + Decorate 93(i_i) Flat + Decorate 100(u_i2) Flat + Decorate 102(i_i2) Flat + Decorate 109(u_i3) Flat + Decorate 111(i_i3) Flat + Decorate 118(u_i4) Flat + Decorate 120(i_i4) Flat + 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 + 22(i_b2): 18(ptr) Variable Private + 33: TypeVector 6(bool) 3 + 34: TypePointer Function 33(bvec3) + 36: TypePointer Private 33(bvec3) + 37(u_b3): 36(ptr) Variable Private + 40(i_b3): 36(ptr) Variable Private + 57: TypeVector 6(bool) 4 + 58: TypePointer Function 57(bvec4) + 60: TypePointer Private 57(bvec4) + 61(u_b4): 60(ptr) Variable Private + 64(i_b4): 60(ptr) Variable Private + 87: TypeInt 32 1 + 88: TypePointer Function 87(int) + 90: TypePointer Input 87(int) + 91(u_i): 90(ptr) Variable Input + 93(i_i): 90(ptr) Variable Input + 96: TypeVector 87(int) 2 + 97: TypePointer Function 96(ivec2) + 99: TypePointer Input 96(ivec2) + 100(u_i2): 99(ptr) Variable Input + 102(i_i2): 99(ptr) Variable Input + 105: TypeVector 87(int) 3 + 106: TypePointer Function 105(ivec3) + 108: TypePointer Input 105(ivec3) + 109(u_i3): 108(ptr) Variable Input + 111(i_i3): 108(ptr) Variable Input + 114: TypeVector 87(int) 4 + 115: TypePointer Function 114(ivec4) + 117: TypePointer Input 114(ivec4) + 118(u_i4): 117(ptr) Variable Input + 120(i_i4): 117(ptr) Variable Input + 123: TypeFloat 32 + 124: TypePointer Function 123(float) + 126: TypePointer Input 123(float) + 127(u_f): 126(ptr) Variable Input + 129(i_f): 126(ptr) Variable Input + 132: TypeVector 123(float) 2 + 133: TypePointer Function 132(fvec2) + 135: TypePointer Input 132(fvec2) + 136(u_f2): 135(ptr) Variable Input + 138(i_f2): 135(ptr) Variable Input + 141: TypeVector 123(float) 3 + 142: TypePointer Function 141(fvec3) + 144: TypePointer Input 141(fvec3) + 145(u_f3): 144(ptr) Variable Input + 147(i_f3): 144(ptr) Variable Input + 150: TypeVector 123(float) 4 + 151: TypePointer Function 150(fvec4) + 153: TypePointer Input 150(fvec4) + 154(u_f4): 153(ptr) Variable Input + 156(i_f4): 153(ptr) Variable Input + 159: TypePointer Output 150(fvec4) +160(gl_FragColor): 159(ptr) Variable Output + 193: TypeInt 32 0 + 194: 193(int) Constant 0 + 198: 193(int) Constant 1 + 208: 193(int) Constant 2 + 221: 193(int) Constant 3 + 257: 123(float) Constant 1065353216 + 258: 150(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 + 35(b3): 34(ptr) Variable Function + 59(b4): 58(ptr) Variable Function + 89(i): 88(ptr) Variable Function + 98(i2): 97(ptr) Variable Function + 107(i3): 106(ptr) Variable Function + 116(i4): 115(ptr) Variable Function + 125(f): 124(ptr) Variable Function + 134(f2): 133(ptr) Variable Function + 143(f3): 142(ptr) Variable Function + 152(f4): 151(ptr) Variable Function + 161: 151(ptr) Variable Function + 11: 6(bool) Load 10(u_b) + 13: 6(bool) Load 12(i_b) + 14: 6(bool) LogicalAnd 11 13 + Store 8(b) 14 + 20: 15(bvec2) Load 19(u_b2) + 21: 6(bool) CompositeExtract 20 0 + 23: 15(bvec2) Load 22(i_b2) + 24: 6(bool) CompositeExtract 23 0 + 25: 6(bool) LogicalAnd 21 24 + 26: 15(bvec2) Load 19(u_b2) + 27: 6(bool) CompositeExtract 26 1 + 28: 6(bool) LogicalAnd 25 27 + 29: 15(bvec2) Load 22(i_b2) + 30: 6(bool) CompositeExtract 29 1 + 31: 6(bool) LogicalAnd 28 30 + 32: 15(bvec2) CompositeConstruct 31 31 + Store 17(b2) 32 + 38: 33(bvec3) Load 37(u_b3) + 39: 6(bool) CompositeExtract 38 0 + 41: 33(bvec3) Load 40(i_b3) + 42: 6(bool) CompositeExtract 41 0 + 43: 6(bool) LogicalAnd 39 42 + 44: 33(bvec3) Load 37(u_b3) + 45: 6(bool) CompositeExtract 44 1 + 46: 6(bool) LogicalAnd 43 45 + 47: 33(bvec3) Load 40(i_b3) + 48: 6(bool) CompositeExtract 47 1 + 49: 6(bool) LogicalAnd 46 48 + 50: 33(bvec3) Load 37(u_b3) + 51: 6(bool) CompositeExtract 50 2 + 52: 6(bool) LogicalAnd 49 51 + 53: 33(bvec3) Load 40(i_b3) + 54: 6(bool) CompositeExtract 53 2 + 55: 6(bool) LogicalAnd 52 54 + 56: 33(bvec3) CompositeConstruct 55 55 55 + Store 35(b3) 56 + 62: 57(bvec4) Load 61(u_b4) + 63: 6(bool) CompositeExtract 62 0 + 65: 57(bvec4) Load 64(i_b4) + 66: 6(bool) CompositeExtract 65 0 + 67: 6(bool) LogicalAnd 63 66 + 68: 57(bvec4) Load 61(u_b4) + 69: 6(bool) CompositeExtract 68 1 + 70: 6(bool) LogicalAnd 67 69 + 71: 57(bvec4) Load 64(i_b4) + 72: 6(bool) CompositeExtract 71 1 + 73: 6(bool) LogicalAnd 70 72 + 74: 57(bvec4) Load 61(u_b4) + 75: 6(bool) CompositeExtract 74 2 + 76: 6(bool) LogicalAnd 73 75 + 77: 57(bvec4) Load 64(i_b4) + 78: 6(bool) CompositeExtract 77 2 + 79: 6(bool) LogicalAnd 76 78 + 80: 57(bvec4) Load 61(u_b4) + 81: 6(bool) CompositeExtract 80 3 + 82: 6(bool) LogicalAnd 79 81 + 83: 57(bvec4) Load 64(i_b4) + 84: 6(bool) CompositeExtract 83 3 + 85: 6(bool) LogicalAnd 82 84 + 86: 57(bvec4) CompositeConstruct 85 85 85 85 + Store 59(b4) 86 + 92: 87(int) Load 91(u_i) + 94: 87(int) Load 93(i_i) + 95: 87(int) IAdd 92 94 + Store 89(i) 95 + 101: 96(ivec2) Load 100(u_i2) + 103: 96(ivec2) Load 102(i_i2) + 104: 96(ivec2) IAdd 101 103 + Store 98(i2) 104 + 110: 105(ivec3) Load 109(u_i3) + 112: 105(ivec3) Load 111(i_i3) + 113: 105(ivec3) IAdd 110 112 + Store 107(i3) 113 + 119: 114(ivec4) Load 118(u_i4) + 121: 114(ivec4) Load 120(i_i4) + 122: 114(ivec4) IAdd 119 121 + Store 116(i4) 122 + 128: 123(float) Load 127(u_f) + 130: 123(float) Load 129(i_f) + 131: 123(float) FAdd 128 130 + Store 125(f) 131 + 137: 132(fvec2) Load 136(u_f2) + 139: 132(fvec2) Load 138(i_f2) + 140: 132(fvec2) FAdd 137 139 + Store 134(f2) 140 + 146: 141(fvec3) Load 145(u_f3) + 148: 141(fvec3) Load 147(i_f3) + 149: 141(fvec3) FAdd 146 148 + Store 143(f3) 149 + 155: 150(fvec4) Load 154(u_f4) + 157: 150(fvec4) Load 156(i_f4) + 158: 150(fvec4) FAdd 155 157 + Store 152(f4) 158 + 162: 6(bool) Load 8(b) + 163: 15(bvec2) Load 17(b2) + 164: 6(bool) CompositeExtract 163 0 + 165: 6(bool) LogicalOr 162 164 + 166: 15(bvec2) Load 17(b2) + 167: 6(bool) CompositeExtract 166 1 + 168: 6(bool) LogicalOr 165 167 + 169: 33(bvec3) Load 35(b3) + 170: 6(bool) CompositeExtract 169 0 + 171: 6(bool) LogicalOr 168 170 + 172: 33(bvec3) Load 35(b3) + 173: 6(bool) CompositeExtract 172 1 + 174: 6(bool) LogicalOr 171 173 + 175: 33(bvec3) Load 35(b3) + 176: 6(bool) CompositeExtract 175 2 + 177: 6(bool) LogicalOr 174 176 + 178: 57(bvec4) Load 59(b4) + 179: 6(bool) CompositeExtract 178 0 + 180: 6(bool) LogicalOr 177 179 + 181: 57(bvec4) Load 59(b4) + 182: 6(bool) CompositeExtract 181 1 + 183: 6(bool) LogicalOr 180 182 + 184: 57(bvec4) Load 59(b4) + 185: 6(bool) CompositeExtract 184 2 + 186: 6(bool) LogicalOr 183 185 + 187: 57(bvec4) Load 59(b4) + 188: 6(bool) CompositeExtract 187 3 + 189: 6(bool) LogicalOr 186 188 + SelectionMerge 191 None + BranchConditional 189 190 256 + 190: Label + 192: 87(int) Load 89(i) + 195: 88(ptr) AccessChain 98(i2) 194 + 196: 87(int) Load 195 + 197: 87(int) IAdd 192 196 + 199: 88(ptr) AccessChain 98(i2) 198 + 200: 87(int) Load 199 + 201: 87(int) IAdd 197 200 + 202: 88(ptr) AccessChain 107(i3) 194 + 203: 87(int) Load 202 + 204: 87(int) IAdd 201 203 + 205: 88(ptr) AccessChain 107(i3) 198 + 206: 87(int) Load 205 + 207: 87(int) IAdd 204 206 + 209: 88(ptr) AccessChain 107(i3) 208 + 210: 87(int) Load 209 + 211: 87(int) IAdd 207 210 + 212: 88(ptr) AccessChain 116(i4) 194 + 213: 87(int) Load 212 + 214: 87(int) IAdd 211 213 + 215: 88(ptr) AccessChain 116(i4) 198 + 216: 87(int) Load 215 + 217: 87(int) IAdd 214 216 + 218: 88(ptr) AccessChain 116(i4) 208 + 219: 87(int) Load 218 + 220: 87(int) IAdd 217 219 + 222: 88(ptr) AccessChain 116(i4) 221 + 223: 87(int) Load 222 + 224: 87(int) IAdd 220 223 + 225: 123(float) ConvertSToF 224 + 226: 123(float) Load 125(f) + 227: 123(float) FAdd 225 226 + 228: 124(ptr) AccessChain 134(f2) 194 + 229: 123(float) Load 228 + 230: 123(float) FAdd 227 229 + 231: 124(ptr) AccessChain 134(f2) 198 + 232: 123(float) Load 231 + 233: 123(float) FAdd 230 232 + 234: 124(ptr) AccessChain 143(f3) 194 + 235: 123(float) Load 234 + 236: 123(float) FAdd 233 235 + 237: 124(ptr) AccessChain 143(f3) 198 + 238: 123(float) Load 237 + 239: 123(float) FAdd 236 238 + 240: 124(ptr) AccessChain 143(f3) 208 + 241: 123(float) Load 240 + 242: 123(float) FAdd 239 241 + 243: 124(ptr) AccessChain 152(f4) 194 + 244: 123(float) Load 243 + 245: 123(float) FAdd 242 244 + 246: 124(ptr) AccessChain 152(f4) 198 + 247: 123(float) Load 246 + 248: 123(float) FAdd 245 247 + 249: 124(ptr) AccessChain 152(f4) 208 + 250: 123(float) Load 249 + 251: 123(float) FAdd 248 250 + 252: 124(ptr) AccessChain 152(f4) 221 + 253: 123(float) Load 252 + 254: 123(float) FAdd 251 253 + 255: 150(fvec4) CompositeConstruct 254 254 254 254 + Store 161 255 + Branch 191 + 256: Label + Store 161 258 + Branch 191 + 191: Label + 259: 150(fvec4) Load 161 + Store 160(gl_FragColor) 259 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.uint.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.uint.frag.out similarity index 99% rename from deps/glslang-new/Test/baseResults/spv.uint.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.uint.frag.out index af0ad85a37..e9ba0ce263 100755 --- a/deps/glslang-new/Test/baseResults/spv.uint.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.uint.frag.out @@ -1,6 +1,8 @@ spv.uint.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 213 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.uniformArray.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.uniformArray.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.uniformArray.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.uniformArray.frag.out index ff5855c106..447ad4fd4e 100644 --- a/deps/glslang-new/Test/baseResults/spv.uniformArray.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.uniformArray.frag.out @@ -1,6 +1,6 @@ spv.uniformArray.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 53 Capability Shader @@ -16,7 +16,6 @@ spv.uniformArray.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.variableArrayIndex.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.variableArrayIndex.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.variableArrayIndex.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.variableArrayIndex.frag.out index e0010dfcde..b4d3fe01a4 100755 --- a/deps/glslang-new/Test/baseResults/spv.variableArrayIndex.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.variableArrayIndex.frag.out @@ -1,6 +1,8 @@ spv.variableArrayIndex.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 93 Capability Shader @@ -36,7 +38,6 @@ spv.variableArrayIndex.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.varyingArray.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.varyingArray.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.varyingArray.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.varyingArray.frag.out index 0acfdd9276..58833ea1b6 100755 --- a/deps/glslang-new/Test/baseResults/spv.varyingArray.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.varyingArray.frag.out @@ -1,6 +1,6 @@ spv.varyingArray.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 61 Capability Shader @@ -18,7 +18,6 @@ spv.varyingArray.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.varyingArrayIndirect.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.varyingArrayIndirect.frag.out similarity index 97% rename from deps/glslang-new/Test/baseResults/spv.varyingArrayIndirect.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.varyingArrayIndirect.frag.out index ffe785914c..9c018406ab 100755 --- a/deps/glslang-new/Test/baseResults/spv.varyingArrayIndirect.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.varyingArrayIndirect.frag.out @@ -1,6 +1,6 @@ spv.varyingArrayIndirect.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 70 Capability Shader @@ -22,7 +22,6 @@ spv.varyingArrayIndirect.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.voidFunction.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.voidFunction.frag.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.voidFunction.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.voidFunction.frag.out index fbaee8784f..44348616e8 100755 --- a/deps/glslang-new/Test/baseResults/spv.voidFunction.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.voidFunction.frag.out @@ -1,6 +1,8 @@ spv.voidFunction.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 43 Capability Shader @@ -18,7 +20,6 @@ spv.voidFunction.frag Name 37 "gl_FragColor" Name 40 "BaseColor" Name 42 "d" - Decorate 37(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.while-continue-break.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.while-continue-break.vert.out similarity index 95% rename from deps/glslang-new/Test/baseResults/spv.while-continue-break.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.while-continue-break.vert.out index d49bca09b1..73dc35ced3 100644 --- a/deps/glslang-new/Test/baseResults/spv.while-continue-break.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.while-continue-break.vert.out @@ -1,6 +1,8 @@ spv.while-continue-break.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 41 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.while-simple.vert.out b/deps/glslang/glslang-old/Test/baseResults/spv.while-simple.vert.out similarity index 92% rename from deps/glslang-new/Test/baseResults/spv.while-simple.vert.out rename to deps/glslang/glslang-old/Test/baseResults/spv.while-simple.vert.out index b507da3ed0..82121dd00c 100755 --- a/deps/glslang-new/Test/baseResults/spv.while-simple.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.while-simple.vert.out @@ -1,6 +1,8 @@ spv.while-simple.vert +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 22 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.whileLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/spv.whileLoop.frag.out similarity index 96% rename from deps/glslang-new/Test/baseResults/spv.whileLoop.frag.out rename to deps/glslang/glslang-old/Test/baseResults/spv.whileLoop.frag.out index e29497235e..ce1e195d0d 100755 --- a/deps/glslang-new/Test/baseResults/spv.whileLoop.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/spv.whileLoop.frag.out @@ -1,6 +1,6 @@ spv.whileLoop.frag // Module Version 10000 -// Generated by (magic number): 80007 +// Generated by (magic number): 80001 // Id's are bound by 35 Capability Shader @@ -15,7 +15,6 @@ spv.whileLoop.frag Name 24 "d" Name 28 "bigColor" Name 33 "gl_FragColor" - Decorate 33(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang-old/Test/baseResults/structAssignment.frag.out b/deps/glslang/glslang-old/Test/baseResults/structAssignment.frag.out new file mode 100644 index 0000000000..75cc44c2b6 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/structDeref.frag.out b/deps/glslang/glslang-old/Test/baseResults/structDeref.frag.out new file mode 100644 index 0000000000..fc9d3778e5 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/structure.frag.out b/deps/glslang/glslang-old/Test/baseResults/structure.frag.out new file mode 100644 index 0000000000..666b140724 --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/switch.frag.out b/deps/glslang/glslang-old/Test/baseResults/switch.frag.out similarity index 51% rename from deps/glslang-new/Test/baseResults/switch.frag.out rename to deps/glslang/glslang-old/Test/baseResults/switch.frag.out index 9649c9bb73..f8b179c091 100644 --- a/deps/glslang-new/Test/baseResults/switch.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/switch.frag.out @@ -23,15 +23,15 @@ 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 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: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 'c' (uniform mediump int) 0:21 body 0:21 Sequence 0:23 case: with expression @@ -41,26 +41,26 @@ ERROR: node is still EOpNull! 0:21 Branch: Break 0:26 switch 0:26 condition -0:26 'c' ( uniform mediump int) +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: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: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 'c' (uniform mediump int) 0:34 body 0:34 Sequence 0:35 default: @@ -70,39 +70,39 @@ ERROR: node is still EOpNull! 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: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: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: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 '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: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: @@ -110,38 +110,38 @@ ERROR: node is still EOpNull! 0:? Sequence 0:52 switch 0:52 condition -0:52 'd' ( uniform mediump int) +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: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: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: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) @@ -153,22 +153,22 @@ ERROR: node is still EOpNull! 0:? Sequence 0:66 Branch: Break 0:67 case: with expression -0:67 'c' ( uniform mediump int) +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 '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: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: @@ -176,52 +176,52 @@ ERROR: node is still EOpNull! 0:? Sequence 0:76 switch 0:76 condition -0:76 'd' ( uniform mediump int) +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: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: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: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 '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: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: @@ -229,7 +229,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:96 switch 0:96 condition -0:96 'd' ( uniform mediump int) +0:96 'd' (uniform mediump int) 0:96 body 0:96 Sequence 0:97 case: with expression @@ -238,30 +238,30 @@ ERROR: node is still EOpNull! 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: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 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: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 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 @@ -269,14 +269,14 @@ ERROR: node is still EOpNull! 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: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 Compare Less Than (temp bool) +0:114 'f' (temp highp float) 0:114 Constant: 0:114 0.000000 0:114 true case is null @@ -290,11 +290,11 @@ ERROR: node is still EOpNull! 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 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:126 'onlyInSwitch' (temp float) 0:128 switch 0:128 condition 0:128 Constant: @@ -306,7 +306,7 @@ ERROR: node is still EOpNull! 0:128 Branch: Break 0:133 switch 0:133 condition -0:133 'c' ( uniform mediump int) +0:133 'c' (uniform mediump int) 0:133 body 0:133 Sequence 0:134 case: with expression @@ -319,7 +319,7 @@ ERROR: node is still EOpNull! 0:139 Constant: 0:139 2 (const int) 0:? Sequence -0:140 'nestedX' ( temp float) +0:140 'nestedX' (temp float) 0:143 Branch: Break 0:144 case: with expression 0:144 Constant: @@ -332,9 +332,9 @@ ERROR: node is still EOpNull! 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: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: @@ -347,11 +347,11 @@ ERROR: node is still EOpNull! 0:? Sequence 0:155 Constant: 0:155 4 (const int) -0:157 'nestedZ' ( temp float) +0:157 'nestedZ' (temp float) 0:? Linker Objects -0:? 'c' ( uniform mediump int) -0:? 'd' ( uniform mediump int) -0:? 'x' ( smooth in highp float) +0:? 'c' (uniform mediump int) +0:? 'd' (uniform mediump int) +0:? 'x' (smooth in highp float) Linked fragment stage: @@ -359,15 +359,15 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:6 Function Definition: main( ( global void) +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: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 'c' (uniform mediump int) 0:21 body 0:21 Sequence 0:23 case: with expression @@ -377,26 +377,26 @@ ERROR: node is still EOpNull! 0:21 Branch: Break 0:26 switch 0:26 condition -0:26 'c' ( uniform mediump int) +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: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: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 'c' (uniform mediump int) 0:34 body 0:34 Sequence 0:35 default: @@ -406,39 +406,39 @@ ERROR: node is still EOpNull! 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: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: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: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 '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: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: @@ -446,38 +446,38 @@ ERROR: node is still EOpNull! 0:? Sequence 0:52 switch 0:52 condition -0:52 'd' ( uniform mediump int) +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: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: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: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) @@ -489,22 +489,22 @@ ERROR: node is still EOpNull! 0:? Sequence 0:66 Branch: Break 0:67 case: with expression -0:67 'c' ( uniform mediump int) +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 '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: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: @@ -512,52 +512,52 @@ ERROR: node is still EOpNull! 0:? Sequence 0:76 switch 0:76 condition -0:76 'd' ( uniform mediump int) +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: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: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: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 '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: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: @@ -565,7 +565,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:96 switch 0:96 condition -0:96 'd' ( uniform mediump int) +0:96 'd' (uniform mediump int) 0:96 body 0:96 Sequence 0:97 case: with expression @@ -574,30 +574,30 @@ ERROR: node is still EOpNull! 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: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 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: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 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 @@ -605,14 +605,14 @@ ERROR: node is still EOpNull! 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: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 Compare Less Than (temp bool) +0:114 'f' (temp highp float) 0:114 Constant: 0:114 0.000000 0:114 true case is null @@ -626,11 +626,11 @@ ERROR: node is still EOpNull! 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 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:126 'onlyInSwitch' (temp float) 0:128 switch 0:128 condition 0:128 Constant: @@ -642,7 +642,7 @@ ERROR: node is still EOpNull! 0:128 Branch: Break 0:133 switch 0:133 condition -0:133 'c' ( uniform mediump int) +0:133 'c' (uniform mediump int) 0:133 body 0:133 Sequence 0:134 case: with expression @@ -655,7 +655,7 @@ ERROR: node is still EOpNull! 0:139 Constant: 0:139 2 (const int) 0:? Sequence -0:140 'nestedX' ( temp float) +0:140 'nestedX' (temp float) 0:143 Branch: Break 0:144 case: with expression 0:144 Constant: @@ -668,9 +668,9 @@ ERROR: node is still EOpNull! 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: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: @@ -683,9 +683,9 @@ ERROR: node is still EOpNull! 0:? Sequence 0:155 Constant: 0:155 4 (const int) -0:157 'nestedZ' ( temp float) +0:157 'nestedZ' (temp float) 0:? Linker Objects -0:? 'c' ( uniform mediump int) -0:? 'd' ( uniform mediump int) -0:? 'x' ( smooth in highp float) +0:? 'c' (uniform mediump int) +0:? 'd' (uniform mediump int) +0:? 'x' (smooth in highp float) diff --git a/deps/glslang/glslang-old/Test/baseResults/swizzle.frag.out b/deps/glslang/glslang-old/Test/baseResults/swizzle.frag.out new file mode 100644 index 0000000000..8e1b759c0b --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/syntaxError.frag.out b/deps/glslang/glslang-old/Test/baseResults/syntaxError.frag.out new file mode 100644 index 0000000000..af0e732353 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/syntaxError.frag.out @@ -0,0 +1,24 @@ +syntaxError.frag +ERROR: 0:9: 'vec5' : undeclared identifier +ERROR: 0:9: '' : syntax error +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-new/Test/baseResults/test.conf b/deps/glslang/glslang-old/Test/baseResults/test.conf similarity index 100% rename from deps/glslang-new/Test/baseResults/test.conf rename to deps/glslang/glslang-old/Test/baseResults/test.conf diff --git a/deps/glslang/glslang-old/Test/baseResults/test.frag.out b/deps/glslang/glslang-old/Test/baseResults/test.frag.out new file mode 100644 index 0000000000..e6b98766f3 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/texture.frag.out b/deps/glslang/glslang-old/Test/baseResults/texture.frag.out new file mode 100644 index 0000000000..5e886095d1 --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/baseResults/tokenLength.vert.out b/deps/glslang/glslang-old/Test/baseResults/tokenLength.vert.out similarity index 78% rename from deps/glslang-new/Test/baseResults/tokenLength.vert.out rename to deps/glslang/glslang-old/Test/baseResults/tokenLength.vert.out index 8c31da9212..11bdd4b591 100644 --- a/deps/glslang-new/Test/baseResults/tokenLength.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/tokenLength.vert.out @@ -11,6 +11,8 @@ 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 +ERROR: 0:36: '' : float literal too long +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 @@ -27,100 +29,100 @@ ERROR: 0:62: 'preprocessor evaluation' : undefined macro in expression not allow 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. +ERROR: 28 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 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 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 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 move second child to first child (temp highp int) +0:13 'OE' (global highp int) 0:13 Constant: -0:13 -1 (const int) +0:13 1073741823 (const int) 0:14 Sequence -0:14 move second child to first child ( temp highp int) -0:14 'HE' ( global highp int) +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 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 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 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:23 12.000000 +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: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 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 move second child to first child (temp highp int) +0:34 'superO' (global highp int) 0:34 Constant: -0:34 -1 (const int) +0:34 1073741823 (const int) 0:35 Sequence -0:35 move second child to first child ( temp highp int) -0:35 'superI' ( global highp int) +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 move second child to first child (temp highp float) +0:36 'superF' (global highp float) 0:36 Constant: -0:36 1.012346 +0:36 inf 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) +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: @@ -129,92 +131,92 @@ 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 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 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 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 move second child to first child (temp highp int) +0:13 'OE' (global highp int) 0:13 Constant: -0:13 -1 (const int) +0:13 1073741823 (const int) 0:14 Sequence -0:14 move second child to first child ( temp highp int) -0:14 'HE' ( global highp int) +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 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 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 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:23 12.000000 +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: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 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 move second child to first child (temp highp int) +0:34 'superO' (global highp int) 0:34 Constant: -0:34 -1 (const int) +0:34 1073741823 (const int) 0:35 Sequence -0:35 move second child to first child ( temp highp int) -0:35 'superI' ( global highp int) +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 move second child to first child (temp highp float) +0:36 'superF' (global highp float) 0:36 Constant: -0:36 1.012346 +0:36 inf 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) +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-old/Test/baseResults/types.frag.out b/deps/glslang/glslang-old/Test/baseResults/types.frag.out new file mode 100644 index 0000000000..475a989c7e --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/uint.frag.out b/deps/glslang/glslang-old/Test/baseResults/uint.frag.out new file mode 100644 index 0000000000..1ee2825416 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/uniformArray.frag.out b/deps/glslang/glslang-old/Test/baseResults/uniformArray.frag.out new file mode 100644 index 0000000000..4e8ace841e --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/variableArrayIndex.frag.out b/deps/glslang/glslang-old/Test/baseResults/variableArrayIndex.frag.out new file mode 100644 index 0000000000..2a63d115b1 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/varyingArray.frag.out b/deps/glslang/glslang-old/Test/baseResults/varyingArray.frag.out new file mode 100644 index 0000000000..1fd59b4667 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/varyingArrayIndirect.frag.out b/deps/glslang/glslang-old/Test/baseResults/varyingArrayIndirect.frag.out new file mode 100644 index 0000000000..7349812947 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/versionsClean.frag.out b/deps/glslang/glslang-old/Test/baseResults/versionsClean.frag.out new file mode 100644 index 0000000000..44f04f6aa0 --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/versionsClean.vert.out b/deps/glslang/glslang-old/Test/baseResults/versionsClean.vert.out new file mode 100644 index 0000000000..c5d05a71a6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/versionsClean.vert.out @@ -0,0 +1,49 @@ +versionsClean.vert +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. + +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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0: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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? '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-old/Test/baseResults/versionsErrors.frag.out b/deps/glslang/glslang-old/Test/baseResults/versionsErrors.frag.out new file mode 100644 index 0000000000..34182d015c --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/versionsErrors.vert.out b/deps/glslang/glslang-old/Test/baseResults/versionsErrors.vert.out new file mode 100644 index 0000000000..0aeaea8cc3 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/versionsErrors.vert.out @@ -0,0 +1,58 @@ +versionsErrors.vert +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0: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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? '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-old/Test/baseResults/voidFunction.frag.out b/deps/glslang/glslang-old/Test/baseResults/voidFunction.frag.out new file mode 100644 index 0000000000..638cfbdd3d --- /dev/null +++ b/deps/glslang/glslang-old/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-old/Test/baseResults/vulkan.ast.vert.out b/deps/glslang/glslang-old/Test/baseResults/vulkan.ast.vert.out new file mode 100755 index 0000000000..f245585a41 --- /dev/null +++ b/deps/glslang/glslang-old/Test/baseResults/vulkan.ast.vert.out @@ -0,0 +1,324 @@ +vulkan.ast.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +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): 80001 +// 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" + Decorate 7 SpecId 200 + Decorate 11 SpecId 201 + Decorate 13 SpecId 202 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: 6(float) SpecConstant 1065353216 + 8: TypeBool + 9: 6(float) Constant 0 + 11: 8(bool) SpecConstantTrue + 12: TypeInt 32 1 + 13: 12(int) SpecConstant 2 + 14: TypeInt 32 0 + 15: 14(int) Constant 0 + 16: 8(bool) SpecConstantOp 171 13 15 + 17: 6(float) Constant 1065353216 + 21: 12(int) Constant 0 + 22: 12(int) Constant 1 + 23: 12(int) SpecConstantOp 169 11 22 21 + 25: 8(bool) SpecConstantOp 166 11 11 + 26: 12(int) SpecConstantOp 132 13 13 + 30: 8(bool) SpecConstantOp 168 11 + 31: 12(int) SpecConstantOp 126 13 + 33: 8(bool) SpecConstantOp 173 13 13 + 35: 8(bool) SpecConstantOp 165 11 11 + 36: 8(bool) SpecConstantOp 171 13 13 + 37: TypeVector 12(int) 2 + 38: 37(ivec2) SpecConstantComposite 13 13 + 39: 37(ivec2) SpecConstantComposite 13 13 + 40: 37(ivec2) SpecConstantComposite 13 13 + 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 9 + 18: 6(float) Select 11 17 9 + 19: 6(float) ConvertSToF 13 + 20: 12(int) ConvertFToS 7 + 24: 6(float) FMul 7 7 + 27: 6(float) ConvertSToF 13 + 28: 6(float) FAdd 7 27 + 29: 6(float) FNegate 7 + 32: 8(bool) FOrdGreaterThan 7 7 + 34: 8(bool) FOrdNotEqual 7 7 + 43: 42 CompositeConstruct 39 40 + 45: 44(fvec2) CompositeConstruct 7 7 + 46: 44(fvec2) CompositeConstruct 7 7 + 47: 44(fvec2) CompositeConstruct 7 7 + 49: 48 CompositeConstruct 46 47 + Return + FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/vulkan.comp.out b/deps/glslang/glslang-old/Test/baseResults/vulkan.comp.out similarity index 61% rename from deps/glslang-new/Test/baseResults/vulkan.comp.out rename to deps/glslang/glslang-old/Test/baseResults/vulkan.comp.out index e56dca48e9..5eb4c5b484 100644 --- a/deps/glslang-new/Test/baseResults/vulkan.comp.out +++ b/deps/glslang/glslang-old/Test/baseResults/vulkan.comp.out @@ -1,4 +1,5 @@ vulkan.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:5: 'local_size' : cannot change previously set size ERROR: 1 compilation errors. No code generated. diff --git a/deps/glslang-new/Test/baseResults/vulkan.frag.out b/deps/glslang/glslang-old/Test/baseResults/vulkan.frag.out similarity index 65% rename from deps/glslang-new/Test/baseResults/vulkan.frag.out rename to deps/glslang/glslang-old/Test/baseResults/vulkan.frag.out index e46345ce95..1df2c3eb53 100644 --- a/deps/glslang-new/Test/baseResults/vulkan.frag.out +++ b/deps/glslang/glslang-old/Test/baseResults/vulkan.frag.out @@ -1,11 +1,5 @@ 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) +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -20,27 +14,22 @@ ERROR: 0:25: 'sampler2DShadow' : sampler-constructor second argument presence of 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:29: '=' : cannot convert from 'const float' to 'global 4-element array of highp sampler3D' 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:47: 'push_constant' : requires an instance name 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:66: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:67: 'subroutine' : not allowed when generating SPIR-V -ERROR: 0:67: 'subroutine' : feature not yet implemented +ERROR: 0:67: 'uniform' : no qualifiers allowed for function return 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 @@ -49,14 +38,9 @@ WARNING: 0:82: '' : all default precisions are highp; use precision statements t 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: ':' : 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: 38 compilation errors. No code generated. ERROR: Linking fragment stage: Only one push_constant block is allowed per stage diff --git a/deps/glslang-new/Test/baseResults/vulkan.vert.out b/deps/glslang/glslang-old/Test/baseResults/vulkan.vert.out similarity index 54% rename from deps/glslang-new/Test/baseResults/vulkan.vert.out rename to deps/glslang/glslang-old/Test/baseResults/vulkan.vert.out index 19fdade554..7111a2dc2b 100644 --- a/deps/glslang-new/Test/baseResults/vulkan.vert.out +++ b/deps/glslang/glslang-old/Test/baseResults/vulkan.vert.out @@ -1,20 +1,13 @@ vulkan.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -22,7 +15,7 @@ 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: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 @@ -30,14 +23,7 @@ ERROR: 0:32: 'initializer' : can't use with types containing arrays sized with a 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. +ERROR: 23 compilation errors. No code generated. SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang-old/Test/baseResults/whileLoop.frag.out b/deps/glslang/glslang-old/Test/baseResults/whileLoop.frag.out new file mode 100644 index 0000000000..ad30b361f1 --- /dev/null +++ b/deps/glslang/glslang-old/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-new/Test/bump b/deps/glslang/glslang-old/Test/bump similarity index 100% rename from deps/glslang-new/Test/bump rename to deps/glslang/glslang-old/Test/bump diff --git a/deps/glslang-new/Test/comment.frag b/deps/glslang/glslang-old/Test/comment.frag similarity index 100% rename from deps/glslang-new/Test/comment.frag rename to deps/glslang/glslang-old/Test/comment.frag diff --git a/deps/glslang-new/Test/conditionalDiscard.frag b/deps/glslang/glslang-old/Test/conditionalDiscard.frag similarity index 100% rename from deps/glslang-new/Test/conditionalDiscard.frag rename to deps/glslang/glslang-old/Test/conditionalDiscard.frag diff --git a/deps/glslang-new/Test/constErrors.frag b/deps/glslang/glslang-old/Test/constErrors.frag similarity index 100% rename from deps/glslang-new/Test/constErrors.frag rename to deps/glslang/glslang-old/Test/constErrors.frag diff --git a/deps/glslang-new/Test/constFold.frag b/deps/glslang/glslang-old/Test/constFold.frag similarity index 100% rename from deps/glslang-new/Test/constFold.frag rename to deps/glslang/glslang-old/Test/constFold.frag diff --git a/deps/glslang-new/Test/conversion.frag b/deps/glslang/glslang-old/Test/conversion.frag similarity index 100% rename from deps/glslang-new/Test/conversion.frag rename to deps/glslang/glslang-old/Test/conversion.frag diff --git a/deps/glslang-new/Test/cppBad.vert b/deps/glslang/glslang-old/Test/cppBad.vert similarity index 64% rename from deps/glslang-new/Test/cppBad.vert rename to deps/glslang/glslang-old/Test/cppBad.vert index 0044c44fce..49600f9167 100644 --- a/deps/glslang-new/Test/cppBad.vert +++ b/deps/glslang/glslang-old/Test/cppBad.vert @@ -1,5 +1,5 @@ #define m#0# #if m -#endif + #define n() int n" \ No newline at end of file diff --git a/deps/glslang-new/Test/cppComplexExpr.vert b/deps/glslang/glslang-old/Test/cppComplexExpr.vert similarity index 100% rename from deps/glslang-new/Test/cppComplexExpr.vert rename to deps/glslang/glslang-old/Test/cppComplexExpr.vert diff --git a/deps/glslang-new/Test/cppIndent.vert b/deps/glslang/glslang-old/Test/cppIndent.vert similarity index 100% rename from deps/glslang-new/Test/cppIndent.vert rename to deps/glslang/glslang-old/Test/cppIndent.vert diff --git a/deps/glslang-new/Test/cppNest.vert b/deps/glslang/glslang-old/Test/cppNest.vert similarity index 100% rename from deps/glslang-new/Test/cppNest.vert rename to deps/glslang/glslang-old/Test/cppNest.vert diff --git a/deps/glslang-new/Test/cppSimple.vert b/deps/glslang/glslang-old/Test/cppSimple.vert similarity index 96% rename from deps/glslang-new/Test/cppSimple.vert rename to deps/glslang/glslang-old/Test/cppSimple.vert index fdd14221b6..198203a69d 100644 --- a/deps/glslang-new/Test/cppSimple.vert +++ b/deps/glslang/glslang-old/Test/cppSimple.vert @@ -337,16 +337,6 @@ int aoeua = FOOOM; #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 diff --git a/deps/glslang-new/Test/dataOut.frag b/deps/glslang/glslang-old/Test/dataOut.frag similarity index 100% rename from deps/glslang-new/Test/dataOut.frag rename to deps/glslang/glslang-old/Test/dataOut.frag diff --git a/deps/glslang-new/Test/dataOutIndirect.frag b/deps/glslang/glslang-old/Test/dataOutIndirect.frag similarity index 100% rename from deps/glslang-new/Test/dataOutIndirect.frag rename to deps/glslang/glslang-old/Test/dataOutIndirect.frag diff --git a/deps/glslang-new/Test/dce.frag b/deps/glslang/glslang-old/Test/dce.frag similarity index 100% rename from deps/glslang-new/Test/dce.frag rename to deps/glslang/glslang-old/Test/dce.frag diff --git a/deps/glslang-new/Test/decls.frag b/deps/glslang/glslang-old/Test/decls.frag similarity index 100% rename from deps/glslang-new/Test/decls.frag rename to deps/glslang/glslang-old/Test/decls.frag diff --git a/deps/glslang-new/Test/deepRvalue.frag b/deps/glslang/glslang-old/Test/deepRvalue.frag similarity index 100% rename from deps/glslang-new/Test/deepRvalue.frag rename to deps/glslang/glslang-old/Test/deepRvalue.frag diff --git a/deps/glslang-new/Test/depthOut.frag b/deps/glslang/glslang-old/Test/depthOut.frag similarity index 100% rename from deps/glslang-new/Test/depthOut.frag rename to deps/glslang/glslang-old/Test/depthOut.frag diff --git a/deps/glslang-new/Test/discard-dce.frag b/deps/glslang/glslang-old/Test/discard-dce.frag similarity index 100% rename from deps/glslang-new/Test/discard-dce.frag rename to deps/glslang/glslang-old/Test/discard-dce.frag diff --git a/deps/glslang-new/Test/doWhileLoop.frag b/deps/glslang/glslang-old/Test/doWhileLoop.frag similarity index 100% rename from deps/glslang-new/Test/doWhileLoop.frag rename to deps/glslang/glslang-old/Test/doWhileLoop.frag diff --git a/deps/glslang-new/Test/earlyReturnDiscard.frag b/deps/glslang/glslang-old/Test/earlyReturnDiscard.frag similarity index 100% rename from deps/glslang-new/Test/earlyReturnDiscard.frag rename to deps/glslang/glslang-old/Test/earlyReturnDiscard.frag diff --git a/deps/glslang-new/Test/empty.frag b/deps/glslang/glslang-old/Test/empty.frag similarity index 100% rename from deps/glslang-new/Test/empty.frag rename to deps/glslang/glslang-old/Test/empty.frag diff --git a/deps/glslang-new/Test/empty2.frag b/deps/glslang/glslang-old/Test/empty2.frag similarity index 100% rename from deps/glslang-new/Test/empty2.frag rename to deps/glslang/glslang-old/Test/empty2.frag diff --git a/deps/glslang-new/Test/empty3.frag b/deps/glslang/glslang-old/Test/empty3.frag similarity index 100% rename from deps/glslang-new/Test/empty3.frag rename to deps/glslang/glslang-old/Test/empty3.frag diff --git a/deps/glslang-new/Test/errors.frag b/deps/glslang/glslang-old/Test/errors.frag similarity index 100% rename from deps/glslang-new/Test/errors.frag rename to deps/glslang/glslang-old/Test/errors.frag diff --git a/deps/glslang-new/Test/es-link1.frag b/deps/glslang/glslang-old/Test/es-link1.frag similarity index 100% rename from deps/glslang-new/Test/es-link1.frag rename to deps/glslang/glslang-old/Test/es-link1.frag diff --git a/deps/glslang-new/Test/es-link2.frag b/deps/glslang/glslang-old/Test/es-link2.frag similarity index 100% rename from deps/glslang-new/Test/es-link2.frag rename to deps/glslang/glslang-old/Test/es-link2.frag diff --git a/deps/glslang-new/Test/flowControl.frag b/deps/glslang/glslang-old/Test/flowControl.frag similarity index 100% rename from deps/glslang-new/Test/flowControl.frag rename to deps/glslang/glslang-old/Test/flowControl.frag diff --git a/deps/glslang-new/Test/forLoop.frag b/deps/glslang/glslang-old/Test/forLoop.frag similarity index 100% rename from deps/glslang-new/Test/forLoop.frag rename to deps/glslang/glslang-old/Test/forLoop.frag diff --git a/deps/glslang-new/Test/forwardRef.frag b/deps/glslang/glslang-old/Test/forwardRef.frag similarity index 100% rename from deps/glslang-new/Test/forwardRef.frag rename to deps/glslang/glslang-old/Test/forwardRef.frag diff --git a/deps/glslang-new/Test/functionCall.frag b/deps/glslang/glslang-old/Test/functionCall.frag similarity index 100% rename from deps/glslang-new/Test/functionCall.frag rename to deps/glslang/glslang-old/Test/functionCall.frag diff --git a/deps/glslang-new/Test/functionSemantics.frag b/deps/glslang/glslang-old/Test/functionSemantics.frag similarity index 100% rename from deps/glslang-new/Test/functionSemantics.frag rename to deps/glslang/glslang-old/Test/functionSemantics.frag diff --git a/deps/glslang-new/Test/glslangValidator b/deps/glslang/glslang-old/Test/glslangValidator similarity index 100% rename from deps/glslang-new/Test/glslangValidator rename to deps/glslang/glslang-old/Test/glslangValidator diff --git a/deps/glslang-new/Test/glspv.esversion.vert b/deps/glslang/glslang-old/Test/glspv.esversion.vert similarity index 100% rename from deps/glslang-new/Test/glspv.esversion.vert rename to deps/glslang/glslang-old/Test/glspv.esversion.vert diff --git a/deps/glslang/glslang-old/Test/glspv.frag b/deps/glslang/glslang-old/Test/glspv.frag new file mode 100644 index 0000000000..cea8e135b2 --- /dev/null +++ b/deps/glslang/glslang-old/Test/glspv.frag @@ -0,0 +1,14 @@ +#version 330 + +#ifdef GL_SPIRV +#error GL_SPIRV is set ( correct, not an error ) +#if GL_SPIRV == 100 +#error GL_SPIR is 100 +#endif +#endif + +void main() +{ +} + +layout(input_attachment_index = 1) uniform subpassInput sub; // ERROR, no inputs diff --git a/deps/glslang-new/Test/glspv.version.frag b/deps/glslang/glslang-old/Test/glspv.version.frag similarity index 100% rename from deps/glslang-new/Test/glspv.version.frag rename to deps/glslang/glslang-old/Test/glspv.version.frag diff --git a/deps/glslang-new/Test/glspv.version.vert b/deps/glslang/glslang-old/Test/glspv.version.vert similarity index 100% rename from deps/glslang-new/Test/glspv.version.vert rename to deps/glslang/glslang-old/Test/glspv.version.vert diff --git a/deps/glslang-new/Test/glspv.vert b/deps/glslang/glslang-old/Test/glspv.vert similarity index 87% rename from deps/glslang-new/Test/glspv.vert rename to deps/glslang/glslang-old/Test/glspv.vert index b44814653a..d2724ca283 100644 --- a/deps/glslang-new/Test/glspv.vert +++ b/deps/glslang/glslang-old/Test/glspv.vert @@ -5,8 +5,8 @@ layout(push_constant) uniform Material { int a; } mat; // ERROR, can' 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 +layout(shared) uniform Bt3 { int a; } bt3; // ERROR, no shared +layout(packed) uniform Bt4 { int a; } bt4; // ERROR, no shared void main() { diff --git a/deps/glslang-new/Test/hlsl.amend.frag b/deps/glslang/glslang-old/Test/hlsl.amend.frag similarity index 82% rename from deps/glslang-new/Test/hlsl.amend.frag rename to deps/glslang/glslang-old/Test/hlsl.amend.frag index 7c182739cd..c9fd69bd3e 100755 --- a/deps/glslang-new/Test/hlsl.amend.frag +++ b/deps/glslang/glslang-old/Test/hlsl.amend.frag @@ -1,6 +1,6 @@ float4 a; float b; -static float4 m = a * b; + void f1() { a * b; diff --git a/deps/glslang-new/Test/hlsl.array.flatten.frag b/deps/glslang/glslang-old/Test/hlsl.array.flatten.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.array.flatten.frag rename to deps/glslang/glslang-old/Test/hlsl.array.flatten.frag diff --git a/deps/glslang/glslang-old/Test/hlsl.array.frag b/deps/glslang/glslang-old/Test/hlsl.array.frag new file mode 100644 index 0000000000..1abba89fce --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.array.frag @@ -0,0 +1,11 @@ +float4 a[4]; + +struct { + float4 m[7]; +} s[11]; + +float4 PixelShaderFunction(int i, float4 input[3]) : COLOR0 +{ + float4 b[10]; + return a[1] + a[i] + input[2] + input[i] + b[5] + b[i] + s[i].m[i]; +} \ No newline at end of file diff --git a/deps/glslang-new/Test/hlsl.array.implicit-size.frag b/deps/glslang/glslang-old/Test/hlsl.array.implicit-size.frag similarity index 98% rename from deps/glslang-new/Test/hlsl.array.implicit-size.frag rename to deps/glslang/glslang-old/Test/hlsl.array.implicit-size.frag index e7a54f4662..78a9283daa 100644 --- a/deps/glslang-new/Test/hlsl.array.implicit-size.frag +++ b/deps/glslang/glslang-old/Test/hlsl.array.implicit-size.frag @@ -26,7 +26,6 @@ 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-new/Test/hlsl.array.multidim.frag b/deps/glslang/glslang-old/Test/hlsl.array.multidim.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.array.multidim.frag rename to deps/glslang/glslang-old/Test/hlsl.array.multidim.frag diff --git a/deps/glslang-new/Test/hlsl.assoc.frag b/deps/glslang/glslang-old/Test/hlsl.assoc.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.assoc.frag rename to deps/glslang/glslang-old/Test/hlsl.assoc.frag diff --git a/deps/glslang-new/Test/hlsl.attribute.expression.comp b/deps/glslang/glslang-old/Test/hlsl.attribute.expression.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.attribute.expression.comp rename to deps/glslang/glslang-old/Test/hlsl.attribute.expression.comp diff --git a/deps/glslang-new/Test/hlsl.attribute.frag b/deps/glslang/glslang-old/Test/hlsl.attribute.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.attribute.frag rename to deps/glslang/glslang-old/Test/hlsl.attribute.frag diff --git a/deps/glslang/glslang-old/Test/hlsl.basic.comp b/deps/glslang/glslang-old/Test/hlsl.basic.comp new file mode 100644 index 0000000000..8a65a59616 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.basic.comp @@ -0,0 +1,6 @@ +groupshared float4 a[100]; + +void main(int dti : SV_DispatchThreadID) +{ + dti; +} diff --git a/deps/glslang-new/Test/hlsl.basic.geom b/deps/glslang/glslang-old/Test/hlsl.basic.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.basic.geom rename to deps/glslang/glslang-old/Test/hlsl.basic.geom diff --git a/deps/glslang/glslang-old/Test/hlsl.buffer.frag b/deps/glslang/glslang-old/Test/hlsl.buffer.frag new file mode 100644 index 0000000000..b93dcd3124 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.buffer.frag @@ -0,0 +1,32 @@ +cbuffer { + float4 v1; +}; + +tbuffer { + float4 v2; +}; + +cbuffer cbufName : register(b2, space10) { + float4 v3; + int i3 : packoffset(c1.y); +}; + +tbuffer tbufName : register(b8) { + 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; + float3x4 m1; + row_major float3x4 m2; + column_major float3x4 m3; + float3x4 m4; +}; + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + return input + v1 + v2 + v3 + v4; +} diff --git a/deps/glslang-new/Test/hlsl.calculatelod.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.calculatelod.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.calculatelod.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.calculatelod.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.calculatelodunclamped.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.calculatelodunclamped.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.calculatelodunclamped.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.calculatelodunclamped.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.cast.frag b/deps/glslang/glslang-old/Test/hlsl.cast.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.cast.frag rename to deps/glslang/glslang-old/Test/hlsl.cast.frag diff --git a/deps/glslang-new/Test/hlsl.comparison.vec.frag b/deps/glslang/glslang-old/Test/hlsl.comparison.vec.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.comparison.vec.frag rename to deps/glslang/glslang-old/Test/hlsl.comparison.vec.frag diff --git a/deps/glslang/glslang-old/Test/hlsl.conditional.frag b/deps/glslang/glslang-old/Test/hlsl.conditional.frag new file mode 100644 index 0000000000..128c5931a6 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.conditional.frag @@ -0,0 +1,16 @@ +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; +} diff --git a/deps/glslang-new/Test/hlsl.constructexpr.frag b/deps/glslang/glslang-old/Test/hlsl.constructexpr.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.constructexpr.frag rename to deps/glslang/glslang-old/Test/hlsl.constructexpr.frag diff --git a/deps/glslang-new/Test/hlsl.deadFunctionMissingBody.vert b/deps/glslang/glslang-old/Test/hlsl.deadFunctionMissingBody.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.deadFunctionMissingBody.vert rename to deps/glslang/glslang-old/Test/hlsl.deadFunctionMissingBody.vert diff --git a/deps/glslang-new/Test/hlsl.depthGreater.frag b/deps/glslang/glslang-old/Test/hlsl.depthGreater.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.depthGreater.frag rename to deps/glslang/glslang-old/Test/hlsl.depthGreater.frag diff --git a/deps/glslang-new/Test/hlsl.depthLess.frag b/deps/glslang/glslang-old/Test/hlsl.depthLess.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.depthLess.frag rename to deps/glslang/glslang-old/Test/hlsl.depthLess.frag diff --git a/deps/glslang-new/Test/hlsl.discard.frag b/deps/glslang/glslang-old/Test/hlsl.discard.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.discard.frag rename to deps/glslang/glslang-old/Test/hlsl.discard.frag diff --git a/deps/glslang/glslang-old/Test/hlsl.doLoop.frag b/deps/glslang/glslang-old/Test/hlsl.doLoop.frag new file mode 100644 index 0000000000..251a8c1206 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.doLoop.frag @@ -0,0 +1,6 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + [unroll] do {} while (false); + [unroll] do {;} while (false); + do { return input; } while (all(input == input)); +} diff --git a/deps/glslang-new/Test/hlsl.entry-in.frag b/deps/glslang/glslang-old/Test/hlsl.entry-in.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.entry-in.frag rename to deps/glslang/glslang-old/Test/hlsl.entry-in.frag diff --git a/deps/glslang-new/Test/hlsl.entry-out.frag b/deps/glslang/glslang-old/Test/hlsl.entry-out.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.entry-out.frag rename to deps/glslang/glslang-old/Test/hlsl.entry-out.frag diff --git a/deps/glslang-new/Test/hlsl.entry.rename.frag b/deps/glslang/glslang-old/Test/hlsl.entry.rename.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.entry.rename.frag rename to deps/glslang/glslang-old/Test/hlsl.entry.rename.frag diff --git a/deps/glslang-new/Test/hlsl.flatten.return.frag b/deps/glslang/glslang-old/Test/hlsl.flatten.return.frag similarity index 81% rename from deps/glslang-new/Test/hlsl.flatten.return.frag rename to deps/glslang/glslang-old/Test/hlsl.flatten.return.frag index 4aa3f50192..c633e67988 100644 --- a/deps/glslang-new/Test/hlsl.flatten.return.frag +++ b/deps/glslang/glslang-old/Test/hlsl.flatten.return.frag @@ -9,7 +9,7 @@ struct PS_OUTPUT PS_OUTPUT Func1() { - return PS_OUTPUT(float4(1,1,1,1), 2, 3, 4); + return PS_OUTPUT(float4(1), 2, 3, 4); } PS_OUTPUT main() diff --git a/deps/glslang-new/Test/hlsl.float1.frag b/deps/glslang/glslang-old/Test/hlsl.float1.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.float1.frag rename to deps/glslang/glslang-old/Test/hlsl.float1.frag diff --git a/deps/glslang-new/Test/hlsl.float4.frag b/deps/glslang/glslang-old/Test/hlsl.float4.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.float4.frag rename to deps/glslang/glslang-old/Test/hlsl.float4.frag diff --git a/deps/glslang/glslang-old/Test/hlsl.forLoop.frag b/deps/glslang/glslang-old/Test/hlsl.forLoop.frag new file mode 100644 index 0000000000..937899670d --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.forLoop.frag @@ -0,0 +1,13 @@ +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; +} diff --git a/deps/glslang-new/Test/hlsl.frag b/deps/glslang/glslang-old/Test/hlsl.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.frag rename to deps/glslang/glslang-old/Test/hlsl.frag diff --git a/deps/glslang-new/Test/hlsl.gather.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gather.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gather.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gather.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gather.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gather.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gather.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gather.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gather.basic.dx10.vert b/deps/glslang/glslang-old/Test/hlsl.gather.basic.dx10.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.gather.basic.dx10.vert rename to deps/glslang/glslang-old/Test/hlsl.gather.basic.dx10.vert diff --git a/deps/glslang-new/Test/hlsl.gather.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gather.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gather.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gather.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gather.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gather.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gather.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gather.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gatherRGBA.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gatherRGBA.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gatherRGBA.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gatherRGBA.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gatherRGBA.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gatherRGBA.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gatherRGBA.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gatherRGBA.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gatherRGBA.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gatherRGBA.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gatherRGBA.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gatherRGBA.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gatherRGBA.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gatherRGBA.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.gatherRGBA.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gatherRGBA.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.gathercmpRGBA.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.array.dx10.frag similarity index 92% rename from deps/glslang-new/Test/hlsl.gathercmpRGBA.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.array.dx10.frag index b6310acb64..4ed7f4b4cd 100644 --- a/deps/glslang-new/Test/hlsl.gathercmpRGBA.array.dx10.frag +++ b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.array.dx10.frag @@ -29,10 +29,6 @@ PS_OUTPUT main() // 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); diff --git a/deps/glslang-new/Test/hlsl.gathercmpRGBA.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.basic.dx10.frag similarity index 86% rename from deps/glslang-new/Test/hlsl.gathercmpRGBA.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.basic.dx10.frag index 94ef576dd0..9dc163150a 100644 --- a/deps/glslang-new/Test/hlsl.gathercmpRGBA.basic.dx10.frag +++ b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.basic.dx10.frag @@ -51,10 +51,6 @@ PS_OUTPUT main() 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); @@ -73,10 +69,6 @@ PS_OUTPUT main() 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; diff --git a/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.offset.dx10.frag new file mode 100644 index 0000000000..3a6fbb7460 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.offset.dx10.frag @@ -0,0 +1,115 @@ +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; + +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 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); + int4 txval011 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); + uint4 txval021 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); + + float4 txval004 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval01s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval02s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); + + // float4 txval004s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); + int4 txval111 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); + uint4 txval121 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); + + float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval11s = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval12s = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); + + // float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); + int4 txval211 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); + uint4 txval221 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); + + float4 txval204 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval21s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval22s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); + + float4 txval301 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); + int4 txval311 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); + uint4 txval321 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); + + float4 txval304 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval31s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval32s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang-new/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag similarity index 95% rename from deps/glslang-new/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag index 7f381bb1e7..11131bcb7b 100644 --- a/deps/glslang-new/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag +++ b/deps/glslang/glslang-old/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag @@ -36,10 +36,6 @@ PS_OUTPUT main() // 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); diff --git a/deps/glslang-new/Test/hlsl.getdimensions.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.getdimensions.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.getdimensions.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.getdimensions.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.getdimensions.dx10.vert b/deps/glslang/glslang-old/Test/hlsl.getdimensions.dx10.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.getdimensions.dx10.vert rename to deps/glslang/glslang-old/Test/hlsl.getdimensions.dx10.vert diff --git a/deps/glslang-new/Test/hlsl.getdimensions.rw.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.getdimensions.rw.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.getdimensions.rw.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.getdimensions.rw.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.getsampleposition.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.getsampleposition.dx10.frag similarity index 66% rename from deps/glslang-new/Test/hlsl.getsampleposition.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.getsampleposition.dx10.frag index a1182fb6b0..a7a93b3784 100644 --- a/deps/glslang-new/Test/hlsl.getsampleposition.dx10.frag +++ b/deps/glslang/glslang-old/Test/hlsl.getsampleposition.dx10.frag @@ -9,12 +9,12 @@ struct PS_OUTPUT float Depth : SV_Depth; }; -PS_OUTPUT main(int sample : SAMPLE) +PS_OUTPUT main() { PS_OUTPUT psout; - float2 r00 = g_tTex2dmsf4.GetSamplePosition(sample); - float2 r01 = g_tTex2dmsf4a.GetSamplePosition(sample); + float2 r00 = g_tTex2dmsf4.GetSamplePosition(1); + float2 r01 = g_tTex2dmsf4a.GetSamplePosition(2); psout.Color = 1.0; psout.Depth = 1.0; diff --git a/deps/glslang-new/Test/hlsl.identifier.sample.frag b/deps/glslang/glslang-old/Test/hlsl.identifier.sample.frag similarity index 77% rename from deps/glslang-new/Test/hlsl.identifier.sample.frag rename to deps/glslang/glslang-old/Test/hlsl.identifier.sample.frag index d3f824272f..3281a9ac66 100644 --- a/deps/glslang-new/Test/hlsl.identifier.sample.frag +++ b/deps/glslang/glslang-old/Test/hlsl.identifier.sample.frag @@ -12,7 +12,7 @@ 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); + int sample = 3; - return sample.rgba; // 'sample' can participate in an expression. + return float4(0,0,0,0); } diff --git a/deps/glslang-new/Test/hlsl.if.frag b/deps/glslang/glslang-old/Test/hlsl.if.frag similarity index 92% rename from deps/glslang-new/Test/hlsl.if.frag rename to deps/glslang/glslang-old/Test/hlsl.if.frag index b62eda1518..ba659e6d15 100644 --- a/deps/glslang-new/Test/hlsl.if.frag +++ b/deps/glslang/glslang-old/Test/hlsl.if.frag @@ -30,6 +30,4 @@ float4 PixelShaderFunction(float4 input) : COLOR0 if (float ii = input.z) ++ii; ++ii; - if (float(ii) == 1.0) - ++ii; } diff --git a/deps/glslang-new/Test/hlsl.init.frag b/deps/glslang/glslang-old/Test/hlsl.init.frag similarity index 92% rename from deps/glslang-new/Test/hlsl.init.frag rename to deps/glslang/glslang-old/Test/hlsl.init.frag index 8caf3c7d94..a3f6f0e79d 100644 --- a/deps/glslang-new/Test/hlsl.init.frag +++ b/deps/glslang/glslang-old/Test/hlsl.init.frag @@ -34,8 +34,3 @@ float4 ShaderFunction(float4 input) : COLOR0 return input * a1; } - -cbuffer Constants -{ - float a = 1.0f, b, c = 2.0f; -}; diff --git a/deps/glslang/glslang-old/Test/hlsl.init2.frag b/deps/glslang/glslang-old/Test/hlsl.init2.frag new file mode 100644 index 0000000000..789f1a0655 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.init2.frag @@ -0,0 +1,32 @@ + +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}, }; +} + +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-new/Test/hlsl.inoutquals.frag b/deps/glslang/glslang-old/Test/hlsl.inoutquals.frag similarity index 76% rename from deps/glslang-new/Test/hlsl.inoutquals.frag rename to deps/glslang/glslang-old/Test/hlsl.inoutquals.frag index 6a124f8dd0..3234688268 100644 --- a/deps/glslang-new/Test/hlsl.inoutquals.frag +++ b/deps/glslang/glslang-old/Test/hlsl.inoutquals.frag @@ -4,12 +4,11 @@ struct PS_OUTPUT float Depth : SV_Depth; }; -inline void MyFunc(in float x, out float y, inout float z, in out float w) +void MyFunc(in float x, out float y, inout float z) { 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) @@ -17,7 +16,7 @@ PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : PS_OUTPUT psout; float x = 7, y, z = 3; - MyFunc(x, y, z, inpos.w); + MyFunc(x, y, z); psout.Color = float4(x, y, z, 1); psout.Depth = inpos.w; diff --git a/deps/glslang-new/Test/hlsl.intrinsics.barriers.comp b/deps/glslang/glslang-old/Test/hlsl.intrinsics.barriers.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.barriers.comp rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.barriers.comp diff --git a/deps/glslang-new/Test/hlsl.intrinsics.comp b/deps/glslang/glslang-old/Test/hlsl.intrinsics.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.comp rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.comp diff --git a/deps/glslang-new/Test/hlsl.intrinsics.double.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.double.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.double.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.double.frag diff --git a/deps/glslang-new/Test/hlsl.intrinsics.evalfns.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.evalfns.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.evalfns.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.evalfns.frag diff --git a/deps/glslang/glslang-old/Test/hlsl.intrinsics.f1632.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.f1632.frag new file mode 100644 index 0000000000..91ff33eb7d --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.intrinsics.f1632.frag @@ -0,0 +1,34 @@ +float PixelShaderFunctionS(float inF0) +{ + f32tof16(inF0); + + return 0.0; +} + +float1 PixelShaderFunction1(float1 inF0) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 PixelShaderFunction2(float2 inF0) +{ + f32tof16(inF0); + + return float2(1,2); +} + +float3 PixelShaderFunction3(float3 inF0) +{ + f32tof16(inF0); + + return float3(1,2,3); +} + +float4 PixelShaderFunction(float4 inF0) +{ + f32tof16(inF0); + + return float4(1,2,3,4); +} + diff --git a/deps/glslang-new/Test/hlsl.intrinsics.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.frag similarity index 98% rename from deps/glslang-new/Test/hlsl.intrinsics.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.frag index 41b5f54cbd..15db6376ca 100644 --- a/deps/glslang-new/Test/hlsl.intrinsics.frag +++ b/deps/glslang/glslang-old/Test/hlsl.intrinsics.frag @@ -13,7 +13,7 @@ groupshared uint4 gs_ua4; groupshared uint4 gs_ub4; groupshared uint4 gs_uc4; -float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int inU1) +float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { uint out_u1; @@ -23,7 +23,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int in bool r003 = any(inF0); float r004 = asin(inF0); int r005 = asint(inF0); - uint r006 = asuint(inU1); + uint r006 = asuint(inF0); float r007 = asfloat(inU0); // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics float r009 = atan(inF0); @@ -31,7 +31,6 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int in 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); @@ -53,6 +52,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int in // TODO: fma(inD0, inD1, inD2); float r033 = fmod(inF0, inF1); float r034 = frac(inF0); + float r035 = frexp(inF0, inF1); float r036 = fwidth(inF0); bool r037 = isinf(inF0); bool r038 = isnan(inF0); @@ -109,7 +109,6 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u 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)); @@ -137,6 +136,7 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u // TODO: fma(inD0, inD1, inD2); float2 r035 = fmod(inF0, inF1); float2 r036 = frac(inF0); + float2 r037 = frexp(inF0, inF1); float2 r038 = fwidth(inF0); bool2 r039 = isinf(inF0); bool2 r040 = isnan(inF0); @@ -192,7 +192,6 @@ float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u 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)); @@ -218,6 +217,7 @@ float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u // TODO: fma(inD0, inD1, inD2); float3 r036 = fmod(inF0, inF1); float3 r037 = frac(inF0); + float3 r038 = frexp(inF0, inF1); float3 r039 = fwidth(inF0); bool3 r040 = isinf(inF0); bool3 r041 = isnan(inF0); @@ -274,7 +274,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui 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)); @@ -300,6 +299,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui // TODO: fma(inD0, inD1, inD2); float4 r036 = fmod(inF0, inF1); float4 r037 = frac(inF0); + float4 r038 = frexp(inF0, inF1); float4 r039 = fwidth(inF0); bool4 r040 = isinf(inF0); bool4 r041 = isnan(inF0); @@ -369,6 +369,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui MT r021 = floor(inF0); \ MT r022 = fmod(inF0, inF1); \ MT r023 = frac(inF0); \ + MT r024 = frexp(inF0, inF1); \ MT r025 = fwidth(inF0); \ MT r026 = ldexp(inF0, inF1); \ MT r026a = lerp(inF0, inF1, inF2); \ diff --git a/deps/glslang-new/Test/hlsl.intrinsics.lit.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.lit.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.lit.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.lit.frag diff --git a/deps/glslang-new/Test/hlsl.intrinsics.negative.comp b/deps/glslang/glslang-old/Test/hlsl.intrinsics.negative.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.negative.comp rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.negative.comp diff --git a/deps/glslang-new/Test/hlsl.intrinsics.negative.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.negative.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.negative.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.negative.frag diff --git a/deps/glslang-new/Test/hlsl.intrinsics.negative.vert b/deps/glslang/glslang-old/Test/hlsl.intrinsics.negative.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.negative.vert rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.negative.vert diff --git a/deps/glslang-new/Test/hlsl.intrinsics.promote.down.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.promote.down.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.promote.down.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.promote.down.frag diff --git a/deps/glslang-new/Test/hlsl.intrinsics.promote.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.promote.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.promote.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.promote.frag diff --git a/deps/glslang-new/Test/hlsl.intrinsics.promote.outputs.frag b/deps/glslang/glslang-old/Test/hlsl.intrinsics.promote.outputs.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.promote.outputs.frag rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.promote.outputs.frag diff --git a/deps/glslang-new/Test/hlsl.intrinsics.vert b/deps/glslang/glslang-old/Test/hlsl.intrinsics.vert similarity index 98% rename from deps/glslang-new/Test/hlsl.intrinsics.vert rename to deps/glslang/glslang-old/Test/hlsl.intrinsics.vert index c442f16a50..de9476cbd0 100644 --- a/deps/glslang-new/Test/hlsl.intrinsics.vert +++ b/deps/glslang/glslang-old/Test/hlsl.intrinsics.vert @@ -28,6 +28,7 @@ float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); + frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -98,6 +99,7 @@ float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); + frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -168,6 +170,7 @@ float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); + frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -238,6 +241,7 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); + frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -301,6 +305,7 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, floor(inF0); \ fmod(inF0, inF1); \ frac(inF0); \ + frexp(inF0, inF1); \ ldexp(inF0, inF1); \ lerp(inF0, inF1, inF2); \ log(inF0); \ diff --git a/deps/glslang-new/Test/hlsl.layout.frag b/deps/glslang/glslang-old/Test/hlsl.layout.frag similarity index 81% rename from deps/glslang-new/Test/hlsl.layout.frag rename to deps/glslang/glslang-old/Test/hlsl.layout.frag index a4fa5af258..4c2f7cef85 100644 --- a/deps/glslang-new/Test/hlsl.layout.frag +++ b/deps/glslang/glslang-old/Test/hlsl.layout.frag @@ -14,6 +14,5 @@ tbuffer tbufName2 : layout(set=4,binding=7) { float4 PixelShaderFunction(float4 input) : COLOR0 { - float4 layout = 2.0; - return input + v1 + v5 + v1PostLayout * layout; + return input + v1 + v5 + v1PostLayout; } diff --git a/deps/glslang-new/Test/hlsl.load.2dms.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.2dms.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.2dms.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.2dms.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.basic.dx10.vert b/deps/glslang/glslang-old/Test/hlsl.load.basic.dx10.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.load.basic.dx10.vert rename to deps/glslang/glslang-old/Test/hlsl.load.basic.dx10.vert diff --git a/deps/glslang-new/Test/hlsl.load.buffer.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.buffer.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.buffer.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.buffer.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.buffer.float.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.buffer.float.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.buffer.float.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.buffer.float.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.rwbuffer.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.rwbuffer.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.rwbuffer.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.rwbuffer.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.rwtexture.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.rwtexture.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.rwtexture.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.rwtexture.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.load.rwtexture.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.load.rwtexture.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.load.rwtexture.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.load.rwtexture.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.logical.binary.frag b/deps/glslang/glslang-old/Test/hlsl.logical.binary.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.logical.binary.frag rename to deps/glslang/glslang-old/Test/hlsl.logical.binary.frag diff --git a/deps/glslang-new/Test/hlsl.logical.binary.vec.frag b/deps/glslang/glslang-old/Test/hlsl.logical.binary.vec.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.logical.binary.vec.frag rename to deps/glslang/glslang-old/Test/hlsl.logical.binary.vec.frag diff --git a/deps/glslang-new/Test/hlsl.logical.unary.frag b/deps/glslang/glslang-old/Test/hlsl.logical.unary.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.logical.unary.frag rename to deps/glslang/glslang-old/Test/hlsl.logical.unary.frag diff --git a/deps/glslang-new/Test/hlsl.matNx1.frag b/deps/glslang/glslang-old/Test/hlsl.matNx1.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.matNx1.frag rename to deps/glslang/glslang-old/Test/hlsl.matNx1.frag diff --git a/deps/glslang-new/Test/hlsl.matType.bool.frag b/deps/glslang/glslang-old/Test/hlsl.matType.bool.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.matType.bool.frag rename to deps/glslang/glslang-old/Test/hlsl.matType.bool.frag diff --git a/deps/glslang-new/Test/hlsl.matType.frag b/deps/glslang/glslang-old/Test/hlsl.matType.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.matType.frag rename to deps/glslang/glslang-old/Test/hlsl.matType.frag diff --git a/deps/glslang-new/Test/hlsl.matType.int.frag b/deps/glslang/glslang-old/Test/hlsl.matType.int.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.matType.int.frag rename to deps/glslang/glslang-old/Test/hlsl.matType.int.frag diff --git a/deps/glslang-new/Test/hlsl.matrixindex.frag b/deps/glslang/glslang-old/Test/hlsl.matrixindex.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.matrixindex.frag rename to deps/glslang/glslang-old/Test/hlsl.matrixindex.frag diff --git a/deps/glslang-new/Test/hlsl.max.frag b/deps/glslang/glslang-old/Test/hlsl.max.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.max.frag rename to deps/glslang/glslang-old/Test/hlsl.max.frag diff --git a/deps/glslang-new/Test/hlsl.mintypes.frag b/deps/glslang/glslang-old/Test/hlsl.mintypes.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.mintypes.frag rename to deps/glslang/glslang-old/Test/hlsl.mintypes.frag diff --git a/deps/glslang-new/Test/hlsl.multiEntry.vert b/deps/glslang/glslang-old/Test/hlsl.multiEntry.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.multiEntry.vert rename to deps/glslang/glslang-old/Test/hlsl.multiEntry.vert diff --git a/deps/glslang-new/Test/hlsl.multiReturn.frag b/deps/glslang/glslang-old/Test/hlsl.multiReturn.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.multiReturn.frag rename to deps/glslang/glslang-old/Test/hlsl.multiReturn.frag diff --git a/deps/glslang-new/Test/hlsl.numericsuffixes.frag b/deps/glslang/glslang-old/Test/hlsl.numericsuffixes.frag similarity index 81% rename from deps/glslang-new/Test/hlsl.numericsuffixes.frag rename to deps/glslang/glslang-old/Test/hlsl.numericsuffixes.frag index bccb786da0..60b2572f3d 100644 --- a/deps/glslang-new/Test/hlsl.numericsuffixes.frag +++ b/deps/glslang/glslang-old/Test/hlsl.numericsuffixes.frag @@ -13,10 +13,6 @@ PS_OUTPUT main() 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 diff --git a/deps/glslang/glslang-old/Test/hlsl.numthreads.comp b/deps/glslang/glslang-old/Test/hlsl.numthreads.comp new file mode 100644 index 0000000000..fcc97f3798 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.numthreads.comp @@ -0,0 +1,14 @@ + +[numthreads(8,8,1)] +void main(uint3 tid : SV_DispatchThreadID ) +{ +} + +[numTHreaDs(4,4,2)] // case insensitive +void main_aux1(uint3 tid : SV_DispatchThreadID ) +{ +} + +[numthreads(1,4,8)] +void main_aux2(uint3 tid : SV_DispatchThreadID ); + diff --git a/deps/glslang-new/Test/hlsl.overload.frag b/deps/glslang/glslang-old/Test/hlsl.overload.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.overload.frag rename to deps/glslang/glslang-old/Test/hlsl.overload.frag diff --git a/deps/glslang-new/Test/hlsl.partialInit.frag b/deps/glslang/glslang-old/Test/hlsl.partialInit.frag similarity index 71% rename from deps/glslang-new/Test/hlsl.partialInit.frag rename to deps/glslang/glslang-old/Test/hlsl.partialInit.frag index 01aee8e60b..59e8a529ca 100755 --- a/deps/glslang-new/Test/hlsl.partialInit.frag +++ b/deps/glslang/glslang-old/Test/hlsl.partialInit.frag @@ -25,12 +25,5 @@ outs PixelShaderFunction(float4 input) : COLOR0 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; +} \ No newline at end of file diff --git a/deps/glslang-new/Test/hlsl.pp.line.frag b/deps/glslang/glslang-old/Test/hlsl.pp.line.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.pp.line.frag rename to deps/glslang/glslang-old/Test/hlsl.pp.line.frag diff --git a/deps/glslang-new/Test/hlsl.precedence.frag b/deps/glslang/glslang-old/Test/hlsl.precedence.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.precedence.frag rename to deps/glslang/glslang-old/Test/hlsl.precedence.frag diff --git a/deps/glslang-new/Test/hlsl.precedence2.frag b/deps/glslang/glslang-old/Test/hlsl.precedence2.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.precedence2.frag rename to deps/glslang/glslang-old/Test/hlsl.precedence2.frag diff --git a/deps/glslang-new/Test/hlsl.precise.frag b/deps/glslang/glslang-old/Test/hlsl.precise.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.precise.frag rename to deps/glslang/glslang-old/Test/hlsl.precise.frag diff --git a/deps/glslang-new/Test/hlsl.promote.atomic.frag b/deps/glslang/glslang-old/Test/hlsl.promote.atomic.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.promote.atomic.frag rename to deps/glslang/glslang-old/Test/hlsl.promote.atomic.frag diff --git a/deps/glslang-new/Test/hlsl.promote.binary.frag b/deps/glslang/glslang-old/Test/hlsl.promote.binary.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.promote.binary.frag rename to deps/glslang/glslang-old/Test/hlsl.promote.binary.frag diff --git a/deps/glslang-new/Test/hlsl.promote.vec1.frag b/deps/glslang/glslang-old/Test/hlsl.promote.vec1.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.promote.vec1.frag rename to deps/glslang/glslang-old/Test/hlsl.promote.vec1.frag diff --git a/deps/glslang-new/Test/hlsl.promotions.frag b/deps/glslang/glslang-old/Test/hlsl.promotions.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.promotions.frag rename to deps/glslang/glslang-old/Test/hlsl.promotions.frag diff --git a/deps/glslang-new/Test/hlsl.reflection.binding.frag b/deps/glslang/glslang-old/Test/hlsl.reflection.binding.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.reflection.binding.frag rename to deps/glslang/glslang-old/Test/hlsl.reflection.binding.frag diff --git a/deps/glslang-new/Test/hlsl.reflection.vert b/deps/glslang/glslang-old/Test/hlsl.reflection.vert similarity index 70% rename from deps/glslang-new/Test/hlsl.reflection.vert rename to deps/glslang/glslang-old/Test/hlsl.reflection.vert index 06207c74f8..21cc81092e 100644 --- a/deps/glslang-new/Test/hlsl.reflection.vert +++ b/deps/glslang/glslang-old/Test/hlsl.reflection.vert @@ -19,10 +19,27 @@ cbuffer c_nameless { float4 c_anonMember3; }; +cbuffer named { + float3 deadMember1; + int scalar; + float4 member2; + float4 member3; + float2 memfloat2; + float memf1; + bool memf2; + int memf3; + float2 memfloat2a; + float2x2 m22[7]; +} ablock; + cbuffer namelessdead { int a; }; +cbuffer namedDead { + int b; +} bblock; + struct N1 { float a; }; @@ -40,7 +57,7 @@ struct N3 { cbuffer nested { N3 foo; -} +} nest; struct TS { int a; @@ -72,12 +89,16 @@ struct deep3 { int3 v3; }; + + + uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; const bool control = true; void deadFunction() { + float3 v3 = ablock.deadMember1; float4 v = anonDeadMember2; float f = ufDead4; } @@ -89,12 +110,12 @@ void liveFunction2() } tbuffer abl { - float foo1; -} + float foo; +} arrBl; tbuffer abl2 { - float foo2; -} + float foo; +} arrBl2; void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attributeFloat3, in float4 attributeFloat4, in float4x4 attributeMat4) { @@ -109,16 +130,22 @@ void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attribu 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 += m22[i][1][0]; + f += ablock.memfloat2.x; + f += ablock.memf1; + f += float(ablock.memf2); + f += ablock.memf3; + f += ablock.memfloat2a.y; + f += ablock.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 += 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; @@ -127,8 +154,8 @@ void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attribu } else f = ufDead3; - f += foo1 + foo2; - f += foo2; + f += arrBl.foo + arrBl.foo; + f += arrBl2.foo; f += attributeFloat; f += attributeFloat2.x; diff --git a/deps/glslang-new/Test/hlsl.rw.atomics.frag b/deps/glslang/glslang-old/Test/hlsl.rw.atomics.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.rw.atomics.frag rename to deps/glslang/glslang-old/Test/hlsl.rw.atomics.frag diff --git a/deps/glslang-new/Test/hlsl.rw.bracket.frag b/deps/glslang/glslang-old/Test/hlsl.rw.bracket.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.rw.bracket.frag rename to deps/glslang/glslang-old/Test/hlsl.rw.bracket.frag diff --git a/deps/glslang-new/Test/hlsl.rw.register.frag b/deps/glslang/glslang-old/Test/hlsl.rw.register.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.rw.register.frag rename to deps/glslang/glslang-old/Test/hlsl.rw.register.frag diff --git a/deps/glslang-new/Test/hlsl.rw.scalar.bracket.frag b/deps/glslang/glslang-old/Test/hlsl.rw.scalar.bracket.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.rw.scalar.bracket.frag rename to deps/glslang/glslang-old/Test/hlsl.rw.scalar.bracket.frag diff --git a/deps/glslang-new/Test/hlsl.rw.vec2.bracket.frag b/deps/glslang/glslang-old/Test/hlsl.rw.vec2.bracket.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.rw.vec2.bracket.frag rename to deps/glslang/glslang-old/Test/hlsl.rw.vec2.bracket.frag diff --git a/deps/glslang-new/Test/hlsl.sample.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.sample.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.sample.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.sample.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.sample.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.sample.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.sample.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.sample.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.sample.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.sample.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.sample.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.sample.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.sample.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.sample.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.sample.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.sample.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.sample.sub-vec4.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.sample.sub-vec4.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.sample.sub-vec4.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.sample.sub-vec4.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplebias.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplebias.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplebias.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplebias.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplebias.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplebias.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplebias.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplebias.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplebias.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplebias.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplebias.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplebias.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplebias.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplebias.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplebias.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplebias.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmp.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmp.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmp.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmp.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmp.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmp.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmp.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmp.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmp.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmp.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmp.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmp.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmp.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmp.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmp.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmp.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmplevelzero.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmplevelzero.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmplevelzero.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmplevelzero.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmplevelzero.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmplevelzero.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplegrad.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplegrad.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplegrad.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplegrad.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplegrad.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplegrad.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplegrad.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplegrad.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplegrad.basic.dx10.vert b/deps/glslang/glslang-old/Test/hlsl.samplegrad.basic.dx10.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.samplegrad.basic.dx10.vert rename to deps/glslang/glslang-old/Test/hlsl.samplegrad.basic.dx10.vert diff --git a/deps/glslang-new/Test/hlsl.samplegrad.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplegrad.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplegrad.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplegrad.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplegrad.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplegrad.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplegrad.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplegrad.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplelevel.array.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplelevel.array.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplelevel.array.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplelevel.array.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplelevel.basic.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplelevel.basic.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplelevel.basic.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplelevel.basic.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplelevel.basic.dx10.vert b/deps/glslang/glslang-old/Test/hlsl.samplelevel.basic.dx10.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.samplelevel.basic.dx10.vert rename to deps/glslang/glslang-old/Test/hlsl.samplelevel.basic.dx10.vert diff --git a/deps/glslang-new/Test/hlsl.samplelevel.offset.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplelevel.offset.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplelevel.offset.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplelevel.offset.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.samplelevel.offsetarray.dx10.frag b/deps/glslang/glslang-old/Test/hlsl.samplelevel.offsetarray.dx10.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplelevel.offsetarray.dx10.frag rename to deps/glslang/glslang-old/Test/hlsl.samplelevel.offsetarray.dx10.frag diff --git a/deps/glslang-new/Test/hlsl.scope.frag b/deps/glslang/glslang-old/Test/hlsl.scope.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.scope.frag rename to deps/glslang/glslang-old/Test/hlsl.scope.frag diff --git a/deps/glslang-new/Test/hlsl.semicolons.frag b/deps/glslang/glslang-old/Test/hlsl.semicolons.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.semicolons.frag rename to deps/glslang/glslang-old/Test/hlsl.semicolons.frag diff --git a/deps/glslang-new/Test/hlsl.shapeConv.frag b/deps/glslang/glslang-old/Test/hlsl.shapeConv.frag similarity index 65% rename from deps/glslang-new/Test/hlsl.shapeConv.frag rename to deps/glslang/glslang-old/Test/hlsl.shapeConv.frag index bc09d80a35..adb170eab3 100644 --- a/deps/glslang-new/Test/hlsl.shapeConv.frag +++ b/deps/glslang/glslang-old/Test/hlsl.shapeConv.frag @@ -28,22 +28,5 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0 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; + return input; } diff --git a/deps/glslang-new/Test/hlsl.shapeConvRet.frag b/deps/glslang/glslang-old/Test/hlsl.shapeConvRet.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.shapeConvRet.frag rename to deps/glslang/glslang-old/Test/hlsl.shapeConvRet.frag diff --git a/deps/glslang-new/Test/hlsl.sin.frag b/deps/glslang/glslang-old/Test/hlsl.sin.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.sin.frag rename to deps/glslang/glslang-old/Test/hlsl.sin.frag diff --git a/deps/glslang-new/Test/hlsl.string.frag b/deps/glslang/glslang-old/Test/hlsl.string.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.string.frag rename to deps/glslang/glslang-old/Test/hlsl.string.frag diff --git a/deps/glslang-new/Test/hlsl.stringtoken.frag b/deps/glslang/glslang-old/Test/hlsl.stringtoken.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.stringtoken.frag rename to deps/glslang/glslang-old/Test/hlsl.stringtoken.frag diff --git a/deps/glslang-new/Test/hlsl.struct.frag b/deps/glslang/glslang-old/Test/hlsl.struct.frag similarity index 83% rename from deps/glslang-new/Test/hlsl.struct.frag rename to deps/glslang/glslang-old/Test/hlsl.struct.frag index 33199e0674..e602c9ed51 100644 --- a/deps/glslang-new/Test/hlsl.struct.frag +++ b/deps/glslang/glslang-old/Test/hlsl.struct.frag @@ -12,7 +12,7 @@ struct myS { myS s1; -static class { +static struct { float4 i; } s2; @@ -30,24 +30,14 @@ struct IN_S { 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 { + struct FS { bool3 b3; } s3; s3 == s3; s2.i = s.ff4; - containEmpty ce; - empty e; - e = ce.e; - return input; } diff --git a/deps/glslang-new/Test/hlsl.structarray.flatten.frag b/deps/glslang/glslang-old/Test/hlsl.structarray.flatten.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structarray.flatten.frag rename to deps/glslang/glslang-old/Test/hlsl.structarray.flatten.frag diff --git a/deps/glslang/glslang-old/Test/hlsl.structarray.flatten.geom b/deps/glslang/glslang-old/Test/hlsl.structarray.flatten.geom new file mode 100644 index 0000000000..1b05dc11d2 --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.structarray.flatten.geom @@ -0,0 +1,17 @@ + +struct VertexData { + float4 position : POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +[maxvertexcount(4)] +void main(line VertexData vin[2], inout TriangleStream outStream) +{ + VertexData vout; + + vout.color = vin[0].color; + vout.uv = vin[0].uv; + vout.position = vin[0].position; + outStream.Append(vout); +} diff --git a/deps/glslang/glslang-old/Test/hlsl.structin.vert b/deps/glslang/glslang-old/Test/hlsl.structin.vert new file mode 100644 index 0000000000..43d0cfd0bb --- /dev/null +++ b/deps/glslang/glslang-old/Test/hlsl.structin.vert @@ -0,0 +1,14 @@ +struct VI { + float4 m[2]; + uint2 coord; + linear float4 b; +}; + +VI main(float4 d, VI vi, float4 e) : SV_POSITION +{ + VI local; + + local.b = vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e; + + return local; +} diff --git a/deps/glslang-new/Test/hlsl.switch.frag b/deps/glslang/glslang-old/Test/hlsl.switch.frag similarity index 96% rename from deps/glslang-new/Test/hlsl.switch.frag rename to deps/glslang/glslang-old/Test/hlsl.switch.frag index 78ebfef343..88239c2bec 100644 --- a/deps/glslang-new/Test/hlsl.switch.frag +++ b/deps/glslang/glslang-old/Test/hlsl.switch.frag @@ -18,7 +18,7 @@ float4 PixelShaderFunction(float4 input, int c, int d) : COLOR0 break; } - [branch] switch (c) { + switch (c) { case 1: ++input; break; diff --git a/deps/glslang-new/Test/hlsl.swizzle.frag b/deps/glslang/glslang-old/Test/hlsl.swizzle.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.swizzle.frag rename to deps/glslang/glslang-old/Test/hlsl.swizzle.frag diff --git a/deps/glslang-new/Test/hlsl.templatetypes.frag b/deps/glslang/glslang-old/Test/hlsl.templatetypes.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.templatetypes.frag rename to deps/glslang/glslang-old/Test/hlsl.templatetypes.frag diff --git a/deps/glslang-new/Test/hlsl.templatetypes.negative.frag b/deps/glslang/glslang-old/Test/hlsl.templatetypes.negative.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.templatetypes.negative.frag rename to deps/glslang/glslang-old/Test/hlsl.templatetypes.negative.frag diff --git a/deps/glslang-new/Test/hlsl.tx.bracket.frag b/deps/glslang/glslang-old/Test/hlsl.tx.bracket.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.tx.bracket.frag rename to deps/glslang/glslang-old/Test/hlsl.tx.bracket.frag diff --git a/deps/glslang-new/Test/hlsl.typedef.frag b/deps/glslang/glslang-old/Test/hlsl.typedef.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.typedef.frag rename to deps/glslang/glslang-old/Test/hlsl.typedef.frag diff --git a/deps/glslang-new/Test/hlsl.void.frag b/deps/glslang/glslang-old/Test/hlsl.void.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.void.frag rename to deps/glslang/glslang-old/Test/hlsl.void.frag diff --git a/deps/glslang-new/Test/hlsl.whileLoop.frag b/deps/glslang/glslang-old/Test/hlsl.whileLoop.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.whileLoop.frag rename to deps/glslang/glslang-old/Test/hlsl.whileLoop.frag diff --git a/deps/glslang-new/Test/length.frag b/deps/glslang/glslang-old/Test/length.frag similarity index 100% rename from deps/glslang-new/Test/length.frag rename to deps/glslang/glslang-old/Test/length.frag diff --git a/deps/glslang-new/Test/lineContinuation.vert b/deps/glslang/glslang-old/Test/lineContinuation.vert similarity index 100% rename from deps/glslang-new/Test/lineContinuation.vert rename to deps/glslang/glslang-old/Test/lineContinuation.vert diff --git a/deps/glslang-new/Test/lineContinuation100.vert b/deps/glslang/glslang-old/Test/lineContinuation100.vert similarity index 100% rename from deps/glslang-new/Test/lineContinuation100.vert rename to deps/glslang/glslang-old/Test/lineContinuation100.vert diff --git a/deps/glslang-new/Test/link1.frag b/deps/glslang/glslang-old/Test/link1.frag similarity index 100% rename from deps/glslang-new/Test/link1.frag rename to deps/glslang/glslang-old/Test/link1.frag diff --git a/deps/glslang-new/Test/link2.frag b/deps/glslang/glslang-old/Test/link2.frag similarity index 100% rename from deps/glslang-new/Test/link2.frag rename to deps/glslang/glslang-old/Test/link2.frag diff --git a/deps/glslang-new/Test/link3.frag b/deps/glslang/glslang-old/Test/link3.frag similarity index 100% rename from deps/glslang-new/Test/link3.frag rename to deps/glslang/glslang-old/Test/link3.frag diff --git a/deps/glslang-new/Test/localAggregates.frag b/deps/glslang/glslang-old/Test/localAggregates.frag similarity index 100% rename from deps/glslang-new/Test/localAggregates.frag rename to deps/glslang/glslang-old/Test/localAggregates.frag diff --git a/deps/glslang-new/Test/loops.frag b/deps/glslang/glslang-old/Test/loops.frag similarity index 100% rename from deps/glslang-new/Test/loops.frag rename to deps/glslang/glslang-old/Test/loops.frag diff --git a/deps/glslang-new/Test/loopsArtificial.frag b/deps/glslang/glslang-old/Test/loopsArtificial.frag similarity index 100% rename from deps/glslang-new/Test/loopsArtificial.frag rename to deps/glslang/glslang-old/Test/loopsArtificial.frag diff --git a/deps/glslang-new/Test/mains.frag b/deps/glslang/glslang-old/Test/mains.frag similarity index 100% rename from deps/glslang-new/Test/mains.frag rename to deps/glslang/glslang-old/Test/mains.frag diff --git a/deps/glslang-new/Test/mains1.frag b/deps/glslang/glslang-old/Test/mains1.frag similarity index 100% rename from deps/glslang-new/Test/mains1.frag rename to deps/glslang/glslang-old/Test/mains1.frag diff --git a/deps/glslang-new/Test/mains2.frag b/deps/glslang/glslang-old/Test/mains2.frag similarity index 100% rename from deps/glslang-new/Test/mains2.frag rename to deps/glslang/glslang-old/Test/mains2.frag diff --git a/deps/glslang-new/Test/makeDoc b/deps/glslang/glslang-old/Test/makeDoc similarity index 100% rename from deps/glslang-new/Test/makeDoc rename to deps/glslang/glslang-old/Test/makeDoc diff --git a/deps/glslang-new/Test/matrix.frag b/deps/glslang/glslang-old/Test/matrix.frag similarity index 100% rename from deps/glslang-new/Test/matrix.frag rename to deps/glslang/glslang-old/Test/matrix.frag diff --git a/deps/glslang-new/Test/matrix2.frag b/deps/glslang/glslang-old/Test/matrix2.frag similarity index 92% rename from deps/glslang-new/Test/matrix2.frag rename to deps/glslang/glslang-old/Test/matrix2.frag index df65804401..eb2c53c2ec 100644 --- a/deps/glslang-new/Test/matrix2.frag +++ b/deps/glslang/glslang-old/Test/matrix2.frag @@ -47,5 +47,4 @@ void main() FragColor *= inv4; FragColor = vec4(FragColor * matrixCompMult(un34, un34), FragColor.w); - m34 *= colorTransform; } diff --git a/deps/glslang-new/Test/matrixError.vert b/deps/glslang/glslang-old/Test/matrixError.vert similarity index 79% rename from deps/glslang-new/Test/matrixError.vert rename to deps/glslang/glslang-old/Test/matrixError.vert index 0ad145b255..3c8cc11fec 100644 --- a/deps/glslang-new/Test/matrixError.vert +++ b/deps/glslang/glslang-old/Test/matrixError.vert @@ -19,6 +19,4 @@ void main() 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-new/Test/maxClipDistances.vert b/deps/glslang/glslang-old/Test/maxClipDistances.vert similarity index 100% rename from deps/glslang-new/Test/maxClipDistances.vert rename to deps/glslang/glslang-old/Test/maxClipDistances.vert diff --git a/deps/glslang-new/Test/max_vertices_0.geom b/deps/glslang/glslang-old/Test/max_vertices_0.geom similarity index 100% rename from deps/glslang-new/Test/max_vertices_0.geom rename to deps/glslang/glslang-old/Test/max_vertices_0.geom diff --git a/deps/glslang-new/Test/missingBodies.vert b/deps/glslang/glslang-old/Test/missingBodies.vert similarity index 100% rename from deps/glslang-new/Test/missingBodies.vert rename to deps/glslang/glslang-old/Test/missingBodies.vert diff --git a/deps/glslang-new/Test/negativeArraySize.comp b/deps/glslang/glslang-old/Test/negativeArraySize.comp similarity index 100% rename from deps/glslang-new/Test/negativeArraySize.comp rename to deps/glslang/glslang-old/Test/negativeArraySize.comp diff --git a/deps/glslang-new/Test/newTexture.frag b/deps/glslang/glslang-old/Test/newTexture.frag similarity index 100% rename from deps/glslang-new/Test/newTexture.frag rename to deps/glslang/glslang-old/Test/newTexture.frag diff --git a/deps/glslang-new/Test/noMain.vert b/deps/glslang/glslang-old/Test/noMain.vert similarity index 100% rename from deps/glslang-new/Test/noMain.vert rename to deps/glslang/glslang-old/Test/noMain.vert diff --git a/deps/glslang-new/Test/noMain1.geom b/deps/glslang/glslang-old/Test/noMain1.geom similarity index 100% rename from deps/glslang-new/Test/noMain1.geom rename to deps/glslang/glslang-old/Test/noMain1.geom diff --git a/deps/glslang-new/Test/noMain2.geom b/deps/glslang/glslang-old/Test/noMain2.geom similarity index 100% rename from deps/glslang-new/Test/noMain2.geom rename to deps/glslang/glslang-old/Test/noMain2.geom diff --git a/deps/glslang-new/Test/nonSquare.vert b/deps/glslang/glslang-old/Test/nonSquare.vert similarity index 100% rename from deps/glslang-new/Test/nonSquare.vert rename to deps/glslang/glslang-old/Test/nonSquare.vert diff --git a/deps/glslang-new/Test/nonVulkan.frag b/deps/glslang/glslang-old/Test/nonVulkan.frag similarity index 100% rename from deps/glslang-new/Test/nonVulkan.frag rename to deps/glslang/glslang-old/Test/nonVulkan.frag diff --git a/deps/glslang-new/Test/numeral.frag b/deps/glslang/glslang-old/Test/numeral.frag similarity index 93% rename from deps/glslang-new/Test/numeral.frag rename to deps/glslang/glslang-old/Test/numeral.frag index 39814f4edd..cc0862ccd1 100644 --- a/deps/glslang-new/Test/numeral.frag +++ b/deps/glslang/glslang-old/Test/numeral.frag @@ -101,6 +101,3 @@ 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-new/Test/pointCoord.frag b/deps/glslang/glslang-old/Test/pointCoord.frag similarity index 100% rename from deps/glslang-new/Test/pointCoord.frag rename to deps/glslang/glslang-old/Test/pointCoord.frag diff --git a/deps/glslang-new/Test/precise.tesc b/deps/glslang/glslang-old/Test/precise.tesc similarity index 100% rename from deps/glslang-new/Test/precise.tesc rename to deps/glslang/glslang-old/Test/precise.tesc diff --git a/deps/glslang-new/Test/precise_struct_block.vert b/deps/glslang/glslang-old/Test/precise_struct_block.vert similarity index 100% rename from deps/glslang-new/Test/precise_struct_block.vert rename to deps/glslang/glslang-old/Test/precise_struct_block.vert diff --git a/deps/glslang-new/Test/precision.frag b/deps/glslang/glslang-old/Test/precision.frag similarity index 100% rename from deps/glslang-new/Test/precision.frag rename to deps/glslang/glslang-old/Test/precision.frag diff --git a/deps/glslang-new/Test/precision.vert b/deps/glslang/glslang-old/Test/precision.vert similarity index 100% rename from deps/glslang-new/Test/precision.vert rename to deps/glslang/glslang-old/Test/precision.vert diff --git a/deps/glslang-new/Test/prepost.frag b/deps/glslang/glslang-old/Test/prepost.frag similarity index 100% rename from deps/glslang-new/Test/prepost.frag rename to deps/glslang/glslang-old/Test/prepost.frag diff --git a/deps/glslang-new/Test/preprocessor.cpp_style___FILE__.vert b/deps/glslang/glslang-old/Test/preprocessor.cpp_style___FILE__.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.cpp_style___FILE__.vert rename to deps/glslang/glslang-old/Test/preprocessor.cpp_style___FILE__.vert diff --git a/deps/glslang-new/Test/preprocessor.cpp_style_line_directive.vert b/deps/glslang/glslang-old/Test/preprocessor.cpp_style_line_directive.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.cpp_style_line_directive.vert rename to deps/glslang/glslang-old/Test/preprocessor.cpp_style_line_directive.vert diff --git a/deps/glslang-new/Test/preprocessor.defined.vert b/deps/glslang/glslang-old/Test/preprocessor.defined.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.defined.vert rename to deps/glslang/glslang-old/Test/preprocessor.defined.vert diff --git a/deps/glslang-new/Test/preprocessor.edge_cases.vert b/deps/glslang/glslang-old/Test/preprocessor.edge_cases.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.edge_cases.vert rename to deps/glslang/glslang-old/Test/preprocessor.edge_cases.vert diff --git a/deps/glslang-new/Test/preprocessor.eof_missing.vert b/deps/glslang/glslang-old/Test/preprocessor.eof_missing.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.eof_missing.vert rename to deps/glslang/glslang-old/Test/preprocessor.eof_missing.vert diff --git a/deps/glslang-new/Test/preprocessor.errors.vert b/deps/glslang/glslang-old/Test/preprocessor.errors.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.errors.vert rename to deps/glslang/glslang-old/Test/preprocessor.errors.vert diff --git a/deps/glslang-new/Test/preprocessor.extensions.vert b/deps/glslang/glslang-old/Test/preprocessor.extensions.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.extensions.vert rename to deps/glslang/glslang-old/Test/preprocessor.extensions.vert diff --git a/deps/glslang-new/Test/preprocessor.function_macro.vert b/deps/glslang/glslang-old/Test/preprocessor.function_macro.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.function_macro.vert rename to deps/glslang/glslang-old/Test/preprocessor.function_macro.vert diff --git a/deps/glslang-new/Test/preprocessor.include.disabled.vert b/deps/glslang/glslang-old/Test/preprocessor.include.disabled.vert similarity index 78% rename from deps/glslang-new/Test/preprocessor.include.disabled.vert rename to deps/glslang/glslang-old/Test/preprocessor.include.disabled.vert index 865baa189d..130d928e52 100644 --- a/deps/glslang-new/Test/preprocessor.include.disabled.vert +++ b/deps/glslang/glslang-old/Test/preprocessor.include.disabled.vert @@ -3,4 +3,5 @@ #include 123 #include "foo" #include "foo" garbage -#include "no-eol" \ No newline at end of file +#include "no-eol" + diff --git a/deps/glslang/glslang-old/Test/preprocessor.include.enabled.vert b/deps/glslang/glslang-old/Test/preprocessor.include.enabled.vert new file mode 100644 index 0000000000..ecdf466e1b --- /dev/null +++ b/deps/glslang/glslang-old/Test/preprocessor.include.enabled.vert @@ -0,0 +1,7 @@ +#extension GL_GOOGLE_include_directive : enable +#line 8000 +#include +#include 123 +#include "foo" +#include "foo" garbage +#include "no-eol" diff --git a/deps/glslang-new/Test/preprocessor.line.frag b/deps/glslang/glslang-old/Test/preprocessor.line.frag similarity index 100% rename from deps/glslang-new/Test/preprocessor.line.frag rename to deps/glslang/glslang-old/Test/preprocessor.line.frag diff --git a/deps/glslang-new/Test/preprocessor.line.vert b/deps/glslang/glslang-old/Test/preprocessor.line.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.line.vert rename to deps/glslang/glslang-old/Test/preprocessor.line.vert diff --git a/deps/glslang-new/Test/preprocessor.many.endif.vert b/deps/glslang/glslang-old/Test/preprocessor.many.endif.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.many.endif.vert rename to deps/glslang/glslang-old/Test/preprocessor.many.endif.vert diff --git a/deps/glslang-new/Test/preprocessor.pragma.vert b/deps/glslang/glslang-old/Test/preprocessor.pragma.vert similarity index 84% rename from deps/glslang-new/Test/preprocessor.pragma.vert rename to deps/glslang/glslang-old/Test/preprocessor.pragma.vert index 0ae7ee2124..79f5600a8d 100644 --- a/deps/glslang-new/Test/preprocessor.pragma.vert +++ b/deps/glslang/glslang-old/Test/preprocessor.pragma.vert @@ -7,7 +7,5 @@ #pragma undefined_pragma(x, 4) -#pragma once - int main() { } diff --git a/deps/glslang-new/Test/preprocessor.simple.vert b/deps/glslang/glslang-old/Test/preprocessor.simple.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.simple.vert rename to deps/glslang/glslang-old/Test/preprocessor.simple.vert diff --git a/deps/glslang-new/Test/preprocessor.success_if_parse_would_fail.vert b/deps/glslang/glslang-old/Test/preprocessor.success_if_parse_would_fail.vert similarity index 100% rename from deps/glslang-new/Test/preprocessor.success_if_parse_would_fail.vert rename to deps/glslang/glslang-old/Test/preprocessor.success_if_parse_would_fail.vert diff --git a/deps/glslang-new/Test/recurse1.frag b/deps/glslang/glslang-old/Test/recurse1.frag similarity index 100% rename from deps/glslang-new/Test/recurse1.frag rename to deps/glslang/glslang-old/Test/recurse1.frag diff --git a/deps/glslang-new/Test/recurse1.vert b/deps/glslang/glslang-old/Test/recurse1.vert similarity index 100% rename from deps/glslang-new/Test/recurse1.vert rename to deps/glslang/glslang-old/Test/recurse1.vert diff --git a/deps/glslang-new/Test/recurse2.frag b/deps/glslang/glslang-old/Test/recurse2.frag similarity index 100% rename from deps/glslang-new/Test/recurse2.frag rename to deps/glslang/glslang-old/Test/recurse2.frag diff --git a/deps/glslang-new/Test/reflection.vert b/deps/glslang/glslang-old/Test/reflection.vert similarity index 83% rename from deps/glslang-new/Test/reflection.vert rename to deps/glslang/glslang-old/Test/reflection.vert index 7549f0816d..be49822523 100644 --- a/deps/glslang-new/Test/reflection.vert +++ b/deps/glslang/glslang-old/Test/reflection.vert @@ -133,26 +133,6 @@ 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); @@ -199,8 +179,4 @@ void main() 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-new/Test/remap.basic.dcefunc.frag b/deps/glslang/glslang-old/Test/remap.basic.dcefunc.frag similarity index 100% rename from deps/glslang-new/Test/remap.basic.dcefunc.frag rename to deps/glslang/glslang-old/Test/remap.basic.dcefunc.frag diff --git a/deps/glslang-new/Test/remap.basic.everything.frag b/deps/glslang/glslang-old/Test/remap.basic.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.basic.everything.frag rename to deps/glslang/glslang-old/Test/remap.basic.everything.frag diff --git a/deps/glslang-new/Test/remap.basic.none.frag b/deps/glslang/glslang-old/Test/remap.basic.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.basic.none.frag rename to deps/glslang/glslang-old/Test/remap.basic.none.frag diff --git a/deps/glslang-new/Test/remap.basic.strip.frag b/deps/glslang/glslang-old/Test/remap.basic.strip.frag similarity index 100% rename from deps/glslang-new/Test/remap.basic.strip.frag rename to deps/glslang/glslang-old/Test/remap.basic.strip.frag diff --git a/deps/glslang-new/Test/remap.hlsl.sample.basic.everything.frag b/deps/glslang/glslang-old/Test/remap.hlsl.sample.basic.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.hlsl.sample.basic.everything.frag rename to deps/glslang/glslang-old/Test/remap.hlsl.sample.basic.everything.frag diff --git a/deps/glslang-new/Test/remap.hlsl.sample.basic.none.frag b/deps/glslang/glslang-old/Test/remap.hlsl.sample.basic.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.hlsl.sample.basic.none.frag rename to deps/glslang/glslang-old/Test/remap.hlsl.sample.basic.none.frag diff --git a/deps/glslang-new/Test/remap.hlsl.sample.basic.strip.frag b/deps/glslang/glslang-old/Test/remap.hlsl.sample.basic.strip.frag similarity index 100% rename from deps/glslang-new/Test/remap.hlsl.sample.basic.strip.frag rename to deps/glslang/glslang-old/Test/remap.hlsl.sample.basic.strip.frag diff --git a/deps/glslang-new/Test/remap.hlsl.templatetypes.everything.frag b/deps/glslang/glslang-old/Test/remap.hlsl.templatetypes.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.hlsl.templatetypes.everything.frag rename to deps/glslang/glslang-old/Test/remap.hlsl.templatetypes.everything.frag diff --git a/deps/glslang-new/Test/remap.hlsl.templatetypes.none.frag b/deps/glslang/glslang-old/Test/remap.hlsl.templatetypes.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.hlsl.templatetypes.none.frag rename to deps/glslang/glslang-old/Test/remap.hlsl.templatetypes.none.frag diff --git a/deps/glslang-new/Test/remap.if.everything.frag b/deps/glslang/glslang-old/Test/remap.if.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.if.everything.frag rename to deps/glslang/glslang-old/Test/remap.if.everything.frag diff --git a/deps/glslang-new/Test/remap.if.none.frag b/deps/glslang/glslang-old/Test/remap.if.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.if.none.frag rename to deps/glslang/glslang-old/Test/remap.if.none.frag diff --git a/deps/glslang-new/Test/remap.literal64.everything.spv b/deps/glslang/glslang-old/Test/remap.literal64.everything.spv similarity index 100% rename from deps/glslang-new/Test/remap.literal64.everything.spv rename to deps/glslang/glslang-old/Test/remap.literal64.everything.spv diff --git a/deps/glslang-new/Test/remap.literal64.none.spv b/deps/glslang/glslang-old/Test/remap.literal64.none.spv similarity index 100% rename from deps/glslang-new/Test/remap.literal64.none.spv rename to deps/glslang/glslang-old/Test/remap.literal64.none.spv diff --git a/deps/glslang-new/Test/remap.similar_1a.everything.frag b/deps/glslang/glslang-old/Test/remap.similar_1a.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.similar_1a.everything.frag rename to deps/glslang/glslang-old/Test/remap.similar_1a.everything.frag diff --git a/deps/glslang-new/Test/remap.similar_1a.none.frag b/deps/glslang/glslang-old/Test/remap.similar_1a.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.similar_1a.none.frag rename to deps/glslang/glslang-old/Test/remap.similar_1a.none.frag diff --git a/deps/glslang-new/Test/remap.similar_1b.everything.frag b/deps/glslang/glslang-old/Test/remap.similar_1b.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.similar_1b.everything.frag rename to deps/glslang/glslang-old/Test/remap.similar_1b.everything.frag diff --git a/deps/glslang-new/Test/remap.similar_1b.none.frag b/deps/glslang/glslang-old/Test/remap.similar_1b.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.similar_1b.none.frag rename to deps/glslang/glslang-old/Test/remap.similar_1b.none.frag diff --git a/deps/glslang-new/Test/remap.switch.everything.frag b/deps/glslang/glslang-old/Test/remap.switch.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.switch.everything.frag rename to deps/glslang/glslang-old/Test/remap.switch.everything.frag diff --git a/deps/glslang-new/Test/remap.switch.none.frag b/deps/glslang/glslang-old/Test/remap.switch.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.switch.none.frag rename to deps/glslang/glslang-old/Test/remap.switch.none.frag diff --git a/deps/glslang-new/Test/remap.uniformarray.everything.frag b/deps/glslang/glslang-old/Test/remap.uniformarray.everything.frag similarity index 100% rename from deps/glslang-new/Test/remap.uniformarray.everything.frag rename to deps/glslang/glslang-old/Test/remap.uniformarray.everything.frag diff --git a/deps/glslang-new/Test/remap.uniformarray.none.frag b/deps/glslang/glslang-old/Test/remap.uniformarray.none.frag similarity index 100% rename from deps/glslang-new/Test/remap.uniformarray.none.frag rename to deps/glslang/glslang-old/Test/remap.uniformarray.none.frag diff --git a/deps/glslang/glslang-old/Test/runtests b/deps/glslang/glslang-old/Test/runtests new file mode 100755 index 0000000000..a17848b74c --- /dev/null +++ b/deps/glslang/glslang-old/Test/runtests @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +TARGETDIR=localResults +BASEDIR=baseResults +EXE=../build/install/bin/glslangValidator +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 -e flizv -l -q -C -V hlsl.reflection.vert > $TARGETDIR/hlsl.reflection.vert.out +diff -b $BASEDIR/hlsl.reflection.vert.out $TARGETDIR/hlsl.reflection.vert.out || HASERROR=1 +$EXE -D -e main -l -q -C -V hlsl.reflection.binding.frag > $TARGETDIR/hlsl.reflection.binding.frag.out +diff -b $BASEDIR/hlsl.reflection.binding.frag.out $TARGETDIR/hlsl.reflection.binding.frag.out || HASERROR=1 + + +# +# multi-threaded test +# +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 + +# +# entry point renaming tests +# +echo Running entry-point renaming tests +$EXE -i -H -V -D -e main_in_spv --ku --source-entrypoint main hlsl.entry.rename.frag > $TARGETDIR/hlsl.entry.rename.frag.out +diff -b $BASEDIR/hlsl.entry.rename.frag.out $TARGETDIR/hlsl.entry.rename.frag.out || HASERROR=1 + +# +# Testing ill-defined uncalled function +# +echo Running ill-defined uncalled function +$EXE -D -e main -H hlsl.deadFunctionMissingBody.vert > $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out +diff -b $BASEDIR/hlsl.deadFunctionMissingBody.vert.out $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out || HASERROR=1 + +if [ $HASERROR -eq 0 ] +then + echo Tests Succeeded. +else + echo Tests Failed. +fi + +exit $HASERROR diff --git a/deps/glslang-new/Test/sample.frag b/deps/glslang/glslang-old/Test/sample.frag similarity index 100% rename from deps/glslang-new/Test/sample.frag rename to deps/glslang/glslang-old/Test/sample.frag diff --git a/deps/glslang-new/Test/sample.frag.out b/deps/glslang/glslang-old/Test/sample.frag.out similarity index 100% rename from deps/glslang-new/Test/sample.frag.out rename to deps/glslang/glslang-old/Test/sample.frag.out diff --git a/deps/glslang-new/Test/sample.vert b/deps/glslang/glslang-old/Test/sample.vert similarity index 100% rename from deps/glslang-new/Test/sample.vert rename to deps/glslang/glslang-old/Test/sample.vert diff --git a/deps/glslang-new/Test/sample.vert.out b/deps/glslang/glslang-old/Test/sample.vert.out similarity index 100% rename from deps/glslang-new/Test/sample.vert.out rename to deps/glslang/glslang-old/Test/sample.vert.out diff --git a/deps/glslang-new/Test/simpleFunctionCall.frag b/deps/glslang/glslang-old/Test/simpleFunctionCall.frag similarity index 100% rename from deps/glslang-new/Test/simpleFunctionCall.frag rename to deps/glslang/glslang-old/Test/simpleFunctionCall.frag diff --git a/deps/glslang-new/Test/specExamples.frag b/deps/glslang/glslang-old/Test/specExamples.frag similarity index 100% rename from deps/glslang-new/Test/specExamples.frag rename to deps/glslang/glslang-old/Test/specExamples.frag diff --git a/deps/glslang-new/Test/specExamples.vert b/deps/glslang/glslang-old/Test/specExamples.vert similarity index 100% rename from deps/glslang-new/Test/specExamples.vert rename to deps/glslang/glslang-old/Test/specExamples.vert diff --git a/deps/glslang-new/Test/spv.100ops.frag b/deps/glslang/glslang-old/Test/spv.100ops.frag similarity index 100% rename from deps/glslang-new/Test/spv.100ops.frag rename to deps/glslang/glslang-old/Test/spv.100ops.frag diff --git a/deps/glslang-new/Test/spv.130.frag b/deps/glslang/glslang-old/Test/spv.130.frag similarity index 100% rename from deps/glslang-new/Test/spv.130.frag rename to deps/glslang/glslang-old/Test/spv.130.frag diff --git a/deps/glslang-new/Test/spv.140.frag b/deps/glslang/glslang-old/Test/spv.140.frag similarity index 88% rename from deps/glslang-new/Test/spv.140.frag rename to deps/glslang/glslang-old/Test/spv.140.frag index ceeac47bf0..61ad1a6fb0 100644 --- a/deps/glslang-new/Test/spv.140.frag +++ b/deps/glslang/glslang-old/Test/spv.140.frag @@ -14,7 +14,7 @@ layout(std140) uniform bn { layout(column_major) mat4 matca[4]; layout(row_major) mat4 matr; layout(column_major) mat4 matc; - layout(align=512, offset=1024) mat4 matrdef; + mat4 matrdef; }; uniform sampler2DRect sampR; diff --git a/deps/glslang-new/Test/spv.150.geom b/deps/glslang/glslang-old/Test/spv.150.geom similarity index 100% rename from deps/glslang-new/Test/spv.150.geom rename to deps/glslang/glslang-old/Test/spv.150.geom diff --git a/deps/glslang-new/Test/spv.150.vert b/deps/glslang/glslang-old/Test/spv.150.vert similarity index 100% rename from deps/glslang-new/Test/spv.150.vert rename to deps/glslang/glslang-old/Test/spv.150.vert diff --git a/deps/glslang-new/Test/spv.300BuiltIns.vert b/deps/glslang/glslang-old/Test/spv.300BuiltIns.vert similarity index 100% rename from deps/glslang-new/Test/spv.300BuiltIns.vert rename to deps/glslang/glslang-old/Test/spv.300BuiltIns.vert diff --git a/deps/glslang-new/Test/spv.300layout.frag b/deps/glslang/glslang-old/Test/spv.300layout.frag similarity index 100% rename from deps/glslang-new/Test/spv.300layout.frag rename to deps/glslang/glslang-old/Test/spv.300layout.frag diff --git a/deps/glslang-new/Test/spv.300layout.vert b/deps/glslang/glslang-old/Test/spv.300layout.vert similarity index 90% rename from deps/glslang-new/Test/spv.300layout.vert rename to deps/glslang/glslang-old/Test/spv.300layout.vert index a32a95de78..81218b5d38 100644 --- a/deps/glslang-new/Test/spv.300layout.vert +++ b/deps/glslang/glslang-old/Test/spv.300layout.vert @@ -25,7 +25,7 @@ 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]; + uvec3 uv3a[4]; }; in uint uiuin; diff --git a/deps/glslang-new/Test/spv.300layoutp.vert b/deps/glslang/glslang-old/Test/spv.300layoutp.vert similarity index 100% rename from deps/glslang-new/Test/spv.300layoutp.vert rename to deps/glslang/glslang-old/Test/spv.300layoutp.vert diff --git a/deps/glslang-new/Test/spv.310.bitcast.frag b/deps/glslang/glslang-old/Test/spv.310.bitcast.frag similarity index 100% rename from deps/glslang-new/Test/spv.310.bitcast.frag rename to deps/glslang/glslang-old/Test/spv.310.bitcast.frag diff --git a/deps/glslang-new/Test/spv.310.comp b/deps/glslang/glslang-old/Test/spv.310.comp similarity index 83% rename from deps/glslang-new/Test/spv.310.comp rename to deps/glslang/glslang-old/Test/spv.310.comp index 53117dd977..bd183e042b 100644 --- a/deps/glslang-new/Test/spv.310.comp +++ b/deps/glslang/glslang-old/Test/spv.310.comp @@ -24,8 +24,6 @@ buffer outs { vec4 va[]; } outnames; -#extension GL_EXT_device_group : enable - void main() { barrier(); @@ -36,7 +34,4 @@ void main() 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-new/Test/spv.330.geom b/deps/glslang/glslang-old/Test/spv.330.geom similarity index 100% rename from deps/glslang-new/Test/spv.330.geom rename to deps/glslang/glslang-old/Test/spv.330.geom diff --git a/deps/glslang-new/Test/spv.400.frag b/deps/glslang/glslang-old/Test/spv.400.frag similarity index 100% rename from deps/glslang-new/Test/spv.400.frag rename to deps/glslang/glslang-old/Test/spv.400.frag diff --git a/deps/glslang-new/Test/spv.400.tesc b/deps/glslang/glslang-old/Test/spv.400.tesc similarity index 100% rename from deps/glslang-new/Test/spv.400.tesc rename to deps/glslang/glslang-old/Test/spv.400.tesc diff --git a/deps/glslang-new/Test/spv.400.tese b/deps/glslang/glslang-old/Test/spv.400.tese similarity index 100% rename from deps/glslang-new/Test/spv.400.tese rename to deps/glslang/glslang-old/Test/spv.400.tese diff --git a/deps/glslang-new/Test/spv.420.geom b/deps/glslang/glslang-old/Test/spv.420.geom similarity index 100% rename from deps/glslang-new/Test/spv.420.geom rename to deps/glslang/glslang-old/Test/spv.420.geom diff --git a/deps/glslang-new/Test/spv.430.frag b/deps/glslang/glslang-old/Test/spv.430.frag similarity index 100% rename from deps/glslang-new/Test/spv.430.frag rename to deps/glslang/glslang-old/Test/spv.430.frag diff --git a/deps/glslang-new/Test/spv.430.vert b/deps/glslang/glslang-old/Test/spv.430.vert similarity index 100% rename from deps/glslang-new/Test/spv.430.vert rename to deps/glslang/glslang-old/Test/spv.430.vert diff --git a/deps/glslang-new/Test/spv.450.tesc b/deps/glslang/glslang-old/Test/spv.450.tesc similarity index 83% rename from deps/glslang-new/Test/spv.450.tesc rename to deps/glslang/glslang-old/Test/spv.450.tesc index 47b9a40876..c3719f96d1 100644 --- a/deps/glslang-new/Test/spv.450.tesc +++ b/deps/glslang/glslang-old/Test/spv.450.tesc @@ -2,7 +2,7 @@ layout(vertices = 4) out; -layout(location=1) patch out vec4 patchOut; +patch out vec4 patchOut; struct S { float sMem1; // should not see a patch decoration @@ -17,7 +17,6 @@ layout(location = 12) patch out TheBlock { void main() { - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; } layout(location = 2) patch out SingleBlock { diff --git a/deps/glslang-new/Test/spv.AofA.frag b/deps/glslang/glslang-old/Test/spv.AofA.frag similarity index 100% rename from deps/glslang-new/Test/spv.AofA.frag rename to deps/glslang/glslang-old/Test/spv.AofA.frag diff --git a/deps/glslang-new/Test/spv.Operations.frag b/deps/glslang/glslang-old/Test/spv.Operations.frag similarity index 91% rename from deps/glslang-new/Test/spv.Operations.frag rename to deps/glslang/glslang-old/Test/spv.Operations.frag index 52f0a30fb4..5c8c8af0e5 100644 --- a/deps/glslang-new/Test/spv.Operations.frag +++ b/deps/glslang/glslang-old/Test/spv.Operations.frag @@ -135,7 +135,4 @@ void main() 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-new/Test/spv.accessChain.frag b/deps/glslang/glslang-old/Test/spv.accessChain.frag similarity index 87% rename from deps/glslang-new/Test/spv.accessChain.frag rename to deps/glslang/glslang-old/Test/spv.accessChain.frag index 3f4929b652..c7f805b577 100644 --- a/deps/glslang-new/Test/spv.accessChain.frag +++ b/deps/glslang/glslang-old/Test/spv.accessChain.frag @@ -74,11 +74,6 @@ 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; @@ -96,5 +91,4 @@ void main() GetColor11(s, u); GetColor12(s, u); GetColor13(s, u); - GetColor14(s, u); } diff --git a/deps/glslang-new/Test/spv.aggOps.frag b/deps/glslang/glslang-old/Test/spv.aggOps.frag similarity index 100% rename from deps/glslang-new/Test/spv.aggOps.frag rename to deps/glslang/glslang-old/Test/spv.aggOps.frag diff --git a/deps/glslang-new/Test/spv.always-discard.frag b/deps/glslang/glslang-old/Test/spv.always-discard.frag similarity index 100% rename from deps/glslang-new/Test/spv.always-discard.frag rename to deps/glslang/glslang-old/Test/spv.always-discard.frag diff --git a/deps/glslang-new/Test/spv.always-discard2.frag b/deps/glslang/glslang-old/Test/spv.always-discard2.frag similarity index 100% rename from deps/glslang-new/Test/spv.always-discard2.frag rename to deps/glslang/glslang-old/Test/spv.always-discard2.frag diff --git a/deps/glslang-new/Test/spv.atomic.comp b/deps/glslang/glslang-old/Test/spv.atomic.comp similarity index 100% rename from deps/glslang-new/Test/spv.atomic.comp rename to deps/glslang/glslang-old/Test/spv.atomic.comp diff --git a/deps/glslang-new/Test/spv.bitCast.frag b/deps/glslang/glslang-old/Test/spv.bitCast.frag similarity index 100% rename from deps/glslang-new/Test/spv.bitCast.frag rename to deps/glslang/glslang-old/Test/spv.bitCast.frag diff --git a/deps/glslang-new/Test/spv.bool.vert b/deps/glslang/glslang-old/Test/spv.bool.vert similarity index 100% rename from deps/glslang-new/Test/spv.bool.vert rename to deps/glslang/glslang-old/Test/spv.bool.vert diff --git a/deps/glslang-new/Test/spv.boolInBlock.frag b/deps/glslang/glslang-old/Test/spv.boolInBlock.frag similarity index 100% rename from deps/glslang-new/Test/spv.boolInBlock.frag rename to deps/glslang/glslang-old/Test/spv.boolInBlock.frag diff --git a/deps/glslang-new/Test/spv.branch-return.vert b/deps/glslang/glslang-old/Test/spv.branch-return.vert similarity index 100% rename from deps/glslang-new/Test/spv.branch-return.vert rename to deps/glslang/glslang-old/Test/spv.branch-return.vert diff --git a/deps/glslang-new/Test/spv.buffer.autoassign.frag b/deps/glslang/glslang-old/Test/spv.buffer.autoassign.frag similarity index 100% rename from deps/glslang-new/Test/spv.buffer.autoassign.frag rename to deps/glslang/glslang-old/Test/spv.buffer.autoassign.frag diff --git a/deps/glslang-new/Test/spv.conditionalDiscard.frag b/deps/glslang/glslang-old/Test/spv.conditionalDiscard.frag similarity index 100% rename from deps/glslang-new/Test/spv.conditionalDiscard.frag rename to deps/glslang/glslang-old/Test/spv.conditionalDiscard.frag diff --git a/deps/glslang-new/Test/spv.conversion.frag b/deps/glslang/glslang-old/Test/spv.conversion.frag similarity index 100% rename from deps/glslang-new/Test/spv.conversion.frag rename to deps/glslang/glslang-old/Test/spv.conversion.frag diff --git a/deps/glslang-new/Test/spv.dataOut.frag b/deps/glslang/glslang-old/Test/spv.dataOut.frag similarity index 100% rename from deps/glslang-new/Test/spv.dataOut.frag rename to deps/glslang/glslang-old/Test/spv.dataOut.frag diff --git a/deps/glslang-new/Test/spv.dataOutIndirect.frag b/deps/glslang/glslang-old/Test/spv.dataOutIndirect.frag similarity index 100% rename from deps/glslang-new/Test/spv.dataOutIndirect.frag rename to deps/glslang/glslang-old/Test/spv.dataOutIndirect.frag diff --git a/deps/glslang-new/Test/spv.dataOutIndirect.vert b/deps/glslang/glslang-old/Test/spv.dataOutIndirect.vert similarity index 100% rename from deps/glslang-new/Test/spv.dataOutIndirect.vert rename to deps/glslang/glslang-old/Test/spv.dataOutIndirect.vert diff --git a/deps/glslang-new/Test/spv.deepRvalue.frag b/deps/glslang/glslang-old/Test/spv.deepRvalue.frag similarity index 100% rename from deps/glslang-new/Test/spv.deepRvalue.frag rename to deps/glslang/glslang-old/Test/spv.deepRvalue.frag diff --git a/deps/glslang-new/Test/spv.depthOut.frag b/deps/glslang/glslang-old/Test/spv.depthOut.frag similarity index 100% rename from deps/glslang-new/Test/spv.depthOut.frag rename to deps/glslang/glslang-old/Test/spv.depthOut.frag diff --git a/deps/glslang-new/Test/spv.discard-dce.frag b/deps/glslang/glslang-old/Test/spv.discard-dce.frag similarity index 100% rename from deps/glslang-new/Test/spv.discard-dce.frag rename to deps/glslang/glslang-old/Test/spv.discard-dce.frag diff --git a/deps/glslang-new/Test/spv.do-simple.vert b/deps/glslang/glslang-old/Test/spv.do-simple.vert similarity index 100% rename from deps/glslang-new/Test/spv.do-simple.vert rename to deps/glslang/glslang-old/Test/spv.do-simple.vert diff --git a/deps/glslang-new/Test/spv.do-while-continue-break.vert b/deps/glslang/glslang-old/Test/spv.do-while-continue-break.vert similarity index 100% rename from deps/glslang-new/Test/spv.do-while-continue-break.vert rename to deps/glslang/glslang-old/Test/spv.do-while-continue-break.vert diff --git a/deps/glslang-new/Test/spv.doWhileLoop.frag b/deps/glslang/glslang-old/Test/spv.doWhileLoop.frag similarity index 100% rename from deps/glslang-new/Test/spv.doWhileLoop.frag rename to deps/glslang/glslang-old/Test/spv.doWhileLoop.frag diff --git a/deps/glslang-new/Test/spv.double.comp b/deps/glslang/glslang-old/Test/spv.double.comp similarity index 100% rename from deps/glslang-new/Test/spv.double.comp rename to deps/glslang/glslang-old/Test/spv.double.comp diff --git a/deps/glslang-new/Test/spv.earlyReturnDiscard.frag b/deps/glslang/glslang-old/Test/spv.earlyReturnDiscard.frag similarity index 100% rename from deps/glslang-new/Test/spv.earlyReturnDiscard.frag rename to deps/glslang/glslang-old/Test/spv.earlyReturnDiscard.frag diff --git a/deps/glslang-new/Test/spv.float16.frag b/deps/glslang/glslang-old/Test/spv.float16.frag similarity index 100% rename from deps/glslang-new/Test/spv.float16.frag rename to deps/glslang/glslang-old/Test/spv.float16.frag diff --git a/deps/glslang-new/Test/spv.flowControl.frag b/deps/glslang/glslang-old/Test/spv.flowControl.frag similarity index 100% rename from deps/glslang-new/Test/spv.flowControl.frag rename to deps/glslang/glslang-old/Test/spv.flowControl.frag diff --git a/deps/glslang-new/Test/spv.for-complex-condition.vert b/deps/glslang/glslang-old/Test/spv.for-complex-condition.vert similarity index 100% rename from deps/glslang-new/Test/spv.for-complex-condition.vert rename to deps/glslang/glslang-old/Test/spv.for-complex-condition.vert diff --git a/deps/glslang-new/Test/spv.for-continue-break.vert b/deps/glslang/glslang-old/Test/spv.for-continue-break.vert similarity index 100% rename from deps/glslang-new/Test/spv.for-continue-break.vert rename to deps/glslang/glslang-old/Test/spv.for-continue-break.vert diff --git a/deps/glslang-new/Test/spv.for-nobody.vert b/deps/glslang/glslang-old/Test/spv.for-nobody.vert similarity index 100% rename from deps/glslang-new/Test/spv.for-nobody.vert rename to deps/glslang/glslang-old/Test/spv.for-nobody.vert diff --git a/deps/glslang-new/Test/spv.for-notest.vert b/deps/glslang/glslang-old/Test/spv.for-notest.vert similarity index 100% rename from deps/glslang-new/Test/spv.for-notest.vert rename to deps/glslang/glslang-old/Test/spv.for-notest.vert diff --git a/deps/glslang-new/Test/spv.for-simple.vert b/deps/glslang/glslang-old/Test/spv.for-simple.vert similarity index 100% rename from deps/glslang-new/Test/spv.for-simple.vert rename to deps/glslang/glslang-old/Test/spv.for-simple.vert diff --git a/deps/glslang-new/Test/spv.forLoop.frag b/deps/glslang/glslang-old/Test/spv.forLoop.frag similarity index 100% rename from deps/glslang-new/Test/spv.forLoop.frag rename to deps/glslang/glslang-old/Test/spv.forLoop.frag diff --git a/deps/glslang-new/Test/spv.forwardFun.frag b/deps/glslang/glslang-old/Test/spv.forwardFun.frag similarity index 100% rename from deps/glslang-new/Test/spv.forwardFun.frag rename to deps/glslang/glslang-old/Test/spv.forwardFun.frag diff --git a/deps/glslang-new/Test/spv.functionCall.frag b/deps/glslang/glslang-old/Test/spv.functionCall.frag similarity index 100% rename from deps/glslang-new/Test/spv.functionCall.frag rename to deps/glslang/glslang-old/Test/spv.functionCall.frag diff --git a/deps/glslang-new/Test/spv.functionSemantics.frag b/deps/glslang/glslang-old/Test/spv.functionSemantics.frag similarity index 100% rename from deps/glslang-new/Test/spv.functionSemantics.frag rename to deps/glslang/glslang-old/Test/spv.functionSemantics.frag diff --git a/deps/glslang-new/Test/spv.glFragColor.frag b/deps/glslang/glslang-old/Test/spv.glFragColor.frag similarity index 100% rename from deps/glslang-new/Test/spv.glFragColor.frag rename to deps/glslang/glslang-old/Test/spv.glFragColor.frag diff --git a/deps/glslang-new/Test/spv.glsl.register.autoassign.frag b/deps/glslang/glslang-old/Test/spv.glsl.register.autoassign.frag similarity index 100% rename from deps/glslang-new/Test/spv.glsl.register.autoassign.frag rename to deps/glslang/glslang-old/Test/spv.glsl.register.autoassign.frag diff --git a/deps/glslang-new/Test/spv.glsl.register.noautoassign.frag b/deps/glslang/glslang-old/Test/spv.glsl.register.noautoassign.frag similarity index 61% rename from deps/glslang-new/Test/spv.glsl.register.noautoassign.frag rename to deps/glslang/glslang-old/Test/spv.glsl.register.noautoassign.frag index c385fbb9a0..f754d8aad9 100644 --- a/deps/glslang-new/Test/spv.glsl.register.noautoassign.frag +++ b/deps/glslang/glslang-old/Test/spv.glsl.register.noautoassign.frag @@ -1,23 +1,23 @@ #version 450 uniform layout(binding=0) sampler g_sSamp1; -uniform layout(binding=1) sampler g_sSamp2; +uniform 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 sampler g_sSamp4[3]; +uniform sampler g_sSamp5; -uniform layout(binding=5) sampler g_sSamp_unused1; -uniform layout(binding=6) sampler g_sSamp_unused2; +uniform sampler g_sSamp_unused1; +uniform 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=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=12) texture1D g_tTex_unused1; -uniform layout(binding=13) texture1D g_tTex_unused2; -uniform layout(binding=14) texture1D g_tTex_unused3; +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; diff --git a/deps/glslang-new/Test/spv.image.frag b/deps/glslang/glslang-old/Test/spv.image.frag similarity index 100% rename from deps/glslang-new/Test/spv.image.frag rename to deps/glslang/glslang-old/Test/spv.image.frag diff --git a/deps/glslang-new/Test/spv.int64.frag b/deps/glslang/glslang-old/Test/spv.int64.frag similarity index 93% rename from deps/glslang-new/Test/spv.int64.frag rename to deps/glslang/glslang-old/Test/spv.int64.frag index 8fda12b3aa..8021b7e90f 100644 --- a/deps/glslang-new/Test/spv.int64.frag +++ b/deps/glslang/glslang-old/Test/spv.int64.frag @@ -1,7 +1,6 @@ #version 450 #extension GL_ARB_gpu_shader_int64: enable -#extension GL_KHX_shader_explicit_arithmetic_types_int64: require layout(binding = 0) uniform Uniforms { @@ -116,8 +115,6 @@ void operators() i64 = i64 % i; // Shift - u64v = u64v << i; - i64 = i64 >> uv.y; u64v <<= i; i64 >>= uv.y; diff --git a/deps/glslang-new/Test/spv.intOps.vert b/deps/glslang/glslang-old/Test/spv.intOps.vert similarity index 100% rename from deps/glslang-new/Test/spv.intOps.vert rename to deps/glslang/glslang-old/Test/spv.intOps.vert diff --git a/deps/glslang-new/Test/spv.interpOps.frag b/deps/glslang/glslang-old/Test/spv.interpOps.frag similarity index 100% rename from deps/glslang-new/Test/spv.interpOps.frag rename to deps/glslang/glslang-old/Test/spv.interpOps.frag diff --git a/deps/glslang-new/Test/spv.layoutNested.vert b/deps/glslang/glslang-old/Test/spv.layoutNested.vert similarity index 100% rename from deps/glslang-new/Test/spv.layoutNested.vert rename to deps/glslang/glslang-old/Test/spv.layoutNested.vert diff --git a/deps/glslang-new/Test/spv.length.frag b/deps/glslang/glslang-old/Test/spv.length.frag similarity index 100% rename from deps/glslang-new/Test/spv.length.frag rename to deps/glslang/glslang-old/Test/spv.length.frag diff --git a/deps/glslang-new/Test/spv.localAggregates.frag b/deps/glslang/glslang-old/Test/spv.localAggregates.frag similarity index 100% rename from deps/glslang-new/Test/spv.localAggregates.frag rename to deps/glslang/glslang-old/Test/spv.localAggregates.frag diff --git a/deps/glslang-new/Test/spv.loops.frag b/deps/glslang/glslang-old/Test/spv.loops.frag similarity index 100% rename from deps/glslang-new/Test/spv.loops.frag rename to deps/glslang/glslang-old/Test/spv.loops.frag diff --git a/deps/glslang-new/Test/spv.loopsArtificial.frag b/deps/glslang/glslang-old/Test/spv.loopsArtificial.frag similarity index 100% rename from deps/glslang-new/Test/spv.loopsArtificial.frag rename to deps/glslang/glslang-old/Test/spv.loopsArtificial.frag diff --git a/deps/glslang-new/Test/spv.matFun.vert b/deps/glslang/glslang-old/Test/spv.matFun.vert similarity index 100% rename from deps/glslang-new/Test/spv.matFun.vert rename to deps/glslang/glslang-old/Test/spv.matFun.vert diff --git a/deps/glslang-new/Test/spv.matrix.frag b/deps/glslang/glslang-old/Test/spv.matrix.frag similarity index 85% rename from deps/glslang-new/Test/spv.matrix.frag rename to deps/glslang/glslang-old/Test/spv.matrix.frag index 3157173788..10a52566f9 100644 --- a/deps/glslang-new/Test/spv.matrix.frag +++ b/deps/glslang/glslang-old/Test/spv.matrix.frag @@ -43,7 +43,4 @@ void main() 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-new/Test/spv.matrix2.frag b/deps/glslang/glslang-old/Test/spv.matrix2.frag similarity index 100% rename from deps/glslang-new/Test/spv.matrix2.frag rename to deps/glslang/glslang-old/Test/spv.matrix2.frag diff --git a/deps/glslang-new/Test/spv.memoryQualifier.frag b/deps/glslang/glslang-old/Test/spv.memoryQualifier.frag similarity index 100% rename from deps/glslang-new/Test/spv.memoryQualifier.frag rename to deps/glslang/glslang-old/Test/spv.memoryQualifier.frag diff --git a/deps/glslang-new/Test/spv.merge-unreachable.frag b/deps/glslang/glslang-old/Test/spv.merge-unreachable.frag similarity index 100% rename from deps/glslang-new/Test/spv.merge-unreachable.frag rename to deps/glslang/glslang-old/Test/spv.merge-unreachable.frag diff --git a/deps/glslang-new/Test/spv.multiStruct.comp b/deps/glslang/glslang-old/Test/spv.multiStruct.comp similarity index 100% rename from deps/glslang-new/Test/spv.multiStruct.comp rename to deps/glslang/glslang-old/Test/spv.multiStruct.comp diff --git a/deps/glslang-new/Test/spv.multiStructFuncall.frag b/deps/glslang/glslang-old/Test/spv.multiStructFuncall.frag similarity index 100% rename from deps/glslang-new/Test/spv.multiStructFuncall.frag rename to deps/glslang/glslang-old/Test/spv.multiStructFuncall.frag diff --git a/deps/glslang-new/Test/spv.newTexture.frag b/deps/glslang/glslang-old/Test/spv.newTexture.frag similarity index 100% rename from deps/glslang-new/Test/spv.newTexture.frag rename to deps/glslang/glslang-old/Test/spv.newTexture.frag diff --git a/deps/glslang-new/Test/spv.noDeadDecorations.vert b/deps/glslang/glslang-old/Test/spv.noDeadDecorations.vert similarity index 100% rename from deps/glslang-new/Test/spv.noDeadDecorations.vert rename to deps/glslang/glslang-old/Test/spv.noDeadDecorations.vert diff --git a/deps/glslang-new/Test/spv.noWorkgroup.comp b/deps/glslang/glslang-old/Test/spv.noWorkgroup.comp similarity index 100% rename from deps/glslang-new/Test/spv.noWorkgroup.comp rename to deps/glslang/glslang-old/Test/spv.noWorkgroup.comp diff --git a/deps/glslang-new/Test/spv.nonSquare.vert b/deps/glslang/glslang-old/Test/spv.nonSquare.vert similarity index 100% rename from deps/glslang-new/Test/spv.nonSquare.vert rename to deps/glslang/glslang-old/Test/spv.nonSquare.vert diff --git a/deps/glslang-new/Test/spv.offsets.frag b/deps/glslang/glslang-old/Test/spv.offsets.frag similarity index 100% rename from deps/glslang-new/Test/spv.offsets.frag rename to deps/glslang/glslang-old/Test/spv.offsets.frag diff --git a/deps/glslang-new/Test/spv.precise.tesc b/deps/glslang/glslang-old/Test/spv.precise.tesc similarity index 100% rename from deps/glslang-new/Test/spv.precise.tesc rename to deps/glslang/glslang-old/Test/spv.precise.tesc diff --git a/deps/glslang-new/Test/spv.precise.tese b/deps/glslang/glslang-old/Test/spv.precise.tese similarity index 100% rename from deps/glslang-new/Test/spv.precise.tese rename to deps/glslang/glslang-old/Test/spv.precise.tese diff --git a/deps/glslang-new/Test/spv.precision.frag b/deps/glslang/glslang-old/Test/spv.precision.frag similarity index 100% rename from deps/glslang-new/Test/spv.precision.frag rename to deps/glslang/glslang-old/Test/spv.precision.frag diff --git a/deps/glslang-new/Test/spv.prepost.frag b/deps/glslang/glslang-old/Test/spv.prepost.frag similarity index 100% rename from deps/glslang-new/Test/spv.prepost.frag rename to deps/glslang/glslang-old/Test/spv.prepost.frag diff --git a/deps/glslang-new/Test/spv.pushConstant.vert b/deps/glslang/glslang-old/Test/spv.pushConstant.vert similarity index 100% rename from deps/glslang-new/Test/spv.pushConstant.vert rename to deps/glslang/glslang-old/Test/spv.pushConstant.vert diff --git a/deps/glslang-new/Test/spv.qualifiers.vert b/deps/glslang/glslang-old/Test/spv.qualifiers.vert similarity index 100% rename from deps/glslang-new/Test/spv.qualifiers.vert rename to deps/glslang/glslang-old/Test/spv.qualifiers.vert diff --git a/deps/glslang-new/Test/spv.queryL.frag b/deps/glslang/glslang-old/Test/spv.queryL.frag similarity index 100% rename from deps/glslang-new/Test/spv.queryL.frag rename to deps/glslang/glslang-old/Test/spv.queryL.frag diff --git a/deps/glslang-new/Test/spv.register.autoassign-2.frag b/deps/glslang/glslang-old/Test/spv.register.autoassign-2.frag similarity index 100% rename from deps/glslang-new/Test/spv.register.autoassign-2.frag rename to deps/glslang/glslang-old/Test/spv.register.autoassign-2.frag diff --git a/deps/glslang-new/Test/spv.register.autoassign.frag b/deps/glslang/glslang-old/Test/spv.register.autoassign.frag similarity index 100% rename from deps/glslang-new/Test/spv.register.autoassign.frag rename to deps/glslang/glslang-old/Test/spv.register.autoassign.frag diff --git a/deps/glslang-new/Test/spv.register.autoassign.rangetest.frag b/deps/glslang/glslang-old/Test/spv.register.autoassign.rangetest.frag similarity index 100% rename from deps/glslang-new/Test/spv.register.autoassign.rangetest.frag rename to deps/glslang/glslang-old/Test/spv.register.autoassign.rangetest.frag diff --git a/deps/glslang-new/Test/spv.register.noautoassign.frag b/deps/glslang/glslang-old/Test/spv.register.noautoassign.frag similarity index 100% rename from deps/glslang-new/Test/spv.register.noautoassign.frag rename to deps/glslang/glslang-old/Test/spv.register.noautoassign.frag diff --git a/deps/glslang-new/Test/spv.rw.autoassign.frag b/deps/glslang/glslang-old/Test/spv.rw.autoassign.frag similarity index 100% rename from deps/glslang-new/Test/spv.rw.autoassign.frag rename to deps/glslang/glslang-old/Test/spv.rw.autoassign.frag diff --git a/deps/glslang-new/Test/spv.separate.frag b/deps/glslang/glslang-old/Test/spv.separate.frag similarity index 100% rename from deps/glslang-new/Test/spv.separate.frag rename to deps/glslang/glslang-old/Test/spv.separate.frag diff --git a/deps/glslang-new/Test/spv.set.vert b/deps/glslang/glslang-old/Test/spv.set.vert similarity index 100% rename from deps/glslang-new/Test/spv.set.vert rename to deps/glslang/glslang-old/Test/spv.set.vert diff --git a/deps/glslang-new/Test/spv.shaderBallot.comp b/deps/glslang/glslang-old/Test/spv.shaderBallot.comp similarity index 100% rename from deps/glslang-new/Test/spv.shaderBallot.comp rename to deps/glslang/glslang-old/Test/spv.shaderBallot.comp diff --git a/deps/glslang-new/Test/spv.shaderDrawParams.vert b/deps/glslang/glslang-old/Test/spv.shaderDrawParams.vert similarity index 100% rename from deps/glslang-new/Test/spv.shaderDrawParams.vert rename to deps/glslang/glslang-old/Test/spv.shaderDrawParams.vert diff --git a/deps/glslang-new/Test/spv.shaderGroupVote.comp b/deps/glslang/glslang-old/Test/spv.shaderGroupVote.comp similarity index 100% rename from deps/glslang-new/Test/spv.shaderGroupVote.comp rename to deps/glslang/glslang-old/Test/spv.shaderGroupVote.comp diff --git a/deps/glslang-new/Test/spv.shiftOps.frag b/deps/glslang/glslang-old/Test/spv.shiftOps.frag similarity index 100% rename from deps/glslang-new/Test/spv.shiftOps.frag rename to deps/glslang/glslang-old/Test/spv.shiftOps.frag diff --git a/deps/glslang-new/Test/spv.shortCircuit.frag b/deps/glslang/glslang-old/Test/spv.shortCircuit.frag similarity index 100% rename from deps/glslang-new/Test/spv.shortCircuit.frag rename to deps/glslang/glslang-old/Test/spv.shortCircuit.frag diff --git a/deps/glslang-new/Test/spv.simpleFunctionCall.frag b/deps/glslang/glslang-old/Test/spv.simpleFunctionCall.frag similarity index 100% rename from deps/glslang-new/Test/spv.simpleFunctionCall.frag rename to deps/glslang/glslang-old/Test/spv.simpleFunctionCall.frag diff --git a/deps/glslang-new/Test/spv.simpleMat.vert b/deps/glslang/glslang-old/Test/spv.simpleMat.vert similarity index 100% rename from deps/glslang-new/Test/spv.simpleMat.vert rename to deps/glslang/glslang-old/Test/spv.simpleMat.vert diff --git a/deps/glslang-new/Test/spv.sparseTexture.frag b/deps/glslang/glslang-old/Test/spv.sparseTexture.frag similarity index 100% rename from deps/glslang-new/Test/spv.sparseTexture.frag rename to deps/glslang/glslang-old/Test/spv.sparseTexture.frag diff --git a/deps/glslang-new/Test/spv.sparseTextureClamp.frag b/deps/glslang/glslang-old/Test/spv.sparseTextureClamp.frag similarity index 100% rename from deps/glslang-new/Test/spv.sparseTextureClamp.frag rename to deps/glslang/glslang-old/Test/spv.sparseTextureClamp.frag diff --git a/deps/glslang-new/Test/spv.specConst.vert b/deps/glslang/glslang-old/Test/spv.specConst.vert similarity index 100% rename from deps/glslang-new/Test/spv.specConst.vert rename to deps/glslang/glslang-old/Test/spv.specConst.vert diff --git a/deps/glslang-new/Test/spv.specConstant.comp b/deps/glslang/glslang-old/Test/spv.specConstant.comp similarity index 100% rename from deps/glslang-new/Test/spv.specConstant.comp rename to deps/glslang/glslang-old/Test/spv.specConstant.comp diff --git a/deps/glslang-new/Test/spv.specConstant.vert b/deps/glslang/glslang-old/Test/spv.specConstant.vert similarity index 100% rename from deps/glslang-new/Test/spv.specConstant.vert rename to deps/glslang/glslang-old/Test/spv.specConstant.vert diff --git a/deps/glslang-new/Test/spv.specConstantComposite.vert b/deps/glslang/glslang-old/Test/spv.specConstantComposite.vert similarity index 100% rename from deps/glslang-new/Test/spv.specConstantComposite.vert rename to deps/glslang/glslang-old/Test/spv.specConstantComposite.vert diff --git a/deps/glslang-new/Test/spv.specConstantOperations.vert b/deps/glslang/glslang-old/Test/spv.specConstantOperations.vert similarity index 90% rename from deps/glslang-new/Test/spv.specConstantOperations.vert rename to deps/glslang/glslang-old/Test/spv.specConstantOperations.vert index 93be12c589..f67561c3a8 100644 --- a/deps/glslang-new/Test/spv.specConstantOperations.vert +++ b/deps/glslang/glslang-old/Test/spv.specConstantOperations.vert @@ -110,15 +110,5 @@ int non_const_array_size_from_spec_const() { 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-new/Test/spv.structAssignment.frag b/deps/glslang/glslang-old/Test/spv.structAssignment.frag similarity index 100% rename from deps/glslang-new/Test/spv.structAssignment.frag rename to deps/glslang/glslang-old/Test/spv.structAssignment.frag diff --git a/deps/glslang-new/Test/spv.structDeref.frag b/deps/glslang/glslang-old/Test/spv.structDeref.frag similarity index 100% rename from deps/glslang-new/Test/spv.structDeref.frag rename to deps/glslang/glslang-old/Test/spv.structDeref.frag diff --git a/deps/glslang-new/Test/spv.structure.frag b/deps/glslang/glslang-old/Test/spv.structure.frag similarity index 100% rename from deps/glslang-new/Test/spv.structure.frag rename to deps/glslang/glslang-old/Test/spv.structure.frag diff --git a/deps/glslang-new/Test/spv.subpass.frag b/deps/glslang/glslang-old/Test/spv.subpass.frag similarity index 100% rename from deps/glslang-new/Test/spv.subpass.frag rename to deps/glslang/glslang-old/Test/spv.subpass.frag diff --git a/deps/glslang-new/Test/spv.switch.frag b/deps/glslang/glslang-old/Test/spv.switch.frag similarity index 100% rename from deps/glslang-new/Test/spv.switch.frag rename to deps/glslang/glslang-old/Test/spv.switch.frag diff --git a/deps/glslang-new/Test/spv.swizzle.frag b/deps/glslang/glslang-old/Test/spv.swizzle.frag similarity index 100% rename from deps/glslang-new/Test/spv.swizzle.frag rename to deps/glslang/glslang-old/Test/spv.swizzle.frag diff --git a/deps/glslang-new/Test/spv.swizzleInversion.frag b/deps/glslang/glslang-old/Test/spv.swizzleInversion.frag similarity index 100% rename from deps/glslang-new/Test/spv.swizzleInversion.frag rename to deps/glslang/glslang-old/Test/spv.swizzleInversion.frag diff --git a/deps/glslang-new/Test/spv.test.frag b/deps/glslang/glslang-old/Test/spv.test.frag similarity index 100% rename from deps/glslang-new/Test/spv.test.frag rename to deps/glslang/glslang-old/Test/spv.test.frag diff --git a/deps/glslang-new/Test/spv.test.vert b/deps/glslang/glslang-old/Test/spv.test.vert similarity index 100% rename from deps/glslang-new/Test/spv.test.vert rename to deps/glslang/glslang-old/Test/spv.test.vert diff --git a/deps/glslang-new/Test/spv.texture.frag b/deps/glslang/glslang-old/Test/spv.texture.frag similarity index 100% rename from deps/glslang-new/Test/spv.texture.frag rename to deps/glslang/glslang-old/Test/spv.texture.frag diff --git a/deps/glslang-new/Test/spv.texture.vert b/deps/glslang/glslang-old/Test/spv.texture.vert similarity index 100% rename from deps/glslang-new/Test/spv.texture.vert rename to deps/glslang/glslang-old/Test/spv.texture.vert diff --git a/deps/glslang-new/Test/spv.types.frag b/deps/glslang/glslang-old/Test/spv.types.frag similarity index 100% rename from deps/glslang-new/Test/spv.types.frag rename to deps/glslang/glslang-old/Test/spv.types.frag diff --git a/deps/glslang-new/Test/spv.uint.frag b/deps/glslang/glslang-old/Test/spv.uint.frag similarity index 100% rename from deps/glslang-new/Test/spv.uint.frag rename to deps/glslang/glslang-old/Test/spv.uint.frag diff --git a/deps/glslang-new/Test/spv.uniformArray.frag b/deps/glslang/glslang-old/Test/spv.uniformArray.frag similarity index 100% rename from deps/glslang-new/Test/spv.uniformArray.frag rename to deps/glslang/glslang-old/Test/spv.uniformArray.frag diff --git a/deps/glslang-new/Test/spv.variableArrayIndex.frag b/deps/glslang/glslang-old/Test/spv.variableArrayIndex.frag similarity index 100% rename from deps/glslang-new/Test/spv.variableArrayIndex.frag rename to deps/glslang/glslang-old/Test/spv.variableArrayIndex.frag diff --git a/deps/glslang-new/Test/spv.varyingArray.frag b/deps/glslang/glslang-old/Test/spv.varyingArray.frag similarity index 100% rename from deps/glslang-new/Test/spv.varyingArray.frag rename to deps/glslang/glslang-old/Test/spv.varyingArray.frag diff --git a/deps/glslang-new/Test/spv.varyingArrayIndirect.frag b/deps/glslang/glslang-old/Test/spv.varyingArrayIndirect.frag similarity index 100% rename from deps/glslang-new/Test/spv.varyingArrayIndirect.frag rename to deps/glslang/glslang-old/Test/spv.varyingArrayIndirect.frag diff --git a/deps/glslang-new/Test/spv.voidFunction.frag b/deps/glslang/glslang-old/Test/spv.voidFunction.frag similarity index 100% rename from deps/glslang-new/Test/spv.voidFunction.frag rename to deps/glslang/glslang-old/Test/spv.voidFunction.frag diff --git a/deps/glslang-new/Test/spv.while-continue-break.vert b/deps/glslang/glslang-old/Test/spv.while-continue-break.vert similarity index 100% rename from deps/glslang-new/Test/spv.while-continue-break.vert rename to deps/glslang/glslang-old/Test/spv.while-continue-break.vert diff --git a/deps/glslang-new/Test/spv.while-simple.vert b/deps/glslang/glslang-old/Test/spv.while-simple.vert similarity index 100% rename from deps/glslang-new/Test/spv.while-simple.vert rename to deps/glslang/glslang-old/Test/spv.while-simple.vert diff --git a/deps/glslang-new/Test/spv.whileLoop.frag b/deps/glslang/glslang-old/Test/spv.whileLoop.frag similarity index 100% rename from deps/glslang-new/Test/spv.whileLoop.frag rename to deps/glslang/glslang-old/Test/spv.whileLoop.frag diff --git a/deps/glslang-new/Test/structAssignment.frag b/deps/glslang/glslang-old/Test/structAssignment.frag similarity index 100% rename from deps/glslang-new/Test/structAssignment.frag rename to deps/glslang/glslang-old/Test/structAssignment.frag diff --git a/deps/glslang-new/Test/structDeref.frag b/deps/glslang/glslang-old/Test/structDeref.frag similarity index 100% rename from deps/glslang-new/Test/structDeref.frag rename to deps/glslang/glslang-old/Test/structDeref.frag diff --git a/deps/glslang-new/Test/structure.frag b/deps/glslang/glslang-old/Test/structure.frag similarity index 100% rename from deps/glslang-new/Test/structure.frag rename to deps/glslang/glslang-old/Test/structure.frag diff --git a/deps/glslang-new/Test/switch.frag b/deps/glslang/glslang-old/Test/switch.frag similarity index 100% rename from deps/glslang-new/Test/switch.frag rename to deps/glslang/glslang-old/Test/switch.frag diff --git a/deps/glslang-new/Test/swizzle.frag b/deps/glslang/glslang-old/Test/swizzle.frag similarity index 100% rename from deps/glslang-new/Test/swizzle.frag rename to deps/glslang/glslang-old/Test/swizzle.frag diff --git a/deps/glslang-new/Test/syntaxError.frag b/deps/glslang/glslang-old/Test/syntaxError.frag similarity index 100% rename from deps/glslang-new/Test/syntaxError.frag rename to deps/glslang/glslang-old/Test/syntaxError.frag diff --git a/deps/glslang-new/Test/test.frag b/deps/glslang/glslang-old/Test/test.frag similarity index 100% rename from deps/glslang-new/Test/test.frag rename to deps/glslang/glslang-old/Test/test.frag diff --git a/deps/glslang-new/Test/texture.frag b/deps/glslang/glslang-old/Test/texture.frag similarity index 100% rename from deps/glslang-new/Test/texture.frag rename to deps/glslang/glslang-old/Test/texture.frag diff --git a/deps/glslang-new/Test/tokenLength.vert b/deps/glslang/glslang-old/Test/tokenLength.vert old mode 100755 new mode 100644 similarity index 99% rename from deps/glslang-new/Test/tokenLength.vert rename to deps/glslang/glslang-old/Test/tokenLength.vert index 21d446fae4..691b104234 --- a/deps/glslang-new/Test/tokenLength.vert +++ b/deps/glslang/glslang-old/Test/tokenLength.vert @@ -1,5 +1,5 @@ #version 300 es -//#pragma glslang_binary_double_output + // 1023 characters in float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; diff --git a/deps/glslang-new/Test/types.frag b/deps/glslang/glslang-old/Test/types.frag similarity index 100% rename from deps/glslang-new/Test/types.frag rename to deps/glslang/glslang-old/Test/types.frag diff --git a/deps/glslang-new/Test/uint.frag b/deps/glslang/glslang-old/Test/uint.frag similarity index 100% rename from deps/glslang-new/Test/uint.frag rename to deps/glslang/glslang-old/Test/uint.frag diff --git a/deps/glslang-new/Test/uniformArray.frag b/deps/glslang/glslang-old/Test/uniformArray.frag similarity index 100% rename from deps/glslang-new/Test/uniformArray.frag rename to deps/glslang/glslang-old/Test/uniformArray.frag diff --git a/deps/glslang-new/Test/variableArrayIndex.frag b/deps/glslang/glslang-old/Test/variableArrayIndex.frag similarity index 100% rename from deps/glslang-new/Test/variableArrayIndex.frag rename to deps/glslang/glslang-old/Test/variableArrayIndex.frag diff --git a/deps/glslang-new/Test/varyingArray.frag b/deps/glslang/glslang-old/Test/varyingArray.frag similarity index 100% rename from deps/glslang-new/Test/varyingArray.frag rename to deps/glslang/glslang-old/Test/varyingArray.frag diff --git a/deps/glslang-new/Test/varyingArrayIndirect.frag b/deps/glslang/glslang-old/Test/varyingArrayIndirect.frag similarity index 100% rename from deps/glslang-new/Test/varyingArrayIndirect.frag rename to deps/glslang/glslang-old/Test/varyingArrayIndirect.frag diff --git a/deps/glslang-new/Test/versionsClean.frag b/deps/glslang/glslang-old/Test/versionsClean.frag similarity index 100% rename from deps/glslang-new/Test/versionsClean.frag rename to deps/glslang/glslang-old/Test/versionsClean.frag diff --git a/deps/glslang-new/Test/versionsClean.vert b/deps/glslang/glslang-old/Test/versionsClean.vert similarity index 100% rename from deps/glslang-new/Test/versionsClean.vert rename to deps/glslang/glslang-old/Test/versionsClean.vert diff --git a/deps/glslang-new/Test/versionsErrors.frag b/deps/glslang/glslang-old/Test/versionsErrors.frag similarity index 100% rename from deps/glslang-new/Test/versionsErrors.frag rename to deps/glslang/glslang-old/Test/versionsErrors.frag diff --git a/deps/glslang-new/Test/versionsErrors.vert b/deps/glslang/glslang-old/Test/versionsErrors.vert similarity index 100% rename from deps/glslang-new/Test/versionsErrors.vert rename to deps/glslang/glslang-old/Test/versionsErrors.vert diff --git a/deps/glslang-new/Test/voidFunction.frag b/deps/glslang/glslang-old/Test/voidFunction.frag similarity index 100% rename from deps/glslang-new/Test/voidFunction.frag rename to deps/glslang/glslang-old/Test/voidFunction.frag diff --git a/deps/glslang-new/Test/vulkan.ast.vert b/deps/glslang/glslang-old/Test/vulkan.ast.vert similarity index 100% rename from deps/glslang-new/Test/vulkan.ast.vert rename to deps/glslang/glslang-old/Test/vulkan.ast.vert diff --git a/deps/glslang-new/Test/vulkan.comp b/deps/glslang/glslang-old/Test/vulkan.comp similarity index 100% rename from deps/glslang-new/Test/vulkan.comp rename to deps/glslang/glslang-old/Test/vulkan.comp diff --git a/deps/glslang-new/Test/vulkan.frag b/deps/glslang/glslang-old/Test/vulkan.frag similarity index 83% rename from deps/glslang-new/Test/vulkan.frag rename to deps/glslang/glslang-old/Test/vulkan.frag index 74a5aa1af1..fd9106cda3 100644 --- a/deps/glslang-new/Test/vulkan.frag +++ b/deps/glslang/glslang-old/Test/vulkan.frag @@ -1,9 +1,9 @@ #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 +uniform sampler s; +uniform sampler sA[4]; +uniform texture2D t2d; +uniform texture3D t3d[4]; int i; uniform samplerShadow sShadow; uniform texture3D t3d5[5]; @@ -28,7 +28,7 @@ void badConst() 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 +out vec4 color; void main() { @@ -43,10 +43,10 @@ layout(push_constant) buffer pcb { // ERROR, not on a buffer 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 +}; // ERROR, no instance name layout(input_attachment_index = 2) uniform subpassInput subD; layout(input_attachment_index = 3) uniform texture2D subDbad1; // ERROR, not a texture @@ -92,14 +92,4 @@ void callUserTexture() 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-new/Test/vulkan.vert b/deps/glslang/glslang-old/Test/vulkan.vert similarity index 73% rename from deps/glslang-new/Test/vulkan.vert rename to deps/glslang/glslang-old/Test/vulkan.vert index a6af2d57da..b234c75bb4 100644 --- a/deps/glslang-new/Test/vulkan.vert +++ b/deps/glslang/glslang-old/Test/vulkan.vert @@ -45,21 +45,3 @@ layout(set = 1, push_constant) uniform badpc { int a; } badpcI; // ERROR, no de #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-new/Test/whileLoop.frag b/deps/glslang/glslang-old/Test/whileLoop.frag similarity index 100% rename from deps/glslang-new/Test/whileLoop.frag rename to deps/glslang/glslang-old/Test/whileLoop.frag diff --git a/deps/glslang-new/glslang/CMakeLists.txt b/deps/glslang/glslang-old/glslang/CMakeLists.txt old mode 100755 new mode 100644 similarity index 76% rename from deps/glslang-new/glslang/CMakeLists.txt rename to deps/glslang/glslang-old/glslang/CMakeLists.txt index 1efde2edd4..95d4bdd8fc --- a/deps/glslang-new/glslang/CMakeLists.txt +++ b/deps/glslang/glslang-old/glslang/CMakeLists.txt @@ -9,7 +9,6 @@ endif(WIN32) set(SOURCES MachineIndependent/glslang.y MachineIndependent/glslang_tab.cpp - MachineIndependent/attribute.cpp MachineIndependent/Constant.cpp MachineIndependent/iomapper.cpp MachineIndependent/InfoSink.cpp @@ -32,7 +31,9 @@ set(SOURCES MachineIndependent/preprocessor/Pp.cpp MachineIndependent/preprocessor/PpAtom.cpp MachineIndependent/preprocessor/PpContext.cpp + MachineIndependent/preprocessor/PpMemory.cpp MachineIndependent/preprocessor/PpScanner.cpp + MachineIndependent/preprocessor/PpSymbols.cpp MachineIndependent/preprocessor/PpTokens.cpp MachineIndependent/propagateNoContraction.cpp GenericCodeGen/CodeGen.cpp @@ -52,7 +53,6 @@ set(HEADERS Include/revision.h Include/ShHandle.h Include/Types.h - MachineIndependent/attribute.h MachineIndependent/glslang_tab.cpp.h MachineIndependent/gl_types.h MachineIndependent/Initialize.h @@ -80,19 +80,8 @@ set(HEADERS # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) # set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp) -add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) +add_library(glslang STATIC ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) set_property(TARGET glslang PROPERTY FOLDER glslang) -set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON) -target_link_libraries(glslang OGLCompiler OSDependent) -target_include_directories(glslang PUBLIC ..) - -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/*") @@ -102,20 +91,5 @@ if(WIN32) source_group("MachineIndependent\\Preprocessor" REGULAR_EXPRESSION "MachineIndependent/preprocessor/*") endif(WIN32) -if(ENABLE_GLSLANG_INSTALL) - if(BUILD_SHARED_LIBS) - install(TARGETS glslang - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) - else() - install(TARGETS glslang - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() -endif(ENABLE_GLSLANG_INSTALL) - -if(ENABLE_GLSLANG_INSTALL) - foreach(file ${HEADERS}) - get_filename_component(dir ${file} DIRECTORY) - install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir}) - endforeach() -endif(ENABLE_GLSLANG_INSTALL) +install(TARGETS glslang + ARCHIVE DESTINATION lib) diff --git a/deps/glslang-new/glslang/GenericCodeGen/CodeGen.cpp b/deps/glslang/glslang-old/glslang/GenericCodeGen/CodeGen.cpp similarity index 62% rename from deps/glslang-new/glslang/GenericCodeGen/CodeGen.cpp rename to deps/glslang/glslang-old/glslang/GenericCodeGen/CodeGen.cpp index b3c7226dfa..dc78342ac9 100644 --- a/deps/glslang-new/glslang/GenericCodeGen/CodeGen.cpp +++ b/deps/glslang/glslang-old/glslang/GenericCodeGen/CodeGen.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. // #include "../Include/Common.h" diff --git a/deps/glslang-new/glslang/GenericCodeGen/Link.cpp b/deps/glslang/glslang-old/glslang/GenericCodeGen/Link.cpp similarity index 64% rename from deps/glslang-new/glslang/GenericCodeGen/Link.cpp rename to deps/glslang/glslang-old/glslang/GenericCodeGen/Link.cpp index c38db0f69f..8da88bda79 100644 --- a/deps/glslang-new/glslang/GenericCodeGen/Link.cpp +++ b/deps/glslang/glslang-old/glslang/GenericCodeGen/Link.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // diff --git a/deps/glslang-new/glslang/Include/BaseTypes.h b/deps/glslang/glslang-old/glslang/Include/BaseTypes.h similarity index 76% rename from deps/glslang-new/glslang/Include/BaseTypes.h rename to deps/glslang/glslang-old/glslang/Include/BaseTypes.h index 46fe159b49..38719306d0 100644 --- a/deps/glslang-new/glslang/Include/BaseTypes.h +++ b/deps/glslang/glslang-old/glslang/Include/BaseTypes.h @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _BASICTYPES_INCLUDED_ @@ -47,11 +46,9 @@ enum TBasicType { EbtVoid, EbtFloat, EbtDouble, +#ifdef AMD_EXTENSIONS EbtFloat16, - EbtInt8, - EbtUint8, - EbtInt16, - EbtUint16, +#endif EbtInt, EbtUint, EbtInt64, @@ -140,8 +137,6 @@ enum TBuiltInVariable { EbvLocalInvocationId, EbvGlobalInvocationId, EbvLocalInvocationIndex, - EbvNumSubgroups, - EbvSubgroupID, EbvSubGroupSize, EbvSubGroupInvocation, EbvSubGroupEqMask, @@ -149,13 +144,6 @@ enum TBuiltInVariable { EbvSubGroupGtMask, EbvSubGroupLeMask, EbvSubGroupLtMask, - EbvSubgroupSize2, - EbvSubgroupInvocation2, - EbvSubgroupEqMask2, - EbvSubgroupGeMask2, - EbvSubgroupGtMask2, - EbvSubgroupLeMask2, - EbvSubgroupLtMask2, EbvVertexId, EbvInstanceId, EbvVertexIndex, @@ -201,12 +189,10 @@ enum TBuiltInVariable { EbvFragColor, EbvFragData, EbvFragDepth, - EbvFragStencilRef, EbvSampleId, EbvSamplePosition, EbvSampleMask, EbvHelperInvocation, - #ifdef AMD_EXTENSIONS EbvBaryCoordNoPersp, EbvBaryCoordNoPerspCentroid, @@ -217,32 +203,10 @@ enum TBuiltInVariable { EbvBaryCoordPullModel, #endif - EbvViewIndex, - EbvDeviceIndex, - -#ifdef NV_EXTENSIONS - EbvViewportMaskNV, - EbvSecondaryPositionNV, - EbvSecondaryViewportMaskNV, - EbvPositionPerViewNV, - EbvViewportMaskPerViewNV, - EbvFragFullyCoveredNV, -#endif - // HLSL built-ins that live only temporarily, until they get remapped // to one of the above. EbvFragDepthGreater, EbvFragDepthLesser, - EbvGsOutputStream, - EbvOutputPatch, - EbvInputPatch, - - // structbuffer types - EbvAppendConsume, // no need to differentiate append and consume - EbvRWStructuredBuffer, - EbvStructuredBuffer, - EbvByteAddressBuffer, - EbvRWByteAddressBuffer, EbvLast }; @@ -339,12 +303,10 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v) case EbvFragColor: return "FragColor"; case EbvFragData: return "FragData"; case EbvFragDepth: return "FragDepth"; - case EbvFragStencilRef: return "FragStencilRef"; case EbvSampleId: return "SampleId"; case EbvSamplePosition: return "SamplePosition"; case EbvSampleMask: return "SampleMaskIn"; case EbvHelperInvocation: return "HelperInvocation"; - #ifdef AMD_EXTENSIONS case EbvBaryCoordNoPersp: return "BaryCoordNoPersp"; case EbvBaryCoordNoPerspCentroid: return "BaryCoordNoPerspCentroid"; @@ -354,18 +316,6 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v) case EbvBaryCoordSmoothSample: return "BaryCoordSmoothSample"; case EbvBaryCoordPullModel: return "BaryCoordPullModel"; #endif - - case EbvViewIndex: return "ViewIndex"; - case EbvDeviceIndex: return "DeviceIndex"; - -#ifdef NV_EXTENSIONS - case EbvViewportMaskNV: return "ViewportMaskNV"; - case EbvSecondaryPositionNV: return "SecondaryPositionNV"; - case EbvSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; - case EbvPositionPerViewNV: return "PositionPerViewNV"; - case EbvViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; - case EbvFragFullyCoveredNV: return "FragFullyCoveredNV"; -#endif default: return "unknown built-in variable"; } } @@ -381,7 +331,7 @@ enum TPrecisionQualifier { __inline const char* GetPrecisionQualifierString(TPrecisionQualifier p) { - switch (p) { + switch(p) { case EpqNone: return ""; break; case EpqLow: return "lowp"; break; case EpqMedium: return "mediump"; break; @@ -390,75 +340,6 @@ __inline const char* GetPrecisionQualifierString(TPrecisionQualifier p) } } -__inline bool isTypeSignedInt(TBasicType type) -{ - switch (type) { - case EbtInt8: - case EbtInt16: - case EbtInt: - case EbtInt64: - return true; - default: - return false; - } -} - -__inline bool isTypeUnsignedInt(TBasicType type) -{ - switch (type) { - case EbtUint8: - case EbtUint16: - case EbtUint: - case EbtUint64: - return true; - default: - return false; - } -} - -__inline bool isTypeInt(TBasicType type) -{ - return isTypeSignedInt(type) || isTypeUnsignedInt(type); -} - -__inline bool isTypeFloat(TBasicType type) -{ - switch (type) { - case EbtFloat: - case EbtDouble: - case EbtFloat16: - return true; - default: - return false; - } -} - -__inline int getTypeRank(TBasicType type) { - int res = -1; - switch(type) { - case EbtInt8: - case EbtUint8: - res = 0; - break; - case EbtInt16: - case EbtUint16: - res = 1; - break; - case EbtInt: - case EbtUint: - res = 2; - break; - case EbtInt64: - case EbtUint64: - res = 3; - break; - default: - assert(false); - break; - } - return res; -} - } // end namespace glslang #endif // _BASICTYPES_INCLUDED_ diff --git a/deps/glslang-new/glslang/Include/Common.h b/deps/glslang/glslang-old/glslang/Include/Common.h similarity index 71% rename from deps/glslang-new/glslang/Include/Common.h rename to deps/glslang/glslang-old/glslang/Include/Common.h index 35eaa31048..e0af6b1ff1 100644 --- a/deps/glslang-new/glslang/Include/Common.h +++ b/deps/glslang/glslang-old/glslang/Include/Common.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,23 +20,26 @@ // 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 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 _COMMON_INCLUDED_ #define _COMMON_INCLUDED_ + #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) + #include + #define UINT_PTR uintptr_t #if defined(__ANDROID__) || _MSC_VER < 1700 #include @@ -50,40 +53,19 @@ std::string to_string(const T& val) { } #endif -#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) || defined MINGW_HAS_SECURE_API - #include - #ifndef snprintf - #define snprintf sprintf_s - #endif - #define safe_vsprintf(buf,max,format,args) vsnprintf_s((buf), (max), (max), (format), (args)) -#elif defined (solaris) - #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) - #include - #define UINT_PTR uintptr_t -#else - #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) - #include - #define UINT_PTR uintptr_t -#endif - -#if defined(_MSC_VER) && _MSC_VER < 1800 - #include - inline long long int strtoll (const char* str, char** endptr, int base) - { - return _strtoi64(str, endptr, base); - } - inline unsigned long long int strtoull (const char* str, char** endptr, int base) - { - return _strtoui64(str, endptr, base); - } - inline long long int atoll (const char* str) - { - return strtoll(str, NULL, 10); - } -#endif - -#if defined(_MSC_VER) -#define strdup _strdup +#if defined(_MSC_VER) && _MSC_VER < 1700 +inline long long int strtoll (const char* str, char** endptr, int base) +{ + return _strtoi64(str, endptr, base); +} +inline unsigned long long int strtoull (const char* str, char** endptr, int base) +{ + return _strtoui64(str, endptr, base); +} +inline long long int atoll (const char* str) +{ + return strtoll(str, NULL, 10); +} #endif /* windows only pragma */ @@ -159,7 +141,7 @@ inline TString* NewPoolTString(const char* s) return new(memory) TString(s); } -template inline T* NewPoolObject(T*) +template inline T* NewPoolObject(T) { return new(GetThreadPoolAllocator().allocate(sizeof(T))) T; } @@ -209,14 +191,6 @@ template T Max(const T a, const T b) { return a > b ? a : b; } // // Create a TString object from an integer. // -#if defined _MSC_VER || defined MINGW_HAS_SECURE_API -inline const TString String(const int i, const int base = 10) -{ - char text[16]; // 32 bit ints are at most 10 digits in base 10 - _itoa_s(i, text, sizeof(text), base); - return text; -} -#else inline const TString String(const int i, const int /*base*/ = 10) { char text[16]; // 32 bit ints are at most 10 digits in base 10 @@ -226,11 +200,9 @@ inline const TString String(const int i, const int /*base*/ = 10) return text; } -#endif struct TSourceLoc { void init() { name = nullptr; string = 0; line = 0; column = 0; } - void init(int stringNum) { init(); string = stringNum; } // Returns the name if it exists. Otherwise, returns the string number. std::string getStringNameOrNum(bool quoteStringName = true) const { @@ -244,10 +216,7 @@ struct TSourceLoc { int column; }; -class TPragmaTable : public TMap { -public: - POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) -}; +typedef TMap TPragmaTable; const int MaxTokenLength = 1024; diff --git a/deps/glslang/glslang-old/glslang/Include/ConstantUnion.h b/deps/glslang/glslang-old/glslang/Include/ConstantUnion.h new file mode 100644 index 0000000000..18756f5ce0 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/Include/ConstantUnion.h @@ -0,0 +1,617 @@ +// +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//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 _CONSTANT_UNION_INCLUDED_ +#define _CONSTANT_UNION_INCLUDED_ + +namespace glslang { + +class TConstUnion { +public: + POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) + + TConstUnion() : iConst(0), type(EbtInt) { } + + void setIConst(int i) + { + iConst = i; + type = EbtInt; + } + + void setUConst(unsigned int u) + { + uConst = u; + type = EbtUint; + } + + void setI64Const(long long i64) + { + i64Const = i64; + type = EbtInt64; + } + + void setU64Const(unsigned long long u64) + { + u64Const = u64; + type = EbtUint64; + } + + void setDConst(double d) + { + dConst = d; + type = EbtDouble; + } + + void setBConst(bool b) + { + bConst = b; + type = EbtBool; + } + + int getIConst() const { return iConst; } + unsigned int getUConst() const { return uConst; } + long long getI64Const() const { return i64Const; } + unsigned long long getU64Const() const { return u64Const; } + double getDConst() const { return dConst; } + bool getBConst() const { return bConst; } + + bool operator==(const int i) const + { + if (i == iConst) + return true; + + return false; + } + + bool operator==(const unsigned int u) const + { + if (u == uConst) + return true; + + return false; + } + + bool operator==(const long long i64) const + { + if (i64 == i64Const) + return true; + + return false; + } + + bool operator==(const unsigned long long u64) const + { + if (u64 == u64Const) + return true; + + return false; + } + + bool operator==(const double d) const + { + if (d == dConst) + return true; + + return false; + } + + bool operator==(const bool b) const + { + if (b == bConst) + return true; + + return false; + } + + bool operator==(const TConstUnion& constant) const + { + if (constant.type != type) + return false; + + switch (type) { + case EbtInt: + if (constant.iConst == iConst) + return true; + + break; + case EbtUint: + if (constant.uConst == uConst) + return true; + + break; + case EbtInt64: + if (constant.i64Const == i64Const) + return true; + + break; + case EbtUint64: + if (constant.u64Const == u64Const) + return true; + + break; + case EbtDouble: + if (constant.dConst == dConst) + return true; + + break; + case EbtBool: + if (constant.bConst == bConst) + return true; + + break; + default: + assert(false && "Default missing"); + } + + return false; + } + + bool operator!=(const int i) const + { + return !operator==(i); + } + + bool operator!=(const unsigned int u) const + { + return !operator==(u); + } + + bool operator!=(const long long i) const + { + return !operator==(i); + } + + bool operator!=(const unsigned long long u) const + { + return !operator==(u); + } + + bool operator!=(const float f) const + { + return !operator==(f); + } + + bool operator!=(const bool b) const + { + return !operator==(b); + } + + bool operator!=(const TConstUnion& constant) const + { + return !operator==(constant); + } + + bool operator>(const TConstUnion& constant) const + { + assert(type == constant.type); + switch (type) { + case EbtInt: + if (iConst > constant.iConst) + return true; + + return false; + case EbtUint: + if (uConst > constant.uConst) + return true; + + return false; + case EbtInt64: + if (i64Const > constant.i64Const) + return true; + + return false; + case EbtUint64: + if (u64Const > constant.u64Const) + return true; + + return false; + case EbtDouble: + if (dConst > constant.dConst) + return true; + + return false; + default: + assert(false && "Default missing"); + return false; + } + } + + bool operator<(const TConstUnion& constant) const + { + assert(type == constant.type); + switch (type) { + case EbtInt: + if (iConst < constant.iConst) + return true; + + return false; + case EbtUint: + if (uConst < constant.uConst) + return true; + + return false; + case EbtInt64: + if (i64Const < constant.i64Const) + return true; + + return false; + case EbtUint64: + if (u64Const < constant.u64Const) + return true; + + return false; + case EbtDouble: + if (dConst < constant.dConst) + return true; + + return false; + default: + assert(false && "Default missing"); + return false; + } + } + + TConstUnion operator+(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtInt: returnValue.setIConst(iConst + constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const + constant.i64Const); break; + case EbtUint: returnValue.setUConst(uConst + constant.uConst); break; + case EbtUint64: returnValue.setU64Const(u64Const + constant.u64Const); break; + case EbtDouble: returnValue.setDConst(dConst + constant.dConst); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator-(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtInt: returnValue.setIConst(iConst - constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const - constant.i64Const); break; + case EbtUint: returnValue.setUConst(uConst - constant.uConst); break; + case EbtUint64: returnValue.setU64Const(u64Const - constant.u64Const); break; + case EbtDouble: returnValue.setDConst(dConst - constant.dConst); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator*(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtInt: returnValue.setIConst(iConst * constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const * constant.i64Const); break; + case EbtUint: returnValue.setUConst(uConst * constant.uConst); break; + case EbtUint64: returnValue.setU64Const(u64Const * constant.u64Const); break; + case EbtDouble: returnValue.setDConst(dConst * constant.dConst); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator%(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtInt: returnValue.setIConst(iConst % constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const % constant.i64Const); break; + case EbtUint: returnValue.setUConst(uConst % constant.uConst); break; + case EbtUint64: returnValue.setU64Const(u64Const % constant.u64Const); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator>>(const TConstUnion& constant) const + { + TConstUnion returnValue; + switch (type) { + case EbtInt: + switch (constant.type) { + case EbtInt: returnValue.setIConst(iConst >> constant.iConst); break; + case EbtUint: returnValue.setIConst(iConst >> constant.uConst); break; + case EbtInt64: returnValue.setIConst(iConst >> constant.i64Const); break; + case EbtUint64: returnValue.setIConst(iConst >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint: + switch (constant.type) { + case EbtInt: returnValue.setUConst(uConst >> constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst >> constant.uConst); break; + case EbtInt64: returnValue.setUConst(uConst >> constant.i64Const); break; + case EbtUint64: returnValue.setUConst(uConst >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtInt64: + switch (constant.type) { + case EbtInt: returnValue.setI64Const(i64Const >> constant.iConst); break; + case EbtUint: returnValue.setI64Const(i64Const >> constant.uConst); break; + case EbtInt64: returnValue.setI64Const(i64Const >> constant.i64Const); break; + case EbtUint64: returnValue.setI64Const(i64Const >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint64: + switch (constant.type) { + case EbtInt: returnValue.setU64Const(u64Const >> constant.iConst); break; + case EbtUint: returnValue.setU64Const(u64Const >> constant.uConst); break; + case EbtInt64: returnValue.setU64Const(u64Const >> constant.i64Const); break; + case EbtUint64: returnValue.setU64Const(u64Const >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator<<(const TConstUnion& constant) const + { + TConstUnion returnValue; + switch (type) { + case EbtInt: + switch (constant.type) { + case EbtInt: returnValue.setIConst(iConst << constant.iConst); break; + case EbtUint: returnValue.setIConst(iConst << constant.uConst); break; + case EbtInt64: returnValue.setIConst(iConst << constant.i64Const); break; + case EbtUint64: returnValue.setIConst(iConst << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint: + switch (constant.type) { + case EbtInt: returnValue.setUConst(uConst << constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst << constant.uConst); break; + case EbtInt64: returnValue.setUConst(uConst << constant.i64Const); break; + case EbtUint64: returnValue.setUConst(uConst << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtInt64: + switch (constant.type) { + case EbtInt: returnValue.setI64Const(i64Const << constant.iConst); break; + case EbtUint: returnValue.setI64Const(i64Const << constant.uConst); break; + case EbtInt64: returnValue.setI64Const(i64Const << constant.i64Const); break; + case EbtUint64: returnValue.setI64Const(i64Const << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint64: + switch (constant.type) { + case EbtInt: returnValue.setU64Const(u64Const << constant.iConst); break; + case EbtUint: returnValue.setU64Const(u64Const << constant.uConst); break; + case EbtInt64: returnValue.setU64Const(u64Const << constant.i64Const); break; + case EbtUint64: returnValue.setU64Const(u64Const << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator&(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtInt: returnValue.setIConst(iConst & constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst & constant.uConst); break; + case EbtInt64: returnValue.setI64Const(i64Const & constant.i64Const); break; + case EbtUint64: returnValue.setU64Const(u64Const & constant.u64Const); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator|(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtInt: returnValue.setIConst(iConst | constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst | constant.uConst); break; + case EbtInt64: returnValue.setI64Const(i64Const | constant.i64Const); break; + case EbtUint64: returnValue.setU64Const(u64Const | constant.u64Const); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator^(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtInt: returnValue.setIConst(iConst ^ constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst ^ constant.uConst); break; + case EbtInt64: returnValue.setI64Const(i64Const ^ constant.i64Const); break; + case EbtUint64: returnValue.setU64Const(u64Const ^ constant.u64Const); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator~() const + { + TConstUnion returnValue; + switch (type) { + case EbtInt: returnValue.setIConst(~iConst); break; + case EbtUint: returnValue.setUConst(~uConst); break; + case EbtInt64: returnValue.setI64Const(~i64Const); break; + case EbtUint64: returnValue.setU64Const(~u64Const); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator&&(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtBool: returnValue.setBConst(bConst && constant.bConst); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TConstUnion operator||(const TConstUnion& constant) const + { + TConstUnion returnValue; + assert(type == constant.type); + switch (type) { + case EbtBool: returnValue.setBConst(bConst || constant.bConst); break; + default: assert(false && "Default missing"); + } + + return returnValue; + } + + TBasicType getType() const { return type; } + +private: + union { + int iConst; // used for ivec, scalar ints + unsigned int uConst; // used for uvec, scalar uints + long long i64Const; // used for i64vec, scalar int64s + unsigned long long u64Const; // used for u64vec, scalar uint64s + bool bConst; // used for bvec, scalar bools + double dConst; // used for vec, dvec, mat, dmat, scalar floats and doubles + }; + + TBasicType type; +}; + +// Encapsulate having a pointer to an array of TConstUnion, +// which only needs to be allocated if its size is going to be +// bigger than 0. +// +// One convenience is being able to use [] to go inside the array, instead +// of C++ assuming it as an array of pointers to vectors. +// +// General usage is that the size is known up front, and it is +// created once with the proper size. +// +class TConstUnionArray { +public: + POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) + + TConstUnionArray() : unionArray(nullptr) { } + virtual ~TConstUnionArray() { } + + explicit TConstUnionArray(int size) + { + if (size == 0) + unionArray = nullptr; + else + unionArray = new TConstUnionVector(size); + } + TConstUnionArray(const TConstUnionArray& a) : unionArray(a.unionArray) { } + TConstUnionArray(const TConstUnionArray& a, int start, int size) + { + unionArray = new TConstUnionVector(size); + for (int i = 0; i < size; ++i) + (*unionArray)[i] = a[start + i]; + } + + // Use this constructor for a smear operation + TConstUnionArray(int size, const TConstUnion& val) + { + unionArray = new TConstUnionVector(size, val); + } + + int size() const { return unionArray ? (int)unionArray->size() : 0; } + TConstUnion& operator[](size_t index) { return (*unionArray)[index]; } + const TConstUnion& operator[](size_t index) const { return (*unionArray)[index]; } + bool operator==(const TConstUnionArray& rhs) const + { + // this includes the case that both are unallocated + if (unionArray == rhs.unionArray) + return true; + + if (! unionArray || ! rhs.unionArray) + return false; + + if (! unionArray || ! rhs.unionArray) + return false; + + return *unionArray == *rhs.unionArray; + } + bool operator!=(const TConstUnionArray& rhs) const { return ! operator==(rhs); } + + double dot(const TConstUnionArray& rhs) + { + assert(rhs.unionArray->size() == unionArray->size()); + double sum = 0.0; + + for (size_t comp = 0; comp < unionArray->size(); ++comp) + sum += (*this)[comp].getDConst() * rhs[comp].getDConst(); + + return sum; + } + + bool empty() const { return unionArray == nullptr; } + +protected: + typedef TVector TConstUnionVector; + TConstUnionVector* unionArray; +}; + +} // end namespace glslang + +#endif // _CONSTANT_UNION_INCLUDED_ diff --git a/deps/glslang-new/glslang/Include/InfoSink.h b/deps/glslang/glslang-old/glslang/Include/InfoSink.h similarity index 81% rename from deps/glslang-new/glslang/Include/InfoSink.h rename to deps/glslang/glslang-old/glslang/Include/InfoSink.h index dceb603cff..54f1f3393c 100644 --- a/deps/glslang-new/glslang/Include/InfoSink.h +++ b/deps/glslang/glslang-old/glslang/Include/InfoSink.h @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _INFOSINK_INCLUDED_ diff --git a/deps/glslang/glslang-old/glslang/Include/InitializeGlobals.h b/deps/glslang/glslang-old/glslang/Include/InitializeGlobals.h new file mode 100644 index 0000000000..6c9f54a03d --- /dev/null +++ b/deps/glslang/glslang-old/glslang/Include/InitializeGlobals.h @@ -0,0 +1,47 @@ +// +//Copyright (C) 2002-2005 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. +// + +#ifndef __INITIALIZE_GLOBALS_INCLUDED_ +#define __INITIALIZE_GLOBALS_INCLUDED_ + +namespace glslang { + +void InitializeMemoryPools(); +void FreeGlobalPools(); +bool InitializePoolIndex(); +void FreePoolIndex(); + +} // end namespace glslang + +#endif // __INITIALIZE_GLOBALS_INCLUDED_ diff --git a/deps/glslang-new/glslang/Include/PoolAlloc.h b/deps/glslang/glslang-old/glslang/Include/PoolAlloc.h similarity index 89% rename from deps/glslang-new/glslang/Include/PoolAlloc.h rename to deps/glslang/glslang-old/glslang/Include/PoolAlloc.h index 0e237a6a2c..0aa2ab2c11 100644 --- a/deps/glslang-new/glslang/Include/PoolAlloc.h +++ b/deps/glslang/glslang-old/glslang/Include/PoolAlloc.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _POOLALLOC_INCLUDED_ @@ -245,13 +245,21 @@ private: TPoolAllocator(const TPoolAllocator&); // don't allow default copy constructor }; + // // There could potentially be many pools with pops happening at // different times. But a simple use is to have a global pop // with everyone using the same global allocator. // +typedef TPoolAllocator* PoolAllocatorPointer; extern TPoolAllocator& GetThreadPoolAllocator(); -void SetThreadPoolAllocator(TPoolAllocator* poolAllocator); + +struct TThreadMemoryPools +{ + TPoolAllocator* threadPoolAllocator; +}; + +void SetThreadPoolAllocator(TPoolAllocator& poolAllocator); // // This STL compatible allocator is intended to be used as the allocator diff --git a/deps/glslang-new/glslang/Include/ResourceLimits.h b/deps/glslang/glslang-old/glslang/Include/ResourceLimits.h similarity index 79% rename from deps/glslang-new/glslang/Include/ResourceLimits.h rename to deps/glslang/glslang-old/glslang/Include/ResourceLimits.h index 0d07b8c841..b9cadb9faf 100644 --- a/deps/glslang-new/glslang/Include/ResourceLimits.h +++ b/deps/glslang/glslang-old/glslang/Include/ResourceLimits.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _RESOURCE_LIMITS_INCLUDED_ diff --git a/deps/glslang-new/glslang/Include/ShHandle.h b/deps/glslang/glslang-old/glslang/Include/ShHandle.h similarity index 80% rename from deps/glslang-new/glslang/Include/ShHandle.h rename to deps/glslang/glslang-old/glslang/Include/ShHandle.h index df07bd8eda..1e24fdd933 100644 --- a/deps/glslang-new/glslang/Include/ShHandle.h +++ b/deps/glslang/glslang-old/glslang/Include/ShHandle.h @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _SHHANDLE_INCLUDED_ @@ -42,6 +42,7 @@ // This should not be included by driver code. // + #define SH_EXPORTING #include "../Public/ShaderLang.h" #include "../MachineIndependent/Versions.h" @@ -56,14 +57,11 @@ class TUniformMap; // class TShHandleBase { public: - TShHandleBase() { pool = new glslang::TPoolAllocator; } - virtual ~TShHandleBase() { delete pool; } + TShHandleBase() { } + virtual ~TShHandleBase() { } virtual TCompiler* getAsCompiler() { return 0; } virtual TLinker* getAsLinker() { return 0; } virtual TUniformMap* getAsUniformMap() { return 0; } - virtual glslang::TPoolAllocator* getPool() const { return pool; } -private: - glslang::TPoolAllocator* pool; }; // diff --git a/deps/glslang-new/glslang/Include/Types.h b/deps/glslang/glslang-old/glslang/Include/Types.h similarity index 73% rename from deps/glslang-new/glslang/Include/Types.h rename to deps/glslang/glslang-old/glslang/Include/Types.h index 39d6737cfc..7642df9be1 100644 --- a/deps/glslang-new/glslang/Include/Types.h +++ b/deps/glslang/glslang-old/glslang/Include/Types.h @@ -1,14 +1,13 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2015-2016 Google, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2016 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -22,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _TYPES_INCLUDED @@ -44,8 +43,6 @@ #include "../Public/ShaderLang.h" #include "arrays.h" -#include - namespace glslang { const int GlslangMaxTypeLength = 200; // TODO: need to print block/struct one member per line, so this can stay bounded @@ -81,19 +78,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler bool sampler : 1; // true means a pure sampler, other fields should be clear() bool external : 1; // GL_OES_EGL_image_external - unsigned int vectorSize : 3; // vector return type size. - - // Some languages support structures as sample results. Storing the whole structure in the - // TSampler is too large, so there is an index to a separate table. - static const unsigned structReturnIndexBits = 4; // number of index bits to use. - static const unsigned structReturnSlots = (1<= EpqNone && p <= EpqHigh); - assert(!(isMatrix() && vectorSize != 0)); // prevent vectorSize != 0 on matrices } // for turning a TPublicType into a TType, using a shallow copy explicit TType(const TPublicType& p) : @@ -1295,21 +1179,30 @@ public: typeName = copyOf.typeName; } - // Make complete copy of the whole type graph rooted at 'copyOf'. void deepCopy(const TType& copyOf) { - TMap copied; // to enable copying a type graph as a graph, not a tree - deepCopy(copyOf, copied); - } + shallowCopy(copyOf); - // Recursively make temporary - void makeTemporary() - { - getQualifier().makeTemporary(); + if (copyOf.arraySizes) { + arraySizes = new TArraySizes; + *arraySizes = *copyOf.arraySizes; + } - if (isStruct()) - for (unsigned int i = 0; i < structure->size(); ++i) - (*structure)[i].type->makeTemporary(); + if (copyOf.structure) { + structure = new TTypeList; + for (unsigned int i = 0; i < copyOf.structure->size(); ++i) { + TTypeLoc typeLoc; + typeLoc.loc = (*copyOf.structure)[i].loc; + typeLoc.type = new TType(); + typeLoc.type->deepCopy(*(*copyOf.structure)[i].type); + structure->push_back(typeLoc); + } + } + + if (copyOf.fieldName) + fieldName = NewPoolTString(copyOf.fieldName->c_str()); + if (copyOf.typeName) + typeName = NewPoolTString(copyOf.typeName->c_str()); } TType* clone() const @@ -1322,9 +1215,31 @@ public: void makeVector() { vector1 = true; } + // Merge type from parent, where a parentType is at the beginning of a declaration, + // establishing some characteristics for all subsequent names, while this type + // is on the individual names. + void mergeType(const TPublicType& parentType) + { + // arrayness is currently the only child aspect that has to be preserved + basicType = parentType.basicType; + vectorSize = parentType.vectorSize; + matrixCols = parentType.matrixCols; + matrixRows = parentType.matrixRows; + vector1 = false; // TPublicType is only GLSL which so far has no vec1 + qualifier = parentType.qualifier; + sampler = parentType.sampler; + if (parentType.arraySizes) + newArraySizes(*parentType.arraySizes); + if (parentType.userDef) { + structure = parentType.userDef->getWritableStruct(); + setTypeName(parentType.userDef->getTypeName()); + } + } + virtual void hideMember() { basicType = EbtVoid; vectorSize = 1; } virtual bool hiddenMember() const { return basicType == EbtVoid; } + virtual void setTypeName(const TString& n) { typeName = NewPoolTString(n.c_str()); } virtual void setFieldName(const TString& n) { fieldName = NewPoolTString(n.c_str()); } virtual const TString& getTypeName() const { @@ -1340,7 +1255,6 @@ public: virtual TBasicType getBasicType() const { return basicType; } virtual const TSampler& getSampler() const { return sampler; } - virtual TSampler& getSampler() { return sampler; } virtual TQualifier& getQualifier() { return qualifier; } virtual const TQualifier& getQualifier() const { return qualifier; } @@ -1354,122 +1268,135 @@ public: virtual bool isArrayOfArrays() const { return arraySizes != nullptr && arraySizes->getNumDims() > 1; } virtual int getImplicitArraySize() const { return arraySizes->getImplicitSize(); } virtual const TArraySizes* getArraySizes() const { return arraySizes; } - virtual TArraySizes* getArraySizes() { return arraySizes; } + virtual TArraySizes& getArraySizes() { assert(arraySizes != nullptr); return *arraySizes; } virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); } virtual bool isScalarOrVec1() const { return isScalar() || vector1; } virtual bool isVector() const { return vectorSize > 1 || vector1; } virtual bool isMatrix() const { return matrixCols ? true : false; } virtual bool isArray() const { return arraySizes != nullptr; } - virtual bool isSizedArray() const { return isArray() && arraySizes->isSized(); } - virtual bool isUnsizedArray() const { return isArray() && !arraySizes->isSized(); } - virtual bool isArrayVariablyIndexed() const { assert(isArray()); return arraySizes->isVariablyIndexed(); } - virtual void setArrayVariablyIndexed() { assert(isArray()); arraySizes->setVariablyIndexed(); } - virtual void updateImplicitArraySize(int size) { assert(isArray()); arraySizes->updateImplicitSize(size); } + virtual bool isExplicitlySizedArray() const { return isArray() && getOuterArraySize() != UnsizedArraySize; } + virtual bool isImplicitlySizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage != EvqBuffer; } + virtual bool isRuntimeSizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage == EvqBuffer; } virtual bool isStruct() const { return structure != nullptr; } +#ifdef AMD_EXTENSIONS virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16; } - virtual bool isIntegerDomain() const - { - switch (basicType) { - case EbtInt8: - case EbtUint8: - case EbtInt16: - case EbtUint16: - case EbtInt: - case EbtUint: - case EbtInt64: - case EbtUint64: - case EbtAtomicUint: - return true; - default: - break; - } - return false; - } +#else + virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble; } +#endif + virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint; } - virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; } // "Image" is a superset of "Subpass" - virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); } + virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); } virtual bool isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); } - virtual bool isTexture() const { return basicType == EbtSampler && getSampler().isTexture(); } - - // return true if this type contains any subtype which satisfies the given predicate. - template - bool contains(P predicate) const - { - if (predicate(this)) - return true; - - const auto hasa = [predicate](const TTypeLoc& tl) { return tl.type->contains(predicate); }; - - return structure && std::any_of(structure->begin(), structure->end(), hasa); - } // Recursively checks if the type contains the given basic type virtual bool containsBasicType(TBasicType checkType) const { - return contains([checkType](const TType* t) { return t->basicType == checkType; } ); + if (basicType == checkType) + return true; + if (! structure) + return false; + for (unsigned int i = 0; i < structure->size(); ++i) { + if ((*structure)[i].type->containsBasicType(checkType)) + return true; + } + return false; } // Recursively check the structure for any arrays, needed for some error checks virtual bool containsArray() const { - return contains([](const TType* t) { return t->isArray(); } ); + if (isArray()) + return true; + if (structure == nullptr) + return false; + for (unsigned int i = 0; i < structure->size(); ++i) { + if ((*structure)[i].type->containsArray()) + return true; + } + return false; } // Check the structure for any structures, needed for some error checks virtual bool containsStructure() const { - return contains([this](const TType* t) { return t != this && t->isStruct(); } ); + if (structure == nullptr) + return false; + for (unsigned int i = 0; i < structure->size(); ++i) { + if ((*structure)[i].type->structure) + return true; + } + return false; } - // Recursively check the structure for any unsized arrays, needed for triggering a copyUp(). - virtual bool containsUnsizedArray() const + // Recursively check the structure for any implicitly-sized arrays, needed for triggering a copyUp(). + virtual bool containsImplicitlySizedArray() const { - return contains([](const TType* t) { return t->isUnsizedArray(); } ); + if (isImplicitlySizedArray()) + return true; + if (structure == nullptr) + return false; + for (unsigned int i = 0; i < structure->size(); ++i) { + if ((*structure)[i].type->containsImplicitlySizedArray()) + return true; + } + return false; } virtual bool containsOpaque() const { - return contains([](const TType* t) { return t->isOpaque(); } ); - } - - // Recursively checks if the type contains a built-in variable - virtual bool containsBuiltIn() const - { - return contains([](const TType* t) { return t->isBuiltIn(); } ); + if (isOpaque()) + return true; + if (! structure) + return false; + for (unsigned int i = 0; i < structure->size(); ++i) { + if ((*structure)[i].type->containsOpaque()) + return true; + } + return false; } virtual bool containsNonOpaque() const { - const auto nonOpaque = [](const TType* t) { - switch (t->basicType) { - case EbtVoid: - case EbtFloat: - case EbtDouble: - case EbtFloat16: - case EbtInt8: - case EbtUint8: - case EbtInt16: - case EbtUint16: - case EbtInt: - case EbtUint: - case EbtInt64: - case EbtUint64: - case EbtBool: + // list all non-opaque types + switch (basicType) { + case EbtVoid: + case EbtFloat: + case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif + case EbtInt: + case EbtUint: + case EbtInt64: + case EbtUint64: + case EbtBool: + return true; + default: + break; + } + if (! structure) + return false; + for (unsigned int i = 0; i < structure->size(); ++i) { + if ((*structure)[i].type->containsNonOpaque()) return true; - default: - return false; - } - }; - - return contains(nonOpaque); + } + return false; } virtual bool containsSpecializationSize() const { - return contains([](const TType* t) { return t->isArray() && t->arraySizes->isOuterSpecialization(); } ); + if (isArray() && arraySizes->containsNode()) + return true; + if (! structure) + return false; + for (unsigned int i = 0; i < structure->size(); ++i) { + if ((*structure)[i].type->containsSpecializationSize()) + return true; + } + return false; } // Array editing methods. Array descriptors can be shared across @@ -1491,51 +1418,34 @@ public: assert(type.arraySizes != nullptr); *arraySizes = *type.arraySizes; } - void copyArraySizes(const TArraySizes& s) + void newArraySizes(const TArraySizes& s) { // For setting a fresh new set of array sizes, not yet worrying about sharing. arraySizes = new TArraySizes; *arraySizes = s; } - void transferArraySizes(TArraySizes* s) - { - // For setting an already allocated set of sizes that this type can use - // (no copy made). - arraySizes = s; - } void clearArraySizes() { - arraySizes = nullptr; + arraySizes = 0; } - - // Add inner array sizes, to any existing sizes, via copy; the - // sizes passed in can still be reused for other purposes. - void copyArrayInnerSizes(const TArraySizes* s) + void addArrayOuterSizes(const TArraySizes& s) { - if (s != nullptr) { - if (arraySizes == nullptr) - copyArraySizes(*s); - else - arraySizes->addInnerSizes(*s); - } + if (arraySizes == nullptr) + newArraySizes(s); + else + arraySizes->addOuterSizes(s); } void changeOuterArraySize(int s) { arraySizes->changeOuterSize(s); } + void setImplicitArraySize(int s) { arraySizes->setImplicitSize(s); } - // Recursively make the implicit array size the explicit array size. - // Expicit arrays are compile-time or link-time sized, never run-time sized. - // Sometimes, policy calls for an array to be run-time sized even if it was - // never variably indexed: Don't turn a 'skipNonvariablyIndexed' array into - // an explicit array. - void adoptImplicitArraySizes(bool skipNonvariablyIndexed) + // Recursively make the implicit array size the explicit array size, through the type tree. + void adoptImplicitArraySizes() { - if (isUnsizedArray() && !(skipNonvariablyIndexed || isArrayVariablyIndexed())) + if (isImplicitlySizedArray()) changeOuterArraySize(getImplicitArraySize()); - if (isStruct() && structure->size() > 0) { - int lastMember = (int)structure->size() - 1; - for (int i = 0; i < lastMember; ++i) - (*structure)[i].type->adoptImplicitArraySizes(false); - // implement the "last member of an SSBO" policy - (*structure)[lastMember].type->adoptImplicitArraySizes(getQualifier().storage == EvqBuffer); + if (isStruct()) { + for (int i = 0; i < (int)structure->size(); ++i) + (*structure)[i].type->adoptImplicitArraySizes(); } } @@ -1550,11 +1460,9 @@ public: case EbtVoid: return "void"; case EbtFloat: return "float"; case EbtDouble: return "double"; +#ifdef AMD_EXTENSIONS case EbtFloat16: return "float16_t"; - case EbtInt8: return "int8_t"; - case EbtUint8: return "uint8_t"; - case EbtInt16: return "int16_t"; - case EbtUint16: return "uint16_t"; +#endif case EbtInt: return "int"; case EbtUint: return "uint"; case EbtInt64: return "int64_t"; @@ -1570,11 +1478,10 @@ public: TString getCompleteString() const { - TString typeString; - - const auto appendStr = [&](const char* s) { typeString.append(s); }; - const auto appendUint = [&](unsigned int u) { typeString.append(std::to_string(u).c_str()); }; - const auto appendInt = [&](int i) { typeString.append(std::to_string(i).c_str()); }; + const int maxSize = GlslangMaxTypeLength; + char buf[maxSize]; + char* p = &buf[0]; + char* end = &buf[maxSize]; if (qualifier.hasLayout()) { // To reduce noise, skip this if the only layout is an xfb_buffer @@ -1582,185 +1489,127 @@ public: TQualifier noXfbBuffer = qualifier; noXfbBuffer.layoutXfbBuffer = TQualifier::layoutXfbBufferEnd; if (noXfbBuffer.hasLayout()) { - appendStr("layout("); + p += snprintf(p, end - p, "layout("); if (qualifier.hasAnyLocation()) { - appendStr(" location="); - appendUint(qualifier.layoutLocation); - if (qualifier.hasComponent()) { - appendStr(" component="); - appendUint(qualifier.layoutComponent); - } - if (qualifier.hasIndex()) { - appendStr(" index="); - appendUint(qualifier.layoutIndex); - } - } - if (qualifier.hasSet()) { - appendStr(" set="); - appendUint(qualifier.layoutSet); - } - if (qualifier.hasBinding()) { - appendStr(" binding="); - appendUint(qualifier.layoutBinding); - } - if (qualifier.hasStream()) { - appendStr(" stream="); - appendUint(qualifier.layoutStream); - } - if (qualifier.hasMatrix()) { - appendStr(" "); - appendStr(TQualifier::getLayoutMatrixString(qualifier.layoutMatrix)); - } - if (qualifier.hasPacking()) { - appendStr(" "); - appendStr(TQualifier::getLayoutPackingString(qualifier.layoutPacking)); - } - if (qualifier.hasOffset()) { - appendStr(" offset="); - appendInt(qualifier.layoutOffset); - } - if (qualifier.hasAlign()) { - appendStr(" align="); - appendInt(qualifier.layoutAlign); - } - if (qualifier.hasFormat()) { - appendStr(" "); - appendStr(TQualifier::getLayoutFormatString(qualifier.layoutFormat)); - } - if (qualifier.hasXfbBuffer() && qualifier.hasXfbOffset()) { - appendStr(" xfb_buffer="); - appendUint(qualifier.layoutXfbBuffer); - } - if (qualifier.hasXfbOffset()) { - appendStr(" xfb_offset="); - appendUint(qualifier.layoutXfbOffset); - } - if (qualifier.hasXfbStride()) { - appendStr(" xfb_stride="); - appendUint(qualifier.layoutXfbStride); - } - if (qualifier.hasAttachment()) { - appendStr(" input_attachment_index="); - appendUint(qualifier.layoutAttachment); - } - if (qualifier.hasSpecConstantId()) { - appendStr(" constant_id="); - appendUint(qualifier.layoutSpecConstantId); + p += snprintf(p, end - p, "location=%d ", qualifier.layoutLocation); + if (qualifier.hasComponent()) + p += snprintf(p, end - p, "component=%d ", qualifier.layoutComponent); + if (qualifier.hasIndex()) + p += snprintf(p, end - p, "index=%d ", qualifier.layoutIndex); } + if (qualifier.hasSet()) + p += snprintf(p, end - p, "set=%d ", qualifier.layoutSet); + if (qualifier.hasBinding()) + p += snprintf(p, end - p, "binding=%d ", qualifier.layoutBinding); + if (qualifier.hasStream()) + p += snprintf(p, end - p, "stream=%d ", qualifier.layoutStream); + if (qualifier.hasMatrix()) + p += snprintf(p, end - p, "%s ", TQualifier::getLayoutMatrixString(qualifier.layoutMatrix)); + if (qualifier.hasPacking()) + p += snprintf(p, end - p, "%s ", TQualifier::getLayoutPackingString(qualifier.layoutPacking)); + if (qualifier.hasOffset()) + p += snprintf(p, end - p, "offset=%d ", qualifier.layoutOffset); + if (qualifier.hasAlign()) + p += snprintf(p, end - p, "align=%d ", qualifier.layoutAlign); + if (qualifier.hasFormat()) + p += snprintf(p, end - p, "%s ", TQualifier::getLayoutFormatString(qualifier.layoutFormat)); + if (qualifier.hasXfbBuffer() && qualifier.hasXfbOffset()) + p += snprintf(p, end - p, "xfb_buffer=%d ", qualifier.layoutXfbBuffer); + if (qualifier.hasXfbOffset()) + p += snprintf(p, end - p, "xfb_offset=%d ", qualifier.layoutXfbOffset); + if (qualifier.hasXfbStride()) + p += snprintf(p, end - p, "xfb_stride=%d ", qualifier.layoutXfbStride); + if (qualifier.hasAttachment()) + p += snprintf(p, end - p, "input_attachment_index=%d ", qualifier.layoutAttachment); + if (qualifier.hasSpecConstantId()) + p += snprintf(p, end - p, "constant_id=%d ", qualifier.layoutSpecConstantId); if (qualifier.layoutPushConstant) - appendStr(" push_constant"); - -#ifdef NV_EXTENSIONS - if (qualifier.layoutPassthrough) - appendStr(" passthrough"); - if (qualifier.layoutViewportRelative) - appendStr(" layoutViewportRelative"); - if (qualifier.layoutSecondaryViewportRelativeOffset != -2048) { - appendStr(" layoutSecondaryViewportRelativeOffset="); - appendInt(qualifier.layoutSecondaryViewportRelativeOffset); - } -#endif - - appendStr(")"); + p += snprintf(p, end - p, "push_constant "); + p += snprintf(p, end - p, ") "); } } if (qualifier.invariant) - appendStr(" invariant"); + p += snprintf(p, end - p, "invariant "); if (qualifier.noContraction) - appendStr(" noContraction"); + p += snprintf(p, end - p, "noContraction "); if (qualifier.centroid) - appendStr(" centroid"); + p += snprintf(p, end - p, "centroid "); if (qualifier.smooth) - appendStr(" smooth"); + p += snprintf(p, end - p, "smooth "); if (qualifier.flat) - appendStr(" flat"); + p += snprintf(p, end - p, "flat "); if (qualifier.nopersp) - appendStr(" noperspective"); + p += snprintf(p, end - p, "noperspective "); #ifdef AMD_EXTENSIONS if (qualifier.explicitInterp) - appendStr(" __explicitInterpAMD"); + p += snprintf(p, end - p, "__explicitInterpAMD "); #endif if (qualifier.patch) - appendStr(" patch"); + p += snprintf(p, end - p, "patch "); if (qualifier.sample) - appendStr(" sample"); + p += snprintf(p, end - p, "sample "); if (qualifier.coherent) - appendStr(" coherent"); + p += snprintf(p, end - p, "coherent "); if (qualifier.volatil) - appendStr(" volatile"); + p += snprintf(p, end - p, "volatile "); if (qualifier.restrict) - appendStr(" restrict"); + p += snprintf(p, end - p, "restrict "); if (qualifier.readonly) - appendStr(" readonly"); + p += snprintf(p, end - p, "readonly "); if (qualifier.writeonly) - appendStr(" writeonly"); + p += snprintf(p, end - p, "writeonly "); if (qualifier.specConstant) - appendStr(" specialization-constant"); - if (qualifier.nonUniform) - appendStr(" nonuniform"); - appendStr(" "); - appendStr(getStorageQualifierString()); + p += snprintf(p, end - p, "specialization-constant "); + p += snprintf(p, end - p, "%s ", getStorageQualifierString()); if (isArray()) { for(int i = 0; i < (int)arraySizes->getNumDims(); ++i) { int size = arraySizes->getDimSize(i); - if (size == UnsizedArraySize && i == 0 && arraySizes->isVariablyIndexed()) - appendStr(" runtime-sized array of"); - else { - if (size == UnsizedArraySize) { - appendStr(" unsized"); - if (i == 0) { - appendStr(" "); - appendInt(arraySizes->getImplicitSize()); - } - } else { - appendStr(" "); - appendInt(arraySizes->getDimSize(i)); - } - appendStr("-element array of"); - } + if (size == 0) + p += snprintf(p, end - p, "implicitly-sized array of "); + else + p += snprintf(p, end - p, "%d-element array of ", arraySizes->getDimSize(i)); } } - if (qualifier.precision != EpqNone) { - appendStr(" "); - appendStr(getPrecisionQualifierString()); - } - if (isMatrix()) { - appendStr(" "); - appendInt(matrixCols); - appendStr("X"); - appendInt(matrixRows); - appendStr(" matrix of"); - } else if (isVector()) { - appendStr(" "); - appendInt(vectorSize); - appendStr("-component vector of"); - } + if (qualifier.precision != EpqNone) + p += snprintf(p, end - p, "%s ", getPrecisionQualifierString()); + if (isMatrix()) + p += snprintf(p, end - p, "%dX%d matrix of ", matrixCols, matrixRows); + else if (isVector()) + p += snprintf(p, end - p, "%d-component vector of ", vectorSize); - appendStr(" "); - typeString.append(getBasicTypeString()); + *p = 0; + TString s(buf); + s.append(getBasicTypeString()); if (qualifier.builtIn != EbvNone) { - appendStr(" "); - appendStr(getBuiltInVariableString()); + s.append(" "); + s.append(getBuiltInVariableString()); } // Add struct/block members if (structure) { - appendStr("{"); + s.append("{"); for (size_t i = 0; i < structure->size(); ++i) { + if (s.size() > 3 * GlslangMaxTypeLength) { + // If we are getting too long, cut it short, + // just need to draw the line somewhere, as there is no limit to + // how large a struct/block type can get. + s.append("..."); + break; + } if (! (*structure)[i].type->hiddenMember()) { - typeString.append((*structure)[i].type->getCompleteString()); - typeString.append(" "); - typeString.append((*structure)[i].type->getFieldName()); + s.append((*structure)[i].type->getCompleteString()); + s.append(" "); + s.append((*structure)[i].type->getFieldName()); if (i < structure->size() - 1) - appendStr(", "); + s.append(", "); } } - appendStr("}"); + s.append("}"); } - return typeString; + return s; } TString getBasicTypeString() const @@ -1775,7 +1624,6 @@ public: const char* getBuiltInVariableString() const { return GetBuiltInVariableString(qualifier.builtIn); } const char* getPrecisionQualifierString() const { return GetPrecisionQualifierString(qualifier.precision); } const TTypeList* getStruct() const { return structure; } - void setStruct(TTypeList* s) { structure = s; } TTypeList* getWritableStruct() const { return structure; } // This should only be used when known to not be sharing with other threads int computeNumComponents() const @@ -1798,7 +1646,7 @@ public: } // append this type's mangled name to the passed in 'name' - void appendMangledName(TString& name) const + void appendMangledName(TString& name) { buildMangledName(name); name += ';' ; @@ -1886,43 +1734,7 @@ protected: TType(const TType& type); TType& operator=(const TType& type); - // Recursively copy a type graph, while preserving the graph-like - // quality. That is, don't make more than one copy of a structure that - // gets reused multiple times in the type graph. - void deepCopy(const TType& copyOf, TMap& copiedMap) - { - shallowCopy(copyOf); - - if (copyOf.arraySizes) { - arraySizes = new TArraySizes; - *arraySizes = *copyOf.arraySizes; - } - - if (copyOf.structure) { - auto prevCopy = copiedMap.find(copyOf.structure); - if (prevCopy != copiedMap.end()) - structure = prevCopy->second; - else { - structure = new TTypeList; - copiedMap[copyOf.structure] = structure; - for (unsigned int i = 0; i < copyOf.structure->size(); ++i) { - TTypeLoc typeLoc; - typeLoc.loc = (*copyOf.structure)[i].loc; - typeLoc.type = new TType(); - typeLoc.type->deepCopy(*(*copyOf.structure)[i].type, copiedMap); - structure->push_back(typeLoc); - } - } - } - - if (copyOf.fieldName) - fieldName = NewPoolTString(copyOf.fieldName->c_str()); - if (copyOf.typeName) - typeName = NewPoolTString(copyOf.typeName->c_str()); - } - - - void buildMangledName(TString&) const; + void buildMangledName(TString&); TBasicType basicType : 8; int vectorSize : 4; // 1 means either scalar or 1-component vector; see vector1 to disambiguate. diff --git a/deps/glslang-new/glslang/Include/arrays.h b/deps/glslang/glslang-old/glslang/Include/arrays.h similarity index 77% rename from deps/glslang-new/glslang/Include/arrays.h rename to deps/glslang/glslang-old/glslang/Include/arrays.h index af8f560b3b..a50088d2db 100644 --- a/deps/glslang-new/glslang/Include/arrays.h +++ b/deps/glslang/glslang-old/glslang/Include/arrays.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -41,8 +41,6 @@ #ifndef _ARRAYS_INCLUDED #define _ARRAYS_INCLUDED -#include - namespace glslang { // This is used to mean there is no size yet (unsized), it is waiting to get a size from somewhere else. @@ -132,10 +130,10 @@ struct TSmallArrayVector { sizes->push_back(pair); } - void push_back(const TSmallArrayVector& newDims) + void push_front(const TSmallArrayVector& newDims) { alloc(); - sizes->insert(sizes->end(), newDims.sizes->begin(), newDims.sizes->end()); + sizes->insert(sizes->begin(), newDims.sizes->begin(), newDims.sizes->end()); } void pop_front() @@ -222,13 +220,12 @@ protected: struct TArraySizes { POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TArraySizes() : implicitArraySize(1), variablyIndexed(false) { } + TArraySizes() : implicitArraySize(1) { } // For breaking into two non-shared copies, independently modifiable. TArraySizes& operator=(const TArraySizes& from) { implicitArraySize = from.implicitArraySize; - variablyIndexed = from.variablyIndexed; sizes = from.sizes; return *this; @@ -255,11 +252,10 @@ struct TArraySizes { void addInnerSize(int s) { addInnerSize((unsigned)s, nullptr); } void addInnerSize(int s, TIntermTyped* n) { sizes.push_back((unsigned)s, n); } void addInnerSize(TArraySize pair) { sizes.push_back(pair.size, pair.node); } - void addInnerSizes(const TArraySizes& s) { sizes.push_back(s.sizes); } void changeOuterSize(int s) { sizes.changeFront((unsigned)s); } - int getImplicitSize() const { return implicitArraySize; } - void updateImplicitSize(int s) { implicitArraySize = std::max(implicitArraySize, s); } - bool isInnerUnsized() const + int getImplicitSize() const { return (int)implicitArraySize; } + void setImplicitSize(int s) { implicitArraySize = s; } + bool isInnerImplicit() const { for (int d = 1; d < sizes.size(); ++d) { if (sizes.getDimSize(d) == (unsigned)UnsizedArraySize) @@ -268,31 +264,8 @@ struct TArraySizes { return false; } - bool clearInnerUnsized() - { - for (int d = 1; d < sizes.size(); ++d) { - if (sizes.getDimSize(d) == (unsigned)UnsizedArraySize) - setDimSize(d, 1); - } - - return false; - } - bool isInnerSpecialization() const - { - for (int d = 1; d < sizes.size(); ++d) { - if (sizes.getDimNode(d) != nullptr) - return true; - } - - return false; - } - bool isOuterSpecialization() - { - return sizes.getDimNode(0) != nullptr; - } - - bool hasUnsized() const { return getOuterSize() == UnsizedArraySize || isInnerUnsized(); } - bool isSized() const { return getOuterSize() != UnsizedArraySize; } + bool isImplicit() const { return getOuterSize() == UnsizedArraySize || isInnerImplicit(); } + void addOuterSizes(const TArraySizes& s) { sizes.push_front(s.sizes); } void dereference() { sizes.pop_front(); } void copyDereferenced(const TArraySizes& rhs) { @@ -315,8 +288,17 @@ struct TArraySizes { return true; } - void setVariablyIndexed() { variablyIndexed = true; } - bool isVariablyIndexed() const { return variablyIndexed; } + // Returns true if any of the dimensions of the array is sized with a node + // instead of a front-end compile-time constant. + bool containsNode() + { + for (int d = 0; d < sizes.size(); ++d) { + if (sizes.getDimNode(d) != nullptr) + return true; + } + + return false; + } bool operator==(const TArraySizes& rhs) { return sizes == rhs.sizes; } bool operator!=(const TArraySizes& rhs) { return sizes != rhs.sizes; } @@ -326,12 +308,9 @@ protected: TArraySizes(const TArraySizes&); - // For tracking maximum referenced compile-time constant index. - // Applies only to the outer-most dimension. Potentially becomes - // the implicit size of the array, if not variably indexed and - // otherwise legal. + // for tracking maximum referenced index, before an explicit size is given + // applies only to the outer-most dimension int implicitArraySize; - bool variablyIndexed; // true if array is indexed with a non compile-time constant }; } // end namespace glslang diff --git a/deps/glslang-new/glslang/Include/intermediate.h b/deps/glslang/glslang-old/glslang/Include/intermediate.h old mode 100755 new mode 100644 similarity index 72% rename from deps/glslang-new/glslang/Include/intermediate.h rename to deps/glslang/glslang-old/glslang/Include/intermediate.h index 19eb7aa876..ffdc82b003 --- a/deps/glslang-new/glslang/Include/intermediate.h +++ b/deps/glslang/glslang-old/glslang/Include/intermediate.h @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -47,7 +46,7 @@ #ifndef __INTERMEDIATE_H #define __INTERMEDIATE_H -#if defined(_MSC_VER) && _MSC_VER >= 1900 +#if _MSC_VER >= 1900 #pragma warning(disable : 4464) // relative include path contains '..' #pragma warning(disable : 5026) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted #endif @@ -85,189 +84,64 @@ enum TOperator { EOpPreIncrement, EOpPreDecrement, - // (u)int* -> bool - EOpConvInt8ToBool, - EOpConvUint8ToBool, - EOpConvInt16ToBool, - EOpConvUint16ToBool, EOpConvIntToBool, EOpConvUintToBool, - EOpConvInt64ToBool, - EOpConvUint64ToBool, - - // float* -> bool - EOpConvFloat16ToBool, EOpConvFloatToBool, EOpConvDoubleToBool, - - // bool -> (u)int* - EOpConvBoolToInt8, - EOpConvBoolToUint8, - EOpConvBoolToInt16, - EOpConvBoolToUint16, - EOpConvBoolToInt, - EOpConvBoolToUint, - EOpConvBoolToInt64, - EOpConvBoolToUint64, - - // bool -> float* - EOpConvBoolToFloat16, + EOpConvInt64ToBool, + EOpConvUint64ToBool, EOpConvBoolToFloat, - EOpConvBoolToDouble, - - // int8_t -> (u)int* - EOpConvInt8ToInt16, - EOpConvInt8ToInt, - EOpConvInt8ToInt64, - EOpConvInt8ToUint8, - EOpConvInt8ToUint16, - EOpConvInt8ToUint, - EOpConvInt8ToUint64, - - // uint8_t -> (u)int* - EOpConvUint8ToInt8, - EOpConvUint8ToInt16, - EOpConvUint8ToInt, - EOpConvUint8ToInt64, - EOpConvUint8ToUint16, - EOpConvUint8ToUint, - EOpConvUint8ToUint64, - - // int8_t -> float* - EOpConvInt8ToFloat16, - EOpConvInt8ToFloat, - EOpConvInt8ToDouble, - - // uint8_t -> float* - EOpConvUint8ToFloat16, - EOpConvUint8ToFloat, - EOpConvUint8ToDouble, - - // int16_t -> (u)int* - EOpConvInt16ToInt8, - EOpConvInt16ToInt, - EOpConvInt16ToInt64, - EOpConvInt16ToUint8, - EOpConvInt16ToUint16, - EOpConvInt16ToUint, - EOpConvInt16ToUint64, - - // uint16_t -> (u)int* - EOpConvUint16ToInt8, - EOpConvUint16ToInt16, - EOpConvUint16ToInt, - EOpConvUint16ToInt64, - EOpConvUint16ToUint8, - EOpConvUint16ToUint, - EOpConvUint16ToUint64, - - // int16_t -> float* - EOpConvInt16ToFloat16, - EOpConvInt16ToFloat, - EOpConvInt16ToDouble, - - // uint16_t -> float* - EOpConvUint16ToFloat16, - EOpConvUint16ToFloat, - EOpConvUint16ToDouble, - - // int32_t -> (u)int* - EOpConvIntToInt8, - EOpConvIntToInt16, - EOpConvIntToInt64, - EOpConvIntToUint8, - EOpConvIntToUint16, - EOpConvIntToUint, - EOpConvIntToUint64, - - // uint32_t -> (u)int* - EOpConvUintToInt8, - EOpConvUintToInt16, - EOpConvUintToInt, - EOpConvUintToInt64, - EOpConvUintToUint8, - EOpConvUintToUint16, - EOpConvUintToUint64, - - // int32_t -> float* - EOpConvIntToFloat16, EOpConvIntToFloat, - EOpConvIntToDouble, - - // uint32_t -> float* - EOpConvUintToFloat16, EOpConvUintToFloat, - EOpConvUintToDouble, - - // int64_t -> (u)int* - EOpConvInt64ToInt8, - EOpConvInt64ToInt16, - EOpConvInt64ToInt, - EOpConvInt64ToUint8, - EOpConvInt64ToUint16, - EOpConvInt64ToUint, - EOpConvInt64ToUint64, - - // uint64_t -> (u)int* - EOpConvUint64ToInt8, - EOpConvUint64ToInt16, - EOpConvUint64ToInt, - EOpConvUint64ToInt64, - EOpConvUint64ToUint8, - EOpConvUint64ToUint16, - EOpConvUint64ToUint, - - // int64_t -> float* - EOpConvInt64ToFloat16, + EOpConvDoubleToFloat, EOpConvInt64ToFloat, - EOpConvInt64ToDouble, - - // uint64_t -> float* - EOpConvUint64ToFloat16, EOpConvUint64ToFloat, + EOpConvUintToInt, + EOpConvFloatToInt, + EOpConvBoolToInt, + EOpConvDoubleToInt, + EOpConvInt64ToInt, + EOpConvUint64ToInt, + EOpConvIntToUint, + EOpConvFloatToUint, + EOpConvBoolToUint, + EOpConvDoubleToUint, + EOpConvInt64ToUint, + EOpConvUint64ToUint, + EOpConvIntToDouble, + EOpConvUintToDouble, + EOpConvFloatToDouble, + EOpConvBoolToDouble, + EOpConvInt64ToDouble, EOpConvUint64ToDouble, - - // float16_t -> (u)int* - EOpConvFloat16ToInt8, - EOpConvFloat16ToInt16, + EOpConvBoolToInt64, + EOpConvIntToInt64, + EOpConvUintToInt64, + EOpConvFloatToInt64, + EOpConvDoubleToInt64, + EOpConvUint64ToInt64, + EOpConvBoolToUint64, + EOpConvIntToUint64, + EOpConvUintToUint64, + EOpConvFloatToUint64, + EOpConvDoubleToUint64, + EOpConvInt64ToUint64, +#ifdef AMD_EXTENSIONS + EOpConvBoolToFloat16, + EOpConvIntToFloat16, + EOpConvUintToFloat16, + EOpConvFloatToFloat16, + EOpConvDoubleToFloat16, + EOpConvInt64ToFloat16, + EOpConvUint64ToFloat16, + EOpConvFloat16ToBool, EOpConvFloat16ToInt, - EOpConvFloat16ToInt64, - EOpConvFloat16ToUint8, - EOpConvFloat16ToUint16, EOpConvFloat16ToUint, - EOpConvFloat16ToUint64, - - // float16_t -> float* EOpConvFloat16ToFloat, EOpConvFloat16ToDouble, - - // float -> (u)int* - EOpConvFloatToInt8, - EOpConvFloatToInt16, - EOpConvFloatToInt, - EOpConvFloatToInt64, - EOpConvFloatToUint8, - EOpConvFloatToUint16, - EOpConvFloatToUint, - EOpConvFloatToUint64, - - // float -> float* - EOpConvFloatToFloat16, - EOpConvFloatToDouble, - - // float64 _t-> (u)int* - EOpConvDoubleToInt8, - EOpConvDoubleToInt16, - EOpConvDoubleToInt, - EOpConvDoubleToInt64, - EOpConvDoubleToUint8, - EOpConvDoubleToUint16, - EOpConvDoubleToUint, - EOpConvDoubleToUint64, - - // float64_t -> float* - EOpConvDoubleToFloat16, - EOpConvDoubleToFloat, + EOpConvFloat16ToInt64, + EOpConvFloat16ToUint64, +#endif // // binary operations @@ -309,7 +183,6 @@ enum TOperator { EOpVectorSwizzle, EOpMethod, - EOpScoping, // // Built-in functions mapped to operators @@ -370,10 +243,6 @@ enum TOperator { EOpDoubleBitsToUint64, EOpInt64BitsToDouble, EOpUint64BitsToDouble, - EOpFloat16BitsToInt16, - EOpFloat16BitsToUint16, - EOpInt16BitsToFloat16, - EOpUint16BitsToFloat16, EOpPackSnorm2x16, EOpUnpackSnorm2x16, EOpPackUnorm2x16, @@ -390,22 +259,10 @@ enum TOperator { EOpUnpackInt2x32, EOpPackUint2x32, EOpUnpackUint2x32, +#ifdef AMD_EXTENSIONS EOpPackFloat2x16, EOpUnpackFloat2x16, - EOpPackInt2x16, - EOpUnpackInt2x16, - EOpPackUint2x16, - EOpUnpackUint2x16, - EOpPackInt4x16, - EOpUnpackInt4x16, - EOpPackUint4x16, - EOpUnpackUint4x16, - EOpPack16, - EOpPack32, - EOpPack64, - EOpUnpack32, - EOpUnpack16, - EOpUnpack8, +#endif EOpLength, EOpDistance, @@ -471,90 +328,6 @@ enum TOperator { EOpAllInvocations, EOpAllInvocationsEqual, - EOpSubgroupGuardStart, - EOpSubgroupBarrier, - EOpSubgroupMemoryBarrier, - EOpSubgroupMemoryBarrierBuffer, - EOpSubgroupMemoryBarrierImage, - EOpSubgroupMemoryBarrierShared, // compute only - EOpSubgroupElect, - EOpSubgroupAll, - EOpSubgroupAny, - EOpSubgroupAllEqual, - EOpSubgroupBroadcast, - EOpSubgroupBroadcastFirst, - EOpSubgroupBallot, - EOpSubgroupInverseBallot, - EOpSubgroupBallotBitExtract, - EOpSubgroupBallotBitCount, - EOpSubgroupBallotInclusiveBitCount, - EOpSubgroupBallotExclusiveBitCount, - EOpSubgroupBallotFindLSB, - EOpSubgroupBallotFindMSB, - EOpSubgroupShuffle, - EOpSubgroupShuffleXor, - EOpSubgroupShuffleUp, - EOpSubgroupShuffleDown, - EOpSubgroupAdd, - EOpSubgroupMul, - EOpSubgroupMin, - EOpSubgroupMax, - EOpSubgroupAnd, - EOpSubgroupOr, - EOpSubgroupXor, - EOpSubgroupInclusiveAdd, - EOpSubgroupInclusiveMul, - EOpSubgroupInclusiveMin, - EOpSubgroupInclusiveMax, - EOpSubgroupInclusiveAnd, - EOpSubgroupInclusiveOr, - EOpSubgroupInclusiveXor, - EOpSubgroupExclusiveAdd, - EOpSubgroupExclusiveMul, - EOpSubgroupExclusiveMin, - EOpSubgroupExclusiveMax, - EOpSubgroupExclusiveAnd, - EOpSubgroupExclusiveOr, - EOpSubgroupExclusiveXor, - EOpSubgroupClusteredAdd, - EOpSubgroupClusteredMul, - EOpSubgroupClusteredMin, - EOpSubgroupClusteredMax, - EOpSubgroupClusteredAnd, - EOpSubgroupClusteredOr, - EOpSubgroupClusteredXor, - EOpSubgroupQuadBroadcast, - EOpSubgroupQuadSwapHorizontal, - EOpSubgroupQuadSwapVertical, - EOpSubgroupQuadSwapDiagonal, - -#ifdef NV_EXTENSIONS - EOpSubgroupPartition, - EOpSubgroupPartitionedAdd, - EOpSubgroupPartitionedMul, - EOpSubgroupPartitionedMin, - EOpSubgroupPartitionedMax, - EOpSubgroupPartitionedAnd, - EOpSubgroupPartitionedOr, - EOpSubgroupPartitionedXor, - EOpSubgroupPartitionedInclusiveAdd, - EOpSubgroupPartitionedInclusiveMul, - EOpSubgroupPartitionedInclusiveMin, - EOpSubgroupPartitionedInclusiveMax, - EOpSubgroupPartitionedInclusiveAnd, - EOpSubgroupPartitionedInclusiveOr, - EOpSubgroupPartitionedInclusiveXor, - EOpSubgroupPartitionedExclusiveAdd, - EOpSubgroupPartitionedExclusiveMul, - EOpSubgroupPartitionedExclusiveMin, - EOpSubgroupPartitionedExclusiveMax, - EOpSubgroupPartitionedExclusiveAnd, - EOpSubgroupPartitionedExclusiveOr, - EOpSubgroupPartitionedExclusiveXor, -#endif - - EOpSubgroupGuardStop, - #ifdef AMD_EXTENSIONS EOpMinInvocations, EOpMaxInvocations, @@ -562,18 +335,6 @@ enum TOperator { EOpMinInvocationsNonUniform, EOpMaxInvocationsNonUniform, EOpAddInvocationsNonUniform, - EOpMinInvocationsInclusiveScan, - EOpMaxInvocationsInclusiveScan, - EOpAddInvocationsInclusiveScan, - EOpMinInvocationsInclusiveScanNonUniform, - EOpMaxInvocationsInclusiveScanNonUniform, - EOpAddInvocationsInclusiveScanNonUniform, - EOpMinInvocationsExclusiveScan, - EOpMaxInvocationsExclusiveScan, - EOpAddInvocationsExclusiveScan, - EOpMinInvocationsExclusiveScanNonUniform, - EOpMaxInvocationsExclusiveScanNonUniform, - EOpAddInvocationsExclusiveScanNonUniform, EOpSwizzleInvocations, EOpSwizzleInvocationsMasked, EOpWriteInvocation, @@ -593,18 +354,9 @@ enum TOperator { EOpAtomicExchange, EOpAtomicCompSwap, - EOpAtomicCounterIncrement, // results in pre-increment value - EOpAtomicCounterDecrement, // results in post-decrement value + EOpAtomicCounterIncrement, + EOpAtomicCounterDecrement, EOpAtomicCounter, - EOpAtomicCounterAdd, - EOpAtomicCounterSubtract, - EOpAtomicCounterMin, - EOpAtomicCounterMax, - EOpAtomicCounterAnd, - EOpAtomicCounterOr, - EOpAtomicCounterXor, - EOpAtomicCounterExchange, - EOpAtomicCounterCompSwap, EOpAny, EOpAll, @@ -627,10 +379,6 @@ enum TOperator { EOpConstructGuardStart, EOpConstructInt, // these first scalar forms also identify what implicit conversion is needed EOpConstructUint, - EOpConstructInt8, - EOpConstructUint8, - EOpConstructInt16, - EOpConstructUint16, EOpConstructInt64, EOpConstructUint64, EOpConstructBool, @@ -645,18 +393,6 @@ enum TOperator { EOpConstructBVec2, EOpConstructBVec3, EOpConstructBVec4, - EOpConstructI8Vec2, - EOpConstructI8Vec3, - EOpConstructI8Vec4, - EOpConstructU8Vec2, - EOpConstructU8Vec3, - EOpConstructU8Vec4, - EOpConstructI16Vec2, - EOpConstructI16Vec3, - EOpConstructI16Vec4, - EOpConstructU16Vec2, - EOpConstructU16Vec3, - EOpConstructU16Vec4, EOpConstructIVec2, EOpConstructIVec3, EOpConstructIVec4, @@ -687,33 +423,7 @@ enum TOperator { EOpConstructDMat4x2, EOpConstructDMat4x3, EOpConstructDMat4x4, - EOpConstructIMat2x2, - EOpConstructIMat2x3, - EOpConstructIMat2x4, - EOpConstructIMat3x2, - EOpConstructIMat3x3, - EOpConstructIMat3x4, - EOpConstructIMat4x2, - EOpConstructIMat4x3, - EOpConstructIMat4x4, - EOpConstructUMat2x2, - EOpConstructUMat2x3, - EOpConstructUMat2x4, - EOpConstructUMat3x2, - EOpConstructUMat3x3, - EOpConstructUMat3x4, - EOpConstructUMat4x2, - EOpConstructUMat4x3, - EOpConstructUMat4x4, - EOpConstructBMat2x2, - EOpConstructBMat2x3, - EOpConstructBMat2x4, - EOpConstructBMat3x2, - EOpConstructBMat3x3, - EOpConstructBMat3x4, - EOpConstructBMat4x2, - EOpConstructBMat4x3, - EOpConstructBMat4x4, +#ifdef AMD_EXTENSIONS EOpConstructFloat16, EOpConstructF16Vec2, EOpConstructF16Vec3, @@ -727,9 +437,9 @@ enum TOperator { EOpConstructF16Mat4x2, EOpConstructF16Mat4x3, EOpConstructF16Mat4x4, +#endif EOpConstructStruct, EOpConstructTextureSampler, - EOpConstructNonuniform, // expected to be transformed away, not present in final AST EOpConstructGuardEnd, // @@ -756,11 +466,7 @@ enum TOperator { // Array operators // - // Can apply to arrays, vectors, or matrices. - // Can be decomposed to a constant at compile time, but this does not always happen, - // due to link-time effects. So, consumer can expect either a link-time sized or - // run-time sized array. - EOpArrayLength, + EOpArrayLength, // "Array" distinguishes from length(v) built-in function, but it applies to vectors and matrices as well. // // Image operations @@ -772,10 +478,6 @@ enum TOperator { EOpImageQuerySamples, EOpImageLoad, EOpImageStore, -#ifdef AMD_EXTENSIONS - EOpImageLoadLod, - EOpImageStoreLod, -#endif EOpImageAtomicAdd, EOpImageAtomicMin, EOpImageAtomicMax, @@ -788,9 +490,6 @@ enum TOperator { EOpSubpassLoad, EOpSubpassLoadMS, EOpSparseImageLoad, -#ifdef AMD_EXTENSIONS - EOpSparseImageLoadLod, -#endif EOpImageGuardEnd, @@ -828,13 +527,6 @@ enum TOperator { EOpTextureOffsetClamp, EOpTextureGradClamp, EOpTextureGradOffsetClamp, -#ifdef AMD_EXTENSIONS - EOpTextureGatherLod, - EOpTextureGatherLodOffset, - EOpTextureGatherLodOffsets, - EOpFragmentMaskFetch, - EOpFragmentFetch, -#endif EOpSparseTextureGuardBegin, @@ -854,11 +546,6 @@ enum TOperator { EOpSparseTextureOffsetClamp, EOpSparseTextureGradClamp, EOpSparseTextureGradOffsetClamp, -#ifdef AMD_EXTENSIONS - EOpSparseTextureGatherLod, - EOpSparseTextureGatherLodOffset, - EOpSparseTextureGatherLodOffsets, -#endif EOpSparseTextureGuardEnd, EOpSamplingGuardEnd, @@ -901,8 +588,7 @@ enum TOperator { EOpInterlockedOr, // ... EOpInterlockedXor, // ... EOpAllMemoryBarrierWithGroupSync, // memory barriers without non-hlsl AST equivalents - EOpDeviceMemoryBarrier, // ... - EOpDeviceMemoryBarrierWithGroupSync, // ... + EOpGroupMemoryBarrierWithGroupSync, // ... EOpWorkgroupMemoryBarrier, // ... EOpWorkgroupMemoryBarrierWithGroupSync, // ... EOpEvaluateAttributeSnapped, // InterpolateAtOffset with int position on 16x16 grid @@ -911,7 +597,6 @@ enum TOperator { EOpLit, // HLSL lighting coefficient vector EOpTextureBias, // HLSL texture bias: will be lowered to EOpTexture EOpAsDouble, // slightly different from EOpUint64BitsToDouble - EOpD3DCOLORtoUBYTE4, // convert and swizzle 4-component color to UBYTE4 range EOpMethodSample, // Texture object methods. These are translated to existing EOpMethodSampleBias, // AST methods, and exist to represent HLSL semantics until that @@ -926,19 +611,6 @@ enum TOperator { EOpMethodCalculateLevelOfDetail, // ... EOpMethodCalculateLevelOfDetailUnclamped, // ... - // Load already defined above for textures - EOpMethodLoad2, // Structure buffer object methods. These are translated to existing - EOpMethodLoad3, // AST methods, and exist to represent HLSL semantics until that - EOpMethodLoad4, // translation is performed. See HlslParseContext::decomposeSampleMethods(). - EOpMethodStore, // ... - EOpMethodStore2, // ... - EOpMethodStore3, // ... - EOpMethodStore4, // ... - EOpMethodIncrementCounter, // ... - EOpMethodDecrementCounter, // ... - // EOpMethodAppend is defined for geo shaders below - EOpMethodConsume, - // SM5 texture methods EOpMethodGatherRed, // These are covered under the above EOpMethodSample comment about EOpMethodGatherGreen, // translation to existing AST opcodes. They exist temporarily @@ -953,15 +625,6 @@ enum TOperator { // geometry methods EOpMethodAppend, // Geometry shader methods EOpMethodRestartStrip, // ... - - // matrix - EOpMatrixSwizzle, // select multiple matrix components (non-column) - - // SM6 wave ops - EOpWaveGetLaneCount, // Will decompose to gl_SubgroupSize. - EOpWaveGetLaneIndex, // Will decompose to gl_SubgroupInvocationID. - EOpWaveActiveCountBits, // Will decompose to subgroupBallotBitCount(subgroupBallot()). - EOpWavePrefixCountBits, // Will decompose to subgroupBallotInclusiveBitCount(subgroupBallot()). }; class TIntermTraverser; @@ -976,7 +639,6 @@ class TIntermBranch; class TIntermTyped; class TIntermMethod; class TIntermSymbol; -class TIntermLoop; } // end namespace glslang @@ -1004,7 +666,6 @@ public: virtual glslang::TIntermMethod* getAsMethodNode() { return 0; } virtual glslang::TIntermSymbol* getAsSymbolNode() { return 0; } virtual glslang::TIntermBranch* getAsBranchNode() { return 0; } - virtual glslang::TIntermLoop* getAsLoopNode() { return 0; } virtual const glslang::TIntermTyped* getAsTyped() const { return 0; } virtual const glslang::TIntermOperator* getAsOperator() const { return 0; } @@ -1017,7 +678,6 @@ public: virtual const glslang::TIntermMethod* getAsMethodNode() const { return 0; } virtual const glslang::TIntermSymbol* getAsSymbolNode() const { return 0; } virtual const glslang::TIntermBranch* getAsBranchNode() const { return 0; } - virtual const glslang::TIntermLoop* getAsLoopNode() const { return 0; } virtual ~TIntermNode() { } protected: @@ -1061,8 +721,6 @@ public: virtual bool isVector() const { return type.isVector(); } virtual bool isScalar() const { return type.isScalar(); } virtual bool isStruct() const { return type.isStruct(); } - virtual bool isFloatingDomain() const { return type.isFloatingDomain(); } - virtual bool isIntegerDomain() const { return type.isIntegerDomain(); } TString getCompleteString() const { return type.getCompleteString(); } protected: @@ -1079,37 +737,17 @@ public: body(aBody), test(aTest), terminal(aTerminal), - first(testFirst), - unroll(false), - dontUnroll(false), - dependency(0) - { } - - virtual TIntermLoop* getAsLoopNode() { return this; } - virtual const TIntermLoop* getAsLoopNode() const { return this; } + first(testFirst) { } virtual void traverse(TIntermTraverser*); TIntermNode* getBody() const { return body; } TIntermTyped* getTest() const { return test; } TIntermTyped* getTerminal() const { return terminal; } bool testFirst() const { return first; } - - void setUnroll() { unroll = true; } - void setDontUnroll() { dontUnroll = true; } - bool getUnroll() const { return unroll; } - bool getDontUnroll() const { return dontUnroll; } - - static const unsigned int dependencyInfinite = 0xFFFFFFFF; - void setLoopDependency(int d) { dependency = d; } - int getLoopDependency() const { return dependency; } - protected: TIntermNode* body; // code to loop over TIntermTyped* test; // exit condition associated with loop, could be 0 for 'for' loops TIntermTyped* terminal; // exists for for-loops bool first; // true for while and for, not for do-while - bool unroll; // true if unroll requested - bool dontUnroll; // true if request to not unroll - unsigned int dependency; // loop dependency hint; 0 means not set or unknown }; // @@ -1157,11 +795,7 @@ public: // per process threadPoolAllocator, then it causes increased memory usage per compile // 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) + : TIntermTyped(t), id(i), constSubtree(nullptr) { name = n; } virtual int getId() const { return id; } virtual const TString& getName() const { return name; } @@ -1172,20 +806,9 @@ 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. - virtual void switchId(int newId) { id = newId; } 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; @@ -1223,9 +846,6 @@ struct TCrackedTextureOp { bool grad; bool subpass; bool lodClamp; -#ifdef AMD_EXTENSIONS - bool fragMask; -#endif }; // @@ -1273,9 +893,6 @@ public: cracked.grad = false; cracked.subpass = false; cracked.lodClamp = false; -#ifdef AMD_EXTENSIONS - cracked.fragMask = false; -#endif switch (op) { case EOpImageQuerySize: @@ -1384,38 +1001,6 @@ public: cracked.gather = true; cracked.offsets = true; break; -#ifdef AMD_EXTENSIONS - case EOpTextureGatherLod: - case EOpSparseTextureGatherLod: - cracked.gather = true; - cracked.lod = true; - break; - case EOpTextureGatherLodOffset: - case EOpSparseTextureGatherLodOffset: - cracked.gather = true; - cracked.offset = true; - cracked.lod = true; - break; - case EOpTextureGatherLodOffsets: - case EOpSparseTextureGatherLodOffsets: - cracked.gather = true; - cracked.offsets = true; - cracked.lod = true; - break; - case EOpImageLoadLod: - case EOpImageStoreLod: - case EOpSparseImageLoadLod: - cracked.lod = true; - break; - case EOpFragmentMaskFetch: - cracked.subpass = sampler.dim == EsdSubpass; - cracked.fragMask = true; - break; - case EOpFragmentFetch: - cracked.subpass = sampler.dim == EsdSubpass; - cracked.fragMask = true; - break; -#endif case EOpSubpassLoad: case EOpSubpassLoadMS: cracked.subpass = true; @@ -1475,14 +1060,14 @@ protected: }; typedef TVector TIntermSequence; -typedef TVector TQualifierList; +typedef TVector TQualifierList; // // Nodes that operate on an arbitrary sized set of children. // class TIntermAggregate : public TIntermOperator { public: - TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(nullptr) { } - TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(nullptr) { } + TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(0) { } + TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(0) { } ~TIntermAggregate() { delete pragmaTable; } virtual TIntermAggregate* getAsAggregate() { return this; } virtual const TIntermAggregate* getAsAggregate() const { return this; } @@ -1500,7 +1085,7 @@ public: void setDebug(bool d) { debug = d; } bool getOptimize() const { return optimize; } bool getDebug() const { return debug; } - void setPragmaTable(const TPragmaTable& pTable); + void addToPragmaTable(const TPragmaTable& pTable); const TPragmaTable& getPragmaTable() const { return *pragmaTable; } protected: TIntermAggregate(const TIntermAggregate&); // disallow copy constructor @@ -1520,35 +1105,19 @@ protected: class TIntermSelection : public TIntermTyped { public: TIntermSelection(TIntermTyped* cond, TIntermNode* trueB, TIntermNode* falseB) : - TIntermTyped(EbtVoid), condition(cond), trueBlock(trueB), falseBlock(falseB), - shortCircuit(true), - flatten(false), dontFlatten(false) {} + TIntermTyped(EbtVoid), condition(cond), trueBlock(trueB), falseBlock(falseB) {} TIntermSelection(TIntermTyped* cond, TIntermNode* trueB, TIntermNode* falseB, const TType& type) : - TIntermTyped(type), condition(cond), trueBlock(trueB), falseBlock(falseB), - shortCircuit(true), - flatten(false), dontFlatten(false) {} + TIntermTyped(type), condition(cond), trueBlock(trueB), falseBlock(falseB) {} virtual void traverse(TIntermTraverser*); virtual TIntermTyped* getCondition() const { return condition; } virtual TIntermNode* getTrueBlock() const { return trueBlock; } virtual TIntermNode* getFalseBlock() const { return falseBlock; } virtual TIntermSelection* getAsSelectionNode() { return this; } virtual const TIntermSelection* getAsSelectionNode() const { return this; } - - void setNoShortCircuit() { shortCircuit = false; } - bool getShortCircuit() const { return shortCircuit; } - - void setFlatten() { flatten = true; } - void setDontFlatten() { dontFlatten = true; } - bool getFlatten() const { return flatten; } - bool getDontFlatten() const { return dontFlatten; } - protected: TIntermTyped* condition; TIntermNode* trueBlock; TIntermNode* falseBlock; - bool shortCircuit; // normally all if-then-else and all GLSL ?: short-circuit, but HLSL ?: does not - bool flatten; // true if flatten requested - bool dontFlatten; // true if requested to not flatten }; // @@ -1559,24 +1128,15 @@ protected: // class TIntermSwitch : public TIntermNode { public: - TIntermSwitch(TIntermTyped* cond, TIntermAggregate* b) : condition(cond), body(b), - flatten(false), dontFlatten(false) {} + TIntermSwitch(TIntermTyped* cond, TIntermAggregate* b) : condition(cond), body(b) { } virtual void traverse(TIntermTraverser*); virtual TIntermNode* getCondition() const { return condition; } virtual TIntermAggregate* getBody() const { return body; } virtual TIntermSwitch* getAsSwitchNode() { return this; } virtual const TIntermSwitch* getAsSwitchNode() const { return this; } - - void setFlatten() { flatten = true; } - void setDontFlatten() { dontFlatten = true; } - bool getFlatten() const { return flatten; } - bool getDontFlatten() const { return dontFlatten; } - protected: TIntermTyped* condition; TIntermAggregate* body; - bool flatten; // true if flatten requested - bool dontFlatten; // true if requested to not flatten }; enum TVisit diff --git a/deps/glslang/glslang-old/glslang/Include/revision.h b/deps/glslang/glslang-old/glslang/Include/revision.h new file mode 100644 index 0000000000..2f391b6954 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/Include/revision.h @@ -0,0 +1,6 @@ +// This header is generated by the make-revision script. +// For the version, it uses the latest git tag followed by the number of commits. +// For the date, it uses the current date (when then script is run). + +#define GLSLANG_REVISION "Overload400-PrecQual.1688" +#define GLSLANG_DATE "09-Dec-2016" diff --git a/deps/glslang-new/glslang/Include/revision.template b/deps/glslang/glslang-old/glslang/Include/revision.template similarity index 95% rename from deps/glslang-new/glslang/Include/revision.template rename to deps/glslang/glslang-old/glslang/Include/revision.template index 6c13630b27..1dc3392b39 100644 --- a/deps/glslang-new/glslang/Include/revision.template +++ b/deps/glslang/glslang-old/glslang/Include/revision.template @@ -1,4 +1,4 @@ -// The file revision.h should be updated to the latest version, somehow, on +// The file revision.h should be updated to the latest version, somehow, on // check-in, if glslang has changed. // // revision.template is the source for revision.h when using SubWCRev as the diff --git a/deps/glslang-new/glslang/MachineIndependent/Constant.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/Constant.cpp similarity index 73% rename from deps/glslang-new/glslang/MachineIndependent/Constant.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/Constant.cpp index 142492dc33..804626fa78 100644 --- a/deps/glslang-new/glslang/MachineIndependent/Constant.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Constant.cpp @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,25 +20,24 @@ // 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 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 "localintermediate.h" #include #include #include -#include namespace { @@ -59,7 +57,7 @@ bool isNan(double x) u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; - return (bitPatternH & 0x7ff80000) == 0x7ff80000 && + return (bitPatternH & 0x7ff80000) == 0x7ff80000 && ((bitPatternH & 0xFFFFF) != 0 || bitPatternL != 0); } @@ -70,7 +68,7 @@ bool isInf(double x) u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; - return (bitPatternH & 0x7ff00000) == 0x7ff00000 && + return (bitPatternH & 0x7ff00000) == 0x7ff00000 && (bitPatternH & 0xFFFFF) == 0 && bitPatternL == 0; } @@ -133,7 +131,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right TConstUnionArray smearedArray(newComps, rightNode->getConstArray()[0]); rightUnionArray = smearedArray; } else if (constComps > 1 && newComps == 1) { - // for a case like vec4 f = 1.2 + vec4(2,3,4,5); + // for a case like vec4 f = 1.2 + vec4(2,3,4,5); newComps = constComps; rightUnionArray = rightNode->getConstArray(); TConstUnionArray smearedArray(newComps, getConstArray()[0]); @@ -178,40 +176,11 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right switch (getType().getBasicType()) { case EbtDouble: case EbtFloat: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif newConstArray[i].setDConst(leftUnionArray[i].getDConst() / rightUnionArray[i].getDConst()); break; - case EbtInt8: - if (rightUnionArray[i] == 0) - newConstArray[i].setI8Const(0x7F); - else if (rightUnionArray[i].getI8Const() == -1 && leftUnionArray[i].getI8Const() == (signed char)0x80) - newConstArray[i].setI8Const((signed char)0x80); - else - newConstArray[i].setI8Const(leftUnionArray[i].getI8Const() / rightUnionArray[i].getI8Const()); - break; - - case EbtUint8: - if (rightUnionArray[i] == 0) { - newConstArray[i].setU8Const(0xFF); - } else - newConstArray[i].setU8Const(leftUnionArray[i].getU8Const() / rightUnionArray[i].getU8Const()); - break; - - case EbtInt16: - if (rightUnionArray[i] == 0) - newConstArray[i].setI16Const(0x7FFF); - else if (rightUnionArray[i].getI16Const() == -1 && leftUnionArray[i].getI16Const() == (signed short)0x8000) - newConstArray[i].setI16Const(short(0x8000)); - else - newConstArray[i].setI16Const(leftUnionArray[i].getI16Const() / rightUnionArray[i].getI16Const()); - break; - - case EbtUint16: - if (rightUnionArray[i] == 0) { - newConstArray[i].setU16Const(0xFFFF); - } else - newConstArray[i].setU16Const(leftUnionArray[i].getU16Const() / rightUnionArray[i].getU16Const()); - break; case EbtInt: if (rightUnionArray[i] == 0) @@ -224,7 +193,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right case EbtUint: if (rightUnionArray[i] == 0) { - newConstArray[i].setUConst(0xFFFFFFFFu); + newConstArray[i].setUConst(0xFFFFFFFF); } else newConstArray[i].setUConst(leftUnionArray[i].getUConst() / rightUnionArray[i].getUConst()); break; @@ -277,31 +246,8 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right for (int i = 0; i < newComps; i++) { if (rightUnionArray[i] == 0) newConstArray[i] = leftUnionArray[i]; - else { - switch (getType().getBasicType()) { - case EbtInt: - if (rightUnionArray[i].getIConst() == -1 && leftUnionArray[i].getIConst() == INT_MIN) { - newConstArray[i].setIConst(0); - break; - } else goto modulo_default; - - case EbtInt64: - if (rightUnionArray[i].getI64Const() == -1 && leftUnionArray[i].getI64Const() == LLONG_MIN) { - newConstArray[i].setI64Const(0); - break; - } else goto modulo_default; -#ifdef AMD_EXTENSIONS - case EbtInt16: - if (rightUnionArray[i].getIConst() == -1 && leftUnionArray[i].getIConst() == SHRT_MIN) { - newConstArray[i].setIConst(0); - break; - } else goto modulo_default; -#endif - default: - modulo_default: - newConstArray[i] = leftUnionArray[i] % rightUnionArray[i]; - } - } + else + newConstArray[i] = leftUnionArray[i] % rightUnionArray[i]; } break; @@ -424,12 +370,6 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) resultSize = 2; break; - case EOpPack16: - case EOpPack32: - case EOpPack64: - case EOpUnpack32: - case EOpUnpack16: - case EOpUnpack8: case EOpNormalize: componentWise = false; resultSize = objectSize; @@ -488,12 +428,6 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpPackSnorm2x16: case EOpPackUnorm2x16: case EOpPackHalf2x16: - case EOpPack16: - case EOpPack32: - case EOpPack64: - case EOpUnpack32: - case EOpUnpack16: - case EOpUnpack8: case EOpUnpackSnorm2x16: case EOpUnpackUnorm2x16: @@ -519,16 +453,14 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpNegative: switch (getType().getBasicType()) { case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif case EbtFloat: newConstArray[i].setDConst(-unionArray[i].getDConst()); break; - case EbtInt8: newConstArray[i].setI8Const(-unionArray[i].getI8Const()); break; - case EbtUint8: newConstArray[i].setU8Const(static_cast(-static_cast(unionArray[i].getU8Const()))); break; - case EbtInt16: newConstArray[i].setI16Const(-unionArray[i].getI16Const()); break; - case EbtUint16:newConstArray[i].setU16Const(static_cast(-static_cast(unionArray[i].getU16Const()))); break; case EbtInt: newConstArray[i].setIConst(-unionArray[i].getIConst()); break; case EbtUint: newConstArray[i].setUConst(static_cast(-static_cast(unionArray[i].getUConst()))); break; case EbtInt64: newConstArray[i].setI64Const(-unionArray[i].getI64Const()); break; - case EbtUint64: newConstArray[i].setU64Const(static_cast(-static_cast(unionArray[i].getU64Const()))); break; + case EbtUint64: newConstArray[i].setU64Const(static_cast(-static_cast(unionArray[i].getU64Const()))); break; default: return 0; } @@ -678,12 +610,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpUintBitsToFloat: case EOpDoubleBitsToInt64: case EOpDoubleBitsToUint64: - case EOpInt64BitsToDouble: - case EOpUint64BitsToDouble: - case EOpFloat16BitsToInt16: - case EOpFloat16BitsToUint16: - case EOpInt16BitsToFloat16: - case EOpUint16BitsToFloat16: + default: return 0; } @@ -699,12 +626,9 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) // // Do constant folding for an aggregate node that has all its children // as constants and an operator that requires constant folding. -// +// TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) { - if (aggrNode == nullptr) - return aggrNode; - if (! areAllChildConst(aggrNode)) return aggrNode; @@ -767,6 +691,17 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) for (unsigned int arg = 0; arg < children.size(); ++arg) childConstUnions.push_back(children[arg]->getAsConstantUnion()->getConstArray()); + // Second, do the actual folding + + bool isFloatingPoint = children[0]->getAsTyped()->getBasicType() == EbtFloat || +#ifdef AMD_EXTENSIONS + children[0]->getAsTyped()->getBasicType() == EbtFloat16 || +#endif + children[0]->getAsTyped()->getBasicType() == EbtDouble; + bool isSigned = children[0]->getAsTyped()->getBasicType() == EbtInt || + children[0]->getAsTyped()->getBasicType() == EbtInt64; + bool isInt64 = children[0]->getAsTyped()->getBasicType() == EbtInt64 || + children[0]->getAsTyped()->getBasicType() == EbtUint64; if (componentwise) { for (int comp = 0; comp < objectSize; comp++) { @@ -787,114 +722,53 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) newConstArray[comp].setDConst(pow(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); break; case EOpMin: - switch(children[0]->getAsTyped()->getBasicType()) { - case EbtFloat16: - case EbtFloat: - case EbtDouble: + if (isFloatingPoint) newConstArray[comp].setDConst(std::min(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - break; - case EbtInt8: - newConstArray[comp].setI8Const(std::min(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const())); - break; - case EbtUint8: - newConstArray[comp].setU8Const(std::min(childConstUnions[0][arg0comp].getU8Const(), childConstUnions[1][arg1comp].getU8Const())); - break; - case EbtInt16: - newConstArray[comp].setI16Const(std::min(childConstUnions[0][arg0comp].getI16Const(), childConstUnions[1][arg1comp].getI16Const())); - break; - case EbtUint16: - newConstArray[comp].setU16Const(std::min(childConstUnions[0][arg0comp].getU16Const(), childConstUnions[1][arg1comp].getU16Const())); - break; - case EbtInt: - newConstArray[comp].setIConst(std::min(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); - break; - case EbtUint: - newConstArray[comp].setUConst(std::min(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); - break; - case EbtInt64: - newConstArray[comp].setI64Const(std::min(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); - break; - case EbtUint64: - newConstArray[comp].setU64Const(std::min(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); - break; - default: assert(false && "Default missing"); + else if (isSigned) { + if (isInt64) + newConstArray[comp].setI64Const(std::min(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); + else + newConstArray[comp].setIConst(std::min(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); + } else { + if (isInt64) + newConstArray[comp].setU64Const(std::min(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); + else + newConstArray[comp].setUConst(std::min(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); } break; case EOpMax: - switch(children[0]->getAsTyped()->getBasicType()) { - case EbtFloat16: - case EbtFloat: - case EbtDouble: + if (isFloatingPoint) newConstArray[comp].setDConst(std::max(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - break; - case EbtInt8: - newConstArray[comp].setI8Const(std::max(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const())); - break; - case EbtUint8: - newConstArray[comp].setU8Const(std::max(childConstUnions[0][arg0comp].getU8Const(), childConstUnions[1][arg1comp].getU8Const())); - break; - case EbtInt16: - newConstArray[comp].setI16Const(std::max(childConstUnions[0][arg0comp].getI16Const(), childConstUnions[1][arg1comp].getI16Const())); - break; - case EbtUint16: - newConstArray[comp].setU16Const(std::max(childConstUnions[0][arg0comp].getU16Const(), childConstUnions[1][arg1comp].getU16Const())); - break; - case EbtInt: - newConstArray[comp].setIConst(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); - break; - case EbtUint: - newConstArray[comp].setUConst(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); - break; - case EbtInt64: - newConstArray[comp].setI64Const(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); - break; - case EbtUint64: - newConstArray[comp].setU64Const(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); - break; - default: assert(false && "Default missing"); + else if (isSigned) { + if (isInt64) + newConstArray[comp].setI64Const(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); + else + newConstArray[comp].setIConst(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); + } else { + if (isInt64) + newConstArray[comp].setU64Const(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); + else + newConstArray[comp].setUConst(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); } break; case EOpClamp: - switch(children[0]->getAsTyped()->getBasicType()) { - case EbtFloat16: - case EbtFloat: - case EbtDouble: + if (isFloatingPoint) newConstArray[comp].setDConst(std::min(std::max(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst()), childConstUnions[2][arg2comp].getDConst())); - break; - case EbtInt8: - newConstArray[comp].setI8Const(std::min(std::max(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const()), - childConstUnions[2][arg2comp].getI8Const())); - break; - case EbtUint8: - newConstArray[comp].setU8Const(std::min(std::max(childConstUnions[0][arg0comp].getU8Const(), childConstUnions[1][arg1comp].getU8Const()), - childConstUnions[2][arg2comp].getU8Const())); - break; - case EbtInt16: - newConstArray[comp].setI16Const(std::min(std::max(childConstUnions[0][arg0comp].getI16Const(), childConstUnions[1][arg1comp].getI16Const()), - childConstUnions[2][arg2comp].getI16Const())); - break; - case EbtUint16: - newConstArray[comp].setU16Const(std::min(std::max(childConstUnions[0][arg0comp].getU16Const(), childConstUnions[1][arg1comp].getU16Const()), - childConstUnions[2][arg2comp].getU16Const())); - break; - case EbtInt: - newConstArray[comp].setIConst(std::min(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst()), - childConstUnions[2][arg2comp].getIConst())); - break; - case EbtUint: - newConstArray[comp].setUConst(std::min(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()), - childConstUnions[2][arg2comp].getUConst())); - break; - case EbtInt64: - newConstArray[comp].setI64Const(std::min(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const()), + else if (isSigned) { + if (isInt64) + newConstArray[comp].setI64Const(std::min(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const()), childConstUnions[2][arg2comp].getI64Const())); - break; - case EbtUint64: - newConstArray[comp].setU64Const(std::min(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const()), + else + newConstArray[comp].setIConst(std::min(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst()), + childConstUnions[2][arg2comp].getIConst())); + } else { + if (isInt64) + newConstArray[comp].setU64Const(std::min(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const()), childConstUnions[2][arg2comp].getU64Const())); - break; - default: assert(false && "Default missing"); + else + newConstArray[comp].setUConst(std::min(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()), + childConstUnions[2][arg2comp].getUConst())); } break; case EOpLessThan: @@ -928,7 +802,7 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) break; case EOpSmoothStep: { - double t = (childConstUnions[2][arg2comp].getDConst() - childConstUnions[0][arg0comp].getDConst()) / + double t = (childConstUnions[2][arg2comp].getDConst() - childConstUnions[0][arg0comp].getDConst()) / (childConstUnions[1][arg1comp].getDConst() - childConstUnions[0][arg0comp].getDConst()); if (t < 0.0) t = 0.0; @@ -967,7 +841,7 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) newConstArray[2] = childConstUnions[0][0] * childConstUnions[1][1] - childConstUnions[0][1] * childConstUnions[1][0]; break; case EOpFaceForward: - // If dot(Nref, I) < 0 return N, otherwise return -N: Arguments are (N, I, Nref). + // If dot(Nref, I) < 0 return N, otherwise return –N: Arguments are (N, I, Nref). dot = childConstUnions[1].dot(childConstUnions[2]); for (int comp = 0; comp < numComps; ++comp) { if (dot < 0.0) @@ -1094,23 +968,23 @@ TIntermTyped* TIntermediate::foldDereference(TIntermTyped* node, int index, cons } // -// Make a constant vector node or constant scalar node, representing a given +// Make a constant vector node or constant scalar node, representing a given // constant vector and constant swizzle into it. // -TIntermTyped* TIntermediate::foldSwizzle(TIntermTyped* node, TSwizzleSelectors& selectors, const TSourceLoc& loc) +TIntermTyped* TIntermediate::foldSwizzle(TIntermTyped* node, TVectorFields& fields, const TSourceLoc& loc) { const TConstUnionArray& unionArray = node->getAsConstantUnion()->getConstArray(); - TConstUnionArray constArray(selectors.size()); + TConstUnionArray constArray(fields.num); - for (int i = 0; i < selectors.size(); i++) - constArray[i] = unionArray[selectors[i]]; + for (int i = 0; i < fields.num; i++) + constArray[i] = unionArray[fields.offsets[i]]; TIntermTyped* result = addConstantUnion(constArray, node->getType(), loc); if (result == 0) result = node; else - result->setType(TType(node->getBasicType(), EvqConst, selectors.size())); + result->setType(TType(node->getBasicType(), EvqConst, fields.num)); return result; } diff --git a/deps/glslang-new/glslang/MachineIndependent/InfoSink.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/InfoSink.cpp similarity index 64% rename from deps/glslang-new/glslang/MachineIndependent/InfoSink.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/InfoSink.cpp index d00c422566..79acba8788 100644 --- a/deps/glslang-new/glslang/MachineIndependent/InfoSink.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/InfoSink.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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/InfoSink.h" @@ -59,10 +59,10 @@ void TInfoSinkBase::append(const char* s) } void TInfoSinkBase::append(int count, char c) -{ +{ if (outputStream & EString) { checkMem(count); - sink.append(count, c); + sink.append(count, c); } //#ifdef _WIN32 @@ -79,10 +79,10 @@ void TInfoSinkBase::append(int count, char c) } void TInfoSinkBase::append(const TPersistString& t) -{ +{ if (outputStream & EString) { checkMem(t.size()); - sink.append(t); + sink.append(t); } //#ifdef _WIN32 @@ -95,10 +95,10 @@ void TInfoSinkBase::append(const TPersistString& t) } void TInfoSinkBase::append(const TString& t) -{ +{ if (outputStream & EString) { checkMem(t.size()); - sink.append(t.c_str()); + sink.append(t.c_str()); } //#ifdef _WIN32 diff --git a/deps/glslang-new/glslang/MachineIndependent/Initialize.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/Initialize.cpp old mode 100755 new mode 100644 similarity index 51% rename from deps/glslang-new/glslang/MachineIndependent/Initialize.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/Initialize.cpp index 34341b0ea1..c8739535e7 --- a/deps/glslang-new/glslang/MachineIndependent/Initialize.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Initialize.cpp @@ -1,14 +1,13 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2015-2017 Google, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2016 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -22,22 +21,22 @@ // 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 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 +// 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. // @@ -84,13 +83,6 @@ TBuiltIns::TBuiltIns() // Set up textual representations for making all the permutations // of texturing/imaging functions. prefixes[EbtFloat] = ""; -#ifdef AMD_EXTENSIONS - prefixes[EbtFloat16] = "f16"; -#endif - prefixes[EbtInt8] = "i8"; - prefixes[EbtUint8] = "u8"; - prefixes[EbtInt16] = "i16"; - prefixes[EbtUint16] = "u16"; prefixes[EbtInt] = "i"; prefixes[EbtUint] = "u"; postfixes[2] = "2"; @@ -136,47 +128,47 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 radians(vec2 degrees);" "vec3 radians(vec3 degrees);" "vec4 radians(vec4 degrees);" - + "float degrees(float radians);" "vec2 degrees(vec2 radians);" "vec3 degrees(vec3 radians);" "vec4 degrees(vec4 radians);" - + "float sin(float angle);" "vec2 sin(vec2 angle);" "vec3 sin(vec3 angle);" "vec4 sin(vec4 angle);" - + "float cos(float angle);" "vec2 cos(vec2 angle);" "vec3 cos(vec3 angle);" "vec4 cos(vec4 angle);" - + "float tan(float angle);" "vec2 tan(vec2 angle);" "vec3 tan(vec3 angle);" "vec4 tan(vec4 angle);" - + "float asin(float x);" "vec2 asin(vec2 x);" "vec3 asin(vec3 x);" "vec4 asin(vec4 x);" - + "float acos(float x);" "vec2 acos(vec2 x);" "vec3 acos(vec3 x);" "vec4 acos(vec4 x);" - + "float atan(float y, float x);" "vec2 atan(vec2 y, vec2 x);" "vec3 atan(vec3 y, vec3 x);" "vec4 atan(vec4 y, vec4 x);" - + "float atan(float y_over_x);" "vec2 atan(vec2 y_over_x);" "vec3 atan(vec3 y_over_x);" "vec4 atan(vec4 y_over_x);" - + "\n"); if (version >= 130) { @@ -185,32 +177,32 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 sinh(vec2 angle);" "vec3 sinh(vec3 angle);" "vec4 sinh(vec4 angle);" - + "float cosh(float angle);" "vec2 cosh(vec2 angle);" "vec3 cosh(vec3 angle);" "vec4 cosh(vec4 angle);" - + "float tanh(float angle);" "vec2 tanh(vec2 angle);" "vec3 tanh(vec3 angle);" "vec4 tanh(vec4 angle);" - + "float asinh(float x);" "vec2 asinh(vec2 x);" "vec3 asinh(vec3 x);" "vec4 asinh(vec4 x);" - + "float acosh(float x);" "vec2 acosh(vec2 x);" "vec3 acosh(vec3 x);" "vec4 acosh(vec4 x);" - + "float atanh(float y_over_x);" "vec2 atanh(vec2 y_over_x);" "vec3 atanh(vec3 y_over_x);" "vec4 atanh(vec4 y_over_x);" - + "\n"); } @@ -222,37 +214,37 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 pow(vec2 x, vec2 y);" "vec3 pow(vec3 x, vec3 y);" "vec4 pow(vec4 x, vec4 y);" - + "float exp(float x);" "vec2 exp(vec2 x);" "vec3 exp(vec3 x);" "vec4 exp(vec4 x);" - + "float log(float x);" "vec2 log(vec2 x);" "vec3 log(vec3 x);" "vec4 log(vec4 x);" - + "float exp2(float x);" "vec2 exp2(vec2 x);" "vec3 exp2(vec3 x);" "vec4 exp2(vec4 x);" - + "float log2(float x);" "vec2 log2(vec2 x);" "vec3 log2(vec3 x);" "vec4 log2(vec4 x);" - + "float sqrt(float x);" "vec2 sqrt(vec2 x);" "vec3 sqrt(vec3 x);" "vec4 sqrt(vec4 x);" - + "float inversesqrt(float x);" "vec2 inversesqrt(vec2 x);" "vec3 inversesqrt(vec3 x);" "vec4 inversesqrt(vec4 x);" - + "\n"); // @@ -263,27 +255,27 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 abs(vec2 x);" "vec3 abs(vec3 x);" "vec4 abs(vec4 x);" - + "float sign(float x);" "vec2 sign(vec2 x);" "vec3 sign(vec3 x);" "vec4 sign(vec4 x);" - + "float floor(float x);" "vec2 floor(vec2 x);" "vec3 floor(vec3 x);" "vec4 floor(vec4 x);" - + "float ceil(float x);" "vec2 ceil(vec2 x);" "vec3 ceil(vec3 x);" "vec4 ceil(vec4 x);" - + "float fract(float x);" "vec2 fract(vec2 x);" "vec3 fract(vec3 x);" "vec4 fract(vec4 x);" - + "float mod(float x, float y);" "vec2 mod(vec2 x, float y);" "vec3 mod(vec3 x, float y);" @@ -291,7 +283,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 mod(vec2 x, vec2 y);" "vec3 mod(vec3 x, vec3 y);" "vec4 mod(vec4 x, vec4 y);" - + "float min(float x, float y);" "vec2 min(vec2 x, float y);" "vec3 min(vec3 x, float y);" @@ -299,7 +291,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 min(vec2 x, vec2 y);" "vec3 min(vec3 x, vec3 y);" "vec4 min(vec4 x, vec4 y);" - + "float max(float x, float y);" "vec2 max(vec2 x, float y);" "vec3 max(vec3 x, float y);" @@ -307,7 +299,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 max(vec2 x, vec2 y);" "vec3 max(vec3 x, vec3 y);" "vec4 max(vec4 x, vec4 y);" - + "float clamp(float x, float minVal, float maxVal);" "vec2 clamp(vec2 x, float minVal, float maxVal);" "vec3 clamp(vec3 x, float minVal, float maxVal);" @@ -315,7 +307,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 clamp(vec2 x, vec2 minVal, vec2 maxVal);" "vec3 clamp(vec3 x, vec3 minVal, vec3 maxVal);" "vec4 clamp(vec4 x, vec4 minVal, vec4 maxVal);" - + "float mix(float x, float y, float a);" "vec2 mix(vec2 x, vec2 y, float a);" "vec3 mix(vec3 x, vec3 y, float a);" @@ -331,7 +323,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 step(float edge, vec2 x);" "vec3 step(float edge, vec3 x);" "vec4 step(float edge, vec4 x);" - + "float smoothstep(float edge0, float edge1, float x);" "vec2 smoothstep(vec2 edge0, vec2 edge1, vec2 x);" "vec3 smoothstep(vec3 edge0, vec3 edge1, vec3 x);" @@ -339,7 +331,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 smoothstep(float edge0, float edge1, vec2 x);" "vec3 smoothstep(float edge0, float edge1, vec3 x);" "vec4 smoothstep(float edge0, float edge1, vec4 x);" - + "\n"); if (version >= 130) { @@ -358,22 +350,22 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 trunc(vec2 x);" "vec3 trunc(vec3 x);" "vec4 trunc(vec4 x);" - + "float round(float x);" "vec2 round(vec2 x);" "vec3 round(vec3 x);" "vec4 round(vec4 x);" - + "float roundEven(float x);" "vec2 roundEven(vec2 x);" "vec3 roundEven(vec3 x);" "vec4 roundEven(vec4 x);" - + "float modf(float, out float);" "vec2 modf(vec2, out vec2 );" "vec3 modf(vec3, out vec3 );" "vec4 modf(vec4, out vec4 );" - + " int min(int x, int y);" "ivec2 min(ivec2 x, int y);" "ivec3 min(ivec3 x, int y);" @@ -381,7 +373,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "ivec2 min(ivec2 x, ivec2 y);" "ivec3 min(ivec3 x, ivec3 y);" "ivec4 min(ivec4 x, ivec4 y);" - + " uint min(uint x, uint y);" "uvec2 min(uvec2 x, uint y);" "uvec3 min(uvec3 x, uint y);" @@ -389,7 +381,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec2 min(uvec2 x, uvec2 y);" "uvec3 min(uvec3 x, uvec3 y);" "uvec4 min(uvec4 x, uvec4 y);" - + " int max(int x, int y);" "ivec2 max(ivec2 x, int y);" "ivec3 max(ivec3 x, int y);" @@ -597,12 +589,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "dvec2 faceforward(dvec2, dvec2, dvec2);" "dvec3 faceforward(dvec3, dvec3, dvec3);" "dvec4 faceforward(dvec4, dvec4, dvec4);" - + "double reflect(double, double);" "dvec2 reflect(dvec2 , dvec2 );" "dvec3 reflect(dvec3 , dvec3 );" "dvec4 reflect(dvec4 , dvec4 );" - + "double refract(double, double, double);" "dvec2 refract(dvec2 , dvec2 , double);" "dvec3 refract(dvec3 , dvec3 , double);" @@ -807,6 +799,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec3 notEqual(u64vec3, u64vec3);" "bvec4 notEqual(u64vec4, u64vec4);" +#ifdef AMD_EXTENSIONS "int findLSB(int64_t);" "ivec2 findLSB(i64vec2);" "ivec3 findLSB(i64vec3);" @@ -826,7 +819,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "ivec2 findMSB(u64vec2);" "ivec3 findMSB(u64vec3);" "ivec4 findMSB(u64vec4);" - +#endif "\n" ); } @@ -895,36 +888,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "f16vec3 mid3(f16vec3, f16vec3, f16vec3);" "f16vec4 mid3(f16vec4, f16vec4, f16vec4);" - "int16_t min3(int16_t, int16_t, int16_t);" - "i16vec2 min3(i16vec2, i16vec2, i16vec2);" - "i16vec3 min3(i16vec3, i16vec3, i16vec3);" - "i16vec4 min3(i16vec4, i16vec4, i16vec4);" - - "int16_t max3(int16_t, int16_t, int16_t);" - "i16vec2 max3(i16vec2, i16vec2, i16vec2);" - "i16vec3 max3(i16vec3, i16vec3, i16vec3);" - "i16vec4 max3(i16vec4, i16vec4, i16vec4);" - - "int16_t mid3(int16_t, int16_t, int16_t);" - "i16vec2 mid3(i16vec2, i16vec2, i16vec2);" - "i16vec3 mid3(i16vec3, i16vec3, i16vec3);" - "i16vec4 mid3(i16vec4, i16vec4, i16vec4);" - - "uint16_t min3(uint16_t, uint16_t, uint16_t);" - "u16vec2 min3(u16vec2, u16vec2, u16vec2);" - "u16vec3 min3(u16vec3, u16vec3, u16vec3);" - "u16vec4 min3(u16vec4, u16vec4, u16vec4);" - - "uint16_t max3(uint16_t, uint16_t, uint16_t);" - "u16vec2 max3(u16vec2, u16vec2, u16vec2);" - "u16vec3 max3(u16vec3, u16vec3, u16vec3);" - "u16vec4 max3(u16vec4, u16vec4, u16vec4);" - - "uint16_t mid3(uint16_t, uint16_t, uint16_t);" - "u16vec2 mid3(u16vec2, u16vec2, u16vec2);" - "u16vec3 mid3(u16vec3, u16vec3, u16vec3);" - "u16vec4 mid3(u16vec4, u16vec4, u16vec4);" - "\n" ); } @@ -960,32 +923,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } -#ifdef NV_EXTENSIONS - if (profile != EEsProfile && version >= 440) { - commonBuiltins.append( - "uint64_t atomicMin(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicMin(coherent volatile inout int64_t, int64_t);" - - "uint64_t atomicMax(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicMax(coherent volatile inout int64_t, int64_t);" - - "uint64_t atomicAnd(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicAnd(coherent volatile inout int64_t, int64_t);" - - "uint64_t atomicOr (coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicOr (coherent volatile inout int64_t, int64_t);" - - "uint64_t atomicXor(coherent volatile inout uint64_t, uint64_t);" - " int64_t atomicXor(coherent volatile inout int64_t, int64_t);" - - " int64_t atomicAdd(coherent volatile inout int64_t, int64_t);" - " int64_t atomicExchange(coherent volatile inout int64_t, int64_t);" - " int64_t atomicCompSwap(coherent volatile inout int64_t, int64_t, int64_t);" - - "\n"); - } -#endif - if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 450)) { commonBuiltins.append( @@ -1142,38 +1079,38 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "float length(vec2 x);" "float length(vec3 x);" "float length(vec4 x);" - + "float distance(float p0, float p1);" "float distance(vec2 p0, vec2 p1);" "float distance(vec3 p0, vec3 p1);" "float distance(vec4 p0, vec4 p1);" - + "float dot(float x, float y);" "float dot(vec2 x, vec2 y);" "float dot(vec3 x, vec3 y);" "float dot(vec4 x, vec4 y);" - + "vec3 cross(vec3 x, vec3 y);" "float normalize(float x);" "vec2 normalize(vec2 x);" "vec3 normalize(vec3 x);" "vec4 normalize(vec4 x);" - + "float faceforward(float N, float I, float Nref);" "vec2 faceforward(vec2 N, vec2 I, vec2 Nref);" "vec3 faceforward(vec3 N, vec3 I, vec3 Nref);" "vec4 faceforward(vec4 N, vec4 I, vec4 Nref);" - + "float reflect(float I, float N);" "vec2 reflect(vec2 I, vec2 N);" "vec3 reflect(vec3 I, vec3 N);" "vec4 reflect(vec4 I, vec4 N);" - + "float refract(float I, float N, float eta);" "vec2 refract(vec2 I, vec2 N, float eta);" "vec3 refract(vec3 I, vec3 N, float eta);" "vec4 refract(vec4 I, vec4 N, float eta);" - + "\n"); // @@ -1183,7 +1120,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "mat2 matrixCompMult(mat2 x, mat2 y);" "mat3 matrixCompMult(mat3 x, mat3 y);" "mat4 matrixCompMult(mat4 x, mat4 y);" - + "\n"); // 120 is correct for both ES and desktop @@ -1198,7 +1135,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "mat4x2 outerProduct(vec2 c, vec4 r);" "mat3x4 outerProduct(vec4 c, vec3 r);" "mat4x3 outerProduct(vec3 c, vec4 r);" - + "mat2 transpose(mat2 m);" "mat3 transpose(mat3 m);" "mat4 transpose(mat4 m);" @@ -1214,8 +1151,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "mat3x2 matrixCompMult(mat3x2, mat3x2);" "mat3x4 matrixCompMult(mat3x4, mat3x4);" "mat4x2 matrixCompMult(mat4x2, mat4x2);" - "mat4x3 matrixCompMult(mat4x3, mat4x3);" - + "mat4x3 matrixCompMult(mat4x3, mat4x3);" + "\n"); // 150 is correct for both ES and desktop @@ -1224,11 +1161,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "float determinant(mat2 m);" "float determinant(mat3 m);" "float determinant(mat4 m);" - + "mat2 inverse(mat2 m);" "mat3 inverse(mat3 m);" "mat4 inverse(mat4 m);" - + "\n"); } } @@ -1240,71 +1177,71 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec2 lessThan(vec2 x, vec2 y);" "bvec3 lessThan(vec3 x, vec3 y);" "bvec4 lessThan(vec4 x, vec4 y);" - + "bvec2 lessThan(ivec2 x, ivec2 y);" "bvec3 lessThan(ivec3 x, ivec3 y);" "bvec4 lessThan(ivec4 x, ivec4 y);" - + "bvec2 lessThanEqual(vec2 x, vec2 y);" "bvec3 lessThanEqual(vec3 x, vec3 y);" "bvec4 lessThanEqual(vec4 x, vec4 y);" - + "bvec2 lessThanEqual(ivec2 x, ivec2 y);" "bvec3 lessThanEqual(ivec3 x, ivec3 y);" "bvec4 lessThanEqual(ivec4 x, ivec4 y);" - + "bvec2 greaterThan(vec2 x, vec2 y);" "bvec3 greaterThan(vec3 x, vec3 y);" "bvec4 greaterThan(vec4 x, vec4 y);" - + "bvec2 greaterThan(ivec2 x, ivec2 y);" "bvec3 greaterThan(ivec3 x, ivec3 y);" "bvec4 greaterThan(ivec4 x, ivec4 y);" - + "bvec2 greaterThanEqual(vec2 x, vec2 y);" "bvec3 greaterThanEqual(vec3 x, vec3 y);" "bvec4 greaterThanEqual(vec4 x, vec4 y);" - + "bvec2 greaterThanEqual(ivec2 x, ivec2 y);" "bvec3 greaterThanEqual(ivec3 x, ivec3 y);" "bvec4 greaterThanEqual(ivec4 x, ivec4 y);" - + "bvec2 equal(vec2 x, vec2 y);" "bvec3 equal(vec3 x, vec3 y);" "bvec4 equal(vec4 x, vec4 y);" - + "bvec2 equal(ivec2 x, ivec2 y);" "bvec3 equal(ivec3 x, ivec3 y);" "bvec4 equal(ivec4 x, ivec4 y);" - + "bvec2 equal(bvec2 x, bvec2 y);" "bvec3 equal(bvec3 x, bvec3 y);" "bvec4 equal(bvec4 x, bvec4 y);" - + "bvec2 notEqual(vec2 x, vec2 y);" "bvec3 notEqual(vec3 x, vec3 y);" "bvec4 notEqual(vec4 x, vec4 y);" - + "bvec2 notEqual(ivec2 x, ivec2 y);" "bvec3 notEqual(ivec3 x, ivec3 y);" "bvec4 notEqual(ivec4 x, ivec4 y);" - + "bvec2 notEqual(bvec2 x, bvec2 y);" "bvec3 notEqual(bvec3 x, bvec3 y);" "bvec4 notEqual(bvec4 x, bvec4 y);" - + "bool any(bvec2 x);" "bool any(bvec3 x);" "bool any(bvec4 x);" - + "bool all(bvec2 x);" "bool all(bvec3 x);" "bool all(bvec4 x);" - + "bvec2 not(bvec2 x);" "bvec3 not(bvec3 x);" "bvec4 not(bvec4 x);" - + "\n"); if (version >= 130) { @@ -1312,27 +1249,27 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec2 lessThan(uvec2 x, uvec2 y);" "bvec3 lessThan(uvec3 x, uvec3 y);" "bvec4 lessThan(uvec4 x, uvec4 y);" - + "bvec2 lessThanEqual(uvec2 x, uvec2 y);" "bvec3 lessThanEqual(uvec3 x, uvec3 y);" "bvec4 lessThanEqual(uvec4 x, uvec4 y);" - + "bvec2 greaterThan(uvec2 x, uvec2 y);" "bvec3 greaterThan(uvec3 x, uvec3 y);" "bvec4 greaterThan(uvec4 x, uvec4 y);" - + "bvec2 greaterThanEqual(uvec2 x, uvec2 y);" "bvec3 greaterThanEqual(uvec3 x, uvec3 y);" "bvec4 greaterThanEqual(uvec4 x, uvec4 y);" - + "bvec2 equal(uvec2 x, uvec2 y);" "bvec3 equal(uvec3 x, uvec3 y);" "bvec4 equal(uvec4 x, uvec4 y);" "bvec2 notEqual(uvec2 x, uvec2 y);" "bvec3 notEqual(uvec3 x, uvec3 y);" - "bvec4 notEqual(uvec4 x, uvec4 y);" - + "bvec4 notEqual(uvec4 x, uvec4 y);" + "\n"); } @@ -1355,7 +1292,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec4 texture3DProj(sampler3D, vec4);" // OES_texture_3D, but caught by keyword check "vec4 textureCube(samplerCube, vec3);" - + "\n"); } } @@ -1369,7 +1306,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec4 texture1DProj(sampler1D, vec2);" "vec4 texture1DProj(sampler1D, vec4);" - + "vec4 shadow1D(sampler1DShadow, vec3);" "vec4 shadow2D(sampler2DShadow, vec3);" "vec4 shadow1DProj(sampler1DShadow, vec4);" @@ -1387,33 +1324,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (profile == EEsProfile) { if (spvVersion.spv == 0) { - if (version < 300) { - commonBuiltins.append( - "vec4 texture2D(samplerExternalOES, vec2 coord);" // GL_OES_EGL_image_external - "vec4 texture2DProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external - "vec4 texture2DProj(samplerExternalOES, vec4);" // GL_OES_EGL_image_external - "\n"); - } else { - commonBuiltins.append( - "highp ivec2 textureSize(samplerExternalOES, int lod);" // GL_OES_EGL_image_external_essl3 - "vec4 texture(samplerExternalOES, vec2);" // GL_OES_EGL_image_external_essl3 - "vec4 texture(samplerExternalOES, vec2, float bias);" // GL_OES_EGL_image_external_essl3 - "vec4 textureProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external_essl3 - "vec4 textureProj(samplerExternalOES, vec3, float bias);" // GL_OES_EGL_image_external_essl3 - "vec4 textureProj(samplerExternalOES, vec4);" // GL_OES_EGL_image_external_essl3 - "vec4 textureProj(samplerExternalOES, vec4, float bias);" // GL_OES_EGL_image_external_essl3 - "vec4 texelFetch(samplerExternalOES, ivec2, int lod);" // GL_OES_EGL_image_external_essl3 - "\n"); - } commonBuiltins.append( + "vec4 texture2D(samplerExternalOES, vec2 coord);" // GL_OES_EGL_image_external, caught by keyword check + "vec4 texture2DProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external, caught by keyword check + "vec4 texture2DProj(samplerExternalOES, vec4);" // GL_OES_EGL_image_external, caught by keyword check "vec4 texture2DGradEXT(sampler2D, vec2, vec2, vec2);" // GL_EXT_shader_texture_lod "vec4 texture2DProjGradEXT(sampler2D, vec3, vec2, vec2);" // GL_EXT_shader_texture_lod "vec4 texture2DProjGradEXT(sampler2D, vec4, vec2, vec2);" // GL_EXT_shader_texture_lod "vec4 textureCubeGradEXT(samplerCube, vec3, vec3, vec3);" // GL_EXT_shader_texture_lod - "float shadow2DEXT(sampler2DShadow, vec3);" // GL_EXT_shadow_samplers - "float shadow2DProjEXT(sampler2DShadow, vec4);" // GL_EXT_shadow_samplers - "\n"); } } @@ -1421,28 +1340,28 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV // // Noise functions. // - if (spvVersion.spv == 0 && profile != EEsProfile) { + if (profile != EEsProfile) { commonBuiltins.append( "float noise1(float x);" "float noise1(vec2 x);" "float noise1(vec3 x);" "float noise1(vec4 x);" - + "vec2 noise2(float x);" "vec2 noise2(vec2 x);" "vec2 noise2(vec3 x);" "vec2 noise2(vec4 x);" - + "vec3 noise3(float x);" "vec3 noise3(vec2 x);" "vec3 noise3(vec3 x);" "vec3 noise3(vec4 x);" - + "vec4 noise4(float x);" "vec4 noise4(vec2 x);" "vec4 noise4(vec3 x);" "vec4 noise4(vec4 x);" - + "\n"); } @@ -1453,23 +1372,9 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if ((profile != EEsProfile && version >= 300) || (profile == EEsProfile && version >= 310)) { commonBuiltins.append( - "uint atomicCounterIncrement(atomic_uint);" - "uint atomicCounterDecrement(atomic_uint);" - "uint atomicCounter(atomic_uint);" - - "\n"); - } - if (profile != EEsProfile && version >= 460) { - commonBuiltins.append( - "uint atomicCounterAdd(atomic_uint, uint);" - "uint atomicCounterSubtract(atomic_uint, uint);" - "uint atomicCounterMin(atomic_uint, uint);" - "uint atomicCounterMax(atomic_uint, uint);" - "uint atomicCounterAnd(atomic_uint, uint);" - "uint atomicCounterOr(atomic_uint, uint);" - "uint atomicCounterXor(atomic_uint, uint);" - "uint atomicCounterExchange(atomic_uint, uint);" - "uint atomicCounterCompSwap(atomic_uint, uint, uint);" + "uint atomicCounterIncrement(atomic_uint x);" + "uint atomicCounterDecrement(atomic_uint x);" + "uint atomicCounter(atomic_uint x);" "\n"); } @@ -1612,7 +1517,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "lowp ivec2 findMSB(highp uvec2);" "lowp ivec3 findMSB(highp uvec3);" "lowp ivec4 findMSB(highp uvec4);" - + "\n"); } @@ -1654,7 +1559,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - // GL_ARB_shader_group_vote + // GL_ARB_shader_group_vote if (profile != EEsProfile && version >= 430) { commonBuiltins.append( "bool anyInvocationARB(bool);" @@ -1664,1096 +1569,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - // GL_KHR_shader_subgroup - if (spvVersion.vulkan > 0) { - commonBuiltins.append( - "void subgroupBarrier();" - "void subgroupMemoryBarrier();" - "void subgroupMemoryBarrierBuffer();" - "void subgroupMemoryBarrierImage();" - "bool subgroupElect();" - - "bool subgroupAll(bool);\n" - "bool subgroupAny(bool);\n" - - "bool subgroupAllEqual(float);\n" - "bool subgroupAllEqual(vec2);\n" - "bool subgroupAllEqual(vec3);\n" - "bool subgroupAllEqual(vec4);\n" - "bool subgroupAllEqual(int);\n" - "bool subgroupAllEqual(ivec2);\n" - "bool subgroupAllEqual(ivec3);\n" - "bool subgroupAllEqual(ivec4);\n" - "bool subgroupAllEqual(uint);\n" - "bool subgroupAllEqual(uvec2);\n" - "bool subgroupAllEqual(uvec3);\n" - "bool subgroupAllEqual(uvec4);\n" - "bool subgroupAllEqual(bool);\n" - "bool subgroupAllEqual(bvec2);\n" - "bool subgroupAllEqual(bvec3);\n" - "bool subgroupAllEqual(bvec4);\n" - - "float subgroupBroadcast(float, uint);\n" - "vec2 subgroupBroadcast(vec2, uint);\n" - "vec3 subgroupBroadcast(vec3, uint);\n" - "vec4 subgroupBroadcast(vec4, uint);\n" - "int subgroupBroadcast(int, uint);\n" - "ivec2 subgroupBroadcast(ivec2, uint);\n" - "ivec3 subgroupBroadcast(ivec3, uint);\n" - "ivec4 subgroupBroadcast(ivec4, uint);\n" - "uint subgroupBroadcast(uint, uint);\n" - "uvec2 subgroupBroadcast(uvec2, uint);\n" - "uvec3 subgroupBroadcast(uvec3, uint);\n" - "uvec4 subgroupBroadcast(uvec4, uint);\n" - "bool subgroupBroadcast(bool, uint);\n" - "bvec2 subgroupBroadcast(bvec2, uint);\n" - "bvec3 subgroupBroadcast(bvec3, uint);\n" - "bvec4 subgroupBroadcast(bvec4, uint);\n" - - "float subgroupBroadcastFirst(float);\n" - "vec2 subgroupBroadcastFirst(vec2);\n" - "vec3 subgroupBroadcastFirst(vec3);\n" - "vec4 subgroupBroadcastFirst(vec4);\n" - "int subgroupBroadcastFirst(int);\n" - "ivec2 subgroupBroadcastFirst(ivec2);\n" - "ivec3 subgroupBroadcastFirst(ivec3);\n" - "ivec4 subgroupBroadcastFirst(ivec4);\n" - "uint subgroupBroadcastFirst(uint);\n" - "uvec2 subgroupBroadcastFirst(uvec2);\n" - "uvec3 subgroupBroadcastFirst(uvec3);\n" - "uvec4 subgroupBroadcastFirst(uvec4);\n" - "bool subgroupBroadcastFirst(bool);\n" - "bvec2 subgroupBroadcastFirst(bvec2);\n" - "bvec3 subgroupBroadcastFirst(bvec3);\n" - "bvec4 subgroupBroadcastFirst(bvec4);\n" - - "uvec4 subgroupBallot(bool);\n" - "bool subgroupInverseBallot(uvec4);\n" - "bool subgroupBallotBitExtract(uvec4, uint);\n" - "uint subgroupBallotBitCount(uvec4);\n" - "uint subgroupBallotInclusiveBitCount(uvec4);\n" - "uint subgroupBallotExclusiveBitCount(uvec4);\n" - "uint subgroupBallotFindLSB(uvec4);\n" - "uint subgroupBallotFindMSB(uvec4);\n" - - "float subgroupShuffle(float, uint);\n" - "vec2 subgroupShuffle(vec2, uint);\n" - "vec3 subgroupShuffle(vec3, uint);\n" - "vec4 subgroupShuffle(vec4, uint);\n" - "int subgroupShuffle(int, uint);\n" - "ivec2 subgroupShuffle(ivec2, uint);\n" - "ivec3 subgroupShuffle(ivec3, uint);\n" - "ivec4 subgroupShuffle(ivec4, uint);\n" - "uint subgroupShuffle(uint, uint);\n" - "uvec2 subgroupShuffle(uvec2, uint);\n" - "uvec3 subgroupShuffle(uvec3, uint);\n" - "uvec4 subgroupShuffle(uvec4, uint);\n" - "bool subgroupShuffle(bool, uint);\n" - "bvec2 subgroupShuffle(bvec2, uint);\n" - "bvec3 subgroupShuffle(bvec3, uint);\n" - "bvec4 subgroupShuffle(bvec4, uint);\n" - - "float subgroupShuffleXor(float, uint);\n" - "vec2 subgroupShuffleXor(vec2, uint);\n" - "vec3 subgroupShuffleXor(vec3, uint);\n" - "vec4 subgroupShuffleXor(vec4, uint);\n" - "int subgroupShuffleXor(int, uint);\n" - "ivec2 subgroupShuffleXor(ivec2, uint);\n" - "ivec3 subgroupShuffleXor(ivec3, uint);\n" - "ivec4 subgroupShuffleXor(ivec4, uint);\n" - "uint subgroupShuffleXor(uint, uint);\n" - "uvec2 subgroupShuffleXor(uvec2, uint);\n" - "uvec3 subgroupShuffleXor(uvec3, uint);\n" - "uvec4 subgroupShuffleXor(uvec4, uint);\n" - "bool subgroupShuffleXor(bool, uint);\n" - "bvec2 subgroupShuffleXor(bvec2, uint);\n" - "bvec3 subgroupShuffleXor(bvec3, uint);\n" - "bvec4 subgroupShuffleXor(bvec4, uint);\n" - - "float subgroupShuffleUp(float, uint delta);\n" - "vec2 subgroupShuffleUp(vec2, uint delta);\n" - "vec3 subgroupShuffleUp(vec3, uint delta);\n" - "vec4 subgroupShuffleUp(vec4, uint delta);\n" - "int subgroupShuffleUp(int, uint delta);\n" - "ivec2 subgroupShuffleUp(ivec2, uint delta);\n" - "ivec3 subgroupShuffleUp(ivec3, uint delta);\n" - "ivec4 subgroupShuffleUp(ivec4, uint delta);\n" - "uint subgroupShuffleUp(uint, uint delta);\n" - "uvec2 subgroupShuffleUp(uvec2, uint delta);\n" - "uvec3 subgroupShuffleUp(uvec3, uint delta);\n" - "uvec4 subgroupShuffleUp(uvec4, uint delta);\n" - "bool subgroupShuffleUp(bool, uint delta);\n" - "bvec2 subgroupShuffleUp(bvec2, uint delta);\n" - "bvec3 subgroupShuffleUp(bvec3, uint delta);\n" - "bvec4 subgroupShuffleUp(bvec4, uint delta);\n" - - "float subgroupShuffleDown(float, uint delta);\n" - "vec2 subgroupShuffleDown(vec2, uint delta);\n" - "vec3 subgroupShuffleDown(vec3, uint delta);\n" - "vec4 subgroupShuffleDown(vec4, uint delta);\n" - "int subgroupShuffleDown(int, uint delta);\n" - "ivec2 subgroupShuffleDown(ivec2, uint delta);\n" - "ivec3 subgroupShuffleDown(ivec3, uint delta);\n" - "ivec4 subgroupShuffleDown(ivec4, uint delta);\n" - "uint subgroupShuffleDown(uint, uint delta);\n" - "uvec2 subgroupShuffleDown(uvec2, uint delta);\n" - "uvec3 subgroupShuffleDown(uvec3, uint delta);\n" - "uvec4 subgroupShuffleDown(uvec4, uint delta);\n" - "bool subgroupShuffleDown(bool, uint delta);\n" - "bvec2 subgroupShuffleDown(bvec2, uint delta);\n" - "bvec3 subgroupShuffleDown(bvec3, uint delta);\n" - "bvec4 subgroupShuffleDown(bvec4, uint delta);\n" - - "float subgroupAdd(float);\n" - "vec2 subgroupAdd(vec2);\n" - "vec3 subgroupAdd(vec3);\n" - "vec4 subgroupAdd(vec4);\n" - "int subgroupAdd(int);\n" - "ivec2 subgroupAdd(ivec2);\n" - "ivec3 subgroupAdd(ivec3);\n" - "ivec4 subgroupAdd(ivec4);\n" - "uint subgroupAdd(uint);\n" - "uvec2 subgroupAdd(uvec2);\n" - "uvec3 subgroupAdd(uvec3);\n" - "uvec4 subgroupAdd(uvec4);\n" - - "float subgroupMul(float);\n" - "vec2 subgroupMul(vec2);\n" - "vec3 subgroupMul(vec3);\n" - "vec4 subgroupMul(vec4);\n" - "int subgroupMul(int);\n" - "ivec2 subgroupMul(ivec2);\n" - "ivec3 subgroupMul(ivec3);\n" - "ivec4 subgroupMul(ivec4);\n" - "uint subgroupMul(uint);\n" - "uvec2 subgroupMul(uvec2);\n" - "uvec3 subgroupMul(uvec3);\n" - "uvec4 subgroupMul(uvec4);\n" - - "float subgroupMin(float);\n" - "vec2 subgroupMin(vec2);\n" - "vec3 subgroupMin(vec3);\n" - "vec4 subgroupMin(vec4);\n" - "int subgroupMin(int);\n" - "ivec2 subgroupMin(ivec2);\n" - "ivec3 subgroupMin(ivec3);\n" - "ivec4 subgroupMin(ivec4);\n" - "uint subgroupMin(uint);\n" - "uvec2 subgroupMin(uvec2);\n" - "uvec3 subgroupMin(uvec3);\n" - "uvec4 subgroupMin(uvec4);\n" - - "float subgroupMax(float);\n" - "vec2 subgroupMax(vec2);\n" - "vec3 subgroupMax(vec3);\n" - "vec4 subgroupMax(vec4);\n" - "int subgroupMax(int);\n" - "ivec2 subgroupMax(ivec2);\n" - "ivec3 subgroupMax(ivec3);\n" - "ivec4 subgroupMax(ivec4);\n" - "uint subgroupMax(uint);\n" - "uvec2 subgroupMax(uvec2);\n" - "uvec3 subgroupMax(uvec3);\n" - "uvec4 subgroupMax(uvec4);\n" - - "int subgroupAnd(int);\n" - "ivec2 subgroupAnd(ivec2);\n" - "ivec3 subgroupAnd(ivec3);\n" - "ivec4 subgroupAnd(ivec4);\n" - "uint subgroupAnd(uint);\n" - "uvec2 subgroupAnd(uvec2);\n" - "uvec3 subgroupAnd(uvec3);\n" - "uvec4 subgroupAnd(uvec4);\n" - "bool subgroupAnd(bool);\n" - "bvec2 subgroupAnd(bvec2);\n" - "bvec3 subgroupAnd(bvec3);\n" - "bvec4 subgroupAnd(bvec4);\n" - - "int subgroupOr(int);\n" - "ivec2 subgroupOr(ivec2);\n" - "ivec3 subgroupOr(ivec3);\n" - "ivec4 subgroupOr(ivec4);\n" - "uint subgroupOr(uint);\n" - "uvec2 subgroupOr(uvec2);\n" - "uvec3 subgroupOr(uvec3);\n" - "uvec4 subgroupOr(uvec4);\n" - "bool subgroupOr(bool);\n" - "bvec2 subgroupOr(bvec2);\n" - "bvec3 subgroupOr(bvec3);\n" - "bvec4 subgroupOr(bvec4);\n" - - "int subgroupXor(int);\n" - "ivec2 subgroupXor(ivec2);\n" - "ivec3 subgroupXor(ivec3);\n" - "ivec4 subgroupXor(ivec4);\n" - "uint subgroupXor(uint);\n" - "uvec2 subgroupXor(uvec2);\n" - "uvec3 subgroupXor(uvec3);\n" - "uvec4 subgroupXor(uvec4);\n" - "bool subgroupXor(bool);\n" - "bvec2 subgroupXor(bvec2);\n" - "bvec3 subgroupXor(bvec3);\n" - "bvec4 subgroupXor(bvec4);\n" - - "float subgroupInclusiveAdd(float);\n" - "vec2 subgroupInclusiveAdd(vec2);\n" - "vec3 subgroupInclusiveAdd(vec3);\n" - "vec4 subgroupInclusiveAdd(vec4);\n" - "int subgroupInclusiveAdd(int);\n" - "ivec2 subgroupInclusiveAdd(ivec2);\n" - "ivec3 subgroupInclusiveAdd(ivec3);\n" - "ivec4 subgroupInclusiveAdd(ivec4);\n" - "uint subgroupInclusiveAdd(uint);\n" - "uvec2 subgroupInclusiveAdd(uvec2);\n" - "uvec3 subgroupInclusiveAdd(uvec3);\n" - "uvec4 subgroupInclusiveAdd(uvec4);\n" - - "float subgroupInclusiveMul(float);\n" - "vec2 subgroupInclusiveMul(vec2);\n" - "vec3 subgroupInclusiveMul(vec3);\n" - "vec4 subgroupInclusiveMul(vec4);\n" - "int subgroupInclusiveMul(int);\n" - "ivec2 subgroupInclusiveMul(ivec2);\n" - "ivec3 subgroupInclusiveMul(ivec3);\n" - "ivec4 subgroupInclusiveMul(ivec4);\n" - "uint subgroupInclusiveMul(uint);\n" - "uvec2 subgroupInclusiveMul(uvec2);\n" - "uvec3 subgroupInclusiveMul(uvec3);\n" - "uvec4 subgroupInclusiveMul(uvec4);\n" - - "float subgroupInclusiveMin(float);\n" - "vec2 subgroupInclusiveMin(vec2);\n" - "vec3 subgroupInclusiveMin(vec3);\n" - "vec4 subgroupInclusiveMin(vec4);\n" - "int subgroupInclusiveMin(int);\n" - "ivec2 subgroupInclusiveMin(ivec2);\n" - "ivec3 subgroupInclusiveMin(ivec3);\n" - "ivec4 subgroupInclusiveMin(ivec4);\n" - "uint subgroupInclusiveMin(uint);\n" - "uvec2 subgroupInclusiveMin(uvec2);\n" - "uvec3 subgroupInclusiveMin(uvec3);\n" - "uvec4 subgroupInclusiveMin(uvec4);\n" - - "float subgroupInclusiveMax(float);\n" - "vec2 subgroupInclusiveMax(vec2);\n" - "vec3 subgroupInclusiveMax(vec3);\n" - "vec4 subgroupInclusiveMax(vec4);\n" - "int subgroupInclusiveMax(int);\n" - "ivec2 subgroupInclusiveMax(ivec2);\n" - "ivec3 subgroupInclusiveMax(ivec3);\n" - "ivec4 subgroupInclusiveMax(ivec4);\n" - "uint subgroupInclusiveMax(uint);\n" - "uvec2 subgroupInclusiveMax(uvec2);\n" - "uvec3 subgroupInclusiveMax(uvec3);\n" - "uvec4 subgroupInclusiveMax(uvec4);\n" - - "int subgroupInclusiveAnd(int);\n" - "ivec2 subgroupInclusiveAnd(ivec2);\n" - "ivec3 subgroupInclusiveAnd(ivec3);\n" - "ivec4 subgroupInclusiveAnd(ivec4);\n" - "uint subgroupInclusiveAnd(uint);\n" - "uvec2 subgroupInclusiveAnd(uvec2);\n" - "uvec3 subgroupInclusiveAnd(uvec3);\n" - "uvec4 subgroupInclusiveAnd(uvec4);\n" - "bool subgroupInclusiveAnd(bool);\n" - "bvec2 subgroupInclusiveAnd(bvec2);\n" - "bvec3 subgroupInclusiveAnd(bvec3);\n" - "bvec4 subgroupInclusiveAnd(bvec4);\n" - - "int subgroupInclusiveOr(int);\n" - "ivec2 subgroupInclusiveOr(ivec2);\n" - "ivec3 subgroupInclusiveOr(ivec3);\n" - "ivec4 subgroupInclusiveOr(ivec4);\n" - "uint subgroupInclusiveOr(uint);\n" - "uvec2 subgroupInclusiveOr(uvec2);\n" - "uvec3 subgroupInclusiveOr(uvec3);\n" - "uvec4 subgroupInclusiveOr(uvec4);\n" - "bool subgroupInclusiveOr(bool);\n" - "bvec2 subgroupInclusiveOr(bvec2);\n" - "bvec3 subgroupInclusiveOr(bvec3);\n" - "bvec4 subgroupInclusiveOr(bvec4);\n" - - "int subgroupInclusiveXor(int);\n" - "ivec2 subgroupInclusiveXor(ivec2);\n" - "ivec3 subgroupInclusiveXor(ivec3);\n" - "ivec4 subgroupInclusiveXor(ivec4);\n" - "uint subgroupInclusiveXor(uint);\n" - "uvec2 subgroupInclusiveXor(uvec2);\n" - "uvec3 subgroupInclusiveXor(uvec3);\n" - "uvec4 subgroupInclusiveXor(uvec4);\n" - "bool subgroupInclusiveXor(bool);\n" - "bvec2 subgroupInclusiveXor(bvec2);\n" - "bvec3 subgroupInclusiveXor(bvec3);\n" - "bvec4 subgroupInclusiveXor(bvec4);\n" - - "float subgroupExclusiveAdd(float);\n" - "vec2 subgroupExclusiveAdd(vec2);\n" - "vec3 subgroupExclusiveAdd(vec3);\n" - "vec4 subgroupExclusiveAdd(vec4);\n" - "int subgroupExclusiveAdd(int);\n" - "ivec2 subgroupExclusiveAdd(ivec2);\n" - "ivec3 subgroupExclusiveAdd(ivec3);\n" - "ivec4 subgroupExclusiveAdd(ivec4);\n" - "uint subgroupExclusiveAdd(uint);\n" - "uvec2 subgroupExclusiveAdd(uvec2);\n" - "uvec3 subgroupExclusiveAdd(uvec3);\n" - "uvec4 subgroupExclusiveAdd(uvec4);\n" - - "float subgroupExclusiveMul(float);\n" - "vec2 subgroupExclusiveMul(vec2);\n" - "vec3 subgroupExclusiveMul(vec3);\n" - "vec4 subgroupExclusiveMul(vec4);\n" - "int subgroupExclusiveMul(int);\n" - "ivec2 subgroupExclusiveMul(ivec2);\n" - "ivec3 subgroupExclusiveMul(ivec3);\n" - "ivec4 subgroupExclusiveMul(ivec4);\n" - "uint subgroupExclusiveMul(uint);\n" - "uvec2 subgroupExclusiveMul(uvec2);\n" - "uvec3 subgroupExclusiveMul(uvec3);\n" - "uvec4 subgroupExclusiveMul(uvec4);\n" - - "float subgroupExclusiveMin(float);\n" - "vec2 subgroupExclusiveMin(vec2);\n" - "vec3 subgroupExclusiveMin(vec3);\n" - "vec4 subgroupExclusiveMin(vec4);\n" - "int subgroupExclusiveMin(int);\n" - "ivec2 subgroupExclusiveMin(ivec2);\n" - "ivec3 subgroupExclusiveMin(ivec3);\n" - "ivec4 subgroupExclusiveMin(ivec4);\n" - "uint subgroupExclusiveMin(uint);\n" - "uvec2 subgroupExclusiveMin(uvec2);\n" - "uvec3 subgroupExclusiveMin(uvec3);\n" - "uvec4 subgroupExclusiveMin(uvec4);\n" - - "float subgroupExclusiveMax(float);\n" - "vec2 subgroupExclusiveMax(vec2);\n" - "vec3 subgroupExclusiveMax(vec3);\n" - "vec4 subgroupExclusiveMax(vec4);\n" - "int subgroupExclusiveMax(int);\n" - "ivec2 subgroupExclusiveMax(ivec2);\n" - "ivec3 subgroupExclusiveMax(ivec3);\n" - "ivec4 subgroupExclusiveMax(ivec4);\n" - "uint subgroupExclusiveMax(uint);\n" - "uvec2 subgroupExclusiveMax(uvec2);\n" - "uvec3 subgroupExclusiveMax(uvec3);\n" - "uvec4 subgroupExclusiveMax(uvec4);\n" - - "int subgroupExclusiveAnd(int);\n" - "ivec2 subgroupExclusiveAnd(ivec2);\n" - "ivec3 subgroupExclusiveAnd(ivec3);\n" - "ivec4 subgroupExclusiveAnd(ivec4);\n" - "uint subgroupExclusiveAnd(uint);\n" - "uvec2 subgroupExclusiveAnd(uvec2);\n" - "uvec3 subgroupExclusiveAnd(uvec3);\n" - "uvec4 subgroupExclusiveAnd(uvec4);\n" - "bool subgroupExclusiveAnd(bool);\n" - "bvec2 subgroupExclusiveAnd(bvec2);\n" - "bvec3 subgroupExclusiveAnd(bvec3);\n" - "bvec4 subgroupExclusiveAnd(bvec4);\n" - - "int subgroupExclusiveOr(int);\n" - "ivec2 subgroupExclusiveOr(ivec2);\n" - "ivec3 subgroupExclusiveOr(ivec3);\n" - "ivec4 subgroupExclusiveOr(ivec4);\n" - "uint subgroupExclusiveOr(uint);\n" - "uvec2 subgroupExclusiveOr(uvec2);\n" - "uvec3 subgroupExclusiveOr(uvec3);\n" - "uvec4 subgroupExclusiveOr(uvec4);\n" - "bool subgroupExclusiveOr(bool);\n" - "bvec2 subgroupExclusiveOr(bvec2);\n" - "bvec3 subgroupExclusiveOr(bvec3);\n" - "bvec4 subgroupExclusiveOr(bvec4);\n" - - "int subgroupExclusiveXor(int);\n" - "ivec2 subgroupExclusiveXor(ivec2);\n" - "ivec3 subgroupExclusiveXor(ivec3);\n" - "ivec4 subgroupExclusiveXor(ivec4);\n" - "uint subgroupExclusiveXor(uint);\n" - "uvec2 subgroupExclusiveXor(uvec2);\n" - "uvec3 subgroupExclusiveXor(uvec3);\n" - "uvec4 subgroupExclusiveXor(uvec4);\n" - "bool subgroupExclusiveXor(bool);\n" - "bvec2 subgroupExclusiveXor(bvec2);\n" - "bvec3 subgroupExclusiveXor(bvec3);\n" - "bvec4 subgroupExclusiveXor(bvec4);\n" - - "float subgroupClusteredAdd(float, uint);\n" - "vec2 subgroupClusteredAdd(vec2, uint);\n" - "vec3 subgroupClusteredAdd(vec3, uint);\n" - "vec4 subgroupClusteredAdd(vec4, uint);\n" - "int subgroupClusteredAdd(int, uint);\n" - "ivec2 subgroupClusteredAdd(ivec2, uint);\n" - "ivec3 subgroupClusteredAdd(ivec3, uint);\n" - "ivec4 subgroupClusteredAdd(ivec4, uint);\n" - "uint subgroupClusteredAdd(uint, uint);\n" - "uvec2 subgroupClusteredAdd(uvec2, uint);\n" - "uvec3 subgroupClusteredAdd(uvec3, uint);\n" - "uvec4 subgroupClusteredAdd(uvec4, uint);\n" - - "float subgroupClusteredMul(float, uint);\n" - "vec2 subgroupClusteredMul(vec2, uint);\n" - "vec3 subgroupClusteredMul(vec3, uint);\n" - "vec4 subgroupClusteredMul(vec4, uint);\n" - "int subgroupClusteredMul(int, uint);\n" - "ivec2 subgroupClusteredMul(ivec2, uint);\n" - "ivec3 subgroupClusteredMul(ivec3, uint);\n" - "ivec4 subgroupClusteredMul(ivec4, uint);\n" - "uint subgroupClusteredMul(uint, uint);\n" - "uvec2 subgroupClusteredMul(uvec2, uint);\n" - "uvec3 subgroupClusteredMul(uvec3, uint);\n" - "uvec4 subgroupClusteredMul(uvec4, uint);\n" - - "float subgroupClusteredMin(float, uint);\n" - "vec2 subgroupClusteredMin(vec2, uint);\n" - "vec3 subgroupClusteredMin(vec3, uint);\n" - "vec4 subgroupClusteredMin(vec4, uint);\n" - "int subgroupClusteredMin(int, uint);\n" - "ivec2 subgroupClusteredMin(ivec2, uint);\n" - "ivec3 subgroupClusteredMin(ivec3, uint);\n" - "ivec4 subgroupClusteredMin(ivec4, uint);\n" - "uint subgroupClusteredMin(uint, uint);\n" - "uvec2 subgroupClusteredMin(uvec2, uint);\n" - "uvec3 subgroupClusteredMin(uvec3, uint);\n" - "uvec4 subgroupClusteredMin(uvec4, uint);\n" - - "float subgroupClusteredMax(float, uint);\n" - "vec2 subgroupClusteredMax(vec2, uint);\n" - "vec3 subgroupClusteredMax(vec3, uint);\n" - "vec4 subgroupClusteredMax(vec4, uint);\n" - "int subgroupClusteredMax(int, uint);\n" - "ivec2 subgroupClusteredMax(ivec2, uint);\n" - "ivec3 subgroupClusteredMax(ivec3, uint);\n" - "ivec4 subgroupClusteredMax(ivec4, uint);\n" - "uint subgroupClusteredMax(uint, uint);\n" - "uvec2 subgroupClusteredMax(uvec2, uint);\n" - "uvec3 subgroupClusteredMax(uvec3, uint);\n" - "uvec4 subgroupClusteredMax(uvec4, uint);\n" - - "int subgroupClusteredAnd(int, uint);\n" - "ivec2 subgroupClusteredAnd(ivec2, uint);\n" - "ivec3 subgroupClusteredAnd(ivec3, uint);\n" - "ivec4 subgroupClusteredAnd(ivec4, uint);\n" - "uint subgroupClusteredAnd(uint, uint);\n" - "uvec2 subgroupClusteredAnd(uvec2, uint);\n" - "uvec3 subgroupClusteredAnd(uvec3, uint);\n" - "uvec4 subgroupClusteredAnd(uvec4, uint);\n" - "bool subgroupClusteredAnd(bool, uint);\n" - "bvec2 subgroupClusteredAnd(bvec2, uint);\n" - "bvec3 subgroupClusteredAnd(bvec3, uint);\n" - "bvec4 subgroupClusteredAnd(bvec4, uint);\n" - - "int subgroupClusteredOr(int, uint);\n" - "ivec2 subgroupClusteredOr(ivec2, uint);\n" - "ivec3 subgroupClusteredOr(ivec3, uint);\n" - "ivec4 subgroupClusteredOr(ivec4, uint);\n" - "uint subgroupClusteredOr(uint, uint);\n" - "uvec2 subgroupClusteredOr(uvec2, uint);\n" - "uvec3 subgroupClusteredOr(uvec3, uint);\n" - "uvec4 subgroupClusteredOr(uvec4, uint);\n" - "bool subgroupClusteredOr(bool, uint);\n" - "bvec2 subgroupClusteredOr(bvec2, uint);\n" - "bvec3 subgroupClusteredOr(bvec3, uint);\n" - "bvec4 subgroupClusteredOr(bvec4, uint);\n" - - "int subgroupClusteredXor(int, uint);\n" - "ivec2 subgroupClusteredXor(ivec2, uint);\n" - "ivec3 subgroupClusteredXor(ivec3, uint);\n" - "ivec4 subgroupClusteredXor(ivec4, uint);\n" - "uint subgroupClusteredXor(uint, uint);\n" - "uvec2 subgroupClusteredXor(uvec2, uint);\n" - "uvec3 subgroupClusteredXor(uvec3, uint);\n" - "uvec4 subgroupClusteredXor(uvec4, uint);\n" - "bool subgroupClusteredXor(bool, uint);\n" - "bvec2 subgroupClusteredXor(bvec2, uint);\n" - "bvec3 subgroupClusteredXor(bvec3, uint);\n" - "bvec4 subgroupClusteredXor(bvec4, uint);\n" - - "float subgroupQuadBroadcast(float, uint);\n" - "vec2 subgroupQuadBroadcast(vec2, uint);\n" - "vec3 subgroupQuadBroadcast(vec3, uint);\n" - "vec4 subgroupQuadBroadcast(vec4, uint);\n" - "int subgroupQuadBroadcast(int, uint);\n" - "ivec2 subgroupQuadBroadcast(ivec2, uint);\n" - "ivec3 subgroupQuadBroadcast(ivec3, uint);\n" - "ivec4 subgroupQuadBroadcast(ivec4, uint);\n" - "uint subgroupQuadBroadcast(uint, uint);\n" - "uvec2 subgroupQuadBroadcast(uvec2, uint);\n" - "uvec3 subgroupQuadBroadcast(uvec3, uint);\n" - "uvec4 subgroupQuadBroadcast(uvec4, uint);\n" - "bool subgroupQuadBroadcast(bool, uint);\n" - "bvec2 subgroupQuadBroadcast(bvec2, uint);\n" - "bvec3 subgroupQuadBroadcast(bvec3, uint);\n" - "bvec4 subgroupQuadBroadcast(bvec4, uint);\n" - - "float subgroupQuadSwapHorizontal(float);\n" - "vec2 subgroupQuadSwapHorizontal(vec2);\n" - "vec3 subgroupQuadSwapHorizontal(vec3);\n" - "vec4 subgroupQuadSwapHorizontal(vec4);\n" - "int subgroupQuadSwapHorizontal(int);\n" - "ivec2 subgroupQuadSwapHorizontal(ivec2);\n" - "ivec3 subgroupQuadSwapHorizontal(ivec3);\n" - "ivec4 subgroupQuadSwapHorizontal(ivec4);\n" - "uint subgroupQuadSwapHorizontal(uint);\n" - "uvec2 subgroupQuadSwapHorizontal(uvec2);\n" - "uvec3 subgroupQuadSwapHorizontal(uvec3);\n" - "uvec4 subgroupQuadSwapHorizontal(uvec4);\n" - "bool subgroupQuadSwapHorizontal(bool);\n" - "bvec2 subgroupQuadSwapHorizontal(bvec2);\n" - "bvec3 subgroupQuadSwapHorizontal(bvec3);\n" - "bvec4 subgroupQuadSwapHorizontal(bvec4);\n" - - "float subgroupQuadSwapVertical(float);\n" - "vec2 subgroupQuadSwapVertical(vec2);\n" - "vec3 subgroupQuadSwapVertical(vec3);\n" - "vec4 subgroupQuadSwapVertical(vec4);\n" - "int subgroupQuadSwapVertical(int);\n" - "ivec2 subgroupQuadSwapVertical(ivec2);\n" - "ivec3 subgroupQuadSwapVertical(ivec3);\n" - "ivec4 subgroupQuadSwapVertical(ivec4);\n" - "uint subgroupQuadSwapVertical(uint);\n" - "uvec2 subgroupQuadSwapVertical(uvec2);\n" - "uvec3 subgroupQuadSwapVertical(uvec3);\n" - "uvec4 subgroupQuadSwapVertical(uvec4);\n" - "bool subgroupQuadSwapVertical(bool);\n" - "bvec2 subgroupQuadSwapVertical(bvec2);\n" - "bvec3 subgroupQuadSwapVertical(bvec3);\n" - "bvec4 subgroupQuadSwapVertical(bvec4);\n" - - "float subgroupQuadSwapDiagonal(float);\n" - "vec2 subgroupQuadSwapDiagonal(vec2);\n" - "vec3 subgroupQuadSwapDiagonal(vec3);\n" - "vec4 subgroupQuadSwapDiagonal(vec4);\n" - "int subgroupQuadSwapDiagonal(int);\n" - "ivec2 subgroupQuadSwapDiagonal(ivec2);\n" - "ivec3 subgroupQuadSwapDiagonal(ivec3);\n" - "ivec4 subgroupQuadSwapDiagonal(ivec4);\n" - "uint subgroupQuadSwapDiagonal(uint);\n" - "uvec2 subgroupQuadSwapDiagonal(uvec2);\n" - "uvec3 subgroupQuadSwapDiagonal(uvec3);\n" - "uvec4 subgroupQuadSwapDiagonal(uvec4);\n" - "bool subgroupQuadSwapDiagonal(bool);\n" - "bvec2 subgroupQuadSwapDiagonal(bvec2);\n" - "bvec3 subgroupQuadSwapDiagonal(bvec3);\n" - "bvec4 subgroupQuadSwapDiagonal(bvec4);\n" - -#ifdef NV_EXTENSIONS - "uvec4 subgroupPartitionNV(float);\n" - "uvec4 subgroupPartitionNV(vec2);\n" - "uvec4 subgroupPartitionNV(vec3);\n" - "uvec4 subgroupPartitionNV(vec4);\n" - "uvec4 subgroupPartitionNV(int);\n" - "uvec4 subgroupPartitionNV(ivec2);\n" - "uvec4 subgroupPartitionNV(ivec3);\n" - "uvec4 subgroupPartitionNV(ivec4);\n" - "uvec4 subgroupPartitionNV(uint);\n" - "uvec4 subgroupPartitionNV(uvec2);\n" - "uvec4 subgroupPartitionNV(uvec3);\n" - "uvec4 subgroupPartitionNV(uvec4);\n" - "uvec4 subgroupPartitionNV(bool);\n" - "uvec4 subgroupPartitionNV(bvec2);\n" - "uvec4 subgroupPartitionNV(bvec3);\n" - "uvec4 subgroupPartitionNV(bvec4);\n" - - "float subgroupPartitionedAddNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedAddNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedAddNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedAddNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedAddNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedAddNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedAddNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedAddNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedAddNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedAddNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedAddNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedAddNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedMulNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedMulNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedMulNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedMulNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedMulNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedMulNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedMulNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedMulNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedMulNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedMulNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedMulNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedMulNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedMinNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedMinNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedMinNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedMinNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedMinNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedMinNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedMinNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedMinNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedMinNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedMinNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedMinNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedMinNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedMaxNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedMaxNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedMaxNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedMaxNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedMaxNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedMaxNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedMaxNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedMaxNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedMaxNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedMaxNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedMaxNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedMaxNV(uvec4, uvec4 ballot);\n" - - "int subgroupPartitionedAndNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedAndNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedAndNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedAndNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedAndNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedAndNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedAndNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedAndNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedAndNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedAndNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedAndNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedAndNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedOrNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedOrNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedOrNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedOrNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedOrNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedOrNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedOrNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedOrNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedOrNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedOrNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedOrNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedOrNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedXorNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedXorNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedXorNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedXorNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedXorNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedXorNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedXorNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedXorNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedXorNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedXorNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedXorNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedXorNV(bvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveAddNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveAddNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveAddNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveAddNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveAddNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveAddNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveAddNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveAddNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveAddNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveAddNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveAddNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveAddNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveMulNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveMulNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveMulNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveMulNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveMulNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveMulNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveMulNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveMulNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveMulNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveMulNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveMulNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveMulNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveMinNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveMinNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveMinNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveMinNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveMinNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveMinNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveMinNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveMinNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveMinNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveMinNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveMinNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveMinNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedInclusiveMaxNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedInclusiveMaxNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedInclusiveMaxNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedInclusiveMaxNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedInclusiveMaxNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveMaxNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveMaxNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveMaxNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveMaxNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveMaxNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveMaxNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveMaxNV(uvec4, uvec4 ballot);\n" - - "int subgroupPartitionedInclusiveAndNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveAndNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveAndNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveAndNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveAndNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveAndNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveAndNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveAndNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedInclusiveAndNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedInclusiveAndNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedInclusiveAndNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedInclusiveAndNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedInclusiveOrNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveOrNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveOrNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveOrNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveOrNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveOrNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveOrNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveOrNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedInclusiveOrNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedInclusiveOrNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedInclusiveOrNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedInclusiveOrNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedInclusiveXorNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedInclusiveXorNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedInclusiveXorNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedInclusiveXorNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedInclusiveXorNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedInclusiveXorNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedInclusiveXorNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedInclusiveXorNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedInclusiveXorNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedInclusiveXorNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedInclusiveXorNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedInclusiveXorNV(bvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveAddNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveAddNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveAddNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveAddNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveAddNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveAddNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveAddNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveAddNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveAddNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveAddNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveAddNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveAddNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveMulNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveMulNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveMulNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveMulNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveMulNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveMulNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveMulNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveMulNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveMulNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveMulNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveMulNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveMulNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveMinNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveMinNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveMinNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveMinNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveMinNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveMinNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveMinNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveMinNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveMinNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveMinNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveMinNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveMinNV(uvec4, uvec4 ballot);\n" - - "float subgroupPartitionedExclusiveMaxNV(float, uvec4 ballot);\n" - "vec2 subgroupPartitionedExclusiveMaxNV(vec2, uvec4 ballot);\n" - "vec3 subgroupPartitionedExclusiveMaxNV(vec3, uvec4 ballot);\n" - "vec4 subgroupPartitionedExclusiveMaxNV(vec4, uvec4 ballot);\n" - "int subgroupPartitionedExclusiveMaxNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveMaxNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveMaxNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveMaxNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveMaxNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveMaxNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveMaxNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveMaxNV(uvec4, uvec4 ballot);\n" - - "int subgroupPartitionedExclusiveAndNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveAndNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveAndNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveAndNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveAndNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveAndNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveAndNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveAndNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedExclusiveAndNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedExclusiveAndNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedExclusiveAndNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedExclusiveAndNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedExclusiveOrNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveOrNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveOrNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveOrNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveOrNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveOrNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveOrNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveOrNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedExclusiveOrNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedExclusiveOrNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedExclusiveOrNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedExclusiveOrNV(bvec4, uvec4 ballot);\n" - - "int subgroupPartitionedExclusiveXorNV(int, uvec4 ballot);\n" - "ivec2 subgroupPartitionedExclusiveXorNV(ivec2, uvec4 ballot);\n" - "ivec3 subgroupPartitionedExclusiveXorNV(ivec3, uvec4 ballot);\n" - "ivec4 subgroupPartitionedExclusiveXorNV(ivec4, uvec4 ballot);\n" - "uint subgroupPartitionedExclusiveXorNV(uint, uvec4 ballot);\n" - "uvec2 subgroupPartitionedExclusiveXorNV(uvec2, uvec4 ballot);\n" - "uvec3 subgroupPartitionedExclusiveXorNV(uvec3, uvec4 ballot);\n" - "uvec4 subgroupPartitionedExclusiveXorNV(uvec4, uvec4 ballot);\n" - "bool subgroupPartitionedExclusiveXorNV(bool, uvec4 ballot);\n" - "bvec2 subgroupPartitionedExclusiveXorNV(bvec2, uvec4 ballot);\n" - "bvec3 subgroupPartitionedExclusiveXorNV(bvec3, uvec4 ballot);\n" - "bvec4 subgroupPartitionedExclusiveXorNV(bvec4, uvec4 ballot);\n" -#endif - - "\n"); - - if (profile != EEsProfile && version >= 400) { - commonBuiltins.append( - "bool subgroupAllEqual(double);\n" - "bool subgroupAllEqual(dvec2);\n" - "bool subgroupAllEqual(dvec3);\n" - "bool subgroupAllEqual(dvec4);\n" - - "double subgroupBroadcast(double, uint);\n" - "dvec2 subgroupBroadcast(dvec2, uint);\n" - "dvec3 subgroupBroadcast(dvec3, uint);\n" - "dvec4 subgroupBroadcast(dvec4, uint);\n" - - "double subgroupBroadcastFirst(double);\n" - "dvec2 subgroupBroadcastFirst(dvec2);\n" - "dvec3 subgroupBroadcastFirst(dvec3);\n" - "dvec4 subgroupBroadcastFirst(dvec4);\n" - - "double subgroupShuffle(double, uint);\n" - "dvec2 subgroupShuffle(dvec2, uint);\n" - "dvec3 subgroupShuffle(dvec3, uint);\n" - "dvec4 subgroupShuffle(dvec4, uint);\n" - - "double subgroupShuffleXor(double, uint);\n" - "dvec2 subgroupShuffleXor(dvec2, uint);\n" - "dvec3 subgroupShuffleXor(dvec3, uint);\n" - "dvec4 subgroupShuffleXor(dvec4, uint);\n" - - "double subgroupShuffleUp(double, uint delta);\n" - "dvec2 subgroupShuffleUp(dvec2, uint delta);\n" - "dvec3 subgroupShuffleUp(dvec3, uint delta);\n" - "dvec4 subgroupShuffleUp(dvec4, uint delta);\n" - - "double subgroupShuffleDown(double, uint delta);\n" - "dvec2 subgroupShuffleDown(dvec2, uint delta);\n" - "dvec3 subgroupShuffleDown(dvec3, uint delta);\n" - "dvec4 subgroupShuffleDown(dvec4, uint delta);\n" - - "double subgroupAdd(double);\n" - "dvec2 subgroupAdd(dvec2);\n" - "dvec3 subgroupAdd(dvec3);\n" - "dvec4 subgroupAdd(dvec4);\n" - - "double subgroupMul(double);\n" - "dvec2 subgroupMul(dvec2);\n" - "dvec3 subgroupMul(dvec3);\n" - "dvec4 subgroupMul(dvec4);\n" - - "double subgroupMin(double);\n" - "dvec2 subgroupMin(dvec2);\n" - "dvec3 subgroupMin(dvec3);\n" - "dvec4 subgroupMin(dvec4);\n" - - "double subgroupMax(double);\n" - "dvec2 subgroupMax(dvec2);\n" - "dvec3 subgroupMax(dvec3);\n" - "dvec4 subgroupMax(dvec4);\n" - - "double subgroupInclusiveAdd(double);\n" - "dvec2 subgroupInclusiveAdd(dvec2);\n" - "dvec3 subgroupInclusiveAdd(dvec3);\n" - "dvec4 subgroupInclusiveAdd(dvec4);\n" - - "double subgroupInclusiveMul(double);\n" - "dvec2 subgroupInclusiveMul(dvec2);\n" - "dvec3 subgroupInclusiveMul(dvec3);\n" - "dvec4 subgroupInclusiveMul(dvec4);\n" - - "double subgroupInclusiveMin(double);\n" - "dvec2 subgroupInclusiveMin(dvec2);\n" - "dvec3 subgroupInclusiveMin(dvec3);\n" - "dvec4 subgroupInclusiveMin(dvec4);\n" - - "double subgroupInclusiveMax(double);\n" - "dvec2 subgroupInclusiveMax(dvec2);\n" - "dvec3 subgroupInclusiveMax(dvec3);\n" - "dvec4 subgroupInclusiveMax(dvec4);\n" - - "double subgroupExclusiveAdd(double);\n" - "dvec2 subgroupExclusiveAdd(dvec2);\n" - "dvec3 subgroupExclusiveAdd(dvec3);\n" - "dvec4 subgroupExclusiveAdd(dvec4);\n" - - "double subgroupExclusiveMul(double);\n" - "dvec2 subgroupExclusiveMul(dvec2);\n" - "dvec3 subgroupExclusiveMul(dvec3);\n" - "dvec4 subgroupExclusiveMul(dvec4);\n" - - "double subgroupExclusiveMin(double);\n" - "dvec2 subgroupExclusiveMin(dvec2);\n" - "dvec3 subgroupExclusiveMin(dvec3);\n" - "dvec4 subgroupExclusiveMin(dvec4);\n" - - "double subgroupExclusiveMax(double);\n" - "dvec2 subgroupExclusiveMax(dvec2);\n" - "dvec3 subgroupExclusiveMax(dvec3);\n" - "dvec4 subgroupExclusiveMax(dvec4);\n" - - "double subgroupClusteredAdd(double, uint);\n" - "dvec2 subgroupClusteredAdd(dvec2, uint);\n" - "dvec3 subgroupClusteredAdd(dvec3, uint);\n" - "dvec4 subgroupClusteredAdd(dvec4, uint);\n" - - "double subgroupClusteredMul(double, uint);\n" - "dvec2 subgroupClusteredMul(dvec2, uint);\n" - "dvec3 subgroupClusteredMul(dvec3, uint);\n" - "dvec4 subgroupClusteredMul(dvec4, uint);\n" - - "double subgroupClusteredMin(double, uint);\n" - "dvec2 subgroupClusteredMin(dvec2, uint);\n" - "dvec3 subgroupClusteredMin(dvec3, uint);\n" - "dvec4 subgroupClusteredMin(dvec4, uint);\n" - - "double subgroupClusteredMax(double, uint);\n" - "dvec2 subgroupClusteredMax(dvec2, uint);\n" - "dvec3 subgroupClusteredMax(dvec3, uint);\n" - "dvec4 subgroupClusteredMax(dvec4, uint);\n" - - "double subgroupQuadBroadcast(double, uint);\n" - "dvec2 subgroupQuadBroadcast(dvec2, uint);\n" - "dvec3 subgroupQuadBroadcast(dvec3, uint);\n" - "dvec4 subgroupQuadBroadcast(dvec4, uint);\n" - - "double subgroupQuadSwapHorizontal(double);\n" - "dvec2 subgroupQuadSwapHorizontal(dvec2);\n" - "dvec3 subgroupQuadSwapHorizontal(dvec3);\n" - "dvec4 subgroupQuadSwapHorizontal(dvec4);\n" - - "double subgroupQuadSwapVertical(double);\n" - "dvec2 subgroupQuadSwapVertical(dvec2);\n" - "dvec3 subgroupQuadSwapVertical(dvec3);\n" - "dvec4 subgroupQuadSwapVertical(dvec4);\n" - - "double subgroupQuadSwapDiagonal(double);\n" - "dvec2 subgroupQuadSwapDiagonal(dvec2);\n" - "dvec3 subgroupQuadSwapDiagonal(dvec3);\n" - "dvec4 subgroupQuadSwapDiagonal(dvec4);\n" - - -#ifdef NV_EXTENSIONS - "uvec4 subgroupPartitionNV(double);\n" - "uvec4 subgroupPartitionNV(dvec2);\n" - "uvec4 subgroupPartitionNV(dvec3);\n" - "uvec4 subgroupPartitionNV(dvec4);\n" - - "double subgroupPartitionedAddNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedAddNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedAddNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedAddNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedMulNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedMulNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedMulNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedMulNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedMinNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedMinNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedMinNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedMinNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedMaxNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedMaxNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedMaxNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedMaxNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveAddNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveAddNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveAddNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveAddNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveMulNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveMulNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveMulNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveMulNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveMinNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveMinNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveMinNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveMinNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedInclusiveMaxNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedInclusiveMaxNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedInclusiveMaxNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedInclusiveMaxNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveAddNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveAddNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveAddNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveAddNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveMulNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveMulNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveMulNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveMulNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveMinNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveMinNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveMinNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveMinNV(dvec4, uvec4 ballot);\n" - - "double subgroupPartitionedExclusiveMaxNV(double, uvec4 ballot);\n" - "dvec2 subgroupPartitionedExclusiveMaxNV(dvec2, uvec4 ballot);\n" - "dvec3 subgroupPartitionedExclusiveMaxNV(dvec3, uvec4 ballot);\n" - "dvec4 subgroupPartitionedExclusiveMaxNV(dvec4, uvec4 ballot);\n" -#endif - - "\n"); - } - - stageBuiltins[EShLangCompute].append( - "void subgroupMemoryBarrierShared();" - - "\n" - ); - } - - if (profile != EEsProfile && version >= 460) { - commonBuiltins.append( - "bool anyInvocation(bool);" - "bool allInvocations(bool);" - "bool allInvocationsEqual(bool);" - - "\n"); - } - #ifdef AMD_EXTENSIONS // GL_AMD_shader_ballot if (profile != EEsProfile && version >= 450) { @@ -2773,126 +1588,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 minInvocationsAMD(uvec3);" "uvec4 minInvocationsAMD(uvec4);" - "double minInvocationsAMD(double);" - "dvec2 minInvocationsAMD(dvec2);" - "dvec3 minInvocationsAMD(dvec3);" - "dvec4 minInvocationsAMD(dvec4);" - - "int64_t minInvocationsAMD(int64_t);" - "i64vec2 minInvocationsAMD(i64vec2);" - "i64vec3 minInvocationsAMD(i64vec3);" - "i64vec4 minInvocationsAMD(i64vec4);" - - "uint64_t minInvocationsAMD(uint64_t);" - "u64vec2 minInvocationsAMD(u64vec2);" - "u64vec3 minInvocationsAMD(u64vec3);" - "u64vec4 minInvocationsAMD(u64vec4);" - - "float16_t minInvocationsAMD(float16_t);" - "f16vec2 minInvocationsAMD(f16vec2);" - "f16vec3 minInvocationsAMD(f16vec3);" - "f16vec4 minInvocationsAMD(f16vec4);" - - "int16_t minInvocationsAMD(int16_t);" - "i16vec2 minInvocationsAMD(i16vec2);" - "i16vec3 minInvocationsAMD(i16vec3);" - "i16vec4 minInvocationsAMD(i16vec4);" - - "uint16_t minInvocationsAMD(uint16_t);" - "u16vec2 minInvocationsAMD(u16vec2);" - "u16vec3 minInvocationsAMD(u16vec3);" - "u16vec4 minInvocationsAMD(u16vec4);" - - "float minInvocationsInclusiveScanAMD(float);" - "vec2 minInvocationsInclusiveScanAMD(vec2);" - "vec3 minInvocationsInclusiveScanAMD(vec3);" - "vec4 minInvocationsInclusiveScanAMD(vec4);" - - "int minInvocationsInclusiveScanAMD(int);" - "ivec2 minInvocationsInclusiveScanAMD(ivec2);" - "ivec3 minInvocationsInclusiveScanAMD(ivec3);" - "ivec4 minInvocationsInclusiveScanAMD(ivec4);" - - "uint minInvocationsInclusiveScanAMD(uint);" - "uvec2 minInvocationsInclusiveScanAMD(uvec2);" - "uvec3 minInvocationsInclusiveScanAMD(uvec3);" - "uvec4 minInvocationsInclusiveScanAMD(uvec4);" - - "double minInvocationsInclusiveScanAMD(double);" - "dvec2 minInvocationsInclusiveScanAMD(dvec2);" - "dvec3 minInvocationsInclusiveScanAMD(dvec3);" - "dvec4 minInvocationsInclusiveScanAMD(dvec4);" - - "int64_t minInvocationsInclusiveScanAMD(int64_t);" - "i64vec2 minInvocationsInclusiveScanAMD(i64vec2);" - "i64vec3 minInvocationsInclusiveScanAMD(i64vec3);" - "i64vec4 minInvocationsInclusiveScanAMD(i64vec4);" - - "uint64_t minInvocationsInclusiveScanAMD(uint64_t);" - "u64vec2 minInvocationsInclusiveScanAMD(u64vec2);" - "u64vec3 minInvocationsInclusiveScanAMD(u64vec3);" - "u64vec4 minInvocationsInclusiveScanAMD(u64vec4);" - - "float16_t minInvocationsInclusiveScanAMD(float16_t);" - "f16vec2 minInvocationsInclusiveScanAMD(f16vec2);" - "f16vec3 minInvocationsInclusiveScanAMD(f16vec3);" - "f16vec4 minInvocationsInclusiveScanAMD(f16vec4);" - - "int16_t minInvocationsInclusiveScanAMD(int16_t);" - "i16vec2 minInvocationsInclusiveScanAMD(i16vec2);" - "i16vec3 minInvocationsInclusiveScanAMD(i16vec3);" - "i16vec4 minInvocationsInclusiveScanAMD(i16vec4);" - - "uint16_t minInvocationsInclusiveScanAMD(uint16_t);" - "u16vec2 minInvocationsInclusiveScanAMD(u16vec2);" - "u16vec3 minInvocationsInclusiveScanAMD(u16vec3);" - "u16vec4 minInvocationsInclusiveScanAMD(u16vec4);" - - "float minInvocationsExclusiveScanAMD(float);" - "vec2 minInvocationsExclusiveScanAMD(vec2);" - "vec3 minInvocationsExclusiveScanAMD(vec3);" - "vec4 minInvocationsExclusiveScanAMD(vec4);" - - "int minInvocationsExclusiveScanAMD(int);" - "ivec2 minInvocationsExclusiveScanAMD(ivec2);" - "ivec3 minInvocationsExclusiveScanAMD(ivec3);" - "ivec4 minInvocationsExclusiveScanAMD(ivec4);" - - "uint minInvocationsExclusiveScanAMD(uint);" - "uvec2 minInvocationsExclusiveScanAMD(uvec2);" - "uvec3 minInvocationsExclusiveScanAMD(uvec3);" - "uvec4 minInvocationsExclusiveScanAMD(uvec4);" - - "double minInvocationsExclusiveScanAMD(double);" - "dvec2 minInvocationsExclusiveScanAMD(dvec2);" - "dvec3 minInvocationsExclusiveScanAMD(dvec3);" - "dvec4 minInvocationsExclusiveScanAMD(dvec4);" - - "int64_t minInvocationsExclusiveScanAMD(int64_t);" - "i64vec2 minInvocationsExclusiveScanAMD(i64vec2);" - "i64vec3 minInvocationsExclusiveScanAMD(i64vec3);" - "i64vec4 minInvocationsExclusiveScanAMD(i64vec4);" - - "uint64_t minInvocationsExclusiveScanAMD(uint64_t);" - "u64vec2 minInvocationsExclusiveScanAMD(u64vec2);" - "u64vec3 minInvocationsExclusiveScanAMD(u64vec3);" - "u64vec4 minInvocationsExclusiveScanAMD(u64vec4);" - - "float16_t minInvocationsExclusiveScanAMD(float16_t);" - "f16vec2 minInvocationsExclusiveScanAMD(f16vec2);" - "f16vec3 minInvocationsExclusiveScanAMD(f16vec3);" - "f16vec4 minInvocationsExclusiveScanAMD(f16vec4);" - - "int16_t minInvocationsExclusiveScanAMD(int16_t);" - "i16vec2 minInvocationsExclusiveScanAMD(i16vec2);" - "i16vec3 minInvocationsExclusiveScanAMD(i16vec3);" - "i16vec4 minInvocationsExclusiveScanAMD(i16vec4);" - - "uint16_t minInvocationsExclusiveScanAMD(uint16_t);" - "u16vec2 minInvocationsExclusiveScanAMD(u16vec2);" - "u16vec3 minInvocationsExclusiveScanAMD(u16vec3);" - "u16vec4 minInvocationsExclusiveScanAMD(u16vec4);" - "float maxInvocationsAMD(float);" "vec2 maxInvocationsAMD(vec2);" "vec3 maxInvocationsAMD(vec3);" @@ -2908,126 +1603,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 maxInvocationsAMD(uvec3);" "uvec4 maxInvocationsAMD(uvec4);" - "double maxInvocationsAMD(double);" - "dvec2 maxInvocationsAMD(dvec2);" - "dvec3 maxInvocationsAMD(dvec3);" - "dvec4 maxInvocationsAMD(dvec4);" - - "int64_t maxInvocationsAMD(int64_t);" - "i64vec2 maxInvocationsAMD(i64vec2);" - "i64vec3 maxInvocationsAMD(i64vec3);" - "i64vec4 maxInvocationsAMD(i64vec4);" - - "uint64_t maxInvocationsAMD(uint64_t);" - "u64vec2 maxInvocationsAMD(u64vec2);" - "u64vec3 maxInvocationsAMD(u64vec3);" - "u64vec4 maxInvocationsAMD(u64vec4);" - - "float16_t maxInvocationsAMD(float16_t);" - "f16vec2 maxInvocationsAMD(f16vec2);" - "f16vec3 maxInvocationsAMD(f16vec3);" - "f16vec4 maxInvocationsAMD(f16vec4);" - - "int16_t maxInvocationsAMD(int16_t);" - "i16vec2 maxInvocationsAMD(i16vec2);" - "i16vec3 maxInvocationsAMD(i16vec3);" - "i16vec4 maxInvocationsAMD(i16vec4);" - - "uint16_t maxInvocationsAMD(uint16_t);" - "u16vec2 maxInvocationsAMD(u16vec2);" - "u16vec3 maxInvocationsAMD(u16vec3);" - "u16vec4 maxInvocationsAMD(u16vec4);" - - "float maxInvocationsInclusiveScanAMD(float);" - "vec2 maxInvocationsInclusiveScanAMD(vec2);" - "vec3 maxInvocationsInclusiveScanAMD(vec3);" - "vec4 maxInvocationsInclusiveScanAMD(vec4);" - - "int maxInvocationsInclusiveScanAMD(int);" - "ivec2 maxInvocationsInclusiveScanAMD(ivec2);" - "ivec3 maxInvocationsInclusiveScanAMD(ivec3);" - "ivec4 maxInvocationsInclusiveScanAMD(ivec4);" - - "uint maxInvocationsInclusiveScanAMD(uint);" - "uvec2 maxInvocationsInclusiveScanAMD(uvec2);" - "uvec3 maxInvocationsInclusiveScanAMD(uvec3);" - "uvec4 maxInvocationsInclusiveScanAMD(uvec4);" - - "double maxInvocationsInclusiveScanAMD(double);" - "dvec2 maxInvocationsInclusiveScanAMD(dvec2);" - "dvec3 maxInvocationsInclusiveScanAMD(dvec3);" - "dvec4 maxInvocationsInclusiveScanAMD(dvec4);" - - "int64_t maxInvocationsInclusiveScanAMD(int64_t);" - "i64vec2 maxInvocationsInclusiveScanAMD(i64vec2);" - "i64vec3 maxInvocationsInclusiveScanAMD(i64vec3);" - "i64vec4 maxInvocationsInclusiveScanAMD(i64vec4);" - - "uint64_t maxInvocationsInclusiveScanAMD(uint64_t);" - "u64vec2 maxInvocationsInclusiveScanAMD(u64vec2);" - "u64vec3 maxInvocationsInclusiveScanAMD(u64vec3);" - "u64vec4 maxInvocationsInclusiveScanAMD(u64vec4);" - - "float16_t maxInvocationsInclusiveScanAMD(float16_t);" - "f16vec2 maxInvocationsInclusiveScanAMD(f16vec2);" - "f16vec3 maxInvocationsInclusiveScanAMD(f16vec3);" - "f16vec4 maxInvocationsInclusiveScanAMD(f16vec4);" - - "int16_t maxInvocationsInclusiveScanAMD(int16_t);" - "i16vec2 maxInvocationsInclusiveScanAMD(i16vec2);" - "i16vec3 maxInvocationsInclusiveScanAMD(i16vec3);" - "i16vec4 maxInvocationsInclusiveScanAMD(i16vec4);" - - "uint16_t maxInvocationsInclusiveScanAMD(uint16_t);" - "u16vec2 maxInvocationsInclusiveScanAMD(u16vec2);" - "u16vec3 maxInvocationsInclusiveScanAMD(u16vec3);" - "u16vec4 maxInvocationsInclusiveScanAMD(u16vec4);" - - "float maxInvocationsExclusiveScanAMD(float);" - "vec2 maxInvocationsExclusiveScanAMD(vec2);" - "vec3 maxInvocationsExclusiveScanAMD(vec3);" - "vec4 maxInvocationsExclusiveScanAMD(vec4);" - - "int maxInvocationsExclusiveScanAMD(int);" - "ivec2 maxInvocationsExclusiveScanAMD(ivec2);" - "ivec3 maxInvocationsExclusiveScanAMD(ivec3);" - "ivec4 maxInvocationsExclusiveScanAMD(ivec4);" - - "uint maxInvocationsExclusiveScanAMD(uint);" - "uvec2 maxInvocationsExclusiveScanAMD(uvec2);" - "uvec3 maxInvocationsExclusiveScanAMD(uvec3);" - "uvec4 maxInvocationsExclusiveScanAMD(uvec4);" - - "double maxInvocationsExclusiveScanAMD(double);" - "dvec2 maxInvocationsExclusiveScanAMD(dvec2);" - "dvec3 maxInvocationsExclusiveScanAMD(dvec3);" - "dvec4 maxInvocationsExclusiveScanAMD(dvec4);" - - "int64_t maxInvocationsExclusiveScanAMD(int64_t);" - "i64vec2 maxInvocationsExclusiveScanAMD(i64vec2);" - "i64vec3 maxInvocationsExclusiveScanAMD(i64vec3);" - "i64vec4 maxInvocationsExclusiveScanAMD(i64vec4);" - - "uint64_t maxInvocationsExclusiveScanAMD(uint64_t);" - "u64vec2 maxInvocationsExclusiveScanAMD(u64vec2);" - "u64vec3 maxInvocationsExclusiveScanAMD(u64vec3);" - "u64vec4 maxInvocationsExclusiveScanAMD(u64vec4);" - - "float16_t maxInvocationsExclusiveScanAMD(float16_t);" - "f16vec2 maxInvocationsExclusiveScanAMD(f16vec2);" - "f16vec3 maxInvocationsExclusiveScanAMD(f16vec3);" - "f16vec4 maxInvocationsExclusiveScanAMD(f16vec4);" - - "int16_t maxInvocationsExclusiveScanAMD(int16_t);" - "i16vec2 maxInvocationsExclusiveScanAMD(i16vec2);" - "i16vec3 maxInvocationsExclusiveScanAMD(i16vec3);" - "i16vec4 maxInvocationsExclusiveScanAMD(i16vec4);" - - "uint16_t maxInvocationsExclusiveScanAMD(uint16_t);" - "u16vec2 maxInvocationsExclusiveScanAMD(u16vec2);" - "u16vec3 maxInvocationsExclusiveScanAMD(u16vec3);" - "u16vec4 maxInvocationsExclusiveScanAMD(u16vec4);" - "float addInvocationsAMD(float);" "vec2 addInvocationsAMD(vec2);" "vec3 addInvocationsAMD(vec3);" @@ -3043,126 +1618,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 addInvocationsAMD(uvec3);" "uvec4 addInvocationsAMD(uvec4);" - "double addInvocationsAMD(double);" - "dvec2 addInvocationsAMD(dvec2);" - "dvec3 addInvocationsAMD(dvec3);" - "dvec4 addInvocationsAMD(dvec4);" - - "int64_t addInvocationsAMD(int64_t);" - "i64vec2 addInvocationsAMD(i64vec2);" - "i64vec3 addInvocationsAMD(i64vec3);" - "i64vec4 addInvocationsAMD(i64vec4);" - - "uint64_t addInvocationsAMD(uint64_t);" - "u64vec2 addInvocationsAMD(u64vec2);" - "u64vec3 addInvocationsAMD(u64vec3);" - "u64vec4 addInvocationsAMD(u64vec4);" - - "float16_t addInvocationsAMD(float16_t);" - "f16vec2 addInvocationsAMD(f16vec2);" - "f16vec3 addInvocationsAMD(f16vec3);" - "f16vec4 addInvocationsAMD(f16vec4);" - - "int16_t addInvocationsAMD(int16_t);" - "i16vec2 addInvocationsAMD(i16vec2);" - "i16vec3 addInvocationsAMD(i16vec3);" - "i16vec4 addInvocationsAMD(i16vec4);" - - "uint16_t addInvocationsAMD(uint16_t);" - "u16vec2 addInvocationsAMD(u16vec2);" - "u16vec3 addInvocationsAMD(u16vec3);" - "u16vec4 addInvocationsAMD(u16vec4);" - - "float addInvocationsInclusiveScanAMD(float);" - "vec2 addInvocationsInclusiveScanAMD(vec2);" - "vec3 addInvocationsInclusiveScanAMD(vec3);" - "vec4 addInvocationsInclusiveScanAMD(vec4);" - - "int addInvocationsInclusiveScanAMD(int);" - "ivec2 addInvocationsInclusiveScanAMD(ivec2);" - "ivec3 addInvocationsInclusiveScanAMD(ivec3);" - "ivec4 addInvocationsInclusiveScanAMD(ivec4);" - - "uint addInvocationsInclusiveScanAMD(uint);" - "uvec2 addInvocationsInclusiveScanAMD(uvec2);" - "uvec3 addInvocationsInclusiveScanAMD(uvec3);" - "uvec4 addInvocationsInclusiveScanAMD(uvec4);" - - "double addInvocationsInclusiveScanAMD(double);" - "dvec2 addInvocationsInclusiveScanAMD(dvec2);" - "dvec3 addInvocationsInclusiveScanAMD(dvec3);" - "dvec4 addInvocationsInclusiveScanAMD(dvec4);" - - "int64_t addInvocationsInclusiveScanAMD(int64_t);" - "i64vec2 addInvocationsInclusiveScanAMD(i64vec2);" - "i64vec3 addInvocationsInclusiveScanAMD(i64vec3);" - "i64vec4 addInvocationsInclusiveScanAMD(i64vec4);" - - "uint64_t addInvocationsInclusiveScanAMD(uint64_t);" - "u64vec2 addInvocationsInclusiveScanAMD(u64vec2);" - "u64vec3 addInvocationsInclusiveScanAMD(u64vec3);" - "u64vec4 addInvocationsInclusiveScanAMD(u64vec4);" - - "float16_t addInvocationsInclusiveScanAMD(float16_t);" - "f16vec2 addInvocationsInclusiveScanAMD(f16vec2);" - "f16vec3 addInvocationsInclusiveScanAMD(f16vec3);" - "f16vec4 addInvocationsInclusiveScanAMD(f16vec4);" - - "int16_t addInvocationsInclusiveScanAMD(int16_t);" - "i16vec2 addInvocationsInclusiveScanAMD(i16vec2);" - "i16vec3 addInvocationsInclusiveScanAMD(i16vec3);" - "i16vec4 addInvocationsInclusiveScanAMD(i16vec4);" - - "uint16_t addInvocationsInclusiveScanAMD(uint16_t);" - "u16vec2 addInvocationsInclusiveScanAMD(u16vec2);" - "u16vec3 addInvocationsInclusiveScanAMD(u16vec3);" - "u16vec4 addInvocationsInclusiveScanAMD(u16vec4);" - - "float addInvocationsExclusiveScanAMD(float);" - "vec2 addInvocationsExclusiveScanAMD(vec2);" - "vec3 addInvocationsExclusiveScanAMD(vec3);" - "vec4 addInvocationsExclusiveScanAMD(vec4);" - - "int addInvocationsExclusiveScanAMD(int);" - "ivec2 addInvocationsExclusiveScanAMD(ivec2);" - "ivec3 addInvocationsExclusiveScanAMD(ivec3);" - "ivec4 addInvocationsExclusiveScanAMD(ivec4);" - - "uint addInvocationsExclusiveScanAMD(uint);" - "uvec2 addInvocationsExclusiveScanAMD(uvec2);" - "uvec3 addInvocationsExclusiveScanAMD(uvec3);" - "uvec4 addInvocationsExclusiveScanAMD(uvec4);" - - "double addInvocationsExclusiveScanAMD(double);" - "dvec2 addInvocationsExclusiveScanAMD(dvec2);" - "dvec3 addInvocationsExclusiveScanAMD(dvec3);" - "dvec4 addInvocationsExclusiveScanAMD(dvec4);" - - "int64_t addInvocationsExclusiveScanAMD(int64_t);" - "i64vec2 addInvocationsExclusiveScanAMD(i64vec2);" - "i64vec3 addInvocationsExclusiveScanAMD(i64vec3);" - "i64vec4 addInvocationsExclusiveScanAMD(i64vec4);" - - "uint64_t addInvocationsExclusiveScanAMD(uint64_t);" - "u64vec2 addInvocationsExclusiveScanAMD(u64vec2);" - "u64vec3 addInvocationsExclusiveScanAMD(u64vec3);" - "u64vec4 addInvocationsExclusiveScanAMD(u64vec4);" - - "float16_t addInvocationsExclusiveScanAMD(float16_t);" - "f16vec2 addInvocationsExclusiveScanAMD(f16vec2);" - "f16vec3 addInvocationsExclusiveScanAMD(f16vec3);" - "f16vec4 addInvocationsExclusiveScanAMD(f16vec4);" - - "int16_t addInvocationsExclusiveScanAMD(int16_t);" - "i16vec2 addInvocationsExclusiveScanAMD(i16vec2);" - "i16vec3 addInvocationsExclusiveScanAMD(i16vec3);" - "i16vec4 addInvocationsExclusiveScanAMD(i16vec4);" - - "uint16_t addInvocationsExclusiveScanAMD(uint16_t);" - "u16vec2 addInvocationsExclusiveScanAMD(u16vec2);" - "u16vec3 addInvocationsExclusiveScanAMD(u16vec3);" - "u16vec4 addInvocationsExclusiveScanAMD(u16vec4);" - "float minInvocationsNonUniformAMD(float);" "vec2 minInvocationsNonUniformAMD(vec2);" "vec3 minInvocationsNonUniformAMD(vec3);" @@ -3178,126 +1633,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 minInvocationsNonUniformAMD(uvec3);" "uvec4 minInvocationsNonUniformAMD(uvec4);" - "double minInvocationsNonUniformAMD(double);" - "dvec2 minInvocationsNonUniformAMD(dvec2);" - "dvec3 minInvocationsNonUniformAMD(dvec3);" - "dvec4 minInvocationsNonUniformAMD(dvec4);" - - "int64_t minInvocationsNonUniformAMD(int64_t);" - "i64vec2 minInvocationsNonUniformAMD(i64vec2);" - "i64vec3 minInvocationsNonUniformAMD(i64vec3);" - "i64vec4 minInvocationsNonUniformAMD(i64vec4);" - - "uint64_t minInvocationsNonUniformAMD(uint64_t);" - "u64vec2 minInvocationsNonUniformAMD(u64vec2);" - "u64vec3 minInvocationsNonUniformAMD(u64vec3);" - "u64vec4 minInvocationsNonUniformAMD(u64vec4);" - - "float16_t minInvocationsNonUniformAMD(float16_t);" - "f16vec2 minInvocationsNonUniformAMD(f16vec2);" - "f16vec3 minInvocationsNonUniformAMD(f16vec3);" - "f16vec4 minInvocationsNonUniformAMD(f16vec4);" - - "int16_t minInvocationsNonUniformAMD(int16_t);" - "i16vec2 minInvocationsNonUniformAMD(i16vec2);" - "i16vec3 minInvocationsNonUniformAMD(i16vec3);" - "i16vec4 minInvocationsNonUniformAMD(i16vec4);" - - "uint16_t minInvocationsNonUniformAMD(uint16_t);" - "u16vec2 minInvocationsNonUniformAMD(u16vec2);" - "u16vec3 minInvocationsNonUniformAMD(u16vec3);" - "u16vec4 minInvocationsNonUniformAMD(u16vec4);" - - "float minInvocationsInclusiveScanNonUniformAMD(float);" - "vec2 minInvocationsInclusiveScanNonUniformAMD(vec2);" - "vec3 minInvocationsInclusiveScanNonUniformAMD(vec3);" - "vec4 minInvocationsInclusiveScanNonUniformAMD(vec4);" - - "int minInvocationsInclusiveScanNonUniformAMD(int);" - "ivec2 minInvocationsInclusiveScanNonUniformAMD(ivec2);" - "ivec3 minInvocationsInclusiveScanNonUniformAMD(ivec3);" - "ivec4 minInvocationsInclusiveScanNonUniformAMD(ivec4);" - - "uint minInvocationsInclusiveScanNonUniformAMD(uint);" - "uvec2 minInvocationsInclusiveScanNonUniformAMD(uvec2);" - "uvec3 minInvocationsInclusiveScanNonUniformAMD(uvec3);" - "uvec4 minInvocationsInclusiveScanNonUniformAMD(uvec4);" - - "double minInvocationsInclusiveScanNonUniformAMD(double);" - "dvec2 minInvocationsInclusiveScanNonUniformAMD(dvec2);" - "dvec3 minInvocationsInclusiveScanNonUniformAMD(dvec3);" - "dvec4 minInvocationsInclusiveScanNonUniformAMD(dvec4);" - - "int64_t minInvocationsInclusiveScanNonUniformAMD(int64_t);" - "i64vec2 minInvocationsInclusiveScanNonUniformAMD(i64vec2);" - "i64vec3 minInvocationsInclusiveScanNonUniformAMD(i64vec3);" - "i64vec4 minInvocationsInclusiveScanNonUniformAMD(i64vec4);" - - "uint64_t minInvocationsInclusiveScanNonUniformAMD(uint64_t);" - "u64vec2 minInvocationsInclusiveScanNonUniformAMD(u64vec2);" - "u64vec3 minInvocationsInclusiveScanNonUniformAMD(u64vec3);" - "u64vec4 minInvocationsInclusiveScanNonUniformAMD(u64vec4);" - - "float16_t minInvocationsInclusiveScanNonUniformAMD(float16_t);" - "f16vec2 minInvocationsInclusiveScanNonUniformAMD(f16vec2);" - "f16vec3 minInvocationsInclusiveScanNonUniformAMD(f16vec3);" - "f16vec4 minInvocationsInclusiveScanNonUniformAMD(f16vec4);" - - "int16_t minInvocationsInclusiveScanNonUniformAMD(int16_t);" - "i16vec2 minInvocationsInclusiveScanNonUniformAMD(i16vec2);" - "i16vec3 minInvocationsInclusiveScanNonUniformAMD(i16vec3);" - "i16vec4 minInvocationsInclusiveScanNonUniformAMD(i16vec4);" - - "uint16_t minInvocationsInclusiveScanNonUniformAMD(uint16_t);" - "u16vec2 minInvocationsInclusiveScanNonUniformAMD(u16vec2);" - "u16vec3 minInvocationsInclusiveScanNonUniformAMD(u16vec3);" - "u16vec4 minInvocationsInclusiveScanNonUniformAMD(u16vec4);" - - "float minInvocationsExclusiveScanNonUniformAMD(float);" - "vec2 minInvocationsExclusiveScanNonUniformAMD(vec2);" - "vec3 minInvocationsExclusiveScanNonUniformAMD(vec3);" - "vec4 minInvocationsExclusiveScanNonUniformAMD(vec4);" - - "int minInvocationsExclusiveScanNonUniformAMD(int);" - "ivec2 minInvocationsExclusiveScanNonUniformAMD(ivec2);" - "ivec3 minInvocationsExclusiveScanNonUniformAMD(ivec3);" - "ivec4 minInvocationsExclusiveScanNonUniformAMD(ivec4);" - - "uint minInvocationsExclusiveScanNonUniformAMD(uint);" - "uvec2 minInvocationsExclusiveScanNonUniformAMD(uvec2);" - "uvec3 minInvocationsExclusiveScanNonUniformAMD(uvec3);" - "uvec4 minInvocationsExclusiveScanNonUniformAMD(uvec4);" - - "double minInvocationsExclusiveScanNonUniformAMD(double);" - "dvec2 minInvocationsExclusiveScanNonUniformAMD(dvec2);" - "dvec3 minInvocationsExclusiveScanNonUniformAMD(dvec3);" - "dvec4 minInvocationsExclusiveScanNonUniformAMD(dvec4);" - - "int64_t minInvocationsExclusiveScanNonUniformAMD(int64_t);" - "i64vec2 minInvocationsExclusiveScanNonUniformAMD(i64vec2);" - "i64vec3 minInvocationsExclusiveScanNonUniformAMD(i64vec3);" - "i64vec4 minInvocationsExclusiveScanNonUniformAMD(i64vec4);" - - "uint64_t minInvocationsExclusiveScanNonUniformAMD(uint64_t);" - "u64vec2 minInvocationsExclusiveScanNonUniformAMD(u64vec2);" - "u64vec3 minInvocationsExclusiveScanNonUniformAMD(u64vec3);" - "u64vec4 minInvocationsExclusiveScanNonUniformAMD(u64vec4);" - - "float16_t minInvocationsExclusiveScanNonUniformAMD(float16_t);" - "f16vec2 minInvocationsExclusiveScanNonUniformAMD(f16vec2);" - "f16vec3 minInvocationsExclusiveScanNonUniformAMD(f16vec3);" - "f16vec4 minInvocationsExclusiveScanNonUniformAMD(f16vec4);" - - "int16_t minInvocationsExclusiveScanNonUniformAMD(int16_t);" - "i16vec2 minInvocationsExclusiveScanNonUniformAMD(i16vec2);" - "i16vec3 minInvocationsExclusiveScanNonUniformAMD(i16vec3);" - "i16vec4 minInvocationsExclusiveScanNonUniformAMD(i16vec4);" - - "uint16_t minInvocationsExclusiveScanNonUniformAMD(uint16_t);" - "u16vec2 minInvocationsExclusiveScanNonUniformAMD(u16vec2);" - "u16vec3 minInvocationsExclusiveScanNonUniformAMD(u16vec3);" - "u16vec4 minInvocationsExclusiveScanNonUniformAMD(u16vec4);" - "float maxInvocationsNonUniformAMD(float);" "vec2 maxInvocationsNonUniformAMD(vec2);" "vec3 maxInvocationsNonUniformAMD(vec3);" @@ -3313,126 +1648,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 maxInvocationsNonUniformAMD(uvec3);" "uvec4 maxInvocationsNonUniformAMD(uvec4);" - "double maxInvocationsNonUniformAMD(double);" - "dvec2 maxInvocationsNonUniformAMD(dvec2);" - "dvec3 maxInvocationsNonUniformAMD(dvec3);" - "dvec4 maxInvocationsNonUniformAMD(dvec4);" - - "int64_t maxInvocationsNonUniformAMD(int64_t);" - "i64vec2 maxInvocationsNonUniformAMD(i64vec2);" - "i64vec3 maxInvocationsNonUniformAMD(i64vec3);" - "i64vec4 maxInvocationsNonUniformAMD(i64vec4);" - - "uint64_t maxInvocationsNonUniformAMD(uint64_t);" - "u64vec2 maxInvocationsNonUniformAMD(u64vec2);" - "u64vec3 maxInvocationsNonUniformAMD(u64vec3);" - "u64vec4 maxInvocationsNonUniformAMD(u64vec4);" - - "float16_t maxInvocationsNonUniformAMD(float16_t);" - "f16vec2 maxInvocationsNonUniformAMD(f16vec2);" - "f16vec3 maxInvocationsNonUniformAMD(f16vec3);" - "f16vec4 maxInvocationsNonUniformAMD(f16vec4);" - - "int16_t maxInvocationsNonUniformAMD(int16_t);" - "i16vec2 maxInvocationsNonUniformAMD(i16vec2);" - "i16vec3 maxInvocationsNonUniformAMD(i16vec3);" - "i16vec4 maxInvocationsNonUniformAMD(i16vec4);" - - "uint16_t maxInvocationsNonUniformAMD(uint16_t);" - "u16vec2 maxInvocationsNonUniformAMD(u16vec2);" - "u16vec3 maxInvocationsNonUniformAMD(u16vec3);" - "u16vec4 maxInvocationsNonUniformAMD(u16vec4);" - - "float maxInvocationsInclusiveScanNonUniformAMD(float);" - "vec2 maxInvocationsInclusiveScanNonUniformAMD(vec2);" - "vec3 maxInvocationsInclusiveScanNonUniformAMD(vec3);" - "vec4 maxInvocationsInclusiveScanNonUniformAMD(vec4);" - - "int maxInvocationsInclusiveScanNonUniformAMD(int);" - "ivec2 maxInvocationsInclusiveScanNonUniformAMD(ivec2);" - "ivec3 maxInvocationsInclusiveScanNonUniformAMD(ivec3);" - "ivec4 maxInvocationsInclusiveScanNonUniformAMD(ivec4);" - - "uint maxInvocationsInclusiveScanNonUniformAMD(uint);" - "uvec2 maxInvocationsInclusiveScanNonUniformAMD(uvec2);" - "uvec3 maxInvocationsInclusiveScanNonUniformAMD(uvec3);" - "uvec4 maxInvocationsInclusiveScanNonUniformAMD(uvec4);" - - "double maxInvocationsInclusiveScanNonUniformAMD(double);" - "dvec2 maxInvocationsInclusiveScanNonUniformAMD(dvec2);" - "dvec3 maxInvocationsInclusiveScanNonUniformAMD(dvec3);" - "dvec4 maxInvocationsInclusiveScanNonUniformAMD(dvec4);" - - "int64_t maxInvocationsInclusiveScanNonUniformAMD(int64_t);" - "i64vec2 maxInvocationsInclusiveScanNonUniformAMD(i64vec2);" - "i64vec3 maxInvocationsInclusiveScanNonUniformAMD(i64vec3);" - "i64vec4 maxInvocationsInclusiveScanNonUniformAMD(i64vec4);" - - "uint64_t maxInvocationsInclusiveScanNonUniformAMD(uint64_t);" - "u64vec2 maxInvocationsInclusiveScanNonUniformAMD(u64vec2);" - "u64vec3 maxInvocationsInclusiveScanNonUniformAMD(u64vec3);" - "u64vec4 maxInvocationsInclusiveScanNonUniformAMD(u64vec4);" - - "float16_t maxInvocationsInclusiveScanNonUniformAMD(float16_t);" - "f16vec2 maxInvocationsInclusiveScanNonUniformAMD(f16vec2);" - "f16vec3 maxInvocationsInclusiveScanNonUniformAMD(f16vec3);" - "f16vec4 maxInvocationsInclusiveScanNonUniformAMD(f16vec4);" - - "int16_t maxInvocationsInclusiveScanNonUniformAMD(int16_t);" - "i16vec2 maxInvocationsInclusiveScanNonUniformAMD(i16vec2);" - "i16vec3 maxInvocationsInclusiveScanNonUniformAMD(i16vec3);" - "i16vec4 maxInvocationsInclusiveScanNonUniformAMD(i16vec4);" - - "uint16_t maxInvocationsInclusiveScanNonUniformAMD(uint16_t);" - "u16vec2 maxInvocationsInclusiveScanNonUniformAMD(u16vec2);" - "u16vec3 maxInvocationsInclusiveScanNonUniformAMD(u16vec3);" - "u16vec4 maxInvocationsInclusiveScanNonUniformAMD(u16vec4);" - - "float maxInvocationsExclusiveScanNonUniformAMD(float);" - "vec2 maxInvocationsExclusiveScanNonUniformAMD(vec2);" - "vec3 maxInvocationsExclusiveScanNonUniformAMD(vec3);" - "vec4 maxInvocationsExclusiveScanNonUniformAMD(vec4);" - - "int maxInvocationsExclusiveScanNonUniformAMD(int);" - "ivec2 maxInvocationsExclusiveScanNonUniformAMD(ivec2);" - "ivec3 maxInvocationsExclusiveScanNonUniformAMD(ivec3);" - "ivec4 maxInvocationsExclusiveScanNonUniformAMD(ivec4);" - - "uint maxInvocationsExclusiveScanNonUniformAMD(uint);" - "uvec2 maxInvocationsExclusiveScanNonUniformAMD(uvec2);" - "uvec3 maxInvocationsExclusiveScanNonUniformAMD(uvec3);" - "uvec4 maxInvocationsExclusiveScanNonUniformAMD(uvec4);" - - "double maxInvocationsExclusiveScanNonUniformAMD(double);" - "dvec2 maxInvocationsExclusiveScanNonUniformAMD(dvec2);" - "dvec3 maxInvocationsExclusiveScanNonUniformAMD(dvec3);" - "dvec4 maxInvocationsExclusiveScanNonUniformAMD(dvec4);" - - "int64_t maxInvocationsExclusiveScanNonUniformAMD(int64_t);" - "i64vec2 maxInvocationsExclusiveScanNonUniformAMD(i64vec2);" - "i64vec3 maxInvocationsExclusiveScanNonUniformAMD(i64vec3);" - "i64vec4 maxInvocationsExclusiveScanNonUniformAMD(i64vec4);" - - "uint64_t maxInvocationsExclusiveScanNonUniformAMD(uint64_t);" - "u64vec2 maxInvocationsExclusiveScanNonUniformAMD(u64vec2);" - "u64vec3 maxInvocationsExclusiveScanNonUniformAMD(u64vec3);" - "u64vec4 maxInvocationsExclusiveScanNonUniformAMD(u64vec4);" - - "float16_t maxInvocationsExclusiveScanNonUniformAMD(float16_t);" - "f16vec2 maxInvocationsExclusiveScanNonUniformAMD(f16vec2);" - "f16vec3 maxInvocationsExclusiveScanNonUniformAMD(f16vec3);" - "f16vec4 maxInvocationsExclusiveScanNonUniformAMD(f16vec4);" - - "int16_t maxInvocationsExclusiveScanNonUniformAMD(int16_t);" - "i16vec2 maxInvocationsExclusiveScanNonUniformAMD(i16vec2);" - "i16vec3 maxInvocationsExclusiveScanNonUniformAMD(i16vec3);" - "i16vec4 maxInvocationsExclusiveScanNonUniformAMD(i16vec4);" - - "uint16_t maxInvocationsExclusiveScanNonUniformAMD(uint16_t);" - "u16vec2 maxInvocationsExclusiveScanNonUniformAMD(u16vec2);" - "u16vec3 maxInvocationsExclusiveScanNonUniformAMD(u16vec3);" - "u16vec4 maxInvocationsExclusiveScanNonUniformAMD(u16vec4);" - "float addInvocationsNonUniformAMD(float);" "vec2 addInvocationsNonUniformAMD(vec2);" "vec3 addInvocationsNonUniformAMD(vec3);" @@ -3448,126 +1663,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 addInvocationsNonUniformAMD(uvec3);" "uvec4 addInvocationsNonUniformAMD(uvec4);" - "double addInvocationsNonUniformAMD(double);" - "dvec2 addInvocationsNonUniformAMD(dvec2);" - "dvec3 addInvocationsNonUniformAMD(dvec3);" - "dvec4 addInvocationsNonUniformAMD(dvec4);" - - "int64_t addInvocationsNonUniformAMD(int64_t);" - "i64vec2 addInvocationsNonUniformAMD(i64vec2);" - "i64vec3 addInvocationsNonUniformAMD(i64vec3);" - "i64vec4 addInvocationsNonUniformAMD(i64vec4);" - - "uint64_t addInvocationsNonUniformAMD(uint64_t);" - "u64vec2 addInvocationsNonUniformAMD(u64vec2);" - "u64vec3 addInvocationsNonUniformAMD(u64vec3);" - "u64vec4 addInvocationsNonUniformAMD(u64vec4);" - - "float16_t addInvocationsNonUniformAMD(float16_t);" - "f16vec2 addInvocationsNonUniformAMD(f16vec2);" - "f16vec3 addInvocationsNonUniformAMD(f16vec3);" - "f16vec4 addInvocationsNonUniformAMD(f16vec4);" - - "int16_t addInvocationsNonUniformAMD(int16_t);" - "i16vec2 addInvocationsNonUniformAMD(i16vec2);" - "i16vec3 addInvocationsNonUniformAMD(i16vec3);" - "i16vec4 addInvocationsNonUniformAMD(i16vec4);" - - "uint16_t addInvocationsNonUniformAMD(uint16_t);" - "u16vec2 addInvocationsNonUniformAMD(u16vec2);" - "u16vec3 addInvocationsNonUniformAMD(u16vec3);" - "u16vec4 addInvocationsNonUniformAMD(u16vec4);" - - "float addInvocationsInclusiveScanNonUniformAMD(float);" - "vec2 addInvocationsInclusiveScanNonUniformAMD(vec2);" - "vec3 addInvocationsInclusiveScanNonUniformAMD(vec3);" - "vec4 addInvocationsInclusiveScanNonUniformAMD(vec4);" - - "int addInvocationsInclusiveScanNonUniformAMD(int);" - "ivec2 addInvocationsInclusiveScanNonUniformAMD(ivec2);" - "ivec3 addInvocationsInclusiveScanNonUniformAMD(ivec3);" - "ivec4 addInvocationsInclusiveScanNonUniformAMD(ivec4);" - - "uint addInvocationsInclusiveScanNonUniformAMD(uint);" - "uvec2 addInvocationsInclusiveScanNonUniformAMD(uvec2);" - "uvec3 addInvocationsInclusiveScanNonUniformAMD(uvec3);" - "uvec4 addInvocationsInclusiveScanNonUniformAMD(uvec4);" - - "double addInvocationsInclusiveScanNonUniformAMD(double);" - "dvec2 addInvocationsInclusiveScanNonUniformAMD(dvec2);" - "dvec3 addInvocationsInclusiveScanNonUniformAMD(dvec3);" - "dvec4 addInvocationsInclusiveScanNonUniformAMD(dvec4);" - - "int64_t addInvocationsInclusiveScanNonUniformAMD(int64_t);" - "i64vec2 addInvocationsInclusiveScanNonUniformAMD(i64vec2);" - "i64vec3 addInvocationsInclusiveScanNonUniformAMD(i64vec3);" - "i64vec4 addInvocationsInclusiveScanNonUniformAMD(i64vec4);" - - "uint64_t addInvocationsInclusiveScanNonUniformAMD(uint64_t);" - "u64vec2 addInvocationsInclusiveScanNonUniformAMD(u64vec2);" - "u64vec3 addInvocationsInclusiveScanNonUniformAMD(u64vec3);" - "u64vec4 addInvocationsInclusiveScanNonUniformAMD(u64vec4);" - - "float16_t addInvocationsInclusiveScanNonUniformAMD(float16_t);" - "f16vec2 addInvocationsInclusiveScanNonUniformAMD(f16vec2);" - "f16vec3 addInvocationsInclusiveScanNonUniformAMD(f16vec3);" - "f16vec4 addInvocationsInclusiveScanNonUniformAMD(f16vec4);" - - "int16_t addInvocationsInclusiveScanNonUniformAMD(int16_t);" - "i16vec2 addInvocationsInclusiveScanNonUniformAMD(i16vec2);" - "i16vec3 addInvocationsInclusiveScanNonUniformAMD(i16vec3);" - "i16vec4 addInvocationsInclusiveScanNonUniformAMD(i16vec4);" - - "uint16_t addInvocationsInclusiveScanNonUniformAMD(uint16_t);" - "u16vec2 addInvocationsInclusiveScanNonUniformAMD(u16vec2);" - "u16vec3 addInvocationsInclusiveScanNonUniformAMD(u16vec3);" - "u16vec4 addInvocationsInclusiveScanNonUniformAMD(u16vec4);" - - "float addInvocationsExclusiveScanNonUniformAMD(float);" - "vec2 addInvocationsExclusiveScanNonUniformAMD(vec2);" - "vec3 addInvocationsExclusiveScanNonUniformAMD(vec3);" - "vec4 addInvocationsExclusiveScanNonUniformAMD(vec4);" - - "int addInvocationsExclusiveScanNonUniformAMD(int);" - "ivec2 addInvocationsExclusiveScanNonUniformAMD(ivec2);" - "ivec3 addInvocationsExclusiveScanNonUniformAMD(ivec3);" - "ivec4 addInvocationsExclusiveScanNonUniformAMD(ivec4);" - - "uint addInvocationsExclusiveScanNonUniformAMD(uint);" - "uvec2 addInvocationsExclusiveScanNonUniformAMD(uvec2);" - "uvec3 addInvocationsExclusiveScanNonUniformAMD(uvec3);" - "uvec4 addInvocationsExclusiveScanNonUniformAMD(uvec4);" - - "double addInvocationsExclusiveScanNonUniformAMD(double);" - "dvec2 addInvocationsExclusiveScanNonUniformAMD(dvec2);" - "dvec3 addInvocationsExclusiveScanNonUniformAMD(dvec3);" - "dvec4 addInvocationsExclusiveScanNonUniformAMD(dvec4);" - - "int64_t addInvocationsExclusiveScanNonUniformAMD(int64_t);" - "i64vec2 addInvocationsExclusiveScanNonUniformAMD(i64vec2);" - "i64vec3 addInvocationsExclusiveScanNonUniformAMD(i64vec3);" - "i64vec4 addInvocationsExclusiveScanNonUniformAMD(i64vec4);" - - "uint64_t addInvocationsExclusiveScanNonUniformAMD(uint64_t);" - "u64vec2 addInvocationsExclusiveScanNonUniformAMD(u64vec2);" - "u64vec3 addInvocationsExclusiveScanNonUniformAMD(u64vec3);" - "u64vec4 addInvocationsExclusiveScanNonUniformAMD(u64vec4);" - - "float16_t addInvocationsExclusiveScanNonUniformAMD(float16_t);" - "f16vec2 addInvocationsExclusiveScanNonUniformAMD(f16vec2);" - "f16vec3 addInvocationsExclusiveScanNonUniformAMD(f16vec3);" - "f16vec4 addInvocationsExclusiveScanNonUniformAMD(f16vec4);" - - "int16_t addInvocationsExclusiveScanNonUniformAMD(int16_t);" - "i16vec2 addInvocationsExclusiveScanNonUniformAMD(i16vec2);" - "i16vec3 addInvocationsExclusiveScanNonUniformAMD(i16vec3);" - "i16vec4 addInvocationsExclusiveScanNonUniformAMD(i16vec4);" - - "uint16_t addInvocationsExclusiveScanNonUniformAMD(uint16_t);" - "u16vec2 addInvocationsExclusiveScanNonUniformAMD(u16vec2);" - "u16vec3 addInvocationsExclusiveScanNonUniformAMD(u16vec3);" - "u16vec4 addInvocationsExclusiveScanNonUniformAMD(u16vec4);" - "float swizzleInvocationsAMD(float, uvec4);" "vec2 swizzleInvocationsAMD(vec2, uvec4);" "vec3 swizzleInvocationsAMD(vec3, uvec4);" @@ -3622,37 +1717,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (profile != EEsProfile && version >= 450) { commonBuiltins.append( "float cubeFaceIndexAMD(vec3);" - "vec2 cubeFaceCoordAMD(vec3);" + "vec2 cubeFaceCoordAMD(vec3);" "uint64_t timeAMD();" "\n"); } - // GL_AMD_shader_fragment_mask - if (profile != EEsProfile && version >= 450) { - commonBuiltins.append( - "uint fragmentMaskFetchAMD(sampler2DMS, ivec2);" - "uint fragmentMaskFetchAMD(isampler2DMS, ivec2);" - "uint fragmentMaskFetchAMD(usampler2DMS, ivec2);" - - "uint fragmentMaskFetchAMD(sampler2DMSArray, ivec3);" - "uint fragmentMaskFetchAMD(isampler2DMSArray, ivec3);" - "uint fragmentMaskFetchAMD(usampler2DMSArray, ivec3);" - - "vec4 fragmentFetchAMD(sampler2DMS, ivec2, uint);" - "ivec4 fragmentFetchAMD(isampler2DMS, ivec2, uint);" - "uvec4 fragmentFetchAMD(usampler2DMS, ivec2, uint);" - - "vec4 fragmentFetchAMD(sampler2DMSArray, ivec3, uint);" - "ivec4 fragmentFetchAMD(isampler2DMSArray, ivec3, uint);" - "uvec4 fragmentFetchAMD(usampler2DMSArray, ivec3, uint);" - - "\n"); - } - -#endif // AMD_EXTENSIONS - - // GL_AMD_gpu_shader_half_float/Explicit types + // GL_AMD_gpu_shader_half_float if (profile != EEsProfile && version >= 450) { commonBuiltins.append( "float16_t radians(float16_t);" @@ -3999,575 +2070,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - - // Explicit types - if (profile != EEsProfile && version >= 450) { - commonBuiltins.append( - "int8_t abs(int8_t);" - "i8vec2 abs(i8vec2);" - "i8vec3 abs(i8vec3);" - "i8vec4 abs(i8vec4);" - - "int8_t sign(int8_t);" - "i8vec2 sign(i8vec2);" - "i8vec3 sign(i8vec3);" - "i8vec4 sign(i8vec4);" - - "int8_t min(int8_t x, int8_t y);" - "i8vec2 min(i8vec2 x, int8_t y);" - "i8vec3 min(i8vec3 x, int8_t y);" - "i8vec4 min(i8vec4 x, int8_t y);" - "i8vec2 min(i8vec2 x, i8vec2 y);" - "i8vec3 min(i8vec3 x, i8vec3 y);" - "i8vec4 min(i8vec4 x, i8vec4 y);" - - "uint8_t min(uint8_t x, uint8_t y);" - "u8vec2 min(u8vec2 x, uint8_t y);" - "u8vec3 min(u8vec3 x, uint8_t y);" - "u8vec4 min(u8vec4 x, uint8_t y);" - "u8vec2 min(u8vec2 x, u8vec2 y);" - "u8vec3 min(u8vec3 x, u8vec3 y);" - "u8vec4 min(u8vec4 x, u8vec4 y);" - - "int8_t max(int8_t x, int8_t y);" - "i8vec2 max(i8vec2 x, int8_t y);" - "i8vec3 max(i8vec3 x, int8_t y);" - "i8vec4 max(i8vec4 x, int8_t y);" - "i8vec2 max(i8vec2 x, i8vec2 y);" - "i8vec3 max(i8vec3 x, i8vec3 y);" - "i8vec4 max(i8vec4 x, i8vec4 y);" - - "uint8_t max(uint8_t x, uint8_t y);" - "u8vec2 max(u8vec2 x, uint8_t y);" - "u8vec3 max(u8vec3 x, uint8_t y);" - "u8vec4 max(u8vec4 x, uint8_t y);" - "u8vec2 max(u8vec2 x, u8vec2 y);" - "u8vec3 max(u8vec3 x, u8vec3 y);" - "u8vec4 max(u8vec4 x, u8vec4 y);" - - "int8_t clamp(int8_t x, int8_t minVal, int8_t maxVal);" - "i8vec2 clamp(i8vec2 x, int8_t minVal, int8_t maxVal);" - "i8vec3 clamp(i8vec3 x, int8_t minVal, int8_t maxVal);" - "i8vec4 clamp(i8vec4 x, int8_t minVal, int8_t maxVal);" - "i8vec2 clamp(i8vec2 x, i8vec2 minVal, i8vec2 maxVal);" - "i8vec3 clamp(i8vec3 x, i8vec3 minVal, i8vec3 maxVal);" - "i8vec4 clamp(i8vec4 x, i8vec4 minVal, i8vec4 maxVal);" - - "uint8_t clamp(uint8_t x, uint8_t minVal, uint8_t maxVal);" - "u8vec2 clamp(u8vec2 x, uint8_t minVal, uint8_t maxVal);" - "u8vec3 clamp(u8vec3 x, uint8_t minVal, uint8_t maxVal);" - "u8vec4 clamp(u8vec4 x, uint8_t minVal, uint8_t maxVal);" - "u8vec2 clamp(u8vec2 x, u8vec2 minVal, u8vec2 maxVal);" - "u8vec3 clamp(u8vec3 x, u8vec3 minVal, u8vec3 maxVal);" - "u8vec4 clamp(u8vec4 x, u8vec4 minVal, u8vec4 maxVal);" - - "int8_t mix(int8_t, int8_t, bool);" - "i8vec2 mix(i8vec2, i8vec2, bvec2);" - "i8vec3 mix(i8vec3, i8vec3, bvec3);" - "i8vec4 mix(i8vec4, i8vec4, bvec4);" - "uint8_t mix(uint8_t, uint8_t, bool);" - "u8vec2 mix(u8vec2, u8vec2, bvec2);" - "u8vec3 mix(u8vec3, u8vec3, bvec3);" - "u8vec4 mix(u8vec4, u8vec4, bvec4);" - - "bvec2 lessThan(i8vec2, i8vec2);" - "bvec3 lessThan(i8vec3, i8vec3);" - "bvec4 lessThan(i8vec4, i8vec4);" - "bvec2 lessThan(u8vec2, u8vec2);" - "bvec3 lessThan(u8vec3, u8vec3);" - "bvec4 lessThan(u8vec4, u8vec4);" - - "bvec2 lessThanEqual(i8vec2, i8vec2);" - "bvec3 lessThanEqual(i8vec3, i8vec3);" - "bvec4 lessThanEqual(i8vec4, i8vec4);" - "bvec2 lessThanEqual(u8vec2, u8vec2);" - "bvec3 lessThanEqual(u8vec3, u8vec3);" - "bvec4 lessThanEqual(u8vec4, u8vec4);" - - "bvec2 greaterThan(i8vec2, i8vec2);" - "bvec3 greaterThan(i8vec3, i8vec3);" - "bvec4 greaterThan(i8vec4, i8vec4);" - "bvec2 greaterThan(u8vec2, u8vec2);" - "bvec3 greaterThan(u8vec3, u8vec3);" - "bvec4 greaterThan(u8vec4, u8vec4);" - - "bvec2 greaterThanEqual(i8vec2, i8vec2);" - "bvec3 greaterThanEqual(i8vec3, i8vec3);" - "bvec4 greaterThanEqual(i8vec4, i8vec4);" - "bvec2 greaterThanEqual(u8vec2, u8vec2);" - "bvec3 greaterThanEqual(u8vec3, u8vec3);" - "bvec4 greaterThanEqual(u8vec4, u8vec4);" - - "bvec2 equal(i8vec2, i8vec2);" - "bvec3 equal(i8vec3, i8vec3);" - "bvec4 equal(i8vec4, i8vec4);" - "bvec2 equal(u8vec2, u8vec2);" - "bvec3 equal(u8vec3, u8vec3);" - "bvec4 equal(u8vec4, u8vec4);" - - "bvec2 notEqual(i8vec2, i8vec2);" - "bvec3 notEqual(i8vec3, i8vec3);" - "bvec4 notEqual(i8vec4, i8vec4);" - "bvec2 notEqual(u8vec2, u8vec2);" - "bvec3 notEqual(u8vec3, u8vec3);" - "bvec4 notEqual(u8vec4, u8vec4);" - - " int8_t bitfieldExtract( int8_t, int8_t, int8_t);" - "i8vec2 bitfieldExtract(i8vec2, int8_t, int8_t);" - "i8vec3 bitfieldExtract(i8vec3, int8_t, int8_t);" - "i8vec4 bitfieldExtract(i8vec4, int8_t, int8_t);" - - " uint8_t bitfieldExtract( uint8_t, int8_t, int8_t);" - "u8vec2 bitfieldExtract(u8vec2, int8_t, int8_t);" - "u8vec3 bitfieldExtract(u8vec3, int8_t, int8_t);" - "u8vec4 bitfieldExtract(u8vec4, int8_t, int8_t);" - - " int8_t bitfieldInsert( int8_t base, int8_t, int8_t, int8_t);" - "i8vec2 bitfieldInsert(i8vec2 base, i8vec2, int8_t, int8_t);" - "i8vec3 bitfieldInsert(i8vec3 base, i8vec3, int8_t, int8_t);" - "i8vec4 bitfieldInsert(i8vec4 base, i8vec4, int8_t, int8_t);" - - " uint8_t bitfieldInsert( uint8_t base, uint8_t, int8_t, int8_t);" - "u8vec2 bitfieldInsert(u8vec2 base, u8vec2, int8_t, int8_t);" - "u8vec3 bitfieldInsert(u8vec3 base, u8vec3, int8_t, int8_t);" - "u8vec4 bitfieldInsert(u8vec4 base, u8vec4, int8_t, int8_t);" - - " int8_t bitCount( int8_t);" - "i8vec2 bitCount(i8vec2);" - "i8vec3 bitCount(i8vec3);" - "i8vec4 bitCount(i8vec4);" - - " int8_t bitCount( uint8_t);" - "i8vec2 bitCount(u8vec2);" - "i8vec3 bitCount(u8vec3);" - "i8vec4 bitCount(u8vec4);" - - " int8_t findLSB( int8_t);" - "i8vec2 findLSB(i8vec2);" - "i8vec3 findLSB(i8vec3);" - "i8vec4 findLSB(i8vec4);" - - " int8_t findLSB( uint8_t);" - "i8vec2 findLSB(u8vec2);" - "i8vec3 findLSB(u8vec3);" - "i8vec4 findLSB(u8vec4);" - - " int8_t findMSB( int8_t);" - "i8vec2 findMSB(i8vec2);" - "i8vec3 findMSB(i8vec3);" - "i8vec4 findMSB(i8vec4);" - - " int8_t findMSB( uint8_t);" - "i8vec2 findMSB(u8vec2);" - "i8vec3 findMSB(u8vec3);" - "i8vec4 findMSB(u8vec4);" - - "int16_t abs(int16_t);" - "i16vec2 abs(i16vec2);" - "i16vec3 abs(i16vec3);" - "i16vec4 abs(i16vec4);" - - "int16_t sign(int16_t);" - "i16vec2 sign(i16vec2);" - "i16vec3 sign(i16vec3);" - "i16vec4 sign(i16vec4);" - - "int16_t min(int16_t x, int16_t y);" - "i16vec2 min(i16vec2 x, int16_t y);" - "i16vec3 min(i16vec3 x, int16_t y);" - "i16vec4 min(i16vec4 x, int16_t y);" - "i16vec2 min(i16vec2 x, i16vec2 y);" - "i16vec3 min(i16vec3 x, i16vec3 y);" - "i16vec4 min(i16vec4 x, i16vec4 y);" - - "uint16_t min(uint16_t x, uint16_t y);" - "u16vec2 min(u16vec2 x, uint16_t y);" - "u16vec3 min(u16vec3 x, uint16_t y);" - "u16vec4 min(u16vec4 x, uint16_t y);" - "u16vec2 min(u16vec2 x, u16vec2 y);" - "u16vec3 min(u16vec3 x, u16vec3 y);" - "u16vec4 min(u16vec4 x, u16vec4 y);" - - "int16_t max(int16_t x, int16_t y);" - "i16vec2 max(i16vec2 x, int16_t y);" - "i16vec3 max(i16vec3 x, int16_t y);" - "i16vec4 max(i16vec4 x, int16_t y);" - "i16vec2 max(i16vec2 x, i16vec2 y);" - "i16vec3 max(i16vec3 x, i16vec3 y);" - "i16vec4 max(i16vec4 x, i16vec4 y);" - - "uint16_t max(uint16_t x, uint16_t y);" - "u16vec2 max(u16vec2 x, uint16_t y);" - "u16vec3 max(u16vec3 x, uint16_t y);" - "u16vec4 max(u16vec4 x, uint16_t y);" - "u16vec2 max(u16vec2 x, u16vec2 y);" - "u16vec3 max(u16vec3 x, u16vec3 y);" - "u16vec4 max(u16vec4 x, u16vec4 y);" - - "int16_t clamp(int16_t x, int16_t minVal, int16_t maxVal);" - "i16vec2 clamp(i16vec2 x, int16_t minVal, int16_t maxVal);" - "i16vec3 clamp(i16vec3 x, int16_t minVal, int16_t maxVal);" - "i16vec4 clamp(i16vec4 x, int16_t minVal, int16_t maxVal);" - "i16vec2 clamp(i16vec2 x, i16vec2 minVal, i16vec2 maxVal);" - "i16vec3 clamp(i16vec3 x, i16vec3 minVal, i16vec3 maxVal);" - "i16vec4 clamp(i16vec4 x, i16vec4 minVal, i16vec4 maxVal);" - - "uint16_t clamp(uint16_t x, uint16_t minVal, uint16_t maxVal);" - "u16vec2 clamp(u16vec2 x, uint16_t minVal, uint16_t maxVal);" - "u16vec3 clamp(u16vec3 x, uint16_t minVal, uint16_t maxVal);" - "u16vec4 clamp(u16vec4 x, uint16_t minVal, uint16_t maxVal);" - "u16vec2 clamp(u16vec2 x, u16vec2 minVal, u16vec2 maxVal);" - "u16vec3 clamp(u16vec3 x, u16vec3 minVal, u16vec3 maxVal);" - "u16vec4 clamp(u16vec4 x, u16vec4 minVal, u16vec4 maxVal);" - - "int16_t mix(int16_t, int16_t, bool);" - "i16vec2 mix(i16vec2, i16vec2, bvec2);" - "i16vec3 mix(i16vec3, i16vec3, bvec3);" - "i16vec4 mix(i16vec4, i16vec4, bvec4);" - "uint16_t mix(uint16_t, uint16_t, bool);" - "u16vec2 mix(u16vec2, u16vec2, bvec2);" - "u16vec3 mix(u16vec3, u16vec3, bvec3);" - "u16vec4 mix(u16vec4, u16vec4, bvec4);" - - "float16_t frexp(float16_t, out int16_t);" - "f16vec2 frexp(f16vec2, out i16vec2);" - "f16vec3 frexp(f16vec3, out i16vec3);" - "f16vec4 frexp(f16vec4, out i16vec4);" - - "float16_t ldexp(float16_t, int16_t);" - "f16vec2 ldexp(f16vec2, i16vec2);" - "f16vec3 ldexp(f16vec3, i16vec3);" - "f16vec4 ldexp(f16vec4, i16vec4);" - - "int16_t halfBitsToInt16(float16_t);" - "i16vec2 halfBitsToInt16(f16vec2);" - "i16vec3 halhBitsToInt16(f16vec3);" - "i16vec4 halfBitsToInt16(f16vec4);" - - "uint16_t halfBitsToUint16(float16_t);" - "u16vec2 halfBitsToUint16(f16vec2);" - "u16vec3 halfBitsToUint16(f16vec3);" - "u16vec4 halfBitsToUint16(f16vec4);" - - "int16_t float16BitsToInt16(float16_t);" - "i16vec2 float16BitsToInt16(f16vec2);" - "i16vec3 float16BitsToInt16(f16vec3);" - "i16vec4 float16BitsToInt16(f16vec4);" - - "uint16_t float16BitsToUint16(float16_t);" - "u16vec2 float16BitsToUint16(f16vec2);" - "u16vec3 float16BitsToUint16(f16vec3);" - "u16vec4 float16BitsToUint16(f16vec4);" - - "float16_t int16BitsToFloat16(int16_t);" - "f16vec2 int16BitsToFloat16(i16vec2);" - "f16vec3 int16BitsToFloat16(i16vec3);" - "f16vec4 int16BitsToFloat16(i16vec4);" - - "float16_t uint16BitsToFloat16(uint16_t);" - "f16vec2 uint16BitsToFloat16(u16vec2);" - "f16vec3 uint16BitsToFloat16(u16vec3);" - "f16vec4 uint16BitsToFloat16(u16vec4);" - - "float16_t int16BitsToHalf(int16_t);" - "f16vec2 int16BitsToHalf(i16vec2);" - "f16vec3 int16BitsToHalf(i16vec3);" - "f16vec4 int16BitsToHalf(i16vec4);" - - "float16_t uint16BitsToHalf(uint16_t);" - "f16vec2 uint16BitsToHalf(u16vec2);" - "f16vec3 uint16BitsToHalf(u16vec3);" - "f16vec4 uint16BitsToHalf(u16vec4);" - - "int packInt2x16(i16vec2);" - "uint packUint2x16(u16vec2);" - "int64_t packInt4x16(i16vec4);" - "uint64_t packUint4x16(u16vec4);" - "i16vec2 unpackInt2x16(int);" - "u16vec2 unpackUint2x16(uint);" - "i16vec4 unpackInt4x16(int64_t);" - "u16vec4 unpackUint4x16(uint64_t);" - - "bvec2 lessThan(i16vec2, i16vec2);" - "bvec3 lessThan(i16vec3, i16vec3);" - "bvec4 lessThan(i16vec4, i16vec4);" - "bvec2 lessThan(u16vec2, u16vec2);" - "bvec3 lessThan(u16vec3, u16vec3);" - "bvec4 lessThan(u16vec4, u16vec4);" - - "bvec2 lessThanEqual(i16vec2, i16vec2);" - "bvec3 lessThanEqual(i16vec3, i16vec3);" - "bvec4 lessThanEqual(i16vec4, i16vec4);" - "bvec2 lessThanEqual(u16vec2, u16vec2);" - "bvec3 lessThanEqual(u16vec3, u16vec3);" - "bvec4 lessThanEqual(u16vec4, u16vec4);" - - "bvec2 greaterThan(i16vec2, i16vec2);" - "bvec3 greaterThan(i16vec3, i16vec3);" - "bvec4 greaterThan(i16vec4, i16vec4);" - "bvec2 greaterThan(u16vec2, u16vec2);" - "bvec3 greaterThan(u16vec3, u16vec3);" - "bvec4 greaterThan(u16vec4, u16vec4);" - - "bvec2 greaterThanEqual(i16vec2, i16vec2);" - "bvec3 greaterThanEqual(i16vec3, i16vec3);" - "bvec4 greaterThanEqual(i16vec4, i16vec4);" - "bvec2 greaterThanEqual(u16vec2, u16vec2);" - "bvec3 greaterThanEqual(u16vec3, u16vec3);" - "bvec4 greaterThanEqual(u16vec4, u16vec4);" - - "bvec2 equal(i16vec2, i16vec2);" - "bvec3 equal(i16vec3, i16vec3);" - "bvec4 equal(i16vec4, i16vec4);" - "bvec2 equal(u16vec2, u16vec2);" - "bvec3 equal(u16vec3, u16vec3);" - "bvec4 equal(u16vec4, u16vec4);" - - "bvec2 notEqual(i16vec2, i16vec2);" - "bvec3 notEqual(i16vec3, i16vec3);" - "bvec4 notEqual(i16vec4, i16vec4);" - "bvec2 notEqual(u16vec2, u16vec2);" - "bvec3 notEqual(u16vec3, u16vec3);" - "bvec4 notEqual(u16vec4, u16vec4);" - - " int16_t bitfieldExtract( int16_t, int16_t, int16_t);" - "i16vec2 bitfieldExtract(i16vec2, int16_t, int16_t);" - "i16vec3 bitfieldExtract(i16vec3, int16_t, int16_t);" - "i16vec4 bitfieldExtract(i16vec4, int16_t, int16_t);" - - " uint16_t bitfieldExtract( uint16_t, int16_t, int16_t);" - "u16vec2 bitfieldExtract(u16vec2, int16_t, int16_t);" - "u16vec3 bitfieldExtract(u16vec3, int16_t, int16_t);" - "u16vec4 bitfieldExtract(u16vec4, int16_t, int16_t);" - - " int16_t bitfieldInsert( int16_t base, int16_t, int16_t, int16_t);" - "i16vec2 bitfieldInsert(i16vec2 base, i16vec2, int16_t, int16_t);" - "i16vec3 bitfieldInsert(i16vec3 base, i16vec3, int16_t, int16_t);" - "i16vec4 bitfieldInsert(i16vec4 base, i16vec4, int16_t, int16_t);" - - " uint16_t bitfieldInsert( uint16_t base, uint16_t, int16_t, int16_t);" - "u16vec2 bitfieldInsert(u16vec2 base, u16vec2, int16_t, int16_t);" - "u16vec3 bitfieldInsert(u16vec3 base, u16vec3, int16_t, int16_t);" - "u16vec4 bitfieldInsert(u16vec4 base, u16vec4, int16_t, int16_t);" - - " int16_t bitCount( int16_t);" - "i16vec2 bitCount(i16vec2);" - "i16vec3 bitCount(i16vec3);" - "i16vec4 bitCount(i16vec4);" - - " int16_t bitCount( uint16_t);" - "i16vec2 bitCount(u16vec2);" - "i16vec3 bitCount(u16vec3);" - "i16vec4 bitCount(u16vec4);" - - " int16_t findLSB( int16_t);" - "i16vec2 findLSB(i16vec2);" - "i16vec3 findLSB(i16vec3);" - "i16vec4 findLSB(i16vec4);" - - " int16_t findLSB( uint16_t);" - "i16vec2 findLSB(u16vec2);" - "i16vec3 findLSB(u16vec3);" - "i16vec4 findLSB(u16vec4);" - - " int16_t findMSB( int16_t);" - "i16vec2 findMSB(i16vec2);" - "i16vec3 findMSB(i16vec3);" - "i16vec4 findMSB(i16vec4);" - - " int16_t findMSB( uint16_t);" - "i16vec2 findMSB(u16vec2);" - "i16vec3 findMSB(u16vec3);" - "i16vec4 findMSB(u16vec4);" - - "int16_t pack16(i8vec2);" - "uint16_t pack16(u8vec2);" - "int32_t pack32(i8vec4);" - "uint32_t pack32(u8vec4);" - "int32_t pack32(i16vec2);" - "uint32_t pack32(u16vec2);" - "int64_t pack64(i16vec4);" - "uint64_t pack64(u16vec4);" - "int64_t pack64(i32vec2);" - "uint64_t pack64(u32vec2);" - - "i8vec2 unpack8(int16_t);" - "u8vec2 unpack8(uint16_t);" - "i8vec4 unpack8(int32_t);" - "u8vec4 unpack8(uint32_t);" - "i16vec2 unpack16(int32_t);" - "u16vec2 unpack16(uint32_t);" - "i16vec4 unpack16(int64_t);" - "u16vec4 unpack16(uint64_t);" - "i32vec2 unpack32(int64_t);" - "u32vec2 unpack32(uint64_t);" - - "float64_t radians(float64_t);" - "f64vec2 radians(f64vec2);" - "f64vec3 radians(f64vec3);" - "f64vec4 radians(f64vec4);" - - "float64_t degrees(float64_t);" - "f64vec2 degrees(f64vec2);" - "f64vec3 degrees(f64vec3);" - "f64vec4 degrees(f64vec4);" - - "float64_t sin(float64_t);" - "f64vec2 sin(f64vec2);" - "f64vec3 sin(f64vec3);" - "f64vec4 sin(f64vec4);" - - "float64_t cos(float64_t);" - "f64vec2 cos(f64vec2);" - "f64vec3 cos(f64vec3);" - "f64vec4 cos(f64vec4);" - - "float64_t tan(float64_t);" - "f64vec2 tan(f64vec2);" - "f64vec3 tan(f64vec3);" - "f64vec4 tan(f64vec4);" - - "float64_t asin(float64_t);" - "f64vec2 asin(f64vec2);" - "f64vec3 asin(f64vec3);" - "f64vec4 asin(f64vec4);" - - "float64_t acos(float64_t);" - "f64vec2 acos(f64vec2);" - "f64vec3 acos(f64vec3);" - "f64vec4 acos(f64vec4);" - - "float64_t atan(float64_t, float64_t);" - "f64vec2 atan(f64vec2, f64vec2);" - "f64vec3 atan(f64vec3, f64vec3);" - "f64vec4 atan(f64vec4, f64vec4);" - - "float64_t atan(float64_t);" - "f64vec2 atan(f64vec2);" - "f64vec3 atan(f64vec3);" - "f64vec4 atan(f64vec4);" - - "float64_t sinh(float64_t);" - "f64vec2 sinh(f64vec2);" - "f64vec3 sinh(f64vec3);" - "f64vec4 sinh(f64vec4);" - - "float64_t cosh(float64_t);" - "f64vec2 cosh(f64vec2);" - "f64vec3 cosh(f64vec3);" - "f64vec4 cosh(f64vec4);" - - "float64_t tanh(float64_t);" - "f64vec2 tanh(f64vec2);" - "f64vec3 tanh(f64vec3);" - "f64vec4 tanh(f64vec4);" - - "float64_t asinh(float64_t);" - "f64vec2 asinh(f64vec2);" - "f64vec3 asinh(f64vec3);" - "f64vec4 asinh(f64vec4);" - - "float64_t acosh(float64_t);" - "f64vec2 acosh(f64vec2);" - "f64vec3 acosh(f64vec3);" - "f64vec4 acosh(f64vec4);" - - "float64_t atanh(float64_t);" - "f64vec2 atanh(f64vec2);" - "f64vec3 atanh(f64vec3);" - "f64vec4 atanh(f64vec4);" - - "float64_t pow(float64_t, float64_t);" - "f64vec2 pow(f64vec2, f64vec2);" - "f64vec3 pow(f64vec3, f64vec3);" - "f64vec4 pow(f64vec4, f64vec4);" - - "float64_t exp(float64_t);" - "f64vec2 exp(f64vec2);" - "f64vec3 exp(f64vec3);" - "f64vec4 exp(f64vec4);" - - "float64_t log(float64_t);" - "f64vec2 log(f64vec2);" - "f64vec3 log(f64vec3);" - "f64vec4 log(f64vec4);" - - "float64_t exp2(float64_t);" - "f64vec2 exp2(f64vec2);" - "f64vec3 exp2(f64vec3);" - "f64vec4 exp2(f64vec4);" - - "float64_t log2(float64_t);" - "f64vec2 log2(f64vec2);" - "f64vec3 log2(f64vec3);" - "f64vec4 log2(f64vec4);" - "\n"); - } - if (profile != EEsProfile && version >= 450) { - stageBuiltins[EShLangFragment].append( - "float64_t dFdx(float64_t);" - "f64vec2 dFdx(f64vec2);" - "f64vec3 dFdx(f64vec3);" - "f64vec4 dFdx(f64vec4);" - - "float64_t dFdy(float64_t);" - "f64vec2 dFdy(f64vec2);" - "f64vec3 dFdy(f64vec3);" - "f64vec4 dFdy(f64vec4);" - - "float64_t dFdxFine(float64_t);" - "f64vec2 dFdxFine(f64vec2);" - "f64vec3 dFdxFine(f64vec3);" - "f64vec4 dFdxFine(f64vec4);" - - "float64_t dFdyFine(float64_t);" - "f64vec2 dFdyFine(f64vec2);" - "f64vec3 dFdyFine(f64vec3);" - "f64vec4 dFdyFine(f64vec4);" - - "float64_t dFdxCoarse(float64_t);" - "f64vec2 dFdxCoarse(f64vec2);" - "f64vec3 dFdxCoarse(f64vec3);" - "f64vec4 dFdxCoarse(f64vec4);" - - "float64_t dFdyCoarse(float64_t);" - "f64vec2 dFdyCoarse(f64vec2);" - "f64vec3 dFdyCoarse(f64vec3);" - "f64vec4 dFdyCoarse(f64vec4);" - - "float64_t fwidth(float64_t);" - "f64vec2 fwidth(f64vec2);" - "f64vec3 fwidth(f64vec3);" - "f64vec4 fwidth(f64vec4);" - - "float64_t fwidthFine(float64_t);" - "f64vec2 fwidthFine(f64vec2);" - "f64vec3 fwidthFine(f64vec3);" - "f64vec4 fwidthFine(f64vec4);" - - "float64_t fwidthCoarse(float64_t);" - "f64vec2 fwidthCoarse(f64vec2);" - "f64vec3 fwidthCoarse(f64vec3);" - "f64vec4 fwidthCoarse(f64vec4);" - - "float64_t interpolateAtCentroid(float64_t);" - "f64vec2 interpolateAtCentroid(f64vec2);" - "f64vec3 interpolateAtCentroid(f64vec3);" - "f64vec4 interpolateAtCentroid(f64vec4);" - - "float64_t interpolateAtSample(float64_t, int);" - "f64vec2 interpolateAtSample(f64vec2, int);" - "f64vec3 interpolateAtSample(f64vec3, int);" - "f64vec4 interpolateAtSample(f64vec4, int);" - - "float64_t interpolateAtOffset(float64_t, f64vec2);" - "f64vec2 interpolateAtOffset(f64vec2, f64vec2);" - "f64vec3 interpolateAtOffset(f64vec3, f64vec2);" - "f64vec4 interpolateAtOffset(f64vec4, f64vec2);" - - "\n"); - - } +#endif //============================================================================ // @@ -4740,7 +2243,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 dFdx(vec2 p);" "vec3 dFdx(vec3 p);" "vec4 dFdx(vec4 p);" - + "float dFdy(float p);" "vec2 dFdy(vec2 p);" "vec3 dFdy(vec3 p);" @@ -4783,12 +2286,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 dFdyCoarse(vec2 p);" "vec3 dFdyCoarse(vec3 p);" "vec4 dFdyCoarse(vec4 p);" - + "float fwidthCoarse(float p);" "vec2 fwidthCoarse(vec2 p);" "vec3 fwidthCoarse(vec3 p);" "vec4 fwidthCoarse(vec4 p);" - + "\n"); } @@ -4906,20 +2409,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - - // GL_AMD_shader_fragment_mask - if (profile != EEsProfile && version >= 450 && spvVersion.vulkan > 0) { - stageBuiltins[EShLangFragment].append( - "uint fragmentMaskFetchAMD(subpassInputMS);" - "uint fragmentMaskFetchAMD(isubpassInputMS);" - "uint fragmentMaskFetchAMD(usubpassInputMS);" - - "vec4 fragmentFetchAMD(subpassInputMS, uint);" - "ivec4 fragmentFetchAMD(isubpassInputMS, uint);" - "uvec4 fragmentFetchAMD(usubpassInputMS, uint);" - - "\n"); - } #endif //============================================================================ @@ -4973,11 +2462,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uniform mat4 gl_ModelViewMatrixInverse;" "uniform mat4 gl_ProjectionMatrixInverse;" "uniform mat4 gl_ModelViewProjectionMatrixInverse;" - + "uniform mat4 gl_ModelViewMatrixTranspose;" "uniform mat4 gl_ProjectionMatrixTranspose;" "uniform mat4 gl_ModelViewProjectionMatrixTranspose;" - + "uniform mat4 gl_ModelViewMatrixInverseTranspose;" "uniform mat4 gl_ProjectionMatrixInverseTranspose;" "uniform mat4 gl_ModelViewProjectionMatrixInverseTranspose;" @@ -5035,6 +2524,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "float quadraticAttenuation;"// K2 "};" + "struct gl_LightModelParameters {" "vec4 ambient;" // Acs "};" @@ -5069,7 +2559,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "};" "uniform gl_FogParameters gl_Fog;" - + "\n"); } @@ -5094,19 +2584,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangCompute].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "\n"); - } - //============================================================================ // // Define the interface to the vertex shader. // //============================================================================ - + if (profile != EEsProfile) { if (version < 130) { stageBuiltins[EShLangVertex].append( @@ -5138,7 +2621,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in vec4 gl_MultiTexCoord5;" "in vec4 gl_MultiTexCoord6;" "in vec4 gl_MultiTexCoord7;" - "in float gl_FogCoord;" + "in float gl_FogCoord;" "\n"); } @@ -5180,7 +2663,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec4 gl_Position;" // needs qualifier fixed later "float gl_PointSize;" // needs qualifier fixed later "float gl_ClipDistance[];" - ); + ); if (IncludeLegacy(version, profile, spvVersion)) stageBuiltins[EShLangVertex].append( "vec4 gl_ClipVertex;" // needs qualifier fixed later @@ -5207,7 +2690,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangVertex].append( "int gl_InstanceID;" // needs qualifier fixed later ); - if (spvVersion.vulkan > 0 && version >= 140) + if (spvVersion.vulkan >= 100 && version >= 140) stageBuiltins[EShLangVertex].append( "in int gl_VertexIndex;" "in int gl_InstanceIndex;" @@ -5219,31 +2702,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in int gl_DrawIDARB;" ); } - if (version >= 410) { - stageBuiltins[EShLangVertex].append( - "out int gl_ViewportIndex;" - "out int gl_Layer;" - ); - } - if (version >= 460) { - stageBuiltins[EShLangVertex].append( - "in int gl_BaseVertex;" - "in int gl_BaseInstance;" - "in int gl_DrawID;" - ); - } - -#ifdef NV_EXTENSIONS - if (version >= 450) - stageBuiltins[EShLangVertex].append( - "out int gl_ViewportMask[];" // GL_NV_viewport_array2 - "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering - "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes - "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes - ); -#endif - } else { // ES profile if (version == 100) { @@ -5257,7 +2715,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in highp int gl_VertexID;" // needs qualifier fixed later "in highp int gl_InstanceID;" // needs qualifier fixed later ); - if (spvVersion.vulkan > 0) + if (spvVersion.vulkan >= 100) stageBuiltins[EShLangVertex].append( "in highp int gl_VertexIndex;" "in highp int gl_InstanceIndex;" @@ -5277,21 +2735,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV } } - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangVertex].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "in highp int gl_ViewIndex;" // GL_EXT_multiview - "\n"); - } - - if (version >= 300 /* both ES and non-ES */) { - stageBuiltins[EShLangVertex].append( - "in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2 - "\n"); - } - - //============================================================================ // // Define the interface to the geometry shader. @@ -5318,10 +2761,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (version >= 450) stageBuiltins[EShLangGeometry].append( "float gl_CullDistance[];" -#ifdef NV_EXTENSIONS - "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes -#endif ); stageBuiltins[EShLangGeometry].append( "} gl_in[];" @@ -5352,11 +2791,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "out int gl_PrimitiveID;" "out int gl_Layer;"); - if (version >= 150) - stageBuiltins[EShLangGeometry].append( - "out int gl_ViewportIndex;" - ); - if (profile == ECompatibilityProfile && version < 400) stageBuiltins[EShLangGeometry].append( "out vec4 gl_ClipVertex;" @@ -5366,18 +2800,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangGeometry].append( "in int gl_InvocationID;" ); - -#ifdef NV_EXTENSIONS - if (version >= 450) + // GL_ARB_viewport_array + if (version >= 150) stageBuiltins[EShLangGeometry].append( - "out int gl_ViewportMask[];" // GL_NV_viewport_array2 - "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering - "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes - "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes + "out int gl_ViewportIndex;" ); -#endif - stageBuiltins[EShLangGeometry].append("\n"); } else if (profile == EEsProfile && version >= 310) { stageBuiltins[EShLangGeometry].append( @@ -5400,13 +2827,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV ); } - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangGeometry].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "in highp int gl_ViewIndex;" // GL_EXT_multiview - "\n"); - } //============================================================================ // @@ -5441,13 +2861,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (version >= 450) stageBuiltins[EShLangTessControl].append( "float gl_CullDistance[];" -#ifdef NV_EXTENSIONS - "int gl_ViewportMask[];" // GL_NV_viewport_array2 - "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering - "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes - "int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes -#endif ); stageBuiltins[EShLangTessControl].append( "} gl_out[];" @@ -5455,13 +2868,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "patch out float gl_TessLevelOuter[4];" "patch out float gl_TessLevelInner[2];" "\n"); - - if (version >= 410) - stageBuiltins[EShLangTessControl].append( - "out int gl_ViewportIndex;" - "out int gl_Layer;" - "\n"); - } else { // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, // as it depends on the resource sizing of gl_MaxPatchVertices. @@ -5484,14 +2890,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangTessControl].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "in highp int gl_ViewIndex;" // GL_EXT_multiview - "\n"); - } - //============================================================================ // // Define the interface to the tessellation evaluation shader. @@ -5509,7 +2907,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "patch in float gl_TessLevelOuter[4];" "patch in float gl_TessLevelInner[2];" - + "out gl_PerVertex {" "vec4 gl_Position;" "float gl_PointSize;" @@ -5532,24 +2930,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangTessEvaluation].append( "};" "\n"); - - if (version >= 410) - stageBuiltins[EShLangTessEvaluation].append( - "out int gl_ViewportIndex;" - "out int gl_Layer;" - "\n"); - -#ifdef NV_EXTENSIONS - if (version >= 450) - stageBuiltins[EShLangTessEvaluation].append( - "out int gl_ViewportMask[];" // GL_NV_viewport_array2 - "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering - "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes - "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes - ); -#endif - } else if (profile == EEsProfile && version >= 310) { // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, // as it depends on the resource sizing of gl_MaxPatchVertices. @@ -5561,7 +2941,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "patch in highp float gl_TessLevelOuter[4];" "patch in highp float gl_TessLevelInner[2];" - + "out gl_PerVertex {" "highp vec4 gl_Position;" "highp float gl_PointSize;" @@ -5571,14 +2951,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangTessEvaluation].append( - "in highp int gl_DeviceIndex;" // GL_EXT_device_group - "in highp int gl_ViewIndex;" // GL_EXT_multiview - "\n"); - } - //============================================================================ // // Define the interface to the fragment shader. @@ -5596,10 +2968,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangFragment].append( "vec2 gl_PointCoord;" // needs qualifier fixed later ); - if (version >= 140) - stageBuiltins[EShLangFragment].append( - "out int gl_FragStencilRefARB;" - ); if (IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && version < 420)) stageBuiltins[EShLangFragment].append( "vec4 gl_FragColor;" // needs qualifier fixed later @@ -5642,18 +3010,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "flat in int gl_PrimitiveID;" ); - if (version >= 400) { + if (version >= 400) stageBuiltins[EShLangFragment].append( "flat in int gl_SampleID;" " in vec2 gl_SamplePosition;" "flat in int gl_SampleMaskIn[];" " out int gl_SampleMask[];" + "uniform int gl_NumSamples;" ); - if (spvVersion.spv == 0) - stageBuiltins[EShLangFragment].append( - "uniform int gl_NumSamples;" - ); - } if (version >= 430) stageBuiltins[EShLangFragment].append( @@ -5679,13 +3043,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in vec3 gl_BaryCoordPullModelAMD;" ); #endif - -#ifdef NV_EXTENSIONS - if (version >= 430) - stageBuiltins[EShLangFragment].append( - "in bool gl_FragFullyCoveredNV;" - ); -#endif } else { // ES profile @@ -5717,11 +3074,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV " in mediump vec2 gl_SamplePosition;" "flat in highp int gl_SampleMaskIn[];" " out highp int gl_SampleMask[];" + "uniform lowp int gl_NumSamples;" ); - if (spvVersion.spv == 0) - stageBuiltins[EShLangFragment].append( // GL_OES_sample_variables - "uniform lowp int gl_NumSamples;" - ); } stageBuiltins[EShLangFragment].append( "highp float gl_FragDepthEXT;" // GL_EXT_frag_depth @@ -5734,85 +3088,25 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV // GL_ARB_shader_ballot if (profile != EEsProfile && version >= 450) { - const char* ballotDecls = + commonBuiltins.append( "uniform uint gl_SubGroupSizeARB;" + "in uint gl_SubGroupInvocationARB;" "in uint64_t gl_SubGroupEqMaskARB;" "in uint64_t gl_SubGroupGeMaskARB;" "in uint64_t gl_SubGroupGtMaskARB;" "in uint64_t gl_SubGroupLeMaskARB;" "in uint64_t gl_SubGroupLtMaskARB;" - "\n"; - const char* fragmentBallotDecls = - "uniform uint gl_SubGroupSizeARB;" - "flat in uint gl_SubGroupInvocationARB;" - "flat in uint64_t gl_SubGroupEqMaskARB;" - "flat in uint64_t gl_SubGroupGeMaskARB;" - "flat in uint64_t gl_SubGroupGtMaskARB;" - "flat in uint64_t gl_SubGroupLeMaskARB;" - "flat in uint64_t gl_SubGroupLtMaskARB;" - "\n"; - stageBuiltins[EShLangVertex] .append(ballotDecls); - stageBuiltins[EShLangTessControl] .append(ballotDecls); - stageBuiltins[EShLangTessEvaluation].append(ballotDecls); - stageBuiltins[EShLangGeometry] .append(ballotDecls); - stageBuiltins[EShLangCompute] .append(ballotDecls); - stageBuiltins[EShLangFragment] .append(fragmentBallotDecls); - } - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - stageBuiltins[EShLangFragment].append( - "flat in highp int gl_DeviceIndex;" // GL_EXT_device_group - "flat in highp int gl_ViewIndex;" // GL_EXT_multiview "\n"); } - // GL_KHR_shader_subgroup - if (spvVersion.vulkan > 0) { - const char* ballotDecls = - "in mediump uint gl_SubgroupSize;" - "in mediump uint gl_SubgroupInvocationID;" - "in highp uvec4 gl_SubgroupEqMask;" - "in highp uvec4 gl_SubgroupGeMask;" - "in highp uvec4 gl_SubgroupGtMask;" - "in highp uvec4 gl_SubgroupLeMask;" - "in highp uvec4 gl_SubgroupLtMask;" - "\n"; - const char* fragmentBallotDecls = - "flat in mediump uint gl_SubgroupSize;" - "flat in mediump uint gl_SubgroupInvocationID;" - "flat in highp uvec4 gl_SubgroupEqMask;" - "flat in highp uvec4 gl_SubgroupGeMask;" - "flat in highp uvec4 gl_SubgroupGtMask;" - "flat in highp uvec4 gl_SubgroupLeMask;" - "flat in highp uvec4 gl_SubgroupLtMask;" - "\n"; - stageBuiltins[EShLangVertex] .append(ballotDecls); - stageBuiltins[EShLangTessControl] .append(ballotDecls); - stageBuiltins[EShLangTessEvaluation].append(ballotDecls); - stageBuiltins[EShLangGeometry] .append(ballotDecls); - stageBuiltins[EShLangCompute] .append(ballotDecls); - stageBuiltins[EShLangFragment] .append(fragmentBallotDecls); - - stageBuiltins[EShLangCompute].append( - "highp in uint gl_NumSubgroups;" - "highp in uint gl_SubgroupID;" - "\n"); - } - - if (version >= 300 /* both ES and non-ES */) { - stageBuiltins[EShLangFragment].append( - "flat in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2 - "\n"); - } - - // printf("%s\n", commonBuiltins.c_str()); - // printf("%s\n", stageBuiltins[EShLangFragment].c_str()); + //printf("%s\n", commonBuiltins.c_str()); + //printf("%s\n", stageBuiltins[EShLangFragment].c_str()); } // -// Helper function for initialize(), to add the second set of names for texturing, +// Helper function for initialize(), to add the second set of names for texturing, // when adding context-independent built-in functions. // void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion) @@ -5821,11 +3115,8 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c // In this function proper, enumerate the types, then calls the next set of functions // to enumerate all the uses for that type. // -#ifdef AMD_EXTENSIONS - TBasicType bTypes[4] = { EbtFloat, EbtFloat16, EbtInt, EbtUint }; -#else + TBasicType bTypes[3] = { EbtFloat, EbtInt, EbtUint }; -#endif bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140); bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130); @@ -5865,20 +3156,12 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c continue; if (ms && arrayed && profile == EEsProfile && version < 310) continue; -#ifdef AMD_EXTENSIONS - for (int bType = 0; bType < 4; ++bType) { // float, float16, int, uint results - if (shadow && bType > 1) - continue; - - if (bTypes[bType] == EbtFloat16 && (profile == EEsProfile ||version < 450)) - continue; -#else for (int bType = 0; bType < 3; ++bType) { // float, int, uint results if (shadow && bType > 0) continue; -#endif + if (dim == EsdRect && version < 140 && bType > 0) continue; @@ -5913,17 +3196,6 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c else { addSamplingFunctions(sampler, typeName, version, profile); addGatherFunctions(sampler, typeName, version, profile); - - if (spvVersion.vulkan > 0 && sampler.dim == EsdBuffer && sampler.isCombined()) { - // Vulkan wants a textureBuffer to allow texelFetch() -- - // a sampled image with no sampler. - // So, add sampling functions for both the - // samplerBuffer and textureBuffer types. - sampler.setTexture(sampler.type, sampler.dim, sampler.arrayed, sampler.shadow, - sampler.ms); - TString textureTypeName = sampler.getString(); - addSamplingFunctions(sampler, textureTypeName, version, profile); - } } } } @@ -5942,12 +3214,12 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c } // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the query functions for the given type. // -void TBuiltIns::addQueryFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) +void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) { if (sampler.image && ((profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 430))) return; @@ -5996,37 +3268,15 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, const TString& typeName, int // if (profile != EEsProfile && version >= 400 && ! sampler.image && sampler.dim != EsdRect && ! sampler.ms && sampler.dim != EsdBuffer) { -#ifdef AMD_EXTENSIONS - for (int f16TexAddr = 0; f16TexAddr < 2; ++f16TexAddr) { - if (f16TexAddr && sampler.type != EbtFloat16) - continue; -#endif - stageBuiltins[EShLangFragment].append("vec2 textureQueryLod("); - stageBuiltins[EShLangFragment].append(typeName); - if (dimMap[sampler.dim] == 1) -#ifdef AMD_EXTENSIONS - if (f16TexAddr) - stageBuiltins[EShLangFragment].append(", float16_t"); - else - stageBuiltins[EShLangFragment].append(", float"); -#else - stageBuiltins[EShLangFragment].append(", float"); -#endif - else { -#ifdef AMD_EXTENSIONS - if (f16TexAddr) - stageBuiltins[EShLangFragment].append(", f16vec"); - else - stageBuiltins[EShLangFragment].append(", vec"); -#else - stageBuiltins[EShLangFragment].append(", vec"); -#endif - stageBuiltins[EShLangFragment].append(postfixes[dimMap[sampler.dim]]); - } - stageBuiltins[EShLangFragment].append(");\n"); -#ifdef AMD_EXTENSIONS + stageBuiltins[EShLangFragment].append("vec2 textureQueryLod("); + stageBuiltins[EShLangFragment].append(typeName); + if (dimMap[sampler.dim] == 1) + stageBuiltins[EShLangFragment].append(", float"); + else { + stageBuiltins[EShLangFragment].append(", vec"); + stageBuiltins[EShLangFragment].append(postfixes[dimMap[sampler.dim]]); } -#endif + stageBuiltins[EShLangFragment].append(");\n"); } // @@ -6041,12 +3291,12 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, const TString& typeName, int } // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the image access functions for the given type. // -void TBuiltIns::addImageFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) +void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) { int dims = dimMap[sampler.dim]; // most things with an array add a dimension, except for cubemaps @@ -6100,7 +3350,7 @@ void TBuiltIns::addImageFunctions(TSampler sampler, const TString& typeName, int " imageAtomicOr(volatile coherent ", " imageAtomicXor(volatile coherent ", " imageAtomicExchange(volatile coherent " - }; + }; for (size_t i = 0; i < numBuiltins; ++i) { commonBuiltins.append(dataType); @@ -6131,43 +3381,6 @@ void TBuiltIns::addImageFunctions(TSampler sampler, const TString& typeName, int } } } - -#ifdef AMD_EXTENSIONS - if (sampler.dim == EsdRect || sampler.dim == EsdBuffer || sampler.shadow || sampler.ms) - return; - - if (profile == EEsProfile || version < 450) - return; - - TString imageLodParams = typeName; - if (dims == 1) - imageLodParams.append(", int"); - else { - imageLodParams.append(", ivec"); - imageLodParams.append(postfixes[dims]); - } - imageLodParams.append(", int"); - - commonBuiltins.append(prefixes[sampler.type]); - commonBuiltins.append("vec4 imageLoadLodAMD(readonly volatile coherent "); - commonBuiltins.append(imageLodParams); - commonBuiltins.append(");\n"); - - commonBuiltins.append("void imageStoreLodAMD(writeonly volatile coherent "); - commonBuiltins.append(imageLodParams); - commonBuiltins.append(", "); - commonBuiltins.append(prefixes[sampler.type]); - commonBuiltins.append("vec4);\n"); - - if (sampler.dim != Esd1D) { - commonBuiltins.append("int sparseImageLoadLodAMD(readonly volatile coherent "); - commonBuiltins.append(imageLodParams); - commonBuiltins.append(", out "); - commonBuiltins.append(prefixes[sampler.type]); - commonBuiltins.append("vec4"); - commonBuiltins.append(");\n"); - } -#endif } // @@ -6176,7 +3389,7 @@ void TBuiltIns::addImageFunctions(TSampler sampler, const TString& typeName, int // // Add all the subpass access functions for the given type. // -void TBuiltIns::addSubpassSampling(TSampler sampler, const TString& typeName, int /*version*/, EProfile /*profile*/) +void TBuiltIns::addSubpassSampling(TSampler sampler, TString& typeName, int /*version*/, EProfile /*profile*/) { stageBuiltins[EShLangFragment].append(prefixes[sampler.type]); stageBuiltins[EShLangFragment].append("vec4 subpassLoad"); @@ -6188,12 +3401,12 @@ void TBuiltIns::addSubpassSampling(TSampler sampler, const TString& typeName, in } // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the texture lookup functions for the given type. // -void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) +void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) { // // texturing @@ -6216,7 +3429,7 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, if (bias && (lod || sampler.ms)) continue; - if (bias && (sampler.dim == Esd2D || sampler.dim == EsdCube) && sampler.shadow && sampler.arrayed) + if (bias && sampler.dim == Esd2D && sampler.shadow && sampler.arrayed) continue; if (bias && (sampler.dim == EsdRect || sampler.dim == EsdBuffer)) continue; @@ -6265,237 +3478,149 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, continue; if (extraProj && (sampler.dim == Esd3D || sampler.shadow)) continue; -#ifdef AMD_EXTENSIONS - for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr) { // loop over 16-bit floating-point texel addressing - if (f16TexAddr && sampler.type != EbtFloat16) + for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp) { // loop over "bool" lod clamp + + if (lodClamp && (profile == EEsProfile || version < 450)) + continue; + if (lodClamp && (proj || lod || fetch)) continue; - if (f16TexAddr && sampler.shadow && ! compare) { - compare = true; // compare argument is always present - totalDims--; - } -#endif - for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp) { // loop over "bool" lod clamp - if (lodClamp && (profile == EEsProfile || version < 450)) + for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not + + if (sparse && (profile == EEsProfile || version < 450)) continue; - if (lodClamp && (proj || lod || fetch)) + // Sparse sampling is not for 1D/1D array texture, buffer texture, and projective texture + if (sparse && (sampler.dim == Esd1D || sampler.dim == EsdBuffer || proj)) continue; - for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not + TString s; - if (sparse && (profile == EEsProfile || version < 450)) - continue; - // Sparse sampling is not for 1D/1D array texture, buffer texture, and projective texture - if (sparse && (sampler.dim == Esd1D || sampler.dim == EsdBuffer || proj)) - continue; - - TString s; - - // return type - if (sparse) - s.append("int "); + // return type + if (sparse) + s.append("int "); + else { + if (sampler.shadow) + s.append("float "); else { - if (sampler.shadow) -#ifdef AMD_EXTENSIONS - if (sampler.type == EbtFloat16) - s.append("float16_t "); - else - s.append("float "); -#else - s.append("float "); -#endif - else { - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } + s.append(prefixes[sampler.type]); + s.append("vec4 "); } - - // name - if (sparse) { - if (fetch) - s.append("sparseTexel"); - else - s.append("sparseTexture"); - } - else { - if (fetch) - s.append("texel"); - else - s.append("texture"); - } - if (proj) - s.append("Proj"); - if (lod) - s.append("Lod"); - if (grad) - s.append("Grad"); - if (fetch) - s.append("Fetch"); - if (offset) - s.append("Offset"); - if (lodClamp) - s.append("Clamp"); - if (lodClamp || sparse) - s.append("ARB"); - s.append("("); - - // sampler type - s.append(typeName); -#ifdef AMD_EXTENSIONS - // P coordinate - if (extraProj) { - if (f16TexAddr) - s.append(",f16vec4"); - else - s.append(",vec4"); - } else { - s.append(","); - TBasicType t = fetch ? EbtInt : (f16TexAddr ? EbtFloat16 : EbtFloat); - if (totalDims == 1) - s.append(TType::getBasicString(t)); - else { - s.append(prefixes[t]); - s.append("vec"); - s.append(postfixes[totalDims]); - } - } -#else - // P coordinate - if (extraProj) - s.append(",vec4"); - else { - s.append(","); - TBasicType t = fetch ? EbtInt : EbtFloat; - if (totalDims == 1) - s.append(TType::getBasicString(t)); - else { - s.append(prefixes[t]); - s.append("vec"); - s.append(postfixes[totalDims]); - } - } -#endif - // non-optional compare - if (compare) - s.append(",float"); - - // non-optional lod argument (lod that's not driven by lod loop) or sample - if ((fetch && sampler.dim != EsdBuffer && sampler.dim != EsdRect && !sampler.ms) || - (sampler.ms && fetch)) - s.append(",int"); -#ifdef AMD_EXTENSIONS - // non-optional lod - if (lod) { - if (f16TexAddr) - s.append(",float16_t"); - else - s.append(",float"); - } - - // gradient arguments - if (grad) { - if (dimMap[sampler.dim] == 1) { - if (f16TexAddr) - s.append(",float16_t,float16_t"); - else - s.append(",float,float"); - } else { - if (f16TexAddr) - s.append(",f16vec"); - else - s.append(",vec"); - s.append(postfixes[dimMap[sampler.dim]]); - if (f16TexAddr) - s.append(",f16vec"); - else - s.append(",vec"); - s.append(postfixes[dimMap[sampler.dim]]); - } - } -#else - // non-optional lod - if (lod) - s.append(",float"); - - // gradient arguments - if (grad) { - if (dimMap[sampler.dim] == 1) - s.append(",float,float"); - else { - s.append(",vec"); - s.append(postfixes[dimMap[sampler.dim]]); - s.append(",vec"); - s.append(postfixes[dimMap[sampler.dim]]); - } - } -#endif - // offset - if (offset) { - if (dimMap[sampler.dim] == 1) - s.append(",int"); - else { - s.append(",ivec"); - s.append(postfixes[dimMap[sampler.dim]]); - } - } - -#ifdef AMD_EXTENSIONS - // lod clamp - if (lodClamp) { - if (f16TexAddr) - s.append(",float16_t"); - else - s.append(",float"); - } -#else - // lod clamp - if (lodClamp) - s.append(",float"); -#endif - // texel out (for sparse texture) - if (sparse) { - s.append(",out "); - if (sampler.shadow) -#ifdef AMD_EXTENSIONS - if (sampler.type == EbtFloat16) - s.append("float16_t"); - else - s.append("float"); -#else - s.append("float"); -#endif - else { - s.append(prefixes[sampler.type]); - s.append("vec4"); - } - } -#ifdef AMD_EXTENSIONS - // optional bias - if (bias) { - if (f16TexAddr) - s.append(",float16_t"); - else - s.append(",float"); - } -#else - // optional bias - if (bias) - s.append(",float"); -#endif - s.append(");\n"); - - // Add to the per-language set of built-ins - if (bias || lodClamp) - stageBuiltins[EShLangFragment].append(s); - else - commonBuiltins.append(s); - } + + // name + if (sparse) { + if (fetch) + s.append("sparseTexel"); + else + s.append("sparseTexture"); + } else { + if (fetch) + s.append("texel"); + else + s.append("texture"); + } + if (proj) + s.append("Proj"); + if (lod) + s.append("Lod"); + if (grad) + s.append("Grad"); + if (fetch) + s.append("Fetch"); + if (offset) + s.append("Offset"); + if (lodClamp) + s.append("Clamp"); + if (lodClamp || sparse) + s.append("ARB"); + s.append("("); + + // sampler type + s.append(typeName); + + // P coordinate + if (extraProj) + s.append(",vec4"); + else { + s.append(","); + TBasicType t = fetch ? EbtInt : EbtFloat; + if (totalDims == 1) + s.append(TType::getBasicString(t)); + else { + s.append(prefixes[t]); + s.append("vec"); + s.append(postfixes[totalDims]); + } + } + + if (bias && compare) + continue; + + // non-optional lod argument (lod that's not driven by lod loop) or sample + if ((fetch && sampler.dim != EsdBuffer && sampler.dim != EsdRect && !sampler.ms) || + (sampler.ms && fetch)) + s.append(",int"); + + // non-optional lod + if (lod) + s.append(",float"); + + // gradient arguments + if (grad) { + if (dimMap[sampler.dim] == 1) + s.append(",float,float"); + else { + s.append(",vec"); + s.append(postfixes[dimMap[sampler.dim]]); + s.append(",vec"); + s.append(postfixes[dimMap[sampler.dim]]); + } + } + + // offset + if (offset) { + if (dimMap[sampler.dim] == 1) + s.append(",int"); + else { + s.append(",ivec"); + s.append(postfixes[dimMap[sampler.dim]]); + } + } + + // non-optional compare + if (compare) + s.append(",float"); + + // lod clamp + if (lodClamp) + s.append(",float"); + + // texel out (for sparse texture) + if (sparse) { + s.append(",out "); + if (sampler.shadow) + s.append("float "); + else { + s.append(prefixes[sampler.type]); + s.append("vec4 "); + } + } + + // optional bias + if (bias) + s.append(",float"); + + s.append(");\n"); + + // Add to the per-language set of built-ins + + if (bias) + stageBuiltins[EShLangFragment].append(s); + else + commonBuiltins.append(s); } -#ifdef AMD_EXTENSIONS } -#endif } } } @@ -6505,13 +3630,14 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, } } + // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the texture gather functions for the given type. // -void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) +void TBuiltIns::addGatherFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) { switch (sampler.dim) { case Esd2D: @@ -6528,228 +3654,83 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, in if (version < 140 && sampler.dim == EsdRect && sampler.type != EbtFloat) return; -#ifdef AMD_EXTENSIONS - for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr) { // loop over 16-bit floating-point texel addressing + for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets - if (f16TexAddr && sampler.type != EbtFloat16) - continue; -#endif - for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets + for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument - for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument - - if (comp > 0 && sampler.shadow) - continue; - - if (offset > 0 && sampler.dim == EsdCube) - continue; - - for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not - if (sparse && (profile == EEsProfile || version < 450)) - continue; - - TString s; - - // return type - if (sparse) - s.append("int "); - else { - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } - - // name - if (sparse) - s.append("sparseTextureGather"); - else - s.append("textureGather"); - switch (offset) { - case 1: - s.append("Offset"); - break; - case 2: - s.append("Offsets"); - break; - default: - break; - } - if (sparse) - s.append("ARB"); - s.append("("); - - // sampler type argument - s.append(typeName); - - // P coordinate argument -#ifdef AMD_EXTENSIONS - if (f16TexAddr) - s.append(",f16vec"); - else - s.append(",vec"); -#else - s.append(",vec"); -#endif - int totalDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0); - s.append(postfixes[totalDims]); - - // refZ argument - if (sampler.shadow) - s.append(",float"); - - // offset argument - if (offset > 0) { - s.append(",ivec2"); - if (offset == 2) - s.append("[4]"); - } - - // texel out (for sparse texture) - if (sparse) { - s.append(",out "); - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } - - // comp argument - if (comp) - s.append(",int"); - - s.append(");\n"); - commonBuiltins.append(s); -#ifdef AMD_EXTENSIONS - } -#endif - } - } - } - -#ifdef AMD_EXTENSIONS - if (sampler.dim == EsdRect || sampler.shadow) - return; - - if (profile == EEsProfile || version < 450) - return; - - for (int bias = 0; bias < 2; ++bias) { // loop over presence of bias argument - - for (int lod = 0; lod < 2; ++lod) { // loop over presence of lod argument - - if ((lod && bias) || (lod == 0 && bias == 0)) + if (comp > 0 && sampler.shadow) continue; - for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr) { // loop over 16-bit floating-point texel addressing + if (offset > 0 && sampler.dim == EsdCube) + continue; - if (f16TexAddr && sampler.type != EbtFloat16) + for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not + if (sparse && (profile == EEsProfile || version < 450)) continue; - for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets + TString s; - for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument - - if (comp == 0 && bias) - continue; - - if (offset > 0 && sampler.dim == EsdCube) - continue; - - for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not - if (sparse && (profile == EEsProfile || version < 450)) - continue; - - TString s; - - // return type - if (sparse) - s.append("int "); - else { - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } - - // name - if (sparse) - s.append("sparseTextureGather"); - else - s.append("textureGather"); - - if (lod) - s.append("Lod"); - - switch (offset) { - case 1: - s.append("Offset"); - break; - case 2: - s.append("Offsets"); - break; - default: - break; - } - - if (lod) - s.append("AMD"); - else if (sparse) - s.append("ARB"); - - s.append("("); - - // sampler type argument - s.append(typeName); - - // P coordinate argument - if (f16TexAddr) - s.append(",f16vec"); - else - s.append(",vec"); - int totalDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0); - s.append(postfixes[totalDims]); - - // lod argument - if (lod) { - if (f16TexAddr) - s.append(",float16_t"); - else - s.append(",float"); - } - - // offset argument - if (offset > 0) { - s.append(",ivec2"); - if (offset == 2) - s.append("[4]"); - } - - // texel out (for sparse texture) - if (sparse) { - s.append(",out "); - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } - - // comp argument - if (comp) - s.append(",int"); - - // bias argument - if (bias) { - if (f16TexAddr) - s.append(",float16_t"); - else - s.append(",float"); - } - - s.append(");\n"); - if (bias) - stageBuiltins[EShLangFragment].append(s); - else - commonBuiltins.append(s); - } - } + // return type + if (sparse) + s.append("int "); + else { + s.append(prefixes[sampler.type]); + s.append("vec4 "); } + + // name + if (sparse) + s.append("sparseTextureGather"); + else + s.append("textureGather"); + switch (offset) { + case 1: + s.append("Offset"); + break; + case 2: + s.append("Offsets"); + default: + break; + } + if (sparse) + s.append("ARB"); + s.append("("); + + // sampler type argument + s.append(typeName); + + // P coordinate argument + s.append(",vec"); + int totalDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0); + s.append(postfixes[totalDims]); + + // refZ argument + if (sampler.shadow) + s.append(",float"); + + // offset argument + if (offset > 0) { + s.append(",ivec2"); + if (offset == 2) + s.append("[4]"); + } + + // texel out (for sparse texture) + if (sparse) { + s.append(",out "); + s.append(prefixes[sampler.type]); + s.append("vec4 "); + } + + // comp argument + if (comp) + s.append(",int"); + + s.append(");\n"); + commonBuiltins.append(s); } } } -#endif } // @@ -6852,7 +3833,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlTotalOutputComponents = %d;", resources.maxTessControlTotalOutputComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationInputComponents = %d;", resources.maxTessEvaluationInputComponents); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationOutputComponents = %d;", resources.maxTessEvaluationOutputComponents); @@ -6861,7 +3842,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationUniformComponents = %d;", resources.maxTessEvaluationUniformComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessPatchComponents = %d;", resources.maxTessPatchComponents); s.append(builtInConstant); @@ -6876,10 +3857,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf "in gl_PerVertex {" "highp vec4 gl_Position;" "highp float gl_PointSize;" -#ifdef NV_EXTENSIONS - "highp vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "highp vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes -#endif "} gl_in[gl_MaxPatchVertices];" "\n"); } @@ -7028,7 +4005,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlTotalOutputComponents = %d;", resources.maxTessControlTotalOutputComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationInputComponents = %d;", resources.maxTessEvaluationInputComponents); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationOutputComponents = %d;", resources.maxTessEvaluationOutputComponents); @@ -7037,7 +4014,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationUniformComponents = %d;", resources.maxTessEvaluationUniformComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessPatchComponents = %d;", resources.maxTessPatchComponents); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessGenLevel = %d;", resources.maxTessGenLevel); @@ -7066,10 +4043,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf if (profile != EEsProfile && version >= 450) s.append( "float gl_CullDistance[];" -#ifdef NV_EXTENSIONS - "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering - "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes -#endif ); s.append( "} gl_in[gl_MaxPatchVertices];" @@ -7106,7 +4079,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf } // images (some in compute below) - if ((profile == EEsProfile && version >= 310) || + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 130)) { snprintf(builtInConstant, maxSize, "const int gl_MaxImageUnits = %d;", resources.maxImageUnits); s.append(builtInConstant); @@ -7121,7 +4094,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf } // atomic counters (some in compute below) - if ((profile == EEsProfile && version >= 310) || + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { snprintf(builtInConstant, maxSize, "const int gl_MaxVertexAtomicCounters = %d;", resources. maxVertexAtomicCounters); s.append(builtInConstant); @@ -7157,11 +4130,12 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append("\n"); } + // compute if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX, resources.maxComputeWorkGroupCountY, - resources.maxComputeWorkGroupCountZ); + resources.maxComputeWorkGroupCountZ); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupSize = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupSizeX, resources.maxComputeWorkGroupSizeY, @@ -7291,26 +4265,23 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion // N.B.: a symbol should only be tagged once, and this function is called multiple times, once // per stage that's used for this profile. So // - generally, stick common ones in the fragment stage to ensure they are tagged exactly once - // - for ES, which has different precisions for different stages, the coarsest-grained tagging + // - for ES, which has different precisions for different stages, the coarsest-grained tagging // for a built-in used in many stages needs to be once for the fragment stage and once for // the vertex stage switch(language) { case EShLangVertex: if (profile != EEsProfile) { - if (version >= 440) { - symbolTable.setVariableExtensions("gl_BaseVertexARB", 1, &E_GL_ARB_shader_draw_parameters); - symbolTable.setVariableExtensions("gl_BaseInstanceARB", 1, &E_GL_ARB_shader_draw_parameters); - symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); - BuiltInVariable("gl_BaseVertexARB", EbvBaseVertex, symbolTable); - BuiltInVariable("gl_BaseInstanceARB", EbvBaseInstance, symbolTable); - BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); - } - if (version >= 460) { - BuiltInVariable("gl_BaseVertex", EbvBaseVertex, symbolTable); - BuiltInVariable("gl_BaseInstance", EbvBaseInstance, symbolTable); - BuiltInVariable("gl_DrawID", EbvDrawId, symbolTable); - } + symbolTable.setVariableExtensions("gl_BaseVertexARB", 1, &E_GL_ARB_shader_draw_parameters); + symbolTable.setVariableExtensions("gl_BaseInstanceARB", 1, &E_GL_ARB_shader_draw_parameters); + symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); + + BuiltInVariable("gl_BaseVertexARB", EbvBaseVertex, symbolTable); + BuiltInVariable("gl_BaseInstanceARB", EbvBaseInstance, symbolTable); + BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); + } + + if (profile != EEsProfile) { symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot); @@ -7330,17 +4301,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); - if (spvVersion.vulkan > 0) + if (spvVersion.vulkan >= 100) // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); - else - BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); - if (version >= 430) { - symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); - symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); - symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); - } + symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); + symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); + symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); } #ifdef AMD_EXTENSIONS @@ -7355,19 +4322,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("swizzleInvocationsWithPatternAMD", 1, &E_GL_AMD_shader_ballot); symbolTable.setFunctionExtensions("writeInvocationAMD", 1, &E_GL_AMD_shader_ballot); symbolTable.setFunctionExtensions("mbcntAMD", 1, &E_GL_AMD_shader_ballot); - - symbolTable.setFunctionExtensions("minInvocationsInclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("maxInvocationsInclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("addInvocationsInclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("minInvocationsInclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("maxInvocationsInclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("addInvocationsInclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("minInvocationsExclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("maxInvocationsExclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("addInvocationsExclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("minInvocationsExclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("maxInvocationsExclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); - symbolTable.setFunctionExtensions("addInvocationsExclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); } if (profile != EEsProfile) { @@ -7381,11 +4335,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("cubeFaceCoordAMD", 1, &E_GL_AMD_gcn_shader); symbolTable.setFunctionExtensions("timeAMD", 1, &E_GL_AMD_gcn_shader); } - - if (profile != EEsProfile) { - symbolTable.setFunctionExtensions("fragmentMaskFetchAMD", 1, &E_GL_AMD_shader_fragment_mask); - symbolTable.setFunctionExtensions("fragmentFetchAMD", 1, &E_GL_AMD_shader_fragment_mask); - } #endif // Compatibility variables, vertex only @@ -7410,14 +4359,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod); - if (version == 310) - symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); + symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); } - if (version == 310) + if (version >= 310) symbolTable.setFunctionExtensions("fma", Num_AEP_gpu_shader5, AEP_gpu_shader5); } - if (profile == EEsProfile && version < 320) { + if (profile == EEsProfile) { symbolTable.setFunctionExtensions("imageAtomicAdd", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMin", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMax", 1, &E_GL_OES_shader_image_atomic); @@ -7433,29 +4381,17 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable); } - if (spvVersion.vulkan > 0) { + if (spvVersion.vulkan >= 100) { BuiltInVariable("gl_VertexIndex", EbvVertexIndex, symbolTable); BuiltInVariable("gl_InstanceIndex", EbvInstanceIndex, symbolTable); } - if (version >= 300 /* both ES and non-ES */) { - symbolTable.setVariableExtensions("gl_ViewID_OVR", Num_OVR_multiview_EXTs, OVR_multiview_EXTs); - BuiltInVariable("gl_ViewID_OVR", EbvViewIndex, symbolTable); - } - - if (profile == EEsProfile) { - symbolTable.setFunctionExtensions("shadow2DEXT", 1, &E_GL_EXT_shadow_samplers); - symbolTable.setFunctionExtensions("shadow2DProjEXT", 1, &E_GL_EXT_shadow_samplers); - } - // Fall through case EShLangTessControl: if (profile == EEsProfile && version >= 310) { + symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box, AEP_primitive_bounding_box); BuiltInVariable("gl_BoundingBoxOES", EbvBoundingBox, symbolTable); - if (version < 320) - symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box, - AEP_primitive_bounding_box); } // Fall through @@ -7483,43 +4419,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_InvocationID", EbvInvocationId, symbolTable); BuiltInVariable("gl_Layer", EbvLayer, symbolTable); BuiltInVariable("gl_ViewportIndex", EbvViewportIndex, symbolTable); - -#ifdef NV_EXTENSIONS - if (language != EShLangGeometry) { - symbolTable.setVariableExtensions("gl_Layer", Num_viewportEXTs, viewportEXTs); - symbolTable.setVariableExtensions("gl_ViewportIndex", Num_viewportEXTs, viewportEXTs); - } -#else - if (language != EShLangGeometry && version >= 410) { - symbolTable.setVariableExtensions("gl_Layer", 1, &E_GL_ARB_shader_viewport_layer_array); - symbolTable.setVariableExtensions("gl_ViewportIndex", 1, &E_GL_ARB_shader_viewport_layer_array); - } -#endif - -#ifdef NV_EXTENSIONS - symbolTable.setVariableExtensions("gl_ViewportMask", 1, &E_GL_NV_viewport_array2); - symbolTable.setVariableExtensions("gl_SecondaryPositionNV", 1, &E_GL_NV_stereo_view_rendering); - symbolTable.setVariableExtensions("gl_SecondaryViewportMaskNV", 1, &E_GL_NV_stereo_view_rendering); - symbolTable.setVariableExtensions("gl_PositionPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); - symbolTable.setVariableExtensions("gl_ViewportMaskPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); - - BuiltInVariable("gl_ViewportMask", EbvViewportMaskNV, symbolTable); - BuiltInVariable("gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); - BuiltInVariable("gl_SecondaryViewportMaskNV", EbvSecondaryViewportMaskNV, symbolTable); - BuiltInVariable("gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); - BuiltInVariable("gl_ViewportMaskPerViewNV", EbvViewportMaskPerViewNV, symbolTable); - - if (language != EShLangVertex) { - BuiltInVariable("gl_in", "gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); - BuiltInVariable("gl_in", "gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); - } - BuiltInVariable("gl_out", "gl_ViewportMask", EbvViewportMaskNV, symbolTable); - BuiltInVariable("gl_out", "gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); - BuiltInVariable("gl_out", "gl_SecondaryViewportMaskNV", EbvSecondaryViewportMaskNV, symbolTable); - BuiltInVariable("gl_out", "gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); - BuiltInVariable("gl_out", "gl_ViewportMaskPerViewNV", EbvViewportMaskPerViewNV, symbolTable); -#endif - BuiltInVariable("gl_PatchVerticesIn", EbvPatchVertices, symbolTable); BuiltInVariable("gl_TessLevelOuter", EbvTessLevelOuter, symbolTable); BuiltInVariable("gl_TessLevelInner", EbvTessLevelInner, symbolTable); @@ -7559,55 +4458,20 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion // However, the current automatic extension scheme does not work per block member, // so for now check when parsing. // - // if (profile == EEsProfile) { + //if (profile == EEsProfile) { // if (language == EShLangGeometry) // symbolTable.setVariableExtensions("gl_PointSize", Num_AEP_geometry_point_size, AEP_geometry_point_size); // else if (language == EShLangTessEvaluation || language == EShLangTessControl) // symbolTable.setVariableExtensions("gl_PointSize", Num_AEP_tessellation_point_size, AEP_tessellation_point_size); //} - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); - BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); - } - - // GL_KHR_shader_subgroup - if (spvVersion.vulkan > 0) { - symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupGeMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupGtMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupLeMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupLtMask", 1, &E_GL_KHR_shader_subgroup_ballot); - - BuiltInVariable("gl_SubgroupSize", EbvSubgroupSize2, symbolTable); - BuiltInVariable("gl_SubgroupInvocationID", EbvSubgroupInvocation2, symbolTable); - BuiltInVariable("gl_SubgroupEqMask", EbvSubgroupEqMask2, symbolTable); - BuiltInVariable("gl_SubgroupGeMask", EbvSubgroupGeMask2, symbolTable); - BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable); - BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable); - BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable); - } - break; case EShLangFragment: SpecialQualifier("gl_FrontFacing", EvqFace, EbvFace, symbolTable); SpecialQualifier("gl_FragCoord", EvqFragCoord, EbvFragCoord, symbolTable); SpecialQualifier("gl_PointCoord", EvqPointCoord, EbvPointCoord, symbolTable); - if (spvVersion.spv == 0) - SpecialQualifier("gl_FragColor", EvqFragColor, EbvFragColor, symbolTable); - else { - TSymbol* symbol = symbolTable.find("gl_FragColor"); - if (symbol) { - symbol->getWritableType().getQualifier().storage = EvqVaryingOut; - symbol->getWritableType().getQualifier().layoutLocation = 0; - } - } + SpecialQualifier("gl_FragColor", EvqFragColor, EbvFragColor, symbolTable); SpecialQualifier("gl_FragDepth", EvqFragDepth, EbvFragDepth, symbolTable); SpecialQualifier("gl_FragDepthEXT", EvqFragDepth, EbvFragDepth, symbolTable); SpecialQualifier("gl_HelperInvocation", EvqVaryingIn, EbvHelperInvocation, symbolTable); @@ -7616,18 +4480,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_CullDistance", EbvCullDistance, symbolTable); BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable); - if (profile != EEsProfile && version >= 140) { - symbolTable.setVariableExtensions("gl_FragStencilRefARB", 1, &E_GL_ARB_shader_stencil_export); - BuiltInVariable("gl_FragStencilRefARB", EbvFragStencilRef, symbolTable); - } - if ((profile != EEsProfile && version >= 400) || (profile == EEsProfile && version >= 310)) { BuiltInVariable("gl_SampleID", EbvSampleId, symbolTable); BuiltInVariable("gl_SamplePosition", EbvSamplePosition, symbolTable); BuiltInVariable("gl_SampleMaskIn", EbvSampleMask, symbolTable); BuiltInVariable("gl_SampleMask", EbvSampleMask, symbolTable); - if (profile == EEsProfile && version < 320) { + if (profile == EEsProfile) { symbolTable.setVariableExtensions("gl_SampleID", 1, &E_GL_OES_sample_variables); symbolTable.setVariableExtensions("gl_SamplePosition", 1, &E_GL_OES_sample_variables); symbolTable.setVariableExtensions("gl_SampleMaskIn", 1, &E_GL_OES_sample_variables); @@ -7635,7 +4494,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setVariableExtensions("gl_NumSamples", 1, &E_GL_OES_sample_variables); } } - + BuiltInVariable("gl_Layer", EbvLayer, symbolTable); BuiltInVariable("gl_ViewportIndex", EbvViewportIndex, symbolTable); @@ -7661,15 +4520,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod); - if (version < 320) - symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); + symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); } if (version == 100) { symbolTable.setFunctionExtensions("dFdx", 1, &E_GL_OES_standard_derivatives); symbolTable.setFunctionExtensions("dFdy", 1, &E_GL_OES_standard_derivatives); symbolTable.setFunctionExtensions("fwidth", 1, &E_GL_OES_standard_derivatives); } - if (version == 310) { + if (version >= 310) { symbolTable.setFunctionExtensions("fma", Num_AEP_gpu_shader5, AEP_gpu_shader5); symbolTable.setFunctionExtensions("interpolateAtCentroid", 1, &E_GL_OES_shader_multisample_interpolation); symbolTable.setFunctionExtensions("interpolateAtSample", 1, &E_GL_OES_shader_multisample_interpolation); @@ -7784,40 +4642,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_BaryCoordSmoothSampleAMD", EbvBaryCoordSmoothSample, symbolTable); BuiltInVariable("gl_BaryCoordPullModelAMD", EbvBaryCoordPullModel, symbolTable); } - - // E_GL_AMD_texture_gather_bias_lod - if (profile != EEsProfile) { - symbolTable.setFunctionExtensions("textureGatherLodAMD", 1, &E_GL_AMD_texture_gather_bias_lod); - symbolTable.setFunctionExtensions("textureGatherLodOffsetAMD", 1, &E_GL_AMD_texture_gather_bias_lod); - symbolTable.setFunctionExtensions("textureGatherLodOffsetsAMD", 1, &E_GL_AMD_texture_gather_bias_lod); - symbolTable.setFunctionExtensions("sparseTextureGatherLodAMD", 1, &E_GL_AMD_texture_gather_bias_lod); - symbolTable.setFunctionExtensions("sparseTextureGatherLodOffsetAMD", 1, &E_GL_AMD_texture_gather_bias_lod); - symbolTable.setFunctionExtensions("sparseTextureGatherLodOffsetsAMD", 1, &E_GL_AMD_texture_gather_bias_lod); - } - - // E_GL_AMD_shader_image_load_store_lod - if (profile != EEsProfile) { - symbolTable.setFunctionExtensions("imageLoadLodAMD", 1, &E_GL_AMD_shader_image_load_store_lod); - symbolTable.setFunctionExtensions("imageStoreLodAMD", 1, &E_GL_AMD_shader_image_load_store_lod); - symbolTable.setFunctionExtensions("sparseImageLoadLodAMD", 1, &E_GL_AMD_shader_image_load_store_lod); - } -#endif - -#ifdef NV_EXTENSIONS - if (profile != EEsProfile && version >= 430) { - symbolTable.setVariableExtensions("gl_FragFullyCoveredNV", 1, &E_GL_NV_conservative_raster_underestimation); - BuiltInVariable("gl_FragFullyCoveredNV", EbvFragFullyCoveredNV, symbolTable); - } #endif symbolTable.setVariableExtensions("gl_FragDepthEXT", 1, &E_GL_EXT_frag_depth); - if (profile == EEsProfile && version < 320) { + if (profile == EEsProfile) { symbolTable.setVariableExtensions("gl_PrimitiveID", Num_AEP_geometry_shader, AEP_geometry_shader); symbolTable.setVariableExtensions("gl_Layer", Num_AEP_geometry_shader, AEP_geometry_shader); } - if (profile == EEsProfile && version < 320) { + if (profile == EEsProfile) { symbolTable.setFunctionExtensions("imageAtomicAdd", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMin", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMax", 1, &E_GL_OES_shader_image_atomic); @@ -7827,144 +4661,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("imageAtomicExchange", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicCompSwap", 1, &E_GL_OES_shader_image_atomic); } - - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); - BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); - if (version >= 300 /* both ES and non-ES */) { - symbolTable.setVariableExtensions("gl_ViewID_OVR", Num_OVR_multiview_EXTs, OVR_multiview_EXTs); - BuiltInVariable("gl_ViewID_OVR", EbvViewIndex, symbolTable); - } - - // GL_ARB_shader_ballot - if (profile != EEsProfile) { - symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupGeMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupGtMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupLeMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupLtMaskARB", 1, &E_GL_ARB_shader_ballot); - - BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable); - BuiltInVariable("gl_SubGroupEqMaskARB", EbvSubGroupEqMask, symbolTable); - BuiltInVariable("gl_SubGroupGeMaskARB", EbvSubGroupGeMask, symbolTable); - BuiltInVariable("gl_SubGroupGtMaskARB", EbvSubGroupGtMask, symbolTable); - BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); - BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); - - if (spvVersion.vulkan > 0) - // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan - SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); - else - BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); - } - - // GL_KHR_shader_subgroup - if (spvVersion.vulkan > 0) { - symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupGeMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupGtMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupLeMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupLtMask", 1, &E_GL_KHR_shader_subgroup_ballot); - - BuiltInVariable("gl_SubgroupSize", EbvSubgroupSize2, symbolTable); - BuiltInVariable("gl_SubgroupInvocationID", EbvSubgroupInvocation2, symbolTable); - BuiltInVariable("gl_SubgroupEqMask", EbvSubgroupEqMask2, symbolTable); - BuiltInVariable("gl_SubgroupGeMask", EbvSubgroupGeMask2, symbolTable); - BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable); - BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable); - BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable); - - symbolTable.setFunctionExtensions("subgroupBarrier", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setFunctionExtensions("subgroupMemoryBarrier", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setFunctionExtensions("subgroupMemoryBarrierBuffer", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setFunctionExtensions("subgroupMemoryBarrierImage", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setFunctionExtensions("subgroupElect", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setFunctionExtensions("subgroupAll", 1, &E_GL_KHR_shader_subgroup_vote); - symbolTable.setFunctionExtensions("subgroupAny", 1, &E_GL_KHR_shader_subgroup_vote); - symbolTable.setFunctionExtensions("subgroupAllEqual", 1, &E_GL_KHR_shader_subgroup_vote); - symbolTable.setFunctionExtensions("subgroupBroadcast", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBroadcastFirst", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBallot", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupInverseBallot", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBallotBitExtract", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBallotBitCount", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBallotInclusiveBitCount", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBallotExclusiveBitCount", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBallotFindLSB", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupBallotFindMSB", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setFunctionExtensions("subgroupShuffle", 1, &E_GL_KHR_shader_subgroup_shuffle); - symbolTable.setFunctionExtensions("subgroupShuffleXor", 1, &E_GL_KHR_shader_subgroup_shuffle); - symbolTable.setFunctionExtensions("subgroupShuffleUp", 1, &E_GL_KHR_shader_subgroup_shuffle_relative); - symbolTable.setFunctionExtensions("subgroupShuffleDown", 1, &E_GL_KHR_shader_subgroup_shuffle_relative); - symbolTable.setFunctionExtensions("subgroupAdd", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupMul", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupMin", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupMax", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupAnd", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupOr", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupXor", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupInclusiveAdd", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupInclusiveMul", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupInclusiveMin", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupInclusiveMax", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupInclusiveAnd", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupInclusiveOr", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupInclusiveXor", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupExclusiveAdd", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupExclusiveMul", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupExclusiveMin", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupExclusiveMax", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupExclusiveAnd", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupExclusiveOr", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupExclusiveXor", 1, &E_GL_KHR_shader_subgroup_arithmetic); - symbolTable.setFunctionExtensions("subgroupClusteredAdd", 1, &E_GL_KHR_shader_subgroup_clustered); - symbolTable.setFunctionExtensions("subgroupClusteredMul", 1, &E_GL_KHR_shader_subgroup_clustered); - symbolTable.setFunctionExtensions("subgroupClusteredMin", 1, &E_GL_KHR_shader_subgroup_clustered); - symbolTable.setFunctionExtensions("subgroupClusteredMax", 1, &E_GL_KHR_shader_subgroup_clustered); - symbolTable.setFunctionExtensions("subgroupClusteredAnd", 1, &E_GL_KHR_shader_subgroup_clustered); - symbolTable.setFunctionExtensions("subgroupClusteredOr", 1, &E_GL_KHR_shader_subgroup_clustered); - symbolTable.setFunctionExtensions("subgroupClusteredXor", 1, &E_GL_KHR_shader_subgroup_clustered); - symbolTable.setFunctionExtensions("subgroupQuadBroadcast", 1, &E_GL_KHR_shader_subgroup_quad); - symbolTable.setFunctionExtensions("subgroupQuadSwapHorizontal", 1, &E_GL_KHR_shader_subgroup_quad); - symbolTable.setFunctionExtensions("subgroupQuadSwapVertical", 1, &E_GL_KHR_shader_subgroup_quad); - symbolTable.setFunctionExtensions("subgroupQuadSwapDiagonal", 1, &E_GL_KHR_shader_subgroup_quad); - -#ifdef NV_EXTENSIONS - symbolTable.setFunctionExtensions("subgroupPartitionNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedAddNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedMulNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedMinNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedAndNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedOrNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedXorNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveAddNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMulNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMinNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveAndNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveOrNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveXorNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveAddNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMulNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMinNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveAndNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveOrNV", 1, &E_GL_NV_shader_subgroup_partitioned); - symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveXorNV", 1, &E_GL_NV_shader_subgroup_partitioned); -#endif - - } - - if (profile == EEsProfile) { - symbolTable.setFunctionExtensions("shadow2DEXT", 1, &E_GL_EXT_shadow_samplers); - symbolTable.setFunctionExtensions("shadow2DProjEXT", 1, &E_GL_EXT_shadow_samplers); - } break; case EShLangCompute: @@ -7998,68 +4694,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_ARB_compute_shader); symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_ARB_compute_shader); } - - // GL_ARB_shader_ballot - if (profile != EEsProfile) { - symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupGeMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupGtMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupLeMaskARB", 1, &E_GL_ARB_shader_ballot); - symbolTable.setVariableExtensions("gl_SubGroupLtMaskARB", 1, &E_GL_ARB_shader_ballot); - - BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable); - BuiltInVariable("gl_SubGroupEqMaskARB", EbvSubGroupEqMask, symbolTable); - BuiltInVariable("gl_SubGroupGeMaskARB", EbvSubGroupGeMask, symbolTable); - BuiltInVariable("gl_SubGroupGtMaskARB", EbvSubGroupGtMask, symbolTable); - BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); - BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); - - if (spvVersion.vulkan > 0) - // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan - SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); - else - BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); - } - - // GL_ARB_shader_ballot - if (spvVersion.vulkan > 0) { - symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupGeMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupGtMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupLeMask", 1, &E_GL_KHR_shader_subgroup_ballot); - symbolTable.setVariableExtensions("gl_SubgroupLtMask", 1, &E_GL_KHR_shader_subgroup_ballot); - - BuiltInVariable("gl_SubgroupSize", EbvSubgroupSize2, symbolTable); - BuiltInVariable("gl_SubgroupInvocationID", EbvSubgroupInvocation2, symbolTable); - BuiltInVariable("gl_SubgroupEqMask", EbvSubgroupEqMask2, symbolTable); - BuiltInVariable("gl_SubgroupGeMask", EbvSubgroupGeMask2, symbolTable); - BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable); - BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable); - BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable); - } - - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); - BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); - symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); - BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); - } - - // GL_KHR_shader_subgroup - if (spvVersion.vulkan > 0) { - symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic); - symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic); - - BuiltInVariable("gl_NumSubgroups", EbvNumSubgroups, symbolTable); - BuiltInVariable("gl_SubgroupID", EbvSubgroupID, symbolTable); - - symbolTable.setFunctionExtensions("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic); - } break; default: @@ -8145,15 +4779,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("doubleBitsToUint64", EOpDoubleBitsToUint64); symbolTable.relateToOperator("int64BitsToDouble", EOpInt64BitsToDouble); symbolTable.relateToOperator("uint64BitsToDouble", EOpUint64BitsToDouble); - symbolTable.relateToOperator("halfBitsToInt16", EOpFloat16BitsToInt16); - symbolTable.relateToOperator("halfBitsToUint16", EOpFloat16BitsToUint16); - symbolTable.relateToOperator("float16BitsToInt16", EOpFloat16BitsToInt16); - symbolTable.relateToOperator("float16BitsToUint16", EOpFloat16BitsToUint16); - symbolTable.relateToOperator("int16BitsToFloat16", EOpInt16BitsToFloat16); - symbolTable.relateToOperator("uint16BitsToFloat16", EOpUint16BitsToFloat16); - - symbolTable.relateToOperator("int16BitsToHalf", EOpInt16BitsToFloat16); - symbolTable.relateToOperator("uint16BitsToHalf", EOpUint16BitsToFloat16); symbolTable.relateToOperator("packSnorm2x16", EOpPackSnorm2x16); symbolTable.relateToOperator("unpackSnorm2x16", EOpUnpackSnorm2x16); @@ -8176,25 +4801,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("packUint2x32", EOpPackUint2x32); symbolTable.relateToOperator("unpackUint2x32", EOpUnpackUint2x32); - symbolTable.relateToOperator("packInt2x16", EOpPackInt2x16); - symbolTable.relateToOperator("unpackInt2x16", EOpUnpackInt2x16); - symbolTable.relateToOperator("packUint2x16", EOpPackUint2x16); - symbolTable.relateToOperator("unpackUint2x16", EOpUnpackUint2x16); - - symbolTable.relateToOperator("packInt4x16", EOpPackInt4x16); - symbolTable.relateToOperator("unpackInt4x16", EOpUnpackInt4x16); - symbolTable.relateToOperator("packUint4x16", EOpPackUint4x16); - symbolTable.relateToOperator("unpackUint4x16", EOpUnpackUint4x16); +#ifdef AMD_EXTENSIONS symbolTable.relateToOperator("packFloat2x16", EOpPackFloat2x16); symbolTable.relateToOperator("unpackFloat2x16", EOpUnpackFloat2x16); - - symbolTable.relateToOperator("pack16", EOpPack16); - symbolTable.relateToOperator("pack32", EOpPack32); - symbolTable.relateToOperator("pack64", EOpPack64); - - symbolTable.relateToOperator("unpack32", EOpUnpack32); - symbolTable.relateToOperator("unpack16", EOpUnpack16); - symbolTable.relateToOperator("unpack8", EOpUnpack8); +#endif symbolTable.relateToOperator("length", EOpLength); symbolTable.relateToOperator("distance", EOpDistance); @@ -8227,18 +4837,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("atomicCounterDecrement", EOpAtomicCounterDecrement); symbolTable.relateToOperator("atomicCounter", EOpAtomicCounter); - if (profile != EEsProfile && version >= 460) { - symbolTable.relateToOperator("atomicCounterAdd", EOpAtomicCounterAdd); - symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicCounterSubtract); - symbolTable.relateToOperator("atomicCounterMin", EOpAtomicCounterMin); - symbolTable.relateToOperator("atomicCounterMax", EOpAtomicCounterMax); - symbolTable.relateToOperator("atomicCounterAnd", EOpAtomicCounterAnd); - symbolTable.relateToOperator("atomicCounterOr", EOpAtomicCounterOr); - symbolTable.relateToOperator("atomicCounterXor", EOpAtomicCounterXor); - symbolTable.relateToOperator("atomicCounterExchange", EOpAtomicCounterExchange); - symbolTable.relateToOperator("atomicCounterCompSwap", EOpAtomicCounterCompSwap); - } - symbolTable.relateToOperator("fma", EOpFma); symbolTable.relateToOperator("frexp", EOpFrexp); symbolTable.relateToOperator("ldexp", EOpLdexp); @@ -8381,39 +4979,21 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("readInvocationARB", EOpReadInvocation); symbolTable.relateToOperator("readFirstInvocationARB", EOpReadFirstInvocation); - if (version >= 430) { - symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation); - symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations); - symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual); - } - if (version >= 460) { - symbolTable.relateToOperator("anyInvocation", EOpAnyInvocation); - symbolTable.relateToOperator("allInvocations", EOpAllInvocations); - symbolTable.relateToOperator("allInvocationsEqual", EOpAllInvocationsEqual); - } + symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation); + symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations); + symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual); + #ifdef AMD_EXTENSIONS - symbolTable.relateToOperator("minInvocationsAMD", EOpMinInvocations); - symbolTable.relateToOperator("maxInvocationsAMD", EOpMaxInvocations); - symbolTable.relateToOperator("addInvocationsAMD", EOpAddInvocations); - symbolTable.relateToOperator("minInvocationsNonUniformAMD", EOpMinInvocationsNonUniform); - symbolTable.relateToOperator("maxInvocationsNonUniformAMD", EOpMaxInvocationsNonUniform); - symbolTable.relateToOperator("addInvocationsNonUniformAMD", EOpAddInvocationsNonUniform); - symbolTable.relateToOperator("minInvocationsInclusiveScanAMD", EOpMinInvocationsInclusiveScan); - symbolTable.relateToOperator("maxInvocationsInclusiveScanAMD", EOpMaxInvocationsInclusiveScan); - symbolTable.relateToOperator("addInvocationsInclusiveScanAMD", EOpAddInvocationsInclusiveScan); - symbolTable.relateToOperator("minInvocationsInclusiveScanNonUniformAMD", EOpMinInvocationsInclusiveScanNonUniform); - symbolTable.relateToOperator("maxInvocationsInclusiveScanNonUniformAMD", EOpMaxInvocationsInclusiveScanNonUniform); - symbolTable.relateToOperator("addInvocationsInclusiveScanNonUniformAMD", EOpAddInvocationsInclusiveScanNonUniform); - symbolTable.relateToOperator("minInvocationsExclusiveScanAMD", EOpMinInvocationsExclusiveScan); - symbolTable.relateToOperator("maxInvocationsExclusiveScanAMD", EOpMaxInvocationsExclusiveScan); - symbolTable.relateToOperator("addInvocationsExclusiveScanAMD", EOpAddInvocationsExclusiveScan); - symbolTable.relateToOperator("minInvocationsExclusiveScanNonUniformAMD", EOpMinInvocationsExclusiveScanNonUniform); - symbolTable.relateToOperator("maxInvocationsExclusiveScanNonUniformAMD", EOpMaxInvocationsExclusiveScanNonUniform); - symbolTable.relateToOperator("addInvocationsExclusiveScanNonUniformAMD", EOpAddInvocationsExclusiveScanNonUniform); - symbolTable.relateToOperator("swizzleInvocationsAMD", EOpSwizzleInvocations); - symbolTable.relateToOperator("swizzleInvocationsMaskedAMD", EOpSwizzleInvocationsMasked); - symbolTable.relateToOperator("writeInvocationAMD", EOpWriteInvocation); - symbolTable.relateToOperator("mbcntAMD", EOpMbcnt); + symbolTable.relateToOperator("minInvocationsAMD", EOpMinInvocations); + symbolTable.relateToOperator("maxInvocationsAMD", EOpMaxInvocations); + symbolTable.relateToOperator("addInvocationsAMD", EOpAddInvocations); + symbolTable.relateToOperator("minInvocationsNonUniformAMD", EOpMinInvocationsNonUniform); + symbolTable.relateToOperator("maxInvocationsNonUniformAMD", EOpMaxInvocationsNonUniform); + symbolTable.relateToOperator("addInvocationsNonUniformAMD", EOpAddInvocationsNonUniform); + symbolTable.relateToOperator("swizzleInvocationsAMD", EOpSwizzleInvocations); + symbolTable.relateToOperator("swizzleInvocationsMaskedAMD", EOpSwizzleInvocationsMasked); + symbolTable.relateToOperator("writeInvocationAMD", EOpWriteInvocation); + symbolTable.relateToOperator("mbcntAMD", EOpMbcnt); symbolTable.relateToOperator("min3", EOpMin3); symbolTable.relateToOperator("max3", EOpMax3); @@ -8422,110 +5002,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("cubeFaceIndexAMD", EOpCubeFaceIndex); symbolTable.relateToOperator("cubeFaceCoordAMD", EOpCubeFaceCoord); symbolTable.relateToOperator("timeAMD", EOpTime); - - symbolTable.relateToOperator("textureGatherLodAMD", EOpTextureGatherLod); - symbolTable.relateToOperator("textureGatherLodOffsetAMD", EOpTextureGatherLodOffset); - symbolTable.relateToOperator("textureGatherLodOffsetsAMD", EOpTextureGatherLodOffsets); - symbolTable.relateToOperator("sparseTextureGatherLodAMD", EOpSparseTextureGatherLod); - symbolTable.relateToOperator("sparseTextureGatherLodOffsetAMD", EOpSparseTextureGatherLodOffset); - symbolTable.relateToOperator("sparseTextureGatherLodOffsetsAMD", EOpSparseTextureGatherLodOffsets); - - symbolTable.relateToOperator("imageLoadLodAMD", EOpImageLoadLod); - symbolTable.relateToOperator("imageStoreLodAMD", EOpImageStoreLod); - symbolTable.relateToOperator("sparseImageLoadLodAMD", EOpSparseImageLoadLod); - - symbolTable.relateToOperator("fragmentMaskFetchAMD", EOpFragmentMaskFetch); - symbolTable.relateToOperator("fragmentFetchAMD", EOpFragmentFetch); #endif } - - // GL_KHR_shader_subgroup - if (spvVersion.vulkan > 0) { - symbolTable.relateToOperator("subgroupBarrier", EOpSubgroupBarrier); - symbolTable.relateToOperator("subgroupMemoryBarrier", EOpSubgroupMemoryBarrier); - symbolTable.relateToOperator("subgroupMemoryBarrierBuffer", EOpSubgroupMemoryBarrierBuffer); - symbolTable.relateToOperator("subgroupMemoryBarrierImage", EOpSubgroupMemoryBarrierImage); - symbolTable.relateToOperator("subgroupElect", EOpSubgroupElect); - symbolTable.relateToOperator("subgroupAll", EOpSubgroupAll); - symbolTable.relateToOperator("subgroupAny", EOpSubgroupAny); - symbolTable.relateToOperator("subgroupAllEqual", EOpSubgroupAllEqual); - symbolTable.relateToOperator("subgroupBroadcast", EOpSubgroupBroadcast); - symbolTable.relateToOperator("subgroupBroadcastFirst", EOpSubgroupBroadcastFirst); - symbolTable.relateToOperator("subgroupBallot", EOpSubgroupBallot); - symbolTable.relateToOperator("subgroupInverseBallot", EOpSubgroupInverseBallot); - symbolTable.relateToOperator("subgroupBallotBitExtract", EOpSubgroupBallotBitExtract); - symbolTable.relateToOperator("subgroupBallotBitCount", EOpSubgroupBallotBitCount); - symbolTable.relateToOperator("subgroupBallotInclusiveBitCount", EOpSubgroupBallotInclusiveBitCount); - symbolTable.relateToOperator("subgroupBallotExclusiveBitCount", EOpSubgroupBallotExclusiveBitCount); - symbolTable.relateToOperator("subgroupBallotFindLSB", EOpSubgroupBallotFindLSB); - symbolTable.relateToOperator("subgroupBallotFindMSB", EOpSubgroupBallotFindMSB); - symbolTable.relateToOperator("subgroupShuffle", EOpSubgroupShuffle); - symbolTable.relateToOperator("subgroupShuffleXor", EOpSubgroupShuffleXor); - symbolTable.relateToOperator("subgroupShuffleUp", EOpSubgroupShuffleUp); - symbolTable.relateToOperator("subgroupShuffleDown", EOpSubgroupShuffleDown); - symbolTable.relateToOperator("subgroupAdd", EOpSubgroupAdd); - symbolTable.relateToOperator("subgroupMul", EOpSubgroupMul); - symbolTable.relateToOperator("subgroupMin", EOpSubgroupMin); - symbolTable.relateToOperator("subgroupMax", EOpSubgroupMax); - symbolTable.relateToOperator("subgroupAnd", EOpSubgroupAnd); - symbolTable.relateToOperator("subgroupOr", EOpSubgroupOr); - symbolTable.relateToOperator("subgroupXor", EOpSubgroupXor); - symbolTable.relateToOperator("subgroupInclusiveAdd", EOpSubgroupInclusiveAdd); - symbolTable.relateToOperator("subgroupInclusiveMul", EOpSubgroupInclusiveMul); - symbolTable.relateToOperator("subgroupInclusiveMin", EOpSubgroupInclusiveMin); - symbolTable.relateToOperator("subgroupInclusiveMax", EOpSubgroupInclusiveMax); - symbolTable.relateToOperator("subgroupInclusiveAnd", EOpSubgroupInclusiveAnd); - symbolTable.relateToOperator("subgroupInclusiveOr", EOpSubgroupInclusiveOr); - symbolTable.relateToOperator("subgroupInclusiveXor", EOpSubgroupInclusiveXor); - symbolTable.relateToOperator("subgroupExclusiveAdd", EOpSubgroupExclusiveAdd); - symbolTable.relateToOperator("subgroupExclusiveMul", EOpSubgroupExclusiveMul); - symbolTable.relateToOperator("subgroupExclusiveMin", EOpSubgroupExclusiveMin); - symbolTable.relateToOperator("subgroupExclusiveMax", EOpSubgroupExclusiveMax); - symbolTable.relateToOperator("subgroupExclusiveAnd", EOpSubgroupExclusiveAnd); - symbolTable.relateToOperator("subgroupExclusiveOr", EOpSubgroupExclusiveOr); - symbolTable.relateToOperator("subgroupExclusiveXor", EOpSubgroupExclusiveXor); - symbolTable.relateToOperator("subgroupClusteredAdd", EOpSubgroupClusteredAdd); - symbolTable.relateToOperator("subgroupClusteredMul", EOpSubgroupClusteredMul); - symbolTable.relateToOperator("subgroupClusteredMin", EOpSubgroupClusteredMin); - symbolTable.relateToOperator("subgroupClusteredMax", EOpSubgroupClusteredMax); - symbolTable.relateToOperator("subgroupClusteredAnd", EOpSubgroupClusteredAnd); - symbolTable.relateToOperator("subgroupClusteredOr", EOpSubgroupClusteredOr); - symbolTable.relateToOperator("subgroupClusteredXor", EOpSubgroupClusteredXor); - symbolTable.relateToOperator("subgroupQuadBroadcast", EOpSubgroupQuadBroadcast); - symbolTable.relateToOperator("subgroupQuadSwapHorizontal", EOpSubgroupQuadSwapHorizontal); - symbolTable.relateToOperator("subgroupQuadSwapVertical", EOpSubgroupQuadSwapVertical); - symbolTable.relateToOperator("subgroupQuadSwapDiagonal", EOpSubgroupQuadSwapDiagonal); - -#ifdef NV_EXTENSIONS - symbolTable.relateToOperator("subgroupPartitionNV", EOpSubgroupPartition); - symbolTable.relateToOperator("subgroupPartitionedAddNV", EOpSubgroupPartitionedAdd); - symbolTable.relateToOperator("subgroupPartitionedMulNV", EOpSubgroupPartitionedMul); - symbolTable.relateToOperator("subgroupPartitionedMinNV", EOpSubgroupPartitionedMin); - symbolTable.relateToOperator("subgroupPartitionedMaxNV", EOpSubgroupPartitionedMax); - symbolTable.relateToOperator("subgroupPartitionedAndNV", EOpSubgroupPartitionedAnd); - symbolTable.relateToOperator("subgroupPartitionedOrNV", EOpSubgroupPartitionedOr); - symbolTable.relateToOperator("subgroupPartitionedXorNV", EOpSubgroupPartitionedXor); - symbolTable.relateToOperator("subgroupPartitionedInclusiveAddNV", EOpSubgroupPartitionedInclusiveAdd); - symbolTable.relateToOperator("subgroupPartitionedInclusiveMulNV", EOpSubgroupPartitionedInclusiveMul); - symbolTable.relateToOperator("subgroupPartitionedInclusiveMinNV", EOpSubgroupPartitionedInclusiveMin); - symbolTable.relateToOperator("subgroupPartitionedInclusiveMaxNV", EOpSubgroupPartitionedInclusiveMax); - symbolTable.relateToOperator("subgroupPartitionedInclusiveAndNV", EOpSubgroupPartitionedInclusiveAnd); - symbolTable.relateToOperator("subgroupPartitionedInclusiveOrNV", EOpSubgroupPartitionedInclusiveOr); - symbolTable.relateToOperator("subgroupPartitionedInclusiveXorNV", EOpSubgroupPartitionedInclusiveXor); - symbolTable.relateToOperator("subgroupPartitionedExclusiveAddNV", EOpSubgroupPartitionedExclusiveAdd); - symbolTable.relateToOperator("subgroupPartitionedExclusiveMulNV", EOpSubgroupPartitionedExclusiveMul); - symbolTable.relateToOperator("subgroupPartitionedExclusiveMinNV", EOpSubgroupPartitionedExclusiveMin); - symbolTable.relateToOperator("subgroupPartitionedExclusiveMaxNV", EOpSubgroupPartitionedExclusiveMax); - symbolTable.relateToOperator("subgroupPartitionedExclusiveAndNV", EOpSubgroupPartitionedExclusiveAnd); - symbolTable.relateToOperator("subgroupPartitionedExclusiveOrNV", EOpSubgroupPartitionedExclusiveOr); - symbolTable.relateToOperator("subgroupPartitionedExclusiveXorNV", EOpSubgroupPartitionedExclusiveXor); -#endif - } - - if (profile == EEsProfile) { - symbolTable.relateToOperator("shadow2DEXT", EOpTexture); - symbolTable.relateToOperator("shadow2DProjEXT", EOpTextureProj); - } } switch(language) { @@ -8562,13 +5040,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion #ifdef AMD_EXTENSIONS if (profile != EEsProfile) symbolTable.relateToOperator("interpolateAtVertexAMD", EOpInterpolateAtVertex); -#endif break; +#endif case EShLangCompute: - symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); - symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); - symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared); + symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); + symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); break; default: @@ -8578,7 +5055,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion // // 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 +// 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. @@ -8604,9 +5081,9 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion if (version == 100 || IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && profile != EEsProfile && version < 420)) { TPrecisionQualifier pq = profile == EEsProfile ? EpqMedium : EpqNone; TType fragData(EbtFloat, EvqFragColor, pq, 4); - TArraySizes* arraySizes = new TArraySizes; - arraySizes->addInnerSize(resources.maxDrawBuffers); - fragData.transferArraySizes(arraySizes); + TArraySizes& arraySizes = *new TArraySizes; + arraySizes.addInnerSize(resources.maxDrawBuffers); + fragData.newArraySizes(arraySizes); symbolTable.insert(*new TVariable(NewPoolTString("gl_FragData"), fragData)); SpecialQualifier("gl_FragData", EvqFragColor, EbvFragData, symbolTable); } diff --git a/deps/glslang-new/glslang/MachineIndependent/Initialize.h b/deps/glslang/glslang-old/glslang/MachineIndependent/Initialize.h similarity index 69% rename from deps/glslang-new/glslang/MachineIndependent/Initialize.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/Initialize.h index b5de324233..a61c6b408a 100644 --- a/deps/glslang-new/glslang/MachineIndependent/Initialize.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Initialize.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013-2016 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013-2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _INITIALIZE_INCLUDED_ @@ -67,6 +67,7 @@ public: virtual const TString& getStageString(EShLanguage language) const { return stageBuiltins[language]; } virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable) = 0; + virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) = 0; protected: @@ -88,15 +89,16 @@ public: 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); protected: void add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion); - void addSubpassSampling(TSampler, const TString& typeName, int version, EProfile profile); - void addQueryFunctions(TSampler, const TString& typeName, int version, EProfile profile); - void addImageFunctions(TSampler, const TString& typeName, int version, EProfile profile); - void addSamplingFunctions(TSampler, const TString& typeName, int version, EProfile profile); - void addGatherFunctions(TSampler, const TString& typeName, int version, EProfile profile); + void addSubpassSampling(TSampler, TString& typeName, int version, EProfile profile); + void addQueryFunctions(TSampler, TString& typeName, int version, EProfile profile); + void addImageFunctions(TSampler, TString& typeName, int version, EProfile profile); + void addSamplingFunctions(TSampler, TString& typeName, int version, EProfile profile); + void addGatherFunctions(TSampler, TString& typeName, int version, EProfile profile); // Helpers for making textual representations of the permutations // of texturing/imaging functions. @@ -105,6 +107,7 @@ protected: int dimMap[EsdNumDims]; }; + } // end namespace glslang #endif // _INITIALIZE_INCLUDED_ diff --git a/deps/glslang-new/glslang/MachineIndependent/IntermTraverse.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/IntermTraverse.cpp similarity index 86% rename from deps/glslang-new/glslang/MachineIndependent/IntermTraverse.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/IntermTraverse.cpp index f46010b712..b910f47388 100644 --- a/deps/glslang-new/glslang/MachineIndependent/IntermTraverse.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/IntermTraverse.cpp @@ -1,13 +1,13 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (c) 2002-2010 The ANGLE Project Authors. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013 LunarG, Inc. +//Copyright (c) 2002-2010 The ANGLE Project Authors. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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/intermediate.h" diff --git a/deps/glslang-new/glslang/MachineIndependent/Intermediate.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/Intermediate.cpp similarity index 57% rename from deps/glslang-new/glslang/MachineIndependent/Intermediate.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/Intermediate.cpp index de722179c7..9b6d4c627f 100644 --- a/deps/glslang-new/glslang/MachineIndependent/Intermediate.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Intermediate.cpp @@ -1,14 +1,13 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2015 LunarG, Inc. -// Copyright (C) 2015-2016 Google, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2015 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -22,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -47,7 +46,6 @@ #include #include -#include namespace glslang { @@ -120,17 +118,20 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn return nullptr; // Try converting the children's base types to compatible types. - auto children = addConversion(op, left, right); - left = std::get<0>(children); - right = std::get<1>(children); - - if (left == nullptr || right == nullptr) - return nullptr; + TIntermTyped* child = addConversion(op, left->getType(), right); + if (child) + right = child; + else { + child = addConversion(op, right->getType(), left); + if (child) + left = child; + else + return nullptr; + } // Convert the children's type shape to be compatible. - addBiShapeConversion(op, left, right); - if (left == nullptr || right == nullptr) - return nullptr; + right = addShapeConversion(op, left->getType(), right); + left = addShapeConversion(op, right->getType(), left); // // Need a new node holding things together. Make @@ -146,23 +147,22 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // If they are both (non-specialization) constants, they must be folded. // (Unless it's the sequence (comma) operator, but that's handled in addComma().) // - TIntermConstantUnion *leftTempConstant = node->getLeft()->getAsConstantUnion(); - TIntermConstantUnion *rightTempConstant = node->getRight()->getAsConstantUnion(); + TIntermConstantUnion *leftTempConstant = left->getAsConstantUnion(); + TIntermConstantUnion *rightTempConstant = right->getAsConstantUnion(); if (leftTempConstant && rightTempConstant) { TIntermTyped* folded = leftTempConstant->fold(node->getOp(), rightTempConstant); if (folded) return folded; } - // If can propagate spec-constantness and if the operation is an allowed - // specialization-constant operation, make a spec-constant. - if (specConstantPropagates(*node->getLeft(), *node->getRight()) && isSpecializationOperation(*node)) - node->getWritableType().getQualifier().makeSpecConstant(); - - // If must propagate nonuniform, make a nonuniform. - if ((node->getLeft()->getQualifier().nonUniform || node->getRight()->getQualifier().nonUniform) && - isNonuniformPropagating(node->getOp())) - node->getWritableType().getQualifier().nonUniform = true; + // If either is a specialization constant, while the other is + // a constant (or specialization constant), the result is still + // a specialization constant, if the operation is an allowed + // specialization-constant operation. + if (( left->getType().getQualifier().isSpecConstant() && right->getType().getQualifier().isConstant()) || + (right->getType().getQualifier().isSpecConstant() && left->getType().getQualifier().isConstant())) + if (isSpecializationOperation(*node)) + node->getWritableType().getQualifier().makeSpecConstant(); return node; } @@ -192,7 +192,7 @@ TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TI node->setType(type); return node; } - + // // Low level: add unary node (no promotions or other argument modifications) // @@ -242,7 +242,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm return nullptr; // convert shape - right = addUniShapeConversion(op, left->getType(), right); + right = addShapeConversion(op, left->getType(), right); // build the node TIntermBinary* node = addBinaryNode(op, left, right, loc); @@ -286,7 +286,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo if (source == EShSourceHlsl) { break; // HLSL can promote logical not } - + if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) { return nullptr; } @@ -307,10 +307,6 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TBasicType newType = EbtVoid; switch (op) { - case EOpConstructInt8: newType = EbtInt8; break; - case EOpConstructUint8: newType = EbtUint8; break; - case EOpConstructInt16: newType = EbtInt16; break; - case EOpConstructUint16: newType = EbtUint16; break; case EOpConstructInt: newType = EbtInt; break; case EOpConstructUint: newType = EbtUint; break; case EOpConstructInt64: newType = EbtInt64; break; @@ -318,7 +314,9 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: newType = EbtBool; break; case EOpConstructFloat: newType = EbtFloat; break; case EOpConstructDouble: newType = EbtDouble; break; +#ifdef AMD_EXTENSIONS case EOpConstructFloat16: newType = EbtFloat16; break; +#endif default: break; // some compilers want this } @@ -337,10 +335,6 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TODO: but, did this bypass constant folding? // switch (op) { - case EOpConstructInt8: - case EOpConstructUint8: - case EOpConstructInt16: - case EOpConstructUint16: case EOpConstructInt: case EOpConstructUint: case EOpConstructInt64: @@ -348,7 +342,9 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: case EOpConstructFloat: case EOpConstructDouble: +#ifdef AMD_EXTENSIONS case EOpConstructFloat16: +#endif return child; default: break; // some compilers want this } @@ -364,23 +360,18 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo node->updatePrecision(); // If it's a (non-specialization) constant, it must be folded. - if (node->getOperand()->getAsConstantUnion()) - return node->getOperand()->getAsConstantUnion()->fold(op, node->getType()); + if (child->getAsConstantUnion()) + return child->getAsConstantUnion()->fold(op, node->getType()); // If it's a specialization constant, the result is too, // if the operation is allowed for specialization constants. - if (node->getOperand()->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*node)) + if (child->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*node)) node->getWritableType().getQualifier().makeSpecConstant(); - // If must propagate nonuniform, make a nonuniform. - if (node->getOperand()->getQualifier().nonUniform && isNonuniformPropagating(node->getOp())) - node->getWritableType().getQualifier().nonUniform = true; - return node; } -TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOperator op, bool unary, - TIntermNode* childNode, const TType& returnType) +TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOperator op, bool unary, TIntermNode* childNode, const TType& returnType) { if (unary) { // @@ -424,7 +415,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o // // Make sure we have an aggregate. If not turn it into one. // - if (node != nullptr) { + if (node) { aggNode = node->getAsAggregate(); if (aggNode == nullptr || aggNode->getOp() != EOpNull) { // @@ -450,14 +441,27 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o return fold(aggNode); } -bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const +// +// Convert the node's type to the given type, as allowed by the operation involved: 'op'. +// For implicit conversions, 'op' is not the requested conversion, it is the explicit +// operation requiring the implicit conversion. +// +// Returns a node representing the conversion, which could be the same +// node passed in if no conversion was needed. +// +// Generally, this is focused on basic type conversion, not shape conversion. +// See addShapeConversion(). +// +// Return nullptr if a conversion can't be done. +// +TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const { // // Does the base type even allow the operation? // switch (node->getBasicType()) { case EbtVoid: - return false; + return nullptr; case EbtAtomicUint: case EbtSampler: // opaque types can be passed to functions @@ -470,401 +474,16 @@ bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const // samplers can get assigned via a sampler constructor // (well, not yet, but code in the rest of this function is ready for it) - if (node->getBasicType() == EbtSampler && op == EOpAssign && + if (node->getBasicType() == EbtSampler && op == EOpAssign && node->getAsOperator() != nullptr && node->getAsOperator()->getOp() == EOpConstructTextureSampler) break; // otherwise, opaque types can't even be operated on, let alone converted - return false; - default: - break; - } - - return true; -} - -// This is 'mechanism' here, it does any conversion told. -// It is about basic type, not about shape. -// The policy comes from the shader or the calling code. -TIntermUnary* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const -{ - // - // Add a new newNode for the conversion. - // - TIntermUnary* newNode = nullptr; - - TOperator newOp = EOpNull; - - switch (convertTo) { - case EbtDouble: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToDouble; break; - case EbtUint8: newOp = EOpConvUint8ToDouble; break; - case EbtInt16: newOp = EOpConvInt16ToDouble; break; - case EbtUint16: newOp = EOpConvUint16ToDouble; break; - case EbtInt: newOp = EOpConvIntToDouble; break; - case EbtUint: newOp = EOpConvUintToDouble; break; - case EbtBool: newOp = EOpConvBoolToDouble; break; - case EbtFloat: newOp = EOpConvFloatToDouble; break; - case EbtFloat16: newOp = EOpConvFloat16ToDouble; break; - case EbtInt64: newOp = EOpConvInt64ToDouble; break; - case EbtUint64: newOp = EOpConvUint64ToDouble; break; - default: - return nullptr; - } - break; - case EbtFloat: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToFloat; break; - case EbtUint8: newOp = EOpConvUint8ToFloat; break; - case EbtInt16: newOp = EOpConvInt16ToFloat; break; - case EbtUint16: newOp = EOpConvUint16ToFloat; break; - case EbtInt: newOp = EOpConvIntToFloat; break; - case EbtUint: newOp = EOpConvUintToFloat; break; - case EbtBool: newOp = EOpConvBoolToFloat; break; - case EbtDouble: newOp = EOpConvDoubleToFloat; break; - case EbtFloat16: newOp = EOpConvFloat16ToFloat; break; - case EbtInt64: newOp = EOpConvInt64ToFloat; break; - case EbtUint64: newOp = EOpConvUint64ToFloat; break; - default: - return nullptr; - } - break; - case EbtFloat16: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToFloat16; break; - case EbtUint8: newOp = EOpConvUint8ToFloat16; break; - case EbtInt16: newOp = EOpConvInt16ToFloat16; break; - case EbtUint16: newOp = EOpConvUint16ToFloat16; break; - case EbtInt: newOp = EOpConvIntToFloat16; break; - case EbtUint: newOp = EOpConvUintToFloat16; break; - case EbtBool: newOp = EOpConvBoolToFloat16; break; - case EbtFloat: newOp = EOpConvFloatToFloat16; break; - case EbtDouble: newOp = EOpConvDoubleToFloat16; break; - case EbtInt64: newOp = EOpConvInt64ToFloat16; break; - case EbtUint64: newOp = EOpConvUint64ToFloat16; break; - default: - return nullptr; - } - break; - case EbtBool: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToBool; break; - case EbtUint8: newOp = EOpConvUint8ToBool; break; - case EbtInt16: newOp = EOpConvInt16ToBool; break; - case EbtUint16: newOp = EOpConvUint16ToBool; break; - case EbtInt: newOp = EOpConvIntToBool; break; - case EbtUint: newOp = EOpConvUintToBool; break; - case EbtFloat: newOp = EOpConvFloatToBool; break; - case EbtDouble: newOp = EOpConvDoubleToBool; break; - case EbtFloat16: newOp = EOpConvFloat16ToBool; break; - case EbtInt64: newOp = EOpConvInt64ToBool; break; - case EbtUint64: newOp = EOpConvUint64ToBool; break; - default: - return nullptr; - } - break; - case EbtInt8: - switch (node->getBasicType()) { - case EbtUint8: newOp = EOpConvUint8ToInt8; break; - case EbtInt16: newOp = EOpConvInt16ToInt8; break; - case EbtUint16: newOp = EOpConvUint16ToInt8; break; - case EbtInt: newOp = EOpConvIntToInt8; break; - case EbtUint: newOp = EOpConvUintToInt8; break; - case EbtInt64: newOp = EOpConvInt64ToInt8; break; - case EbtUint64: newOp = EOpConvUint64ToInt8; break; - case EbtBool: newOp = EOpConvBoolToInt8; break; - case EbtFloat: newOp = EOpConvFloatToInt8; break; - case EbtDouble: newOp = EOpConvDoubleToInt8; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt8; break; - default: - return nullptr; - } - break; - case EbtUint8: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToUint8; break; - case EbtInt16: newOp = EOpConvInt16ToUint8; break; - case EbtUint16: newOp = EOpConvUint16ToUint8; break; - case EbtInt: newOp = EOpConvIntToUint8; break; - case EbtUint: newOp = EOpConvUintToUint8; break; - case EbtInt64: newOp = EOpConvInt64ToUint8; break; - case EbtUint64: newOp = EOpConvUint64ToUint8; break; - case EbtBool: newOp = EOpConvBoolToUint8; break; - case EbtFloat: newOp = EOpConvFloatToUint8; break; - case EbtDouble: newOp = EOpConvDoubleToUint8; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint8; break; - default: - return nullptr; - } - break; - - case EbtInt16: - switch (node->getBasicType()) { - case EbtUint8: newOp = EOpConvUint8ToInt16; break; - case EbtInt8: newOp = EOpConvInt8ToInt16; break; - case EbtUint16: newOp = EOpConvUint16ToInt16; break; - case EbtInt: newOp = EOpConvIntToInt16; break; - case EbtUint: newOp = EOpConvUintToInt16; break; - case EbtInt64: newOp = EOpConvInt64ToInt16; break; - case EbtUint64: newOp = EOpConvUint64ToInt16; break; - case EbtBool: newOp = EOpConvBoolToInt16; break; - case EbtFloat: newOp = EOpConvFloatToInt16; break; - case EbtDouble: newOp = EOpConvDoubleToInt16; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt16; break; - default: - return nullptr; - } - break; - case EbtUint16: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToUint16; break; - case EbtUint8: newOp = EOpConvUint8ToUint16; break; - case EbtInt16: newOp = EOpConvInt16ToUint16; break; - case EbtInt: newOp = EOpConvIntToUint16; break; - case EbtUint: newOp = EOpConvUintToUint16; break; - case EbtInt64: newOp = EOpConvInt64ToUint16; break; - case EbtUint64: newOp = EOpConvUint64ToUint16; break; - case EbtBool: newOp = EOpConvBoolToUint16; break; - case EbtFloat: newOp = EOpConvFloatToUint16; break; - case EbtDouble: newOp = EOpConvDoubleToUint16; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint16; break; - default: - return nullptr; - } - break; - - case EbtInt: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToInt; break; - case EbtUint8: newOp = EOpConvUint8ToInt; break; - case EbtInt16: newOp = EOpConvInt16ToInt; break; - case EbtUint16: newOp = EOpConvUint16ToInt; break; - case EbtUint: newOp = EOpConvUintToInt; break; - case EbtBool: newOp = EOpConvBoolToInt; break; - case EbtFloat: newOp = EOpConvFloatToInt; break; - case EbtDouble: newOp = EOpConvDoubleToInt; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt; break; - case EbtInt64: newOp = EOpConvInt64ToInt; break; - case EbtUint64: newOp = EOpConvUint64ToInt; break; - default: - return nullptr; - } - break; - case EbtUint: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToUint; break; - case EbtUint8: newOp = EOpConvUint8ToUint; break; - case EbtInt16: newOp = EOpConvInt16ToUint; break; - case EbtUint16: newOp = EOpConvUint16ToUint; break; - case EbtInt: newOp = EOpConvIntToUint; break; - case EbtBool: newOp = EOpConvBoolToUint; break; - case EbtFloat: newOp = EOpConvFloatToUint; break; - case EbtDouble: newOp = EOpConvDoubleToUint; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint; break; - case EbtInt64: newOp = EOpConvInt64ToUint; break; - case EbtUint64: newOp = EOpConvUint64ToUint; break; - default: - return nullptr; - } - break; - case EbtInt64: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToInt64; break; - case EbtUint8: newOp = EOpConvUint8ToInt64; break; - case EbtInt16: newOp = EOpConvInt16ToInt64; break; - case EbtUint16: newOp = EOpConvUint16ToInt64; break; - case EbtInt: newOp = EOpConvIntToInt64; break; - case EbtUint: newOp = EOpConvUintToInt64; break; - case EbtBool: newOp = EOpConvBoolToInt64; break; - case EbtFloat: newOp = EOpConvFloatToInt64; break; - case EbtDouble: newOp = EOpConvDoubleToInt64; break; - case EbtFloat16: newOp = EOpConvFloat16ToInt64; break; - case EbtUint64: newOp = EOpConvUint64ToInt64; break; - default: - return nullptr; - } - break; - case EbtUint64: - switch (node->getBasicType()) { - case EbtInt8: newOp = EOpConvInt8ToUint64; break; - case EbtUint8: newOp = EOpConvUint8ToUint64; break; - case EbtInt16: newOp = EOpConvInt16ToUint64; break; - case EbtUint16: newOp = EOpConvUint16ToUint64; break; - case EbtInt: newOp = EOpConvIntToUint64; break; - case EbtUint: newOp = EOpConvUintToUint64; break; - case EbtBool: newOp = EOpConvBoolToUint64; break; - case EbtFloat: newOp = EOpConvFloatToUint64; break; - case EbtDouble: newOp = EOpConvDoubleToUint64; break; - case EbtFloat16: newOp = EOpConvFloat16ToUint64; break; - case EbtInt64: newOp = EOpConvInt64ToUint64; break; - default: - return nullptr; - } - break; - default: return nullptr; - } - - TType newType(convertTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); - newNode = addUnaryNode(newOp, node, node->getLoc(), newType); - - // TODO: it seems that some unary folding operations should occur here, but are not - - // Propagate specialization-constant-ness, if allowed - if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode)) - newNode->getWritableType().getQualifier().makeSpecConstant(); - - return newNode; -} - -// For converting a pair of operands to a binary operation to compatible -// types with each other, relative to the operation in 'op'. -// This does not cover assignment operations, which is asymmetric in that the -// left type is not changeable. -// See addConversion(op, type, node) for assignments and unary operation -// conversions. -// -// Generally, this is focused on basic type conversion, not shape conversion. -// See addShapeConversion() for shape conversions. -// -// Returns the converted pair of nodes. -// Returns when there is no conversion. -std::tuple -TIntermediate::addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* node1) const -{ - if (!isConversionAllowed(op, node0) || !isConversionAllowed(op, node1)) - return std::make_tuple(nullptr, nullptr); - - if (node0->getType() != node1->getType()) { - // If differing structure, then no conversions. - if (node0->isStruct() || node1->isStruct()) - return std::make_tuple(nullptr, nullptr); - - // If differing arrays, then no conversions. - if (node0->getType().isArray() || node1->getType().isArray()) - return std::make_tuple(nullptr, nullptr); - } - - auto promoteTo = std::make_tuple(EbtNumTypes, EbtNumTypes); - - switch (op) { - // - // List all the binary ops that can implicitly convert one operand to the other's type; - // This implements the 'policy' for implicit type conversion. - // - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - case EOpEqual: - case EOpNotEqual: - - case EOpAdd: - case EOpSub: - case EOpMul: - case EOpDiv: - case EOpMod: - - case EOpVectorTimesScalar: - case EOpVectorTimesMatrix: - case EOpMatrixTimesVector: - case EOpMatrixTimesScalar: - - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - - case EOpSequence: // used by ?: - - if (node0->getBasicType() == node1->getBasicType()) - return std::make_tuple(node0, node1); - - promoteTo = getConversionDestinatonType(node0->getBasicType(), node1->getBasicType(), op); - if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes) - return std::make_tuple(nullptr, nullptr); - - break; - - case EOpLogicalAnd: - case EOpLogicalOr: - case EOpLogicalXor: - if (source == EShSourceHlsl) - promoteTo = std::make_tuple(EbtBool, EbtBool); - else - return std::make_tuple(node0, node1); - break; - - // There are no conversions needed for GLSL; the shift amount just needs to be an - // integer type, as does the base. - // HLSL can promote bools to ints to make this work. - case EOpLeftShift: - case EOpRightShift: - if (source == EShSourceHlsl) { - TBasicType node0BasicType = node0->getBasicType(); - if (node0BasicType == EbtBool) - node0BasicType = EbtInt; - if (node1->getBasicType() == EbtBool) - promoteTo = std::make_tuple(node0BasicType, EbtInt); - else - promoteTo = std::make_tuple(node0BasicType, node1->getBasicType()); - } else { - if (isTypeInt(node0->getBasicType()) && isTypeInt(node1->getBasicType())) - return std::make_tuple(node0, node1); - else - return std::make_tuple(nullptr, nullptr); - } - break; - default: - if (node0->getType() == node1->getType()) - return std::make_tuple(node0, node1); - - return std::make_tuple(nullptr, nullptr); + break; } - TIntermTyped* newNode0; - TIntermTyped* newNode1; - - if (std::get<0>(promoteTo) != node0->getType().getBasicType()) { - if (node0->getAsConstantUnion()) - newNode0 = promoteConstantUnion(std::get<0>(promoteTo), node0->getAsConstantUnion()); - else - newNode0 = createConversion(std::get<0>(promoteTo), node0); - } else - newNode0 = node0; - - if (std::get<1>(promoteTo) != node1->getType().getBasicType()) { - if (node1->getAsConstantUnion()) - newNode1 = promoteConstantUnion(std::get<1>(promoteTo), node1->getAsConstantUnion()); - else - newNode1 = createConversion(std::get<1>(promoteTo), node1); - } else - newNode1 = node1; - - return std::make_tuple(newNode0, newNode1); -} - -// -// Convert the node's type to the given type, as allowed by the operation involved: 'op'. -// For implicit conversions, 'op' is not the requested conversion, it is the explicit -// operation requiring the implicit conversion. -// -// Binary operation conversions should be handled by addConversion(op, node, node), not here. -// -// Returns a node representing the conversion, which could be the same -// node passed in if no conversion was needed. -// -// Generally, this is focused on basic type conversion, not shape conversion. -// See addShapeConversion() for shape conversions. -// -// Return nullptr if a conversion can't be done. -// -TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const -{ - if (!isConversionAllowed(op, node)) - return nullptr; - // Otherwise, if types are identical, no problem if (type == node->getType()) return node; @@ -895,21 +514,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpConstructDouble: promoteTo = EbtDouble; break; +#ifdef AMD_EXTENSIONS case EOpConstructFloat16: promoteTo = EbtFloat16; break; - case EOpConstructInt8: - promoteTo = EbtInt8; - break; - case EOpConstructUint8: - promoteTo = EbtUint8; - break; - case EOpConstructInt16: - promoteTo = EbtInt16; - break; - case EOpConstructUint16: - promoteTo = EbtUint16; - break; +#endif case EOpConstructInt: promoteTo = EbtInt; break; @@ -923,10 +532,40 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt promoteTo = EbtUint64; break; + // + // List all the binary ops that can implicitly convert one operand to the other's type; + // This implements the 'policy' for implicit type conversion. + // + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + case EOpEqual: + case EOpNotEqual: + + case EOpAdd: + case EOpSub: + case EOpMul: + case EOpDiv: + case EOpMod: + + case EOpVectorTimesScalar: + case EOpVectorTimesMatrix: + case EOpMatrixTimesVector: + case EOpMatrixTimesScalar: + + case EOpAnd: + case EOpInclusiveOr: + case EOpExclusiveOr: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: case EOpLogicalNot: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: case EOpFunctionCall: - case EOpReturn: case EOpAssign: case EOpAddAssign: @@ -936,9 +575,6 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpMatrixTimesScalarAssign: case EOpDivAssign: case EOpModAssign: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: case EOpAtan: case EOpClamp: @@ -967,28 +603,32 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt if (type.getBasicType() == node->getType().getBasicType()) return node; - if (canImplicitlyPromote(node->getBasicType(), type.getBasicType(), op)) + if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op)) promoteTo = type.getBasicType(); else - return nullptr; + return nullptr; + break; - // For GLSL, there are no conversions needed; the shift amount just needs to be an - // integer type, as do the base/result. - // HLSL can convert the shift from a bool to an int. + // Shifts can have mixed types as long as they are integer, without converting. + // It's the left operand's type that determines the resulting type, so no issue + // with assign shift ops either. + case EOpLeftShift: + case EOpRightShift: case EOpLeftShiftAssign: case EOpRightShiftAssign: - { - if (source == EShSourceHlsl && node->getType().getBasicType() == EbtBool) - promoteTo = type.getBasicType(); - else { - if (isTypeInt(type.getBasicType()) && isTypeInt(node->getBasicType())) - return node; - else - return nullptr; - } - break; - } + if ((type.getBasicType() == EbtInt || + type.getBasicType() == EbtUint || + type.getBasicType() == EbtInt64 || + type.getBasicType() == EbtUint64) && + (node->getType().getBasicType() == EbtInt || + node->getType().getBasicType() == EbtUint || + node->getType().getBasicType() == EbtInt64 || + node->getType().getBasicType() == EbtUint64)) + + return node; + else + return nullptr; default: // default is to require a match; all exceptions should have case statements above @@ -1005,156 +645,149 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // // Add a new newNode for the conversion. // - TIntermUnary* newNode = createConversion(promoteTo, node); + TIntermUnary* newNode = nullptr; + + TOperator newOp = EOpNull; + + // This is 'mechanism' here, it does any conversion told. The policy comes + // from the shader or the above code. + switch (promoteTo) { + case EbtDouble: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToDouble; break; + case EbtUint: newOp = EOpConvUintToDouble; break; + case EbtBool: newOp = EOpConvBoolToDouble; break; + case EbtFloat: newOp = EOpConvFloatToDouble; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToDouble; break; +#endif + case EbtInt64: newOp = EOpConvInt64ToDouble; break; + case EbtUint64: newOp = EOpConvUint64ToDouble; break; + default: + return nullptr; + } + break; + case EbtFloat: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToFloat; break; + case EbtUint: newOp = EOpConvUintToFloat; break; + case EbtBool: newOp = EOpConvBoolToFloat; break; + case EbtDouble: newOp = EOpConvDoubleToFloat; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToFloat; break; +#endif + case EbtInt64: newOp = EOpConvInt64ToFloat; break; + case EbtUint64: newOp = EOpConvUint64ToFloat; break; + default: + return nullptr; + } + break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToFloat16; break; + case EbtUint: newOp = EOpConvUintToFloat16; break; + case EbtBool: newOp = EOpConvBoolToFloat16; break; + case EbtFloat: newOp = EOpConvFloatToFloat16; break; + case EbtDouble: newOp = EOpConvDoubleToFloat16; break; + case EbtInt64: newOp = EOpConvInt64ToFloat16; break; + case EbtUint64: newOp = EOpConvUint64ToFloat16; break; + default: + return nullptr; + } + break; +#endif + case EbtBool: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToBool; break; + case EbtUint: newOp = EOpConvUintToBool; break; + case EbtFloat: newOp = EOpConvFloatToBool; break; + case EbtDouble: newOp = EOpConvDoubleToBool; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToBool; break; +#endif + case EbtInt64: newOp = EOpConvInt64ToBool; break; + case EbtUint64: newOp = EOpConvUint64ToBool; break; + default: + return nullptr; + } + break; + case EbtInt: + switch (node->getBasicType()) { + case EbtUint: newOp = EOpConvUintToInt; break; + case EbtBool: newOp = EOpConvBoolToInt; break; + case EbtFloat: newOp = EOpConvFloatToInt; break; + case EbtDouble: newOp = EOpConvDoubleToInt; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToInt; break; +#endif + case EbtInt64: newOp = EOpConvInt64ToInt; break; + case EbtUint64: newOp = EOpConvUint64ToInt; break; + default: + return nullptr; + } + break; + case EbtUint: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToUint; break; + case EbtBool: newOp = EOpConvBoolToUint; break; + case EbtFloat: newOp = EOpConvFloatToUint; break; + case EbtDouble: newOp = EOpConvDoubleToUint; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToUint; break; +#endif + case EbtInt64: newOp = EOpConvInt64ToUint; break; + case EbtUint64: newOp = EOpConvUint64ToUint; break; + default: + return nullptr; + } + break; + case EbtInt64: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToInt64; break; + case EbtUint: newOp = EOpConvUintToInt64; break; + case EbtBool: newOp = EOpConvBoolToInt64; break; + case EbtFloat: newOp = EOpConvFloatToInt64; break; + case EbtDouble: newOp = EOpConvDoubleToInt64; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToInt64; break; +#endif + case EbtUint64: newOp = EOpConvUint64ToInt64; break; + default: + return nullptr; + } + break; + case EbtUint64: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToUint64; break; + case EbtUint: newOp = EOpConvUintToUint64; break; + case EbtBool: newOp = EOpConvBoolToUint64; break; + case EbtFloat: newOp = EOpConvFloatToUint64; break; + case EbtDouble: newOp = EOpConvDoubleToUint64; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToUint64; break; +#endif + case EbtInt64: newOp = EOpConvInt64ToUint64; break; + default: + return nullptr; + } + break; + default: + return nullptr; + } + + TType newType(promoteTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); + newNode = addUnaryNode(newOp, node, node->getLoc(), newType); + + // TODO: it seems that some unary folding operations should occur here, but are not + + // Propagate specialization-constant-ness, if allowed + if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode)) + newNode->getWritableType().getQualifier().makeSpecConstant(); return newNode; } -// Convert the node's shape of type for the given type, as allowed by the -// operation involved: 'op'. This is for situations where there is only one -// direction to consider doing the shape conversion. -// -// This implements policy, it call addShapeConversion() for the mechanism. -// -// Generally, the AST represents allowed GLSL shapes, so this isn't needed -// for GLSL. Bad shapes are caught in conversion or promotion. -// -// Return 'node' if no conversion was done. Promotion handles final shape -// checking. -// -TIntermTyped* TIntermediate::addUniShapeConversion(TOperator op, const TType& type, TIntermTyped* node) -{ - // some source languages don't do this - switch (source) { - case EShSourceHlsl: - break; - case EShSourceGlsl: - default: - return node; - } - - // some operations don't do this - switch (op) { - case EOpFunctionCall: - case EOpReturn: - break; - - case EOpMulAssign: - // want to support vector *= scalar native ops in AST and lower, not smear, similarly for - // matrix *= scalar, etc. - - case EOpAddAssign: - case EOpSubAssign: - case EOpDivAssign: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: - case EOpRightShiftAssign: - case EOpLeftShiftAssign: - if (node->getVectorSize() == 1) - return node; - break; - - case EOpAssign: - break; - - case EOpMix: - break; - - default: - return node; - } - - return addShapeConversion(type, node); -} - -// Convert the nodes' shapes to be compatible for the operation 'op'. -// -// This implements policy, it call addShapeConversion() for the mechanism. -// -// Generally, the AST represents allowed GLSL shapes, so this isn't needed -// for GLSL. Bad shapes are caught in conversion or promotion. -// -void TIntermediate::addBiShapeConversion(TOperator op, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode) -{ - // some source languages don't do this - switch (source) { - case EShSourceHlsl: - break; - case EShSourceGlsl: - default: - return; - } - - // some operations don't do this - // 'break' will mean attempt bidirectional conversion - switch (op) { - case EOpMulAssign: - case EOpAssign: - case EOpAddAssign: - case EOpSubAssign: - case EOpDivAssign: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: - case EOpRightShiftAssign: - case EOpLeftShiftAssign: - // switch to unidirectional conversion (the lhs can't change) - rhsNode = addUniShapeConversion(op, lhsNode->getType(), rhsNode); - return; - - case EOpAdd: - case EOpSub: - case EOpMul: - case EOpDiv: - // want to support vector * scalar native ops in AST and lower, not smear, similarly for - // matrix * vector, etc. - if (lhsNode->getVectorSize() == 1 || rhsNode->getVectorSize() == 1) - return; - break; - - case EOpRightShift: - case EOpLeftShift: - // can natively support the right operand being a scalar and the left a vector, - // but not the reverse - if (rhsNode->getVectorSize() == 1) - return; - break; - - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - - case EOpEqual: - case EOpNotEqual: - - case EOpLogicalAnd: - case EOpLogicalOr: - case EOpLogicalXor: - - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - - case EOpMix: - break; - - default: - return; - } - - // Do bidirectional conversions - if (lhsNode->getType().isScalarOrVec1() || rhsNode->getType().isScalarOrVec1()) { - if (lhsNode->getType().isScalarOrVec1()) - lhsNode = addShapeConversion(rhsNode->getType(), lhsNode); - else - rhsNode = addShapeConversion(lhsNode->getType(), rhsNode); - } - lhsNode = addShapeConversion(rhsNode->getType(), lhsNode); - rhsNode = addShapeConversion(lhsNode->getType(), rhsNode); -} - // Convert the node's shape of type for the given type, as allowed by the // operation involved: 'op'. // @@ -1164,11 +797,35 @@ void TIntermediate::addBiShapeConversion(TOperator op, TIntermTyped*& lhsNode, T // Return 'node' if no conversion was done. Promotion handles final shape // checking. // -TIntermTyped* TIntermediate::addShapeConversion(const TType& type, TIntermTyped* node) +TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, TIntermTyped* node) { - // no conversion needed - if (node->getType() == type) + // some source languages don't do this + switch (source) { + case EShSourceHlsl: + break; + case EShSourceGlsl: + default: return node; + } + + // some operations don't do this + switch (op) { + case EOpAssign: + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + case EOpEqual: + case EOpNotEqual: + case EOpFunctionCall: + case EOpReturn: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: + break; + default: + return node; + } // structures and arrays don't change shape, either to or from if (node->getType().isStruct() || node->getType().isArray() || @@ -1178,203 +835,17 @@ TIntermTyped* TIntermediate::addShapeConversion(const TType& type, TIntermTyped* // The new node that handles the conversion TOperator constructorOp = mapTypeToConstructorOp(type); - // HLSL has custom semantics for scalar->mat shape conversions. - if (source == EShSourceHlsl) { - if (node->getType().isScalarOrVec1() && type.isMatrix()) { - - // HLSL semantics: the scalar (or vec1) is replicated to every component of the matrix. Left to its - // own devices, the constructor from a scalar would populate the diagonal. This forces replication - // to every matrix element. - - // Note that if the node is complex (e.g, a function call), we don't want to duplicate it here - // repeatedly, so we copy it to a temp, then use the temp. - const int matSize = type.getMatrixRows() * type.getMatrixCols(); - TIntermAggregate* rhsAggregate = new TIntermAggregate(); - - const bool isSimple = (node->getAsSymbolNode() != nullptr) || (node->getAsConstantUnion() != nullptr); - - if (!isSimple) { - assert(0); // TODO: use node replicator service when available. - } - - for (int x=0; xgetSequence().push_back(node); - - return setAggregateOperator(rhsAggregate, constructorOp, type, node->getLoc()); - } - } - - // scalar -> vector or vec1 -> vector or - // vector -> scalar or - // bigger vector -> smaller vector - if ((node->getType().isScalarOrVec1() && type.isVector()) || - (node->getType().isVector() && type.isScalar()) || - (node->isVector() && type.isVector() && node->getVectorSize() > type.getVectorSize())) + // scalar -> smeared -> vector, or + // vec1 -> scalar, or + // bigger vector -> smaller vector or scalar + if ((type.isVector() && node->getType().isScalar()) || + (node->getType().isVector() && node->getVectorSize() == 1 && type.isScalar()) || + (node->getVectorSize() > type.getVectorSize() && type.isVector())) return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); return node; } -bool TIntermediate::isIntegralPromotion(TBasicType from, TBasicType to) const -{ - // integral promotions - if (to == EbtInt) { - switch(from) { - case EbtInt8: - case EbtInt16: - case EbtUint8: - case EbtUint16: - return true; - default: - break; - } - } - return false; -} - -bool TIntermediate::isFPPromotion(TBasicType from, TBasicType to) const -{ - // floating-point promotions - if (to == EbtDouble) { - switch(from) { - case EbtFloat16: - case EbtFloat: - return true; - default: - break; - } - } - return false; -} - -bool TIntermediate::isIntegralConversion(TBasicType from, TBasicType to) const -{ - switch (from) { - case EbtInt8: - switch (to) { - case EbtUint8: - case EbtInt16: - case EbtUint16: - case EbtUint: - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - case EbtUint8: - switch (to) { - case EbtInt16: - case EbtUint16: - case EbtUint: - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - case EbtInt16: - switch(to) { - case EbtUint16: - case EbtUint: - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - case EbtUint16: - switch(to) { - case EbtUint: - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - case EbtInt: - switch(to) { - case EbtUint: - return version >= 400 || (source == EShSourceHlsl); - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - case EbtUint: - switch(to) { - case EbtInt64: - case EbtUint64: - return true; - default: - break; - } - break; - case EbtInt64: - if (to == EbtUint64) { - return true; - } - break; - default: - break; - } - return false; -} - -bool TIntermediate::isFPConversion(TBasicType from, TBasicType to) const -{ - if (to == EbtFloat && from == EbtFloat16) { - return true; - } else { - return false; - } -} - -bool TIntermediate::isFPIntegralConversion(TBasicType from, TBasicType to) const -{ - switch (from) { - case EbtInt8: - case EbtUint8: - case EbtInt16: - case EbtUint16: - switch (to) { - case EbtFloat16: - case EbtFloat: - case EbtDouble: - return true; - default: - break; - } - break; - case EbtInt: - case EbtUint: - switch(to) { - case EbtFloat: - case EbtDouble: - return true; - default: - break; - } - break; - case EbtInt64: - case EbtUint64: - if (to == EbtDouble) { - return true; - } - break; - - default: - break; - } - return false; -} - // // See if the 'from' type is allowed to be implicitly converted to the // 'to' type. This is not about vector/array/struct, only about basic type. @@ -1396,16 +867,16 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat if (fromConvertable && toConvertable) { switch (op) { case EOpAndAssign: // assignments can perform arbitrary conversions - case EOpInclusiveOrAssign: // ... - case EOpExclusiveOrAssign: // ... - case EOpAssign: // ... - case EOpAddAssign: // ... - case EOpSubAssign: // ... - case EOpMulAssign: // ... - case EOpVectorTimesScalarAssign: // ... - case EOpMatrixTimesScalarAssign: // ... - case EOpDivAssign: // ... - case EOpModAssign: // ... + case EOpInclusiveOrAssign: // ... + case EOpExclusiveOrAssign: // ... + case EOpAssign: // ... + case EOpAddAssign: // ... + case EOpSubAssign: // ... + case EOpMulAssign: // ... + case EOpVectorTimesScalarAssign: // ... + case EOpMatrixTimesScalarAssign: // ... + case EOpDivAssign: // ... + case EOpModAssign: // ... case EOpReturn: // function returns can also perform arbitrary conversions case EOpFunctionCall: // conversion of a calling parameter case EOpLogicalNot: @@ -1420,337 +891,79 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat } } - bool explicitTypesEnabled = extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types) || - extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int8) || - extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int16) || - extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int32) || - extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int64) || - extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float16) || - extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float32) || - extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float64); - - if (explicitTypesEnabled) { - // integral promotions - if (isIntegralPromotion(from, to)) { - return true; - } - - // floating-point promotions - if (isFPPromotion(from, to)) { - return true; - } - - // integral conversions - if (isIntegralConversion(from, to)) { - return true; - } - - // floating-point conversions - if (isFPConversion(from, to)) { - return true; - } - - // floating-integral conversions - if (isFPIntegralConversion(from, to)) { - return true; - } - - // hlsl supported conversions - if (source == EShSourceHlsl) { - if (from == EbtBool && (to == EbtInt || to == EbtUint || to == EbtFloat)) - return true; - } - } else { - switch (to) { - case EbtDouble: - switch (from) { - case EbtInt: - case EbtUint: - case EbtInt64: - case EbtUint64: -#ifdef AMD_EXTENSIONS - case EbtInt16: - case EbtUint16: -#endif - case EbtFloat: - case EbtDouble: -#ifdef AMD_EXTENSIONS - case EbtFloat16: -#endif - return true; - default: - return false; - } - case EbtFloat: - switch (from) { - case EbtInt: - case EbtUint: -#ifdef AMD_EXTENSIONS - case EbtInt16: - case EbtUint16: -#endif - case EbtFloat: -#ifdef AMD_EXTENSIONS - case EbtFloat16: -#endif - return true; - case EbtBool: - return (source == EShSourceHlsl); - default: - return false; - } - case EbtUint: - switch (from) { - case EbtInt: - return version >= 400 || (source == EShSourceHlsl); - case EbtUint: -#ifdef AMD_EXTENSIONS - case EbtInt16: - case EbtUint16: -#endif - return true; - case EbtBool: - return (source == EShSourceHlsl); - default: - return false; - } + switch (to) { + case EbtDouble: + switch (from) { case EbtInt: - switch (from) { - case EbtInt: -#ifdef AMD_EXTENSIONS - case EbtInt16: -#endif - return true; - case EbtBool: - return (source == EShSourceHlsl); - default: - return false; - } - case EbtUint64: - switch (from) { - case EbtInt: - case EbtUint: - case EbtInt64: - case EbtUint64: -#ifdef AMD_EXTENSIONS - case EbtInt16: - case EbtUint16: -#endif - return true; - default: - return false; - } + case EbtUint: case EbtInt64: - switch (from) { - case EbtInt: - case EbtInt64: -#ifdef AMD_EXTENSIONS - case EbtInt16: -#endif - return true; - default: - return false; - } + case EbtUint64: + case EbtFloat: + case EbtDouble: #ifdef AMD_EXTENSIONS case EbtFloat16: - switch (from) { - case EbtInt16: - case EbtUint16: - case EbtFloat16: - return true; - default: - return false; - } - case EbtUint16: - switch (from) { - case EbtInt16: - case EbtUint16: - return true; - default: - return false; - } #endif - default: - return false; - } - } - - return false; -} - -static bool canSignedIntTypeRepresentAllUnsignedValues(TBasicType sintType, TBasicType uintType) { - switch(sintType) { - case EbtInt8: - switch(uintType) { - case EbtUint8: - case EbtUint16: - case EbtUint: - case EbtUint64: - return false; - default: - assert(false); - return false; - } - break; - case EbtInt16: - switch(uintType) { - case EbtUint8: return true; - case EbtUint16: - case EbtUint: - case EbtUint64: - return false; default: - assert(false); return false; } - break; + case EbtFloat: + switch (from) { + case EbtInt: + case EbtUint: + case EbtFloat: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif + return true; + case EbtBool: + return (source == EShSourceHlsl); + default: + return false; + } + case EbtUint: + switch (from) { + case EbtInt: + return version >= 400; + case EbtUint: + return true; + case EbtBool: + return (source == EShSourceHlsl); + default: + return false; + } case EbtInt: - switch(uintType) { - case EbtUint8: - case EbtUint16: + switch (from) { + case EbtInt: return true; - case EbtUint: - return false; + case EbtBool: + return (source == EShSourceHlsl); default: - assert(false); return false; } - break; - case EbtInt64: - switch(uintType) { - case EbtUint8: - case EbtUint16: + case EbtUint64: + switch (from) { + case EbtInt: case EbtUint: - return true; + case EbtInt64: case EbtUint64: - return false; + return true; + default: + return false; + } + case EbtInt64: + switch (from) { + case EbtInt: + case EbtInt64: + return true; default: - assert(false); return false; } - break; default: - assert(false); return false; } } - -static TBasicType getCorrespondingUnsignedType(TBasicType type) { - switch(type) { - case EbtInt8: - return EbtUint8; - case EbtInt16: - return EbtUint16; - case EbtInt: - return EbtUint; - case EbtInt64: - return EbtUint64; - default: - assert(false); - return EbtNumTypes; - } -} - -// Implements the following rules -// - If either operand has type float64_t or derived from float64_t, -// the other shall be converted to float64_t or derived type. -// - Otherwise, if either operand has type float32_t or derived from -// float32_t, the other shall be converted to float32_t or derived type. -// - Otherwise, if either operand has type float16_t or derived from -// float16_t, the other shall be converted to float16_t or derived type. -// - Otherwise, if both operands have integer types the following rules -// shall be applied to the operands: -// - If both operands have the same type, no further conversion -// is needed. -// - Otherwise, if both operands have signed integer types or both -// have unsigned integer types, the operand with the type of lesser -// integer conversion rank shall be converted to the type of the -// operand with greater rank. -// - Otherwise, if the operand that has unsigned integer type has rank -// greater than or equal to the rank of the type of the other -// operand, the operand with signed integer type shall be converted -// to the type of the operand with unsigned integer type. -// - Otherwise, if the type of the operand with signed integer type can -// represent all of the values of the type of the operand with -// unsigned integer type, the operand with unsigned integer type -// shall be converted to the type of the operand with signed -// integer type. -// - Otherwise, both operands shall be converted to the unsigned -// integer type corresponding to the type of the operand with signed -// integer type. - -std::tuple TIntermediate::getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const -{ - TBasicType res0 = EbtNumTypes; - TBasicType res1 = EbtNumTypes; - - if (profile == EEsProfile || version == 110) - return std::make_tuple(res0, res1);; - - if (source == EShSourceHlsl) { - if (canImplicitlyPromote(type1, type0, op)) { - res0 = type0; - res1 = type0; - } else if (canImplicitlyPromote(type0, type1, op)) { - res0 = type1; - res1 = type1; - } - return std::make_tuple(res0, res1); - } - - if ((type0 == EbtDouble && canImplicitlyPromote(type1, EbtDouble, op)) || - (type1 == EbtDouble && canImplicitlyPromote(type0, EbtDouble, op)) ) { - res0 = EbtDouble; - res1 = EbtDouble; - } else if ((type0 == EbtFloat && canImplicitlyPromote(type1, EbtFloat, op)) || - (type1 == EbtFloat && canImplicitlyPromote(type0, EbtFloat, op)) ) { - res0 = EbtFloat; - res1 = EbtFloat; - } else if ((type0 == EbtFloat16 && canImplicitlyPromote(type1, EbtFloat16, op)) || - (type1 == EbtFloat16 && canImplicitlyPromote(type0, EbtFloat16, op)) ) { - res0 = EbtFloat16; - res1 = EbtFloat16; - } else if (isTypeInt(type0) && isTypeInt(type1) && - (canImplicitlyPromote(type0, type1, op) || canImplicitlyPromote(type1, type0, op))) { - if ((isTypeSignedInt(type0) && isTypeSignedInt(type1)) || - (isTypeUnsignedInt(type0) && isTypeUnsignedInt(type1))) { - if (getTypeRank(type0) < getTypeRank(type1)) { - res0 = type1; - res1 = type1; - } else { - res0 = type0; - res1 = type0; - } - } else if (isTypeUnsignedInt(type0) && (getTypeRank(type0) > getTypeRank(type1))) { - res0 = type0; - res1 = type0; - } else if (isTypeUnsignedInt(type1) && (getTypeRank(type1) > getTypeRank(type0))) { - res0 = type1; - res1 = type1; - } else if (isTypeSignedInt(type0)) { - if (canSignedIntTypeRepresentAllUnsignedValues(type0, type1)) { - res0 = type0; - res1 = type0; - } else { - res0 = getCorrespondingUnsignedType(type0); - res1 = getCorrespondingUnsignedType(type0); - } - } else if (isTypeSignedInt(type1)) { - if (canSignedIntTypeRepresentAllUnsignedValues(type1, type0)) { - res0 = type1; - res1 = type1; - } else { - res0 = getCorrespondingUnsignedType(type1); - res1 = getCorrespondingUnsignedType(type1); - } - } - } - - return std::make_tuple(res0, res1); -} - // // Given a type, find what operation would fully construct it. // @@ -1758,9 +971,6 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const { TOperator op = EOpNull; - if (type.getQualifier().nonUniform) - return EOpConstructNonuniform; - switch (type.getBasicType()) { case EbtStruct: op = EOpConstructStruct; @@ -1846,6 +1056,7 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } } break; +#ifdef AMD_EXTENSIONS case EbtFloat16: if (type.getMatrixCols()) { switch (type.getMatrixCols()) { @@ -1885,116 +1096,23 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } } break; - case EbtInt8: - switch(type.getVectorSize()) { - case 1: op = EOpConstructInt8; break; - case 2: op = EOpConstructI8Vec2; break; - case 3: op = EOpConstructI8Vec3; break; - case 4: op = EOpConstructI8Vec4; break; - default: break; // some compilers want this - } - break; - case EbtUint8: - switch(type.getVectorSize()) { - case 1: op = EOpConstructUint8; break; - case 2: op = EOpConstructU8Vec2; break; - case 3: op = EOpConstructU8Vec3; break; - case 4: op = EOpConstructU8Vec4; break; - default: break; // some compilers want this - } - break; - case EbtInt16: - switch(type.getVectorSize()) { - case 1: op = EOpConstructInt16; break; - case 2: op = EOpConstructI16Vec2; break; - case 3: op = EOpConstructI16Vec3; break; - case 4: op = EOpConstructI16Vec4; break; - default: break; // some compilers want this - } - break; - case EbtUint16: - switch(type.getVectorSize()) { - case 1: op = EOpConstructUint16; break; - case 2: op = EOpConstructU16Vec2; break; - case 3: op = EOpConstructU16Vec3; break; - case 4: op = EOpConstructU16Vec4; break; - default: break; // some compilers want this - } - break; +#endif case EbtInt: - if (type.getMatrixCols()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructIMat2x2; break; - case 3: op = EOpConstructIMat2x3; break; - case 4: op = EOpConstructIMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructIMat3x2; break; - case 3: op = EOpConstructIMat3x3; break; - case 4: op = EOpConstructIMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructIMat4x2; break; - case 3: op = EOpConstructIMat4x3; break; - case 4: op = EOpConstructIMat4x4; break; - default: break; // some compilers want this - } - break; - } - } else { - switch(type.getVectorSize()) { - case 1: op = EOpConstructInt; break; - case 2: op = EOpConstructIVec2; break; - case 3: op = EOpConstructIVec3; break; - case 4: op = EOpConstructIVec4; break; - default: break; // some compilers want this - } + switch(type.getVectorSize()) { + case 1: op = EOpConstructInt; break; + case 2: op = EOpConstructIVec2; break; + case 3: op = EOpConstructIVec3; break; + case 4: op = EOpConstructIVec4; break; + default: break; // some compilers want this } break; case EbtUint: - if (type.getMatrixCols()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructUMat2x2; break; - case 3: op = EOpConstructUMat2x3; break; - case 4: op = EOpConstructUMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructUMat3x2; break; - case 3: op = EOpConstructUMat3x3; break; - case 4: op = EOpConstructUMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructUMat4x2; break; - case 3: op = EOpConstructUMat4x3; break; - case 4: op = EOpConstructUMat4x4; break; - default: break; // some compilers want this - } - break; - } - } else { - switch(type.getVectorSize()) { - case 1: op = EOpConstructUint; break; - case 2: op = EOpConstructUVec2; break; - case 3: op = EOpConstructUVec3; break; - case 4: op = EOpConstructUVec4; break; - default: break; // some compilers want this - } + switch(type.getVectorSize()) { + case 1: op = EOpConstructUint; break; + case 2: op = EOpConstructUVec2; break; + case 3: op = EOpConstructUVec3; break; + case 4: op = EOpConstructUVec4; break; + default: break; // some compilers want this } break; case EbtInt64: @@ -2016,41 +1134,12 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } break; case EbtBool: - if (type.getMatrixCols()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructBMat2x2; break; - case 3: op = EOpConstructBMat2x3; break; - case 4: op = EOpConstructBMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructBMat3x2; break; - case 3: op = EOpConstructBMat3x3; break; - case 4: op = EOpConstructBMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructBMat4x2; break; - case 3: op = EOpConstructBMat4x3; break; - case 4: op = EOpConstructBMat4x4; break; - default: break; // some compilers want this - } - break; - } - } else { - switch(type.getVectorSize()) { - case 1: op = EOpConstructBool; break; - case 2: op = EOpConstructBVec2; break; - case 3: op = EOpConstructBVec3; break; - case 4: op = EOpConstructBVec4; break; - default: break; // some compilers want this - } + switch(type.getVectorSize()) { + case 1: op = EOpConstructBool; break; + case 2: op = EOpConstructBVec2; break; + case 3: op = EOpConstructBVec3; break; + case 4: op = EOpConstructBVec4; break; + default: break; // some compilers want this } break; default: @@ -2073,15 +1162,15 @@ TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* r return nullptr; TIntermAggregate* aggNode = nullptr; - if (left != nullptr) + if (left) aggNode = left->getAsAggregate(); - if (aggNode == nullptr || aggNode->getOp() != EOpNull) { + if (! aggNode || aggNode->getOp() != EOpNull) { aggNode = new TIntermAggregate; - if (left != nullptr) + if (left) aggNode->getSequence().push_back(left); } - if (right != nullptr) + if (right) aggNode->getSequence().push_back(right); return aggNode; @@ -2143,7 +1232,7 @@ TIntermAggregate* TIntermediate::makeAggregate(const TSourceLoc& loc) // // Returns the selection node created. // -TIntermSelection* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePair nodePair, const TSourceLoc& loc) +TIntermNode* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePair nodePair, const TSourceLoc& loc) { // // Don't prune the false path for compile-time constants; it's needed @@ -2156,12 +1245,13 @@ TIntermSelection* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePai return node; } + TIntermTyped* TIntermediate::addComma(TIntermTyped* left, TIntermTyped* right, const TSourceLoc& loc) { // However, the lowest precedence operators of the sequence operator ( , ) and the assignment operators // ... are not included in the operators that can create a constant expression. // - // if (left->getType().getQualifier().storage == EvqConst && + //if (left->getType().getQualifier().storage == EvqConst && // right->getType().getQualifier().storage == EvqConst) { // return right; @@ -2186,70 +1276,34 @@ TIntermTyped* TIntermediate::addMethod(TIntermTyped* object, const TType& type, // // For "?:" test nodes. There are three children; a condition, // a true path, and a false path. The two paths are specified -// as separate parameters. For vector 'cond', the true and false -// are not paths, but vectors to mix. -// -// Specialization constant operations include -// - The ternary operator ( ? : ) +// as separate parameters. // // Returns the selection node created, or nullptr if one could not be. // -TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, - const TSourceLoc& loc) +TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc& loc) { - // If it's void, go to the if-then-else selection() - if (trueBlock->getBasicType() == EbtVoid && falseBlock->getBasicType() == EbtVoid) { - TIntermNodePair pair = { trueBlock, falseBlock }; - TIntermSelection* selection = addSelection(cond, pair, loc); - if (getSource() == EShSourceHlsl) - selection->setNoShortCircuit(); - - return selection; - } - // // Get compatible types. // - auto children = addConversion(EOpSequence, trueBlock, falseBlock); - trueBlock = std::get<0>(children); - falseBlock = std::get<1>(children); - - if (trueBlock == nullptr || falseBlock == nullptr) - return nullptr; - - // Handle a vector condition as a mix - if (!cond->getType().isScalarOrVec1()) { - TType targetVectorType(trueBlock->getType().getBasicType(), EvqTemporary, - cond->getType().getVectorSize()); - // smear true/false operands as needed - trueBlock = addUniShapeConversion(EOpMix, targetVectorType, trueBlock); - falseBlock = addUniShapeConversion(EOpMix, targetVectorType, falseBlock); - - // After conversion, types have to match. - if (falseBlock->getType() != trueBlock->getType()) + TIntermTyped* child = addConversion(EOpSequence, trueBlock->getType(), falseBlock); + if (child) + falseBlock = child; + else { + child = addConversion(EOpSequence, falseBlock->getType(), trueBlock); + if (child) + trueBlock = child; + else return nullptr; - - // make the mix operation - TIntermAggregate* mix = makeAggregate(loc); - mix = growAggregate(mix, falseBlock); - mix = growAggregate(mix, trueBlock); - mix = growAggregate(mix, cond); - mix->setType(targetVectorType); - mix->setOp(EOpMix); - - return mix; } - // Now have a scalar condition... - - // Convert true and false expressions to matching types - addBiShapeConversion(EOpMix, trueBlock, falseBlock); - // After conversion, types have to match. if (falseBlock->getType() != trueBlock->getType()) return nullptr; - // Eliminate the selection when the condition is a scalar and all operands are constant. + // + // See if all the operands are constant, then fold it otherwise not. + // + if (cond->getAsConstantUnion() && trueBlock->getAsConstantUnion() && falseBlock->getAsConstantUnion()) { if (cond->getAsConstantUnion()->getConstArray()[0].getBConst()) return trueBlock; @@ -2261,19 +1315,10 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true // Make a selection node. // TIntermSelection* node = new TIntermSelection(cond, trueBlock, falseBlock, trueBlock->getType()); + node->getQualifier().makeTemporary(); node->setLoc(loc); node->getQualifier().precision = std::max(trueBlock->getQualifier().precision, falseBlock->getQualifier().precision); - if ((cond->getQualifier().isConstant() && specConstantPropagates(*trueBlock, *falseBlock)) || - (cond->getQualifier().isSpecConstant() && trueBlock->getQualifier().isConstant() && - falseBlock->getQualifier().isConstant())) - node->getQualifier().makeSpecConstant(); - else - node->getQualifier().makeTemporary(); - - if (getSource() == EShSourceHlsl) - node->setNoShortCircuit(); - return node; } @@ -2293,37 +1338,6 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(const TConstUnionArray& un return node; } -TIntermConstantUnion* TIntermediate::addConstantUnion(signed char i8, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setI8Const(i8); - - return addConstantUnion(unionArray, TType(EbtInt8, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(unsigned char u8, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setUConst(u8); - - return addConstantUnion(unionArray, TType(EbtUint8, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(signed short i16, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setI16Const(i16); - - return addConstantUnion(unionArray, TType(EbtInt16, EvqConst), loc, literal); -} - -TIntermConstantUnion* TIntermediate::addConstantUnion(unsigned short u16, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setU16Const(u16); - - return addConstantUnion(unionArray, TType(EbtUint16, EvqConst), loc, literal); -} TIntermConstantUnion* TIntermediate::addConstantUnion(int i, const TSourceLoc& loc, bool literal) const { @@ -2367,7 +1381,11 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(bool b, const TSourceLoc& TIntermConstantUnion* TIntermediate::addConstantUnion(double d, TBasicType baseType, const TSourceLoc& loc, bool literal) const { +#ifdef AMD_EXTENSIONS assert(baseType == EbtFloat || baseType == EbtDouble || baseType == EbtFloat16); +#else + assert(baseType == EbtFloat || baseType == EbtDouble); +#endif TConstUnionArray unionArray(1); unionArray[0].setDConst(d); @@ -2375,43 +1393,18 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(double d, TBasicType baseT return addConstantUnion(unionArray, TType(baseType, EvqConst), loc, literal); } -TIntermConstantUnion* TIntermediate::addConstantUnion(const TString* s, const TSourceLoc& loc, bool literal) const -{ - TConstUnionArray unionArray(1); - unionArray[0].setSConst(s); - - return addConstantUnion(unionArray, TType(EbtString, EvqConst), loc, literal); -} - -// Put vector swizzle selectors onto the given sequence -void TIntermediate::pushSelector(TIntermSequence& sequence, const TVectorSelector& selector, const TSourceLoc& loc) -{ - TIntermConstantUnion* constIntNode = addConstantUnion(selector, loc); - sequence.push_back(constIntNode); -} - -// Put matrix swizzle selectors onto the given sequence -void TIntermediate::pushSelector(TIntermSequence& sequence, const TMatrixSelector& selector, const TSourceLoc& loc) -{ - TIntermConstantUnion* constIntNode = addConstantUnion(selector.coord1, loc); - sequence.push_back(constIntNode); - constIntNode = addConstantUnion(selector.coord2, loc); - sequence.push_back(constIntNode); -} - -// Make an aggregate node that has a sequence of all selectors. -template TIntermTyped* TIntermediate::addSwizzle(TSwizzleSelectors& selector, const TSourceLoc& loc); -template TIntermTyped* TIntermediate::addSwizzle(TSwizzleSelectors& selector, const TSourceLoc& loc); -template -TIntermTyped* TIntermediate::addSwizzle(TSwizzleSelectors& selector, const TSourceLoc& loc) +TIntermTyped* TIntermediate::addSwizzle(TVectorFields& fields, const TSourceLoc& loc) { TIntermAggregate* node = new TIntermAggregate(EOpSequence); node->setLoc(loc); + TIntermConstantUnion* constIntNode; TIntermSequence &sequenceVector = node->getSequence(); - for (int i = 0; i < selector.size(); i++) - pushSelector(sequenceVector, selector[i], loc); + for (int i = 0; i < fields.num; i++) { + constIntNode = addConstantUnion(fields.offsets[i], loc); + sequenceVector.push_back(constIntNode); + } return node; } @@ -2433,10 +1426,10 @@ const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool if (binary == nullptr) return node; TOperator op = binary->getOp(); - if (op != EOpIndexDirect && op != EOpIndexIndirect && op != EOpIndexDirectStruct && op != EOpVectorSwizzle && op != EOpMatrixSwizzle) + if (op != EOpIndexDirect && op != EOpIndexIndirect && op != EOpIndexDirectStruct && op != EOpVectorSwizzle) return nullptr; if (! swizzleOkay) { - if (op == EOpVectorSwizzle || op == EOpMatrixSwizzle) + if (op == EOpVectorSwizzle) return nullptr; if ((op == EOpIndexDirect || op == EOpIndexIndirect) && (binary->getLeft()->getType().isVector() || binary->getLeft()->getType().isScalar()) && @@ -2450,8 +1443,7 @@ const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool // // Create while and do-while loop nodes. // -TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, - const TSourceLoc& loc) +TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc) { TIntermLoop* node = new TIntermLoop(body, test, terminal, testFirst); node->setLoc(loc); @@ -2462,19 +1454,13 @@ TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TInte // // Create a for-loop sequence. // -TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermTyped* test, - TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc, TIntermLoop*& node) +TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc) { - node = new TIntermLoop(body, test, terminal, testFirst); + TIntermLoop* node = new TIntermLoop(body, test, terminal, testFirst); node->setLoc(loc); - // make a sequence of the initializer and statement, but try to reuse the - // aggregate already created for whatever is in the initializer, if there is one - TIntermAggregate* loopSequence = (initializer == nullptr || - initializer->getAsAggregate() == nullptr) ? makeAggregate(initializer, loc) - : initializer->getAsAggregate(); - if (loopSequence != nullptr && loopSequence->getOp() == EOpSequence) - loopSequence->setOp(EOpNull); + // make a sequence of the initializer and statement + TIntermAggregate* loopSequence = makeAggregate(initializer, loc); loopSequence = growAggregate(loopSequence, node); loopSequence->setOperator(EOpSequence); @@ -2514,14 +1500,6 @@ bool TIntermediate::postProcess(TIntermNode* root, EShLanguage /*language*/) // Propagate 'noContraction' label in backward from 'precise' variables. glslang::PropagateNoContraction(*this); - switch (textureSamplerTransformMode) { - case EShTexSampTransKeep: - break; - case EShTexSampTransUpgradeTextureRemoveSampler: - performTextureUpgradeAndSamplerRemovalTransformation(root); - break; - } - return true; } @@ -2542,7 +1520,7 @@ void TIntermediate::addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguag // - ftransform() can make gl_Vertex and gl_ModelViewProjectionMatrix active. // - // if (ftransformUsed) { + //if (ftransformUsed) { // TODO: 1.1 lowering functionality: track ftransform() usage // addSymbolLinkageNode(root, symbolTable, "gl_Vertex"); // addSymbolLinkageNode(root, symbolTable, "gl_ModelViewProjectionMatrix"); @@ -2662,10 +1640,12 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpVectorSwizzle: case EOpConvFloatToDouble: case EOpConvDoubleToFloat: +#ifdef AMD_EXTENSIONS case EOpConvFloat16ToFloat: case EOpConvFloatToFloat16: case EOpConvFloat16ToDouble: case EOpConvDoubleToFloat16: +#endif return true; default: return false; @@ -2689,97 +1669,27 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpIndexDirectStruct: case EOpVectorSwizzle: - // (u)int* -> bool - case EOpConvInt8ToBool: - case EOpConvInt16ToBool: + // conversion constructors case EOpConvIntToBool: - case EOpConvInt64ToBool: - case EOpConvUint8ToBool: - case EOpConvUint16ToBool: case EOpConvUintToBool: - case EOpConvUint64ToBool: - - // bool -> (u)int* - case EOpConvBoolToInt8: - case EOpConvBoolToInt16: - case EOpConvBoolToInt: - case EOpConvBoolToInt64: - case EOpConvBoolToUint8: - case EOpConvBoolToUint16: - case EOpConvBoolToUint: - case EOpConvBoolToUint64: - - // int8_t -> (u)int* - case EOpConvInt8ToInt16: - case EOpConvInt8ToInt: - case EOpConvInt8ToInt64: - case EOpConvInt8ToUint8: - case EOpConvInt8ToUint16: - case EOpConvInt8ToUint: - case EOpConvInt8ToUint64: - - // int16_t -> (u)int* - case EOpConvInt16ToInt8: - case EOpConvInt16ToInt: - case EOpConvInt16ToInt64: - case EOpConvInt16ToUint8: - case EOpConvInt16ToUint16: - case EOpConvInt16ToUint: - case EOpConvInt16ToUint64: - - // int32_t -> (u)int* - case EOpConvIntToInt8: - case EOpConvIntToInt16: - case EOpConvIntToInt64: - case EOpConvIntToUint8: - case EOpConvIntToUint16: - case EOpConvIntToUint: - case EOpConvIntToUint64: - - // int64_t -> (u)int* - case EOpConvInt64ToInt8: - case EOpConvInt64ToInt16: - case EOpConvInt64ToInt: - case EOpConvInt64ToUint8: - case EOpConvInt64ToUint16: - case EOpConvInt64ToUint: - case EOpConvInt64ToUint64: - - // uint8_t -> (u)int* - case EOpConvUint8ToInt8: - case EOpConvUint8ToInt16: - case EOpConvUint8ToInt: - case EOpConvUint8ToInt64: - case EOpConvUint8ToUint16: - case EOpConvUint8ToUint: - case EOpConvUint8ToUint64: - - // uint16_t -> (u)int* - case EOpConvUint16ToInt8: - case EOpConvUint16ToInt16: - case EOpConvUint16ToInt: - case EOpConvUint16ToInt64: - case EOpConvUint16ToUint8: - case EOpConvUint16ToUint: - case EOpConvUint16ToUint64: - - // uint32_t -> (u)int* - case EOpConvUintToInt8: - case EOpConvUintToInt16: case EOpConvUintToInt: - case EOpConvUintToInt64: - case EOpConvUintToUint8: - case EOpConvUintToUint16: - case EOpConvUintToUint64: - - // uint64_t -> (u)int* - case EOpConvUint64ToInt8: - case EOpConvUint64ToInt16: - case EOpConvUint64ToInt: - case EOpConvUint64ToInt64: - case EOpConvUint64ToUint8: - case EOpConvUint64ToUint16: + case EOpConvBoolToInt: + case EOpConvIntToUint: + case EOpConvBoolToUint: + case EOpConvInt64ToBool: + case EOpConvBoolToInt64: + case EOpConvUint64ToBool: + case EOpConvBoolToUint64: + case EOpConvInt64ToInt: + case EOpConvIntToInt64: case EOpConvUint64ToUint: + case EOpConvUintToUint64: + case EOpConvInt64ToUint64: + case EOpConvUint64ToInt64: + case EOpConvInt64ToUint: + case EOpConvUintToInt64: + case EOpConvUint64ToInt: + case EOpConvIntToUint64: // unary operations case EOpNegative: @@ -2813,64 +1723,6 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const } } -// Is the operation one that must propagate nonuniform? -bool TIntermediate::isNonuniformPropagating(TOperator op) const -{ - // "* All Operators in Section 5.1 (Operators), except for assignment, - // arithmetic assignment, and sequence - // * Component selection in Section 5.5 - // * Matrix components in Section 5.6 - // * Structure and Array Operations in Section 5.7, except for the length - // method." - switch (op) { - case EOpPostIncrement: - case EOpPostDecrement: - case EOpPreIncrement: - case EOpPreDecrement: - - case EOpNegative: - case EOpLogicalNot: - case EOpVectorLogicalNot: - case EOpBitwiseNot: - - case EOpAdd: - case EOpSub: - case EOpMul: - case EOpDiv: - case EOpMod: - case EOpRightShift: - case EOpLeftShift: - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - case EOpEqual: - case EOpNotEqual: - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - case EOpVectorTimesScalar: - case EOpVectorTimesMatrix: - case EOpMatrixTimesVector: - case EOpMatrixTimesScalar: - - case EOpLogicalOr: - case EOpLogicalXor: - case EOpLogicalAnd: - - case EOpIndexDirect: - case EOpIndexIndirect: - case EOpIndexDirectStruct: - case EOpVectorSwizzle: - return true; - - default: - break; - } - - return false; -} - //////////////////////////////////////////////////////////////// // // Member functions of the nodes used for building the tree. @@ -2955,7 +1807,7 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) // Convert operand to a boolean type if (operand->getBasicType() != EbtBool) { // Add constructor to boolean type. If that fails, we can't do it, so return false. - TIntermTyped* converted = addConversion(op, TType(EbtBool), operand); + TIntermTyped* converted = convertToBasicType(op, EbtBool, operand); if (converted == nullptr) return false; @@ -2964,7 +1816,11 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) } break; case EOpBitwiseNot: - if (!isTypeInt(operand->getBasicType())) + if (operand->getBasicType() != EbtInt && + operand->getBasicType() != EbtUint && + operand->getBasicType() != EbtInt64 && + operand->getBasicType() != EbtUint64) + return false; break; case EOpNegative: @@ -2972,9 +1828,14 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) case EOpPostDecrement: case EOpPreIncrement: case EOpPreDecrement: - if (!isTypeInt(operand->getBasicType()) && + if (operand->getBasicType() != EbtInt && + operand->getBasicType() != EbtUint && + operand->getBasicType() != EbtInt64 && + operand->getBasicType() != EbtUint64 && operand->getBasicType() != EbtFloat && +#ifdef AMD_EXTENSIONS operand->getBasicType() != EbtFloat16 && +#endif operand->getBasicType() != EbtDouble) return false; @@ -2994,12 +1855,34 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) void TIntermUnary::updatePrecision() { +#ifdef AMD_EXTENSIONS if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { +#else + if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { +#endif if (operand->getQualifier().precision > getQualifier().precision) getQualifier().precision = operand->getQualifier().precision; } } +// If it is not already, convert this node to the given basic type. +TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const +{ + if (node == nullptr) + return nullptr; + + // It's already this basic type: nothing needs to be done, so use the node directly. + if (node->getBasicType() == basicType) + return node; + + const TType& type = node->getType(); + const TType newType(basicType, type.getQualifier().storage, + type.getVectorSize(), type.getMatrixCols(), type.getMatrixRows(), type.isVector()); + + // Add constructor to the right vectorness of the right type. If that fails, we can't do it, so return nullptr. + return addConversion(op, newType, node); +} + // // See TIntermediate::promote // @@ -3049,49 +1932,6 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) // We now have only scalars, vectors, and matrices to worry about. // - // HLSL implicitly promotes bool -> int for numeric operations. - // (Implicit conversions to make the operands match each other's types were already done.) - if (getSource() == EShSourceHlsl && - (left->getBasicType() == EbtBool || right->getBasicType() == EbtBool)) { - switch (op) { - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - - case EOpRightShift: - case EOpLeftShift: - - case EOpMod: - - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - - case EOpAdd: - case EOpSub: - case EOpDiv: - case EOpMul: - if (left->getBasicType() == EbtBool) - left = createConversion(EbtInt, left); - if (right->getBasicType() == EbtBool) - right = createConversion(EbtInt, right); - if (left == nullptr || right == nullptr) - return false; - node.setLeft(left); - node.setRight(right); - - // Update the original base assumption on result type.. - node.setType(left->getType()); - node.getWritableType().getQualifier().clear(); - - break; - - default: - break; - } - } - // Do general type checks against individual operands (comparing left and right is coming up, checking mixed shapes after that) switch (op) { case EOpLessThan: @@ -3126,17 +1966,21 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: - // logical ops operate only on Booleans or vectors of Booleans. - if (left->getBasicType() != EbtBool || left->isMatrix()) + if (getSource() == EShSourceHlsl) { + TIntermTyped* convertedL = convertToBasicType(op, EbtBool, left); + TIntermTyped* convertedR = convertToBasicType(op, EbtBool, right); + if (convertedL == nullptr || convertedR == nullptr) return false; - - if (getSource() == EShSourceGlsl) { + node.setLeft(left = convertedL); // also updates stack variable + node.setRight(right = convertedR); // also updates stack variable + } else { // logical ops operate only on scalar Booleans and will promote to scalar Boolean. - if (left->isVector()) + if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) return false; } node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); + break; case EOpRightShift: @@ -3157,7 +2001,10 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) break; // Check for integer-only operands. - if (!isTypeInt(left->getBasicType()) && !isTypeInt(right->getBasicType())) + if ((left->getBasicType() != EbtInt && left->getBasicType() != EbtUint && + left->getBasicType() != EbtInt64 && left->getBasicType() != EbtUint64) || + (right->getBasicType() != EbtInt && right->getBasicType() != EbtUint && + right->getBasicType() != EbtInt64 && right->getBasicType() != EbtUint64)) return false; if (left->isMatrix() || right->isMatrix()) return false; @@ -3197,6 +2044,8 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) case EOpLogicalXor: return left->getType() == right->getType(); + // no shifts: they can mix types (scalar int can shift a vector uint, etc.) + case EOpMod: case EOpModAssign: @@ -3210,7 +2059,6 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) case EOpAdd: case EOpSub: case EOpDiv: - case EOpAddAssign: case EOpSubAssign: case EOpDivAssign: @@ -3235,7 +2083,7 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) return true; // Finish handling the case, for all ops, where there are two vectors of different sizes - if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize() && right->getVectorSize() > 1) + if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize()) return false; // @@ -3298,7 +2146,7 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) node.setOp(op = EOpMatrixTimesScalarAssign); } } else if (left->isMatrix() && right->isMatrix()) { - if (left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) + if (left->getMatrixCols() != left->getMatrixRows() || left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) return false; node.setOp(op = EOpMatrixTimesMatrixAssign); } else if (!left->isMatrix() && !right->isMatrix()) { @@ -3393,7 +2241,7 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) { TOperator op = node.getOp(); TIntermSequence& args = node.getSequence(); - const int numArgs = static_cast(args.size()); + const int numArgs = args.size(); // Presently, only hlsl does intrinsic promotions. if (getSource() != EShSourceHlsl) @@ -3408,8 +2256,8 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) case EOpDot: case EOpDst: case EOpFaceForward: - // case EOpFindMSB: TODO: - // case EOpFindLSB: TODO: + // case EOpFindMSB: TODO: ?? + // case EOpFindLSB: TODO: ?? case EOpFma: case EOpMod: case EOpFrexp: @@ -3419,11 +2267,11 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) case EOpMax: case EOpMin: case EOpModf: - // case EOpGenMul: TODO: + // case EOpGenMul: TODO: ?? case EOpPow: case EOpReflect: case EOpRefract: - // case EOpSinCos: TODO: + // case EOpSinCos: TODO: ?? case EOpSmoothStep: case EOpStep: break; @@ -3456,9 +2304,14 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) return false; } + void TIntermBinary::updatePrecision() { +#ifdef AMD_EXTENSIONS if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { +#else + if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { +#endif getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision); if (getQualifier().precision != EpqNone) { left->propagatePrecision(getQualifier().precision); @@ -3469,7 +2322,11 @@ void TIntermBinary::updatePrecision() void TIntermTyped::propagatePrecision(TPrecisionQualifier newPrecision) { +#ifdef AMD_EXTENSIONS if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat && getBasicType() != EbtFloat16)) +#else + if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat)) +#endif return; getQualifier().precision = newPrecision; @@ -3544,7 +2401,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif leftUnionArray[i] = rightUnionArray[i]; break; default: @@ -3570,13 +2429,16 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif leftUnionArray[i] = rightUnionArray[i]; break; default: return node; } break; +#ifdef AMD_EXTENSIONS case EbtFloat16: switch (node->getType().getBasicType()) { case EbtInt: @@ -3603,6 +2465,7 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC return node; } break; +#endif case EbtInt: switch (node->getType().getBasicType()) { case EbtInt: @@ -3622,7 +2485,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif leftUnionArray[i].setIConst(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -3648,7 +2513,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif leftUnionArray[i].setUConst(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -3674,7 +2541,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif leftUnionArray[i].setBConst(rightUnionArray[i].getDConst() != 0.0); break; default: @@ -3700,7 +2569,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif leftUnionArray[i].setI64Const(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -3726,7 +2597,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif leftUnionArray[i].setU64Const(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -3744,88 +2617,11 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC node->getLoc()); } -void TIntermAggregate::setPragmaTable(const TPragmaTable& pTable) +void TIntermAggregate::addToPragmaTable(const TPragmaTable& pTable) { - assert(pragmaTable == nullptr); - pragmaTable = new TPragmaTable; + assert(!pragmaTable); + pragmaTable = new TPragmaTable(); *pragmaTable = pTable; } -// If either node is a specialization constant, while the other is -// a constant (or specialization constant), the result is still -// a specialization constant. -bool TIntermediate::specConstantPropagates(const TIntermTyped& node1, const TIntermTyped& node2) -{ - return (node1.getType().getQualifier().isSpecConstant() && node2.getType().getQualifier().isConstant()) || - (node2.getType().getQualifier().isSpecConstant() && node1.getType().getQualifier().isConstant()); -} - -struct TextureUpgradeAndSamplerRemovalTransform : public TIntermTraverser { - void visitSymbol(TIntermSymbol* symbol) override { - if (symbol->getBasicType() == EbtSampler && symbol->getType().getSampler().isTexture()) { - symbol->getWritableType().getSampler().combined = true; - } - } - bool visitAggregate(TVisit, TIntermAggregate* ag) override { - using namespace std; - TIntermSequence& seq = ag->getSequence(); - TQualifierList& qual = ag->getQualifierList(); - - // qual and seq are indexed using the same indices, so we have to modify both in lock-step - assert(seq.size() == qual.size() || qual.empty()); - - size_t write = 0; - for (size_t i = 0; i < seq.size(); ++i) { - TIntermSymbol* symbol = seq[i]->getAsSymbolNode(); - if (symbol && symbol->getBasicType() == EbtSampler && symbol->getType().getSampler().isPureSampler()) { - // remove pure sampler variables - continue; - } - - TIntermNode* result = seq[i]; - - // replace constructors with sampler/textures - TIntermAggregate *constructor = seq[i]->getAsAggregate(); - if (constructor && constructor->getOp() == EOpConstructTextureSampler) { - if (!constructor->getSequence().empty()) - result = constructor->getSequence()[0]; - } - - // write new node & qualifier - seq[write] = result; - if (!qual.empty()) - qual[write] = qual[i]; - write++; - } - - seq.resize(write); - if (!qual.empty()) - qual.resize(write); - - return true; - } -}; - -void TIntermediate::performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root) -{ - TextureUpgradeAndSamplerRemovalTransform transform; - root->traverse(&transform); -} - -const char* TIntermediate::getResourceName(TResourceType res) -{ - switch (res) { - case EResSampler: return "shift-sampler-binding"; - case EResTexture: return "shift-texture-binding"; - case EResImage: return "shift-image-binding"; - case EResUbo: return "shift-UBO-binding"; - case EResSsbo: return "shift-ssbo-binding"; - case EResUav: return "shift-uav-binding"; - default: - assert(0); // internal error: should only be called with valid resource types. - return nullptr; - } -} - - } // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/LiveTraverser.h b/deps/glslang/glslang-old/glslang/MachineIndependent/LiveTraverser.h similarity index 79% rename from deps/glslang-new/glslang/MachineIndependent/LiveTraverser.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/LiveTraverser.h index 7333bc964e..af8f7755bc 100644 --- a/deps/glslang-new/glslang/MachineIndependent/LiveTraverser.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/LiveTraverser.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 LunarG, Inc. +//Copyright (C) 2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,21 +19,22 @@ // 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 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 +#ifndef _MACHINE_INDEPENDENT_LIVE_TRAVERSER_H +#define _MACHINE_INDEPENDENT_LIVE_TRAVERSER_H #include "../Include/Common.h" #include "reflection.h" @@ -136,3 +137,5 @@ private: }; } // namespace glslang + +#endif diff --git a/deps/glslang-new/glslang/MachineIndependent/ParseContextBase.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/ParseContextBase.cpp similarity index 63% rename from deps/glslang-new/glslang/MachineIndependent/ParseContextBase.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/ParseContextBase.cpp index bfa9de4dff..d084af8acf 100644 --- a/deps/glslang-new/glslang/MachineIndependent/ParseContextBase.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/ParseContextBase.cpp @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2016 Google, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // Implement the TParseContextBase class. @@ -129,7 +129,6 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, case EOpIndexIndirect: // fall through case EOpIndexDirectStruct: // fall through case EOpVectorSwizzle: - case EOpMatrixSwizzle: return lValueErrorCheck(loc, op, binaryNode->getLeft()); default: break; @@ -209,7 +208,6 @@ void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, case EOpIndexIndirect: case EOpIndexDirectStruct: case EOpVectorSwizzle: - case EOpMatrixSwizzle: rValueErrorCheck(loc, op, binaryNode->getLeft()); default: break; @@ -223,44 +221,26 @@ void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); } +// Add a linkage symbol node for 'symbol', which +// must have its type fully edited, as this will snapshot the type. +// It is okay if symbol becomes invalid before finish(). +void TParseContextBase::trackLinkage(TSymbol& symbol) +{ + if (!parsingBuiltins) + intermediate.addSymbolLinkageNode(linkage, symbol); +} + // Add 'symbol' to the list of deferred linkage symbols, which // are later processed in finish(), at which point the symbol // must still be valid. -// It is okay if the symbol's type will be subsequently edited; -// the modifications will be tracked. -// Order is preserved, to avoid creating novel forward references. -void TParseContextBase::trackLinkage(TSymbol& symbol) +// It is okay if the symbol's type will be subsequently edited. +void TParseContextBase::trackLinkageDeferred(TSymbol& symbol) { if (!parsingBuiltins) linkageSymbols.push_back(&symbol); } -// Ensure index is in bounds, correct if necessary. -// Give an error if not. -void TParseContextBase::checkIndex(const TSourceLoc& loc, const TType& type, int& index) -{ - if (index < 0) { - error(loc, "", "[", "index out of range '%d'", index); - index = 0; - } else if (type.isArray()) { - if (type.isSizedArray() && index >= type.getOuterArraySize()) { - error(loc, "", "[", "array index out of range '%d'", index); - index = type.getOuterArraySize() - 1; - } - } else if (type.isVector()) { - if (index >= type.getVectorSize()) { - error(loc, "", "[", "vector index out of range '%d'", index); - index = type.getVectorSize() - 1; - } - } else if (type.isMatrix()) { - if (index >= type.getMatrixCols()) { - error(loc, "", "[", "matrix index out of range '%d'", index); - index = type.getMatrixCols() - 1; - } - } -} - -// Make a shared symbol have a non-shared version that can be edited by the current +// Make a shared symbol have a non-shared version that can be edited by the current // compile, such that editing its type will not change the shared version and will // effect all nodes already sharing it (non-shallow type), // or adopting its full type after being edited (shallow type). @@ -271,7 +251,7 @@ void TParseContextBase::makeEditable(TSymbol*& symbol) // Save it (deferred, so it can be edited first) in the AST for linker use. if (symbol) - trackLinkage(*symbol); + trackLinkageDeferred(*symbol); } // Return a writable version of the variable 'name'. @@ -328,20 +308,20 @@ const TFunction* TParseContextBase::selectFunction( std::function better, /* output */ bool& tie) { -// +// // Operation -// +// // 1. Prune the input list of candidates down to a list of viable candidates, // where each viable candidate has -// +// // * at least as many parameters as there are calling arguments, with any // remaining parameters being optional or having default values // * each parameter is true under convertible(A, B), where A is the calling // type for in and B is the formal type, and in addition, for out B is the // calling type and A is the formal type -// +// // 2. If there are no viable candidates, return with no match. -// +// // 3. If there is only one viable candidate, it is the best match. // // 4. If there are multiple viable candidates, select the first viable candidate @@ -349,7 +329,7 @@ const TFunction* TParseContextBase::selectFunction( // that candidate is better (bullets below), make it the incumbent. Repeat, with // a linear walk through the viable candidate list. The final incumbent will be // returned as the best match. A viable candidate is better than the incumbent if -// +// // * it has a function argument with a better(...) conversion than the incumbent, // for all directions needed by in and out // * the incumbent has no argument with a better(...) conversion then the @@ -368,18 +348,13 @@ const TFunction* TParseContextBase::selectFunction( for (auto it = candidateList.begin(); it != candidateList.end(); ++it) { const TFunction& candidate = *(*it); - // to even be a potential match, number of arguments must be >= the number of - // fixed (non-default) parameters, and <= the total (including parameter with defaults). - if (call.getParamCount() < candidate.getFixedParamCount() || - call.getParamCount() > candidate.getParamCount()) + // to even be a potential match, number of arguments has to match + if (call.getParamCount() != candidate.getParamCount()) continue; // see if arguments are convertible bool viable = true; - - // The call can have fewer parameters than the candidate, if some have defaults. - const int paramCount = std::min(call.getParamCount(), candidate.getParamCount()); - for (int param = 0; param < paramCount; ++param) { + for (int param = 0; param < candidate.getParamCount(); ++param) { if (candidate[param].type->getQualifier().isParamInput()) { if (! convertible(*call[param].type, *candidate[param].type, candidate.getBuiltInOp(), param)) { viable = false; @@ -407,7 +382,7 @@ const TFunction* TParseContextBase::selectFunction( return viableCandidates.front(); // 4. find best... - const auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { + auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { // is call -> can2 better than call -> can1 for any parameter bool hasBetterParam = false; for (int param = 0; param < call.getParamCount(); ++param) { @@ -419,16 +394,6 @@ const TFunction* TParseContextBase::selectFunction( return hasBetterParam; }; - const auto equivalentParams = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { - // is call -> can2 equivalent to call -> can1 for all the call parameters? - for (int param = 0; param < call.getParamCount(); ++param) { - if (better(*call[param].type, *can1[param].type, *can2[param].type) || - better(*call[param].type, *can2[param].type, *can1[param].type)) - return false; - } - return true; - }; - const TFunction* incumbent = viableCandidates.front(); for (auto it = viableCandidates.begin() + 1; it != viableCandidates.end(); ++it) { const TFunction& candidate = *(*it); @@ -441,173 +406,77 @@ const TFunction* TParseContextBase::selectFunction( if (incumbent == *it) continue; const TFunction& candidate = *(*it); - - // In the case of default parameters, it may have an identical initial set, which is - // also ambiguous - if (betterParam(*incumbent, candidate) || equivalentParams(*incumbent, candidate)) + if (betterParam(*incumbent, candidate)) tie = true; } return incumbent; } -// -// Look at a '.' field selector string and change it into numerical selectors -// for a vector or scalar. -// -// Always return some form of swizzle, so the result is always usable. -// -void TParseContextBase::parseSwizzleSelector(const TSourceLoc& loc, const TString& compString, int vecSize, - TSwizzleSelectors& selector) -{ - // Too long? - if (compString.size() > MaxSwizzleSelectors) - error(loc, "vector swizzle too long", compString.c_str(), ""); - - // Use this to test that all swizzle characters are from the same swizzle-namespace-set - enum { - exyzw, - ergba, - estpq, - } fieldSet[MaxSwizzleSelectors]; - - // Decode the swizzle string. - int size = std::min(MaxSwizzleSelectors, (int)compString.size()); - for (int i = 0; i < size; ++i) { - switch (compString[i]) { - case 'x': - selector.push_back(0); - fieldSet[i] = exyzw; - break; - case 'r': - selector.push_back(0); - fieldSet[i] = ergba; - break; - case 's': - selector.push_back(0); - fieldSet[i] = estpq; - break; - - case 'y': - selector.push_back(1); - fieldSet[i] = exyzw; - break; - case 'g': - selector.push_back(1); - fieldSet[i] = ergba; - break; - case 't': - selector.push_back(1); - fieldSet[i] = estpq; - break; - - case 'z': - selector.push_back(2); - fieldSet[i] = exyzw; - break; - case 'b': - selector.push_back(2); - fieldSet[i] = ergba; - break; - case 'p': - selector.push_back(2); - fieldSet[i] = estpq; - break; - - case 'w': - selector.push_back(3); - fieldSet[i] = exyzw; - break; - case 'a': - selector.push_back(3); - fieldSet[i] = ergba; - break; - case 'q': - selector.push_back(3); - fieldSet[i] = estpq; - break; - - default: - error(loc, "unknown swizzle selection", compString.c_str(), ""); - break; - } - } - - // Additional error checking. - for (int i = 0; i < selector.size(); ++i) { - if (selector[i] >= vecSize) { - error(loc, "vector swizzle selection out of range", compString.c_str(), ""); - selector.resize(i); - break; - } - - if (i > 0 && fieldSet[i] != fieldSet[i-1]) { - error(loc, "vector swizzle selectors not from the same set", compString.c_str(), ""); - selector.resize(i); - break; - } - } - - // Ensure it is valid. - if (selector.size() == 0) - selector.push_back(0); -} - // // Make the passed-in variable information become a member of the // global uniform block. If this doesn't exist yet, make it. // -void TParseContextBase::growGlobalUniformBlock(const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList) +void TParseContextBase::growGlobalUniformBlock(TSourceLoc& loc, TType& memberType, TString& memberName) { - // Make the global block, if not yet made. + // make the global block, if not yet made if (globalUniformBlock == nullptr) { + TString& blockName = *NewPoolTString(getGlobalUniformBlockName()); TQualifier blockQualifier; blockQualifier.clear(); blockQualifier.storage = EvqUniform; - TType blockType(new TTypeList, *NewPoolTString(getGlobalUniformBlockName()), blockQualifier); - setUniformBlockDefaults(blockType); - globalUniformBlock = new TVariable(NewPoolTString(""), blockType, true); + TType blockType(new TTypeList, blockName, blockQualifier); + TString* instanceName = NewPoolTString(""); + globalUniformBlock = new TVariable(instanceName, blockType, true); firstNewMember = 0; } - // Update with binding and set - globalUniformBlock->getWritableType().getQualifier().layoutBinding = globalUniformBinding; - globalUniformBlock->getWritableType().getQualifier().layoutSet = globalUniformSet; - - // Add the requested member as a member to the global block. + // add the requested member as a member to the block TType* type = new TType; type->shallowCopy(memberType); type->setFieldName(memberName); - if (typeList) - type->setStruct(typeList); TTypeLoc typeLoc = {type, loc}; globalUniformBlock->getType().getWritableStruct()->push_back(typeLoc); +} - // Insert into the symbol table. +// +// Insert into the symbol table the global uniform block created in +// growGlobalUniformBlock(). The variables added as members won't be +// found unless this is done. +// +bool TParseContextBase::insertGlobalUniformBlock() +{ + if (globalUniformBlock == nullptr) + return true; + + int numMembers = (int)globalUniformBlock->getType().getStruct()->size(); + bool inserted = false; if (firstNewMember == 0) { // This is the first request; we need a normal symbol table insert - if (symbolTable.insert(*globalUniformBlock)) - trackLinkage(*globalUniformBlock); - else - error(loc, "failed to insert the global constant buffer", "uniform", ""); - } else { + inserted = symbolTable.insert(*globalUniformBlock); + if (inserted) + trackLinkageDeferred(*globalUniformBlock); + } else if (firstNewMember <= numMembers) { // This is a follow-on request; we need to amend the first insert - symbolTable.amend(*globalUniformBlock, firstNewMember); + inserted = symbolTable.amend(*globalUniformBlock, firstNewMember); } - ++firstNewMember; + if (inserted) { + finalizeGlobalUniformBlockLayout(*globalUniformBlock); + firstNewMember = numMembers; + } + + return inserted; } void TParseContextBase::finish() { - if (parsingBuiltins) - return; - - // Transfer the linkage symbols to AST nodes, preserving order. - TIntermAggregate* linkage = new TIntermAggregate; - for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i) - intermediate.addSymbolLinkageNode(linkage, **i); - intermediate.addSymbolLinkageNodes(linkage, getLanguage(), symbolTable); + if (!parsingBuiltins) { + // Transfer te linkage symbols to AST nodes + for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i) + intermediate.addSymbolLinkageNode(linkage, **i); + intermediate.addSymbolLinkageNodes(linkage, getLanguage(), symbolTable); + } } } // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/ParseHelper.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/ParseHelper.cpp old mode 100755 new mode 100644 similarity index 84% rename from deps/glslang-new/glslang/MachineIndependent/ParseHelper.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/ParseHelper.cpp index 828e49651f..ed043e0a01 --- a/deps/glslang-new/glslang/MachineIndependent/ParseHelper.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/ParseHelper.cpp @@ -1,14 +1,13 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2015 LunarG, Inc. -// Copyright (C) 2015-2016 Google, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2015 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -22,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 "ParseHelper.h" @@ -50,12 +49,10 @@ namespace glslang { TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, - TInfoSink& infoSink, bool forwardCompatible, EShMessages messages, - const TString* entryPoint) : - TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, - infoSink, forwardCompatible, messages, entryPoint), - inMain(false), - blockName(nullptr), + TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : + TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), + contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), statementNestingLevel(0), + inMain(false), postMainReturn(false), currentFunctionType(nullptr), blockName(nullptr), limits(resources.limits), atomicUintOffsets(nullptr), anyIndexLimits(false) { @@ -79,7 +76,7 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b globalInputDefaults.clear(); globalOutputDefaults.clear(); - // "Shaders in the transform + // "Shaders in the transform // feedback capturing mode have an initial global default of // layout(xfb_buffer = 0) out;" if (language == EShLangVertex || @@ -90,9 +87,6 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b if (language == EShLangGeometry) globalOutputDefaults.layoutStream = 0; - - if (entryPoint != nullptr && entryPoint->size() > 0 && *entryPoint != "main") - infoSink.info.message(EPrefixError, "Source entry point must be \"main\""); } TParseContext::~TParseContext() @@ -127,6 +121,11 @@ void TParseContext::setPrecisionDefaults() sampler.set(EbtFloat, Esd2D); sampler.external = true; defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; + } else { + // Non-ES profile + // All default to highp. + for (int type = 0; type < maxSamplerIndex; ++type) + defaultSamplerPrecision[type] = EpqHigh; } // If we are parsing built-in computational variables/functions, it is meaningful to record @@ -142,13 +141,6 @@ void TParseContext::setPrecisionDefaults() defaultPrecision[EbtUint] = EpqHigh; defaultPrecision[EbtFloat] = EpqHigh; } - - if (profile != EEsProfile) { - // Non-ES profile - // All sampler precisions default to highp. - for (int type = 0; type < maxSamplerIndex; ++type) - defaultSamplerPrecision[type] = EpqHigh; - } } defaultPrecision[EbtSampler] = EpqLow; @@ -263,14 +255,107 @@ void TParseContext::handlePragma(const TSourceLoc& loc, const TVector& error(loc, "\")\" expected to end 'debug' pragma", "#pragma", ""); return; } - } else if (spvVersion.spv > 0 && tokens[0].compare("use_storage_buffer") == 0) { - if (tokens.size() != 1) - error(loc, "extra tokens", "#pragma", ""); - intermediate.setUseStorageBuffer(); - } else if (tokens[0].compare("once") == 0) { - warn(loc, "not implemented", "#pragma once", ""); - } else if (tokens[0].compare("glslang_binary_double_output") == 0) - intermediate.setBinaryDoubleOutput(); + } +} + +/////////////////////////////////////////////////////////////////////// +// +// Sub- vector and matrix fields +// +//////////////////////////////////////////////////////////////////////// + +// +// Look at a '.' field selector string and change it into offsets +// for a vector or scalar +// +// Returns true if there is no error. +// +bool TParseContext::parseVectorFields(const TSourceLoc& loc, const TString& compString, int vecSize, TVectorFields& fields) +{ + fields.num = (int)compString.size(); + if (fields.num > 4) { + error(loc, "illegal vector field selection", compString.c_str(), ""); + return false; + } + + enum { + exyzw, + ergba, + estpq, + } fieldSet[4]; + + for (int i = 0; i < fields.num; ++i) { + switch (compString[i]) { + case 'x': + fields.offsets[i] = 0; + fieldSet[i] = exyzw; + break; + case 'r': + fields.offsets[i] = 0; + fieldSet[i] = ergba; + break; + case 's': + fields.offsets[i] = 0; + fieldSet[i] = estpq; + break; + case 'y': + fields.offsets[i] = 1; + fieldSet[i] = exyzw; + break; + case 'g': + fields.offsets[i] = 1; + fieldSet[i] = ergba; + break; + case 't': + fields.offsets[i] = 1; + fieldSet[i] = estpq; + break; + case 'z': + fields.offsets[i] = 2; + fieldSet[i] = exyzw; + break; + case 'b': + fields.offsets[i] = 2; + fieldSet[i] = ergba; + break; + case 'p': + fields.offsets[i] = 2; + fieldSet[i] = estpq; + break; + + case 'w': + fields.offsets[i] = 3; + fieldSet[i] = exyzw; + break; + case 'a': + fields.offsets[i] = 3; + fieldSet[i] = ergba; + break; + case 'q': + fields.offsets[i] = 3; + fieldSet[i] = estpq; + break; + default: + error(loc, "illegal vector field selection", compString.c_str(), ""); + return false; + } + } + + for (int i = 0; i < fields.num; ++i) { + if (fields.offsets[i] >= vecSize) { + error(loc, "vector field selection out of range", compString.c_str(), ""); + return false; + } + + if (i > 0) { + if (fieldSet[i] != fieldSet[i-1]) { + error(loc, "illegal - vector component fields not from the same set", compString.c_str(), ""); + return false; + } + } + } + + return true; } // @@ -285,17 +370,17 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); if (symbol && symbol->isReadOnly()) { - // All shared things containing an unsized array must be copied up + // All shared things containing an implicitly sized array must be copied up // on first use, so that all future references will share its array structure, // so that editing the implicit size will effect all nodes consuming it, // and so that editing the implicit size won't change the shared one. // - // If this is a variable or a block, check it and all it contains, but if this + // If this is a variable or a block, check it and all it contains, but if this // is a member of an anonymous block, check the whole block, as the whole block - // will need to be copied up if it contains an unsized array. - if (symbol->getType().containsUnsizedArray() || + // will need to be copied up if it contains an implicitly-sized array. + if (symbol->getType().containsImplicitlySizedArray() || (symbol->getAsAnonMember() && - symbol->getAsAnonMember()->getAnonContainer().getType().containsUnsizedArray())) + symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) makeEditable(symbol); } @@ -357,8 +442,10 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn TIntermTyped* result = nullptr; int indexValue = 0; - if (index->getQualifier().isFrontEndConstant()) + if (index->getQualifier().isFrontEndConstant()) { indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); + checkIndex(loc, base->getType(), indexValue); + } variableCheck(base); if (! base->isArray() && ! base->isMatrix() && ! base->isVector()) { @@ -366,43 +453,30 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn 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().isFrontEndConstant() && index->getQualifier().isFrontEndConstant()) { - // both base and index are front-end constants - checkIndex(loc, base->getType(), indexValue); + } else if (base->getType().getQualifier().isFrontEndConstant() && index->getQualifier().isFrontEndConstant()) return intermediate.foldDereference(base, indexValue, loc); - } else { - // at least one of base and index is not a front-end constant variable... - - if (index->getQualifier().isFrontEndConstant()) - checkIndex(loc, base->getType(), indexValue); + else { + // at least one of base and index is variable... if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) handleIoResizeArrayAccess(loc, base); if (index->getQualifier().isFrontEndConstant()) { - if (base->getType().isUnsizedArray()) - base->getWritableType().updateImplicitArraySize(indexValue + 1); - else - checkIndex(loc, base->getType(), indexValue); + if (base->getType().isImplicitlySizedArray()) + updateImplicitArraySize(loc, base, indexValue); result = intermediate.addIndex(EOpIndexDirect, base, index, loc); } else { - if (base->getType().isUnsizedArray()) { - // we have a variable index into an unsized array, which is okay, - // depending on the situation + if (base->getType().isImplicitlySizedArray()) { if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) error(loc, "", "[", "array must be sized by a redeclaration or layout qualifier before being indexed with a variable"); - else { - // it is okay for a run-time sized array - checkRuntimeSizable(loc, *base); - } - base->getWritableType().setArrayVariablyIndexed(); + else + error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable"); } if (base->getBasicType() == EbtBlock) { if (base->getQualifier().storage == EvqBuffer) requireProfile(base->getLoc(), ~EEsProfile, "variable indexing buffer block array"); else if (base->getQualifier().storage == EvqUniform) - profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, - "variable indexing uniform block array"); + profileRequires(base->getLoc(), EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "variable indexing uniform block array"); else { // input/output blocks either don't exist or can be variable indexed } @@ -411,7 +485,7 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn else if (base->getBasicType() == EbtSampler && version >= 130) { const char* explanation = "variable indexing sampler array"; requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation); - profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation); + profileRequires(base->getLoc(), EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation); profileRequires(base->getLoc(), ECoreProfile | ECompatibilityProfile, 400, nullptr, explanation); } @@ -436,10 +510,6 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn } result->setType(newType); - // Propagate nonuniform - if (base->getQualifier().isNonUniform() || index->getQualifier().isNonUniform()) - result->getWritableType().getQualifier().nonUniform = true; - if (anyIndexLimits) handleIndexLimits(loc, base, index); } @@ -447,6 +517,29 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn return result; } +void TParseContext::checkIndex(const TSourceLoc& loc, const TType& type, int& index) +{ + if (index < 0) { + error(loc, "", "[", "index out of range '%d'", index); + index = 0; + } else if (type.isArray()) { + if (type.isExplicitlySizedArray() && index >= type.getOuterArraySize()) { + error(loc, "", "[", "array index out of range '%d'", index); + index = type.getOuterArraySize() - 1; + } + } else if (type.isVector()) { + if (index >= type.getVectorSize()) { + error(loc, "", "[", "vector index out of range '%d'", index); + index = type.getVectorSize() - 1; + } + } else if (type.isMatrix()) { + if (index >= type.getMatrixCols()) { + error(loc, "", "[", "matrix index out of range '%d'", index); + index = type.getMatrixCols() - 1; + } + } +} + // for ES 2.0 (version 100) limitations for almost all index operations except vertex-shader uniforms void TParseContext::handleIndexLimits(const TSourceLoc& /*loc*/, TIntermTyped* base, TIntermTyped* index) { @@ -465,7 +558,7 @@ void TParseContext::handleIndexLimits(const TSourceLoc& /*loc*/, TIntermTyped* b } } -// Make a shared symbol have a non-shared version that can be edited by the current +// Make a shared symbol have a non-shared version that can be edited by the current // compile, such that editing its type will not change the shared version and will // effect all nodes sharing it. void TParseContext::makeEditable(TSymbol*& symbol) @@ -498,7 +591,7 @@ void TParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type) if (language == EShLangTessControl || language == EShLangTessEvaluation) { if (type.getOuterArraySize() != resources.maxPatchVertices) { - if (type.isSizedArray()) + if (type.isExplicitlySizedArray()) error(loc, "tessellation input array size must be gl_MaxPatchVertices or implicitly sized", "[]", ""); type.changeOuterArraySize(resources.maxPatchVertices); } @@ -507,15 +600,11 @@ void TParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type) // Issue any errors if the non-array object is missing arrayness WRT // shader I/O that has array requirements. -// All arrayness checking is handled in array paths, this is for +// All arrayness checking is handled in array paths, this is for void TParseContext::ioArrayCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) { if (! type.isArray() && ! symbolTable.atBuiltInLevel()) { - if (type.getQualifier().isArrayedIo(language) -#ifdef NV_EXTENSIONS - && !type.getQualifier().layoutPassthrough -#endif - ) + if (type.getQualifier().isArrayedIo(language)) error(loc, "type must be an array:", type.getStorageQualifierString(), identifier.c_str()); } } @@ -531,7 +620,7 @@ void TParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TInterm return; // fix array size, if it can be fixed and needs to be fixed (will allow variable indexing) - if (symbolNode->getType().isUnsizedArray()) { + if (symbolNode->getType().isImplicitlySizedArray()) { int newSize = getIoArrayImplicitSize(); if (newSize > 0) symbolNode->getWritableType().changeOuterArraySize(newSize); @@ -540,7 +629,7 @@ void TParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TInterm // If there has been an input primitive declaration (geometry shader) or an output // number of vertices declaration(tessellation shader), make sure all input array types -// match it in size. Types come either from nodes in the AST or symbols in the +// match it in size. Types come either from nodes in the AST or symbols in the // symbol table. // // Types without an array size will be given one. @@ -581,7 +670,7 @@ int TParseContext::getIoArrayImplicitSize() const void TParseContext::checkIoArrayConsistency(const TSourceLoc& loc, int requiredSize, const char* feature, TType& type, const TString& name) { - if (type.isUnsizedArray()) + if (type.isImplicitlySizedArray()) type.changeOuterArraySize(requiredSize); else if (type.getOuterArraySize() != requiredSize) { if (language == EShLangGeometry) @@ -636,7 +725,7 @@ TIntermTyped* TParseContext::handleUnaryMath(const TSourceLoc& loc, const char* return result; else unaryOpError(loc, str, childNode->getCompleteString()); - + return childNode; } @@ -649,7 +738,7 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm // // .length() can't be resolved until we later see the function-calling syntax. - // Save away the name in the AST for now. Processing is completed in + // Save away the name in the AST for now. Processing is completed in // handleLengthMethod(). // if (field == "length") { @@ -681,22 +770,24 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm // leaving swizzles and struct/block dereferences. TIntermTyped* result = base; - if ((base->isVector() || base->isScalar()) && - (base->isFloatingDomain() || base->isIntegerDomain() || base->getBasicType() == EbtBool)) { + if (base->isVector() || base->isScalar()) { if (base->isScalar()) { const char* dotFeature = "scalar swizzle"; requireProfile(loc, ~EEsProfile, dotFeature); profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, dotFeature); } - TSwizzleSelectors selectors; - parseSwizzleSelector(loc, field, base->getVectorSize(), selectors); + TVectorFields fields; + if (! parseVectorFields(loc, field, base->getVectorSize(), fields)) { + fields.num = 1; + fields.offsets[0] = 0; + } if (base->isScalar()) { - if (selectors.size() == 1) + if (fields.num == 1) return result; else { - TType type(base->getBasicType(), EvqTemporary, selectors.size()); + TType type(base->getBasicType(), EvqTemporary, fields.num); // Swizzle operations propagate specialization-constantness if (base->getQualifier().isSpecConstant()) type.getQualifier().makeSpecConstant(); @@ -705,16 +796,17 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm } if (base->getType().getQualifier().isFrontEndConstant()) - result = intermediate.foldSwizzle(base, selectors, loc); + result = intermediate.foldSwizzle(base, fields, loc); else { - if (selectors.size() == 1) { - TIntermTyped* index = intermediate.addConstantUnion(selectors[0], loc); + if (fields.num == 1) { + TIntermTyped* index = intermediate.addConstantUnion(fields.offsets[0], loc); result = intermediate.addIndex(EOpIndexDirect, base, index, loc); result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision)); } else { - TIntermTyped* index = intermediate.addSwizzle(selectors, loc); + TString vectorString = field; + TIntermTyped* index = intermediate.addSwizzle(fields, loc); result = intermediate.addIndex(EOpVectorSwizzle, base, index, loc); - result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, selectors.size())); + result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, (int)vectorString.size())); } // Swizzle operations propagate specialization-constantness if (base->getType().getQualifier().isSpecConstant()) @@ -748,10 +840,6 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm if (base->getQualifier().noContraction) result->getWritableType().getQualifier().noContraction = true; - // Propagate nonuniform - if (base->getQualifier().isNonUniform()) - result->getWritableType().getQualifier().nonUniform = true; - return result; } @@ -796,7 +884,7 @@ TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunct if (prevDec->isPrototyped() && prototype) profileRequires(loc, EEsProfile, 300, nullptr, "multiple prototypes for same function"); if (prevDec->getType() != function.getType()) - error(loc, "overloaded functions must have the same return type", function.getName().c_str(), ""); + error(loc, "overloaded functions must have the same return type", function.getType().getBasicTypeString().c_str(), ""); for (int i = 0; i < prevDec->getParamCount(); ++i) { if ((*prevDec)[i].type->getQualifier().storage != function[i].type->getQualifier().storage) error(loc, "overloaded functions must have the same parameter storage qualifiers for argument", function[i].type->getStorageQualifierString(), "%d", i+1); @@ -814,7 +902,7 @@ TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunct if (symbolTable.atBuiltInLevel()) function.setDefined(); else { - if (prevDec && ! builtIn) + if (prevDec && ! builtIn) symbol->getAsFunction()->setPrototyped(); // need a writable one, but like having prevDec as a const function.setPrototyped(); } @@ -834,7 +922,7 @@ TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunct } // -// Handle seeing the function prototype in front of a function definition in the grammar. +// Handle seeing the function prototype in front of a function definition in the grammar. // The body is handled after this function returns. // TIntermAggregate* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function) @@ -918,7 +1006,7 @@ TIntermAggregate* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, loopNestingLevel = 0; statementNestingLevel = 0; controlFlowNestingLevel = 0; - postEntryPointReturn = false; + postMainReturn = false; return paramNodes; } @@ -970,7 +1058,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (builtIn && fnCandidate->getNumExtensions()) requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str()); - if (arguments != nullptr) { + if (arguments) { // Make sure qualifications work for these arguments. TIntermAggregate* aggregate = arguments->getAsAggregate(); for (int i = 0; i < fnCandidate->getParamCount(); ++i) { @@ -995,10 +1083,10 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (argQualifier.writeonly && ! formalQualifier.writeonly) error(arguments->getLoc(), message, "writeonly", ""); } - // TODO 4.5 functionality: A shader will fail to compile + // TODO 4.5 functionality: A shader will fail to compile // if the value passed to the memargument of an atomic memory function does not correspond to a buffer or - // shared variable. It is acceptable to pass an element of an array or a single component of a vector to the - // memargument of an atomic memory function, as long as the underlying array or vector is a buffer or + // shared variable. It is acceptable to pass an element of an array or a single component of a vector to the + // memargument of an atomic memory function, as long as the underlying array or vector is a buffer or // shared variable. } @@ -1008,7 +1096,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (builtIn && fnCandidate->getBuiltInOp() != EOpNull) { // A function call mapped to a built-in operation. - result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate); + result = handleBuiltInFunctionCall(loc, *arguments, *fnCandidate); } 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. @@ -1056,24 +1144,20 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction return result; } -TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNode* arguments, +TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNode& arguments, const TFunction& function) { checkLocation(loc, function.getBuiltInOp()); TIntermTyped *result = intermediate.addBuiltInFunctionCall(loc, function.getBuiltInOp(), function.getParamCount() == 1, - arguments, function.getType()); + &arguments, function.getType()); if (obeyPrecisionQualifiers()) computeBuiltinPrecisions(*result, function); - if (result == nullptr) { - if (arguments == nullptr) - error(loc, " wrong operand type", "Internal Error", - "built in unary operator function. Type: %s", ""); - else - error(arguments->getLoc(), " wrong operand type", "Internal Error", - "built in unary operator function. Type: %s", - static_cast(arguments)->getCompleteString().c_str()); + 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, function, *result->getAsOperator()); @@ -1125,7 +1209,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction operationPrecision = std::max(function[0].type->getQualifier().precision, unaryNode->getOperand()->getType().getQualifier().precision); if (function.getType().getBasicType() != EbtBool) - resultPrecision = function.getType().getQualifier().precision == EpqNone ? + resultPrecision = function.getType().getQualifier().precision == EpqNone ? operationPrecision : function.getType().getQualifier().precision; } else if (TIntermAggregate* agg = node.getAsAggregate()) { @@ -1152,16 +1236,10 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision); } // compute the result precision -#ifdef AMD_EXTENSIONS - if (agg->isSampling() || - agg->getOp() == EOpImageLoad || agg->getOp() == EOpImageStore || - agg->getOp() == EOpImageLoadLod || agg->getOp() == EOpImageStoreLod) -#else if (agg->isSampling() || agg->getOp() == EOpImageLoad || agg->getOp() == EOpImageStore) -#endif resultPrecision = sequence[0]->getAsTyped()->getQualifier().precision; else if (function.getType().getBasicType() != EbtBool) - resultPrecision = function.getType().getQualifier().precision == EpqNone ? + resultPrecision = function.getType().getQualifier().precision == EpqNone ? operationPrecision : function.getType().getQualifier().precision; } @@ -1209,7 +1287,7 @@ void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op) error(loc, "tessellation control barrier() cannot be placed within flow control", "", ""); if (! inMain) error(loc, "tessellation control barrier() must be in main()", "", ""); - else if (postEntryPointReturn) + else if (postMainReturn) error(loc, "tessellation control barrier() cannot be placed after a return from main()", "", ""); } break; @@ -1219,7 +1297,7 @@ void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op) } // Finish processing object.length(). This started earlier in handleDotDereference(), where -// the ".length" part was recognized and semantically checked, and finished here where the +// the ".length" part was recognized and semantically checked, and finished here where the // function syntax "()" is recognized. // // Return resulting tree node. @@ -1232,10 +1310,13 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction else { const TType& type = intermNode->getAsTyped()->getType(); if (type.isArray()) { - if (type.isUnsizedArray()) { + if (type.isRuntimeSizedArray()) { + // Create a unary op and let the back end handle it + return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); + } else if (type.isImplicitlySizedArray()) { if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) { - // We could be between a layout declaration that gives a built-in io array implicit size and - // a user redeclaration of that array, meaning we have to substitute its implicit size here + // We could be between a layout declaration that gives a built-in io array implicit size and + // a user redeclaration of that array, meaning we have to substitute its implicit size here // without actually redeclaring the array. (It is an error to use a member before the // redeclaration, but not an error to use the array name itself.) const TString& name = intermNode->getAsSymbolNode()->getName(); @@ -1245,10 +1326,7 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction if (length == 0) { if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier"); - else if (isRuntimeLength(*intermNode->getAsTyped())) { - // Create a unary op and let the back end handle it - return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); - } else + else error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method"); } } else if (type.getOuterArrayNode()) { @@ -1401,9 +1479,8 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan unaryArg = callNode.getAsUnaryNode()->getOperand(); arg0 = unaryArg; } + const TIntermSequence& aggArgs = *argp; // only valid when unaryArg is nullptr - TString featureString; - const char* feature = nullptr; switch (callNode.getOp()) { case EOpTextureGather: case EOpTextureGatherOffset: @@ -1412,9 +1489,8 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan // Figure out which variants are allowed by what extensions, // and what arguments must be constant for which situations. - featureString = fnCandidate.getName(); - featureString += "(...)"; - feature = featureString.c_str(); + TString featureString = fnCandidate.getName() + "(...)"; + const char* feature = featureString.c_str(); profileRequires(loc, EEsProfile, 310, nullptr, feature); int compArg = -1; // track which argument, if any, is the constant component argument switch (callNode.getOp()) { @@ -1434,9 +1510,8 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_texture_gather, feature); else profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); - if (! (*argp)[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) - profileRequires(loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, - "non-constant offset argument"); + if (! aggArgs[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) + profileRequires(loc, EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "non-constant offset argument"); if (! fnCandidate[0].type->getSampler().shadow) compArg = 3; break; @@ -1445,7 +1520,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan if (! fnCandidate[0].type->getSampler().shadow) compArg = 3; // check for constant offsets - if (! (*argp)[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) + if (! aggArgs[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) error(loc, "must be a compile-time constant:", feature, "offsets argument"); break; default: @@ -1453,99 +1528,17 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan } if (compArg > 0 && compArg < fnCandidate.getParamCount()) { - if ((*argp)[compArg]->getAsConstantUnion()) { - int value = (*argp)[compArg]->getAsConstantUnion()->getConstArray()[0].getIConst(); + 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"); } -#ifdef AMD_EXTENSIONS - bool bias = false; - if (callNode.getOp() == EOpTextureGather) - bias = fnCandidate.getParamCount() > 3; - else if (callNode.getOp() == EOpTextureGatherOffset || - callNode.getOp() == EOpTextureGatherOffsets) - bias = fnCandidate.getParamCount() > 4; - - if (bias) { - featureString = fnCandidate.getName(); - featureString += "with bias argument"; - feature = featureString.c_str(); - profileRequires(loc, ~EEsProfile, 450, nullptr, feature); - requireExtensions(loc, 1, &E_GL_AMD_texture_gather_bias_lod, feature); - } -#endif - break; } -#ifdef AMD_EXTENSIONS - case EOpSparseTextureGather: - case EOpSparseTextureGatherOffset: - case EOpSparseTextureGatherOffsets: - { - bool bias = false; - if (callNode.getOp() == EOpSparseTextureGather) - bias = fnCandidate.getParamCount() > 4; - else if (callNode.getOp() == EOpSparseTextureGatherOffset || - callNode.getOp() == EOpSparseTextureGatherOffsets) - bias = fnCandidate.getParamCount() > 5; - - if (bias) { - featureString = fnCandidate.getName(); - featureString += "with bias argument"; - feature = featureString.c_str(); - profileRequires(loc, ~EEsProfile, 450, nullptr, feature); - requireExtensions(loc, 1, &E_GL_AMD_texture_gather_bias_lod, feature); - } - - break; - } - - case EOpSparseTextureGatherLod: - case EOpSparseTextureGatherLodOffset: - case EOpSparseTextureGatherLodOffsets: - { - requireExtensions(loc, 1, &E_GL_ARB_sparse_texture2, fnCandidate.getName().c_str()); - break; - } - - case EOpSwizzleInvocations: - { - if (! (*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "offset", ""); - else { - unsigned offset[4] = {}; - offset[0] = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getUConst(); - offset[1] = (*argp)[1]->getAsConstantUnion()->getConstArray()[1].getUConst(); - offset[2] = (*argp)[1]->getAsConstantUnion()->getConstArray()[2].getUConst(); - offset[3] = (*argp)[1]->getAsConstantUnion()->getConstArray()[3].getUConst(); - if (offset[0] > 3 || offset[1] > 3 || offset[2] > 3 || offset[3] > 3) - error(loc, "components must be in the range [0, 3]", "offset", ""); - } - - break; - } - - case EOpSwizzleInvocationsMasked: - { - if (! (*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "mask", ""); - else { - unsigned mask[3] = {}; - mask[0] = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getUConst(); - mask[1] = (*argp)[1]->getAsConstantUnion()->getConstArray()[1].getUConst(); - mask[2] = (*argp)[1]->getAsConstantUnion()->getConstArray()[2].getUConst(); - if (mask[0] > 31 || mask[1] > 31 || mask[2] > 31) - error(loc, "components must be in the range [0, 31]", "mask", ""); - } - - break; - } -#endif - case EOpTextureOffset: case EOpTextureFetchOffset: case EOpTextureProjOffset: @@ -1571,18 +1564,12 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan } if (arg > 0) { - -#ifdef AMD_EXTENSIONS - bool f16ShadowCompare = (*argp)[1]->getAsTyped()->getBasicType() == EbtFloat16 && arg0->getType().getSampler().shadow; - if (f16ShadowCompare) - ++arg; -#endif - if (! (*argp)[arg]->getAsConstantUnion()) + if (! aggArgs[arg]->getAsConstantUnion()) error(loc, "argument must be compile-time constant", "texel offset", ""); else { - const TType& type = (*argp)[arg]->getAsTyped()->getType(); + const TType& type = aggArgs[arg]->getAsTyped()->getType(); for (int c = 0; c < type.getVectorSize(); ++c) { - int offset = (*argp)[arg]->getAsConstantUnion()->getConstArray()[c].getIConst(); + 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]"); } @@ -1613,7 +1600,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan if (imageType.getQualifier().layoutFormat != ElfR32i && imageType.getQualifier().layoutFormat != ElfR32ui) error(loc, "only supported on image with format r32i or r32ui", fnCandidate.getName().c_str(), ""); } else { - if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) + if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) error(loc, "only supported on integer images", fnCandidate.getName().c_str(), ""); else if (imageType.getQualifier().layoutFormat != ElfR32f && profile == EEsProfile) error(loc, "only supported on image with format r32f", fnCandidate.getName().c_str(), ""); @@ -1622,29 +1609,9 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan break; } -#ifdef NV_EXTENSIONS - case EOpAtomicAdd: - case EOpAtomicMin: - case EOpAtomicMax: - case EOpAtomicAnd: - case EOpAtomicOr: - case EOpAtomicXor: - case EOpAtomicExchange: - case EOpAtomicCompSwap: - { - if (arg0->getType().getBasicType() == EbtInt64 || arg0->getType().getBasicType() == EbtUint64) - requireExtensions(loc, 1, &E_GL_NV_shader_atomic_int64, fnCandidate.getName().c_str()); - - break; - } -#endif - case EOpInterpolateAtCentroid: case EOpInterpolateAtSample: case EOpInterpolateAtOffset: -#ifdef AMD_EXTENSIONS - case EOpInterpolateAtVertex: -#endif // 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. @@ -1659,23 +1626,6 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan if (base == nullptr || base->getType().getQualifier().storage != EvqVaryingIn) error(loc, "first argument must be an interpolant, or interpolant-array element", fnCandidate.getName().c_str(), ""); } - -#ifdef AMD_EXTENSIONS - if (callNode.getOp() == EOpInterpolateAtVertex) { - if (!arg0->getType().getQualifier().isExplicitInterpolation()) - error(loc, "argument must be qualified as __explicitInterpAMD in", "interpolant", ""); - else { - if (! (*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "vertex index", ""); - else { - unsigned vertexIdx = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (vertexIdx > 2) - error(loc, "must be in the range [0, 2]", "vertex index", ""); - } - } - } -#endif - break; case EOpEmitStreamVertex: @@ -1683,33 +1633,9 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan intermediate.setMultiStream(); break; - case EOpSubgroupClusteredAdd: - case EOpSubgroupClusteredMul: - case EOpSubgroupClusteredMin: - case EOpSubgroupClusteredMax: - case EOpSubgroupClusteredAnd: - case EOpSubgroupClusteredOr: - case EOpSubgroupClusteredXor: - if ((*argp)[1]->getAsConstantUnion() == nullptr) - error(loc, "argument must be compile-time constant", "cluster size", ""); - else { - int size = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getIConst(); - if (size < 1) - error(loc, "argument must be at least 1", "cluster size", ""); - else if (!IsPow2(size)) - error(loc, "argument must be a power of 2", "cluster size", ""); - } - break; - default: break; } - - if (callNode.getOp() > EOpSubgroupGuardStart && callNode.getOp() < EOpSubgroupGuardStop) { - // these require SPIR-V 1.3 - if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_3) - error(loc, "requires SPIR-V 1.3", "subgroup op", ""); - } } extern bool PureOperatorBuiltins; @@ -1724,7 +1650,7 @@ extern bool PureOperatorBuiltins; // void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fnCandidate, TIntermAggregate& callNode) { - // Further maintenance of this function is deprecated, because the "correct" + // Further maintenance of this function is deprecated, because the "correct" // future-oriented design is to not have to do string compares on function names. // If PureOperatorBuiltins == true, then all built-ins should be mapped @@ -1752,8 +1678,7 @@ void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fn profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); int offsetArg = fnCandidate[0].type->getSampler().shadow ? 3 : 2; if (! callNode.getSequence()[offsetArg]->getAsConstantUnion()) - profileRequires(loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, - "non-constant offset argument"); + profileRequires(loc, EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "non-constant offset argument"); if (! fnCandidate[0].type->getSampler().shadow) compArg = 3; } else if (fnCandidate.getName().compare("textureGatherOffsets") == 0) { @@ -1830,7 +1755,7 @@ void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fn if (imageType.getQualifier().layoutFormat != ElfR32i && imageType.getQualifier().layoutFormat != ElfR32ui) error(loc, "only supported on image with format r32i or r32ui", fnCandidate.getName().c_str(), ""); } else { - if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) + if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) error(loc, "only supported on integer images", fnCandidate.getName().c_str(), ""); else if (imageType.getQualifier().layoutFormat != ElfR32f && profile == EEsProfile) error(loc, "only supported on image with format r32f", fnCandidate.getName().c_str(), ""); @@ -2271,15 +2196,6 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T case EOpConstructDMat4x2: case EOpConstructDMat4x3: case EOpConstructDMat4x4: - case EOpConstructF16Mat2x2: - case EOpConstructF16Mat2x3: - case EOpConstructF16Mat2x4: - case EOpConstructF16Mat3x2: - case EOpConstructF16Mat3x3: - case EOpConstructF16Mat3x4: - case EOpConstructF16Mat4x2: - case EOpConstructF16Mat4x3: - case EOpConstructF16Mat4x4: constructingMatrix = true; break; default: @@ -2300,7 +2216,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T bool floatArgument = false; for (int arg = 0; arg < function.getParamCount(); ++arg) { if (function[arg].type->isArray()) { - if (function[arg].type->isUnsizedArray()) { + if (! function[arg].type->isExplicitlySizedArray()) { // Can't construct from an unsized array. error(loc, "array argument must be sized", "constructor", ""); return true; @@ -2336,10 +2252,6 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T // Finish pinning down spec-const semantics if (specConstType) { switch (op) { - case EOpConstructInt8: - case EOpConstructUint8: - case EOpConstructInt16: - case EOpConstructUint16: case EOpConstructInt: case EOpConstructUint: case EOpConstructInt64: @@ -2348,18 +2260,6 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T case EOpConstructBVec2: case EOpConstructBVec3: case EOpConstructBVec4: - case EOpConstructI8Vec2: - case EOpConstructI8Vec3: - case EOpConstructI8Vec4: - case EOpConstructU8Vec2: - case EOpConstructU8Vec3: - case EOpConstructU8Vec4: - case EOpConstructI16Vec2: - case EOpConstructI16Vec3: - case EOpConstructI16Vec4: - case EOpConstructU16Vec2: - case EOpConstructU16Vec3: - case EOpConstructU16Vec4: case EOpConstructIVec2: case EOpConstructIVec3: case EOpConstructIVec4: @@ -2398,7 +2298,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T return true; } - if (type.isUnsizedArray()) { + if (type.isImplicitlySizedArray()) { // auto adapt the constructor type to the number of arguments type.changeOuterArraySize(function.getParamCount()); } else if (type.getOuterArraySize() != function.getParamCount()) { @@ -2410,21 +2310,20 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T // 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(); + TArraySizes& arraySizes = type.getArraySizes(); // At least the dimensionalities have to match. - if (! function[0].type->isArray() || - arraySizes.getNumDims() != function[0].type->getArraySizes()->getNumDims() + 1) { + 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()) { + if (arraySizes.isInnerImplicit()) { // "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)); + arraySizes.setDimSize(d, function[0].type->getArraySizes().getDimSize(d - 1)); } } } @@ -2509,8 +2408,8 @@ bool TParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const // 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() || + 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; @@ -2573,16 +2472,6 @@ void TParseContext::boolCheck(const TSourceLoc& loc, const TPublicType& pType) void TParseContext::samplerCheck(const TSourceLoc& loc, const TType& type, const TString& identifier, TIntermTyped* /*initializer*/) { - // Check that the appropriate extension is enabled if external sampler is used. - // There are two extensions. The correct one must be used based on GLSL version. - if (type.getBasicType() == EbtSampler && type.getSampler().external) { - if (version < 300) { - requireExtensions(loc, 1, &E_GL_OES_EGL_image_external, "samplerExternalOES"); - } else { - requireExtensions(loc, 1, &E_GL_OES_EGL_image_external_essl3, "samplerExternalOES"); - } - } - if (type.getQualifier().storage == EvqUniform) return; @@ -2607,35 +2496,17 @@ void TParseContext::atomicUintCheck(const TSourceLoc& loc, const TType& type, co error(loc, "atomic_uints can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str()); } -void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) +void TParseContext::transparentCheck(const TSourceLoc& loc, const TType& type, const TString& /*identifier*/) { + // double standard due to gl_NumSamples if (parsingBuiltins) return; - if (type.getQualifier().storage != EvqUniform) + // Vulkan doesn't allow transparent uniforms outside of blocks + if (spvVersion.vulkan == 0 || type.getQualifier().storage != EvqUniform) return; - - if (type.containsNonOpaque()) { - // Vulkan doesn't allow transparent uniforms outside of blocks - if (spvVersion.vulkan > 0) - vulkanRemoved(loc, "non-opaque uniforms outside a block"); - // OpenGL wants locations on these (unless they are getting automapped) - if (spvVersion.openGl > 0 && !type.getQualifier().hasLocation() && !intermediate.getAutoMapLocations()) - error(loc, "non-opaque uniform variables need a layout(location=L)", identifier.c_str(), ""); - } -} - -// -// Qualifier checks knowing the qualifier and that it is a member of a struct/block. -// -void TParseContext::memberQualifierCheck(glslang::TPublicType& publicType) -{ - globalQualifierFixCheck(publicType.loc, publicType.qualifier); - checkNoShaderLayouts(publicType.loc, publicType.shaderQualifiers); - if (publicType.qualifier.isNonUniform()) { - error(publicType.loc, "not allowed on block or structure members", "nonuniformEXT", ""); - publicType.qualifier.nonUniform = false; - } + if (type.containsNonOpaque()) + vulkanRemoved(loc, "non-opaque uniforms outside a block"); } // @@ -2643,15 +2514,12 @@ void TParseContext::memberQualifierCheck(glslang::TPublicType& publicType) // void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& qualifier) { - bool nonuniformOkay = false; - // move from parameter/unknown qualifiers to pipeline in/out qualifiers switch (qualifier.storage) { case EvqIn: profileRequires(loc, ENoProfile, 130, nullptr, "in for stage inputs"); profileRequires(loc, EEsProfile, 300, nullptr, "in for stage inputs"); qualifier.storage = EvqVaryingIn; - nonuniformOkay = true; break; case EvqOut: profileRequires(loc, ENoProfile, 130, nullptr, "out for stage outputs"); @@ -2662,17 +2530,10 @@ void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& q qualifier.storage = EvqVaryingIn; error(loc, "cannot use 'inout' at global scope", "", ""); break; - case EvqGlobal: - case EvqTemporary: - nonuniformOkay = true; - break; default: break; } - if (!nonuniformOkay && qualifier.nonUniform) - error(loc, "for non-parameter, can only apply to 'in' or no storage qualifier", "nonuniformEXT", ""); - invariantCheck(loc, qualifier); } @@ -2698,12 +2559,14 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali // now, knowing it is a shader in/out, do all the in/out semantic checks - if (publicType.basicType == EbtBool && !parsingBuiltins) { + if (publicType.basicType == EbtBool) { error(loc, "cannot be bool", GetStorageQualifierString(qualifier.storage), ""); return; } - if (isTypeInt(publicType.basicType) || publicType.basicType == EbtDouble) + if (publicType.basicType == EbtInt || publicType.basicType == EbtUint || + publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64 || + publicType.basicType == EbtDouble) profileRequires(loc, EEsProfile, 300, nullptr, "shader input/output"); #ifdef AMD_EXTENSIONS @@ -2711,13 +2574,10 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali #else if (!qualifier.flat) { #endif - if (isTypeInt(publicType.basicType) || + if (publicType.basicType == EbtInt || publicType.basicType == EbtUint || + publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64 || publicType.basicType == EbtDouble || - (publicType.userDef && (publicType.userDef->containsBasicType(EbtInt8) || - publicType.userDef->containsBasicType(EbtUint8) || - publicType.userDef->containsBasicType(EbtInt16) || - publicType.userDef->containsBasicType(EbtUint16) || - publicType.userDef->containsBasicType(EbtInt) || + (publicType.userDef && (publicType.userDef->containsBasicType(EbtInt) || publicType.userDef->containsBasicType(EbtUint) || publicType.userDef->containsBasicType(EbtInt64) || publicType.userDef->containsBasicType(EbtUint64) || @@ -2819,8 +2679,8 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali error(loc, "can't use auxiliary qualifier on a fragment output", "centroid/sample/patch", ""); if (qualifier.isInterpolation()) error(loc, "can't use interpolation qualifier on a fragment output", "flat/smooth/noperspective", ""); - if (publicType.basicType == EbtDouble || publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64) - error(loc, "cannot contain a double, int64, or uint64", GetStorageQualifierString(qualifier.storage), ""); + if (publicType.basicType == EbtDouble) + error(loc, "cannot contain a double", GetStorageQualifierString(qualifier.storage), ""); break; case EShLangCompute: @@ -2857,7 +2717,7 @@ void TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, cons #endif // Ordering - if (! force && ((profile != EEsProfile && version < 420) || + if (! force && ((profile != EEsProfile && version < 420) || (profile == EEsProfile && version < 310)) && ! extensionTurnedOn(E_GL_ARB_shading_language_420pack)) { // non-function parameters @@ -2921,7 +2781,6 @@ void TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, cons MERGE_SINGLETON(readonly); MERGE_SINGLETON(writeonly); MERGE_SINGLETON(specConstant); - MERGE_SINGLETON(nonUniform); if (repeated) error(loc, "replicated qualifiers", "", ""); @@ -3122,7 +2981,7 @@ bool TParseContext::arrayError(const TSourceLoc& loc, const TType& type) // void TParseContext::arraySizeRequiredCheck(const TSourceLoc& loc, const TArraySizes& arraySizes) { - if (arraySizes.hasUnsized()) + if (arraySizes.isImplicit()) error(loc, "array size required", "", ""); } @@ -3136,8 +2995,7 @@ void TParseContext::structArrayCheck(const TSourceLoc& /*loc*/, const TType& typ } } -void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qualifier, TArraySizes* arraySizes, - const TIntermTyped* initializer, bool lastMember) +void TParseContext::arrayUnsizedCheck(const TSourceLoc& loc, const TQualifier& qualifier, const TArraySizes* arraySizes, bool initializer, bool lastMember) { assert(arraySizes); @@ -3145,22 +3003,13 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua if (parsingBuiltins) return; - // initializer must be a sized array, in which case - // allow the initializer to set any unknown array sizes - if (initializer != nullptr) { - if (initializer->getType().isUnsizedArray()) - error(loc, "array initializer must be sized", "[]", ""); + // always allow an initializer to set any unknown array sizes + if (initializer) return; - } - // No environment allows any non-outer-dimension to be implicitly sized - if (arraySizes->isInnerUnsized()) { + // No environment lets any non-outer-dimension that's to be implicitly sized + if (arraySizes->isInnerImplicit()) error(loc, "only outermost dimension of an array of arrays can be implicitly sized", "[]", ""); - arraySizes->clearInnerUnsized(); - } - - if (arraySizes->isInnerSpecialization()) - error(loc, "only outermost dimension of an array of arrays can be a specialization constant", "[]", ""); // desktop always allows outer-dimension-unsized variable arrays, if (profile != EEsProfile) @@ -3177,22 +3026,19 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua switch (language) { case EShLangGeometry: if (qualifier.storage == EvqVaryingIn) - if ((profile == EEsProfile && version >= 320) || - extensionsTurnedOn(Num_AEP_geometry_shader, AEP_geometry_shader)) + if (extensionsTurnedOn(Num_AEP_geometry_shader, AEP_geometry_shader)) return; break; case EShLangTessControl: if ( qualifier.storage == EvqVaryingIn || (qualifier.storage == EvqVaryingOut && ! qualifier.patch)) - if ((profile == EEsProfile && version >= 320) || - extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) + if (extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) return; break; case EShLangTessEvaluation: if ((qualifier.storage == EvqVaryingIn && ! qualifier.patch) || qualifier.storage == EvqVaryingOut) - if ((profile == EEsProfile && version >= 320) || - extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) + if (extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) return; break; default: @@ -3202,11 +3048,8 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua arraySizeRequiredCheck(loc, *arraySizes); } -void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc, const TArraySizes* sizes) +void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc) { - if (sizes == nullptr || sizes->getNumDims() == 1) - return; - const char* feature = "arrays of arrays"; requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); @@ -3214,11 +3057,41 @@ void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc, const TArray profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, nullptr, feature); } +void TParseContext::arrayDimCheck(const TSourceLoc& loc, const TArraySizes* sizes1, const TArraySizes* sizes2) +{ + if ((sizes1 && sizes2) || + (sizes1 && sizes1->getNumDims() > 1) || + (sizes2 && sizes2->getNumDims() > 1)) + arrayOfArrayVersionCheck(loc); +} + +void TParseContext::arrayDimCheck(const TSourceLoc& loc, const TType* type, const TArraySizes* sizes2) +{ + // skip checking for multiple dimensions on the type; it was caught earlier + if ((type && type->isArray() && sizes2) || + (sizes2 && sizes2->getNumDims() > 1)) + arrayOfArrayVersionCheck(loc); +} + +// Merge array dimensions listed in 'sizes' onto the type's array dimensions. +// +// From the spec: "vec4[2] a[3]; // size-3 array of size-2 array of vec4" +// +// That means, the 'sizes' go in front of the 'type' as outermost sizes. +// 'type' is the type part of the declaration (to the left) +// 'sizes' is the arrayness tagged on the identifier (to the right) +// +void TParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) +{ + if (sizes) + type.addArrayOuterSizes(*sizes); +} + // // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // -void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifier, const TType& type, TSymbol*& symbol) +void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol) { if (symbol == nullptr) { bool currentScope; @@ -3237,7 +3110,7 @@ void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifie symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); if (symbolTable.atGlobalLevel()) - trackLinkage(*symbol); + trackLinkageDeferred(*symbol); if (! symbolTable.atBuiltInLevel()) { if (isIoResizeArray(type)) { @@ -3283,7 +3156,7 @@ void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifie return; } - if (existingType.isSizedArray()) { + if (existingType.isExplicitlySizedArray()) { // be more leniant for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size if (! (isIoResizeArray(type) && existingType.getOuterArraySize() == type.getOuterArraySize())) error(loc, "redeclaration of array with size", identifier.c_str(), ""); @@ -3298,37 +3171,64 @@ void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifie checkIoArraysConsistency(loc); } -// Policy and error check for needing a runtime sized array. -void TParseContext::checkRuntimeSizable(const TSourceLoc& loc, const TIntermTyped& base) +void TParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNode *node, int index) { - // runtime length implies runtime sizeable, so no problem - if (isRuntimeLength(base)) + // maybe there is nothing to do... + TIntermTyped* typedNode = node->getAsTyped(); + if (typedNode->getType().getImplicitArraySize() > index) return; - // check for additional things allowed by GL_EXT_nonuniform_qualifier - if (base.getBasicType() == EbtSampler || - (base.getBasicType() == EbtBlock && base.getType().getQualifier().isUniformOrBuffer())) - requireExtensions(loc, 1, &E_GL_EXT_nonuniform_qualifier, "variable index"); - else - error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable"); -} + // something to do... -// Policy decision for whether a run-time .length() is allowed. -bool TParseContext::isRuntimeLength(const TIntermTyped& base) const -{ - if (base.getType().getQualifier().storage == EvqBuffer) { - // in a buffer block - const TIntermBinary* binary = base.getAsBinaryNode(); - if (binary != nullptr && binary->getOp() == EOpIndexDirectStruct) { - // is it the last member? - const int index = binary->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); - const int memberCount = (int)binary->getLeft()->getType().getStruct()->size(); - if (index == memberCount - 1) - return true; + // Figure out what symbol to lookup, as we will use its type to edit for the size change, + // as that type will be shared through shallow copies for future references. + TSymbol* symbol = nullptr; + int blockIndex = -1; + const TString* lookupName = nullptr; + if (node->getAsSymbolNode()) + lookupName = &node->getAsSymbolNode()->getName(); + else if (node->getAsBinaryNode()) { + const TIntermBinary* deref = node->getAsBinaryNode(); + // This has to be the result of a block dereference, unless it's bad shader code + // If it's a uniform block, then an error will be issued elsewhere, but + // return early now to avoid crashing later in this function. + if (deref->getLeft()->getBasicType() != EbtBlock || + deref->getLeft()->getType().getQualifier().storage == EvqUniform || + deref->getRight()->getAsConstantUnion() == nullptr) + return; + + const TIntermTyped* left = deref->getLeft(); + const TIntermTyped* right = deref->getRight(); + + if (left->getAsBinaryNode()) { + left = left->getAsBinaryNode()->getLeft(); // Block array access + assert(left->isArray()); } + + if (! left->getAsSymbolNode()) + return; + + blockIndex = right->getAsConstantUnion()->getConstArray()[0].getIConst(); + + lookupName = &left->getAsSymbolNode()->getName(); + if (IsAnonymous(*lookupName)) + lookupName = &(*left->getType().getStruct())[blockIndex].type->getFieldName(); } - return false; + // Lookup the symbol, should only fail if shader code is incorrect + symbol = symbolTable.find(*lookupName); + if (symbol == nullptr) + return; + + if (symbol->getAsFunction()) { + error(loc, "array variable name expected", symbol->getName().c_str(), ""); + return; + } + + if (symbol->getType().isStruct() && blockIndex != -1) + (*symbol->getWritableType().getStruct())[blockIndex].type->setImplicitArraySize(index + 1); + else + symbol->getWritableType().setImplicitArraySize(index + 1); } // Returns true if the first argument to the #line directive is the line number for the next line. @@ -3351,7 +3251,7 @@ bool TParseContext::lineDirectiveShouldSetNextLine() const void TParseContext::nonInitConstCheck(const TSourceLoc& loc, TString& identifier, TType& type) { // - // Make the qualifier make sense, given that there is not an initializer. + // Make the qualifier make sense, given that there is an initializer. // if (type.getQualifier().storage == EvqConst || type.getQualifier().storage == EvqConstReadOnly) { @@ -3377,8 +3277,7 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS return nullptr; bool nonEsRedecls = (profile != EEsProfile && (version >= 130 || identifier == "gl_TexCoord")); - bool esRedecls = (profile == EEsProfile && - (version >= 320 || extensionsTurnedOn(Num_AEP_shader_io_blocks, AEP_shader_io_blocks))); + bool esRedecls = (profile == EEsProfile && extensionsTurnedOn(Num_AEP_shader_io_blocks, AEP_shader_io_blocks)); if (! esRedecls && ! nonEsRedecls) return nullptr; @@ -3405,10 +3304,6 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS identifier == "gl_BackSecondaryColor" || identifier == "gl_SecondaryColor" || (identifier == "gl_Color" && language == EShLangFragment) || -#ifdef NV_EXTENSIONS - identifier == "gl_SampleMask" || - identifier == "gl_Layer" || -#endif identifier == "gl_TexCoord") { // Find the existing symbol, if any. @@ -3429,7 +3324,7 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS // Now, modify the type of the copy, as per the type of the current redeclaration. TQualifier& symbolQualifier = symbol->getWritableType().getQualifier(); - if (ssoPre150) { + if (ssoPre150) { if (intermediate.inIoAccessed(identifier)) error(loc, "cannot redeclare after use", identifier.c_str(), ""); if (qualifier.hasLayout()) @@ -3467,7 +3362,7 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS error(loc, "can only change layout qualification of", "redeclaration", symbol->getName().c_str()); if (qualifier.storage != EvqVaryingIn) error(loc, "cannot change input storage qualification of", "redeclaration", symbol->getName().c_str()); - if (! builtIn && (publicType.pixelCenterInteger != intermediate.getPixelCenterInteger() || + if (! builtIn && (publicType.pixelCenterInteger != intermediate.getPixelCenterInteger() || publicType.originUpperLeft != intermediate.getOriginUpperLeft())) error(loc, "cannot redeclare with different qualification:", "redeclaration", symbol->getName().c_str()); if (publicType.pixelCenterInteger) @@ -3486,22 +3381,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS if (! intermediate.setDepth(publicType.layoutDepth)) error(loc, "all redeclarations must use the same depth layout on", "redeclaration", symbol->getName().c_str()); } - } -#ifdef NV_EXTENSIONS - else if (identifier == "gl_SampleMask") { - if (!publicType.layoutOverrideCoverage) { - error(loc, "redeclaration only allowed for override_coverage layout", "redeclaration", symbol->getName().c_str()); - } - intermediate.setLayoutOverrideCoverage(); - } - else if (identifier == "gl_Layer") { - if (!qualifier.layoutViewportRelative && qualifier.layoutSecondaryViewportRelativeOffset == -2048) - error(loc, "redeclaration only allowed for viewport_relative or secondary_view_offset layout", "redeclaration", symbol->getName().c_str()); - symbolQualifier.layoutViewportRelative = qualifier.layoutViewportRelative; - symbolQualifier.layoutSecondaryViewportRelativeOffset = qualifier.layoutSecondaryViewportRelativeOffset; - } -#endif + } // TODO: semantics quality: separate smooth from nothing declared, then use IsInterpolation for several tests above return symbol; @@ -3514,11 +3395,10 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS // Either redeclare the requested block, or give an error message why it can't be done. // // TODO: functionality: explicitly sizing members of redeclared blocks is not giving them an explicit size -void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, - const TString* instanceName, TArraySizes* arraySizes) +void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes) { const char* feature = "built-in block redeclaration"; - profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); + profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); profileRequires(loc, ~EEsProfile, 410, E_GL_ARB_separate_shader_objects, feature); if (blockName != "gl_PerVertex" && blockName != "gl_PerFragment") { @@ -3564,32 +3444,10 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT return; } - // Fix XFB stuff up, it applies to the order of the redeclaration, not - // the order of the original members. - if (currentBlockQualifier.storage == EvqVaryingOut && globalOutputDefaults.hasXfbBuffer()) { - if (!currentBlockQualifier.hasXfbBuffer()) - currentBlockQualifier.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer; - fixBlockXfbOffsets(currentBlockQualifier, newTypeList); - } - // Edit and error check the container against the redeclaration // - remove unused members // - ensure remaining qualifiers/types match - TType& type = block->getWritableType(); - -#ifdef NV_EXTENSIONS - // if gl_PerVertex is redeclared for the purpose of passing through "gl_Position" - // for passthrough purpose, the redeclared block should have the same qualifers as - // the current one - if (currentBlockQualifier.layoutPassthrough) { - type.getQualifier().layoutPassthrough = currentBlockQualifier.layoutPassthrough; - type.getQualifier().storage = currentBlockQualifier.storage; - type.getQualifier().layoutStream = currentBlockQualifier.layoutStream; - type.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer; - } -#endif - TTypeList::iterator member = type.getWritableStruct()->begin(); size_t numOriginalMembersFound = 0; while (member != type.getStruct()->end()) { @@ -3617,19 +3475,16 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT error(memberLoc, "cannot redeclare block member with a different type", member->type->getFieldName().c_str(), ""); if (oldType.isArray() != newType.isArray()) error(memberLoc, "cannot change arrayness of redeclared block member", member->type->getFieldName().c_str(), ""); - else if (! oldType.sameArrayness(newType) && oldType.isSizedArray()) + else if (! oldType.sameArrayness(newType) && oldType.isExplicitlySizedArray()) error(memberLoc, "cannot change array size of redeclared block member", member->type->getFieldName().c_str(), ""); else if (newType.isArray()) arrayLimitCheck(loc, member->type->getFieldName(), newType.getOuterArraySize()); if (newType.getQualifier().isMemory()) error(memberLoc, "cannot add memory qualifier to redeclared block member", member->type->getFieldName().c_str(), ""); - if (newType.getQualifier().hasNonXfbLayout()) - error(memberLoc, "cannot add non-XFB layout to redeclared block member", member->type->getFieldName().c_str(), ""); + if (newType.getQualifier().hasLayout()) + error(memberLoc, "cannot add layout to redeclared block member", member->type->getFieldName().c_str(), ""); if (newType.getQualifier().patch) error(memberLoc, "cannot add patch to redeclared block member", member->type->getFieldName().c_str(), ""); - if (newType.getQualifier().hasXfbBuffer() && - newType.getQualifier().layoutXfbBuffer != currentBlockQualifier.layoutXfbBuffer) - error(memberLoc, "member cannot contradict block (or what block inherited from global)", "xfb_buffer", ""); oldType.getQualifier().centroid = newType.getQualifier().centroid; oldType.getQualifier().sample = newType.getQualifier().sample; oldType.getQualifier().invariant = newType.getQualifier().invariant; @@ -3637,24 +3492,13 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT oldType.getQualifier().smooth = newType.getQualifier().smooth; oldType.getQualifier().flat = newType.getQualifier().flat; oldType.getQualifier().nopersp = newType.getQualifier().nopersp; - oldType.getQualifier().layoutXfbOffset = newType.getQualifier().layoutXfbOffset; - oldType.getQualifier().layoutXfbBuffer = newType.getQualifier().layoutXfbBuffer; - oldType.getQualifier().layoutXfbStride = newType.getQualifier().layoutXfbStride; - if (oldType.getQualifier().layoutXfbOffset != TQualifier::layoutXfbBufferEnd) { - // if any member as an xfb_offset, then the block's xfb_buffer inherents current xfb_buffer, - // and for xfb processing, the member needs it as well, along with xfb_stride - type.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer; - oldType.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer; - } - if (oldType.isUnsizedArray() && newType.isSizedArray()) - oldType.changeOuterArraySize(newType.getOuterArraySize()); - // check and process the member's type, which will include managing xfb information - layoutTypeCheck(loc, oldType); + if (oldType.isImplicitlySizedArray() && newType.isExplicitlySizedArray()) + oldType.changeOuterArraySize(newType.getOuterArraySize()); // go to next member ++member; - } else { + } else { // For missing members of anonymous blocks that have been redeclared, // hide the original (shared) declaration. // Instance-named blocks can just have the member removed. @@ -3669,24 +3513,15 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT if (numOriginalMembersFound < newTypeList.size()) error(loc, "block redeclaration has extra members", blockName.c_str(), ""); - if (type.isArray() != (arraySizes != nullptr) || - (type.isArray() && arraySizes != nullptr && type.getArraySizes()->getNumDims() != arraySizes->getNumDims())) + if (type.isArray() != (arraySizes != nullptr)) error(loc, "cannot change arrayness of redeclared block", blockName.c_str(), ""); else if (type.isArray()) { - // At this point, we know both are arrays and both have the same number of dimensions. - - // It is okay for a built-in block redeclaration to be unsized, and keep the size of the - // original block declaration. - if (!arraySizes->isSized() && type.isSizedArray()) - arraySizes->changeOuterSize(type.getOuterArraySize()); - - // And, okay to be giving a size to the array, by the redeclaration - if (!type.isSizedArray() && arraySizes->isSized()) - type.changeOuterArraySize(arraySizes->getOuterSize()); - - // Now, they must match in all dimensions. - if (type.isSizedArray() && *type.getArraySizes() != *arraySizes) + if (type.isExplicitlySizedArray() && arraySizes->getOuterSize() == UnsizedArraySize) + error(loc, "block already declared with size, can't redeclare as implicitly-sized", blockName.c_str(), ""); + else if (type.isExplicitlySizedArray() && type.getArraySizes() != *arraySizes) error(loc, "cannot change array size of redeclared block", blockName.c_str(), ""); + else if (type.isImplicitlySizedArray() && arraySizes->getOuterSize() != UnsizedArraySize) + type.changeOuterArraySize(arraySizes->getOuterSize()); } symbolTable.insert(*block); @@ -3702,10 +3537,10 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT fixIoArraySize(loc, block->getWritableType()); // Save it in the AST for linker use. - trackLinkage(*block); + trackLinkageDeferred(*block); } -void TParseContext::paramCheckFixStorage(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) +void TParseContext::paramCheckFix(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) { switch (qualifier) { case EvqConst: @@ -3751,10 +3586,8 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali else warn(loc, "qualifier has no effect on non-output parameters", "precise", ""); } - if (qualifier.isNonUniform()) - type.getQualifier().nonUniform = qualifier.nonUniform; - paramCheckFixStorage(loc, qualifier.storage, type); + paramCheckFix(loc, qualifier.storage, type); } void TParseContext::nestedBlockCheck(const TSourceLoc& loc) @@ -3798,7 +3631,7 @@ void TParseContext::structTypeCheck(const TSourceLoc& /*loc*/, TPublicType& publ // fix and check for member storage qualifiers and types that don't belong within a structure for (unsigned int member = 0; member < typeList.size(); ++member) { - TQualifier& memberQualifier = typeList[member].type->getQualifier(); + TQualifier& memberQualifier = typeList[member].type->getQualifier(); const TSourceLoc& memberLoc = typeList[member].loc; if (memberQualifier.isAuxiliary() || memberQualifier.isInterpolation() || @@ -3972,7 +3805,7 @@ void TParseContext::finish() // Check for stages that are enabled by extension. // Can't do this at the beginning, it is chicken and egg to add a stage by // extension. - // Stage-specific features were correctly tested for already, this is just + // Stage-specific features were correctly tested for already, this is just // about the stage itself. switch (language) { case EShLangGeometry: @@ -3993,28 +3826,6 @@ void TParseContext::finish() default: break; } - -#ifdef NV_EXTENSIONS - // Set default outputs for GL_NV_geometry_shader_passthrough - if (language == EShLangGeometry && extensionTurnedOn(E_SPV_NV_geometry_shader_passthrough)) { - if (intermediate.getOutputPrimitive() == ElgNone) { - switch (intermediate.getInputPrimitive()) { - case ElgPoints: intermediate.setOutputPrimitive(ElgPoints); break; - case ElgLines: intermediate.setOutputPrimitive(ElgLineStrip); break; - case ElgTriangles: intermediate.setOutputPrimitive(ElgTriangles); break; - default: break; - } - } - if (intermediate.getVertices() == TQualifier::layoutNotSet) { - switch (intermediate.getInputPrimitive()) { - case ElgPoints: intermediate.setVertices(1); break; - case ElgLines: intermediate.setVertices(2); break; - case ElgTriangles: intermediate.setVertices(3); break; - default: break; - } - } - } -#endif } // @@ -4106,14 +3917,6 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.shaderQualifiers.geometry = ElgTriangleStrip; return; } -#ifdef NV_EXTENSIONS - if (id == "passthrough") { - requireExtensions(loc, 1, &E_SPV_NV_geometry_shader_passthrough, "geometry shader passthrough"); - publicType.qualifier.layoutPassthrough = true; - intermediate.setGeoPassthroughEXT(); - return; - } -#endif } else { assert(language == EShLangTessEvaluation); @@ -4179,14 +3982,6 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.shaderQualifiers.earlyFragmentTests = true; return; } - if (id == "post_depth_coverage") { - requireExtensions(loc, Num_post_depth_coverageEXTs, post_depth_coverageEXTs, "post depth coverage"); - if (extensionTurnedOn(E_GL_ARB_post_depth_coverage)) { - publicType.shaderQualifiers.earlyFragmentTests = true; - } - publicType.shaderQualifiers.postDepthCoverage = true; - return; - } for (TLayoutDepth depth = (TLayoutDepth)(EldNone + 1); depth < EldCount; depth = (TLayoutDepth)(depth+1)) { if (id == TQualifier::getLayoutDepthString(depth)) { requireProfile(loc, ECoreProfile | ECompatibilityProfile, "depth layout qualifier"); @@ -4199,8 +3994,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi bool found = false; for (TBlendEquationShift be = (TBlendEquationShift)0; be < EBlendCount; be = (TBlendEquationShift)(be + 1)) { if (id == TQualifier::getBlendEquationString(be)) { - profileRequires(loc, EEsProfile, 320, E_GL_KHR_blend_equation_advanced, "blend equation"); - profileRequires(loc, ~EEsProfile, 0, E_GL_KHR_blend_equation_advanced, "blend equation"); + requireExtensions(loc, 1, &E_GL_KHR_blend_equation_advanced, "blend equation"); intermediate.addBlendEquation(be); publicType.shaderQualifiers.blendEquation = true; found = true; @@ -4211,26 +4005,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi error(loc, "unknown blend equation", "blend_support", ""); return; } -#ifdef NV_EXTENSIONS - if (id == "override_coverage") { - requireExtensions(loc, 1, &E_GL_NV_sample_mask_override_coverage, "sample mask override coverage"); - publicType.shaderQualifiers.layoutOverrideCoverage = true; - return; - } } - if (language == EShLangVertex || - language == EShLangTessControl || - language == EShLangTessEvaluation || - language == EShLangGeometry ) { - if (id == "viewport_relative") { - requireExtensions(loc, 1, &E_GL_NV_viewport_array2, "view port array2"); - publicType.qualifier.layoutViewportRelative = true; - return; - } - } -#else - } -#endif error(loc, "unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)", id.c_str(), ""); } @@ -4261,26 +4036,22 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } std::transform(id.begin(), id.end(), id.begin(), ::tolower); - + if (id == "offset") { // "offset" can be for either // - uniform offsets // - atomic_uint offsets const char* feature = "offset"; - if (spvVersion.spv == 0) { - requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); - const char* exts[2] = { E_GL_ARB_enhanced_layouts, E_GL_ARB_shader_atomic_counters }; - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, 2, exts, feature); - profileRequires(loc, EEsProfile, 310, nullptr, feature); - } + requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); + const char* exts[2] = { E_GL_ARB_enhanced_layouts, E_GL_ARB_shader_atomic_counters }; + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, 2, exts, feature); + profileRequires(loc, EEsProfile, 310, nullptr, feature); publicType.qualifier.layoutOffset = value; return; } else if (id == "align") { const char* feature = "uniform buffer-member align"; - if (spvVersion.spv == 0) { - requireProfile(loc, ECoreProfile | ECompatibilityProfile, feature); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature); - } + requireProfile(loc, ECoreProfile | ECompatibilityProfile, feature); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature); // "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", ""); @@ -4321,9 +4092,9 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.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 + // "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(); const char* feature = "transform feedback qualifier"; @@ -4334,7 +4105,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi // "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); + 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 @@ -4347,7 +4118,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.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 + // "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); @@ -4379,24 +4150,6 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } return; } - if (id == "num_views") { - requireExtensions(loc, Num_OVR_multiview_EXTs, OVR_multiview_EXTs, "num_views"); - publicType.shaderQualifiers.numViews = value; - return; - } - -#if NV_EXTENSIONS - if (language == EShLangVertex || - language == EShLangTessControl || - language == EShLangTessEvaluation || - language == EShLangGeometry) { - if (id == "secondary_view_offset") { - requireExtensions(loc, 1, &E_GL_NV_stereo_view_rendering, "stereo view rendering"); - publicType.qualifier.layoutSecondaryViewportRelativeOffset = value; - return; - } - } -#endif switch (language) { case EShLangVertex: @@ -4460,10 +4213,6 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi if (id.compare(0, 11, "local_size_") == 0) { profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize"); profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize"); - if (id.size() == 12 && value == 0) { - error(loc, "must be at least 1", id.c_str(), ""); - return; - } if (id == "local_size_x") { publicType.shaderQualifiers.localSize[0] = value; return; @@ -4503,17 +4252,18 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi // 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." +// 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 TParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifier& src, bool inheritOnly) { if (src.hasMatrix()) @@ -4560,15 +4310,6 @@ void TParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifie if (src.layoutPushConstant) dst.layoutPushConstant = true; - -#ifdef NV_EXTENSIONS - if (src.layoutPassthrough) - dst.layoutPassthrough = true; - if (src.layoutViewportRelative) - dst.layoutViewportRelative = true; - if (src.layoutSecondaryViewportRelativeOffset != -2048) - dst.layoutSecondaryViewportRelativeOffset = src.layoutSecondaryViewportRelativeOffset; -#endif } } @@ -4595,26 +4336,7 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb } } - // user-variable location check, which are required for SPIR-V in/out: - // - variables have it directly, - // - blocks have it on each member (already enforced), so check first one - if (spvVersion.spv > 0 && !parsingBuiltins && qualifier.builtIn == EbvNone && - !qualifier.hasLocation() && !intermediate.getAutoMapLocations()) { - - switch (qualifier.storage) { - case EvqVaryingIn: - case EvqVaryingOut: - if (type.getBasicType() != EbtBlock || - (!(*type.getStruct())[0].type->getQualifier().hasLocation() && - (*type.getStruct())[0].type->getQualifier().builtIn == EbvNone)) - error(loc, "SPIR-V requires location for user input/output", "location", ""); - break; - default: - break; - } - } - - // Check packing and matrix + // Check packing and matrix if (qualifier.hasUniformLayout()) { switch (qualifier.storage) { case EvqUniform: @@ -4641,23 +4363,6 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb } } -// "For some blocks declared as arrays, the location can only be applied at the block level: -// When a block is declared as an array where additional locations are needed for each member -// for each block array element, it is a compile-time error to specify locations on the block -// members. That is, when locations would be under specified by applying them on block members, -// they are not allowed on block members. For arrayed interfaces (those generally having an -// extra level of arrayness due to interface expansion), the outer array is stripped before -// applying this rule." -void TParseContext::layoutMemberLocationArrayCheck(const TSourceLoc& loc, bool memberWithLocation, - TArraySizes* arraySizes) -{ - if (memberWithLocation && arraySizes != nullptr) { - if (arraySizes->getNumDims() > (currentBlockQualifier.isArrayedIo(language) ? 1 : 0)) - error(loc, "cannot use in a block array where new locations are needed for each block element", - "location", ""); - } -} - // Do layout error checking with respect to a type. void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) { @@ -4698,8 +4403,6 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) break; case EvqUniform: case EvqBuffer: - if (type.getBasicType() == EbtBlock) - error(loc, "cannot apply to uniform or buffer block", "location", ""); break; default: error(loc, "can only apply to uniform, buffer, in, or out storage qualifiers", "location", ""); @@ -4721,14 +4424,16 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) if (repeated >= 0) error(loc, "overlapping offsets at", "xfb_offset", "offset %d in buffer %d", repeated, qualifier.layoutXfbBuffer); - // "The offset must be a multiple of the size of the first component of the first - // qualified variable or block member, or a compile-time error results. Further, if applied to an aggregate + // "The offset must be a multiple of the size of the first component of the first + // qualified variable or block member, or a compile-time error results. Further, if applied to an aggregate // containing a double, the offset must also be a multiple of 8..." if (type.containsBasicType(EbtDouble) && ! IsMultipleOfPow2(qualifier.layoutXfbOffset, 8)) error(loc, "type contains double; xfb_offset must be a multiple of 8", "xfb_offset", ""); +#ifdef AMD_EXTENSIONS // ..., if applied to an aggregate containing a float16_t, the offset must also be a multiple of 2..." else if (type.containsBasicType(EbtFloat16) && !IsMultipleOfPow2(qualifier.layoutXfbOffset, 2)) error(loc, "type contains half float; xfb_offset must be a multiple of 2", "xfb_offset", ""); +#endif else if (! IsMultipleOfPow2(qualifier.layoutXfbOffset, 4)) error(loc, "must be a multiple of size of first component", "xfb_offset", ""); } @@ -4752,19 +4457,13 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) if (type.getBasicType() == EbtSampler) { int lastBinding = qualifier.layoutBinding; if (type.isArray()) { - if (spvVersion.vulkan > 0) + if (type.isImplicitlySizedArray()) { lastBinding += 1; - else { - if (type.isSizedArray()) - lastBinding += type.getCumulativeArraySize(); - else { - lastBinding += 1; - if (spvVersion.vulkan == 0) - warn(loc, "assuming binding count of one for compile-time checking of binding numbers for unsized array", "[]", ""); - } - } + warn(loc, "assuming array size of one for compile-time checking of binding numbers for implicitly-sized array", "[]", ""); + } else + lastBinding += type.getCumulativeArraySize(); } - if (spvVersion.vulkan == 0 && lastBinding >= resources.maxCombinedTextureImageUnits) + if (lastBinding >= resources.maxCombinedTextureImageUnits) error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : ""); } if (type.getBasicType() == EbtAtomicUint) { @@ -4773,31 +4472,12 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) return; } } - } else if (!intermediate.getAutoMapBindings()) { - // some types require bindings - - // atomic_uint - if (type.getBasicType() == EbtAtomicUint) - error(loc, "layout(binding=X) is required", "atomic_uint", ""); - - // SPIR-V - if (spvVersion.spv > 0) { - if (qualifier.isUniformOrBuffer()) { - if (type.getBasicType() == EbtBlock && !qualifier.layoutPushConstant && - !qualifier.layoutAttachment) - error(loc, "uniform/buffer blocks require layout(binding=X)", "binding", ""); - else if (spvVersion.vulkan > 0 && type.getBasicType() == EbtSampler) - error(loc, "sampler/texture/image requires layout(binding=X)", "binding", ""); - } - } } - // some things can't have arrays of arrays - if (type.isArrayOfArrays()) { - if (spvVersion.vulkan > 0) { - if (type.isOpaque() || (type.getQualifier().isUniformOrBuffer() && type.getBasicType() == EbtBlock)) - warn(loc, "Generating SPIR-V array-of-arrays, but Vulkan only supports single array level for this resource", "[][]", ""); - } + // atomic_uint + if (type.getBasicType() == EbtAtomicUint) { + if (! type.getQualifier().hasBinding()) + error(loc, "layout(binding=X) is required", "atomic_uint", ""); } // "The offset qualifier can only be used on block members of blocks..." @@ -4819,7 +4499,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) error(loc, "does not apply to unsigned integer images", TQualifier::getLayoutFormatString(qualifier.layoutFormat), ""); if (profile == EEsProfile) { - // "Except for image variables qualified with the format qualifiers r32f, r32i, and r32ui, image variables must + // "Except for image variables qualified with the format qualifiers r32f, r32i, and r32ui, image variables must // specify either memory qualifier readonly or the memory qualifier writeonly." if (! (qualifier.layoutFormat == ElfR32f || qualifier.layoutFormat == ElfR32i || qualifier.layoutFormat == ElfR32ui)) { if (! qualifier.readonly && ! qualifier.writeonly) @@ -4827,11 +4507,8 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) } } } - } else if (type.isImage() && ! qualifier.writeonly) { - const char *explanation = "image variables not declared 'writeonly' and without a format layout qualifier"; - requireProfile(loc, ECoreProfile | ECompatibilityProfile, explanation); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shader_image_load_formatted, explanation); - } + } else if (type.isImage() && ! qualifier.writeonly) + error(loc, "image variables not declared 'writeonly' must have a format layout qualifier", "", ""); if (qualifier.layoutPushConstant && type.getBasicType() != EbtBlock) error(loc, "can only be used with a block", "push_constant", ""); @@ -4853,10 +4530,6 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) error(loc, "can only be applied to a scalar", "constant_id", ""); switch (type.getBasicType()) { - case EbtInt8: - case EbtUint8: - case EbtInt16: - case EbtUint16: case EbtInt: case EbtUint: case EbtInt64: @@ -4864,7 +4537,9 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) case EbtBool: case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: +#endif break; default: error(loc, "cannot be applied to this type", "constant_id", ""); @@ -4886,8 +4561,8 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier if (qualifier.hasAnyLocation()) { - // "As with input layout qualifiers, all shaders except compute shaders - // allow *location* layout qualifiers on output variable declarations, + // "As with input layout qualifiers, all shaders except compute shaders + // allow *location* layout qualifiers on output variable declarations, // output block declarations, and output block member declarations." switch (qualifier.storage) { @@ -4950,11 +4625,11 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier error(loc, "requires uniform or buffer storage qualifier", "binding", ""); } if (qualifier.hasStream()) { - if (!qualifier.isPipeOutput()) + if (qualifier.storage != EvqVaryingOut) error(loc, "can only be used on an output", "stream", ""); } if (qualifier.hasXfb()) { - if (!qualifier.isPipeOutput()) + if (qualifier.storage != EvqVaryingOut) error(loc, "can only be used on an output", "xfb layout qualifier", ""); } if (qualifier.hasUniformLayout()) { @@ -4980,24 +4655,8 @@ void TParseContext::checkNoShaderLayouts(const TSourceLoc& loc, const TShaderQua if (shaderQualifiers.geometry != ElgNone) error(loc, message, TQualifier::getGeometryString(shaderQualifiers.geometry), ""); - if (shaderQualifiers.spacing != EvsNone) - error(loc, message, TQualifier::getVertexSpacingString(shaderQualifiers.spacing), ""); - if (shaderQualifiers.order != EvoNone) - error(loc, message, TQualifier::getVertexOrderString(shaderQualifiers.order), ""); - if (shaderQualifiers.pointMode) - error(loc, message, "point_mode", ""); if (shaderQualifiers.invocations != TQualifier::layoutNotSet) error(loc, message, "invocations", ""); - if (shaderQualifiers.earlyFragmentTests) - error(loc, message, "early_fragment_tests", ""); - if (shaderQualifiers.postDepthCoverage) - error(loc, message, "post_depth_coverage", ""); - for (int i = 0; i < 3; ++i) { - if (shaderQualifiers.localSize[i] > 1) - error(loc, message, "local_size", ""); - if (shaderQualifiers.localSizeSpecId[i] != TQualifier::layoutNotSet) - error(loc, message, "local_size id", ""); - } if (shaderQualifiers.vertices != TQualifier::layoutNotSet) { if (language == EShLangGeometry) error(loc, message, "max_vertices", ""); @@ -5006,10 +4665,15 @@ void TParseContext::checkNoShaderLayouts(const TSourceLoc& loc, const TShaderQua else assert(0); } + for (int i = 0; i < 3; ++i) { + if (shaderQualifiers.localSize[i] > 1) + error(loc, message, "local_size", ""); + if (shaderQualifiers.localSizeSpecId[i] != TQualifier::layoutNotSet) + error(loc, message, "local_size id", ""); + } if (shaderQualifiers.blendEquation) error(loc, message, "blend equation", ""); - if (shaderQualifiers.numViews != TQualifier::layoutNotSet) - error(loc, message, "num_views", ""); + // TBD: correctness: are any of these missing? pixelCenterInteger, originUpperLeft, spacing, order, pointmode, earlyfragment, depth } // Correct and/or advance an object's offset layout qualifier. @@ -5030,11 +4694,15 @@ void TParseContext::fixOffset(const TSourceLoc& loc, TSymbol& symbol) // Check for overlap int numOffsets = 4; if (symbol.getType().isArray()) { - if (symbol.getType().isSizedArray() && !symbol.getType().getArraySizes()->isInnerUnsized()) + if (symbol.getType().isExplicitlySizedArray()) numOffsets *= symbol.getType().getCumulativeArraySize(); else { - // "It is a compile-time error to declare an unsized array of atomic_uint." - error(loc, "array must be explicitly sized", "atomic_uint", ""); + // TODO: functionality: implicitly-sized atomic_uint arrays. + // We don't know the full size until later. This might + // be a specification problem, will report to Khronos. For the + // cases that is not true, the rest of the checking would need + // to be done at link time instead of compile time. + warn(loc, "implicitly sized atomic_uint array treated as having one element for tracking the default offset", "atomic_uint", ""); } } int repeated = intermediate.addUsedOffsets(qualifier.layoutBinding, offset, numOffsets); @@ -5061,21 +4729,10 @@ const TFunction* TParseContext::findFunction(const TSourceLoc& loc, const TFunct return nullptr; } - bool explicitTypesEnabled = extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int8) || - extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int16) || - extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int32) || - extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int64) || - extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float16) || - extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float32) || - extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float64); - if (profile == EEsProfile || version < 120) function = findFunctionExact(loc, call, builtIn); else if (version < 400) function = findFunction120(loc, call, builtIn); - else if (explicitTypesEnabled) - function = findFunctionExplicitTypes(loc, call, builtIn); else function = findFunction400(loc, call, builtIn); @@ -5216,7 +4873,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // create list of candidates to send TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); - + // can 'from' convert to 'to'? const auto convertible = [this](const TType& from, const TType& to, TOperator, int) -> bool { if (from == to) @@ -5248,7 +4905,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // for ambiguity reporting bool tie = false; - + // send to the generic selector const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); @@ -5260,86 +4917,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu return bestMatch; } -// "To determine whether the conversion for a single argument in one match -// is better than that for another match, the conversion is assigned of the -// three ranks ordered from best to worst: -// 1. Exact match: no conversion. -// 2. Promotion: integral or floating-point promotion. -// 3. Conversion: integral conversion, floating-point conversion, -// floating-integral conversion. -// A conversion C1 is better than a conversion C2 if the rank of C1 is -// better than the rank of C2." -const TFunction* TParseContext::findFunctionExplicitTypes(const TSourceLoc& loc, const TFunction& call, bool& builtIn) -{ - // first, look for an exact match - TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn); - 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); - - // can 'from' convert to 'to'? - const auto convertible = [this](const TType& from, const TType& to, TOperator, int) -> bool { - if (from == to) - return true; - if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) - return false; - return intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType()); - }; - - // Is 'to2' a better conversion than 'to1'? - // Ties should not be considered as better. - // Assumes 'convertible' already said true. - const auto better = [this](const TType& from, const TType& to1, const TType& to2) -> bool { - // 1. exact match - if (from == to2) - return from != to1; - if (from == to1) - return false; - - // 2. Promotion (integral, floating-point) is better - TBasicType from_type = from.getBasicType(); - TBasicType to1_type = to1.getBasicType(); - TBasicType to2_type = to2.getBasicType(); - bool isPromotion1 = (intermediate.isIntegralPromotion(from_type, to1_type) || - intermediate.isFPPromotion(from_type, to1_type)); - bool isPromotion2 = (intermediate.isIntegralPromotion(from_type, to2_type) || - intermediate.isFPPromotion(from_type, to2_type)); - if (isPromotion2) - return !isPromotion1; - if(isPromotion1) - return false; - - // 3. Conversion (integral, floating-point , floating-integral) - bool isConversion1 = (intermediate.isIntegralConversion(from_type, to1_type) || - intermediate.isFPConversion(from_type, to1_type) || - intermediate.isFPIntegralConversion(from_type, to1_type)); - bool isConversion2 = (intermediate.isIntegralConversion(from_type, to2_type) || - intermediate.isFPConversion(from_type, to2_type) || - intermediate.isFPIntegralConversion(from_type, to2_type)); - - return isConversion2 && !isConversion1; - }; - - // for ambiguity reporting - bool tie = false; - - // send to the generic selector - const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); - - if (bestMatch == nullptr) - error(loc, "no matching overloaded function found", call.getName().c_str(), ""); - else if (tie) - error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); - - return bestMatch; -} - -// When a declaration includes a type, but not a variable name, it can be +// When a declaration includes a type, but not a variable name, it can be // to establish defaults. void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType& publicType) { @@ -5367,27 +4945,27 @@ void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType // 'publicType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // -TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TPublicType& publicType, - TArraySizes* arraySizes, TIntermTyped* initializer) +TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TPublicType& publicType, TArraySizes* arraySizes, TIntermTyped* initializer) { - // Make a fresh type that combines the characteristics from the individual - // identifier syntax and the declaration-type syntax. - TType type(publicType); - type.transferArraySizes(arraySizes); - type.copyArrayInnerSizes(publicType.arraySizes); - arrayOfArrayVersionCheck(loc, type.getArraySizes()); + TType type(publicType); // shallow copy; 'type' shares the arrayness and structure definition with 'publicType' + if (type.isImplicitlySizedArray()) { + // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b + // of different sizes, for this case sharing the shallow copy of arrayness + // with the publicType oversubscribes it, so get a deep copy of the arrayness. + type.newArraySizes(*publicType.arraySizes); + } if (voidErrorCheck(loc, identifier, type.getBasicType())) return nullptr; - if (initializer) + if (initializer) rValueErrorCheck(loc, "initializer", initializer); else nonInitConstCheck(loc, identifier, type); samplerCheck(loc, type, identifier, initializer); atomicUintCheck(loc, type, identifier); - transparentOpaqueCheck(loc, type, identifier); + transparentCheck(loc, type, identifier); if (identifier != "gl_FragCoord" && (publicType.shaderQualifiers.originUpperLeft || publicType.shaderQualifiers.pixelCenterInteger)) error(loc, "can only apply origin_upper_left and pixel_center_origin to gl_FragCoord", "layout qualifier", ""); @@ -5402,9 +4980,15 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden inheritGlobalDefaults(type.getQualifier()); // Declare the variable - if (type.isArray()) { + if (arraySizes || type.isArray()) { + // Arrayness is potentially coming both from the type and from the + // variable: "int[] a[];" or just one or the other. + // Merge it all to the type, so all arrayness is part of the type. + arrayDimCheck(loc, &type, arraySizes); + arrayDimMerge(type, arraySizes); + // Check that implicit sizing is only where allowed. - arraySizesCheck(loc, type.getQualifier(), type.getArraySizes(), initializer, false); + arrayUnsizedCheck(loc, type.getQualifier(), &type.getArraySizes(), initializer != nullptr, false); if (! arrayQualifierError(loc, type.getQualifier()) && ! arrayError(loc, type)) declareArray(loc, identifier, type, symbol); @@ -5437,8 +5021,6 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden // look for errors in layout qualifier use layoutObjectCheck(loc, *symbol); - - // fix up fixOffset(loc, *symbol); return initNode; @@ -5463,7 +5045,7 @@ void TParseContext::inheritGlobalDefaults(TQualifier& dst) const // TVariable* TParseContext::makeInternalVariable(const char* name, const TType& type) const { - TString* nameString = NewPoolTString(name); + TString* nameString = new TString(name); TVariable* variable = new TVariable(nameString, type); symbolTable.makeInternalVariable(*variable); @@ -5476,7 +5058,7 @@ TVariable* TParseContext::makeInternalVariable(const char* name, const TType& ty // // Return the successfully declared variable. // -TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, const TString& identifier, const TType& type) +TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type) { // make a new variable TVariable* variable = new TVariable(&identifier, type); @@ -5486,7 +5068,7 @@ TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, const TString& // add variable to symbol table if (symbolTable.insert(*variable)) { if (symbolTable.atGlobalLevel()) - trackLinkage(*variable); + trackLinkageDeferred(*variable); return variable; } @@ -5535,7 +5117,8 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp } // Fix outer arrayness if variable is unsized, getting size from the initializer - if (initializer->getType().isSizedArray() && variable->getType().isUnsizedArray()) + if (initializer->getType().isExplicitlySizedArray() && + variable->getType().isImplicitlySizedArray()) variable->getWritableType().changeOuterArraySize(initializer->getType().getOuterArraySize()); // Inner arrayness can also get set by an initializer @@ -5544,10 +5127,8 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp 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)); - } + if (variable->getType().getArraySizes()->getDimSize(d) == UnsizedArraySize) + variable->getWritableType().getArraySizes().setDimSize(d, initializer->getType().getArraySizes()->getDimSize(d)); } } @@ -5658,16 +5239,16 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const // 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 + arrayType.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below // edit array sizes to fill in unsized dimensions arrayType.changeOuterArraySize((int)initList->getSequence().size()); TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped(); if (arrayType.isArrayOfArrays() && 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)); + 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)); } } @@ -5724,9 +5305,6 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const // 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. // -// 'node' is what to construct from. -// 'type' is what type to construct. -// // Returns nullptr for an error or the constructed node (aggregate or typed) for no error. // TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type) @@ -5756,7 +5334,7 @@ TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* bool singleArg; if (aggrNode) { - if (aggrNode->getOp() != EOpNull) + if (aggrNode->getOp() != EOpNull || aggrNode->getSequence().size() == 1) singleArg = true; else singleArg = false; @@ -5817,22 +5395,8 @@ TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* // // Returns nullptr for an error or the constructed node. // -TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, TIntermTyped* node, const TSourceLoc& loc, - bool subset) +TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, TIntermTyped* node, const TSourceLoc& loc, bool subset) { - // If we are changing a matrix in both domain of basic type and to a non matrix, - // do the shape change first (by default, below, basic type is changed before shape). - // This avoids requesting a matrix of a new type that is going to be discarded anyway. - // TODO: This could be generalized to more type combinations, but that would require - // more extensive testing and full algorithm rework. For now, the need to do two changes makes - // the recursive call work, and avoids the most aggregious case of creating integer matrices. - if (node->getType().isMatrix() && (type.isScalar() || type.isVector()) && - type.isFloatingDomain() != node->getType().isFloatingDomain()) { - TType transitionType(node->getBasicType(), glslang::EvqTemporary, type.getVectorSize(), 0, 0, node->isVector()); - TOperator transitionOp = intermediate.mapTypeToConstructorOp(transitionType); - node = constructBuiltIn(transitionType, transitionOp, node, loc, false); - } - TIntermTyped* newNode; TOperator basicOp; @@ -5872,6 +5436,7 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T basicOp = EOpConstructDouble; break; +#ifdef AMD_EXTENSIONS case EOpConstructF16Vec2: case EOpConstructF16Vec3: case EOpConstructF16Vec4: @@ -5887,34 +5452,7 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T case EOpConstructFloat16: basicOp = EOpConstructFloat16; break; - - case EOpConstructI8Vec2: - case EOpConstructI8Vec3: - case EOpConstructI8Vec4: - case EOpConstructInt8: - basicOp = EOpConstructInt8; - break; - - case EOpConstructU8Vec2: - case EOpConstructU8Vec3: - case EOpConstructU8Vec4: - case EOpConstructUint8: - basicOp = EOpConstructUint8; - break; - - case EOpConstructI16Vec2: - case EOpConstructI16Vec3: - case EOpConstructI16Vec4: - case EOpConstructInt16: - basicOp = EOpConstructInt16; - break; - - case EOpConstructU16Vec2: - case EOpConstructU16Vec3: - case EOpConstructU16Vec4: - case EOpConstructUint16: - basicOp = EOpConstructUint16; - break; +#endif case EOpConstructIVec2: case EOpConstructIVec3: @@ -5951,11 +5489,6 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T basicOp = EOpConstructBool; break; - case EOpConstructNonuniform: - node->getWritableType().getQualifier().nonUniform = true; - return node; - break; - default: error(loc, "unsupported construction", "", ""); @@ -6000,14 +5533,13 @@ TIntermTyped* TParseContext::constructAggregate(TIntermNode* node, const TType& // // Do everything needed to add an interface block. // -void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, - TArraySizes* arraySizes) +void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, TArraySizes* arraySizes) { blockStageIoCheck(loc, currentBlockQualifier); blockQualifierCheck(loc, currentBlockQualifier, instanceName != nullptr); - if (arraySizes != nullptr) { - arraySizesCheck(loc, currentBlockQualifier, arraySizes, nullptr, false); - arrayOfArrayVersionCheck(loc, arraySizes); + if (arraySizes) { + arrayUnsizedCheck(loc, currentBlockQualifier, arraySizes, false, false); + arrayDimCheck(loc, arraySizes, 0); if (arraySizes->getNumDims() > 1) requireProfile(loc, ~EEsProfile, "array-of-array of block"); } @@ -6024,12 +5556,10 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con if ((currentBlockQualifier.storage == EvqUniform || currentBlockQualifier.storage == EvqBuffer) && (memberQualifier.isInterpolation() || memberQualifier.isAuxiliary())) error(memberLoc, "member of uniform or buffer block cannot have an auxiliary or interpolation qualifier", memberType.getFieldName().c_str(), ""); if (memberType.isArray()) - arraySizesCheck(memberLoc, currentBlockQualifier, memberType.getArraySizes(), nullptr, member == typeList.size() - 1); + arrayUnsizedCheck(memberLoc, currentBlockQualifier, &memberType.getArraySizes(), false, member == typeList.size() - 1); if (memberQualifier.hasOffset()) { - if (spvVersion.spv == 0) { - requireProfile(memberLoc, ~EEsProfile, "offset on block member"); - profileRequires(memberLoc, ~EEsProfile, 440, E_GL_ARB_enhanced_layouts, "offset on block member"); - } + requireProfile(memberLoc, ~EEsProfile, "offset on block member"); + profileRequires(memberLoc, ~EEsProfile, 440, E_GL_ARB_enhanced_layouts, "offset on block member"); } if (memberType.containsOpaque()) @@ -6070,10 +5600,11 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con mergeObjectLayoutQualifiers(defaultQualification, currentBlockQualifier, true); + // "The offset qualifier can only be used on block members of blocks declared with std140 or std430 layouts." // "The align qualifier can only be used on blocks or block members, and only for blocks declared with std140 or std430 layouts." - if (currentBlockQualifier.hasAlign()) { + if (currentBlockQualifier.hasAlign() || currentBlockQualifier.hasAlign()) { if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430) { - error(loc, "can only be used with std140 or std430 layout packing", "align", ""); + error(loc, "can only be used with std140 or std430 layout packing", "offset/align", ""); defaultQualification.layoutAlign = -1; } } @@ -6088,9 +5619,9 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con 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 + // "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) @@ -6106,7 +5637,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con case EvqVaryingOut: requireProfile(memberLoc, ECoreProfile | ECompatibilityProfile | EEsProfile, feature); profileRequires(memberLoc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature); - profileRequires(memberLoc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); + profileRequires(memberLoc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); memberWithLocation = true; break; default: @@ -6115,12 +5646,9 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con } } else memberWithoutLocation = true; - - // "The offset qualifier can only be used on block members of blocks declared with std140 or std430 layouts." - // "The align qualifier can only be used on blocks or block members, and only for blocks declared with std140 or std430 layouts." - if (memberQualifier.hasAlign() || memberQualifier.hasOffset()) { + if (memberQualifier.hasAlign()) { if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430) - error(memberLoc, "can only be used with std140 or std430 layout packing", "offset/align", ""); + error(memberLoc, "can only be used with std140 or std430 layout packing", "align", ""); } TQualifier newMemberQualification = defaultQualification; @@ -6128,8 +5656,6 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con memberQualifier = newMemberQualification; } - layoutMemberLocationArrayCheck(loc, memberWithLocation, arraySizes); - // Process the members fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation); fixBlockXfbOffsets(currentBlockQualifier, typeList); @@ -6146,8 +5672,8 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con // TType blockType(&typeList, *blockName, currentBlockQualifier); - if (arraySizes != nullptr) - blockType.transferArraySizes(arraySizes); + if (arraySizes) + blockType.newArraySizes(*arraySizes); else ioArrayCheck(loc, blockType, instanceName ? *instanceName : *blockName); @@ -6197,7 +5723,6 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con // Check for general layout qualifier errors layoutObjectCheck(loc, variable); - // fix up if (isIoResizeArray(blockType)) { ioArraySymbolResizeList.push_back(&variable); checkIoArraysConsistency(loc, true); @@ -6205,7 +5730,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con fixIoArraySize(loc, variable.getWritableType()); // Save it in the AST for linker use. - trackLinkage(variable); + trackLinkageDeferred(variable); } // Do all block-declaration checking regarding the combination of in/out/uniform/buffer @@ -6230,14 +5755,14 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q // "Compute shaders do not permit user-defined input variables..." requireStage(loc, (EShLanguageMask)(EShLangTessControlMask|EShLangTessEvaluationMask|EShLangGeometryMask|EShLangFragmentMask), "input block"); if (language == EShLangFragment) - profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "fragment input block"); + profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "fragment input block"); break; case EvqVaryingOut: profileRequires(loc, ~EEsProfile, 150, E_GL_ARB_separate_shader_objects, "output block"); requireStage(loc, (EShLanguageMask)(EShLangVertexMask|EShLangTessControlMask|EShLangTessEvaluationMask|EShLangGeometryMask), "output block"); // ES 310 can have a block before shader_io is turned on, so skip this test for built-ins if (language == EShLangVertex && ! parsingBuiltins) - profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "vertex output block"); + profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "vertex output block"); break; default: error(loc, "only uniform, buffer, in, or out blocks are supported", blockName->c_str(), ""); @@ -6246,7 +5771,7 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q } // Do all block-declaration checking regarding its qualifiers. -void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier, bool /*instanceName*/) +void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier, bool instanceName) { // The 4.5 specification says: // @@ -6273,20 +5798,23 @@ void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& error(loc, "cannot use sample qualifier on an interface block", "sample", ""); if (qualifier.invariant) error(loc, "cannot use invariant qualifier on an interface block", "invariant", ""); - if (qualifier.layoutPushConstant) + if (qualifier.layoutPushConstant) { intermediate.addPushConstantCount(); + if (! instanceName) + error(loc, "requires an instance name", "push_constant", ""); + } } // -// "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 +// "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 +// 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 TParseContext::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 + // "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", ""); @@ -6312,10 +5840,9 @@ void TParseContext::fixBlockLocations(const TSourceLoc& loc, TQualifier& qualifi if (nextLocation >= (int)TQualifier::layoutLocationEnd) error(memberLoc, "location is too large", "location", ""); memberQualifier.layoutLocation = nextLocation; - memberQualifier.layoutComponent = TQualifier::layoutComponentEnd; + memberQualifier.layoutComponent = 0; } - nextLocation = memberQualifier.layoutLocation + intermediate.computeTypeLocationSize( - *typeList[member].type, language); + nextLocation = memberQualifier.layoutLocation + intermediate.computeTypeLocationSize(*typeList[member].type); } } } @@ -6323,9 +5850,9 @@ void TParseContext::fixBlockLocations(const TSourceLoc& loc, TQualifier& qualifi void TParseContext::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 + // "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()) @@ -6352,10 +5879,10 @@ void TParseContext::fixBlockXfbOffsets(TQualifier& qualifier, TTypeList& typeLis qualifier.layoutXfbOffset = TQualifier::layoutXfbOffsetEnd; } -// Calculate and save the offset of each block member, using the recursively +// 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 +// 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 TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typeList) @@ -6379,20 +5906,20 @@ void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typ 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 + // "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", ""); - // GLSL: "It is a compile-time error to specify an offset that is smaller than the offset of the previous + // GLSL: "It is a compile-time error to specify an offset that is smaller than the offset of the previous // member in the block or that lies within the previous member of the block" if (spvVersion.spv == 0) { if (memberQualifier.layoutOffset < offset) error(memberLoc, "cannot lie in previous members", "offset", ""); - // "The offset qualifier forces the qualified member to start at or after the specified - // integral-constant expression, which will be its byte offset from the beginning of the buffer. - // "The actual offset of a member is computed as + // "The offset qualifier forces the qualified member to start at or after the specified + // integral-constant expression, which will be its byte offset from the beginning of the buffer. + // "The actual offset of a member is computed as // follows: If offset was declared, start with that offset, otherwise start with the next available offset." offset = std::max(offset, memberQualifier.layoutOffset); } else { @@ -6403,13 +5930,13 @@ void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typ } } - // "The actual alignment of a member will be the greater of the specified align alignment and the standard + // "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 + // increase it to the first offset that is a multiple of // the actual alignment." RoundToPow2(offset, memberAlignment); typeList[member].type->getQualifier().layoutOffset = offset; @@ -6499,7 +6026,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con error(loc, "can only apply to 'out'", id, ""); if (! intermediate.setVertices(publicType.shaderQualifiers.vertices)) error(loc, "cannot change previously set layout value", id, ""); - + if (language == EShLangTessControl) checkIoArraysConsistency(loc); } @@ -6604,12 +6131,6 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con else error(loc, "can only apply to 'in'", "early_fragment_tests", ""); } - if (publicType.shaderQualifiers.postDepthCoverage) { - if (publicType.qualifier.storage == EvqVaryingIn) - intermediate.setPostDepthCoverage(); - else - error(loc, "can only apply to 'in'", "post_coverage_coverage", ""); - } if (publicType.shaderQualifiers.blendEquation) { if (publicType.qualifier.storage != EvqVaryingOut) error(loc, "can only apply to 'out'", "blend equation", ""); diff --git a/deps/glslang-new/glslang/MachineIndependent/ParseHelper.h b/deps/glslang/glslang-old/glslang/MachineIndependent/ParseHelper.h similarity index 77% rename from deps/glslang-new/glslang/MachineIndependent/ParseHelper.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/ParseHelper.h index dd8e30d20e..30f2d9a822 100644 --- a/deps/glslang-new/glslang/MachineIndependent/ParseHelper.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/ParseHelper.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -44,15 +44,14 @@ #ifndef _PARSER_HELPER_INCLUDED_ #define _PARSER_HELPER_INCLUDED_ -#include -#include - #include "parseVersions.h" #include "../Include/ShHandle.h" #include "SymbolTable.h" #include "localintermediate.h" #include "Scan.h" -#include "attribute.h" +#include + +#include namespace glslang { @@ -76,22 +75,13 @@ class TParseContextBase : public TParseVersions { public: TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, - TInfoSink& infoSink, bool forwardCompatible, EShMessages messages, - const TString* entryPoint = nullptr) + TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), - scopeMangler("::"), symbolTable(symbolTable), - statementNestingLevel(0), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), - postEntryPointReturn(false), - contextPragma(true, false), parsingBuiltins(parsingBuiltins), scanContext(nullptr), ppContext(nullptr), - limits(resources.limits), - globalUniformBlock(nullptr), - globalUniformBinding(TQualifier::layoutBindingEnd), - globalUniformSet(TQualifier::layoutSetEnd) + globalUniformBlock(nullptr) { - if (entryPoint != nullptr) - sourceEntryPointName = *entryPoint; + linkage = new TIntermAggregate; } virtual ~TParseContextBase() { } @@ -106,8 +96,6 @@ public: virtual void setLimits(const TBuiltInResource&) = 0; - void checkIndex(const TSourceLoc&, const TType&, int& index); - EShLanguage getLanguage() const { return language; } void setScanContext(TScanContext* c) { scanContext = c; } TScanContext* getScanContext() const { return scanContext; } @@ -148,51 +136,26 @@ public: extensionCallback(line, extension, behavior); } - // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) - virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr); + TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile - // Potentially rename shader entry point function - void renameShaderFunction(TString*& name) const - { - // Replace the entry point name given in the shader with the real entry point name, - // if there is a substitution. - if (name != nullptr && *name == sourceEntryPointName && intermediate.getEntryPointName().size() > 0) - name = NewPoolTString(intermediate.getEntryPointName().c_str()); - } + // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) + // TODO: This could perhaps get its own object, but the current design doesn't work + // yet when new uniform variables are declared between function definitions, so + // this is pending getting a fully functional design. + virtual void growGlobalUniformBlock(TSourceLoc&, TType&, TString& memberName); + virtual bool insertGlobalUniformBlock(); virtual bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); virtual void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); - const char* const scopeMangler; - - // Basic parsing state, easily accessible to the grammar - - TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile - int statementNestingLevel; // 0 if outside all flow control or compound statements - int loopNestingLevel; // 0 if outside all loops - int structNestingLevel; // 0 if outside blocks and structures - int controlFlowNestingLevel; // 0 if outside all flow control - const TType* currentFunctionType; // the return type of the function that's currently being parsed - bool functionReturnsValue; // true if a non-void function has a return - // if inside a function, true if the function is the entry point and this is after a return statement - bool postEntryPointReturn; - // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting - TList switchSequenceStack; - // the statementNestingLevel the current switch statement is at, which must match the level of its case statements - TList switchLevel; - struct TPragma contextPragma; - protected: TParseContextBase(TParseContextBase&); TParseContextBase& operator=(TParseContextBase&); const bool parsingBuiltins; // true if parsing built-in symbols/functions - TVector linkageSymbols; // will be transferred to 'linkage', after all editing is done, order preserving + TVector linkageSymbols; // these need to be transferred to 'linkage', after all editing is done TScanContext* scanContext; TPpContext* ppContext; - TBuiltInResource resources; - TLimits& limits; - TString sourceEntryPointName; // These, if set, will be called when a line, pragma ... is preprocessed. // They will be called with any parameters to the original directive. @@ -208,25 +171,23 @@ protected: std::function, /* output */ bool& tie); - virtual void parseSwizzleSelector(const TSourceLoc&, const TString&, int size, - TSwizzleSelectors&); - // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) - TVariable* globalUniformBlock; // the actual block, inserted into the symbol table - unsigned int globalUniformBinding; // the block's binding number - unsigned int globalUniformSet; // the block's set number - int firstNewMember; // the index of the first member not yet inserted into the symbol table + TVariable* globalUniformBlock; // the actual block, inserted into the symbol table + int firstNewMember; // the index of the first member not yet inserted into the symbol table // override this to set the language-specific name - virtual const char* getGlobalUniformBlockName() const { return ""; } - virtual void setUniformBlockDefaults(TType&) const { } + virtual const char* getGlobalUniformBlockName() { return ""; } virtual void finalizeGlobalUniformBlockLayout(TVariable&) { } virtual void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, TPrefixType prefix, va_list args); virtual void trackLinkage(TSymbol& symbol); + virtual void trackLinkageDeferred(TSymbol& symbol); virtual void makeEditable(TSymbol*&); virtual TVariable* getEditableVariable(const char* name); virtual void finish(); + +private: + TIntermAggregate* linkage; }; // @@ -271,29 +232,29 @@ protected: class TParseContext : public TParseContextBase { public: TParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, - bool forwardCompatible = false, EShMessages messages = EShMsgDefault, - const TString* entryPoint = nullptr); + bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~TParseContext(); bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); }; void setPrecisionDefaults(); - void setLimits(const TBuiltInResource&) override; - bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false) override; + void setLimits(const TBuiltInResource&); + bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); void parserError(const char* s); // for bison's yyerror void reservedErrorCheck(const TSourceLoc&, const TString&); - void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op) override; - bool lineContinuationCheck(const TSourceLoc&, bool endOfComment) override; - bool lineDirectiveShouldSetNextLine() const override; + void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op); + bool lineContinuationCheck(const TSourceLoc&, bool endOfComment); + bool lineDirectiveShouldSetNextLine() const; bool builtInName(const TString&); - void handlePragma(const TSourceLoc&, const TVector&) override; + void handlePragma(const TSourceLoc&, const TVector&); TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); + void checkIndex(const TSourceLoc&, const TType&, int& index); void handleIndexLimits(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); - void makeEditable(TSymbol*&) override; + void makeEditable(TSymbol*&); bool isIoResizeArray(const TType&) const; void fixIoArraySize(const TSourceLoc&, TType&); void ioArrayCheck(const TSourceLoc&, const TType&, const TString& identifier); @@ -309,7 +270,7 @@ public: TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); - TIntermTyped* handleBuiltInFunctionCall(TSourceLoc, TIntermNode* arguments, const TFunction& function); + TIntermTyped* handleBuiltInFunctionCall(TSourceLoc, TIntermNode& arguments, const TFunction& function); void computeBuiltinPrecisions(TIntermTyped&, const TFunction&); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void checkLocation(const TSourceLoc&, TOperator); @@ -324,6 +285,7 @@ public: void handlePrecisionQualifier(const TSourceLoc&, TQualifier&, TPrecisionQualifier); void checkPrecisionQualifier(const TSourceLoc&, TPrecisionQualifier); + bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); 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); @@ -340,15 +302,17 @@ public: bool arrayError(const TSourceLoc&, const TType&); void arraySizeRequiredCheck(const TSourceLoc&, const TArraySizes&); void structArrayCheck(const TSourceLoc&, const TType& structure); - void arraySizesCheck(const TSourceLoc&, const TQualifier&, TArraySizes*, const TIntermTyped* initializer, bool lastMember); - void arrayOfArrayVersionCheck(const TSourceLoc&, const TArraySizes*); + void arrayUnsizedCheck(const TSourceLoc&, const TQualifier&, const TArraySizes*, bool initializer, bool lastMember); + void arrayOfArrayVersionCheck(const TSourceLoc&); + void arrayDimCheck(const TSourceLoc&, const TArraySizes* sizes1, const TArraySizes* sizes2); + void arrayDimCheck(const TSourceLoc&, const TType*, const TArraySizes*); + void arrayDimMerge(TType& type, const TArraySizes* sizes); bool voidErrorCheck(const TSourceLoc&, const TString&, TBasicType); void boolCheck(const TSourceLoc&, const TIntermTyped*); void boolCheck(const TSourceLoc&, const TPublicType&); void samplerCheck(const TSourceLoc&, const TType&, const TString& identifier, TIntermTyped* initializer); void atomicUintCheck(const TSourceLoc&, const TType&, const TString& identifier); - void transparentOpaqueCheck(const TSourceLoc&, const TType&, const TString& identifier); - void memberQualifierCheck(glslang::TPublicType&); + void transparentCheck(const TSourceLoc&, const TType&, const TString& identifier); void globalQualifierFixCheck(const TSourceLoc&, TQualifier&); void globalQualifierTypeCheck(const TSourceLoc&, const TQualifier&, const TPublicType&); bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType); @@ -361,7 +325,7 @@ public: bool containsFieldWithBasicType(const TType& type ,TBasicType basicType); TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); - void paramCheckFixStorage(const TSourceLoc&, const TStorageQualifier&, TType& type); + void paramCheckFix(const TSourceLoc&, const TStorageQualifier&, TType& type); void paramCheckFix(const TSourceLoc&, const TQualifier&, TType& type); void nestedBlockCheck(const TSourceLoc&); void nestedStructCheck(const TSourceLoc&); @@ -380,7 +344,6 @@ public: void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&, const TIntermTyped*); void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly); void layoutObjectCheck(const TSourceLoc&, const TSymbol&); - void layoutMemberLocationArrayCheck(const TSourceLoc&, bool memberWithLocation, TArraySizes* arraySizes); void layoutTypeCheck(const TSourceLoc&, const TType&); void layoutQualifierCheck(const TSourceLoc&, const TQualifier&); void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); @@ -390,7 +353,6 @@ public: const TFunction* findFunctionExact(const TSourceLoc& loc, const TFunction& call, bool& builtIn); const TFunction* findFunction120(const TSourceLoc& loc, const TFunction& call, bool& builtIn); const TFunction* findFunction400(const TSourceLoc& loc, const TFunction& call, bool& builtIn); - const TFunction* findFunctionExplicitTypes(const TSourceLoc& loc, const TFunction& call, bool& builtIn); void declareTypeDefaults(const TSourceLoc&, const TPublicType&); TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TPublicType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0); TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); @@ -409,26 +371,14 @@ public: void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode); TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body); - TAttributeType attributeFromName(const TString& name) const; - TAttributes* makeAttributes(const TString& identifier) const; - TAttributes* makeAttributes(const TString& identifier, TIntermNode* node) const; - TAttributes* mergeAttributes(TAttributes*, TAttributes*) const; - - // Determine selection control from attributes - void handleSelectionAttributes(const TAttributes& attributes, TIntermNode*); - void handleSwitchAttributes(const TAttributes& attributes, TIntermNode*); - - // Determine loop control from attributes - void handleLoopAttributes(const TAttributes& attributes, TIntermNode*); + void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index); protected: void nonInitConstCheck(const TSourceLoc&, TString& identifier, TType& type); void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; - TVariable* declareNonArray(const TSourceLoc&, const TString& identifier, const TType&); - void declareArray(const TSourceLoc&, const TString& identifier, const TType&, TSymbol*&); - void checkRuntimeSizable(const TSourceLoc&, const TIntermTyped&); - bool isRuntimeLength(const TIntermTyped&) const; + TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&); + void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); void finish() override; @@ -439,7 +389,17 @@ public: // // Current state of parsing + struct TPragma contextPragma; + int loopNestingLevel; // 0 if outside all loops + int structNestingLevel; // 0 if outside blocks and structures + int controlFlowNestingLevel; // 0 if outside all flow control + int statementNestingLevel; // 0 if outside all flow control or compound statements + TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting + TList switchLevel; // the statementNestingLevel the current switch statement is at, which must match the level of its case statements bool inMain; // if inside a function, true if the function is main + bool postMainReturn; // if inside a function, true if the function is main and this is after a return statement + const TType* currentFunctionType; // the return type of the function that's currently being parsed + bool functionReturnsValue; // true if a non-void function has a return const TString* blockName; TQualifier currentBlockQualifier; TPrecisionQualifier defaultPrecision[EbtNumTypes]; diff --git a/deps/glslang-new/glslang/MachineIndependent/PoolAlloc.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/PoolAlloc.cpp similarity index 76% rename from deps/glslang-new/glslang/MachineIndependent/PoolAlloc.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/PoolAlloc.cpp index 84c40f4e79..9dfcd30558 100644 --- a/deps/glslang-new/glslang/MachineIndependent/PoolAlloc.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/PoolAlloc.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. // #include "../Include/Common.h" @@ -40,22 +40,35 @@ namespace glslang { -// Process-wide TLS index OS_TLSIndex PoolIndex; -// Return the thread-specific current pool. -TPoolAllocator& GetThreadPoolAllocator() +void InitializeMemoryPools() { - return *static_cast(OS_GetTLSValue(PoolIndex)); + TThreadMemoryPools* pools = static_cast(OS_GetTLSValue(PoolIndex)); + if (pools) + return; + + TPoolAllocator *threadPoolAllocator = new TPoolAllocator(); + + TThreadMemoryPools* threadData = new TThreadMemoryPools(); + + threadData->threadPoolAllocator = threadPoolAllocator; + + OS_SetTLSValue(PoolIndex, threadData); } -// Set the thread-specific current pool. -void SetThreadPoolAllocator(TPoolAllocator* poolAllocator) +void FreeGlobalPools() { - OS_SetTLSValue(PoolIndex, poolAllocator); + // Release the allocated memory for this thread. + TThreadMemoryPools* globalPools = static_cast(OS_GetTLSValue(PoolIndex)); + if (! globalPools) + return; + + GetThreadPoolAllocator().popAll(); + delete &GetThreadPoolAllocator(); + delete globalPools; } -// Process-wide set up of the TLS pool storage. bool InitializePoolIndex() { // Allocate a TLS index. @@ -65,15 +78,35 @@ bool InitializePoolIndex() return true; } +void FreePoolIndex() +{ + // Release the TLS index. + OS_FreeTLSIndex(PoolIndex); +} + +TPoolAllocator& GetThreadPoolAllocator() +{ + TThreadMemoryPools* threadData = static_cast(OS_GetTLSValue(PoolIndex)); + + return *threadData->threadPoolAllocator; +} + +void SetThreadPoolAllocator(TPoolAllocator& poolAllocator) +{ + TThreadMemoryPools* threadData = static_cast(OS_GetTLSValue(PoolIndex)); + + threadData->threadPoolAllocator = &poolAllocator; +} + // // Implement the functionality of the TPoolAllocator class, which // is documented in PoolAlloc.h. // -TPoolAllocator::TPoolAllocator(int growthIncrement, int allocationAlignment) : +TPoolAllocator::TPoolAllocator(int growthIncrement, int allocationAlignment) : pageSize(growthIncrement), alignment(allocationAlignment), - freeList(nullptr), - inUseList(nullptr), + freeList(0), + inUseList(0), numCalls(0) { // @@ -173,12 +206,13 @@ void TAllocation::checkGuardBlock(unsigned char*, unsigned char, const char*) co #endif } + void TPoolAllocator::push() { tAllocState state = { currentPageOffset, inUseList }; stack.push_back(state); - + // // Indicate there is no current page to allocate from. // @@ -201,16 +235,13 @@ void TPoolAllocator::pop() currentPageOffset = stack.back().offset; while (inUseList != page) { + // invoke destructor to free allocation list + inUseList->~tHeader(); + tHeader* nextInUse = inUseList->nextPage; - size_t pageCount = inUseList->pageCount; - - // This technically ends the lifetime of the header as C++ object, - // but we will still control the memory and reuse it. - inUseList->~tHeader(); // currently, just a debug allocation checker - - if (pageCount > 1) { + if (inUseList->pageCount > 1) delete [] reinterpret_cast(inUseList); - } else { + else { inUseList->nextPage = freeList; freeList = inUseList; } @@ -238,7 +269,7 @@ void* TPoolAllocator::allocate(size_t numBytes) // size including guard blocks. In release build, // guardBlockSize=0 and this all gets optimized away. size_t allocationSize = TAllocation::allocationSize(numBytes); - + // // Just keep some interesting statistics. // @@ -296,13 +327,14 @@ void* TPoolAllocator::allocate(size_t numBytes) // Use placement-new to initialize header new(memory) tHeader(inUseList, 1); inUseList = memory; - + unsigned char* ret = reinterpret_cast(inUseList) + headerSkip; currentPageOffset = (headerSkip + allocationSize + alignmentMask) & ~alignmentMask; return initializeAllocation(inUseList, ret, numBytes); } + // // Check all allocations in a list for damage by calling check on each. // diff --git a/deps/glslang-new/glslang/MachineIndependent/RemoveTree.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/RemoveTree.cpp similarity index 66% rename from deps/glslang-new/glslang/MachineIndependent/RemoveTree.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/RemoveTree.cpp index 1d33bfd203..a4fa551cad 100644 --- a/deps/glslang-new/glslang/MachineIndependent/RemoveTree.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/RemoveTree.cpp @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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/intermediate.h" diff --git a/deps/glslang/glslang-old/glslang/MachineIndependent/RemoveTree.h b/deps/glslang/glslang-old/glslang/MachineIndependent/RemoveTree.h new file mode 100644 index 0000000000..483b25dcb5 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/RemoveTree.h @@ -0,0 +1,39 @@ +// +//Copyright (C) 2002-2005 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. +// + +namespace glslang { + +void RemoveAllTreeNodes(TIntermNode*); + +} // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/Scan.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/Scan.cpp old mode 100755 new mode 100644 similarity index 62% rename from deps/glslang-new/glslang/MachineIndependent/Scan.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/Scan.cpp index aa21d8a11e..695e63d00c --- a/deps/glslang-new/glslang/MachineIndependent/Scan.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Scan.cpp @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -46,7 +45,6 @@ #include "../Include/Types.h" #include "SymbolTable.h" #include "ParseHelper.h" -#include "attribute.h" #include "glslang_tab.cpp.h" #include "ScanContext.h" #include "Scan.h" @@ -54,6 +52,7 @@ // preprocessor includes #include "preprocessor/PpContext.h" #include "preprocessor/PpTokens.h" +#include "preprocessor/Compare.h" // Required to avoid missing prototype warnings for some compilers int yylex(YYSTYPE*, glslang::TParseContext&); @@ -144,13 +143,13 @@ void TInputScanner::consumeWhitespaceComment(bool& foundNonSpaceTab) { do { consumeWhiteSpace(foundNonSpaceTab); - + // if not starting a comment now, then done int c = peek(); if (c != '/' || c == EndOfInput) return; - // skip potential comment + // skip potential comment foundNonSpaceTab = true; if (! consumeComment()) return; @@ -177,7 +176,7 @@ bool TInputScanner::scanVersion(int& version, EProfile& profile, bool& notFirstT bool versionNotFirst = false; // means not first WRT comments and white space, nothing more notFirstToken = false; // means not first WRT to real tokens - version = 0; // means not found + version = 0; // means not found profile = ENoProfile; bool foundNonSpaceTab = false; @@ -201,10 +200,10 @@ bool TInputScanner::scanVersion(int& version, EProfile& profile, bool& notFirstT } lookingInMiddle = true; - // Nominal start, skipping the desktop allowed comments and white space, but tracking if + // Nominal start, skipping the desktop allowed comments and white space, but tracking if // something else was found for ES: consumeWhitespaceComment(foundNonSpaceTab); - if (foundNonSpaceTab) + if (foundNonSpaceTab) versionNotFirst = true; // "#" @@ -289,38 +288,15 @@ protected: } // end namespace glslang // This is the function the glslang parser (i.e., bison) calls to get its next token -int yylex(YYSTYPE* glslangTokenDesc, glslang::TParseContext& parseContext) +int yylex(YYSTYPE* glslangTokenDesc, glslang::TParseContext& _parseContext) { glslang::TParserToken token(*glslangTokenDesc); - return parseContext.getScanContext()->tokenize(parseContext.getPpContext(), token); + return _parseContext.getScanContext()->tokenize(_parseContext.getPpContext(), token); } namespace { -struct str_eq -{ - bool operator()(const char* lhs, const char* rhs) const - { - return strcmp(lhs, rhs) == 0; - } -}; - -struct str_hash -{ - size_t operator()(const char* str) const - { - // djb2 - unsigned long hash = 5381; - int c; - - while ((c = *str++) != 0) - hash = ((hash << 5) + hash) + c; - - return hash; - } -}; - // 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* KeywordMap = nullptr; @@ -341,7 +317,6 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["const"] = CONST; (*KeywordMap)["uniform"] = UNIFORM; - (*KeywordMap)["nonuniformEXT"] = NONUNIFORM; (*KeywordMap)["in"] = IN; (*KeywordMap)["out"] = OUT; (*KeywordMap)["inout"] = INOUT; @@ -466,34 +441,7 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["u64vec3"] = U64VEC3; (*KeywordMap)["u64vec4"] = U64VEC4; - // GL_KHX_shader_explicit_arithmetic_types - (*KeywordMap)["int8_t"] = INT8_T; - (*KeywordMap)["i8vec2"] = I8VEC2; - (*KeywordMap)["i8vec3"] = I8VEC3; - (*KeywordMap)["i8vec4"] = I8VEC4; - (*KeywordMap)["uint8_t"] = UINT8_T; - (*KeywordMap)["u8vec2"] = U8VEC2; - (*KeywordMap)["u8vec3"] = U8VEC3; - (*KeywordMap)["u8vec4"] = U8VEC4; - - (*KeywordMap)["int16_t"] = INT16_T; - (*KeywordMap)["i16vec2"] = I16VEC2; - (*KeywordMap)["i16vec3"] = I16VEC3; - (*KeywordMap)["i16vec4"] = I16VEC4; - (*KeywordMap)["uint16_t"] = UINT16_T; - (*KeywordMap)["u16vec2"] = U16VEC2; - (*KeywordMap)["u16vec3"] = U16VEC3; - (*KeywordMap)["u16vec4"] = U16VEC4; - - (*KeywordMap)["int32_t"] = INT32_T; - (*KeywordMap)["i32vec2"] = I32VEC2; - (*KeywordMap)["i32vec3"] = I32VEC3; - (*KeywordMap)["i32vec4"] = I32VEC4; - (*KeywordMap)["uint32_t"] = UINT32_T; - (*KeywordMap)["u32vec2"] = U32VEC2; - (*KeywordMap)["u32vec3"] = U32VEC3; - (*KeywordMap)["u32vec4"] = U32VEC4; - +#ifdef AMD_EXTENSIONS (*KeywordMap)["float16_t"] = FLOAT16_T; (*KeywordMap)["f16vec2"] = F16VEC2; (*KeywordMap)["f16vec3"] = F16VEC3; @@ -510,39 +458,7 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["f16mat4x2"] = F16MAT4X2; (*KeywordMap)["f16mat4x3"] = F16MAT4X3; (*KeywordMap)["f16mat4x4"] = F16MAT4X4; - - (*KeywordMap)["float32_t"] = FLOAT32_T; - (*KeywordMap)["f32vec2"] = F32VEC2; - (*KeywordMap)["f32vec3"] = F32VEC3; - (*KeywordMap)["f32vec4"] = F32VEC4; - (*KeywordMap)["f32mat2"] = F32MAT2; - (*KeywordMap)["f32mat3"] = F32MAT3; - (*KeywordMap)["f32mat4"] = F32MAT4; - (*KeywordMap)["f32mat2x2"] = F32MAT2X2; - (*KeywordMap)["f32mat2x3"] = F32MAT2X3; - (*KeywordMap)["f32mat2x4"] = F32MAT2X4; - (*KeywordMap)["f32mat3x2"] = F32MAT3X2; - (*KeywordMap)["f32mat3x3"] = F32MAT3X3; - (*KeywordMap)["f32mat3x4"] = F32MAT3X4; - (*KeywordMap)["f32mat4x2"] = F32MAT4X2; - (*KeywordMap)["f32mat4x3"] = F32MAT4X3; - (*KeywordMap)["f32mat4x4"] = F32MAT4X4; - (*KeywordMap)["float64_t"] = FLOAT64_T; - (*KeywordMap)["f64vec2"] = F64VEC2; - (*KeywordMap)["f64vec3"] = F64VEC3; - (*KeywordMap)["f64vec4"] = F64VEC4; - (*KeywordMap)["f64mat2"] = F64MAT2; - (*KeywordMap)["f64mat3"] = F64MAT3; - (*KeywordMap)["f64mat4"] = F64MAT4; - (*KeywordMap)["f64mat2x2"] = F64MAT2X2; - (*KeywordMap)["f64mat2x3"] = F64MAT2X3; - (*KeywordMap)["f64mat2x4"] = F64MAT2X4; - (*KeywordMap)["f64mat3x2"] = F64MAT3X2; - (*KeywordMap)["f64mat3x3"] = F64MAT3X3; - (*KeywordMap)["f64mat3x4"] = F64MAT3X4; - (*KeywordMap)["f64mat4x2"] = F64MAT4X2; - (*KeywordMap)["f64mat4x3"] = F64MAT4X3; - (*KeywordMap)["f64mat4x4"] = F64MAT4X4; +#endif (*KeywordMap)["sampler2D"] = SAMPLER2D; (*KeywordMap)["samplerCube"] = SAMPLERCUBE; @@ -631,54 +547,6 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["usubpassInput"] = USUBPASSINPUT; (*KeywordMap)["usubpassInputMS"] = USUBPASSINPUTMS; -#ifdef AMD_EXTENSIONS - (*KeywordMap)["f16sampler1D"] = F16SAMPLER1D; - (*KeywordMap)["f16sampler2D"] = F16SAMPLER2D; - (*KeywordMap)["f16sampler3D"] = F16SAMPLER3D; - (*KeywordMap)["f16sampler2DRect"] = F16SAMPLER2DRECT; - (*KeywordMap)["f16samplerCube"] = F16SAMPLERCUBE; - (*KeywordMap)["f16sampler1DArray"] = F16SAMPLER1DARRAY; - (*KeywordMap)["f16sampler2DArray"] = F16SAMPLER2DARRAY; - (*KeywordMap)["f16samplerCubeArray"] = F16SAMPLERCUBEARRAY; - (*KeywordMap)["f16samplerBuffer"] = F16SAMPLERBUFFER; - (*KeywordMap)["f16sampler2DMS"] = F16SAMPLER2DMS; - (*KeywordMap)["f16sampler2DMSArray"] = F16SAMPLER2DMSARRAY; - (*KeywordMap)["f16sampler1DShadow"] = F16SAMPLER1DSHADOW; - (*KeywordMap)["f16sampler2DShadow"] = F16SAMPLER2DSHADOW; - (*KeywordMap)["f16sampler2DRectShadow"] = F16SAMPLER2DRECTSHADOW; - (*KeywordMap)["f16samplerCubeShadow"] = F16SAMPLERCUBESHADOW; - (*KeywordMap)["f16sampler1DArrayShadow"] = F16SAMPLER1DARRAYSHADOW; - (*KeywordMap)["f16sampler2DArrayShadow"] = F16SAMPLER2DARRAYSHADOW; - (*KeywordMap)["f16samplerCubeArrayShadow"] = F16SAMPLERCUBEARRAYSHADOW; - - (*KeywordMap)["f16image1D"] = F16IMAGE1D; - (*KeywordMap)["f16image2D"] = F16IMAGE2D; - (*KeywordMap)["f16image3D"] = F16IMAGE3D; - (*KeywordMap)["f16image2DRect"] = F16IMAGE2DRECT; - (*KeywordMap)["f16imageCube"] = F16IMAGECUBE; - (*KeywordMap)["f16image1DArray"] = F16IMAGE1DARRAY; - (*KeywordMap)["f16image2DArray"] = F16IMAGE2DARRAY; - (*KeywordMap)["f16imageCubeArray"] = F16IMAGECUBEARRAY; - (*KeywordMap)["f16imageBuffer"] = F16IMAGEBUFFER; - (*KeywordMap)["f16image2DMS"] = F16IMAGE2DMS; - (*KeywordMap)["f16image2DMSArray"] = F16IMAGE2DMSARRAY; - - (*KeywordMap)["f16texture1D"] = F16TEXTURE1D; - (*KeywordMap)["f16texture2D"] = F16TEXTURE2D; - (*KeywordMap)["f16texture3D"] = F16TEXTURE3D; - (*KeywordMap)["f16texture2DRect"] = F16TEXTURE2DRECT; - (*KeywordMap)["f16textureCube"] = F16TEXTURECUBE; - (*KeywordMap)["f16texture1DArray"] = F16TEXTURE1DARRAY; - (*KeywordMap)["f16texture2DArray"] = F16TEXTURE2DARRAY; - (*KeywordMap)["f16textureCubeArray"] = F16TEXTURECUBEARRAY; - (*KeywordMap)["f16textureBuffer"] = F16TEXTUREBUFFER; - (*KeywordMap)["f16texture2DMS"] = F16TEXTURE2DMS; - (*KeywordMap)["f16texture2DMSArray"] = F16TEXTURE2DMSARRAY; - - (*KeywordMap)["f16subpassInput"] = F16SUBPASSINPUT; - (*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS; -#endif - (*KeywordMap)["noperspective"] = NOPERSPECTIVE; (*KeywordMap)["smooth"] = SMOOTH; (*KeywordMap)["flat"] = FLAT; @@ -748,14 +616,13 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) do { parserToken = &token; TPpToken ppToken; - int token = pp->tokenize(ppToken); - if (token == EndOfInput) + tokenText = pp->tokenize(&ppToken); + if (tokenText == nullptr || tokenText[0] == 0) return 0; - tokenText = ppToken.name; loc = ppToken.loc; parserToken->sType.lex.loc = loc; - switch (token) { + switch (ppToken.token) { case ';': afterType = false; return SEMICOLON; case ',': afterType = false; return COMMA; case ':': return COLON; @@ -778,17 +645,17 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) case '?': return QUESTION; case '[': return LEFT_BRACKET; case ']': return RIGHT_BRACKET; - case '{': afterStruct = false; return LEFT_BRACE; + case '{': return LEFT_BRACE; case '}': return RIGHT_BRACE; case '\\': - parseContext.error(loc, "illegal use of escape character", "\\", ""); + _parseContext.error(loc, "illegal use of escape character", "\\", ""); break; - case PPAtomAddAssign: return ADD_ASSIGN; - case PPAtomSubAssign: return SUB_ASSIGN; - case PPAtomMulAssign: return MUL_ASSIGN; - case PPAtomDivAssign: return DIV_ASSIGN; - case PPAtomModAssign: return MOD_ASSIGN; + case PpAtomAdd: return ADD_ASSIGN; + case PpAtomSub: return SUB_ASSIGN; + case PpAtomMul: return MUL_ASSIGN; + case PpAtomDiv: return DIV_ASSIGN; + case PpAtomMod: return MOD_ASSIGN; case PpAtomRight: return RIGHT_OP; case PpAtomLeft: return LEFT_OP; @@ -811,19 +678,15 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) case PpAtomDecrement: return DEC_OP; case PpAtomIncrement: return INC_OP; - case PpAtomColonColon: - parseContext.error(loc, "not supported", "::", ""); - break; - - case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT; - case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT; - case PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT; - case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT; - case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT; - case PpAtomConstUint64: parserToken->sType.lex.i64 = ppToken.i64val; return UINT64CONSTANT; - case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT; - case PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT; - case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT; + case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT; + case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT; + case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT; + case PpAtomConstUint64: parserToken->sType.lex.i64 = ppToken.i64val; return UINT64CONSTANT; + case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT; + case PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT; +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT; +#endif case PpAtomIdentifier: { int token = tokenizeIdentifier(); @@ -835,9 +698,9 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) default: char buf[2]; - buf[0] = (char)token; + buf[0] = (char)ppToken.token; buf[1] = 0; - parseContext.error(loc, "unexpected token", buf, ""); + _parseContext.error(loc, "unexpected token", buf, ""); break; } } while (true); @@ -861,6 +724,7 @@ int TScanContext::tokenizeIdentifier() case IN: case OUT: case INOUT: + case STRUCT: case BREAK: case CONTINUE: case DO: @@ -873,20 +737,10 @@ int TScanContext::tokenizeIdentifier() case CASE: return keyword; - case STRUCT: - afterStruct = true; - return keyword; - - case NONUNIFORM: - if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier)) - return keyword; - else - return identifierOrType(); - case SWITCH: case DEFAULT: - if ((parseContext.profile == EEsProfile && parseContext.version < 300) || - (parseContext.profile != EEsProfile && parseContext.version < 130)) + if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || + (_parseContext.profile != EEsProfile && _parseContext.version < 130)) reservedWord(); return keyword; @@ -920,19 +774,19 @@ int TScanContext::tokenizeIdentifier() case ATTRIBUTE: case VARYING: - if (parseContext.profile == EEsProfile && parseContext.version >= 300) + if (_parseContext.profile == EEsProfile && _parseContext.version >= 300) reservedWord(); return keyword; case BUFFER: - if ((parseContext.profile == EEsProfile && parseContext.version < 310) || - (parseContext.profile != EEsProfile && parseContext.version < 430)) + if ((_parseContext.profile == EEsProfile && _parseContext.version < 310) || + (_parseContext.profile != EEsProfile && _parseContext.version < 430)) return identifierOrType(); return keyword; case ATOMIC_UINT: - if ((parseContext.profile == EEsProfile && parseContext.version >= 310) || - parseContext.extensionTurnedOn(E_GL_ARB_shader_atomic_counters)) + if ((_parseContext.profile == EEsProfile && _parseContext.version >= 310) || + _parseContext.extensionTurnedOn(E_GL_ARB_shader_atomic_counters)) return keyword; return es30ReservedFromGLSL(420); @@ -940,15 +794,14 @@ int TScanContext::tokenizeIdentifier() case RESTRICT: case READONLY: case WRITEONLY: - if (parseContext.profile == EEsProfile && parseContext.version >= 310) + if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) return keyword; - return es30ReservedFromGLSL(parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store) ? 130 : 420); + return es30ReservedFromGLSL(_parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store) ? 130 : 420); case VOLATILE: - if (parseContext.profile == EEsProfile && parseContext.version >= 310) + if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) return keyword; - if (! parseContext.symbolTable.atBuiltInLevel() && (parseContext.profile == EEsProfile || - (parseContext.version < 420 && ! parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) + if (!_parseContext.symbolTable.atBuiltInLevel() && (_parseContext.profile == EEsProfile || (_parseContext.version < 420 && ! _parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) reservedWord(); return keyword; @@ -957,31 +810,28 @@ int TScanContext::tokenizeIdentifier() const int numLayoutExts = 2; const char* layoutExts[numLayoutExts] = { E_GL_ARB_shading_language_420pack, E_GL_ARB_explicit_attrib_location }; - if ((parseContext.profile == EEsProfile && parseContext.version < 300) || - (parseContext.profile != EEsProfile && parseContext.version < 140 && - ! parseContext.extensionsTurnedOn(numLayoutExts, layoutExts))) + if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || + (_parseContext.profile != EEsProfile && _parseContext.version < 140 && + !_parseContext.extensionsTurnedOn(numLayoutExts, layoutExts))) return identifierOrType(); return keyword; } case SHARED: - if ((parseContext.profile == EEsProfile && parseContext.version < 300) || - (parseContext.profile != EEsProfile && parseContext.version < 140)) + if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || + (_parseContext.profile != EEsProfile && _parseContext.version < 140)) return identifierOrType(); return keyword; case PATCH: - if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.profile == EEsProfile && - (parseContext.version >= 320 || - parseContext.extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))) || - (parseContext.profile != EEsProfile && parseContext.extensionTurnedOn(E_GL_ARB_tessellation_shader))) + if (_parseContext.symbolTable.atBuiltInLevel() || + (_parseContext.profile == EEsProfile && _parseContext.extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) || + (_parseContext.profile != EEsProfile && _parseContext.extensionTurnedOn(E_GL_ARB_tessellation_shader))) return keyword; return es30ReservedFromGLSL(400); case SAMPLE: - if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation)) + if (_parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation)) return keyword; return es30ReservedFromGLSL(400); @@ -1035,8 +885,7 @@ int TScanContext::tokenizeIdentifier() case IIMAGEBUFFER: case UIMAGEBUFFER: afterType = true; - if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) + if (_parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) return keyword; return firstGenerationImage(false); @@ -1059,8 +908,7 @@ int TScanContext::tokenizeIdentifier() case IIMAGECUBEARRAY: case UIMAGECUBEARRAY: afterType = true; - if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) + if (_parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) return keyword; return secondGenerationImage(); @@ -1078,7 +926,7 @@ int TScanContext::tokenizeIdentifier() case DVEC3: case DVEC4: afterType = true; - if (parseContext.profile == EEsProfile || parseContext.version < 400) + if (_parseContext.profile == EEsProfile || _parseContext.version < 400) reservedWord(); return keyword; @@ -1091,112 +939,13 @@ int TScanContext::tokenizeIdentifier() case U64VEC3: case U64VEC4: afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.profile != EEsProfile && parseContext.version >= 450 && - (parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int64)))) + if (_parseContext.symbolTable.atBuiltInLevel() || + (_parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64) && + _parseContext.profile != EEsProfile && _parseContext.version >= 450)) return keyword; return identifierOrType(); - case INT8_T: - case UINT8_T: - case I8VEC2: - case I8VEC3: - case I8VEC4: - case U8VEC2: - case U8VEC3: - case U8VEC4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int8)) && - parseContext.profile != EEsProfile && parseContext.version >= 450)) - return keyword; - return identifierOrType(); - - case INT16_T: - case UINT16_T: - case I16VEC2: - case I16VEC3: - case I16VEC4: - case U16VEC2: - case U16VEC3: - case U16VEC4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.profile != EEsProfile && parseContext.version >= 450 && - ( #ifdef AMD_EXTENSIONS - parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_int16) || -#endif - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int16)))) - return keyword; - return identifierOrType(); - case INT32_T: - case UINT32_T: - case I32VEC2: - case I32VEC3: - case I32VEC4: - case U32VEC2: - case U32VEC3: - case U32VEC4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int32)) && - parseContext.profile != EEsProfile && parseContext.version >= 450)) - return keyword; - return identifierOrType(); - case FLOAT32_T: - case F32VEC2: - case F32VEC3: - case F32VEC4: - case F32MAT2: - case F32MAT3: - case F32MAT4: - case F32MAT2X2: - case F32MAT2X3: - case F32MAT2X4: - case F32MAT3X2: - case F32MAT3X3: - case F32MAT3X4: - case F32MAT4X2: - case F32MAT4X3: - case F32MAT4X4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float32)) && - parseContext.profile != EEsProfile && parseContext.version >= 450)) - return keyword; - return identifierOrType(); - - case FLOAT64_T: - case F64VEC2: - case F64VEC3: - case F64VEC4: - case F64MAT2: - case F64MAT3: - case F64MAT4: - case F64MAT2X2: - case F64MAT2X3: - case F64MAT2X4: - case F64MAT3X2: - case F64MAT3X3: - case F64MAT3X4: - case F64MAT4X2: - case F64MAT4X3: - case F64MAT4X4: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float64)) && - parseContext.profile != EEsProfile && parseContext.version >= 450)) - return keyword; - return identifierOrType(); - case FLOAT16_T: case F16VEC2: case F16VEC3: @@ -1215,26 +964,20 @@ int TScanContext::tokenizeIdentifier() case F16MAT4X4: afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.profile != EEsProfile && parseContext.version >= 450 && - ( -#ifdef AMD_EXTENSIONS - parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) || -#endif - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || - parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float16)))) + (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) return keyword; - return identifierOrType(); +#endif case SAMPLERCUBEARRAY: case SAMPLERCUBEARRAYSHADOW: case ISAMPLERCUBEARRAY: case USAMPLERCUBEARRAY: afterType = true; - if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) + if (_parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) return keyword; - if (parseContext.profile == EEsProfile || (parseContext.version < 400 && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array))) + if (_parseContext.profile == EEsProfile || (_parseContext.version < 400 && ! _parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array))) reservedWord(); return keyword; @@ -1271,16 +1014,14 @@ int TScanContext::tokenizeIdentifier() case SAMPLERBUFFER: afterType = true; - if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) + if (_parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) return keyword; return es30ReservedFromGLSL(130); case ISAMPLERBUFFER: case USAMPLERBUFFER: afterType = true; - if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) + if (_parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) return keyword; return es30ReservedFromGLSL(140); @@ -1288,7 +1029,7 @@ int TScanContext::tokenizeIdentifier() case ISAMPLER2DMS: case USAMPLER2DMS: afterType = true; - if (parseContext.profile == EEsProfile && parseContext.version >= 310) + if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) return keyword; return es30ReservedFromGLSL(150); @@ -1296,42 +1037,39 @@ int TScanContext::tokenizeIdentifier() case ISAMPLER2DMSARRAY: case USAMPLER2DMSARRAY: afterType = true; - if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || - parseContext.extensionsTurnedOn(1, &E_GL_OES_texture_storage_multisample_2d_array)) + if (_parseContext.extensionsTurnedOn(1, &E_GL_OES_texture_storage_multisample_2d_array)) return keyword; return es30ReservedFromGLSL(150); case SAMPLER1D: case SAMPLER1DSHADOW: afterType = true; - if (parseContext.profile == EEsProfile) + if (_parseContext.profile == EEsProfile) reservedWord(); return keyword; case SAMPLER3D: afterType = true; - if (parseContext.profile == EEsProfile && parseContext.version < 300) { - if (!parseContext.extensionTurnedOn(E_GL_OES_texture_3D)) + if (_parseContext.profile == EEsProfile && _parseContext.version < 300) { + if (!_parseContext.extensionTurnedOn(E_GL_OES_texture_3D)) reservedWord(); } return keyword; case SAMPLER2DSHADOW: afterType = true; - if (parseContext.profile == EEsProfile && parseContext.version < 300) { - if (!parseContext.extensionTurnedOn(E_GL_EXT_shadow_samplers)) - reservedWord(); - } + if (_parseContext.profile == EEsProfile && _parseContext.version < 300) + reservedWord(); return keyword; case SAMPLER2DRECT: case SAMPLER2DRECTSHADOW: afterType = true; - if (parseContext.profile == EEsProfile) + if (_parseContext.profile == EEsProfile) reservedWord(); - else if (parseContext.version < 140 && ! parseContext.symbolTable.atBuiltInLevel() && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_rectangle)) { - if (parseContext.relaxedErrors()) - parseContext.requireExtensions(loc, 1, &E_GL_ARB_texture_rectangle, "texture-rectangle sampler keyword"); + else if (_parseContext.version < 140 && ! _parseContext.symbolTable.atBuiltInLevel() && ! _parseContext.extensionTurnedOn(E_GL_ARB_texture_rectangle)) { + if (_parseContext.relaxedErrors()) + _parseContext.requireExtensions(loc, 1, &E_GL_ARB_texture_rectangle, "texture-rectangle sampler keyword"); else reservedWord(); } @@ -1339,18 +1077,16 @@ int TScanContext::tokenizeIdentifier() case SAMPLER1DARRAY: afterType = true; - if (parseContext.profile == EEsProfile && parseContext.version == 300) + if (_parseContext.profile == EEsProfile && _parseContext.version == 300) reservedWord(); - else if ((parseContext.profile == EEsProfile && parseContext.version < 300) || - (parseContext.profile != EEsProfile && parseContext.version < 130)) + else if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || + (_parseContext.profile != EEsProfile && _parseContext.version < 130)) return identifierOrType(); return keyword; case SAMPLEREXTERNALOES: afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - parseContext.extensionTurnedOn(E_GL_OES_EGL_image_external) || - parseContext.extensionTurnedOn(E_GL_OES_EGL_image_external_essl3)) + if (_parseContext.symbolTable.atBuiltInLevel() || _parseContext.extensionTurnedOn(E_GL_OES_EGL_image_external)) return keyword; return identifierOrType(); @@ -1389,7 +1125,7 @@ int TScanContext::tokenizeIdentifier() case TEXTURE1DARRAY: case SAMPLER: case SAMPLERSHADOW: - if (parseContext.spvVersion.vulkan > 0) + if (_parseContext.spvVersion.vulkan >= 100) return keyword; else return identifierOrType(); @@ -1400,76 +1136,17 @@ int TScanContext::tokenizeIdentifier() case ISUBPASSINPUTMS: case USUBPASSINPUT: case USUBPASSINPUTMS: - if (parseContext.spvVersion.vulkan > 0) + if (_parseContext.spvVersion.vulkan >= 100) return keyword; else return identifierOrType(); -#ifdef AMD_EXTENSIONS - case F16SAMPLER1D: - case F16SAMPLER2D: - case F16SAMPLER3D: - case F16SAMPLER2DRECT: - case F16SAMPLERCUBE: - case F16SAMPLER1DARRAY: - case F16SAMPLER2DARRAY: - case F16SAMPLERCUBEARRAY: - case F16SAMPLERBUFFER: - case F16SAMPLER2DMS: - case F16SAMPLER2DMSARRAY: - case F16SAMPLER1DSHADOW: - case F16SAMPLER2DSHADOW: - case F16SAMPLER1DARRAYSHADOW: - case F16SAMPLER2DARRAYSHADOW: - case F16SAMPLER2DRECTSHADOW: - case F16SAMPLERCUBESHADOW: - case F16SAMPLERCUBEARRAYSHADOW: - - case F16IMAGE1D: - case F16IMAGE2D: - case F16IMAGE3D: - case F16IMAGE2DRECT: - case F16IMAGECUBE: - case F16IMAGE1DARRAY: - case F16IMAGE2DARRAY: - case F16IMAGECUBEARRAY: - case F16IMAGEBUFFER: - case F16IMAGE2DMS: - case F16IMAGE2DMSARRAY: - - case F16TEXTURE1D: - case F16TEXTURE2D: - case F16TEXTURE3D: - case F16TEXTURE2DRECT: - case F16TEXTURECUBE: - case F16TEXTURE1DARRAY: - case F16TEXTURE2DARRAY: - case F16TEXTURECUBEARRAY: - case F16TEXTUREBUFFER: - case F16TEXTURE2DMS: - case F16TEXTURE2DMSARRAY: - - case F16SUBPASSINPUT: - case F16SUBPASSINPUTMS: - afterType = true; - if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float_fetch) && - parseContext.profile != EEsProfile && parseContext.version >= 450)) - return keyword; - return identifierOrType(); -#endif - case NOPERSPECTIVE: -#ifdef NV_EXTENSIONS - if (parseContext.profile == EEsProfile && parseContext.version >= 300 && - parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation)) - return keyword; -#endif return es30ReservedFromGLSL(130); case SMOOTH: - if ((parseContext.profile == EEsProfile && parseContext.version < 300) || - (parseContext.profile != EEsProfile && parseContext.version < 130)) + if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || + (_parseContext.profile != EEsProfile && _parseContext.version < 130)) return identifierOrType(); return keyword; @@ -1482,53 +1159,52 @@ int TScanContext::tokenizeIdentifier() #endif case FLAT: - if (parseContext.profile == EEsProfile && parseContext.version < 300) + if (_parseContext.profile == EEsProfile && _parseContext.version < 300) reservedWord(); - else if (parseContext.profile != EEsProfile && parseContext.version < 130) + else if (_parseContext.profile != EEsProfile && _parseContext.version < 130) return identifierOrType(); return keyword; case CENTROID: - if (parseContext.version < 120) + if (_parseContext.version < 120) return identifierOrType(); return keyword; case PRECISE: - if ((parseContext.profile == EEsProfile && - (parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) || - (parseContext.profile != EEsProfile && parseContext.version >= 400)) + if ((_parseContext.profile == EEsProfile && _parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5)) || + (_parseContext.profile != EEsProfile && _parseContext.version >= 400)) return keyword; - if (parseContext.profile == EEsProfile && parseContext.version == 310) { + if (_parseContext.profile == EEsProfile && _parseContext.version == 310) { reservedWord(); return keyword; } return identifierOrType(); case INVARIANT: - if (parseContext.profile != EEsProfile && parseContext.version < 120) + if (_parseContext.profile != EEsProfile && _parseContext.version < 120) return identifierOrType(); return keyword; case PACKED: - if ((parseContext.profile == EEsProfile && parseContext.version < 300) || - (parseContext.profile != EEsProfile && parseContext.version < 330)) + if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || + (_parseContext.profile != EEsProfile && _parseContext.version < 330)) return reservedWord(); return identifierOrType(); case RESOURCE: { - bool reserved = (parseContext.profile == EEsProfile && parseContext.version >= 300) || - (parseContext.profile != EEsProfile && parseContext.version >= 420); + bool reserved = (_parseContext.profile == EEsProfile && _parseContext.version >= 300) || + (_parseContext.profile != EEsProfile && _parseContext.version >= 420); return identifierOrReserved(reserved); } case SUPERP: { - bool reserved = parseContext.profile == EEsProfile || parseContext.version >= 130; + bool reserved = _parseContext.profile == EEsProfile || _parseContext.version >= 130; return identifierOrReserved(reserved); } default: - parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); + _parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); return 0; } } @@ -1539,8 +1215,8 @@ int TScanContext::identifierOrType() if (field) return IDENTIFIER; - parserToken->sType.lex.symbol = parseContext.symbolTable.find(*parserToken->sType.lex.string); - if ((afterType == false && afterStruct == false) && parserToken->sType.lex.symbol != nullptr) { + parserToken->sType.lex.symbol = _parseContext.symbolTable.find(*parserToken->sType.lex.string); + if (afterType == false && parserToken->sType.lex.symbol) { if (const TVariable* variable = parserToken->sType.lex.symbol->getAsVariable()) { if (variable->isUserType()) { afterType = true; @@ -1558,8 +1234,8 @@ int TScanContext::identifierOrType() // extension support before the extension is enabled. int TScanContext::reservedWord() { - if (! parseContext.symbolTable.atBuiltInLevel()) - parseContext.error(loc, "Reserved word.", tokenText, "", ""); + if (!_parseContext.symbolTable.atBuiltInLevel()) + _parseContext.error(loc, "Reserved word.", tokenText, "", ""); return 0; } @@ -1572,8 +1248,8 @@ int TScanContext::identifierOrReserved(bool reserved) return 0; } - if (parseContext.forwardCompatible) - parseContext.warn(loc, "using future reserved keyword", tokenText, ""); + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using future reserved keyword", tokenText, ""); return identifierOrType(); } @@ -1582,16 +1258,16 @@ int TScanContext::identifierOrReserved(bool reserved) // but then got reserved by ES 3.0. int TScanContext::es30ReservedFromGLSL(int version) { - if (parseContext.symbolTable.atBuiltInLevel()) + if (_parseContext.symbolTable.atBuiltInLevel()) return keyword; - if ((parseContext.profile == EEsProfile && parseContext.version < 300) || - (parseContext.profile != EEsProfile && parseContext.version < version)) { - if (parseContext.forwardCompatible) - parseContext.warn(loc, "future reserved word in ES 300 and keyword in GLSL", tokenText, ""); + if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || + (_parseContext.profile != EEsProfile && _parseContext.version < version)) { + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "future reserved word in ES 300 and keyword in GLSL", tokenText, ""); return identifierOrType(); - } else if (parseContext.profile == EEsProfile && parseContext.version >= 300) + } else if (_parseContext.profile == EEsProfile && _parseContext.version >= 300) reservedWord(); return keyword; @@ -1601,10 +1277,10 @@ int TScanContext::es30ReservedFromGLSL(int version) // showed up, both in an es version and a non-ES version. int TScanContext::nonreservedKeyword(int esVersion, int nonEsVersion) { - if ((parseContext.profile == EEsProfile && parseContext.version < esVersion) || - (parseContext.profile != EEsProfile && parseContext.version < nonEsVersion)) { - if (parseContext.forwardCompatible) - parseContext.warn(loc, "using future keyword", tokenText, ""); + if ((_parseContext.profile == EEsProfile && _parseContext.version < esVersion) || + (_parseContext.profile != EEsProfile && _parseContext.version < nonEsVersion)) { + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using future keyword", tokenText, ""); return identifierOrType(); } @@ -1614,11 +1290,11 @@ int TScanContext::nonreservedKeyword(int esVersion, int nonEsVersion) int TScanContext::precisionKeyword() { - if (parseContext.profile == EEsProfile || parseContext.version >= 130) + if (_parseContext.profile == EEsProfile || _parseContext.version >= 130) return keyword; - if (parseContext.forwardCompatible) - parseContext.warn(loc, "using ES precision qualifier keyword", tokenText, ""); + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using ES precision qualifier keyword", tokenText, ""); return identifierOrType(); } @@ -1627,11 +1303,11 @@ int TScanContext::matNxM() { afterType = true; - if (parseContext.version > 110) + if (_parseContext.version > 110) return keyword; - if (parseContext.forwardCompatible) - parseContext.warn(loc, "using future non-square matrix type keyword", tokenText, ""); + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using future non-square matrix type keyword", tokenText, ""); return identifierOrType(); } @@ -1640,56 +1316,55 @@ int TScanContext::dMat() { afterType = true; - if (parseContext.profile == EEsProfile && parseContext.version >= 300) { + if (_parseContext.profile == EEsProfile && _parseContext.version >= 300) { reservedWord(); return keyword; } - if (parseContext.profile != EEsProfile && parseContext.version >= 400) + if (_parseContext.profile != EEsProfile && _parseContext.version >= 400) return keyword; - if (parseContext.forwardCompatible) - parseContext.warn(loc, "using future type keyword", tokenText, ""); + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using future type keyword", tokenText, ""); return identifierOrType(); } int TScanContext::firstGenerationImage(bool inEs310) { - if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.profile != EEsProfile && (parseContext.version >= 420 || - parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))) || - (inEs310 && parseContext.profile == EEsProfile && parseContext.version >= 310)) + if (_parseContext.symbolTable.atBuiltInLevel() || + (_parseContext.profile != EEsProfile && (_parseContext.version >= 420 || _parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))) || + (inEs310 && _parseContext.profile == EEsProfile && _parseContext.version >= 310)) return keyword; - if ((parseContext.profile == EEsProfile && parseContext.version >= 300) || - (parseContext.profile != EEsProfile && parseContext.version >= 130)) { + if ((_parseContext.profile == EEsProfile && _parseContext.version >= 300) || + (_parseContext.profile != EEsProfile && _parseContext.version >= 130)) { reservedWord(); return keyword; } - if (parseContext.forwardCompatible) - parseContext.warn(loc, "using future type keyword", tokenText, ""); + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using future type keyword", tokenText, ""); return identifierOrType(); } int TScanContext::secondGenerationImage() { - if (parseContext.profile == EEsProfile && parseContext.version >= 310) { + if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) { reservedWord(); return keyword; } - if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.profile != EEsProfile && - (parseContext.version >= 420 || parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) + if (_parseContext.symbolTable.atBuiltInLevel() || + (_parseContext.profile != EEsProfile && + (_parseContext.version >= 420 || _parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) return keyword; - if (parseContext.forwardCompatible) - parseContext.warn(loc, "using future type keyword", tokenText, ""); + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using future type keyword", tokenText, ""); return identifierOrType(); } diff --git a/deps/glslang-new/glslang/MachineIndependent/Scan.h b/deps/glslang/glslang-old/glslang/MachineIndependent/Scan.h similarity index 84% rename from deps/glslang-new/glslang/MachineIndependent/Scan.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/Scan.h index 2c26c2efd4..fe747ef431 100644 --- a/deps/glslang-new/glslang/MachineIndependent/Scan.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Scan.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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_SCAN_INCLUDED_ #define _GLSLANG_SCAN_INCLUDED_ @@ -51,24 +51,25 @@ const int EndOfInput = -1; // class TInputScanner { public: - TInputScanner(int n, const char* const s[], size_t L[], const char* const* names = nullptr, - int b = 0, int f = 0, bool single = false) : + TInputScanner(int n, const char* const s[], size_t L[], const char* const* names = nullptr, int b = 0, int f = 0, bool single = false) : numSources(n), - // up to this point, common usage is "char*", but now we need positive 8-bit characters - sources(reinterpret_cast(s)), - lengths(L), currentSource(0), currentChar(0), stringBias(b), finale(f), singleLogical(single), - endOfFileReached(false) + sources(reinterpret_cast(s)), // up to this point, common usage is "char*", but now we need positive 8-bit characters + lengths(L), currentSource(0), currentChar(0), stringBias(b), finale(f), singleLogical(single), endOfFileReached(false) { loc = new TSourceLoc[numSources]; for (int i = 0; i < numSources; ++i) { - loc[i].init(i - stringBias); + loc[i].init(); } if (names != nullptr) { for (int i = 0; i < numSources; ++i) loc[i].name = names[i]; } + loc[currentSource].string = -stringBias; loc[currentSource].line = 1; - logicalSourceLoc.init(1); + loc[currentSource].column = 0; + logicalSourceLoc.string = 0; + logicalSourceLoc.line = 1; + logicalSourceLoc.column = 0; logicalSourceLoc.name = loc[0].name; } diff --git a/deps/glslang-new/glslang/MachineIndependent/ScanContext.h b/deps/glslang/glslang-old/glslang/MachineIndependent/ScanContext.h old mode 100755 new mode 100644 similarity index 57% rename from deps/glslang-new/glslang/MachineIndependent/ScanContext.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/ScanContext.h index 0cc7ea0a9e..7f0a1b513a --- a/deps/glslang-new/glslang/MachineIndependent/ScanContext.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/ScanContext.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,27 +19,28 @@ // 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 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 _MACHINE_INDEPENDENT_SCAN_CONTEXT_H +#define _MACHINE_INDEPENDENT_SCAN_CONTEXT_H + // // This holds context specific to the GLSL scanner, which // sits between the preprocessor scanner and parser. // -#pragma once - #include "ParseHelper.h" namespace glslang { @@ -50,10 +51,7 @@ class TParserToken; class TScanContext { public: - explicit TScanContext(TParseContextBase& pc) : - parseContext(pc), - afterType(false), afterStruct(false), - field(false) { } + explicit TScanContext(TParseContextBase& pc) : _parseContext(pc), afterType(false), field(false) { } virtual ~TScanContext() { } static void fillInKeywordMap(); @@ -77,9 +75,8 @@ protected: int firstGenerationImage(bool inEs310); int secondGenerationImage(); - TParseContextBase& parseContext; + TParseContextBase& _parseContext; bool afterType; // true if we've recognized a type, so can only be looking for an identifier - bool afterStruct; // true if we've recognized the STRUCT keyword, so can only be looking for an identifier bool field; // true if we're on a field, right after a '.' TSourceLoc loc; TParserToken* parserToken; @@ -90,3 +87,5 @@ protected: }; } // end namespace glslang + +#endif diff --git a/deps/glslang-new/glslang/MachineIndependent/ShaderLang.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/ShaderLang.cpp similarity index 74% rename from deps/glslang-new/glslang/MachineIndependent/ShaderLang.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/ShaderLang.cpp index 4f39f3453e..596e0ee649 100644 --- a/deps/glslang-new/glslang/MachineIndependent/ShaderLang.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/ShaderLang.cpp @@ -1,13 +1,13 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013-2016 LunarG, Inc. -// Copyright (C) 2015-2017 Google, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013-2016 LunarG, Inc. +//Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -47,14 +47,11 @@ #include #include "SymbolTable.h" #include "ParseHelper.h" -#include "Scan.h" -#include "ScanContext.h" - -#ifdef ENABLE_HLSL #include "../../hlsl/hlslParseHelper.h" #include "../../hlsl/hlslParseables.h" +#include "Scan.h" +#include "ScanContext.h" #include "../../hlsl/hlslScanContext.h" -#endif #include "../Include/ShHandle.h" #include "../../OGLCompilersDLL/InitializeDll.h" @@ -69,10 +66,6 @@ namespace { // anonymous namespace for file-local functions and symbols -// Total number of successful initializers of glslang: a refcount -// Shared global; access should be protected by a global mutex/critical section. -int NumberOfClients = 0; - using namespace glslang; // Create a language specific version of parseables. @@ -80,9 +73,7 @@ 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"); @@ -95,21 +86,17 @@ TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& int version, EProfile profile, EShSource source, EShLanguage language, TInfoSink& infoSink, SpvVersion spvVersion, bool forwardCompatible, EShMessages messages, - bool parsingBuiltIns, std::string sourceEntryPointName = "") + bool parsingBuiltIns, const std::string sourceEntryPointName = "") { switch (source) { - case EShSourceGlsl: { - if (sourceEntryPointName.size() == 0) - intermediate.setEntryPointName("main"); - TString entryPoint = sourceEntryPointName.c_str(); + case EShSourceGlsl: + intermediate.setEntryPointName("main"); return new TParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, - language, infoSink, forwardCompatible, messages, &entryPoint); - } -#ifdef ENABLE_HLSL + language, infoSink, forwardCompatible, messages); + 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; @@ -118,7 +105,7 @@ TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& // Local mapping functions for making arrays of symbol tables.... -const int VersionCount = 17; // index range in MapVersionToIndex +const int VersionCount = 15; // index range in MapVersionToIndex int MapVersionToIndex(int version) { @@ -140,10 +127,7 @@ int MapVersionToIndex(int version) case 440: index = 12; break; case 310: index = 13; break; case 450: index = 14; break; - case 500: index = 0; break; // HLSL - case 320: index = 15; break; - case 460: index = 16; break; - default: assert(0); break; + default: break; } assert(index < VersionCount); @@ -210,18 +194,18 @@ enum EPrecisionClass { EPcCount }; -// A process-global symbol table per version per profile for built-ins common -// to multiple stages (languages), and a process-global symbol table per version +// A process-global symbol table per version per profile for built-ins common +// to multiple stages (languages), and a process-global symbol table per version // per profile per stage for built-ins unique to each stage. They will be sparsely // populated, so they will only be generated as needed. -// +// // Each has a different set of built-ins, and we want to preserve that from // compile to compile. // TSymbolTable* CommonSymbolTable[VersionCount][SpvVersionCount][ProfileCount][SourceCount][EPcCount] = {}; TSymbolTable* SharedSymbolTables[VersionCount][SpvVersionCount][ProfileCount][SourceCount][EShLangCount] = {}; -TPoolAllocator* PerProcessGPA = nullptr; +TPoolAllocator* PerProcessGPA = 0; // // Parse and add to the given symbol table the content of the given shader string. @@ -230,19 +214,19 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil EShSource source, TInfoSink& infoSink, TSymbolTable& symbolTable) { TIntermediate intermediate(language, version, profile); - + intermediate.setSource(source); - std::unique_ptr parseContext(CreateParseContext(symbolTable, intermediate, version, profile, source, + std::unique_ptr _parseContext(CreateParseContext(symbolTable, intermediate, version, profile, source, language, infoSink, spvVersion, true, EShMsgDefault, true)); - TShader::ForbidIncluder includer; - TPpContext ppContext(*parseContext, "", includer); - TScanContext scanContext(*parseContext); - parseContext->setScanContext(&scanContext); - parseContext->setPpContext(&ppContext); - + TShader::ForbidInclude includer; + TPpContext ppContext(*_parseContext, "", includer); + TScanContext scanContext(*_parseContext); + _parseContext->setScanContext(&scanContext); + _parseContext->setPpContext(&ppContext); + // // Push the symbol table to give it an initial scope. This // push should not have a corresponding pop, so that built-ins @@ -258,9 +242,9 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil if (builtInLengths[0] == 0) return true; - + TInputScanner input(1, builtInShaders, builtInLengths); - if (! parseContext->parseShaderStrings(ppContext, input) != 0) { + if (!_parseContext->parseShaderStrings(ppContext, input) != 0) { infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins"); printf("Unable to parse built-ins\n%s\n", infoSink.info.c_str()); printf("%s\n", builtInShaders[0]); @@ -301,9 +285,6 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS { std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); - if (builtInParseables == nullptr) - return false; - builtInParseables->initialize(version, profile, spvVersion); // do the common tables @@ -349,10 +330,7 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf EProfile profile, const SpvVersion& spvVersion, EShLanguage language, EShSource source) { std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); - - if (builtInParseables == nullptr) - return false; - + builtInParseables->initialize(*resources, version, profile, spvVersion, language); InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, source, infoSink, symbolTable); builtInParseables->identifyBuiltIns(version, profile, spvVersion, language, symbolTable, *resources); @@ -361,11 +339,11 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf } // -// To do this on the fly, we want to leave the current state of our thread's +// To do this on the fly, we want to leave the current state of our thread's // pool allocator intact, so: // - Switch to a new pool for parsing the built-ins // - Do the parsing, which builds the symbol table, using the new pool -// - Switch to the process-global pool to save a copy of the resulting symbol table +// - Switch to the process-global pool to save a copy the resulting symbol table // - Free up the new pool used to parse the built-ins // - Switch back to the original thread's pool // @@ -392,8 +370,8 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp // Switch to a new pool TPoolAllocator& previousAllocator = GetThreadPoolAllocator(); - TPoolAllocator* builtInPoolAllocator = new TPoolAllocator; - SetThreadPoolAllocator(builtInPoolAllocator); + TPoolAllocator* builtInPoolAllocator = new TPoolAllocator(); + SetThreadPoolAllocator(*builtInPoolAllocator); // Dynamically allocate the local symbol tables so we can control when they are deallocated WRT when the pool is popped. TSymbolTable* commonTable[EPcCount]; @@ -407,7 +385,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp InitializeSymbolTables(infoSink, commonTable, stageTables, version, profile, spvVersion, source); // Switch to the process-global pool - SetThreadPoolAllocator(PerProcessGPA); + SetThreadPoolAllocator(*PerProcessGPA); // Copy the local symbol tables from the new pool to the global tables using the process-global pool for (int precClass = 0; precClass < EPcCount; ++precClass) { @@ -424,7 +402,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp [versionIndex][spvVersionIndex][profileIndex][sourceIndex][CommonIndex(profile, (EShLanguage)stage)]); SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->copyTable(*stageTables[stage]); SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->readOnly(); - } + } } // Clean up the local tables before deleting the pool they used. @@ -434,7 +412,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp delete stageTables[stage]; delete builtInPoolAllocator; - SetThreadPoolAllocator(&previousAllocator); + SetThreadPoolAllocator(previousAllocator); glslang::ReleaseGlobalLock(); } @@ -447,12 +425,12 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo bool correct = true; if (source == EShSourceHlsl) { - version = 500; // shader model; currently a characteristic of glslang, not the input + version = 450; // TODO: GLSL parser is still used for builtins. profile = ECoreProfile; // allow doubles in prototype parsing return correct; } - // Get a version... + // Get a good version... if (version == 0) { version = defaultVersion; // infoSink.info.message(EPrefixWarning, "#version: statement missing; use #version on first line of shader"); @@ -460,9 +438,9 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo // Get a good profile... if (profile == ENoProfile) { - if (version == 300 || version == 310 || version == 320) { + if (version == 300 || version == 310) { correct = false; - infoSink.info.message(EPrefixError, "#version: versions 300, 310, and 320 require specifying the 'es' profile"); + infoSink.info.message(EPrefixError, "#version: versions 300 and 310 require specifying the 'es' profile"); profile = EEsProfile; } else if (version == 100) profile = EEsProfile; @@ -479,61 +457,25 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo profile = EEsProfile; else profile = ENoProfile; - } else if (version == 300 || version == 310 || version == 320) { + } else if (version == 300 || version == 310) { if (profile != EEsProfile) { correct = false; - infoSink.info.message(EPrefixError, "#version: versions 300, 310, and 320 support only the es profile"); + infoSink.info.message(EPrefixError, "#version: versions 300 and 310 support only the es profile"); } profile = EEsProfile; } else { if (profile == EEsProfile) { correct = false; - infoSink.info.message(EPrefixError, "#version: only version 300, 310, and 320 support the es profile"); + infoSink.info.message(EPrefixError, "#version: only version 300 and 310 support the es profile"); if (version >= FirstProfileVersion) profile = ECoreProfile; else profile = ENoProfile; - } + } // else: typical desktop case... e.g., "#version 410 core" } } - // Fix version... - switch (version) { - // ES versions - case 100: break; - case 300: break; - case 310: break; - case 320: break; - - // desktop versions - case 110: break; - case 120: break; - case 130: break; - case 140: break; - case 150: break; - case 330: break; - case 400: break; - case 410: break; - case 420: break; - case 430: break; - case 440: break; - case 450: break; - case 460: break; - - // unknown version - default: - correct = false; - infoSink.info.message(EPrefixError, "version not supported"); - if (profile == EEsProfile) - version = 310; - else { - version = 450; - profile = ECoreProfile; - } - break; - } - // Correct for stage type... switch (stage) { case EShLangGeometry: @@ -578,7 +520,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo if (spvVersion.spv != 0) { switch (profile) { case EEsProfile: - if (spvVersion.vulkan > 0 && version < 310) { + if (spvVersion.vulkan >= 100 && version < 310) { correct = false; infoSink.info.message(EPrefixError, "#version: ES shaders for Vulkan SPIR-V require version 310 or higher"); version = 310; @@ -593,7 +535,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo infoSink.info.message(EPrefixError, "#version: compilation for SPIR-V does not support the compatibility profile"); break; default: - if (spvVersion.vulkan > 0 && version < 140) { + if (spvVersion.vulkan >= 100 && version < 140) { correct = false; infoSink.info.message(EPrefixError, "#version: Desktop shaders for Vulkan SPIR-V require version 140 or higher"); version = 140; @@ -607,92 +549,44 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo } } + // A meta check on the condition of the compiler itself... + switch (version) { + + // ES versions + case 100: + case 300: + // versions are complete + break; + + // Desktop versions + case 110: + case 120: + case 130: + case 140: + case 150: + case 330: + // versions are complete + break; + + case 310: + case 400: + case 410: + case 420: + case 430: + case 440: + case 450: + infoSink.info << "Warning, version " << version << " is not yet complete; most version-specific features are present, but some are missing.\n"; + break; + + default: + infoSink.info << "Warning, version " << version << " is unknown.\n"; + break; + + } + return correct; } -// There are multiple paths in for setting environment stuff. -// TEnvironment takes precedence, for what it sets, so sort all this out. -// Ideally, the internal code could be made to use TEnvironment, but for -// now, translate it to the historically used parameters. -void TranslateEnvironment(const TEnvironment* environment, EShMessages& messages, EShSource& source, - EShLanguage& stage, SpvVersion& spvVersion) -{ - // Set up environmental defaults, first ignoring 'environment'. - if (messages & EShMsgSpvRules) - spvVersion.spv = EShTargetSpv_1_0; - if (messages & EShMsgVulkanRules) { - spvVersion.vulkan = EShTargetVulkan_1_0; - spvVersion.vulkanGlsl = 100; - } else if (spvVersion.spv != 0) - spvVersion.openGl = 100; - - // Now, override, based on any content set in 'environment'. - // 'environment' must be cleared to ESh*None settings when items - // are not being set. - if (environment != nullptr) { - // input language - if (environment->input.languageFamily != EShSourceNone) { - stage = environment->input.stage; - switch (environment->input.dialect) { - case EShClientNone: - break; - case EShClientVulkan: - spvVersion.vulkanGlsl = environment->input.dialectVersion; - break; - case EShClientOpenGL: - spvVersion.openGl = environment->input.dialectVersion; - break; - } - switch (environment->input.languageFamily) { - case EShSourceNone: - break; - case EShSourceGlsl: - source = EShSourceGlsl; - messages = static_cast(messages & ~EShMsgReadHlsl); - break; - case EShSourceHlsl: - source = EShSourceHlsl; - messages = static_cast(messages | EShMsgReadHlsl); - break; - } - } - - // client - switch (environment->client.client) { - case EShClientVulkan: - spvVersion.vulkan = environment->client.version; - break; - default: - break; - } - - // generated code - switch (environment->target.language) { - case EshTargetSpv: - spvVersion.spv = environment->target.version; - break; - default: - break; - } - } -} - -// Most processes are recorded when set in the intermediate representation, -// These are the few that are not. -void RecordProcesses(TIntermediate& intermediate, EShMessages messages, const std::string& sourceEntryPointName) -{ - if ((messages & EShMsgRelaxedErrors) != 0) - intermediate.addProcess("relaxed-errors"); - if ((messages & EShMsgSuppressWarnings) != 0) - intermediate.addProcess("suppress-warnings"); - if ((messages & EShMsgKeepUncalled) != 0) - intermediate.addProcess("keep-uncalled"); - if (sourceEntryPointName.size() > 0) { - intermediate.addProcess("source-entrypoint"); - intermediate.addProcessArgument(sourceEntryPointName); - } -} - // This is the common setup and cleanup code for PreprocessDeferred and // CompileDeferred. // It takes any callable with a signature of @@ -712,7 +606,7 @@ bool ProcessDeferred( const char* customPreamble, const EShOptimizationLevel optLevel, const TBuiltInResource* resources, - int defaultVersion, // use 100 for ES environment, 110 for desktop; this is the GLSL version, not SPIR-V or Vulkan + int defaultVersion, // use 100 for ES environment, 110 for desktop; this is the GLSL version, not SPIR-V or Vulkan EProfile defaultProfile, // set version/profile to defaultVersion/defaultProfile regardless of the #version // directive in the source code @@ -723,15 +617,18 @@ bool ProcessDeferred( ProcessingContext& processingContext, bool requireNonempty, TShader::Includer& includer, - const std::string sourceEntryPointName = "", - const TEnvironment* environment = nullptr) // optional way of fully setting all versions, overriding the above + const std::string sourceEntryPointName = "" + ) { + if (! InitThread()) + return false; + // This must be undone (.pop()) by the caller, after it finishes consuming the created tree. GetThreadPoolAllocator().push(); if (numStrings == 0) return true; - + // Move to length-based strings, rather than null-terminated strings. // Also, add strings to include the preamble and to ensure the shader is not null, // which lets the grammar accept what was a null (post preprocessing) shader. @@ -744,12 +641,12 @@ bool ProcessDeferred( const int numPre = 2; const int numPost = requireNonempty? 1 : 0; const int numTotal = numPre + numStrings + numPost; - std::unique_ptr lengths(new size_t[numTotal]); - std::unique_ptr strings(new const char*[numTotal]); - std::unique_ptr names(new const char*[numTotal]); + size_t* lengths = new size_t[numTotal]; + const char** strings = new const char*[numTotal]; + const char** names = new const char*[numTotal]; for (int s = 0; s < numStrings; ++s) { strings[s + numPre] = shaderStrings[s]; - if (inputLengths == nullptr || inputLengths[s] < 0) + if (inputLengths == 0 || inputLengths[s] < 0) lengths[s + numPre] = strlen(shaderStrings[s]); else lengths[s + numPre] = inputLengths[s]; @@ -762,27 +659,16 @@ bool ProcessDeferred( names[s + numPre] = nullptr; } - // Get all the stages, languages, clients, and other environment - // stuff sorted out. - EShSource source = (messages & EShMsgReadHlsl) != 0 ? EShSourceHlsl : EShSourceGlsl; - SpvVersion spvVersion; - EShLanguage stage = compiler->getLanguage(); - TranslateEnvironment(environment, messages, source, stage, spvVersion); - if (environment != nullptr && environment->target.hlslFunctionality1) - intermediate.setHlslFunctionality1(); - // First, without using the preprocessor or parser, find the #version, so we know what // symbol tables, processing rules, etc. to set up. This does not need the extra strings - // outlined above, just the user shader, after the system and user preambles. - glslang::TInputScanner userInput(numStrings, &strings[numPre], &lengths[numPre]); - int version = 0; - EProfile profile = ENoProfile; - bool versionNotFirstToken = false; - bool versionNotFirst = (source == EShSourceHlsl) - ? true - : userInput.scanVersion(version, profile, versionNotFirstToken); + // outlined above, just the user shader. + int version; + EProfile profile; + glslang::TInputScanner userInput(numStrings, &strings[numPre], &lengths[numPre]); // no preamble + bool versionNotFirstToken; + bool versionNotFirst = userInput.scanVersion(version, profile, versionNotFirstToken); bool versionNotFound = version == 0; - if (forceDefaultVersionAndProfile && source == EShSourceGlsl) { + if (forceDefaultVersionAndProfile) { if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound && (version != defaultVersion || profile != defaultProfile)) { compiler->infoSink.info << "Warning, (version, profile) forced to be (" @@ -799,9 +685,15 @@ bool ProcessDeferred( version = defaultVersion; profile = defaultProfile; } - - bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage, - versionNotFirst, defaultVersion, source, version, profile, spvVersion); + SpvVersion spvVersion; + if (messages & EShMsgSpvRules) + spvVersion.spv = 0x00010000; // TODO: eventually have this come from the outside + EShSource source = (messages & EShMsgReadHlsl) ? EShSourceHlsl : EShSourceGlsl; + if (messages & EShMsgVulkanRules) + spvVersion.vulkan = 100; // TODO: eventually have this come from the outside + else if (spvVersion.spv != 0) + spvVersion.openGl = 100; // TODO: eventually have this come from the outside + bool goodVersion = DeduceVersionProfile(compiler->infoSink, compiler->getLanguage(), versionNotFirst, defaultVersion, source, version, profile, spvVersion); bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst)); bool warnVersionNotFirst = false; if (! versionWillBeError && versionNotFirstToken) { @@ -815,65 +707,57 @@ bool ProcessDeferred( intermediate.setVersion(version); intermediate.setProfile(profile); intermediate.setSpv(spvVersion); - RecordProcesses(intermediate, messages, sourceEntryPointName); - if (spvVersion.vulkan > 0) + if (spvVersion.vulkan >= 100) intermediate.setOriginUpperLeft(); - if ((messages & EShMsgHlslOffsets) || source == EShSourceHlsl) - intermediate.setHlslOffsets(); - if (messages & EShMsgDebugInfo) { - intermediate.setSourceFile(names[numPre]); - for (int s = 0; s < numStrings; ++s) - intermediate.addSourceText(strings[numPre + s]); - } SetupBuiltinSymbolTable(version, profile, spvVersion, source); - + TSymbolTable* cachedTable = SharedSymbolTables[MapVersionToIndex(version)] [MapSpvVersionToIndex(spvVersion)] [MapProfileToIndex(profile)] [MapSourceToIndex(source)] - [stage]; - + [compiler->getLanguage()]; + // Dynamically allocate the symbol table so we can control when it is deallocated WRT the pool. - std::unique_ptr symbolTable(new TSymbolTable); + TSymbolTable* symbolTableMemory = new TSymbolTable; + TSymbolTable& symbolTable = *symbolTableMemory; if (cachedTable) - symbolTable->adoptLevels(*cachedTable); - + symbolTable.adoptLevels(*cachedTable); + // Add built-in symbols that are potentially context dependent; // they get popped again further down. - if (! AddContextSpecificSymbols(resources, compiler->infoSink, *symbolTable, version, profile, spvVersion, - stage, source)) { - return false; - } - + AddContextSpecificSymbols(resources, compiler->infoSink, symbolTable, version, profile, spvVersion, + compiler->getLanguage(), source); + // // Now we can process the full shader under proper symbols and rules. // - std::unique_ptr parseContext(CreateParseContext(*symbolTable, intermediate, version, profile, source, - stage, compiler->infoSink, - spvVersion, forwardCompatible, messages, false, sourceEntryPointName)); - TPpContext ppContext(*parseContext, names[numPre] ? names[numPre] : "", includer); + TParseContextBase *_parseContext = CreateParseContext(symbolTable, intermediate, version, profile, source, + compiler->getLanguage(), compiler->infoSink, + spvVersion, forwardCompatible, messages, false, sourceEntryPointName); + + TPpContext ppContext(*_parseContext, names[numPre]? names[numPre]: "", includer); // only GLSL (bison triggered, really) needs an externally set scan context - glslang::TScanContext scanContext(*parseContext); - if (source == EShSourceGlsl) - parseContext->setScanContext(&scanContext); + glslang::TScanContext scanContext(*_parseContext); + if ((messages & EShMsgReadHlsl) == 0) + _parseContext->setScanContext(&scanContext); - parseContext->setPpContext(&ppContext); - parseContext->setLimits(*resources); + _parseContext->setPpContext(&ppContext); + _parseContext->setLimits(*resources); if (! goodVersion) - parseContext->addError(); + _parseContext->addError(); if (warnVersionNotFirst) { TSourceLoc loc; loc.init(); - parseContext->warn(loc, "Illegal to have non-comment, non-whitespace tokens before #version", "#version", ""); + _parseContext->warn(loc, "Illegal to have non-comment, non-whitespace tokens before #version", "#version", ""); } - parseContext->initializeExtensionBehavior(); - + _parseContext->initializeExtensionBehavior(); + // Fill in the strings as outlined above. std::string preamble; - parseContext->getPreamble(preamble); + _parseContext->getPreamble(preamble); strings[0] = preamble.c_str(); lengths[0] = strlen(strings[0]); names[0] = nullptr; @@ -887,14 +771,23 @@ bool ProcessDeferred( lengths[postIndex] = strlen(strings[numStrings + numPre]); names[postIndex] = nullptr; } - TInputScanner fullInput(numStrings + numPre + numPost, strings.get(), lengths.get(), names.get(), numPre, numPost); + TInputScanner fullInput(numStrings + numPre + numPost, strings, lengths, names, numPre, numPost); // Push a new symbol allocation scope that will get used for the shader's globals. - symbolTable->push(); + symbolTable.push(); - bool success = processingContext(*parseContext, ppContext, fullInput, - versionWillBeError, *symbolTable, + bool success = processingContext(*_parseContext, ppContext, fullInput, + versionWillBeError, symbolTable, intermediate, optLevel, messages); + + // Clean up the symbol table. The AST is self-sufficient now. + delete symbolTableMemory; + + delete _parseContext; + delete [] lengths; + delete [] strings; + delete [] names; + return success; } @@ -904,7 +797,7 @@ bool ProcessDeferred( class SourceLineSynchronizer { public: SourceLineSynchronizer(const std::function& lastSourceIndex, - std::string* output) + std::stringstream* output) : getLastSourceIndex(lastSourceIndex), output(output), lastSource(-1), lastLine(0) {} // SourceLineSynchronizer(const SourceLineSynchronizer&) = delete; // SourceLineSynchronizer& operator=(const SourceLineSynchronizer&) = delete; @@ -919,7 +812,7 @@ public: // used. We also need to output a newline to separate the output // from the previous source string (if there is one). if (lastSource != -1 || lastLine != 0) - *output += '\n'; + *output << std::endl; lastSource = getLastSourceIndex(); lastLine = -1; return true; @@ -934,7 +827,7 @@ public: syncToMostRecentString(); const bool newLineStarted = lastLine < tokenLine; for (; lastLine < tokenLine; ++lastLine) { - if (lastLine > 0) *output += '\n'; + if (lastLine > 0) *output << std::endl; } return newLineStarted; } @@ -948,8 +841,8 @@ private: // A function for getting the index of the last valid source string we've // read tokens from. const std::function getLastSourceIndex; - // output string for newlines. - std::string* output; + // output stream for newlines. + std::stringstream* output; // lastSource is the source string index (starting from 0) of the last token // processed. It is tracked in order for newlines to be inserted when a new // source string starts. -1 means we haven't started processing any source @@ -967,7 +860,7 @@ private: // It places the result in the "string" argument to its constructor. struct DoPreprocessing { explicit DoPreprocessing(std::string* string): outputString(string) {} - bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, + bool operator()(TParseContextBase&_parseContext, TPpContext& ppContext, TInputScanner& input, bool versionWillBeError, TSymbolTable&, TIntermediate&, EShOptimizationLevel, EShMessages) @@ -975,113 +868,100 @@ struct DoPreprocessing { // This is a list of tokens that do not require a space before or after. static const std::string unNeededSpaceTokens = ";()[]"; static const std::string noSpaceBeforeTokens = ","; - glslang::TPpToken ppToken; + glslang::TPpToken token; - parseContext.setScanner(&input); + _parseContext.setScanner(&input); ppContext.setInput(input, versionWillBeError); - std::string outputBuffer; + std::stringstream outputStream; SourceLineSynchronizer lineSync( - std::bind(&TInputScanner::getLastValidSourceIndex, &input), &outputBuffer); + std::bind(&TInputScanner::getLastValidSourceIndex, &input), &outputStream); - parseContext.setExtensionCallback([&lineSync, &outputBuffer]( + _parseContext.setExtensionCallback([&lineSync, &outputStream]( int line, const char* extension, const char* behavior) { lineSync.syncToLine(line); - outputBuffer += "#extension "; - outputBuffer += extension; - outputBuffer += " : "; - outputBuffer += behavior; + outputStream << "#extension " << extension << " : " << behavior; }); - parseContext.setLineCallback([&lineSync, &outputBuffer, &parseContext]( + _parseContext.setLineCallback([&lineSync, &outputStream, &_parseContext]( int curLineNum, int newLineNum, bool hasSource, int sourceNum, const char* sourceName) { // SourceNum is the number of the source-string that is being parsed. lineSync.syncToLine(curLineNum); - outputBuffer += "#line "; - outputBuffer += std::to_string(newLineNum); + outputStream << "#line " << newLineNum; if (hasSource) { - outputBuffer += ' '; + outputStream << " "; if (sourceName != nullptr) { - outputBuffer += '\"'; - outputBuffer += sourceName; - outputBuffer += '\"'; + outputStream << "\"" << sourceName << "\""; } else { - outputBuffer += std::to_string(sourceNum); + outputStream << sourceNum; } } - if (parseContext.lineDirectiveShouldSetNextLine()) { + if (_parseContext.lineDirectiveShouldSetNextLine()) { // newLineNum is the new line number for the line following the #line // directive. So the new line number for the current line is newLineNum -= 1; } - outputBuffer += '\n'; + outputStream << std::endl; // And we are at the next line of the #line directive now. lineSync.setLineNum(newLineNum + 1); }); - parseContext.setVersionCallback( - [&lineSync, &outputBuffer](int line, int version, const char* str) { + _parseContext.setVersionCallback( + [&lineSync, &outputStream](int line, int version, const char* str) { lineSync.syncToLine(line); - outputBuffer += "#version "; - outputBuffer += std::to_string(version); + outputStream << "#version " << version; if (str) { - outputBuffer += ' '; - outputBuffer += str; + outputStream << " " << str; } }); - parseContext.setPragmaCallback([&lineSync, &outputBuffer]( + _parseContext.setPragmaCallback([&lineSync, &outputStream]( int line, const glslang::TVector& ops) { lineSync.syncToLine(line); - outputBuffer += "#pragma "; + outputStream << "#pragma "; for(size_t i = 0; i < ops.size(); ++i) { - outputBuffer += ops[i].c_str(); + outputStream << ops[i]; } }); - parseContext.setErrorCallback([&lineSync, &outputBuffer]( + _parseContext.setErrorCallback([&lineSync, &outputStream]( int line, const char* errorMessage) { lineSync.syncToLine(line); - outputBuffer += "#error "; - outputBuffer += errorMessage; + outputStream << "#error " << errorMessage; }); int lastToken = EndOfInput; // lastToken records the last token processed. - do { - int token = ppContext.tokenize(ppToken); - if (token == EndOfInput) - break; - + while (const char* tok = ppContext.tokenize(&token)) { bool isNewString = lineSync.syncToMostRecentString(); - bool isNewLine = lineSync.syncToLine(ppToken.loc.line); + bool isNewLine = lineSync.syncToLine(token.loc.line); if (isNewLine) { // Don't emit whitespace onto empty lines. // Copy any whitespace characters at the start of a line // from the input to the output. - outputBuffer += std::string(ppToken.loc.column - 1, ' '); + outputStream << std::string(token.loc.column - 1, ' '); } // Output a space in between tokens, but not at the start of a line, // and also not around special tokens. This helps with readability // and consistency. if (!isNewString && !isNewLine && lastToken != EndOfInput && - (unNeededSpaceTokens.find((char)token) == std::string::npos) && + (unNeededSpaceTokens.find((char)token.token) == std::string::npos) && (unNeededSpaceTokens.find((char)lastToken) == std::string::npos) && - (noSpaceBeforeTokens.find((char)token) == std::string::npos)) { - outputBuffer += ' '; + (noSpaceBeforeTokens.find((char)token.token) == std::string::npos)) { + outputStream << " "; } - lastToken = token; - outputBuffer += ppToken.name; - } while (true); - outputBuffer += '\n'; - *outputString = std::move(outputBuffer); + lastToken = token.token; + outputStream << tok; + } + outputStream << std::endl; + *outputString = outputStream.str(); bool success = true; - if (parseContext.getNumErrors() > 0) { + if (_parseContext.getNumErrors() > 0) { success = false; - parseContext.infoSink.info.prefix(EPrefixError); - parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; + _parseContext.infoSink.info.prefix(EPrefixError); + _parseContext.infoSink.info << _parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; } return success; } @@ -1091,28 +971,28 @@ struct DoPreprocessing { // DoFullParse is a valid ProcessingConext template argument for fully // parsing the shader. It populates the "intermediate" with the AST. struct DoFullParse{ - bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, + bool operator()(TParseContextBase&_parseContext, TPpContext& ppContext, TInputScanner& fullInput, bool versionWillBeError, TSymbolTable&, TIntermediate& intermediate, - EShOptimizationLevel optLevel, EShMessages messages) + EShOptimizationLevel optLevel, EShMessages messages) { bool success = true; // Parse the full shader. - if (! parseContext.parseShaderStrings(ppContext, fullInput, versionWillBeError)) + if (!_parseContext.parseShaderStrings(ppContext, fullInput, versionWillBeError)) success = false; if (success && intermediate.getTreeRoot()) { if (optLevel == EShOptNoGeneration) - parseContext.infoSink.info.message(EPrefixNone, "No errors. No code generation or linking was requested."); + _parseContext.infoSink.info.message(EPrefixNone, "No errors. No code generation or linking was requested."); else - success = intermediate.postProcess(intermediate.getTreeRoot(), parseContext.getLanguage()); + success = intermediate.postProcess(intermediate.getTreeRoot(), _parseContext.getLanguage()); } else if (! success) { - parseContext.infoSink.info.prefix(EPrefixError); - parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; + _parseContext.infoSink.info.prefix(EPrefixError); + _parseContext.infoSink.info << _parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; } if (messages & EShMsgAST) - intermediate.output(parseContext.infoSink, true); + intermediate.output(_parseContext.infoSink, true); return success; } @@ -1148,6 +1028,7 @@ bool PreprocessDeferred( false, includer); } + // // do a partial compile on the given strings for a single compilation unit // for a potential deferred link into a single stage (and deferred full compile of that @@ -1156,7 +1037,7 @@ bool PreprocessDeferred( // all preprocessing, parsing, semantic checks, etc. for a single compilation unit // are done here. // -// return: the tree and other information is filled into the intermediate argument, +// return: the tree and other information is filled into the intermediate argument, // and true is returned by the function for success. // bool CompileDeferred( @@ -1175,19 +1056,19 @@ bool CompileDeferred( EShMessages messages, // warnings/errors/AST; things to print out TIntermediate& intermediate,// returned tree, etc. TShader::Includer& includer, - const std::string sourceEntryPointName = "", - TEnvironment* environment = nullptr) + const std::string sourceEntryPointName = "") { DoFullParse parser; return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames, preamble, optLevel, resources, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, forwardCompatible, messages, intermediate, parser, - true, includer, sourceEntryPointName, environment); + true, includer, sourceEntryPointName); } } // end anonymous namespace for local functions + // // ShInitialize() should be called exactly once per process, not per thread. // @@ -1198,17 +1079,11 @@ int ShInitialize() if (! InitProcess()) return 0; - glslang::GetGlobalLock(); - ++NumberOfClients; - glslang::ReleaseGlobalLock(); - - if (PerProcessGPA == nullptr) + if (! PerProcessGPA) PerProcessGPA = new TPoolAllocator(); glslang::TScanContext::fillInKeywordMap(); -#ifdef ENABLE_HLSL glslang::HlslScanContext::fillInKeywordMap(); -#endif return 1; } @@ -1224,7 +1099,7 @@ ShHandle ShConstructCompiler(const EShLanguage language, int debugOptions) return 0; TShHandleBase* base = static_cast(ConstructCompiler(language, debugOptions)); - + return reinterpret_cast(base); } @@ -1268,14 +1143,6 @@ void ShDestruct(ShHandle handle) // int __fastcall ShFinalize() { - glslang::GetGlobalLock(); - --NumberOfClients; - assert(NumberOfClients >= 0); - bool finalize = NumberOfClients == 0; - glslang::ReleaseGlobalLock(); - if (! finalize) - return 1; - for (int version = 0; version < VersionCount; ++version) { for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { for (int p = 0; p < ProfileCount; ++p) { @@ -1302,15 +1169,14 @@ int __fastcall ShFinalize() } } - if (PerProcessGPA != nullptr) { + if (PerProcessGPA) { + PerProcessGPA->popAll(); delete PerProcessGPA; - PerProcessGPA = nullptr; + PerProcessGPA = 0; } glslang::TScanContext::deleteKeywordMap(); -#ifdef ENABLE_HLSL glslang::HlslScanContext::deleteKeywordMap(); -#endif return 1; } @@ -1345,13 +1211,11 @@ int ShCompile( if (compiler == 0) return 0; - SetThreadPoolAllocator(compiler->getPool()); - compiler->infoSink.info.erase(); compiler->infoSink.debug.erase(); TIntermediate intermediate(compiler->getLanguage()); - TShader::ForbidIncluder includer; + TShader::ForbidInclude includer; bool success = CompileDeferred(compiler, shaderStrings, numStrings, inputLengths, nullptr, "", optLevel, resources, defaultVersion, ENoProfile, false, forwardCompatible, messages, intermediate, includer); @@ -1396,7 +1260,8 @@ int ShLinkExt( } if (base->getAsCompiler()) cObjects.push_back(base->getAsCompiler()); - + + if (cObjects[i] == 0) return 0; } @@ -1404,8 +1269,6 @@ int ShLinkExt( TShHandleBase* base = reinterpret_cast(linkHandle); TLinker* linker = static_cast(base->getAsLinker()); - SetThreadPoolAllocator(linker->getPool()); - if (linker == 0) return 0; @@ -1414,7 +1277,7 @@ int ShLinkExt( for (int i = 0; i < numHandles; ++i) { if (cObjects[i]->getAsCompiler()) { if (! cObjects[i]->getAsCompiler()->linkable()) { - linker->infoSink.info.message(EPrefixError, "Not all shaders have valid object code."); + linker->infoSink.info.message(EPrefixError, "Not all shaders have valid object code."); return 0; } } @@ -1440,6 +1303,9 @@ void ShSetEncryptionMethod(ShHandle handle) // const char* ShGetInfoLog(const ShHandle handle) { + if (!InitThread()) + return 0; + if (handle == 0) return 0; @@ -1463,11 +1329,14 @@ const char* ShGetInfoLog(const ShHandle handle) // const void* ShGetExecutable(const ShHandle handle) { + if (!InitThread()) + return 0; + if (handle == 0) return 0; TShHandleBase* base = reinterpret_cast(handle); - + TLinker* linker = static_cast(base->getAsLinker()); if (linker == 0) return 0; @@ -1484,7 +1353,10 @@ const void* ShGetExecutable(const ShHandle handle) // success or failure. // int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* table) -{ +{ + if (!InitThread()) + return 0; + if (handle == 0) return 0; @@ -1493,7 +1365,7 @@ int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* t if (linker == 0) return 0; - + linker->setAppAttributeBindings(table); return 1; @@ -1504,6 +1376,9 @@ int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* t // int ShSetFixedAttributeBindings(const ShHandle handle, const ShBindingTable* table) { + if (!InitThread()) + return 0; + if (handle == 0) return 0; @@ -1522,6 +1397,9 @@ int ShSetFixedAttributeBindings(const ShHandle handle, const ShBindingTable* tab // int ShExcludeAttributes(const ShHandle handle, int *attributes, int count) { + if (!InitThread()) + return 0; + if (handle == 0) return 0; @@ -1543,6 +1421,9 @@ int ShExcludeAttributes(const ShHandle handle, int *attributes, int count) // int ShGetUniformLocation(const ShHandle handle, const char* name) { + if (!InitThread()) + return 0; + if (handle == 0) return -1; @@ -1561,7 +1442,7 @@ int ShGetUniformLocation(const ShHandle handle, const char* name) // // Below is a new alternate C++ interface that might potentially replace the above // opaque handle-based interface. -// +// // See more detailed comment in ShaderLang.h // @@ -1569,17 +1450,14 @@ namespace glslang { #include "../Include/revision.h" -#define QUOTE(s) #s -#define STR(n) QUOTE(n) - const char* GetEsslVersionString() { - return "OpenGL ES GLSL 3.20 glslang Khronos. " STR(GLSLANG_MINOR_VERSION) "." STR(GLSLANG_PATCH_LEVEL); + return "OpenGL ES GLSL 3.00 glslang LunarG Khronos." GLSLANG_REVISION " " GLSLANG_DATE; } const char* GetGlslVersionString() { - return "4.60 glslang Khronos. " STR(GLSLANG_MINOR_VERSION) "." STR(GLSLANG_PATCH_LEVEL); + return "4.20 glslang LunarG Khronos." GLSLANG_REVISION " " GLSLANG_DATE; } int GetKhronosToolId() @@ -1604,19 +1482,11 @@ public: }; TShader::TShader(EShLanguage s) - : stage(s), lengths(nullptr), stringNames(nullptr), preamble("") + : pool(0), stage(s), lengths(nullptr), stringNames(nullptr), preamble("") { - pool = new TPoolAllocator; infoSink = new TInfoSink; compiler = new TDeferredCompiler(stage, *infoSink); intermediate = new TIntermediate(s); - - // clear environment (avoid constructors in them for use in a C interface) - environment.input.languageFamily = EShSourceNone; - environment.input.dialect = EShClientNone; - environment.client.client = EShClientNone; - environment.target.language = EShTargetNone; - environment.target.hlslFunctionality1 = false; } TShader::~TShader() @@ -1660,47 +1530,13 @@ void TShader::setSourceEntryPoint(const char* name) sourceEntryPointName = name; } -void TShader::addProcesses(const std::vector& p) -{ - intermediate->addProcesses(p); -} - -// Set binding base for given resource type -void TShader::setShiftBinding(TResourceType res, unsigned int base) { - intermediate->setShiftBinding(res, base); -} - -// Set binding base for given resource type for a given binding set. -void TShader::setShiftBindingForSet(TResourceType res, unsigned int base, unsigned int set) { - intermediate->setShiftBindingForSet(res, base, set); -} - -// Set binding base for sampler types -void TShader::setShiftSamplerBinding(unsigned int base) { setShiftBinding(EResSampler, base); } -// Set binding base for texture types (SRV) -void TShader::setShiftTextureBinding(unsigned int base) { setShiftBinding(EResTexture, base); } -// Set binding base for image types -void TShader::setShiftImageBinding(unsigned int base) { setShiftBinding(EResImage, base); } -// Set binding base for uniform buffer objects (CBV) -void TShader::setShiftUboBinding(unsigned int base) { setShiftBinding(EResUbo, base); } -// Synonym for setShiftUboBinding, to match HLSL language. -void TShader::setShiftCbufferBinding(unsigned int base) { setShiftBinding(EResUbo, base); } -// Set binding base for UAV (unordered access view) -void TShader::setShiftUavBinding(unsigned int base) { setShiftBinding(EResUav, base); } -// Set binding base for SSBOs -void TShader::setShiftSsboBinding(unsigned int base) { setShiftBinding(EResSsbo, base); } -// Enables binding automapping using TIoMapper +void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShiftSamplerBinding(base); } +void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); } +void TShader::setShiftImageBinding(unsigned int base) { intermediate->setShiftImageBinding(base); } +void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); } void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); } -// Enables position.Y output negation in vertex shader -void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); } -// Fragile: currently within one stage: simple auto-assignment of location -void TShader::setAutoMapLocations(bool map) { intermediate->setAutoMapLocations(map); } -// See comment above TDefaultHlslIoMapper in iomapper.cpp: -void TShader::setHlslIoMapping(bool hlslIoMap) { intermediate->setHlslIoMapping(hlslIoMap); } void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); } void TShader::setNoStorageFormat(bool useUnknownFormat) { intermediate->setNoStorageFormat(useUnknownFormat); } -void TShader::setResourceSetBinding(const std::vector& base) { intermediate->setResourceSetBinding(base); } -void TShader::setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode) { intermediate->setTextureSamplerTransformMode(mode); } // // Turn the shader strings into a parse tree in the TIntermediate. @@ -1712,16 +1548,21 @@ bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion { if (! InitThread()) return false; - SetThreadPoolAllocator(pool); - + + pool = new TPoolAllocator(); + SetThreadPoolAllocator(*pool); if (! preamble) preamble = ""; return CompileDeferred(compiler, strings, numStrings, lengths, stringNames, preamble, EShOptNone, builtInResources, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, - forwardCompatible, messages, *intermediate, includer, sourceEntryPointName, - &environment); + forwardCompatible, messages, *intermediate, includer, sourceEntryPointName); +} + +bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages) +{ + return parse(builtInResources, defaultVersion, ENoProfile, false, forwardCompatible, messages); } // Fill in a string with the result of preprocessing ShaderStrings @@ -1735,8 +1576,9 @@ bool TShader::preprocess(const TBuiltInResource* builtInResources, { if (! InitThread()) return false; - SetThreadPoolAllocator(pool); + pool = new TPoolAllocator(); + SetThreadPoolAllocator(*pool); if (! preamble) preamble = ""; @@ -1756,9 +1598,8 @@ const char* TShader::getInfoDebugLog() return infoSink->debug.c_str(); } -TProgram::TProgram() : reflection(0), ioMapper(nullptr), linked(false) +TProgram::TProgram() : pool(0), reflection(0), ioMapper(nullptr), linked(false) { - pool = new TPoolAllocator; infoSink = new TInfoSink; for (int s = 0; s < EShLangCount; ++s) { intermediate[s] = 0; @@ -1768,7 +1609,6 @@ TProgram::TProgram() : reflection(0), ioMapper(nullptr), linked(false) TProgram::~TProgram() { - delete ioMapper; delete infoSink; delete reflection; @@ -1792,8 +1632,9 @@ bool TProgram::link(EShMessages messages) linked = true; bool error = false; - - SetThreadPoolAllocator(pool); + + pool = new TPoolAllocator(); + SetThreadPoolAllocator(*pool); for (int s = 0; s < EShLangCount; ++s) { if (! linkStage((EShLanguage)s, messages)) @@ -1843,15 +1684,6 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages) intermediate[stage] = new TIntermediate(stage, firstIntermediate->getVersion(), firstIntermediate->getProfile()); - - - // The new TIntermediate must use the same origin as the original TIntermediates. - // Otherwise linking will fail due to different coordinate systems. - if (firstIntermediate->getOriginUpperLeft()) { - intermediate[stage]->setOriginUpperLeft(); - } - intermediate[stage]->setSpv(firstIntermediate->getSpv()); - newedIntermediate[stage] = true; } @@ -1887,7 +1719,7 @@ const char* TProgram::getInfoDebugLog() // bool TProgram::buildReflection() -{ +{ if (! linked || reflection) return false; @@ -1909,10 +1741,7 @@ const char* TProgram::getUniformName(int index) const { return reflection const char* TProgram::getUniformBlockName(int index) const { return reflection->getUniformBlock(index).name.c_str(); } int TProgram::getUniformBlockSize(int index) const { return reflection->getUniformBlock(index).size; } int TProgram::getUniformIndex(const char* name) const { return reflection->getIndex(name); } -int TProgram::getUniformBinding(int index) const { return reflection->getUniform(index).getBinding(); } -int TProgram::getUniformBlockBinding(int index) const { return reflection->getUniformBlock(index).getBinding(); } int TProgram::getUniformBlockIndex(int index) const { return reflection->getUniform(index).index; } -int TProgram::getUniformBlockCounterIndex(int index) const { return reflection->getUniformBlock(index).counterIndex; } int TProgram::getUniformType(int index) const { return reflection->getUniform(index).glDefineType; } int TProgram::getUniformBufferOffset(int index) const { return reflection->getUniform(index).offset; } int TProgram::getUniformArraySize(int index) const { return reflection->getUniform(index).size; } @@ -1922,7 +1751,6 @@ int TProgram::getAttributeType(int index) const { return reflection const TType* TProgram::getAttributeTType(int index) const { return reflection->getAttribute(index).getType(); } const TType* TProgram::getUniformTType(int index) const { return reflection->getUniform(index).getType(); } const TType* TProgram::getUniformBlockTType(int index) const { return reflection->getUniformBlock(index).getType(); } -unsigned TProgram::getLocalSize(int dim) const { return reflection->getLocalSize(dim); } void TProgram::dumpReflection() { reflection->dump(); } diff --git a/deps/glslang-new/glslang/MachineIndependent/SymbolTable.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/SymbolTable.cpp similarity index 81% rename from deps/glslang-new/glslang/MachineIndependent/SymbolTable.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/SymbolTable.cpp index db46e1075d..fb09fdf991 100644 --- a/deps/glslang-new/glslang/MachineIndependent/SymbolTable.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/SymbolTable.cpp @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -51,7 +50,7 @@ namespace glslang { // // Recursively generate mangled names. // -void TType::buildMangledName(TString& mangledName) const +void TType::buildMangledName(TString& mangledName) { if (isMatrix()) mangledName += 'm'; @@ -61,22 +60,17 @@ void TType::buildMangledName(TString& mangledName) const switch (basicType) { case EbtFloat: mangledName += 'f'; break; case EbtDouble: mangledName += 'd'; break; +#ifdef AMD_EXTENSIONS case EbtFloat16: mangledName += "f16"; break; +#endif case EbtInt: mangledName += 'i'; break; case EbtUint: mangledName += 'u'; break; - case EbtInt8: mangledName += "i8"; break; - case EbtUint8: mangledName += "u8"; break; - case EbtInt16: mangledName += "i16"; break; - case EbtUint16: mangledName += "u16"; break; case EbtInt64: mangledName += "i64"; break; case EbtUint64: mangledName += "u64"; break; case EbtBool: mangledName += 'b'; break; case EbtAtomicUint: mangledName += "au"; break; case EbtSampler: switch (sampler.type) { -#ifdef AMD_EXTENSIONS - case EbtFloat16: mangledName += "f16"; break; -#endif case EbtInt: mangledName += "i"; break; case EbtUint: mangledName += "u"; break; default: break; // some compilers want this @@ -105,32 +99,11 @@ void TType::buildMangledName(TString& mangledName) const case EsdSubpass: mangledName += "P"; break; default: break; // some compilers want this } - - if (sampler.hasReturnStruct()) { - // Name mangle for sampler return struct uses struct table index. - mangledName += "-tx-struct"; - - char text[16]; // plenty enough space for the small integers. - snprintf(text, sizeof(text), "%d-", sampler.structReturnIndex); - mangledName += text; - } else { - switch (sampler.getVectorSize()) { - case 1: mangledName += "1"; break; - case 2: mangledName += "2"; break; - case 3: mangledName += "3"; break; - case 4: break; // default to prior name mangle behavior - } - } - if (sampler.ms) mangledName += "M"; break; case EbtStruct: - case EbtBlock: - if (basicType == EbtStruct) - mangledName += "struct-"; - else - mangledName += "block-"; + mangledName += "struct-"; if (typeName) mangledName += *typeName; for (unsigned int i = 0; i < structure->size(); ++i) { @@ -322,9 +295,6 @@ TFunction::TFunction(const TFunction& copyOf) : TSymbol(copyOf) op = copyOf.op; defined = copyOf.defined; prototyped = copyOf.prototyped; - implicitThis = copyOf.implicitThis; - illegalImplicitThis = copyOf.illegalImplicitThis; - defaultParamCount = copyOf.defaultParamCount; } TFunction* TFunction::clone() const @@ -348,7 +318,6 @@ TSymbolTableLevel* TSymbolTableLevel::clone() const { TSymbolTableLevel *symTableLevel = new TSymbolTableLevel(); symTableLevel->anonId = anonId; - symTableLevel->thisLevel = thisLevel; std::vector containerCopied(anonId, false); tLevel::const_iterator iter; for (iter = level.begin(); iter != level.end(); ++iter) { diff --git a/deps/glslang-new/glslang/MachineIndependent/SymbolTable.h b/deps/glslang/glslang-old/glslang/MachineIndependent/SymbolTable.h similarity index 79% rename from deps/glslang-new/glslang/MachineIndependent/SymbolTable.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/SymbolTable.h index f928b7aedf..9f5a2e69f5 100644 --- a/deps/glslang-new/glslang/MachineIndependent/SymbolTable.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/SymbolTable.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _SYMBOL_TABLE_INCLUDED_ @@ -87,12 +87,6 @@ public: virtual const TString& getName() const { return *name; } virtual void changeName(const TString* newName) { name = newName; } - virtual void addPrefix(const char* prefix) - { - TString newName(prefix); - newName.append(*name); - changeName(NewPoolTString(newName.c_str())); - } virtual const TString& getMangledName() const { return getName(); } virtual TFunction* getAsFunction() { return 0; } virtual const TFunction* getAsFunction() const { return 0; } @@ -197,7 +191,6 @@ protected: struct TParameter { TString *name; TType* type; - TIntermTyped* defaultValue; void copyParam(const TParameter& param) { if (param.name) @@ -205,9 +198,7 @@ struct TParameter { else name = 0; type = param.type->clone(); - defaultValue = param.defaultValue; } - TBuiltInVariable getDeclaredBuiltIn() const { return type->getQualifier().declaredBuiltIn; } }; // @@ -218,82 +209,40 @@ public: explicit TFunction(TOperator o) : TSymbol(0), op(o), - defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0) { } + defined(false), prototyped(false) { } TFunction(const TString *name, const TType& retType, TOperator tOp = EOpNull) : TSymbol(name), mangledName(*name + '('), op(tOp), - defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0) - { - returnType.shallowCopy(retType); - declaredBuiltIn = retType.getQualifier().builtIn; - } - virtual TFunction* clone() const override; + defined(false), prototyped(false) { returnType.shallowCopy(retType); } + virtual TFunction* clone() const; virtual ~TFunction(); - virtual TFunction* getAsFunction() override { return this; } - virtual const TFunction* getAsFunction() const override { return this; } + virtual TFunction* getAsFunction() { return this; } + virtual const TFunction* getAsFunction() const { return this; } - // Install 'p' as the (non-'this') last parameter. - // Non-'this' parameters are reflected in both the list of parameters and the - // mangled name. virtual void addParameter(TParameter& p) { assert(writable); parameters.push_back(p); p.type->appendMangledName(mangledName); - - if (p.defaultValue != nullptr) - defaultParamCount++; } - // Install 'this' as the first parameter. - // 'this' is reflected in the list of parameters, but not the mangled name. - virtual void addThisParameter(TType& type, const char* name) - { - TParameter p = { NewPoolTString(name), new TType, nullptr }; - p.type->shallowCopy(type); - parameters.insert(parameters.begin(), p); - } - - virtual void addPrefix(const char* prefix) override - { - TSymbol::addPrefix(prefix); - mangledName.insert(0, prefix); - } - - virtual void removePrefix(const TString& prefix) - { - assert(mangledName.compare(0, prefix.size(), prefix) == 0); - mangledName.erase(0, prefix.size()); - } - - virtual const TString& getMangledName() const override { return mangledName; } - virtual const TType& getType() const override { return returnType; } - virtual TBuiltInVariable getDeclaredBuiltInType() const { return declaredBuiltIn; } - virtual TType& getWritableType() override { return returnType; } + virtual const TString& getMangledName() const { return mangledName; } + virtual const TType& getType() const { return returnType; } + virtual TType& getWritableType() { return returnType; } virtual void relateToOperator(TOperator o) { assert(writable); op = o; } virtual TOperator getBuiltInOp() const { return op; } virtual void setDefined() { assert(writable); defined = true; } virtual bool isDefined() const { return defined; } virtual void setPrototyped() { assert(writable); prototyped = true; } virtual bool isPrototyped() const { return prototyped; } - virtual void setImplicitThis() { assert(writable); implicitThis = true; } - virtual bool hasImplicitThis() const { return implicitThis; } - virtual void setIllegalImplicitThis() { assert(writable); illegalImplicitThis = true; } - virtual bool hasIllegalImplicitThis() const { return illegalImplicitThis; } - // Return total number of parameters virtual int getParamCount() const { return static_cast(parameters.size()); } - // Return number of parameters with default values. - virtual int getDefaultParamCount() const { return defaultParamCount; } - // Return number of fixed parameters (without default values) - virtual int getFixedParamCount() const { return getParamCount() - getDefaultParamCount(); } - virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; } virtual const TParameter& operator[](int i) const { return parameters[i]; } - virtual void dump(TInfoSink &infoSink) const override; + virtual void dump(TInfoSink &infoSink) const; protected: explicit TFunction(const TFunction&); @@ -302,18 +251,10 @@ protected: typedef TVector TParamList; TParamList parameters; TType returnType; - TBuiltInVariable declaredBuiltIn; - TString mangledName; TOperator op; bool defined; bool prototyped; - bool implicitThis; // True if this function is allowed to see all members of 'this' - bool illegalImplicitThis; // True if this function is not supposed to have access to dynamic members of 'this', - // even if it finds member variables in the symbol table. - // This is important for a static member function that has member variables in scope, - // but is not allowed to use them, or see hidden symbols instead. - int defaultParamCount; }; // @@ -360,7 +301,7 @@ protected: class TSymbolTableLevel { public: POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TSymbolTableLevel() : defaultPrecision(0), anonId(0), thisLevel(false) { } + TSymbolTableLevel() : defaultPrecision(0), anonId(0) { } ~TSymbolTableLevel(); bool insert(TSymbol& symbol, bool separateNameSpaces) @@ -518,9 +459,6 @@ public: TSymbolTableLevel* clone() const; void readOnly(); - void setThisLevel() { thisLevel = true; } - bool isThisLevel() const { return thisLevel; } - protected: explicit TSymbolTableLevel(TSymbolTableLevel&); TSymbolTableLevel& operator=(TSymbolTableLevel&); @@ -532,8 +470,6 @@ protected: tLevel level; // named mappings TPrecisionQualifier *defaultPrecision; int anonId; - bool thisLevel; // True if this level of the symbol table is a structure scope containing member function - // that are supposed to see anonymous access to member variables. }; class TSymbolTable { @@ -590,20 +526,6 @@ public: table.push_back(new TSymbolTableLevel); } - // Make a new symbol-table level to represent the scope introduced by a structure - // containing member functions, such that the member functions can find anonymous - // references to member variables. - // - // 'thisSymbol' should have a name of "" to trigger anonymous structure-member - // symbol finds. - void pushThis(TSymbol& thisSymbol) - { - assert(thisSymbol.getName().size() == 0); - table.push_back(new TSymbolTableLevel); - table.back()->setThisLevel(); - insert(thisSymbol); - } - void pop(TPrecisionQualifier *p) { table[currentLevel()]->getPreviousDefaultPrecisions(p); @@ -690,50 +612,19 @@ public: } } - // Normal find of a symbol, that can optionally say whether the symbol was found - // at a built-in level or the current top-scope level. - TSymbol* find(const TString& name, bool* builtIn = 0, bool* currentScope = 0, int* thisDepthP = 0) + TSymbol* find(const TString& name, bool* builtIn = 0, bool *currentScope = 0) { int level = currentLevel(); TSymbol* symbol; - int thisDepth = 0; do { - if (table[level]->isThisLevel()) - ++thisDepth; symbol = table[level]->find(name); --level; - } while (symbol == nullptr && level >= 0); + } while (symbol == 0 && level >= 0); level++; if (builtIn) *builtIn = isBuiltInLevel(level); if (currentScope) *currentScope = isGlobalLevel(currentLevel()) || level == currentLevel(); // consider shared levels as "current scope" WRT user globals - if (thisDepthP != nullptr) { - if (! table[level]->isThisLevel()) - thisDepth = 0; - *thisDepthP = thisDepth; - } - - return symbol; - } - - // Find of a symbol that returns how many layers deep of nested - // structures-with-member-functions ('this' scopes) deep the symbol was - // found in. - TSymbol* find(const TString& name, int& thisDepth) - { - int level = currentLevel(); - TSymbol* symbol; - thisDepth = 0; - do { - if (table[level]->isThisLevel()) - ++thisDepth; - symbol = table[level]->find(name); - --level; - } while (symbol == 0 && level >= 0); - - if (! table[level + 1]->isThisLevel()) - thisDepth = 0; return symbol; } diff --git a/deps/glslang-new/glslang/MachineIndependent/Versions.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/Versions.cpp old mode 100755 new mode 100644 similarity index 67% rename from deps/glslang-new/glslang/MachineIndependent/Versions.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/Versions.cpp index 51b6430853..8a29cb37f4 --- a/deps/glslang-new/glslang/MachineIndependent/Versions.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Versions.cpp @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,24 +20,24 @@ // 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 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. // // // Help manage multiple profiles, versions, extensions etc. // -// These don't return error codes, as the presumption is parsing will +// These don't return error codes, as the presumption is parsing will // always continue as if the tested feature were enabled, and thus there // is no error recovery needed. // @@ -48,25 +47,25 @@ // // To add a new hypothetical "Feature F" to the front end, where an extension // "XXX_extension_X" can be used to enable the feature, do the following. -// +// // OVERVIEW: Specific features are what are error-checked for, not -// extensions: A specific Feature F might be enabled by an extension, or a +// extensions: A specific Feature F might be enabled by an extension, or a // particular version in a particular profile, or a stage, or combinations, etc. -// -// The basic mechanism is to use the following to "declare" all the things that +// +// The basic mechanism is to use the following to "declare" all the things that // enable/disable Feature F, in a code path that implements Feature F: -// +// // requireProfile() // profileRequires() // requireStage() // checkDeprecated() // requireNotRemoved() // requireExtensions() -// -// Typically, only the first two calls are needed. They go into a code path that -// implements Feature F, and will log the proper error/warning messages. Parsing +// +// Typically, only the first two calls are needed. They go into a code path that +// implements Feature F, and will log the proper error/warning messages. Parsing // will then always continue as if the tested feature was enabled. -// +// // There is typically no if-testing or conditional parsing, just insertion of the calls above. // However, if symbols specific to the extension are added (step 5), they will // only be added under tests that the minimum version and profile are present. @@ -74,10 +73,10 @@ // 1) Add a symbol name for the extension string at the bottom of Versions.h: // // const char* const XXX_extension_X = "XXX_extension_X"; -// +// // 2) Add extension initialization to TParseVersions::initializeExtensionBehavior(), // the first function below: -// +// // extensionBehavior[XXX_extension_X] = EBhDisable; // // 3) Add any preprocessor directives etc. in the next function, TParseVersions::getPreamble(): @@ -85,50 +84,50 @@ // "#define XXX_extension_X 1\n" // // The new-line is important, as that ends preprocess tokens. -// +// // 4) Insert a profile check in the feature's path (unless all profiles support the feature, // for some version level). That is, call requireProfile() to constrain the profiles, e.g.: -// +// // // ... in a path specific to Feature F... // requireProfile(loc, // ECoreProfile | ECompatibilityProfile, // "Feature F"); -// +// // 5) For each profile that supports the feature, insert version/extension checks: -// +// // The mostly likely scenario is that Feature F can only be used with a // particular profile if XXX_extension_X is present or the version is // high enough that the core specification already incorporated it. -// +// // // following the requireProfile() call... -// profileRequires(loc, +// profileRequires(loc, // ECoreProfile | ECompatibilityProfile, // 420, // 0 if no version incorporated the feature into the core spec. // XXX_extension_X, // can be a list of extensions that all add the feature // "Feature F Description"); -// +// // This allows the feature if either A) one of the extensions is enabled or // B) the version is high enough. If no version yet incorporates the feature // into core, pass in 0. -// +// // This can be called multiple times, if different profiles support the -// feature starting at different version numbers or with different +// feature starting at different version numbers or with different // extensions. -// +// // This must be called for each profile allowed by the initial call to requireProfile(). -// +// // Profiles are all masks, which can be "or"-ed together. -// +// // ENoProfile // ECoreProfile // ECompatibilityProfile // EEsProfile -// +// // The ENoProfile profile is only for desktop, before profiles showed up in version 150; // All other #version with no profile default to either es or core, and so have profiles. -// +// // You can select all but a particular profile using ~. The following basically means "desktop": -// +// // ~EEsProfile // // 6) If built-in symbols are added by the extension, add them in Initialize.cpp: Their use @@ -155,9 +154,8 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_OES_standard_derivatives] = EBhDisable; extensionBehavior[E_GL_EXT_frag_depth] = EBhDisable; extensionBehavior[E_GL_OES_EGL_image_external] = EBhDisable; - extensionBehavior[E_GL_OES_EGL_image_external_essl3] = EBhDisable; extensionBehavior[E_GL_EXT_shader_texture_lod] = EBhDisable; - extensionBehavior[E_GL_EXT_shadow_samplers] = EBhDisable; + extensionBehavior[E_GL_ARB_texture_rectangle] = EBhDisable; extensionBehavior[E_GL_3DL_array_objects] = EBhDisable; extensionBehavior[E_GL_ARB_shading_language_420pack] = EBhDisable; @@ -181,25 +179,9 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_ARB_shader_ballot] = EBhDisable; extensionBehavior[E_GL_ARB_sparse_texture2] = EBhDisable; extensionBehavior[E_GL_ARB_sparse_texture_clamp] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_stencil_export] = EBhDisable; // extensionBehavior[E_GL_ARB_cull_distance] = EBhDisable; // present for 4.5, but need extension control over block members - extensionBehavior[E_GL_ARB_post_depth_coverage] = EBhDisable; - extensionBehavior[E_GL_ARB_shader_viewport_layer_array] = EBhDisable; - - extensionBehavior[E_GL_KHR_shader_subgroup_basic] = EBhDisable; - extensionBehavior[E_GL_KHR_shader_subgroup_vote] = EBhDisable; - extensionBehavior[E_GL_KHR_shader_subgroup_arithmetic] = EBhDisable; - extensionBehavior[E_GL_KHR_shader_subgroup_ballot] = EBhDisable; - extensionBehavior[E_GL_KHR_shader_subgroup_shuffle] = EBhDisable; - extensionBehavior[E_GL_KHR_shader_subgroup_shuffle_relative] = EBhDisable; - extensionBehavior[E_GL_KHR_shader_subgroup_clustered] = EBhDisable; - extensionBehavior[E_GL_KHR_shader_subgroup_quad] = EBhDisable; extensionBehavior[E_GL_EXT_shader_non_constant_global_initializers] = EBhDisable; - extensionBehavior[E_GL_EXT_shader_image_load_formatted] = EBhDisable; - extensionBehavior[E_GL_EXT_post_depth_coverage] = EBhDisable; - extensionBehavior[E_GL_EXT_control_flow_attributes] = EBhDisable; - extensionBehavior[E_GL_EXT_nonuniform_qualifier] = EBhDisable; // #line and #include extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable; @@ -211,23 +193,6 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_AMD_shader_explicit_vertex_parameter] = EBhDisable; extensionBehavior[E_GL_AMD_gcn_shader] = EBhDisable; extensionBehavior[E_GL_AMD_gpu_shader_half_float] = EBhDisable; - extensionBehavior[E_GL_AMD_texture_gather_bias_lod] = EBhDisable; - extensionBehavior[E_GL_AMD_gpu_shader_int16] = EBhDisable; - extensionBehavior[E_GL_AMD_shader_image_load_store_lod] = EBhDisable; - extensionBehavior[E_GL_AMD_shader_fragment_mask] = EBhDisable; - extensionBehavior[E_GL_AMD_gpu_shader_half_float_fetch] = EBhDisable; -#endif - -#ifdef NV_EXTENSIONS - extensionBehavior[E_GL_NV_sample_mask_override_coverage] = EBhDisable; - extensionBehavior[E_SPV_NV_geometry_shader_passthrough] = EBhDisable; - extensionBehavior[E_GL_NV_viewport_array2] = EBhDisable; - extensionBehavior[E_GL_NV_stereo_view_rendering] = EBhDisable; - extensionBehavior[E_GL_NVX_multiview_per_view_attributes] = EBhDisable; - extensionBehavior[E_GL_NV_shader_atomic_int64] = EBhDisable; - extensionBehavior[E_GL_NV_conservative_raster_underestimation] = EBhDisable; - extensionBehavior[E_GL_NV_shader_noperspective_interpolation] = EBhDisable; - extensionBehavior[E_GL_NV_shader_subgroup_partitioned] = EBhDisable; #endif // AEP @@ -257,24 +222,6 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_OES_tessellation_point_size] = EBhDisable; extensionBehavior[E_GL_OES_texture_buffer] = EBhDisable; extensionBehavior[E_GL_OES_texture_cube_map_array] = EBhDisable; - - // EXT extensions - extensionBehavior[E_GL_EXT_device_group] = EBhDisable; - extensionBehavior[E_GL_EXT_multiview] = EBhDisable; - - // OVR extensions - extensionBehavior[E_GL_OVR_multiview] = EBhDisable; - extensionBehavior[E_GL_OVR_multiview2] = EBhDisable; - - // explicit types - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types] = EBhDisable; - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int8] = EBhDisable; - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int16] = EBhDisable; - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int32] = EBhDisable; - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int64] = EBhDisable; - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_float16] = EBhDisable; - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_float32] = EBhDisable; - extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_float64] = EBhDisable; } // Get code that is not part of a shared symbol table, is specific to this shader, @@ -282,16 +229,14 @@ void TParseVersions::initializeExtensionBehavior() void TParseVersions::getPreamble(std::string& preamble) { if (profile == EEsProfile) { - preamble = + preamble = "#define GL_ES 1\n" "#define GL_FRAGMENT_PRECISION_HIGH 1\n" "#define GL_OES_texture_3D 1\n" "#define GL_OES_standard_derivatives 1\n" "#define GL_EXT_frag_depth 1\n" "#define GL_OES_EGL_image_external 1\n" - "#define GL_OES_EGL_image_external_essl3 1\n" "#define GL_EXT_shader_texture_lod 1\n" - "#define GL_EXT_shadow_samplers 1\n" // AEP "#define GL_ANDROID_extension_pack_es31a 1\n" @@ -322,15 +267,8 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_OES_texture_cube_map_array 1\n" "#define GL_EXT_shader_non_constant_global_initializers 1\n" ; - -#ifdef NV_EXTENSIONS - if (profile == EEsProfile && version >= 300) { - preamble += "#define GL_NV_shader_noperspective_interpolation 1\n"; - } -#endif - } else { - preamble = + preamble = "#define GL_FRAGMENT_PRECISION_HIGH 1\n" "#define GL_ARB_texture_rectangle 1\n" "#define GL_ARB_shading_language_420pack 1\n" @@ -354,24 +292,8 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_ARB_shader_ballot 1\n" "#define GL_ARB_sparse_texture2 1\n" "#define GL_ARB_sparse_texture_clamp 1\n" - "#define GL_ARB_shader_stencil_export 1\n" // "#define GL_ARB_cull_distance 1\n" // present for 4.5, but need extension control over block members - "#define GL_ARB_post_depth_coverage 1\n" "#define GL_EXT_shader_non_constant_global_initializers 1\n" - "#define GL_EXT_shader_image_load_formatted 1\n" - "#define GL_EXT_post_depth_coverage 1\n" - "#define GL_EXT_control_flow_attributes 1\n" - "#define GL_EXT_nonuniform_qualifier 1\n" - - // GL_KHR_shader_subgroup - "#define GL_KHR_shader_subgroup_basic 1\n" - "#define GL_KHR_shader_subgroup_vote 1\n" - "#define GL_KHR_shader_subgroup_arithmetic 1\n" - "#define GL_KHR_shader_subgroup_ballot 1\n" - "#define GL_KHR_shader_subgroup_shuffle 1\n" - "#define GL_KHR_shader_subgroup_shuffle_relative 1\n" - "#define GL_KHR_shader_subgroup_clustered 1\n" - "#define GL_KHR_shader_subgroup_quad 1\n" #ifdef AMD_EXTENSIONS "#define GL_AMD_shader_ballot 1\n" @@ -379,57 +301,12 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_AMD_shader_explicit_vertex_parameter 1\n" "#define GL_AMD_gcn_shader 1\n" "#define GL_AMD_gpu_shader_half_float 1\n" - "#define GL_AMD_texture_gather_bias_lod 1\n" - "#define GL_AMD_gpu_shader_int16 1\n" - "#define GL_AMD_shader_image_load_store_lod 1\n" - "#define GL_AMD_shader_fragment_mask 1\n" - "#define GL_AMD_gpu_shader_half_float_fetch 1\n" #endif - -#ifdef NV_EXTENSIONS - "#define GL_NV_sample_mask_override_coverage 1\n" - "#define GL_NV_geometry_shader_passthrough 1\n" - "#define GL_NV_viewport_array2 1\n" - "#define GL_NV_shader_atomic_int64 1\n" - "#define GL_NV_conservative_raster_underestimation 1\n" - "#define GL_NV_shader_subgroup_partitioned 1\n" -#endif - "#define GL_KHX_shader_explicit_arithmetic_types 1\n" - "#define GL_KHX_shader_explicit_arithmetic_types_int8 1\n" - "#define GL_KHX_shader_explicit_arithmetic_types_int16 1\n" - "#define GL_KHX_shader_explicit_arithmetic_types_int32 1\n" - "#define GL_KHX_shader_explicit_arithmetic_types_int64 1\n" - "#define GL_KHX_shader_explicit_arithmetic_types_float16 1\n" - "#define GL_KHX_shader_explicit_arithmetic_types_float32 1\n" - "#define GL_KHX_shader_explicit_arithmetic_types_float64 1\n" - ; - - if (version >= 150) { - // define GL_core_profile and GL_compatibility_profile - preamble += "#define GL_core_profile 1\n"; - - if (profile == ECompatibilityProfile) - preamble += "#define GL_compatibility_profile 1\n"; - } - } - - if ((profile != EEsProfile && version >= 140) || - (profile == EEsProfile && version >= 310)) { - preamble += - "#define GL_EXT_device_group 1\n" - "#define GL_EXT_multiview 1\n" - ; - } - - if (version >= 300 /* both ES and non-ES */) { - preamble += - "#define GL_OVR_multiview 1\n" - "#define GL_OVR_multiview2 1\n" ; } // #line and #include - preamble += + preamble += "#define GL_GOOGLE_cpp_style_line_directive 1\n" "#define GL_GOOGLE_include_directive 1\n" ; @@ -437,9 +314,9 @@ void TParseVersions::getPreamble(std::string& preamble) // #define VULKAN XXXX const int numberBufSize = 12; char numberBuf[numberBufSize]; - if (spvVersion.vulkanGlsl > 0) { + if (spvVersion.vulkan > 0) { preamble += "#define VULKAN "; - snprintf(numberBuf, numberBufSize, "%d", spvVersion.vulkanGlsl); + snprintf(numberBuf, numberBufSize, "%d", spvVersion.vulkan); preamble += numberBuf; preamble += "\n"; } @@ -456,7 +333,7 @@ void TParseVersions::getPreamble(std::string& preamble) // // When to use requireProfile(): // -// Use if only some profiles support a feature. However, if within a profile the feature +// Use if only some profiles support a feature. However, if within a profile the feature // is version or extension specific, follow this call with calls to profileRequires(). // // Operation: If the current profile is not one of the profileMask, @@ -471,7 +348,7 @@ void TParseVersions::requireProfile(const TSourceLoc& loc, int profileMask, cons // // Map from stage enum to externally readable text name. // -const char* StageName(EShLanguage stage) +const char* StageName(EShLanguage stage) { switch(stage) { case EShLangVertex: return "vertex"; @@ -496,7 +373,7 @@ const char* StageName(EShLanguage stage) // Operation: Will issue warnings/errors based on the current profile, version, and extension // behaviors. It only checks extensions when the current profile is one of the profileMask. // -// A minVersion of 0 means no version of the profileMask support this in core, +// A minVersion of 0 means no version of the profileMask support this in core, // the extension must be present. // @@ -534,7 +411,7 @@ void TParseVersions::profileRequires(const TSourceLoc& loc, int profileMask, int // // When to use requireStage() // -// If only some stages support a feature. +// If only some stages support a feature. // // Operation: If the current stage is not present, give an error message. // @@ -584,11 +461,6 @@ void TParseVersions::requireNotRemoved(const TSourceLoc& loc, int profileMask, i } } -void TParseVersions::unimplemented(const TSourceLoc& loc, const char* featureDesc) -{ - error(loc, "feature not yet implemented", featureDesc, ""); -} - // Returns true if at least one of the extensions in the extensions parameter is requested. Otherwise, returns false. // Warns appropriately if the requested behavior of an extension is "warn". bool TParseVersions::checkExtensionsRequested(const TSourceLoc& loc, int numExtensions, const char* const extensions[], const char* featureDesc) @@ -624,8 +496,7 @@ bool TParseVersions::checkExtensionsRequested(const TSourceLoc& loc, int numExte // void TParseVersions::requireExtensions(const TSourceLoc& loc, int numExtensions, const char* const extensions[], const char* featureDesc) { - if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) - return; + if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) return; // If we get this far, give errors explaining what extensions are needed if (numExtensions == 1) @@ -643,8 +514,7 @@ void TParseVersions::requireExtensions(const TSourceLoc& loc, int numExtensions, // void TParseVersions::ppRequireExtensions(const TSourceLoc& loc, int numExtensions, const char* const extensions[], const char* featureDesc) { - if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) - return; + if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) return; // If we get this far, give errors explaining what extensions are needed if (numExtensions == 1) @@ -682,8 +552,7 @@ bool TParseVersions::extensionTurnedOn(const char* const extension) bool TParseVersions::extensionsTurnedOn(int numExtensions, const char* const extensions[]) { for (int i = 0; i < numExtensions; ++i) { - if (extensionTurnedOn(extensions[i])) - return true; + if (extensionTurnedOn(extensions[i])) return true; } return false; } @@ -739,25 +608,6 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co updateExtensionBehavior(line, "GL_OES_shader_io_blocks", behaviorString); else if (strcmp(extension, "GL_GOOGLE_include_directive") == 0) updateExtensionBehavior(line, "GL_GOOGLE_cpp_style_line_directive", behaviorString); - // subgroup_* to subgroup_basic - else if (strcmp(extension, "GL_KHR_shader_subgroup_vote") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); - else if (strcmp(extension, "GL_KHR_shader_subgroup_arithmetic") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); - else if (strcmp(extension, "GL_KHR_shader_subgroup_ballot") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); - else if (strcmp(extension, "GL_KHR_shader_subgroup_shuffle") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); - else if (strcmp(extension, "GL_KHR_shader_subgroup_shuffle_relative") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); - else if (strcmp(extension, "GL_KHR_shader_subgroup_clustered") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); - else if (strcmp(extension, "GL_KHR_shader_subgroup_quad") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); -#ifdef NV_EXTENSIONS - else if (strcmp(extension, "GL_NV_shader_subgroup_partitioned") == 0) - updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); -#endif } void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBehavior behavior) @@ -803,7 +653,7 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe // Call for any operation needing full GLSL integer data-type support. void TParseVersions::fullIntegerCheck(const TSourceLoc& loc, const char* op) { - profileRequires(loc, ENoProfile, 130, nullptr, op); + profileRequires(loc, ENoProfile, 130, nullptr, op); profileRequires(loc, EEsProfile, 300, nullptr, op); } @@ -815,71 +665,12 @@ void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op) profileRequires(loc, ECompatibilityProfile, 400, nullptr, op); } +#ifdef AMD_EXTENSIONS // Call for any operation needing GLSL float16 data-type support. void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool builtIn) { if (!builtIn) { -#if AMD_EXTENSIONS - const char* const extensions[3] = {E_GL_AMD_gpu_shader_half_float, - E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_float16}; - -#else - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_float16}; -#endif - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); - } -} - -// Call for any operation needing GLSL float32 data-type support. -void TParseVersions::explicitFloat32Check(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (!builtIn) { - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_float32}; - requireExtensions(loc, 2, extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); - } -} - -// Call for any operation needing GLSL float64 data-type support. -void TParseVersions::explicitFloat64Check(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (!builtIn) { - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_float64}; - requireExtensions(loc, 2, extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); - } -} - -// Call for any operation needing GLSL explicit int8 data-type support. -void TParseVersions::explicitInt8Check(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (! builtIn) { - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int8}; - requireExtensions(loc, 2, extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); - } -} - -#ifdef AMD_EXTENSIONS -// Call for any operation needing GLSL float16 opaque-type support -void TParseVersions::float16OpaqueCheck(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (! builtIn) { - requireExtensions(loc, 1, &E_GL_AMD_gpu_shader_half_float_fetch, op); + requireExtensions(loc, 1, &E_GL_AMD_gpu_shader_half_float, "shader half float"); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); profileRequires(loc, ECoreProfile, 450, nullptr, op); profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); @@ -887,46 +678,11 @@ void TParseVersions::float16OpaqueCheck(const TSourceLoc& loc, const char* op, b } #endif -// Call for any operation needing GLSL explicit int16 data-type support. -void TParseVersions::explicitInt16Check(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (! builtIn) { -#if AMD_EXTENSIONS - const char* const extensions[3] = {E_GL_AMD_gpu_shader_int16, - E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int16}; -#else - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int16}; -#endif - requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); - } -} - -// Call for any operation needing GLSL explicit int32 data-type support. -void TParseVersions::explicitInt32Check(const TSourceLoc& loc, const char* op, bool builtIn) -{ - if (! builtIn) { - const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int32}; - requireExtensions(loc, 2, extensions, "explicit types"); - requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); - profileRequires(loc, ECoreProfile, 450, nullptr, op); - profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); - } -} - // Call for any operation needing GLSL 64-bit integer data-type support. void TParseVersions::int64Check(const TSourceLoc& loc, const char* op, bool builtIn) { if (! builtIn) { - const char* const extensions[3] = {E_GL_ARB_gpu_shader_int64, - E_GL_KHX_shader_explicit_arithmetic_types, - E_GL_KHX_shader_explicit_arithmetic_types_int64}; - requireExtensions(loc, 3, extensions, "shader int64"); + requireExtensions(loc, 1, &E_GL_ARB_gpu_shader_int64, "shader int64"); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); profileRequires(loc, ECoreProfile, 450, nullptr, op); profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); @@ -943,7 +699,7 @@ void TParseVersions::spvRemoved(const TSourceLoc& loc, const char* op) // Call for any operation removed because Vulkan SPIR-V is being generated. void TParseVersions::vulkanRemoved(const TSourceLoc& loc, const char* op) { - if (spvVersion.vulkan > 0) + if (spvVersion.vulkan >= 100) error(loc, "not allowed when using GLSL for Vulkan", op, ""); } diff --git a/deps/glslang-new/glslang/MachineIndependent/Versions.h b/deps/glslang/glslang-old/glslang/MachineIndependent/Versions.h old mode 100755 new mode 100644 similarity index 57% rename from deps/glslang-new/glslang/MachineIndependent/Versions.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/Versions.h index b297d27b5c..17baf3b1a3 --- a/deps/glslang-new/glslang/MachineIndependent/Versions.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/Versions.h @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _VERSIONS_INCLUDED_ #define _VERSIONS_INCLUDED_ @@ -73,19 +72,14 @@ inline const char* ProfileName(EProfile profile) } // -// What source rules, validation rules, target language, etc. are needed -// desired for SPIR-V? -// -// 0 means a target or rule set is not enabled (ignore rules from that entity). -// Non-0 means to apply semantic rules arising from that version of its rule set. -// The union of all requested rule sets will be applied. +// SPIR-V has versions for multiple things; tie them together. +// 0 means a target or rule set is not enabled. // struct SpvVersion { - SpvVersion() : spv(0), vulkanGlsl(0), vulkan(0), openGl(0) {} - unsigned int spv; // the version of SPIR-V to target, as defined by "word 1" of the SPIR-V binary header - int vulkanGlsl; // the version of GLSL semantics for Vulkan, from GL_KHR_vulkan_glsl, for "#define VULKAN XXX" - int vulkan; // the version of Vulkan, for which SPIR-V execution environment rules to use - int openGl; // the version of GLSL semantics for OpenGL, from GL_ARB_gl_spirv, for "#define GL_SPIRV XXX" + SpvVersion() : spv(0), vulkan(0), openGl(0) {} + unsigned int spv; // the version of the targeted SPIR-V, as defined by SPIR-V in word 1 of the SPIR-V binary header + int vulkan; // the version of semantics for Vulkan; e.g., for GLSL from KHR_vulkan_glsl "#define VULKAN" + int openGl; // the version of semantics for OpenGL; e.g., for GLSL from KHR_vulkan_glsl "#define GL_SPIRV" }; // @@ -108,9 +102,7 @@ const char* const E_GL_OES_texture_3D = "GL_OES_texture_3D"; const char* const E_GL_OES_standard_derivatives = "GL_OES_standard_derivatives"; const char* const E_GL_EXT_frag_depth = "GL_EXT_frag_depth"; const char* const E_GL_OES_EGL_image_external = "GL_OES_EGL_image_external"; -const char* const E_GL_OES_EGL_image_external_essl3 = "GL_OES_EGL_image_external_essl3"; const char* const E_GL_EXT_shader_texture_lod = "GL_EXT_shader_texture_lod"; -const char* const E_GL_EXT_shadow_samplers = "GL_EXT_shadow_samplers"; const char* const E_GL_ARB_texture_rectangle = "GL_ARB_texture_rectangle"; const char* const E_GL_3DL_array_objects = "GL_3DL_array_objects"; @@ -135,41 +127,9 @@ const char* const E_GL_ARB_gpu_shader_int64 = "GL_ARB_gpu_shader_int const char* const E_GL_ARB_shader_ballot = "GL_ARB_shader_ballot"; const char* const E_GL_ARB_sparse_texture2 = "GL_ARB_sparse_texture2"; const char* const E_GL_ARB_sparse_texture_clamp = "GL_ARB_sparse_texture_clamp"; -const char* const E_GL_ARB_shader_stencil_export = "GL_ARB_shader_stencil_export"; -// const char* const E_GL_ARB_cull_distance = "GL_ARB_cull_distance"; // present for 4.5, but need extension control over block members -const char* const E_GL_ARB_post_depth_coverage = "GL_ARB_post_depth_coverage"; -const char* const E_GL_ARB_shader_viewport_layer_array = "GL_ARB_shader_viewport_layer_array"; - -const char* const E_GL_KHR_shader_subgroup_basic = "GL_KHR_shader_subgroup_basic"; -const char* const E_GL_KHR_shader_subgroup_vote = "GL_KHR_shader_subgroup_vote"; -const char* const E_GL_KHR_shader_subgroup_arithmetic = "GL_KHR_shader_subgroup_arithmetic"; -const char* const E_GL_KHR_shader_subgroup_ballot = "GL_KHR_shader_subgroup_ballot"; -const char* const E_GL_KHR_shader_subgroup_shuffle = "GL_KHR_shader_subgroup_shuffle"; -const char* const E_GL_KHR_shader_subgroup_shuffle_relative = "GL_KHR_shader_subgroup_shuffle_relative"; -const char* const E_GL_KHR_shader_subgroup_clustered = "GL_KHR_shader_subgroup_clustered"; -const char* const E_GL_KHR_shader_subgroup_quad = "GL_KHR_shader_subgroup_quad"; +//const char* const E_GL_ARB_cull_distance = "GL_ARB_cull_distance"; // present for 4.5, but need extension control over block members const char* const E_GL_EXT_shader_non_constant_global_initializers = "GL_EXT_shader_non_constant_global_initializers"; -const char* const E_GL_EXT_shader_image_load_formatted = "GL_EXT_shader_image_load_formatted"; - -// EXT extensions -const char* const E_GL_EXT_device_group = "GL_EXT_device_group"; -const char* const E_GL_EXT_multiview = "GL_EXT_multiview"; -const char* const E_GL_EXT_post_depth_coverage = "GL_EXT_post_depth_coverage"; -const char* const E_GL_EXT_control_flow_attributes = "GL_EXT_control_flow_attributes"; -const char* const E_GL_EXT_nonuniform_qualifier = "GL_EXT_nonuniform_qualifier"; - -// Arrays of extensions for the above viewportEXTs duplications - -const char* const post_depth_coverageEXTs[] = { E_GL_ARB_post_depth_coverage, E_GL_EXT_post_depth_coverage }; -const int Num_post_depth_coverageEXTs = sizeof(post_depth_coverageEXTs) / sizeof(post_depth_coverageEXTs[0]); - -// OVR extensions -const char* const E_GL_OVR_multiview = "GL_OVR_multiview"; -const char* const E_GL_OVR_multiview2 = "GL_OVR_multiview2"; - -const char* const OVR_multiview_EXTs[] = { E_GL_OVR_multiview, E_GL_OVR_multiview2 }; -const int Num_OVR_multiview_EXTs = sizeof(OVR_multiview_EXTs) / sizeof(OVR_multiview_EXTs[0]); // #line and #include const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp_style_line_directive"; @@ -181,29 +141,6 @@ const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; const char* const E_GL_AMD_gpu_shader_half_float = "GL_AMD_gpu_shader_half_float"; -const char* const E_GL_AMD_texture_gather_bias_lod = "GL_AMD_texture_gather_bias_lod"; -const char* const E_GL_AMD_gpu_shader_int16 = "GL_AMD_gpu_shader_int16"; -const char* const E_GL_AMD_shader_image_load_store_lod = "GL_AMD_shader_image_load_store_lod"; -const char* const E_GL_AMD_shader_fragment_mask = "GL_AMD_shader_fragment_mask"; -const char* const E_GL_AMD_gpu_shader_half_float_fetch = "GL_AMD_gpu_shader_half_float_fetch"; -#endif - -#ifdef NV_EXTENSIONS - -const char* const E_GL_NV_sample_mask_override_coverage = "GL_NV_sample_mask_override_coverage"; -const char* const E_SPV_NV_geometry_shader_passthrough = "GL_NV_geometry_shader_passthrough"; -const char* const E_GL_NV_viewport_array2 = "GL_NV_viewport_array2"; -const char* const E_GL_NV_stereo_view_rendering = "GL_NV_stereo_view_rendering"; -const char* const E_GL_NVX_multiview_per_view_attributes = "GL_NVX_multiview_per_view_attributes"; -const char* const E_GL_NV_shader_atomic_int64 = "GL_NV_shader_atomic_int64"; -const char* const E_GL_NV_conservative_raster_underestimation = "GL_NV_conservative_raster_underestimation"; -const char* const E_GL_NV_shader_noperspective_interpolation = "GL_NV_shader_noperspective_interpolation"; -const char* const E_GL_NV_shader_subgroup_partitioned = "GL_NV_shader_subgroup_partitioned"; - -// Arrays of extensions for the above viewportEXTs duplications - -const char* const viewportEXTs[] = { E_GL_ARB_shader_viewport_layer_array, E_GL_NV_viewport_array2 }; -const int Num_viewportEXTs = sizeof(viewportEXTs) / sizeof(viewportEXTs[0]); #endif // AEP @@ -234,16 +171,6 @@ const char* const E_GL_OES_tessellation_point_size = "GL_OES_tessel const char* const E_GL_OES_texture_buffer = "GL_OES_texture_buffer"; const char* const E_GL_OES_texture_cube_map_array = "GL_OES_texture_cube_map_array"; -// KHX -const char* const E_GL_KHX_shader_explicit_arithmetic_types = "GL_KHX_shader_explicit_arithmetic_types"; -const char* const E_GL_KHX_shader_explicit_arithmetic_types_int8 = "GL_KHX_shader_explicit_arithmetic_types_int8"; -const char* const E_GL_KHX_shader_explicit_arithmetic_types_int16 = "GL_KHX_shader_explicit_arithmetic_types_int16"; -const char* const E_GL_KHX_shader_explicit_arithmetic_types_int32 = "GL_KHX_shader_explicit_arithmetic_types_int32"; -const char* const E_GL_KHX_shader_explicit_arithmetic_types_int64 = "GL_KHX_shader_explicit_arithmetic_types_int64"; -const char* const E_GL_KHX_shader_explicit_arithmetic_types_float16 = "GL_KHX_shader_explicit_arithmetic_types_float16"; -const char* const E_GL_KHX_shader_explicit_arithmetic_types_float32 = "GL_KHX_shader_explicit_arithmetic_types_float32"; -const char* const E_GL_KHX_shader_explicit_arithmetic_types_float64 = "GL_KHX_shader_explicit_arithmetic_types_float64"; - // Arrays of extensions for the above AEP duplications const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader }; diff --git a/deps/glslang-new/glslang/MachineIndependent/gl_types.h b/deps/glslang/glslang-old/glslang/MachineIndependent/gl_types.h similarity index 81% rename from deps/glslang-new/glslang/MachineIndependent/gl_types.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/gl_types.h index c9fee9ecce..d7cb31fe38 100644 --- a/deps/glslang-new/glslang/MachineIndependent/gl_types.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/gl_types.h @@ -21,8 +21,6 @@ ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ -#pragma once - #define GL_FLOAT 0x1406 #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 @@ -117,40 +115,6 @@ #define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#ifdef AMD_EXTENSIONS -#define GL_FLOAT16_SAMPLER_1D_AMD 0x91CE -#define GL_FLOAT16_SAMPLER_2D_AMD 0x91CF -#define GL_FLOAT16_SAMPLER_3D_AMD 0x91D0 -#define GL_FLOAT16_SAMPLER_CUBE_AMD 0x91D1 -#define GL_FLOAT16_SAMPLER_2D_RECT_AMD 0x91D2 -#define GL_FLOAT16_SAMPLER_1D_ARRAY_AMD 0x91D3 -#define GL_FLOAT16_SAMPLER_2D_ARRAY_AMD 0x91D4 -#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD 0x91D5 -#define GL_FLOAT16_SAMPLER_BUFFER_AMD 0x91D6 -#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD 0x91D7 -#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD 0x91D8 - -#define GL_FLOAT16_SAMPLER_1D_SHADOW_AMD 0x91D9 -#define GL_FLOAT16_SAMPLER_2D_SHADOW_AMD 0x91DA -#define GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD 0x91DB -#define GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD 0x91DC -#define GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD 0x91DD -#define GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD 0x91DE -#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD 0x91DF - -#define GL_FLOAT16_IMAGE_1D_AMD 0x91E0 -#define GL_FLOAT16_IMAGE_2D_AMD 0x91E1 -#define GL_FLOAT16_IMAGE_3D_AMD 0x91E2 -#define GL_FLOAT16_IMAGE_2D_RECT_AMD 0x91E3 -#define GL_FLOAT16_IMAGE_CUBE_AMD 0x91E4 -#define GL_FLOAT16_IMAGE_1D_ARRAY_AMD 0x91E5 -#define GL_FLOAT16_IMAGE_2D_ARRAY_AMD 0x91E6 -#define GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD 0x91E7 -#define GL_FLOAT16_IMAGE_BUFFER_AMD 0x91E8 -#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD 0x91E9 -#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD 0x91EA -#endif - #define GL_INT_SAMPLER_1D 0x8DC9 #define GL_INT_SAMPLER_2D 0x8DCA #define GL_INT_SAMPLER_3D 0x8DCB diff --git a/deps/glslang-new/glslang/MachineIndependent/glslang.y b/deps/glslang/glslang-old/glslang/MachineIndependent/glslang.y similarity index 72% rename from deps/glslang-new/glslang/MachineIndependent/glslang.y rename to deps/glslang/glslang-old/glslang/MachineIndependent/glslang.y index e65483a82e..060ffdd6fa 100644 --- a/deps/glslang-new/glslang/MachineIndependent/glslang.y +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/glslang.y @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // /** @@ -59,14 +58,11 @@ Jutta Degener, 1995 #include "SymbolTable.h" #include "ParseHelper.h" #include "../Public/ShaderLang.h" -#include "attribute.h" using namespace glslang; %} -%define parse.error verbose - %union { struct { glslang::TSourceLoc loc; @@ -88,7 +84,6 @@ using namespace glslang; TIntermNode* intermNode; glslang::TIntermNodePair nodePair; glslang::TIntermTyped* intermTypedNode; - glslang::TAttributes* attributes; }; union { glslang::TPublicType type; @@ -124,28 +119,14 @@ extern int yylex(YYSTYPE*, TParseContext&); %expect 1 // One shift reduce conflict because of if | else %token ATTRIBUTE VARYING -%token FLOAT16_T FLOAT FLOAT32_T DOUBLE FLOAT64_T -%token CONST BOOL INT UINT INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T +%token CONST BOOL FLOAT DOUBLE INT UINT INT64_T UINT64_T FLOAT16_T %token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT SUBROUTINE -%token BVEC2 BVEC3 BVEC4 -%token IVEC2 IVEC3 IVEC4 -%token UVEC2 UVEC3 UVEC4 -%token I64VEC2 I64VEC3 I64VEC4 -%token U64VEC2 U64VEC3 U64VEC4 -%token I32VEC2 I32VEC3 I32VEC4 -%token U32VEC2 U32VEC3 U32VEC4 -%token I16VEC2 I16VEC3 I16VEC4 -%token U16VEC2 U16VEC3 U16VEC4 -%token I8VEC2 I8VEC3 I8VEC4 -%token U8VEC2 U8VEC3 U8VEC4 -%token VEC2 VEC3 VEC4 +%token BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 I64VEC2 I64VEC3 I64VEC4 UVEC2 UVEC3 UVEC4 U64VEC2 U64VEC3 U64VEC4 VEC2 VEC3 VEC4 %token MAT2 MAT3 MAT4 CENTROID IN OUT INOUT -%token UNIFORM PATCH SAMPLE BUFFER SHARED NONUNIFORM +%token UNIFORM PATCH SAMPLE BUFFER SHARED %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY %token DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4 %token F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4 -%token F32VEC2 F32VEC3 F32VEC4 F32MAT2 F32MAT3 F32MAT4 -%token F64VEC2 F64VEC3 F64VEC4 F64MAT2 F64MAT3 F64MAT4 %token NOPERSPECTIVE FLAT SMOOTH LAYOUT __EXPLICITINTERPAMD %token MAT2X2 MAT2X3 MAT2X4 @@ -157,12 +138,6 @@ extern int yylex(YYSTYPE*, TParseContext&); %token F16MAT2X2 F16MAT2X3 F16MAT2X4 %token F16MAT3X2 F16MAT3X3 F16MAT3X4 %token F16MAT4X2 F16MAT4X3 F16MAT4X4 -%token F32MAT2X2 F32MAT2X3 F32MAT2X4 -%token F32MAT3X2 F32MAT3X3 F32MAT3X4 -%token F32MAT4X2 F32MAT4X3 F32MAT4X4 -%token F64MAT2X2 F64MAT2X3 F64MAT2X4 -%token F64MAT3X2 F64MAT3X3 F64MAT3X4 -%token F64MAT4X2 F64MAT4X3 F64MAT4X4 %token ATOMIC_UINT // combined image/sampler @@ -179,12 +154,6 @@ extern int yylex(YYSTYPE*, TParseContext&); %token SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY %token SAMPLEREXTERNALOES -%token F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE -%token F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY -%token F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY -%token F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW -%token F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW - // pure sampler %token SAMPLER SAMPLERSHADOW @@ -200,13 +169,8 @@ extern int yylex(YYSTYPE*, TParseContext&); %token TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS %token TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY -%token F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE -%token F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY -%token F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY - // input attachments %token SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS -%token F16SUBPASSINPUT F16SUBPASSINPUTMS %token IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D %token UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D @@ -219,14 +183,10 @@ extern int yylex(YYSTYPE*, TParseContext&); %token IMAGE2DMS IIMAGE2DMS UIMAGE2DMS %token IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY -%token F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT -%token F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY -%token F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY - %token STRUCT VOID WHILE %token IDENTIFIER TYPE_NAME -%token FLOATCONSTANT DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT INT32CONSTANT UINT32CONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT FLOAT16CONSTANT +%token FLOATCONSTANT DOUBLECONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT FLOAT16CONSTANT %token LEFT_OP RIGHT_OP %token INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP %token AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN @@ -255,12 +215,12 @@ extern int yylex(YYSTYPE*, TParseContext&); %type translation_unit function_definition %type statement simple_statement %type statement_list switch_statement_list compound_statement -%type declaration_statement selection_statement selection_statement_nonattributed expression_statement -%type switch_statement switch_statement_nonattributed case_label +%type declaration_statement selection_statement expression_statement +%type switch_statement case_label %type declaration external_declaration %type for_init_statement compound_statement_no_new_scope %type selection_rest_statement for_rest_statement -%type iteration_statement iteration_statement_nonattributed jump_statement statement_no_new_scope statement_scoped +%type iteration_statement jump_statement statement_no_new_scope statement_scoped %type single_declaration init_declarator_list %type parameter_declaration parameter_declarator parameter_type_specifier @@ -268,7 +228,6 @@ extern int yylex(YYSTYPE*, TParseContext&); %type array_specifier %type precise_qualifier invariant_qualifier interpolation_qualifier storage_qualifier precision_qualifier %type layout_qualifier layout_qualifier_id_list layout_qualifier_id -%type non_uniform_qualifier %type type_qualifier fully_specified_type type_specifier %type single_type_qualifier @@ -284,8 +243,6 @@ extern int yylex(YYSTYPE*, TParseContext&); %type identifier_list -%type attribute attribute_list single_attribute - %start translation_unit %% @@ -299,14 +256,6 @@ primary_expression : variable_identifier { $$ = $1; } - | INT32CONSTANT { - parseContext.explicitInt32Check($1.loc, "32-bit signed literal"); - $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); - } - | UINT32CONSTANT { - parseContext.explicitInt32Check($1.loc, "32-bit signed literal"); - $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); - } | INTCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); } @@ -322,14 +271,6 @@ primary_expression parseContext.int64Check($1.loc, "64-bit unsigned integer literal"); $$ = parseContext.intermediate.addConstantUnion($1.u64, $1.loc, true); } - | INT16CONSTANT { - parseContext.explicitInt16Check($1.loc, "16-bit integer literal"); - $$ = parseContext.intermediate.addConstantUnion((short)$1.i, $1.loc, true); - } - | UINT16CONSTANT { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer literal"); - $$ = parseContext.intermediate.addConstantUnion((unsigned short)$1.u, $1.loc, true); - } | FLOATCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); } @@ -338,8 +279,10 @@ primary_expression $$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true); } | FLOAT16CONSTANT { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float literal"); $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true); +#endif } | BOOLCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); @@ -474,11 +417,6 @@ function_identifier $$.function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } - | non_uniform_qualifier { - // Constructor - $$.intermNode = 0; - $$.function = parseContext.handleConstructorCall($1.loc, $1); - } ; unary_expression @@ -907,11 +845,6 @@ function_header // Add the function as a prototype after parsing it (we do not support recursion) TFunction *function; TType type($1); - - // Potentially rename shader entry point function. No-op most of the time. - parseContext.renameShaderFunction($2.string); - - // Make the function function = new TFunction($2.string, type); $$ = function; } @@ -940,16 +873,14 @@ parameter_declarator parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); } - TType* type = new TType($1); - type->transferArraySizes($3.arraySizes); - type->copyArrayInnerSizes($1.arraySizes); + parseContext.arrayDimCheck($2.loc, $1.arraySizes, $3.arraySizes); - parseContext.arrayOfArrayVersionCheck($2.loc, type->getArraySizes()); parseContext.arraySizeRequiredCheck($3.loc, *$3.arraySizes); parseContext.reservedErrorCheck($2.loc, *$2.string); - TParameter param = { $2.string, type }; + $1.arraySizes = $3.arraySizes; + TParameter param = { $2.string, new TType($1)}; $$.loc = $2.loc; $$.param = param; } @@ -974,7 +905,7 @@ parameter_declaration $$ = $1; parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); + parseContext.paramCheckFix($1.loc, EvqTemporary, *$$.param.type); parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); } // @@ -994,7 +925,7 @@ parameter_declaration $$ = $1; parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); + parseContext.paramCheckFix($1.loc, EvqTemporary, *$$.param.type); parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); } ; @@ -1083,7 +1014,7 @@ fully_specified_type } if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1.qualifier)) - $2.arraySizes = nullptr; + $2.arraySizes = 0; parseContext.checkNoShaderLayouts($2.loc, $1.shaderQualifiers); $2.shaderQualifiers.merge($1.shaderQualifiers); @@ -1125,11 +1056,7 @@ interpolation_qualifier } | NOPERSPECTIVE { parseContext.globalCheck($1.loc, "noperspective"); -#ifdef NV_EXTENSIONS - parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); -#else parseContext.requireProfile($1.loc, ~EEsProfile, "noperspective"); -#endif parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "noperspective"); $$.init($1.loc); $$.qualifier.nopersp = true; @@ -1223,9 +1150,6 @@ single_type_qualifier // allow inheritance of storage qualifier from block declaration $$ = $1; } - | non_uniform_qualifier { - $$ = $1; - } ; storage_qualifier @@ -1305,7 +1229,6 @@ storage_qualifier $$.qualifier.storage = EvqBuffer; } | SHARED { - parseContext.globalCheck($1.loc, "shared"); parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); parseContext.profileRequires($1.loc, EEsProfile, 310, 0, "shared"); parseContext.requireStage($1.loc, EShLangCompute, "shared"); @@ -1335,32 +1258,25 @@ storage_qualifier | SUBROUTINE { parseContext.spvRemoved($1.loc, "subroutine"); parseContext.globalCheck($1.loc, "subroutine"); - parseContext.unimplemented($1.loc, "subroutine"); $$.init($1.loc); + $$.qualifier.storage = EvqUniform; } | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN { parseContext.spvRemoved($1.loc, "subroutine"); parseContext.globalCheck($1.loc, "subroutine"); - parseContext.unimplemented($1.loc, "subroutine"); $$.init($1.loc); - } - ; - -non_uniform_qualifier - : NONUNIFORM { - $$.init($1.loc); - $$.qualifier.nonUniform = true; + $$.qualifier.storage = EvqUniform; + // TODO: 4.0 semantics: subroutines + // 1) make sure each identifier is a type declared earlier with SUBROUTINE + // 2) save all of the identifiers for future comparison with the declared function } ; type_name_list - : IDENTIFIER { - // TODO + : TYPE_NAME { + // TODO: 4.0 functionality: subroutine type to list } - | type_name_list COMMA IDENTIFIER { - // TODO: 4.0 semantics: subroutines - // 1) make sure each identifier is a type declared earlier with SUBROUTINE - // 2) save all of the identifiers for future comparison with the declared function + | type_name_list COMMA TYPE_NAME { } ; @@ -1370,7 +1286,7 @@ type_specifier $$.qualifier.precision = parseContext.getDefaultPrecision($$); } | type_specifier_nonarray array_specifier { - parseContext.arrayOfArrayVersionCheck($2.loc, $2.arraySizes); + parseContext.arrayDimCheck($2.loc, $2.arraySizes, 0); $$ = $1; $$.qualifier.precision = parseContext.getDefaultPrecision($$); $$.arraySizes = $2.arraySizes; @@ -1419,19 +1335,11 @@ type_specifier_nonarray $$.basicType = EbtDouble; } | FLOAT16_T { - parseContext.float16Check($1.loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; - } - | FLOAT32_T { - parseContext.explicitFloat32Check($1.loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - } - | FLOAT64_T { - parseContext.explicitFloat64Check($1.loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; +#endif } | INT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1442,36 +1350,6 @@ type_specifier_nonarray $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint; } - | INT8_T { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - } - | UINT8_T { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - } - | INT16_T { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - } - | UINT16_T { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - } - | INT32_T { - parseContext.explicitInt32Check($1.loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - } - | UINT32_T { - parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - } | INT64_T { parseContext.int64Check($1.loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1520,58 +1398,28 @@ type_specifier_nonarray $$.setVector(4); } | F16VEC2 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(2); +#endif } | F16VEC3 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(3); +#endif } | F16VEC4 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(4); - } - | F32VEC2 { - parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(2); - } - | F32VEC3 { - parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(3); - } - | F32VEC4 { - parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setVector(4); - } - | F64VEC2 { - parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(2); - } - | F64VEC3 { - parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(3); - } - | F64VEC4 { - parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setVector(4); +#endif } | BVEC2 { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1603,60 +1451,6 @@ type_specifier_nonarray $$.basicType = EbtInt; $$.setVector(4); } - | I8VEC2 { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(2); - } - | I8VEC3 { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(3); - } - | I8VEC4 { - parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(4); - } - | I16VEC2 { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(2); - } - | I16VEC3 { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(3); - } - | I16VEC4 { - parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt16; - $$.setVector(4); - } - | I32VEC2 { - parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(2); - } - | I32VEC3 { - parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(3); - } - | I32VEC4 { - parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt; - $$.setVector(4); - } | I64VEC2 { parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1693,60 +1487,6 @@ type_specifier_nonarray $$.basicType = EbtUint; $$.setVector(4); } - | U8VEC2 { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(2); - } - | U8VEC3 { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtInt8; - $$.setVector(3); - } - | U8VEC4 { - parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint8; - $$.setVector(4); - } - | U16VEC2 { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - $$.setVector(2); - } - | U16VEC3 { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - $$.setVector(3); - } - | U16VEC4 { - parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint16; - $$.setVector(4); - } - | U32VEC2 { - parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(2); - } - | U32VEC3 { - parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(3); - } - | U32VEC4 { - parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtUint; - $$.setVector(4); - } | U64VEC2 { parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1898,220 +1638,100 @@ type_specifier_nonarray $$.setMatrix(4, 4); } | F16MAT2 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 2); +#endif } | F16MAT3 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 3); +#endif } | F16MAT4 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 4); +#endif } | F16MAT2X2 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 2); +#endif } | F16MAT2X3 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 3); +#endif } | F16MAT2X4 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 4); +#endif } | F16MAT3X2 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 2); +#endif } | F16MAT3X3 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 3); +#endif } | F16MAT3X4 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 4); +#endif } | F16MAT4X2 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 2); +#endif } | F16MAT4X3 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 3); +#endif } | F16MAT4X4 { +#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 4); - } - | F32MAT2 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 2); - } - | F32MAT3 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 3); - } - | F32MAT4 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 4); - } - | F32MAT2X2 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 2); - } - | F32MAT2X3 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 3); - } - | F32MAT2X4 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(2, 4); - } - | F32MAT3X2 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 2); - } - | F32MAT3X3 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 3); - } - | F32MAT3X4 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(3, 4); - } - | F32MAT4X2 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 2); - } - | F32MAT4X3 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 3); - } - | F32MAT4X4 { - parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtFloat; - $$.setMatrix(4, 4); - } - | F64MAT2 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 2); - } - | F64MAT3 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 3); - } - | F64MAT4 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 4); - } - | F64MAT2X2 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 2); - } - | F64MAT2X3 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 3); - } - | F64MAT2X4 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(2, 4); - } - | F64MAT3X2 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 2); - } - | F64MAT3X3 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 3); - } - | F64MAT3X4 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(3, 4); - } - | F64MAT4X2 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 2); - } - | F64MAT4X3 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 3); - } - | F64MAT4X4 { - parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtDouble; - $$.setMatrix(4, 4); +#endif } | ATOMIC_UINT { parseContext.vulkanRemoved($1.loc, "atomic counter types"); @@ -2183,110 +1803,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, EsdCube, true, true); } - | F16SAMPLER1D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D); -#endif - } - | F16SAMPLER2D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D); -#endif - } - | F16SAMPLER3D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd3D); -#endif - } - | F16SAMPLERCUBE { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube); -#endif - } - | F16SAMPLER1DSHADOW { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, false, true); -#endif - } - | F16SAMPLER2DSHADOW { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, false, true); -#endif - } - | F16SAMPLERCUBESHADOW { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, false, true); -#endif - } - | F16SAMPLER1DARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, true); -#endif - } - | F16SAMPLER2DARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, true); -#endif - } - | F16SAMPLER1DARRAYSHADOW { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd1D, true, true); -#endif - } - | F16SAMPLER2DARRAYSHADOW { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, true, true); -#endif - } - | F16SAMPLERCUBEARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, true); -#endif - } - | F16SAMPLERCUBEARRAYSHADOW { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdCube, true, true); -#endif - } | ISAMPLER1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2367,22 +1883,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, EsdRect, false, true); } - | F16SAMPLER2DRECT { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdRect); -#endif - } - | F16SAMPLER2DRECTSHADOW { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdRect, false, true); -#endif - } | ISAMPLER2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2398,14 +1898,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, EsdBuffer); } - | F16SAMPLERBUFFER { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, EsdBuffer); -#endif - } | ISAMPLERBUFFER { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2421,14 +1913,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, Esd2D, false, false, true); } - | F16SAMPLER2DMS { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, false, false, true); -#endif - } | ISAMPLER2DMS { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2444,14 +1928,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, Esd2D, true, false, true); } - | F16SAMPLER2DMSARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.set(EbtFloat16, Esd2D, true, false, true); -#endif - } | ISAMPLER2DMSARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2477,92 +1953,36 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd1D); } - | F16TEXTURE1D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd1D); -#endif - } | TEXTURE2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D); } - | F16TEXTURE2D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D); -#endif - } | TEXTURE3D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd3D); } - | F16TEXTURE3D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd3D); -#endif - } | TEXTURECUBE { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdCube); } - | F16TEXTURECUBE { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdCube); -#endif - } | TEXTURE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd1D, true); } - | F16TEXTURE1DARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd1D, true); -#endif - } | TEXTURE2DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D, true); } - | F16TEXTURE2DARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D, true); -#endif - } | TEXTURECUBEARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdCube, true); } - | F16TEXTURECUBEARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdCube, true); -#endif - } | ITEXTURE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2638,14 +2058,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdRect); } - | F16TEXTURE2DRECT { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdRect); -#endif - } | ITEXTURE2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2661,14 +2073,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdBuffer); } - | F16TEXTUREBUFFER { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, EsdBuffer); -#endif - } | ITEXTUREBUFFER { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2684,14 +2088,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true); } - | F16TEXTURE2DMS { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true); -#endif - } | ITEXTURE2DMS { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2707,14 +2103,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true); } - | F16TEXTURE2DMSARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true); -#endif - } | ITEXTURE2DMSARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2730,14 +2118,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd1D); } - | F16IMAGE1D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd1D); -#endif - } | IIMAGE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2753,14 +2133,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D); } - | F16IMAGE2D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D); -#endif - } | IIMAGE2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2776,14 +2148,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd3D); } - | F16IMAGE3D { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd3D); -#endif - } | IIMAGE3D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2799,14 +2163,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdRect); } - | F16IMAGE2DRECT { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdRect); -#endif - } | IIMAGE2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2822,14 +2178,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdCube); } - | F16IMAGECUBE { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdCube); -#endif - } | IIMAGECUBE { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2845,14 +2193,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdBuffer); } - | F16IMAGEBUFFER { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdBuffer); -#endif - } | IIMAGEBUFFER { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2868,14 +2208,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd1D, true); } - | F16IMAGE1DARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd1D, true); -#endif - } | IIMAGE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2891,14 +2223,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D, true); } - | F16IMAGE2DARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D, true); -#endif - } | IIMAGE2DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2914,14 +2238,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdCube, true); } - | F16IMAGECUBEARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, EsdCube, true); -#endif - } | IIMAGECUBEARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2937,14 +2253,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D, false, false, true); } - | F16IMAGE2DMS { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D, false, false, true); -#endif - } | IIMAGE2DMS { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2960,14 +2268,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D, true, false, true); } - | F16IMAGE2DMSARRAY { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setImage(EbtFloat16, Esd2D, true, false, true); -#endif - } | IIMAGE2DMSARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2996,24 +2296,6 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setSubpass(EbtFloat, true); } - | F16SUBPASSINPUT { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtFloat16); -#endif - } - | F16SUBPASSINPUTMS { -#ifdef AMD_EXTENSIONS - parseContext.float16OpaqueCheck($1.loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); - parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); - $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - $$.basicType = EbtSampler; - $$.sampler.setSubpass(EbtFloat16, true); -#endif - } | ISUBPASSINPUT { parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -3128,15 +2410,12 @@ struct_declaration parseContext.precisionQualifierCheck($1.loc, $1.basicType, $1.qualifier); for (unsigned int i = 0; i < $$->size(); ++i) { - TType type($1); - type.setFieldName((*$$)[i].type->getFieldName()); - type.transferArraySizes((*$$)[i].type->getArraySizes()); - type.copyArrayInnerSizes($1.arraySizes); - parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes()); - (*$$)[i].type->shallowCopy(type); + parseContext.arrayDimCheck($1.loc, (*$$)[i].type, $1.arraySizes); + (*$$)[i].type->mergeType($1); } } | type_qualifier type_specifier struct_declarator_list SEMICOLON { + parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); if ($2.arraySizes) { parseContext.profileRequires($2.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires($2.loc, EEsProfile, 300, 0, "arrayed type"); @@ -3146,18 +2425,14 @@ struct_declaration $$ = $3; - parseContext.memberQualifierCheck($1); + parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); parseContext.voidErrorCheck($2.loc, (*$3)[0].type->getFieldName(), $2.basicType); parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true); parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier); for (unsigned int i = 0; i < $$->size(); ++i) { - TType type($2); - type.setFieldName((*$$)[i].type->getFieldName()); - type.transferArraySizes((*$$)[i].type->getArraySizes()); - type.copyArrayInnerSizes($2.arraySizes); - parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes()); - (*$$)[i].type->shallowCopy(type); + parseContext.arrayDimCheck($1.loc, (*$$)[i].type, $2.arraySizes); + (*$$)[i].type->mergeType($2); } } ; @@ -3179,12 +2454,12 @@ struct_declarator $$.type->setFieldName(*$1.string); } | IDENTIFIER array_specifier { - parseContext.arrayOfArrayVersionCheck($1.loc, $2.arraySizes); + parseContext.arrayDimCheck($1.loc, $2.arraySizes, 0); $$.type = new TType(EbtVoid); $$.loc = $1.loc; $$.type->setFieldName(*$1.string); - $$.type->transferArraySizes($2.arraySizes); + $$.type->newArraySizes(*$2.arraySizes); } ; @@ -3315,15 +2590,6 @@ expression_statement ; selection_statement - : selection_statement_nonattributed { - $$ = $1; - } - | attribute selection_statement_nonattributed { - parseContext.handleSelectionAttributes(*$1, $2); - $$ = $2; - } - -selection_statement_nonattributed : IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement { parseContext.boolCheck($1.loc, $3); $$ = parseContext.intermediate.addSelection($3, $5, $1.loc); @@ -3360,15 +2626,6 @@ condition ; switch_statement - : switch_statement_nonattributed { - $$ = $1; - } - | attribute switch_statement_nonattributed { - parseContext.handleSwitchAttributes(*$1, $2); - $$ = $2; - } - -switch_statement_nonattributed : SWITCH LEFT_PAREN expression RIGHT_PAREN { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -3422,15 +2679,6 @@ case_label ; iteration_statement - : iteration_statement_nonattributed { - $$ = $1; - } - | attribute iteration_statement_nonattributed { - parseContext.handleLoopAttributes(*$1, $2); - $$ = $2; - } - -iteration_statement_nonattributed : WHILE LEFT_PAREN { if (! parseContext.limits.whileLoops) parseContext.error($1.loc, "while loops not available", "limitation", ""); @@ -3527,7 +2775,7 @@ jump_statement if (parseContext.currentFunctionType->getBasicType() != EbtVoid) parseContext.error($1.loc, "non-void function must return a value", "return", ""); if (parseContext.inMain) - parseContext.postEntryPointReturn = true; + parseContext.postMainReturn = true; } | RETURN expression SEMICOLON { $$ = parseContext.handleReturnValue($1.loc, $2); @@ -3546,10 +2794,8 @@ translation_unit parseContext.intermediate.setTreeRoot($$); } | translation_unit external_declaration { - if ($2 != nullptr) { - $$ = parseContext.intermediate.growAggregate($1, $2); - parseContext.intermediate.setTreeRoot($$); - } + $$ = parseContext.intermediate.growAggregate($1, $2); + parseContext.intermediate.setTreeRoot($$); } ; @@ -3560,11 +2806,6 @@ external_declaration | declaration { $$ = $1; } - | SEMICOLON { - parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon"); - parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); - $$ = nullptr; - } ; function_definition @@ -3585,30 +2826,8 @@ function_definition // information. This information can be queried from the parse tree $$->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); $$->getAsAggregate()->setDebug(parseContext.contextPragma.debug); - $$->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); + $$->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } ; -attribute - : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET { - $$ = $3; - parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); - } - -attribute_list - : single_attribute { - $$ = $1; - } - | attribute_list COMMA single_attribute { - $$ = parseContext.mergeAttributes($1, $3); - } - -single_attribute - : IDENTIFIER { - $$ = parseContext.makeAttributes(*$1.string); - } - | IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN { - $$ = parseContext.makeAttributes(*$1.string, $3); - } - %% diff --git a/deps/glslang/glslang-old/glslang/MachineIndependent/glslang_tab.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/glslang_tab.cpp new file mode 100644 index 0000000000..3507c04e62 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/glslang_tab.cpp @@ -0,0 +1,8320 @@ +/* A Bison parser, made by GNU Bison 2.7. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.7" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + + + +/* Copy the first part of user declarations. */ +/* Line 371 of yacc.c */ +#line 41 "glslang.y" + + +/* Based on: +ANSI C Yacc grammar + +In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a +matching Lex specification) for the April 30, 1985 draft version of the +ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that +original, as mentioned in the answer to question 17.25 of the comp.lang.c +FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z. + +I intend to keep this version as close to the current C Standard grammar as +possible; please let me know if you discover discrepancies. + +Jutta Degener, 1995 +*/ + +#include "SymbolTable.h" +#include "ParseHelper.h" +#include "../Public/ShaderLang.h" + +using namespace glslang; + + +/* Line 371 of yacc.c */ +#line 93 "glslang_tab.cpp" + +# ifndef YY_NULL +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULL nullptr +# else +# define YY_NULL 0 +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "glslang_tab.cpp.h". */ +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 1 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + FLOAT16_T = 268, + BREAK = 269, + CONTINUE = 270, + DO = 271, + ELSE = 272, + FOR = 273, + IF = 274, + DISCARD = 275, + RETURN = 276, + SWITCH = 277, + CASE = 278, + DEFAULT = 279, + SUBROUTINE = 280, + BVEC2 = 281, + BVEC3 = 282, + BVEC4 = 283, + IVEC2 = 284, + IVEC3 = 285, + IVEC4 = 286, + I64VEC2 = 287, + I64VEC3 = 288, + I64VEC4 = 289, + UVEC2 = 290, + UVEC3 = 291, + UVEC4 = 292, + U64VEC2 = 293, + U64VEC3 = 294, + U64VEC4 = 295, + VEC2 = 296, + VEC3 = 297, + VEC4 = 298, + MAT2 = 299, + MAT3 = 300, + MAT4 = 301, + CENTROID = 302, + IN = 303, + OUT = 304, + INOUT = 305, + UNIFORM = 306, + PATCH = 307, + SAMPLE = 308, + BUFFER = 309, + SHARED = 310, + COHERENT = 311, + VOLATILE = 312, + RESTRICT = 313, + READONLY = 314, + WRITEONLY = 315, + DVEC2 = 316, + DVEC3 = 317, + DVEC4 = 318, + DMAT2 = 319, + DMAT3 = 320, + DMAT4 = 321, + F16VEC2 = 322, + F16VEC3 = 323, + F16VEC4 = 324, + F16MAT2 = 325, + F16MAT3 = 326, + F16MAT4 = 327, + NOPERSPECTIVE = 328, + FLAT = 329, + SMOOTH = 330, + LAYOUT = 331, + __EXPLICITINTERPAMD = 332, + MAT2X2 = 333, + MAT2X3 = 334, + MAT2X4 = 335, + MAT3X2 = 336, + MAT3X3 = 337, + MAT3X4 = 338, + MAT4X2 = 339, + MAT4X3 = 340, + MAT4X4 = 341, + DMAT2X2 = 342, + DMAT2X3 = 343, + DMAT2X4 = 344, + DMAT3X2 = 345, + DMAT3X3 = 346, + DMAT3X4 = 347, + DMAT4X2 = 348, + DMAT4X3 = 349, + DMAT4X4 = 350, + F16MAT2X2 = 351, + F16MAT2X3 = 352, + F16MAT2X4 = 353, + F16MAT3X2 = 354, + F16MAT3X3 = 355, + F16MAT3X4 = 356, + F16MAT4X2 = 357, + F16MAT4X3 = 358, + F16MAT4X4 = 359, + ATOMIC_UINT = 360, + SAMPLER1D = 361, + SAMPLER2D = 362, + SAMPLER3D = 363, + SAMPLERCUBE = 364, + SAMPLER1DSHADOW = 365, + SAMPLER2DSHADOW = 366, + SAMPLERCUBESHADOW = 367, + SAMPLER1DARRAY = 368, + SAMPLER2DARRAY = 369, + SAMPLER1DARRAYSHADOW = 370, + SAMPLER2DARRAYSHADOW = 371, + ISAMPLER1D = 372, + ISAMPLER2D = 373, + ISAMPLER3D = 374, + ISAMPLERCUBE = 375, + ISAMPLER1DARRAY = 376, + ISAMPLER2DARRAY = 377, + USAMPLER1D = 378, + USAMPLER2D = 379, + USAMPLER3D = 380, + USAMPLERCUBE = 381, + USAMPLER1DARRAY = 382, + USAMPLER2DARRAY = 383, + SAMPLER2DRECT = 384, + SAMPLER2DRECTSHADOW = 385, + ISAMPLER2DRECT = 386, + USAMPLER2DRECT = 387, + SAMPLERBUFFER = 388, + ISAMPLERBUFFER = 389, + USAMPLERBUFFER = 390, + SAMPLERCUBEARRAY = 391, + SAMPLERCUBEARRAYSHADOW = 392, + ISAMPLERCUBEARRAY = 393, + USAMPLERCUBEARRAY = 394, + SAMPLER2DMS = 395, + ISAMPLER2DMS = 396, + USAMPLER2DMS = 397, + SAMPLER2DMSARRAY = 398, + ISAMPLER2DMSARRAY = 399, + USAMPLER2DMSARRAY = 400, + SAMPLEREXTERNALOES = 401, + SAMPLER = 402, + SAMPLERSHADOW = 403, + TEXTURE1D = 404, + TEXTURE2D = 405, + TEXTURE3D = 406, + TEXTURECUBE = 407, + TEXTURE1DARRAY = 408, + TEXTURE2DARRAY = 409, + ITEXTURE1D = 410, + ITEXTURE2D = 411, + ITEXTURE3D = 412, + ITEXTURECUBE = 413, + ITEXTURE1DARRAY = 414, + ITEXTURE2DARRAY = 415, + UTEXTURE1D = 416, + UTEXTURE2D = 417, + UTEXTURE3D = 418, + UTEXTURECUBE = 419, + UTEXTURE1DARRAY = 420, + UTEXTURE2DARRAY = 421, + TEXTURE2DRECT = 422, + ITEXTURE2DRECT = 423, + UTEXTURE2DRECT = 424, + TEXTUREBUFFER = 425, + ITEXTUREBUFFER = 426, + UTEXTUREBUFFER = 427, + TEXTURECUBEARRAY = 428, + ITEXTURECUBEARRAY = 429, + UTEXTURECUBEARRAY = 430, + TEXTURE2DMS = 431, + ITEXTURE2DMS = 432, + UTEXTURE2DMS = 433, + TEXTURE2DMSARRAY = 434, + ITEXTURE2DMSARRAY = 435, + UTEXTURE2DMSARRAY = 436, + SUBPASSINPUT = 437, + SUBPASSINPUTMS = 438, + ISUBPASSINPUT = 439, + ISUBPASSINPUTMS = 440, + USUBPASSINPUT = 441, + USUBPASSINPUTMS = 442, + IMAGE1D = 443, + IIMAGE1D = 444, + UIMAGE1D = 445, + IMAGE2D = 446, + IIMAGE2D = 447, + UIMAGE2D = 448, + IMAGE3D = 449, + IIMAGE3D = 450, + UIMAGE3D = 451, + IMAGE2DRECT = 452, + IIMAGE2DRECT = 453, + UIMAGE2DRECT = 454, + IMAGECUBE = 455, + IIMAGECUBE = 456, + UIMAGECUBE = 457, + IMAGEBUFFER = 458, + IIMAGEBUFFER = 459, + UIMAGEBUFFER = 460, + IMAGE1DARRAY = 461, + IIMAGE1DARRAY = 462, + UIMAGE1DARRAY = 463, + IMAGE2DARRAY = 464, + IIMAGE2DARRAY = 465, + UIMAGE2DARRAY = 466, + IMAGECUBEARRAY = 467, + IIMAGECUBEARRAY = 468, + UIMAGECUBEARRAY = 469, + IMAGE2DMS = 470, + IIMAGE2DMS = 471, + UIMAGE2DMS = 472, + IMAGE2DMSARRAY = 473, + IIMAGE2DMSARRAY = 474, + UIMAGE2DMSARRAY = 475, + STRUCT = 476, + VOID = 477, + WHILE = 478, + IDENTIFIER = 479, + TYPE_NAME = 480, + FLOATCONSTANT = 481, + DOUBLECONSTANT = 482, + INTCONSTANT = 483, + UINTCONSTANT = 484, + INT64CONSTANT = 485, + UINT64CONSTANT = 486, + BOOLCONSTANT = 487, + FLOAT16CONSTANT = 488, + LEFT_OP = 489, + RIGHT_OP = 490, + INC_OP = 491, + DEC_OP = 492, + LE_OP = 493, + GE_OP = 494, + EQ_OP = 495, + NE_OP = 496, + AND_OP = 497, + OR_OP = 498, + XOR_OP = 499, + MUL_ASSIGN = 500, + DIV_ASSIGN = 501, + ADD_ASSIGN = 502, + MOD_ASSIGN = 503, + LEFT_ASSIGN = 504, + RIGHT_ASSIGN = 505, + AND_ASSIGN = 506, + XOR_ASSIGN = 507, + OR_ASSIGN = 508, + SUB_ASSIGN = 509, + LEFT_PAREN = 510, + RIGHT_PAREN = 511, + LEFT_BRACKET = 512, + RIGHT_BRACKET = 513, + LEFT_BRACE = 514, + RIGHT_BRACE = 515, + DOT = 516, + COMMA = 517, + COLON = 518, + EQUAL = 519, + SEMICOLON = 520, + BANG = 521, + DASH = 522, + TILDE = 523, + PLUS = 524, + STAR = 525, + SLASH = 526, + PERCENT = 527, + LEFT_ANGLE = 528, + RIGHT_ANGLE = 529, + VERTICAL_BAR = 530, + CARET = 531, + AMPERSAND = 532, + QUESTION = 533, + INVARIANT = 534, + PRECISE = 535, + HIGH_PRECISION = 536, + MEDIUM_PRECISION = 537, + LOW_PRECISION = 538, + PRECISION = 539, + PACKED = 540, + RESOURCE = 541, + SUPERP = 542 + }; +#endif + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ +/* Line 387 of yacc.c */ +#line 66 "glslang.y" + + struct { + glslang::TSourceLoc loc; + union { + glslang::TString *string; + int i; + unsigned int u; + long long i64; + unsigned long long u64; + bool b; + double d; + }; + glslang::TSymbol* symbol; + } lex; + struct { + glslang::TSourceLoc loc; + glslang::TOperator op; + union { + TIntermNode* intermNode; + glslang::TIntermNodePair nodePair; + glslang::TIntermTyped* intermTypedNode; + }; + union { + glslang::TPublicType type; + glslang::TFunction* function; + glslang::TParameter param; + glslang::TTypeLoc typeLine; + glslang::TTypeList* typeList; + glslang::TArraySizes* arraySizes; + glslang::TIdentifierList* identifierList; + }; + } interm; + + +/* Line 387 of yacc.c */ +#line 458 "glslang_tab.cpp" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ + +/* Copy the second part of user declarations. */ +/* Line 390 of yacc.c */ +#line 100 "glslang.y" + + +/* windows only pragma */ +#ifdef _MSC_VER + #pragma warning(disable : 4065) + #pragma warning(disable : 4127) + #pragma warning(disable : 4244) +#endif + +#define parseContext (*pParseContext) +#define yyerror(context, msg) context->parserError(msg) + +extern int yylex(YYSTYPE*, TParseContext&); + + +/* Line 390 of yacc.c */ +#line 501 "glslang_tab.cpp" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(N) (N) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; +#endif +{ + return yyi; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 265 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 6373 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 288 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 100 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 439 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 571 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 542 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint16 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 19, 21, 23, 27, 29, 34, 36, 40, 43, 46, + 48, 50, 52, 55, 58, 61, 63, 66, 70, 73, + 75, 77, 79, 82, 85, 88, 90, 92, 94, 96, + 98, 102, 106, 110, 112, 116, 120, 122, 126, 130, + 132, 136, 140, 144, 148, 150, 154, 158, 160, 164, + 166, 170, 172, 176, 178, 182, 184, 188, 190, 194, + 196, 197, 204, 206, 210, 212, 214, 216, 218, 220, + 222, 224, 226, 228, 230, 232, 234, 238, 240, 243, + 246, 251, 254, 258, 263, 266, 270, 275, 276, 283, + 286, 290, 293, 295, 297, 300, 304, 308, 311, 315, + 318, 320, 323, 325, 327, 329, 333, 338, 345, 351, + 353, 356, 360, 366, 371, 373, 376, 378, 380, 382, + 384, 386, 391, 393, 397, 399, 403, 405, 407, 409, + 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, + 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, + 452, 454, 456, 458, 460, 465, 467, 471, 473, 476, + 479, 483, 487, 492, 494, 496, 498, 500, 502, 504, + 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, + 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, + 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, + 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, + 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, + 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, + 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, + 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, + 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, + 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, + 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, + 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, + 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, + 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, + 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, + 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, + 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, + 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, + 866, 868, 870, 872, 873, 880, 881, 887, 889, 892, + 896, 901, 903, 907, 909, 912, 914, 918, 923, 925, + 929, 931, 933, 935, 937, 939, 941, 943, 945, 947, + 949, 952, 953, 954, 960, 962, 964, 965, 968, 969, + 972, 975, 979, 981, 984, 986, 989, 995, 999, 1001, + 1003, 1008, 1009, 1018, 1019, 1021, 1025, 1028, 1029, 1036, + 1037, 1046, 1047, 1055, 1057, 1059, 1061, 1062, 1065, 1069, + 1072, 1075, 1078, 1082, 1085, 1087, 1090, 1092, 1094, 1095 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 384, 0, -1, 224, -1, 289, -1, 228, -1, 229, + -1, 230, -1, 231, -1, 226, -1, 227, -1, 233, + -1, 232, -1, 255, 317, 256, -1, 290, -1, 291, + 257, 292, 258, -1, 293, -1, 291, 261, 224, -1, + 291, 236, -1, 291, 237, -1, 317, -1, 294, -1, + 295, -1, 297, 256, -1, 296, 256, -1, 298, 222, + -1, 298, -1, 298, 315, -1, 297, 262, 315, -1, + 299, 255, -1, 343, -1, 291, -1, 291, -1, 236, + 300, -1, 237, 300, -1, 301, 300, -1, 269, -1, + 267, -1, 266, -1, 268, -1, 300, -1, 302, 270, + 300, -1, 302, 271, 300, -1, 302, 272, 300, -1, + 302, -1, 303, 269, 302, -1, 303, 267, 302, -1, + 303, -1, 304, 234, 303, -1, 304, 235, 303, -1, + 304, -1, 305, 273, 304, -1, 305, 274, 304, -1, + 305, 238, 304, -1, 305, 239, 304, -1, 305, -1, + 306, 240, 305, -1, 306, 241, 305, -1, 306, -1, + 307, 277, 306, -1, 307, -1, 308, 276, 307, -1, + 308, -1, 309, 275, 308, -1, 309, -1, 310, 242, + 309, -1, 310, -1, 311, 244, 310, -1, 311, -1, + 312, 243, 311, -1, 312, -1, -1, 312, 278, 314, + 317, 263, 315, -1, 313, -1, 300, 316, 315, -1, + 264, -1, 245, -1, 246, -1, 248, -1, 247, -1, + 254, -1, 249, -1, 250, -1, 251, -1, 252, -1, + 253, -1, 315, -1, 317, 262, 315, -1, 313, -1, + 323, 265, -1, 330, 265, -1, 284, 346, 343, 265, + -1, 320, 265, -1, 320, 224, 265, -1, 320, 224, + 344, 265, -1, 339, 265, -1, 339, 224, 265, -1, + 339, 224, 322, 265, -1, -1, 339, 224, 259, 321, + 350, 260, -1, 262, 224, -1, 322, 262, 224, -1, + 324, 256, -1, 326, -1, 325, -1, 326, 328, -1, + 325, 262, 328, -1, 332, 224, 255, -1, 343, 224, + -1, 343, 224, 344, -1, 339, 327, -1, 327, -1, + 339, 329, -1, 329, -1, 343, -1, 331, -1, 330, + 262, 224, -1, 330, 262, 224, 344, -1, 330, 262, + 224, 344, 264, 354, -1, 330, 262, 224, 264, 354, + -1, 332, -1, 332, 224, -1, 332, 224, 344, -1, + 332, 224, 344, 264, 354, -1, 332, 224, 264, 354, + -1, 343, -1, 339, 343, -1, 279, -1, 75, -1, + 74, -1, 73, -1, 77, -1, 76, 255, 336, 256, + -1, 337, -1, 336, 262, 337, -1, 224, -1, 224, + 264, 318, -1, 55, -1, 280, -1, 340, -1, 339, + 340, -1, 341, -1, 335, -1, 346, -1, 334, -1, + 333, -1, 338, -1, 5, -1, 3, -1, 4, -1, + 50, -1, 48, -1, 49, -1, 47, -1, 52, -1, + 53, -1, 51, -1, 54, -1, 55, -1, 56, -1, + 57, -1, 58, -1, 59, -1, 60, -1, 25, -1, + 25, 255, 342, 256, -1, 225, -1, 342, 262, 225, + -1, 345, -1, 345, 344, -1, 257, 258, -1, 257, + 313, 258, -1, 344, 257, 258, -1, 344, 257, 313, + 258, -1, 222, -1, 7, -1, 8, -1, 13, -1, + 9, -1, 10, -1, 11, -1, 12, -1, 6, -1, + 41, -1, 42, -1, 43, -1, 61, -1, 62, -1, + 63, -1, 67, -1, 68, -1, 69, -1, 26, -1, + 27, -1, 28, -1, 29, -1, 30, -1, 31, -1, + 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, + 37, -1, 38, -1, 39, -1, 40, -1, 44, -1, + 45, -1, 46, -1, 78, -1, 79, -1, 80, -1, + 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, + 86, -1, 64, -1, 65, -1, 66, -1, 87, -1, + 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, + 93, -1, 94, -1, 95, -1, 70, -1, 71, -1, + 72, -1, 96, -1, 97, -1, 98, -1, 99, -1, + 100, -1, 101, -1, 102, -1, 103, -1, 104, -1, + 105, -1, 106, -1, 107, -1, 108, -1, 109, -1, + 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, + 115, -1, 116, -1, 136, -1, 137, -1, 117, -1, + 118, -1, 119, -1, 120, -1, 121, -1, 122, -1, + 138, -1, 123, -1, 124, -1, 125, -1, 126, -1, + 127, -1, 128, -1, 139, -1, 129, -1, 130, -1, + 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, + 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, + 145, -1, 147, -1, 148, -1, 149, -1, 150, -1, + 151, -1, 152, -1, 153, -1, 154, -1, 173, -1, + 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, + 160, -1, 174, -1, 161, -1, 162, -1, 163, -1, + 164, -1, 165, -1, 166, -1, 175, -1, 167, -1, + 168, -1, 169, -1, 170, -1, 171, -1, 172, -1, + 176, -1, 177, -1, 178, -1, 179, -1, 180, -1, + 181, -1, 188, -1, 189, -1, 190, -1, 191, -1, + 192, -1, 193, -1, 194, -1, 195, -1, 196, -1, + 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, + 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, + 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, + 212, -1, 213, -1, 214, -1, 215, -1, 216, -1, + 217, -1, 218, -1, 219, -1, 220, -1, 146, -1, + 182, -1, 183, -1, 184, -1, 185, -1, 186, -1, + 187, -1, 347, -1, 225, -1, 281, -1, 282, -1, + 283, -1, -1, 221, 224, 259, 348, 350, 260, -1, + -1, 221, 259, 349, 350, 260, -1, 351, -1, 350, + 351, -1, 343, 352, 265, -1, 339, 343, 352, 265, + -1, 353, -1, 352, 262, 353, -1, 224, -1, 224, + 344, -1, 315, -1, 259, 355, 260, -1, 259, 355, + 262, 260, -1, 354, -1, 355, 262, 354, -1, 319, + -1, 359, -1, 358, -1, 356, -1, 368, -1, 369, + -1, 372, -1, 375, -1, 376, -1, 383, -1, 259, + 260, -1, -1, -1, 259, 360, 367, 361, 260, -1, + 366, -1, 358, -1, -1, 364, 359, -1, -1, 365, + 358, -1, 259, 260, -1, 259, 367, 260, -1, 357, + -1, 367, 357, -1, 265, -1, 317, 265, -1, 19, + 255, 317, 256, 370, -1, 363, 17, 363, -1, 363, + -1, 317, -1, 332, 224, 264, 354, -1, -1, 22, + 255, 317, 256, 373, 259, 374, 260, -1, -1, 367, + -1, 23, 317, 263, -1, 24, 263, -1, -1, 223, + 255, 377, 371, 256, 362, -1, -1, 16, 378, 357, + 223, 255, 317, 256, 265, -1, -1, 18, 255, 379, + 380, 382, 256, 362, -1, 368, -1, 356, -1, 371, + -1, -1, 381, 265, -1, 381, 265, 317, -1, 15, + 265, -1, 14, 265, -1, 21, 265, -1, 21, 317, + 265, -1, 20, 265, -1, 385, -1, 384, 385, -1, + 386, -1, 319, -1, -1, 323, 387, 366, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 250, 250, 256, 259, 262, 266, 270, 274, 277, + 281, 287, 290, 298, 301, 304, 307, 310, 315, 323, + 330, 337, 343, 347, 354, 357, 363, 370, 380, 388, + 393, 423, 429, 433, 437, 457, 458, 459, 460, 466, + 467, 472, 477, 486, 487, 492, 500, 501, 507, 516, + 517, 522, 527, 532, 540, 541, 549, 560, 561, 570, + 571, 580, 581, 590, 591, 599, 600, 608, 609, 617, + 618, 618, 636, 637, 652, 656, 660, 664, 669, 673, + 677, 681, 685, 689, 693, 700, 703, 714, 721, 726, + 731, 739, 743, 747, 751, 756, 761, 770, 770, 781, + 785, 792, 799, 802, 809, 817, 837, 855, 870, 893, + 904, 914, 924, 934, 943, 946, 950, 954, 959, 967, + 972, 977, 982, 987, 996, 1007, 1034, 1043, 1050, 1057, + 1064, 1076, 1082, 1085, 1092, 1096, 1100, 1108, 1117, 1120, + 1131, 1134, 1137, 1141, 1145, 1149, 1156, 1160, 1172, 1186, + 1191, 1197, 1203, 1210, 1216, 1221, 1226, 1231, 1238, 1242, + 1246, 1250, 1254, 1258, 1264, 1276, 1279, 1284, 1288, 1297, + 1302, 1310, 1314, 1324, 1328, 1332, 1337, 1344, 1348, 1353, + 1358, 1363, 1367, 1372, 1377, 1382, 1388, 1394, 1400, 1408, + 1416, 1424, 1429, 1434, 1439, 1444, 1449, 1454, 1460, 1466, + 1472, 1478, 1484, 1490, 1496, 1502, 1508, 1513, 1518, 1523, + 1528, 1533, 1538, 1543, 1548, 1553, 1558, 1563, 1568, 1574, + 1580, 1586, 1592, 1598, 1604, 1610, 1616, 1622, 1628, 1634, + 1640, 1648, 1656, 1664, 1672, 1680, 1688, 1696, 1704, 1712, + 1720, 1728, 1736, 1741, 1746, 1751, 1756, 1761, 1766, 1771, + 1776, 1781, 1786, 1791, 1796, 1801, 1806, 1811, 1816, 1821, + 1826, 1831, 1836, 1841, 1846, 1851, 1856, 1861, 1866, 1871, + 1876, 1881, 1886, 1891, 1896, 1901, 1906, 1911, 1916, 1921, + 1926, 1931, 1936, 1941, 1946, 1951, 1956, 1961, 1966, 1971, + 1976, 1981, 1986, 1991, 1996, 2001, 2006, 2011, 2016, 2021, + 2026, 2031, 2036, 2041, 2046, 2051, 2056, 2061, 2066, 2071, + 2076, 2081, 2086, 2091, 2096, 2101, 2106, 2111, 2116, 2121, + 2126, 2131, 2136, 2141, 2146, 2151, 2156, 2161, 2166, 2171, + 2176, 2181, 2186, 2191, 2196, 2201, 2206, 2211, 2216, 2221, + 2226, 2231, 2236, 2241, 2246, 2251, 2256, 2261, 2266, 2271, + 2276, 2281, 2287, 2293, 2299, 2305, 2311, 2317, 2323, 2328, + 2344, 2349, 2354, 2362, 2362, 2373, 2373, 2383, 2386, 2399, + 2417, 2441, 2445, 2451, 2456, 2467, 2470, 2476, 2485, 2488, + 2494, 2498, 2499, 2505, 2506, 2507, 2508, 2509, 2510, 2511, + 2515, 2516, 2520, 2516, 2532, 2533, 2537, 2537, 2544, 2544, + 2558, 2561, 2569, 2577, 2588, 2589, 2593, 2600, 2604, 2612, + 2616, 2629, 2629, 2649, 2652, 2658, 2670, 2682, 2682, 2697, + 2697, 2713, 2713, 2734, 2737, 2743, 2746, 2752, 2756, 2763, + 2768, 2773, 2780, 2783, 2792, 2796, 2803, 2806, 2812, 2812 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "CONST", "BOOL", + "FLOAT", "DOUBLE", "INT", "UINT", "INT64_T", "UINT64_T", "FLOAT16_T", + "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", + "SWITCH", "CASE", "DEFAULT", "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", + "IVEC2", "IVEC3", "IVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "UVEC2", + "UVEC3", "UVEC4", "U64VEC2", "U64VEC3", "U64VEC4", "VEC2", "VEC3", + "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", + "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", + "RESTRICT", "READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", + "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", + "F16MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", + "__EXPLICITINTERPAMD", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", + "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", + "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", + "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", + "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "ATOMIC_UINT", + "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", + "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", + "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", + "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", + "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", + "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", + "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", + "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", + "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", + "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", + "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", + "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", + "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", + "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D", + "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D", + "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY", + "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT", + "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY", + "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS", + "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", + "UTEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", + "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "IMAGE1D", + "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D", + "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT", + "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER", + "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY", + "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY", + "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS", + "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", + "STRUCT", "VOID", "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", + "DOUBLECONSTANT", "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT", + "UINT64CONSTANT", "BOOLCONSTANT", "FLOAT16CONSTANT", "LEFT_OP", + "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", + "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", + "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", + "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", + "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", + "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", + "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", + "AMPERSAND", "QUESTION", "INVARIANT", "PRECISE", "HIGH_PRECISION", + "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", + "SUPERP", "$accept", "variable_identifier", "primary_expression", + "postfix_expression", "integer_expression", "function_call", + "function_call_or_method", "function_call_generic", + "function_call_header_no_parameters", + "function_call_header_with_parameters", "function_call_header", + "function_identifier", "unary_expression", "unary_operator", + "multiplicative_expression", "additive_expression", "shift_expression", + "relational_expression", "equality_expression", "and_expression", + "exclusive_or_expression", "inclusive_or_expression", + "logical_and_expression", "logical_xor_expression", + "logical_or_expression", "conditional_expression", "$@1", + "assignment_expression", "assignment_operator", "expression", + "constant_expression", "declaration", "block_structure", "$@2", + "identifier_list", "function_prototype", "function_declarator", + "function_header_with_parameters", "function_header", + "parameter_declarator", "parameter_declaration", + "parameter_type_specifier", "init_declarator_list", "single_declaration", + "fully_specified_type", "invariant_qualifier", "interpolation_qualifier", + "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id", + "precise_qualifier", "type_qualifier", "single_type_qualifier", + "storage_qualifier", "type_name_list", "type_specifier", + "array_specifier", "type_specifier_nonarray", "precision_qualifier", + "struct_specifier", "$@3", "$@4", "struct_declaration_list", + "struct_declaration", "struct_declarator_list", "struct_declarator", + "initializer", "initializer_list", "declaration_statement", "statement", + "simple_statement", "compound_statement", "$@5", "$@6", + "statement_no_new_scope", "statement_scoped", "$@7", "$@8", + "compound_statement_no_new_scope", "statement_list", + "expression_statement", "selection_statement", + "selection_rest_statement", "condition", "switch_statement", "$@9", + "switch_statement_list", "case_label", "iteration_statement", "$@10", + "$@11", "$@12", "for_init_statement", "conditionopt", + "for_rest_statement", "jump_statement", "translation_unit", + "external_declaration", "function_definition", "$@13", YY_NULL +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 288, 289, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 290, 291, 291, 291, 291, 291, 291, 292, + 293, 294, 295, 295, 296, 296, 297, 297, 298, 299, + 299, 300, 300, 300, 300, 301, 301, 301, 301, 302, + 302, 302, 302, 303, 303, 303, 304, 304, 304, 305, + 305, 305, 305, 305, 306, 306, 306, 307, 307, 308, + 308, 309, 309, 310, 310, 311, 311, 312, 312, 313, + 314, 313, 315, 315, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 317, 317, 318, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 321, 320, 322, + 322, 323, 324, 324, 325, 325, 326, 327, 327, 328, + 328, 328, 328, 329, 330, 330, 330, 330, 330, 331, + 331, 331, 331, 331, 332, 332, 333, 334, 334, 334, + 334, 335, 336, 336, 337, 337, 337, 338, 339, 339, + 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 342, 342, 343, 343, 344, + 344, 344, 344, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 348, 347, 349, 347, 350, 350, 351, + 351, 352, 352, 353, 353, 354, 354, 354, 355, 355, + 356, 357, 357, 358, 358, 358, 358, 358, 358, 358, + 359, 360, 361, 359, 362, 362, 364, 363, 365, 363, + 366, 366, 367, 367, 368, 368, 369, 370, 370, 371, + 371, 373, 372, 374, 374, 375, 375, 377, 376, 378, + 376, 379, 376, 380, 380, 381, 381, 382, 382, 383, + 383, 383, 383, 383, 384, 384, 385, 385, 387, 386 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 4, 1, 3, 2, 2, 1, + 1, 1, 2, 2, 2, 1, 2, 3, 2, 1, + 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, + 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, + 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, + 4, 2, 3, 4, 2, 3, 4, 0, 6, 2, + 3, 2, 1, 1, 2, 3, 3, 2, 3, 2, + 1, 2, 1, 1, 1, 3, 4, 6, 5, 1, + 2, 3, 5, 4, 1, 2, 1, 1, 1, 1, + 1, 4, 1, 3, 1, 3, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 4, 1, 3, 1, 2, 2, + 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, + 4, 1, 3, 1, 2, 1, 3, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 0, 5, 1, 1, 0, 2, 0, 2, + 2, 3, 1, 2, 1, 2, 5, 3, 1, 1, + 4, 0, 8, 0, 1, 3, 2, 0, 6, 0, + 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, + 2, 2, 3, 2, 1, 2, 1, 1, 0, 3 +}; + +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 0, 147, 148, 146, 181, 174, 175, 177, 178, 179, + 180, 176, 163, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 182, 183, + 184, 206, 207, 208, 152, 150, 151, 149, 155, 153, + 154, 156, 157, 158, 159, 160, 161, 162, 185, 186, + 187, 218, 219, 220, 188, 189, 190, 230, 231, 232, + 129, 128, 127, 0, 130, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 256, 257, 258, 259, 260, 261, + 263, 264, 265, 266, 267, 268, 270, 271, 272, 273, + 274, 275, 276, 254, 255, 262, 269, 277, 278, 279, + 280, 281, 282, 351, 283, 284, 285, 286, 287, 288, + 289, 290, 292, 293, 294, 295, 296, 297, 299, 300, + 301, 302, 303, 304, 306, 307, 308, 309, 310, 311, + 291, 298, 305, 312, 313, 314, 315, 316, 317, 352, + 353, 354, 355, 356, 357, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 0, 173, + 359, 126, 137, 360, 361, 362, 0, 437, 0, 438, + 0, 103, 102, 0, 114, 119, 144, 143, 141, 145, + 0, 138, 140, 124, 167, 142, 358, 0, 434, 436, + 0, 0, 0, 365, 0, 0, 91, 88, 0, 101, + 0, 110, 104, 112, 0, 113, 0, 89, 120, 0, + 94, 139, 125, 0, 168, 1, 435, 165, 0, 136, + 134, 0, 132, 363, 0, 0, 92, 0, 0, 439, + 105, 109, 111, 107, 115, 106, 0, 121, 97, 0, + 95, 0, 2, 8, 9, 4, 5, 6, 7, 11, + 10, 0, 0, 0, 169, 37, 36, 38, 35, 3, + 13, 31, 15, 20, 21, 0, 0, 25, 0, 39, + 0, 43, 46, 49, 54, 57, 59, 61, 63, 65, + 67, 69, 0, 29, 0, 164, 0, 0, 131, 0, + 0, 0, 0, 0, 367, 90, 93, 0, 0, 419, + 0, 0, 0, 0, 0, 0, 0, 0, 391, 400, + 404, 39, 72, 85, 0, 380, 0, 124, 383, 402, + 382, 381, 0, 384, 385, 386, 387, 388, 389, 108, + 0, 116, 0, 375, 123, 0, 0, 99, 0, 96, + 32, 33, 0, 17, 18, 0, 0, 23, 22, 0, + 173, 26, 28, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 70, 170, 171, 0, 166, 87, 135, + 133, 0, 0, 373, 0, 371, 366, 368, 430, 429, + 0, 421, 0, 433, 431, 0, 0, 0, 416, 417, + 390, 0, 75, 76, 78, 77, 80, 81, 82, 83, + 84, 79, 74, 0, 0, 405, 401, 403, 118, 0, + 378, 0, 122, 0, 100, 12, 0, 19, 16, 27, + 40, 41, 42, 45, 44, 47, 48, 52, 53, 50, + 51, 55, 56, 58, 60, 62, 64, 66, 68, 0, + 172, 364, 0, 374, 0, 369, 0, 0, 0, 432, + 0, 415, 0, 392, 73, 86, 117, 376, 0, 98, + 14, 0, 370, 372, 0, 424, 423, 426, 398, 411, + 409, 0, 0, 0, 0, 377, 379, 0, 0, 425, + 0, 0, 408, 0, 0, 406, 0, 0, 0, 393, + 71, 0, 427, 0, 398, 397, 399, 413, 0, 395, + 418, 394, 0, 428, 422, 407, 414, 0, 410, 420, + 412 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 309, 310, 311, 476, 312, 313, 314, 315, 316, + 317, 318, 361, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 362, 499, 363, 463, 364, + 429, 365, 218, 386, 291, 366, 220, 221, 222, 251, + 252, 253, 223, 224, 225, 226, 227, 228, 271, 272, + 229, 230, 231, 232, 268, 333, 264, 234, 235, 236, + 340, 274, 343, 344, 434, 435, 384, 471, 368, 369, + 370, 371, 451, 534, 560, 542, 543, 544, 561, 372, + 373, 374, 545, 533, 375, 546, 567, 376, 377, 512, + 440, 507, 527, 540, 541, 378, 237, 238, 239, 248 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -512 +static const yytype_int16 yypact[] = +{ + 2538, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -235, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -201, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -203, -512, + -512, -512, -512, -512, -512, -512, -153, -512, -210, -220, + -152, -189, 4119, -160, -512, -128, -512, -512, -512, -512, + 3079, -512, -512, -512, -122, -512, -512, 564, -512, -512, + -72, -46, -105, -512, 6148, -216, -512, -512, -102, -512, + 4119, -512, -512, -512, 4119, -68, -66, -512, -225, -187, + -512, -512, -512, 4606, -98, -512, -512, -512, -179, -512, + -104, -172, -512, -512, 4119, -101, -512, -186, 846, -512, + -512, -512, -512, -122, -233, -512, 4870, -217, -512, -63, + -512, -151, -512, -512, -512, -512, -512, -512, -512, -512, + -512, 5648, 5648, 5648, -512, -512, -512, -512, -512, -512, + -512, -209, -512, -512, -512, -94, -170, 5898, -92, -512, + 5648, -139, -133, -109, -223, -103, -111, -108, -106, -71, + -74, -218, -86, -512, 5134, -512, -52, 5648, -512, -46, + 4119, 4119, -50, 3342, -512, -512, -512, -90, -89, -512, + -78, -76, -85, 5398, -70, 5648, -80, -69, -64, -512, + -512, -184, -512, -512, -150, -512, -220, -67, -512, -512, + -512, -512, 1128, -512, -512, -512, -512, -512, -512, -98, + 4870, -183, 4870, -512, -512, 4870, 4119, -512, -40, -512, + -512, -512, -169, -512, -512, 5648, -35, -512, -512, 5648, + -65, -512, -512, -512, 5648, 5648, 5648, 5648, 5648, 5648, + 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, + 5648, 5648, 5648, -512, -512, -512, -61, -512, -512, -512, + -512, 3601, -50, -122, -144, -512, -512, -512, -512, -512, + 1410, -512, 5648, -512, -512, -142, 5648, -123, -512, -512, + -512, 1410, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, 5648, 5648, -512, -512, -512, -512, 4870, + -512, -226, -512, 3860, -512, -512, -60, -62, -512, -512, + -512, -512, -512, -139, -139, -133, -133, -109, -109, -109, + -109, -223, -223, -103, -111, -108, -106, -71, -74, 5648, + -512, -512, -138, -98, -50, -512, -33, 2256, -168, -512, + -167, -512, 2798, 1410, -512, -512, -512, -512, 4342, -512, + -512, -121, -512, -512, -56, -512, -512, 2798, -58, -512, + -62, -32, 4119, -49, -51, -512, -512, 5648, 5648, -512, + -57, -45, 177, -55, 1974, -512, -47, -44, 1692, -512, + -512, -165, 5648, 1692, -58, -512, -512, 1410, 4870, -512, + -512, -512, -48, -62, -512, -512, 1410, -42, -512, -512, + -512 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -96, -512, -263, -262, -304, -264, -204, -199, + -205, -197, -206, -196, -512, -252, -512, -282, -512, -296, + -512, 3, -512, -512, -512, 6, -512, -512, -512, -29, + -23, -26, -512, -512, -489, -512, -512, -512, -512, -118, + -512, -221, -228, -512, -512, 0, -240, -512, 13, -512, + -512, -512, -328, -330, -200, -271, -363, -512, -273, -364, + -511, -308, -512, -512, -314, -309, -512, -512, -2, -441, + -260, -512, -512, -279, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, 12, -512, -512 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -397 +static const yytype_int16 yytable[] = +{ + 233, 254, 261, 217, 383, 277, 219, 392, 467, 269, + 513, 332, 431, 437, 245, 411, 412, 468, 287, 470, + 240, 242, 472, 531, 263, 422, 261, 393, 394, 254, + 285, 380, 263, 556, 517, 401, 518, 559, 531, 286, + 334, 263, 559, 379, 381, 247, -30, 385, 395, 276, + 413, 414, 396, 341, 241, 246, 243, 445, 473, 447, + 423, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 334, 288, 250, 334, 289, 506, 335, 290, 346, + 462, 469, 426, 336, 338, 428, 398, 475, 528, 529, + 339, 562, 399, 464, 464, 464, 258, 464, 383, 477, + 383, 437, 256, 383, 249, 257, 516, 487, 488, 489, + 490, 388, 464, 261, 389, 465, 566, 479, 504, 341, + 464, 505, 341, 509, 504, 409, 410, 522, 213, 214, + 215, 404, 405, 406, 407, 263, 408, 415, 416, 464, + 511, 464, 537, 437, 483, 484, 508, 485, 486, 467, + 510, 491, 492, 267, 273, 536, 283, 278, 284, 334, + 337, 387, 397, 402, 345, 341, 417, 319, 418, 419, + 421, 420, 424, 427, 433, 438, 439, 441, 270, 442, + 443, 514, 515, 448, 474, 446, 449, 383, -29, 478, + 524, -24, 547, 503, 554, 568, 450, 500, 520, 538, + 464, -396, 467, 521, 358, 390, 391, 548, 552, 549, + 341, 553, 557, 493, 495, 497, 530, 569, 570, 494, + 558, 430, 255, 496, 403, 281, 498, 280, 282, 244, + 262, 530, 502, 523, 525, 555, 383, 233, 319, 564, + 217, 319, 551, 219, 275, 565, 279, 526, 539, 266, + 255, 0, 341, 0, 255, 550, 563, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 0, 383, 0, 367, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 261, 0, 532, 0, 480, 481, + 482, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 342, 432, 0, 342, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, + 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, + 0, 0, 367, 367, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, + 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 367, 0, 0, 0, 367, 0, + 0, 0, 0, 367, 0, 0, 0, 367, 0, 0, + 0, 0, 0, 0, 265, 0, 367, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 357, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 0, 358, 359, 0, 0, 0, + 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, + 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 357, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 0, 0, 0, 358, 466, 0, + 0, 0, 0, 360, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 216, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 357, 292, 210, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 303, 0, 0, 0, 358, + 0, 0, 0, 0, 0, 360, 305, 306, 307, 308, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, + 212, 213, 214, 215, 216, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 357, 292, 210, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, + 0, 278, 0, 0, 0, 0, 0, 360, 305, 306, + 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 216, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 357, 292, 210, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, + 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, + 305, 306, 307, 308, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, + 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 216, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 259, 210, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 260, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 0, 0, 210, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 436, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 501, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, + 211, 212, 213, 214, 215, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 519, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 211, + 212, 213, 214, 215, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 0, 210, 0, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, + 213, 214, 215, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 0, 292, 210, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, + 0, 382, 535, 0, 0, 0, 0, 0, 305, 306, + 307, 308, 4, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, + 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 304, 0, 0, 0, 0, 0, + 0, 0, 305, 306, 307, 308, 4, 5, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 0, 0, 0, 0, 0, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 0, 292, 210, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 303, 0, 0, 0, 382, + 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, + 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, + 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 0, 292, 210, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, + 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, + 305, 306, 307, 308, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 444, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 400, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 0, 210 +}; + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-512))) + +#define yytable_value_is_error(Yytable_value) \ + YYID (0) + +static const yytype_int16 yycheck[] = +{ + 0, 222, 230, 0, 286, 245, 0, 303, 372, 55, + 451, 263, 340, 343, 224, 238, 239, 380, 258, 382, + 255, 224, 385, 512, 257, 243, 254, 236, 237, 250, + 255, 264, 257, 544, 260, 317, 262, 548, 527, 264, + 257, 257, 553, 283, 284, 265, 255, 264, 257, 265, + 273, 274, 261, 274, 255, 265, 259, 353, 386, 355, + 278, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 257, 259, 262, 257, 262, 440, 256, 265, 265, + 264, 264, 334, 262, 256, 337, 256, 256, 256, 256, + 262, 256, 262, 262, 262, 262, 224, 262, 380, 395, + 382, 431, 262, 385, 256, 265, 469, 411, 412, 413, + 414, 262, 262, 341, 265, 265, 557, 399, 262, 340, + 262, 265, 343, 265, 262, 234, 235, 265, 281, 282, + 283, 270, 271, 272, 267, 257, 269, 240, 241, 262, + 263, 262, 263, 473, 407, 408, 442, 409, 410, 513, + 446, 415, 416, 225, 259, 518, 224, 259, 224, 257, + 264, 224, 256, 255, 265, 386, 277, 263, 276, 275, + 244, 242, 258, 225, 224, 265, 265, 255, 224, 255, + 265, 463, 464, 263, 224, 255, 255, 469, 255, 224, + 223, 256, 224, 433, 17, 558, 260, 258, 258, 255, + 262, 259, 566, 499, 259, 301, 302, 256, 265, 260, + 431, 256, 259, 417, 419, 421, 512, 265, 260, 418, + 264, 339, 222, 420, 320, 254, 422, 250, 254, 216, + 230, 527, 432, 504, 507, 543, 518, 237, 334, 553, + 237, 337, 538, 237, 244, 554, 248, 507, 527, 237, + 250, -1, 473, -1, 254, 537, 552, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 274, -1, 558, -1, 278, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 532, -1, 527, -1, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 340, 341, -1, 343, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 431, -1, -1, -1, -1, -1, -1, -1, -1, + 440, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 451, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, + -1, -1, 512, 513, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, + -1, -1, 532, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 544, -1, -1, -1, 548, -1, + -1, -1, -1, 553, -1, -1, -1, 557, -1, -1, + -1, -1, -1, -1, 0, -1, 566, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, 225, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, -1, 259, 260, -1, -1, -1, + -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, -1, -1, -1, 259, 260, -1, + -1, -1, -1, 265, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, + -1, -1, -1, -1, -1, 265, 266, 267, 268, 269, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 284, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, + -1, 259, -1, -1, -1, -1, -1, 265, 266, 267, + 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 279, 280, 281, 282, 283, 284, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, + 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, + 266, 267, 268, 269, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, 225, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, 224, 225, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 265, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, -1, -1, 279, 280, + 281, 282, 283, -1, -1, -1, -1, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, -1, 225, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, + -1, 279, 280, 281, 282, 283, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, -1, -1, 225, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, + 279, 280, 281, 282, 283, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, -1, 225, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, 225, -1, -1, -1, 6, 7, + 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, + -1, 259, 260, -1, -1, -1, -1, -1, 266, 267, + 268, 269, 6, 7, 8, 9, 10, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, + -1, -1, -1, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, 258, -1, -1, -1, -1, -1, + -1, -1, 266, 267, 268, 269, 6, 7, 8, 9, + 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, -1, -1, -1, -1, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, + -1, -1, -1, -1, -1, -1, 266, 267, 268, 269, + 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, + -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, + 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, + -1, -1, 258, -1, -1, -1, -1, -1, -1, -1, + 266, 267, 268, 269, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, 265, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, 225 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 225, 279, 280, 281, 282, 283, 284, 319, 320, 323, + 324, 325, 326, 330, 331, 332, 333, 334, 335, 338, + 339, 340, 341, 343, 345, 346, 347, 384, 385, 386, + 255, 255, 224, 259, 346, 224, 265, 265, 387, 256, + 262, 327, 328, 329, 339, 343, 262, 265, 224, 224, + 265, 340, 343, 257, 344, 0, 385, 225, 342, 55, + 224, 336, 337, 259, 349, 343, 265, 344, 259, 366, + 328, 327, 329, 224, 224, 255, 264, 344, 259, 262, + 265, 322, 224, 226, 227, 228, 229, 230, 231, 232, + 233, 236, 237, 255, 258, 266, 267, 268, 269, 289, + 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 343, 257, 256, 262, 264, 256, 262, + 348, 339, 343, 350, 351, 265, 265, 14, 15, 16, + 18, 19, 20, 21, 22, 23, 24, 223, 259, 260, + 265, 300, 313, 315, 317, 319, 323, 343, 356, 357, + 358, 359, 367, 368, 369, 372, 375, 376, 383, 344, + 264, 344, 259, 315, 354, 264, 321, 224, 262, 265, + 300, 300, 317, 236, 237, 257, 261, 256, 256, 262, + 222, 315, 255, 300, 270, 271, 272, 267, 269, 234, + 235, 238, 239, 273, 274, 240, 241, 277, 276, 275, + 242, 244, 243, 278, 258, 258, 313, 225, 313, 318, + 337, 350, 343, 224, 352, 353, 260, 351, 265, 265, + 378, 255, 255, 265, 265, 317, 255, 317, 263, 255, + 260, 360, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 264, 316, 262, 265, 260, 357, 354, 264, + 354, 355, 354, 350, 224, 256, 292, 317, 224, 315, + 300, 300, 300, 302, 302, 303, 303, 304, 304, 304, + 304, 305, 305, 306, 307, 308, 309, 310, 311, 314, + 258, 260, 352, 344, 262, 265, 357, 379, 317, 265, + 317, 263, 377, 367, 315, 315, 354, 260, 262, 260, + 258, 317, 265, 353, 223, 356, 368, 380, 256, 256, + 317, 332, 339, 371, 361, 260, 354, 263, 255, 371, + 381, 382, 363, 364, 365, 370, 373, 224, 256, 260, + 315, 317, 265, 256, 17, 359, 358, 259, 264, 358, + 362, 366, 256, 317, 362, 363, 367, 374, 354, 265, + 260 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ + +#define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (pParseContext, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval, parseContext) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, pParseContext); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif +{ + FILE *yyo = yyoutput; + YYUSE (yyo); + if (!yyvaluep) + return; + YYUSE (pParseContext); +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) +#else +static void +yy_reduce_print (yyvsp, yyrule, pParseContext) + YYSTYPE *yyvsp; + int yyrule; + glslang::TParseContext* pParseContext; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , pParseContext); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule, pParseContext); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULL; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + + for details. YYERROR is fine as it does not invoke this + function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yydestruct (yymsg, yytype, yyvaluep, pParseContext) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; + glslang::TParseContext* pParseContext; +#endif +{ + YYUSE (yyvaluep); + YYUSE (pParseContext); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (glslang::TParseContext* pParseContext) +#else +int +yyparse (pParseContext) + glslang::TParseContext* pParseContext; +#endif +#endif +{ +/* The lookahead symbol. */ +int yychar; + + +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +static YYSTYPE yyval_default; +# define YY_INITIAL_VALUE(Value) = Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); + + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +/* Line 1792 of yacc.c */ +#line 250 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[(1) - (1)].lex).loc, (yyvsp[(1) - (1)].lex).symbol, (yyvsp[(1) - (1)].lex).string); + } + break; + + case 3: +/* Line 1792 of yacc.c */ +#line 256 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 4: +/* Line 1792 of yacc.c */ +#line 259 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i, (yyvsp[(1) - (1)].lex).loc, true); + } + break; + + case 5: +/* Line 1792 of yacc.c */ +#line 262 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u, (yyvsp[(1) - (1)].lex).loc, true); + } + break; + + case 6: +/* Line 1792 of yacc.c */ +#line 266 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i64, (yyvsp[(1) - (1)].lex).loc, true); + } + break; + + case 7: +/* Line 1792 of yacc.c */ +#line 270 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u64, (yyvsp[(1) - (1)].lex).loc, true); + } + break; + + case 8: +/* Line 1792 of yacc.c */ +#line 274 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat, (yyvsp[(1) - (1)].lex).loc, true); + } + break; + + case 9: +/* Line 1792 of yacc.c */ +#line 277 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtDouble, (yyvsp[(1) - (1)].lex).loc, true); + } + break; + + case 10: +/* Line 1792 of yacc.c */ +#line 281 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat16, (yyvsp[(1) - (1)].lex).loc, true); +#endif + } + break; + + case 11: +/* Line 1792 of yacc.c */ +#line 287 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).b, (yyvsp[(1) - (1)].lex).loc, true); + } + break; + + case 12: +/* Line 1792 of yacc.c */ +#line 290 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) + (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); + } + break; + + case 13: +/* Line 1792 of yacc.c */ +#line 298 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 14: +/* Line 1792 of yacc.c */ +#line 301 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.intermTypedNode), (yyvsp[(3) - (4)].interm.intermTypedNode)); + } + break; + + case 15: +/* Line 1792 of yacc.c */ +#line 304 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 16: +/* Line 1792 of yacc.c */ +#line 307 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[(3) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode), *(yyvsp[(3) - (3)].lex).string); + } + break; + + case 17: +/* Line 1792 of yacc.c */ +#line 310 "glslang.y" + { + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "++", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "++", EOpPostIncrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); + } + break; + + case 18: +/* Line 1792 of yacc.c */ +#line 315 "glslang.y" + { + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "--", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "--", EOpPostDecrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); + } + break; + + case 19: +/* Line 1792 of yacc.c */ +#line 323 "glslang.y" + { + parseContext.integerCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 20: +/* Line 1792 of yacc.c */ +#line 330 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[(1) - (1)].interm).loc, (yyvsp[(1) - (1)].interm).function, (yyvsp[(1) - (1)].interm).intermNode); + delete (yyvsp[(1) - (1)].interm).function; + } + break; + + case 21: +/* Line 1792 of yacc.c */ +#line 337 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (1)].interm); + } + break; + + case 22: +/* Line 1792 of yacc.c */ +#line 343 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + } + break; + + case 23: +/* Line 1792 of yacc.c */ +#line 347 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + } + break; + + case 24: +/* Line 1792 of yacc.c */ +#line 354 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (2)].interm); + } + break; + + case 25: +/* Line 1792 of yacc.c */ +#line 357 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (1)].interm); + } + break; + + case 26: +/* Line 1792 of yacc.c */ +#line 363 "glslang.y" + { + TParameter param = { 0, new TType }; + param.type->shallowCopy((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (2)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (2)].interm).function; + (yyval.interm).intermNode = (yyvsp[(2) - (2)].interm.intermTypedNode); + } + break; + + case 27: +/* Line 1792 of yacc.c */ +#line 370 "glslang.y" + { + TParameter param = { 0, new TType }; + param.type->shallowCopy((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (3)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (3)].interm).function; + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 28: +/* Line 1792 of yacc.c */ +#line 380 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (2)].interm); + } + break; + + case 29: +/* Line 1792 of yacc.c */ +#line 388 "glslang.y" + { + // Constructor + (yyval.interm).intermNode = 0; + (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type)); + } + break; + + case 30: +/* Line 1792 of yacc.c */ +#line 393 "glslang.y" + { + // + // Should be a method or subroutine call, but we haven't recognized the arguments yet. + // + (yyval.interm).function = 0; + (yyval.interm).intermNode = 0; + + TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode(); + if (method) { + (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); + (yyval.interm).intermNode = method->getObject(); + } else { + TIntermSymbol* symbol = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsSymbolNode(); + if (symbol) { + parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); + TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); + (yyval.interm).function = function; + } else + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); + } + + if ((yyval.interm).function == 0) { + // error recover + TString empty(""); + (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); + } + } + break; + + case 31: +/* Line 1792 of yacc.c */ +#line 423 "glslang.y" + { + parseContext.variableCheck((yyvsp[(1) - (1)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + if (TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode()) + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); + } + break; + + case 32: +/* Line 1792 of yacc.c */ +#line 429 "glslang.y" + { + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "++", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "++", EOpPreIncrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); + } + break; + + case 33: +/* Line 1792 of yacc.c */ +#line 433 "glslang.y" + { + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "--", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "--", EOpPreDecrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); + } + break; + + case 34: +/* Line 1792 of yacc.c */ +#line 437 "glslang.y" + { + if ((yyvsp[(1) - (2)].interm).op != EOpNull) { + char errorOp[2] = {0, 0}; + switch((yyvsp[(1) - (2)].interm).op) { + case EOpNegative: errorOp[0] = '-'; break; + case EOpLogicalNot: errorOp[0] = '!'; break; + case EOpBitwiseNot: errorOp[0] = '~'; break; + default: break; // some compilers want this + } + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].interm).loc, errorOp, (yyvsp[(1) - (2)].interm).op, (yyvsp[(2) - (2)].interm.intermTypedNode)); + } else { + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode); + if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) + (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); + } + } + break; + + case 35: +/* Line 1792 of yacc.c */ +#line 457 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNull; } + break; + + case 36: +/* Line 1792 of yacc.c */ +#line 458 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNegative; } + break; + + case 37: +/* Line 1792 of yacc.c */ +#line 459 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLogicalNot; } + break; + + case 38: +/* Line 1792 of yacc.c */ +#line 460 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpBitwiseNot; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise not"); } + break; + + case 39: +/* Line 1792 of yacc.c */ +#line 466 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 40: +/* Line 1792 of yacc.c */ +#line 467 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "*", EOpMul, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 41: +/* Line 1792 of yacc.c */ +#line 472 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "/", EOpDiv, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 42: +/* Line 1792 of yacc.c */ +#line 477 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "%"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "%", EOpMod, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 43: +/* Line 1792 of yacc.c */ +#line 486 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 44: +/* Line 1792 of yacc.c */ +#line 487 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "+", EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 45: +/* Line 1792 of yacc.c */ +#line 492 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "-", EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 46: +/* Line 1792 of yacc.c */ +#line 500 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 47: +/* Line 1792 of yacc.c */ +#line 501 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift left"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<<", EOpLeftShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 48: +/* Line 1792 of yacc.c */ +#line 507 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift right"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">>", EOpRightShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 49: +/* Line 1792 of yacc.c */ +#line 516 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 50: +/* Line 1792 of yacc.c */ +#line 517 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<", EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 51: +/* Line 1792 of yacc.c */ +#line 522 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">", EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 52: +/* Line 1792 of yacc.c */ +#line 527 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<=", EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 53: +/* Line 1792 of yacc.c */ +#line 532 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 54: +/* Line 1792 of yacc.c */ +#line 540 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 55: +/* Line 1792 of yacc.c */ +#line 541 "glslang.y" + { + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "==", EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 56: +/* Line 1792 of yacc.c */ +#line 549 "glslang.y" + { + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "!=", EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 57: +/* Line 1792 of yacc.c */ +#line 560 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 58: +/* Line 1792 of yacc.c */ +#line 561 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise and"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&", EOpAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 59: +/* Line 1792 of yacc.c */ +#line 570 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 60: +/* Line 1792 of yacc.c */ +#line 571 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise exclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^", EOpExclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 61: +/* Line 1792 of yacc.c */ +#line 580 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 62: +/* Line 1792 of yacc.c */ +#line 581 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise inclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "|", EOpInclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + break; + + case 63: +/* Line 1792 of yacc.c */ +#line 590 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 64: +/* Line 1792 of yacc.c */ +#line 591 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&&", EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 65: +/* Line 1792 of yacc.c */ +#line 599 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 66: +/* Line 1792 of yacc.c */ +#line 600 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^^", EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 67: +/* Line 1792 of yacc.c */ +#line 608 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 68: +/* Line 1792 of yacc.c */ +#line 609 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "||", EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } + break; + + case 69: +/* Line 1792 of yacc.c */ +#line 617 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 70: +/* Line 1792 of yacc.c */ +#line 618 "glslang.y" + { + ++parseContext.controlFlowNestingLevel; + } + break; + + case 71: +/* Line 1792 of yacc.c */ +#line 621 "glslang.y" + { + --parseContext.controlFlowNestingLevel; + parseContext.boolCheck((yyvsp[(2) - (6)].lex).loc, (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (6)].lex).loc, "?", (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[(1) - (6)].interm.intermTypedNode), (yyvsp[(4) - (6)].interm.intermTypedNode), (yyvsp[(6) - (6)].interm.intermTypedNode), (yyvsp[(2) - (6)].lex).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.binaryOpError((yyvsp[(2) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(6) - (6)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(6) - (6)].interm.intermTypedNode); + } + } + break; + + case 72: +/* Line 1792 of yacc.c */ +#line 636 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 73: +/* Line 1792 of yacc.c */ +#line 637 "glslang.y" + { + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array assignment"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.specializationCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.lValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[(2) - (3)].interm).op, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].interm).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.assignError((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } + } + break; + + case 74: +/* Line 1792 of yacc.c */ +#line 652 "glslang.y" + { + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpAssign; + } + break; + + case 75: +/* Line 1792 of yacc.c */ +#line 656 "glslang.y" + { + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpMulAssign; + } + break; + + case 76: +/* Line 1792 of yacc.c */ +#line 660 "glslang.y" + { + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpDivAssign; + } + break; + + case 77: +/* Line 1792 of yacc.c */ +#line 664 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "%="); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpModAssign; + } + break; + + case 78: +/* Line 1792 of yacc.c */ +#line 669 "glslang.y" + { + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpAddAssign; + } + break; + + case 79: +/* Line 1792 of yacc.c */ +#line 673 "glslang.y" + { + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpSubAssign; + } + break; + + case 80: +/* Line 1792 of yacc.c */ +#line 677 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift left assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; + } + break; + + case 81: +/* Line 1792 of yacc.c */ +#line 681 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift right assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpRightShiftAssign; + } + break; + + case 82: +/* Line 1792 of yacc.c */ +#line 685 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-and assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAndAssign; + } + break; + + case 83: +/* Line 1792 of yacc.c */ +#line 689 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-xor assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; + } + break; + + case 84: +/* Line 1792 of yacc.c */ +#line 693 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-or assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; + } + break; + + case 85: +/* Line 1792 of yacc.c */ +#line 700 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 86: +/* Line 1792 of yacc.c */ +#line 703 "glslang.y" + { + parseContext.samplerConstructorLocationCheck((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.binaryOpError((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(3) - (3)].interm.intermTypedNode); + } + } + break; + + case 87: +/* Line 1792 of yacc.c */ +#line 714 "glslang.y" + { + parseContext.constantValueCheck((yyvsp[(1) - (1)].interm.intermTypedNode), ""); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 88: +/* Line 1792 of yacc.c */ +#line 721 "glslang.y" + { + parseContext.handleFunctionDeclarator((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).function, true /* prototype */); + (yyval.interm.intermNode) = 0; + // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature + } + break; + + case 89: +/* Line 1792 of yacc.c */ +#line 726 "glslang.y" + { + if ((yyvsp[(1) - (2)].interm).intermNode && (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()) + (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(1) - (2)].interm).intermNode; + } + break; + + case 90: +/* Line 1792 of yacc.c */ +#line 731 "glslang.y" + { + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ENoProfile, 130, 0, "precision statement"); + + // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope + parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); + parseContext.setDefaultPrecision((yyvsp[(1) - (4)].lex).loc, (yyvsp[(3) - (4)].interm.type), (yyvsp[(2) - (4)].interm.type).qualifier.precision); + (yyval.interm.intermNode) = 0; + } + break; + + case 91: +/* Line 1792 of yacc.c */ +#line 739 "glslang.y" + { + parseContext.declareBlock((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).typeList); + (yyval.interm.intermNode) = 0; + } + break; + + case 92: +/* Line 1792 of yacc.c */ +#line 743 "glslang.y" + { + parseContext.declareBlock((yyvsp[(1) - (3)].interm).loc, *(yyvsp[(1) - (3)].interm).typeList, (yyvsp[(2) - (3)].lex).string); + (yyval.interm.intermNode) = 0; + } + break; + + case 93: +/* Line 1792 of yacc.c */ +#line 747 "glslang.y" + { + parseContext.declareBlock((yyvsp[(1) - (4)].interm).loc, *(yyvsp[(1) - (4)].interm).typeList, (yyvsp[(2) - (4)].lex).string, (yyvsp[(3) - (4)].interm).arraySizes); + (yyval.interm.intermNode) = 0; + } + break; + + case 94: +/* Line 1792 of yacc.c */ +#line 751 "glslang.y" + { + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.updateStandaloneQualifierDefaults((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type)); + (yyval.interm.intermNode) = 0; + } + break; + + case 95: +/* Line 1792 of yacc.c */ +#line 756 "glslang.y" + { + parseContext.checkNoShaderLayouts((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).shaderQualifiers); + parseContext.addQualifierToExisting((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).qualifier, *(yyvsp[(2) - (3)].lex).string); + (yyval.interm.intermNode) = 0; + } + break; + + case 96: +/* Line 1792 of yacc.c */ +#line 761 "glslang.y" + { + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + (yyvsp[(3) - (4)].interm.identifierList)->push_back((yyvsp[(2) - (4)].lex).string); + parseContext.addQualifierToExisting((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier, *(yyvsp[(3) - (4)].interm.identifierList)); + (yyval.interm.intermNode) = 0; + } + break; + + case 97: +/* Line 1792 of yacc.c */ +#line 770 "glslang.y" + { parseContext.nestedBlockCheck((yyvsp[(1) - (3)].interm.type).loc); } + break; + + case 98: +/* Line 1792 of yacc.c */ +#line 770 "glslang.y" + { + --parseContext.structNestingLevel; + parseContext.blockName = (yyvsp[(2) - (6)].lex).string; + parseContext.globalQualifierFixCheck((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).shaderQualifiers); + parseContext.currentBlockQualifier = (yyvsp[(1) - (6)].interm.type).qualifier; + (yyval.interm).loc = (yyvsp[(1) - (6)].interm.type).loc; + (yyval.interm).typeList = (yyvsp[(5) - (6)].interm.typeList); + } + break; + + case 99: +/* Line 1792 of yacc.c */ +#line 781 "glslang.y" + { + (yyval.interm.identifierList) = new TIdentifierList; + (yyval.interm.identifierList)->push_back((yyvsp[(2) - (2)].lex).string); + } + break; + + case 100: +/* Line 1792 of yacc.c */ +#line 785 "glslang.y" + { + (yyval.interm.identifierList) = (yyvsp[(1) - (3)].interm.identifierList); + (yyval.interm.identifierList)->push_back((yyvsp[(3) - (3)].lex).string); + } + break; + + case 101: +/* Line 1792 of yacc.c */ +#line 792 "glslang.y" + { + (yyval.interm).function = (yyvsp[(1) - (2)].interm.function); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + } + break; + + case 102: +/* Line 1792 of yacc.c */ +#line 799 "glslang.y" + { + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); + } + break; + + case 103: +/* Line 1792 of yacc.c */ +#line 802 "glslang.y" + { + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); + } + break; + + case 104: +/* Line 1792 of yacc.c */ +#line 809 "glslang.y" + { + // Add the parameter + (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function); + if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid) + (yyvsp[(1) - (2)].interm.function)->addParameter((yyvsp[(2) - (2)].interm).param); + else + delete (yyvsp[(2) - (2)].interm).param.type; + } + break; + + case 105: +/* Line 1792 of yacc.c */ +#line 817 "glslang.y" + { + // + // Only first parameter of one-parameter functions can be void + // The check for named parameters not being void is done in parameter_declarator + // + if ((yyvsp[(3) - (3)].interm).param.type->getBasicType() == EbtVoid) { + // + // This parameter > first is void + // + parseContext.error((yyvsp[(2) - (3)].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); + delete (yyvsp[(3) - (3)].interm).param.type; + } else { + // Add the parameter + (yyval.interm.function) = (yyvsp[(1) - (3)].interm.function); + (yyvsp[(1) - (3)].interm.function)->addParameter((yyvsp[(3) - (3)].interm).param); + } + } + break; + + case 106: +/* Line 1792 of yacc.c */ +#line 837 "glslang.y" + { + if ((yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqTemporary) { + parseContext.error((yyvsp[(2) - (3)].lex).loc, "no qualifiers allowed for function return", + GetStorageQualifierString((yyvsp[(1) - (3)].interm.type).qualifier.storage), ""); + } + if ((yyvsp[(1) - (3)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + + // Add the function as a prototype after parsing it (we do not support recursion) + TFunction *function; + TType type((yyvsp[(1) - (3)].interm.type)); + function = new TFunction((yyvsp[(2) - (3)].lex).string, type); + (yyval.interm.function) = function; + } + break; + + case 107: +/* Line 1792 of yacc.c */ +#line 855 "glslang.y" + { + if ((yyvsp[(1) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (2)].interm.type).loc, *(yyvsp[(1) - (2)].interm.type).arraySizes); + } + if ((yyvsp[(1) - (2)].interm.type).basicType == EbtVoid) { + parseContext.error((yyvsp[(2) - (2)].lex).loc, "illegal use of type 'void'", (yyvsp[(2) - (2)].lex).string->c_str(), ""); + } + parseContext.reservedErrorCheck((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string); + + TParameter param = {(yyvsp[(2) - (2)].lex).string, new TType((yyvsp[(1) - (2)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + (yyval.interm).param = param; + } + break; + + case 108: +/* Line 1792 of yacc.c */ +#line 870 "glslang.y" + { + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + } + parseContext.arrayDimCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.type).arraySizes, (yyvsp[(3) - (3)].interm).arraySizes); + + parseContext.arraySizeRequiredCheck((yyvsp[(3) - (3)].interm).loc, *(yyvsp[(3) - (3)].interm).arraySizes); + parseContext.reservedErrorCheck((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string); + + (yyvsp[(1) - (3)].interm.type).arraySizes = (yyvsp[(3) - (3)].interm).arraySizes; + + TParameter param = { (yyvsp[(2) - (3)].lex).string, new TType((yyvsp[(1) - (3)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (3)].lex).loc; + (yyval.interm).param = param; + } + break; + + case 109: +/* Line 1792 of yacc.c */ +#line 893 "glslang.y" + { + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); + + } + break; + + case 110: +/* Line 1792 of yacc.c */ +#line 904 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (1)].interm); + + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + } + break; + + case 111: +/* Line 1792 of yacc.c */ +#line 914 "glslang.y" + { + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyvsp[(1) - (2)].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); + } + break; + + case 112: +/* Line 1792 of yacc.c */ +#line 924 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (1)].interm); + + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + } + break; + + case 113: +/* Line 1792 of yacc.c */ +#line 934 "glslang.y" + { + TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) }; + (yyval.interm).param = param; + if ((yyvsp[(1) - (1)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (1)].interm.type).loc, *(yyvsp[(1) - (1)].interm.type).arraySizes); + } + break; + + case 114: +/* Line 1792 of yacc.c */ +#line 943 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (1)].interm); + } + break; + + case 115: +/* Line 1792 of yacc.c */ +#line 946 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (3)].interm); + parseContext.declareVariable((yyvsp[(3) - (3)].lex).loc, *(yyvsp[(3) - (3)].lex).string, (yyvsp[(1) - (3)].interm).type); + } + break; + + case 116: +/* Line 1792 of yacc.c */ +#line 950 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (4)].interm); + parseContext.declareVariable((yyvsp[(3) - (4)].lex).loc, *(yyvsp[(3) - (4)].lex).string, (yyvsp[(1) - (4)].interm).type, (yyvsp[(4) - (4)].interm).arraySizes); + } + break; + + case 117: +/* Line 1792 of yacc.c */ +#line 954 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (6)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (6)].lex).loc, *(yyvsp[(3) - (6)].lex).string, (yyvsp[(1) - (6)].interm).type, (yyvsp[(4) - (6)].interm).arraySizes, (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, initNode, (yyvsp[(5) - (6)].lex).loc); + } + break; + + case 118: +/* Line 1792 of yacc.c */ +#line 959 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (5)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (5)].lex).loc, *(yyvsp[(3) - (5)].lex).string, (yyvsp[(1) - (5)].interm).type, 0, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (5)].interm).intermNode, initNode, (yyvsp[(4) - (5)].lex).loc); + } + break; + + case 119: +/* Line 1792 of yacc.c */ +#line 967 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (1)].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); + } + break; + + case 120: +/* Line 1792 of yacc.c */ +#line 972 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (2)].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareVariable((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string, (yyvsp[(1) - (2)].interm.type)); + } + break; + + case 121: +/* Line 1792 of yacc.c */ +#line 977 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (3)].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareVariable((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string, (yyvsp[(1) - (3)].interm.type), (yyvsp[(3) - (3)].interm).arraySizes); + } + break; + + case 122: +/* Line 1792 of yacc.c */ +#line 982 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (5)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (5)].lex).loc, *(yyvsp[(2) - (5)].lex).string, (yyvsp[(1) - (5)].interm.type), (yyvsp[(3) - (5)].interm).arraySizes, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(4) - (5)].lex).loc); + } + break; + + case 123: +/* Line 1792 of yacc.c */ +#line 987 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (4)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(3) - (4)].lex).loc); + } + break; + + case 124: +/* Line 1792 of yacc.c */ +#line 996 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier, (yyval.interm.type)); + if ((yyvsp[(1) - (1)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + } + + parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); + } + break; + + case 125: +/* Line 1792 of yacc.c */ +#line 1007 "glslang.y" + { + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, (yyvsp[(2) - (2)].interm.type)); + + if ((yyvsp[(2) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + } + + if ((yyvsp[(2) - (2)].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier)) + (yyvsp[(2) - (2)].interm.type).arraySizes = 0; + + parseContext.checkNoShaderLayouts((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + (yyvsp[(2) - (2)].interm.type).shaderQualifiers.merge((yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).qualifier, (yyvsp[(1) - (2)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).basicType, (yyvsp[(2) - (2)].interm.type).qualifier); + + (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); + + if (! (yyval.interm.type).qualifier.isInterpolation() && + ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || + (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) + (yyval.interm.type).qualifier.smooth = true; + } + break; + + case 126: +/* Line 1792 of yacc.c */ +#line 1034 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "invariant"); + parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.invariant = true; + } + break; + + case 127: +/* Line 1792 of yacc.c */ +#line 1043 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "smooth"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.smooth = true; + } + break; + + case 128: +/* Line 1792 of yacc.c */ +#line 1050 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "flat"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.flat = true; + } + break; + + case 129: +/* Line 1792 of yacc.c */ +#line 1057 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "noperspective"); + parseContext.requireProfile((yyvsp[(1) - (1)].lex).loc, ~EEsProfile, "noperspective"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "noperspective"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.nopersp = true; + } + break; + + case 130: +/* Line 1792 of yacc.c */ +#line 1064 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "__explicitInterpAMD"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.explicitInterp = true; +#endif + } + break; + + case 131: +/* Line 1792 of yacc.c */ +#line 1076 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(3) - (4)].interm.type); + } + break; + + case 132: +/* Line 1792 of yacc.c */ +#line 1082 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 133: +/* Line 1792 of yacc.c */ +#line 1085 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (3)].interm.type); + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(3) - (3)].interm.type).shaderQualifiers); + parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[(3) - (3)].interm.type).qualifier, false); + } + break; + + case 134: +/* Line 1792 of yacc.c */ +#line 1092 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (1)].lex).string); + } + break; + + case 135: +/* Line 1792 of yacc.c */ +#line 1096 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (3)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (3)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (3)].lex).string, (yyvsp[(3) - (3)].interm.intermTypedNode)); + } + break; + + case 136: +/* Line 1792 of yacc.c */ +#line 1100 "glslang.y" + { // because "shared" is both an identifier and a keyword + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + TString strShared("shared"); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), strShared); + } + break; + + case 137: +/* Line 1792 of yacc.c */ +#line 1108 "glslang.y" + { + parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.noContraction = true; + } + break; + + case 138: +/* Line 1792 of yacc.c */ +#line 1117 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 139: +/* Line 1792 of yacc.c */ +#line 1120 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + if ((yyval.interm.type).basicType == EbtVoid) + (yyval.interm.type).basicType = (yyvsp[(2) - (2)].interm.type).basicType; + + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(2) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[(2) - (2)].interm.type).qualifier, false); + } + break; + + case 140: +/* Line 1792 of yacc.c */ +#line 1131 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 141: +/* Line 1792 of yacc.c */ +#line 1134 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 142: +/* Line 1792 of yacc.c */ +#line 1137 "glslang.y" + { + parseContext.checkPrecisionQualifier((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier.precision); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 143: +/* Line 1792 of yacc.c */ +#line 1141 "glslang.y" + { + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 144: +/* Line 1792 of yacc.c */ +#line 1145 "glslang.y" + { + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 145: +/* Line 1792 of yacc.c */ +#line 1149 "glslang.y" + { + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + } + break; + + case 146: +/* Line 1792 of yacc.c */ +#line 1156 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant + } + break; + + case 147: +/* Line 1792 of yacc.c */ +#line 1160 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangVertex, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "attribute"); + + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "attribute"); + + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqVaryingIn; + } + break; + + case 148: +/* Line 1792 of yacc.c */ +#line 1172 "glslang.y" + { + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "varying"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "varying"); + + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "varying"); + + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + if (parseContext.language == EShLangVertex) + (yyval.interm.type).qualifier.storage = EvqVaryingOut; + else + (yyval.interm.type).qualifier.storage = EvqVaryingIn; + } + break; + + case 149: +/* Line 1792 of yacc.c */ +#line 1186 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "inout"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqInOut; + } + break; + + case 150: +/* Line 1792 of yacc.c */ +#line 1191 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "in"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqIn; + } + break; + + case 151: +/* Line 1792 of yacc.c */ +#line 1197 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "out"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqOut; + } + break; + + case 152: +/* Line 1792 of yacc.c */ +#line 1203 "glslang.y" + { + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 120, 0, "centroid"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "centroid"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "centroid"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.centroid = true; + } + break; + + case 153: +/* Line 1792 of yacc.c */ +#line 1210 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "patch"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.patch = true; + } + break; + + case 154: +/* Line 1792 of yacc.c */ +#line 1216 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "sample"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.sample = true; + } + break; + + case 155: +/* Line 1792 of yacc.c */ +#line 1221 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "uniform"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; + } + break; + + case 156: +/* Line 1792 of yacc.c */ +#line 1226 "glslang.y" + { + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "buffer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqBuffer; + } + break; + + case 157: +/* Line 1792 of yacc.c */ +#line 1231 "glslang.y" + { + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangCompute, "shared"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqShared; + } + break; + + case 158: +/* Line 1792 of yacc.c */ +#line 1238 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.coherent = true; + } + break; + + case 159: +/* Line 1792 of yacc.c */ +#line 1242 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.volatil = true; + } + break; + + case 160: +/* Line 1792 of yacc.c */ +#line 1246 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.restrict = true; + } + break; + + case 161: +/* Line 1792 of yacc.c */ +#line 1250 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.readonly = true; + } + break; + + case 162: +/* Line 1792 of yacc.c */ +#line 1254 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.writeonly = true; + } + break; + + case 163: +/* Line 1792 of yacc.c */ +#line 1258 "glslang.y" + { + parseContext.spvRemoved((yyvsp[(1) - (1)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; + } + break; + + case 164: +/* Line 1792 of yacc.c */ +#line 1264 "glslang.y" + { + parseContext.spvRemoved((yyvsp[(1) - (4)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (4)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (4)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; + // TODO: 4.0 semantics: subroutines + // 1) make sure each identifier is a type declared earlier with SUBROUTINE + // 2) save all of the identifiers for future comparison with the declared function + } + break; + + case 165: +/* Line 1792 of yacc.c */ +#line 1276 "glslang.y" + { + // TODO: 4.0 functionality: subroutine type to list + } + break; + + case 166: +/* Line 1792 of yacc.c */ +#line 1279 "glslang.y" + { + } + break; + + case 167: +/* Line 1792 of yacc.c */ +#line 1284 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); + } + break; + + case 168: +/* Line 1792 of yacc.c */ +#line 1288 "glslang.y" + { + parseContext.arrayDimCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); + (yyval.interm.type).arraySizes = (yyvsp[(2) - (2)].interm).arraySizes; + } + break; + + case 169: +/* Line 1792 of yacc.c */ +#line 1297 "glslang.y" + { + (yyval.interm).loc = (yyvsp[(1) - (2)].lex).loc; + (yyval.interm).arraySizes = new TArraySizes; + (yyval.interm).arraySizes->addInnerSize(); + } + break; + + case 170: +/* Line 1792 of yacc.c */ +#line 1302 "glslang.y" + { + (yyval.interm).loc = (yyvsp[(1) - (3)].lex).loc; + (yyval.interm).arraySizes = new TArraySizes; + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[(2) - (3)].interm.intermTypedNode)->getLoc(), (yyvsp[(2) - (3)].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); + } + break; + + case 171: +/* Line 1792 of yacc.c */ +#line 1310 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (3)].interm); + (yyval.interm).arraySizes->addInnerSize(); + } + break; + + case 172: +/* Line 1792 of yacc.c */ +#line 1314 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (4)].interm); + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[(3) - (4)].interm.intermTypedNode)->getLoc(), (yyvsp[(3) - (4)].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); + } + break; + + case 173: +/* Line 1792 of yacc.c */ +#line 1324 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtVoid; + } + break; + + case 174: +/* Line 1792 of yacc.c */ +#line 1328 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + } + break; + + case 175: +/* Line 1792 of yacc.c */ +#line 1332 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + } + break; + + case 176: +/* Line 1792 of yacc.c */ +#line 1337 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; +#endif + } + break; + + case 177: +/* Line 1792 of yacc.c */ +#line 1344 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + } + break; + + case 178: +/* Line 1792 of yacc.c */ +#line 1348 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + } + break; + + case 179: +/* Line 1792 of yacc.c */ +#line 1353 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + } + break; + + case 180: +/* Line 1792 of yacc.c */ +#line 1358 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + } + break; + + case 181: +/* Line 1792 of yacc.c */ +#line 1363 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + } + break; + + case 182: +/* Line 1792 of yacc.c */ +#line 1367 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(2); + } + break; + + case 183: +/* Line 1792 of yacc.c */ +#line 1372 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(3); + } + break; + + case 184: +/* Line 1792 of yacc.c */ +#line 1377 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(4); + } + break; + + case 185: +/* Line 1792 of yacc.c */ +#line 1382 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(2); + } + break; + + case 186: +/* Line 1792 of yacc.c */ +#line 1388 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(3); + } + break; + + case 187: +/* Line 1792 of yacc.c */ +#line 1394 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(4); + } + break; + + case 188: +/* Line 1792 of yacc.c */ +#line 1400 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(2); +#endif + } + break; + + case 189: +/* Line 1792 of yacc.c */ +#line 1408 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(3); +#endif + } + break; + + case 190: +/* Line 1792 of yacc.c */ +#line 1416 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(4); +#endif + } + break; + + case 191: +/* Line 1792 of yacc.c */ +#line 1424 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(2); + } + break; + + case 192: +/* Line 1792 of yacc.c */ +#line 1429 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(3); + } + break; + + case 193: +/* Line 1792 of yacc.c */ +#line 1434 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(4); + } + break; + + case 194: +/* Line 1792 of yacc.c */ +#line 1439 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(2); + } + break; + + case 195: +/* Line 1792 of yacc.c */ +#line 1444 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(3); + } + break; + + case 196: +/* Line 1792 of yacc.c */ +#line 1449 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(4); + } + break; + + case 197: +/* Line 1792 of yacc.c */ +#line 1454 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(2); + } + break; + + case 198: +/* Line 1792 of yacc.c */ +#line 1460 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(3); + } + break; + + case 199: +/* Line 1792 of yacc.c */ +#line 1466 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(4); + } + break; + + case 200: +/* Line 1792 of yacc.c */ +#line 1472 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(2); + } + break; + + case 201: +/* Line 1792 of yacc.c */ +#line 1478 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(3); + } + break; + + case 202: +/* Line 1792 of yacc.c */ +#line 1484 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(4); + } + break; + + case 203: +/* Line 1792 of yacc.c */ +#line 1490 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(2); + } + break; + + case 204: +/* Line 1792 of yacc.c */ +#line 1496 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(3); + } + break; + + case 205: +/* Line 1792 of yacc.c */ +#line 1502 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(4); + } + break; + + case 206: +/* Line 1792 of yacc.c */ +#line 1508 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 207: +/* Line 1792 of yacc.c */ +#line 1513 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); + } + break; + + case 208: +/* Line 1792 of yacc.c */ +#line 1518 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); + } + break; + + case 209: +/* Line 1792 of yacc.c */ +#line 1523 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 210: +/* Line 1792 of yacc.c */ +#line 1528 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 3); + } + break; + + case 211: +/* Line 1792 of yacc.c */ +#line 1533 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 4); + } + break; + + case 212: +/* Line 1792 of yacc.c */ +#line 1538 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 2); + } + break; + + case 213: +/* Line 1792 of yacc.c */ +#line 1543 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); + } + break; + + case 214: +/* Line 1792 of yacc.c */ +#line 1548 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 4); + } + break; + + case 215: +/* Line 1792 of yacc.c */ +#line 1553 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 2); + } + break; + + case 216: +/* Line 1792 of yacc.c */ +#line 1558 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 3); + } + break; + + case 217: +/* Line 1792 of yacc.c */ +#line 1563 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); + } + break; + + case 218: +/* Line 1792 of yacc.c */ +#line 1568 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 219: +/* Line 1792 of yacc.c */ +#line 1574 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); + } + break; + + case 220: +/* Line 1792 of yacc.c */ +#line 1580 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); + } + break; + + case 221: +/* Line 1792 of yacc.c */ +#line 1586 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 222: +/* Line 1792 of yacc.c */ +#line 1592 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 3); + } + break; + + case 223: +/* Line 1792 of yacc.c */ +#line 1598 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 4); + } + break; + + case 224: +/* Line 1792 of yacc.c */ +#line 1604 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 2); + } + break; + + case 225: +/* Line 1792 of yacc.c */ +#line 1610 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); + } + break; + + case 226: +/* Line 1792 of yacc.c */ +#line 1616 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 4); + } + break; + + case 227: +/* Line 1792 of yacc.c */ +#line 1622 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 2); + } + break; + + case 228: +/* Line 1792 of yacc.c */ +#line 1628 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 3); + } + break; + + case 229: +/* Line 1792 of yacc.c */ +#line 1634 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); + } + break; + + case 230: +/* Line 1792 of yacc.c */ +#line 1640 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 2); +#endif + } + break; + + case 231: +/* Line 1792 of yacc.c */ +#line 1648 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 3); +#endif + } + break; + + case 232: +/* Line 1792 of yacc.c */ +#line 1656 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 4); +#endif + } + break; + + case 233: +/* Line 1792 of yacc.c */ +#line 1664 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 2); +#endif + } + break; + + case 234: +/* Line 1792 of yacc.c */ +#line 1672 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 3); +#endif + } + break; + + case 235: +/* Line 1792 of yacc.c */ +#line 1680 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 4); +#endif + } + break; + + case 236: +/* Line 1792 of yacc.c */ +#line 1688 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 2); +#endif + } + break; + + case 237: +/* Line 1792 of yacc.c */ +#line 1696 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 3); +#endif + } + break; + + case 238: +/* Line 1792 of yacc.c */ +#line 1704 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 4); +#endif + } + break; + + case 239: +/* Line 1792 of yacc.c */ +#line 1712 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 2); +#endif + } + break; + + case 240: +/* Line 1792 of yacc.c */ +#line 1720 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 3); +#endif + } + break; + + case 241: +/* Line 1792 of yacc.c */ +#line 1728 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 4); +#endif + } + break; + + case 242: +/* Line 1792 of yacc.c */ +#line 1736 "glslang.y" + { + parseContext.vulkanRemoved((yyvsp[(1) - (1)].lex).loc, "atomic counter types"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtAtomicUint; + } + break; + + case 243: +/* Line 1792 of yacc.c */ +#line 1741 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd1D); + } + break; + + case 244: +/* Line 1792 of yacc.c */ +#line 1746 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D); + } + break; + + case 245: +/* Line 1792 of yacc.c */ +#line 1751 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd3D); + } + break; + + case 246: +/* Line 1792 of yacc.c */ +#line 1756 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdCube); + } + break; + + case 247: +/* Line 1792 of yacc.c */ +#line 1761 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); + } + break; + + case 248: +/* Line 1792 of yacc.c */ +#line 1766 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); + } + break; + + case 249: +/* Line 1792 of yacc.c */ +#line 1771 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); + } + break; + + case 250: +/* Line 1792 of yacc.c */ +#line 1776 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); + } + break; + + case 251: +/* Line 1792 of yacc.c */ +#line 1781 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); + } + break; + + case 252: +/* Line 1792 of yacc.c */ +#line 1786 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); + } + break; + + case 253: +/* Line 1792 of yacc.c */ +#line 1791 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); + } + break; + + case 254: +/* Line 1792 of yacc.c */ +#line 1796 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); + } + break; + + case 255: +/* Line 1792 of yacc.c */ +#line 1801 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); + } + break; + + case 256: +/* Line 1792 of yacc.c */ +#line 1806 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd1D); + } + break; + + case 257: +/* Line 1792 of yacc.c */ +#line 1811 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd2D); + } + break; + + case 258: +/* Line 1792 of yacc.c */ +#line 1816 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd3D); + } + break; + + case 259: +/* Line 1792 of yacc.c */ +#line 1821 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, EsdCube); + } + break; + + case 260: +/* Line 1792 of yacc.c */ +#line 1826 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); + } + break; + + case 261: +/* Line 1792 of yacc.c */ +#line 1831 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); + } + break; + + case 262: +/* Line 1792 of yacc.c */ +#line 1836 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); + } + break; + + case 263: +/* Line 1792 of yacc.c */ +#line 1841 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd1D); + } + break; + + case 264: +/* Line 1792 of yacc.c */ +#line 1846 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd2D); + } + break; + + case 265: +/* Line 1792 of yacc.c */ +#line 1851 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd3D); + } + break; + + case 266: +/* Line 1792 of yacc.c */ +#line 1856 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, EsdCube); + } + break; + + case 267: +/* Line 1792 of yacc.c */ +#line 1861 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); + } + break; + + case 268: +/* Line 1792 of yacc.c */ +#line 1866 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); + } + break; + + case 269: +/* Line 1792 of yacc.c */ +#line 1871 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); + } + break; + + case 270: +/* Line 1792 of yacc.c */ +#line 1876 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdRect); + } + break; + + case 271: +/* Line 1792 of yacc.c */ +#line 1881 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); + } + break; + + case 272: +/* Line 1792 of yacc.c */ +#line 1886 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, EsdRect); + } + break; + + case 273: +/* Line 1792 of yacc.c */ +#line 1891 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, EsdRect); + } + break; + + case 274: +/* Line 1792 of yacc.c */ +#line 1896 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); + } + break; + + case 275: +/* Line 1792 of yacc.c */ +#line 1901 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); + } + break; + + case 276: +/* Line 1792 of yacc.c */ +#line 1906 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); + } + break; + + case 277: +/* Line 1792 of yacc.c */ +#line 1911 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); + } + break; + + case 278: +/* Line 1792 of yacc.c */ +#line 1916 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); + } + break; + + case 279: +/* Line 1792 of yacc.c */ +#line 1921 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); + } + break; + + case 280: +/* Line 1792 of yacc.c */ +#line 1926 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); + } + break; + + case 281: +/* Line 1792 of yacc.c */ +#line 1931 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); + } + break; + + case 282: +/* Line 1792 of yacc.c */ +#line 1936 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); + } + break; + + case 283: +/* Line 1792 of yacc.c */ +#line 1941 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setPureSampler(false); + } + break; + + case 284: +/* Line 1792 of yacc.c */ +#line 1946 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setPureSampler(true); + } + break; + + case 285: +/* Line 1792 of yacc.c */ +#line 1951 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); + } + break; + + case 286: +/* Line 1792 of yacc.c */ +#line 1956 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); + } + break; + + case 287: +/* Line 1792 of yacc.c */ +#line 1961 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); + } + break; + + case 288: +/* Line 1792 of yacc.c */ +#line 1966 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); + } + break; + + case 289: +/* Line 1792 of yacc.c */ +#line 1971 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); + } + break; + + case 290: +/* Line 1792 of yacc.c */ +#line 1976 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); + } + break; + + case 291: +/* Line 1792 of yacc.c */ +#line 1981 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); + } + break; + + case 292: +/* Line 1792 of yacc.c */ +#line 1986 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); + } + break; + + case 293: +/* Line 1792 of yacc.c */ +#line 1991 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); + } + break; + + case 294: +/* Line 1792 of yacc.c */ +#line 1996 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); + } + break; + + case 295: +/* Line 1792 of yacc.c */ +#line 2001 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); + } + break; + + case 296: +/* Line 1792 of yacc.c */ +#line 2006 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); + } + break; + + case 297: +/* Line 1792 of yacc.c */ +#line 2011 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); + } + break; + + case 298: +/* Line 1792 of yacc.c */ +#line 2016 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); + } + break; + + case 299: +/* Line 1792 of yacc.c */ +#line 2021 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); + } + break; + + case 300: +/* Line 1792 of yacc.c */ +#line 2026 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); + } + break; + + case 301: +/* Line 1792 of yacc.c */ +#line 2031 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); + } + break; + + case 302: +/* Line 1792 of yacc.c */ +#line 2036 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); + } + break; + + case 303: +/* Line 1792 of yacc.c */ +#line 2041 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); + } + break; + + case 304: +/* Line 1792 of yacc.c */ +#line 2046 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); + } + break; + + case 305: +/* Line 1792 of yacc.c */ +#line 2051 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); + } + break; + + case 306: +/* Line 1792 of yacc.c */ +#line 2056 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); + } + break; + + case 307: +/* Line 1792 of yacc.c */ +#line 2061 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); + } + break; + + case 308: +/* Line 1792 of yacc.c */ +#line 2066 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); + } + break; + + case 309: +/* Line 1792 of yacc.c */ +#line 2071 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); + } + break; + + case 310: +/* Line 1792 of yacc.c */ +#line 2076 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); + } + break; + + case 311: +/* Line 1792 of yacc.c */ +#line 2081 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); + } + break; + + case 312: +/* Line 1792 of yacc.c */ +#line 2086 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); + } + break; + + case 313: +/* Line 1792 of yacc.c */ +#line 2091 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); + } + break; + + case 314: +/* Line 1792 of yacc.c */ +#line 2096 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); + } + break; + + case 315: +/* Line 1792 of yacc.c */ +#line 2101 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); + } + break; + + case 316: +/* Line 1792 of yacc.c */ +#line 2106 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); + } + break; + + case 317: +/* Line 1792 of yacc.c */ +#line 2111 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); + } + break; + + case 318: +/* Line 1792 of yacc.c */ +#line 2116 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); + } + break; + + case 319: +/* Line 1792 of yacc.c */ +#line 2121 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); + } + break; + + case 320: +/* Line 1792 of yacc.c */ +#line 2126 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); + } + break; + + case 321: +/* Line 1792 of yacc.c */ +#line 2131 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); + } + break; + + case 322: +/* Line 1792 of yacc.c */ +#line 2136 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); + } + break; + + case 323: +/* Line 1792 of yacc.c */ +#line 2141 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); + } + break; + + case 324: +/* Line 1792 of yacc.c */ +#line 2146 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); + } + break; + + case 325: +/* Line 1792 of yacc.c */ +#line 2151 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); + } + break; + + case 326: +/* Line 1792 of yacc.c */ +#line 2156 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); + } + break; + + case 327: +/* Line 1792 of yacc.c */ +#line 2161 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); + } + break; + + case 328: +/* Line 1792 of yacc.c */ +#line 2166 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); + } + break; + + case 329: +/* Line 1792 of yacc.c */ +#line 2171 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); + } + break; + + case 330: +/* Line 1792 of yacc.c */ +#line 2176 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); + } + break; + + case 331: +/* Line 1792 of yacc.c */ +#line 2181 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); + } + break; + + case 332: +/* Line 1792 of yacc.c */ +#line 2186 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); + } + break; + + case 333: +/* Line 1792 of yacc.c */ +#line 2191 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); + } + break; + + case 334: +/* Line 1792 of yacc.c */ +#line 2196 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); + } + break; + + case 335: +/* Line 1792 of yacc.c */ +#line 2201 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); + } + break; + + case 336: +/* Line 1792 of yacc.c */ +#line 2206 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); + } + break; + + case 337: +/* Line 1792 of yacc.c */ +#line 2211 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); + } + break; + + case 338: +/* Line 1792 of yacc.c */ +#line 2216 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); + } + break; + + case 339: +/* Line 1792 of yacc.c */ +#line 2221 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); + } + break; + + case 340: +/* Line 1792 of yacc.c */ +#line 2226 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); + } + break; + + case 341: +/* Line 1792 of yacc.c */ +#line 2231 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); + } + break; + + case 342: +/* Line 1792 of yacc.c */ +#line 2236 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); + } + break; + + case 343: +/* Line 1792 of yacc.c */ +#line 2241 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); + } + break; + + case 344: +/* Line 1792 of yacc.c */ +#line 2246 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); + } + break; + + case 345: +/* Line 1792 of yacc.c */ +#line 2251 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); + } + break; + + case 346: +/* Line 1792 of yacc.c */ +#line 2256 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); + } + break; + + case 347: +/* Line 1792 of yacc.c */ +#line 2261 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); + } + break; + + case 348: +/* Line 1792 of yacc.c */ +#line 2266 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); + } + break; + + case 349: +/* Line 1792 of yacc.c */ +#line 2271 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); + } + break; + + case 350: +/* Line 1792 of yacc.c */ +#line 2276 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); + } + break; + + case 351: +/* Line 1792 of yacc.c */ +#line 2281 "glslang.y" + { // GL_OES_EGL_image_external + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D); + (yyval.interm.type).sampler.external = true; + } + break; + + case 352: +/* Line 1792 of yacc.c */ +#line 2287 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtFloat); + } + break; + + case 353: +/* Line 1792 of yacc.c */ +#line 2293 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtFloat, true); + } + break; + + case 354: +/* Line 1792 of yacc.c */ +#line 2299 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtInt); + } + break; + + case 355: +/* Line 1792 of yacc.c */ +#line 2305 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtInt, true); + } + break; + + case 356: +/* Line 1792 of yacc.c */ +#line 2311 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtUint); + } + break; + + case 357: +/* Line 1792 of yacc.c */ +#line 2317 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtUint, true); + } + break; + + case 358: +/* Line 1792 of yacc.c */ +#line 2323 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); + } + break; + + case 359: +/* Line 1792 of yacc.c */ +#line 2328 "glslang.y" + { + // + // This is for user defined type names. The lexical phase looked up the + // type. + // + if (const TVariable* variable = ((yyvsp[(1) - (1)].lex).symbol)->getAsVariable()) { + const TType& structure = variable->getType(); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtStruct; + (yyval.interm.type).userDef = &structure; + } else + parseContext.error((yyvsp[(1) - (1)].lex).loc, "expected type name", (yyvsp[(1) - (1)].lex).string->c_str(), ""); + } + break; + + case 360: +/* Line 1792 of yacc.c */ +#line 2344 "glslang.y" + { + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqHigh); + } + break; + + case 361: +/* Line 1792 of yacc.c */ +#line 2349 "glslang.y" + { + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqMedium); + } + break; + + case 362: +/* Line 1792 of yacc.c */ +#line 2354 "glslang.y" + { + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqLow); + } + break; + + case 363: +/* Line 1792 of yacc.c */ +#line 2362 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (3)].lex).loc); } + break; + + case 364: +/* Line 1792 of yacc.c */ +#line 2362 "glslang.y" + { + TType* structure = new TType((yyvsp[(5) - (6)].interm.typeList), *(yyvsp[(2) - (6)].lex).string); + parseContext.structArrayCheck((yyvsp[(2) - (6)].lex).loc, *structure); + TVariable* userTypeDef = new TVariable((yyvsp[(2) - (6)].lex).string, *structure, true); + if (! parseContext.symbolTable.insert(*userTypeDef)) + parseContext.error((yyvsp[(2) - (6)].lex).loc, "redefinition", (yyvsp[(2) - (6)].lex).string->c_str(), "struct"); + (yyval.interm.type).init((yyvsp[(1) - (6)].lex).loc); + (yyval.interm.type).basicType = EbtStruct; + (yyval.interm.type).userDef = structure; + --parseContext.structNestingLevel; + } + break; + + case 365: +/* Line 1792 of yacc.c */ +#line 2373 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (2)].lex).loc); } + break; + + case 366: +/* Line 1792 of yacc.c */ +#line 2373 "glslang.y" + { + TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); + (yyval.interm.type).init((yyvsp[(1) - (5)].lex).loc); + (yyval.interm.type).basicType = EbtStruct; + (yyval.interm.type).userDef = structure; + --parseContext.structNestingLevel; + } + break; + + case 367: +/* Line 1792 of yacc.c */ +#line 2383 "glslang.y" + { + (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); + } + break; + + case 368: +/* Line 1792 of yacc.c */ +#line 2386 "glslang.y" + { + (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); + for (unsigned int i = 0; i < (yyvsp[(2) - (2)].interm.typeList)->size(); ++i) { + for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { + if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName()) + parseContext.error((*(yyvsp[(2) - (2)].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName().c_str()); + } + (yyval.interm.typeList)->push_back((*(yyvsp[(2) - (2)].interm.typeList))[i]); + } + } + break; + + case 369: +/* Line 1792 of yacc.c */ +#line 2399 "glslang.y" + { + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if (parseContext.profile == EEsProfile) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + } + + (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); + + parseContext.voidErrorCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyvsp[(2) - (3)].interm.typeList))[0].type->getFieldName(), (yyvsp[(1) - (3)].interm.type).basicType); + parseContext.precisionQualifierCheck((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).basicType, (yyvsp[(1) - (3)].interm.type).qualifier); + + for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { + parseContext.arrayDimCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(1) - (3)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(1) - (3)].interm.type)); + } + } + break; + + case 370: +/* Line 1792 of yacc.c */ +#line 2417 "glslang.y" + { + parseContext.globalQualifierFixCheck((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier); + if ((yyvsp[(2) - (4)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if (parseContext.profile == EEsProfile) + parseContext.arraySizeRequiredCheck((yyvsp[(2) - (4)].interm.type).loc, *(yyvsp[(2) - (4)].interm.type).arraySizes); + } + + (yyval.interm.typeList) = (yyvsp[(3) - (4)].interm.typeList); + + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + parseContext.voidErrorCheck((yyvsp[(2) - (4)].interm.type).loc, (*(yyvsp[(3) - (4)].interm.typeList))[0].type->getFieldName(), (yyvsp[(2) - (4)].interm.type).basicType); + parseContext.mergeQualifiers((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).qualifier, (yyvsp[(1) - (4)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).basicType, (yyvsp[(2) - (4)].interm.type).qualifier); + + for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { + parseContext.arrayDimCheck((yyvsp[(1) - (4)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(2) - (4)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(2) - (4)].interm.type)); + } + } + break; + + case 371: +/* Line 1792 of yacc.c */ +#line 2441 "glslang.y" + { + (yyval.interm.typeList) = new TTypeList; + (yyval.interm.typeList)->push_back((yyvsp[(1) - (1)].interm.typeLine)); + } + break; + + case 372: +/* Line 1792 of yacc.c */ +#line 2445 "glslang.y" + { + (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); + } + break; + + case 373: +/* Line 1792 of yacc.c */ +#line 2451 "glslang.y" + { + (yyval.interm.typeLine).type = new TType(EbtVoid); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (1)].lex).string); + } + break; + + case 374: +/* Line 1792 of yacc.c */ +#line 2456 "glslang.y" + { + parseContext.arrayDimCheck((yyvsp[(1) - (2)].lex).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + + (yyval.interm.typeLine).type = new TType(EbtVoid); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (2)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (2)].lex).string); + (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[(2) - (2)].interm).arraySizes); + } + break; + + case 375: +/* Line 1792 of yacc.c */ +#line 2467 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 376: +/* Line 1792 of yacc.c */ +#line 2470 "glslang.y" + { + const char* initFeature = "{ } style initializers"; + parseContext.requireProfile((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + } + break; + + case 377: +/* Line 1792 of yacc.c */ +#line 2476 "glslang.y" + { + const char* initFeature = "{ } style initializers"; + parseContext.requireProfile((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (4)].interm.intermTypedNode); + } + break; + + case 378: +/* Line 1792 of yacc.c */ +#line 2485 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[(1) - (1)].interm.intermTypedNode), (yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc()); + } + break; + + case 379: +/* Line 1792 of yacc.c */ +#line 2488 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + } + break; + + case 380: +/* Line 1792 of yacc.c */ +#line 2494 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 381: +/* Line 1792 of yacc.c */ +#line 2498 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 382: +/* Line 1792 of yacc.c */ +#line 2499 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 383: +/* Line 1792 of yacc.c */ +#line 2505 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 384: +/* Line 1792 of yacc.c */ +#line 2506 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 385: +/* Line 1792 of yacc.c */ +#line 2507 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 386: +/* Line 1792 of yacc.c */ +#line 2508 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 387: +/* Line 1792 of yacc.c */ +#line 2509 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 388: +/* Line 1792 of yacc.c */ +#line 2510 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 389: +/* Line 1792 of yacc.c */ +#line 2511 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 390: +/* Line 1792 of yacc.c */ +#line 2515 "glslang.y" + { (yyval.interm.intermNode) = 0; } + break; + + case 391: +/* Line 1792 of yacc.c */ +#line 2516 "glslang.y" + { + parseContext.symbolTable.push(); + ++parseContext.statementNestingLevel; + } + break; + + case 392: +/* Line 1792 of yacc.c */ +#line 2520 "glslang.y" + { + parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); + --parseContext.statementNestingLevel; + } + break; + + case 393: +/* Line 1792 of yacc.c */ +#line 2524 "glslang.y" + { + if ((yyvsp[(3) - (5)].interm.intermNode) && (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()) + (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(3) - (5)].interm.intermNode); + } + break; + + case 394: +/* Line 1792 of yacc.c */ +#line 2532 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 395: +/* Line 1792 of yacc.c */ +#line 2533 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 396: +/* Line 1792 of yacc.c */ +#line 2537 "glslang.y" + { + ++parseContext.controlFlowNestingLevel; + } + break; + + case 397: +/* Line 1792 of yacc.c */ +#line 2540 "glslang.y" + { + --parseContext.controlFlowNestingLevel; + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); + } + break; + + case 398: +/* Line 1792 of yacc.c */ +#line 2544 "glslang.y" + { + parseContext.symbolTable.push(); + ++parseContext.statementNestingLevel; + ++parseContext.controlFlowNestingLevel; + } + break; + + case 399: +/* Line 1792 of yacc.c */ +#line 2549 "glslang.y" + { + parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); + --parseContext.statementNestingLevel; + --parseContext.controlFlowNestingLevel; + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); + } + break; + + case 400: +/* Line 1792 of yacc.c */ +#line 2558 "glslang.y" + { + (yyval.interm.intermNode) = 0; + } + break; + + case 401: +/* Line 1792 of yacc.c */ +#line 2561 "glslang.y" + { + if ((yyvsp[(2) - (3)].interm.intermNode) && (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()) + (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermNode); + } + break; + + case 402: +/* Line 1792 of yacc.c */ +#line 2569 "glslang.y" + { + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode)); + if ((yyvsp[(1) - (1)].interm.intermNode) && (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence(0, (yyvsp[(1) - (1)].interm.intermNode)); + (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case + } + } + break; + + case 403: +/* Line 1792 of yacc.c */ +#line 2577 "glslang.y" + { + if ((yyvsp[(2) - (2)].interm.intermNode) && (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence((yyvsp[(1) - (2)].interm.intermNode) ? (yyvsp[(1) - (2)].interm.intermNode)->getAsAggregate() : 0, (yyvsp[(2) - (2)].interm.intermNode)); + (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case + } else + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); + } + break; + + case 404: +/* Line 1792 of yacc.c */ +#line 2588 "glslang.y" + { (yyval.interm.intermNode) = 0; } + break; + + case 405: +/* Line 1792 of yacc.c */ +#line 2589 "glslang.y" + { (yyval.interm.intermNode) = static_cast((yyvsp[(1) - (2)].interm.intermTypedNode)); } + break; + + case 406: +/* Line 1792 of yacc.c */ +#line 2593 "glslang.y" + { + parseContext.boolCheck((yyvsp[(1) - (5)].lex).loc, (yyvsp[(3) - (5)].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.nodePair), (yyvsp[(1) - (5)].lex).loc); + } + break; + + case 407: +/* Line 1792 of yacc.c */ +#line 2600 "glslang.y" + { + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermNode); + } + break; + + case 408: +/* Line 1792 of yacc.c */ +#line 2604 "glslang.y" + { + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.nodePair).node2 = 0; + } + break; + + case 409: +/* Line 1792 of yacc.c */ +#line 2612 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.boolCheck((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), (yyvsp[(1) - (1)].interm.intermTypedNode)); + } + break; + + case 410: +/* Line 1792 of yacc.c */ +#line 2616 "glslang.y" + { + parseContext.boolCheck((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.type)); + + TType type((yyvsp[(1) - (4)].interm.type)); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); + if (initNode) + (yyval.interm.intermTypedNode) = initNode->getAsTyped(); + else + (yyval.interm.intermTypedNode) = 0; + } + break; + + case 411: +/* Line 1792 of yacc.c */ +#line 2629 "glslang.y" + { + // start new switch sequence on the switch stack + ++parseContext.controlFlowNestingLevel; + ++parseContext.statementNestingLevel; + parseContext.switchSequenceStack.push_back(new TIntermSequence); + parseContext.switchLevel.push_back(parseContext.statementNestingLevel); + parseContext.symbolTable.push(); + } + break; + + case 412: +/* Line 1792 of yacc.c */ +#line 2637 "glslang.y" + { + (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[(1) - (8)].lex).loc, (yyvsp[(3) - (8)].interm.intermTypedNode), (yyvsp[(7) - (8)].interm.intermNode) ? (yyvsp[(7) - (8)].interm.intermNode)->getAsAggregate() : 0); + delete parseContext.switchSequenceStack.back(); + parseContext.switchSequenceStack.pop_back(); + parseContext.switchLevel.pop_back(); + parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); + --parseContext.statementNestingLevel; + --parseContext.controlFlowNestingLevel; + } + break; + + case 413: +/* Line 1792 of yacc.c */ +#line 2649 "glslang.y" + { + (yyval.interm.intermNode) = 0; + } + break; + + case 414: +/* Line 1792 of yacc.c */ +#line 2652 "glslang.y" + { + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + } + break; + + case 415: +/* Line 1792 of yacc.c */ +#line 2658 "glslang.y" + { + (yyval.interm.intermNode) = 0; + if (parseContext.switchLevel.size() == 0) + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot appear outside switch statement", "case", ""); + else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot be nested inside control flow", "case", ""); + else { + parseContext.constantValueCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + parseContext.integerCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).loc); + } + } + break; + + case 416: +/* Line 1792 of yacc.c */ +#line 2670 "glslang.y" + { + (yyval.interm.intermNode) = 0; + if (parseContext.switchLevel.size() == 0) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot appear outside switch statement", "default", ""); + else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot be nested inside control flow", "default", ""); + else + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[(1) - (2)].lex).loc); + } + break; + + case 417: +/* Line 1792 of yacc.c */ +#line 2682 "glslang.y" + { + if (! parseContext.limits.whileLoops) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "while loops not available", "limitation", ""); + parseContext.symbolTable.push(); + ++parseContext.loopNestingLevel; + ++parseContext.statementNestingLevel; + ++parseContext.controlFlowNestingLevel; + } + break; + + case 418: +/* Line 1792 of yacc.c */ +#line 2690 "glslang.y" + { + parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(6) - (6)].interm.intermNode), (yyvsp[(4) - (6)].interm.intermTypedNode), 0, true, (yyvsp[(1) - (6)].lex).loc); + --parseContext.loopNestingLevel; + --parseContext.statementNestingLevel; + --parseContext.controlFlowNestingLevel; + } + break; + + case 419: +/* Line 1792 of yacc.c */ +#line 2697 "glslang.y" + { + ++parseContext.loopNestingLevel; + ++parseContext.statementNestingLevel; + ++parseContext.controlFlowNestingLevel; + } + break; + + case 420: +/* Line 1792 of yacc.c */ +#line 2702 "glslang.y" + { + if (! parseContext.limits.whileLoops) + parseContext.error((yyvsp[(1) - (8)].lex).loc, "do-while loops not available", "limitation", ""); + + parseContext.boolCheck((yyvsp[(8) - (8)].lex).loc, (yyvsp[(6) - (8)].interm.intermTypedNode)); + + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(3) - (8)].interm.intermNode), (yyvsp[(6) - (8)].interm.intermTypedNode), 0, false, (yyvsp[(4) - (8)].lex).loc); + --parseContext.loopNestingLevel; + --parseContext.statementNestingLevel; + --parseContext.controlFlowNestingLevel; + } + break; + + case 421: +/* Line 1792 of yacc.c */ +#line 2713 "glslang.y" + { + parseContext.symbolTable.push(); + ++parseContext.loopNestingLevel; + ++parseContext.statementNestingLevel; + ++parseContext.controlFlowNestingLevel; + } + break; + + case 422: +/* Line 1792 of yacc.c */ +#line 2719 "glslang.y" + { + parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(4) - (7)].interm.intermNode), (yyvsp[(2) - (7)].lex).loc); + TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[(7) - (7)].interm.intermNode), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node1), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node2), true, (yyvsp[(1) - (7)].lex).loc); + if (! parseContext.limits.nonInductiveForLoops) + parseContext.inductiveLoopCheck((yyvsp[(1) - (7)].lex).loc, (yyvsp[(4) - (7)].interm.intermNode), forLoop); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[(1) - (7)].lex).loc); + (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + --parseContext.loopNestingLevel; + --parseContext.statementNestingLevel; + --parseContext.controlFlowNestingLevel; + } + break; + + case 423: +/* Line 1792 of yacc.c */ +#line 2734 "glslang.y" + { + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + } + break; + + case 424: +/* Line 1792 of yacc.c */ +#line 2737 "glslang.y" + { + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + } + break; + + case 425: +/* Line 1792 of yacc.c */ +#line 2743 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 426: +/* Line 1792 of yacc.c */ +#line 2746 "glslang.y" + { + (yyval.interm.intermTypedNode) = 0; + } + break; + + case 427: +/* Line 1792 of yacc.c */ +#line 2752 "glslang.y" + { + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = 0; + } + break; + + case 428: +/* Line 1792 of yacc.c */ +#line 2756 "glslang.y" + { + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermTypedNode); + } + break; + + case 429: +/* Line 1792 of yacc.c */ +#line 2763 "glslang.y" + { + if (parseContext.loopNestingLevel <= 0) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "continue statement only allowed in loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[(1) - (2)].lex).loc); + } + break; + + case 430: +/* Line 1792 of yacc.c */ +#line 2768 "glslang.y" + { + if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "break statement only allowed in switch and loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[(1) - (2)].lex).loc); + } + break; + + case 431: +/* Line 1792 of yacc.c */ +#line 2773 "glslang.y" + { + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).loc); + if (parseContext.currentFunctionType->getBasicType() != EbtVoid) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "non-void function must return a value", "return", ""); + if (parseContext.inMain) + parseContext.postMainReturn = true; + } + break; + + case 432: +/* Line 1792 of yacc.c */ +#line 2780 "glslang.y" + { + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[(1) - (3)].lex).loc, (yyvsp[(2) - (3)].interm.intermTypedNode)); + } + break; + + case 433: +/* Line 1792 of yacc.c */ +#line 2783 "glslang.y" + { + parseContext.requireStage((yyvsp[(1) - (2)].lex).loc, EShLangFragment, "discard"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[(1) - (2)].lex).loc); + } + break; + + case 434: +/* Line 1792 of yacc.c */ +#line 2792 "glslang.y" + { + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); + } + break; + + case 435: +/* Line 1792 of yacc.c */ +#line 2796 "glslang.y" + { + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); + parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); + } + break; + + case 436: +/* Line 1792 of yacc.c */ +#line 2803 "glslang.y" + { + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + } + break; + + case 437: +/* Line 1792 of yacc.c */ +#line 2806 "glslang.y" + { + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + } + break; + + case 438: +/* Line 1792 of yacc.c */ +#line 2812 "glslang.y" + { + (yyvsp[(1) - (1)].interm).function = parseContext.handleFunctionDeclarator((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function, false /* not prototype */); + (yyvsp[(1) - (1)].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function); + } + break; + + case 439: +/* Line 1792 of yacc.c */ +#line 2816 "glslang.y" + { + // May be best done as post process phase on intermediate code + if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) + parseContext.error((yyvsp[(1) - (3)].interm).loc, "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str()); + parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermNode)); + parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[(1) - (3)].interm).function->getType(), (yyvsp[(1) - (3)].interm).loc); + (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str()); + + // store the pragma information for debug and optimize and other vendor specific + // information. This information can be queried from the parse tree + (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); + (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); + (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); + } + break; + + +/* Line 1792 of yacc.c */ +#line 8088 "glslang_tab.cpp" + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (pParseContext, YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (pParseContext, yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval, pParseContext); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp, pParseContext); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (pParseContext, YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, pParseContext); + } + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp, pParseContext); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + + +/* Line 2055 of yacc.c */ +#line 2833 "glslang.y" + diff --git a/deps/glslang/glslang-old/glslang/MachineIndependent/glslang_tab.cpp.h b/deps/glslang/glslang-old/glslang/MachineIndependent/glslang_tab.cpp.h new file mode 100644 index 0000000000..a3a458bb77 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/glslang_tab.cpp.h @@ -0,0 +1,400 @@ +/* A Bison parser, made by GNU Bison 2.7. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 1 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + FLOAT16_T = 268, + BREAK = 269, + CONTINUE = 270, + DO = 271, + ELSE = 272, + FOR = 273, + IF = 274, + DISCARD = 275, + RETURN = 276, + SWITCH = 277, + CASE = 278, + DEFAULT = 279, + SUBROUTINE = 280, + BVEC2 = 281, + BVEC3 = 282, + BVEC4 = 283, + IVEC2 = 284, + IVEC3 = 285, + IVEC4 = 286, + I64VEC2 = 287, + I64VEC3 = 288, + I64VEC4 = 289, + UVEC2 = 290, + UVEC3 = 291, + UVEC4 = 292, + U64VEC2 = 293, + U64VEC3 = 294, + U64VEC4 = 295, + VEC2 = 296, + VEC3 = 297, + VEC4 = 298, + MAT2 = 299, + MAT3 = 300, + MAT4 = 301, + CENTROID = 302, + IN = 303, + OUT = 304, + INOUT = 305, + UNIFORM = 306, + PATCH = 307, + SAMPLE = 308, + BUFFER = 309, + SHARED = 310, + COHERENT = 311, + VOLATILE = 312, + RESTRICT = 313, + READONLY = 314, + WRITEONLY = 315, + DVEC2 = 316, + DVEC3 = 317, + DVEC4 = 318, + DMAT2 = 319, + DMAT3 = 320, + DMAT4 = 321, + F16VEC2 = 322, + F16VEC3 = 323, + F16VEC4 = 324, + F16MAT2 = 325, + F16MAT3 = 326, + F16MAT4 = 327, + NOPERSPECTIVE = 328, + FLAT = 329, + SMOOTH = 330, + LAYOUT = 331, + __EXPLICITINTERPAMD = 332, + MAT2X2 = 333, + MAT2X3 = 334, + MAT2X4 = 335, + MAT3X2 = 336, + MAT3X3 = 337, + MAT3X4 = 338, + MAT4X2 = 339, + MAT4X3 = 340, + MAT4X4 = 341, + DMAT2X2 = 342, + DMAT2X3 = 343, + DMAT2X4 = 344, + DMAT3X2 = 345, + DMAT3X3 = 346, + DMAT3X4 = 347, + DMAT4X2 = 348, + DMAT4X3 = 349, + DMAT4X4 = 350, + F16MAT2X2 = 351, + F16MAT2X3 = 352, + F16MAT2X4 = 353, + F16MAT3X2 = 354, + F16MAT3X3 = 355, + F16MAT3X4 = 356, + F16MAT4X2 = 357, + F16MAT4X3 = 358, + F16MAT4X4 = 359, + ATOMIC_UINT = 360, + SAMPLER1D = 361, + SAMPLER2D = 362, + SAMPLER3D = 363, + SAMPLERCUBE = 364, + SAMPLER1DSHADOW = 365, + SAMPLER2DSHADOW = 366, + SAMPLERCUBESHADOW = 367, + SAMPLER1DARRAY = 368, + SAMPLER2DARRAY = 369, + SAMPLER1DARRAYSHADOW = 370, + SAMPLER2DARRAYSHADOW = 371, + ISAMPLER1D = 372, + ISAMPLER2D = 373, + ISAMPLER3D = 374, + ISAMPLERCUBE = 375, + ISAMPLER1DARRAY = 376, + ISAMPLER2DARRAY = 377, + USAMPLER1D = 378, + USAMPLER2D = 379, + USAMPLER3D = 380, + USAMPLERCUBE = 381, + USAMPLER1DARRAY = 382, + USAMPLER2DARRAY = 383, + SAMPLER2DRECT = 384, + SAMPLER2DRECTSHADOW = 385, + ISAMPLER2DRECT = 386, + USAMPLER2DRECT = 387, + SAMPLERBUFFER = 388, + ISAMPLERBUFFER = 389, + USAMPLERBUFFER = 390, + SAMPLERCUBEARRAY = 391, + SAMPLERCUBEARRAYSHADOW = 392, + ISAMPLERCUBEARRAY = 393, + USAMPLERCUBEARRAY = 394, + SAMPLER2DMS = 395, + ISAMPLER2DMS = 396, + USAMPLER2DMS = 397, + SAMPLER2DMSARRAY = 398, + ISAMPLER2DMSARRAY = 399, + USAMPLER2DMSARRAY = 400, + SAMPLEREXTERNALOES = 401, + SAMPLER = 402, + SAMPLERSHADOW = 403, + TEXTURE1D = 404, + TEXTURE2D = 405, + TEXTURE3D = 406, + TEXTURECUBE = 407, + TEXTURE1DARRAY = 408, + TEXTURE2DARRAY = 409, + ITEXTURE1D = 410, + ITEXTURE2D = 411, + ITEXTURE3D = 412, + ITEXTURECUBE = 413, + ITEXTURE1DARRAY = 414, + ITEXTURE2DARRAY = 415, + UTEXTURE1D = 416, + UTEXTURE2D = 417, + UTEXTURE3D = 418, + UTEXTURECUBE = 419, + UTEXTURE1DARRAY = 420, + UTEXTURE2DARRAY = 421, + TEXTURE2DRECT = 422, + ITEXTURE2DRECT = 423, + UTEXTURE2DRECT = 424, + TEXTUREBUFFER = 425, + ITEXTUREBUFFER = 426, + UTEXTUREBUFFER = 427, + TEXTURECUBEARRAY = 428, + ITEXTURECUBEARRAY = 429, + UTEXTURECUBEARRAY = 430, + TEXTURE2DMS = 431, + ITEXTURE2DMS = 432, + UTEXTURE2DMS = 433, + TEXTURE2DMSARRAY = 434, + ITEXTURE2DMSARRAY = 435, + UTEXTURE2DMSARRAY = 436, + SUBPASSINPUT = 437, + SUBPASSINPUTMS = 438, + ISUBPASSINPUT = 439, + ISUBPASSINPUTMS = 440, + USUBPASSINPUT = 441, + USUBPASSINPUTMS = 442, + IMAGE1D = 443, + IIMAGE1D = 444, + UIMAGE1D = 445, + IMAGE2D = 446, + IIMAGE2D = 447, + UIMAGE2D = 448, + IMAGE3D = 449, + IIMAGE3D = 450, + UIMAGE3D = 451, + IMAGE2DRECT = 452, + IIMAGE2DRECT = 453, + UIMAGE2DRECT = 454, + IMAGECUBE = 455, + IIMAGECUBE = 456, + UIMAGECUBE = 457, + IMAGEBUFFER = 458, + IIMAGEBUFFER = 459, + UIMAGEBUFFER = 460, + IMAGE1DARRAY = 461, + IIMAGE1DARRAY = 462, + UIMAGE1DARRAY = 463, + IMAGE2DARRAY = 464, + IIMAGE2DARRAY = 465, + UIMAGE2DARRAY = 466, + IMAGECUBEARRAY = 467, + IIMAGECUBEARRAY = 468, + UIMAGECUBEARRAY = 469, + IMAGE2DMS = 470, + IIMAGE2DMS = 471, + UIMAGE2DMS = 472, + IMAGE2DMSARRAY = 473, + IIMAGE2DMSARRAY = 474, + UIMAGE2DMSARRAY = 475, + STRUCT = 476, + VOID = 477, + WHILE = 478, + IDENTIFIER = 479, + TYPE_NAME = 480, + FLOATCONSTANT = 481, + DOUBLECONSTANT = 482, + INTCONSTANT = 483, + UINTCONSTANT = 484, + INT64CONSTANT = 485, + UINT64CONSTANT = 486, + BOOLCONSTANT = 487, + FLOAT16CONSTANT = 488, + LEFT_OP = 489, + RIGHT_OP = 490, + INC_OP = 491, + DEC_OP = 492, + LE_OP = 493, + GE_OP = 494, + EQ_OP = 495, + NE_OP = 496, + AND_OP = 497, + OR_OP = 498, + XOR_OP = 499, + MUL_ASSIGN = 500, + DIV_ASSIGN = 501, + ADD_ASSIGN = 502, + MOD_ASSIGN = 503, + LEFT_ASSIGN = 504, + RIGHT_ASSIGN = 505, + AND_ASSIGN = 506, + XOR_ASSIGN = 507, + OR_ASSIGN = 508, + SUB_ASSIGN = 509, + LEFT_PAREN = 510, + RIGHT_PAREN = 511, + LEFT_BRACKET = 512, + RIGHT_BRACKET = 513, + LEFT_BRACE = 514, + RIGHT_BRACE = 515, + DOT = 516, + COMMA = 517, + COLON = 518, + EQUAL = 519, + SEMICOLON = 520, + BANG = 521, + DASH = 522, + TILDE = 523, + PLUS = 524, + STAR = 525, + SLASH = 526, + PERCENT = 527, + LEFT_ANGLE = 528, + RIGHT_ANGLE = 529, + VERTICAL_BAR = 530, + CARET = 531, + AMPERSAND = 532, + QUESTION = 533, + INVARIANT = 534, + PRECISE = 535, + HIGH_PRECISION = 536, + MEDIUM_PRECISION = 537, + LOW_PRECISION = 538, + PRECISION = 539, + PACKED = 540, + RESOURCE = 541, + SUPERP = 542 + }; +#endif + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ +/* Line 2058 of yacc.c */ +#line 66 "glslang.y" + + struct { + glslang::TSourceLoc loc; + union { + glslang::TString *string; + int i; + unsigned int u; + long long i64; + unsigned long long u64; + bool b; + double d; + }; + glslang::TSymbol* symbol; + } lex; + struct { + glslang::TSourceLoc loc; + glslang::TOperator op; + union { + TIntermNode* intermNode; + glslang::TIntermNodePair nodePair; + glslang::TIntermTyped* intermTypedNode; + }; + union { + glslang::TPublicType type; + glslang::TFunction* function; + glslang::TParameter param; + glslang::TTypeLoc typeLine; + glslang::TTypeList* typeList; + glslang::TArraySizes* arraySizes; + glslang::TIdentifierList* identifierList; + }; + } interm; + + +/* Line 2058 of yacc.c */ +#line 379 "glslang_tab.cpp.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ diff --git a/deps/glslang-new/glslang/MachineIndependent/intermOut.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/intermOut.cpp old mode 100755 new mode 100644 similarity index 50% rename from deps/glslang-new/glslang/MachineIndependent/intermOut.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/intermOut.cpp index fc75964fa1..f8c963b72e --- a/deps/glslang-new/glslang/MachineIndependent/intermOut.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/intermOut.cpp @@ -1,13 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2012-2016 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2012-2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 "localintermediate.h" @@ -46,31 +45,11 @@ namespace { -bool IsInfinity(double x) { +bool is_positive_infinity(double x) { #ifdef _MSC_VER - switch (_fpclass(x)) { - case _FPCLASS_NINF: - case _FPCLASS_PINF: - return true; - default: - return false; - } + return _fpclass(x) == _FPCLASS_PINF; #else - return std::isinf(x); -#endif -} - -bool IsNan(double x) { -#ifdef _MSC_VER - switch (_fpclass(x)) { - case _FPCLASS_SNAN: - case _FPCLASS_QNAN: - return true; - default: - return false; - } -#else - return std::isnan(x); + return std::isinf(x) && (x >= 0); #endif } @@ -93,13 +72,7 @@ namespace glslang { // class TOutputTraverser : public TIntermTraverser { public: - TOutputTraverser(TInfoSink& i) : infoSink(i), extraOutput(NoExtraOutput) { } - - enum EExtraOutput { - NoExtraOutput, - BinaryDoubleOutput - }; - void setDoubleOutput(EExtraOutput extra) { extraOutput = extra; } + TOutputTraverser(TInfoSink& i) : infoSink(i) { } virtual bool visitBinary(TVisit, TIntermBinary* node); virtual bool visitUnary(TVisit, TIntermUnary* node); @@ -115,8 +88,6 @@ public: protected: TOutputTraverser(TOutputTraverser&); TOutputTraverser& operator=(TOutputTraverser&); - - EExtraOutput extraOutput; }; // @@ -175,7 +146,6 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) out.debug << (*node->getLeft()->getType().getStruct())[node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst()].type->getFieldName(); out.debug << ": direct index for structure"; break; case EOpVectorSwizzle: out.debug << "vector swizzle"; break; - case EOpMatrixSwizzle: out.debug << "matrix swizzle"; break; case EOpAdd: out.debug << "add"; break; case EOpSub: out.debug << "subtract"; break; @@ -205,7 +175,6 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) case EOpLogicalOr: out.debug << "logical-or"; break; case EOpLogicalXor: out.debug << "logical-xor"; break; case EOpLogicalAnd: out.debug << "logical-and"; break; - default: out.debug << ""; } @@ -233,192 +202,48 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpPreIncrement: out.debug << "Pre-Increment"; break; case EOpPreDecrement: out.debug << "Pre-Decrement"; break; - // * -> bool - case EOpConvInt8ToBool: out.debug << "Convert int8_t to bool"; break; - case EOpConvUint8ToBool: out.debug << "Convert uint8_t to bool"; break; - case EOpConvInt16ToBool: out.debug << "Convert int16_t to bool"; break; - case EOpConvUint16ToBool: out.debug << "Convert uint16_t to bool";break; case EOpConvIntToBool: out.debug << "Convert int to bool"; break; case EOpConvUintToBool: out.debug << "Convert uint to bool"; break; - case EOpConvInt64ToBool: out.debug << "Convert int64 to bool"; break; - case EOpConvUint64ToBool: out.debug << "Convert uint64 to bool"; break; - case EOpConvFloat16ToBool: out.debug << "Convert float16_t to bool"; break; case EOpConvFloatToBool: out.debug << "Convert float to bool"; break; case EOpConvDoubleToBool: out.debug << "Convert double to bool"; break; - - // bool -> * - case EOpConvBoolToInt8: out.debug << "Convert bool to int8_t"; break; - case EOpConvBoolToUint8: out.debug << "Convert bool to uint8_t"; break; - case EOpConvBoolToInt16: out.debug << "Convert bool to in16t_t"; break; - case EOpConvBoolToUint16: out.debug << "Convert bool to uint16_t";break; - case EOpConvBoolToInt: out.debug << "Convert bool to int" ; break; - case EOpConvBoolToUint: out.debug << "Convert bool to uint"; break; - case EOpConvBoolToInt64: out.debug << "Convert bool to int64"; break; - case EOpConvBoolToUint64: out.debug << "Convert bool to uint64";break; - case EOpConvBoolToFloat16: out.debug << "Convert bool to float16_t"; break; - case EOpConvBoolToFloat: out.debug << "Convert bool to float"; break; - case EOpConvBoolToDouble: out.debug << "Convert bool to double"; break; - - // int8_t -> (u)int* - case EOpConvInt8ToInt16: out.debug << "Convert int8_t to int16_t";break; - case EOpConvInt8ToInt: out.debug << "Convert int8_t to int"; break; - case EOpConvInt8ToInt64: out.debug << "Convert int8_t to int64"; break; - case EOpConvInt8ToUint8: out.debug << "Convert int8_t to uint8_t";break; - case EOpConvInt8ToUint16: out.debug << "Convert int8_t to uint16_t";break; - case EOpConvInt8ToUint: out.debug << "Convert int8_t to uint"; break; - case EOpConvInt8ToUint64: out.debug << "Convert int8_t to uint64"; break; - - // uint8_t -> (u)int* - case EOpConvUint8ToInt8: out.debug << "Convert uint8_t to int8_t";break; - case EOpConvUint8ToInt16: out.debug << "Convert uint8_t to int16_t";break; - case EOpConvUint8ToInt: out.debug << "Convert uint8_t to int"; break; - case EOpConvUint8ToInt64: out.debug << "Convert uint8_t to int64"; break; - case EOpConvUint8ToUint16: out.debug << "Convert uint8_t to uint16_t";break; - case EOpConvUint8ToUint: out.debug << "Convert uint8_t to uint"; break; - case EOpConvUint8ToUint64: out.debug << "Convert uint8_t to uint64"; break; - - // int8_t -> float* - case EOpConvInt8ToFloat16: out.debug << "Convert int8_t to float16_t";break; - case EOpConvInt8ToFloat: out.debug << "Convert int8_t to float"; break; - case EOpConvInt8ToDouble: out.debug << "Convert int8_t to double"; break; - - // uint8_t -> float* - case EOpConvUint8ToFloat16: out.debug << "Convert uint8_t to float16_t";break; - case EOpConvUint8ToFloat: out.debug << "Convert uint8_t to float"; break; - case EOpConvUint8ToDouble: out.debug << "Convert uint8_t to double"; break; - - // int16_t -> (u)int* - case EOpConvInt16ToInt8: out.debug << "Convert int16_t to int8_t";break; - case EOpConvInt16ToInt: out.debug << "Convert int16_t to int"; break; - case EOpConvInt16ToInt64: out.debug << "Convert int16_t to int64"; break; - case EOpConvInt16ToUint8: out.debug << "Convert int16_t to uint8_t";break; - case EOpConvInt16ToUint16: out.debug << "Convert int16_t to uint16_t";break; - case EOpConvInt16ToUint: out.debug << "Convert int16_t to uint"; break; - case EOpConvInt16ToUint64: out.debug << "Convert int16_t to uint64"; break; - - // int16_t -> float* - case EOpConvInt16ToFloat16: out.debug << "Convert int16_t to float16_t";break; - case EOpConvInt16ToFloat: out.debug << "Convert int16_t to float"; break; - case EOpConvInt16ToDouble: out.debug << "Convert int16_t to double"; break; - - // uint16_t -> (u)int* - case EOpConvUint16ToInt8: out.debug << "Convert uint16_t to int8_t";break; - case EOpConvUint16ToInt16: out.debug << "Convert uint16_t to int16_t";break; - case EOpConvUint16ToInt: out.debug << "Convert uint16_t to int"; break; - case EOpConvUint16ToInt64: out.debug << "Convert uint16_t to int64"; break; - case EOpConvUint16ToUint8: out.debug << "Convert uint16_t to uint8_t";break; - case EOpConvUint16ToUint: out.debug << "Convert uint16_t to uint"; break; - case EOpConvUint16ToUint64: out.debug << "Convert uint16_t to uint64"; break; - - // uint16_t -> float* - case EOpConvUint16ToFloat16: out.debug << "Convert uint16_t to float16_t";break; - case EOpConvUint16ToFloat: out.debug << "Convert uint16_t to float"; break; - case EOpConvUint16ToDouble: out.debug << "Convert uint16_t to double"; break; - - // int32_t -> (u)int* - case EOpConvIntToInt8: out.debug << "Convert int to int8_t";break; - case EOpConvIntToInt16: out.debug << "Convert int to int16_t";break; - case EOpConvIntToInt64: out.debug << "Convert int to int64"; break; - case EOpConvIntToUint8: out.debug << "Convert int to uint8_t";break; - case EOpConvIntToUint16: out.debug << "Convert int to uint16_t";break; - case EOpConvIntToUint: out.debug << "Convert int to uint"; break; - case EOpConvIntToUint64: out.debug << "Convert int to uint64"; break; - - // int32_t -> float* - case EOpConvIntToFloat16: out.debug << "Convert int to float16_t";break; + case EOpConvInt64ToBool: out.debug << "Convert int64 to bool"; break; + case EOpConvUint64ToBool: out.debug << "Convert uint64 to bool"; break; case EOpConvIntToFloat: out.debug << "Convert int to float"; break; + case EOpConvUintToFloat: out.debug << "Convert uint to float"; break; + case EOpConvDoubleToFloat: out.debug << "Convert double to float"; break; + case EOpConvInt64ToFloat: out.debug << "Convert int64 to float"; break; + case EOpConvUint64ToFloat: out.debug << "Convert uint64 to float"; break; + case EOpConvBoolToFloat: out.debug << "Convert bool to float"; break; + case EOpConvUintToInt: out.debug << "Convert uint to int"; break; + case EOpConvFloatToInt: out.debug << "Convert float to int"; break; + case EOpConvDoubleToInt: out.debug << "Convert double to int"; break; + case EOpConvBoolToInt: out.debug << "Convert bool to int"; break; + case EOpConvInt64ToInt: out.debug << "Convert int64 to int"; break; + case EOpConvUint64ToInt: out.debug << "Convert uint64 to int"; break; + case EOpConvIntToUint: out.debug << "Convert int to uint"; break; + case EOpConvFloatToUint: out.debug << "Convert float to uint"; break; + case EOpConvDoubleToUint: out.debug << "Convert double to uint"; break; + case EOpConvBoolToUint: out.debug << "Convert bool to uint"; break; + case EOpConvInt64ToUint: out.debug << "Convert int64 to uint"; break; + case EOpConvUint64ToUint: out.debug << "Convert uint64 to uint"; break; case EOpConvIntToDouble: out.debug << "Convert int to double"; break; - - // uint32_t -> (u)int* - case EOpConvUintToInt8: out.debug << "Convert uint to int8_t";break; - case EOpConvUintToInt16: out.debug << "Convert uint to int16_t";break; - case EOpConvUintToInt: out.debug << "Convert uint to int";break; + case EOpConvUintToDouble: out.debug << "Convert uint to double"; break; + case EOpConvFloatToDouble: out.debug << "Convert float to double"; break; + case EOpConvBoolToDouble: out.debug << "Convert bool to double"; break; + case EOpConvInt64ToDouble: out.debug << "Convert int64 to double"; break; + case EOpConvUint64ToDouble: out.debug << "Convert uint64 to double"; break; + case EOpConvBoolToInt64: out.debug << "Convert bool to int64"; break; + case EOpConvIntToInt64: out.debug << "Convert int to int64"; break; case EOpConvUintToInt64: out.debug << "Convert uint to int64"; break; - case EOpConvUintToUint8: out.debug << "Convert uint to uint8_t";break; - case EOpConvUintToUint16: out.debug << "Convert uint to uint16_t";break; - case EOpConvUintToUint64: out.debug << "Convert uint to uint64"; break; - - // uint32_t -> float* - case EOpConvUintToFloat16: out.debug << "Convert uint to float16_t";break; - case EOpConvUintToFloat: out.debug << "Convert uint to float"; break; - case EOpConvUintToDouble: out.debug << "Convert uint to double"; break; - - // int64 -> (u)int* - case EOpConvInt64ToInt8: out.debug << "Convert int64 to int8_t"; break; - case EOpConvInt64ToInt16: out.debug << "Convert int64 to int16_t"; break; - case EOpConvInt64ToInt: out.debug << "Convert int64 to int"; break; - case EOpConvInt64ToUint8: out.debug << "Convert int64 to uint8_t";break; - case EOpConvInt64ToUint16: out.debug << "Convert int64 to uint16_t";break; - case EOpConvInt64ToUint: out.debug << "Convert int64 to uint"; break; - case EOpConvInt64ToUint64: out.debug << "Convert int64 to uint64"; break; - - // int64 -> float* - case EOpConvInt64ToFloat16: out.debug << "Convert int64 to float16_t";break; - case EOpConvInt64ToFloat: out.debug << "Convert int64 to float"; break; - case EOpConvInt64ToDouble: out.debug << "Convert int64 to double"; break; - - // uint64 -> (u)int* - case EOpConvUint64ToInt8: out.debug << "Convert uint64 to int8_t";break; - case EOpConvUint64ToInt16: out.debug << "Convert uint64 to int16_t";break; - case EOpConvUint64ToInt: out.debug << "Convert uint64 to int"; break; - case EOpConvUint64ToInt64: out.debug << "Convert uint64 to int64"; break; - case EOpConvUint64ToUint8: out.debug << "Convert uint64 to uint8_t";break; - case EOpConvUint64ToUint16: out.debug << "Convert uint64 to uint16"; break; - case EOpConvUint64ToUint: out.debug << "Convert uint64 to uint"; break; - - // uint64 -> float* - case EOpConvUint64ToFloat16: out.debug << "Convert uint64 to float16_t";break; - case EOpConvUint64ToFloat: out.debug << "Convert uint64 to float"; break; - case EOpConvUint64ToDouble: out.debug << "Convert uint64 to double"; break; - - // float16_t -> int* - case EOpConvFloat16ToInt8: out.debug << "Convert float16_t to int8_t"; break; - case EOpConvFloat16ToInt16: out.debug << "Convert float16_t to int16_t"; break; - case EOpConvFloat16ToInt: out.debug << "Convert float16_t to int"; break; - case EOpConvFloat16ToInt64: out.debug << "Convert float16_t to int64"; break; - - // float16_t -> uint* - case EOpConvFloat16ToUint8: out.debug << "Convert float16_t to uint8_t"; break; - case EOpConvFloat16ToUint16: out.debug << "Convert float16_t to uint16_t"; break; - case EOpConvFloat16ToUint: out.debug << "Convert float16_t to uint"; break; - case EOpConvFloat16ToUint64: out.debug << "Convert float16_t to uint64"; break; - - // float16_t -> float* - case EOpConvFloat16ToFloat: out.debug << "Convert float16_t to float"; break; - case EOpConvFloat16ToDouble: out.debug << "Convert float16_t to double"; break; - - // float32 -> float* - case EOpConvFloatToFloat16: out.debug << "Convert float to float16_t"; break; - case EOpConvFloatToDouble: out.debug << "Convert float to double"; break; - - // float32_t -> int* - case EOpConvFloatToInt8: out.debug << "Convert float to int8_t"; break; - case EOpConvFloatToInt16: out.debug << "Convert float to int16_t"; break; - case EOpConvFloatToInt: out.debug << "Convert float to int"; break; - case EOpConvFloatToInt64: out.debug << "Convert float to int64"; break; - - // float32_t -> uint* - case EOpConvFloatToUint8: out.debug << "Convert float to uint8_t"; break; - case EOpConvFloatToUint16: out.debug << "Convert float to uint16_t"; break; - case EOpConvFloatToUint: out.debug << "Convert float to uint"; break; - case EOpConvFloatToUint64: out.debug << "Convert float to uint64"; break; - - // double -> float* - case EOpConvDoubleToFloat16: out.debug << "Convert double to float16_t"; break; - case EOpConvDoubleToFloat: out.debug << "Convert double to float"; break; - - // double -> int* - case EOpConvDoubleToInt8: out.debug << "Convert double to int8_t"; break; - case EOpConvDoubleToInt16: out.debug << "Convert double to int16_t"; break; - case EOpConvDoubleToInt: out.debug << "Convert double to int"; break; + case EOpConvFloatToInt64: out.debug << "Convert float to int64"; break; case EOpConvDoubleToInt64: out.debug << "Convert double to int64"; break; - - // float32_t -> uint* - case EOpConvDoubleToUint8: out.debug << "Convert double to uint8_t"; break; - case EOpConvDoubleToUint16: out.debug << "Convert double to uint16_t"; break; - case EOpConvDoubleToUint: out.debug << "Convert double to uint"; break; + case EOpConvUint64ToInt64: out.debug << "Convert uint64 to int64"; break; + case EOpConvBoolToUint64: out.debug << "Convert bool to uint64"; break; + case EOpConvIntToUint64: out.debug << "Convert int to uint64"; break; + case EOpConvUintToUint64: out.debug << "Convert uint to uint64"; break; + case EOpConvFloatToUint64: out.debug << "Convert float to uint64"; break; case EOpConvDoubleToUint64: out.debug << "Convert double to uint64"; break; - + case EOpConvInt64ToUint64: out.debug << "Convert uint64 to uint64"; break; case EOpRadians: out.debug << "radians"; break; case EOpDegrees: out.debug << "degrees"; break; @@ -462,23 +287,12 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpDoubleBitsToUint64: out.debug << "doubleBitsToUint64"; break; case EOpInt64BitsToDouble: out.debug << "int64BitsToDouble"; break; case EOpUint64BitsToDouble: out.debug << "uint64BitsToDouble"; break; - case EOpFloat16BitsToInt16: out.debug << "float16BitsToInt16"; break; - case EOpFloat16BitsToUint16: out.debug << "float16BitsToUint16"; break; - case EOpInt16BitsToFloat16: out.debug << "int16BitsToFloat16"; break; - case EOpUint16BitsToFloat16: out.debug << "uint16BitsToFloat16"; break; - case EOpPackSnorm2x16: out.debug << "packSnorm2x16"; break; case EOpUnpackSnorm2x16:out.debug << "unpackSnorm2x16"; break; case EOpPackUnorm2x16: out.debug << "packUnorm2x16"; break; case EOpUnpackUnorm2x16:out.debug << "unpackUnorm2x16"; break; case EOpPackHalf2x16: out.debug << "packHalf2x16"; break; case EOpUnpackHalf2x16: out.debug << "unpackHalf2x16"; break; - case EOpPack16: out.debug << "pack16"; break; - case EOpPack32: out.debug << "pack32"; break; - case EOpPack64: out.debug << "pack64"; break; - case EOpUnpack32: out.debug << "unpack32"; break; - case EOpUnpack16: out.debug << "unpack16"; break; - case EOpUnpack8: out.debug << "unpack8"; break; case EOpPackSnorm4x8: out.debug << "PackSnorm4x8"; break; case EOpUnpackSnorm4x8: out.debug << "UnpackSnorm4x8"; break; @@ -492,17 +306,10 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpPackUint2x32: out.debug << "packUint2x32"; break; case EOpUnpackUint2x32: out.debug << "unpackUint2x32"; break; - case EOpPackInt2x16: out.debug << "packInt2x16"; break; - case EOpUnpackInt2x16: out.debug << "unpackInt2x16"; break; - case EOpPackUint2x16: out.debug << "packUint2x16"; break; - case EOpUnpackUint2x16: out.debug << "unpackUint2x16"; break; - - case EOpPackInt4x16: out.debug << "packInt4x16"; break; - case EOpUnpackInt4x16: out.debug << "unpackInt4x16"; break; - case EOpPackUint4x16: out.debug << "packUint4x16"; break; - case EOpUnpackUint4x16: out.debug << "unpackUint4x16"; break; +#ifdef AMD_EXTENSIONS case EOpPackFloat2x16: out.debug << "packFloat2x16"; break; case EOpUnpackFloat2x16: out.debug << "unpackFloat2x16"; break; +#endif case EOpLength: out.debug << "length"; break; case EOpNormalize: out.debug << "normalize"; break; @@ -556,90 +363,12 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpAllInvocations: out.debug << "allInvocations"; break; case EOpAllInvocationsEqual: out.debug << "allInvocationsEqual"; break; - case EOpSubgroupElect: out.debug << "subgroupElect"; break; - case EOpSubgroupAll: out.debug << "subgroupAll"; break; - case EOpSubgroupAny: out.debug << "subgroupAny"; break; - case EOpSubgroupAllEqual: out.debug << "subgroupAllEqual"; break; - case EOpSubgroupBroadcast: out.debug << "subgroupBroadcast"; break; - case EOpSubgroupBroadcastFirst: out.debug << "subgroupBroadcastFirst"; break; - case EOpSubgroupBallot: out.debug << "subgroupBallot"; break; - case EOpSubgroupInverseBallot: out.debug << "subgroupInverseBallot"; break; - case EOpSubgroupBallotBitExtract: out.debug << "subgroupBallotBitExtract"; break; - case EOpSubgroupBallotBitCount: out.debug << "subgroupBallotBitCount"; break; - case EOpSubgroupBallotInclusiveBitCount: out.debug << "subgroupBallotInclusiveBitCount"; break; - case EOpSubgroupBallotExclusiveBitCount: out.debug << "subgroupBallotExclusiveBitCount"; break; - case EOpSubgroupBallotFindLSB: out.debug << "subgroupBallotFindLSB"; break; - case EOpSubgroupBallotFindMSB: out.debug << "subgroupBallotFindMSB"; break; - case EOpSubgroupShuffle: out.debug << "subgroupShuffle"; break; - case EOpSubgroupShuffleXor: out.debug << "subgroupShuffleXor"; break; - case EOpSubgroupShuffleUp: out.debug << "subgroupShuffleUp"; break; - case EOpSubgroupShuffleDown: out.debug << "subgroupShuffleDown"; break; - case EOpSubgroupAdd: out.debug << "subgroupAdd"; break; - case EOpSubgroupMul: out.debug << "subgroupMul"; break; - case EOpSubgroupMin: out.debug << "subgroupMin"; break; - case EOpSubgroupMax: out.debug << "subgroupMax"; break; - case EOpSubgroupAnd: out.debug << "subgroupAnd"; break; - case EOpSubgroupOr: out.debug << "subgroupOr"; break; - case EOpSubgroupXor: out.debug << "subgroupXor"; break; - case EOpSubgroupInclusiveAdd: out.debug << "subgroupInclusiveAdd"; break; - case EOpSubgroupInclusiveMul: out.debug << "subgroupInclusiveMul"; break; - case EOpSubgroupInclusiveMin: out.debug << "subgroupInclusiveMin"; break; - case EOpSubgroupInclusiveMax: out.debug << "subgroupInclusiveMax"; break; - case EOpSubgroupInclusiveAnd: out.debug << "subgroupInclusiveAnd"; break; - case EOpSubgroupInclusiveOr: out.debug << "subgroupInclusiveOr"; break; - case EOpSubgroupInclusiveXor: out.debug << "subgroupInclusiveXor"; break; - case EOpSubgroupExclusiveAdd: out.debug << "subgroupExclusiveAdd"; break; - case EOpSubgroupExclusiveMul: out.debug << "subgroupExclusiveMul"; break; - case EOpSubgroupExclusiveMin: out.debug << "subgroupExclusiveMin"; break; - case EOpSubgroupExclusiveMax: out.debug << "subgroupExclusiveMax"; break; - case EOpSubgroupExclusiveAnd: out.debug << "subgroupExclusiveAnd"; break; - case EOpSubgroupExclusiveOr: out.debug << "subgroupExclusiveOr"; break; - case EOpSubgroupExclusiveXor: out.debug << "subgroupExclusiveXor"; break; - case EOpSubgroupClusteredAdd: out.debug << "subgroupClusteredAdd"; break; - case EOpSubgroupClusteredMul: out.debug << "subgroupClusteredMul"; break; - case EOpSubgroupClusteredMin: out.debug << "subgroupClusteredMin"; break; - case EOpSubgroupClusteredMax: out.debug << "subgroupClusteredMax"; break; - case EOpSubgroupClusteredAnd: out.debug << "subgroupClusteredAnd"; break; - case EOpSubgroupClusteredOr: out.debug << "subgroupClusteredOr"; break; - case EOpSubgroupClusteredXor: out.debug << "subgroupClusteredXor"; break; - case EOpSubgroupQuadBroadcast: out.debug << "subgroupQuadBroadcast"; break; - case EOpSubgroupQuadSwapHorizontal: out.debug << "subgroupQuadSwapHorizontal"; break; - case EOpSubgroupQuadSwapVertical: out.debug << "subgroupQuadSwapVertical"; break; - case EOpSubgroupQuadSwapDiagonal: out.debug << "subgroupQuadSwapDiagonal"; break; - -#ifdef NV_EXTENSIONS - case EOpSubgroupPartition: out.debug << "subgroupPartitionNV"; break; - case EOpSubgroupPartitionedAdd: out.debug << "subgroupPartitionedAddNV"; break; - case EOpSubgroupPartitionedMul: out.debug << "subgroupPartitionedMulNV"; break; - case EOpSubgroupPartitionedMin: out.debug << "subgroupPartitionedMinNV"; break; - case EOpSubgroupPartitionedMax: out.debug << "subgroupPartitionedMaxNV"; break; - case EOpSubgroupPartitionedAnd: out.debug << "subgroupPartitionedAndNV"; break; - case EOpSubgroupPartitionedOr: out.debug << "subgroupPartitionedOrNV"; break; - case EOpSubgroupPartitionedXor: out.debug << "subgroupPartitionedXorNV"; break; - case EOpSubgroupPartitionedInclusiveAdd: out.debug << "subgroupPartitionedInclusiveAddNV"; break; - case EOpSubgroupPartitionedInclusiveMul: out.debug << "subgroupPartitionedInclusiveMulNV"; break; - case EOpSubgroupPartitionedInclusiveMin: out.debug << "subgroupPartitionedInclusiveMinNV"; break; - case EOpSubgroupPartitionedInclusiveMax: out.debug << "subgroupPartitionedInclusiveMaxNV"; break; - case EOpSubgroupPartitionedInclusiveAnd: out.debug << "subgroupPartitionedInclusiveAndNV"; break; - case EOpSubgroupPartitionedInclusiveOr: out.debug << "subgroupPartitionedInclusiveOrNV"; break; - case EOpSubgroupPartitionedInclusiveXor: out.debug << "subgroupPartitionedInclusiveXorNV"; break; - case EOpSubgroupPartitionedExclusiveAdd: out.debug << "subgroupPartitionedExclusiveAddNV"; break; - case EOpSubgroupPartitionedExclusiveMul: out.debug << "subgroupPartitionedExclusiveMulNV"; break; - case EOpSubgroupPartitionedExclusiveMin: out.debug << "subgroupPartitionedExclusiveMinNV"; break; - case EOpSubgroupPartitionedExclusiveMax: out.debug << "subgroupPartitionedExclusiveMaxNV"; break; - case EOpSubgroupPartitionedExclusiveAnd: out.debug << "subgroupPartitionedExclusiveAndNV"; break; - case EOpSubgroupPartitionedExclusiveOr: out.debug << "subgroupPartitionedExclusiveOrNV"; break; - case EOpSubgroupPartitionedExclusiveXor: out.debug << "subgroupPartitionedExclusiveXorNV"; break; -#endif - case EOpClip: out.debug << "clip"; break; case EOpIsFinite: out.debug << "isfinite"; break; case EOpLog10: out.debug << "log10"; break; case EOpRcp: out.debug << "rcp"; break; case EOpSaturate: out.debug << "saturate"; break; - case EOpSparseTexelsResident: out.debug << "sparseTexelsResident"; break; - #ifdef AMD_EXTENSIONS case EOpMinInvocations: out.debug << "minInvocations"; break; case EOpMaxInvocations: out.debug << "maxInvocations"; break; @@ -647,33 +376,27 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpMinInvocationsNonUniform: out.debug << "minInvocationsNonUniform"; break; case EOpMaxInvocationsNonUniform: out.debug << "maxInvocationsNonUniform"; break; case EOpAddInvocationsNonUniform: out.debug << "addInvocationsNonUniform"; break; + case EOpMbcnt: out.debug << "mbcnt"; break; - case EOpMinInvocationsInclusiveScan: out.debug << "minInvocationsInclusiveScan"; break; - case EOpMaxInvocationsInclusiveScan: out.debug << "maxInvocationsInclusiveScan"; break; - case EOpAddInvocationsInclusiveScan: out.debug << "addInvocationsInclusiveScan"; break; - case EOpMinInvocationsInclusiveScanNonUniform: out.debug << "minInvocationsInclusiveScanNonUniform"; break; - case EOpMaxInvocationsInclusiveScanNonUniform: out.debug << "maxInvocationsInclusiveScanNonUniform"; break; - case EOpAddInvocationsInclusiveScanNonUniform: out.debug << "addInvocationsInclusiveScanNonUniform"; break; + case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break; + case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break; - case EOpMinInvocationsExclusiveScan: out.debug << "minInvocationsExclusiveScan"; break; - case EOpMaxInvocationsExclusiveScan: out.debug << "maxInvocationsExclusiveScan"; break; - case EOpAddInvocationsExclusiveScan: out.debug << "addInvocationsExclusiveScan"; break; - case EOpMinInvocationsExclusiveScanNonUniform: out.debug << "minInvocationsExclusiveScanNonUniform"; break; - case EOpMaxInvocationsExclusiveScanNonUniform: out.debug << "maxInvocationsExclusiveScanNonUniform"; break; - case EOpAddInvocationsExclusiveScanNonUniform: out.debug << "addInvocationsExclusiveScanNonUniform"; break; - - case EOpMbcnt: out.debug << "mbcnt"; break; - - case EOpFragmentMaskFetch: out.debug << "fragmentMaskFetchAMD"; break; - case EOpFragmentFetch: out.debug << "fragmentFetchAMD"; break; - - case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break; - case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break; + case EOpConvBoolToFloat16: out.debug << "Convert bool to float16"; break; + case EOpConvIntToFloat16: out.debug << "Convert int to float16"; break; + case EOpConvUintToFloat16: out.debug << "Convert uint to float16"; break; + case EOpConvFloatToFloat16: out.debug << "Convert float to float16"; break; + case EOpConvDoubleToFloat16: out.debug << "Convert double to float16"; break; + case EOpConvInt64ToFloat16: out.debug << "Convert int64 to float16"; break; + case EOpConvUint64ToFloat16: out.debug << "Convert uint64 to float16"; break; + case EOpConvFloat16ToBool: out.debug << "Convert float16 to bool"; break; + case EOpConvFloat16ToInt: out.debug << "Convert float16 to int"; break; + case EOpConvFloat16ToUint: out.debug << "Convert float16 to uint"; break; + case EOpConvFloat16ToFloat: out.debug << "Convert float16 to float"; break; + case EOpConvFloat16ToDouble: out.debug << "Convert float16 to double"; break; + case EOpConvFloat16ToInt64: out.debug << "Convert float16 to int64"; break; + case EOpConvFloat16ToUint64: out.debug << "Convert float16 to uint64"; break; #endif - case EOpSubpassLoad: out.debug << "subpassLoad"; break; - case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break; - default: out.debug.message(EPrefixError, "Bad unary op"); } @@ -705,49 +428,29 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructFloat: out.debug << "Construct float"; break; case EOpConstructDouble:out.debug << "Construct double"; break; - case EOpConstructVec2: out.debug << "Construct vec2"; break; case EOpConstructVec3: out.debug << "Construct vec3"; break; case EOpConstructVec4: out.debug << "Construct vec4"; break; - case EOpConstructDVec2: out.debug << "Construct dvec2"; break; - case EOpConstructDVec3: out.debug << "Construct dvec3"; break; - case EOpConstructDVec4: out.debug << "Construct dvec4"; break; case EOpConstructBool: out.debug << "Construct bool"; break; case EOpConstructBVec2: out.debug << "Construct bvec2"; break; case EOpConstructBVec3: out.debug << "Construct bvec3"; break; case EOpConstructBVec4: out.debug << "Construct bvec4"; break; - case EOpConstructInt8: out.debug << "Construct int8_t"; break; - case EOpConstructI8Vec2: out.debug << "Construct i8vec2"; break; - case EOpConstructI8Vec3: out.debug << "Construct i8vec3"; break; - case EOpConstructI8Vec4: out.debug << "Construct i8vec4"; break; case EOpConstructInt: out.debug << "Construct int"; break; case EOpConstructIVec2: out.debug << "Construct ivec2"; break; case EOpConstructIVec3: out.debug << "Construct ivec3"; break; case EOpConstructIVec4: out.debug << "Construct ivec4"; break; - case EOpConstructUint8: out.debug << "Construct uint8_t"; break; - case EOpConstructU8Vec2: out.debug << "Construct u8vec2"; break; - case EOpConstructU8Vec3: out.debug << "Construct u8vec3"; break; - case EOpConstructU8Vec4: out.debug << "Construct u8vec4"; break; case EOpConstructUint: out.debug << "Construct uint"; break; case EOpConstructUVec2: out.debug << "Construct uvec2"; break; case EOpConstructUVec3: out.debug << "Construct uvec3"; break; case EOpConstructUVec4: out.debug << "Construct uvec4"; break; - case EOpConstructInt64: out.debug << "Construct int64"; break; + case EOpConstructInt64: out.debug << "Construct int64_t"; break; case EOpConstructI64Vec2: out.debug << "Construct i64vec2"; break; case EOpConstructI64Vec3: out.debug << "Construct i64vec3"; break; case EOpConstructI64Vec4: out.debug << "Construct i64vec4"; break; - case EOpConstructUint64: out.debug << "Construct uint64"; break; + case EOpConstructUint64: out.debug << "Construct uint64_t"; break; case EOpConstructU64Vec2: out.debug << "Construct u64vec2"; break; case EOpConstructU64Vec3: out.debug << "Construct u64vec3"; break; case EOpConstructU64Vec4: out.debug << "Construct u64vec4"; break; - case EOpConstructInt16: out.debug << "Construct int16_t"; break; - case EOpConstructI16Vec2: out.debug << "Construct i16vec2"; break; - case EOpConstructI16Vec3: out.debug << "Construct i16vec3"; break; - case EOpConstructI16Vec4: out.debug << "Construct i16vec4"; break; - case EOpConstructUint16: out.debug << "Construct uint16_t"; break; - case EOpConstructU16Vec2: out.debug << "Construct u16vec2"; break; - case EOpConstructU16Vec3: out.debug << "Construct u16vec3"; break; - case EOpConstructU16Vec4: out.debug << "Construct u16vec4"; break; case EOpConstructMat2x2: out.debug << "Construct mat2"; break; case EOpConstructMat2x3: out.debug << "Construct mat2x3"; break; case EOpConstructMat2x4: out.debug << "Construct mat2x4"; break; @@ -766,33 +469,7 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructDMat4x2: out.debug << "Construct dmat4x2"; break; case EOpConstructDMat4x3: out.debug << "Construct dmat4x3"; break; case EOpConstructDMat4x4: out.debug << "Construct dmat4"; break; - case EOpConstructIMat2x2: out.debug << "Construct imat2"; break; - case EOpConstructIMat2x3: out.debug << "Construct imat2x3"; break; - case EOpConstructIMat2x4: out.debug << "Construct imat2x4"; break; - case EOpConstructIMat3x2: out.debug << "Construct imat3x2"; break; - case EOpConstructIMat3x3: out.debug << "Construct imat3"; break; - case EOpConstructIMat3x4: out.debug << "Construct imat3x4"; break; - case EOpConstructIMat4x2: out.debug << "Construct imat4x2"; break; - case EOpConstructIMat4x3: out.debug << "Construct imat4x3"; break; - case EOpConstructIMat4x4: out.debug << "Construct imat4"; break; - case EOpConstructUMat2x2: out.debug << "Construct umat2"; break; - case EOpConstructUMat2x3: out.debug << "Construct umat2x3"; break; - case EOpConstructUMat2x4: out.debug << "Construct umat2x4"; break; - case EOpConstructUMat3x2: out.debug << "Construct umat3x2"; break; - case EOpConstructUMat3x3: out.debug << "Construct umat3"; break; - case EOpConstructUMat3x4: out.debug << "Construct umat3x4"; break; - case EOpConstructUMat4x2: out.debug << "Construct umat4x2"; break; - case EOpConstructUMat4x3: out.debug << "Construct umat4x3"; break; - case EOpConstructUMat4x4: out.debug << "Construct umat4"; break; - case EOpConstructBMat2x2: out.debug << "Construct bmat2"; break; - case EOpConstructBMat2x3: out.debug << "Construct bmat2x3"; break; - case EOpConstructBMat2x4: out.debug << "Construct bmat2x4"; break; - case EOpConstructBMat3x2: out.debug << "Construct bmat3x2"; break; - case EOpConstructBMat3x3: out.debug << "Construct bmat3"; break; - case EOpConstructBMat3x4: out.debug << "Construct bmat3x4"; break; - case EOpConstructBMat4x2: out.debug << "Construct bmat4x2"; break; - case EOpConstructBMat4x3: out.debug << "Construct bmat4x3"; break; - case EOpConstructBMat4x4: out.debug << "Construct bmat4"; break; +#ifdef AMD_EXTENSIONS case EOpConstructFloat16: out.debug << "Construct float16_t"; break; case EOpConstructF16Vec2: out.debug << "Construct f16vec2"; break; case EOpConstructF16Vec3: out.debug << "Construct f16vec3"; break; @@ -806,6 +483,7 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructF16Mat4x2: out.debug << "Construct f16mat4x2"; break; case EOpConstructF16Mat4x3: out.debug << "Construct f16mat4x3"; break; case EOpConstructF16Mat4x4: out.debug << "Construct f16mat4"; break; +#endif case EOpConstructStruct: out.debug << "Construct structure"; break; case EOpConstructTextureSampler: out.debug << "Construct combined texture-sampler"; break; @@ -872,16 +550,6 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpAtomicExchange: out.debug << "AtomicExchange"; break; case EOpAtomicCompSwap: out.debug << "AtomicCompSwap"; break; - case EOpAtomicCounterAdd: out.debug << "AtomicCounterAdd"; break; - case EOpAtomicCounterSubtract: out.debug << "AtomicCounterSubtract"; break; - case EOpAtomicCounterMin: out.debug << "AtomicCounterMin"; break; - case EOpAtomicCounterMax: out.debug << "AtomicCounterMax"; break; - case EOpAtomicCounterAnd: out.debug << "AtomicCounterAnd"; break; - case EOpAtomicCounterOr: out.debug << "AtomicCounterOr"; break; - case EOpAtomicCounterXor: out.debug << "AtomicCounterXor"; break; - case EOpAtomicCounterExchange: out.debug << "AtomicCounterExchange"; break; - case EOpAtomicCounterCompSwap: out.debug << "AtomicCounterCompSwap"; break; - case EOpImageQuerySize: out.debug << "imageQuerySize"; break; case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break; case EOpImageLoad: out.debug << "imageLoad"; break; @@ -894,10 +562,6 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpImageAtomicXor: out.debug << "imageAtomicXor"; break; case EOpImageAtomicExchange: out.debug << "imageAtomicExchange"; break; case EOpImageAtomicCompSwap: out.debug << "imageAtomicCompSwap"; break; -#ifdef AMD_EXTENSIONS - case EOpImageLoadLod: out.debug << "imageLoadLod"; break; - case EOpImageStoreLod: out.debug << "imageStoreLod"; break; -#endif case EOpTextureQuerySize: out.debug << "textureSize"; break; case EOpTextureQueryLod: out.debug << "textureQueryLod"; break; @@ -920,38 +584,6 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpTextureGather: out.debug << "textureGather"; break; case EOpTextureGatherOffset: out.debug << "textureGatherOffset"; break; case EOpTextureGatherOffsets: out.debug << "textureGatherOffsets"; break; - case EOpTextureClamp: out.debug << "textureClamp"; break; - case EOpTextureOffsetClamp: out.debug << "textureOffsetClamp"; break; - case EOpTextureGradClamp: out.debug << "textureGradClamp"; break; - case EOpTextureGradOffsetClamp: out.debug << "textureGradOffsetClamp"; break; -#ifdef AMD_EXTENSIONS - case EOpTextureGatherLod: out.debug << "textureGatherLod"; break; - case EOpTextureGatherLodOffset: out.debug << "textureGatherLodOffset"; break; - case EOpTextureGatherLodOffsets: out.debug << "textureGatherLodOffsets"; break; -#endif - - case EOpSparseTexture: out.debug << "sparseTexture"; break; - case EOpSparseTextureOffset: out.debug << "sparseTextureOffset"; break; - case EOpSparseTextureLod: out.debug << "sparseTextureLod"; break; - case EOpSparseTextureLodOffset: out.debug << "sparseTextureLodOffset"; break; - case EOpSparseTextureFetch: out.debug << "sparseTexelFetch"; break; - case EOpSparseTextureFetchOffset: out.debug << "sparseTexelFetchOffset"; break; - case EOpSparseTextureGrad: out.debug << "sparseTextureGrad"; break; - case EOpSparseTextureGradOffset: out.debug << "sparseTextureGradOffset"; break; - case EOpSparseTextureGather: out.debug << "sparseTextureGather"; break; - case EOpSparseTextureGatherOffset: out.debug << "sparseTextureGatherOffset"; break; - case EOpSparseTextureGatherOffsets: out.debug << "sparseTextureGatherOffsets"; break; - case EOpSparseImageLoad: out.debug << "sparseImageLoad"; break; - case EOpSparseTextureClamp: out.debug << "sparseTextureClamp"; break; - case EOpSparseTextureOffsetClamp: out.debug << "sparseTextureOffsetClamp"; break; - case EOpSparseTextureGradClamp: out.debug << "sparseTextureGradClamp"; break; - case EOpSparseTextureGradOffsetClamp: out.debug << "sparseTextureGradOffsetClam"; break; -#ifdef AMD_EXTENSIONS - case EOpSparseTextureGatherLod: out.debug << "sparseTextureGatherLod"; break; - case EOpSparseTextureGatherLodOffset: out.debug << "sparseTextureGatherLodOffset"; break; - case EOpSparseTextureGatherLodOffsets: out.debug << "sparseTextureGatherLodOffsets"; break; - case EOpSparseImageLoadLod: out.debug << "sparseImageLoadLod"; break; -#endif case EOpAddCarry: out.debug << "addCarry"; break; case EOpSubBorrow: out.debug << "subBorrow"; break; @@ -974,70 +606,10 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpGenMul: out.debug << "mul"; break; case EOpAllMemoryBarrierWithGroupSync: out.debug << "AllMemoryBarrierWithGroupSync"; break; - case EOpDeviceMemoryBarrier: out.debug << "DeviceMemoryBarrier"; break; - case EOpDeviceMemoryBarrierWithGroupSync: out.debug << "DeviceMemoryBarrierWithGroupSync"; break; + case EOpGroupMemoryBarrierWithGroupSync: out.debug << "GroupMemoryBarrierWithGroupSync"; break; case EOpWorkgroupMemoryBarrier: out.debug << "WorkgroupMemoryBarrier"; break; case EOpWorkgroupMemoryBarrierWithGroupSync: out.debug << "WorkgroupMemoryBarrierWithGroupSync"; break; - case EOpSubgroupBarrier: out.debug << "subgroupBarrier"; break; - case EOpSubgroupMemoryBarrier: out.debug << "subgroupMemoryBarrier"; break; - case EOpSubgroupMemoryBarrierBuffer: out.debug << "subgroupMemoryBarrierBuffer"; break; - case EOpSubgroupMemoryBarrierImage: out.debug << "subgroupMemoryBarrierImage"; break; - case EOpSubgroupMemoryBarrierShared: out.debug << "subgroupMemoryBarrierShared"; break; - case EOpSubgroupElect: out.debug << "subgroupElect"; break; - case EOpSubgroupAll: out.debug << "subgroupAll"; break; - case EOpSubgroupAny: out.debug << "subgroupAny"; break; - case EOpSubgroupAllEqual: out.debug << "subgroupAllEqual"; break; - case EOpSubgroupBroadcast: out.debug << "subgroupBroadcast"; break; - case EOpSubgroupBroadcastFirst: out.debug << "subgroupBroadcastFirst"; break; - case EOpSubgroupBallot: out.debug << "subgroupBallot"; break; - case EOpSubgroupInverseBallot: out.debug << "subgroupInverseBallot"; break; - case EOpSubgroupBallotBitExtract: out.debug << "subgroupBallotBitExtract"; break; - case EOpSubgroupBallotBitCount: out.debug << "subgroupBallotBitCount"; break; - case EOpSubgroupBallotInclusiveBitCount: out.debug << "subgroupBallotInclusiveBitCount"; break; - case EOpSubgroupBallotExclusiveBitCount: out.debug << "subgroupBallotExclusiveBitCount"; break; - case EOpSubgroupBallotFindLSB: out.debug << "subgroupBallotFindLSB"; break; - case EOpSubgroupBallotFindMSB: out.debug << "subgroupBallotFindMSB"; break; - case EOpSubgroupShuffle: out.debug << "subgroupShuffle"; break; - case EOpSubgroupShuffleXor: out.debug << "subgroupShuffleXor"; break; - case EOpSubgroupShuffleUp: out.debug << "subgroupShuffleUp"; break; - case EOpSubgroupShuffleDown: out.debug << "subgroupShuffleDown"; break; - case EOpSubgroupAdd: out.debug << "subgroupAdd"; break; - case EOpSubgroupMul: out.debug << "subgroupMul"; break; - case EOpSubgroupMin: out.debug << "subgroupMin"; break; - case EOpSubgroupMax: out.debug << "subgroupMax"; break; - case EOpSubgroupAnd: out.debug << "subgroupAnd"; break; - case EOpSubgroupOr: out.debug << "subgroupOr"; break; - case EOpSubgroupXor: out.debug << "subgroupXor"; break; - case EOpSubgroupInclusiveAdd: out.debug << "subgroupInclusiveAdd"; break; - case EOpSubgroupInclusiveMul: out.debug << "subgroupInclusiveMul"; break; - case EOpSubgroupInclusiveMin: out.debug << "subgroupInclusiveMin"; break; - case EOpSubgroupInclusiveMax: out.debug << "subgroupInclusiveMax"; break; - case EOpSubgroupInclusiveAnd: out.debug << "subgroupInclusiveAnd"; break; - case EOpSubgroupInclusiveOr: out.debug << "subgroupInclusiveOr"; break; - case EOpSubgroupInclusiveXor: out.debug << "subgroupInclusiveXor"; break; - case EOpSubgroupExclusiveAdd: out.debug << "subgroupExclusiveAdd"; break; - case EOpSubgroupExclusiveMul: out.debug << "subgroupExclusiveMul"; break; - case EOpSubgroupExclusiveMin: out.debug << "subgroupExclusiveMin"; break; - case EOpSubgroupExclusiveMax: out.debug << "subgroupExclusiveMax"; break; - case EOpSubgroupExclusiveAnd: out.debug << "subgroupExclusiveAnd"; break; - case EOpSubgroupExclusiveOr: out.debug << "subgroupExclusiveOr"; break; - case EOpSubgroupExclusiveXor: out.debug << "subgroupExclusiveXor"; break; - case EOpSubgroupClusteredAdd: out.debug << "subgroupClusteredAdd"; break; - case EOpSubgroupClusteredMul: out.debug << "subgroupClusteredMul"; break; - case EOpSubgroupClusteredMin: out.debug << "subgroupClusteredMin"; break; - case EOpSubgroupClusteredMax: out.debug << "subgroupClusteredMax"; break; - case EOpSubgroupClusteredAnd: out.debug << "subgroupClusteredAnd"; break; - case EOpSubgroupClusteredOr: out.debug << "subgroupClusteredOr"; break; - case EOpSubgroupClusteredXor: out.debug << "subgroupClusteredXor"; break; - case EOpSubgroupQuadBroadcast: out.debug << "subgroupQuadBroadcast"; break; - case EOpSubgroupQuadSwapHorizontal: out.debug << "subgroupQuadSwapHorizontal"; break; - case EOpSubgroupQuadSwapVertical: out.debug << "subgroupQuadSwapVertical"; break; - case EOpSubgroupQuadSwapDiagonal: out.debug << "subgroupQuadSwapDiagonal"; break; - - case EOpSubpassLoad: out.debug << "subpassLoad"; break; - case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break; - default: out.debug.message(EPrefixError, "Bad aggregation op"); } @@ -1056,15 +628,7 @@ bool TOutputTraverser::visitSelection(TVisit /* visit */, TIntermSelection* node OutputTreeText(out, node, depth); out.debug << "Test condition and select"; - out.debug << " (" << node->getCompleteString() << ")"; - - if (node->getShortCircuit() == false) - out.debug << ": no shortcircuit"; - if (node->getFlatten()) - out.debug << ": Flatten"; - if (node->getDontFlatten()) - out.debug << ": DontFlatten"; - out.debug << "\n"; + out.debug << " (" << node->getCompleteString() << ")\n"; ++depth; @@ -1090,61 +654,7 @@ bool TOutputTraverser::visitSelection(TVisit /* visit */, TIntermSelection* node return false; } -// Print infinities and NaNs, and numbers in a portable way. -// Goals: -// - portable (across IEEE 754 platforms) -// - shows all possible IEEE values -// - shows simple numbers in a simple way, e.g., no leading/trailing 0s -// - shows all digits, no premature rounding -static void OutputDouble(TInfoSink& out, double value, TOutputTraverser::EExtraOutput extra) -{ - if (IsInfinity(value)) { - if (value < 0) - out.debug << "-1.#INF"; - else - out.debug << "+1.#INF"; - } else if (IsNan(value)) - out.debug << "1.#IND"; - else { - const int maxSize = 340; - char buf[maxSize]; - const char* format = "%f"; - if (fabs(value) > 0.0 && (fabs(value) < 1e-5 || fabs(value) > 1e12)) - format = "%-.13e"; - int len = snprintf(buf, maxSize, format, value); - assert(len < maxSize); - - // remove a leading zero in the 100s slot in exponent; it is not portable - // pattern: XX...XXXe+0XX or XX...XXXe-0XX - if (len > 5) { - if (buf[len-5] == 'e' && (buf[len-4] == '+' || buf[len-4] == '-') && buf[len-3] == '0') { - buf[len-3] = buf[len-2]; - buf[len-2] = buf[len-1]; - buf[len-1] = '\0'; - } - } - - out.debug << buf; - - switch (extra) { - case TOutputTraverser::BinaryDoubleOutput: - { - out.debug << " : "; - long long b = *reinterpret_cast(&value); - for (size_t i = 0; i < 8 * sizeof(value); ++i, ++b) { - out.debug << ((b & 0x8000000000000000) != 0 ? "1" : "0"); - b <<= 1; - } - break; - } - default: - break; - } - } -} - -static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const TConstUnionArray& constUnion, - TOutputTraverser::EExtraOutput extra, int depth) +static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const TConstUnionArray& constUnion, int depth) { int size = node->getType().computeNumComponents(); @@ -1163,44 +673,23 @@ static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS case EbtFloat16: - OutputDouble(out, constUnion[i].getDConst(), extra); - out.debug << "\n"; - break; - case EbtInt8: +#endif { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%d (%s)", constUnion[i].getI8Const(), "const int8_t"); + const double value = constUnion[i].getDConst(); + // Print infinity in a portable way, for test stability. + // Other cases may be needed in the future: negative infinity, + // and NaNs. + if (is_positive_infinity(value)) + out.debug << "inf\n"; + else { + const int maxSize = 300; + char buf[maxSize]; + snprintf(buf, maxSize, "%f", value); - out.debug << buf << "\n"; - } - break; - case EbtUint8: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%u (%s)", constUnion[i].getU8Const(), "const uint8_t"); - - out.debug << buf << "\n"; - } - break; - case EbtInt16: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%d (%s)", constUnion[i].getI16Const(), "const int16_t"); - - out.debug << buf << "\n"; - } - break; - case EbtUint16: - { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%u (%s)", constUnion[i].getU16Const(), "const uint16_t"); - - out.debug << buf << "\n"; + out.debug << buf << "\n"; + } } break; case EbtInt: @@ -1251,7 +740,7 @@ void TOutputTraverser::visitConstantUnion(TIntermConstantUnion* node) OutputTreeText(infoSink, node, depth); infoSink.debug << "Constant:\n"; - OutputConstantUnion(infoSink, node, node->getConstArray(), extraOutput, depth + 1); + OutputConstantUnion(infoSink, node, node->getConstArray(), depth + 1); } void TOutputTraverser::visitSymbol(TIntermSymbol* node) @@ -1261,7 +750,7 @@ void TOutputTraverser::visitSymbol(TIntermSymbol* node) infoSink.debug << "'" << node->getName() << "' (" << node->getCompleteString() << ")\n"; if (! node->getConstArray().empty()) - OutputConstantUnion(infoSink, node, node->getConstArray(), extraOutput, depth + 1); + OutputConstantUnion(infoSink, node, node->getConstArray(), depth + 1); else if (node->getConstSubtree()) { incrementDepth(node); node->getConstSubtree()->traverse(this); @@ -1278,17 +767,7 @@ bool TOutputTraverser::visitLoop(TVisit /* visit */, TIntermLoop* node) out.debug << "Loop with condition "; if (! node->testFirst()) out.debug << "not "; - out.debug << "tested first"; - - if (node->getUnroll()) - out.debug << ": Unroll"; - if (node->getDontUnroll()) - out.debug << ": DontUnroll"; - if (node->getLoopDependency()) { - out.debug << ": Dependency "; - out.debug << node->getLoopDependency(); - } - out.debug << "\n"; + out.debug << "tested first\n"; ++depth; @@ -1349,13 +828,7 @@ bool TOutputTraverser::visitSwitch(TVisit /* visit */, TIntermSwitch* node) TInfoSink& out = infoSink; OutputTreeText(out, node, depth); - out.debug << "switch"; - - if (node->getFlatten()) - out.debug << ": Flatten"; - if (node->getDontFlatten()) - out.debug << ": DontFlatten"; - out.debug << "\n"; + out.debug << "switch\n"; OutputTreeText(out, node, depth); out.debug << "condition\n"; @@ -1395,13 +868,6 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree) case EShLangTessControl: infoSink.debug << "vertices = " << vertices << "\n"; - - if (inputPrimitive != ElgNone) - infoSink.debug << "input primitive = " << TQualifier::getGeometryString(inputPrimitive) << "\n"; - if (vertexSpacing != EvsNone) - infoSink.debug << "vertex spacing = " << TQualifier::getVertexSpacingString(vertexSpacing) << "\n"; - if (vertexOrder != EvoNone) - infoSink.debug << "triangle order = " << TQualifier::getVertexOrderString(vertexOrder) << "\n"; break; case EShLangTessEvaluation: @@ -1426,8 +892,6 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree) infoSink.debug << "gl_FragCoord origin is upper left\n"; if (earlyFragmentTests) infoSink.debug << "using early_fragment_tests\n"; - if (postDepthCoverage) - infoSink.debug << "using post_depth_coverage\n"; if (depthLayout != EldNone) infoSink.debug << "using " << TQualifier::getLayoutDepthString(depthLayout) << "\n"; if (blendEquations != 0) { @@ -1463,8 +927,7 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree) return; TOutputTraverser it(infoSink); - if (getBinaryDoubleOutput()) - it.setDoubleOutput(TOutputTraverser::BinaryDoubleOutput); + treeRoot->traverse(&it); } diff --git a/deps/glslang/glslang-old/glslang/MachineIndependent/iomapper.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/iomapper.cpp new file mode 100644 index 0000000000..269d654954 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/iomapper.cpp @@ -0,0 +1,404 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#include "../Include/Common.h" +#include "../Include/InfoSink.h" +#include "iomapper.h" +#include "LiveTraverser.h" +#include "localintermediate.h" + +#include "gl_types.h" + +#include +#include + +// +// Map IO bindings. +// +// High-level algorithm for one stage: +// +// 1. Traverse all code (live+dead) to find the explicitly provided bindings. +// +// 2. Traverse (just) the live code to determine which non-provided bindings +// require auto-numbering. We do not auto-number dead ones. +// +// 3. Traverse all the code to apply the bindings: +// a. explicitly given bindings are offset according to their type +// b. implicit live bindings are auto-numbered into the holes, using +// any open binding slot. +// c. implicit dead bindings are left un-bound. +// + + +namespace glslang { + +struct TVarEntryInfo +{ + int id; + TIntermSymbol* symbol; + bool live; + int newBinding; + int newSet; + + struct TOrderById + { + inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) + { + return l.id < r.id; + } + }; + + struct TOrderByPriority + { + // ordering: + // 1) has both binding and set + // 2) has binding but no set + // 3) has no binding but set + // 4) has no binding and no set + inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) + { + const TQualifier& lq = l.symbol->getQualifier(); + const TQualifier& rq = r.symbol->getQualifier(); + + // simple rules: + // has binding gives 2 points + // has set gives 1 point + // who has the most points is more important. + int lPoints = (lq.hasBinding() ? 2 : 0) + (lq.hasSet() ? 1 : 0); + int rPoints = (rq.hasBinding() ? 2 : 0) + (rq.hasSet() ? 1 : 0); + + if (lPoints == rPoints) + return l.id < r.id; + return lPoints > rPoints; + } + }; +}; + + + +typedef std::vector TVarLiveMap; + +class TVarGatherTraverser : public TLiveTraverser +{ +public: + TVarGatherTraverser(const TIntermediate& i, TVarLiveMap& vars, bool traverseDeadCode) + : TLiveTraverser(i, traverseDeadCode, true, true, false) + , varLiveList(vars) + { + } + + + virtual void visitSymbol(TIntermSymbol* base) + { + if (base->getQualifier().storage == EvqUniform) { + TVarEntryInfo ent = { base->getId(), base, !traverseAll }; + TVarLiveMap::iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); + if (at != varLiveList.end() && at->id == ent.id) + at->live = at->live || !traverseAll; // update live state + else + varLiveList.insert(at, ent); + } + } + +private: + TVarLiveMap& varLiveList; +}; + +class TVarSetTraverser : public TLiveTraverser +{ +public: + TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& vars) + : TLiveTraverser(i, true, true, true, false) + , varLiveList(vars) + { + } + + + virtual void visitSymbol(TIntermSymbol* base) + { + TVarEntryInfo ent = { base->getId() }; + TVarLiveMap::const_iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); + if (at == varLiveList.end()) + return; + if (!(at->id == ent.id)) + return; + + if (at->newBinding != -1) + base->getWritableType().getQualifier().layoutBinding = at->newBinding; + if (at->newSet != -1) + base->getWritableType().getQualifier().layoutSet = at->newSet; + } + + private: + const TVarLiveMap& varLiveList; +}; + +struct TResolverAdaptor +{ + TResolverAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e) + : resolver(r) + , stage(s) + , infoSink(i) + , error(e) + { + } + + inline void operator()(TVarEntryInfo& ent) + { + const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + if (isValid) { + ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + + if (ent.newBinding != -1) { + if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) { + TString err = "mapped binding out of range: " + ent.symbol->getName(); + + infoSink.info.message(EPrefixInternalError, err.c_str()); + error = true; + } + } + if (ent.newSet != -1) { + if (ent.newSet >= int(TQualifier::layoutSetEnd)) { + TString err = "mapped set out of range: " + ent.symbol->getName(); + + infoSink.info.message(EPrefixInternalError, err.c_str()); + error = true; + } + } + } else { + TString errorMsg = "Invalid binding: " + ent.symbol->getName(); + infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); + error = true; + } + } + + EShLanguage stage; + TIoMapResolver& resolver; + TInfoSink& infoSink; + bool& error; +}; + +/* + * Basic implementation of glslang::TIoMapResolver that replaces the + * previous offset behaviour. + * It does the same, uses the offsets for th corresponding uniform + * types. Also respects the EOptionAutoMapBindings flag and binds + * them if needed. + */ +struct TDefaultIoResolver : public glslang::TIoMapResolver +{ + int baseSamplerBinding; + int baseTextureBinding; + int baseImageBinding; + int baseUboBinding; + bool doAutoMapping; + typedef std::vector TSlotSet; + typedef std::unordered_map TSlotSetMap; + TSlotSetMap slots; + + TSlotSet::iterator findSlot(int set, int slot) + { + return std::lower_bound(slots[set].begin(), slots[set].end(), slot); + } + + bool checkEmpty(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + return !(at != slots[set].end() && *at == slot); + } + + int reserveSlot(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + slots[set].insert(at, slot); + return slot; + } + + int getFreeSlot(int set, int base) + { + TSlotSet::iterator at = findSlot(set, base); + if (at == slots[set].end()) + return reserveSlot(set, base); + + // look in locksteps, if they not match, then there is a free slot + for (; at != slots[set].end(); ++at, ++base) + if (*at != base) + break; + return reserveSlot(set, base); + } + + bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasBinding()) { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return checkEmpty(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return checkEmpty(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return checkEmpty(set, baseUboBinding + type.getQualifier().layoutBinding); + } + return true; + } + + int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override + { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getQualifier().hasBinding()) { + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isImage()) + return reserveSlot(set, baseImageBinding + type.getQualifier().layoutBinding); + + if (sampler.isPureSampler()) + return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return reserveSlot(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return reserveSlot(set, baseUboBinding + type.getQualifier().layoutBinding); + } else if (is_live && doAutoMapping) { + // find free slot, the caller did make sure it passes all vars with binding + // first and now all are passed that do not have a binding and needs one + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isImage()) + return getFreeSlot(set, baseImageBinding); + + if (sampler.isPureSampler()) + return getFreeSlot(set, baseSamplerBinding); + + if (sampler.isTexture()) + return getFreeSlot(set, baseTextureBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return getFreeSlot(set, baseUboBinding); + } + + return -1; + } + + int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasSet()) + return type.getQualifier().layoutSet; + return 0; + } +}; + +// Map I/O variables to provided offsets, and make bindings for +// unbound but live variables. +// +// Returns false if the input is too malformed to do this. +bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSink &infoSink, TIoMapResolver *resolver) +{ + // Trivial return if there is nothing to do. + if (intermediate.getShiftSamplerBinding() == 0 && + intermediate.getShiftTextureBinding() == 0 && + intermediate.getShiftImageBinding() == 0 && + intermediate.getShiftUboBinding() == 0 && + intermediate.getAutoMapBindings() == false && + resolver == nullptr) + return true; + + if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) + return false; + + TIntermNode* root = intermediate.getTreeRoot(); + if (root == nullptr) + return false; + + // if no resolver is provided, use the default resolver with the given shifts and auto map settings + TDefaultIoResolver defaultResolver; + if (resolver == nullptr) { + defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding(); + defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding(); + defaultResolver.baseImageBinding = intermediate.getShiftImageBinding(); + defaultResolver.baseUboBinding = intermediate.getShiftUboBinding(); + defaultResolver.doAutoMapping = intermediate.getAutoMapBindings(); + + resolver = &defaultResolver; + } + + TVarLiveMap varMap; + TVarGatherTraverser iter_binding_all(intermediate, varMap, true); + TVarGatherTraverser iter_binding_live(intermediate, varMap, false); + + root->traverse(&iter_binding_all); + iter_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); + + while (!iter_binding_live.functions.empty()) { + TIntermNode* function = iter_binding_live.functions.back(); + iter_binding_live.functions.pop_back(); + function->traverse(&iter_binding_live); + } + + // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. + std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderByPriority()); + + bool hadError = false; + TResolverAdaptor doResolve(stage, *resolver, infoSink, hadError); + std::for_each(varMap.begin(), varMap.end(), doResolve); + + if (!hadError) { + // sort by id again, so we can use lower bound to find entries + std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderById()); + TVarSetTraverser iter_iomap(intermediate, varMap); + root->traverse(&iter_iomap); + } + + return !hadError; +} + +} // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/iomapper.h b/deps/glslang/glslang-old/glslang/MachineIndependent/iomapper.h similarity index 52% rename from deps/glslang-new/glslang/MachineIndependent/iomapper.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/iomapper.h index 5e0d4391cc..ff47543d2c 100644 --- a/deps/glslang-new/glslang/MachineIndependent/iomapper.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/iomapper.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 LunarG, Inc. +//Copyright (C) 2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. // #ifndef _IOMAPPER_INCLUDED diff --git a/deps/glslang-new/glslang/MachineIndependent/limits.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/limits.cpp similarity index 83% rename from deps/glslang-new/glslang/MachineIndependent/limits.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/limits.cpp index 64d191b472..49da930110 100644 --- a/deps/glslang-new/glslang/MachineIndependent/limits.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/limits.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -83,7 +83,7 @@ protected: // check binary operations for those modifying the loop index bool TInductiveTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) { - if (node->modifiesState() && node->getLeft()->getAsSymbolNode() && + if (node->modifiesState() && node->getLeft()->getAsSymbolNode() && node->getLeft()->getAsSymbolNode()->getId() == loopId) { bad = true; badLoc = node->getLoc(); @@ -95,7 +95,7 @@ bool TInductiveTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) // check unary operations for those modifying the loop index bool TInductiveTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) { - if (node->modifiesState() && node->getOperand()->getAsSymbolNode() && + if (node->modifiesState() && node->getOperand()->getAsSymbolNode() && node->getOperand()->getAsSymbolNode()->getId() == loopId) { bad = true; badLoc = node->getLoc(); @@ -145,7 +145,7 @@ void TParseContext::inductiveLoopBodyCheck(TIntermNode* body, int loopId, TSymbo // // The "constant-index-expression" tranverser. // -// Just look at things that can form an index. +// Just look at things that can form an index. // class TIndexTraverser : public TIntermTraverser { diff --git a/deps/glslang-new/glslang/MachineIndependent/linkValidate.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/linkValidate.cpp similarity index 87% rename from deps/glslang-new/glslang/MachineIndependent/linkValidate.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/linkValidate.cpp index c540ae6477..3834fde32b 100644 --- a/deps/glslang-new/glslang/MachineIndependent/linkValidate.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/linkValidate.cpp @@ -1,12 +1,11 @@ // -// Copyright (C) 2013 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2013 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -49,7 +48,7 @@ #include "../Include/InfoSink.h" namespace glslang { - + // // Link-time error emitter. // @@ -68,8 +67,8 @@ void TIntermediate::warn(TInfoSink& infoSink, const char* message) infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n"; } -// TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block -// name must have the exact same set of members qualified with offset and their integral-constant +// TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block +// name must have the exact same set of members qualified with offset and their integral-constant // expression values must be the same, or a link-time error results." // @@ -102,9 +101,6 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) if (! earlyFragmentTests) earlyFragmentTests = unit.earlyFragmentTests; - if (!postDepthCoverage) - postDepthCoverage = unit.postDepthCoverage; - if (depthLayout == EldNone) depthLayout = unit.depthLayout; else if (depthLayout != unit.depthLayout) @@ -116,12 +112,12 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) inputPrimitive = unit.inputPrimitive; else if (inputPrimitive != unit.inputPrimitive) error(infoSink, "Contradictory input layout primitives"); - + if (outputPrimitive == ElgNone) outputPrimitive = unit.outputPrimitive; else if (outputPrimitive != unit.outputPrimitive) error(infoSink, "Contradictory output layout primitives"); - + if (vertices == TQualifier::layoutNotSet) vertices = unit.vertices; else if (vertices != unit.vertices) { @@ -182,7 +178,7 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) } // Getting this far means we have two existing trees to merge... - + version = std::max(version, unit.version); requestedExtensions.insert(unit.requestedExtensions.begin(), unit.requestedExtensions.end()); @@ -268,13 +264,10 @@ void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& lin // Recursively merge the implicit array sizes through the objects' respective type trees. void TIntermediate::mergeImplicitArraySizes(TType& type, const TType& unitType) { - if (type.isUnsizedArray()) { - if (unitType.isUnsizedArray()) { - type.updateImplicitArraySize(unitType.getImplicitArraySize()); - if (unitType.isArrayVariablyIndexed()) - type.setArrayVariablyIndexed(); - } else if (unitType.isSizedArray()) - type.changeOuterArraySize(unitType.getOuterArraySize()); + if (type.isImplicitlySizedArray() && unitType.isArray()) { + int newImplicitArraySize = unitType.isImplicitlySizedArray() ? unitType.getImplicitArraySize() : unitType.getOuterArraySize(); + if (newImplicitArraySize > type.getImplicitArraySize ()) + type.setImplicitArraySize(newImplicitArraySize); } // Type mismatches are caught and reported after this, just be careful for now. @@ -297,13 +290,8 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy // Types have to match if (symbol.getType() != unitSymbol.getType()) { - // but, we make an exception if one is an implicit array and the other is sized - if (! (symbol.getType().isArray() && unitSymbol.getType().isArray() && - symbol.getType().sameElementType(unitSymbol.getType()) && - (symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray()))) { - error(infoSink, "Types must match:"); - writeTypeComparison = true; - } + error(infoSink, "Types must match:"); + writeTypeComparison = true; } // Qualifiers have to (almost) match @@ -353,9 +341,9 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy writeTypeComparison = true; } - // Layouts... - // TODO: 4.4 enhanced layouts: Generalize to include offset/align: current spec - // requires separate user-supplied offset from actual computed offset, but + // Layouts... + // TODO: 4.4 enhanced layouts: Generalize to include offset/align: current spec + // requires separate user-supplied offset from actual computed offset, but // current implementation only has one offset. if (symbol.getQualifier().layoutMatrix != unitSymbol.getQualifier().layoutMatrix || symbol.getQualifier().layoutPacking != unitSymbol.getQualifier().layoutPacking || @@ -429,7 +417,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) if (xfbBuffers[b].containsDouble) RoundToPow2(xfbBuffers[b].implicitStride, 8); - // "It is a compile-time or link-time error to have + // "It is a compile-time or link-time error to have // any xfb_offset that overflows xfb_stride, whether stated on declarations before or after the xfb_stride, or // in different compilation units. While xfb_stride can be declared multiple times for the same buffer, it is a // compile-time or link-time error to have different values specified for the stride for the same buffer." @@ -441,8 +429,8 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) if (xfbBuffers[b].stride == TQualifier::layoutXfbStrideEnd) xfbBuffers[b].stride = xfbBuffers[b].implicitStride; - // "If the buffer is capturing any - // outputs with double-precision components, the stride must be a multiple of 8, otherwise it must be a + // "If the buffer is capturing any + // outputs with double-precision components, the stride must be a multiple of 8, otherwise it must be a // multiple of 4, or a compile-time or link-time error results." if (xfbBuffers[b].containsDouble && ! IsMultipleOfPow2(xfbBuffers[b].stride, 8)) { error(infoSink, "xfb_stride must be multiple of 8 for buffer holding a double:"); @@ -454,7 +442,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) infoSink.info << " xfb_buffer " << (unsigned int)b << ", xfb_stride " << xfbBuffers[b].stride << "\n"; } - // "The resulting stride (implicit or explicit), when divided by 4, must be less than or equal to the + // "The resulting stride (implicit or explicit), when divided by 4, must be less than or equal to the // implementation-dependent constant gl_MaxTransformFeedbackInterleavedComponents." if (xfbBuffers[b].stride > (unsigned int)(4 * resources.maxTransformFeedbackInterleavedComponents)) { error(infoSink, "xfb_stride is too large:"); @@ -471,37 +459,22 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) error(infoSink, "At least one shader must specify an output layout(vertices=...)"); break; case EShLangTessEvaluation: - if (source == EShSourceGlsl) { - if (inputPrimitive == ElgNone) - error(infoSink, "At least one shader must specify an input layout primitive"); - if (vertexSpacing == EvsNone) - vertexSpacing = EvsEqual; - if (vertexOrder == EvoNone) - vertexOrder = EvoCcw; - } + if (inputPrimitive == ElgNone) + error(infoSink, "At least one shader must specify an input layout primitive"); + if (vertexSpacing == EvsNone) + vertexSpacing = EvsEqual; + if (vertexOrder == EvoNone) + vertexOrder = EvoCcw; break; case EShLangGeometry: if (inputPrimitive == ElgNone) error(infoSink, "At least one shader must specify an input layout primitive"); - if (outputPrimitive == ElgNone -#ifdef NV_EXTENSIONS - && !getGeoPassthroughEXT() -#endif - ) + if (outputPrimitive == ElgNone) error(infoSink, "At least one shader must specify an output layout primitive"); - if (vertices == TQualifier::layoutNotSet -#ifdef NV_EXTENSIONS - && !getGeoPassthroughEXT() -#endif - ) + if (vertices == TQualifier::layoutNotSet) error(infoSink, "At least one shader must specify a layout(max_vertices = value)"); break; case EShLangFragment: - // for GL_ARB_post_depth_coverage, EarlyFragmentTest is set automatically in - // ParseHelper.cpp. So if we reach here, this must be GL_EXT_post_depth_coverage - // requiring explicit early_fragment_tests - if (getPostDepthCoverage() && !getEarlyFragmentTests()) - error(infoSink, "post_depth_coverage requires early_fragment_tests"); break; case EShLangCompute: break; @@ -519,9 +492,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) virtual void visitSymbol(TIntermSymbol* symbol) { // Implicitly size arrays. - // If an unsized array is left as unsized, it effectively - // becomes run-time sized. - symbol->getWritableType().adoptImplicitArraySizes(false); + symbol->getWritableType().adoptImplicitArraySizes(); } } finalLinkTraverser; @@ -561,7 +532,7 @@ void TIntermediate::checkCallGraphCycles(TInfoSink& infoSink) break; // Otherwise, we found a new subgraph, process it: - // See what all can be reached by this new root, and if any of + // See what all can be reached by this new root, and if any of // that is recursive. This is done by depth-first traversals, seeing // if a new call is found that was already in the currentPath (a back edge), // thereby detecting recursion. @@ -730,7 +701,7 @@ TIntermSequence& TIntermediate::findLinkerObjects() const } // See if a variable was both a user-declared output and used. -// Note: the spec discusses writing to one, but this looks at read or write, which +// Note: the spec discusses writing to one, but this looks at read or write, which // is more useful, and perhaps the spec should be changed to reflect that. bool TIntermediate::userOutputUsed() const { @@ -741,7 +712,7 @@ bool TIntermediate::userOutputUsed() const const TIntermSymbol& symbolNode = *linkerObjects[i]->getAsSymbolNode(); if (symbolNode.getQualifier().storage == EvqVaryingOut && symbolNode.getName().compare(0, 3, "gl_") != 0 && - inIoAccessed(symbolNode.getName())) { + inIoAccessed(symbolNode.getName())) { found = true; break; } @@ -776,7 +747,7 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ int size; if (qualifier.isUniformOrBuffer()) { - if (type.isSizedArray()) + if (type.isExplicitlySizedArray()) size = type.getCumulativeArraySize(); else size = 1; @@ -784,9 +755,9 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ // Strip off the outer array dimension for those having an extra one. if (type.isArray() && qualifier.isArrayedIo(language)) { TType elementType(type, 0); - size = computeTypeLocationSize(elementType, language); + size = computeTypeLocationSize(elementType); } else - size = computeTypeLocationSize(type, language); + size = computeTypeLocationSize(type); } // Locations, and components within locations. @@ -847,8 +818,8 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ // combine location and component ranges TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0); - // check for collisions, except for vertex inputs on desktop targeting OpenGL - if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput()) || spvVersion.vulkan > 0) + // check for collisions, except for vertex inputs on desktop + if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput())) collision = checkLocationRange(set, range, type, typeCollision); if (collision < 0) @@ -879,7 +850,7 @@ int TIntermediate::checkLocationRange(int set, const TIoRange& range, const TTyp return -1; // no collision } -// Accumulate bindings and offsets, and check for collisions +// Accumulate locations used for inputs, outputs, and uniforms, and check for collisions // as the accumulation is done. // // Returns < 0 if no collision, >= 0 if collision and the value returned is a colliding value. @@ -918,41 +889,41 @@ bool TIntermediate::addUsedConstantId(int id) // Recursively figure out how many locations are used up by an input or output type. // Return the size of type, as measured by "locations". -int TIntermediate::computeTypeLocationSize(const TType& type, EShLanguage stage) +int TIntermediate::computeTypeLocationSize(const TType& type) const { - // "If the declared input is an array of size n and each element takes m locations, it will be assigned m * n + // "If the declared input is an array of size n and each element takes m locations, it will be assigned m * n // consecutive locations..." if (type.isArray()) { // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness - // TODO: are there valid cases of having an unsized array with a location? If so, running this code too early. TType elementType(type, 0); - if (type.isSizedArray()) - return type.getOuterArraySize() * computeTypeLocationSize(elementType, stage); - else - return computeTypeLocationSize(elementType, stage); + if (type.isImplicitlySizedArray()) { + // TODO: are there valid cases of having an implicitly-sized array with a location? If so, running this code too early. + return computeTypeLocationSize(elementType); + } else + return type.getOuterArraySize() * computeTypeLocationSize(elementType); } - // "The locations consumed by block and structure members are determined by applying the rules above - // recursively..." + // "The locations consumed by block and structure members are determined by applying the rules above + // recursively..." if (type.isStruct()) { int size = 0; for (int member = 0; member < (int)type.getStruct()->size(); ++member) { TType memberType(type, member); - size += computeTypeLocationSize(memberType, stage); + size += computeTypeLocationSize(memberType); } return size; } // ES: "If a shader input is any scalar or vector type, it will consume a single location." - // Desktop: "If a vertex shader input is any scalar or vector type, it will consume a single location. If a non-vertex - // shader input is a scalar or vector type other than dvec3 or dvec4, it will consume a single location, while - // types dvec3 or dvec4 will consume two consecutive locations. Inputs of type double and dvec2 will + // Desktop: "If a vertex shader input is any scalar or vector type, it will consume a single location. If a non-vertex + // shader input is a scalar or vector type other than dvec3 or dvec4, it will consume a single location, while + // types dvec3 or dvec4 will consume two consecutive locations. Inputs of type double and dvec2 will // consume only a single location, in all stages." if (type.isScalar()) return 1; if (type.isVector()) { - if (stage == EShLangVertex && type.getQualifier().isPipeInput()) + if (language == EShLangVertex && type.getQualifier().isPipeInput()) return 1; if (type.getBasicType() == EbtDouble && type.getVectorSize() > 2) return 2; @@ -961,48 +932,17 @@ int TIntermediate::computeTypeLocationSize(const TType& type, EShLanguage stage) } // "If the declared input is an n x m single- or double-precision matrix, ... - // The number of locations assigned for each matrix will be the same as + // The number of locations assigned for each matrix will be the same as // for an n-element array of m-component vectors..." if (type.isMatrix()) { TType columnType(type, 0); - return type.getMatrixCols() * computeTypeLocationSize(columnType, stage); + return type.getMatrixCols() * computeTypeLocationSize(columnType); } assert(0); return 1; } -// Same as computeTypeLocationSize but for uniforms -int TIntermediate::computeTypeUniformLocationSize(const TType& type) -{ - // "Individual elements of a uniform array are assigned - // consecutive locations with the first element taking location - // location." - if (type.isArray()) { - // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness - TType elementType(type, 0); - if (type.isSizedArray()) { - return type.getOuterArraySize() * computeTypeUniformLocationSize(elementType); - } else { - // TODO: are there valid cases of having an implicitly-sized array with a location? If so, running this code too early. - return computeTypeUniformLocationSize(elementType); - } - } - - // "Each subsequent inner-most member or element gets incremental - // locations for the entire structure or array." - if (type.isStruct()) { - int size = 0; - for (int member = 0; member < (int)type.getStruct()->size(); ++member) { - TType memberType(type, member); - size += computeTypeUniformLocationSize(memberType); - } - return size; - } - - return 1; -} - // Accumulate xfb buffer ranges and check for collisions as the accumulation is done. // // Returns < 0 if no collision, >= 0 if collision and the value returned is a colliding value. @@ -1038,16 +978,16 @@ int TIntermediate::addXfbBufferOffset(const TType& type) // N.B. Caller must set containsDouble to false before calling. unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& containsDouble) const { - // "...if applied to an aggregate containing a double, the offset must also be a multiple of 8, + // "...if applied to an aggregate containing a double, the offset must also be a multiple of 8, // and the space taken in the buffer will be a multiple of 8. - // ...within the qualified entity, subsequent components are each + // ...within the qualified entity, subsequent components are each // assigned, in order, to the next available offset aligned to a multiple of // that component's size. Aggregate types are flattened down to the component // level to get this sequence of components." - if (type.isArray()) { + if (type.isArray()) { // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness - assert(type.isSizedArray()); + assert(type.isExplicitlySizedArray()); TType elementType(type, 0); return type.getOuterArraySize() * computeTypeXfbSize(elementType, containsDouble); } @@ -1057,8 +997,8 @@ unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& contains bool structContainsDouble = false; for (int member = 0; member < (int)type.getStruct()->size(); ++member) { TType memberType(type, member); - // "... if applied to - // an aggregate containing a double, the offset must also be a multiple of 8, + // "... if applied to + // an aggregate containing a double, the offset must also be a multiple of 8, // and the space taken in the buffer will be a multiple of 8." bool memberContainsDouble = false; int memberSize = computeTypeXfbSize(memberType, memberContainsDouble); @@ -1097,20 +1037,18 @@ unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& contains const int baseAlignmentVec4Std140 = 16; -// Return the size and alignment of a component of the given type. +// Return the size and alignment of a scalar. // The size is returned in the 'size' parameter -// Return value is the alignment.. +// Return value is the alignment of the type. int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size) { switch (type.getBasicType()) { case EbtInt64: case EbtUint64: case EbtDouble: size = 8; return 8; +#ifdef AMD_EXTENSIONS case EbtFloat16: size = 2; return 2; - case EbtInt8: - case EbtUint8: size = 1; return 1; - case EbtInt16: - case EbtUint16: size = 2; return 2; +#endif default: size = 4; return 4; } } @@ -1118,7 +1056,7 @@ int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size) // Implement base-alignment and size rules from section 7.6.2.2 Standard Uniform Block Layout // Operates recursively. // -// If std140 is true, it does the rounding up to vec4 size required by std140, +// If std140 is true, it does the rounding up to vec4 size required by std140, // otherwise it does not, yielding std430 rules. // // The size is returned in the 'size' parameter @@ -1147,7 +1085,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // // 1. If the member is a scalar consuming N basic machine units, the base alignment is N. // - // 2. If the member is a two- or four-component vector with components consuming N basic + // 2. If the member is a two- or four-component vector with components consuming N basic // machine units, the base alignment is 2N or 4N, respectively. // // 3. If the member is a three-component vector with components consuming N @@ -1160,7 +1098,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // the array is rounded up to the next multiple of the base alignment. // // 5. If the member is a column-major matrix with C columns and R rows, the - // matrix is stored identically to an array of C column vectors with R + // matrix is stored identically to an array of C column vectors with R // components each, according to rule (4). // // 6. If the member is an array of S column-major matrices with C columns and @@ -1177,7 +1115,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // // 9. If the member is a structure, the base alignment of the structure is N , where // N is the largest base alignment value of any of its members, and rounded - // up to the base alignment of a vec4. The individual members of this substructure + // up to the base alignment of a vec4. The individual members of this substructure // are then assigned offsets by applying this set of rules recursively, // where the base offset of the first member of the sub-structure is equal to the // aligned offset of the structure. The structure may have padding at the end; @@ -1219,7 +1157,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b int memberAlignment = getBaseAlignment(*memberList[m].type, memberSize, dummyStride, std140, (subMatrixLayout != ElmNone) ? (subMatrixLayout == ElmRowMajor) : rowMajor); maxAlignment = std::max(maxAlignment, memberAlignment); - RoundToPow2(size, memberAlignment); + RoundToPow2(size, memberAlignment); size += memberSize; } @@ -1239,12 +1177,10 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b if (type.isVector()) { int scalarAlign = getBaseAlignmentScalar(type, size); switch (type.getVectorSize()) { - case 1: // HLSL has this, GLSL does not - return scalarAlign; case 2: size *= 2; return 2 * scalarAlign; - default: + default: size *= type.getVectorSize(); return 4 * scalarAlign; } @@ -1254,7 +1190,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b if (type.isMatrix()) { // rule 5: deref to row, not to column, meaning the size of vector is num columns instead of num rows TType derefType(type, 0, rowMajor); - + alignment = getBaseAlignment(derefType, size, dummyStride, std140, rowMajor); if (std140) alignment = std::max(baseAlignmentVec4Std140, alignment); @@ -1273,14 +1209,4 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b return baseAlignmentVec4Std140; } -// To aid the basic HLSL rule about crossing vec4 boundaries. -bool TIntermediate::improperStraddle(const TType& type, int size, int offset) -{ - if (! type.isVector() || type.isArray()) - return false; - - return size <= 16 ? offset / 16 != (offset + size - 1) / 16 - : offset % 16 != 0; -} - } // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/localintermediate.h b/deps/glslang/glslang-old/glslang/MachineIndependent/localintermediate.h old mode 100755 new mode 100644 similarity index 54% rename from deps/glslang-new/glslang/MachineIndependent/localintermediate.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/localintermediate.h index f3a0e413e2..57a2a70353 --- a/deps/glslang-new/glslang/MachineIndependent/localintermediate.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/localintermediate.h @@ -1,12 +1,11 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2016 LunarG, Inc. -// Copyright (C) 2017 ARM Limited. -// All rights reserved. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//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: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _LOCAL_INTERMEDIATE_INCLUDED_ @@ -43,46 +42,24 @@ #include #include -#include class TInfoSink; namespace glslang { -struct TMatrixSelector { - int coord1; // stay agnostic about column/row; this is parse order - int coord2; -}; +struct TVectorFields { + TVectorFields() { } -typedef int TVectorSelector; - -const int MaxSwizzleSelectors = 4; - -template -class TSwizzleSelectors { -public: - TSwizzleSelectors() : size_(0) { } - - void push_back(selectorType comp) + TVectorFields(int c0, int c1, int c2, int c3) : num(4) { - if (size_ < MaxSwizzleSelectors) - components[size_++] = comp; - } - void resize(int s) - { - assert(s <= size_); - size_ = s; - } - int size() const { return size_; } - selectorType operator[](int i) const - { - assert(i < MaxSwizzleSelectors); - return components[i]; + offsets[0] = c0; + offsets[1] = c1; + offsets[2] = c2; + offsets[3] = c3; } -private: - int size_; - selectorType components[MaxSwizzleSelectors]; + int offsets[4]; + int num; }; // @@ -152,54 +129,6 @@ struct TXfbBuffer { bool containsDouble; }; -// Track a set of strings describing how the module was processed. -// Using the form: -// process arg0 arg1 arg2 ... -// process arg0 arg1 arg2 ... -// where everything is textual, and there can be zero or more arguments -class TProcesses { -public: - TProcesses() {} - ~TProcesses() {} - - void addProcess(const char* process) - { - processes.push_back(process); - } - void addProcess(const std::string& process) - { - processes.push_back(process); - } - void addArgument(int arg) - { - processes.back().append(" "); - std::string argString = std::to_string(arg); - processes.back().append(argString); - } - void addArgument(const char* arg) - { - processes.back().append(" "); - processes.back().append(arg); - } - void addArgument(const std::string& arg) - { - processes.back().append(" "); - processes.back().append(arg); - } - void addIfNonZero(const char* process, int value) - { - if (value != 0) { - addProcess(process); - addArgument(value); - } - } - - const std::vector& getProcesses() const { return processes; } - -private: - std::vector processes; -}; - class TSymbolTable; class TSymbol; class TVariable; @@ -210,31 +139,19 @@ class TVariable; class TIntermediate { public: explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) : - implicitThisName("@this"), implicitCounterName("@count"), - language(l), source(EShSourceNone), profile(p), version(v), treeRoot(0), + source(EShSourceNone), language(l), profile(p), version(v), treeRoot(0), numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false), - invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), - inputPrimitive(ElgNone), outputPrimitive(ElgNone), + invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone), pixelCenterInteger(false), originUpperLeft(false), - vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), - postDepthCoverage(false), depthLayout(EldNone), depthReplacing(false), - hlslFunctionality1(false), - blendEquations(0), xfbMode(false), multiStream(false), -#ifdef NV_EXTENSIONS - layoutOverrideCoverage(false), - geoPassthroughEXT(false), -#endif + vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), depthLayout(EldNone), depthReplacing(false), blendEquations(0), + multiStream(false), xfbMode(false), + shiftSamplerBinding(0), + shiftTextureBinding(0), + shiftImageBinding(0), + shiftUboBinding(0), autoMapBindings(false), - autoMapLocations(false), - invertY(false), flattenUniformArrays(false), - useUnknownFormat(false), - hlslOffsets(false), - useStorageBuffer(false), - hlslIoMapping(false), - textureSamplerTransformMode(EShTexSampTransKeep), - needToLegalize(false), - binaryDoubleOutput(false) + useUnknownFormat(false) { localSize[0] = 1; localSize[1] = 1; @@ -243,8 +160,6 @@ public: localSizeSpecId[1] = TQualifier::layoutNotSet; localSizeSpecId[2] = TQualifier::layoutNotSet; xfbBuffers.resize(TQualifier::layoutXfbBufferEnd); - - shiftBinding.fill(0); } void setLimits(const TBuiltInResource& r) { resources = r; } @@ -254,147 +169,31 @@ public: void setSource(EShSource s) { source = s; } EShSource getSource() const { return source; } - void setEntryPointName(const char* ep) - { - entryPointName = ep; - processes.addProcess("entry-point"); - processes.addArgument(entryPointName); - } + void setEntryPointName(const char* ep) { entryPointName = ep; } void setEntryPointMangledName(const char* ep) { entryPointMangledName = ep; } const std::string& getEntryPointName() const { return entryPointName; } const std::string& getEntryPointMangledName() const { return entryPointMangledName; } - void setShiftBinding(TResourceType res, unsigned int shift) - { - shiftBinding[res] = shift; - - const char* name = getResourceName(res); - if (name != nullptr) - processes.addIfNonZero(name, shift); - } - - unsigned int getShiftBinding(TResourceType res) const { return shiftBinding[res]; } - - void setShiftBindingForSet(TResourceType res, unsigned int shift, unsigned int set) - { - if (shift == 0) // ignore if there's no shift: it's a no-op. - return; - - shiftBindingForSet[res][set] = shift; - - const char* name = getResourceName(res); - if (name != nullptr) { - processes.addProcess(name); - processes.addArgument(shift); - processes.addArgument(set); - } - } - - int getShiftBindingForSet(TResourceType res, unsigned int set) const - { - const auto shift = shiftBindingForSet[res].find(set); - return shift == shiftBindingForSet[res].end() ? -1 : shift->second; - } - bool hasShiftBindingForSet(TResourceType res) const { return !shiftBindingForSet[res].empty(); } - - void setResourceSetBinding(const std::vector& shift) - { - resourceSetBinding = shift; - if (shift.size() > 0) { - processes.addProcess("resource-set-binding"); - for (int s = 0; s < (int)shift.size(); ++s) - processes.addArgument(shift[s]); - } - } - const std::vector& getResourceSetBinding() const { return resourceSetBinding; } - void setAutoMapBindings(bool map) - { - autoMapBindings = map; - if (autoMapBindings) - processes.addProcess("auto-map-bindings"); - } - bool getAutoMapBindings() const { return autoMapBindings; } - void setAutoMapLocations(bool map) - { - autoMapLocations = map; - if (autoMapLocations) - processes.addProcess("auto-map-locations"); - } - bool getAutoMapLocations() const { return autoMapLocations; } - void setInvertY(bool invert) - { - invertY = invert; - if (invertY) - processes.addProcess("invert-y"); - } - bool getInvertY() const { return invertY; } - - void setFlattenUniformArrays(bool flatten) - { - flattenUniformArrays = flatten; - if (flattenUniformArrays) - processes.addProcess("flatten-uniform-arrays"); - } - bool getFlattenUniformArrays() const { return flattenUniformArrays; } - void setNoStorageFormat(bool b) - { - useUnknownFormat = b; - if (useUnknownFormat) - processes.addProcess("no-storage-format"); - } - bool getNoStorageFormat() const { return useUnknownFormat; } - void setHlslOffsets() - { - hlslOffsets = true; - if (hlslOffsets) - processes.addProcess("hlsl-offsets"); - } - bool usingHlslOFfsets() const { return hlslOffsets; } - void setUseStorageBuffer() - { - useStorageBuffer = true; - processes.addProcess("use-storage-buffer"); - } - bool usingStorageBuffer() const { return useStorageBuffer; } - void setHlslIoMapping(bool b) - { - hlslIoMapping = b; - if (hlslIoMapping) - processes.addProcess("hlsl-iomap"); - } - bool usingHlslIoMapping() { return hlslIoMapping; } - - template T addCounterBufferName(const T& name) const { return name + implicitCounterName; } - bool hasCounterBufferName(const TString& name) const { - size_t len = strlen(implicitCounterName); - return name.size() > len && - name.compare(name.size() - len, len, implicitCounterName) == 0; - } - - void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode) { textureSamplerTransformMode = mode; } + void setShiftSamplerBinding(unsigned int shift) { shiftSamplerBinding = shift; } + unsigned int getShiftSamplerBinding() const { return shiftSamplerBinding; } + void setShiftTextureBinding(unsigned int shift) { shiftTextureBinding = shift; } + unsigned int getShiftTextureBinding() const { return shiftTextureBinding; } + void setShiftImageBinding(unsigned int shift) { shiftImageBinding = shift; } + unsigned int getShiftImageBinding() const { return shiftImageBinding; } + void setShiftUboBinding(unsigned int shift) { shiftUboBinding = shift; } + unsigned int getShiftUboBinding() const { return shiftUboBinding; } + void setAutoMapBindings(bool map) { autoMapBindings = map; } + bool getAutoMapBindings() const { return autoMapBindings; } + void setFlattenUniformArrays(bool flatten) { flattenUniformArrays = flatten; } + bool getFlattenUniformArrays() const { return flattenUniformArrays; } + void setNoStorageFormat(bool b) { useUnknownFormat = b; } + bool getNoStorageFormat() const { return useUnknownFormat; } void setVersion(int v) { version = v; } int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } EProfile getProfile() const { return profile; } - void setSpv(const SpvVersion& s) - { - spvVersion = s; - - // client processes - if (spvVersion.vulkan > 0) - processes.addProcess("client vulkan100"); - if (spvVersion.openGl > 0) - processes.addProcess("client opengl100"); - - // target-environment processes - if (spvVersion.vulkan > 0) - processes.addProcess("target-env vulkan1.0"); - else if (spvVersion.vulkan > 0) - processes.addProcess("target-env vulkanUnknown"); - if (spvVersion.openGl > 0) - processes.addProcess("target-env opengl"); - } + void setSpv(const SpvVersion& s) { spvVersion = s; } const SpvVersion& getSpv() const { return spvVersion; } EShLanguage getStage() const { return language; } void addRequestedExtension(const char* extension) { requestedExtensions.insert(extension); } @@ -413,21 +212,13 @@ public: TIntermSymbol* addSymbol(const TType&, const TSourceLoc&); TIntermSymbol* addSymbol(const TIntermSymbol&); TIntermTyped* addConversion(TOperator, const TType&, TIntermTyped*) const; - std::tuple addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* node1) const; - TIntermTyped* addUniShapeConversion(TOperator, const TType&, TIntermTyped*); - void addBiShapeConversion(TOperator, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode); - TIntermTyped* addShapeConversion(const TType&, TIntermTyped*); + TIntermTyped* addShapeConversion(TOperator, const TType&, TIntermTyped*); TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, TSourceLoc); TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc); TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc); TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, TSourceLoc); TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType); bool canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op = EOpNull) const; - bool isIntegralPromotion(TBasicType from, TBasicType to) const; - bool isFPPromotion(TBasicType from, TBasicType to) const; - bool isIntegralConversion(TBasicType from, TBasicType to) const; - bool isFPConversion(TBasicType from, TBasicType to) const; - bool isFPIntegralConversion(TBasicType from, TBasicType to) const; TOperator mapTypeToConstructorOp(const TType&) const; TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right); TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&); @@ -436,30 +227,24 @@ public: TIntermAggregate* makeAggregate(const TSourceLoc&); TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, TSourceLoc); bool areAllChildConst(TIntermAggregate* aggrNode); - TIntermSelection* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&); + TIntermNode* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&); TIntermTyped* addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc&); TIntermTyped* addComma(TIntermTyped* left, TIntermTyped* right, const TSourceLoc&); TIntermTyped* addMethod(TIntermTyped*, const TType&, const TString*, const TSourceLoc&); TIntermConstantUnion* addConstantUnion(const TConstUnionArray&, const TType&, const TSourceLoc&, bool literal = false) const; - TIntermConstantUnion* addConstantUnion(signed char, const TSourceLoc&, bool literal = false) const; - TIntermConstantUnion* addConstantUnion(unsigned char, const TSourceLoc&, bool literal = false) const; - TIntermConstantUnion* addConstantUnion(signed short, const TSourceLoc&, bool literal = false) const; - TIntermConstantUnion* addConstantUnion(unsigned short, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(int, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(unsigned int, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(long long, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(unsigned long long, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(bool, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(double, TBasicType, const TSourceLoc&, bool literal = false) const; - TIntermConstantUnion* addConstantUnion(const TString*, const TSourceLoc&, bool literal = false) const; TIntermTyped* promoteConstantUnion(TBasicType, TIntermConstantUnion*) const; bool parseConstTree(TIntermNode*, TConstUnionArray, TOperator, const TType&, bool singleConstantParam = false); TIntermLoop* addLoop(TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&); - TIntermAggregate* addForLoop(TIntermNode*, TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, - const TSourceLoc&, TIntermLoop*&); + TIntermAggregate* addForLoop(TIntermNode*, TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&); TIntermBranch* addBranch(TOperator, const TSourceLoc&); TIntermBranch* addBranch(TOperator, TIntermTyped*, const TSourceLoc&); - template TIntermTyped* addSwizzle(TSwizzleSelectors&, const TSourceLoc&); + TIntermTyped* addSwizzle(TVectorFields&, const TSourceLoc&); // Low level functions to add nodes (no conversions or other higher level transformations) // If a type is provided, the node's type will be set to it. @@ -468,11 +253,14 @@ public: TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const; TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const; + // Add conversion from node's type to given basic type. + TIntermTyped* convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const; + // Constant folding (in Constant.cpp) TIntermTyped* fold(TIntermAggregate* aggrNode); TIntermTyped* foldConstructor(TIntermAggregate* aggrNode); TIntermTyped* foldDereference(TIntermTyped* node, int index, const TSourceLoc&); - TIntermTyped* foldSwizzle(TIntermTyped* node, TSwizzleSelectors& fields, const TSourceLoc&); + TIntermTyped* foldSwizzle(TIntermTyped* node, TVectorFields& fields, const TSourceLoc&); // Tree ops static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay); @@ -560,8 +348,6 @@ public: bool getPixelCenterInteger() const { return pixelCenterInteger; } void setEarlyFragmentTests() { earlyFragmentTests = true; } bool getEarlyFragmentTests() const { return earlyFragmentTests; } - void setPostDepthCoverage() { postDepthCoverage = true; } - bool getPostDepthCoverage() const { return postDepthCoverage; } bool setDepth(TLayoutDepth d) { if (depthLayout != EldNone) @@ -573,9 +359,6 @@ public: void setDepthReplacing() { depthReplacing = true; } bool isDepthReplacing() const { return depthReplacing; } - void setHlslFunctionality1() { hlslFunctionality1 = true; } - bool getHlslFunctionality1() const { return hlslFunctionality1; } - void addBlendEquation(TBlendEquationShift b) { blendEquations |= (1 << b); } unsigned int getBlendEquations() const { return blendEquations; } @@ -590,8 +373,7 @@ public: int checkLocationRange(int set, const TIoRange& range, const TType&, bool& typeCollision); int addUsedOffsets(int binding, int offset, int numOffsets); bool addUsedConstantId(int id); - static int computeTypeLocationSize(const TType&, EShLanguage); - static int computeTypeUniformLocationSize(const TType&); + int computeTypeLocationSize(const TType&) const; bool setXfbBufferStride(int buffer, unsigned stride) { @@ -600,47 +382,11 @@ public: xfbBuffers[buffer].stride = stride; return true; } - unsigned getXfbStride(int buffer) const { return xfbBuffers[buffer].stride; } int addXfbBufferOffset(const TType&); unsigned int computeTypeXfbSize(const TType&, bool& containsDouble) const; - static int getBaseAlignmentScalar(const TType&, int& size); static int getBaseAlignment(const TType&, int& size, int& stride, bool std140, bool rowMajor); - static bool improperStraddle(const TType& type, int size, int offset); bool promote(TIntermOperator*); -#ifdef NV_EXTENSIONS - void setLayoutOverrideCoverage() { layoutOverrideCoverage = true; } - bool getLayoutOverrideCoverage() const { return layoutOverrideCoverage; } - void setGeoPassthroughEXT() { geoPassthroughEXT = true; } - bool getGeoPassthroughEXT() const { return geoPassthroughEXT; } -#endif - - const char* addSemanticName(const TString& name) - { - return semanticNameSet.insert(name).first->c_str(); - } - - void setSourceFile(const char* file) { if (file != nullptr) sourceFile = file; } - const std::string& getSourceFile() const { return sourceFile; } - void addSourceText(const char* text) { sourceText = sourceText + text; } - const std::string& getSourceText() const { return sourceText; } - void addProcesses(const std::vector& p) { - for (int i = 0; i < (int)p.size(); ++i) - processes.addProcess(p[i]); - } - void addProcess(const std::string& process) { processes.addProcess(process); } - void addProcessArgument(const std::string& arg) { processes.addArgument(arg); } - const std::vector& getProcesses() const { return processes.getProcesses(); } - - void setNeedsLegalization() { needToLegalize = true; } - bool needsLegalization() const { return needToLegalize; } - - void setBinaryDoubleOutput() { binaryDoubleOutput = true; } - bool getBinaryDoubleOutput() { return binaryDoubleOutput; } - - const char* const implicitThisName; - const char* const implicitCounterName; - protected: TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&); void error(TInfoSink& infoSink, const char*); @@ -654,29 +400,27 @@ protected: void inOutLocationCheck(TInfoSink&); TIntermSequence& findLinkerObjects() const; bool userOutputUsed() const; + static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; - bool isNonuniformPropagating(TOperator) const; bool promoteUnary(TIntermUnary&); bool promoteBinary(TIntermBinary&); void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&); bool promoteAggregate(TIntermAggregate&); - void pushSelector(TIntermSequence&, const TVectorSelector&, const TSourceLoc&); - void pushSelector(TIntermSequence&, const TMatrixSelector&, const TSourceLoc&); - bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&); - void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root); - bool isConversionAllowed(TOperator op, TIntermTyped* node) const; - TIntermUnary* createConversion(TBasicType convertTo, TIntermTyped* node) const; - std::tuple getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const; - bool extensionRequested(const char *extension) const {return requestedExtensions.find(extension) != requestedExtensions.end();} - static const char* getResourceName(TResourceType); const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later std::string entryPointName; std::string entryPointMangledName; + unsigned int shiftSamplerBinding; + unsigned int shiftTextureBinding; + unsigned int shiftImageBinding; + unsigned int shiftUboBinding; + bool autoMapBindings; + bool flattenUniformArrays; + bool useUnknownFormat; - EProfile profile; // source profile - int version; // source version + EProfile profile; + int version; SpvVersion spvVersion; TIntermNode* treeRoot; std::set requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them @@ -697,35 +441,12 @@ protected: int localSize[3]; int localSizeSpecId[3]; bool earlyFragmentTests; - bool postDepthCoverage; TLayoutDepth depthLayout; bool depthReplacing; - bool hlslFunctionality1; int blendEquations; // an 'or'ing of masks of shifts of TBlendEquationShift bool xfbMode; bool multiStream; -#ifdef NV_EXTENSIONS - bool layoutOverrideCoverage; - bool geoPassthroughEXT; -#endif - - // Base shift values - std::array shiftBinding; - - // Per-descriptor-set shift values - std::array, EResCount> shiftBindingForSet; - - std::vector resourceSetBinding; - bool autoMapBindings; - bool autoMapLocations; - bool invertY; - bool flattenUniformArrays; - bool useUnknownFormat; - bool hlslOffsets; - bool useStorageBuffer; - bool hlslIoMapping; - typedef std::list TGraph; TGraph callGraph; @@ -734,19 +455,6 @@ protected: std::vector usedAtomics; // sets of bindings used by atomic counters std::vector xfbBuffers; // all the data we need to track per xfb buffer std::unordered_set usedConstantId; // specialization constant ids used - std::set semanticNameSet; - - EShTextureSamplerTransformMode textureSamplerTransformMode; - - // source code of shader, useful as part of debug information - std::string sourceFile; - std::string sourceText; - - // for OpModuleProcessed, or equivalent - TProcesses processes; - - bool needToLegalize; - bool binaryDoubleOutput; private: void operator=(TIntermediate&); // prevent assignments diff --git a/deps/glslang-new/glslang/MachineIndependent/parseConst.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/parseConst.cpp similarity index 80% rename from deps/glslang-new/glslang/MachineIndependent/parseConst.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/parseConst.cpp index 1a8e6d9987..90621d39f4 100644 --- a/deps/glslang-new/glslang/MachineIndependent/parseConst.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/parseConst.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,22 +18,22 @@ // 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 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. // // -// Traverse a tree of constants to create a single folded constant. +// Travarse a tree of constants to create a single folded constant. // It should only be used when the whole tree is known to be constant. // @@ -45,7 +45,7 @@ class TConstTraverser : public TIntermTraverser { public: TConstTraverser(const TConstUnionArray& cUnion, bool singleConstParam, TOperator constructType, const TType& t) : unionArray(cUnion), type(t), - constructorType(constructType), singleConstantParam(singleConstParam), error(false), isMatrix(false), + constructorType(constructType), singleConstantParam(singleConstParam), error(false), isMatrix(false), matrixCols(0), matrixRows(0) { index = 0; tOp = EOpNull; } virtual void visitConstantUnion(TIntermConstantUnion* node); @@ -73,12 +73,18 @@ bool TConstTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) if (! node->isConstructor() && node->getOp() != EOpComma) { error = true; + return false; + } + + if (node->getSequence().size() == 0) { + error = true; + return false; } bool flag = node->getSequence().size() == 1 && node->getSequence()[0]->getAsTyped()->getAsConstantUnion(); if (flag) { - singleConstantParam = true; + singleConstantParam = true; constructorType = node->getOp(); size = node->getType().computeNumComponents(); @@ -87,19 +93,19 @@ bool TConstTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) matrixCols = node->getType().getMatrixCols(); matrixRows = node->getType().getMatrixRows(); } - } + } - for (TIntermSequence::iterator p = node->getSequence().begin(); + for (TIntermSequence::iterator p = node->getSequence().begin(); p != node->getSequence().end(); p++) { if (node->getOp() == EOpComma) - index = 0; + index = 0; (*p)->traverse(this); - } - if (flag) + } + if (flag) { - singleConstantParam = false; + singleConstantParam = false; constructorType = EOpNull; size = 0; isMatrix = false; @@ -120,7 +126,7 @@ void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node) if (! singleConstantParam) { int rightUnionSize = node->getType().computeNumComponents(); - + const TConstUnionArray& rightUnionArray = node->getConstArray(); for (int i = 0; i < rightUnionSize; i++) { if (index >= instanceSize) @@ -142,7 +148,7 @@ void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node) leftUnionArray[i] = rightUnionArray[count]; (index)++; - + if (nodeComps > 1) count++; } @@ -174,13 +180,13 @@ void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node) return; if (i == startIndex || (i - startIndex) % (matrixRows + 1) == 0 ) leftUnionArray[i] = rightUnionArray[count]; - else + else leftUnionArray[i].setDConst(0.0); index++; if (nodeComps > 1) - count++; + count++; } } } @@ -193,7 +199,7 @@ bool TIntermediate::parseConstTree(TIntermNode* root, TConstUnionArray unionArra return false; TConstTraverser it(unionArray, singleConstantParam, constructorType, t); - + root->traverse(&it); if (it.error) return true; diff --git a/deps/glslang-new/glslang/MachineIndependent/parseVersions.h b/deps/glslang/glslang-old/glslang/MachineIndependent/parseVersions.h similarity index 77% rename from deps/glslang-new/glslang/MachineIndependent/parseVersions.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/parseVersions.h index b2aaa39955..acb57507a4 100755 --- a/deps/glslang-new/glslang/MachineIndependent/parseVersions.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/parseVersions.h @@ -1,12 +1,11 @@ // -// Copyright (C) 2016 Google, Inc. -// Copyright (C) 2017 ARM Limited. +//Copyright (C) 2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 implemented in Versions.cpp @@ -69,7 +68,6 @@ public: virtual void requireStage(const TSourceLoc&, EShLanguage, const char* featureDesc); virtual void checkDeprecated(const TSourceLoc&, int queryProfiles, int depVersion, const char* featureDesc); virtual void requireNotRemoved(const TSourceLoc&, int queryProfiles, int removedVersion, const char* featureDesc); - virtual void unimplemented(const TSourceLoc&, const char* featureDesc); virtual void requireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual void ppRequireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual TExtensionBehavior getExtensionBehavior(const char*); @@ -78,16 +76,10 @@ public: virtual void updateExtensionBehavior(int line, const char* const extension, const char* behavior); virtual void fullIntegerCheck(const TSourceLoc&, const char* op); virtual void doubleCheck(const TSourceLoc&, const char* op); - virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); #ifdef AMD_EXTENSIONS - virtual void float16OpaqueCheck(const TSourceLoc&, const char* op, bool builtIn = false); + virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); #endif virtual void int64Check(const TSourceLoc&, const char* op, bool builtIn = false); - virtual void explicitInt8Check(const TSourceLoc&, const char* op, bool builtIn = false); - virtual void explicitInt16Check(const TSourceLoc&, const char* op, bool builtIn = false); - virtual void explicitInt32Check(const TSourceLoc&, const char* op, bool builtIn = false); - virtual void explicitFloat32Check(const TSourceLoc&, const char* op, bool builtIn = false); - virtual void explicitFloat64Check(const TSourceLoc&, const char* op, bool builtIn = false); virtual void spvRemoved(const TSourceLoc&, const char* op); virtual void vulkanRemoved(const TSourceLoc&, const char* op); virtual void requireVulkan(const TSourceLoc&, const char* op); @@ -119,7 +111,6 @@ 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/glslang/MachineIndependent/preprocessor/Compare.h b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/Compare.h similarity index 100% rename from deps/glslang/glslang/glslang/MachineIndependent/preprocessor/Compare.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/Compare.h diff --git a/deps/glslang-new/glslang/MachineIndependent/preprocessor/Pp.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/Pp.cpp similarity index 53% rename from deps/glslang-new/glslang/MachineIndependent/preprocessor/Pp.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/Pp.cpp index 8048fa513d..9138d230ea 100644 --- a/deps/glslang-new/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// All rights reserved. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//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: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +57,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -75,119 +75,136 @@ NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ +// +// cpp.c +// -#ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS -#endif #include #include #include #include -#include #include "PpContext.h" #include "PpTokens.h" namespace glslang { +int TPpContext::InitCPP() +{ + pool = mem_CreatePool(0, 0); + + return 1; +} + // Handle #define int TPpContext::CPPdefine(TPpToken* ppToken) { MacroSymbol mac; + Symbol *symb; - // get the macro name + // get macro name int token = scanToken(ppToken); if (token != PpAtomIdentifier) { - parseContext.ppError(ppToken->loc, "must be followed by macro name", "#define", ""); + _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#define", ""); return token; } if (ppToken->loc.string >= 0) { // We are in user code; check for reserved name use: - parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#define"); + _parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#define"); } - // save the macro name - const int defAtom = atomStrings.getAddAtom(ppToken->name); + // save the original atom + const int defAtom = ppToken->atom; // gather parameters to the macro, between (...) token = scanToken(ppToken); if (token == '(' && ! ppToken->space) { - mac.emptyArgs = 1; + int argc = 0; + int args[maxMacroArgs]; do { token = scanToken(ppToken); - if (mac.args.size() == 0 && token == ')') + if (argc == 0 && token == ')') break; if (token != PpAtomIdentifier) { - parseContext.ppError(ppToken->loc, "bad argument", "#define", ""); + _parseContext.ppError(ppToken->loc, "bad argument", "#define", ""); return token; } - mac.emptyArgs = 0; - const int argAtom = atomStrings.getAddAtom(ppToken->name); - // check for duplication of parameter name bool duplicate = false; - for (size_t a = 0; a < mac.args.size(); ++a) { - if (mac.args[a] == argAtom) { - parseContext.ppError(ppToken->loc, "duplicate macro parameter", "#define", ""); + for (int a = 0; a < argc; ++a) { + if (args[a] == ppToken->atom) { + _parseContext.ppError(ppToken->loc, "duplicate macro parameter", "#define", ""); duplicate = true; break; } } - if (! duplicate) - mac.args.push_back(argAtom); + if (! duplicate) { + if (argc < maxMacroArgs) + args[argc++] = ppToken->atom; + else + _parseContext.ppError(ppToken->loc, "too many macro parameters", "#define", ""); + } token = scanToken(ppToken); } while (token == ','); if (token != ')') { - parseContext.ppError(ppToken->loc, "missing parenthesis", "#define", ""); + _parseContext.ppError(ppToken->loc, "missing parenthesis", "#define", ""); return token; } - + mac.argc = argc; + mac.args = (int*)mem_Alloc(pool, argc * sizeof(int)); + memcpy(mac.args, args, argc * sizeof(int)); token = scanToken(ppToken); } // record the definition of the macro TSourceLoc defineLoc = ppToken->loc; // because ppToken is going to go to the next line before we report errors + mac.body = new TokenStream; while (token != '\n' && token != EndOfInput) { - mac.body.putToken(token, ppToken); + RecordToken(mac.body, token, ppToken); token = scanToken(ppToken); if (token != '\n' && ppToken->space) - mac.body.putToken(' ', ppToken); + RecordToken(mac.body, ' ', ppToken); } // check for duplicate definition - MacroSymbol* existing = lookupMacroDef(defAtom); - if (existing != nullptr) { - if (! existing->undef) { + symb = LookUpSymbol(defAtom); + if (symb) { + if (! symb->mac.undef) { // Already defined -- need to make sure they are identical: // "Two replacement lists are identical if and only if the preprocessing tokens in both have the same number, // ordering, spelling, and white-space separation, where all white-space separations are considered identical." - if (existing->args.size() != mac.args.size() || existing->emptyArgs != mac.emptyArgs) - parseContext.ppError(defineLoc, "Macro redefined; different number of arguments:", "#define", atomStrings.getString(defAtom)); + if (symb->mac.argc != mac.argc) + _parseContext.ppError(defineLoc, "Macro redefined; different number of arguments:", "#define", GetAtomString(defAtom)); else { - if (existing->args != mac.args) - parseContext.ppError(defineLoc, "Macro redefined; different argument names:", "#define", atomStrings.getString(defAtom)); - existing->body.reset(); - mac.body.reset(); + for (int argc = 0; argc < mac.argc; argc++) { + if (symb->mac.args[argc] != mac.args[argc]) + _parseContext.ppError(defineLoc, "Macro redefined; different argument names:", "#define", GetAtomString(defAtom)); + } + RewindTokenStream(symb->mac.body); + RewindTokenStream(mac.body); int newToken; do { int oldToken; TPpToken oldPpToken; TPpToken newPpToken; - oldToken = existing->body.getToken(parseContext, &oldPpToken); - newToken = mac.body.getToken(parseContext, &newPpToken); + oldToken = ReadToken(symb->mac.body, &oldPpToken); + newToken = ReadToken(mac.body, &newPpToken); if (oldToken != newToken || oldPpToken != newPpToken) { - parseContext.ppError(defineLoc, "Macro redefined; different substitutions:", "#define", atomStrings.getString(defAtom)); - break; + _parseContext.ppError(defineLoc, "Macro redefined; different substitutions:", "#define", GetAtomString(defAtom)); + break; } } while (newToken > 0); } } - *existing = mac; } else - addMacroDef(defAtom, mac); + symb = AddSymbol(defAtom); + + delete symb->mac.body; + symb->mac = mac; return '\n'; } @@ -196,20 +213,22 @@ int TPpContext::CPPdefine(TPpToken* ppToken) int TPpContext::CPPundef(TPpToken* ppToken) { int token = scanToken(ppToken); + Symbol *symb; if (token != PpAtomIdentifier) { - parseContext.ppError(ppToken->loc, "must be followed by macro name", "#undef", ""); + _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#undef", ""); return token; } - parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#undef"); + _parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#undef"); - MacroSymbol* macro = lookupMacroDef(atomStrings.getAtom(ppToken->name)); - if (macro != nullptr) - macro->undef = 1; + symb = LookUpSymbol(ppToken->atom); + if (symb) { + symb->mac.undef = 1; + } token = scanToken(ppToken); if (token != '\n') - parseContext.ppError(ppToken->loc, "can only be followed by a single macro name", "#undef", ""); + _parseContext.ppError(ppToken->loc, "can only be followed by a single macro name", "#undef", ""); return token; } @@ -221,6 +240,7 @@ int TPpContext::CPPundef(TPpToken* ppToken) */ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) { + int atom; int depth = 0; int token = scanToken(ppToken); @@ -239,40 +259,35 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) if ((token = scanToken(ppToken)) != PpAtomIdentifier) continue; - int nextAtom = atomStrings.getAtom(ppToken->name); - if (nextAtom == PpAtomIf || nextAtom == PpAtomIfdef || nextAtom == PpAtomIfndef) { - depth++; - if (ifdepth >= maxIfNesting || elsetracker >= maxIfNesting) { - parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#if/#ifdef/#ifndef", ""); - return EndOfInput; - } else { - ifdepth++; - elsetracker++; - } - } else if (nextAtom == PpAtomEndif) { - token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); + atom = ppToken->atom; + if (atom == PpAtomIf || atom == PpAtomIfdef || atom == PpAtomIfndef) { + depth++; + ifdepth++; + elsetracker++; + } else if (atom == PpAtomEndif) { + token = extraTokenCheck(atom, ppToken, scanToken(ppToken)); elseSeen[elsetracker] = false; --elsetracker; if (depth == 0) { // found the #endif we are looking for - if (ifdepth > 0) + if (ifdepth) --ifdepth; break; } --depth; --ifdepth; } else if (matchelse && depth == 0) { - if (nextAtom == PpAtomElse) { + if (atom == PpAtomElse) { elseSeen[elsetracker] = true; - token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); + token = extraTokenCheck(atom, ppToken, scanToken(ppToken)); // found the #else we are looking for break; - } else if (nextAtom == PpAtomElif) { + } else if (atom == PpAtomElif) { if (elseSeen[elsetracker]) - parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); + _parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); /* we decrement ifdepth here, because CPPif will increment * it and we really want to leave it alone */ - if (ifdepth > 0) { + if (ifdepth) { --ifdepth; elseSeen[elsetracker] = false; --elsetracker; @@ -280,15 +295,15 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) return CPPif(ppToken); } - } else if (nextAtom == PpAtomElse) { + } else if (atom == PpAtomElse) { if (elseSeen[elsetracker]) - parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); + _parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); else elseSeen[elsetracker] = true; - token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); - } else if (nextAtom == PpAtomElif) { + token = extraTokenCheck(atom, ppToken, scanToken(ppToken)); + } else if (atom == PpAtomElif) { if (elseSeen[elsetracker]) - parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); + _parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); } } @@ -296,29 +311,29 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) } // Call when there should be no more tokens left on a line. -int TPpContext::extraTokenCheck(int contextAtom, TPpToken* ppToken, int token) +int TPpContext::extraTokenCheck(int atom, TPpToken* ppToken, int token) { if (token != '\n' && token != EndOfInput) { static const char* message = "unexpected tokens following directive"; const char* label; - if (contextAtom == PpAtomElse) + if (atom == PpAtomElse) label = "#else"; - else if (contextAtom == PpAtomElif) + else if (atom == PpAtomElif) label = "#elif"; - else if (contextAtom == PpAtomEndif) + else if (atom == PpAtomEndif) label = "#endif"; - else if (contextAtom == PpAtomIf) + else if (atom == PpAtomIf) label = "#if"; - else if (contextAtom == PpAtomLine) + else if (atom == PpAtomLine) label = "#line"; else label = ""; - if (parseContext.relaxedErrors()) - parseContext.ppWarn(ppToken->loc, message, label, ""); + if (_parseContext.relaxedErrors()) + _parseContext.ppWarn(ppToken->loc, message, label, ""); else - parseContext.ppError(ppToken->loc, message, label, ""); + _parseContext.ppError(ppToken->loc, message, label, ""); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); @@ -351,8 +366,8 @@ namespace { int op_add(int a, int b) { return a + b; } int op_sub(int a, int b) { return a - b; } int op_mul(int a, int b) { return a * b; } - int op_div(int a, int b) { return a == INT_MIN && b == -1 ? 0 : a / b; } - int op_mod(int a, int b) { return a == INT_MIN && b == -1 ? 0 : a % b; } + int op_div(int a, int b) { return a / b; } + int op_mod(int a, int b) { return a % b; } int op_pos(int a) { return a; } int op_neg(int a) { return -a; } int op_cmpl(int a) { return ~a; } @@ -398,15 +413,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo { TSourceLoc loc = ppToken->loc; // because we sometimes read the newline before reporting the error if (token == PpAtomIdentifier) { - if (strcmp("defined", ppToken->name) == 0) { - if (! parseContext.isReadingHLSL() && isMacroInput()) { - if (parseContext.relaxedErrors()) - parseContext.ppWarn(ppToken->loc, "nonportable when expanded from macros for preprocessor expression", - "defined", ""); - else - parseContext.ppError(ppToken->loc, "cannot use in preprocessor expression when expanded from macros", - "defined", ""); - } + if (ppToken->atom == PpAtomDefined) { bool needclose = 0; token = scanToken(ppToken); if (token == '(') { @@ -414,19 +421,18 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo token = scanToken(ppToken); } if (token != PpAtomIdentifier) { - parseContext.ppError(loc, "incorrect directive, expected identifier", "preprocessor evaluation", ""); + _parseContext.ppError(loc, "incorrect directive, expected identifier", "preprocessor evaluation", ""); err = true; res = 0; return token; } - - MacroSymbol* macro = lookupMacroDef(atomStrings.getAtom(ppToken->name)); - res = macro != nullptr ? !macro->undef : 0; + Symbol* s = LookUpSymbol(ppToken->atom); + res = s ? ! s->mac.undef : 0; token = scanToken(ppToken); if (needclose) { if (token != ')') { - parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); + _parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); err = true; res = 0; @@ -446,7 +452,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo token = eval(token, MIN_PRECEDENCE, shortCircuit, res, err, ppToken); if (! err) { if (token != ')') { - parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); + _parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); err = true; res = 0; @@ -465,7 +471,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo token = eval(token, UNARY, shortCircuit, res, err, ppToken); res = unop[op].op(res); } else { - parseContext.ppError(loc, "bad expression", "preprocessor evaluation", ""); + _parseContext.ppError(loc, "bad expression", "preprocessor evaluation", ""); err = true; res = 0; @@ -477,7 +483,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo // Perform evaluation of binary operation, if there is one, otherwise we are done. while (! err) { - if (token == ')' || token == '\n') + if (token == ')' || token == '\n') break; int op; for (op = NUM_ELEMENTS(binop) - 1; op >= 0; op--) { @@ -501,7 +507,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo if (binop[op].op == op_div || binop[op].op == op_mod) { if (res == 0) { - parseContext.ppError(loc, "division by 0", "preprocessor evaluation", ""); + _parseContext.ppError(loc, "division by 0", "preprocessor evaluation", ""); res = 1; } } @@ -514,22 +520,22 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo // Expand macros, skipping empty expansions, to get to the first real token in those expansions. int TPpContext::evalToToken(int token, bool shortCircuit, int& res, bool& err, TPpToken* ppToken) { - while (token == PpAtomIdentifier && strcmp("defined", ppToken->name) != 0) { - int macroReturn = MacroExpand(ppToken, true, false); + while (token == PpAtomIdentifier && ppToken->atom != PpAtomDefined) { + int macroReturn = MacroExpand(ppToken->atom, ppToken, true, false); if (macroReturn == 0) { - parseContext.ppError(ppToken->loc, "can't evaluate expression", "preprocessor evaluation", ""); + _parseContext.ppError(ppToken->loc, "can't evaluate expression", "preprocessor evaluation", ""); err = true; res = 0; token = scanToken(ppToken); break; } if (macroReturn == -1) { - if (! shortCircuit && parseContext.profile == EEsProfile) { + if (! shortCircuit && _parseContext.profile == EEsProfile) { const char* message = "undefined macro in expression not allowed in es profile"; - if (parseContext.relaxedErrors()) - parseContext.ppWarn(ppToken->loc, message, "preprocessor evaluation", ppToken->name); + if (_parseContext.relaxedErrors()) + _parseContext.ppWarn(ppToken->loc, message, "preprocessor evaluation", ppToken->name); else - parseContext.ppError(ppToken->loc, message, "preprocessor evaluation", ppToken->name); + _parseContext.ppError(ppToken->loc, message, "preprocessor evaluation", ppToken->name); } } token = scanToken(ppToken); @@ -539,15 +545,14 @@ int TPpContext::evalToToken(int token, bool shortCircuit, int& res, bool& err, T } // Handle #if -int TPpContext::CPPif(TPpToken* ppToken) +int TPpContext::CPPif(TPpToken* ppToken) { int token = scanToken(ppToken); - if (ifdepth >= maxIfNesting || elsetracker >= maxIfNesting) { - parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#if", ""); - return EndOfInput; - } else { - elsetracker++; - ifdepth++; + elsetracker++; + ifdepth++; + if (ifdepth > maxIfNesting) { + _parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#if", ""); + return 0; } int res = 0; bool err = false; @@ -563,110 +568,77 @@ int TPpContext::CPPif(TPpToken* ppToken) int TPpContext::CPPifdef(int defined, TPpToken* ppToken) { int token = scanToken(ppToken); - if (ifdepth > maxIfNesting || elsetracker > maxIfNesting) { - parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#ifdef", ""); - return EndOfInput; - } else { - elsetracker++; - ifdepth++; + int name = ppToken->atom; + if (++ifdepth > maxIfNesting) { + _parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#ifdef", ""); + return 0; } - + elsetracker++; if (token != PpAtomIdentifier) { if (defined) - parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifdef", ""); - else - parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifndef", ""); + _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifdef", ""); + else + _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifndef", ""); } else { - MacroSymbol* macro = lookupMacroDef(atomStrings.getAtom(ppToken->name)); + Symbol *s = LookUpSymbol(name); token = scanToken(ppToken); if (token != '\n') { - parseContext.ppError(ppToken->loc, "unexpected tokens following #ifdef directive - expected a newline", "#ifdef", ""); + _parseContext.ppError(ppToken->loc, "unexpected tokens following #ifdef directive - expected a newline", "#ifdef", ""); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); } - if (((macro != nullptr && !macro->undef) ? 1 : 0) != defined) + if (((s && !s->mac.undef) ? 1 : 0) != defined) token = CPPelse(1, ppToken); } return token; } -// Handle #include ... -// TODO: Handle macro expansions for the header name +// Handle #include int TPpContext::CPPinclude(TPpToken* ppToken) { const TSourceLoc directiveLoc = ppToken->loc; - bool startWithLocalSearch = true; // to additionally include the extra "" paths int token = scanToken(ppToken); - - // handle -style #include - if (token == '<') { - startWithLocalSearch = false; - token = scanHeaderName(ppToken, '>'); - } - // otherwise ppToken already has the header name and it was "header-name" style - if (token != PpAtomConstString) { - parseContext.ppError(directiveLoc, "must be followed by a header name", "#include", ""); - return token; - } - - // Make a copy of the name because it will be overwritten by the next token scan. - const std::string filename = ppToken->name; - - // See if the directive was well formed - token = scanToken(ppToken); - if (token != '\n') { - if (token == EndOfInput) - parseContext.ppError(ppToken->loc, "expected newline after header name:", "#include", "%s", filename.c_str()); - else - parseContext.ppError(ppToken->loc, "extra content after header name:", "#include", "%s", filename.c_str()); - return token; - } - - // Process well-formed directive - - // Find the inclusion, first look in "Local" ("") paths, if requested, - // otherwise, only search the "System" (<>) paths. - TShader::Includer::IncludeResult* res = nullptr; - if (startWithLocalSearch) - res = includer.includeLocal(filename.c_str(), currentSourceFile.c_str(), includeStack.size() + 1); - if (res == nullptr || res->headerName.empty()) { - includer.releaseInclude(res); - res = includer.includeSystem(filename.c_str(), currentSourceFile.c_str(), includeStack.size() + 1); - } - - // Process the results - if (res != nullptr && !res->headerName.empty()) { - if (res->headerData != nullptr && res->headerLength > 0) { - // path for processing one or more tokens from an included header, hand off 'res' - const bool forNextLine = parseContext.lineDirectiveShouldSetNextLine(); - std::ostringstream prologue; - std::ostringstream epilogue; - prologue << "#line " << forNextLine << " " << "\"" << res->headerName << "\"\n"; - epilogue << (res->headerData[res->headerLength - 1] == '\n'? "" : "\n") << - "#line " << directiveLoc.line + forNextLine << " " << directiveLoc.getStringNameOrNum() << "\n"; - pushInput(new TokenizableIncludeFile(directiveLoc, prologue.str(), res, epilogue.str(), this)); - // There's no "current" location anymore. - parseContext.setCurrentColumn(0); - } else { - // things are okay, but there is nothing to process - includer.releaseInclude(res); - } + // TODO: handle angle brackets. + _parseContext.ppError(directiveLoc, "must be followed by a file designation", "#include", ""); } else { - // error path, clean up - std::string message = - res != nullptr ? std::string(res->headerData, res->headerLength) - : std::string("Could not process include directive"); - parseContext.ppError(directiveLoc, message.c_str(), "#include", "for header name: %s", filename.c_str()); - includer.releaseInclude(res); + // Make a copy of the name because it will be overwritten by the next token scan. + const std::string filename = ppToken->name; + token = scanToken(ppToken); + if (token != '\n' && token != EndOfInput) { + _parseContext.ppError(ppToken->loc, "extra content after file designation", "#include", ""); + } else { + TShader::Includer::IncludeResult* res = includer.include(filename.c_str(), TShader::Includer::EIncludeRelative, currentSourceFile.c_str(), includeStack.size() + 1); + if (res && !res->file_name.empty()) { + if (res->file_data && res->file_length) { + const bool forNextLine = _parseContext.lineDirectiveShouldSetNextLine(); + std::ostringstream prologue; + std::ostringstream epilogue; + prologue << "#line " << forNextLine << " " << "\"" << res->file_name << "\"\n"; + epilogue << (res->file_data[res->file_length - 1] == '\n'? "" : "\n") << "#line " << directiveLoc.line + forNextLine << " " << directiveLoc.getStringNameOrNum() << "\n"; + pushInput(new TokenizableIncludeFile(directiveLoc, prologue.str(), res, epilogue.str(), this)); + } + // At EOF, there's no "current" location anymore. + if (token != EndOfInput) _parseContext.setCurrentColumn(0); + // Don't accidentally return EndOfInput, which will end all preprocessing. + return '\n'; + } else { + std::string message = + res ? std::string(res->file_data, res->file_length) + : std::string("Could not process include directive"); + _parseContext.ppError(directiveLoc, message.c_str(), "#include", ""); + if (res) { + includer.releaseInclude(res); + } + } + } } - return token; } // Handle #line -int TPpContext::CPPline(TPpToken* ppToken) +int TPpContext::CPPline(TPpToken* ppToken) { // "#line must have, after macro substitution, one of the following forms: // "#line line @@ -675,7 +647,7 @@ int TPpContext::CPPline(TPpToken* ppToken) int token = scanToken(ppToken); const TSourceLoc directiveLoc = ppToken->loc; if (token == '\n') { - parseContext.ppError(ppToken->loc, "must by followed by an integral literal", "#line", ""); + _parseContext.ppError(ppToken->loc, "must by followed by an integral literal", "#line", ""); return token; } @@ -692,31 +664,31 @@ int TPpContext::CPPline(TPpToken* ppToken) if (token == '\n') ++lineRes; - if (parseContext.lineDirectiveShouldSetNextLine()) + if (_parseContext.lineDirectiveShouldSetNextLine()) --lineRes; - parseContext.setCurrentLine(lineRes); + _parseContext.setCurrentLine(lineRes); if (token != '\n') { if (token == PpAtomConstString) { - parseContext.ppRequireExtensions(directiveLoc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based #line"); + _parseContext.ppRequireExtensions(directiveLoc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based #line"); // We need to save a copy of the string instead of pointing // to the name field of the token since the name field // will likely be overwritten by the next token scan. - sourceName = atomStrings.getString(atomStrings.getAddAtom(ppToken->name)); - parseContext.setCurrentSourceName(sourceName); + sourceName = GetAtomString(LookUpAddString(ppToken->name)); + _parseContext.setCurrentSourceName(sourceName); hasFile = true; token = scanToken(ppToken); } else { token = eval(token, MIN_PRECEDENCE, false, fileRes, fileErr, ppToken); if (! fileErr) { - parseContext.setCurrentString(fileRes); + _parseContext.setCurrentString(fileRes); hasFile = true; } } } } if (!fileErr && !lineErr) { - parseContext.notifyLineDirective(directiveLoc.line, lineToken, hasFile, fileRes, sourceName); + _parseContext.notifyLineDirective(directiveLoc.line, lineToken, hasFile, fileRes, sourceName); } token = extraTokenCheck(PpAtomLine, ppToken, token); @@ -724,30 +696,31 @@ int TPpContext::CPPline(TPpToken* ppToken) } // Handle #error -int TPpContext::CPPerror(TPpToken* ppToken) +int TPpContext::CPPerror(TPpToken* ppToken) { int token = scanToken(ppToken); std::string message; TSourceLoc loc = ppToken->loc; while (token != '\n' && token != EndOfInput) { - if (token == PpAtomConstInt16 || token == PpAtomConstUint16 || - token == PpAtomConstInt || token == PpAtomConstUint || + if (token == PpAtomConstInt || token == PpAtomConstUint || token == PpAtomConstInt64 || token == PpAtomConstUint64 || +#ifdef AMD_EXTENSIONS token == PpAtomConstFloat16 || +#endif token == PpAtomConstFloat || token == PpAtomConstDouble) { message.append(ppToken->name); } else if (token == PpAtomIdentifier || token == PpAtomConstString) { message.append(ppToken->name); } else { - message.append(atomStrings.getString(token)); + message.append(GetAtomString(token)); } message.append(" "); token = scanToken(ppToken); } - parseContext.notifyErrorDirective(loc.line, message.c_str()); - // store this msg into the shader's information log..set the Compile Error flag!!!! - parseContext.ppError(loc, message.c_str(), "#error", ""); + _parseContext.notifyErrorDirective(loc.line, message.c_str()); + //store this msg into the shader's information log..set the Compile Error flag!!!! + _parseContext.ppError(loc, message.c_str(), "#error", ""); return '\n'; } @@ -767,13 +740,11 @@ int TPpContext::CPPpragma(TPpToken* ppToken) case PpAtomConstUint: case PpAtomConstInt64: case PpAtomConstUint64: -#ifdef AMD_EXTENSIONS - case PpAtomConstInt16: - case PpAtomConstUint16: -#endif case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS case PpAtomConstFloat16: +#endif tokens.push_back(ppToken->name); break; default: @@ -785,9 +756,9 @@ int TPpContext::CPPpragma(TPpToken* ppToken) } if (token == EndOfInput) - parseContext.ppError(loc, "directive must end with a newline", "#pragma", ""); + _parseContext.ppError(loc, "directive must end with a newline", "#pragma", ""); else - parseContext.handlePragma(loc, tokens); + _parseContext.handlePragma(loc, tokens); return token; } @@ -797,22 +768,18 @@ int TPpContext::CPPversion(TPpToken* ppToken) { int token = scanToken(ppToken); - if (errorOnVersion || versionSeen) { - if (parseContext.isReadingHLSL()) - parseContext.ppError(ppToken->loc, "invalid preprocessor command", "#version", ""); - else - parseContext.ppError(ppToken->loc, "must occur first in shader", "#version", ""); - } + if (errorOnVersion || versionSeen) + _parseContext.ppError(ppToken->loc, "must occur first in shader", "#version", ""); versionSeen = true; if (token == '\n') { - parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); + _parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); return token; } if (token != PpAtomConstInt) - parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); + _parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); ppToken->ival = atoi(ppToken->name); int versionNumber = ppToken->ival; @@ -820,21 +787,20 @@ int TPpContext::CPPversion(TPpToken* ppToken) token = scanToken(ppToken); if (token == '\n') { - parseContext.notifyVersion(line, versionNumber, nullptr); + _parseContext.notifyVersion(line, versionNumber, nullptr); return token; } else { - int profileAtom = atomStrings.getAtom(ppToken->name); - if (profileAtom != PpAtomCore && - profileAtom != PpAtomCompatibility && - profileAtom != PpAtomEs) - parseContext.ppError(ppToken->loc, "bad profile name; use es, core, or compatibility", "#version", ""); - parseContext.notifyVersion(line, versionNumber, ppToken->name); + if (ppToken->atom != PpAtomCore && + ppToken->atom != PpAtomCompatibility && + ppToken->atom != PpAtomEs) + _parseContext.ppError(ppToken->loc, "bad profile name; use es, core, or compatibility", "#version", ""); + _parseContext.notifyVersion(line, versionNumber, ppToken->name); token = scanToken(ppToken); if (token == '\n') return token; else - parseContext.ppError(ppToken->loc, "bad tokens following profile -- expected newline", "#version", ""); + _parseContext.ppError(ppToken->loc, "bad tokens following profile -- expected newline", "#version", ""); } return token; @@ -848,36 +814,36 @@ int TPpContext::CPPextension(TPpToken* ppToken) char extensionName[MaxTokenLength + 1]; if (token=='\n') { - parseContext.ppError(ppToken->loc, "extension name not specified", "#extension", ""); + _parseContext.ppError(ppToken->loc, "extension name not specified", "#extension", ""); return token; } if (token != PpAtomIdentifier) - parseContext.ppError(ppToken->loc, "extension name expected", "#extension", ""); + _parseContext.ppError(ppToken->loc, "extension name expected", "#extension", ""); assert(strlen(ppToken->name) <= MaxTokenLength); strcpy(extensionName, ppToken->name); token = scanToken(ppToken); if (token != ':') { - parseContext.ppError(ppToken->loc, "':' missing after extension name", "#extension", ""); + _parseContext.ppError(ppToken->loc, "':' missing after extension name", "#extension", ""); return token; } token = scanToken(ppToken); if (token != PpAtomIdentifier) { - parseContext.ppError(ppToken->loc, "behavior for extension not specified", "#extension", ""); + _parseContext.ppError(ppToken->loc, "behavior for extension not specified", "#extension", ""); return token; } - parseContext.updateExtensionBehavior(line, extensionName, ppToken->name); - parseContext.notifyExtensionDirective(line, extensionName, ppToken->name); + _parseContext.updateExtensionBehavior(line, extensionName, ppToken->name); + _parseContext.notifyExtensionDirective(line, extensionName, ppToken->name); token = scanToken(ppToken); if (token == '\n') return token; else - parseContext.ppError(ppToken->loc, "extra tokens -- expected newline", "#extension",""); + _parseContext.ppError(ppToken->loc, "extra tokens -- expected newline", "#extension",""); return token; } @@ -887,33 +853,33 @@ int TPpContext::readCPPline(TPpToken* ppToken) int token = scanToken(ppToken); if (token == PpAtomIdentifier) { - switch (atomStrings.getAtom(ppToken->name)) { + switch (ppToken->atom) { case PpAtomDefine: token = CPPdefine(ppToken); break; case PpAtomElse: - if (elseSeen[elsetracker]) - parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); - elseSeen[elsetracker] = true; - if (ifdepth == 0) - parseContext.ppError(ppToken->loc, "mismatched statements", "#else", ""); + if (elsetracker[elseSeen]) + _parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); + elsetracker[elseSeen] = true; + if (! ifdepth) + _parseContext.ppError(ppToken->loc, "mismatched statements", "#else", ""); token = extraTokenCheck(PpAtomElse, ppToken, scanToken(ppToken)); token = CPPelse(0, ppToken); break; case PpAtomElif: - if (ifdepth == 0) - parseContext.ppError(ppToken->loc, "mismatched statements", "#elif", ""); + if (! ifdepth) + _parseContext.ppError(ppToken->loc, "mismatched statements", "#elif", ""); if (elseSeen[elsetracker]) - parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); + _parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); // this token is really a dont care, but we still need to eat the tokens - token = scanToken(ppToken); + token = scanToken(ppToken); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); token = CPPelse(0, ppToken); break; case PpAtomEndif: - if (ifdepth == 0) - parseContext.ppError(ppToken->loc, "mismatched statements", "#endif", ""); + if (! ifdepth) + _parseContext.ppError(ppToken->loc, "mismatched statements", "#endif", ""); else { elseSeen[elsetracker] = false; --elsetracker; @@ -931,8 +897,8 @@ int TPpContext::readCPPline(TPpToken* ppToken) token = CPPifdef(0, ppToken); break; case PpAtomInclude: - if(!parseContext.isReadingHLSL()) { - parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); + if(!_parseContext.isReadingHLSL()) { + _parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); } token = CPPinclude(ppToken); break; @@ -955,11 +921,11 @@ int TPpContext::readCPPline(TPpToken* ppToken) token = CPPextension(ppToken); break; default: - parseContext.ppError(ppToken->loc, "invalid directive:", "#", ppToken->name); + _parseContext.ppError(ppToken->loc, "invalid directive:", "#", ppToken->name); break; } } else if (token != '\n' && token != EndOfInput) - parseContext.ppError(ppToken->loc, "invalid directive", "#", ""); + _parseContext.ppError(ppToken->loc, "invalid directive", "#", ""); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); @@ -967,128 +933,52 @@ int TPpContext::readCPPline(TPpToken* ppToken) return token; } -// Context-dependent parsing of a #include . -// Assumes no macro expansions etc. are being done; the name is just on the current input. -// Always creates a name and returns PpAtomicConstString, unless we run out of input. -int TPpContext::scanHeaderName(TPpToken* ppToken, char delimit) +TPpContext::TokenStream* TPpContext::PrescanMacroArg(TokenStream* a, TPpToken* ppToken, bool newLineOkay) { - bool tooLong = false; - - if (inputStack.empty()) - return EndOfInput; - - int len = 0; - ppToken->name[0] = '\0'; - do { - int ch = inputStack.back()->getch(); - - // done yet? - if (ch == delimit) { - ppToken->name[len] = '\0'; - if (tooLong) - parseContext.ppError(ppToken->loc, "header name too long", "", ""); - return PpAtomConstString; - } else if (ch == EndOfInput) - return EndOfInput; - - // found a character to expand the name with - if (len < MaxTokenLength) - ppToken->name[len++] = (char)ch; - else - tooLong = true; - } while (true); -} - -// Macro-expand a macro argument 'arg' to create 'expandedArg'. -// Does not replace 'arg'. -// Returns nullptr if no expanded argument is created. -TPpContext::TokenStream* TPpContext::PrescanMacroArg(TokenStream& arg, TPpToken* ppToken, bool newLineOkay) -{ - // expand the argument - TokenStream* expandedArg = new TokenStream; - pushInput(new tMarkerInput(this)); - pushTokenStreamInput(arg); int token; - while ((token = scanToken(ppToken)) != tMarkerInput::marker && token != EndOfInput) { - token = tokenPaste(token, *ppToken); - if (token == tMarkerInput::marker || token == EndOfInput) + TokenStream *n; + RewindTokenStream(a); + do { + token = ReadToken(a, ppToken); + if (token == PpAtomIdentifier && LookUpSymbol(ppToken->atom)) break; - if (token == PpAtomIdentifier && MacroExpand(ppToken, false, newLineOkay) != 0) + } while (token != EndOfInput); + + if (token == EndOfInput) + return a; + + n = new TokenStream; + pushInput(new tMarkerInput(this)); + pushTokenStreamInput(a); + while ((token = scanToken(ppToken)) != tMarkerInput::marker) { + if (token == PpAtomIdentifier && MacroExpand(ppToken->atom, ppToken, false, newLineOkay) != 0) continue; - expandedArg->putToken(token, ppToken); + RecordToken(n, token, ppToken); } + popInput(); + delete a; - if (token == EndOfInput) { - // MacroExpand ate the marker, so had bad input, recover - delete expandedArg; - expandedArg = nullptr; - } else { - // remove the marker - popInput(); - } - - return expandedArg; + return n; } -// -// Return the next token for a macro expansion, handling macro arguments, -// whose semantics are dependent on being adjacent to ##. +// +// Return the next token for a macro expansion, handling macro args. // int TPpContext::tMacroInput::scan(TPpToken* ppToken) { int token; do { - token = mac->body.getToken(pp->parseContext, ppToken); + token = pp->ReadToken(mac->body, ppToken); } while (token == ' '); // handle white space in macro - // Hash operators basically turn off a round of macro substitution - // (the round done on the argument before the round done on the RHS of the - // macro definition): - // - // "A parameter in the replacement list, unless preceded by a # or ## - // preprocessing token or followed by a ## preprocessing token (see below), - // is replaced by the corresponding argument after all macros contained - // therein have been expanded." - // - // "If, in the replacement list, a parameter is immediately preceded or - // followed by a ## preprocessing token, the parameter is replaced by the - // corresponding argument's preprocessing token sequence." - - bool pasting = false; - if (postpaste) { - // don't expand next token - pasting = true; - postpaste = false; - } - - if (prepaste) { - // already know we should be on a ##, verify - assert(token == PpAtomPaste); - prepaste = false; - postpaste = true; - } - - // see if are preceding a ## - if (mac->body.peekUntokenizedPasting()) { - prepaste = true; - pasting = true; - } - - // HLSL does expand macros before concatenation - if (pasting && pp->parseContext.isReadingHLSL()) - pasting = false; - // TODO: preprocessor: properly handle whitespace (or lack of it) between tokens when expanding if (token == PpAtomIdentifier) { int i; - for (i = (int)mac->args.size() - 1; i >= 0; i--) - if (strcmp(pp->atomStrings.getString(mac->args[i]), ppToken->name) == 0) + for (i = mac->argc - 1; i >= 0; i--) + if (mac->args[i] == ppToken->atom) break; if (i >= 0) { - TokenStream* arg = expandedArgs[i]; - if (arg == nullptr || pasting) - arg = args[i]; - pp->pushTokenStreamInput(*arg, prepaste); + pp->pushTokenStreamInput(args[i]); return pp->scanToken(ppToken); } @@ -1115,35 +1005,34 @@ int TPpContext::tZeroInput::scan(TPpToken* ppToken) } // -// Check a token to see if it is a macro that should be expanded. +// Check an identifier (atom) to see if it is a macro that should be expanded. // If it is, and defined, push a tInput that will produce the appropriate expansion // and return 1. -// If it is, but undefined, and expandUndef is requested, push a tInput that will +// If it is, but undefined, and expandUndef is requested, push a tInput that will // expand to 0 and return -1. // Otherwise, return 0 to indicate no expansion, which is not necessarily an error. // -int TPpContext::MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOkay) +int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool newLineOkay) { ppToken->space = false; - int macroAtom = atomStrings.getAtom(ppToken->name); - switch (macroAtom) { + switch (atom) { case PpAtomLineMacro: - ppToken->ival = parseContext.getCurrentLoc().line; + ppToken->ival = _parseContext.getCurrentLoc().line; snprintf(ppToken->name, sizeof(ppToken->name), "%d", ppToken->ival); UngetToken(PpAtomConstInt, ppToken); return 1; case PpAtomFileMacro: { - if (parseContext.getCurrentLoc().name) - parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based __FILE__"); - ppToken->ival = parseContext.getCurrentLoc().string; + if (_parseContext.getCurrentLoc().name) + _parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based __FILE__"); + ppToken->ival = _parseContext.getCurrentLoc().string; snprintf(ppToken->name, sizeof(ppToken->name), "%s", ppToken->loc.getStringNameOrNum().c_str()); UngetToken(PpAtomConstInt, ppToken); return 1; } case PpAtomVersionMacro: - ppToken->ival = parseContext.version; + ppToken->ival = _parseContext.version; snprintf(ppToken->name, sizeof(ppToken->name), "%d", ppToken->ival); UngetToken(PpAtomConstInt, ppToken); return 1; @@ -1152,19 +1041,20 @@ int TPpContext::MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOka break; } - MacroSymbol* macro = macroAtom == 0 ? nullptr : lookupMacroDef(macroAtom); + Symbol *sym = LookUpSymbol(atom); + int token; int depth = 0; // no recursive expansions - if (macro != nullptr && macro->busy) + if (sym && sym->mac.busy) return 0; // not expanding undefined macros - if ((macro == nullptr || macro->undef) && ! expandUndef) + if ((! sym || sym->mac.undef) && ! expandUndef) return 0; // 0 is the value of an undefined macro - if ((macro == nullptr || macro->undef) && expandUndef) { + if ((! sym || sym->mac.undef) && expandUndef) { pushInput(new tZeroInput(this)); return -1; } @@ -1172,49 +1062,49 @@ int TPpContext::MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOka tMacroInput *in = new tMacroInput(this); TSourceLoc loc = ppToken->loc; // in case we go to the next line before discovering the error - in->mac = macro; - if (macro->args.size() > 0 || macro->emptyArgs) { - int token = scanToken(ppToken); + in->mac = &sym->mac; + if (sym->mac.args) { + token = scanToken(ppToken); if (newLineOkay) { while (token == '\n') token = scanToken(ppToken); } if (token != '(') { + _parseContext.ppError(loc, "expected '(' following", "macro expansion", GetAtomString(atom)); UngetToken(token, ppToken); + ppToken->atom = atom; + delete in; return 0; } - in->args.resize(in->mac->args.size()); - for (size_t i = 0; i < in->mac->args.size(); i++) + in->args.resize(in->mac->argc); + for (int i = 0; i < in->mac->argc; i++) in->args[i] = new TokenStream; - in->expandedArgs.resize(in->mac->args.size()); - for (size_t i = 0; i < in->mac->args.size(); i++) - in->expandedArgs[i] = nullptr; - size_t arg = 0; + int arg = 0; bool tokenRecorded = false; do { depth = 0; while (1) { token = scanToken(ppToken); - if (token == EndOfInput || token == tMarkerInput::marker) { - parseContext.ppError(loc, "End of input in macro", "macro expansion", atomStrings.getString(macroAtom)); + if (token == EndOfInput) { + _parseContext.ppError(loc, "End of input in macro", "macro expansion", GetAtomString(atom)); delete in; return 0; } if (token == '\n') { if (! newLineOkay) { - parseContext.ppError(loc, "End of line in macro substitution:", "macro expansion", atomStrings.getString(macroAtom)); + _parseContext.ppError(loc, "End of line in macro substitution:", "macro expansion", GetAtomString(atom)); delete in; return 0; } continue; } if (token == '#') { - parseContext.ppError(ppToken->loc, "unexpected '#'", "macro expansion", atomStrings.getString(macroAtom)); + _parseContext.ppError(ppToken->loc, "unexpected '#'", "macro expansion", GetAtomString(atom)); delete in; return 0; } - if (in->mac->args.size() == 0 && token != ')') + if (in->mac->argc == 0 && token != ')') break; if (depth == 0 && (token == ',' || token == ')')) break; @@ -1222,20 +1112,20 @@ int TPpContext::MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOka depth++; if (token == ')') depth--; - in->args[arg]->putToken(token, ppToken); + RecordToken(in->args[arg], token, ppToken); tokenRecorded = true; } if (token == ')') { - if (in->mac->args.size() == 1 && tokenRecorded == 0) + if (in->mac->argc == 1 && tokenRecorded == 0) break; arg++; break; } arg++; - } while (arg < in->mac->args.size()); + } while (arg < in->mac->argc); - if (arg < in->mac->args.size()) - parseContext.ppError(loc, "Too few args in Macro", "macro expansion", atomStrings.getString(macroAtom)); + if (arg < in->mac->argc) + _parseContext.ppError(loc, "Too few args in Macro", "macro expansion", GetAtomString(atom)); else if (token != ')') { depth=0; while (token != EndOfInput && (depth > 0 || token != ')')) { @@ -1247,22 +1137,19 @@ int TPpContext::MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOka } if (token == EndOfInput) { - parseContext.ppError(loc, "End of input in macro", "macro expansion", atomStrings.getString(macroAtom)); + _parseContext.ppError(loc, "End of input in macro", "macro expansion", GetAtomString(atom)); delete in; return 0; } - parseContext.ppError(loc, "Too many args in macro", "macro expansion", atomStrings.getString(macroAtom)); + _parseContext.ppError(loc, "Too many args in macro", "macro expansion", GetAtomString(atom)); } - - // We need both expanded and non-expanded forms of the argument, for whether or - // not token pasting will be applied later when the argument is consumed next to ##. - for (size_t i = 0; i < in->mac->args.size(); i++) - in->expandedArgs[i] = PrescanMacroArg(*in->args[i], ppToken, newLineOkay); + for (int i = 0; i < in->mac->argc; i++) + in->args[i] = PrescanMacroArg(in->args[i], ppToken, newLineOkay); } pushInput(in); - macro->busy = 1; - macro->body.reset(); + sym->mac.busy = 1; + RewindTokenStream(sym->mac.body); return 1; } diff --git a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpAtom.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpAtom.cpp similarity index 69% rename from deps/glslang-new/glslang/MachineIndependent/preprocessor/PpAtom.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpAtom.cpp index 06c2333ef1..2b21193107 100644 --- a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpAtom.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpAtom.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// All rights reserved. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//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: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +57,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -76,9 +76,11 @@ TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ -#ifndef _CRT_SECURE_NO_WARNINGS +// +// atom.c +// + #define _CRT_SECURE_NO_WARNINGS -#endif #include #include @@ -96,12 +98,11 @@ const struct { const char* str; } tokens[] = { - { PPAtomAddAssign, "+=" }, - { PPAtomSubAssign, "-=" }, - { PPAtomMulAssign, "*=" }, - { PPAtomDivAssign, "/=" }, - { PPAtomModAssign, "%=" }, - + { PpAtomAdd, "+=" }, + { PpAtomSub, "-=" }, + { PpAtomMul, "*=" }, + { PpAtomDiv, "/=" }, + { PpAtomMod, "%=" }, { PpAtomRight, ">>" }, { PpAtomLeft, "<<" }, { PpAtomAnd, "&&" }, @@ -122,9 +123,8 @@ const struct { { PpAtomDecrement, "--" }, { PpAtomIncrement, "++" }, - { PpAtomColonColon, "::" }, - { PpAtomDefine, "define" }, + { PpAtomDefined, "defined" }, { PpAtomUndef, "undef" }, { PpAtomIf, "if" }, { PpAtomElif, "elif" }, @@ -153,13 +153,48 @@ const struct { namespace glslang { +// +// Map a new or existing string to an atom, inventing a new atom if necessary. +// +int TPpContext::LookUpAddString(const char* s) +{ + auto it = atomMap.find(s); + if (it == atomMap.end()) { + AddAtomFixed(s, nextAtom); + return nextAtom++; + } else + return it->second; +} + +// +// Map an already created atom to its string. +// +const char* TPpContext::GetAtomString(int atom) +{ + if ((size_t)atom >= stringMap.size()) + return ""; + + const TString* atomString = stringMap[atom]; + + return atomString ? atomString->c_str() : ""; +} + +// +// Add forced mapping of string to atom. +// +void TPpContext::AddAtomFixed(const char* s, int atom) +{ + auto it = atomMap.insert(std::pair(s, atom)).first; + if (stringMap.size() < (size_t)atom + 1) + stringMap.resize(atom + 100, 0); + stringMap[atom] = &it->first; +} + // // Initialize the atom table. // -TStringAtomMap::TStringAtomMap() +void TPpContext::InitAtomTable() { - badToken.assign(""); - // Add single character tokens to the atom table: const char* s = "~!%^&*()-+=|,.<>/?;:[]{}#\\"; char t[2]; @@ -167,13 +202,13 @@ TStringAtomMap::TStringAtomMap() t[1] = '\0'; while (*s) { t[0] = *s; - addAtomFixed(t, s[0]); + AddAtomFixed(t, s[0]); s++; } // Add multiple character scanner tokens : for (size_t ii = 0; ii < sizeof(tokens)/sizeof(tokens[0]); ii++) - addAtomFixed(tokens[ii].str, tokens[ii].val); + AddAtomFixed(tokens[ii].str, tokens[ii].val); nextAtom = PpAtomLast; } diff --git a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpContext.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpContext.cpp old mode 100755 new mode 100644 similarity index 73% rename from deps/glslang-new/glslang/MachineIndependent/preprocessor/PpContext.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpContext.cpp index c89b37688a..c0bbda814c --- a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpContext.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpContext.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013 LunarG, Inc. -// All rights reserved. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//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: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +57,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -77,27 +77,30 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ #include -#include #include "PpContext.h" namespace glslang { -TPpContext::TPpContext(TParseContextBase& pc, const std::string& rootFileName, TShader::Includer& inclr) : - preamble(0), strings(0), previous_token('\n'), parseContext(pc), includer(inclr), inComment(false), +TPpContext::TPpContext(TParseContextBase& pc, const std::string& rootFileName, TShader::Includer& inclr) : + preamble(0), strings(0), _parseContext(pc), includer(inclr), inComment(false), rootFileName(rootFileName), currentSourceFile(rootFileName) { + InitAtomTable(); + InitScanner(); + ifdepth = 0; for (elsetracker = 0; elsetracker < maxIfNesting; elsetracker++) elseSeen[elsetracker] = false; elsetracker = 0; - - strtodStream.imbue(std::locale::classic()); } TPpContext::~TPpContext() { + for (TSymbolMap::iterator it = symbols.begin(); it != symbols.end(); ++it) + delete it->second->mac.body; + mem_FreePool(pool); delete [] preamble; // free up the inputStack diff --git a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpContext.h b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpContext.h old mode 100755 new mode 100644 similarity index 64% rename from deps/glslang-new/glslang/MachineIndependent/preprocessor/PpContext.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpContext.h index b3a39c5cbc..dcd858efab --- a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpContext.h @@ -1,10 +1,10 @@ // -// Copyright (C) 2013 LunarG, Inc. -// All rights reserved. +//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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -80,7 +80,6 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -#include #include "../ParseHelper.h" @@ -93,92 +92,28 @@ namespace glslang { class TPpToken { public: - TPpToken() { clear(); } - void clear() + TPpToken() : token(0), space(false), ival(0), dval(0.0), atom(0) { - space = false; - i64val = 0; loc.init(); name[0] = 0; } - // Used for comparing macro definitions, so checks what is relevant for that. bool operator==(const TPpToken& right) { - return space == right.space && - ival == right.ival && dval == right.dval && i64val == right.i64val && - strncmp(name, right.name, MaxTokenLength) == 0; + return token == right.token && atom == right.atom && + ival == right.ival && dval == right.dval && + strcmp(name, right.name) == 0; } bool operator!=(const TPpToken& right) { return ! operator==(right); } TSourceLoc loc; - // True if a space (for white space or a removed comment) should also be - // recognized, in front of the token returned: - bool space; - // Numeric value of the token: - union { - int ival; - double dval; - long long i64val; - }; - // Text string of the token: - char name[MaxTokenLength + 1]; -}; - -class TStringAtomMap { -// -// Implementation is in PpAtom.cpp -// -// Maintain a bi-directional mapping between relevant preprocessor strings and -// "atoms" which a unique integers (small, contiguous, not hash-like) per string. -// -public: - TStringAtomMap(); - - // Map string -> atom. - // Return 0 if no existing string. - int getAtom(const char* s) const - { - auto it = atomMap.find(s); - return it == atomMap.end() ? 0 : it->second; - } - - // Map a new or existing string -> atom, inventing a new atom if necessary. - int getAddAtom(const char* s) - { - int atom = getAtom(s); - if (atom == 0) { - atom = nextAtom++; - addAtomFixed(s, atom); - } - return atom; - } - - // Map atom -> string. - const char* getString(int atom) const { return stringMap[atom]->c_str(); } - -protected: - TStringAtomMap(TStringAtomMap&); - TStringAtomMap& operator=(TStringAtomMap&); - - TUnorderedMap atomMap; - TVector stringMap; // these point into the TString in atomMap - int nextAtom; - - // Bad source characters can lead to bad atoms, so gracefully handle those by - // pre-filling the table with them (to avoid if tests later). - TString badToken; - - // Add bi-directional mappings: - // - string -> atom - // - atom -> string - void addAtomFixed(const char* s, int atom) - { - auto it = atomMap.insert(std::pair(s, atom)).first; - if (stringMap.size() < (size_t)atom + 1) - stringMap.resize(atom + 100, &badToken); - stringMap[atom] = &it->first; - } + int token; + bool space; // true if a space (for white space or a removed comment) should also be recognized, in front of the token returned + int ival; + double dval; + long long i64val; + int atom; + char name[MaxTokenLength + 1]; }; class TInputScanner; @@ -193,8 +128,7 @@ public: void setPreamble(const char* preamble, size_t length); - int tokenize(TPpToken& ppToken); - int tokenPaste(int token, TPpToken&); + const char* tokenize(TPpToken* ppToken); class tInput { public: @@ -204,9 +138,6 @@ public: virtual int scan(TPpToken*) = 0; virtual int getch() = 0; virtual void ungetch() = 0; - virtual bool peekPasting() { return false; } // true when about to see ## - virtual bool endOfReplacementList() { return false; } // true when at the end of a macro replacement list (RHS of #define) - virtual bool isMacroInput() { return false; } // Will be called when we start reading tokens from this instance virtual void notifyActivated() {} @@ -231,57 +162,50 @@ public: inputStack.pop_back(); } - // - // From PpTokens.cpp - // - - class TokenStream { - public: + struct TokenStream { TokenStream() : current(0) { } - - void putToken(int token, TPpToken* ppToken); - int getToken(TParseContextBase&, TPpToken*); - bool atEnd() { return current >= data.size(); } - bool peekTokenizedPasting(bool lastTokenPastes); - bool peekUntokenizedPasting(); - void reset() { current = 0; } - - protected: - void putSubtoken(char); - int getSubtoken(); - void ungetSubtoken(); - TVector data; size_t current; }; + struct MemoryPool { + struct chunk *next; + uintptr_t free, end; + size_t chunksize; + uintptr_t alignmask; + }; + // // From Pp.cpp // struct MacroSymbol { - MacroSymbol() : emptyArgs(0), busy(0), undef(0) { } - TVector args; - TokenStream body; - unsigned emptyArgs : 1; - unsigned busy : 1; - unsigned undef : 1; + MacroSymbol() : argc(0), args(0), body(0), busy(0), undef(0) { } + int argc; + int *args; + TokenStream *body; + unsigned busy:1; + unsigned undef:1; }; - typedef TMap TSymbolMap; - TSymbolMap macroDefs; // map atoms to macro definitions - MacroSymbol* lookupMacroDef(int atom) - { - auto existingMacroIt = macroDefs.find(atom); - return (existingMacroIt == macroDefs.end()) ? nullptr : &(existingMacroIt->second); - } - void addMacroDef(int atom, MacroSymbol& macroDef) { macroDefs[atom] = macroDef; } + struct Symbol { + int atom; + MacroSymbol mac; + }; + + struct SymbolList { + struct SymbolList_Rec *next; + Symbol *symb; + }; + + MemoryPool *pool; + typedef TMap TSymbolMap; + TSymbolMap symbols; // this has light use... just defined macros protected: TPpContext(TPpContext&); TPpContext& operator=(TPpContext&); - TStringAtomMap atomStrings; char* preamble; // string to parse, all before line 1 of string 0, it is 0 if no preamble int preambleLength; char** strings; // official strings of shader, starting a string 0 line 1 @@ -291,7 +215,7 @@ protected: // Scanner data: int previous_token; - TParseContextBase& parseContext; + TParseContextBase& _parseContext; // Get the next token from *stack* of input sources, popping input sources // that are out of tokens, down until an input source is found that has a token. @@ -311,11 +235,9 @@ protected: } int getChar() { return inputStack.back()->getch(); } void ungetChar() { inputStack.back()->ungetch(); } - bool peekPasting() { return !inputStack.empty() && inputStack.back()->peekPasting(); } - bool endOfReplacementList() { return inputStack.empty() || inputStack.back()->endOfReplacementList(); } - bool isMacroInput() { return inputStack.size() > 0 && inputStack.back()->isMacroInput(); } - static const int maxIfNesting = 65; + static const int maxMacroArgs = 64; + static const int maxIfNesting = 64; int ifdepth; // current #if-#else-#endif nesting in the cpp.c file (pre-processor) bool elseSeen[maxIfNesting]; // Keep a track of whether an else has been seen at a particular depth @@ -323,35 +245,24 @@ protected: class tMacroInput : public tInput { public: - tMacroInput(TPpContext* pp) : tInput(pp), prepaste(false), postpaste(false) { } + tMacroInput(TPpContext* pp) : tInput(pp) { } virtual ~tMacroInput() { for (size_t i = 0; i < args.size(); ++i) delete args[i]; - for (size_t i = 0; i < expandedArgs.size(); ++i) - delete expandedArgs[i]; } - virtual int scan(TPpToken*) override; - virtual int getch() override { assert(0); return EndOfInput; } - virtual void ungetch() override { assert(0); } - bool peekPasting() override { return prepaste; } - bool endOfReplacementList() override { return mac->body.atEnd(); } - bool isMacroInput() override { return true; } - + virtual int scan(TPpToken*); + virtual int getch() { assert(0); return EndOfInput; } + virtual void ungetch() { assert(0); } MacroSymbol *mac; TVector args; - TVector expandedArgs; - - protected: - bool prepaste; // true if we are just before ## - bool postpaste; // true if we are right after ## }; class tMarkerInput : public tInput { public: tMarkerInput(TPpContext* pp) : tInput(pp) { } - virtual int scan(TPpToken*) override + virtual int scan(TPpToken*) { if (done) return EndOfInput; @@ -359,17 +270,17 @@ protected: return marker; } - virtual int getch() override { assert(0); return EndOfInput; } - virtual void ungetch() override { assert(0); } + virtual int getch() { assert(0); return EndOfInput; } + virtual void ungetch() { assert(0); } static const int marker = -3; }; class tZeroInput : public tInput { public: tZeroInput(TPpContext* pp) : tInput(pp) { } - virtual int scan(TPpToken*) override; - virtual int getch() override { assert(0); return EndOfInput; } - virtual void ungetch() override { assert(0); } + virtual int scan(TPpToken*); + virtual int getch() { assert(0); return EndOfInput; } + virtual void ungetch() { assert(0); } }; std::vector inputStack; @@ -383,6 +294,7 @@ protected: // Used to obtain #include content. TShader::Includer& includer; + int InitCPP(); int CPPdefine(TPpToken * ppToken); int CPPundef(TPpToken * ppToken); int CPPelse(int matchelse, TPpToken * ppToken); @@ -398,34 +310,44 @@ protected: int CPPversion(TPpToken * ppToken); int CPPextension(TPpToken * ppToken); int readCPPline(TPpToken * ppToken); - int scanHeaderName(TPpToken* ppToken, char delimit); - TokenStream* PrescanMacroArg(TokenStream&, TPpToken*, bool newLineOkay); - int MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOkay); + TokenStream* PrescanMacroArg(TokenStream *a, TPpToken * ppToken, bool newLineOkay); + int MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool newLineOkay); + + // + // from PpSymbols.cpp + // + Symbol *NewSymbol(int name); + Symbol *AddSymbol(int atom); + Symbol *LookUpSymbol(int atom); // // From PpTokens.cpp // - void pushTokenStreamInput(TokenStream&, bool pasting = false); - void UngetToken(int token, TPpToken*); + void lAddByte(TokenStream *fTok, unsigned char fVal); + int lReadByte(TokenStream *pTok); + void lUnreadByte(TokenStream *pTok); + void RecordToken(TokenStream* pTok, int token, TPpToken* ppToken); + void RewindTokenStream(TokenStream *pTok); + int ReadToken(TokenStream* pTok, TPpToken* ppToken); + void pushTokenStreamInput(TokenStream *ts); + void UngetToken(int token, TPpToken* ppToken); class tTokenInput : public tInput { public: - tTokenInput(TPpContext* pp, TokenStream* t, bool prepasting) : tInput(pp), tokens(t), lastTokenPastes(prepasting) { } - virtual int scan(TPpToken *ppToken) override { return tokens->getToken(pp->parseContext, ppToken); } - virtual int getch() override { assert(0); return EndOfInput; } - virtual void ungetch() override { assert(0); } - virtual bool peekPasting() override { return tokens->peekTokenizedPasting(lastTokenPastes); } + tTokenInput(TPpContext* pp, TokenStream* t) : tInput(pp), tokens(t) { } + virtual int scan(TPpToken *); + virtual int getch() { assert(0); return EndOfInput; } + virtual void ungetch() { assert(0); } protected: - TokenStream* tokens; - bool lastTokenPastes; // true if the last token in the input is to be pasted, rather than consumed as a token + TokenStream *tokens; }; class tUngotTokenInput : public tInput { public: tUngotTokenInput(TPpContext* pp, int t, TPpToken* p) : tInput(pp), token(t), lval(*p) { } - virtual int scan(TPpToken *) override; - virtual int getch() override { assert(0); return EndOfInput; } - virtual void ungetch() override { assert(0); } + virtual int scan(TPpToken *); + virtual int getch() { assert(0); return EndOfInput; } + virtual void ungetch() { assert(0); } protected: int token; TPpToken lval; @@ -437,12 +359,12 @@ protected: class tStringInput : public tInput { public: tStringInput(TPpContext* pp, TInputScanner& i) : tInput(pp), input(&i) { } - virtual int scan(TPpToken*) override; + virtual int scan(TPpToken*); // Scanner used to get source stream characters. // - Escaped newlines are handled here, invisibly to the caller. // - All forms of newline are handled, and turned into just a '\n'. - int getch() override + int getch() { int ch = input->get(); @@ -450,7 +372,7 @@ protected: // Move past escaped newlines, as many as sequentially exist do { if (input->peek() == '\r' || input->peek() == '\n') { - bool allowed = pp->parseContext.lineContinuationCheck(input->getSourceLoc(), pp->inComment); + bool allowed = pp->_parseContext.lineContinuationCheck(input->getSourceLoc(), pp->inComment); if (! allowed && pp->inComment) return '\\'; @@ -480,7 +402,7 @@ protected: // handled here, invisibly to the caller, meaning have to undo exactly // what getch() above does (e.g., don't leave things in the middle of a // sequence of escaped newlines). - void ungetch() override + void ungetch() { input->unget(); @@ -524,18 +446,18 @@ protected: TPpContext* pp) : tInput(pp), prologue_(prologue), - epilogue_(epilogue), includedFile_(includedFile), + epilogue_(epilogue), scanner(3, strings, lengths, names, 0, 0, true), prevScanner(nullptr), stringInput(pp, scanner) { strings[0] = prologue_.data(); - strings[1] = includedFile_->headerData; + strings[1] = includedFile_->file_data; strings[2] = epilogue_.data(); lengths[0] = prologue_.size(); - lengths[1] = includedFile_->headerLength; + lengths[1] = includedFile_->file_length; lengths[2] = epilogue_.size(); scanner.setLine(startLoc.line); @@ -553,14 +475,14 @@ protected: void notifyActivated() override { - prevScanner = pp->parseContext.getScanner(); - pp->parseContext.setScanner(&scanner); + prevScanner = pp->_parseContext.getScanner(); + pp->_parseContext.setScanner(&scanner); pp->push_include(includedFile_); } void notifyDeleted() override { - pp->parseContext.setScanner(prevScanner); + pp->_parseContext.setScanner(prevScanner); pp->pop_include(); } @@ -576,7 +498,7 @@ protected: // Points to the IncludeResult that this TokenizableIncludeFile represents. TShader::Includer::IncludeResult* includedFile_; - // Will point to prologue_, includedFile_->headerData and epilogue_ + // Will point to prologue_, includedFile_->file_data and epilogue_ // This is passed to scanner constructor. // These do not own the storage and it must remain valid until this // object has been destroyed. @@ -594,14 +516,14 @@ protected: tStringInput stringInput; }; + int InitScanner(); int ScanFromString(char* s); void missingEndifCheck(); int lFloatConst(int len, int ch, TPpToken* ppToken); - int characterLiteral(TPpToken* ppToken); void push_include(TShader::Includer::IncludeResult* result) { - currentSourceFile = result->headerName; + currentSourceFile = result->file_name; includeStack.push(result); } @@ -613,16 +535,36 @@ protected: if (includeStack.empty()) { currentSourceFile = rootFileName; } else { - currentSourceFile = includeStack.top()->headerName; + currentSourceFile = includeStack.top()->file_name; } } bool inComment; - std::string rootFileName; + + // + // From PpAtom.cpp + // + typedef TUnorderedMap TAtomMap; + typedef TVector TStringMap; + + TAtomMap atomMap; + TStringMap stringMap; std::stack includeStack; std::string currentSourceFile; + std::string rootFileName; + int nextAtom; + void InitAtomTable(); + void AddAtomFixed(const char* s, int atom); + int LookUpAddString(const char* s); + const char* GetAtomString(int atom); - std::istringstream strtodStream; + // + // From PpMemory.cpp + // + MemoryPool *mem_CreatePool(size_t chunksize, unsigned align); + void mem_FreePool(MemoryPool*); + void *mem_Alloc(MemoryPool* p, size_t size); + int mem_AddCleanup(MemoryPool* p, void (*fn)(void *, void*), void* arg1, void* arg2); }; } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpMemory.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpMemory.cpp similarity index 100% rename from deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpMemory.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpMemory.cpp diff --git a/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpScanner.cpp new file mode 100644 index 0000000000..0113532dc4 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -0,0 +1,810 @@ +// +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//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. +// +/****************************************************************************\ +Copyright (c) 2002, NVIDIA Corporation. + +NVIDIA Corporation("NVIDIA") supplies this software to you in +consideration of your agreement to the following terms, and your use, +installation, modification or redistribution of this NVIDIA software +constitutes acceptance of these terms. If you do not agree with these +terms, please do not use, install, modify or redistribute this NVIDIA +software. + +In consideration of your agreement to abide by the following terms, and +subject to these terms, NVIDIA grants you a personal, non-exclusive +license, under NVIDIA's copyrights in this original NVIDIA software (the +"NVIDIA Software"), to use, reproduce, modify and redistribute the +NVIDIA Software, with or without modifications, in source and/or binary +forms; provided that if you redistribute the NVIDIA Software, you must +retain the copyright notice of NVIDIA, this notice and the following +text and disclaimers in all such redistributions of the NVIDIA Software. +Neither the name, trademarks, service marks nor logos of NVIDIA +Corporation may be used to endorse or promote products derived from the +NVIDIA Software without specific prior written permission from NVIDIA. +Except as expressly stated in this notice, no other rights or licenses +express or implied, are granted by NVIDIA herein, including but not +limited to any patent rights that may be infringed by your derivative +works or by other works in which the NVIDIA Software may be +incorporated. No hardware is licensed hereunder. + +THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, +INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR +ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER +PRODUCTS. + +IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, +INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY +OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE +NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, +TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF +NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +\****************************************************************************/ +// +// scanner.c +// + +#define _CRT_SECURE_NO_WARNINGS + +#include +#include + +#include "PpContext.h" +#include "PpTokens.h" +#include "../Scan.h" + +namespace glslang { + +int TPpContext::InitScanner() +{ + // Add various atoms needed by the CPP line scanner: + if (!InitCPP()) + return 0; + + previous_token = '\n'; + + return 1; +} + +/////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////// Floating point constants: ///////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////////////// + +/* +* lFloatConst() - Scan a single- or double-precision floating point constant. Assumes that the scanner +* has seen at least one digit, followed by either a decimal '.' or the +* letter 'e', or a precision ending (e.g., F or LF). +*/ + +int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) +{ + bool HasDecimalOrExponent = false; + int declen; + int str_len; + int isDouble = 0; +#ifdef AMD_EXTENSIONS + int isFloat16 = 0; + bool enableFloat16 = parseContext.version >= 450 && parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float); +#endif + + declen = 0; + + str_len=len; + char* str = ppToken->name; + if (ch == '.') { + HasDecimalOrExponent = true; + str[len++] = (char)ch; + ch = getChar(); + while (ch >= '0' && ch <= '9') { + if (len < MaxTokenLength) { + declen++; + if (len > 0 || ch != '0') { + str[len] = (char)ch; + len++; + str_len++; + } + ch = getChar(); + } else { + _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1; + str_len = 1; + } + } + } + + // Exponent: + + if (ch == 'e' || ch == 'E') { + HasDecimalOrExponent = true; + if (len >= MaxTokenLength) { + _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1; + str_len = 1; + } else { + str[len++] = (char)ch; + ch = getChar(); + if (ch == '+') { + str[len++] = (char)ch; + ch = getChar(); + } else if (ch == '-') { + str[len++] = (char)ch; + ch = getChar(); + } + if (ch >= '0' && ch <= '9') { + while (ch >= '0' && ch <= '9') { + if (len < MaxTokenLength) { + str[len++] = (char)ch; + ch = getChar(); + } else { + _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1; + str_len = 1; + } + } + } else { + _parseContext.ppError(ppToken->loc, "bad character in float exponent", "", ""); + } + } + } + + if (len == 0) { + ppToken->dval = 0.0; + strcpy(str, "0.0"); + } else { + if (ch == 'l' || ch == 'L') { + _parseContext.doubleCheck(ppToken->loc, "double floating-point suffix"); + if (! HasDecimalOrExponent) + _parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + int ch2 = getChar(); + if (ch2 != 'f' && ch2 != 'F') { + ungetChar(); + ungetChar(); + } else { + if (len < MaxTokenLength) { + str[len++] = (char)ch; + str[len++] = (char)ch2; + isDouble = 1; + } else { + _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1,str_len=1; + } + } +#ifdef AMD_EXTENSIONS + } else if (enableFloat16 && (ch == 'h' || ch == 'H')) { + parseContext.float16Check(ppToken->loc, "half floating-point suffix"); + if (!HasDecimalOrExponent) + parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + int ch2 = getChar(); + if (ch2 != 'f' && ch2 != 'F') { + ungetChar(); + ungetChar(); + } + else { + if (len < MaxTokenLength) { + str[len++] = (char)ch; + str[len++] = (char)ch2; + isFloat16 = 1; + } + else { + parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1, str_len = 1; + } + } +#endif + } else if (ch == 'f' || ch == 'F') { + _parseContext.profileRequires(ppToken->loc, EEsProfile, 300, nullptr, "floating-point suffix"); + if (!_parseContext.relaxedErrors()) + _parseContext.profileRequires(ppToken->loc, ~EEsProfile, 120, nullptr, "floating-point suffix"); + if (! HasDecimalOrExponent) + _parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + if (len < MaxTokenLength) + str[len++] = (char)ch; + else { + _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1,str_len=1; + } + } else + ungetChar(); + + str[len]='\0'; + + ppToken->dval = strtod(str, nullptr); + } + + if (isDouble) + return PpAtomConstDouble; +#ifdef AMD_EXTENSIONS + else if (isFloat16) + return PpAtomConstFloat16; +#endif + else + return PpAtomConstFloat; +} + +// +// Scanner used to tokenize source stream. +// +int TPpContext::tStringInput::scan(TPpToken* ppToken) +{ + char* tokenText = ppToken->name; + int AlreadyComplained = 0; + int len = 0; + int ch = 0; + int ii = 0; + unsigned long long ival = 0; + bool enableInt64 = pp->_parseContext.version >= 450 && pp->_parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64); + + ppToken->ival = 0; + ppToken->i64val = 0; + ppToken->space = false; + ch = getch(); + for (;;) { + while (ch == ' ' || ch == '\t') { + ppToken->space = true; + ch = getch(); + } + + ppToken->loc = pp->_parseContext.getCurrentLoc(); + len = 0; + switch (ch) { + default: + // Single character token, including EndOfInput, '#' and '\' (escaped newlines are handled at a lower level, so this is just a '\' token) + return ch; + + case 'A': case 'B': case 'C': case 'D': case 'E': + case 'F': case 'G': case 'H': case 'I': case 'J': + case 'K': case 'L': case 'M': case 'N': case 'O': + case 'P': case 'Q': case 'R': case 'S': case 'T': + case 'U': case 'V': case 'W': case 'X': case 'Y': + case 'Z': case '_': + case 'a': case 'b': case 'c': case 'd': case 'e': + case 'f': case 'g': case 'h': case 'i': case 'j': + case 'k': case 'l': case 'm': case 'n': case 'o': + case 'p': case 'q': case 'r': case 's': case 't': + case 'u': case 'v': case 'w': case 'x': case 'y': + case 'z': + do { + if (len < MaxTokenLength) { + tokenText[len++] = (char)ch; + ch = getch(); + } else { + if (! AlreadyComplained) { + pp->_parseContext.ppError(ppToken->loc, "name too long", "", ""); + AlreadyComplained = 1; + } + ch = getch(); + } + } while ((ch >= 'a' && ch <= 'z') || + (ch >= 'A' && ch <= 'Z') || + (ch >= '0' && ch <= '9') || + ch == '_'); + + // line continuation with no token before or after makes len == 0, and need to start over skipping white space, etc. + if (len == 0) + continue; + + tokenText[len] = '\0'; + ungetch(); + ppToken->atom = pp->LookUpAddString(tokenText); + return PpAtomIdentifier; + case '0': + ppToken->name[len++] = (char)ch; + ch = getch(); + if (ch == 'x' || ch == 'X') { + // must be hexadecimal + + bool isUnsigned = false; + bool isInt64 = false; + ppToken->name[len++] = (char)ch; + ch = getch(); + if ((ch >= '0' && ch <= '9') || + (ch >= 'A' && ch <= 'F') || + (ch >= 'a' && ch <= 'f')) { + + ival = 0; + do { + if (ival <= 0x0fffffff || (enableInt64 && ival <= 0x0fffffffffffffffull)) { + ppToken->name[len++] = (char)ch; + if (ch >= '0' && ch <= '9') { + ii = ch - '0'; + } else if (ch >= 'A' && ch <= 'F') { + ii = ch - 'A' + 10; + } else if (ch >= 'a' && ch <= 'f') { + ii = ch - 'a' + 10; + } else + pp->_parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); + ival = (ival << 4) | ii; + } else { + if (! AlreadyComplained) { + pp->_parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", ""); + AlreadyComplained = 1; + } + ival = 0xffffffffffffffffull; + } + ch = getch(); + } while ((ch >= '0' && ch <= '9') || + (ch >= 'A' && ch <= 'F') || + (ch >= 'a' && ch <= 'f')); + } else { + pp->_parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); + } + if (ch == 'u' || ch == 'U') { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isUnsigned = true; + + if (enableInt64) { + int nextCh = getch(); + if ((ch == 'u' && nextCh == 'l') || (ch == 'U' && nextCh == 'L')) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt64 = true; + } else + ungetch(); + } + } + else if (enableInt64 && (ch == 'l' || ch == 'L')) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isInt64 = true; + } else + ungetch(); + ppToken->name[len] = '\0'; + + if (isInt64) { + ppToken->i64val = ival; + return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; + } else { + ppToken->ival = (int)ival; + return isUnsigned ? PpAtomConstUint : PpAtomConstInt; + } + } else { + // could be octal integer or floating point, speculative pursue octal until it must be floating point + + bool isUnsigned = false; + bool isInt64 = false; + bool octalOverflow = false; + bool nonOctal = false; + ival = 0; + + // see how much octal-like stuff we can read + while (ch >= '0' && ch <= '7') { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + else if (! AlreadyComplained) { + pp->_parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); + AlreadyComplained = 1; + } + if (ival <= 0x1fffffff || (enableInt64 && ival <= 0x1fffffffffffffffull)) { + ii = ch - '0'; + ival = (ival << 3) | ii; + } else + octalOverflow = true; + ch = getch(); + } + + // could be part of a float... + if (ch == '8' || ch == '9') { + nonOctal = true; + do { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + else if (! AlreadyComplained) { + pp->_parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); + AlreadyComplained = 1; + } + ch = getch(); + } while (ch >= '0' && ch <= '9'); + } + if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F') + return pp->lFloatConst(len, ch, ppToken); + + // wasn't a float, so must be octal... + if (nonOctal) + pp->_parseContext.ppError(ppToken->loc, "octal literal digit too large", "", ""); + + if (ch == 'u' || ch == 'U') { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isUnsigned = true; + + if (enableInt64) { + int nextCh = getch(); + if ((ch == 'u' && nextCh == 'l') || (ch == 'U' && nextCh == 'L')) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt64 = true; + } else + ungetch(); + } + } + else if (enableInt64 && (ch == 'l' || ch == 'L')) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isInt64 = true; + } else + ungetch(); + ppToken->name[len] = '\0'; + + if (octalOverflow) + pp->_parseContext.ppError(ppToken->loc, "octal literal too big", "", ""); + + if (isInt64) { + ppToken->i64val = ival; + return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; + } else { + ppToken->ival = (int)ival; + return isUnsigned ? PpAtomConstUint : PpAtomConstInt; + } + } + break; + case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + // can't be hexadecimal or octal, is either decimal or floating point + + do { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + else if (! AlreadyComplained) { + pp->_parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); + AlreadyComplained = 1; + } + ch = getch(); + } while (ch >= '0' && ch <= '9'); + if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F') { + return pp->lFloatConst(len, ch, ppToken); + } else { + // Finish handling signed and unsigned integers + int numericLen = len; + bool isUnsigned = false; + bool isInt64 = false; + if (ch == 'u' || ch == 'U') { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isUnsigned = true; + + if (enableInt64) { + int nextCh = getch(); + if ((ch == 'u' && nextCh == 'l') || (ch == 'U' && nextCh == 'L')) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt64 = true; + } else + ungetch(); + } + } else if (enableInt64 && (ch == 'l' || ch == 'L')) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isInt64 = true; + } else + ungetch(); + + ppToken->name[len] = '\0'; + ival = 0; + const unsigned oneTenthMaxInt = 0xFFFFFFFFu / 10; + const unsigned remainderMaxInt = 0xFFFFFFFFu - 10 * oneTenthMaxInt; + const unsigned long long oneTenthMaxInt64 = 0xFFFFFFFFFFFFFFFFull / 10; + const unsigned long long remainderMaxInt64 = 0xFFFFFFFFFFFFFFFFull - 10 * oneTenthMaxInt64; + for (int i = 0; i < numericLen; i++) { + ch = ppToken->name[i] - '0'; + if ((enableInt64 == false && ((ival > oneTenthMaxInt) || (ival == oneTenthMaxInt && (unsigned)ch > remainderMaxInt))) || + (enableInt64 && ((ival > oneTenthMaxInt64) || (ival == oneTenthMaxInt64 && (unsigned long long)ch > remainderMaxInt64)))) { + pp->_parseContext.ppError(ppToken->loc, "numeric literal too big", "", ""); + ival = 0xFFFFFFFFFFFFFFFFull; + break; + } else + ival = ival * 10 + ch; + } + + if (isInt64) { + ppToken->i64val = ival; + return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; + } else { + ppToken->ival = (int)ival; + return isUnsigned ? PpAtomConstUint : PpAtomConstInt; + } + } + break; + case '-': + ch = getch(); + if (ch == '-') { + return PpAtomDecrement; + } else if (ch == '=') { + return PpAtomSub; + } else { + ungetch(); + return '-'; + } + case '+': + ch = getch(); + if (ch == '+') { + return PpAtomIncrement; + } else if (ch == '=') { + return PpAtomAdd; + } else { + ungetch(); + return '+'; + } + case '*': + ch = getch(); + if (ch == '=') { + return PpAtomMul; + } else { + ungetch(); + return '*'; + } + case '%': + ch = getch(); + if (ch == '=') { + return PpAtomMod; + } else { + ungetch(); + return '%'; + } + case '^': + ch = getch(); + if (ch == '^') { + return PpAtomXor; + } else { + if (ch == '=') + return PpAtomXorAssign; + else{ + ungetch(); + return '^'; + } + } + + case '=': + ch = getch(); + if (ch == '=') { + return PpAtomEQ; + } else { + ungetch(); + return '='; + } + case '!': + ch = getch(); + if (ch == '=') { + return PpAtomNE; + } else { + ungetch(); + return '!'; + } + case '|': + ch = getch(); + if (ch == '|') { + return PpAtomOr; + } else if (ch == '=') { + return PpAtomOrAssign; + } else { + ungetch(); + return '|'; + } + case '&': + ch = getch(); + if (ch == '&') { + return PpAtomAnd; + } else if (ch == '=') { + return PpAtomAndAssign; + } else { + ungetch(); + return '&'; + } + case '<': + ch = getch(); + if (ch == '<') { + ch = getch(); + if (ch == '=') + return PpAtomLeftAssign; + else { + ungetch(); + return PpAtomLeft; + } + } else if (ch == '=') { + return PpAtomLE; + } else { + ungetch(); + return '<'; + } + case '>': + ch = getch(); + if (ch == '>') { + ch = getch(); + if (ch == '=') + return PpAtomRightAssign; + else { + ungetch(); + return PpAtomRight; + } + } else if (ch == '=') { + return PpAtomGE; + } else { + ungetch(); + return '>'; + } + case '.': + ch = getch(); + if (ch >= '0' && ch <= '9') { + ungetch(); + return pp->lFloatConst(0, '.', ppToken); + } else { + ungetch(); + return '.'; + } + case '/': + ch = getch(); + if (ch == '/') { + pp->inComment = true; + do { + ch = getch(); + } while (ch != '\n' && ch != EndOfInput); + ppToken->space = true; + pp->inComment = false; + + return ch; + } else if (ch == '*') { + ch = getch(); + do { + while (ch != '*') { + if (ch == EndOfInput) { + pp->_parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); + return ch; + } + ch = getch(); + } + ch = getch(); + if (ch == EndOfInput) { + pp->_parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); + return ch; + } + } while (ch != '/'); + ppToken->space = true; + // loop again to get the next token... + break; + } else if (ch == '=') { + return PpAtomDiv; + } else { + ungetch(); + return '/'; + } + break; + case '"': + ch = getch(); + while (ch != '"' && ch != '\n' && ch != EndOfInput) { + if (len < MaxTokenLength) { + tokenText[len] = (char)ch; + len++; + ch = getch(); + } else + break; + }; + tokenText[len] = '\0'; + if (ch != '"') { + ungetch(); + pp->_parseContext.ppError(ppToken->loc, "End of line in string", "string", ""); + } + return PpAtomConstString; + } + + ch = getch(); + } +} + +// +// The main functional entry point into the preprocessor, which will +// scan the source strings to figure out and return the next processing token. +// +// Return string pointer to next token. +// Return 0 when no more tokens. +// +const char* TPpContext::tokenize(TPpToken* ppToken) +{ + int token = '\n'; + + for(;;) { + token = scanToken(ppToken); + ppToken->token = token; + if (token == EndOfInput) { + missingEndifCheck(); + return nullptr; + } + if (token == '#') { + if (previous_token == '\n') { + token = readCPPline(ppToken); + if (token == EndOfInput) { + missingEndifCheck(); + return nullptr; + } + continue; + } else { + _parseContext.ppError(ppToken->loc, "preprocessor directive cannot be preceded by another token", "#", ""); + return nullptr; + } + } + previous_token = token; + + if (token == '\n') + continue; + + // expand macros + if (token == PpAtomIdentifier && MacroExpand(ppToken->atom, ppToken, false, true) != 0) + continue; + + const char* tokenString = nullptr; + switch (token) { + case PpAtomIdentifier: + case PpAtomConstInt: + case PpAtomConstUint: + case PpAtomConstFloat: + case PpAtomConstInt64: + case PpAtomConstUint64: + case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif + tokenString = ppToken->name; + break; + case PpAtomConstString: + if (_parseContext.intermediate.getSource() == EShSourceHlsl) { + // HLSL allows string literals. + tokenString = ppToken->name; + } else { + _parseContext.ppError(ppToken->loc, "string literals not supported", "\"\"", ""); + } + break; + case '\'': + _parseContext.ppError(ppToken->loc, "character literals not supported", "\'", ""); + break; + default: + tokenString = GetAtomString(token); + break; + } + + if (tokenString) + return tokenString; + } +} + +// Checks if we've seen balanced #if...#endif +void TPpContext::missingEndifCheck() +{ + if (ifdepth > 0) + _parseContext.ppError(_parseContext.getCurrentLoc(), "missing #endif", "", ""); +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpSymbols.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpSymbols.cpp similarity index 100% rename from deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpSymbols.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpSymbols.cpp diff --git a/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpTokens.cpp new file mode 100644 index 0000000000..25e1720c0d --- /dev/null +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -0,0 +1,305 @@ +// +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//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. +// +/****************************************************************************\ +Copyright (c) 2002, NVIDIA Corporation. + +NVIDIA Corporation("NVIDIA") supplies this software to you in +consideration of your agreement to the following terms, and your use, +installation, modification or redistribution of this NVIDIA software +constitutes acceptance of these terms. If you do not agree with these +terms, please do not use, install, modify or redistribute this NVIDIA +software. + +In consideration of your agreement to abide by the following terms, and +subject to these terms, NVIDIA grants you a personal, non-exclusive +license, under NVIDIA's copyrights in this original NVIDIA software (the +"NVIDIA Software"), to use, reproduce, modify and redistribute the +NVIDIA Software, with or without modifications, in source and/or binary +forms; provided that if you redistribute the NVIDIA Software, you must +retain the copyright notice of NVIDIA, this notice and the following +text and disclaimers in all such redistributions of the NVIDIA Software. +Neither the name, trademarks, service marks nor logos of NVIDIA +Corporation may be used to endorse or promote products derived from the +NVIDIA Software without specific prior written permission from NVIDIA. +Except as expressly stated in this notice, no other rights or licenses +express or implied, are granted by NVIDIA herein, including but not +limited to any patent rights that may be infringed by your derivative +works or by other works in which the NVIDIA Software may be +incorporated. No hardware is licensed hereunder. + +THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, +INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR +ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER +PRODUCTS. + +IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, +INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY +OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE +NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, +TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF +NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +\****************************************************************************/ + +// +// For recording and playing back the stream of tokens in a macro definition. +// + +#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) +#define _CRT_SECURE_NO_WARNINGS +#define snprintf sprintf_s +#endif + +#include +#include +#include +#include + +#include "PpContext.h" +#include "PpTokens.h" + +namespace glslang { + +void TPpContext::lAddByte(TokenStream *fTok, unsigned char fVal) +{ + fTok->data.push_back(fVal); +} + +/* +* Get the next byte from a stream. +*/ +int TPpContext::lReadByte(TokenStream *pTok) +{ + if (pTok->current < pTok->data.size()) + return pTok->data[pTok->current++]; + else + return EndOfInput; +} + +void TPpContext::lUnreadByte(TokenStream *pTok) +{ + if (pTok->current > 0) + --pTok->current; +} + +/* +* Add a token to the end of a list for later playback. +*/ +void TPpContext::RecordToken(TokenStream *pTok, int token, TPpToken* ppToken) +{ + const char* s; + char* str = NULL; + + if (token > PpAtomMaxSingle) + lAddByte(pTok, (unsigned char)((token & 0x7f) + 0x80)); + else + lAddByte(pTok, (unsigned char)(token & 0x7f)); + + switch (token) { + case PpAtomIdentifier: + case PpAtomConstString: + s = ppToken->name; + while (*s) + lAddByte(pTok, (unsigned char) *s++); + lAddByte(pTok, 0); + break; + case PpAtomConstInt: + case PpAtomConstUint: + case PpAtomConstInt64: + case PpAtomConstUint64: + case PpAtomConstFloat: + case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif + str = ppToken->name; + while (*str) { + lAddByte(pTok, (unsigned char) *str); + str++; + } + lAddByte(pTok, 0); + break; + default: + break; + } +} + +/* +* Reset a token stream in preperation for reading. +*/ +void TPpContext::RewindTokenStream(TokenStream *pTok) +{ + pTok->current = 0; +} + +/* +* Read the next token from a token stream (not the source stream, but stream used to hold a tokenized macro). +*/ +int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) +{ + char* tokenText = ppToken->name; + int ltoken, len; + int ch; + + ltoken = lReadByte(pTok); + ppToken->loc = _parseContext.getCurrentLoc(); + if (ltoken > 127) + ltoken += 128; + switch (ltoken) { + case '#': + // Check for ##, unless the current # is the last character + if (pTok->current < pTok->data.size()) { + if (lReadByte(pTok) == '#') { + _parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); + _parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); + _parseContext.error(ppToken->loc, "token pasting not implemented (internal error)", "##", ""); + //return PpAtomPaste; + return ReadToken(pTok, ppToken); + } else + lUnreadByte(pTok); + } + break; + case PpAtomConstString: + case PpAtomIdentifier: + case PpAtomConstFloat: + case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif + case PpAtomConstInt: + case PpAtomConstUint: + case PpAtomConstInt64: + case PpAtomConstUint64: + len = 0; + ch = lReadByte(pTok); + while (ch != 0 && ch != EndOfInput) { + if (len < MaxTokenLength) { + tokenText[len] = (char)ch; + len++; + ch = lReadByte(pTok); + } else { + _parseContext.error(ppToken->loc, "token too long", "", ""); + break; + } + } + tokenText[len] = 0; + + switch (ltoken) { + case PpAtomIdentifier: + ppToken->atom = LookUpAddString(tokenText); + break; + case PpAtomConstString: + break; + case PpAtomConstFloat: + case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif + ppToken->dval = atof(ppToken->name); + break; + case PpAtomConstInt: + if (len > 0 && tokenText[0] == '0') { + if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) + ppToken->ival = (int)strtol(ppToken->name, 0, 16); + else + ppToken->ival = (int)strtol(ppToken->name, 0, 8); + } else + ppToken->ival = atoi(ppToken->name); + break; + case PpAtomConstUint: + if (len > 0 && tokenText[0] == '0') { + if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) + ppToken->ival = (int)strtoul(ppToken->name, 0, 16); + else + ppToken->ival = (int)strtoul(ppToken->name, 0, 8); + } else + ppToken->ival = (int)strtoul(ppToken->name, 0, 10); + break; + case PpAtomConstInt64: + if (len > 0 && tokenText[0] == '0') { + if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) + ppToken->i64val = strtoll(ppToken->name, nullptr, 16); + else + ppToken->i64val = strtoll(ppToken->name, nullptr, 8); + } else + ppToken->i64val = atoll(ppToken->name); + break; + case PpAtomConstUint64: + if (len > 0 && tokenText[0] == '0') { + if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) + ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 16); + else + ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 8); + } else + ppToken->i64val = (long long)strtoull(ppToken->name, 0, 10); + break; + } + } + + return ltoken; +} + +int TPpContext::tTokenInput::scan(TPpToken* ppToken) +{ + return pp->ReadToken(tokens, ppToken); +} + +void TPpContext::pushTokenStreamInput(TokenStream* ts) +{ + pushInput(new tTokenInput(this, ts)); + RewindTokenStream(ts); +} + +int TPpContext::tUngotTokenInput::scan(TPpToken* ppToken) +{ + if (done) + return EndOfInput; + + int ret = token; + *ppToken = lval; + done = true; + + return ret; +} + +void TPpContext::UngetToken(int token, TPpToken* ppToken) +{ + pushInput(new tUngotTokenInput(this, token, ppToken)); +} + +} // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpTokens.h b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpTokens.h similarity index 75% rename from deps/glslang-new/glslang/MachineIndependent/preprocessor/PpTokens.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpTokens.h index 7b0f815500..2d231e1d2d 100644 --- a/deps/glslang-new/glslang/MachineIndependent/preprocessor/PpTokens.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/preprocessor/PpTokens.h @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -82,19 +82,15 @@ namespace glslang { // Multi-character tokens enum EFixedAtoms { - // single character tokens get their own char value as their token; start here for multi-character tokens - PpAtomMaxSingle = 127, - - // replace bad character tokens with this, to avoid accidental aliasing with the below - PpAtomBadToken, + PpAtomMaxSingle = 256, // single character tokens get their own char value as their token, skip them // Operators - PPAtomAddAssign, - PPAtomSubAssign, - PPAtomMulAssign, - PPAtomDivAssign, - PPAtomModAssign, + PpAtomAdd, + PpAtomSub, + PpAtomMul, + PpAtomDiv, + PpAtomMod, PpAtomRight, PpAtomLeft, @@ -117,8 +113,6 @@ enum EFixedAtoms { PpAtomDecrement, PpAtomIncrement, - PpAtomColonColon, - PpAtomPaste, // Constants @@ -127,11 +121,11 @@ enum EFixedAtoms { PpAtomConstUint, PpAtomConstInt64, PpAtomConstUint64, - PpAtomConstInt16, - PpAtomConstUint16, PpAtomConstFloat, PpAtomConstDouble, +#ifdef AMD_EXTENSIONS PpAtomConstFloat16, +#endif PpAtomConstString, // Identifiers @@ -140,6 +134,7 @@ enum EFixedAtoms { // preprocessor "keywords" PpAtomDefine, + PpAtomDefined, PpAtomUndef, PpAtomIf, diff --git a/deps/glslang-new/glslang/MachineIndependent/propagateNoContraction.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/propagateNoContraction.cpp similarity index 98% rename from deps/glslang-new/glslang/MachineIndependent/propagateNoContraction.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/propagateNoContraction.cpp index ae95688ae8..caa6e200d5 100644 --- a/deps/glslang-new/glslang/MachineIndependent/propagateNoContraction.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/propagateNoContraction.cpp @@ -90,7 +90,6 @@ bool isDereferenceOperation(glslang::TOperator op) case glslang::EOpIndexDirectStruct: case glslang::EOpIndexIndirect: case glslang::EOpVectorSwizzle: - case glslang::EOpMatrixSwizzle: return true; default: return false; @@ -273,9 +272,9 @@ TSymbolDefinitionCollectingTraverser::TSymbolDefinitionCollectingTraverser( ObjectAccesschainSet* precise_objects, std::unordered_set* precise_return_nodes) : TIntermTraverser(true, false, false), symbol_definition_mapping_(*symbol_definition_mapping), - precise_objects_(*precise_objects), precise_return_nodes_(*precise_return_nodes), - current_object_(), accesschain_mapping_(*accesschain_mapping), - current_function_definition_node_(nullptr) {} + precise_objects_(*precise_objects), current_object_(), + accesschain_mapping_(*accesschain_mapping), current_function_definition_node_(nullptr), + precise_return_nodes_(*precise_return_nodes) {} // Visits a symbol node, set the current_object_ to the // current node symbol ID, and record a mapping from this node to the current @@ -617,9 +616,9 @@ class TNoContractionPropagator : public glslang::TIntermTraverser { public: TNoContractionPropagator(ObjectAccesschainSet* precise_objects, const AccessChainMapping& accesschain_mapping) - : TIntermTraverser(true, false, false), - precise_objects_(*precise_objects), added_precise_object_ids_(), - remained_accesschain_(), accesschain_mapping_(accesschain_mapping) {} + : TIntermTraverser(true, false, false), remained_accesschain_(), + precise_objects_(*precise_objects), accesschain_mapping_(accesschain_mapping), + added_precise_object_ids_() {} // Propagates 'precise' in the right nodes of a given assignment node with // access chain record from the assignee node to a 'precise' object it diff --git a/deps/glslang-new/glslang/MachineIndependent/propagateNoContraction.h b/deps/glslang/glslang-old/glslang/MachineIndependent/propagateNoContraction.h similarity index 99% rename from deps/glslang-new/glslang/MachineIndependent/propagateNoContraction.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/propagateNoContraction.h index 8521ad7d6a..3412c85dc6 100644 --- a/deps/glslang-new/glslang/MachineIndependent/propagateNoContraction.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/propagateNoContraction.h @@ -37,8 +37,6 @@ // propagate 'noContraction' qualifier. // -#pragma once - #include "../Include/intermediate.h" namespace glslang { diff --git a/deps/glslang-new/glslang/MachineIndependent/reflection.cpp b/deps/glslang/glslang-old/glslang/MachineIndependent/reflection.cpp similarity index 81% rename from deps/glslang-new/glslang/MachineIndependent/reflection.cpp rename to deps/glslang/glslang-old/glslang/MachineIndependent/reflection.cpp index 4818b10832..31bd172557 100644 --- a/deps/glslang-new/glslang/MachineIndependent/reflection.cpp +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/reflection.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2013-2016 LunarG, Inc. +//Copyright (C) 2013-2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. // #include "../Include/Common.h" @@ -63,6 +63,7 @@ // there wasn't exactly one entry point. // + namespace glslang { // @@ -131,11 +132,8 @@ public: for (int m = 0; m <= index; ++m) { // modify just the children's view of matrix layout, if there is one for this member TLayoutMatrix subMatrixLayout = memberList[m].type->getQualifier().layoutMatrix; - int memberAlignment = intermediate.getBaseAlignment(*memberList[m].type, memberSize, dummyStride, - type.getQualifier().layoutPacking == ElpStd140, - subMatrixLayout != ElmNone - ? subMatrixLayout == ElmRowMajor - : type.getQualifier().layoutMatrix == ElmRowMajor); + int memberAlignment = intermediate.getBaseAlignment(*memberList[m].type, memberSize, dummyStride, type.getQualifier().layoutPacking == ElpStd140, + subMatrixLayout != ElmNone ? subMatrixLayout == ElmRowMajor : type.getQualifier().layoutMatrix == ElmRowMajor); RoundToPow2(offset, memberAlignment); if (m < index) offset += memberSize; @@ -154,8 +152,7 @@ public: int lastMemberSize; int dummyStride; - intermediate.getBaseAlignment(*memberList[lastIndex].type, lastMemberSize, dummyStride, - blockType.getQualifier().layoutPacking == ElpStd140, + intermediate.getBaseAlignment(*memberList[lastIndex].type, lastMemberSize, dummyStride, blockType.getQualifier().layoutPacking == ElpStd140, blockType.getQualifier().layoutMatrix == ElmRowMajor); return lastOffset + lastMemberSize; @@ -171,7 +168,7 @@ public: void blowUpActiveAggregate(const TType& baseType, const TString& baseName, const TList& derefs, TList::const_iterator deref, int offset, int blockIndex, int arraySize) { - // process the part of the dereference chain that was explicit in the shader + // process the part of the derefence chain that was explicit in the shader TString name = baseName; const TType* terminalType = &baseType; for (; deref != derefs.end(); ++deref) { @@ -181,7 +178,7 @@ public: switch (visitNode->getOp()) { case EOpIndexIndirect: // Visit all the indices of this array, and for each one add on the remaining dereferencing - for (int i = 0; i < std::max(visitNode->getLeft()->getType().getOuterArraySize(), 1); ++i) { + for (int i = 0; i < visitNode->getLeft()->getType().getOuterArraySize(); ++i) { TString newBaseName = name; if (baseType.getBasicType() != EbtBlock) newBaseName.append(TString("[") + String(i) + "]"); @@ -216,7 +213,7 @@ public: if (terminalType->isArray()) { // Visit all the indices of this array, and for each one, // fully explode the remaining aggregate to dereference - for (int i = 0; i < std::max(terminalType->getOuterArraySize(), 1); ++i) { + for (int i = 0; i < terminalType->getOuterArraySize(); ++i) { TString newBaseName = name; newBaseName.append(TString("[") + String(i) + "]"); TType derefType(*terminalType, 0); @@ -239,7 +236,7 @@ public: } // Finally, add a full string to the reflection database, and update the array size if necessary. - // If the dereferenced entity to record is an array, compute the size and update the maximum size. + // If the derefenced entity to record is an array, compute the size and update the maximum size. // there might not be a final array dereference, it could have been copied as an array object if (arraySize == 0) @@ -248,8 +245,7 @@ public: TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (it == reflection.nameToIndex.end()) { reflection.nameToIndex[name] = (int)reflection.indexToUniform.size(); - reflection.indexToUniform.push_back(TObjectReflection(name, *terminalType, offset, - mapToGlType(*terminalType), + reflection.indexToUniform.push_back(TObjectReflection(name, *terminalType, offset, mapToGlType(*terminalType), arraySize, blockIndex)); } else if (arraySize > 1) { int& reflectedArraySize = reflection.indexToUniform[it->second].size; @@ -359,6 +355,7 @@ public: return blockIndex; } + // Are we at a level in a dereference chain at which individual active uniform queries are made? bool isReflectionGranularity(const TType& type) { @@ -415,36 +412,6 @@ public: case EsdBuffer: return GL_SAMPLER_BUFFER; } -#ifdef AMD_EXTENSIONS - case EbtFloat16: - switch ((int)sampler.dim) { - case Esd1D: - switch ((int)sampler.shadow) { - case false: return sampler.arrayed ? GL_FLOAT16_SAMPLER_1D_ARRAY_AMD : GL_FLOAT16_SAMPLER_1D_AMD; - case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD : GL_FLOAT16_SAMPLER_1D_SHADOW_AMD; - } - case Esd2D: - switch ((int)sampler.ms) { - case false: - switch ((int)sampler.shadow) { - case false: return sampler.arrayed ? GL_FLOAT16_SAMPLER_2D_ARRAY_AMD : GL_FLOAT16_SAMPLER_2D_AMD; - case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD : GL_FLOAT16_SAMPLER_2D_SHADOW_AMD; - } - case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD : GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD; - } - case Esd3D: - return GL_FLOAT16_SAMPLER_3D_AMD; - case EsdCube: - switch ((int)sampler.shadow) { - case false: return sampler.arrayed ? GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD : GL_FLOAT16_SAMPLER_CUBE_AMD; - case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD : GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD; - } - case EsdRect: - return sampler.shadow ? GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD : GL_FLOAT16_SAMPLER_2D_RECT_AMD; - case EsdBuffer: - return GL_FLOAT16_SAMPLER_BUFFER_AMD; - } -#endif case EbtInt: switch ((int)sampler.dim) { case Esd1D: @@ -452,8 +419,7 @@ public: case Esd2D: switch ((int)sampler.ms) { case false: return sampler.arrayed ? GL_INT_SAMPLER_2D_ARRAY : GL_INT_SAMPLER_2D; - case true: return sampler.arrayed ? GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY - : GL_INT_SAMPLER_2D_MULTISAMPLE; + case true: return sampler.arrayed ? GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY : GL_INT_SAMPLER_2D_MULTISAMPLE; } case Esd3D: return GL_INT_SAMPLER_3D; @@ -471,8 +437,7 @@ public: case Esd2D: switch ((int)sampler.ms) { case false: return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_2D_ARRAY : GL_UNSIGNED_INT_SAMPLER_2D; - case true: return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY - : GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE; + case true: return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY : GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE; } case Esd3D: return GL_UNSIGNED_INT_SAMPLER_3D; @@ -507,26 +472,6 @@ public: case EsdBuffer: return GL_IMAGE_BUFFER; } -#ifdef AMD_EXTENSIONS - case EbtFloat16: - switch ((int)sampler.dim) { - case Esd1D: - return sampler.arrayed ? GL_FLOAT16_IMAGE_1D_ARRAY_AMD : GL_FLOAT16_IMAGE_1D_AMD; - case Esd2D: - switch ((int)sampler.ms) { - case false: return sampler.arrayed ? GL_FLOAT16_IMAGE_2D_ARRAY_AMD : GL_FLOAT16_IMAGE_2D_AMD; - case true: return sampler.arrayed ? GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD : GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD; - } - case Esd3D: - return GL_FLOAT16_IMAGE_3D_AMD; - case EsdCube: - return sampler.arrayed ? GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD : GL_FLOAT16_IMAGE_CUBE_AMD; - case EsdRect: - return GL_FLOAT16_IMAGE_2D_RECT_AMD; - case EsdBuffer: - return GL_FLOAT16_IMAGE_BUFFER_AMD; - } -#endif case EbtInt: switch ((int)sampler.dim) { case Esd1D: @@ -552,8 +497,7 @@ public: case Esd2D: switch ((int)sampler.ms) { case false: return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_2D_ARRAY : GL_UNSIGNED_INT_IMAGE_2D; - case true: return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY - : GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE; + case true: return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY : GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE; } case Esd3D: return GL_UNSIGNED_INT_IMAGE_3D; @@ -750,46 +694,19 @@ void TReflectionTraverser::visitSymbol(TIntermSymbol* base) addAttribute(*base); } + // // Implement TReflection methods. // -// Track any required attribute reflection, such as compute shader numthreads. -// -void TReflection::buildAttributeReflection(EShLanguage stage, const TIntermediate& intermediate) -{ - if (stage == EShLangCompute) { - // Remember thread dimensions - for (int dim=0; dim<3; ++dim) - localSize[dim] = intermediate.getLocalSize(dim); - } -} - -// build counter block index associations for buffers -void TReflection::buildCounterIndices(const TIntermediate& intermediate) -{ - // search for ones that have counters - for (int i = 0; i < int(indexToUniformBlock.size()); ++i) { - const TString counterName(intermediate.addCounterBufferName(indexToUniformBlock[i].name)); - const int index = getIndex(counterName); - - if (index >= 0) - indexToUniformBlock[i].counterIndex = index; - } -} - // Merge live symbols from 'intermediate' into the existing reflection database. // // Returns false if the input is too malformed to do this. -bool TReflection::addStage(EShLanguage stage, const TIntermediate& intermediate) +bool TReflection::addStage(EShLanguage, const TIntermediate& intermediate) { - if (intermediate.getTreeRoot() == nullptr || - intermediate.getNumEntryPoints() != 1 || - intermediate.isRecursive()) + if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) return false; - buildAttributeReflection(stage, intermediate); - TReflectionTraverser it(intermediate, *this); // put the entry point on the list of functions to process @@ -802,8 +719,6 @@ bool TReflection::addStage(EShLanguage stage, const TIntermediate& intermediate) function->traverse(&it); } - buildCounterIndices(intermediate); - return true; } @@ -824,20 +739,10 @@ void TReflection::dump() indexToAttribute[i].dump(); printf("\n"); - if (getLocalSize(0) > 1) { - static const char* axis[] = { "X", "Y", "Z" }; - - for (int dim=0; dim<3; ++dim) - if (getLocalSize(dim) > 1) - printf("Local size %s: %d\n", axis[dim], getLocalSize(dim)); - - printf("\n"); - } - - // printf("Live names\n"); - // for (TNameToIndex::const_iterator it = nameToIndex.begin(); it != nameToIndex.end(); ++it) + //printf("Live names\n"); + //for (TNameToIndex::const_iterator it = nameToIndex.begin(); it != nameToIndex.end(); ++it) // printf("%s: %d\n", it->first.c_str(), it->second); - // printf("\n"); + //printf("\n"); } } // end namespace glslang diff --git a/deps/glslang-new/glslang/MachineIndependent/reflection.h b/deps/glslang/glslang-old/glslang/MachineIndependent/reflection.h similarity index 67% rename from deps/glslang-new/glslang/MachineIndependent/reflection.h rename to deps/glslang/glslang-old/glslang/MachineIndependent/reflection.h index bf233e33eb..b6bf4a9b02 100644 --- a/deps/glslang-new/glslang/MachineIndependent/reflection.h +++ b/deps/glslang/glslang-old/glslang/MachineIndependent/reflection.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2013-2016 LunarG, Inc. +//Copyright (C) 2013-2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _REFLECTION_INCLUDED @@ -56,37 +56,32 @@ class TReflectionTraverser; class TObjectReflection { public: TObjectReflection(const TString& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex) : - name(pName), offset(pOffset), - glDefineType(pGLDefineType), size(pSize), index(pIndex), counterIndex(-1), type(pType.clone()) { } + name(pName), type(pType.clone()), + offset(pOffset), glDefineType(pGLDefineType), size(pSize), index(pIndex) { } + + void dump() const { + printf("%s: offset %d, type %x, size %d, index %d, binding %d\n", + name.c_str(), offset, glDefineType, size, index, getBinding() ); + } const TType* const getType() const { return type; } - int getBinding() const - { - if (type == nullptr || !type->getQualifier().hasBinding()) - return -1; - return type->getQualifier().layoutBinding; - } - void dump() const - { - printf("%s: offset %d, type %x, size %d, index %d, binding %d", - name.c_str(), offset, glDefineType, size, index, getBinding() ); - - if (counterIndex != -1) - printf(", counter %d", counterIndex); - - printf("\n"); - } - static TObjectReflection badReflection() { return TObjectReflection(); } TString name; int offset; int glDefineType; int size; // data size in bytes for a block, array size for a (non-block) object that's an array int index; - int counterIndex; + + static TObjectReflection badReflection() { return TObjectReflection(); } protected: - TObjectReflection() : offset(-1), glDefineType(-1), size(-1), index(-1), type(nullptr) { } + int getBinding() const { + if (type == nullptr || type->getQualifier().layoutBinding == TQualifier::layoutBindingEnd) + return -1; + return type->getQualifier().layoutBinding; + } + + TObjectReflection() : type(nullptr), offset(-1), glDefineType(-1), size(-1), index(-1) { } const TType* type; }; @@ -94,12 +89,7 @@ protected: // The full reflection database class TReflection { public: - TReflection() : badReflection(TObjectReflection::badReflection()) - { - for (int dim=0; dim<3; ++dim) - localSize[dim] = 0; - } - + TReflection() : badReflection(TObjectReflection::badReflection()) { } virtual ~TReflection() {} // grow the reflection stage by stage @@ -145,20 +135,11 @@ public: return it->second; } - // see getIndex(const char*) - int getIndex(const TString& name) const { return getIndex(name.c_str()); } - - // Thread local size - unsigned getLocalSize(int dim) const { return dim <= 2 ? localSize[dim] : 0; } - void dump(); protected: friend class glslang::TReflectionTraverser; - void buildCounterIndices(const TIntermediate&); - void buildAttributeReflection(EShLanguage, const TIntermediate&); - // Need a TString hash: typedef std::unordered_map TNameToIndex; typedef std::map TNameToIndex; typedef std::vector TMapIndexToReflection; @@ -168,8 +149,6 @@ protected: TMapIndexToReflection indexToUniform; TMapIndexToReflection indexToUniformBlock; TMapIndexToReflection indexToAttribute; - - unsigned int localSize[3]; }; } // end namespace glslang diff --git a/deps/glslang/glslang-old/glslang/OSDependent/Unix/CMakeLists.txt b/deps/glslang/glslang-old/glslang/OSDependent/Unix/CMakeLists.txt new file mode 100644 index 0000000000..174cc9167e --- /dev/null +++ b/deps/glslang/glslang-old/glslang/OSDependent/Unix/CMakeLists.txt @@ -0,0 +1,5 @@ +add_library(OSDependent STATIC ossource.cpp ../osinclude.h) +set_property(TARGET OSDependent PROPERTY FOLDER glslang) + +install(TARGETS OSDependent + ARCHIVE DESTINATION lib) diff --git a/deps/glslang/glslang-old/glslang/OSDependent/Unix/ossource.cpp b/deps/glslang/glslang-old/glslang/OSDependent/Unix/ossource.cpp new file mode 100644 index 0000000000..7e84d4eb23 --- /dev/null +++ b/deps/glslang/glslang-old/glslang/OSDependent/Unix/ossource.cpp @@ -0,0 +1,208 @@ +// +//Copyright (C) 2002-2005 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. +// + +// +// This file contains the Linux-specific functions +// +#include "../osinclude.h" +#include "../../../OGLCompilersDLL/InitializeDll.h" + +#include +#include +#include +#include +#include + +namespace glslang { + +// +// Thread cleanup +// + +// +// Wrapper for Linux call to DetachThread. This is required as pthread_cleanup_push() expects +// the cleanup routine to return void. +// +static void DetachThreadLinux(void *) +{ + DetachThread(); +} + + +// +// Registers cleanup handler, sets cancel type and state, and executes the thread specific +// cleanup handler. This function will be called in the Standalone.cpp for regression +// testing. When OpenGL applications are run with the driver code, Linux OS does the +// thread cleanup. +// +void OS_CleanupThreadData(void) +{ +#ifdef __ANDROID__ + DetachThreadLinux(NULL); +#else + int old_cancel_state, old_cancel_type; + void *cleanupArg = NULL; + + // + // Set thread cancel state and push cleanup handler. + // + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old_cancel_state); + pthread_cleanup_push(DetachThreadLinux, (void *) cleanupArg); + + // + // Put the thread in deferred cancellation mode. + // + pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &old_cancel_type); + + // + // Pop cleanup handler and execute it prior to unregistering the cleanup handler. + // + pthread_cleanup_pop(1); + + // + // Restore the thread's previous cancellation mode. + // + pthread_setcanceltype(old_cancel_state, NULL); +#endif +} + + +// +// Thread Local Storage Operations +// +inline OS_TLSIndex PthreadKeyToTLSIndex(pthread_key_t key) +{ + return (OS_TLSIndex)((uintptr_t)key + 1); +} + +inline pthread_key_t TLSIndexToPthreadKey(OS_TLSIndex nIndex) +{ + return (pthread_key_t)((uintptr_t)nIndex - 1); +} + +OS_TLSIndex OS_AllocTLSIndex() +{ + pthread_key_t pPoolIndex; + + // + // Create global pool key. + // + if ((pthread_key_create(&pPoolIndex, NULL)) != 0) { + assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); + return OS_INVALID_TLS_INDEX; + } + else + return PthreadKeyToTLSIndex(pPoolIndex); +} + + +bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) +{ + if (nIndex == OS_INVALID_TLS_INDEX) { + assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); + return false; + } + + if (pthread_setspecific(TLSIndexToPthreadKey(nIndex), lpvValue) == 0) + return true; + else + return false; +} + +void* OS_GetTLSValue(OS_TLSIndex nIndex) +{ + // + // This function should return 0 if nIndex is invalid. + // + assert(nIndex != OS_INVALID_TLS_INDEX); + return pthread_getspecific(TLSIndexToPthreadKey(nIndex)); +} + +bool OS_FreeTLSIndex(OS_TLSIndex nIndex) +{ + if (nIndex == OS_INVALID_TLS_INDEX) { + assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); + return false; + } + + // + // Delete the global pool key. + // + if (pthread_key_delete(TLSIndexToPthreadKey(nIndex)) == 0) + return true; + else + return false; +} + +namespace { +pthread_mutex_t gMutex; +} + +void InitGlobalLock() +{ + pthread_mutexattr_t mutexattr; + pthread_mutexattr_init(&mutexattr); + pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&gMutex, &mutexattr); +} + +void GetGlobalLock() +{ + pthread_mutex_lock(&gMutex); +} + +void ReleaseGlobalLock() +{ + pthread_mutex_unlock(&gMutex); +} + +// TODO: non-windows: if we need these on linux, flesh them out +void* OS_CreateThread(TThreadEntrypoint /*entry*/) +{ + return 0; +} + +void OS_WaitForAllThreads(void* /*threads*/, int /*numThreads*/) +{ +} + +void OS_Sleep(int /*milliseconds*/) +{ +} + +void OS_DumpMemoryCounters() +{ +} + +} // end namespace glslang diff --git a/deps/glslang-new/glslang/OSDependent/Windows/CMakeLists.txt b/deps/glslang/glslang-old/glslang/OSDependent/Windows/CMakeLists.txt similarity index 56% rename from deps/glslang-new/glslang/OSDependent/Windows/CMakeLists.txt rename to deps/glslang/glslang-old/glslang/OSDependent/Windows/CMakeLists.txt index f257418abb..399760c30a 100644 --- a/deps/glslang-new/glslang/OSDependent/Windows/CMakeLists.txt +++ b/deps/glslang/glslang-old/glslang/OSDependent/Windows/CMakeLists.txt @@ -2,19 +2,16 @@ set(SOURCES ossource.cpp ../osinclude.h) add_library(OSDependent STATIC ${SOURCES}) set_property(TARGET OSDependent PROPERTY FOLDER glslang) -set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON) # MinGW GCC complains about function pointer casts to void*. # Turn that off with -fpermissive. if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") - target_compile_options(OSDependent PRIVATE -fpermissive) + target_compile_options(OSDependent PRIVATE -fpermissive) endif() if(WIN32) source_group("Source" FILES ${SOURCES}) endif(WIN32) -if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif(ENABLE_GLSLANG_INSTALL) +install(TARGETS OSDependent + ARCHIVE DESTINATION lib) diff --git a/deps/glslang-new/glslang/OSDependent/Windows/main.cpp b/deps/glslang/glslang-old/glslang/OSDependent/Windows/main.cpp similarity index 56% rename from deps/glslang-new/glslang/OSDependent/Windows/main.cpp rename to deps/glslang/glslang-old/glslang/OSDependent/Windows/main.cpp index 0bcde7b660..6d6b0fddcb 100644 --- a/deps/glslang-new/glslang/OSDependent/Windows/main.cpp +++ b/deps/glslang/glslang-old/glslang/OSDependent/Windows/main.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 "InitializeDll.h" diff --git a/deps/glslang-new/glslang/OSDependent/Windows/ossource.cpp b/deps/glslang/glslang-old/glslang/OSDependent/Windows/ossource.cpp similarity index 68% rename from deps/glslang-new/glslang/OSDependent/Windows/ossource.cpp rename to deps/glslang/glslang-old/glslang/OSDependent/Windows/ossource.cpp index 870840c56e..2edde83870 100644 --- a/deps/glslang-new/glslang/OSDependent/Windows/ossource.cpp +++ b/deps/glslang/glslang-old/glslang/OSDependent/Windows/ossource.cpp @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,22 +18,22 @@ // 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 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 "../osinclude.h" +#undef STRICT #define STRICT #define VC_EXTRALEAN 1 #include @@ -77,6 +77,7 @@ OS_TLSIndex OS_AllocTLSIndex() return ToGenericTLSIndex(dwIndex); } + bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) { if (nIndex == OS_INVALID_TLS_INDEX) { @@ -131,6 +132,21 @@ unsigned int __stdcall EnterGenericThread (void* entry) return ((TThreadEntrypoint)entry)(0); } +void* OS_CreateThread(TThreadEntrypoint entry) +{ + return (void*)_beginthreadex(0, 0, EnterGenericThread, (void*)entry, 0, 0); +} + +void OS_WaitForAllThreads(void* threads, int numThreads) +{ + WaitForMultipleObjects(numThreads, (HANDLE*)threads, true, INFINITE); +} + +void OS_Sleep(int milliseconds) +{ + Sleep(milliseconds); +} + //#define DUMP_COUNTERS void OS_DumpMemoryCounters() diff --git a/deps/glslang-new/glslang/OSDependent/osinclude.h b/deps/glslang/glslang-old/glslang/OSDependent/osinclude.h similarity index 51% rename from deps/glslang-new/glslang/OSDependent/osinclude.h rename to deps/glslang/glslang-old/glslang/OSDependent/osinclude.h index 218abe4f23..33f880380f 100644 --- a/deps/glslang-new/glslang/OSDependent/osinclude.h +++ b/deps/glslang/glslang-old/glslang/OSDependent/osinclude.h @@ -1,10 +1,10 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// All rights reserved. +//Copyright (C) 2002-2005 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: +//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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 __OSINCLUDE_H @@ -53,8 +53,11 @@ void GetGlobalLock(); void ReleaseGlobalLock(); typedef unsigned int (*TThreadEntrypoint)(void*); +void* OS_CreateThread(TThreadEntrypoint); +void OS_WaitForAllThreads(void* threads, int numThreads); void OS_CleanupThreadData(void); +void OS_Sleep(int milliseconds); void OS_DumpMemoryCounters(); diff --git a/deps/glslang-new/glslang/Public/ShaderLang.h b/deps/glslang/glslang-old/glslang/Public/ShaderLang.h similarity index 57% rename from deps/glslang-new/glslang/Public/ShaderLang.h rename to deps/glslang/glslang-old/glslang/Public/ShaderLang.h index 5c629eeb88..4e4d695c69 100644 --- a/deps/glslang-new/glslang/Public/ShaderLang.h +++ b/deps/glslang/glslang-old/glslang/Public/ShaderLang.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -// Copyright (C) 2013-2016 LunarG, Inc. +//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013-2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 _COMPILER_INTERFACE_INCLUDED_ #define _COMPILER_INTERFACE_INCLUDED_ @@ -40,7 +40,6 @@ #include "../MachineIndependent/Versions.h" #include -#include #ifdef _WIN32 #define C_DECL __cdecl @@ -67,20 +66,16 @@ extern "C" { #endif -// This should always increase, as some paths to do not consume -// a more major number. -// It should increment by one when new functionality is added. -#define GLSLANG_MINOR_VERSION 7 - // -// Call before doing any other compiler/linker operations. +// Driver must call this first, once, before doing any other +// compiler/linker operations. // // (Call once per process, not once per thread.) // SH_IMPORT_EXPORT int ShInitialize(); // -// Call this at process shutdown to clean up memory. +// Driver should call this at process shutdown. // SH_IMPORT_EXPORT int __fastcall ShFinalize(); @@ -114,59 +109,7 @@ typedef enum { EShSourceNone, EShSourceGlsl, EShSourceHlsl, -} EShSource; // if EShLanguage were EShStage, this could be EShLanguage instead - -typedef enum { - EShClientNone, - EShClientVulkan, - EShClientOpenGL, -} EShClient; - -typedef enum { - EShTargetNone, - EShTargetSpv, // preferred spelling - EshTargetSpv = EShTargetSpv, // legacy spelling -} EShTargetLanguage; - -typedef enum { - EShTargetVulkan_1_0 = (1 << 22), - EShTargetVulkan_1_1 = (1 << 22) | (1 << 12), - EShTargetOpenGL_450 = 450, -} EShTargetClientVersion; - -typedef EShTargetClientVersion EshTargetClientVersion; - -typedef enum { - EShTargetSpv_1_0 = (1 << 16), - EShTargetSpv_1_3 = (1 << 16) | (3 << 8), -} EShTargetLanguageVersion; - -struct TInputLanguage { - EShSource languageFamily; // redundant information with other input, this one overrides when not EShSourceNone - EShLanguage stage; // redundant information with other input, this one overrides when not EShSourceNone - EShClient dialect; - int dialectVersion; // version of client's language definition, not the client (when not EShClientNone) -}; - -struct TClient { - EShClient client; - EShTargetClientVersion version; // version of client itself (not the client's input dialect) -}; - -struct TTarget { - EShTargetLanguage language; - EShTargetLanguageVersion version; // version to target, if SPIR-V, defined by "word 1" of the SPIR-V header - bool hlslFunctionality1; // can target hlsl_functionality1 extension(s) -}; - -// All source/client/target versions and settings. -// Can override previous methods of setting, when items are set here. -// Expected to grow, as more are added, rather than growing parameter lists. -struct TEnvironment { - TInputLanguage input; // definition of the input language - TClient client; // what client is the overall compilation being done for? - TTarget target; // what to generate -}; +} EShSource; // if EShLanguage were EShStage, this could be EShLanguage instead const char* StageName(EShLanguage); @@ -190,14 +133,6 @@ typedef enum { EShOptFull, // Optimizations that will take more time } EShOptimizationLevel; -// -// Texture and Sampler transformation mode. -// -typedef enum { - EShTexSampTransKeep, // keep textures and samplers as is (default) - EShTexSampTransUpgradeTextureRemoveSampler, // change texture w/o embeded sampler into sampled texture and throw away all samplers -} EShTextureSamplerTransformMode; - // // Message choices for what errors and warnings are given. // @@ -212,10 +147,6 @@ enum EShMessages { EShMsgReadHlsl = (1 << 6), // use HLSL parsing rules and semantics EShMsgCascadingErrors = (1 << 7), // get cascading errors; risks error-recovery issues, instead of an early exit EShMsgKeepUncalled = (1 << 8), // for testing, don't eliminate uncalled functions - EShMsgHlslOffsets = (1 << 9), // allow block offsets to follow HLSL rules instead of GLSL rules - EShMsgDebugInfo = (1 << 10), // save debug information - EShMsgHlslEnable16BitTypes = (1 << 11), // enable use of 16-bit types in SPIR-V for HLSL - EShMsgHlslLegalization = (1 << 12), // enable HLSL Legalization messages }; // @@ -272,6 +203,14 @@ SH_IMPORT_EXPORT int ShCompile( EShMessages messages = EShMsgDefault // warnings and errors ); +SH_IMPORT_EXPORT int ShLink( + const ShHandle, // linker object + const ShHandle h[], // compiler objects to link together + const int numHandles, + ShHandle uniformMap, // updated with new uniforms + short int** uniformsAccessed, // returned with indexes of uniforms accessed + int* numUniformsAccessed); + SH_IMPORT_EXPORT int ShLinkExt( const ShHandle, // linker object const ShHandle h[], // compiler objects to link together @@ -311,7 +250,7 @@ SH_IMPORT_EXPORT int ShGetUniformLocation(const ShHandle uniformMap, const char* // Deferred-Lowering C++ Interface // ----------------------------------- // -// Below is a new alternate C++ interface, which deprecates the above +// Below is a new alternate C++ interface that might potentially replace the above // opaque handle-based interface. // // The below is further designed to handle multiple compilation units per stage, where @@ -345,26 +284,11 @@ bool InitializeProcess(); // Call once per process to tear down everything void FinalizeProcess(); -// Resource type for IO resolver -enum TResourceType { - EResSampler, - EResTexture, - EResImage, - EResUbo, - EResSsbo, - EResUav, - EResCount -}; - -// Make one TShader per shader that you will link into a program. Then -// - provide the shader through setStrings() or setStringsWithLengths() -// - optionally call setEnv*(), see below for more detail -// - optionally use setPreamble() to set a special shader string that will be -// processed before all others but won't affect the validity of #version -// - call parse(): source language and target environment must be selected -// either by correct setting of EShMessages sent to parse(), or by -// explicitly calling setEnv*() -// - query the info logs +// Make one TShader per shader that you will link into a program. Then provide +// the shader through setStrings() or setStringsWithLengths(), then call parse(), +// then query the info logs. +// Optionally use setPreamble() to set a special shader string that will be +// processed before all others but won't affect the validity of #version. // // N.B.: Does not yet support having the same TShader instance being linked into // multiple programs. @@ -382,50 +306,13 @@ public: void setPreamble(const char* s) { preamble = s; } void setEntryPoint(const char* entryPoint); void setSourceEntryPoint(const char* sourceEntryPointName); - void addProcesses(const std::vector&); - - // IO resolver binding data: see comments in ShaderLang.cpp - void setShiftBinding(TResourceType res, unsigned int base); - void setShiftSamplerBinding(unsigned int base); // DEPRECATED: use setShiftBinding - void setShiftTextureBinding(unsigned int base); // DEPRECATED: use setShiftBinding - void setShiftImageBinding(unsigned int base); // DEPRECATED: use setShiftBinding - void setShiftUboBinding(unsigned int base); // DEPRECATED: use setShiftBinding - void setShiftUavBinding(unsigned int base); // DEPRECATED: use setShiftBinding - void setShiftCbufferBinding(unsigned int base); // synonym for setShiftUboBinding - void setShiftSsboBinding(unsigned int base); // DEPRECATED: use setShiftBinding - void setShiftBindingForSet(TResourceType res, unsigned int base, unsigned int set); - void setResourceSetBinding(const std::vector& base); + void setShiftSamplerBinding(unsigned int base); + void setShiftTextureBinding(unsigned int base); + void setShiftImageBinding(unsigned int base); + void setShiftUboBinding(unsigned int base); void setAutoMapBindings(bool map); - void setAutoMapLocations(bool map); - void setInvertY(bool invert); - void setHlslIoMapping(bool hlslIoMap); void setFlattenUniformArrays(bool flatten); void setNoStorageFormat(bool useUnknownFormat); - void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode); - - // For setting up the environment (cleared to nothingness in the constructor). - // These must be called so that parsing is done for the right source language and - // target environment, either indirectly through TranslateEnvironment() based on - // EShMessages et. al., or directly by the user. - void setEnvInput(EShSource lang, EShLanguage envStage, EShClient client, int version) - { - environment.input.languageFamily = lang; - environment.input.stage = envStage; - environment.input.dialect = client; - environment.input.dialectVersion = version; - } - void setEnvClient(EShClient client, EShTargetClientVersion version) - { - environment.client.client = client; - environment.client.version = version; - } - void setEnvTarget(EShTargetLanguage lang, EShTargetLanguageVersion version) - { - environment.target.language = lang; - environment.target.version = version; - } - void setEnvTargetHlslFunctionality1() { environment.target.hlslFunctionality1 = true; } - bool getEnvTargetHlslFunctionality1() const { return environment.target.hlslFunctionality1; } // Interface to #include handlers. // @@ -444,94 +331,81 @@ public: // release the IncludeResult object. class Includer { public: + typedef enum { + EIncludeRelative, // For #include "something" + EIncludeStandard // Reserved. For #include + } IncludeType; + // An IncludeResult contains the resolved name and content of a source // inclusion. struct IncludeResult { - IncludeResult(const std::string& headerName, const char* const headerData, const size_t headerLength, void* userData) : - headerName(headerName), headerData(headerData), headerLength(headerLength), userData(userData) { } + IncludeResult(const std::string& file_name, const char* const file_data, const size_t file_length, void* user_data) : + file_name(file_name), file_data(file_data), file_length(file_length), user_data(user_data) { } // For a successful inclusion, the fully resolved name of the requested // include. For example, in a file system-based includer, full resolution // should convert a relative path name into an absolute path name. // For a failed inclusion, this is an empty string. - const std::string headerName; + const std::string file_name; // The content and byte length of the requested inclusion. The // Includer producing this IncludeResult retains ownership of the // storage. - // For a failed inclusion, the header + // For a failed inclusion, the file_data // field points to a string containing error details. - const char* const headerData; - const size_t headerLength; + const char* const file_data; + const size_t file_length; // Include resolver's context. - void* userData; + void* user_data; protected: IncludeResult& operator=(const IncludeResult&); IncludeResult(); }; - // For both include methods below: - // - // Resolves an inclusion request by name, current source name, + // Resolves an inclusion request by name, type, current source name, // and include depth. // On success, returns an IncludeResult containing the resolved name - // and content of the include. - // On failure, returns a nullptr, or an IncludeResult - // with an empty string for the headerName and error details in the - // header field. - // The Includer retains ownership of the contents + // and content of the include. On failure, returns an IncludeResult + // with an empty string for the file_name and error details in the + // file_data field. The Includer retains ownership of the contents // of the returned IncludeResult value, and those contents must // remain valid until the releaseInclude method is called on that // IncludeResult object. - // - // Note "local" vs. "system" is not an "either/or": "local" is an - // extra thing to do over "system". Both might get called, as per - // the C++ specification. - - // For the "system" or <>-style includes; search the "system" paths. - virtual IncludeResult* includeSystem(const char* /*headerName*/, - const char* /*includerName*/, - size_t /*inclusionDepth*/) { return nullptr; } - - // For the "local"-only aspect of a "" include. Should not search in the - // "system" paths, because on returning a failure, the parser will - // call includeSystem() to look in the "system" locations. - virtual IncludeResult* includeLocal(const char* /*headerName*/, - const char* /*includerName*/, - size_t /*inclusionDepth*/) { return nullptr; } - + virtual IncludeResult* include(const char* requested_source, + IncludeType type, + const char* requesting_source, + size_t inclusion_depth) = 0; // Signals that the parser will no longer use the contents of the // specified IncludeResult. - virtual void releaseInclude(IncludeResult*) = 0; + virtual void releaseInclude(IncludeResult* result) = 0; virtual ~Includer() {} }; - // Fail all Includer searches - class ForbidIncluder : public Includer { + // Returns an error message for any #include directive. + class ForbidInclude : public Includer { public: - virtual void releaseInclude(IncludeResult*) override { } + IncludeResult* include(const char*, IncludeType, const char*, size_t) override + { + const char* unexpected_include = "unexpected include directive"; + return new IncludeResult(std::string(""), unexpected_include, strlen(unexpected_include), nullptr); + } + virtual void releaseInclude(IncludeResult* result) override + { + delete result; + } }; - bool parse(const TBuiltInResource*, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, - bool forwardCompatible, EShMessages, Includer&); - bool parse(const TBuiltInResource* res, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, bool forwardCompatible, EShMessages messages) { - TShader::ForbidIncluder includer; + TShader::ForbidInclude includer; return parse(res, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, forwardCompatible, messages, includer); } + bool parse(const TBuiltInResource*, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, + bool forwardCompatible, EShMessages, Includer&); + // Equivalent to parse() without a default profile and without forcing defaults. - bool parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages) - { - return parse(builtInResources, defaultVersion, ENoProfile, false, forwardCompatible, messages); - } - - bool parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages, - Includer& includer) - { - return parse(builtInResources, defaultVersion, ENoProfile, false, forwardCompatible, messages, includer); - } - + // Provided for backwards compatibility. + bool parse(const TBuiltInResource*, int defaultVersion, bool forwardCompatible, EShMessages); bool preprocess(const TBuiltInResource* builtInResources, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, bool forwardCompatible, EShMessages message, std::string* outputString, @@ -539,8 +413,8 @@ public: const char* getInfoLog(); const char* getInfoDebugLog(); + EShLanguage getStage() const { return stage; } - TIntermediate* getIntermediate() const { return intermediate; } protected: TPoolAllocator* pool; @@ -566,8 +440,6 @@ protected: // a function in the source string can be renamed FROM this TO the name given in setEntryPoint. std::string sourceEntryPointName; - TEnvironment environment; - friend class TProgram; private: @@ -579,24 +451,14 @@ class TIoMapper; // Allows to customize the binding layout after linking. // All used uniform variables will invoke at least validateBinding. -// If validateBinding returned true then the other resolveBinding, -// resolveSet, and resolveLocation are invoked to resolve the binding -// and descriptor set index respectively. -// +// If validateBinding returned true then the other resolveBinding +// and resolveSet are invoked to resolve the binding and descriptor +// set index respectively. // Invocations happen in a particular order: -// 1) all shader inputs -// 2) all shader outputs -// 3) all uniforms with binding and set already defined -// 4) all uniforms with binding but no set defined -// 5) all uniforms with set but no binding defined -// 6) all uniforms with no binding and no set defined -// -// mapIO will use this resolver in two phases. The first -// phase is a notification phase, calling the corresponging -// notifiy callbacks, this phase ends with a call to endNotifications. -// Phase two starts directly after the call to endNotifications -// and calls all other callbacks to validate and to get the -// bindings, sets, locations, component and color indices. +// 1) var with binding and set already defined +// 2) var with binding but no set defined +// 3) var with set but no binding defined +// 4) var with no binding and no set defined // // NOTE: that still limit checks are applied to bindings and sets // and may result in an error. @@ -605,42 +467,15 @@ class TIoMapResolver public: virtual ~TIoMapResolver() {} - // Should return true if the resulting/current binding would be okay. + // Should return true if the resulting/current binding would be ok. // Basic idea is to do aliasing binding checks with this. virtual bool validateBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; // Should return a value >= 0 if the current binding should be overridden. // Return -1 if the current binding (including no binding) should be kept. virtual int resolveBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Should return a value >= 0 if the current set should be overridden. + // Should return a value >= 0 if the current set should be overriden. // Return -1 if the current set (including no set) should be kept. virtual int resolveSet(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Should return a value >= 0 if the current location should be overridden. - // Return -1 if the current location (including no location) should be kept. - virtual int resolveUniformLocation(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Should return true if the resulting/current setup would be okay. - // Basic idea is to do aliasing checks and reject invalid semantic names. - virtual bool validateInOut(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Should return a value >= 0 if the current location should be overridden. - // Return -1 if the current location (including no location) should be kept. - virtual int resolveInOutLocation(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Should return a value >= 0 if the current component index should be overridden. - // Return -1 if the current component index (including no index) should be kept. - virtual int resolveInOutComponent(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Should return a value >= 0 if the current color index should be overridden. - // Return -1 if the current color index (including no index) should be kept. - virtual int resolveInOutIndex(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Notification of a uniform variable - virtual void notifyBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Notification of a in or out variable - virtual void notifyInOut(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Called by mapIO when it has finished the notify pass - virtual void endNotifications(EShLanguage stage) = 0; - // Called by mapIO when it starts its notify pass for the given stage - virtual void beginNotifications(EShLanguage stage) = 0; - // Called by mipIO when it starts its resolve pass for the given stage - virtual void beginResolve(EShLanguage stage) = 0; - // Called by mapIO when it has finished the resolve pass - virtual void endResolve(EShLanguage stage) = 0; }; // Make one TProgram per set of shaders that will get linked together. Add all @@ -670,15 +505,11 @@ public: const char* getUniformBlockName(int blockIndex) const; // can be used for glGetActiveUniformBlockName() int getUniformBlockSize(int blockIndex) const; // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) int getUniformIndex(const char* name) const; // can be used for glGetUniformIndices() - int getUniformBinding(int index) const; // returns the binding number - int getUniformBlockBinding(int index) const; // returns the block binding number int getUniformBlockIndex(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) - int getUniformBlockCounterIndex(int index) const; // returns block index of associated counter. int getUniformType(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE) int getUniformBufferOffset(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_OFFSET) int getUniformArraySize(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_SIZE) int getNumLiveAttributes() const; // can be used for glGetProgramiv(GL_ACTIVE_ATTRIBUTES) - unsigned getLocalSize(int dim) const; // return dim'th local size const char *getAttributeName(int index) const; // can be used for glGetActiveAttrib() int getAttributeType(int index) const; // can be used for glGetActiveAttrib() const TType* getUniformTType(int index) const; // returns a TType* @@ -705,7 +536,6 @@ protected: bool linked; private: - TProgram(TProgram&); TProgram& operator=(TProgram&); }; diff --git a/deps/glslang-new/glslang/updateGrammar b/deps/glslang/glslang-old/glslang/updateGrammar similarity index 100% rename from deps/glslang-new/glslang/updateGrammar rename to deps/glslang/glslang-old/glslang/updateGrammar diff --git a/deps/glslang-new/gtests/AST.FromFile.cpp b/deps/glslang/glslang-old/gtests/AST.FromFile.cpp old mode 100755 new mode 100644 similarity index 78% rename from deps/glslang-new/gtests/AST.FromFile.cpp rename to deps/glslang/glslang-old/gtests/AST.FromFile.cpp index b89fc51564..a2e961e81b --- a/deps/glslang-new/gtests/AST.FromFile.cpp +++ b/deps/glslang/glslang-old/gtests/AST.FromFile.cpp @@ -41,27 +41,13 @@ 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, + Source::GLSL, Semantics::OpenGL, 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, @@ -76,7 +62,6 @@ INSTANTIATE_TEST_CASE_P( "versionsErrors.frag", "versionsErrors.vert", "100.frag", - "100samplerExternal.frag", "120.vert", "120.frag", "130.vert", @@ -92,14 +77,9 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -112,7 +92,6 @@ INSTANTIATE_TEST_CASE_P( "300layout.frag", "300operations.frag", "300block.frag", - "300samplerExternal.frag", "310.comp", "310.vert", "310.geom", @@ -121,18 +100,10 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -164,7 +135,6 @@ INSTANTIATE_TEST_CASE_P( "430.vert", "430.comp", "430AofA.frag", - "435.vert", "440.vert", "440.frag", "450.vert", @@ -173,11 +143,8 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -200,24 +167,17 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -230,20 +190,9 @@ INSTANTIATE_TEST_CASE_P( "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 diff --git a/deps/glslang-new/gtests/BuiltInResource.FromFile.cpp b/deps/glslang/glslang-old/gtests/BuiltInResource.FromFile.cpp similarity index 100% rename from deps/glslang-new/gtests/BuiltInResource.FromFile.cpp rename to deps/glslang/glslang-old/gtests/BuiltInResource.FromFile.cpp diff --git a/deps/glslang/glslang-old/gtests/CMakeLists.txt b/deps/glslang/glslang-old/gtests/CMakeLists.txt new file mode 100644 index 0000000000..268caff7f9 --- /dev/null +++ b/deps/glslang/glslang-old/gtests/CMakeLists.txt @@ -0,0 +1,48 @@ +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}/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) + install(TARGETS glslangtests + RUNTIME DESTINATION bin) + + set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test") + # Supply a default test root directory, so that manual testing + # doesn't have to specify the --test-root option in the normal + # case that you want to use the tests from the same source tree. + target_compile_definitions(glslangtests + PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}") + target_include_directories(glslangtests PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR} + ${gmock_SOURCE_DIR}/include + ${gtest_SOURCE_DIR}/include) + target_link_libraries(glslangtests PRIVATE + SPVRemapper glslang OSDependent OGLCompiler HLSL glslang + SPIRV glslang-default-resource-limits gmock) + add_test(NAME glslang-gtests + COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}") +endif() diff --git a/deps/glslang-new/gtests/Config.FromFile.cpp b/deps/glslang/glslang-old/gtests/Config.FromFile.cpp similarity index 98% rename from deps/glslang-new/gtests/Config.FromFile.cpp rename to deps/glslang/glslang-old/gtests/Config.FromFile.cpp index f3a27724d1..a6e93dcfa9 100644 --- a/deps/glslang-new/gtests/Config.FromFile.cpp +++ b/deps/glslang/glslang-old/gtests/Config.FromFile.cpp @@ -97,7 +97,7 @@ TEST_P(ConfigTest, FromFile) INSTANTIATE_TEST_CASE_P( Glsl, ConfigTest, ::testing::ValuesIn(std::vector({ - {"specExamples.vert", "baseResults/test.conf", "specExamplesConf.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, + {"specExamples.vert", "baseResults/test.conf", "specExamples.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, {"100Limits.vert", "100.conf", "100LimitsConf.vert.out", EShMsgCascadingErrors}, })), ); diff --git a/deps/glslang-new/gtests/HexFloat.cpp b/deps/glslang/glslang-old/gtests/HexFloat.cpp similarity index 100% rename from deps/glslang-new/gtests/HexFloat.cpp rename to deps/glslang/glslang-old/gtests/HexFloat.cpp diff --git a/deps/glslang-new/gtests/Hlsl.FromFile.cpp b/deps/glslang/glslang-old/gtests/Hlsl.FromFile.cpp similarity index 54% rename from deps/glslang-new/gtests/Hlsl.FromFile.cpp rename to deps/glslang/glslang-old/gtests/Hlsl.FromFile.cpp index 861c098837..f0332aac61 100644 --- a/deps/glslang-new/gtests/Hlsl.FromFile.cpp +++ b/deps/glslang/glslang-old/gtests/Hlsl.FromFile.cpp @@ -58,24 +58,15 @@ std::string FileNameAsCustomTestSuffix( } 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. +// Compiling HLSL to 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); + Source::HLSL, Semantics::Vulkan, + Target::BothASTAndSpv, GetParam().entryPoint); } TEST_P(HlslCompileAndFlattenTest, FromFile) @@ -85,95 +76,41 @@ TEST_P(HlslCompileAndFlattenTest, FromFile) 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"}, @@ -182,39 +119,17 @@ INSTANTIATE_TEST_CASE_P( {"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.f1632.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.frag", "main"}, - {"hlsl.intrinsic.frexp.frag", "main"}, {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, @@ -223,7 +138,6 @@ INSTANTIATE_TEST_CASE_P( {"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"}, @@ -235,39 +149,18 @@ INSTANTIATE_TEST_CASE_P( {"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.unary.frag", "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.numthreads.comp", "main_aux1"}, {"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"}, @@ -278,7 +171,6 @@ INSTANTIATE_TEST_CASE_P( {"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"}, @@ -290,11 +182,8 @@ INSTANTIATE_TEST_CASE_P( {"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"}, @@ -310,94 +199,31 @@ INSTANTIATE_TEST_CASE_P( {"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"}, + {"hlsl.void.frag", "PixelShaderFunction"}, }), FileNameAsCustomTestSuffix ); @@ -408,30 +234,10 @@ 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-new/gtests/Initializer.h b/deps/glslang/glslang-old/gtests/Initializer.h similarity index 100% rename from deps/glslang-new/gtests/Initializer.h rename to deps/glslang/glslang-old/gtests/Initializer.h diff --git a/deps/glslang-new/gtests/Link.FromFile.cpp b/deps/glslang/glslang-old/gtests/Link.FromFile.cpp similarity index 100% rename from deps/glslang-new/gtests/Link.FromFile.cpp rename to deps/glslang/glslang-old/gtests/Link.FromFile.cpp diff --git a/deps/glslang-new/gtests/Pp.FromFile.cpp b/deps/glslang/glslang-old/gtests/Pp.FromFile.cpp similarity index 100% rename from deps/glslang-new/gtests/Pp.FromFile.cpp rename to deps/glslang/glslang-old/gtests/Pp.FromFile.cpp diff --git a/deps/glslang-new/gtests/README.md b/deps/glslang/glslang-old/gtests/README.md similarity index 100% rename from deps/glslang-new/gtests/README.md rename to deps/glslang/glslang-old/gtests/README.md diff --git a/deps/glslang-new/gtests/Remap.FromFile.cpp b/deps/glslang/glslang-old/gtests/Remap.FromFile.cpp similarity index 98% rename from deps/glslang-new/gtests/Remap.FromFile.cpp rename to deps/glslang/glslang-old/gtests/Remap.FromFile.cpp index 50bce8e357..9f25a6f227 100644 --- a/deps/glslang-new/gtests/Remap.FromFile.cpp +++ b/deps/glslang/glslang-old/gtests/Remap.FromFile.cpp @@ -89,7 +89,6 @@ INSTANTIATE_TEST_CASE_P( { "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 }, diff --git a/deps/glslang-new/gtests/Settings.cpp b/deps/glslang/glslang-old/gtests/Settings.cpp similarity index 100% rename from deps/glslang-new/gtests/Settings.cpp rename to deps/glslang/glslang-old/gtests/Settings.cpp diff --git a/deps/glslang-new/gtests/Settings.h b/deps/glslang/glslang-old/gtests/Settings.h similarity index 100% rename from deps/glslang-new/gtests/Settings.h rename to deps/glslang/glslang-old/gtests/Settings.h diff --git a/deps/glslang-new/gtests/Spv.FromFile.cpp b/deps/glslang/glslang-old/gtests/Spv.FromFile.cpp old mode 100755 new mode 100644 similarity index 66% rename from deps/glslang-new/gtests/Spv.FromFile.cpp rename to deps/glslang/glslang-old/gtests/Spv.FromFile.cpp index 4b1ff462cc..414fa7b7d5 --- a/deps/glslang-new/gtests/Spv.FromFile.cpp +++ b/deps/glslang/glslang-old/gtests/Spv.FromFile.cpp @@ -48,7 +48,6 @@ struct IoMapData { int baseTextureBinding; int baseImageBinding; int baseUboBinding; - int baseSsboBinding; bool autoMapBindings; bool flattenUniforms; }; @@ -63,7 +62,6 @@ std::string FileNameAsCustomTestSuffixIoMap( } 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>; @@ -73,24 +71,13 @@ 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, + Source::GLSL, Semantics::Vulkan, Target::Spv); } @@ -99,7 +86,7 @@ TEST_P(CompileVulkan1_1ToSpirvTest, FromFile) TEST_P(CompileOpenGLToSpirvTest, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, + Source::GLSL, Semantics::OpenGL, Target::Spv); } @@ -108,8 +95,8 @@ TEST_P(CompileOpenGLToSpirvTest, FromFile) TEST_P(VulkanSemantics, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, - Target::Spv, false); + Source::GLSL, Semantics::Vulkan, + Target::Spv); } // GLSL-level Vulkan semantics test. Expected to error out before generating @@ -117,15 +104,15 @@ TEST_P(VulkanSemantics, FromFile) TEST_P(OpenGLSemantics, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, - Target::Spv, false); + Source::GLSL, Semantics::OpenGL, + Target::Spv); } // 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, + Source::GLSL, Semantics::Vulkan, Target::AST); } @@ -139,7 +126,6 @@ TEST_P(HlslIoMap, FromFile) GetParam().baseTextureBinding, GetParam().baseImageBinding, GetParam().baseUboBinding, - GetParam().baseSsboBinding, GetParam().autoMapBindings, GetParam().flattenUniforms); } @@ -154,7 +140,6 @@ TEST_P(GlslIoMap, FromFile) GetParam().baseTextureBinding, GetParam().baseImageBinding, GetParam().baseUboBinding, - GetParam().baseSsboBinding, GetParam().autoMapBindings, GetParam().flattenUniforms); } @@ -165,31 +150,11 @@ TEST_P(GlslIoMap, FromFile) TEST_P(CompileVulkanToSpirvTestAMD, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Source::GLSL, Semantics::Vulkan, 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, @@ -197,7 +162,6 @@ INSTANTIATE_TEST_CASE_P( // 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", @@ -229,22 +193,15 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -254,19 +211,13 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -282,23 +233,16 @@ INSTANTIATE_TEST_CASE_P( "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.intOps.vert", + "spv.noWorkgroup.comp", "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", @@ -314,7 +258,6 @@ INSTANTIATE_TEST_CASE_P( "spv.test.vert", "spv.texture.frag", "spv.texture.vert", - "spv.textureBuffer.vert", "spv.image.frag", "spv.types.frag", "spv.uint.frag", @@ -322,7 +265,6 @@ INSTANTIATE_TEST_CASE_P( "spv.variableArrayIndex.frag", "spv.varyingArray.frag", "spv.varyingArrayIndirect.frag", - "spv.vecMatConstruct.frag", "spv.voidFunction.frag", "spv.whileLoop.frag", "spv.AofA.frag", @@ -330,53 +272,13 @@ INSTANTIATE_TEST_CASE_P( "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 ); @@ -385,18 +287,15 @@ INSTANTIATE_TEST_CASE_P( 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", + { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, true, false }, + { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, false, false }, + { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, true, true }, + { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, true, true }, + { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, true, true }, + { "spv.register.autoassign.rangetest.frag", "main", glslang::TQualifier::layoutBindingEnd-2, glslang::TQualifier::layoutBindingEnd+5, - 20, 30, true, false }, + 20, true, false }, }), FileNameAsCustomTestSuffixIoMap ); @@ -405,8 +304,8 @@ INSTANTIATE_TEST_CASE_P( 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 }, + { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, true, false }, + { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, false, false }, }), FileNameAsCustomTestSuffixIoMap ); @@ -415,14 +314,9 @@ INSTANTIATE_TEST_CASE_P( 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 ); @@ -462,43 +356,10 @@ 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 diff --git a/deps/glslang-new/gtests/TestFixture.cpp b/deps/glslang/glslang-old/gtests/TestFixture.cpp similarity index 98% rename from deps/glslang-new/gtests/TestFixture.cpp rename to deps/glslang/glslang-old/gtests/TestFixture.cpp index 77bada5f7d..db2b81d1a0 100644 --- a/deps/glslang-new/gtests/TestFixture.cpp +++ b/deps/glslang/glslang-old/gtests/TestFixture.cpp @@ -100,8 +100,6 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target) break; } - result = static_cast(result | EShMsgHlslLegalization); - return result; } diff --git a/deps/glslang-new/gtests/TestFixture.h b/deps/glslang/glslang-old/gtests/TestFixture.h similarity index 82% rename from deps/glslang-new/gtests/TestFixture.h rename to deps/glslang/glslang-old/gtests/TestFixture.h index a58978d339..8aee0cf88e 100644 --- a/deps/glslang-new/gtests/TestFixture.h +++ b/deps/glslang/glslang-old/gtests/TestFixture.h @@ -70,7 +70,7 @@ enum class Source { // Enum for shader compilation semantics. enum class Semantics { OpenGL, - Vulkan + Vulkan, }; // Enum for compilation target. @@ -197,40 +197,13 @@ public: 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) + bool flattenUniformArrays = false) { - const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); + const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); - glslang::TShader shader(stage); - if (automap) { - shader.setAutoMapLocations(true); - shader.setAutoMapBindings(true); - } - shader.setTextureSamplerTransformMode(texSampTransMode); + glslang::TShader shader(kind); 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; @@ -241,10 +214,8 @@ public: if (success && (controls & EShMsgSpvRules)) { std::vector spirv_binary; - glslang::SpvOptions options; - options.disableOptimizer = !enableOptimizer; - glslang::GlslangToSpv(*program.getIntermediate(stage), - spirv_binary, &logger, &options); + glslang::GlslangToSpv(*program.getIntermediate(kind), + spirv_binary, &logger); std::ostringstream disassembly_stream; spv::Parameterize(); @@ -270,27 +241,24 @@ public: int baseTextureBinding, int baseImageBinding, int baseUboBinding, - int baseSsboBinding, bool autoMapBindings, bool flattenUniformArrays) { - const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); + const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); - glslang::TShader shader(stage); + glslang::TShader shader(kind); 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(); @@ -298,7 +266,7 @@ public: if (success && (controls & EShMsgSpvRules)) { std::vector spirv_binary; - glslang::GlslangToSpv(*program.getIntermediate(stage), + glslang::GlslangToSpv(*program.getIntermediate(kind), spirv_binary, &logger); std::ostringstream disassembly_stream; @@ -322,12 +290,9 @@ public: 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); + const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); + glslang::TShader shader(kind); bool success = compile(&shader, code, entryPointName, controls); glslang::TProgram program; @@ -338,7 +303,7 @@ public: if (success && (controls & EShMsgSpvRules)) { std::vector spirv_binary; - glslang::GlslangToSpv(*program.getIntermediate(stage), + glslang::GlslangToSpv(*program.getIntermediate(kind), spirv_binary, &logger); spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); @@ -365,7 +330,7 @@ public: 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); @@ -407,26 +372,19 @@ public: 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& entryPointName="") { const std::string inputFname = testDir + "/" + testName; const std::string expectedOutputFname = - testDir + baseDir + testName + ".out"; + testDir + "/baseResults/" + 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); + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls); // Generate the hybrid output in the way of glslangValidator. std::ostringstream stream; @@ -452,8 +410,7 @@ public: tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = compileAndLink(testName, input, entryPointName, controls, - glslang::EShTargetVulkan_1_0, true); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls, true); // Generate the hybrid output in the way of glslangValidator. std::ostringstream stream; @@ -473,7 +430,6 @@ public: int baseTextureBinding, int baseImageBinding, int baseUboBinding, - int baseSsboBinding, bool autoMapBindings, bool flattenUniformArrays) { @@ -487,8 +443,7 @@ public: const EShMessages controls = DeriveOptions(source, semantics, target); GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, - baseSamplerBinding, baseTextureBinding, baseImageBinding, - baseUboBinding, baseSsboBinding, + baseSamplerBinding, baseTextureBinding, baseImageBinding, baseUboBinding, autoMapBindings, flattenUniformArrays); @@ -566,7 +521,7 @@ public: glslang::TShader shader(EShLangVertex); shader.setStringsWithLengths(&shaderStrings, &shaderLengths, 1); std::string ppShader; - glslang::TShader::ForbidIncluder includer; + glslang::TShader::ForbidInclude includer; const bool success = shader.preprocess( &glslang::DefaultTBuiltInResource, defaultVersion, defaultProfile, forceVersionProfile, isForwardCompatible, (EShMessages)(EShMsgOnlyPreprocessor | EShMsgCascadingErrors), @@ -607,33 +562,6 @@ public: 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; diff --git a/deps/glslang-new/gtests/main.cpp b/deps/glslang/glslang-old/gtests/main.cpp similarity index 86% rename from deps/glslang-new/gtests/main.cpp rename to deps/glslang/glslang-old/gtests/main.cpp index 9cd06d1d4f..35f30db9cf 100644 --- a/deps/glslang-new/gtests/main.cpp +++ b/deps/glslang/glslang-old/gtests/main.cpp @@ -54,7 +54,7 @@ int main(int argc, char** argv) glslangtest::GlobalTestSettings.updateMode = true; } if (std::string("--test-root") == argv[i]) { - // Allow the user set the test root directory. This is useful + // Allow the user set the tets root directory. This is useful // for testing with files from another source tree. if (i + 1 < argc) { glslangtest::GlobalTestSettings.testRoot = argv[i + 1]; @@ -64,11 +64,6 @@ int main(int argc, char** argv) 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(); diff --git a/deps/glslang/glslang-old/hlsl/CMakeLists.txt b/deps/glslang/glslang-old/hlsl/CMakeLists.txt new file mode 100755 index 0000000000..ec5f1a569e --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/CMakeLists.txt @@ -0,0 +1,28 @@ +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 STATIC ${SOURCES} ${HEADERS}) +set_property(TARGET HLSL PROPERTY FOLDER hlsl) + +if(WIN32) + source_group("Source" FILES ${SOURCES} ${HEADERS}) +endif(WIN32) + +install(TARGETS HLSL + ARCHIVE DESTINATION lib) diff --git a/deps/glslang/glslang-old/hlsl/hlslAttributes.cpp b/deps/glslang/glslang-old/hlsl/hlslAttributes.cpp new file mode 100644 index 0000000000..966ff35210 --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/hlslAttributes.cpp @@ -0,0 +1,110 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#include "hlslAttributes.h" +#include +#include + +namespace glslang { + // Map the given string to an attribute enum from TAttributeType, + // or EatNone if invalid. + TAttributeType TAttributeMap::attributeFromName(const TString& name) + { + // These are case insensitive. + TString lowername(name); + std::transform(lowername.begin(), lowername.end(), lowername.begin(), ::tolower); + + if (lowername == "allow_uav_condition") + return EatAllow_uav_condition; + else if (lowername == "branch") + return EatBranch; + else if (lowername == "call") + return EatCall; + else if (lowername == "domain") + return EatDomain; + else if (lowername == "earlydepthstencil") + return EatEarlyDepthStencil; + else if (lowername == "fastopt") + return EatFastOpt; + else if (lowername == "flatten") + return EatFlatten; + else if (lowername == "forcecase") + return EatForceCase; + else if (lowername == "instance") + return EatInstance; + else if (lowername == "maxtessfactor") + return EatMaxTessFactor; + else if (lowername == "maxvertexcount") + return EatMaxVertexCount; + else if (lowername == "numthreads") + return EatNumThreads; + else if (lowername == "outputcontrolpoints") + return EatOutputControlPoints; + else if (lowername == "outputtopology") + return EatOutputTopology; + else if (lowername == "partitioning") + return EatPartitioning; + else if (lowername == "patchconstantfunc") + return EatPatchConstantFunc; + else if (lowername == "unroll") + return EatUnroll; + else + return EatNone; + } + + // Look up entry, inserting if it's not there, and if name is a valid attribute name + // as known by attributeFromName. + TAttributeType TAttributeMap::setAttribute(const TString* name, TIntermAggregate* value) + { + if (name == nullptr) + return EatNone; + + const TAttributeType attr = attributeFromName(*name); + + if (attr != EatNone) + attributes[attr] = value; + + return attr; + } + + // Look up entry (const version), and return aggregate node. This cannot change the map. + const TIntermAggregate* TAttributeMap::operator[](TAttributeType attr) const + { + const auto entry = attributes.find(attr); + + return (entry == attributes.end()) ? nullptr : entry->second; + } + +} // end namespace glslang diff --git a/deps/glslang/glslang-old/hlsl/hlslAttributes.h b/deps/glslang/glslang-old/hlsl/hlslAttributes.h new file mode 100644 index 0000000000..312a456426 --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/hlslAttributes.h @@ -0,0 +1,97 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef HLSLATTRIBUTES_H_ +#define HLSLATTRIBUTES_H_ + +#include +#include +#include "hlslScanContext.h" +#include "../glslang/Include/Common.h" + +namespace glslang { + enum TAttributeType { + EatNone, + EatAllow_uav_condition, + EatBranch, + EatCall, + EatDomain, + EatEarlyDepthStencil, + EatFastOpt, + EatFlatten, + EatForceCase, + EatInstance, + EatMaxTessFactor, + EatNumThreads, + EatMaxVertexCount, + EatOutputControlPoints, + EatOutputTopology, + EatPartitioning, + EatPatchConstantFunc, + EatUnroll, + }; +} + +namespace std { + // Allow use of TAttributeType enum in hash_map without calling code having to cast. + template <> struct hash { + std::size_t operator()(glslang::TAttributeType attr) const { + return std::hash()(int(attr)); + } + }; +} // end namespace std + +namespace glslang { + class TIntermAggregate; + + class TAttributeMap { + public: + // Search for and potentially add the attribute into the map. Return the + // attribute type enum for it, if found, else EatNone. + TAttributeType setAttribute(const TString* name, TIntermAggregate* value); + + // Const lookup: search for (but do not modify) the attribute in the map. + const TIntermAggregate* operator[](TAttributeType) const; + + protected: + // Find an attribute enum given its name. + static TAttributeType attributeFromName(const TString&); + + std::unordered_map attributes; + }; +} // end namespace glslang + + +#endif // HLSLATTRIBUTES_H_ diff --git a/deps/glslang-new/hlsl/hlslGrammar.cpp b/deps/glslang/glslang-old/hlsl/hlslGrammar.cpp similarity index 58% rename from deps/glslang-new/hlsl/hlslGrammar.cpp rename to deps/glslang/glslang-old/hlsl/hlslGrammar.cpp index cb05877917..c9152e2a14 100755 --- a/deps/glslang-new/hlsl/hlslGrammar.cpp +++ b/deps/glslang/glslang-old/hlsl/hlslGrammar.cpp @@ -1,12 +1,12 @@ // -// Copyright (C) 2016 Google, Inc. -// Copyright (C) 2016 LunarG, Inc. +//Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -67,111 +67,70 @@ bool HlslGrammar::parse() void HlslGrammar::expected(const char* syntax) { - parseContext.error(token.loc, "Expected", syntax, ""); + _parseContext.error(token.loc, "Expected", syntax, ""); } void HlslGrammar::unimplemented(const char* error) { - parseContext.error(token.loc, "Unimplemented", 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(); + // Even though "sample" is a keyword (for interpolation modifiers), it IS still accepted as + // an identifier. This appears to be a solitary exception: other interp modifier keywords such + // as "linear" or "centroid" NOT valid identifiers. This code special cases "sample", + // so e.g, "int sample;" is accepted. + if (peekTokenClass(EHTokSample)) { + idToken.string = NewPoolTString("sample"); idToken.tokenClass = EHTokIdentifier; - idToken.string = NewPoolTString(intermediate.implicitThisName); + idToken.symbol = nullptr; + idToken.loc = token.loc; + advanceToken(); 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; + return false; } // compilationUnit -// : declaration_list EOF +// : list of externalDeclaration +// | SEMICOLONS // bool HlslGrammar::acceptCompilationUnit() { TIntermNode* unitNode = nullptr; - if (! acceptDeclarationList(unitNode)) - return false; + while (! peekTokenClass(EHTokNone)) { + // HLSL allows semicolons between global declarations, e.g, between functions. + if (acceptTokenClass(EHTokSemicolon)) + continue; - if (! peekTokenClass(EHTokNone)) - return false; + // externalDeclaration + TIntermNode* declarationNode; + if (! acceptDeclaration(declarationNode)) + return false; + + // hook it up + unitNode = intermediate.growAggregate(unitNode, declarationNode); + } // 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 +// : LEFT_BRACE [sampler_state_assignment ... ] RIGHT_BRACE // // sampler_state_assignment // : sampler_state_identifier EQUAL value SEMICOLON @@ -195,8 +154,8 @@ bool HlslGrammar::acceptSamplerState() if (! acceptTokenClass(EHTokLeftBrace)) return true; - parseContext.warn(token.loc, "unimplemented", "immediate sampler state", ""); - + _parseContext.warn(token.loc, "unimplemented", "immediate sampler state", ""); + do { // read state name HlslToken state; @@ -275,7 +234,7 @@ bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) { if (! acceptTokenClass(EHTokSampler)) return false; - + // TODO: remove this when DX9 style declarations are implemented. unimplemented("Direct3D 9 sampler declaration"); @@ -294,14 +253,10 @@ bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) 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 declarator_list SEMICOLON // | 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 @@ -319,46 +274,17 @@ bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) // 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. +// 'node' could get populated if the declaration creates code, like an initializer +// or a function body. // -// 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) +bool HlslGrammar::acceptDeclaration(TIntermNode*& node) { - // 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 + node = nullptr; + bool list = false; // attributes - TFunctionDeclarator declarator; - acceptAttributes(declarator.attributes); + TAttributeMap attributes; + acceptAttributes(attributes); // typedef bool typedefDecl = acceptTokenClass(EHTokTypedef); @@ -370,86 +296,68 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) // 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; + // 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)) + if (! acceptFullySpecifiedType(declaredType)) return false; - // cbuffer and tbuffer end with the closing '}'. - // No semicolon is included. - if (forbidDeclarators) - return true; - - // declarator_list - // : declarator - // : identifier + // 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 + TString* fnName = idToken.string; - // 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; - } + // Potentially rename shader entry point function. No-op most of the time. + _parseContext.renameShaderFunction(fnName); + // function_parameters + TFunction& function = *new TFunction(fnName, declaredType); + if (acceptFunctionParameters(function)) { // post_decls - acceptPostDecls(declarator.function->getWritableType().getQualifier()); + acceptPostDecls(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 (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); + _parseContext.error(idToken.loc, "function body can't be in a typedef", "{", ""); + return acceptFunctionDefinition(function, node, attributes); } else { if (typedefDecl) - parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); - parseContext.handleFunctionDeclarator(declarator.loc, *declarator.function, true); + _parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); + _parseContext.handleFunctionDeclarator(idToken.loc, 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()) + // A variable declaration. Fix the storage qualifier if it's a global. + if (declaredType.getQualifier().storage == EvqTemporary && _parseContext.symbolTable.atGlobalLevel()) declaredType.getQualifier().storage = EvqUniform; + // We can handle multiple variables per type declaration, so + // the number of types can expand when arrayness is different. + TType variableType; + variableType.shallowCopy(declaredType); + // recognize array_specifier TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); - // 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()); + // Fix arrayness in the variableType + if (declaredType.isImplicitlySizedArray()) { + // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b + // of different sizes, for this case sharing the shallow copy of arrayness + // with the parseType oversubscribes it, so get a deep copy of the arrayness. + variableType.newArraySizes(declaredType.getArraySizes()); + } + if (arraySizes || variableType.isArray()) { + // In the most general case, arrayness is potentially coming both from the + // declared type and from the variable: "int[] a[];" or just one or the other. + // Merge it all to the variableType, so all arrayness is part of the variableType. + _parseContext.arrayDimMerge(variableType, arraySizes); + } // samplers accept immediate sampler state if (variableType.getBasicType() == EbtSampler) { @@ -464,69 +372,55 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) TIntermTyped* expressionNode = nullptr; if (acceptTokenClass(EHTokAssign)) { if (typedefDecl) - parseContext.error(idToken.loc, "can't have an initializer", "typedef", ""); + _parseContext.error(idToken.loc, "can't have an initializer", "typedef", ""); if (! acceptAssignmentExpression(expressionNode)) { expected("initializer"); return false; } } + // Hand off the actual declaration + // TODO: things scoped within an annotation need their own name space; // TODO: strings are not yet handled. - if (variableType.getBasicType() != EbtString && parseContext.getAnnotationNestingLevel() == 0) { + if (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 { + _parseContext.declareTypedef(idToken.loc, *idToken.string, variableType); + else if (variableType.getBasicType() == EbtBlock) + _parseContext.declareBlock(idToken.loc, variableType, idToken.string); + else { if (variableType.getQualifier().storage == EvqUniform && ! variableType.containsOpaque()) { // this isn't really an individual variable, but a member of the $Global buffer - parseContext.growGlobalUniformBlock(idToken.loc, variableType, *fullName); + _parseContext.growGlobalUniformBlock(idToken.loc, variableType, *idToken.string); } else { // Declare the variable and add any initializer code to the AST. // The top-level node is always made into an aggregate, as that's // historically how the AST has been. - initializers = intermediate.growAggregate(initializers, - parseContext.declareVariable(idToken.loc, *fullName, variableType, expressionNode), - idToken.loc); + node = intermediate.growAggregate(node, + _parseContext.declareVariable(idToken.loc, *idToken.string, variableType, + expressionNode), + idToken.loc); } } } } - // COMMA - if (acceptTokenClass(EHTokComma)) - declarator_list = true; - } + if (acceptTokenClass(EHTokComma)) { + list = true; + continue; + } + }; - // 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; + // The top-level node is a sequence. + if (node != nullptr) + node->getAsAggregate()->setOperator(EOpSequence); // 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; - } + expected(";"); + return false; } - + return true; } @@ -536,22 +430,12 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) { node = nullptr; - TAttributes attributes; // fully_specified_type TType type; - if (! acceptFullySpecifiedType(type, attributes)) + if (! acceptFullySpecifiedType(type)) 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)) { @@ -572,7 +456,7 @@ bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) return false; } - node = parseContext.declareVariable(idToken.loc, *idToken.string, type, expressionNode); + node = _parseContext.declareVariable(idToken.loc, *idToken.string, type, expressionNode); return true; } @@ -581,12 +465,7 @@ bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) // : 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) +bool HlslGrammar::acceptFullySpecifiedType(TType& type) { // type_qualifier TQualifier qualifier; @@ -596,28 +475,14 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type, TIntermNode*& nodeList, 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(); - + if (! acceptType(type)) 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); - + _parseContext.mergeQualifiers(type.getQualifier(), qualifier); // 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); + if (peekTokenClass(EHTokSemicolon)) + _parseContext.declareBlock(loc, type); } else { // Some qualifiers are set when parsing the type. Merge those with // whatever comes from acceptQualifier. @@ -626,16 +491,10 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type, TIntermNode*& nodeList, qualifier.layoutFormat = type.getQualifier().layoutFormat; qualifier.precision = type.getQualifier().precision; - if (type.getQualifier().storage == EvqOut || - type.getQualifier().storage == EvqBuffer) { + if (type.getQualifier().storage == EvqVaryingOut) qualifier.storage = type.getQualifier().storage; - qualifier.readonly = type.getQualifier().readonly; - } - if (type.isBuiltIn()) - qualifier.builtIn = type.getQualifier().builtIn; - - type.getQualifier() = qualifier; + type.getQualifier() = qualifier; } return true; @@ -651,7 +510,7 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) do { switch (peek()) { case EHTokStatic: - qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + qualifier.storage = _parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; break; case EHTokExtern: // TODO: no meaning in glslang? @@ -696,10 +555,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) qualifier.noContraction = true; break; case EHTokIn: - qualifier.storage = (qualifier.storage == EvqOut) ? EvqInOut : EvqIn; + qualifier.storage = EvqIn; break; case EHTokOut: - qualifier.storage = (qualifier.storage == EvqIn) ? EvqInOut : EvqOut; + qualifier.storage = EvqOut; break; case EHTokInOut: qualifier.storage = EvqInOut; @@ -708,41 +567,35 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) 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)) + if (!_parseContext.handleInputGeometry(token.loc, ElgPoints)) return false; break; case EHTokLine: qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgLines)) + if (!_parseContext.handleInputGeometry(token.loc, ElgLines)) return false; break; case EHTokTriangle: qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgTriangles)) + if (!_parseContext.handleInputGeometry(token.loc, ElgTriangles)) return false; break; case EHTokLineAdj: qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) + if (!_parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) return false; - break; + break; case EHTokTriangleAdj: qualifier.storage = EvqIn; - if (!parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) + if (!_parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) return false; - break; - + break; + default: return true; } @@ -781,9 +634,9 @@ bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) expected("expression"); return false; } - parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string, expr); + _parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string, expr); } else - parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string); + _parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string); // COMMA if (! acceptTokenClass(EHTokComma)) @@ -929,7 +782,7 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) expected(","); return false; } - + // integer cols if (! peekTokenClass(EHTokIntConstant)) { expected("literal integer"); @@ -974,70 +827,6 @@ bool HlslGrammar::acceptOutputPrimitiveGeometry(TLayoutGeometry& geometry) 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 // @@ -1050,14 +839,13 @@ bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geom if (! acceptTokenClass(EHTokLeftAngle)) return false; - + if (! acceptType(type)) { expected("stream output type"); return false; } - type.getQualifier().storage = EvqOut; - type.getQualifier().builtIn = EbvGsOutputStream; + type.getQualifier().storage = EvqVaryingOut; if (! acceptTokenClass(EHTokRightAngle)) { expected("right angle bracket"); @@ -1066,7 +854,7 @@ bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geom return true; } - + // annotations // : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE // @@ -1076,7 +864,7 @@ bool HlslGrammar::acceptAnnotations(TQualifier&) return false; // note that we are nesting a name space - parseContext.nestAnnotations(); + _parseContext.nestAnnotations(); // declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE do { @@ -1088,77 +876,14 @@ bool HlslGrammar::acceptAnnotations(TQualifier&) break; // declaration - TIntermNode* node = nullptr; + TIntermNode* node; 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)); - + _parseContext.unnestAnnotations(); return true; } @@ -1230,15 +955,14 @@ bool HlslGrammar::acceptTextureType(TType& type) bool array = false; bool ms = false; bool image = false; - bool combined = true; switch (textureType) { - case EHTokBuffer: dim = EsdBuffer; combined = false; break; + case EHTokBuffer: dim = EsdBuffer; 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 EHTokTexture3d: dim = Esd3D; break; case EHTokTextureCube: dim = EsdCube; break; case EHTokTextureCubearray: dim = EsdCube; array = true; break; case EHTokTexture2DMS: dim = Esd2D; ms = true; break; @@ -1256,7 +980,7 @@ bool HlslGrammar::acceptTextureType(TType& type) 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! @@ -1268,13 +992,7 @@ bool HlslGrammar::acceptTextureType(TType& type) const TBasicType basicRetType = txType.getBasicType() ; - switch (basicRetType) { - case EbtFloat: - case EbtUint: - case EbtInt: - case EbtStruct: - break; - default: + if (basicRetType != EbtFloat && basicRetType != EbtUint && basicRetType != EbtInt) { unimplemented("basic type in texture"); return false; } @@ -1291,8 +1009,8 @@ bool HlslGrammar::acceptTextureType(TType& type) return false; } - if (!txType.isScalar() && !txType.isVector() && !txType.isStruct()) { - expected("scalar, vector, or struct type"); + if (!txType.isScalar() && !txType.isVector()) { + expected("scalar or vector type"); return false; } @@ -1327,10 +1045,7 @@ bool HlslGrammar::acceptTextureType(TType& type) // 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(); + format = _parseContext.getLayoutFromTxType(token.loc, txType); // Non-image Buffers are combined if (dim == EsdBuffer && !image) { @@ -1338,74 +1053,34 @@ bool HlslGrammar::acceptTextureType(TType& type) } else { // DX10 textures are separated. TODO: DX9. if (image) { - sampler.setImage(txBasicType, dim, array, shadow, ms); + sampler.setImage(txType.getBasicType(), dim, array, shadow, ms); } else { - sampler.setTexture(txBasicType, dim, array, shadow, ms); + sampler.setTexture(txType.getBasicType(), 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; - + // Remember the declared vector size. + sampler.vectorSize = txType.getVectorSize(); + 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; - } + // Basic types for min* types, broken out here in case of future + // changes, e.g, to use native halfs. + static const TBasicType min16float_bt = EbtFloat; + static const TBasicType min10float_bt = EbtFloat; + static const TBasicType min16int_bt = EbtInt; + static const TBasicType min12int_bt = EbtInt; + static const TBasicType min16uint_bt = EbtUint; switch (peek()) { case EHTokVector: @@ -1424,18 +1099,9 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) if (! acceptStreamOutTemplateType(type, geometry)) return false; - if (! parseContext.handleOutputGeometry(token.loc, geometry)) + if (!_parseContext.handleOutputGeometry(token.loc, geometry)) return false; - - return true; - } - - case EHTokInputPatch: // fall through - case EHTokOutputPatch: // ... - { - if (! acceptTessellationPatchTemplateType(type)) - return false; - + return true; } @@ -1449,11 +1115,6 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) return acceptSamplerType(type); break; - case EHTokSubpassInput: // fall through - case EHTokSubpassInputMS: // ... - return acceptSubpassInputType(type); - break; - case EHTokBuffer: // fall through case EHTokTexture1d: // ... case EHTokTexture1darray: // ... @@ -1473,33 +1134,19 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) 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); + return acceptStruct(type); + break; case EHTokIdentifier: // An identifier could be for a user-defined type. // Note we cache the symbol table lookup, to save for a later rule // when this is not a type. - if (parseContext.lookupUserType(*token.string, type) != nullptr) { + token.symbol = _parseContext.symbolTable.find(*token.string); + if (token.symbol && token.symbol->getAsVariable() && token.symbol->getAsVariable()->isUserType()) { + type.shallowCopy(token.symbol->getType()); advanceToken(); return true; } else @@ -1582,9 +1229,6 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) new(&type) TType(EbtUint, EvqTemporary, 4); break; - case EHTokUint64: - new(&type) TType(EbtUint64); - break; case EHTokBool: new(&type) TType(EbtBool); @@ -1603,23 +1247,6 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) 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; @@ -1636,7 +1263,7 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) case EHTokMin16float4: new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin10float: new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); break; @@ -1653,7 +1280,7 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) case EHTokMin10float4: new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin16int: new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); break; @@ -1670,7 +1297,7 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) case EHTokMin16int4: new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin12int: new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); break; @@ -1687,7 +1314,7 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) case EHTokMin12int4: new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin16uint: new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); break; @@ -1901,55 +1528,6 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) 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; @@ -2005,89 +1583,55 @@ bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) 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) +bool HlslGrammar::acceptStruct(TType& type) { // 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 + // CBUFFER + if (acceptTokenClass(EHTokCBuffer)) storageQualifier = EvqUniform; - } else if (acceptTokenClass(EHTokTBuffer)) { - // TBUFFER + // TBUFFER + else if (acceptTokenClass(EHTokTBuffer)) storageQualifier = EvqBuffer; - readonly = true; - } else if (! acceptTokenClass(EHTokClass) && ! acceptTokenClass(EHTokStruct)) { - // Neither CLASS nor STRUCT + // STRUCT + else if (! acceptTokenClass(EHTokStruct)) 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()); + // IDENTIFIER TString structName = ""; - if (peekTokenClass(EHTokIdentifier) || idString != nullptr) { - if (idString != nullptr) - structName = *idString; - else - structName = *token.string; + if (peekTokenClass(EHTokIdentifier)) { + structName = *token.string; advanceToken(); } // post_decls TQualifier postDeclQualifier; postDeclQualifier.clear(); - bool postDeclsFound = acceptPostDecls(postDeclQualifier); + acceptPostDecls(postDeclQualifier); - // LEFT_BRACE, or - // struct_type IDENTIFIER + // LEFT_BRACE if (! acceptTokenClass(EHTokLeftBrace)) { - if (structName.size() > 0 && !postDeclsFound && parseContext.lookupUserType(structName, type) != nullptr) { - // struct_type IDENTIFIER - return true; - } else { - expected("{"); - return false; - } + 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) { + if (! acceptStructDeclarationList(typeList)) { expected("struct member declarations"); return false; } @@ -2103,214 +1647,18 @@ bool HlslGrammar::acceptStruct(TType& type, TIntermNode*& nodeList) 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); + // 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) { + TVariable* userTypeDef = new TVariable(&structName, type, true); + if (!_parseContext.symbolTable.insert(*userTypeDef)) + _parseContext.error(token.loc, "redefinition", structName.c_str(), "struct"); } - // 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; } @@ -2318,96 +1666,61 @@ bool HlslGrammar::acceptStructBufferType(TType& type) // : 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 +// : fully_specified_type struct_declarator COMMA struct_declarator ... // // 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) +bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList) { typeList = new TTypeList(); - HlslToken idToken; do { // success on seeing the RIGHT_BRACE coming up if (peekTokenClass(EHTokRightBrace)) - break; + return true; // struct_declaration - // attributes - TAttributes attributes; - acceptAttributes(attributes); - - bool declarator_list = false; - // fully_specified_type TType memberType; - if (! acceptFullySpecifiedType(memberType, nodeList, attributes)) { + if (! acceptFullySpecifiedType(memberType)) { 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)) { + // peek IDENTIFIER + if (! peekTokenClass(EHTokIdentifier)) { 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); + // add it to the list of members + TTypeLoc member = { new TType(EbtVoid), token.loc }; + member.type->shallowCopy(memberType); + member.type->setFieldName(*token.string); + typeList->push_back(member); - // array_specifier - TArraySizes* arraySizes = nullptr; - acceptArraySpecifier(arraySizes); - if (arraySizes) - typeList->back().type->transferArraySizes(arraySizes); + // accept IDENTIFIER + advanceToken(); - acceptPostDecls(member.type->getQualifier()); + // array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + if (arraySizes) + typeList->back().type->newArraySizes(*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 { + if (! acceptTokenClass(EHTokComma)) { expected(","); return false; } @@ -2415,49 +1728,12 @@ bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList, TIntermNode* } while (true); // SEMI_COLON - if (! functionDefinitionAccepted && ! acceptTokenClass(EHTokSemicolon)) { + if (! 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 @@ -2492,75 +1768,17 @@ bool HlslGrammar::acceptFunctionParameters(TFunction& function) 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 ] +// : fully_specified_type post_decls +// | fully_specified_type identifier array_specifier post_decls // bool HlslGrammar::acceptParameterDeclaration(TFunction& function) { - // attributes - TAttributes attributes; - acceptAttributes(attributes); - // fully_specified_type TType* type = new TType; - if (! acceptFullySpecifiedType(*type, attributes)) + if (! acceptFullySpecifiedType(*type)) return false; - // merge in the attributes - parseContext.transferTypeAttributes(token.loc, attributes, *type); - // identifier HlslToken idToken; acceptIdentifier(idToken); @@ -2569,30 +1787,20 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); if (arraySizes) { - if (arraySizes->hasUnsized()) { - parseContext.error(token.loc, "function parameter requires array size", "[]", ""); + if (arraySizes->isImplicit()) { + _parseContext.error(token.loc, "function parameter array cannot be implicitly sized", "", ""); return false; } - type->transferArraySizes(arraySizes); + type->newArraySizes(*arraySizes); } // post_decls acceptPostDecls(type->getQualifier()); - TIntermTyped* defaultValue; - if (!acceptDefaultParameterDeclaration(*type, defaultValue)) - return false; + _parseContext.paramFix(*type); - 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 }; + TParameter param = { idToken.string, type }; function.addParameter(param); return true; @@ -2600,43 +1808,22 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) // 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) +bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node, const TAttributeMap& attributes) { - 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; + TFunction& functionDeclarator = _parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); + TSourceLoc loc = token.loc; // This does a pushScope() - TIntermNode* functionNode = parseContext.handleFunctionDefinition(declarator.loc, *declarator.function, - declarator.attributes, entryPointNode); + node = _parseContext.handleFunctionDefinition(loc, functionDeclarator, attributes); // compound_statement TIntermNode* functionBody = nullptr; - if (! acceptCompoundStatement(functionBody)) - return false; + if (acceptCompoundStatement(functionBody)) { + _parseContext.handleFunctionBody(loc, functionDeclarator, functionBody, node); + return true; + } - // 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; + return false; } // Accept an expression with parenthesis around it, where @@ -2650,8 +1837,6 @@ bool HlslGrammar::acceptFunctionBody(TFunctionDeclarator& declarator, TIntermNod // bool HlslGrammar::acceptParenExpression(TIntermTyped*& expression) { - expression = nullptr; - // LEFT_PAREN if (! acceptTokenClass(EHTokLeftParen)) expected("("); @@ -2745,19 +1930,8 @@ bool HlslGrammar::acceptInitializer(TIntermTyped*& node) 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 @@ -2817,11 +1991,11 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) return false; } - node = parseContext.handleAssign(loc, assignOp, node, rightNode); - node = parseContext.handleLvalue(loc, "assign", node); + node = _parseContext.handleAssign(loc, assignOp, node, rightNode); + node = _parseContext.handleLvalue(loc, "assign", node); if (node == nullptr) { - parseContext.error(loc, "could not create assignment", "", ""); + _parseContext.error(loc, "could not create assignment", "", ""); return false; } @@ -2848,12 +2022,6 @@ bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node) 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 ?"); @@ -2872,8 +2040,6 @@ bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node) return false; } - --parseContext.controlFlowNestingLevel; - node = intermediate.addSelection(node, trueNode, falseNode, loc); return true; @@ -2917,7 +2083,7 @@ bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel pr node = intermediate.addBinaryMath(op, node, rightNode, loc); if (node == nullptr) { - parseContext.error(loc, "Could not perform requested binary operation", "", ""); + _parseContext.error(loc, "Could not perform requested binary operation", "", ""); return false; } } while (true); @@ -2941,38 +2107,28 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) 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 + TSourceLoc loc = token.loc; if (! acceptUnaryExpression(node)) return false; // Hook it up like a constructor - TFunction* constructorFunction = parseContext.makeConstructorCall(loc, castType); + TFunction* constructorFunction = _parseContext.handleConstructorCall(loc, castType); if (constructorFunction == nullptr) { expected("type that can be constructed"); return false; } TIntermTyped* arguments = nullptr; - parseContext.handleFunctionArgument(constructorFunction, arguments, node); - node = parseContext.handleFunctionCall(loc, constructorFunction, arguments); + _parseContext.handleFunctionArgument(constructorFunction, arguments, node); + node = _parseContext.handleFunctionCall(loc, constructorFunction, arguments); - return node != nullptr; + return true; } 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 @@ -2985,7 +2141,7 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) // peek for "op unary_expression" TOperator unaryOp = HlslOpMap::preUnary(peek()); - + // postfix_expression (if no unary operator) if (unaryOp == EOpNull) return acceptPostfixExpression(node); @@ -3004,7 +2160,7 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) // These unary ops require lvalues if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement) - node = parseContext.handleLvalue(loc, "unary operator", node); + node = _parseContext.handleLvalue(loc, "unary operator", node); return node != nullptr; } @@ -3013,19 +2169,17 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) // : LEFT_PAREN expression RIGHT_PAREN // | literal // | constructor -// | IDENTIFIER [ COLONCOLON IDENTIFIER [ COLONCOLON IDENTIFIER ... ] ] +// | 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 + // The logical "right recursion" is done with an loop at the end // idToken will pick up either a variable or a function name in a function call HlslToken idToken; @@ -3043,28 +2197,14 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } } else if (acceptLiteral(node)) { - // literal (nothing else to do yet) + // literal (nothing else to do yet), go on to the } 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; - } - } + // identifier or function_call name if (! peekTokenClass(EHTokLeftParen)) { - node = parseContext.handleVariable(idToken.loc, fullName); - if (node == nullptr) - return false; - } else if (acceptFunctionCall(idToken.loc, *fullName, node, nullptr)) { + node = _parseContext.handleVariable(idToken.loc, idToken.symbol, token.string); + } else if (acceptFunctionCall(idToken, node)) { // function_call (nothing else to do yet) } else { expected("function call arguments"); @@ -3075,6 +2215,20 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } + // This is to guarantee we do this no matter how we get out of the stack frame. + // This way there's no bug if an early return forgets to do it. + struct tFinalize { + tFinalize(HlslParseContext& p) : _parseContext(p) { } + ~tFinalize() { _parseContext.finalizeFlattening(); } + HlslParseContext& _parseContext; + } finalize(_parseContext); + + // Initialize the flattening accumulation data, so we can track data across multiple bracket or + // dot operators. This can also be nested, e.g, for [], so we have to track each nesting + // level: hence the init and finalize. Even though in practice these must be + // constants, they are parsed no matter what. + _parseContext.initFlattening(); + // Something was found, chain as many postfix operations as exist. do { TSourceLoc loc = token.loc; @@ -3086,7 +2240,6 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) case EOpIndexIndirect: case EOpPostIncrement: case EOpPostDecrement: - case EOpScoping: advanceToken(); break; default: @@ -3095,28 +2248,26 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) // We have a valid post-unary operator, process it. switch (postOp) { - case EOpScoping: case EOpIndexDirectStruct: { // DOT IDENTIFIER - // includes swizzles, member variables, and member functions + // includes swizzles and struct members HlslToken field; if (! acceptIdentifier(field)) { expected("swizzle or member"); return false; } - if (peekTokenClass(EHTokLeftParen)) { - // member function - TIntermTyped* thisNode = node; + TIntermTyped* base = node; // preserve for method function calls + node = _parseContext.handleDotDereference(field.loc, node, *field.string); - // arguments - if (! acceptFunctionCall(field.loc, *field.string, node, thisNode)) { + // In the event of a method node, we look for an open paren and accept the function call. + if (node != nullptr && node->getAsMethodNode() != nullptr && peekTokenClass(EHTokLeftParen)) { + if (! acceptFunctionCall(field, node, base)) { expected("function parameters"); return false; } - } else - node = parseContext.handleDotDereference(field.loc, node, *field.string); + } break; } @@ -3130,9 +2281,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } advanceToken(); - node = parseContext.handleBracketDereference(indexNode->getLoc(), node, indexNode); - if (node == nullptr) - return false; + node = _parseContext.handleBracketDereference(indexNode->getLoc(), node, indexNode); break; } case EOpPostIncrement: @@ -3141,7 +2290,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) case EOpPostDecrement: // DEC_OP node = intermediate.addUnaryMath(postOp, node, loc); - node = parseContext.handleLvalue(loc, "unary operator", node); + node = _parseContext.handleLvalue(loc, "unary operator", node); break; default: assert(0); @@ -3158,23 +2307,21 @@ bool HlslGrammar::acceptConstructor(TIntermTyped*& node) // type TType type; if (acceptType(type)) { - TFunction* constructorFunction = parseContext.makeConstructorCall(token.loc, type); + TFunction* constructorFunction = _parseContext.handleConstructorCall(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(); + expected("constructor arguments"); return false; } // hook it up - node = parseContext.handleFunctionCall(arguments->getLoc(), constructorFunction, arguments); + node = _parseContext.handleFunctionCall(arguments->getLoc(), constructorFunction, arguments); - return node != nullptr; + return true; } return false; @@ -3185,44 +2332,22 @@ bool HlslGrammar::acceptConstructor(TIntermTyped*& node) // function_call // : [idToken] arguments // -bool HlslGrammar::acceptFunctionCall(const TSourceLoc& loc, TString& name, TIntermTyped*& node, TIntermTyped* baseObject) +bool HlslGrammar::acceptFunctionCall(HlslToken idToken, TIntermTyped*& node, TIntermTyped* base) { - // 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 + TFunction* function = new TFunction(idToken.string, TType(EbtVoid)); TIntermTyped* arguments = nullptr; - if (baseObject != nullptr) { - // Non-static member functions have an implicit first argument of the base object. - parseContext.handleFunctionArgument(function, arguments, baseObject); - } + + // methods have an implicit first argument of the calling object. + if (base != nullptr) + _parseContext.handleFunctionArgument(function, arguments, base); + if (! acceptArguments(function, arguments)) return false; - // call - node = parseContext.handleFunctionCall(loc, function, arguments); + node = _parseContext.handleFunctionCall(idToken.loc, function, arguments); - return node != nullptr; + return true; } // arguments @@ -3237,19 +2362,14 @@ bool HlslGrammar::acceptArguments(TFunction* function, TIntermTyped*& arguments) 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; + break; // hook it up - parseContext.handleFunctionArgument(function, arguments, arg); + _parseContext.handleFunctionArgument(function, arguments, arg); // COMMA if (! acceptTokenClass(EHTokComma)) @@ -3274,9 +2394,6 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) 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; @@ -3287,7 +2404,7 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) node = intermediate.addConstantUnion(token.b, token.loc, true); break; case EHTokStringConstant: - node = intermediate.addConstantUnion(token.string, token.loc, true); + node = nullptr; break; default: @@ -3299,37 +2416,6 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) 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 // @@ -3348,7 +2434,7 @@ bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) if (branch != nullptr && (branch->getFlowOp() == EOpCase || branch->getFlowOp() == EOpDefault)) { // hook up individual subsequences within a switch statement - parseContext.wrapupSwitchSubsequence(compoundStatement, statement); + _parseContext.wrapupSwitchSubsequence(compoundStatement, statement); compoundStatement = nullptr; } else { // hook it up to the growing compound statement @@ -3366,18 +2452,18 @@ bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) bool HlslGrammar::acceptScopedStatement(TIntermNode*& statement) { - parseContext.pushScope(); + _parseContext.pushScope(); bool result = acceptStatement(statement); - parseContext.popScope(); + _parseContext.popScope(); return result; } bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) { - parseContext.pushScope(); + _parseContext.pushScope(); bool result = acceptCompoundStatement(statement); - parseContext.popScope(); + _parseContext.popScope(); return result; } @@ -3387,11 +2473,12 @@ bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) // // attributed_statement // : compound_statement -// | simple_statement +// | SEMICOLON +// | expression SEMICOLON +// | declaration_statement // | selection_statement // | switch_statement // | case_label -// | default_label // | iteration_statement // | jump_statement // @@ -3400,7 +2487,7 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) statement = nullptr; // attributes - TAttributes attributes; + TAttributeMap attributes; acceptAttributes(attributes); // attributed_statement @@ -3409,15 +2496,15 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) return acceptScopedCompoundStatement(statement); case EHTokIf: - return acceptSelectionStatement(statement, attributes); + return acceptSelectionStatement(statement); case EHTokSwitch: - return acceptSwitchStatement(statement, attributes); + return acceptSwitchStatement(statement); case EHTokFor: case EHTokDo: case EHTokWhile: - return acceptIterationStatement(statement, attributes); + return acceptIterationStatement(statement); case EHTokContinue: case EHTokBreak: @@ -3430,28 +2517,40 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) case EHTokDefault: return acceptDefaultLabel(statement); + case EHTokSemicolon: + return acceptTokenClass(EHTokSemicolon); + case EHTokRightBrace: // Performance: not strictly necessary, but stops a bunch of hunting early, // and is how sequences of statements end. return false; default: - return acceptSimpleStatement(statement); + { + // declaration + if (acceptDeclaration(statement)) + return true; + + // expression + TIntermTyped* node; + if (acceptExpression(node)) + statement = node; + else + return false; + + // SEMICOLON (following an expression) + if (! acceptTokenClass(EHTokSemicolon)) { + expected(";"); + return false; + } + } } 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 +// : list of zero or more of: LEFT_BRACKET attribute RIGHT_BRACKET // // attribute: // : UNROLL @@ -3472,39 +2571,24 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) // | PATCHCONSTANTFUNC // | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN // -void HlslGrammar::acceptAttributes(TAttributes& attributes) +void HlslGrammar::acceptAttributes(TAttributeMap& 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; + HlslToken idToken; // 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; - } + // attribute + if (acceptIdentifier(idToken)) { + // 'idToken.string' is the attribute + } else if (! peekTokenClass(EHTokRightBracket)) { + expected("identifier"); + advanceToken(); } TIntermAggregate* expressions = nullptr; @@ -3515,7 +2599,7 @@ void HlslGrammar::acceptAttributes(TAttributes& attributes) TIntermTyped* node; bool expectingExpression = false; - + while (acceptAssignmentExpression(node)) { expectingExpression = false; expressions->getSequence().push_back(node); @@ -3537,22 +2621,10 @@ void HlslGrammar::acceptAttributes(TAttributes& attributes) 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); - } - } + // Add any values we found into the attribute map. This accepts + // (and ignores) values not mapping to a known TAttributeType; + attributes.setAttribute(idToken.string, expressions); } while (true); } @@ -3560,7 +2632,7 @@ void HlslGrammar::acceptAttributes(TAttributes& attributes) // : IF LEFT_PAREN expression RIGHT_PAREN statement // : IF LEFT_PAREN expression RIGHT_PAREN statement ELSE statement // -bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttributes& attributes) +bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) { TSourceLoc loc = token.loc; @@ -3570,21 +2642,16 @@ bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttri // so that something declared in the condition is scoped to the lifetimes // of the then-else statements - parseContext.pushScope(); + _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"); @@ -3602,10 +2669,7 @@ bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttri // Put the pieces together statement = intermediate.addSelection(condition, thenElse, loc); - parseContext.handleSelectionAttributes(loc, statement->getAsSelectionNode(), attributes); - - parseContext.popScope(); - --parseContext.controlFlowNestingLevel; + _parseContext.popScope(); return true; } @@ -3613,35 +2677,29 @@ bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttri // switch_statement // : SWITCH LEFT_PAREN expression RIGHT_PAREN compound_statement // -bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement, const TAttributes& attributes) +bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement) { // SWITCH TSourceLoc loc = token.loc; - if (! acceptTokenClass(EHTokSwitch)) return false; // LEFT_PAREN expression RIGHT_PAREN - parseContext.pushScope(); + _parseContext.pushScope(); TIntermTyped* switchExpression; if (! acceptParenExpression(switchExpression)) { - parseContext.popScope(); + _parseContext.popScope(); return false; } // compound_statement - parseContext.pushSwitchSequence(new TIntermSequence); - - ++parseContext.controlFlowNestingLevel; + _parseContext.pushSwitchSequence(new TIntermSequence); bool statementOkay = acceptCompoundStatement(statement); - --parseContext.controlFlowNestingLevel; - if (statementOkay) - statement = parseContext.addSwitch(loc, switchExpression, statement ? statement->getAsAggregate() : nullptr, - attributes); + statement = _parseContext.addSwitch(loc, switchExpression, statement ? statement->getAsAggregate() : nullptr); - parseContext.popSwitchSequence(); - parseContext.popScope(); + _parseContext.popSwitchSequence(); + _parseContext.popScope(); return statementOkay; } @@ -3652,7 +2710,7 @@ bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement, const TAttribut // | 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) +bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) { TSourceLoc loc = token.loc; TIntermTyped* condition = nullptr; @@ -3663,21 +2721,16 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttri // 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; + _parseContext.pushScope(); + _parseContext.nestLooping(); // LEFT_PAREN condition RIGHT_PAREN if (! acceptParenExpression(condition)) return false; - condition = parseContext.convertConditionalExpression(loc, condition); - if (condition == nullptr) - return false; // statement if (! acceptScopedStatement(statement)) { @@ -3685,24 +2738,28 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttri return false; } - parseContext.unnestLooping(); - parseContext.popScope(); - --parseContext.controlFlowNestingLevel; + _parseContext.unnestLooping(); + _parseContext.popScope(); - loopNode = intermediate.addLoop(statement, condition, nullptr, true, loc); - statement = loopNode; - break; + statement = intermediate.addLoop(statement, condition, nullptr, true, loc); + + return true; case EHTokDo: - parseContext.nestLooping(); // this only needs to work right if no errors - ++parseContext.controlFlowNestingLevel; + _parseContext.nestLooping(); + + if (! acceptTokenClass(EHTokLeftBrace)) + expected("{"); // statement - if (! acceptScopedStatement(statement)) { + if (! peekTokenClass(EHTokRightBrace) && ! acceptScopedStatement(statement)) { expected("do sub-statement"); return false; } + if (! acceptTokenClass(EHTokRightBrace)) + expected("}"); + // WHILE if (! acceptTokenClass(EHTokWhile)) { expected("while"); @@ -3710,21 +2767,18 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttri } // LEFT_PAREN condition RIGHT_PAREN + TIntermTyped* condition; if (! acceptParenExpression(condition)) return false; - condition = parseContext.convertConditionalExpression(loc, condition); - if (condition == nullptr) - return false; if (! acceptTokenClass(EHTokSemicolon)) expected(";"); - parseContext.unnestLooping(); - --parseContext.controlFlowNestingLevel; + _parseContext.unnestLooping(); - loopNode = intermediate.addLoop(statement, condition, 0, false, loc); - statement = loopNode; - break; + statement = intermediate.addLoop(statement, condition, 0, false, loc); + + return true; case EHTokFor: { @@ -3734,25 +2788,25 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttri // so that something declared in the condition is scoped to the lifetime // of the for sub-statement - parseContext.pushScope(); + _parseContext.pushScope(); // initializer TIntermNode* initNode = nullptr; - if (! acceptSimpleStatement(initNode)) - expected("for-loop initializer statement"); + if (! acceptControlDeclaration(initNode)) { + TIntermTyped* initExpr = nullptr; + acceptExpression(initExpr); + initNode = initExpr; + } + // SEMI_COLON + if (! acceptTokenClass(EHTokSemicolon)) + expected(";"); - parseContext.nestLooping(); // this only needs to work right if no errors - ++parseContext.controlFlowNestingLevel; + _parseContext.nestLooping(); // 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; @@ -3766,21 +2820,17 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttri return false; } - statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc, loopNode); + statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc); - parseContext.popScope(); - parseContext.unnestLooping(); - --parseContext.controlFlowNestingLevel; + _parseContext.popScope(); + _parseContext.unnestLooping(); - break; + return true; } default: return false; } - - parseContext.handleLoopAttributes(loc, loopNode, attributes); - return true; } // jump_statement @@ -3808,17 +2858,9 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) 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); @@ -3830,7 +2872,7 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) TIntermTyped* node; if (acceptExpression(node)) { // hook it up - statement = parseContext.handleReturnValue(token.loc, node); + statement = _parseContext.handleReturnValue(token.loc, node); } else statement = intermediate.addBranch(EOpReturn, token.loc); break; @@ -3844,7 +2886,7 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) // SEMICOLON if (! acceptTokenClass(EHTokSemicolon)) expected(";"); - + return true; } @@ -3868,7 +2910,7 @@ bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) return false; } - statement = parseContext.intermediate.addBranch(EOpCase, expression, loc); + statement = _parseContext.intermediate.addBranch(EOpCase, expression, loc); return true; } @@ -3887,7 +2929,7 @@ bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) return false; } - statement = parseContext.intermediate.addBranch(EOpDefault, loc); + statement = _parseContext.intermediate.addBranch(EOpDefault, loc); return true; } @@ -3912,7 +2954,7 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) TSourceLoc loc = token.loc; TIntermTyped* sizeExpr = nullptr; - // Array sizing expression is optional. If omitted, array will be later sized by initializer list. + // Array sizing expression is optional. If ommitted, array will be later sized by initializer list. const bool hasArraySize = acceptAssignmentExpression(sizeExpr); if (! acceptTokenClass(EHTokRightBracket)) { @@ -3922,7 +2964,7 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) if (hasArraySize) { TArraySize arraySize; - parseContext.arraySizeCheck(loc, sizeExpr, arraySize); + _parseContext.arraySizeCheck(loc, sizeExpr, arraySize); arraySizes->addInnerSize(arraySize); } else { arraySizes->addInnerSize(0); // sized by initializers. @@ -3937,18 +2979,11 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) // 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) +void HlslGrammar::acceptPostDecls(TQualifier& qualifier) { - bool found = false; - do { - // COLON + // COLON if (acceptTokenClass(EHTokColon)) { - found = true; HlslToken idToken; if (peekTokenClass(EHTokLayout)) acceptLayoutQualifierList(qualifier); @@ -3956,40 +2991,40 @@ bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); - return false; + return; } HlslToken locationToken; if (! acceptIdentifier(locationToken)) { expected("c[subcomponent][.component]"); - return false; + return; } HlslToken componentToken; if (acceptTokenClass(EHTokDot)) { if (! acceptIdentifier(componentToken)) { expected("component"); - return false; + return; } } if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } - parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); + _parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); } else if (! acceptIdentifier(idToken)) { expected("layout, semantic, packoffset, or register"); - return false; + return; } 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; + return; } HlslToken registerDesc; // for Type# HlslToken profile; if (! acceptIdentifier(registerDesc)) { expected("register number description"); - return false; + return; } if (registerDesc.string->size() > 1 && !isdigit((*registerDesc.string)[1]) && acceptTokenClass(EHTokComma)) { @@ -3998,7 +3033,7 @@ bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) profile = registerDesc; if (! acceptIdentifier(registerDesc)) { expected("register number description"); - return false; + return; } } int subComponent = 0; @@ -4006,7 +3041,7 @@ bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) // LEFT_BRACKET subcomponent RIGHT_BRACKET if (! peekTokenClass(EHTokIntConstant)) { expected("literal integer"); - return false; + return; } subComponent = token.i; advanceToken(); @@ -4020,7 +3055,7 @@ bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) if (acceptTokenClass(EHTokComma)) { if (! acceptIdentifier(spaceDesc)) { expected ("space identifier"); - return false; + return; } } // RIGHT_PAREN @@ -4028,93 +3063,17 @@ bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) expected(")"); break; } - parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent, spaceDesc.string); + _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); + _parseContext.handleSemantic(idToken.loc, qualifier, *idToken.string); } - } else if (peekTokenClass(EHTokLeftAngle)) { - found = true; + } else if (peekTokenClass(EHTokLeftAngle)) acceptAnnotations(qualifier); - } else + 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-old/hlsl/hlslGrammar.h b/deps/glslang/glslang-old/hlsl/hlslGrammar.h new file mode 100755 index 0000000000..3de13b317b --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/hlslGrammar.h @@ -0,0 +1,121 @@ +// +//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 TAttributeMap; // forward declare + + // 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) { } + virtual ~HlslGrammar() { } + + bool parse(); + + protected: + HlslGrammar(); + HlslGrammar& operator=(const HlslGrammar&); + + void expected(const char*); + void unimplemented(const char*); + bool acceptIdentifier(HlslToken&); + bool acceptCompilationUnit(); + bool acceptDeclaration(TIntermNode*& node); + bool acceptControlDeclaration(TIntermNode*& node); + bool acceptSamplerDeclarationDX9(TType&); + bool acceptSamplerState(); + bool acceptFullySpecifiedType(TType&); + bool acceptQualifier(TQualifier&); + bool acceptLayoutQualifierList(TQualifier&); + bool acceptType(TType&); + bool acceptTemplateVecMatBasicType(TBasicType&); + bool acceptVectorTemplateType(TType&); + bool acceptMatrixTemplateType(TType&); + bool acceptStreamOutTemplateType(TType&, TLayoutGeometry&); + bool acceptOutputPrimitiveGeometry(TLayoutGeometry&); + bool acceptAnnotations(TQualifier&); + bool acceptSamplerType(TType&); + bool acceptTextureType(TType&); + bool acceptStruct(TType&); + bool acceptStructDeclarationList(TTypeList*&); + bool acceptFunctionParameters(TFunction&); + bool acceptParameterDeclaration(TFunction&); + bool acceptFunctionDefinition(TFunction&, TIntermNode*&, const TAttributeMap&); + 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(HlslToken, TIntermTyped*&, TIntermTyped* base = nullptr); + bool acceptArguments(TFunction*, TIntermTyped*&); + bool acceptLiteral(TIntermTyped*&); + bool acceptCompoundStatement(TIntermNode*&); + bool acceptStatement(TIntermNode*&); + bool acceptScopedStatement(TIntermNode*&); + bool acceptScopedCompoundStatement(TIntermNode*&); + bool acceptNestedStatement(TIntermNode*&); + void acceptAttributes(TAttributeMap&); + bool acceptSelectionStatement(TIntermNode*&); + bool acceptSwitchStatement(TIntermNode*&); + bool acceptIterationStatement(TIntermNode*&); + bool acceptJumpStatement(TIntermNode*&); + bool acceptCaseLabel(TIntermNode*&); + bool acceptDefaultLabel(TIntermNode*&); + void acceptArraySpecifier(TArraySizes*&); + void acceptPostDecls(TQualifier&); + + HlslParseContext&_parseContext; // state of parsing and helper functions for building the intermediate + TIntermediate& intermediate; // the final product, the intermediate representation, includes the AST + }; + +} // end namespace glslang + +#endif // HLSLGRAMMAR_H_ diff --git a/deps/glslang-new/hlsl/hlslOpMap.cpp b/deps/glslang/glslang-old/hlsl/hlslOpMap.cpp similarity index 81% rename from deps/glslang-new/hlsl/hlslOpMap.cpp rename to deps/glslang/glslang-old/hlsl/hlslOpMap.cpp index ebe6fbd96c..524e66a2a2 100755 --- a/deps/glslang-new/hlsl/hlslOpMap.cpp +++ b/deps/glslang/glslang-old/hlsl/hlslOpMap.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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 @@ -99,7 +99,7 @@ TOperator HlslOpMap::preUnary(EHlslTokenClass op) case EHTokDash: return EOpNegative; case EHTokBang: return EOpLogicalNot; case EHTokTilde: return EOpBitwiseNot; - + case EHTokIncOp: return EOpPreIncrement; case EHTokDecOp: return EOpPreDecrement; @@ -114,12 +114,10 @@ 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 } } diff --git a/deps/glslang-new/hlsl/hlslOpMap.h b/deps/glslang/glslang-old/hlsl/hlslOpMap.h similarity index 56% rename from deps/glslang-new/hlsl/hlslOpMap.h rename to deps/glslang/glslang-old/hlsl/hlslOpMap.h index 4e783f3f0c..924637878c 100755 --- a/deps/glslang-new/hlsl/hlslOpMap.h +++ b/deps/glslang/glslang-old/hlsl/hlslOpMap.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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_ diff --git a/deps/glslang/glslang-old/hlsl/hlslParseHelper.cpp b/deps/glslang/glslang-old/hlsl/hlslParseHelper.cpp new file mode 100755 index 0000000000..0239f2c41e --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/hlslParseHelper.cpp @@ -0,0 +1,5789 @@ +// +//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. +// + +#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 + +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), + contextPragma(true, false), + loopNestingLevel(0), annotationNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), + postEntryPointReturn(false), + limits(resources.limits), + entryPointOutput(nullptr), + nextInLocation(0), nextOutLocation(0), + sourceEntryPointName(sourceEntryPointName) +{ + globalUniformDefaults.clear(); + globalUniformDefaults.layoutMatrix = ElmRowMajor; + globalUniformDefaults.layoutPacking = ElpStd140; + + globalBufferDefaults.clear(); + globalBufferDefaults.layoutMatrix = ElmRowMajor; + globalBufferDefaults.layoutPacking = ElpStd430; + + globalInputDefaults.clear(); + globalOutputDefaults.clear(); + + // "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) + return false; + + const TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + + if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad) + return true; + + return false; +} + +// +// Return a TLayoutFormat corresponding to the given texture type. +// +TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const TType& txType) +{ + const int components = txType.getVectorSize(); + + const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) -> TLayoutFormat { + if (intermediate.getNoStorageFormat()) + return ElfNone; + + return components == 1 ? v1 : + components == 2 ? v2 : v4; + }; + + switch (txType.getBasicType()) { + case EbtFloat: return selectFormat(ElfR32f, ElfRg32f, ElfRgba32f); + case EbtInt: return selectFormat(ElfR32i, ElfRg32i, ElfRgba32i); + case EbtUint: return selectFormat(ElfR32ui, ElfRg32ui, ElfRgba32ui); + default: + error(loc, "unknown basic type in image format", "", ""); + return ElfNone; + } +} + +// +// Both test and if necessary, spit out an error, to see if the node is really +// an l-value that can be operated on this way. +// +// Returns true if there was an error. +// +bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (shouldConvertLValue(node)) { + // if we're writing to a texture, it must be an RW form. + + TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + + if (!object->getType().getSampler().isImage()) { + error(loc, "operator[] on a non-RW texture must be an r-value", "", ""); + return true; + } + } + + // Let the base class check errors + return TParseContextBase::lValueErrorCheck(loc, op, node); +} + +// +// This function handles l-value conversions and verifications. It uses, but is not synonymous +// with lValueErrorCheck. That function accepts an l-value directly, while this one must be +// given the surrounding tree - e.g, with an assignment, so we can convert the assign into a +// series of other image operations. +// +// Most things are passed through unmodified, except for error checking. +// +TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (node == nullptr) + return nullptr; + + TIntermBinary* nodeAsBinary = node->getAsBinaryNode(); + TIntermUnary* nodeAsUnary = node->getAsUnaryNode(); + TIntermAggregate* sequence = nullptr; + + TIntermTyped* lhs = nodeAsUnary ? nodeAsUnary->getOperand() : + nodeAsBinary ? nodeAsBinary->getLeft() : + nullptr; + + // Early bail out if there is no conversion to apply + if (!shouldConvertLValue(lhs)) { + if (lhs != nullptr) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; + return node; + } + + // *** If we get here, we're going to apply some conversion to an l-value. + + // Helper to create a load. + const auto makeLoad = [&](TIntermSymbol* rhsTmp, TIntermTyped* object, TIntermTyped* coord, const TType& derefType) { + TIntermAggregate* loadOp = new TIntermAggregate(EOpImageLoad); + loadOp->setLoc(loc); + loadOp->getSequence().push_back(object); + loadOp->getSequence().push_back(intermediate.addSymbol(*coord->getAsSymbolNode())); + loadOp->setType(derefType); + + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(EOpAssign, rhsTmp, loadOp, loc), + loc); + }; + + // Helper to create a store. + const auto makeStore = [&](TIntermTyped* object, TIntermTyped* coord, TIntermSymbol* rhsTmp) { + TIntermAggregate* storeOp = new TIntermAggregate(EOpImageStore); + storeOp->getSequence().push_back(object); + storeOp->getSequence().push_back(coord); + storeOp->getSequence().push_back(intermediate.addSymbol(*rhsTmp)); + storeOp->setLoc(loc); + storeOp->setType(TType(EbtVoid)); + + sequence = intermediate.growAggregate(sequence, storeOp); + }; + + // Helper to create an assign. + const auto makeBinary = [&](TOperator op, TIntermTyped* lhs, TIntermTyped* rhs) { + sequence = intermediate.growAggregate(sequence, + intermediate.addBinaryNode(op, lhs, rhs, loc, lhs->getType()), + loc); + }; + + // Helper to complete sequence by adding trailing variable, so we evaluate to the right value. + const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) -> TIntermAggregate* { + // Add a trailing use of the temp, so the sequence returns the proper value. + sequence = intermediate.growAggregate(sequence, intermediate.addSymbol(*rhsTmp)); + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(derefType); + + return sequence; + }; + + // Helper to add unary op + const auto makeUnary = [&](TOperator op, TIntermSymbol* rhsTmp) { + sequence = intermediate.growAggregate(sequence, + intermediate.addUnaryNode(op, intermediate.addSymbol(*rhsTmp), loc, + rhsTmp->getType()), + loc); + }; + + // helper to create a temporary variable + const auto addTmpVar = [&](const char* name, const TType& derefType) -> TIntermSymbol* { + TVariable* tmpVar = makeInternalVariable(name, derefType); + tmpVar->getWritableType().getQualifier().makeTemporary(); + return intermediate.addSymbol(*tmpVar, loc); + }; + + TIntermAggregate* lhsAsAggregate = lhs->getAsAggregate(); + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* coord = lhsAsAggregate->getSequence()[1]->getAsTyped(); + + const TSampler& texSampler = object->getType().getSampler(); + + const TType objDerefType(texSampler.type, EvqTemporary, texSampler.vectorSize); + + if (nodeAsBinary) { + TIntermTyped* rhs = nodeAsBinary->getRight(); + const TOperator assignOp = nodeAsBinary->getOp(); + + bool isModifyOp = false; + + switch (assignOp) { + case EOpAddAssign: + case EOpSubAssign: + case EOpMulAssign: + case EOpVectorTimesMatrixAssign: + case EOpVectorTimesScalarAssign: + case EOpMatrixTimesScalarAssign: + case EOpMatrixTimesMatrixAssign: + case EOpDivAssign: + case EOpModAssign: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: + case EOpLeftShiftAssign: + case EOpRightShiftAssign: + isModifyOp = true; + // fall through... + case EOpAssign: + { + // Since this is an lvalue, we'll convert an image load to a sequence like this (to still provide the value): + // OpSequence + // OpImageStore(object, lhs, rhs) + // rhs + // But if it's not a simple symbol RHS (say, a fn call), we don't want to duplicate the RHS, so we'll convert + // instead to this: + // OpSequence + // rhsTmp = rhs + // OpImageStore(object, coord, rhsTmp) + // rhsTmp + // If this is a read-modify-write op, like +=, we issue: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op= rhs + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + + TIntermSymbol* rhsTmp = rhs->getAsSymbolNode(); + TIntermTyped* coordTmp = coord; + + if (rhsTmp == nullptr || isModifyOp) { + rhsTmp = addTmpVar("storeTemp", objDerefType); + + // Assign storeTemp = rhs + if (isModifyOp) { + // We have to make a temp var for the coordinate, to avoid evaluating it twice. + coordTmp = addTmpVar("coordTemp", coord->getType()); + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + } + + // rhsTmp op= rhs. + makeBinary(assignOp, intermediate.addSymbol(*rhsTmp), rhs); + } + + makeStore(object, coordTmp, rhsTmp); // add a store + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + default: + break; + } + } + + if (nodeAsUnary) { + const TOperator assignOp = nodeAsUnary->getOp(); + + switch (assignOp) { + case EOpPreIncrement: + case EOpPreDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + + TIntermSymbol* rhsTmp = addTmpVar("storeTemp", objDerefType); + TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); + + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + makeUnary(assignOp, rhsTmp); // op rhsTmp + makeStore(object, coordTmp, rhsTmp); // OpImageStore(object, coordTmp, rhsTmp) + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + case EOpPostIncrement: + case EOpPostDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp1 = OpImageLoad(object, coordTmp) + // rhsTmp2 = rhsTmp1 + // rhsTmp2 op + // OpImageStore(object, coordTmp, rhsTmp2) + // rhsTmp1 (pre-op value) + TIntermSymbol* rhsTmp1 = addTmpVar("storeTempPre", objDerefType); + TIntermSymbol* rhsTmp2 = addTmpVar("storeTempPost", objDerefType); + TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); + + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp1, object, coordTmp, objDerefType); // rhsTmp1 = OpImageLoad(object, coordTmp) + makeBinary(EOpAssign, rhsTmp2, rhsTmp1); // rhsTmp2 = rhsTmp1 + makeUnary(assignOp, rhsTmp2); // rhsTmp op + makeStore(object, coordTmp, rhsTmp2); // OpImageStore(object, coordTmp, rhsTmp2) + return finishSequence(rhsTmp1, objDerefType); // return rhsTmp from sequence + } + + default: + break; + } + } + + if (lhs) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; + + return node; +} + +void HlslParseContext::handlePragma(const TSourceLoc& loc, const TVector& tokens) +{ + if (pragmaCallback) + pragmaCallback(loc.line, tokens); + + if (tokens.size() == 0) + return; +} + +// +// Look at a '.' field selector string and change it into offsets +// for a vector or scalar +// +// Returns true if there is no error. +// +bool HlslParseContext::parseVectorFields(const TSourceLoc& loc, const TString& compString, int vecSize, TVectorFields& fields) +{ + fields.num = (int)compString.size(); + if (fields.num > 4) { + error(loc, "illegal vector field selection", compString.c_str(), ""); + return false; + } + + enum { + exyzw, + ergba, + estpq, + } fieldSet[4]; + + for (int i = 0; i < fields.num; ++i) { + switch (compString[i]) { + case 'x': + fields.offsets[i] = 0; + fieldSet[i] = exyzw; + break; + case 'r': + fields.offsets[i] = 0; + fieldSet[i] = ergba; + break; + case 's': + fields.offsets[i] = 0; + fieldSet[i] = estpq; + break; + case 'y': + fields.offsets[i] = 1; + fieldSet[i] = exyzw; + break; + case 'g': + fields.offsets[i] = 1; + fieldSet[i] = ergba; + break; + case 't': + fields.offsets[i] = 1; + fieldSet[i] = estpq; + break; + case 'z': + fields.offsets[i] = 2; + fieldSet[i] = exyzw; + break; + case 'b': + fields.offsets[i] = 2; + fieldSet[i] = ergba; + break; + case 'p': + fields.offsets[i] = 2; + fieldSet[i] = estpq; + break; + + case 'w': + fields.offsets[i] = 3; + fieldSet[i] = exyzw; + break; + case 'a': + fields.offsets[i] = 3; + fieldSet[i] = ergba; + break; + case 'q': + fields.offsets[i] = 3; + fieldSet[i] = estpq; + break; + default: + error(loc, "illegal vector field selection", compString.c_str(), ""); + return false; + } + } + + for (int i = 0; i < fields.num; ++i) { + if (fields.offsets[i] >= vecSize) { + error(loc, "vector field selection out of range", compString.c_str(), ""); + return false; + } + + if (i > 0) { + if (fieldSet[i] != fieldSet[i - 1]) { + error(loc, "illegal - vector component fields not from the same set", compString.c_str(), ""); + return false; + } + } + } + + return true; +} + +// +// Handle seeing a variable identifier in the grammar. +// +TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symbol, const TString* string) +{ + if (symbol == nullptr) + symbol = symbolTable.find(*string); + if (symbol && symbol->getAsVariable() && symbol->getAsVariable()->isUserType()) { + error(loc, "expected symbol, not user-defined type", string->c_str(), ""); + return nullptr; + } + + // Error check for requiring specific extensions present. + if (symbol && symbol->getNumExtensions()) + requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); + + const TVariable* variable; + const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : nullptr; + TIntermTyped* node = nullptr; + if (anon) { + // It was a member of an anonymous container. + + // Create a subtree for its dereference. + 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) + 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()) { + TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch); + + load->setType(TType(sampler.type, EvqTemporary, sampler.vectorSize)); + load->setLoc(loc); + load->getSequence().push_back(base); + load->getSequence().push_back(index); + + // Textures need a MIP. First indirection is always to mip 0. If there's another, we'll add it + // later. + if (sampler.isTexture()) + load->getSequence().push_back(intermediate.addConstantUnion(0, loc, true)); + + return load; + } + } + + return nullptr; +} + +// +// Handle seeing a base[index] dereference in the grammar. +// +TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) +{ + TIntermTyped* result = handleBracketOperator(loc, base, index); + + if (result != nullptr) + return result; // it was handled as an operator[] + + bool flattened = false; + int indexValue = 0; + if (index->getQualifier().storage == EvqConst) { + indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); + checkIndex(loc, base->getType(), indexValue); + } + + 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) + return intermediate.foldDereference(base, indexValue, loc); + else { + // at least one of base and index is variable... + + if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) { + if (index->getQualifier().storage != EvqConst) + error(loc, "Invalid variable index to flattened uniform array", base->getAsSymbolNode()->getName().c_str(), ""); + + result = flattenAccess(loc, base, indexValue); + flattened = (result != base); + } else { + if (index->getQualifier().storage == EvqConst) { + if (base->getType().isImplicitlySizedArray()) + updateImplicitArraySize(loc, base, indexValue); + result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + } else { + result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); + } + } + } + + 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; +} + +void HlslParseContext::checkIndex(const TSourceLoc& /*loc*/, const TType& /*type*/, int& /*index*/) +{ + // HLSL todo: any rules for index fixups? +} + +// 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) + 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; +} + +// +// Handle seeing a base.field dereference in the grammar. +// +TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TIntermTyped* base, const TString& field) +{ + variableCheck(base); + + // + // methods can't be resolved until we later see the function-calling syntax. + // Save away the name in the AST for now. Processing is completed in + // handleLengthMethod(), etc. + // + if (field == "length") { + return intermediate.addMethod(base, TType(EbtInt), &field, loc); + } else if (field == "CalculateLevelOfDetail" || + field == "CalculateLevelOfDetailUnclamped" || + field == "Gather" || + field == "GatherRed" || + field == "GatherGreen" || + field == "GatherBlue" || + field == "GatherAlpha" || + field == "GatherCmp" || + field == "GatherCmpRed" || + field == "GatherCmpGreen" || + field == "GatherCmpBlue" || + field == "GatherCmpAlpha" || + field == "GetDimensions" || + field == "GetSamplePosition" || + field == "Load" || + field == "Sample" || + field == "SampleBias" || + field == "SampleCmp" || + field == "SampleCmpLevelZero" || + field == "SampleGrad" || + field == "SampleLevel") { + // If it's not a method on a sampler object, we fall through in case it is a struct member. + if (base->getType().getBasicType() == EbtSampler) { + const TSampler& sampler = base->getType().getSampler(); + if (! sampler.isPureSampler()) { + const int vecSize = sampler.isShadow() ? 1 : 4; // TODO: handle arbitrary sample return sizes + return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc); + } + } + } else if (field == "Append" || + field == "RestartStrip") { + // These methods only valid on stage in variables + // TODO: ... which are stream out types, if there's any way to test that here. + if (base->getType().getQualifier().storage == EvqVaryingOut) { + return intermediate.addMethod(base, TType(EbtVoid), &field, loc); + } + } + + // It's not .length() if we get to here. + + if (base->isArray()) { + error(loc, "cannot apply to an array:", ".", field.c_str()); + + return base; + } + + // It's neither an array nor .length() if we get here, + // leaving swizzles and struct/block dereferences. + + TIntermTyped* result = base; + if (base->isVector() || base->isScalar()) { + TVectorFields fields; + if (! parseVectorFields(loc, field, base->getVectorSize(), fields)) { + fields.num = 1; + fields.offsets[0] = 0; + } + + if (base->isScalar()) { + if (fields.num == 1) + return result; + else { + TType type(base->getBasicType(), EvqTemporary, fields.num); + return addConstructor(loc, base, type); + } + } + if (base->getVectorSize() == 1) { + TType scalarType(base->getBasicType(), EvqTemporary, 1); + if (fields.num == 1) + return addConstructor(loc, base, scalarType); + else { + TType vectorType(base->getBasicType(), EvqTemporary, fields.num); + return addConstructor(loc, addConstructor(loc, base, scalarType), vectorType); + } + } + + if (base->getType().getQualifier().isFrontEndConstant()) + result = intermediate.foldSwizzle(base, fields, loc); + else { + if (fields.num == 1) { + TIntermTyped* index = intermediate.addConstantUnion(fields.offsets[0], loc); + result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + result->setType(TType(base->getBasicType(), EvqTemporary)); + } else { + TString vectorString = field; + TIntermTyped* index = intermediate.addSwizzle(fields, loc); + result = intermediate.addIndex(EOpVectorSwizzle, base, index, loc); + result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, (int)vectorString.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) || shouldFlatten(base->getType()))) + result = flattenAccess(loc, 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; +} + +// Determine whether we should flatten an arbitrary type. +bool HlslParseContext::shouldFlatten(const TType& type) const +{ + return shouldFlattenIO(type) || shouldFlattenUniform(type); +} + +// Is this an IO variable that can't be passed down the stack? +// E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. +bool HlslParseContext::shouldFlattenIO(const TType& type) const +{ + if (! inEntryPoint) + return false; + + const TStorageQualifier qualifier = type.getQualifier().storage; + + return type.isStruct() && + (qualifier == EvqVaryingIn || + qualifier == EvqVaryingOut); +} + +// Is this a uniform array which should be flattened? +bool HlslParseContext::shouldFlattenUniform(const TType& type) const +{ + const TStorageQualifier qualifier = type.getQualifier().storage; + + return ((type.isArray() && intermediate.getFlattenUniformArrays()) || type.isStruct()) && + qualifier == EvqUniform && + type.containsOpaque(); +} + +// Top level variable flattening: construct data +void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) +{ + const TType& type = variable.getType(); + + // emplace gives back a pair whose .first is an iterator to the item... + auto entry = flattenMap.emplace(std::pair(variable.getUniqueId(), + TFlattenData(type.getQualifier().layoutBinding))); + + // ... and the item is a map pair, so first->second is the TFlattenData itself. + flatten(loc, variable, type, entry.first->second, ""); +} + +// Recursively flatten the given variable at the provided type, building the flattenData as we go. +// +// This is mutually recursive with flattenStruct and flattenArray. +// We are going to flatten an arbitrarily nested composite structure into a linear sequence of +// members, and later on, we want to turn a path through the tree structure into a final +// location in this linear sequence. +// +// If the tree was N-ary, that can be directly calculated. However, we are dealing with +// arbitrary numbers - peraps a struct of 7 members containing an array of 3. Thus, we must +// build a data structure to allow the sequence of bracket and dot operators on arrays and +// structs to arrive at the proper member. +// +// To avoid storing a tree with pointers, we are going to flatten the tree into a vector of integers. +// The leaves are the indexes into the flattened member array. +// Each level will have the next location for the Nth item stored sequentially, so for instance: +// +// struct { float2 a[2]; int b; float4 c[3] }; +// +// This will produce the following flattened tree: +// Pos: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 +// (3, 7, 8, 5, 6, 0, 1, 2, 11, 12, 13, 3, 4, 5} +// +// Given a reference to mystruct.c[1], the access chain is (2,1), so we traverse: +// (0+2) = 8 --> (8+1) = 12 --> 12 = 4 +// +// so the 4th flattened member in traversal order is ours. +// +int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name) +{ + // TODO: when struct splitting is in place we can remove this restriction. + if (language == EShLangGeometry) { + const TType derefType(type, 0); + if (!isFinalFlattening(derefType) && type.getQualifier().storage == EvqVaryingIn) + error(loc, "recursive type not yet supported in GS input", variable.getName().c_str(), ""); + } + + // If something is an arrayed struct, the array flattener will recursively call flatten() + // to then flatten the struct, so this is an "if else": we don't do both. + if (type.isArray()) + return flattenArray(loc, variable, type, flattenData, name); + else if (type.isStruct()) + return flattenStruct(loc, variable, type, flattenData, name); + else { + assert(0); // should never happen + return -1; + } +} + +// Add a single flattened member to the flattened data being tracked for the composite +// Returns true for the final flattening level. +int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, + const TVariable& variable, const TType& type, TFlattenData& flattenData, + const TString& memberName, bool track) +{ + if (isFinalFlattening(type)) { + // This is as far as we flatten. Insert the variable. + TVariable* memberVariable = makeInternalVariable(memberName.c_str(), type); + mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); + + if (flattenData.nextBinding != TQualifier::layoutBindingEnd) + memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++; + + flattenData.offsets.push_back(flattenData.members.size()); + flattenData.members.push_back(memberVariable); + + if (track) + trackLinkageDeferred(*memberVariable); + + return flattenData.offsets.size()-1; // location of the member reference + } else { + // Further recursion required + return flatten(loc, variable, type, flattenData, memberName); + } +} + +// Figure out the mapping between an aggregate's top members and an +// equivalent set of individual variables. +// +// N.B. Erases memory of I/O-related annotations in the original type's member, +// effecting a transfer of this information to the flattened variable form. +// +// Assumes shouldFlatten() or equivalent was called first. +int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name) +{ + assert(type.isStruct()); + + auto members = *type.getStruct(); + + // Reserve space for this tree level. + int start = 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; + const TString memberName = name + (name.empty() ? "" : ".") + dereferencedType.getFieldName(); + + const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, memberName, false); + flattenData.offsets[pos++] = mpos; + + // N.B. Erase I/O-related annotations from the source-type member. + dereferencedType.getQualifier().makeTemporary(); + } + + 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 TSourceLoc& loc, const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name) +{ + assert(type.isArray()); + + if (type.isImplicitlySizedArray()) + error(loc, "cannot flatten implicitly sized array", variable.getName().c_str(), ""); + + const int size = type.getOuterArraySize(); + const TType dereferencedType(type, 0); + + if (name.empty()) + name = variable.getName(); + + // Reserve space for this tree level. + int start = flattenData.offsets.size(); + int pos = start; + flattenData.offsets.resize(int(pos + size), -1); + + for (int element=0; element < size; ++element) { + char elementNumBuf[20]; // sufficient for MAXINT + snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element); + const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, + name + elementNumBuf, true); + + flattenData.offsets[pos++] = mpos; + } + + return start; +} + +// Return true if we have flattened this node. +bool HlslParseContext::wasFlattened(const TIntermTyped* node) const +{ + return node != nullptr && + node->getAsSymbolNode() != nullptr && + wasFlattened(node->getAsSymbolNode()->getId()); +} + + +// Turn an access into an aggregate that was flattened to instead be +// an access to the individual variable the member was flattened to. +// Assumes shouldFlatten() or equivalent was called first. +TIntermTyped* HlslParseContext::flattenAccess(const TSourceLoc&, TIntermTyped* base, int member) +{ + const TType dereferencedType(base->getType(), member); // dereferenced type + + const TIntermSymbol& symbolNode = *base->getAsSymbolNode(); + + const auto flattenData = flattenMap.find(symbolNode.getId()); + + if (flattenData == flattenMap.end()) + return base; + + // Calculate new cumulative offset from the packed tree + flattenOffset.back() = flattenData->second.offsets[flattenOffset.back() + member]; + + if (isFinalFlattening(dereferencedType)) { + // Finished flattening: create symbol for variable + member = flattenData->second.offsets[flattenOffset.back()]; + const TVariable* memberVariable = flattenData->second.members[member]; + return intermediate.addSymbol(*memberVariable); + } else { + // If this is not the final flattening, accumulate the position and return + // an object of the partially dereferenced type. + return new TIntermSymbol(symbolNode.getId(), "flattenShadow", dereferencedType); + } +} + +// Variables that correspond to the user-interface in and out of a stage +// (not the built-in interface) are assigned locations and +// 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::assignLocations(TVariable& variable) +{ + const auto assignLocation = [&](TVariable& variable) { + const TQualifier& qualifier = variable.getType().getQualifier(); + if (qualifier.storage == EvqVaryingIn || qualifier.storage == EvqVaryingOut) { + if (qualifier.builtIn == EbvNone) { + if (qualifier.storage == EvqVaryingIn) { + variable.getWritableType().getQualifier().layoutLocation = nextInLocation; + nextInLocation += intermediate.computeTypeLocationSize(variable.getType()); + } else { + variable.getWritableType().getQualifier().layoutLocation = nextOutLocation; + nextOutLocation += intermediate.computeTypeLocationSize(variable.getType()); + } + } + trackLinkage(variable); + } + }; + + if (wasFlattened(variable.getUniqueId())) { + auto& memberList = flattenMap[variable.getUniqueId()].members; + for (auto member = memberList.begin(); member != memberList.end(); ++member) + assignLocation(**member); + } else + assignLocation(variable); +} + +// +// Handle seeing a function declarator in the grammar. This is the precursor +// to recognizing a function prototype or function definition. +// +TFunction& 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(), ""); + + // + // If this is a redeclaration, it could also be a definition, + // in which case, we need to use the parameter names from this one, and not the one that's + // being redeclared. So, pass back this declaration, not the one in the symbol table. + // + return function; +} + +// +// Handle seeing the function prototype in front of a function definition in the grammar. +// The body is handled after this function returns. +// +TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function, + const TAttributeMap& attributes) +{ + currentCaller = function.getMangledName(); + TSymbol* symbol = symbolTable.find(function.getMangledName()); + TFunction* prevDec = symbol ? symbol->getAsFunction() : nullptr; + + if (! prevDec) + 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; + + inEntryPoint = function.getName().compare(intermediate.getEntryPointName().c_str()) == 0; + if (inEntryPoint) { + intermediate.setEntryPointMangledName(function.getMangledName().c_str()); + intermediate.incrementEntryPointCount(); + remapEntryPointIO(function); + if (entryPointOutput) { + if (shouldFlatten(entryPointOutput->getType())) + flatten(loc, *entryPointOutput); + assignLocations(*entryPointOutput); + } + } else + remapNonEntryPointIO(function); + + // Insert the $Global constant buffer. + // TODO: this design fails if new members are declared between function definitions. + if (! insertGlobalUniformBlock()) + error(loc, "failed to insert the global constant buffer", "uniform", ""); + + // + // New symbol table scope for body of function plus its arguments + // + 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); + + // Insert the parameters with name in the symbol table. + if (! symbolTable.insert(*variable)) + error(loc, "redefinition", variable->getName().c_str(), ""); + else { + // get IO straightened out + if (inEntryPoint) { + if (shouldFlatten(*param.type)) + flatten(loc, *variable); + assignLocations(*variable); + } + + // Transfer ownership of name pointer to symbol table. + param.name = nullptr; + + // Add the parameter to the AST + paramNodes = intermediate.growAggregate(paramNodes, + intermediate.addSymbol(*variable, loc), + loc); + } + } else + paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*param.type, loc), loc); + } + intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc); + loopNestingLevel = 0; + controlFlowNestingLevel = 0; + postEntryPointReturn = false; + + // Handle function attributes + if (inEntryPoint) { + const TIntermAggregate* numThreads = attributes[EatNumThreads]; + if (numThreads != nullptr) { + const TIntermSequence& sequence = numThreads->getSequence(); + + for (int lid = 0; lid < int(sequence.size()); ++lid) + intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); + } + + const TIntermAggregate* maxVertexCount = attributes[EatMaxVertexCount]; + if (maxVertexCount != nullptr) { + intermediate.setVertices(maxVertexCount->getSequence()[0]->getAsConstantUnion()->getConstArray()[0].getIConst()); + } + } + + return paramNodes; +} + +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.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) +{ + // Will auto-assign locations here to the inputs/outputs defined by the entry point + + const auto remapType = [&](TType& type) { + const auto remapBuiltInType = [&](TType& type) { + switch (type.getQualifier().builtIn) { + case EbvFragDepthGreater: + intermediate.setDepth(EldGreater); + type.getQualifier().builtIn = EbvFragDepth; + break; + case EbvFragDepthLesser: + intermediate.setDepth(EldLess); + type.getQualifier().builtIn = EbvFragDepth; + break; + default: + break; + } + }; + remapBuiltInType(type); + if (type.isStruct()) { + auto members = *type.getStruct(); + for (auto member = members.begin(); member != members.end(); ++member) + remapBuiltInType(*member->type); + } + }; + + // return value is actually a shader-scoped output (out) + if (function.getType().getBasicType() != EbtVoid) { + entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); + entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; + remapType(function.getWritableType()); + } + + // parameters are actually shader-scoped inputs and outputs (in or out) + for (int i = 0; i < function.getParamCount(); i++) { + TType& paramType = *function[i].type; + paramType.getQualifier().storage = paramType.getQualifier().isParamInput() ? EvqVaryingIn : EvqVaryingOut; + remapType(paramType); + } +} + +// 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) +{ + const auto remapBuiltInType = [&](TType& type) { type.getQualifier().builtIn = EbvNone; }; + + // return value + if (function.getType().getBasicType() != EbtVoid) + remapBuiltInType(function.getWritableType()); + + // parameters + for (int i = 0; i < function.getParamCount(); i++) + remapBuiltInType(*function[i].type); +} + +// 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.addShapeConversion(EOpReturn, *currentFunctionType, value); + if (value == nullptr) { + error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); + return value; + } + } + + // The entry point needs to send any return value to the entry-point output instead. + // So, a subtree is built up, as a two-part sequence, with the first part being an + // assignment subtree, and the second part being a return with no value. + // + // Otherwise, for a non entry point, just return a return statement. + if (inEntryPoint) { + assert(entryPointOutput != nullptr); // should have been error tested at the beginning + TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), + entryPointOutput->getType()); + TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, value); + returnSequence = intermediate.makeAggregate(returnSequence); + returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc), loc); + returnSequence->getAsAggregate()->setOperator(EOpSequence); + + return returnSequence; + } else + return intermediate.addBranch(EOpReturn, value, loc); +} + +void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped*& arguments, TIntermTyped* newArg) +{ + TParameter param = { 0, new TType }; + param.type->shallowCopy(newArg->getType()); + function->addParameter(param); + if (arguments) + arguments = intermediate.growAggregate(arguments, newArg); + else + arguments = newArg; +} + +// Some simple source assignments need to be flattened to a sequence +// of AST assignments. Catch these and flatten, otherwise, pass through +// to intermediate.addAssign(). +TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) const +{ + if (left == nullptr || right == nullptr) + return nullptr; + + const auto mustFlatten = [&](const TIntermTyped& node) { + return wasFlattened(&node) && node.getAsSymbolNode() && + flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end(); + }; + + const bool flattenLeft = mustFlatten(*left); + const bool flattenRight = mustFlatten(*right); + if (! flattenLeft && ! flattenRight) + return intermediate.addAssign(op, left, right, loc); + + TIntermAggregate* assignList = nullptr; + const TVector* 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; + + // Array structs are not yet handled in flattening. (Compilation error upstream, so + // this should never fire). + assert(!(left->getType().isStruct() && left->getType().isArray())); + + int memberCount = 0; + + // Track how many items there are to copy. + if (left->getType().isStruct()) + memberCount = (int)left->getType().getStruct()->size(); + if (left->getType().isArray()) + memberCount = left->getType().getCumulativeArraySize(); + + if (flattenLeft) + leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second.members; + + if (flattenRight) { + rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second.members; + } else { + // The RHS is not flattened. There are several cases: + // 1. 1 item to copy: Use the RHS directly. + // 2. >1 item, simple symbol RHS: we'll create a new TIntermSymbol node for each, but no assign to temp. + // 3. >1 item, complex RHS: assign it to a new temp variable, and create a TIntermSymbol for each member. + + if (memberCount <= 1) { + // case 1: we'll use the symbol directly below. Nothing to do. + } else { + if (right->getAsSymbolNode() != nullptr) { + // case 2: we'll copy the symbol per iteration below. + cloneSymNode = right->getAsSymbolNode(); + } else { + // case 3: assign to a temp, and indirect into that. + rhsTempVar = makeInternalVariable("flattenTemp", right->getType()); + rhsTempVar->getWritableType().getQualifier().makeTemporary(); + TIntermTyped* noFlattenRHS = intermediate.addSymbol(*rhsTempVar, loc); + + // Add this to the aggregate being built. + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, noFlattenRHS, right, loc), loc); + } + } + } + + int memberIdx = 0; + + const auto getMember = [&](bool flatten, TIntermTyped* node, + const TVector& memberVariables, int member, + TOperator op, const TType& memberType) -> TIntermTyped * { + TIntermTyped* subTree; + if (flatten && isFinalFlattening(memberType)) { + subTree = intermediate.addSymbol(*memberVariables[memberIdx++]); + } else { + subTree = intermediate.addIndex(op, node, intermediate.addConstantUnion(member, loc), loc); + subTree->setType(memberType); + } + + return subTree; + }; + + // 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) -> void { + // If we get here, we are assigning to or from a whole array or struct that must be + // flattened, so have to do member-by-member assignment: + + if (left->getType().isArray()) { + // array case + const TType dereferencedType(left->getType(), 0); + + for (int element=0; element < left->getType().getOuterArraySize(); ++element) { + // Add a new AST symbol node if we have a temp variable holding a complex RHS. + TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, element, + EOpIndexDirect, dereferencedType); + TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element, + EOpIndexDirect, dereferencedType); + + if (isFinalFlattening(dereferencedType)) + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); + else + traverse(subLeft, subRight); + } + } else if (left->getType().isStruct()) { + // struct case + const auto& members = *left->getType().getStruct(); + + for (int member = 0; member < (int)members.size(); ++member) { + TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member, + EOpIndexDirectStruct, *members[member].type); + TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member, + EOpIndexDirectStruct, *members[member].type); + + if (isFinalFlattening(*members[member].type)) + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); + else + traverse(subLeft, subRight); + } + } else { + assert(0); // we should never be called on a non-flattenable thing, because + // that case bails out above to a simple copy. + } + + }; + + // Use the proper RHS node: a new symbol from a TVariable, copy + // of an TIntermSymbol node, or sometimes the right node directly. + right = rhsTempVar ? intermediate.addSymbol(*rhsTempVar, loc) : + cloneSymNode ? intermediate.addSymbol(*cloneSymNode) : + right; + + // This makes the whole assignment, recursing through subtypes as needed. + traverse(left, right); + + assert(assignList != nullptr); + assignList->setOperator(EOpSequence); + + return assignList; +} + +// +// 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; + samplerType.shadow = argSampler->getType().getSampler().shadow; + + txcombine->setType(TType(samplerType, EvqTemporary)); + txcombine->setLoc(loc); + + return txcombine; +} + +// +// Decompose DX9 and DX10 sample intrinsics & object methods into AST +// +void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (!node || !node->getAsOperator()) + return; + + const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) -> TIntermTyped* { + // Sampler return must always be a vec4, but we can construct a shorter vector + result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize())); + + if (sampler.vectorSize < (unsigned)node->getVectorSize()) { + // Too many components. Construct shorter vector from it. + const TType clampedType(result->getType().getBasicType(), EvqTemporary, sampler.vectorSize); + + const TOperator op = intermediate.mapTypeToConstructorOp(clampedType); + + result = constructBuiltIn(clampedType, op, result, loc, false); + } + + result->setLoc(loc); + return result; + }; + + const TOperator op = node->getAsOperator()->getOp(); + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + + 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 = clampReturn(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 = clampReturn(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 = clampReturn(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 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) + default: + assert(0 && "unhandled texture dimension"); + } + + // Arrayed adds another dimension for the number of array elements + if (sampler.isArrayed()) + ++numDims; + + // Establish whether we're querying mip levels + const bool mipQuery = (numArgs > (numDims + 1)) && (!sampler.isMultiSample()); + + // 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 querying an explicit LOD, add the LOD, which is always arg #1 + if (mipQuery) { + TIntermTyped* queryLod = argAggregate->getSequence()[1]->getAsTyped(); + 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; + + // 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 + TVectorFields coordFields(0,1,2,3); + coordFields.num = argCoord->getType().getVectorSize() - (isMS ? 0 : 1); + TIntermTyped* coordIdx = intermediate.addSwizzle(coordFields, loc); + coordSwizzle = intermediate.addIndex(EOpVectorSwizzle, argCoord, coordIdx, loc); + coordSwizzle->setType(TType(coordBaseType, EvqTemporary, coordFields.num)); + + // Extract LOD + TIntermTyped* lodIdx = intermediate.addConstantUnion(coordFields.num, 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 = clampReturn(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 = clampReturn(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. + if (cmpValues) { + 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; + + // 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; + arraySizes.addInnerSize(4); + arrayType.newArraySizes(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 (argTex->getType().getSampler().isShadow()) + 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); + + 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: + { + error(loc, "unimplemented: GetSamplePosition", "", ""); + break; + } + + default: + break; // most pass through unchanged + } +} + +// +// Decompose geometry shader methods +// +void HlslParseContext::decomposeGeometryMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (!node || !node->getAsOperator()) + return; + + const TOperator op = node->getAsOperator()->getOp(); + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + + switch (op) { + case EOpMethodAppend: + if (argAggregate) { + TIntermAggregate* sequence = nullptr; + TIntermAggregate* emit = new TIntermAggregate(EOpEmitVertex); + + emit->setLoc(loc); + emit->setType(TType(EbtVoid)); + + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(EOpAssign, + argAggregate->getSequence()[0]->getAsTyped(), + argAggregate->getSequence()[1]->getAsTyped(), loc), + loc); + + sequence = intermediate.growAggregate(sequence, emit); + + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(TType(EbtVoid)); + node = sequence; + } + break; + + case EOpMethodRestartStrip: + { + TIntermAggregate* cut = new TIntermAggregate(EOpEndPrimitive); + cut->setLoc(loc); + cut->setType(TType(EbtVoid)); + node = cut; + } + break; + + default: + break; // most pass through unchanged + } +} + +// +// Optionally decompose intrinsics to AST opcodes. +// +void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + // Helper to find image data for image atomics: + // OpImageLoad(image[idx]) + // We take the image load apart and add its params to the atomic op aggregate node + const auto imageAtomicParams = [this, &loc, &node](TIntermAggregate* atomic, TIntermTyped* load) { + TIntermAggregate* loadOp = load->getAsAggregate(); + if (loadOp == nullptr) { + error(loc, "unknown image type in atomic operation", "", ""); + node = nullptr; + return; + } + + atomic->getSequence().push_back(loadOp->getSequence()[0]); + atomic->getSequence().push_back(loadOp->getSequence()[1]); + }; + + // Return true if this is an imageLoad, which we will change to an image atomic. + const auto isImageParam = [](TIntermTyped* image) -> bool { + TIntermAggregate* imageAggregate = image->getAsAggregate(); + return imageAggregate != nullptr && imageAggregate->getOp() == EOpImageLoad; + }; + + // HLSL intrinsics can be pass through to native AST opcodes, or decomposed here to existing AST + // opcodes for compatibility with existing software stacks. + static const bool decomposeHlslIntrinsics = true; + + 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 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; + zero.setDConst(0.0); + TConstUnionArray zeros(constComponentCount, zero); + + less->getSequence().push_back(intermediate.addConstantUnion(zeros, arg0->getType(), loc, true)); + + compareNode = intermediate.addBuiltInFunctionCall(loc, EOpAny, true, less, TType(EbtBool)); + } else { + TIntermTyped* zero = intermediate.addConstantUnion(0, type0, loc, true); + compareNode = handleBinaryMath(loc, "clip", EOpLessThan, arg0, zero); + } + + TIntermBranch* killNode = intermediate.addBranch(EOpKill, loc); + + node = new TIntermSelection(compareNode, killNode, nullptr); + node->setLoc(loc); + + break; + } + + case EOpLog10: + { + // log10(a) -> log2(a) * 0.301029995663981 (== 1/log2(10)) + TIntermTyped* arg0 = fnUnary->getOperand(); + TIntermTyped* log2 = handleUnaryMath(loc, "log2", EOpLog2, arg0); + TIntermTyped* base = intermediate.addConstantUnion(0.301029995663981f, EbtFloat, loc, true); + + node = handleBinaryMath(loc, "mul", EOpMul, log2, base); + + break; + } + + case EOpDst: + { + // dest.x = 1; + // dest.y = src0.y * src1.y; + // dest.z = src0.z; + // dest.w = src1.w; + + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + + 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); + } + } + + 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: + case EOpF32tof16: + { + // Temporary until decomposition is available. + error(loc, "unimplemented intrinsic: handle natively", "f32tof16", ""); + 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, TIntermNode* arguments) +{ + TIntermTyped* result = nullptr; + + TOperator op = function->getBuiltInOp(); + if (op == EOpArrayLength) + result = handleLengthMethod(loc, function, arguments); + else 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 = addConstructor(loc, arguments, type); + if (result == nullptr) + error(loc, "cannot construct with these arguments", type.getCompleteString().c_str(), ""); + } + } else { + // + // Find it in the symbol table. + // + const TFunction* fnCandidate; + bool builtIn; + fnCandidate = findFunction(loc, *function, builtIn, 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()); + + // Convert 'in' arguments + if (arguments) + addInputArgumentConversions(*fnCandidate, arguments); + + 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(fnCandidate->getMangledName()); + + // 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, fnCandidate->getMangledName()); + } + } + + // for decompositions, since we want to operate on the function node, not the aggregate holding + // output conversions. + const TIntermTyped* fnNode = result; + + decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions + decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions + decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions + + // Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore. + // Built-ins with a single argument aren't called with an aggregate, but they also don't have an output. + // Also, build the qualifier list for user function calls, which are always called with an aggregate. + // We don't do this is if there has been a decomposition, which will have added its own conversions + // for output parameters. + if (result == fnNode && result->getAsAggregate()) { + TQualifierList& qualifierList = result->getAsAggregate()->getQualifierList(); + for (int i = 0; i < fnCandidate->getParamCount(); ++i) { + TStorageQualifier qual = (*fnCandidate)[i].type->getQualifier().storage; + qualifierList.push_back(qual); + } + result = addOutputArgumentConversions(*fnCandidate, *result->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; +} + +// Finish processing object.length(). This started earlier in handleDotDereference(), where +// the ".length" part was recognized and semantically checked, and finished here where the +// function syntax "()" is recognized. +// +// Return resulting tree node. +TIntermTyped* HlslParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction* function, TIntermNode* intermNode) +{ + int length = 0; + + if (function->getParamCount() > 0) + error(loc, "method does not accept any arguments", function->getName().c_str(), ""); + else { + const TType& type = intermNode->getAsTyped()->getType(); + if (type.isArray()) { + if (type.isRuntimeSizedArray()) { + // Create a unary op and let the back end handle it + return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); + } else + length = type.getOuterArraySize(); + } else if (type.isMatrix()) + length = type.getMatrixCols(); + else if (type.isVector()) + length = type.getVectorSize(); + else { + // we should not get here, because earlier semantic checking should have prevented this path + error(loc, ".length()", "unexpected use of .length()", ""); + } + } + + if (length == 0) + length = 1; + + return intermediate.addConstantUnion(length, loc); +} + +// +// Add any needed implicit conversions for function-call arguments to input parameters. +// +void HlslParseContext::addInputArgumentConversions(const TFunction& function, TIntermNode*& arguments) const +{ + TIntermAggregate* aggregate = arguments->getAsAggregate(); + const auto setArg = [&](int argNum, TIntermNode* arg) { + if (function.getParamCount() == 1) + arguments = arg; + else { + if (aggregate) + aggregate->getSequence()[argNum] = arg; + else + arguments = arg; + } + }; + + // Process each argument's conversion + for (int i = 0; i < function.getParamCount(); ++i) { + if (! function[i].type->getQualifier().isParamInput()) + continue; + + // At this early point there is a slight ambiguity between whether an aggregate 'arguments' + // is the single argument itself or its children are the arguments. Only one argument + // means take 'arguments' itself as the one argument. + TIntermTyped* arg = function.getParamCount() == 1 + ? arguments->getAsTyped() + : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); + if (*function[i].type != arg->getType()) { + // In-qualified arguments just need an extra node added above the argument to + // convert to the correct type. + arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); + arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg); + setArg(i, arg); + } else { + if (wasFlattened(arg)) { + // Will make a two-level subtree. + // The deepest will copy member-by-member to build the structure to pass. + // The level above that will be a two-operand EOpComma sequence that follows the copy by the + // object itself. + TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); + internalAggregate->getWritableType().getQualifier().makeTemporary(); + TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), + internalAggregate->getName(), + internalAggregate->getType()); + internalSymbolNode->setLoc(arg->getLoc()); + // This makes the deepest level, the member-wise copy + TIntermAggregate* assignAgg = handleAssign(arg->getLoc(), EOpAssign, internalSymbolNode, arg)->getAsAggregate(); + + // Now, pair that with the resulting aggregate. + assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode, arg->getLoc()); + assignAgg->setOperator(EOpComma); + assignAgg->setType(internalAggregate->getType()); + setArg(i, assignAgg); + } + } + } +} + +// +// 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; +} + +// +// 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()) + 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 a built-in constructor in a grammar production. +// +TFunction* HlslParseContext::handleConstructorCall(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, const TString& semantic) +{ + // TODO: need to know if it's an input or an output + // The following sketches what needs to be done, but can't be right + // without taking into account stage and input/output. + + TString semanticUpperCase = semantic; + std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); + // 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) { + if (semanticUpperCase == "PSIZE") + qualifier.builtIn = EbvPointSize; + else if (semantic == "FOG") + qualifier.builtIn = EbvFogFragCoord; + else if (semanticUpperCase == "DEPTH") + qualifier.builtIn = EbvFragDepth; + else if (semanticUpperCase == "VFACE") + qualifier.builtIn = EbvFace; + else if (semanticUpperCase == "VPOS") + qualifier.builtIn = EbvFragCoord; + } + + //SV Position has a different meaning in vertex vs fragment + if (semanticUpperCase == "SV_POSITION" && language != EShLangFragment) + qualifier.builtIn = EbvPosition; + else if (semanticUpperCase == "SV_POSITION" && language == EShLangFragment) + qualifier.builtIn = EbvFragCoord; + else if (semanticUpperCase == "SV_CLIPDISTANCE") + qualifier.builtIn = EbvClipDistance; + else if (semanticUpperCase == "SV_CULLDISTANCE") + qualifier.builtIn = EbvCullDistance; + else if (semanticUpperCase == "SV_VERTEXID") + qualifier.builtIn = EbvVertexIndex; + else if (semanticUpperCase == "SV_VIEWPORTARRAYINDEX") + qualifier.builtIn = EbvViewportIndex; + else if (semanticUpperCase == "SV_TESSFACTOR") + qualifier.builtIn = EbvTessLevelOuter; + + //Targets are defined 0-7 + else if (semanticUpperCase == "SV_TARGET") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 0; + } else if (semanticUpperCase == "SV_TARGET0") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 0; + } else if (semanticUpperCase == "SV_TARGET1") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 1; + } else if (semanticUpperCase == "SV_TARGET2") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 2; + } else if (semanticUpperCase == "SV_TARGET3") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 3; + } else if (semanticUpperCase == "SV_TARGET4") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 4; + } else if (semanticUpperCase == "SV_TARGET5") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 5; + } else if (semanticUpperCase == "SV_TARGET6") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 6; + } else if (semanticUpperCase == "SV_TARGET7") { + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 7; + } else if (semanticUpperCase == "SV_SAMPLEINDEX") + qualifier.builtIn = EbvSampleId; + else if (semanticUpperCase == "SV_RENDERTARGETARRAYINDEX") + qualifier.builtIn = EbvLayer; + else if (semanticUpperCase == "SV_PRIMITIVEID") + qualifier.builtIn = EbvPrimitiveId; + else if (semanticUpperCase == "SV_OUTPUTCONTROLPOINTID") + qualifier.builtIn = EbvInvocationId; + else if (semanticUpperCase == "SV_ISFRONTFACE") + qualifier.builtIn = EbvFace; + else if (semanticUpperCase == "SV_INSTANCEID") + qualifier.builtIn = EbvInstanceIndex; + else if (semanticUpperCase == "SV_INSIDETESSFACTOR") + qualifier.builtIn = EbvTessLevelInner; + else if (semanticUpperCase == "SV_GSINSTANCEID") + qualifier.builtIn = EbvInvocationId; + else if (semanticUpperCase == "SV_DISPATCHTHREADID") + qualifier.builtIn = EbvLocalInvocationId; + else if (semanticUpperCase == "SV_GROUPTHREADID") + qualifier.builtIn = EbvLocalInvocationId; + else if (semanticUpperCase == "SV_GROUPID") + qualifier.builtIn = EbvWorkGroupId; + else if (semanticUpperCase == "SV_DOMAINLOCATION") + qualifier.builtIn = EbvTessCoord; + else if (semanticUpperCase == "SV_DEPTH") + qualifier.builtIn = EbvFragDepth; + else if( semanticUpperCase == "SV_COVERAGE") + qualifier.builtIn = EbvSampleMask; + + //TODO, these need to get refined to be more specific + else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") + qualifier.builtIn = EbvFragDepthGreater; + else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") + qualifier.builtIn = EbvFragDepthLesser; + else if( semanticUpperCase == "SV_STENCILREF") + error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", ""); + else if( semanticUpperCase == "SV_GROUPINDEX") + error(loc, "unimplemented", "SV_GROUPINDEX", ""); +} + +// +// 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 + switch (std::tolower(desc[0])) { + case 'b': + case 't': + case 'c': + case 's': + case 'u': + qualifier.layoutBinding = regNumber + subComponent; + 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 (spaceDesc) { + if (! crackSpace()) { + error(loc, "expected spaceN", "register", ""); + return; + } + qualifier.layoutSet = setNumber; + } +} + +// +// 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: + 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->isExplicitlySizedArray()) { + // 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.isImplicitlySizedArray()) { + // auto adapt the constructor type to the number of arguments + type.changeOuterArraySize(function.getParamCount()); + } else if (type.getOuterArraySize() != function.getParamCount()) { + 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.isInnerImplicit()) { + // "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)); + } + } + } + } + } + + 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() && isZeroConstructor(node)) + return false; + + if (op == EOpConstructStruct && ! type.isArray() && (int)type.getStruct()->size() != function.getParamCount()) { + error(loc, "Number of constructor parameters does not match the number of structure fields", "constructor", ""); + return true; + } + + 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; +} + +bool HlslParseContext::isZeroConstructor(const TIntermNode* node) +{ + return node->getAsTyped()->isScalar() && node->getAsConstantUnion() && + node->getAsConstantUnion()->getConstArray()[0].getIConst() == 0; +} + +// Verify all the correct semantics for constructing a combined texture/sampler. +// Return true if the semantics are incorrect. +bool HlslParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const TFunction& function) +{ + 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; +} + +// Checks to see if the node (for the expression) contains a scalar boolean expression or not +void HlslParseContext::boolCheck(const TSourceLoc& loc, const TIntermTyped* type) +{ + if (type->getBasicType() != EbtBool || type->isArray() || type->isMatrix() || type->isVector()) + error(loc, "boolean expression expected", "", ""); +} + +// +// 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); +} + +// 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.isImplicit()) + 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()); + } +} + +// Merge array dimensions listed in 'sizes' onto the type's array dimensions. +// +// From the spec: "vec4[2] a[3]; // size-3 array of size-2 array of vec4" +// +// That means, the 'sizes' go in front of the 'type' as outermost sizes. +// 'type' is the type part of the declaration (to the left) +// 'sizes' is the arrayness tagged on the identifier (to the right) +// +void HlslParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) +{ + if (sizes) + type.addArrayOuterSizes(*sizes); +} + +// +// Do all the semantic checking for declaring or redeclaring an array, with and +// without a size, and make the right changes to the symbol table. +// +void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool track) +{ + if (! symbol) { + 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()) + trackLinkageDeferred(*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) { + error(loc, "array variable name expected", identifier.c_str(), ""); + return; + } + + // redeclareBuiltinVariable() should have already done the copyUp() + TType& existingType = symbol->getWritableType(); + + if (existingType.isExplicitlySizedArray()) { + // be more lenient for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size + return; + } + + existingType.updateArraySizes(type); +} + +void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNode *node, int index) +{ + // maybe there is nothing to do... + TIntermTyped* typedNode = node->getAsTyped(); + if (typedNode->getType().getImplicitArraySize() > index) + return; + + // something to do... + + // Figure out what symbol to lookup, as we will use its type to edit for the size change, + // as that type will be shared through shallow copies for future references. + TSymbol* symbol = nullptr; + int blockIndex = -1; + const TString* lookupName = nullptr; + if (node->getAsSymbolNode()) + lookupName = &node->getAsSymbolNode()->getName(); + else if (node->getAsBinaryNode()) { + const TIntermBinary* deref = node->getAsBinaryNode(); + // This has to be the result of a block dereference, unless it's bad shader code + // If it's a uniform block, then an error will be issued elsewhere, but + // return early now to avoid crashing later in this function. + if (! deref->getLeft()->getAsSymbolNode() || deref->getLeft()->getBasicType() != EbtBlock || + deref->getLeft()->getType().getQualifier().storage == EvqUniform || + deref->getRight()->getAsConstantUnion() == nullptr) + return; + + blockIndex = deref->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); + + lookupName = &deref->getLeft()->getAsSymbolNode()->getName(); + if (IsAnonymous(*lookupName)) + lookupName = &(*deref->getLeft()->getType().getStruct())[blockIndex].type->getFieldName(); + } + + // Lookup the symbol, should only fail if shader code is incorrect + symbol = symbolTable.find(*lookupName); + if (symbol == nullptr) + return; + + if (symbol->getAsFunction()) { + error(loc, "array variable name expected", symbol->getName().c_str(), ""); + return; + } + + symbol->getWritableType().setImplicitArraySize(index + 1); +} + +// +// 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; +} + +// +// Either redeclare the requested block, or give an error message why it can't be done. +// +// TODO: functionality: explicitly sizing members of redeclared blocks is not giving them an explicit size +void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes) +{ + // Redeclaring a built-in block... + + // Blocks with instance names are easy to find, lookup the instance name, + // Anonymous blocks need to be found via a member. + bool builtIn; + TSymbol* block; + if (instanceName) + block = symbolTable.find(*instanceName, &builtIn); + else + block = symbolTable.find(newTypeList.front().type->getFieldName(), &builtIn); + + // If the block was not found, this must be a version/profile/stage + // that doesn't have it, or the instance name is wrong. + const char* errorName = instanceName ? instanceName->c_str() : newTypeList.front().type->getFieldName().c_str(); + if (! block) { + error(loc, "no declaration found for redeclaration", errorName, ""); + return; + } + // Built-in blocks cannot be redeclared more than once, which if happened, + // we'd be finding the already redeclared one here, rather than the built in. + if (! builtIn) { + error(loc, "can only redeclare a built-in block once, and before any use", blockName.c_str(), ""); + return; + } + + // Copy the block to make a writable version, to insert into the block table after editing. + block = symbolTable.copyUpDeferredInsert(block); + + if (block->getType().getBasicType() != EbtBlock) { + error(loc, "cannot redeclare a non block as a block", errorName, ""); + return; + } + + // Edit and error check the container against the redeclaration + // - remove unused members + // - ensure remaining qualifiers/types match + TType& type = block->getWritableType(); + TTypeList::iterator member = type.getWritableStruct()->begin(); + size_t numOriginalMembersFound = 0; + while (member != type.getStruct()->end()) { + // look for match + bool found = false; + TTypeList::const_iterator newMember; + TSourceLoc memberLoc; + memberLoc.init(); + for (newMember = newTypeList.begin(); newMember != newTypeList.end(); ++newMember) { + if (member->type->getFieldName() == newMember->type->getFieldName()) { + found = true; + memberLoc = newMember->loc; + break; + } + } + + if (found) { + ++numOriginalMembersFound; + // - ensure match between redeclared members' types + // - check for things that can't be changed + // - update things that can be changed + TType& oldType = *member->type; + const TType& newType = *newMember->type; + if (! newType.sameElementType(oldType)) + error(memberLoc, "cannot redeclare block member with a different type", member->type->getFieldName().c_str(), ""); + if (oldType.isArray() != newType.isArray()) + error(memberLoc, "cannot change arrayness of redeclared block member", member->type->getFieldName().c_str(), ""); + else if (! oldType.sameArrayness(newType) && oldType.isExplicitlySizedArray()) + error(memberLoc, "cannot change array size of redeclared block member", member->type->getFieldName().c_str(), ""); + if (newType.getQualifier().isMemory()) + error(memberLoc, "cannot add memory qualifier to redeclared block member", member->type->getFieldName().c_str(), ""); + if (newType.getQualifier().hasLayout()) + error(memberLoc, "cannot add layout to redeclared block member", member->type->getFieldName().c_str(), ""); + if (newType.getQualifier().patch) + error(memberLoc, "cannot add patch to redeclared block member", member->type->getFieldName().c_str(), ""); + oldType.getQualifier().centroid = newType.getQualifier().centroid; + oldType.getQualifier().sample = newType.getQualifier().sample; + oldType.getQualifier().invariant = newType.getQualifier().invariant; + oldType.getQualifier().noContraction = newType.getQualifier().noContraction; + oldType.getQualifier().smooth = newType.getQualifier().smooth; + oldType.getQualifier().flat = newType.getQualifier().flat; + oldType.getQualifier().nopersp = newType.getQualifier().nopersp; + + // go to next member + ++member; + } else { + // For missing members of anonymous blocks that have been redeclared, + // hide the original (shared) declaration. + // Instance-named blocks can just have the member removed. + if (instanceName) + member = type.getWritableStruct()->erase(member); + else { + member->type->hideMember(); + ++member; + } + } + } + + if (numOriginalMembersFound < newTypeList.size()) + error(loc, "block redeclaration has extra members", blockName.c_str(), ""); + if (type.isArray() != (arraySizes != nullptr)) + error(loc, "cannot change arrayness of redeclared block", blockName.c_str(), ""); + else if (type.isArray()) { + if (type.isExplicitlySizedArray() && arraySizes->getOuterSize() == UnsizedArraySize) + error(loc, "block already declared with size, can't redeclare as implicitly-sized", blockName.c_str(), ""); + else if (type.isExplicitlySizedArray() && type.getArraySizes() != *arraySizes) + error(loc, "cannot change array size of redeclared block", blockName.c_str(), ""); + else if (type.isImplicitlySizedArray() && arraySizes->getOuterSize() != UnsizedArraySize) + type.changeOuterArraySize(arraySizes->getOuterSize()); + } + + symbolTable.insert(*block); + + // Save it in the AST for linker use. + trackLinkageDeferred(*block); +} + +void HlslParseContext::paramFix(TType& type) +{ + switch (type.getQualifier().storage) { + case EvqConst: + type.getQualifier().storage = EvqConstReadOnly; + break; + case EvqGlobal: + case EvqTemporary: + type.getQualifier().storage = EvqIn; + 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") { + requireSpv(loc, "constant_id"); + if (value >= (int)TQualifier::layoutSpecConstantIdEnd) { + error(loc, "specialization-constant id is too large", id.c_str(), ""); + } else { + qualifier.layoutSpecConstantId = value; + qualifier.specConstant = true; + if (! intermediate.addUsedConstantId(value)) + error(loc, "specialization-constant id already used", id.c_str(), ""); + } + 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(), ""); +} + +// 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, const TFunction& call, bool& builtIn, + TIntermNode* args) +{ + // const TFunction* function = nullptr; + + 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 + TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn); + 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 builtin ops can accept any type, so we bypass the argument selection + if (candidateList.size() == 1 && builtIn && + (candidateList[0]->getBuiltInOp() == EOpMethodAppend || + candidateList[0]->getBuiltInOp() == EOpMethodRestartStrip)) { + + return candidateList[0]; + } + + bool allowOnlyUpConversions = true; + + // can 'from' convert to 'to'? + const auto convertible = [&](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; + 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.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; + } + + // 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 std::abs(linearize(to2.getBasicType()) - linearize(from.getBasicType())) < + std::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 builtins, we can convert across the arguments. This will happen in several steps: + // Step 1: If there's an exact match, use it. + // Step 2a: Otherwise, get the operator from the best match and promote arguments: + // Step 2b: reconstruct the TFunction based on the new arg types + // Step 3: Re-select after type promotion is applied, to find proper candidate. + if (builtIn) { + // Step 1: If there's an exact match, use it. + if (call.getMangledName() == bestMatch->getMangledName()) + return bestMatch; + + // Step 2a: Otherwise, get the operator from the best match and promote arguments as if we + // are that kind of operator. + if (args != nullptr) { + // The arg list can be a unary node, or an aggregate. We have to handle both. + // We will use the normal promote() facilities, which require an interm node. + TIntermOperator* promote = nullptr; + + if (call.getParamCount() == 1) { + promote = new TIntermUnary(bestMatch->getBuiltInOp()); + promote->getAsUnaryNode()->setOperand(args->getAsTyped()); + } else { + promote = new TIntermAggregate(bestMatch->getBuiltInOp()); + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + + if (! intermediate.promote(promote)) + return nullptr; + + // Obtain the promoted arg list. + if (call.getParamCount() == 1) { + args = promote->getAsUnaryNode()->getOperand(); + } else { + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + } + + // Step 2b: reconstruct the TFunction based on the new arg types + TFunction convertedCall(&call.getName(), call.getType(), call.getBuiltInOp()); + + if (args->getAsAggregate()) { + // Handle aggregates: put all args into the new function call + for (int arg=0; arggetAsAggregate()->getSequence().size()); ++arg) { + // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly. + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsAggregate()->getSequence()[arg]->getAsTyped()->getType()); + convertedCall.addParameter(param); + } + } else if (args->getAsUnaryNode()) { + // Handle unaries: put all args into the new function call + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsUnaryNode()->getOperand()->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else if (args->getAsTyped()) { + // Handle bare e.g, floats, not in an aggregate. + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else { + assert(0); // unknown argument list. + return nullptr; + } + + // Step 3: Re-select after type promotion, to find proper candidate + // send to the generic selector + bestMatch = selectFunction(candidateList, convertedCall, convertible, better, tie); + + // At this point, there should be no tie. + } + + if (tie) + error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); + + return bestMatch; +} + +// +// Do everything necessary to handle a typedef declaration, for a single symbol. +// +// 'parseType' is the type part of the declaration (to the left) +// 'arraySizes' is the arrayness tagged on the identifier (to the right) +// +void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* /*arraySizes*/) +{ + TType type; + type.deepCopy(parseType); + + TVariable* typeSymbol = new TVariable(&identifier, type, true); + if (! symbolTable.insert(*typeSymbol)) + error(loc, "name already defined", "typedef", identifier.c_str()); +} + +// +// Do everything necessary to handle a variable (non-block) declaration. +// Either redeclaring a variable, or making a new one, updating the symbol +// 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, TString& identifier, TType& type, TIntermTyped* initializer) +{ + if (voidErrorCheck(loc, identifier, type.getBasicType())) + return nullptr; + + // 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); + + // Declare the variable + if (type.isArray()) { + // array case + declareArray(loc, identifier, type, symbol, !flattenVar); + } else { + // non-array case + if (! symbol) + symbol = declareNonArray(loc, identifier, type, !flattenVar); + else if (type != symbol->getType()) + error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); + } + + if (flattenVar) + flatten(loc, *symbol->getAsVariable()); + + if (! symbol) + return nullptr; + + // Deal with initializer + TIntermNode* initNode = nullptr; + if (symbol && initializer) { + if (flattenVar) + error(loc, "flattened array with initializer list unsupported", identifier.c_str(), ""); + + TVariable* variable = symbol->getAsVariable(); + if (! variable) { + error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); + return nullptr; + } + initNode = executeInitializer(loc, initializer, variable); + } + + return initNode; +} + +// 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 = new TString(name); + TVariable* variable = new TVariable(nameString, type); + symbolTable.makeInternalVariable(*variable); + + return variable; +} + +// +// 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, TString& identifier, TType& type, bool track) +{ + // make a new variable + TVariable* variable = new TVariable(&identifier, type); + + // add variable to symbol table + if (symbolTable.insert(*variable)) { + if (track && symbolTable.atGlobalLevel()) + trackLinkageDeferred(*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. + // + if (initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull) + initializer = convertInitializerList(loc, variable->getType(), initializer); + if (! initializer) { + // error recovery; don't leave const without constant values + if (qualifier == EvqConst) + variable->getWritableType().getQualifier().storage = EvqTemporary; + return nullptr; + } + + // Fix outer arrayness if variable is unsized, getting size from the initializer + if (initializer->getType().isExplicitlySizedArray() && + variable->getType().isImplicitlySizedArray()) + 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; + } + if (qualifier == EvqConst && symbolTable.atGlobalLevel() && initializer->getType().getQualifier().storage != EvqConst) { + error(loc, "global const initializers must be constant", "=", "'%s'", variable->getType().getCompleteString().c_str()); + variable->getWritableType().getQualifier().storage = EvqTemporary; + return nullptr; + } + + // Const variables require a constant initializer, depending on version + 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 || ! 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) + 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) +{ + // 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 || 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.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below + + // edit array sizes to fill in unsized dimensions + if (type.isImplicitlySizedArray()) + arrayType.changeOuterArraySize((int)initList->getSequence().size()); + TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped(); + if (arrayType.isArrayOfArrays() && firstInit->getType().isArray() && + arrayType.getArraySizes().getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) { + 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()); + + // 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()); + if (initList->getSequence()[i] == nullptr) + return nullptr; + } + + return addConstructor(loc, initList, arrayType); + } else if (type.isStruct()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getStruct()->size()); + + 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()); + 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()); + + 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()); + if (initList->getSequence()[i] == nullptr) + return nullptr; + } + } + } else if (type.isVector()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getVectorSize()); + + // error check; we're at bottom, so work is finished below + if (type.getVectorSize() != (int)initList->getSequence().size()) { + error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", type.getCompleteString().c_str()); + return nullptr; + } + } else if (type.isScalar()) { + 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. + TIntermNode* emulatedConstructorArguments; + if (initList->getSequence().size() == 1) + emulatedConstructorArguments = initList->getSequence()[0]; + else + emulatedConstructorArguments = initList; + + return addConstructor(loc, emulatedConstructorArguments, type); +} + +// Lengthen list to be long enough to cover any gap from the current list size +// to 'size'. If the list is longer, do nothing. +// The value to lengthen with is the default for short lists. +void HlslParseContext::lengthenList(const TSourceLoc& loc, TIntermSequence& list, int size) +{ + for (int c = (int)list.size(); c < size; ++c) + list.push_back(intermediate.addConstantUnion(0, loc)); +} + +// +// Test for the correctness of the parameters passed to various constructor functions +// and also convert them to the right data type, if allowed and required. +// +// Returns nullptr for an error or the constructed node (aggregate or typed) for no error. +// +TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type) +{ + if (node == nullptr || node->getAsTyped() == nullptr) + return nullptr; + + // Handle the idiom "(struct type)0" + if (type.isStruct() && isZeroConstructor(node)) + return convertInitializerList(loc, type, intermediate.makeAggregate(loc)); + + TIntermAggregate* aggrNode = node->getAsAggregate(); + TOperator op = intermediate.mapTypeToConstructorOp(type); + + // 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) { + if (aggrNode->getOp() != EOpNull || aggrNode->getSequence().size() == 1) + singleArg = true; + else + singleArg = false; + } else + singleArg = true; + + TIntermTyped *newNode; + if (singleArg) { + // If structure constructor or array constructor is being called + // for only one parameter inside the structure, we need to call constructAggregate function once. + if (type.isArray()) + newNode = constructAggregate(node, elementType, 1, node->getLoc()); + else if (op == EOpConstructStruct) + newNode = constructAggregate(node, *(*memberTypes).type, 1, node->getLoc()); + else + newNode = constructBuiltIn(type, op, node->getAsTyped(), 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 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 EOpConstructIVec2: + case EOpConstructIVec3: + case EOpConstructIVec4: + case EOpConstructInt: + basicOp = EOpConstructInt; + break; + + case EOpConstructUVec2: + case EOpConstructUVec3: + case EOpConstructUVec4: + case EOpConstructUint: + basicOp = EOpConstructUint; + break; + + case EOpConstructBVec2: + case EOpConstructBVec3: + case EOpConstructBVec4: + 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); +} + +// 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) +{ + TIntermTyped* converted = intermediate.addConversion(EOpConstructStruct, type, node->getAsTyped()); + if (! converted || 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, TArraySizes* arraySizes) +{ + assert(type.getWritableStruct() != nullptr); + + 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; + } + + // This might be a redeclaration of a built-in block. If so, redeclareBuiltinBlock() will + // do all the rest. + //if (! symbolTable.atBuiltInLevel() && builtInName(*blockName)) { + // redeclareBuiltinBlock(loc, typeList, *blockName, instanceName, arraySizes); + // return; + //} + + // 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.hasPacking()) + error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), ""); + if (memberQualifier.hasLocation()) { + switch (type.getQualifier().storage) { + case EvqVaryingIn: + case EvqVaryingOut: + memberWithLocation = true; + break; + default: + break; + } + } else + memberWithoutLocation = true; + if (memberQualifier.hasAlign()) { + if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430) + error(memberLoc, "can only be used with std140 or std430 layout packing", "align", ""); + } + + 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 (arraySizes) + blockType.newArraySizes(*arraySizes); + + // Add the variable, as anonymous or named instanceName. + // Make an anonymous variable if no name was provided. + if (! instanceName) + 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. + trackLinkageDeferred(variable); +} + +void HlslParseContext::finalizeGlobalUniformBlockLayout(TVariable& block) +{ + block.getWritableType().getQualifier().layoutPacking = ElpStd140; + block.getWritableType().getQualifier().layoutMatrix = ElmRowMajor; + fixBlockUniformOffsets(block.getType().getQualifier(), *block.getWritableType().getWritableStruct()); +} + +// +// "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); + } + } + } +} + +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) { + 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) +{ + switch (geometry) { + case ElgPoints: + case ElgLineStrip: + case ElgTriangleStrip: + if (! intermediate.setOutputPrimitive(geometry)) { + error(loc, "output primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); + return false; + } + break; + default: + error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(geometry), ""); + return false; + } + + return true; +} + +// +// Updating default qualifier for the case of a declaration with just a qualifier, +// no type, block, or identifier. +// +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) +{ + 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); + + return switchNode; +} + +// Potentially rename shader entry point function +void HlslParseContext::renameShaderFunction(TString*& name) const +{ + // Replace the entry point name given in the shader with the real entry point name, + // if there is a substitution. + if (name != nullptr && *name == sourceEntryPointName) + name = new TString(intermediate.getEntryPointName().c_str()); +} + +} // end namespace glslang diff --git a/deps/glslang/glslang-old/hlsl/hlslParseHelper.h b/deps/glslang/glslang-old/hlsl/hlslParseHelper.h new file mode 100755 index 0000000000..1de4f36d03 --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/hlslParseHelper.h @@ -0,0 +1,286 @@ +// +//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" + +namespace glslang { + +class TAttributeMap; // forward declare + +class HlslParseContext : public TParseContextBase { +public: + HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, + int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, + const TString sourceEntryPointName, + bool forwardCompatible = false, EShMessages messages = EShMsgDefault); + virtual ~HlslParseContext(); + void initializeExtensionBehavior(); + + void setLimits(const TBuiltInResource&); + bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); + virtual const char* getGlobalUniformBlockName() { return "$Global"; } + + void reservedPpErrorCheck(const TSourceLoc&, const char* /*name*/, const char* /*op*/) { } + bool lineContinuationCheck(const TSourceLoc&, bool /*endOfComment*/) { return true; } + bool lineDirectiveShouldSetNextLine() const { return true; } + bool builtInName(const TString&); + + void handlePragma(const TSourceLoc&, const TVector&); + TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); + TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); + TIntermTyped* handleBracketOperator(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); + void checkIndex(const TSourceLoc&, const TType&, int& index); + + 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); + void assignLocations(TVariable& variable); + TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); + TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&, const TAttributeMap&); + void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); + void remapEntryPointIO(TFunction& function); + 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) const; + TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); + void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); + void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; + TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermOperator&); + void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); + TFunction* handleConstructorCall(const TSourceLoc&, const TType&); + void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic); + 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*); + + TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); + + bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); + 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); + void arrayDimMerge(TType& type, const TArraySizes* sizes); + bool voidErrorCheck(const TSourceLoc&, const TString&, TBasicType); + void boolCheck(const TSourceLoc&, const TIntermTyped*); + 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 redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); + void paramFix(TType& type); + void specializationCheck(const TSourceLoc&, const TType&, const char* op); + + void setLayoutQualifier(const TSourceLoc&, TQualifier&, TString&); + void setLayoutQualifier(const TSourceLoc&, TQualifier&, TString&, const TIntermTyped*); + void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly); + void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); + + const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn, TIntermNode* args); + void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0); + TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0); + void lengthenList(const TSourceLoc&, TIntermSequence& list, int size); + TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); + TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); + TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); + void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0, TArraySizes* arraySizes = 0); + void finalizeGlobalUniformBlockLayout(TVariable& block); + void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation); + void fixBlockXfbOffsets(TQualifier&, TTypeList&); + void fixBlockUniformOffsets(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); + + void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index); + + 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 pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); } + void popSwitchSequence() { switchSequenceStack.pop_back(); } + + // Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore. + TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped* node); + bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; + + TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&); + + bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + + // Potentially rename shader entry point function + void renameShaderFunction(TString*& name) const; + + // Reset data for incrementally built referencing of flattened composite structures + void initFlattening() { flattenLevel.push_back(0); flattenOffset.push_back(0); } + void finalizeFlattening() { flattenLevel.pop_back(); flattenOffset.pop_back(); } + +protected: + struct TFlattenData { + TFlattenData() : nextBinding(TQualifier::layoutBindingEnd) { } + TFlattenData(int nb) : nextBinding(nb) { } + + TVector members; // individual flattened variables + TVector offsets; // offset to next tree level + int nextBinding; // next binding to use. + }; + + void inheritGlobalDefaults(TQualifier& dst) const; + TVariable* makeInternalVariable(const char* name, const TType&) const; + TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool track); + void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track); + TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); + TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); + bool isZeroConstructor(const TIntermNode*); + TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); + + // Return true if this node requires L-value conversion (e.g, to an imageStore). + bool shouldConvertLValue(const TIntermNode*) const; + + // Array and struct flattening + bool shouldFlatten(const TType& type) const; + TIntermTyped* flattenAccess(const TSourceLoc&, TIntermTyped* base, int member); + bool shouldFlattenIO(const TType&) const; + bool shouldFlattenUniform(const TType&) const; + bool wasFlattened(const TIntermTyped* node) const; + bool wasFlattened(int id) const { return flattenMap.find(id) != flattenMap.end(); } + int addFlattenedMember(const TSourceLoc& loc, const TVariable&, const TType&, TFlattenData&, const TString& name, bool track); + bool isFinalFlattening(const TType& type) const { return !(type.isStruct() || type.isArray()); } + + void flatten(const TSourceLoc& loc, const TVariable& variable); + int flatten(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); + int flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); + int flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); + + // Current state of parsing + struct TPragma contextPragma; + int loopNestingLevel; // 0 if outside all loops + int annotationNestingLevel; // 0 if outside all annotations + int structNestingLevel; // 0 if outside blocks and structures + int controlFlowNestingLevel; // 0 if outside all flow control + TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting + bool inEntryPoint; // if inside a function, true if the function is the entry point + bool postEntryPointReturn; // if inside a function, true if the function is the entry point and this is after a return statement + const TType* currentFunctionType; // the return type of the function that's currently being parsed + bool functionReturnsValue; // true if a non-void function has a return + TBuiltInResource resources; + TLimits& limits; + + 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; + TVariable* entryPointOutput; + + // + // 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; + TVector flattenLevel; // nested postfix operator level for flattening + TVector flattenOffset; // cumulative offset for flattening + + unsigned int nextInLocation; + unsigned int nextOutLocation; + + TString sourceEntryPointName; +}; + +} // end namespace glslang + +#endif // HLSL_PARSE_INCLUDED_ diff --git a/deps/glslang-new/hlsl/hlslParseables.cpp b/deps/glslang/glslang-old/hlsl/hlslParseables.cpp similarity index 62% rename from deps/glslang-new/hlsl/hlslParseables.cpp rename to deps/glslang/glslang-old/hlsl/hlslParseables.cpp index cc847ae22f..8ecaec9dd5 100755 --- a/deps/glslang-new/hlsl/hlslParseables.cpp +++ b/deps/glslang/glslang-old/hlsl/hlslParseables.cpp @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 LunarG, Inc. +//Copyright (C) 2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,22 +19,22 @@ // 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 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 +// 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. // @@ -49,7 +49,6 @@ // #include "hlslParseables.h" -#include "hlslParseHelper.h" #include #include #include @@ -68,21 +67,14 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } } -// 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 IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } +bool IsArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&' || argOrder == '#'; } +bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } +bool IsBuffer(const char argOrder) { return argOrder == '*' || argOrder == '~'; } +bool IsImage(const char argOrder) { return argOrder == '!' || argOrder == '#' || argOrder == '~'; } bool IsTextureType(const char argOrder) { - return IsTextureNonMS(argOrder) || IsArrayedTexture(argOrder) || - IsTextureMS(argOrder) || IsBuffer(argOrder) || IsImage(argOrder); + return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder) | IsImage(argOrder); } // Reject certain combinations that are illegal sample methods. For example, @@ -110,16 +102,15 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim return true; } - const bool isGather = - (name == "Gather" || + const bool isGather = + (name == "Gather" || name == "GatherRed" || - name == "GatherGreen" || + name == "GatherGreen" || name == "GatherBlue" || name == "GatherAlpha"); - const bool isGatherCmp = - (name == "GatherCmp" || - name == "GatherCmpRed" || + const bool isGatherCmp = + (name == "GatherCmpRed" || name == "GatherCmpGreen" || name == "GatherCmpBlue" || name == "GatherCmpAlpha"); @@ -183,7 +174,7 @@ const char* IoParam(glslang::TString& s, const char* nthArgOrder) } else if (*nthArgOrder == '<') { // input params ++nthArgOrder; s.append("in "); - } + } return nthArgOrder; } @@ -204,8 +195,9 @@ 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) +int FixedVecSize(const char* arg) { while (!IsEndOfArg(arg)) { if (isdigit(*arg)) @@ -216,6 +208,7 @@ int FixedVecSize(const char* 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. // @@ -229,16 +222,15 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons 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 isMS = IsTextureMS(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) { + std::swap(dim0, dim1); + } else if (isTexture) { if (type == 'F') // map base type to texture of that type. type = 'T'; // e.g, int -> itexture, uint -> utexture, etc. else if (type == 'I') @@ -259,29 +251,20 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons 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" : + isBuffer ? "Buffer" : isImage ? "RWTexture" : "Texture"); break; case 'i': s += ((isBuffer && isImage) ? "RWBuffer" : - isSubpass ? "SubpassInput" : - isBuffer ? "Buffer" : + 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; @@ -299,7 +282,6 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons s += type; s += ((isImage && isBuffer) ? "imageBuffer" : - isSubpass ? "subpassInput" : isImage ? "image" : isBuffer ? "samplerBuffer" : "texture"); @@ -314,9 +296,6 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons 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) { @@ -341,12 +320,12 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars case 'V': - s += dim0Char; + s += ('0' + char(dim0)); break; - case 'M': - s += dim0Char; + case 'M': + s += ('0' + char(dim0)); s += 'x'; - s += dim1Char; + s += ('0' + char(dim1)); break; default: break; @@ -360,9 +339,9 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons // 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 { @@ -453,6 +433,7 @@ TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() { } + // // Handle creation of mat*mat specially, since it doesn't fall conveniently out of // the generic prototype creation code below. @@ -495,6 +476,7 @@ void TBuiltInParseablesHlsl::createMatTimesMat() s.append(");\n"); // close paren + // Create V*M AppendTypeName(s, "V", "F", xCols, 1); // add return type s.append(" "); // space between type and name @@ -523,10 +505,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c 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 + // needed for furture 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; @@ -546,7 +528,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // 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 + // D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler // 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 @@ -558,7 +540,6 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // '!' 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 @@ -567,378 +548,315 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c 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 }, + // name retOrd retType argOrder argType stage mask + // ----------------------------------------------------------------------------------------------- + { "abort", nullptr, nullptr, "-", "-", EShLangAll }, + { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, + { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "all", "S", "B", "SVM", "BFIU", EShLangAll }, + { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, + { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, + { "any", "S", "B", "SVM", "BFIU", EShLangAll }, + { "asdouble", "S", "D", "S,", "UI,", EShLangAll }, + { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll }, + { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, + { "asin", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "asint", nullptr, "I", "SVM", "FU", EShLangAll }, + { "asuint", nullptr, "U", "SVM", "FU", EShLangAll }, + { "atan", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS }, + { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll }, + { "clip", "-", "-", "SVM", "F", EShLangPS }, + { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, + { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, + { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddy", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "determinant", "S", "F", "M", "F", EShLangAll }, + { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS }, + { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, + { "distance", "S", "F", "V,", "F,", EShLangAll }, + { "dot", "S", nullptr, "V,", "FI,", EShLangAll }, + { "dst", nullptr, nullptr, "V4,", "F,", EShLangAll }, + // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs + { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangPS }, + { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangPS }, + { "exp", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "f16tof32", nullptr, "F", "SV", "U", EShLangAll }, + { "f32tof16", nullptr, "U", "SV", "F", EShLangAll }, + { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll }, + { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "floor", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll }, + { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "frac", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "fwidth", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll }, + { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll }, + { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, + { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, + { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS }, + { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS }, + { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll }, + { "isinf", nullptr, "B" , "SVM", "F", EShLangAll }, + { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, + { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "length", "S", "F", "V", "F", EShLangAll }, + { "lerp", nullptr, nullptr, "VM,,", "F,,", EShLangAll }, + { "lerp", nullptr, nullptr, "SVM,,S", "F,,", EShLangAll }, + { "lit", "V4", "F", "S,,", "F,,", EShLangAll }, + { "log", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "log2", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll }, + { "max", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, + { "min", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, + { "modf", nullptr, nullptr, "SVM,>", "FIU,", EShLangAll }, + { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, + { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, + { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, + { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, + { "mul", "V", nullptr, "V,S", "FI,", EShLangAll }, + { "mul", "S", nullptr, "V,V", "FI,", EShLangAll }, + { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, // 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 }, + { "noise", "S", "F", "V", "F", EShLangPS }, + { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, + { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs + { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, + { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, + { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangHS }, + { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, + { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, + { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, + { "radians", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll }, + { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll }, + { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll }, + { "reversebits", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "round", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll }, + { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll }, + { "sin", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll }, + { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, + { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "tan", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "tex1D", "V4", "F", "V1,S", "S,F", EShLangPS }, + { "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangPS }, + { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangPS }, + { "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangPS }, + { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangPS }, + { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangPS }, + { "tex2D", "V4", "F", "V2,", "S,F", EShLangPS }, + { "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangPS }, + { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangPS }, + { "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangPS }, + { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangPS }, + { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangPS }, + { "tex3D", "V4", "F", "V3,", "S,F", EShLangPS }, + { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangPS }, + { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangPS }, + { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangPS }, + { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangPS }, + { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangPS }, + { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangPS }, + { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, + { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangPS }, + { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, + { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS }, + { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS }, + { "transpose", "^M", nullptr, "M", "FUIB", EShLangAll }, + { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, // 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 }, + { "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangPS }, + { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangPS }, - { "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 }, + { "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangPS }, + { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangPS }, // 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 }, + { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangPS }, + { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangPS }, // 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 }, + { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangPS }, + { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangPS }, - { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll, true }, - { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll, true }, + { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll }, + { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll }, - { "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 }, + { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll }, + { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll }, - { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll, 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 }, + { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll }, + { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll }, + { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, + { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, // RWTexture loads - { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll, true }, + { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll }, // (RW)Buffer loads - { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll, true }, + { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll }, - { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, - { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll, true }, + { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll }, - { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, - { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, + { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS }, + { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS }, - { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS,true }, + { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS }, - // + // // 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 }, + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,U", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,F", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll }, // UINT Width, UINT Elements // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,U,", EShLangAll, 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 }, + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels - { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,U,", EShLangAll, 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 }, + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height, UINT Elements // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,U,,", EShLangAll, 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 }, + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,F,F,F", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // UINT Width, UINT Height, UINT Depth // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels - { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,U,,", EShLangAll, 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 }, + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,F,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // 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 }, + { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll }, // 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 }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // 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 }, + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, // 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 }, + { "GatherRed", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, - { "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 }, + { "GatherGreen", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, - { "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 }, + { "GatherBlue", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, - { "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 }, + { "GatherAlpha", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, - { "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 }, + { "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll }, - { "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 }, + { "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, - { "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 }, + { "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, - { "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 }, + { "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, + { "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, // 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 }, + { "Append", "-", "-", "-", "-", EShLangGS }, + { "RestartStrip", "-", "-", "-", "-", EShLangGS }, // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. - { nullptr, nullptr, nullptr, nullptr, nullptr, 0, false }, + { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, }; // Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it. @@ -985,12 +903,6 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c AppendTypeName(s, retOrder, retType, dim0, dim1); // add return type s.append(" "); // space between type and name - - // methods have a prefix. TODO: it would be better as an invalid identifier character, - // but that requires a scanner change. - if (intrinsic.method) - s.append(BUILTIN_PREFIX); - s.append(intrinsic.name); // intrinsic name s.append("("); // open paren @@ -1035,7 +947,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments } - + s.append(");\n"); // close paren and trailing semicolon } // dim 1 loop } // dim 0 loop @@ -1044,10 +956,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // skip over special characters if (isTexture && isalpha(argOrder[1])) ++argOrder; - if (isdigit(argOrder[1])) + if (isdigit(argOrder[1])) ++argOrder; } // arg order loop - + if (intrinsic.stage == EShLangAll) // common builtins are only added once. break; } @@ -1076,6 +988,7 @@ void TBuiltInParseablesHlsl::initialize(const TBuiltInResource& /*resources*/, i { } + // // Finish adding/processing context-independent built-in symbols. // 1) Programmatically add symbols that could not be added by simple text strings above. @@ -1109,7 +1022,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("cosh", EOpCosh); symbolTable.relateToOperator("countbits", EOpBitCount); symbolTable.relateToOperator("cross", EOpCross); - symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); + // symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); symbolTable.relateToOperator("ddx", EOpDPdx); symbolTable.relateToOperator("ddx_coarse", EOpDPdxCoarse); symbolTable.relateToOperator("ddx_fine", EOpDPdxFine); @@ -1118,8 +1031,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); symbolTable.relateToOperator("degrees", EOpDegrees); symbolTable.relateToOperator("determinant", EOpDeterminant); - symbolTable.relateToOperator("DeviceMemoryBarrier", EOpDeviceMemoryBarrier); - symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpDeviceMemoryBarrierWithGroupSync); + symbolTable.relateToOperator("DeviceMemoryBarrier", EOpGroupMemoryBarrier); + symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpGroupMemoryBarrierWithGroupSync); // ... symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); symbolTable.relateToOperator("dst", EOpDst); @@ -1224,92 +1137,37 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil 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); + symbolTable.relateToOperator("Sample", EOpMethodSample); + symbolTable.relateToOperator("SampleBias", EOpMethodSampleBias); + symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); + symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); + symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); + symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); + symbolTable.relateToOperator("Load", EOpMethodLoad); + symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); + symbolTable.relateToOperator("GetSamplePosition", EOpMethodGetSamplePosition); + symbolTable.relateToOperator("Gather", EOpMethodGather); + symbolTable.relateToOperator("CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail); + symbolTable.relateToOperator("CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped); // 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); + symbolTable.relateToOperator("GatherRed", EOpMethodGatherRed); + symbolTable.relateToOperator("GatherGreen", EOpMethodGatherGreen); + symbolTable.relateToOperator("GatherBlue", EOpMethodGatherBlue); + symbolTable.relateToOperator("GatherAlpha", EOpMethodGatherAlpha); + symbolTable.relateToOperator("GatherCmpRed", EOpMethodGatherCmpRed); + symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen); + symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue); + symbolTable.relateToOperator("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); + symbolTable.relateToOperator("Append", EOpMethodAppend); + symbolTable.relateToOperator("RestartStrip", EOpMethodRestartStrip); } // // 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 +// 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. @@ -1321,4 +1179,5 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil { } + } // end namespace glslang diff --git a/deps/glslang-new/hlsl/hlslParseables.h b/deps/glslang/glslang-old/hlsl/hlslParseables.h similarity index 61% rename from deps/glslang-new/hlsl/hlslParseables.h rename to deps/glslang/glslang-old/hlsl/hlslParseables.h index 28f424b317..3c93b178e6 100755 --- a/deps/glslang-new/hlsl/hlslParseables.h +++ b/deps/glslang/glslang-old/hlsl/hlslParseables.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 LunarG, Inc. +//Copyright (C) 2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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_ diff --git a/deps/glslang/glslang-old/hlsl/hlslScanContext.cpp b/deps/glslang/glslang-old/hlsl/hlslScanContext.cpp new file mode 100755 index 0000000000..abd59389cf --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/hlslScanContext.cpp @@ -0,0 +1,765 @@ +// +//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" +//#include "Scan.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; +}; + +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)["point"] = EHTokPoint; + (*hlslKeywordMap)["line"] = EHTokLine; + (*hlslKeywordMap)["triangle"] = EHTokTriangle; + (*hlslKeywordMap)["lineadj"] = EHTokLineAdj; + (*hlslKeywordMap)["triangleadj"] = EHTokTriangleAdj; + + (*hlslKeywordMap)["PointStream"] = EHTokPointStream; + (*hlslKeywordMap)["LineStream"] = EHTokLineStream; + (*hlslKeywordMap)["TriangleStream"] = EHTokTriangleStream; + + (*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)["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)["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)["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)["struct"] = EHTokStruct; + (*hlslKeywordMap)["cbuffer"] = EHTokCBuffer; + (*hlslKeywordMap)["tbuffer"] = EHTokTBuffer; + (*hlslKeywordMap)["typedef"] = EHTokTypedef; + + (*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("class"); + 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("this"); + hlslReservedSet->insert("throw"); + hlslReservedSet->insert("try"); + hlslReservedSet->insert("typename"); + hlslReservedSet->insert("union"); + hlslReservedSet->insert("unsigned"); + hlslReservedSet->insert("using"); + hlslReservedSet->insert("virtual"); +} + +void HlslScanContext::deleteKeywordMap() +{ + delete hlslKeywordMap; + hlslKeywordMap = nullptr; + delete hlslReservedSet; + hlslReservedSet = nullptr; +} + +// Wrapper for tokenizeClass()"] = to get everything inside the token. +void HlslScanContext::tokenize(HlslToken& token) +{ + EHlslTokenClass tokenClass = tokenizeClass(token); + token.tokenClass = tokenClass; +} + +// +// 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; + tokenText = ppContext.tokenize(&ppToken); + if (tokenText == nullptr) + return EHTokNone; + + loc = ppToken.loc; + parserToken->loc = loc; + switch (ppToken.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 PpAtomAdd: return EHTokAddAssign; + case PpAtomSub: return EHTokSubAssign; + case PpAtomMul: return EHTokMulAssign; + case PpAtomDiv: return EHTokDivAssign; + case PpAtomMod: 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 PpAtomConstInt: parserToken->i = ppToken.ival; return EHTokIntConstant; + case PpAtomConstUint: parserToken->i = ppToken.ival; return EHTokUintConstant; + 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(ppToken.name); + return EHTokStringConstant; + } + + case EndOfInput: return EHTokNone; + + default: + char buf[2]; + buf[0] = (char)ppToken.token; + buf[1] = 0; + _parseContext.error(loc, "unexpected token", buf, ""); + 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: + 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; + + case EHTokBuffer: + case EHTokVector: + case EHTokMatrix: + return keyword; + + // scalar types + case EHTokVoid: + case EHTokString: + case EHTokBool: + case EHTokInt: + case EHTokUint: + 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 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 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: + return keyword; + + // variable, user type, ... + case EHTokStruct: + case EHTokTypedef: + case EHTokCBuffer: + case EHTokTBuffer: + 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; +} + +EHlslTokenClass HlslScanContext::identifierOrReserved(bool reserved) +{ + if (reserved) { + reservedWord(); + + return EHTokNone; + } + + if (_parseContext.forwardCompatible) + _parseContext.warn(loc, "using future reserved keyword", tokenText, ""); + + return identifierOrType(); +} + +// For a keyword that was never reserved, until it suddenly +// showed up. +EHlslTokenClass HlslScanContext::nonreservedKeyword(int version) +{ + if (_parseContext.version < version) + return identifierOrType(); + + return keyword; +} + +} // end namespace glslang diff --git a/deps/glslang-new/hlsl/hlslScanContext.h b/deps/glslang/glslang-old/hlsl/hlslScanContext.h similarity index 63% rename from deps/glslang-new/hlsl/hlslScanContext.h rename to deps/glslang/glslang-old/hlsl/hlslScanContext.h index 9d30a12e1e..32cd0e7f20 100755 --- a/deps/glslang-new/hlsl/hlslScanContext.h +++ b/deps/glslang/glslang-old/hlsl/hlslScanContext.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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. // // @@ -54,7 +54,7 @@ class TPpToken; // Everything needed to fully describe a token. // struct HlslToken { - HlslToken() : string(nullptr) { loc.init(); } + HlslToken() : string(nullptr), symbol(nullptr) { loc.init(); } TSourceLoc loc; // location of token in the source EHlslTokenClass tokenClass; // what kind of token it is union { // what data the token holds @@ -64,6 +64,7 @@ struct HlslToken { bool b; double d; }; + glslang::TSymbol* symbol; // if a symbol-table lookup was done already, this is the result }; // @@ -73,15 +74,14 @@ struct HlslToken { // class HlslScanContext { public: - HlslScanContext(TParseContextBase& parseContext, TPpContext& ppContext) - : parseContext(parseContext), ppContext(ppContext) { } + 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&); @@ -94,7 +94,7 @@ protected: EHlslTokenClass identifierOrReserved(bool reserved); EHlslTokenClass nonreservedKeyword(int version); - TParseContextBase& parseContext; + TParseContextBase&_parseContext; TPpContext& ppContext; TSourceLoc loc; TPpToken* ppToken; diff --git a/deps/glslang/glslang-old/hlsl/hlslTokenStream.cpp b/deps/glslang/glslang-old/hlsl/hlslTokenStream.cpp new file mode 100755 index 0000000000..c915e0b593 --- /dev/null +++ b/deps/glslang/glslang-old/hlsl/hlslTokenStream.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 "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]; +} + +// Load 'token' with the next token in the stream of tokens. +void HlslTokenStream::advanceToken() +{ + pushTokenBuffer(token); + if (preTokenStackSize > 0) + token = popPreToken(); + else + scanner.tokenize(token); +} + +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-new/hlsl/hlslTokenStream.h b/deps/glslang/glslang-old/hlsl/hlslTokenStream.h similarity index 62% rename from deps/glslang-new/hlsl/hlslTokenStream.h rename to deps/glslang/glslang-old/hlsl/hlslTokenStream.h index cb6c9e7234..ec4288943e 100755 --- a/deps/glslang-new/hlsl/hlslTokenStream.h +++ b/deps/glslang/glslang-old/hlsl/hlslTokenStream.h @@ -1,11 +1,11 @@ // -// Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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_ @@ -52,10 +52,6 @@ namespace glslang { 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 @@ -64,10 +60,7 @@ namespace glslang { 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; + HlslScanContext& scanner; // lexical scanner, to get next token // This is the number of tokens we can recedeToken() over. static const int tokenBufferSize = 2; diff --git a/deps/glslang-new/hlsl/hlslTokens.h b/deps/glslang/glslang-old/hlsl/hlslTokens.h similarity index 75% rename from deps/glslang-new/hlsl/hlslTokens.h rename to deps/glslang/glslang-old/hlsl/hlslTokens.h index 4426bccecb..cfa63b7cfe 100755 --- a/deps/glslang-new/hlsl/hlslTokens.h +++ b/deps/glslang/glslang-old/hlsl/hlslTokens.h @@ -1,12 +1,12 @@ // -// Copyright (C) 2016 Google, Inc. -// Copyright (C) 2016 LunarG, Inc. +//Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 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_ @@ -65,8 +65,6 @@ enum EHlslTokenClass { EHTokOut, EHTokInOut, EHTokLayout, - EHTokGloballyCoherent, - EHTokInline, // primitive types EHTokPoint, @@ -80,10 +78,6 @@ enum EHlslTokenClass { EHTokLineStream, EHTokTriangleStream, - // Tessellation patches - EHTokInputPatch, - EHTokOutputPatch, - // template types EHTokBuffer, EHTokVector, @@ -95,7 +89,6 @@ enum EHlslTokenClass { EHTokBool, EHTokInt, EHTokUint, - EHTokUint64, EHTokDword, EHTokHalf, EHTokFloat, @@ -127,10 +120,6 @@ enum EHlslTokenClass { EHTokUint2, EHTokUint3, EHTokUint4, - EHTokHalf1, - EHTokHalf2, - EHTokHalf3, - EHTokHalf4, EHTokMin16float1, EHTokMin16float2, EHTokMin16float3, @@ -217,22 +206,6 @@ enum EHlslTokenClass { EHTokFloat4x2, EHTokFloat4x3, EHTokFloat4x4, - EHTokHalf1x1, - EHTokHalf1x2, - EHTokHalf1x3, - EHTokHalf1x4, - EHTokHalf2x1, - EHTokHalf2x2, - EHTokHalf2x3, - EHTokHalf2x4, - EHTokHalf3x1, - EHTokHalf3x2, - EHTokHalf3x3, - EHTokHalf3x4, - EHTokHalf4x1, - EHTokHalf4x2, - EHTokHalf4x3, - EHTokHalf4x4, EHTokDouble1x1, EHTokDouble1x2, EHTokDouble1x3, @@ -274,31 +247,17 @@ enum EHlslTokenClass { EHTokRWTexture2darray, EHTokRWTexture3d, EHTokRWBuffer, - EHTokSubpassInput, - EHTokSubpassInputMS, - // Structure buffer variants - EHTokAppendStructuredBuffer, - EHTokByteAddressBuffer, - EHTokConsumeStructuredBuffer, - EHTokRWByteAddressBuffer, - EHTokRWStructuredBuffer, - EHTokStructuredBuffer, - EHTokTextureBuffer, // variable, user type, ... EHTokIdentifier, - EHTokClass, + EHTokTypeName, EHTokStruct, EHTokCBuffer, EHTokTBuffer, EHTokTypedef, - EHTokThis, - EHTokNamespace, - EHTokConstantBuffer, // constant - EHTokFloat16Constant, EHTokFloatConstant, EHTokDoubleConstant, EHTokIntConstant, @@ -352,7 +311,6 @@ enum EHlslTokenClass { EHTokDot, EHTokComma, EHTokColon, - EHTokColonColon, EHTokSemicolon, EHTokBang, EHTokDash, diff --git a/deps/glslang/glslang-old/make-revision b/deps/glslang/glslang-old/make-revision new file mode 100755 index 0000000000..492e437562 --- /dev/null +++ b/deps/glslang/glslang-old/make-revision @@ -0,0 +1,10 @@ +#!/bin/sh +( +echo "// This header is generated by the make-revision script." +echo "// For the version, it uses the latest git tag followed by the number of commits." +echo "// For the date, it uses the current date (when then script is run)." + +echo +echo \#define GLSLANG_REVISION \"`git describe --tags --abbrev=0`.`git log --oneline | wc -l`\" +echo \#define GLSLANG_DATE \"`date +%d-%b-%Y`\" +) > glslang/Include/revision.h diff --git a/deps/glslang/glslang.cpp b/deps/glslang/glslang.cpp index a90b47c5f6..91ca10bd84 100644 --- a/deps/glslang/glslang.cpp +++ b/deps/glslang/glslang.cpp @@ -358,7 +358,7 @@ bool glslang::compile_spirv(const string &source, Stage stage, std::vector(EShMsgDefault | EShMsgVulkanRules | EShMsgSpvRules); string msg; - auto forbid_include = TShader::ForbidInclude(); + auto forbid_include = glslang::TShader::ForbidIncluder(); if (!shader.preprocess(&process.GetResources(), 100, ENoProfile, false, false, messages, &msg, forbid_include)) { diff --git a/deps/glslang/glslang/.appveyor.yml b/deps/glslang/glslang/.appveyor.yml index 64e7ae64af..07e269bedf 100644 --- a/deps/glslang/glslang/.appveyor.yml +++ b/deps/glslang/glslang/.appveyor.yml @@ -7,7 +7,7 @@ version: "{build}" os: Visual Studio 2013 platform: - - Any CPU + - x64 configuration: - Debug @@ -17,6 +17,13 @@ branches: only: - master +# Travis advances the master-tot tag to current top of the tree after +# each push into the master branch, because it relies on that tag to +# upload build artifacts to the master-tot release. This will cause +# double testing for each push on Appveyor: one for the push, one for +# the tag advance. Disable testing tags. +skip_tags: true + clone_depth: 5 matrix: @@ -25,6 +32,7 @@ matrix: # scripts that run after cloning repository install: - git clone https://github.com/google/googletest.git External/googletest + - C:/Python27/python.exe update_glslang_sources.py build: parallel: true # enable MSBuild parallel builds @@ -38,3 +46,45 @@ build_script: test_script: - ctest -C %CONFIGURATION% --output-on-failure - cd ../Test && bash runtests + - cd ../build + +after_test: + # For debug build, the generated dll has a postfix "d" in its name. + - ps: >- + If ($env:configuration -Match "Debug") { + $env:SUFFIX="d" + } Else { + $env:SUFFIX="" + } + - cd install + # Zip all glslang artifacts for uploading and deploying + - 7z a glslang-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip + bin\glslangValidator.exe + include\glslang\* + include\SPIRV\* + lib\glslang%SUFFIX%.lib + lib\HLSL%SUFFIX%.lib + lib\OGLCompiler%SUFFIX%.lib + lib\OSDependent%SUFFIX%.lib + lib\SPIRV%SUFFIX%.lib + lib\SPVRemapper%SUFFIX%.lib + lib\SPIRV-Tools%SUFFIX%.lib + lib\SPIRV-Tools-opt%SUFFIX%.lib + +artifacts: + - path: build\install\*.zip + name: artifacts-zip + +deploy: + - provider: GitHub + auth_token: + secure: YglcSYdl0TylEa59H4K6lylBEDr586NAt2EMgZquSo+iuPrwgZQuJLPCoihSm9y6 + release: master-tot + description: "Continuous build of the latest master branch by Appveyor and Travis CI" + artifact: artifacts-zip + draft: false + prerelease: false + force_update: true + on: + branch: master + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 diff --git a/deps/glslang/glslang/.gitignore b/deps/glslang/glslang/.gitignore index 30889ac7d9..a1fe3944b1 100644 --- a/deps/glslang/glslang/.gitignore +++ b/deps/glslang/glslang/.gitignore @@ -6,8 +6,5 @@ tags TAGS build/ Test/localResults/ -Test/multiThread.out -Test/singleThread.out -Test/vert.spv -Test/frag.spv External/googletest +External/spirv-tools diff --git a/deps/glslang/glslang/.travis.yml b/deps/glslang/glslang/.travis.yml index 4a88dce5a9..4fe4b5e5ba 100644 --- a/deps/glslang/glslang/.travis.yml +++ b/deps/glslang/glslang/.travis.yml @@ -7,12 +7,15 @@ os: - osx # Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment. -sudo: required +sudo: false dist: trusty env: - - GLSLANG_BUILD_TYPE=Release - - GLSLANG_BUILD_TYPE=Debug + global: + - secure: aGFrgzyKp+84hKrGkxVWg8cHV61uqrKEHT38gfSQK6+WS4GfLOyH83p7WnsEBb7AMhzU7LMNFdvOFr6+NaMpVnqRvc40CEG1Q+lNg9Pq9mhIZLowvDrfqTL9kQ+8Nbw5Q6/dg6CTvY7fvRfpfCEmKIUZBRkoKUuHeuM1uy3IupFcdNuL5bSYn3Beo+apSJginh9DI4BLDXFUgBzTRSLLyCX5g3cpaeGGOCr8quJlYx75W6HRck5g9SZuLtUoH9GFEV3l+ZEWB8noErW+J56L03bwNwFuuAh321evw++oQk5KFa8rlDvar3SJ3b1RHB8u/eq5DBYMyaK/fS8+Q7QbGr8diF/wDe68bKO7U9IhpNfExXmczCpExjHomW5TQv4rYdGhygPMfW97aIsPRYyNKcl4fkmb7NDrM8w0Jscdq2g5c2Kz0ItyZoBri/NXLwFQQjaVCs7Pf97TjuMA7mK0GJmDTRzi6SrDYlWMt5BQL3y0CCojyfLIRcTh0CQjQI29s97bLfQrYAxt9GNNFR+HTXRLLrkaAlJkPGEPwUywlSfEThnvHLesNxYqemolAYpQT4ithoL4GehGIHmaxsW295aKVhuRf8K9eBODNqrfblvM42UHhjntT+92ZnQ/Gkq80GqaMxnxi4PO5FyPIxt0r981b54YBkWi8YA4P7w5pNI= + matrix: + - GLSLANG_BUILD_TYPE=Release + - GLSLANG_BUILD_TYPE=Debug compiler: - clang @@ -24,6 +27,9 @@ matrix: # Skip GCC builds on Mac OS X. - os: osx compiler: gcc + include: + # Additional build using Android NDK. + - env: BUILD_NDK=ON cache: apt: true @@ -36,25 +42,82 @@ addons: apt: packages: - clang-3.6 - - ninja-build install: - # Install ninja on Mac OS X. - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ninja; fi - # Make sure that clang-3.6 is selected. + # Make sure that clang-3.6 is selected on Linux. - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then export CC=clang-3.6 CXX=clang++-3.6; fi + # Download Android NDK and Android CMake toolchain file. + - if [[ "$BUILD_NDK" == "ON" ]]; then + git clone --depth=1 https://github.com/urho3d/android-ndk.git $HOME/android-ndk; + export ANDROID_NDK=$HOME/android-ndk; + git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake; + export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake; + fi before_script: - - git clone https://github.com/google/googletest.git External/googletest + - git clone --depth=1 https://github.com/google/googletest.git External/googletest + - ./update_glslang_sources.py script: - mkdir build && cd build - # We need to install the compiled binaries so the paths in the runtests script can resolve correctly. - - cmake -GNinja -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=`pwd`/install .. - - ninja install - # Run Google-Test-based tests. - - ctest --output-on-failure - # Run runtests-based tests. - - cd ../Test && ./runtests + # For Android, do release building using NDK without testing. + # For Linux and macOS, do debug/release building with testing. + - if [[ "$BUILD_NDK" == "ON" ]]; then + cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} + -DANDROID_NATIVE_API_LEVEL=android-12 + -DCMAKE_BUILD_TYPE=Release + -DANDROID_ABI="armeabi-v7a with NEON" + -DBUILD_TESTING=OFF ..; + make -j4; + else + cmake -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=`pwd`/install ..; + make -j4 install; + ctest --output-on-failure && + cd ../Test && ./runtests; + fi + +after_success: + # For debug build, the generated dll has a postfix "d" in its name. + - if [[ "${GLSLANG_BUILD_TYPE}" == "Debug" ]]; then + export SUFFIX="d"; + else + export SUFFIX=""; + fi + # Create tarball for deployment + - if [[ ${CC} == clang* && "${BUILD_NDK}" != "ON" ]]; then + cd ../build/install; + export TARBALL=glslang-master-${TRAVIS_OS_NAME}-${GLSLANG_BUILD_TYPE}.zip; + zip ${TARBALL} + bin/glslangValidator + include/glslang/* + include/SPIRV/* + lib/libglslang${SUFFIX}.a + lib/libHLSL${SUFFIX}.a + lib/libOGLCompiler${SUFFIX}.a + lib/libOSDependent${SUFFIX}.a + lib/libSPIRV${SUFFIX}.a + lib/libSPVRemapper${SUFFIX}.a + lib/libSPIRV-Tools${SUFFIX}.a + lib/libSPIRV-Tools-opt${SUFFIX}.a; + fi + +before_deploy: + # Tag the current top of the tree as "master-tot". + # Travis CI replies on the tag name to properly push to GitHub Releases. + - git config --global user.name "Travis CI" + - git config --global user.email "builds@travis-ci.org" + - git tag -f master-tot + - git push -q -f https://${glslangtoken}@github.com/KhronosGroup/glslang --tags + +deploy: + provider: releases + api_key: ${glslangtoken} + on: + branch: master + condition: ${CC} == clang* && ${BUILD_NDK} != ON + file: ${TARBALL} + skip_cleanup: true + overwrite: true diff --git a/deps/glslang/glslang/CMakeLists.txt b/deps/glslang/glslang/CMakeLists.txt index 33b4764d59..9a869c2c00 100644 --- a/deps/glslang/glslang/CMakeLists.txt +++ b/deps/glslang/glslang/CMakeLists.txt @@ -1,58 +1,122 @@ -cmake_minimum_required(VERSION 2.8.11) +# increase to 3.1 once all major distributions +# include a version of CMake >= 3.1 +cmake_minimum_required(VERSION 2.8.12) +if (POLICY CMP0048) + cmake_policy(SET CMP0048 NEW) +endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) +# Adhere to GNU filesystem layout conventions +include(GNUInstallDirs) + +option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) + +set(LIB_TYPE STATIC) + +if(BUILD_SHARED_LIBS) + set(LIB_TYPE SHARED) +endif() + +option(SKIP_GLSLANG_INSTALL "Skip installation" ${SKIP_GLSLANG_INSTALL}) +if(NOT ${SKIP_GLSLANG_INSTALL}) + set(ENABLE_GLSLANG_INSTALL ON) +endif() + option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" ON) +option(ENABLE_GLSLANG_BINARIES "Builds glslangValidator and spirv-remap" ON) -enable_testing() +option(ENABLE_NV_EXTENSIONS "Enables support of Nvidia-specific extensions" ON) -set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix") +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) + set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "..." FORCE) +endif() project(glslang) +# make testing optional +include(CTest) if(ENABLE_AMD_EXTENSIONS) add_definitions(-DAMD_EXTENSIONS) endif(ENABLE_AMD_EXTENSIONS) +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") - include(ChooseMSVCCRT.cmake) + if(MSVC) + include(ChooseMSVCCRT.cmake) + endif(MSVC) add_definitions(-DGLSLANG_OSINCLUDE_WIN32) elseif(UNIX) - add_definitions(-fPIC) add_definitions(-DGLSLANG_OSINCLUDE_UNIX) else(WIN32) message("unknown platform") endif(WIN32) -if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs - -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable) - add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over. - add_definitions(-std=c++11) +if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") + add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs + -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable -fno-exceptions) + add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - add_definitions(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs - -Wunused-parameter -Wunused-value -Wunused-variable) - add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over. - add_definitions(-std=c++11) + add_compile_options(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs + -Wunused-parameter -Wunused-value -Wunused-variable) + add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. +endif() + +# Request C++11 +if(${CMAKE_VERSION} VERSION_LESS 3.1) + # CMake versions before 3.1 do not understand CMAKE_CXX_STANDARD + # remove this block once CMake >=3.1 has fixated in the ecosystem + add_compile_options(-std=c++11) +else() + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) endif() function(glslang_set_link_args TARGET) # For MinGW compiles, statically link against the GCC and C++ runtimes. # This avoids the need to ship those runtimes as DLLs. - if(WIN32) - if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") - set_target_properties(${TARGET} PROPERTIES - LINK_FLAGS "-static -static-libgcc -static-libstdc++") - endif() - endif(WIN32) + if(WIN32 AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") + set_target_properties(${TARGET} PROPERTIES + LINK_FLAGS "-static -static-libgcc -static-libstdc++") + endif() endfunction(glslang_set_link_args) # We depend on these for later projects, so they should come first. add_subdirectory(External) +if(NOT TARGET SPIRV-Tools-opt) + set(ENABLE_OPT OFF) +endif() + +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) -add_subdirectory(StandAlone) +if(ENABLE_GLSLANG_BINARIES) + add_subdirectory(StandAlone) +endif() add_subdirectory(SPIRV) -add_subdirectory(hlsl) +if(ENABLE_HLSL) + add_subdirectory(hlsl) +endif(ENABLE_HLSL) add_subdirectory(gtests) diff --git a/deps/glslang/glslang/External/CMakeLists.txt b/deps/glslang/glslang/External/CMakeLists.txt index 5180ea5693..4d9690134a 100644 --- a/deps/glslang/glslang/External/CMakeLists.txt +++ b/deps/glslang/glslang/External/CMakeLists.txt @@ -1,34 +1,43 @@ # Suppress all warnings from external projects. set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w) -if (TARGET gmock) - message(STATUS "Google Mock already configured - use it") -elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest) - # We need to make sure Google Test does not mess up with the - # global CRT settings on Windows. - if(WIN32) - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - endif(WIN32) - add_subdirectory(googletest) - set(GTEST_TARGETS - gtest - gtest_main - gmock - gmock_main - ) - foreach(target ${GTEST_TARGETS}) - set_property(TARGET ${target} PROPERTY FOLDER gtest) - endforeach() - mark_as_advanced(gmock_build_tests - BUILD_GMOCK - BUILD_GTEST - BUILD_SHARED_LIBS - gtest_build_samples - gtest_build_tests - gtest_disable_pthreads - gtest_force_shared_crt - gtest_hide_internal_symbols) -else() - message(STATUS - "Google Mock was not found - tests based on that will not build") +if(BUILD_TESTING) + if(TARGET gmock) + message(STATUS "Google Mock already configured - use it") + elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest) + # We need to make sure Google Test does not mess up with the + # global CRT settings on Windows. + if(WIN32) + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + endif(WIN32) + add_subdirectory(googletest) + set(GTEST_TARGETS + gtest + gtest_main + gmock + gmock_main) + foreach(target ${GTEST_TARGETS}) + set_property(TARGET ${target} PROPERTY FOLDER gtest) + endforeach() + mark_as_advanced(gmock_build_tests + BUILD_GMOCK + BUILD_GTEST + BUILD_SHARED_LIBS + gtest_build_samples + gtest_build_tests + gtest_disable_pthreads + gtest_force_shared_crt + gtest_hide_internal_symbols) + else() + message(STATUS + "Google Mock was not found - tests based on that will not build") + endif() endif() + +if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools) + set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests") + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools) + endif() +endif() + diff --git a/deps/glslang/glslang/OGLCompilersDLL/CMakeLists.txt b/deps/glslang/glslang/OGLCompilersDLL/CMakeLists.txt index 4954db9458..5bb3f0ee69 100644 --- a/deps/glslang/glslang/OGLCompilersDLL/CMakeLists.txt +++ b/deps/glslang/glslang/OGLCompilersDLL/CMakeLists.txt @@ -2,10 +2,13 @@ set(SOURCES InitializeDll.cpp InitializeDll.h) add_library(OGLCompiler STATIC ${SOURCES}) set_property(TARGET OGLCompiler PROPERTY FOLDER glslang) +set_property(TARGET OGLCompiler PROPERTY POSITION_INDEPENDENT_CODE ON) if(WIN32) source_group("Source" FILES ${SOURCES}) endif(WIN32) -install(TARGETS OGLCompiler - ARCHIVE DESTINATION lib) +if(ENABLE_GLSLANG_INSTALL) + install(TARGETS OGLCompiler + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.cpp b/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.cpp index e479881520..abea9108b1 100644 --- a/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.cpp +++ b/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // #define SH_EXPORTING @@ -38,13 +38,17 @@ #include "InitializeDll.h" #include "../glslang/Include/InitializeGlobals.h" - #include "../glslang/Public/ShaderLang.h" +#include "../glslang/Include/PoolAlloc.h" namespace glslang { OS_TLSIndex ThreadInitializeIndex = OS_INVALID_TLS_INDEX; +// Per-process initialization. +// Needs to be called at least once before parsing, etc. is done. +// Will also do thread initialization for the calling thread; other +// threads will need to do that explicitly. bool InitProcess() { glslang::GetGlobalLock(); @@ -85,7 +89,9 @@ bool InitProcess() return true; } - +// Per-thread scoped initialization. +// Must be called at least once by each new thread sharing the +// symbol tables, etc., needed to parse. bool InitThread() { // @@ -99,17 +105,21 @@ bool InitThread() if (OS_GetTLSValue(ThreadInitializeIndex) != 0) return true; - InitializeMemoryPools(); - if (! OS_SetTLSValue(ThreadInitializeIndex, (void *)1)) { assert(0 && "InitThread(): Unable to set init flag."); return false; } + glslang::SetThreadPoolAllocator(nullptr); + return true; } - +// Not necessary to call this: InitThread() is reentrant, and the need +// to do per thread tear down has been removed. +// +// This is kept, with memory management removed, to satisfy any exiting +// calls to it that rely on it. bool DetachThread() { bool success = true; @@ -125,14 +135,18 @@ bool DetachThread() assert(0 && "DetachThread(): Unable to clear init flag."); success = false; } - - FreeGlobalPools(); - } return success; } +// Not necessary to call this: InitProcess() is reentrant. +// +// This is kept, with memory management removed, to satisfy any exiting +// calls to it that rely on it. +// +// Users of glslang should call shFinalize() or glslang::FinalizeProcess() for +// process-scoped memory tear down. bool DetachProcess() { bool success = true; @@ -140,12 +154,8 @@ bool DetachProcess() if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) return true; - ShFinalize(); - success = DetachThread(); - FreePoolIndex(); - OS_FreeTLSIndex(ThreadInitializeIndex); ThreadInitializeIndex = OS_INVALID_TLS_INDEX; diff --git a/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.h b/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.h index 2d24557435..661cee4d24 100644 --- a/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.h +++ b/deps/glslang/glslang/OGLCompilersDLL/InitializeDll.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,31 +18,30 @@ // 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 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 __INITIALIZEDLL_H #define __INITIALIZEDLL_H - #include "../glslang/OSDependent/osinclude.h" namespace glslang { bool InitProcess(); bool InitThread(); -bool DetachThread(); -bool DetachProcess(); +bool DetachThread(); // not called from standalone, perhaps other tools rely on parts of it +bool DetachProcess(); // not called from standalone, perhaps other tools rely on parts of it } // end namespace glslang diff --git a/deps/glslang/glslang/README.md b/deps/glslang/glslang/README.md index 9cfdce1839..402b4d6005 100644 --- a/deps/glslang/glslang/README.md +++ b/deps/glslang/glslang/README.md @@ -17,7 +17,7 @@ There are several components: 1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST. -2. An HLSL front-end for translation of a broad generic HLL into the AST. +2. An HLSL front-end for translation of a broad generic HLL into the AST. See [issue 362](https://github.com/KhronosGroup/glslang/issues/362) and [issue 701](https://github.com/KhronosGroup/glslang/issues/701) for current status. 3. A SPIR-V back end for translating the AST to SPIR-V. @@ -49,21 +49,31 @@ There is also a non-shader extension Building -------- +Instead of building manually, you can also download the binaries for your +platform directly from the [master-tot release][master-tot-release] on GitHub. +Those binaries are automatically uploaded by the buildbots after successful +testing and they always reflect the current top of the tree of the master +branch. + ### Dependencies +* A C++11 compiler. + (For MSVS: 2015 is recommended, 2013 is fully supported/tested, and 2010 support is attempted, but not tested.) * [CMake][cmake]: for generating compilation targets. +* make: _Linux_, ninja is an alternative, if configured. +* [Python 2.7][python]: for executing SPIRV-Tools scripts. (Optional if not using SPIRV-Tools.) * [bison][bison]: _optional_, but needed when changing the grammar (glslang.y). * [googletest][googletest]: _optional_, but should use if making any changes to glslang. ### Build steps +The following steps assume a Bash shell. On Windows, that could be the Git Bash +shell or some other shell of your choosing. + #### 1) Check-Out this project ```bash cd -# If using SSH -git clone git@github.com:KhronosGroup/glslang.git -# Or if using HTTPS git clone https://github.com/KhronosGroup/glslang.git ``` @@ -74,24 +84,35 @@ cd git clone https://github.com/google/googletest.git External/googletest ``` -#### 3) Configure - -Assume the source directory is `$SOURCE_DIR` and -the build directory is `$BUILD_DIR`: - -For building on Linux (assuming using the Ninja generator): +If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan, +or wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, install +spirv-tools with this: ```bash -cd $BUILD_DIR +./update_glslang_sources.py +``` -cmake -GNinja -DCMAKE_BUILD_TYPE={Debug|Release|RelWithDebInfo} \ - -DCMAKE_INSTALL_PREFIX=`pwd`/install $SOURCE_DIR +#### 3) Configure + +Assume the source directory is `$SOURCE_DIR` and the build directory is +`$BUILD_DIR`. First ensure the build directory exists, then navigate to it: + +```bash +mkdir -p $BUILD_DIR +cd $BUILD_DIR +``` + +For building on Linux: + +```bash +cmake -DCMAKE_BUILD_TYPE={Debug|Release|RelWithDebInfo} \ + -DCMAKE_INSTALL_PREFIX="$(pwd)/install" $SOURCE_DIR ``` For building on Windows: ```bash -cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=`pwd`/install +cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX="$(pwd)/install" # The CMAKE_INSTALL_PREFIX part is for testing (explained later). ``` @@ -101,7 +122,7 @@ The CMake GUI also works for Windows (version 3.4.1 tested). ```bash # for Linux: -ninja install +make -j4 install # for Windows: cmake --build . --config {Release|Debug|MinSizeRel|RelWithDebInfo} \ @@ -220,8 +241,11 @@ bool InitializeProcess(); void FinalizeProcess(); class TShader + setStrings(...); + setEnvInput(EShSourceHlsl or EShSourceGlsl, stage, EShClientVulkan or EShClientOpenGL, 100); + setEnvClient(EShClientVulkan or EShClientOpenGL, EShTargetVulkan_1_0 or EShTargetVulkan_1_1 or EShTargetOpenGL_450); + setEnvTarget(EShTargetSpv, EShTargetSpv_1_0 or EShTargetSpv_1_3); bool parse(...); - void setStrings(...); const char* getInfoLog(); class TProgram @@ -301,6 +325,8 @@ Basic Internal Operation [cmake]: https://cmake.org/ +[python]: https://www.python.org/ [bison]: https://www.gnu.org/software/bison/ [googletest]: https://github.com/google/googletest [bison-gnu-win32]: http://gnuwin32.sourceforge.net/packages/bison.htm +[master-tot-release]: https://github.com/KhronosGroup/glslang/releases/tag/master-tot diff --git a/deps/glslang/glslang/SPIRV/CMakeLists.txt b/deps/glslang/glslang/SPIRV/CMakeLists.txt index 2c65d71a6f..1e5513c735 100755 --- a/deps/glslang/glslang/SPIRV/CMakeLists.txt +++ b/deps/glslang/glslang/SPIRV/CMakeLists.txt @@ -14,6 +14,7 @@ set(HEADERS bitutils.h spirv.hpp GLSL.std.450.h + GLSL.ext.EXT.h GLSL.ext.KHR.h GlslangToSpv.h hex_float.h @@ -33,16 +34,50 @@ if(ENABLE_AMD_EXTENSIONS) GLSL.ext.AMD.h) endif(ENABLE_AMD_EXTENSIONS) -add_library(SPIRV STATIC ${SOURCES} ${HEADERS}) -set_property(TARGET SPIRV PROPERTY FOLDER glslang) +if(ENABLE_NV_EXTENSIONS) + list(APPEND + HEADERS + GLSL.ext.NV.h) +endif(ENABLE_NV_EXTENSIONS) -add_library(SPVRemapper STATIC ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) +add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS}) +set_property(TARGET SPIRV PROPERTY FOLDER glslang) +set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON) +target_include_directories(SPIRV PUBLIC ..) + +add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) +set_property(TARGET SPVRemapper PROPERTY POSITION_INDEPENDENT_CODE ON) + +if(WIN32 AND BUILD_SHARED_LIBS) + set_target_properties(SPIRV PROPERTIES PREFIX "") + set_target_properties(SPVRemapper PROPERTIES PREFIX "") +endif() + +if(ENABLE_OPT) + target_include_directories(SPIRV + PRIVATE ${spirv-tools_SOURCE_DIR}/include + PRIVATE ${spirv-tools_SOURCE_DIR}/source + ) + target_link_libraries(SPIRV glslang SPIRV-Tools-opt) +else() + target_link_libraries(SPIRV glslang) +endif(ENABLE_OPT) if(WIN32) source_group("Source" FILES ${SOURCES} ${HEADERS}) source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) endif(WIN32) -install(TARGETS SPIRV SPVRemapper - ARCHIVE DESTINATION lib) +if(ENABLE_GLSLANG_INSTALL) + if(BUILD_SHARED_LIBS) + install(TARGETS SPIRV SPVRemapper + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + else() + install(TARGETS SPIRV SPVRemapper + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + + install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/) +endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/glslang/SPIRV/GLSL.ext.AMD.h b/deps/glslang/glslang/SPIRV/GLSL.ext.AMD.h index d2098cc1af..009d2f1cf0 100644 --- a/deps/glslang/glslang/SPIRV/GLSL.ext.AMD.h +++ b/deps/glslang/glslang/SPIRV/GLSL.ext.AMD.h @@ -27,25 +27,12 @@ #ifndef GLSLextAMD_H #define GLSLextAMD_H -enum BuiltIn; -enum Decoration; -enum Op; - static const int GLSLextAMDVersion = 100; -static const int GLSLextAMDRevision = 2; +static const int GLSLextAMDRevision = 7; // SPV_AMD_shader_ballot static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; -static const Op OpGroupIAddNonUniformAMD = static_cast(5000); -static const Op OpGroupFAddNonUniformAMD = static_cast(5001); -static const Op OpGroupFMinNonUniformAMD = static_cast(5002); -static const Op OpGroupUMinNonUniformAMD = static_cast(5003); -static const Op OpGroupSMinNonUniformAMD = static_cast(5004); -static const Op OpGroupFMaxNonUniformAMD = static_cast(5005); -static const Op OpGroupUMaxNonUniformAMD = static_cast(5006); -static const Op OpGroupSMaxNonUniformAMD = static_cast(5007); - enum ShaderBallotAMD { ShaderBallotBadAMD = 0, // Don't use @@ -79,16 +66,6 @@ enum ShaderTrinaryMinMaxAMD { // SPV_AMD_shader_explicit_vertex_parameter static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter"; -static const BuiltIn BuiltInBaryCoordNoPerspAMD = static_cast(4992); -static const BuiltIn BuiltInBaryCoordNoPerspCentroidAMD = static_cast(4993); -static const BuiltIn BuiltInBaryCoordNoPerspSampleAMD = static_cast(4994); -static const BuiltIn BuiltInBaryCoordSmoothAMD = static_cast(4995); -static const BuiltIn BuiltInBaryCoordSmoothCentroidAMD = static_cast(4996); -static const BuiltIn BuiltInBaryCoordSmoothSampleAMD = static_cast(4997); -static const BuiltIn BuiltInBaryCoordPullModelAMD = static_cast(4998); - -static const Decoration DecorationExplicitInterpAMD = static_cast(4999); - enum ShaderExplicitVertexParameterAMD { ShaderExplicitVertexParameterBadAMD = 0, // Don't use @@ -113,4 +90,19 @@ enum GcnShaderAMD { // SPV_AMD_gpu_shader_half_float static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float"; +// SPV_AMD_texture_gather_bias_lod +static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod"; + +// SPV_AMD_gpu_shader_int16 +static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16"; + +// SPV_AMD_shader_image_load_store_lod +static const char* const E_SPV_AMD_shader_image_load_store_lod = "SPV_AMD_shader_image_load_store_lod"; + +// SPV_AMD_shader_fragment_mask +static const char* const E_SPV_AMD_shader_fragment_mask = "SPV_AMD_shader_fragment_mask"; + +// SPV_AMD_gpu_shader_half_float_fetch +static const char* const E_SPV_AMD_gpu_shader_half_float_fetch = "SPV_AMD_gpu_shader_half_float_fetch"; + #endif // #ifndef GLSLextAMD_H diff --git a/deps/glslang-new/SPIRV/GLSL.ext.EXT.h b/deps/glslang/glslang/SPIRV/GLSL.ext.EXT.h similarity index 100% rename from deps/glslang-new/SPIRV/GLSL.ext.EXT.h rename to deps/glslang/glslang/SPIRV/GLSL.ext.EXT.h diff --git a/deps/glslang/glslang/SPIRV/GLSL.ext.KHR.h b/deps/glslang/glslang/SPIRV/GLSL.ext.KHR.h index 344dd398c3..d8ea9b67d6 100644 --- a/deps/glslang/glslang/SPIRV/GLSL.ext.KHR.h +++ b/deps/glslang/glslang/SPIRV/GLSL.ext.KHR.h @@ -27,10 +27,16 @@ #ifndef GLSLextKHR_H #define GLSLextKHR_H -// SPV_KHR_shader_ballot -static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot"; +static const int GLSLextKHRVersion = 100; +static const int GLSLextKHRRevision = 2; -// SPV_KHR_shader_draw_parameters +static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot"; +static const char* const E_SPV_KHR_subgroup_vote = "SPV_KHR_subgroup_vote"; +static const char* const E_SPV_KHR_device_group = "SPV_KHR_device_group"; +static const char* const E_SPV_KHR_multiview = "SPV_KHR_multiview"; static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters"; +static const char* const E_SPV_KHR_16bit_storage = "SPV_KHR_16bit_storage"; +static const char* const E_SPV_KHR_storage_buffer_storage_class = "SPV_KHR_storage_buffer_storage_class"; +static const char* const E_SPV_KHR_post_depth_coverage = "SPV_KHR_post_depth_coverage"; #endif // #ifndef GLSLextKHR_H diff --git a/deps/glslang-new/SPIRV/GLSL.ext.NV.h b/deps/glslang/glslang/SPIRV/GLSL.ext.NV.h similarity index 100% rename from deps/glslang-new/SPIRV/GLSL.ext.NV.h rename to deps/glslang/glslang/SPIRV/GLSL.ext.NV.h diff --git a/deps/glslang/glslang/SPIRV/GLSL.std.450.h b/deps/glslang/glslang/SPIRV/GLSL.std.450.h index 86d3da8065..df31092bec 100755 --- a/deps/glslang/glslang/SPIRV/GLSL.std.450.h +++ b/deps/glslang/glslang/SPIRV/GLSL.std.450.h @@ -13,7 +13,7 @@ ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ +** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, diff --git a/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp b/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp index 15af947c29..ec1b5308d9 100755 --- a/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp +++ b/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp @@ -1,12 +1,13 @@ // -//Copyright (C) 2014-2016 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2014-2016 LunarG, Inc. +// Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // Visit the nodes in the glslang intermediate tree representation to @@ -44,11 +45,24 @@ namespace spv { #include "GLSL.std.450.h" #include "GLSL.ext.KHR.h" + #include "GLSL.ext.EXT.h" #ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" #endif +#ifdef NV_EXTENSIONS + #include "GLSL.ext.NV.h" +#endif } +#if ENABLE_OPT + #include "spirv-tools/optimizer.hpp" + #include "message.h" +#endif + +#if ENABLE_OPT +using namespace spvtools; +#endif + // Glslang includes #include "../glslang/MachineIndependent/localintermediate.h" #include "../glslang/MachineIndependent/SymbolTable.h" @@ -65,11 +79,6 @@ namespace spv { namespace { -// For low-order part of the generator's magic number. Bump up -// when there is a change in the style (e.g., if SSA form changes, -// or a different instruction sequence to do something gets used). -const int GeneratorVersion = 1; - namespace { class SpecConstantOpModeGuard { public: @@ -89,7 +98,14 @@ private: spv::Builder* builder_; bool previous_flag_; }; -} + +struct OpDecorations { + spv::Decoration precision; + spv::Decoration noContraction; + spv::Decoration nonUniform; +}; + +} // namespace // // The main holder of information for translating glslang to SPIR-V. @@ -98,7 +114,8 @@ private: // class TGlslangToSpvTraverser : public glslang::TIntermTraverser { public: - TGlslangToSpvTraverser(const glslang::TIntermediate*, spv::SpvBuildLogger* logger); + TGlslangToSpvTraverser(unsigned int spvVersion, const glslang::TIntermediate*, spv::SpvBuildLogger* logger, + glslang::SpvOptions& options); virtual ~TGlslangToSpvTraverser() { } bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*); @@ -115,17 +132,28 @@ public: void dumpSpv(std::vector& out); protected: + TGlslangToSpvTraverser(TGlslangToSpvTraverser&); + TGlslangToSpvTraverser& operator=(TGlslangToSpvTraverser&); + spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier); spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier); + spv::Decoration TranslateNonUniformDecoration(const glslang::TQualifier& qualifier); spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration); spv::ImageFormat TranslateImageFormat(const glslang::TType& type); + spv::SelectionControlMask TranslateSelectionControl(const glslang::TIntermSelection&) const; + spv::SelectionControlMask TranslateSwitchControl(const glslang::TIntermSwitch&) const; + spv::LoopControlMask TranslateLoopControl(const glslang::TIntermLoop&, unsigned int& dependencyLength) const; + spv::StorageClass TranslateStorageClass(const glslang::TType&); + void addIndirectionIndexCapabilities(const glslang::TType& baseType, const glslang::TType& indexType); spv::Id createSpvVariable(const glslang::TIntermSymbol*); spv::Id getSampledType(const glslang::TSampler&); spv::Id getInvertedSwizzleType(const glslang::TIntermTyped&); spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult); void convertSwizzle(const glslang::TIntermAggregate&, std::vector& swizzle); spv::Id convertGlslangToSpvType(const glslang::TType& type); - spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&); + spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&, + bool lastBufferBlockMember); + bool filterMember(const glslang::TType& member); spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct, glslang::TLayoutPacking, const glslang::TQualifier&); void decorateStructType(const glslang::TType&, const glslang::TTypeList* glslangStruct, glslang::TLayoutPacking, @@ -137,10 +165,13 @@ protected: glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const; int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix); int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix); - void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix); + void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, + int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix); void declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember); bool isShaderEntryPoint(const glslang::TIntermAggregate* node); + bool writableParam(glslang::TStorageQualifier) const; + bool originalParam(glslang::TStorageQualifier, const glslang::TType&, bool implicitThisParam); void makeFunctions(const glslang::TIntermSequence&); void makeGlobalInitializers(const glslang::TIntermSequence&); void visitFunctions(const glslang::TIntermSequence&); @@ -150,29 +181,39 @@ protected: spv::Id createImageTextureFunctionCall(glslang::TIntermOperator* node); spv::Id handleUserFunctionCall(const glslang::TIntermAggregate*); - spv::Id createBinaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison = true); - spv::Id createBinaryMatrixOperation(spv::Op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right); - spv::Id createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy); - spv::Id createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy); - spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy); + spv::Id createBinaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right, + glslang::TBasicType typeProxy, bool reduceComparison = true); + spv::Id createBinaryMatrixOperation(spv::Op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right); + spv::Id createUnaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id operand, + glslang::TBasicType typeProxy); + spv::Id createUnaryMatrixOperation(spv::Op op, OpDecorations&, spv::Id typeId, spv::Id operand, + glslang::TBasicType typeProxy); + spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand, + glslang::TBasicType typeProxy); + spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); - spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector& operands); + spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, spv::Id typeId, std::vector& operands); + spv::Id createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId); spv::Id getSymbolId(const glslang::TIntermSymbol* node); - void addDecoration(spv::Id id, spv::Decoration dec); - void addDecoration(spv::Id id, spv::Decoration dec, unsigned value); - void addMemberDecoration(spv::Id id, int member, spv::Decoration dec); - void addMemberDecoration(spv::Id id, int member, spv::Decoration dec, unsigned value); spv::Id createSpvConstant(const glslang::TIntermTyped&); spv::Id createSpvConstantFromConstUnionArray(const glslang::TType& type, const glslang::TConstUnionArray&, int& nextConst, bool specConstant); bool isTrivialLeaf(const glslang::TIntermTyped* node); bool isTrivial(const glslang::TIntermTyped* node); spv::Id createShortCircuit(glslang::TOperator, glslang::TIntermTyped& left, glslang::TIntermTyped& right); +#ifdef AMD_EXTENSIONS spv::Id getExtBuiltins(const char* name); +#endif + void addPre13Extension(const char* ext) + { + if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) + builder.addExtension(ext); + } + glslang::SpvOptions& options; spv::Function* shaderEntry; spv::Function* currentFunction; spv::Instruction* entryPoint; @@ -194,8 +235,10 @@ protected: std::unordered_set rValueParameters; // set of formal function parameters passed as rValues, rather than a pointer std::unordered_map functionMap; std::unordered_map structMap[glslang::ElpCount][glslang::ElmCount]; - std::unordered_map > memberRemapper; // for mapping glslang block indices to spv indices (e.g., due to hidden members) + // for mapping glslang block indices to spv indices (e.g., due to hidden members): + std::unordered_map > memberRemapper; std::stack breakForLoop; // false means break for switch + std::unordered_map counterOriginator; }; // @@ -218,8 +261,7 @@ spv::SourceLanguage TranslateSourceLanguage(glslang::EShSource source, EProfile return spv::SourceLanguageUnknown; } case glslang::EShSourceHlsl: - //Use SourceLanguageUnknown instead of SourceLanguageHLSL for now, until Vulkan knows what HLSL is - return spv::SourceLanguageUnknown; + return spv::SourceLanguageHLSL; default: return spv::SourceLanguageUnknown; } @@ -241,38 +283,6 @@ spv::ExecutionModel TranslateExecutionModel(EShLanguage stage) } } -// Translate glslang type to SPIR-V storage class. -spv::StorageClass TranslateStorageClass(const glslang::TType& type) -{ - if (type.getQualifier().isPipeInput()) - return spv::StorageClassInput; - else if (type.getQualifier().isPipeOutput()) - return spv::StorageClassOutput; - else if (type.getBasicType() == glslang::EbtSampler) - return spv::StorageClassUniformConstant; - else if (type.getBasicType() == glslang::EbtAtomicUint) - return spv::StorageClassAtomicCounter; - else if (type.getQualifier().isUniformOrBuffer()) { - if (type.getQualifier().layoutPushConstant) - return spv::StorageClassPushConstant; - if (type.getBasicType() == glslang::EbtBlock) - return spv::StorageClassUniform; - else - return spv::StorageClassUniformConstant; - // TODO: how are we distinguishing between default and non-default non-writable uniforms? Do default uniforms even exist? - } else { - switch (type.getQualifier().storage) { - case glslang::EvqShared: return spv::StorageClassWorkgroup; break; - case glslang::EvqGlobal: return spv::StorageClassPrivate; - case glslang::EvqConstReadOnly: return spv::StorageClassFunction; - case glslang::EvqTemporary: return spv::StorageClassFunction; - default: - assert(0); - return spv::StorageClassFunction; - } - } -} - // Translate glslang sampler type to SPIR-V dimensionality. spv::Dim TranslateDimensionality(const glslang::TSampler& sampler) { @@ -308,12 +318,12 @@ spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type) } // Translate glslang type to SPIR-V block decorations. -spv::Decoration TranslateBlockDecoration(const glslang::TType& type) +spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useStorageBuffer) { if (type.getBasicType() == glslang::EbtBlock) { switch (type.getQualifier().storage) { case glslang::EvqUniform: return spv::DecorationBlock; - case glslang::EvqBuffer: return spv::DecorationBufferBlock; + case glslang::EvqBuffer: return useStorageBuffer ? spv::DecorationBlock : spv::DecorationBufferBlock; case glslang::EvqVaryingIn: return spv::DecorationBlock; case glslang::EvqVaryingOut: return spv::DecorationBlock; default: @@ -330,8 +340,10 @@ void TranslateMemoryDecoration(const glslang::TQualifier& qualifier, std::vector { if (qualifier.coherent) memory.push_back(spv::DecorationCoherent); - if (qualifier.volatil) + if (qualifier.volatil) { memory.push_back(spv::DecorationVolatile); + memory.push_back(spv::DecorationCoherent); + } if (qualifier.restrict) memory.push_back(spv::DecorationRestrict); if (qualifier.readonly) @@ -436,6 +448,17 @@ spv::Decoration TranslateNoContractionDecoration(const glslang::TQualifier& qual return spv::DecorationMax; } +// If glslang type is nonUniform, return SPIR-V NonUniform decoration. +spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration(const glslang::TQualifier& qualifier) +{ + if (qualifier.isNonUniform()) { + builder.addExtension("SPV_EXT_descriptor_indexing"); + builder.addCapability(spv::CapabilityShaderNonUniformEXT); + return spv::DecorationNonUniformEXT; + } else + return spv::DecorationMax; +} + // Translate a glslang built-in variable to a SPIR-V built in decoration. Also generate // associated capabilities when required. For some built-in variables, a capability // is generated only when using the variable in an executable instruction, but not when @@ -469,16 +492,23 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI // case glslang::EbvClipDistance: if (!memberDeclaration) - builder.addCapability(spv::CapabilityClipDistance); + builder.addCapability(spv::CapabilityClipDistance); return spv::BuiltInClipDistance; case glslang::EbvCullDistance: if (!memberDeclaration) - builder.addCapability(spv::CapabilityCullDistance); + builder.addCapability(spv::CapabilityCullDistance); return spv::BuiltInCullDistance; case glslang::EbvViewportIndex: builder.addCapability(spv::CapabilityMultiViewport); + if (glslangIntermediate->getStage() == EShLangVertex || + glslangIntermediate->getStage() == EShLangTessControl || + glslangIntermediate->getStage() == EShLangTessEvaluation) { + + builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer); + builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); + } return spv::BuiltInViewportIndex; case glslang::EbvSampleId: @@ -490,11 +520,17 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI return spv::BuiltInSamplePosition; case glslang::EbvSampleMask: - builder.addCapability(spv::CapabilitySampleRateShading); return spv::BuiltInSampleMask; case glslang::EbvLayer: builder.addCapability(spv::CapabilityGeometry); + if (glslangIntermediate->getStage() == EShLangVertex || + glslangIntermediate->getStage() == EShLangTessControl || + glslangIntermediate->getStage() == EShLangTessEvaluation) { + + builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer); + builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); + } return spv::BuiltInLayer; case glslang::EbvPosition: return spv::BuiltInPosition; @@ -504,17 +540,17 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex; case glslang::EbvBaseVertex: - builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInBaseVertex; case glslang::EbvBaseInstance: - builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInBaseInstance; case glslang::EbvDrawId: - builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + addPre13Extension(spv::E_SPV_KHR_shader_draw_parameters); builder.addCapability(spv::CapabilityDrawParameters); return spv::BuiltInDrawIndex; @@ -523,6 +559,11 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addCapability(spv::CapabilityGeometry); return spv::BuiltInPrimitiveId; + case glslang::EbvFragStencilRef: + builder.addExtension(spv::E_SPV_EXT_shader_stencil_export); + builder.addCapability(spv::CapabilityStencilExportEXT); + return spv::BuiltInFragStencilRefEXT; + case glslang::EbvInvocationId: return spv::BuiltInInvocationId; case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner; case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter; @@ -575,6 +616,46 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addCapability(spv::CapabilitySubgroupBallotKHR); return spv::BuiltInSubgroupLtMaskKHR; + case glslang::EbvNumSubgroups: + builder.addCapability(spv::CapabilityGroupNonUniform); + return spv::BuiltInNumSubgroups; + + case glslang::EbvSubgroupID: + builder.addCapability(spv::CapabilityGroupNonUniform); + return spv::BuiltInSubgroupId; + + case glslang::EbvSubgroupSize2: + builder.addCapability(spv::CapabilityGroupNonUniform); + return spv::BuiltInSubgroupSize; + + case glslang::EbvSubgroupInvocation2: + builder.addCapability(spv::CapabilityGroupNonUniform); + return spv::BuiltInSubgroupLocalInvocationId; + + case glslang::EbvSubgroupEqMask2: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformBallot); + return spv::BuiltInSubgroupEqMask; + + case glslang::EbvSubgroupGeMask2: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformBallot); + return spv::BuiltInSubgroupGeMask; + + case glslang::EbvSubgroupGtMask2: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformBallot); + return spv::BuiltInSubgroupGtMask; + + case glslang::EbvSubgroupLeMask2: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformBallot); + return spv::BuiltInSubgroupLeMask; + + case glslang::EbvSubgroupLtMask2: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformBallot); + return spv::BuiltInSubgroupLtMask; #ifdef AMD_EXTENSIONS case glslang::EbvBaryCoordNoPersp: builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); @@ -604,7 +685,55 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); return spv::BuiltInBaryCoordPullModelAMD; #endif - default: return spv::BuiltInMax; + + case glslang::EbvDeviceIndex: + addPre13Extension(spv::E_SPV_KHR_device_group); + builder.addCapability(spv::CapabilityDeviceGroup); + return spv::BuiltInDeviceIndex; + + case glslang::EbvViewIndex: + addPre13Extension(spv::E_SPV_KHR_multiview); + builder.addCapability(spv::CapabilityMultiView); + return spv::BuiltInViewIndex; + +#ifdef NV_EXTENSIONS + case glslang::EbvViewportMaskNV: + if (!memberDeclaration) { + builder.addExtension(spv::E_SPV_NV_viewport_array2); + builder.addCapability(spv::CapabilityShaderViewportMaskNV); + } + return spv::BuiltInViewportMaskNV; + case glslang::EbvSecondaryPositionNV: + if (!memberDeclaration) { + builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); + builder.addCapability(spv::CapabilityShaderStereoViewNV); + } + return spv::BuiltInSecondaryPositionNV; + case glslang::EbvSecondaryViewportMaskNV: + if (!memberDeclaration) { + builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); + builder.addCapability(spv::CapabilityShaderStereoViewNV); + } + return spv::BuiltInSecondaryViewportMaskNV; + case glslang::EbvPositionPerViewNV: + if (!memberDeclaration) { + builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes); + builder.addCapability(spv::CapabilityPerViewAttributesNV); + } + return spv::BuiltInPositionPerViewNV; + case glslang::EbvViewportMaskPerViewNV: + if (!memberDeclaration) { + builder.addExtension(spv::E_SPV_NVX_multiview_per_view_attributes); + builder.addCapability(spv::CapabilityPerViewAttributesNV); + } + return spv::BuiltInViewportMaskPerViewNV; + case glslang::EbvFragFullyCoveredNV: + builder.addExtension(spv::E_SPV_EXT_fragment_fully_covered); + builder.addCapability(spv::CapabilityFragmentFullyCoveredEXT); + return spv::BuiltInFullyCoveredEXT; +#endif + default: + return spv::BuiltInMax; } } @@ -696,6 +825,122 @@ spv::ImageFormat TGlslangToSpvTraverser::TranslateImageFormat(const glslang::TTy } } +spv::SelectionControlMask TGlslangToSpvTraverser::TranslateSelectionControl(const glslang::TIntermSelection& selectionNode) const +{ + if (selectionNode.getFlatten()) + return spv::SelectionControlFlattenMask; + if (selectionNode.getDontFlatten()) + return spv::SelectionControlDontFlattenMask; + return spv::SelectionControlMaskNone; +} + +spv::SelectionControlMask TGlslangToSpvTraverser::TranslateSwitchControl(const glslang::TIntermSwitch& switchNode) const +{ + if (switchNode.getFlatten()) + return spv::SelectionControlFlattenMask; + if (switchNode.getDontFlatten()) + return spv::SelectionControlDontFlattenMask; + return spv::SelectionControlMaskNone; +} + +// return a non-0 dependency if the dependency argument must be set +spv::LoopControlMask TGlslangToSpvTraverser::TranslateLoopControl(const glslang::TIntermLoop& loopNode, + unsigned int& dependencyLength) const +{ + spv::LoopControlMask control = spv::LoopControlMaskNone; + + if (loopNode.getDontUnroll()) + control = control | spv::LoopControlDontUnrollMask; + if (loopNode.getUnroll()) + control = control | spv::LoopControlUnrollMask; + if (unsigned(loopNode.getLoopDependency()) == glslang::TIntermLoop::dependencyInfinite) + control = control | spv::LoopControlDependencyInfiniteMask; + else if (loopNode.getLoopDependency() > 0) { + control = control | spv::LoopControlDependencyLengthMask; + dependencyLength = loopNode.getLoopDependency(); + } + + return control; +} + +// Translate glslang type to SPIR-V storage class. +spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::TType& type) +{ + if (type.getQualifier().isPipeInput()) + return spv::StorageClassInput; + if (type.getQualifier().isPipeOutput()) + return spv::StorageClassOutput; + + if (glslangIntermediate->getSource() != glslang::EShSourceHlsl || + type.getQualifier().storage == glslang::EvqUniform) { + if (type.getBasicType() == glslang::EbtAtomicUint) + return spv::StorageClassAtomicCounter; + if (type.containsOpaque()) + return spv::StorageClassUniformConstant; + } + + if (glslangIntermediate->usingStorageBuffer() && type.getQualifier().storage == glslang::EvqBuffer) { + addPre13Extension(spv::E_SPV_KHR_storage_buffer_storage_class); + return spv::StorageClassStorageBuffer; + } + + if (type.getQualifier().isUniformOrBuffer()) { + if (type.getQualifier().layoutPushConstant) + return spv::StorageClassPushConstant; + if (type.getBasicType() == glslang::EbtBlock) + return spv::StorageClassUniform; + return spv::StorageClassUniformConstant; + } + + switch (type.getQualifier().storage) { + case glslang::EvqShared: return spv::StorageClassWorkgroup; + case glslang::EvqGlobal: return spv::StorageClassPrivate; + case glslang::EvqConstReadOnly: return spv::StorageClassFunction; + case glslang::EvqTemporary: return spv::StorageClassFunction; + default: + assert(0); + break; + } + + return spv::StorageClassFunction; +} + +// Add capabilities pertaining to how an array is indexed. +void TGlslangToSpvTraverser::addIndirectionIndexCapabilities(const glslang::TType& baseType, + const glslang::TType& indexType) +{ + if (indexType.getQualifier().isNonUniform()) { + // deal with an asserted non-uniform index + if (baseType.getBasicType() == glslang::EbtSampler) { + if (baseType.getQualifier().hasAttachment()) + builder.addCapability(spv::CapabilityInputAttachmentArrayNonUniformIndexingEXT); + else if (baseType.isImage() && baseType.getSampler().dim == glslang::EsdBuffer) + builder.addCapability(spv::CapabilityStorageTexelBufferArrayNonUniformIndexingEXT); + else if (baseType.isTexture() && baseType.getSampler().dim == glslang::EsdBuffer) + builder.addCapability(spv::CapabilityUniformTexelBufferArrayNonUniformIndexingEXT); + else if (baseType.isImage()) + builder.addCapability(spv::CapabilityStorageImageArrayNonUniformIndexingEXT); + else if (baseType.isTexture()) + builder.addCapability(spv::CapabilitySampledImageArrayNonUniformIndexingEXT); + } else if (baseType.getBasicType() == glslang::EbtBlock) { + if (baseType.getQualifier().storage == glslang::EvqBuffer) + builder.addCapability(spv::CapabilityStorageBufferArrayNonUniformIndexingEXT); + else if (baseType.getQualifier().storage == glslang::EvqUniform) + builder.addCapability(spv::CapabilityUniformBufferArrayNonUniformIndexingEXT); + } + } else { + // assume a dynamically uniform index + if (baseType.getBasicType() == glslang::EbtSampler) { + if (baseType.getQualifier().hasAttachment()) + builder.addCapability(spv::CapabilityInputAttachmentArrayDynamicIndexingEXT); + else if (baseType.isImage() && baseType.getSampler().dim == glslang::EsdBuffer) + builder.addCapability(spv::CapabilityStorageTexelBufferArrayDynamicIndexingEXT); + else if (baseType.isTexture() && baseType.getSampler().dim == glslang::EsdBuffer) + builder.addCapability(spv::CapabilityUniformTexelBufferArrayDynamicIndexingEXT); + } + } +} + // Return whether or not the given type is something that should be tied to a // descriptor set. bool IsDescriptorResource(const glslang::TType& type) @@ -765,17 +1010,44 @@ bool HasNonLayoutQualifiers(const glslang::TType& type, const glslang::TQualifie // Implement the TGlslangToSpvTraverser class. // -TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* glslangIntermediate, spv::SpvBuildLogger* buildLogger) - : TIntermTraverser(true, false, true), shaderEntry(nullptr), currentFunction(nullptr), +TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const glslang::TIntermediate* glslangIntermediate, + spv::SpvBuildLogger* buildLogger, glslang::SpvOptions& options) + : TIntermTraverser(true, false, true), + options(options), + shaderEntry(nullptr), currentFunction(nullptr), sequenceDepth(0), logger(buildLogger), - builder((glslang::GetKhronosToolId() << 16) | GeneratorVersion, logger), + builder(spvVersion, (glslang::GetKhronosToolId() << 16) | glslang::GetSpirvGeneratorVersion(), logger), inEntryPoint(false), entryPointTerminated(false), linkageOnly(false), glslangIntermediate(glslangIntermediate) { spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage()); builder.clearAccessChain(); - builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()), glslangIntermediate->getVersion()); + builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()), + glslangIntermediate->getVersion()); + + if (options.generateDebugInfo) { + builder.setEmitOpLines(); + builder.setSourceFile(glslangIntermediate->getSourceFile()); + + // Set the source shader's text. If for SPV version 1.0, include + // a preamble in comments stating the OpModuleProcessed instructions. + // Otherwise, emit those as actual instructions. + std::string text; + const std::vector& processes = glslangIntermediate->getProcesses(); + for (int p = 0; p < (int)processes.size(); ++p) { + if (glslangIntermediate->getSpv().spv < 0x00010100) { + text.append("// OpModuleProcessed "); + text.append(processes[p]); + text.append("\n"); + } else + builder.addModuleProcessed(processes[p]); + } + if (glslangIntermediate->getSpv().spv < 0x00010100 && (int)processes.size() > 0) + text.append("#line 1\n"); + text.append(glslangIntermediate->getSourceText()); + builder.setSourceText(text); + } stdBuiltins = builder.import("GLSL.std.450"); builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450); shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPointName().c_str()); @@ -799,14 +1071,20 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls builder.addCapability(spv::CapabilityShader); break; + case EShLangTessEvaluation: case EShLangTessControl: builder.addCapability(spv::CapabilityTessellation); - builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices()); - break; - case EShLangTessEvaluation: - builder.addCapability(spv::CapabilityTessellation); - switch (glslangIntermediate->getInputPrimitive()) { + glslang::TLayoutGeometry primitive; + + if (glslangIntermediate->getStage() == EShLangTessControl) { + builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices()); + primitive = glslangIntermediate->getOutputPrimitive(); + } else { + primitive = glslangIntermediate->getInputPrimitive(); + } + + switch (primitive) { case glslang::ElgTriangles: mode = spv::ExecutionModeTriangles; break; case glslang::ElgQuads: mode = spv::ExecutionModeQuads; break; case glslang::ElgIsolines: mode = spv::ExecutionModeIsolines; break; @@ -875,6 +1153,12 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls if (glslangIntermediate->getEarlyFragmentTests()) builder.addExecutionMode(shaderEntry, spv::ExecutionModeEarlyFragmentTests); + if (glslangIntermediate->getPostDepthCoverage()) { + builder.addCapability(spv::CapabilitySampleMaskPostDepthCoverage); + builder.addExecutionMode(shaderEntry, spv::ExecutionModePostDepthCoverage); + builder.addExtension(spv::E_SPV_KHR_post_depth_coverage); + } + switch(glslangIntermediate->getDepth()) { case glslang::EldGreater: mode = spv::ExecutionModeDepthGreater; break; case glslang::EldLess: mode = spv::ExecutionModeDepthLess; break; @@ -948,8 +1232,10 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol) // Include all "static use" and "linkage only" interface variables on the OpEntryPoint instruction if (builder.isPointer(id)) { spv::StorageClass sc = builder.getStorageClass(id); - if (sc == spv::StorageClassInput || sc == spv::StorageClassOutput) - iOSet.insert(id); + if (sc == spv::StorageClassInput || sc == spv::StorageClassOutput) { + if (!symbol->getType().isStruct() || symbol->getType().getStruct()->size() > 0) + iOSet.insert(id); + } } // Only process non-linkage-only nodes for generating actual static uses @@ -973,10 +1259,44 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol) else builder.setAccessChainLValue(id); } + + // Process linkage-only nodes for any special additional interface work. + if (linkageOnly) { + if (glslangIntermediate->getHlslFunctionality1()) { + // Map implicit counter buffers to their originating buffers, which should have been + // seen by now, given earlier pruning of unused counters, and preservation of order + // of declaration. + if (symbol->getType().getQualifier().isUniformOrBuffer()) { + if (!glslangIntermediate->hasCounterBufferName(symbol->getName())) { + // Save possible originating buffers for counter buffers, keyed by + // making the potential counter-buffer name. + std::string keyName = symbol->getName().c_str(); + keyName = glslangIntermediate->addCounterBufferName(keyName); + counterOriginator[keyName] = symbol; + } else { + // Handle a counter buffer, by finding the saved originating buffer. + std::string keyName = symbol->getName().c_str(); + auto it = counterOriginator.find(keyName); + if (it != counterOriginator.end()) { + id = getSymbolId(it->second); + if (id != spv::NoResult) { + spv::Id counterId = getSymbolId(symbol); + if (counterId != spv::NoResult) { + builder.addExtension("SPV_GOOGLE_hlsl_functionality1"); + builder.addDecorationId(id, spv::DecorationHlslCounterBufferGOOGLE, counterId); + } + } + } + } + } + } + } } bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::TIntermBinary* node) { + builder.setLine(node->getLoc().line); + SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); if (node->getType().getQualifier().isSpecConstant()) spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); @@ -1019,8 +1339,10 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T spv::Id leftRValue = accessChainLoad(node->getLeft()->getType()); // do the operation - rValue = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()), - TranslateNoContractionDecoration(node->getType().getQualifier()), + OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), + TranslateNoContractionDecoration(node->getType().getQualifier()), + TranslateNonUniformDecoration(node->getType().getQualifier()) }; + rValue = createBinaryOperation(node->getOp(), decorations, convertGlslangToSpvType(node->getType()), leftRValue, rValue, node->getType().getBasicType()); @@ -1095,6 +1417,8 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T node->getRight()->traverse(this); spv::Id index = accessChainLoad(node->getRight()->getType()); + addIndirectionIndexCapabilities(node->getLeft()->getType(), node->getRight()->getType()); + // restore the saved access chain builder.setAccessChain(partial); @@ -1112,6 +1436,9 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType())); } return false; + case glslang::EOpMatrixSwizzle: + logger->missingFunctionality("matrix swizzle"); + return true; case glslang::EOpLogicalOr: case glslang::EOpLogicalAnd: { @@ -1144,8 +1471,10 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T spv::Id right = accessChainLoad(node->getRight()->getType()); // get result - spv::Id result = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()), - TranslateNoContractionDecoration(node->getType().getQualifier()), + OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), + TranslateNoContractionDecoration(node->getType().getQualifier()), + TranslateNonUniformDecoration(node->getType().getQualifier()) }; + spv::Id result = createBinaryOperation(node->getOp(), decorations, convertGlslangToSpvType(node->getType()), left, right, node->getLeft()->getType().getBasicType()); @@ -1161,6 +1490,8 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node) { + builder.setLine(node->getLoc().line); + SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); if (node->getType().getQualifier().isSpecConstant()) spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); @@ -1181,10 +1512,15 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI if (node->getOp() == glslang::EOpArrayLength) { // Quite special; won't want to evaluate the operand. + // Currently, the front-end does not allow .length() on an array until it is sized, + // except for the last block membeor of an SSBO. + // TODO: If this changes, link-time sized arrays might show up here, and need their + // size extracted. + // Normal .length() would have been constant folded by the front-end. // So, this has to be block.lastMember.length(). // SPV wants "block" and member number as the operands, go get them. - assert(node->getOperand()->getType().isRuntimeSizedArray()); + glslang::TIntermTyped* block = node->getOperand()->getAsBinaryNode()->getLeft(); block->traverse(this); unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion()->getConstArray()[0].getUConst(); @@ -1221,20 +1557,23 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI else operand = accessChainLoad(node->getOperand()->getType()); - spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision()); - spv::Decoration noContraction = TranslateNoContractionDecoration(node->getType().getQualifier()); + OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), + TranslateNoContractionDecoration(node->getType().getQualifier()), + TranslateNonUniformDecoration(node->getType().getQualifier()) }; // it could be a conversion if (! result) - result = createConversion(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType()); + result = createConversion(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType()); // if not, then possibly an operation if (! result) - result = createUnaryOperation(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType()); + result = createUnaryOperation(node->getOp(), decorations, resultType(), operand, node->getOperand()->getBasicType()); if (result) { - if (invertedType) - result = createInvertedSwizzle(precision, *node->getOperand(), result); + if (invertedType) { + result = createInvertedSwizzle(decorations.precision, *node->getOperand(), result); + builder.addDecoration(result, decorations.nonUniform); + } builder.clearAccessChain(); builder.setAccessChainRValue(result); @@ -1255,10 +1594,12 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI one = builder.makeFloatConstant(1.0F); else if (node->getBasicType() == glslang::EbtDouble) one = builder.makeDoubleConstant(1.0); -#ifdef AMD_EXTENSIONS else if (node->getBasicType() == glslang::EbtFloat16) one = builder.makeFloat16Constant(1.0F); -#endif + else if (node->getBasicType() == glslang::EbtInt8 || node->getBasicType() == glslang::EbtUint8) + one = builder.makeInt8Constant(1); + else if (node->getBasicType() == glslang::EbtInt16 || node->getBasicType() == glslang::EbtUint16) + one = builder.makeInt16Constant(1); else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64) one = builder.makeInt64Constant(1); else @@ -1270,8 +1611,7 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI else op = glslang::EOpSub; - spv::Id result = createBinaryOperation(op, precision, - TranslateNoContractionDecoration(node->getType().getQualifier()), + spv::Id result = createBinaryOperation(op, decorations, convertGlslangToSpvType(node->getType()), operand, one, node->getType().getBasicType()); assert(result != spv::NoResult); @@ -1319,7 +1659,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt builder.setAccessChainRValue(result); return false; +#ifdef AMD_EXTENSIONS + } else if (node->getOp() == glslang::EOpImageStore || node->getOp() == glslang::EOpImageStoreLod) { +#else } else if (node->getOp() == glslang::EOpImageStore) { +#endif // "imageStore" is a special case, which has no result return false; } @@ -1404,9 +1748,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt return false; case glslang::EOpFunctionCall: { + builder.setLine(node->getLoc().line); if (node->isUserDefined()) result = handleUserFunctionCall(node); - //assert(result); // this can happen for bad shaders because the call graph completeness checking is not yet done + // assert(result); // this can happen for bad shaders because the call graph completeness checking is not yet done if (result) { builder.clearAccessChain(); builder.setAccessChainRValue(result); @@ -1433,7 +1778,33 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDMat4x2: case glslang::EOpConstructDMat4x3: case glslang::EOpConstructDMat4x4: -#ifdef AMD_EXTENSIONS + case glslang::EOpConstructIMat2x2: + case glslang::EOpConstructIMat2x3: + case glslang::EOpConstructIMat2x4: + case glslang::EOpConstructIMat3x2: + case glslang::EOpConstructIMat3x3: + case glslang::EOpConstructIMat3x4: + case glslang::EOpConstructIMat4x2: + case glslang::EOpConstructIMat4x3: + case glslang::EOpConstructIMat4x4: + case glslang::EOpConstructUMat2x2: + case glslang::EOpConstructUMat2x3: + case glslang::EOpConstructUMat2x4: + case glslang::EOpConstructUMat3x2: + case glslang::EOpConstructUMat3x3: + case glslang::EOpConstructUMat3x4: + case glslang::EOpConstructUMat4x2: + case glslang::EOpConstructUMat4x3: + case glslang::EOpConstructUMat4x4: + case glslang::EOpConstructBMat2x2: + case glslang::EOpConstructBMat2x3: + case glslang::EOpConstructBMat2x4: + case glslang::EOpConstructBMat3x2: + case glslang::EOpConstructBMat3x3: + case glslang::EOpConstructBMat3x4: + case glslang::EOpConstructBMat4x2: + case glslang::EOpConstructBMat4x3: + case glslang::EOpConstructBMat4x4: case glslang::EOpConstructF16Mat2x2: case glslang::EOpConstructF16Mat2x3: case glslang::EOpConstructF16Mat2x4: @@ -1443,7 +1814,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructF16Mat4x2: case glslang::EOpConstructF16Mat4x3: case glslang::EOpConstructF16Mat4x4: -#endif isMatrix = true; // fall through case glslang::EOpConstructFloat: @@ -1454,16 +1824,30 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDVec2: case glslang::EOpConstructDVec3: case glslang::EOpConstructDVec4: -#ifdef AMD_EXTENSIONS case glslang::EOpConstructFloat16: case glslang::EOpConstructF16Vec2: case glslang::EOpConstructF16Vec3: case glslang::EOpConstructF16Vec4: -#endif case glslang::EOpConstructBool: case glslang::EOpConstructBVec2: case glslang::EOpConstructBVec3: case glslang::EOpConstructBVec4: + case glslang::EOpConstructInt8: + case glslang::EOpConstructI8Vec2: + case glslang::EOpConstructI8Vec3: + case glslang::EOpConstructI8Vec4: + case glslang::EOpConstructUint8: + case glslang::EOpConstructU8Vec2: + case glslang::EOpConstructU8Vec3: + case glslang::EOpConstructU8Vec4: + case glslang::EOpConstructInt16: + case glslang::EOpConstructI16Vec2: + case glslang::EOpConstructI16Vec3: + case glslang::EOpConstructI16Vec4: + case glslang::EOpConstructUint16: + case glslang::EOpConstructU16Vec2: + case glslang::EOpConstructU16Vec3: + case glslang::EOpConstructU16Vec4: case glslang::EOpConstructInt: case glslang::EOpConstructIVec2: case glslang::EOpConstructIVec3: @@ -1483,6 +1867,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructStruct: case glslang::EOpConstructTextureSampler: { + builder.setLine(node->getLoc().line); std::vector arguments; translateArguments(*node, arguments); spv::Id constructed; @@ -1554,10 +1939,16 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpMemoryBarrierImage: case glslang::EOpMemoryBarrierShared: case glslang::EOpGroupMemoryBarrier: + case glslang::EOpDeviceMemoryBarrier: case glslang::EOpAllMemoryBarrierWithGroupSync: - case glslang::EOpGroupMemoryBarrierWithGroupSync: + case glslang::EOpDeviceMemoryBarrierWithGroupSync: case glslang::EOpWorkgroupMemoryBarrier: case glslang::EOpWorkgroupMemoryBarrierWithGroupSync: + case glslang::EOpSubgroupBarrier: + case glslang::EOpSubgroupMemoryBarrier: + case glslang::EOpSubgroupMemoryBarrierBuffer: + case glslang::EOpSubgroupMemoryBarrierImage: + case glslang::EOpSubgroupMemoryBarrierShared: noReturnValue = true; // These all have 0 operands and will naturally finish up in the code below for 0 operands break; @@ -1573,6 +1964,20 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt atomic = true; break; + case glslang::EOpAtomicCounterAdd: + case glslang::EOpAtomicCounterSubtract: + case glslang::EOpAtomicCounterMin: + case glslang::EOpAtomicCounterMax: + case glslang::EOpAtomicCounterAnd: + case glslang::EOpAtomicCounterOr: + case glslang::EOpAtomicCounterXor: + case glslang::EOpAtomicCounterExchange: + case glslang::EOpAtomicCounterCompSwap: + builder.addExtension("SPV_KHR_shader_atomic_counter_ops"); + builder.addCapability(spv::CapabilityAtomicStorageOps); + atomic = true; + break; + default: break; } @@ -1593,7 +1998,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt right->traverse(this); spv::Id rightId = accessChainLoad(right->getType()); - result = createBinaryOperation(binOp, precision, TranslateNoContractionDecoration(node->getType().getQualifier()), + builder.setLine(node->getLoc().line); + OpDecorations decorations = { precision, + TranslateNoContractionDecoration(node->getType().getQualifier()), + TranslateNonUniformDecoration(node->getType().getQualifier()) }; + result = createBinaryOperation(binOp, decorations, resultType(), leftId, rightId, left->getType().getBasicType(), reduceComparison); @@ -1629,7 +2038,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // Does it need a swizzle inversion? If so, evaluation is inverted; // operate first on the swizzle base, then apply the swizzle. - if (glslangOperands[0]->getAsOperator() && + if (glslangOperands[0]->getAsOperator() && glslangOperands[0]->getAsOperator()->getOp() == glslang::EOpVectorSwizzle) invertedType = convertGlslangToSpvType(glslangOperands[0]->getAsBinaryNode()->getLeft()->getType()); } @@ -1642,6 +2051,15 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpAtomicXor: case glslang::EOpAtomicExchange: case glslang::EOpAtomicCompSwap: + case glslang::EOpAtomicCounterAdd: + case glslang::EOpAtomicCounterSubtract: + case glslang::EOpAtomicCounterMin: + case glslang::EOpAtomicCounterMax: + case glslang::EOpAtomicCounterAnd: + case glslang::EOpAtomicCounterOr: + case glslang::EOpAtomicCounterXor: + case glslang::EOpAtomicCounterExchange: + case glslang::EOpAtomicCounterCompSwap: if (arg == 0) lvalue = true; break; @@ -1665,10 +2083,13 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt glslangOperands[arg]->traverse(this); if (lvalue) operands.push_back(builder.accessChainGetLValue()); - else + else { + builder.setLine(node->getLoc().line); operands.push_back(accessChainLoad(glslangOperands[arg]->getAsTyped()->getType())); + } } + builder.setLine(node->getLoc().line); if (atomic) { // Handle all atomics result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); @@ -1679,11 +2100,15 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt result = createNoArgOperation(node->getOp(), precision, resultType()); break; case 1: - result = createUnaryOperation( - node->getOp(), precision, - TranslateNoContractionDecoration(node->getType().getQualifier()), - resultType(), operands.front(), - glslangOperands[0]->getAsTyped()->getBasicType()); + { + OpDecorations decorations = { precision, + TranslateNoContractionDecoration(node->getType().getQualifier()), + TranslateNonUniformDecoration(node->getType().getQualifier()) }; + result = createUnaryOperation( + node->getOp(), decorations, + resultType(), operands.front(), + glslangOperands[0]->getAsTyped()->getBasicType()); + } break; default: result = createMiscOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); @@ -1706,49 +2131,159 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt } } +// This path handles both if-then-else and ?: +// The if-then-else has a node type of void, while +// ?: has either a void or a non-void node type +// +// Leaving the result, when not void: +// GLSL only has r-values as the result of a :?, but +// if we have an l-value, that can be more efficient if it will +// become the base of a complex r-value expression, because the +// next layer copies r-values into memory to use the access-chain mechanism bool TGlslangToSpvTraverser::visitSelection(glslang::TVisit /* visit */, glslang::TIntermSelection* node) { - // This path handles both if-then-else and ?: - // The if-then-else has a node type of void, while - // ?: has a non-void node type - spv::Id result = 0; - if (node->getBasicType() != glslang::EbtVoid) { - // don't handle this as just on-the-fly temporaries, because there will be two names - // and better to leave SSA to later passes - result = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); - } + // See if it simple and safe, or required, to execute both sides. + // Crucially, side effects must be either semantically required or avoided, + // and there are performance trade-offs. + // Return true if required or a good idea (and safe) to execute both sides, + // false otherwise. + const auto bothSidesPolicy = [&]() -> bool { + // do we have both sides? + if (node->getTrueBlock() == nullptr || + node->getFalseBlock() == nullptr) + return false; + // required? (unless we write additional code to look for side effects + // and make performance trade-offs if none are present) + if (!node->getShortCircuit()) + return true; + + // if not required to execute both, decide based on performance/practicality... + + // see if OpSelect can handle it + if ((!node->getType().isScalar() && !node->getType().isVector()) || + node->getBasicType() == glslang::EbtVoid) + return false; + + assert(node->getType() == node->getTrueBlock() ->getAsTyped()->getType() && + node->getType() == node->getFalseBlock()->getAsTyped()->getType()); + + // return true if a single operand to ? : is okay for OpSelect + const auto operandOkay = [](glslang::TIntermTyped* node) { + return node->getAsSymbolNode() || node->getType().getQualifier().isConstant(); + }; + + return operandOkay(node->getTrueBlock() ->getAsTyped()) && + operandOkay(node->getFalseBlock()->getAsTyped()); + }; + + spv::Id result = spv::NoResult; // upcoming result selecting between trueValue and falseValue // emit the condition before doing anything with selection node->getCondition()->traverse(this); + spv::Id condition = accessChainLoad(node->getCondition()->getType()); - // make an "if" based on the value created by the condition - spv::Builder::If ifBuilder(accessChainLoad(node->getCondition()->getType()), builder); - - if (node->getTrueBlock()) { - // emit the "then" statement + // Find a way of executing both sides and selecting the right result. + const auto executeBothSides = [&]() -> void { + // execute both sides node->getTrueBlock()->traverse(this); - if (result) - builder.createStore(accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()), result); - } - - if (node->getFalseBlock()) { - ifBuilder.makeBeginElse(); - // emit the "else" statement + spv::Id trueValue = accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()); node->getFalseBlock()->traverse(this); - if (result) - builder.createStore(accessChainLoad(node->getFalseBlock()->getAsTyped()->getType()), result); - } + spv::Id falseValue = accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()); - ifBuilder.makeEndIf(); + builder.setLine(node->getLoc().line); - if (result) { - // GLSL only has r-values as the result of a :?, but - // if we have an l-value, that can be more efficient if it will - // become the base of a complex r-value expression, because the - // next layer copies r-values into memory to use the access-chain mechanism - builder.clearAccessChain(); - builder.setAccessChainLValue(result); - } + // done if void + if (node->getBasicType() == glslang::EbtVoid) + return; + + // emit code to select between trueValue and falseValue + + // see if OpSelect can handle it + if (node->getType().isScalar() || node->getType().isVector()) { + // Emit OpSelect for this selection. + + // smear condition to vector, if necessary (AST is always scalar) + if (builder.isVector(trueValue)) + condition = builder.smearScalar(spv::NoPrecision, condition, + builder.makeVectorType(builder.makeBoolType(), + builder.getNumComponents(trueValue))); + + // OpSelect + result = builder.createTriOp(spv::OpSelect, + convertGlslangToSpvType(node->getType()), condition, + trueValue, falseValue); + + builder.clearAccessChain(); + builder.setAccessChainRValue(result); + } else { + // We need control flow to select the result. + // TODO: Once SPIR-V OpSelect allows arbitrary types, eliminate this path. + result = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); + + // Selection control: + const spv::SelectionControlMask control = TranslateSelectionControl(*node); + + // make an "if" based on the value created by the condition + spv::Builder::If ifBuilder(condition, control, builder); + + // emit the "then" statement + builder.createStore(trueValue, result); + ifBuilder.makeBeginElse(); + // emit the "else" statement + builder.createStore(falseValue, result); + + // finish off the control flow + ifBuilder.makeEndIf(); + + builder.clearAccessChain(); + builder.setAccessChainLValue(result); + } + }; + + // Execute the one side needed, as per the condition + const auto executeOneSide = [&]() { + // Always emit control flow. + if (node->getBasicType() != glslang::EbtVoid) + result = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); + + // Selection control: + const spv::SelectionControlMask control = TranslateSelectionControl(*node); + + // make an "if" based on the value created by the condition + spv::Builder::If ifBuilder(condition, control, builder); + + // emit the "then" statement + if (node->getTrueBlock() != nullptr) { + node->getTrueBlock()->traverse(this); + if (result != spv::NoResult) + builder.createStore(accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()), result); + } + + if (node->getFalseBlock() != nullptr) { + ifBuilder.makeBeginElse(); + // emit the "else" statement + node->getFalseBlock()->traverse(this); + if (result != spv::NoResult) + builder.createStore(accessChainLoad(node->getFalseBlock()->getAsTyped()->getType()), result); + } + + // finish off the control flow + ifBuilder.makeEndIf(); + + if (result != spv::NoResult) { + builder.clearAccessChain(); + builder.setAccessChainLValue(result); + } + }; + + // Try for OpSelect (or a requirement to execute both sides) + if (bothSidesPolicy()) { + SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); + if (node->getType().getQualifier().isSpecConstant()) + spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); + executeBothSides(); + } else + executeOneSide(); return false; } @@ -1759,6 +2294,9 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T node->getCondition()->traverse(this); spv::Id selector = accessChainLoad(node->getCondition()->getAsTyped()->getType()); + // Selection control: + const spv::SelectionControlMask control = TranslateSwitchControl(*node); + // browse the children to sort out code segments int defaultSegment = -1; std::vector codeSegments; @@ -1784,7 +2322,7 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T // make the switch statement std::vector segmentBlocks; // returned, as the blocks allocated in the call - builder.makeSwitch(selector, (int)codeSegments.size(), caseValues, valueIndexToSegment, defaultSegment, segmentBlocks); + builder.makeSwitch(selector, control, (int)codeSegments.size(), caseValues, valueIndexToSegment, defaultSegment, segmentBlocks); // emit all the code in the segments breakForLoop.push(false); @@ -1815,22 +2353,27 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn { auto blocks = builder.makeNewLoop(); builder.createBranch(&blocks.head); + + // Loop control: + unsigned int dependencyLength = glslang::TIntermLoop::dependencyInfinite; + const spv::LoopControlMask control = TranslateLoopControl(*node, dependencyLength); + // Spec requires back edges to target header blocks, and every header block // must dominate its merge block. Make a header block first to ensure these // conditions are met. By definition, it will contain OpLoopMerge, followed // by a block-ending branch. But we don't want to put any other body/test // instructions in it, since the body/test may have arbitrary instructions, // including merges of its own. + builder.setLine(node->getLoc().line); builder.setBuildPoint(&blocks.head); - builder.createLoopMerge(&blocks.merge, &blocks.continue_target, spv::LoopControlMaskNone); + builder.createLoopMerge(&blocks.merge, &blocks.continue_target, control, dependencyLength); if (node->testFirst() && node->getTest()) { spv::Block& test = builder.makeNewBlock(); builder.createBranch(&test); builder.setBuildPoint(&test); node->getTest()->traverse(this); - spv::Id condition = - accessChainLoad(node->getTest()->getType()); + spv::Id condition = accessChainLoad(node->getTest()->getType()); builder.createConditionalBranch(condition, &blocks.body, &blocks.merge); builder.setBuildPoint(&blocks.body); @@ -1845,6 +2388,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn node->getTerminal()->traverse(this); builder.createBranch(&blocks.head); } else { + builder.setLine(node->getLoc().line); builder.createBranch(&blocks.body); breakForLoop.push(true); @@ -1879,6 +2423,8 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T if (node->getExpression()) node->getExpression()->traverse(this); + builder.setLine(node->getLoc().line); + switch (node->getFlowOp()) { case glslang::EOpKill: builder.makeDiscard(); @@ -1931,6 +2477,36 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* spv::StorageClass storageClass = TranslateStorageClass(node->getType()); spv::Id spvType = convertGlslangToSpvType(node->getType()); + const bool contains16BitType = node->getType().containsBasicType(glslang::EbtFloat16) || + node->getType().containsBasicType(glslang::EbtInt16) || + node->getType().containsBasicType(glslang::EbtUint16); + if (contains16BitType) { + switch (storageClass) { + case spv::StorageClassInput: + case spv::StorageClassOutput: + addPre13Extension(spv::E_SPV_KHR_16bit_storage); + builder.addCapability(spv::CapabilityStorageInputOutput16); + break; + case spv::StorageClassPushConstant: + addPre13Extension(spv::E_SPV_KHR_16bit_storage); + builder.addCapability(spv::CapabilityStoragePushConstant16); + break; + case spv::StorageClassUniform: + addPre13Extension(spv::E_SPV_KHR_16bit_storage); + if (node->getType().getQualifier().storage == glslang::EvqBuffer) + builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); + else + builder.addCapability(spv::CapabilityStorageUniform16); + break; + case spv::StorageClassStorageBuffer: + addPre13Extension(spv::E_SPV_KHR_16bit_storage); + builder.addCapability(spv::CapabilityStorageUniformBufferBlock16); + break; + default: + break; + } + } + const char* name = node->getName().c_str(); if (glslang::IsAnonymous(name)) name = ""; @@ -1943,6 +2519,12 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler) { switch (sampler.type) { case glslang::EbtFloat: return builder.makeFloatType(32); +#ifdef AMD_EXTENSIONS + case glslang::EbtFloat16: + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float_fetch); + builder.addCapability(spv::CapabilityFloat16ImageAMD); + return builder.makeFloatType(16); +#endif case glslang::EbtInt: return builder.makeIntType(32); case glslang::EbtUint: return builder.makeUintType(32); default: @@ -1956,7 +2538,7 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler) // is applied. spv::Id TGlslangToSpvTraverser::getInvertedSwizzleType(const glslang::TIntermTyped& node) { - if (node.getAsOperator() && + if (node.getAsOperator() && node.getAsOperator()->getOp() == glslang::EOpVectorSwizzle) return convertGlslangToSpvType(node.getAsBinaryNode()->getLeft()->getType()); else @@ -1985,13 +2567,14 @@ void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& nod // layout state rooted from the top-level type. spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type) { - return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier()); + return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier(), false); } // Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id. // explicitLayout can be kept the same throughout the hierarchical recursive walk. // Mutually recursive with convertGlslangStructToSpvType(). -spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier) +spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, + glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier, bool lastBufferBlockMember) { spv::Id spvType = spv::NoResult; @@ -2006,13 +2589,14 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty case glslang::EbtDouble: spvType = builder.makeFloatType(64); break; -#ifdef AMD_EXTENSIONS case glslang::EbtFloat16: - builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); builder.addCapability(spv::CapabilityFloat16); +#if AMD_EXTENSIONS + if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); +#endif spvType = builder.makeFloatType(16); break; -#endif case glslang::EbtBool: // "transparent" bool doesn't exist in SPIR-V. The GLSL convention is // a 32-bit int where non-0 means true. @@ -2021,6 +2605,30 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty else spvType = builder.makeBoolType(); break; + case glslang::EbtInt8: + builder.addCapability(spv::CapabilityInt8); + spvType = builder.makeIntType(8); + break; + case glslang::EbtUint8: + builder.addCapability(spv::CapabilityInt8); + spvType = builder.makeUintType(8); + break; + case glslang::EbtInt16: + builder.addCapability(spv::CapabilityInt16); +#ifdef AMD_EXTENSIONS + if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) + builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16); +#endif + spvType = builder.makeIntType(16); + break; + case glslang::EbtUint16: + builder.addCapability(spv::CapabilityInt16); +#ifdef AMD_EXTENSIONS + if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3) + builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16); +#endif + spvType = builder.makeUintType(16); + break; case glslang::EbtInt: spvType = builder.makeIntType(32); break; @@ -2028,11 +2636,9 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty spvType = builder.makeUintType(32); break; case glslang::EbtInt64: - builder.addCapability(spv::CapabilityInt64); spvType = builder.makeIntType(64); break; case glslang::EbtUint64: - builder.addCapability(spv::CapabilityInt64); spvType = builder.makeUintType(64); break; case glslang::EbtAtomicUint: @@ -2098,8 +2704,8 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty // Use a dummy glslang type for querying internal strides of // arrays of arrays, but using just a one-dimensional array. glslang::TType simpleArrayType(type, 0); // deference type of the array - while (simpleArrayType.getArraySizes().getNumDims() > 1) - simpleArrayType.getArraySizes().dereference(); + while (simpleArrayType.getArraySizes()->getNumDims() > 1) + simpleArrayType.getArraySizes()->dereference(); // Will compute the higher-order strides here, rather than making a whole // pile of types and doing repetitive recursion on their contents. @@ -2121,12 +2727,16 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty stride = getArrayStride(type, explicitLayout, qualifier.layoutMatrix); } - // Do the outer dimension, which might not be known for a runtime-sized array - if (type.isRuntimeSizedArray()) { - spvType = builder.makeRuntimeArray(spvType); - } else { - assert(type.getOuterArraySize() > 0); + // Do the outer dimension, which might not be known for a runtime-sized array. + // (Unsized arrays that survive through linking will be runtime-sized arrays) + if (type.isSizedArray()) spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), 0), stride); + else { + if (!lastBufferBlockMember) { + builder.addExtension("SPV_EXT_descriptor_indexing"); + builder.addCapability(spv::CapabilityRuntimeDescriptorArrayEXT); + } + spvType = builder.makeRuntimeArray(spvType); } if (stride > 0) builder.addDecoration(spvType, spv::DecorationArrayStride, stride); @@ -2135,6 +2745,32 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty return spvType; } +// TODO: this functionality should exist at a higher level, in creating the AST +// +// Identify interface members that don't have their required extension turned on. +// +bool TGlslangToSpvTraverser::filterMember(const glslang::TType& member) +{ + auto& extensions = glslangIntermediate->getRequestedExtensions(); + + if (member.getFieldName() == "gl_ViewportMask" && + extensions.find("GL_NV_viewport_array2") == extensions.end()) + return true; + if (member.getFieldName() == "gl_SecondaryViewportMaskNV" && + extensions.find("GL_NV_stereo_view_rendering") == extensions.end()) + return true; + if (member.getFieldName() == "gl_SecondaryPositionNV" && + extensions.find("GL_NV_stereo_view_rendering") == extensions.end()) + return true; + if (member.getFieldName() == "gl_PositionPerViewNV" && + extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end()) + return true; + if (member.getFieldName() == "gl_ViewportMaskPerViewNV" && + extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end()) + return true; + + return false; +}; // Do full recursive conversion of a glslang structure (or block) type to a SPIR-V Id. // explicitLayout can be kept the same throughout the hierarchical recursive walk. @@ -2147,7 +2783,6 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy // Create a vector of struct types for SPIR-V to consume std::vector spvMembers; int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0, except sometimes for blocks - int locationOffset = 0; // for use across struct members, when they are called recursively for (int i = 0; i < (int)glslangMembers->size(); i++) { glslang::TType& glslangMember = *(*glslangMembers)[i].type; if (glslangMember.hiddenMember()) { @@ -2155,20 +2790,24 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy if (type.getBasicType() == glslang::EbtBlock) memberRemapper[glslangMembers][i] = -1; } else { - if (type.getBasicType() == glslang::EbtBlock) + if (type.getBasicType() == glslang::EbtBlock) { memberRemapper[glslangMembers][i] = i - memberDelta; + if (filterMember(glslangMember)) + continue; + } // modify just this child's view of the qualifier glslang::TQualifier memberQualifier = glslangMember.getQualifier(); InheritQualifiers(memberQualifier, qualifier); - // manually inherit location; it's more complex + // manually inherit location if (! memberQualifier.hasLocation() && qualifier.hasLocation()) - memberQualifier.layoutLocation = qualifier.layoutLocation + locationOffset; - if (qualifier.hasLocation()) - locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember); + memberQualifier.layoutLocation = qualifier.layoutLocation; // recurse - spvMembers.push_back(convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier)); + bool lastBufferBlockMember = qualifier.storage == glslang::EvqBuffer && + i == (int)glslangMembers->size() - 1; + spvMembers.push_back( + convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier, lastBufferBlockMember)); } } @@ -2195,99 +2834,121 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type, for (int i = 0; i < (int)glslangMembers->size(); i++) { glslang::TType& glslangMember = *(*glslangMembers)[i].type; int member = i; - if (type.getBasicType() == glslang::EbtBlock) + if (type.getBasicType() == glslang::EbtBlock) { member = memberRemapper[glslangMembers][i]; + if (filterMember(glslangMember)) + continue; + } // modify just this child's view of the qualifier glslang::TQualifier memberQualifier = glslangMember.getQualifier(); InheritQualifiers(memberQualifier, qualifier); // using -1 above to indicate a hidden member - if (member >= 0) { - builder.addMemberName(spvType, member, glslangMember.getFieldName().c_str()); - addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangMember, memberQualifier.layoutMatrix)); - addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangMember)); - // Add interpolation and auxiliary storage decorations only to top-level members of Input and Output storage classes - if (type.getQualifier().storage == glslang::EvqVaryingIn || type.getQualifier().storage == glslang::EvqVaryingOut) { - if (type.getBasicType() == glslang::EbtBlock) { - addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier)); - addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier)); - } + if (member < 0) + continue; + + builder.addMemberName(spvType, member, glslangMember.getFieldName().c_str()); + builder.addMemberDecoration(spvType, member, + TranslateLayoutDecoration(glslangMember, memberQualifier.layoutMatrix)); + builder.addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangMember)); + // Add interpolation and auxiliary storage decorations only to + // top-level members of Input and Output storage classes + if (type.getQualifier().storage == glslang::EvqVaryingIn || + type.getQualifier().storage == glslang::EvqVaryingOut) { + if (type.getBasicType() == glslang::EbtBlock || + glslangIntermediate->getSource() == glslang::EShSourceHlsl) { + builder.addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier)); + builder.addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier)); } - addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier)); - - if (qualifier.storage == glslang::EvqBuffer) { - std::vector memory; - TranslateMemoryDecoration(memberQualifier, memory); - for (unsigned int i = 0; i < memory.size(); ++i) - addMemberDecoration(spvType, member, memory[i]); - } - - // Compute location decoration; tricky based on whether inheritance is at play and - // what kind of container we have, etc. - // TODO: This algorithm (and it's cousin above doing almost the same thing) should - // probably move to the linker stage of the front end proper, and just have the - // answer sitting already distributed throughout the individual member locations. - int location = -1; // will only decorate if present or inherited - // Ignore member locations if the container is an array, as that's - // ill-specified and decisions have been made to not allow this anyway. - // The object itself must have a location, and that comes out from decorating the object, - // not the type (this code decorates types). - if (! type.isArray()) { - if (memberQualifier.hasLocation()) { // no inheritance, or override of inheritance - // struct members should not have explicit locations - assert(type.getBasicType() != glslang::EbtStruct); - location = memberQualifier.layoutLocation; - } else if (type.getBasicType() != glslang::EbtBlock) { - // If it is a not a Block, (...) Its members are assigned consecutive locations (...) - // The members, and their nested types, must not themselves have Location decorations. - } else if (qualifier.hasLocation()) // inheritance - location = qualifier.layoutLocation + locationOffset; - } - if (location >= 0) - builder.addMemberDecoration(spvType, member, spv::DecorationLocation, location); - - if (qualifier.hasLocation()) // track for upcoming inheritance - locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember); - - // component, XFB, others - if (glslangMember.getQualifier().hasComponent()) - builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangMember.getQualifier().layoutComponent); - if (glslangMember.getQualifier().hasXfbOffset()) - builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangMember.getQualifier().layoutXfbOffset); - else if (explicitLayout != glslang::ElpNone) { - // figure out what to do with offset, which is accumulating - int nextOffset; - updateMemberOffset(type, glslangMember, offset, nextOffset, explicitLayout, memberQualifier.layoutMatrix); - if (offset >= 0) - builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset); - offset = nextOffset; - } - - if (glslangMember.isMatrix() && explicitLayout != glslang::ElpNone) - builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangMember, explicitLayout, memberQualifier.layoutMatrix)); - - // built-in variable decorations - spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true); - if (builtIn != spv::BuiltInMax) - addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); } + builder.addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier)); + + if (type.getBasicType() == glslang::EbtBlock && + qualifier.storage == glslang::EvqBuffer) { + // Add memory decorations only to top-level members of shader storage block + std::vector memory; + TranslateMemoryDecoration(memberQualifier, memory); + for (unsigned int i = 0; i < memory.size(); ++i) + builder.addMemberDecoration(spvType, member, memory[i]); + } + + // Location assignment was already completed correctly by the front end, + // just track whether a member needs to be decorated. + // Ignore member locations if the container is an array, as that's + // ill-specified and decisions have been made to not allow this. + if (! type.isArray() && memberQualifier.hasLocation()) + builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation); + + if (qualifier.hasLocation()) // track for upcoming inheritance + locationOffset += glslangIntermediate->computeTypeLocationSize( + glslangMember, glslangIntermediate->getStage()); + + // component, XFB, others + if (glslangMember.getQualifier().hasComponent()) + builder.addMemberDecoration(spvType, member, spv::DecorationComponent, + glslangMember.getQualifier().layoutComponent); + if (glslangMember.getQualifier().hasXfbOffset()) + builder.addMemberDecoration(spvType, member, spv::DecorationOffset, + glslangMember.getQualifier().layoutXfbOffset); + else if (explicitLayout != glslang::ElpNone) { + // figure out what to do with offset, which is accumulating + int nextOffset; + updateMemberOffset(type, glslangMember, offset, nextOffset, explicitLayout, memberQualifier.layoutMatrix); + if (offset >= 0) + builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset); + offset = nextOffset; + } + + if (glslangMember.isMatrix() && explicitLayout != glslang::ElpNone) + builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, + getMatrixStride(glslangMember, explicitLayout, memberQualifier.layoutMatrix)); + + // built-in variable decorations + spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true); + if (builtIn != spv::BuiltInMax) + builder.addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); + + // nonuniform + builder.addMemberDecoration(spvType, member, TranslateNonUniformDecoration(glslangMember.getQualifier())); + + if (glslangIntermediate->getHlslFunctionality1() && memberQualifier.semanticName != nullptr) { + builder.addExtension("SPV_GOOGLE_hlsl_functionality1"); + builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE, + memberQualifier.semanticName); + } + +#ifdef NV_EXTENSIONS + if (builtIn == spv::BuiltInLayer) { + // SPV_NV_viewport_array2 extension + if (glslangMember.getQualifier().layoutViewportRelative){ + builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationViewportRelativeNV); + builder.addCapability(spv::CapabilityShaderViewportMaskNV); + builder.addExtension(spv::E_SPV_NV_viewport_array2); + } + if (glslangMember.getQualifier().layoutSecondaryViewportRelativeOffset != -2048){ + builder.addMemberDecoration(spvType, member, + (spv::Decoration)spv::DecorationSecondaryViewportRelativeNV, + glslangMember.getQualifier().layoutSecondaryViewportRelativeOffset); + builder.addCapability(spv::CapabilityShaderStereoViewNV); + builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); + } + } + if (glslangMember.getQualifier().layoutPassthrough) { + builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationPassthroughNV); + builder.addCapability(spv::CapabilityGeometryShaderPassthroughNV); + builder.addExtension(spv::E_SPV_NV_geometry_shader_passthrough); + } +#endif } // Decorate the structure - addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix)); - addDecoration(spvType, TranslateBlockDecoration(type)); + builder.addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix)); + builder.addDecoration(spvType, TranslateBlockDecoration(type, glslangIntermediate->usingStorageBuffer())); if (type.getQualifier().hasStream() && glslangIntermediate->isMultiStream()) { builder.addCapability(spv::CapabilityGeometryStreams); builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream); } - if (glslangIntermediate->getXfbMode()) { - builder.addCapability(spv::CapabilityTransformFeedback); - if (type.getQualifier().hasXfbStride()) - builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride); - if (type.getQualifier().hasXfbBuffer()) - builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer); - } } // Turn the expression forming the array size into an id. @@ -2318,7 +2979,8 @@ spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arra spv::Id TGlslangToSpvTraverser::accessChainLoad(const glslang::TType& type) { spv::Id nominalTypeId = builder.accessChainGetInferredType(); - spv::Id loadedId = builder.accessChainLoad(TranslatePrecisionDecoration(type), nominalTypeId); + spv::Id loadedId = builder.accessChainLoad(TranslatePrecisionDecoration(type), + TranslateNonUniformDecoration(type.getQualifier()), nominalTypeId); // Need to convert to abstract types when necessary if (type.getBasicType() == glslang::EbtBool) { @@ -2353,19 +3015,24 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I // Conversion for bool spv::Id boolType = builder.makeBoolType(); if (nominalTypeId != boolType) { + // keep these outside arguments, for determinant order-of-evaluation + spv::Id one = builder.makeUintConstant(1); spv::Id zero = builder.makeUintConstant(0); - spv::Id one = builder.makeUintConstant(1); rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue, one, zero); - } + } else if (builder.getTypeId(rvalue) != boolType) + rvalue = builder.createBinOp(spv::OpINotEqual, boolType, rvalue, builder.makeUintConstant(0)); } else if (builder.isVectorType(nominalTypeId)) { // Conversion for bvec int vecSize = builder.getNumTypeComponents(nominalTypeId); spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize); if (nominalTypeId != bvecType) { + // keep these outside arguments, for determinant order-of-evaluation + spv::Id one = makeSmearedConstant(builder.makeUintConstant(1), vecSize); spv::Id zero = makeSmearedConstant(builder.makeUintConstant(0), vecSize); - spv::Id one = makeSmearedConstant(builder.makeUintConstant(1), vecSize); rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue, one, zero); - } + } else if (builder.getTypeId(rvalue) != bvecType) + rvalue = builder.createBinOp(spv::OpINotEqual, bvecType, rvalue, + makeSmearedConstant(builder.makeUintConstant(0), vecSize)); } } @@ -2498,7 +3165,7 @@ int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType, gl // 'currentOffset' should be passed in already initialized, ready to modify, and reflecting // the migration of data from nextOffset -> currentOffset. It should be -1 on the first call. // -1 means a non-forced member offset (no decoration needed). -void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structType*/, const glslang::TType& memberType, int& currentOffset, int& nextOffset, +void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout) { // this will get a positive value when deemed necessary @@ -2530,7 +3197,27 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structTy int memberSize; int dummyStride; int memberAlignment = glslangIntermediate->getBaseAlignment(memberType, memberSize, dummyStride, explicitLayout == glslang::ElpStd140, matrixLayout == glslang::ElmRowMajor); + + // Adjust alignment for HLSL rules + // TODO: make this consistent in early phases of code: + // adjusting this late means inconsistencies with earlier code, which for reflection is an issue + // Until reflection is brought in sync with these adjustments, don't apply to $Global, + // which is the most likely to rely on reflection, and least likely to rely implicit layouts + if (glslangIntermediate->usingHlslOFfsets() && + ! memberType.isArray() && memberType.isVector() && structType.getTypeName().compare("$Global") != 0) { + int dummySize; + int componentAlignment = glslangIntermediate->getBaseAlignmentScalar(memberType, dummySize); + if (componentAlignment <= 4) + memberAlignment = componentAlignment; + } + + // Bump up to member alignment glslang::RoundToPow2(currentOffset, memberAlignment); + + // Bump up to vec4 if there is a bad straddle + if (glslangIntermediate->improperStraddle(memberType, memberSize, currentOffset)) + glslang::RoundToPow2(currentOffset, 16); + nextOffset = currentOffset + memberSize; } @@ -2542,6 +3229,13 @@ void TGlslangToSpvTraverser::declareUseOfStructMember(const glslang::TTypeList& case glslang::EbvClipDistance: case glslang::EbvCullDistance: case glslang::EbvPointSize: +#ifdef NV_EXTENSIONS + case glslang::EbvViewportMaskNV: + case glslang::EbvSecondaryPositionNV: + case glslang::EbvSecondaryViewportMaskNV: + case glslang::EbvPositionPerViewNV: + case glslang::EbvViewportMaskPerViewNV: +#endif // Generate the associated capability. Delegate to TranslateBuiltInDecoration. // Alternately, we could just call this for any glslang built-in, since the // capability already guards against duplicates. @@ -2558,9 +3252,40 @@ bool TGlslangToSpvTraverser::isShaderEntryPoint(const glslang::TIntermAggregate* return node->getName().compare(glslangIntermediate->getEntryPointMangledName().c_str()) == 0; } +// Does parameter need a place to keep writes, separate from the original? +// Assumes called after originalParam(), which filters out block/buffer/opaque-based +// qualifiers such that we should have only in/out/inout/constreadonly here. +bool TGlslangToSpvTraverser::writableParam(glslang::TStorageQualifier qualifier) const +{ + assert(qualifier == glslang::EvqIn || + qualifier == glslang::EvqOut || + qualifier == glslang::EvqInOut || + qualifier == glslang::EvqConstReadOnly); + return qualifier != glslang::EvqConstReadOnly; +} + +// Is parameter pass-by-original? +bool TGlslangToSpvTraverser::originalParam(glslang::TStorageQualifier qualifier, const glslang::TType& paramType, + bool implicitThisParam) +{ + if (implicitThisParam) // implicit this + return true; + if (glslangIntermediate->getSource() == glslang::EShSourceHlsl) + return paramType.getBasicType() == glslang::EbtBlock; + return paramType.containsOpaque() || // sampler, etc. + (paramType.getBasicType() == glslang::EbtBlock && qualifier == glslang::EvqBuffer); // SSBO +} + // Make all the functions, skeletally, without actually visiting their bodies. void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslFunctions) { + const auto getParamDecorations = [](std::vector& decorations, const glslang::TType& type) { + spv::Decoration paramPrecision = TranslatePrecisionDecoration(type); + if (paramPrecision != spv::NoPrecision) + decorations.push_back(paramPrecision); + TranslateMemoryDecoration(type.getQualifier(), decorations); + }; + for (int f = 0; f < (int)glslFunctions.size(); ++f) { glslang::TIntermAggregate* glslFunction = glslFunctions[f]->getAsAggregate(); if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction || isShaderEntryPoint(glslFunction)) @@ -2581,26 +3306,33 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF // GLSL has copy-in/copy-out semantics. They can be handled though with a pointer to a copy. std::vector paramTypes; - std::vector paramPrecisions; + std::vector> paramDecorations; // list of decorations per parameter glslang::TIntermSequence& parameters = glslFunction->getSequence()[0]->getAsAggregate()->getSequence(); + bool implicitThis = (int)parameters.size() > 0 && parameters[0]->getAsSymbolNode()->getName() == + glslangIntermediate->implicitThisName; + + paramDecorations.resize(parameters.size()); for (int p = 0; p < (int)parameters.size(); ++p) { const glslang::TType& paramType = parameters[p]->getAsTyped()->getType(); spv::Id typeId = convertGlslangToSpvType(paramType); - if (paramType.isOpaque()) + if (originalParam(paramType.getQualifier().storage, paramType, implicitThis && p == 0)) typeId = builder.makePointer(TranslateStorageClass(paramType), typeId); - else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly) + else if (writableParam(paramType.getQualifier().storage)) typeId = builder.makePointer(spv::StorageClassFunction, typeId); else rValueParameters.insert(parameters[p]->getAsSymbolNode()->getId()); - paramPrecisions.push_back(TranslatePrecisionDecoration(paramType)); + getParamDecorations(paramDecorations[p], paramType); paramTypes.push_back(typeId); } spv::Block* functionBlock; spv::Function *function = builder.makeFunctionEntry(TranslatePrecisionDecoration(glslFunction->getType()), convertGlslangToSpvType(glslFunction->getType()), - glslFunction->getName().c_str(), paramTypes, paramPrecisions, &functionBlock); + glslFunction->getName().c_str(), paramTypes, + paramDecorations, &functionBlock); + if (implicitThis) + function->setImplicitThis(); // Track function to emit/call later functionMap[glslFunction->getName().c_str()] = function; @@ -2654,9 +3386,15 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& glslang::TSampler sampler = {}; bool cubeCompare = false; +#ifdef AMD_EXTENSIONS + bool f16ShadowCompare = false; +#endif if (node.isTexture() || node.isImage()) { sampler = glslangArguments[0]->getAsTyped()->getType().getSampler(); cubeCompare = sampler.dim == glslang::EsdCube && sampler.arrayed && sampler.shadow; +#ifdef AMD_EXTENSIONS + f16ShadowCompare = sampler.shadow && glslangArguments[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16; +#endif } for (int i = 0; i < (int)glslangArguments.size(); ++i) { @@ -2681,6 +3419,21 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if ((sampler.ms && i == 3) || (! sampler.ms && i == 2)) lvalue = true; break; +#ifdef AMD_EXTENSIONS + case glslang::EOpSparseTexture: + if (((cubeCompare || f16ShadowCompare) && i == 3) || (! (cubeCompare || f16ShadowCompare) && i == 2)) + lvalue = true; + break; + case glslang::EOpSparseTextureClamp: + if (((cubeCompare || f16ShadowCompare) && i == 4) || (! (cubeCompare || f16ShadowCompare) && i == 3)) + lvalue = true; + break; + case glslang::EOpSparseTextureLod: + case glslang::EOpSparseTextureOffset: + if ((f16ShadowCompare && i == 4) || (! f16ShadowCompare && i == 3)) + lvalue = true; + break; +#else case glslang::EOpSparseTexture: if ((cubeCompare && i == 3) || (! cubeCompare && i == 2)) lvalue = true; @@ -2694,6 +3447,7 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if (i == 3) lvalue = true; break; +#endif case glslang::EOpSparseTextureFetch: if ((sampler.dim != glslang::EsdRect && i == 3) || (sampler.dim == glslang::EsdRect && i == 2)) lvalue = true; @@ -2702,6 +3456,23 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if ((sampler.dim != glslang::EsdRect && i == 4) || (sampler.dim == glslang::EsdRect && i == 3)) lvalue = true; break; +#ifdef AMD_EXTENSIONS + case glslang::EOpSparseTextureLodOffset: + case glslang::EOpSparseTextureGrad: + case glslang::EOpSparseTextureOffsetClamp: + if ((f16ShadowCompare && i == 5) || (! f16ShadowCompare && i == 4)) + lvalue = true; + break; + case glslang::EOpSparseTextureGradOffset: + case glslang::EOpSparseTextureGradClamp: + if ((f16ShadowCompare && i == 6) || (! f16ShadowCompare && i == 5)) + lvalue = true; + break; + case glslang::EOpSparseTextureGradOffsetClamp: + if ((f16ShadowCompare && i == 7) || (! f16ShadowCompare && i == 6)) + lvalue = true; + break; +#else case glslang::EOpSparseTextureLodOffset: case glslang::EOpSparseTextureGrad: case glslang::EOpSparseTextureOffsetClamp: @@ -2717,7 +3488,8 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if (i == 6) lvalue = true; break; - case glslang::EOpSparseTextureGather: +#endif + case glslang::EOpSparseTextureGather: if ((sampler.shadow && i == 3) || (! sampler.shadow && i == 2)) lvalue = true; break; @@ -2726,6 +3498,21 @@ void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& if ((sampler.shadow && i == 4) || (! sampler.shadow && i == 3)) lvalue = true; break; +#ifdef AMD_EXTENSIONS + case glslang::EOpSparseTextureGatherLod: + if (i == 3) + lvalue = true; + break; + case glslang::EOpSparseTextureGatherLodOffset: + case glslang::EOpSparseTextureGatherLodOffsets: + if (i == 4) + lvalue = true; + break; + case glslang::EOpSparseImageLoadLod: + if (i == 3) + lvalue = true; + break; +#endif default: break; } @@ -2746,14 +3533,20 @@ void TGlslangToSpvTraverser::translateArguments(glslang::TIntermUnary& node, std spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermOperator* node) { - if (! node->isImage() && ! node->isTexture()) { + if (! node->isImage() && ! node->isTexture()) return spv::NoResult; - } - auto resultType = [&node,this]{ return convertGlslangToSpvType(node->getType()); }; + + builder.setLine(node->getLoc().line); // Process a GLSL texturing op (will be SPV image) const glslang::TSampler sampler = node->getAsAggregate() ? node->getAsAggregate()->getSequence()[0]->getAsTyped()->getType().getSampler() : node->getAsUnaryNode()->getOperand()->getAsTyped()->getType().getSampler(); +#ifdef AMD_EXTENSIONS + bool f16ShadowCompare = (sampler.shadow && node->getAsAggregate()) + ? node->getAsAggregate()->getSequence()[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16 + : false; +#endif + std::vector arguments; if (node->getAsAggregate()) translateArguments(*node->getAsAggregate(), arguments); @@ -2767,6 +3560,8 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO glslang::TCrackedTextureOp cracked; node->crackTexture(sampler, cracked); + const bool isUnsignedResult = node->getType().getBasicType() == glslang::EbtUint; + // Check for queries if (cracked.query) { // OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first @@ -2778,17 +3573,17 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO case glslang::EOpTextureQuerySize: if (arguments.size() > 1) { params.lod = arguments[1]; - return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params); + return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params, isUnsignedResult); } else - return builder.createTextureQueryCall(spv::OpImageQuerySize, params); + return builder.createTextureQueryCall(spv::OpImageQuerySize, params, isUnsignedResult); case glslang::EOpImageQuerySamples: case glslang::EOpTextureQuerySamples: - return builder.createTextureQueryCall(spv::OpImageQuerySamples, params); + return builder.createTextureQueryCall(spv::OpImageQuerySamples, params, isUnsignedResult); case glslang::EOpTextureQueryLod: params.coords = arguments[1]; - return builder.createTextureQueryCall(spv::OpImageQueryLod, params); + return builder.createTextureQueryCall(spv::OpImageQueryLod, params, isUnsignedResult); case glslang::EOpTextureQueryLevels: - return builder.createTextureQueryCall(spv::OpImageQueryLevels, params); + return builder.createTextureQueryCall(spv::OpImageQueryLevels, params, isUnsignedResult); case glslang::EOpSparseTexelsResident: return builder.createUnaryOp(spv::OpImageSparseTexelsResident, builder.makeBoolType(), arguments[0]); default: @@ -2797,6 +3592,20 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } + int components = node->getType().getVectorSize(); + + if (node->getOp() == glslang::EOpTextureFetch) { + // These must produce 4 components, per SPIR-V spec. We'll add a conversion constructor if needed. + // This will only happen through the HLSL path for operator[], so we do not have to handle e.g. + // the EOpTexture/Proj/Lod/etc family. It would be harmless to do so, but would need more logic + // here around e.g. which ones return scalars or other types. + components = 4; + } + + glslang::TType returnType(node->getType().getBasicType(), glslang::EvqTemporary, components); + + auto resultType = [&returnType,this]{ return convertGlslangToSpvType(returnType); }; + // Check for image functions other than queries if (node->isImage()) { std::vector operands; @@ -2817,30 +3626,69 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*(opIt++)); } - return builder.createOp(spv::OpImageRead, resultType(), operands); + spv::Id result = builder.createOp(spv::OpImageRead, resultType(), operands); + builder.setPrecision(result, precision); + return result; } operands.push_back(*(opIt++)); +#ifdef AMD_EXTENSIONS + if (node->getOp() == glslang::EOpImageLoad || node->getOp() == glslang::EOpImageLoadLod) { +#else if (node->getOp() == glslang::EOpImageLoad) { +#endif if (sampler.ms) { operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*opIt); +#ifdef AMD_EXTENSIONS + } else if (cracked.lod) { + builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); + builder.addCapability(spv::CapabilityImageReadWriteLodAMD); + + operands.push_back(spv::ImageOperandsLodMask); + operands.push_back(*opIt); +#endif } if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown) builder.addCapability(spv::CapabilityStorageImageReadWithoutFormat); - return builder.createOp(spv::OpImageRead, resultType(), operands); + + std::vector result( 1, builder.createOp(spv::OpImageRead, resultType(), operands) ); + builder.setPrecision(result[0], precision); + + // If needed, add a conversion constructor to the proper size. + if (components != node->getType().getVectorSize()) + result[0] = builder.createConstructor(precision, result, convertGlslangToSpvType(node->getType())); + + return result[0]; +#ifdef AMD_EXTENSIONS + } else if (node->getOp() == glslang::EOpImageStore || node->getOp() == glslang::EOpImageStoreLod) { +#else } else if (node->getOp() == glslang::EOpImageStore) { +#endif if (sampler.ms) { operands.push_back(*(opIt + 1)); operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*opIt); +#ifdef AMD_EXTENSIONS + } else if (cracked.lod) { + builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); + builder.addCapability(spv::CapabilityImageReadWriteLodAMD); + + operands.push_back(*(opIt + 1)); + operands.push_back(spv::ImageOperandsLodMask); + operands.push_back(*opIt); +#endif } else operands.push_back(*opIt); builder.createNoResultOp(spv::OpImageWrite, operands); if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown) builder.addCapability(spv::CapabilityStorageImageWriteWithoutFormat); return spv::NoResult; +#ifdef AMD_EXTENSIONS + } else if (node->getOp() == glslang::EOpSparseImageLoad || node->getOp() == glslang::EOpSparseImageLoadLod) { +#else } else if (node->getOp() == glslang::EOpSparseImageLoad) { +#endif builder.addCapability(spv::CapabilitySparseResidency); if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown) builder.addCapability(spv::CapabilityStorageImageReadWithoutFormat); @@ -2848,6 +3696,14 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO if (sampler.ms) { operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*opIt++); +#ifdef AMD_EXTENSIONS + } else if (cracked.lod) { + builder.addExtension(spv::E_SPV_AMD_shader_image_load_store_lod); + builder.addCapability(spv::CapabilityImageReadWriteLodAMD); + + operands.push_back(spv::ImageOperandsLodMask); + operands.push_back(*opIt++); +#endif } // Create the return type that was a special structure @@ -2880,16 +3736,70 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } +#ifdef AMD_EXTENSIONS + // Check for fragment mask functions other than queries + if (cracked.fragMask) { + assert(sampler.ms); + + auto opIt = arguments.begin(); + std::vector operands; + + // Extract the image if necessary + if (builder.isSampledImage(params.sampler)) + params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); + + operands.push_back(params.sampler); + ++opIt; + + if (sampler.isSubpass()) { + // add on the (0,0) coordinate + spv::Id zero = builder.makeIntConstant(0); + std::vector comps; + comps.push_back(zero); + comps.push_back(zero); + operands.push_back(builder.makeCompositeConstant(builder.makeVectorType(builder.makeIntType(32), 2), comps)); + } + + for (; opIt != arguments.end(); ++opIt) + operands.push_back(*opIt); + + spv::Op fragMaskOp = spv::OpNop; + if (node->getOp() == glslang::EOpFragmentMaskFetch) + fragMaskOp = spv::OpFragmentMaskFetchAMD; + else if (node->getOp() == glslang::EOpFragmentFetch) + fragMaskOp = spv::OpFragmentFetchAMD; + + builder.addExtension(spv::E_SPV_AMD_shader_fragment_mask); + builder.addCapability(spv::CapabilityFragmentMaskAMD); + return builder.createOp(fragMaskOp, resultType(), operands); + } +#endif + // Check for texture functions other than queries bool sparse = node->isSparseTexture(); bool cubeCompare = sampler.dim == glslang::EsdCube && sampler.arrayed && sampler.shadow; // check for bias argument bool bias = false; +#ifdef AMD_EXTENSIONS + if (! cracked.lod && ! cracked.grad && ! cracked.fetch && ! cubeCompare) { +#else if (! cracked.lod && ! cracked.gather && ! cracked.grad && ! cracked.fetch && ! cubeCompare) { +#endif int nonBiasArgCount = 2; +#ifdef AMD_EXTENSIONS + if (cracked.gather) + ++nonBiasArgCount; // comp argument should be present when bias argument is present + + if (f16ShadowCompare) + ++nonBiasArgCount; +#endif if (cracked.offset) ++nonBiasArgCount; +#ifdef AMD_EXTENSIONS + else if (cracked.offsets) + ++nonBiasArgCount; +#endif if (cracked.grad) nonBiasArgCount += 2; if (cracked.lodClamp) @@ -2908,6 +3818,17 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); } +#ifdef AMD_EXTENSIONS + if (cracked.gather) { + const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions(); + if (bias || cracked.lod || + sourceExtensions.find(glslang::E_GL_AMD_texture_gather_bias_lod) != sourceExtensions.end()) { + builder.addExtension(spv::E_SPV_AMD_texture_gather_bias_lod); + builder.addCapability(spv::CapabilityImageGatherBiasLodAMD); + } + } +#endif + // set the rest of the arguments params.coords = arguments[1]; @@ -2915,7 +3836,11 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO bool noImplicitLod = false; // sort out where Dref is coming from +#ifdef AMD_EXTENSIONS + if (cubeCompare || f16ShadowCompare) { +#else if (cubeCompare) { +#endif params.Dref = arguments[2]; ++extraArgs; } else if (sampler.shadow && cracked.gather) { @@ -2934,7 +3859,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // lod if (cracked.lod) { - params.lod = arguments[2]; + params.lod = arguments[2 + extraArgs]; ++extraArgs; } else if (glslangIntermediate->getStage() != EShLangFragment) { // we need to invent the default lod for an explicit lod instruction for a non-fragment stage @@ -2943,7 +3868,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // multisample if (sampler.ms) { - params.sample = arguments[2]; // For MS, "sample" should be specified + params.sample = arguments[2 + extraArgs]; // For MS, "sample" should be specified ++extraArgs; } @@ -2975,21 +3900,20 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO ++extraArgs; } - // bias - if (bias) { - params.bias = arguments[2 + extraArgs]; - ++extraArgs; - } - // gather component if (cracked.gather && ! sampler.shadow) { // default component is 0, if missing, otherwise an argument if (2 + extraArgs < (int)arguments.size()) { params.component = arguments[2 + extraArgs]; ++extraArgs; - } else { + } else params.component = builder.makeIntConstant(0); - } + } + + // bias + if (bias) { + params.bias = arguments[2 + extraArgs]; + ++extraArgs; } // projective component (might not to move) @@ -3008,7 +3932,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } // copy the projective coordinate if we have to if (projTargetComp != projSourceComp) { - spv::Id projComp = builder.createCompositeExtract(params.coords, + spv::Id projComp = builder.createCompositeExtract(params.coords, builder.getScalarTypeId(builder.getTypeId(params.coords)), projSourceComp); params.coords = builder.createCompositeInsert(projComp, params.coords, @@ -3016,7 +3940,14 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } - return builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params); + std::vector result( 1, + builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params) + ); + + if (components != node->getType().getVectorSize()) + result[0] = builder.createConstructor(precision, result, convertGlslangToSpvType(node->getType())); + + return result[0]; } spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAggregate* node) @@ -3037,18 +3968,18 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg // 3. Make the call // 4. Copy back the results - // 1. Evaluate the arguments + // 1. Evaluate the arguments and their types std::vector lValues; std::vector rValues; std::vector argTypes; for (int a = 0; a < (int)glslangArgs.size(); ++a) { - const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); + argTypes.push_back(&glslangArgs[a]->getAsTyped()->getType()); // build l-value builder.clearAccessChain(); glslangArgs[a]->traverse(this); - argTypes.push_back(¶mType); - // keep outputs and opaque objects as l-values, evaluate input-only as r-values - if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.isOpaque()) { + // keep outputs and pass-by-originals as l-values, evaluate others as r-values + if (originalParam(qualifiers[a], *argTypes[a], function->hasImplicitThis() && a == 0) || + writableParam(qualifiers[a])) { // save l-value lValues.push_back(builder.getAccessChain()); } else { @@ -3065,26 +3996,33 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg int rValueCount = 0; std::vector spvArgs; for (int a = 0; a < (int)glslangArgs.size(); ++a) { - const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); spv::Id arg; - if (paramType.isOpaque()) { + if (originalParam(qualifiers[a], *argTypes[a], function->hasImplicitThis() && a == 0)) { builder.setAccessChain(lValues[lValueCount]); arg = builder.accessChainGetLValue(); ++lValueCount; - } else if (qualifiers[a] != glslang::EvqConstReadOnly) { + } else if (writableParam(qualifiers[a])) { // need space to hold the copy - arg = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(paramType), "param"); + arg = builder.createVariable(spv::StorageClassFunction, builder.getContainedTypeId(function->getParamType(a)), "param"); if (qualifiers[a] == glslang::EvqIn || qualifiers[a] == glslang::EvqInOut) { // need to copy the input into output space builder.setAccessChain(lValues[lValueCount]); spv::Id copy = accessChainLoad(*argTypes[a]); builder.clearAccessChain(); builder.setAccessChainLValue(arg); - multiTypeStore(paramType, copy); + multiTypeStore(*argTypes[a], copy); } ++lValueCount; } else { - arg = rValues[rValueCount]; + // process r-value, which involves a copy for a type mismatch + if (function->getParamType(a) != convertGlslangToSpvType(*argTypes[a])) { + spv::Id argCopy = builder.createVariable(spv::StorageClassFunction, function->getParamType(a), "arg"); + builder.clearAccessChain(); + builder.setAccessChainLValue(argCopy); + multiTypeStore(*argTypes[a], rValues[rValueCount]); + arg = builder.createLoad(argCopy); + } else + arg = rValues[rValueCount]; ++rValueCount; } spvArgs.push_back(arg); @@ -3097,12 +4035,13 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg // 4. Copy back out an "out" arguments. lValueCount = 0; for (int a = 0; a < (int)glslangArgs.size(); ++a) { - const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); - if (qualifiers[a] != glslang::EvqConstReadOnly) { + if (originalParam(qualifiers[a], *argTypes[a], function->hasImplicitThis() && a == 0)) + ++lValueCount; + else if (writableParam(qualifiers[a])) { if (qualifiers[a] == glslang::EvqOut || qualifiers[a] == glslang::EvqInOut) { spv::Id copy = builder.createLoad(spvArgs[a]); builder.setAccessChain(lValues[lValueCount]); - multiTypeStore(paramType, copy); + multiTypeStore(*argTypes[a], copy); } ++lValueCount; } @@ -3112,17 +4051,12 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg } // Translate AST operation to SPV operation, already having SPV-based operands/types. -spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv::Decoration precision, - spv::Decoration noContraction, +spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison) { - bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; -#ifdef AMD_EXTENSIONS - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; -#else - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; -#endif + bool isUnsigned = isTypeUnsignedInt(typeProxy); + bool isFloat = isTypeFloat(typeProxy); bool isBool = typeProxy == glslang::EbtBool; spv::Op binOp = spv::OpNop; @@ -3254,15 +4188,16 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv if (binOp != spv::OpNop) { assert(comparison == false); if (builder.isMatrix(left) || builder.isMatrix(right)) - return createBinaryMatrixOperation(binOp, precision, noContraction, typeId, left, right); + return createBinaryMatrixOperation(binOp, decorations, typeId, left, right); // No matrix involved; make both operands be the same number of components, if needed if (needMatchingVectors) - builder.promoteScalar(precision, left, right); + builder.promoteScalar(decorations.precision, left, right); spv::Id result = builder.createBinOp(binOp, typeId, left, right); - addDecoration(result, noContraction); - return builder.setPrecision(result, precision); + builder.addDecoration(result, decorations.noContraction); + builder.addDecoration(result, decorations.nonUniform); + return builder.setPrecision(result, decorations.precision); } if (! comparison) @@ -3271,8 +4206,11 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv // Handle comparison instructions if (reduceComparison && (op == glslang::EOpEqual || op == glslang::EOpNotEqual) - && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) - return builder.createCompositeCompare(precision, left, right, op == glslang::EOpEqual); + && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) { + spv::Id result = builder.createCompositeCompare(decorations.precision, left, right, op == glslang::EOpEqual); + builder.addDecoration(result, decorations.nonUniform); + return result; + } switch (op) { case glslang::EOpLessThan: @@ -3331,8 +4269,9 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv if (binOp != spv::OpNop) { spv::Id result = builder.createBinOp(binOp, typeId, left, right); - addDecoration(result, noContraction); - return builder.setPrecision(result, precision); + builder.addDecoration(result, decorations.noContraction); + builder.addDecoration(result, decorations.nonUniform); + return builder.setPrecision(result, decorations.precision); } return 0; @@ -3352,7 +4291,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv // matrix op scalar op in {+, -, /} // scalar op matrix op in {+, -, /} // -spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right) +spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId, + spv::Id left, spv::Id right) { bool firstClass = true; @@ -3361,7 +4301,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec case spv::OpFDiv: if (builder.isMatrix(left) && builder.isScalar(right)) { // turn matrix / scalar into a multiply... - right = builder.createBinOp(spv::OpFDiv, builder.getTypeId(right), builder.makeFloatConstant(1.0F), right); + spv::Id resultType = builder.getTypeId(right); + right = builder.createBinOp(spv::OpFDiv, resultType, builder.makeFpConstant(resultType, 1.0), right); op = spv::OpMatrixTimesScalar; } else firstClass = false; @@ -3390,8 +4331,9 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec if (firstClass) { spv::Id result = builder.createBinOp(op, typeId, left, right); - addDecoration(result, noContraction); - return builder.setPrecision(result, precision); + builder.addDecoration(result, decorations.noContraction); + builder.addDecoration(result, decorations.nonUniform); + return builder.setPrecision(result, decorations.precision); } // Handle component-wise +, -, *, %, and / for all combinations of type. @@ -3418,9 +4360,9 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec std::vector results; spv::Id smearVec = spv::NoResult; if (builder.isScalar(left)) - smearVec = builder.smearScalar(precision, left, vecType); + smearVec = builder.smearScalar(decorations.precision, left, vecType); else if (builder.isScalar(right)) - smearVec = builder.smearScalar(precision, right, vecType); + smearVec = builder.smearScalar(decorations.precision, right, vecType); // do each vector op for (unsigned int c = 0; c < numCols; ++c) { @@ -3429,12 +4371,15 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec spv::Id leftVec = leftMat ? builder.createCompositeExtract( left, vecType, indexes) : smearVec; spv::Id rightVec = rightMat ? builder.createCompositeExtract(right, vecType, indexes) : smearVec; spv::Id result = builder.createBinOp(op, vecType, leftVec, rightVec); - addDecoration(result, noContraction); - results.push_back(builder.setPrecision(result, precision)); + builder.addDecoration(result, decorations.noContraction); + builder.addDecoration(result, decorations.nonUniform); + results.push_back(builder.setPrecision(result, decorations.precision)); } // put the pieces together - return builder.setPrecision(builder.createCompositeConstruct(typeId, results), precision); + spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision); + builder.addDecoration(result, decorations.nonUniform); + return result; } default: assert(0); @@ -3442,24 +4387,21 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec } } -spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy) +spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDecorations& decorations, spv::Id typeId, + spv::Id operand, glslang::TBasicType typeProxy) { spv::Op unaryOp = spv::OpNop; int extBuiltins = -1; int libCall = -1; - bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; -#ifdef AMD_EXTENSIONS - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; -#else - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; -#endif + bool isUnsigned = isTypeUnsignedInt(typeProxy); + bool isFloat = isTypeFloat(typeProxy); switch (op) { case glslang::EOpNegative: if (isFloat) { unaryOp = spv::OpFNegate; if (builder.isMatrixType(typeId)) - return createUnaryMatrixOperation(unaryOp, precision, noContraction, typeId, operand, typeProxy); + return createUnaryMatrixOperation(unaryOp, decorations, typeId, operand, typeProxy); } else unaryOp = spv::OpSNegate; break; @@ -3589,6 +4531,10 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpDoubleBitsToUint64: case glslang::EOpInt64BitsToDouble: case glslang::EOpUint64BitsToDouble: + case glslang::EOpFloat16BitsToInt16: + case glslang::EOpFloat16BitsToUint16: + case glslang::EOpInt16BitsToFloat16: + case glslang::EOpUint16BitsToFloat16: unaryOp = spv::OpBitcast; break; @@ -3633,15 +4579,24 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpUnpackInt2x32: case glslang::EOpPackUint2x32: case glslang::EOpUnpackUint2x32: - unaryOp = spv::OpBitcast; - break; - -#ifdef AMD_EXTENSIONS + case glslang::EOpPack16: + case glslang::EOpPack32: + case glslang::EOpPack64: + case glslang::EOpUnpack32: + case glslang::EOpUnpack16: + case glslang::EOpUnpack8: + case glslang::EOpPackInt2x16: + case glslang::EOpUnpackInt2x16: + case glslang::EOpPackUint2x16: + case glslang::EOpUnpackUint2x16: + case glslang::EOpPackInt4x16: + case glslang::EOpUnpackInt4x16: + case glslang::EOpPackUint4x16: + case glslang::EOpUnpackUint4x16: case glslang::EOpPackFloat2x16: case glslang::EOpUnpackFloat2x16: unaryOp = spv::OpBitcast; break; -#endif case glslang::EOpDPdx: unaryOp = spv::OpDPdx; @@ -3677,6 +4632,10 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: unaryOp = spv::OpFwidthCoarse; break; case glslang::EOpInterpolateAtCentroid: +#ifdef AMD_EXTENSIONS + if (typeProxy == glslang::EbtFloat16) + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); +#endif builder.addCapability(spv::CapabilityInterpolationFunction); libCall = spv::GLSLstd450InterpolateAtCentroid; break; @@ -3707,7 +4666,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: // Handle all of the atomics in one place, in createAtomicOperation() std::vector operands; operands.push_back(operand); - return createAtomicOperation(op, precision, typeId, operands, typeProxy); + return createAtomicOperation(op, decorations.precision, typeId, operands, typeProxy); } case glslang::EOpBitFieldReverse: @@ -3738,13 +4697,63 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpMinInvocationsNonUniform: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: + case glslang::EOpMinInvocationsInclusiveScan: + case glslang::EOpMaxInvocationsInclusiveScan: + case glslang::EOpAddInvocationsInclusiveScan: + case glslang::EOpMinInvocationsInclusiveScanNonUniform: + case glslang::EOpMaxInvocationsInclusiveScanNonUniform: + case glslang::EOpAddInvocationsInclusiveScanNonUniform: + case glslang::EOpMinInvocationsExclusiveScan: + case glslang::EOpMaxInvocationsExclusiveScan: + case glslang::EOpAddInvocationsExclusiveScan: + case glslang::EOpMinInvocationsExclusiveScanNonUniform: + case glslang::EOpMaxInvocationsExclusiveScanNonUniform: + case glslang::EOpAddInvocationsExclusiveScanNonUniform: #endif { std::vector operands; operands.push_back(operand); return createInvocationsOperation(op, typeId, operands, typeProxy); } - + case glslang::EOpSubgroupAll: + case glslang::EOpSubgroupAny: + case glslang::EOpSubgroupAllEqual: + case glslang::EOpSubgroupBroadcastFirst: + case glslang::EOpSubgroupBallot: + case glslang::EOpSubgroupInverseBallot: + case glslang::EOpSubgroupBallotBitCount: + case glslang::EOpSubgroupBallotInclusiveBitCount: + case glslang::EOpSubgroupBallotExclusiveBitCount: + case glslang::EOpSubgroupBallotFindLSB: + case glslang::EOpSubgroupBallotFindMSB: + case glslang::EOpSubgroupAdd: + case glslang::EOpSubgroupMul: + case glslang::EOpSubgroupMin: + case glslang::EOpSubgroupMax: + case glslang::EOpSubgroupAnd: + case glslang::EOpSubgroupOr: + case glslang::EOpSubgroupXor: + case glslang::EOpSubgroupInclusiveAdd: + case glslang::EOpSubgroupInclusiveMul: + case glslang::EOpSubgroupInclusiveMin: + case glslang::EOpSubgroupInclusiveMax: + case glslang::EOpSubgroupInclusiveAnd: + case glslang::EOpSubgroupInclusiveOr: + case glslang::EOpSubgroupInclusiveXor: + case glslang::EOpSubgroupExclusiveAdd: + case glslang::EOpSubgroupExclusiveMul: + case glslang::EOpSubgroupExclusiveMin: + case glslang::EOpSubgroupExclusiveMax: + case glslang::EOpSubgroupExclusiveAnd: + case glslang::EOpSubgroupExclusiveOr: + case glslang::EOpSubgroupExclusiveXor: + case glslang::EOpSubgroupQuadSwapHorizontal: + case glslang::EOpSubgroupQuadSwapVertical: + case glslang::EOpSubgroupQuadSwapDiagonal: { + std::vector operands; + operands.push_back(operand); + return createSubgroupOperation(op, typeId, operands, typeProxy); + } #ifdef AMD_EXTENSIONS case glslang::EOpMbcnt: extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); @@ -3761,7 +4770,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: libCall = spv::CubeFaceCoordAMD; break; #endif - +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartition: + builder.addExtension(spv::E_SPV_NV_shader_subgroup_partitioned); + builder.addCapability(spv::CapabilityGroupNonUniformPartitionedNV); + unaryOp = spv::OpGroupNonUniformPartitionNV; + break; +#endif default: return 0; } @@ -3775,12 +4790,14 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: id = builder.createUnaryOp(unaryOp, typeId, operand); } - addDecoration(id, noContraction); - return builder.setPrecision(id, precision); + builder.addDecoration(id, decorations.noContraction); + builder.addDecoration(id, decorations.nonUniform); + return builder.setPrecision(id, decorations.precision); } // Create a unary operation on a matrix -spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType /* typeProxy */) +spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, OpDecorations& decorations, spv::Id typeId, + spv::Id operand, glslang::TBasicType /* typeProxy */) { // Handle unary operations vector by vector. // The result type is the same type as the original type. @@ -3802,30 +4819,123 @@ spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, spv::Deco indexes.push_back(c); spv::Id srcVec = builder.createCompositeExtract(operand, srcVecType, indexes); spv::Id destVec = builder.createUnaryOp(op, destVecType, srcVec); - addDecoration(destVec, noContraction); - results.push_back(builder.setPrecision(destVec, precision)); + builder.addDecoration(destVec, decorations.noContraction); + builder.addDecoration(destVec, decorations.nonUniform); + results.push_back(builder.setPrecision(destVec, decorations.precision)); } // put the pieces together - return builder.setPrecision(builder.createCompositeConstruct(typeId, results), precision); + spv::Id result = builder.setPrecision(builder.createCompositeConstruct(typeId, results), decorations.precision); + builder.addDecoration(result, decorations.nonUniform); + return result; } -spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destType, spv::Id operand, glslang::TBasicType typeProxy) +// For converting integers where both the bitwidth and the signedness could +// change, but only do the width change here. The caller is still responsible +// for the signedness conversion. +spv::Id TGlslangToSpvTraverser::createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize) +{ + // Get the result type width, based on the type to convert to. + int width = 32; + switch(op) { + case glslang::EOpConvInt16ToUint8: + case glslang::EOpConvIntToUint8: + case glslang::EOpConvInt64ToUint8: + case glslang::EOpConvUint16ToInt8: + case glslang::EOpConvUintToInt8: + case glslang::EOpConvUint64ToInt8: + width = 8; + break; + case glslang::EOpConvInt8ToUint16: + case glslang::EOpConvIntToUint16: + case glslang::EOpConvInt64ToUint16: + case glslang::EOpConvUint8ToInt16: + case glslang::EOpConvUintToInt16: + case glslang::EOpConvUint64ToInt16: + width = 16; + break; + case glslang::EOpConvInt8ToUint: + case glslang::EOpConvInt16ToUint: + case glslang::EOpConvInt64ToUint: + case glslang::EOpConvUint8ToInt: + case glslang::EOpConvUint16ToInt: + case glslang::EOpConvUint64ToInt: + width = 32; + break; + case glslang::EOpConvInt8ToUint64: + case glslang::EOpConvInt16ToUint64: + case glslang::EOpConvIntToUint64: + case glslang::EOpConvUint8ToInt64: + case glslang::EOpConvUint16ToInt64: + case glslang::EOpConvUintToInt64: + width = 64; + break; + + default: + assert(false && "Default missing"); + break; + } + + // Get the conversion operation and result type, + // based on the target width, but the source type. + spv::Id type = spv::NoType; + spv::Op convOp = spv::OpNop; + switch(op) { + case glslang::EOpConvInt8ToUint16: + case glslang::EOpConvInt8ToUint: + case glslang::EOpConvInt8ToUint64: + case glslang::EOpConvInt16ToUint8: + case glslang::EOpConvInt16ToUint: + case glslang::EOpConvInt16ToUint64: + case glslang::EOpConvIntToUint8: + case glslang::EOpConvIntToUint16: + case glslang::EOpConvIntToUint64: + case glslang::EOpConvInt64ToUint8: + case glslang::EOpConvInt64ToUint16: + case glslang::EOpConvInt64ToUint: + convOp = spv::OpSConvert; + type = builder.makeIntType(width); + break; + default: + convOp = spv::OpUConvert; + type = builder.makeUintType(width); + break; + } + + if (vectorSize > 0) + type = builder.makeVectorType(type, vectorSize); + + return builder.createUnaryOp(convOp, type, operand); +} + +spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecorations& decorations, spv::Id destType, + spv::Id operand, glslang::TBasicType typeProxy) { spv::Op convOp = spv::OpNop; spv::Id zero = 0; spv::Id one = 0; - spv::Id type = 0; int vectorSize = builder.isVectorType(destType) ? builder.getNumTypeComponents(destType) : 0; switch (op) { + case glslang::EOpConvInt8ToBool: + case glslang::EOpConvUint8ToBool: + zero = builder.makeUint8Constant(0); + zero = makeSmearedConstant(zero, vectorSize); + return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); + case glslang::EOpConvInt16ToBool: + case glslang::EOpConvUint16ToBool: + zero = builder.makeUint16Constant(0); + zero = makeSmearedConstant(zero, vectorSize); + return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); case glslang::EOpConvIntToBool: case glslang::EOpConvUintToBool: + zero = builder.makeUintConstant(0); + zero = makeSmearedConstant(zero, vectorSize); + return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); case glslang::EOpConvInt64ToBool: case glslang::EOpConvUint64ToBool: - zero = (op == glslang::EOpConvInt64ToBool || - op == glslang::EOpConvUint64ToBool) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); + zero = builder.makeUint64Constant(0); zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpINotEqual, destType, operand, zero); @@ -3839,12 +4949,10 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); -#ifdef AMD_EXTENSIONS case glslang::EOpConvFloat16ToBool: zero = builder.makeFloat16Constant(0.0F); zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); -#endif case glslang::EOpConvBoolToFloat: convOp = spv::OpSelect; @@ -3858,82 +4966,141 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec one = builder.makeDoubleConstant(1.0); break; -#ifdef AMD_EXTENSIONS case glslang::EOpConvBoolToFloat16: convOp = spv::OpSelect; zero = builder.makeFloat16Constant(0.0F); one = builder.makeFloat16Constant(1.0F); break; -#endif + + case glslang::EOpConvBoolToInt8: + zero = builder.makeInt8Constant(0); + one = builder.makeInt8Constant(1); + convOp = spv::OpSelect; + break; + + case glslang::EOpConvBoolToUint8: + zero = builder.makeUint8Constant(0); + one = builder.makeUint8Constant(1); + convOp = spv::OpSelect; + break; + + case glslang::EOpConvBoolToInt16: + zero = builder.makeInt16Constant(0); + one = builder.makeInt16Constant(1); + convOp = spv::OpSelect; + break; + + case glslang::EOpConvBoolToUint16: + zero = builder.makeUint16Constant(0); + one = builder.makeUint16Constant(1); + convOp = spv::OpSelect; + break; case glslang::EOpConvBoolToInt: case glslang::EOpConvBoolToInt64: - zero = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(0) : builder.makeIntConstant(0); - one = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(1) : builder.makeIntConstant(1); + if (op == glslang::EOpConvBoolToInt64) + zero = builder.makeInt64Constant(0); + else + zero = builder.makeIntConstant(0); + + if (op == glslang::EOpConvBoolToInt64) + one = builder.makeInt64Constant(1); + else + one = builder.makeIntConstant(1); + convOp = spv::OpSelect; break; case glslang::EOpConvBoolToUint: case glslang::EOpConvBoolToUint64: - zero = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); - one = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(1) : builder.makeUintConstant(1); + if (op == glslang::EOpConvBoolToUint64) + zero = builder.makeUint64Constant(0); + else + zero = builder.makeUintConstant(0); + + if (op == glslang::EOpConvBoolToUint64) + one = builder.makeUint64Constant(1); + else + one = builder.makeUintConstant(1); + convOp = spv::OpSelect; break; + case glslang::EOpConvInt8ToFloat16: + case glslang::EOpConvInt8ToFloat: + case glslang::EOpConvInt8ToDouble: + case glslang::EOpConvInt16ToFloat16: + case glslang::EOpConvInt16ToFloat: + case glslang::EOpConvInt16ToDouble: + case glslang::EOpConvIntToFloat16: case glslang::EOpConvIntToFloat: case glslang::EOpConvIntToDouble: case glslang::EOpConvInt64ToFloat: case glslang::EOpConvInt64ToDouble: -#ifdef AMD_EXTENSIONS - case glslang::EOpConvIntToFloat16: case glslang::EOpConvInt64ToFloat16: -#endif convOp = spv::OpConvertSToF; break; + case glslang::EOpConvUint8ToFloat16: + case glslang::EOpConvUint8ToFloat: + case glslang::EOpConvUint8ToDouble: + case glslang::EOpConvUint16ToFloat16: + case glslang::EOpConvUint16ToFloat: + case glslang::EOpConvUint16ToDouble: + case glslang::EOpConvUintToFloat16: case glslang::EOpConvUintToFloat: case glslang::EOpConvUintToDouble: case glslang::EOpConvUint64ToFloat: case glslang::EOpConvUint64ToDouble: -#ifdef AMD_EXTENSIONS - case glslang::EOpConvUintToFloat16: case glslang::EOpConvUint64ToFloat16: -#endif convOp = spv::OpConvertUToF; break; case glslang::EOpConvDoubleToFloat: case glslang::EOpConvFloatToDouble: -#ifdef AMD_EXTENSIONS case glslang::EOpConvDoubleToFloat16: case glslang::EOpConvFloat16ToDouble: case glslang::EOpConvFloatToFloat16: case glslang::EOpConvFloat16ToFloat: -#endif convOp = spv::OpFConvert; if (builder.isMatrixType(destType)) - return createUnaryMatrixOperation(convOp, precision, noContraction, destType, operand, typeProxy); + return createUnaryMatrixOperation(convOp, decorations, destType, operand, typeProxy); break; + case glslang::EOpConvFloat16ToInt8: + case glslang::EOpConvFloatToInt8: + case glslang::EOpConvDoubleToInt8: + case glslang::EOpConvFloat16ToInt16: + case glslang::EOpConvFloatToInt16: + case glslang::EOpConvDoubleToInt16: + case glslang::EOpConvFloat16ToInt: case glslang::EOpConvFloatToInt: case glslang::EOpConvDoubleToInt: + case glslang::EOpConvFloat16ToInt64: case glslang::EOpConvFloatToInt64: case glslang::EOpConvDoubleToInt64: -#ifdef AMD_EXTENSIONS - case glslang::EOpConvFloat16ToInt: - case glslang::EOpConvFloat16ToInt64: -#endif convOp = spv::OpConvertFToS; break; + case glslang::EOpConvUint8ToInt8: + case glslang::EOpConvInt8ToUint8: + case glslang::EOpConvUint16ToInt16: + case glslang::EOpConvInt16ToUint16: case glslang::EOpConvUintToInt: case glslang::EOpConvIntToUint: case glslang::EOpConvUint64ToInt64: case glslang::EOpConvInt64ToUint64: if (builder.isInSpecConstCodeGenMode()) { // Build zero scalar or vector for OpIAdd. - zero = (op == glslang::EOpConvUint64ToInt64 || - op == glslang::EOpConvInt64ToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); + if(op == glslang::EOpConvUint8ToInt8 || op == glslang::EOpConvInt8ToUint8) { + zero = builder.makeUint8Constant(0); + } else if (op == glslang::EOpConvUint16ToInt16 || op == glslang::EOpConvInt16ToUint16) { + zero = builder.makeUint16Constant(0); + } else if (op == glslang::EOpConvUint64ToInt64 || op == glslang::EOpConvInt64ToUint64) { + zero = builder.makeUint64Constant(0); + } else { + zero = builder.makeUintConstant(0); + } zero = makeSmearedConstant(zero, vectorSize); // Use OpIAdd, instead of OpBitcast to do the conversion when // generating for OpSpecConstantOp instruction. @@ -3943,63 +5110,117 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec convOp = spv::OpBitcast; break; + case glslang::EOpConvFloat16ToUint8: + case glslang::EOpConvFloatToUint8: + case glslang::EOpConvDoubleToUint8: + case glslang::EOpConvFloat16ToUint16: + case glslang::EOpConvFloatToUint16: + case glslang::EOpConvDoubleToUint16: + case glslang::EOpConvFloat16ToUint: case glslang::EOpConvFloatToUint: case glslang::EOpConvDoubleToUint: case glslang::EOpConvFloatToUint64: case glslang::EOpConvDoubleToUint64: -#ifdef AMD_EXTENSIONS - case glslang::EOpConvFloat16ToUint: case glslang::EOpConvFloat16ToUint64: -#endif convOp = spv::OpConvertFToU; break; + case glslang::EOpConvInt8ToInt16: + case glslang::EOpConvInt8ToInt: + case glslang::EOpConvInt8ToInt64: + case glslang::EOpConvInt16ToInt8: + case glslang::EOpConvInt16ToInt: + case glslang::EOpConvInt16ToInt64: + case glslang::EOpConvIntToInt8: + case glslang::EOpConvIntToInt16: case glslang::EOpConvIntToInt64: + case glslang::EOpConvInt64ToInt8: + case glslang::EOpConvInt64ToInt16: case glslang::EOpConvInt64ToInt: convOp = spv::OpSConvert; break; + case glslang::EOpConvUint8ToUint16: + case glslang::EOpConvUint8ToUint: + case glslang::EOpConvUint8ToUint64: + case glslang::EOpConvUint16ToUint8: + case glslang::EOpConvUint16ToUint: + case glslang::EOpConvUint16ToUint64: + case glslang::EOpConvUintToUint8: + case glslang::EOpConvUintToUint16: case glslang::EOpConvUintToUint64: + case glslang::EOpConvUint64ToUint8: + case glslang::EOpConvUint64ToUint16: case glslang::EOpConvUint64ToUint: convOp = spv::OpUConvert; break; + case glslang::EOpConvInt8ToUint16: + case glslang::EOpConvInt8ToUint: + case glslang::EOpConvInt8ToUint64: + case glslang::EOpConvInt16ToUint8: + case glslang::EOpConvInt16ToUint: + case glslang::EOpConvInt16ToUint64: + case glslang::EOpConvIntToUint8: + case glslang::EOpConvIntToUint16: case glslang::EOpConvIntToUint64: + case glslang::EOpConvInt64ToUint8: + case glslang::EOpConvInt64ToUint16: case glslang::EOpConvInt64ToUint: - case glslang::EOpConvUint64ToInt: + case glslang::EOpConvUint8ToInt16: + case glslang::EOpConvUint8ToInt: + case glslang::EOpConvUint8ToInt64: + case glslang::EOpConvUint16ToInt8: + case glslang::EOpConvUint16ToInt: + case glslang::EOpConvUint16ToInt64: + case glslang::EOpConvUintToInt8: + case glslang::EOpConvUintToInt16: case glslang::EOpConvUintToInt64: + case glslang::EOpConvUint64ToInt8: + case glslang::EOpConvUint64ToInt16: + case glslang::EOpConvUint64ToInt: // OpSConvert/OpUConvert + OpBitCast - switch (op) { - case glslang::EOpConvIntToUint64: - convOp = spv::OpSConvert; - type = builder.makeIntType(64); - break; - case glslang::EOpConvInt64ToUint: - convOp = spv::OpSConvert; - type = builder.makeIntType(32); - break; - case glslang::EOpConvUint64ToInt: - convOp = spv::OpUConvert; - type = builder.makeUintType(32); - break; - case glslang::EOpConvUintToInt64: - convOp = spv::OpUConvert; - type = builder.makeUintType(64); - break; - default: - assert(0); - break; - } - - if (vectorSize > 0) - type = builder.makeVectorType(type, vectorSize); - - operand = builder.createUnaryOp(convOp, type, operand); + operand = createIntWidthConversion(op, operand, vectorSize); if (builder.isInSpecConstCodeGenMode()) { // Build zero scalar or vector for OpIAdd. - zero = (op == glslang::EOpConvIntToUint64 || - op == glslang::EOpConvUintToInt64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); + switch(op) { + case glslang::EOpConvInt16ToUint8: + case glslang::EOpConvIntToUint8: + case glslang::EOpConvInt64ToUint8: + case glslang::EOpConvUint16ToInt8: + case glslang::EOpConvUintToInt8: + case glslang::EOpConvUint64ToInt8: + zero = builder.makeUint8Constant(0); + break; + case glslang::EOpConvInt8ToUint16: + case glslang::EOpConvIntToUint16: + case glslang::EOpConvInt64ToUint16: + case glslang::EOpConvUint8ToInt16: + case glslang::EOpConvUintToInt16: + case glslang::EOpConvUint64ToInt16: + zero = builder.makeUint16Constant(0); + break; + case glslang::EOpConvInt8ToUint: + case glslang::EOpConvInt16ToUint: + case glslang::EOpConvInt64ToUint: + case glslang::EOpConvUint8ToInt: + case glslang::EOpConvUint16ToInt: + case glslang::EOpConvUint64ToInt: + zero = builder.makeUintConstant(0); + break; + case glslang::EOpConvInt8ToUint64: + case glslang::EOpConvInt16ToUint64: + case glslang::EOpConvIntToUint64: + case glslang::EOpConvUint8ToInt64: + case glslang::EOpConvUint16ToInt64: + case glslang::EOpConvUintToInt64: + zero = builder.makeUint64Constant(0); + break; + default: + assert(false && "Default missing"); + break; + } zero = makeSmearedConstant(zero, vectorSize); // Use OpIAdd, instead of OpBitcast to do the conversion when // generating for OpSpecConstantOp instruction. @@ -4023,7 +5244,9 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec } else result = builder.createUnaryOp(convOp, destType, operand); - return builder.setPrecision(result, precision); + result = builder.setPrecision(result, decorations.precision); + builder.addDecoration(result, decorations.nonUniform); + return result; } spv::Id TGlslangToSpvTraverser::makeSmearedConstant(spv::Id constant, int vectorSize) @@ -4046,34 +5269,45 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv switch (op) { case glslang::EOpAtomicAdd: case glslang::EOpImageAtomicAdd: + case glslang::EOpAtomicCounterAdd: opCode = spv::OpAtomicIAdd; break; + case glslang::EOpAtomicCounterSubtract: + opCode = spv::OpAtomicISub; + break; case glslang::EOpAtomicMin: case glslang::EOpImageAtomicMin: - opCode = typeProxy == glslang::EbtUint ? spv::OpAtomicUMin : spv::OpAtomicSMin; + case glslang::EOpAtomicCounterMin: + opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ? spv::OpAtomicUMin : spv::OpAtomicSMin; break; case glslang::EOpAtomicMax: case glslang::EOpImageAtomicMax: - opCode = typeProxy == glslang::EbtUint ? spv::OpAtomicUMax : spv::OpAtomicSMax; + case glslang::EOpAtomicCounterMax: + opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ? spv::OpAtomicUMax : spv::OpAtomicSMax; break; case glslang::EOpAtomicAnd: case glslang::EOpImageAtomicAnd: + case glslang::EOpAtomicCounterAnd: opCode = spv::OpAtomicAnd; break; case glslang::EOpAtomicOr: case glslang::EOpImageAtomicOr: + case glslang::EOpAtomicCounterOr: opCode = spv::OpAtomicOr; break; case glslang::EOpAtomicXor: case glslang::EOpImageAtomicXor: + case glslang::EOpAtomicCounterXor: opCode = spv::OpAtomicXor; break; case glslang::EOpAtomicExchange: case glslang::EOpImageAtomicExchange: + case glslang::EOpAtomicCounterExchange: opCode = spv::OpAtomicExchange; break; case glslang::EOpAtomicCompSwap: case glslang::EOpImageAtomicCompSwap: + case glslang::EOpAtomicCounterCompSwap: opCode = spv::OpAtomicCompareExchange; break; case glslang::EOpAtomicCounterIncrement: @@ -4090,11 +5324,15 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv break; } + if (typeProxy == glslang::EbtInt64 || typeProxy == glslang::EbtUint64) + builder.addCapability(spv::CapabilityInt64Atomics); + // Sort out the operands // - mapping from glslang -> SPV // - there are extra SPV operands with no glslang source // - compare-exchange swaps the value and comparator // - compare-exchange has an extra memory semantics + // - EOpAtomicCounterDecrement needs a post decrement std::vector spvAtomicOperands; // hold the spv operands auto opIt = operands.begin(); // walk the glslang operands spvAtomicOperands.push_back(*(opIt++)); @@ -4113,37 +5351,83 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv for (; opIt != operands.end(); ++opIt) spvAtomicOperands.push_back(*opIt); - return builder.createOp(opCode, typeId, spvAtomicOperands); + spv::Id resultId = builder.createOp(opCode, typeId, spvAtomicOperands); + + // GLSL and HLSL atomic-counter decrement return post-decrement value, + // while SPIR-V returns pre-decrement value. Translate between these semantics. + if (op == glslang::EOpAtomicCounterDecrement) + resultId = builder.createBinOp(spv::OpISub, typeId, resultId, builder.makeIntConstant(1)); + + return resultId; } // Create group invocation operations. spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { -#ifdef AMD_EXTENSIONS - bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; -#endif + bool isUnsigned = isTypeUnsignedInt(typeProxy); + bool isFloat = isTypeFloat(typeProxy); spv::Op opCode = spv::OpNop; - std::vector spvGroupOperands; - if (op == glslang::EOpBallot || op == glslang::EOpReadFirstInvocation) { + spv::GroupOperation groupOperation = spv::GroupOperationMax; + + if (op == glslang::EOpBallot || op == glslang::EOpReadFirstInvocation || + op == glslang::EOpReadInvocation) { builder.addExtension(spv::E_SPV_KHR_shader_ballot); builder.addCapability(spv::CapabilitySubgroupBallotKHR); + } else if (op == glslang::EOpAnyInvocation || + op == glslang::EOpAllInvocations || + op == glslang::EOpAllInvocationsEqual) { + builder.addExtension(spv::E_SPV_KHR_subgroup_vote); + builder.addCapability(spv::CapabilitySubgroupVoteKHR); } else { builder.addCapability(spv::CapabilityGroups); #ifdef AMD_EXTENSIONS if (op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || - op == glslang::EOpAddInvocationsNonUniform) + op == glslang::EOpAddInvocationsNonUniform || + op == glslang::EOpMinInvocationsInclusiveScanNonUniform || + op == glslang::EOpMaxInvocationsInclusiveScanNonUniform || + op == glslang::EOpAddInvocationsInclusiveScanNonUniform || + op == glslang::EOpMinInvocationsExclusiveScanNonUniform || + op == glslang::EOpMaxInvocationsExclusiveScanNonUniform || + op == glslang::EOpAddInvocationsExclusiveScanNonUniform) builder.addExtension(spv::E_SPV_AMD_shader_ballot); #endif spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); #ifdef AMD_EXTENSIONS - if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations || - op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) - spvGroupOperands.push_back(spv::GroupOperationReduce); + switch (op) { + case glslang::EOpMinInvocations: + case glslang::EOpMaxInvocations: + case glslang::EOpAddInvocations: + case glslang::EOpMinInvocationsNonUniform: + case glslang::EOpMaxInvocationsNonUniform: + case glslang::EOpAddInvocationsNonUniform: + groupOperation = spv::GroupOperationReduce; + spvGroupOperands.push_back(groupOperation); + break; + case glslang::EOpMinInvocationsInclusiveScan: + case glslang::EOpMaxInvocationsInclusiveScan: + case glslang::EOpAddInvocationsInclusiveScan: + case glslang::EOpMinInvocationsInclusiveScanNonUniform: + case glslang::EOpMaxInvocationsInclusiveScanNonUniform: + case glslang::EOpAddInvocationsInclusiveScanNonUniform: + groupOperation = spv::GroupOperationInclusiveScan; + spvGroupOperands.push_back(groupOperation); + break; + case glslang::EOpMinInvocationsExclusiveScan: + case glslang::EOpMaxInvocationsExclusiveScan: + case glslang::EOpAddInvocationsExclusiveScan: + case glslang::EOpMinInvocationsExclusiveScanNonUniform: + case glslang::EOpMaxInvocationsExclusiveScanNonUniform: + case glslang::EOpAddInvocationsExclusiveScanNonUniform: + groupOperation = spv::GroupOperationExclusiveScan; + spvGroupOperands.push_back(groupOperation); + break; + default: + break; + } #endif } @@ -4152,24 +5436,18 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op switch (op) { case glslang::EOpAnyInvocation: - opCode = spv::OpGroupAny; + opCode = spv::OpSubgroupAnyKHR; break; case glslang::EOpAllInvocations: - opCode = spv::OpGroupAll; + opCode = spv::OpSubgroupAllKHR; break; case glslang::EOpAllInvocationsEqual: - { - spv::Id groupAll = builder.createOp(spv::OpGroupAll, typeId, spvGroupOperands); - spv::Id groupAny = builder.createOp(spv::OpGroupAny, typeId, spvGroupOperands); - - return builder.createBinOp(spv::OpLogicalOr, typeId, groupAll, - builder.createUnaryOp(spv::OpLogicalNot, typeId, groupAny)); - } - + opCode = spv::OpSubgroupAllEqualKHR; + break; case glslang::EOpReadInvocation: - opCode = spv::OpGroupBroadcast; + opCode = spv::OpSubgroupReadInvocationKHR; if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, typeId, operands); + return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); break; case glslang::EOpReadFirstInvocation: opCode = spv::OpSubgroupFirstInvocationKHR; @@ -4199,7 +5477,15 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op case glslang::EOpMinInvocations: case glslang::EOpMaxInvocations: case glslang::EOpAddInvocations: - if (op == glslang::EOpMinInvocations) { + case glslang::EOpMinInvocationsInclusiveScan: + case glslang::EOpMaxInvocationsInclusiveScan: + case glslang::EOpAddInvocationsInclusiveScan: + case glslang::EOpMinInvocationsExclusiveScan: + case glslang::EOpMaxInvocationsExclusiveScan: + case glslang::EOpAddInvocationsExclusiveScan: + if (op == glslang::EOpMinInvocations || + op == glslang::EOpMinInvocationsInclusiveScan || + op == glslang::EOpMinInvocationsExclusiveScan) { if (isFloat) opCode = spv::OpGroupFMin; else { @@ -4208,7 +5494,9 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op else opCode = spv::OpGroupSMin; } - } else if (op == glslang::EOpMaxInvocations) { + } else if (op == glslang::EOpMaxInvocations || + op == glslang::EOpMaxInvocationsInclusiveScan || + op == glslang::EOpMaxInvocationsExclusiveScan) { if (isFloat) opCode = spv::OpGroupFMax; else { @@ -4225,13 +5513,21 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, typeId, operands); + return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); break; case glslang::EOpMinInvocationsNonUniform: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: - if (op == glslang::EOpMinInvocationsNonUniform) { + case glslang::EOpMinInvocationsInclusiveScanNonUniform: + case glslang::EOpMaxInvocationsInclusiveScanNonUniform: + case glslang::EOpAddInvocationsInclusiveScanNonUniform: + case glslang::EOpMinInvocationsExclusiveScanNonUniform: + case glslang::EOpMaxInvocationsExclusiveScanNonUniform: + case glslang::EOpAddInvocationsExclusiveScanNonUniform: + if (op == glslang::EOpMinInvocationsNonUniform || + op == glslang::EOpMinInvocationsInclusiveScanNonUniform || + op == glslang::EOpMinInvocationsExclusiveScanNonUniform) { if (isFloat) opCode = spv::OpGroupFMinNonUniformAMD; else { @@ -4241,7 +5537,9 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op opCode = spv::OpGroupSMinNonUniformAMD; } } - else if (op == glslang::EOpMaxInvocationsNonUniform) { + else if (op == glslang::EOpMaxInvocationsNonUniform || + op == glslang::EOpMaxInvocationsInclusiveScanNonUniform || + op == glslang::EOpMaxInvocationsExclusiveScanNonUniform) { if (isFloat) opCode = spv::OpGroupFMaxNonUniformAMD; else { @@ -4259,7 +5557,7 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, typeId, operands); + return CreateInvocationsVectorOperation(opCode, groupOperation, typeId, operands); break; #endif @@ -4273,19 +5571,21 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } // Create group invocation operations on a vector -spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector& operands) +spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, spv::Id typeId, std::vector& operands) { #ifdef AMD_EXTENSIONS assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast || + op == spv::OpSubgroupReadInvocationKHR || op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD || op == spv::OpGroupSMinNonUniformAMD || op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD || op == spv::OpGroupSMaxNonUniformAMD || op == spv::OpGroupFAddNonUniformAMD || op == spv::OpGroupIAddNonUniformAMD); #else assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || - op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast); + op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast || + op == spv::OpSubgroupReadInvocationKHR); #endif // Handle group invocation operations scalar by scalar. @@ -4305,14 +5605,17 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv std::vector indexes; indexes.push_back(comp); spv::Id scalar = builder.createCompositeExtract(operands[0], scalarType, indexes); - std::vector spvGroupOperands; - spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); - if (op == spv::OpGroupBroadcast) { + if (op == spv::OpSubgroupReadInvocationKHR) { + spvGroupOperands.push_back(scalar); + spvGroupOperands.push_back(operands[1]); + } else if (op == spv::OpGroupBroadcast) { + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); spvGroupOperands.push_back(scalar); spvGroupOperands.push_back(operands[1]); } else { - spvGroupOperands.push_back(spv::GroupOperationReduce); + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + spvGroupOperands.push_back(groupOperation); spvGroupOperands.push_back(scalar); } @@ -4323,14 +5626,353 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv return builder.createCompositeConstruct(typeId, results); } +// Create subgroup invocation operations. +spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) +{ + // Add the required capabilities. + switch (op) { + case glslang::EOpSubgroupElect: + builder.addCapability(spv::CapabilityGroupNonUniform); + break; + case glslang::EOpSubgroupAll: + case glslang::EOpSubgroupAny: + case glslang::EOpSubgroupAllEqual: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformVote); + break; + case glslang::EOpSubgroupBroadcast: + case glslang::EOpSubgroupBroadcastFirst: + case glslang::EOpSubgroupBallot: + case glslang::EOpSubgroupInverseBallot: + case glslang::EOpSubgroupBallotBitExtract: + case glslang::EOpSubgroupBallotBitCount: + case glslang::EOpSubgroupBallotInclusiveBitCount: + case glslang::EOpSubgroupBallotExclusiveBitCount: + case glslang::EOpSubgroupBallotFindLSB: + case glslang::EOpSubgroupBallotFindMSB: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformBallot); + break; + case glslang::EOpSubgroupShuffle: + case glslang::EOpSubgroupShuffleXor: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformShuffle); + break; + case glslang::EOpSubgroupShuffleUp: + case glslang::EOpSubgroupShuffleDown: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformShuffleRelative); + break; + case glslang::EOpSubgroupAdd: + case glslang::EOpSubgroupMul: + case glslang::EOpSubgroupMin: + case glslang::EOpSubgroupMax: + case glslang::EOpSubgroupAnd: + case glslang::EOpSubgroupOr: + case glslang::EOpSubgroupXor: + case glslang::EOpSubgroupInclusiveAdd: + case glslang::EOpSubgroupInclusiveMul: + case glslang::EOpSubgroupInclusiveMin: + case glslang::EOpSubgroupInclusiveMax: + case glslang::EOpSubgroupInclusiveAnd: + case glslang::EOpSubgroupInclusiveOr: + case glslang::EOpSubgroupInclusiveXor: + case glslang::EOpSubgroupExclusiveAdd: + case glslang::EOpSubgroupExclusiveMul: + case glslang::EOpSubgroupExclusiveMin: + case glslang::EOpSubgroupExclusiveMax: + case glslang::EOpSubgroupExclusiveAnd: + case glslang::EOpSubgroupExclusiveOr: + case glslang::EOpSubgroupExclusiveXor: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformArithmetic); + break; + case glslang::EOpSubgroupClusteredAdd: + case glslang::EOpSubgroupClusteredMul: + case glslang::EOpSubgroupClusteredMin: + case glslang::EOpSubgroupClusteredMax: + case glslang::EOpSubgroupClusteredAnd: + case glslang::EOpSubgroupClusteredOr: + case glslang::EOpSubgroupClusteredXor: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformClustered); + break; + case glslang::EOpSubgroupQuadBroadcast: + case glslang::EOpSubgroupQuadSwapHorizontal: + case glslang::EOpSubgroupQuadSwapVertical: + case glslang::EOpSubgroupQuadSwapDiagonal: + builder.addCapability(spv::CapabilityGroupNonUniform); + builder.addCapability(spv::CapabilityGroupNonUniformQuad); + break; +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedAdd: + case glslang::EOpSubgroupPartitionedMul: + case glslang::EOpSubgroupPartitionedMin: + case glslang::EOpSubgroupPartitionedMax: + case glslang::EOpSubgroupPartitionedAnd: + case glslang::EOpSubgroupPartitionedOr: + case glslang::EOpSubgroupPartitionedXor: + case glslang::EOpSubgroupPartitionedInclusiveAdd: + case glslang::EOpSubgroupPartitionedInclusiveMul: + case glslang::EOpSubgroupPartitionedInclusiveMin: + case glslang::EOpSubgroupPartitionedInclusiveMax: + case glslang::EOpSubgroupPartitionedInclusiveAnd: + case glslang::EOpSubgroupPartitionedInclusiveOr: + case glslang::EOpSubgroupPartitionedInclusiveXor: + case glslang::EOpSubgroupPartitionedExclusiveAdd: + case glslang::EOpSubgroupPartitionedExclusiveMul: + case glslang::EOpSubgroupPartitionedExclusiveMin: + case glslang::EOpSubgroupPartitionedExclusiveMax: + case glslang::EOpSubgroupPartitionedExclusiveAnd: + case glslang::EOpSubgroupPartitionedExclusiveOr: + case glslang::EOpSubgroupPartitionedExclusiveXor: + builder.addExtension(spv::E_SPV_NV_shader_subgroup_partitioned); + builder.addCapability(spv::CapabilityGroupNonUniformPartitionedNV); + break; +#endif + default: assert(0 && "Unhandled subgroup operation!"); + } + + const bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; + const bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; + const bool isBool = typeProxy == glslang::EbtBool; + + spv::Op opCode = spv::OpNop; + + // Figure out which opcode to use. + switch (op) { + case glslang::EOpSubgroupElect: opCode = spv::OpGroupNonUniformElect; break; + case glslang::EOpSubgroupAll: opCode = spv::OpGroupNonUniformAll; break; + case glslang::EOpSubgroupAny: opCode = spv::OpGroupNonUniformAny; break; + case glslang::EOpSubgroupAllEqual: opCode = spv::OpGroupNonUniformAllEqual; break; + case glslang::EOpSubgroupBroadcast: opCode = spv::OpGroupNonUniformBroadcast; break; + case glslang::EOpSubgroupBroadcastFirst: opCode = spv::OpGroupNonUniformBroadcastFirst; break; + case glslang::EOpSubgroupBallot: opCode = spv::OpGroupNonUniformBallot; break; + case glslang::EOpSubgroupInverseBallot: opCode = spv::OpGroupNonUniformInverseBallot; break; + case glslang::EOpSubgroupBallotBitExtract: opCode = spv::OpGroupNonUniformBallotBitExtract; break; + case glslang::EOpSubgroupBallotBitCount: + case glslang::EOpSubgroupBallotInclusiveBitCount: + case glslang::EOpSubgroupBallotExclusiveBitCount: opCode = spv::OpGroupNonUniformBallotBitCount; break; + case glslang::EOpSubgroupBallotFindLSB: opCode = spv::OpGroupNonUniformBallotFindLSB; break; + case glslang::EOpSubgroupBallotFindMSB: opCode = spv::OpGroupNonUniformBallotFindMSB; break; + case glslang::EOpSubgroupShuffle: opCode = spv::OpGroupNonUniformShuffle; break; + case glslang::EOpSubgroupShuffleXor: opCode = spv::OpGroupNonUniformShuffleXor; break; + case glslang::EOpSubgroupShuffleUp: opCode = spv::OpGroupNonUniformShuffleUp; break; + case glslang::EOpSubgroupShuffleDown: opCode = spv::OpGroupNonUniformShuffleDown; break; + case glslang::EOpSubgroupAdd: + case glslang::EOpSubgroupInclusiveAdd: + case glslang::EOpSubgroupExclusiveAdd: + case glslang::EOpSubgroupClusteredAdd: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedAdd: + case glslang::EOpSubgroupPartitionedInclusiveAdd: + case glslang::EOpSubgroupPartitionedExclusiveAdd: +#endif + if (isFloat) { + opCode = spv::OpGroupNonUniformFAdd; + } else { + opCode = spv::OpGroupNonUniformIAdd; + } + break; + case glslang::EOpSubgroupMul: + case glslang::EOpSubgroupInclusiveMul: + case glslang::EOpSubgroupExclusiveMul: + case glslang::EOpSubgroupClusteredMul: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedMul: + case glslang::EOpSubgroupPartitionedInclusiveMul: + case glslang::EOpSubgroupPartitionedExclusiveMul: +#endif + if (isFloat) { + opCode = spv::OpGroupNonUniformFMul; + } else { + opCode = spv::OpGroupNonUniformIMul; + } + break; + case glslang::EOpSubgroupMin: + case glslang::EOpSubgroupInclusiveMin: + case glslang::EOpSubgroupExclusiveMin: + case glslang::EOpSubgroupClusteredMin: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedMin: + case glslang::EOpSubgroupPartitionedInclusiveMin: + case glslang::EOpSubgroupPartitionedExclusiveMin: +#endif + if (isFloat) { + opCode = spv::OpGroupNonUniformFMin; + } else if (isUnsigned) { + opCode = spv::OpGroupNonUniformUMin; + } else { + opCode = spv::OpGroupNonUniformSMin; + } + break; + case glslang::EOpSubgroupMax: + case glslang::EOpSubgroupInclusiveMax: + case glslang::EOpSubgroupExclusiveMax: + case glslang::EOpSubgroupClusteredMax: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedMax: + case glslang::EOpSubgroupPartitionedInclusiveMax: + case glslang::EOpSubgroupPartitionedExclusiveMax: +#endif + if (isFloat) { + opCode = spv::OpGroupNonUniformFMax; + } else if (isUnsigned) { + opCode = spv::OpGroupNonUniformUMax; + } else { + opCode = spv::OpGroupNonUniformSMax; + } + break; + case glslang::EOpSubgroupAnd: + case glslang::EOpSubgroupInclusiveAnd: + case glslang::EOpSubgroupExclusiveAnd: + case glslang::EOpSubgroupClusteredAnd: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedAnd: + case glslang::EOpSubgroupPartitionedInclusiveAnd: + case glslang::EOpSubgroupPartitionedExclusiveAnd: +#endif + if (isBool) { + opCode = spv::OpGroupNonUniformLogicalAnd; + } else { + opCode = spv::OpGroupNonUniformBitwiseAnd; + } + break; + case glslang::EOpSubgroupOr: + case glslang::EOpSubgroupInclusiveOr: + case glslang::EOpSubgroupExclusiveOr: + case glslang::EOpSubgroupClusteredOr: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedOr: + case glslang::EOpSubgroupPartitionedInclusiveOr: + case glslang::EOpSubgroupPartitionedExclusiveOr: +#endif + if (isBool) { + opCode = spv::OpGroupNonUniformLogicalOr; + } else { + opCode = spv::OpGroupNonUniformBitwiseOr; + } + break; + case glslang::EOpSubgroupXor: + case glslang::EOpSubgroupInclusiveXor: + case glslang::EOpSubgroupExclusiveXor: + case glslang::EOpSubgroupClusteredXor: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedXor: + case glslang::EOpSubgroupPartitionedInclusiveXor: + case glslang::EOpSubgroupPartitionedExclusiveXor: +#endif + if (isBool) { + opCode = spv::OpGroupNonUniformLogicalXor; + } else { + opCode = spv::OpGroupNonUniformBitwiseXor; + } + break; + case glslang::EOpSubgroupQuadBroadcast: opCode = spv::OpGroupNonUniformQuadBroadcast; break; + case glslang::EOpSubgroupQuadSwapHorizontal: + case glslang::EOpSubgroupQuadSwapVertical: + case glslang::EOpSubgroupQuadSwapDiagonal: opCode = spv::OpGroupNonUniformQuadSwap; break; + default: assert(0 && "Unhandled subgroup operation!"); + } + + std::vector spvGroupOperands; + + // Every operation begins with the Execution Scope operand. + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + + // Next, for all operations that use a Group Operation, push that as an operand. + switch (op) { + default: break; + case glslang::EOpSubgroupBallotBitCount: + case glslang::EOpSubgroupAdd: + case glslang::EOpSubgroupMul: + case glslang::EOpSubgroupMin: + case glslang::EOpSubgroupMax: + case glslang::EOpSubgroupAnd: + case glslang::EOpSubgroupOr: + case glslang::EOpSubgroupXor: + spvGroupOperands.push_back(spv::GroupOperationReduce); + break; + case glslang::EOpSubgroupBallotInclusiveBitCount: + case glslang::EOpSubgroupInclusiveAdd: + case glslang::EOpSubgroupInclusiveMul: + case glslang::EOpSubgroupInclusiveMin: + case glslang::EOpSubgroupInclusiveMax: + case glslang::EOpSubgroupInclusiveAnd: + case glslang::EOpSubgroupInclusiveOr: + case glslang::EOpSubgroupInclusiveXor: + spvGroupOperands.push_back(spv::GroupOperationInclusiveScan); + break; + case glslang::EOpSubgroupBallotExclusiveBitCount: + case glslang::EOpSubgroupExclusiveAdd: + case glslang::EOpSubgroupExclusiveMul: + case glslang::EOpSubgroupExclusiveMin: + case glslang::EOpSubgroupExclusiveMax: + case glslang::EOpSubgroupExclusiveAnd: + case glslang::EOpSubgroupExclusiveOr: + case glslang::EOpSubgroupExclusiveXor: + spvGroupOperands.push_back(spv::GroupOperationExclusiveScan); + break; + case glslang::EOpSubgroupClusteredAdd: + case glslang::EOpSubgroupClusteredMul: + case glslang::EOpSubgroupClusteredMin: + case glslang::EOpSubgroupClusteredMax: + case glslang::EOpSubgroupClusteredAnd: + case glslang::EOpSubgroupClusteredOr: + case glslang::EOpSubgroupClusteredXor: + spvGroupOperands.push_back(spv::GroupOperationClusteredReduce); + break; +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedAdd: + case glslang::EOpSubgroupPartitionedMul: + case glslang::EOpSubgroupPartitionedMin: + case glslang::EOpSubgroupPartitionedMax: + case glslang::EOpSubgroupPartitionedAnd: + case glslang::EOpSubgroupPartitionedOr: + case glslang::EOpSubgroupPartitionedXor: + spvGroupOperands.push_back(spv::GroupOperationPartitionedReduceNV); + break; + case glslang::EOpSubgroupPartitionedInclusiveAdd: + case glslang::EOpSubgroupPartitionedInclusiveMul: + case glslang::EOpSubgroupPartitionedInclusiveMin: + case glslang::EOpSubgroupPartitionedInclusiveMax: + case glslang::EOpSubgroupPartitionedInclusiveAnd: + case glslang::EOpSubgroupPartitionedInclusiveOr: + case glslang::EOpSubgroupPartitionedInclusiveXor: + spvGroupOperands.push_back(spv::GroupOperationPartitionedInclusiveScanNV); + break; + case glslang::EOpSubgroupPartitionedExclusiveAdd: + case glslang::EOpSubgroupPartitionedExclusiveMul: + case glslang::EOpSubgroupPartitionedExclusiveMin: + case glslang::EOpSubgroupPartitionedExclusiveMax: + case glslang::EOpSubgroupPartitionedExclusiveAnd: + case glslang::EOpSubgroupPartitionedExclusiveOr: + case glslang::EOpSubgroupPartitionedExclusiveXor: + spvGroupOperands.push_back(spv::GroupOperationPartitionedExclusiveScanNV); + break; +#endif + } + + // Push back the operands next. + for (auto opIt : operands) { + spvGroupOperands.push_back(opIt); + } + + // Some opcodes have additional operands. + switch (op) { + default: break; + case glslang::EOpSubgroupQuadSwapHorizontal: spvGroupOperands.push_back(builder.makeUintConstant(0)); break; + case glslang::EOpSubgroupQuadSwapVertical: spvGroupOperands.push_back(builder.makeUintConstant(1)); break; + case glslang::EOpSubgroupQuadSwapDiagonal: spvGroupOperands.push_back(builder.makeUintConstant(2)); break; + } + + return builder.createOp(opCode, typeId, spvGroupOperands); +} + spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { - bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; -#ifdef AMD_EXTENSIONS - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; -#else - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; -#endif + bool isUnsigned = isTypeUnsignedInt(typeProxy); + bool isFloat = isTypeFloat(typeProxy); spv::Op opCode = spv::OpNop; int extBuiltins = -1; @@ -4339,6 +5981,9 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: spv::Id typeId0 = 0; if (consumedOperands > 0) typeId0 = builder.getTypeId(operands[0]); + spv::Id typeId1 = 0; + if (consumedOperands > 1) + typeId1 = builder.getTypeId(operands[1]); spv::Id frexpIntType = 0; switch (op) { @@ -4419,10 +6064,18 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: libCall = spv::GLSLstd450Refract; break; case glslang::EOpInterpolateAtSample: +#ifdef AMD_EXTENSIONS + if (typeProxy == glslang::EbtFloat16) + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); +#endif builder.addCapability(spv::CapabilityInterpolationFunction); libCall = spv::GLSLstd450InterpolateAtSample; break; case glslang::EOpInterpolateAtOffset: +#ifdef AMD_EXTENSIONS + if (typeProxy == glslang::EbtFloat16) + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); +#endif builder.addCapability(spv::CapabilityInterpolationFunction); libCall = spv::GLSLstd450InterpolateAtOffset; break; @@ -4460,13 +6113,23 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: libCall = spv::GLSLstd450Fma; break; case glslang::EOpFrexp: - libCall = spv::GLSLstd450FrexpStruct; - if (builder.getNumComponents(operands[0]) == 1) - frexpIntType = builder.makeIntegerType(32, true); - else - frexpIntType = builder.makeVectorType(builder.makeIntegerType(32, true), builder.getNumComponents(operands[0])); - typeId = builder.makeStructResultType(typeId0, frexpIntType); - consumedOperands = 1; + { + libCall = spv::GLSLstd450FrexpStruct; + assert(builder.isPointerType(typeId1)); + typeId1 = builder.getContainedTypeId(typeId1); + int width = builder.getScalarTypeWidth(typeId1); +#ifdef AMD_EXTENSIONS + if (width == 16) + // Using 16-bit exp operand, enable extension SPV_AMD_gpu_shader_int16 + builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16); +#endif + if (builder.getNumComponents(operands[0]) == 1) + frexpIntType = builder.makeIntegerType(width, true); + else + frexpIntType = builder.makeVectorType(builder.makeIntegerType(width, true), builder.getNumComponents(operands[0])); + typeId = builder.makeStructResultType(typeId0, frexpIntType); + consumedOperands = 1; + } break; case glslang::EOpLdexp: libCall = spv::GLSLstd450Ldexp; @@ -4475,6 +6138,45 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: case glslang::EOpReadInvocation: return createInvocationsOperation(op, typeId, operands, typeProxy); + case glslang::EOpSubgroupBroadcast: + case glslang::EOpSubgroupBallotBitExtract: + case glslang::EOpSubgroupShuffle: + case glslang::EOpSubgroupShuffleXor: + case glslang::EOpSubgroupShuffleUp: + case glslang::EOpSubgroupShuffleDown: + case glslang::EOpSubgroupClusteredAdd: + case glslang::EOpSubgroupClusteredMul: + case glslang::EOpSubgroupClusteredMin: + case glslang::EOpSubgroupClusteredMax: + case glslang::EOpSubgroupClusteredAnd: + case glslang::EOpSubgroupClusteredOr: + case glslang::EOpSubgroupClusteredXor: + case glslang::EOpSubgroupQuadBroadcast: +#ifdef NV_EXTENSIONS + case glslang::EOpSubgroupPartitionedAdd: + case glslang::EOpSubgroupPartitionedMul: + case glslang::EOpSubgroupPartitionedMin: + case glslang::EOpSubgroupPartitionedMax: + case glslang::EOpSubgroupPartitionedAnd: + case glslang::EOpSubgroupPartitionedOr: + case glslang::EOpSubgroupPartitionedXor: + case glslang::EOpSubgroupPartitionedInclusiveAdd: + case glslang::EOpSubgroupPartitionedInclusiveMul: + case glslang::EOpSubgroupPartitionedInclusiveMin: + case glslang::EOpSubgroupPartitionedInclusiveMax: + case glslang::EOpSubgroupPartitionedInclusiveAnd: + case glslang::EOpSubgroupPartitionedInclusiveOr: + case glslang::EOpSubgroupPartitionedInclusiveXor: + case glslang::EOpSubgroupPartitionedExclusiveAdd: + case glslang::EOpSubgroupPartitionedExclusiveMul: + case glslang::EOpSubgroupPartitionedExclusiveMin: + case glslang::EOpSubgroupPartitionedExclusiveMax: + case glslang::EOpSubgroupPartitionedExclusiveAnd: + case glslang::EOpSubgroupPartitionedExclusiveOr: + case glslang::EOpSubgroupPartitionedExclusiveXor: +#endif + return createSubgroupOperation(op, typeId, operands, typeProxy); + #ifdef AMD_EXTENSIONS case glslang::EOpSwizzleInvocations: extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); @@ -4524,6 +6226,8 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: break; case glslang::EOpInterpolateAtVertex: + if (typeProxy == glslang::EbtFloat16) + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_explicit_vertex_parameter); libCall = spv::InterpolateAtVertexAMD; break; @@ -4574,9 +6278,18 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: builder.createStore(builder.createCompositeExtract(id, typeId0, 1), operands[2]); break; case glslang::EOpFrexp: - assert(operands.size() == 2); - builder.createStore(builder.createCompositeExtract(id, frexpIntType, 1), operands[1]); - id = builder.createCompositeExtract(id, typeId0, 0); + { + assert(operands.size() == 2); + if (builder.isFloatType(builder.getScalarTypeId(typeId1))) { + // "exp" is floating-point type (from HLSL intrinsic) + spv::Id member1 = builder.createCompositeExtract(id, frexpIntType, 1); + member1 = builder.createUnaryOp(spv::OpConvertSToF, typeId1, member1); + builder.createStore(member1, operands[1]); + } else + // "exp" is integer type (from GLSL built-in function) + builder.createStore(builder.createCompositeExtract(id, frexpIntType, 1), operands[1]); + id = builder.createCompositeExtract(id, typeId0, 0); + } break; default: break; @@ -4598,41 +6311,90 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.createNoResultOp(spv::OpEndPrimitive); return 0; case glslang::EOpBarrier: - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsMaskNone); + if (glslangIntermediate->getStage() == EShLangTessControl) { + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeInvocation, spv::MemorySemanticsMaskNone); + // TODO: prefer the following, when available: + // builder.createControlBarrier(spv::ScopePatch, spv::ScopePatch, + // spv::MemorySemanticsPatchMask | + // spv::MemorySemanticsAcquireReleaseMask); + } else { + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, + spv::MemorySemanticsWorkgroupMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); + } return 0; case glslang::EOpMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpMemoryBarrierAtomicCounter: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpMemoryBarrierBuffer: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpMemoryBarrierImage: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpMemoryBarrierShared: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupMemoryMask); + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpGroupMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask); + builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsAllMemory | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpAllMemoryBarrierWithGroupSync: - // Control barrier with non-"None" semantic is also a memory barrier. - builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsAllMemory); + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, + spv::MemorySemanticsAllMemory | + spv::MemorySemanticsAcquireReleaseMask); return 0; - case glslang::EOpGroupMemoryBarrierWithGroupSync: - // Control barrier with non-"None" semantic is also a memory barrier. - builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask); + case glslang::EOpDeviceMemoryBarrier: + builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask | + spv::MemorySemanticsImageMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); + return 0; + case glslang::EOpDeviceMemoryBarrierWithGroupSync: + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask | + spv::MemorySemanticsImageMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpWorkgroupMemoryBarrier: - builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask); + builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); return 0; case glslang::EOpWorkgroupMemoryBarrierWithGroupSync: - // Control barrier with non-"None" semantic is also a memory barrier. - builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask); + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, + spv::MemorySemanticsWorkgroupMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); return 0; + case glslang::EOpSubgroupBarrier: + builder.createControlBarrier(spv::ScopeSubgroup, spv::ScopeSubgroup, spv::MemorySemanticsAllMemory | + spv::MemorySemanticsAcquireReleaseMask); + return spv::NoResult; + case glslang::EOpSubgroupMemoryBarrier: + builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsAllMemory | + spv::MemorySemanticsAcquireReleaseMask); + return spv::NoResult; + case glslang::EOpSubgroupMemoryBarrierBuffer: + builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsUniformMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); + return spv::NoResult; + case glslang::EOpSubgroupMemoryBarrierImage: + builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsImageMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); + return spv::NoResult; + case glslang::EOpSubgroupMemoryBarrierShared: + builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsWorkgroupMemoryMask | + spv::MemorySemanticsAcquireReleaseMask); + return spv::NoResult; + case glslang::EOpSubgroupElect: { + std::vector operands; + return createSubgroupOperation(op, typeId, operands, glslang::EbtVoid); + } #ifdef AMD_EXTENSIONS case glslang::EOpTime: { @@ -4661,24 +6423,15 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol symbolValues[symbol->getId()] = id; if (symbol->getBasicType() != glslang::EbtBlock) { - addDecoration(id, TranslatePrecisionDecoration(symbol->getType())); - addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier())); - addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier())); + builder.addDecoration(id, TranslatePrecisionDecoration(symbol->getType())); + builder.addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier())); + builder.addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier())); if (symbol->getType().getQualifier().hasSpecConstantId()) - addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId); + builder.addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId); if (symbol->getQualifier().hasIndex()) builder.addDecoration(id, spv::DecorationIndex, symbol->getQualifier().layoutIndex); if (symbol->getQualifier().hasComponent()) builder.addDecoration(id, spv::DecorationComponent, symbol->getQualifier().layoutComponent); - if (glslangIntermediate->getXfbMode()) { - builder.addCapability(spv::CapabilityTransformFeedback); - if (symbol->getQualifier().hasXfbStride()) - builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride); - if (symbol->getQualifier().hasXfbBuffer()) - builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer); - if (symbol->getQualifier().hasXfbOffset()) - builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset); - } // atomic counters use this: if (symbol->getQualifier().hasOffset()) builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutOffset); @@ -4686,7 +6439,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol if (symbol->getQualifier().hasLocation()) builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation); - addDecoration(id, TranslateInvariantDecoration(symbol->getType().getQualifier())); + builder.addDecoration(id, TranslateInvariantDecoration(symbol->getType().getQualifier())); if (symbol->getQualifier().hasStream() && glslangIntermediate->isMultiStream()) { builder.addCapability(spv::CapabilityGeometryStreams); builder.addDecoration(id, spv::DecorationStream, symbol->getQualifier().layoutStream); @@ -4705,53 +6458,75 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol builder.addCapability(spv::CapabilityTransformFeedback); if (symbol->getQualifier().hasXfbStride()) builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride); - if (symbol->getQualifier().hasXfbBuffer()) + if (symbol->getQualifier().hasXfbBuffer()) { builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer); + unsigned stride = glslangIntermediate->getXfbStride(symbol->getQualifier().layoutXfbBuffer); + if (stride != glslang::TQualifier::layoutXfbStrideEnd) + builder.addDecoration(id, spv::DecorationXfbStride, stride); + } + if (symbol->getQualifier().hasXfbOffset()) + builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset); } if (symbol->getType().isImage()) { std::vector memory; TranslateMemoryDecoration(symbol->getType().getQualifier(), memory); for (unsigned int i = 0; i < memory.size(); ++i) - addDecoration(id, memory[i]); + builder.addDecoration(id, memory[i]); } // built-in variable decorations spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn, false); if (builtIn != spv::BuiltInMax) - addDecoration(id, spv::DecorationBuiltIn, (int)builtIn); + builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn); + + // nonuniform + builder.addDecoration(id, TranslateNonUniformDecoration(symbol->getType().getQualifier())); + +#ifdef NV_EXTENSIONS + if (builtIn == spv::BuiltInSampleMask) { + spv::Decoration decoration; + // GL_NV_sample_mask_override_coverage extension + if (glslangIntermediate->getLayoutOverrideCoverage()) + decoration = (spv::Decoration)spv::DecorationOverrideCoverageNV; + else + decoration = (spv::Decoration)spv::DecorationMax; + builder.addDecoration(id, decoration); + if (decoration != spv::DecorationMax) { + builder.addExtension(spv::E_SPV_NV_sample_mask_override_coverage); + } + } + else if (builtIn == spv::BuiltInLayer) { + // SPV_NV_viewport_array2 extension + if (symbol->getQualifier().layoutViewportRelative) { + builder.addDecoration(id, (spv::Decoration)spv::DecorationViewportRelativeNV); + builder.addCapability(spv::CapabilityShaderViewportMaskNV); + builder.addExtension(spv::E_SPV_NV_viewport_array2); + } + if (symbol->getQualifier().layoutSecondaryViewportRelativeOffset != -2048) { + builder.addDecoration(id, (spv::Decoration)spv::DecorationSecondaryViewportRelativeNV, + symbol->getQualifier().layoutSecondaryViewportRelativeOffset); + builder.addCapability(spv::CapabilityShaderStereoViewNV); + builder.addExtension(spv::E_SPV_NV_stereo_view_rendering); + } + } + + if (symbol->getQualifier().layoutPassthrough) { + builder.addDecoration(id, spv::DecorationPassthroughNV); + builder.addCapability(spv::CapabilityGeometryShaderPassthroughNV); + builder.addExtension(spv::E_SPV_NV_geometry_shader_passthrough); + } +#endif + + if (glslangIntermediate->getHlslFunctionality1() && symbol->getType().getQualifier().semanticName != nullptr) { + builder.addExtension("SPV_GOOGLE_hlsl_functionality1"); + builder.addDecoration(id, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE, + symbol->getType().getQualifier().semanticName); + } return id; } -// If 'dec' is valid, add no-operand decoration to an object -void TGlslangToSpvTraverser::addDecoration(spv::Id id, spv::Decoration dec) -{ - if (dec != spv::DecorationMax) - builder.addDecoration(id, dec); -} - -// If 'dec' is valid, add a one-operand decoration to an object -void TGlslangToSpvTraverser::addDecoration(spv::Id id, spv::Decoration dec, unsigned value) -{ - if (dec != spv::DecorationMax) - builder.addDecoration(id, dec, value); -} - -// If 'dec' is valid, add a no-operand decoration to a struct member -void TGlslangToSpvTraverser::addMemberDecoration(spv::Id id, int member, spv::Decoration dec) -{ - if (dec != spv::DecorationMax) - builder.addMemberDecoration(id, (unsigned)member, dec); -} - -// If 'dec' is valid, add a one-operand decoration to a struct member -void TGlslangToSpvTraverser::addMemberDecoration(spv::Id id, int member, spv::Decoration dec, unsigned value) -{ - if (dec != spv::DecorationMax) - builder.addMemberDecoration(id, (unsigned)member, dec, value); -} - // Make a full tree of instructions to build a SPIR-V specialization constant, // or regular constant if possible. // @@ -4784,8 +6559,10 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n for (int dim = 0; dim < 3; ++dim) { bool specConst = (glslangIntermediate->getLocalSizeSpecId(dim) != glslang::TQualifier::layoutNotSet); dimConstId.push_back(builder.makeUintConstant(glslangIntermediate->getLocalSize(dim), specConst)); - if (specConst) - addDecoration(dimConstId.back(), spv::DecorationSpecId, glslangIntermediate->getLocalSizeSpecId(dim)); + if (specConst) { + builder.addDecoration(dimConstId.back(), spv::DecorationSpecId, + glslangIntermediate->getLocalSizeSpecId(dim)); + } } return builder.makeCompositeConstant(builder.makeVectorType(builder.makeUintType(32), 3), dimConstId, true); } @@ -4801,7 +6578,9 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n return accessChainLoad(sub_tree->getType()); } else if (auto* const_union_array = &sn->getConstArray()){ int nextConst = 0; - return createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true); + spv::Id id = createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true); + builder.addName(id, sn->getName().c_str()); + return id; } } @@ -4842,6 +6621,18 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla for (unsigned int i = 0; i < (unsigned int)glslangType.getVectorSize(); ++i) { bool zero = nextConst >= consts.size(); switch (glslangType.getBasicType()) { + case glslang::EbtInt8: + spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const())); + break; + case glslang::EbtUint8: + spvConsts.push_back(builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const())); + break; + case glslang::EbtInt16: + spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const())); + break; + case glslang::EbtUint16: + spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const())); + break; case glslang::EbtInt: spvConsts.push_back(builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst())); break; @@ -4860,11 +6651,9 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst())); break; -#ifdef AMD_EXTENSIONS case glslang::EbtFloat16: spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst())); break; -#endif case glslang::EbtBool: spvConsts.push_back(builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst())); break; @@ -4879,6 +6668,18 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla bool zero = nextConst >= consts.size(); spv::Id scalar = 0; switch (glslangType.getBasicType()) { + case glslang::EbtInt8: + scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant); + break; + case glslang::EbtUint8: + scalar = builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const(), specConstant); + break; + case glslang::EbtInt16: + scalar = builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const(), specConstant); + break; + case glslang::EbtUint16: + scalar = builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const(), specConstant); + break; case glslang::EbtInt: scalar = builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst(), specConstant); break; @@ -4897,11 +6698,9 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant); break; -#ifdef AMD_EXTENSIONS case glslang::EbtFloat16: scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant); break; -#endif case glslang::EbtBool: scalar = builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst(), specConstant); break; @@ -4948,13 +6747,18 @@ bool TGlslangToSpvTraverser::isTrivialLeaf(const glslang::TIntermTyped* node) } // A node is trivial if it is a single operation with no side effects. -// Error on the side of saying non-trivial. +// HLSL (and/or vectors) are always trivial, as it does not short circuit. +// Otherwise, error on the side of saying non-trivial. // Return true if trivial. bool TGlslangToSpvTraverser::isTrivial(const glslang::TIntermTyped* node) { if (node == nullptr) return false; + // count non scalars as trivial, as well as anything coming from HLSL + if (! node->getType().isScalarOrVec1() || glslangIntermediate->getSource() == glslang::EShSourceHlsl) + return true; + // symbols and constants are trivial if (isTrivialLeaf(node)) return true; @@ -5025,7 +6829,7 @@ spv::Id TGlslangToSpvTraverser::createShortCircuit(glslang::TOperator op, glslan leftId = builder.createUnaryOp(spv::OpLogicalNot, boolTypeId, leftId); // make an "if" based on the left value - spv::Builder::If ifBuilder(leftId, builder); + spv::Builder::If ifBuilder(leftId, spv::SelectionControlMaskNone, builder); // emit right operand as the "then" part of the "if" builder.clearAccessChain(); @@ -5043,6 +6847,7 @@ spv::Id TGlslangToSpvTraverser::createShortCircuit(glslang::TOperator op, glslan return builder.createOp(spv::OpPhi, boolTypeId, phiOperands); } +#ifdef AMD_EXTENSIONS // Return type Id of the imported set of extended instructions corresponds to the name. // Import this set if it has not been imported yet. spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) @@ -5056,6 +6861,7 @@ spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) return extBuiltins; } } +#endif }; // end anonymous namespace @@ -5069,11 +6875,28 @@ void GetSpirvVersion(std::string& version) version = buf; } +// For low-order part of the generator's magic number. Bump up +// when there is a change in the style (e.g., if SSA form changes, +// or a different instruction sequence to do something gets used). +int GetSpirvGeneratorVersion() +{ + // return 1; // start + // return 2; // EOpAtomicCounterDecrement gets a post decrement, to map between GLSL -> SPIR-V + // return 3; // change/correct barrier-instruction operands, to match memory model group decisions + // return 4; // some deeper access chains: for dynamic vector component, and local Boolean component + // return 5; // make OpArrayLength result type be an int with signedness of 0 + // return 6; // revert version 5 change, which makes a different (new) kind of incorrect code, + // versions 4 and 6 each generate OpArrayLength as it has long been done + return 7; // GLSL volatile keyword maps to both SPIR-V decorations Volatile and Coherent +} + // Write SPIR-V out to a binary file void OutputSpvBin(const std::vector& spirv, const char* baseName) { std::ofstream out; out.open(baseName, std::ios::binary | std::ios::out); + if (out.fail()) + printf("ERROR: Failed to open file: %s\n", baseName); for (int i = 0; i < (int)spirv.size(); ++i) { unsigned int word = spirv[i]; out.write((const char*)&word, 4); @@ -5082,11 +6905,19 @@ void OutputSpvBin(const std::vector& spirv, const char* baseName) } // Write SPIR-V out to a text file with 32-bit hexadecimal words -void OutputSpvHex(const std::vector& spirv, const char* baseName) +void OutputSpvHex(const std::vector& spirv, const char* baseName, const char* varName) { std::ofstream out; out.open(baseName, std::ios::binary | std::ios::out); - out << "\t// " GLSLANG_REVISION " " GLSLANG_DATE << std::endl; + if (out.fail()) + printf("ERROR: Failed to open file: %s\n", baseName); + out << "\t// " << + glslang::GetSpirvGeneratorVersion() << "." << GLSLANG_MINOR_VERSION << "." << GLSLANG_PATCH_LEVEL << + std::endl; + if (varName != nullptr) { + out << "\t #pragma once" << std::endl; + out << "const uint32_t " << varName << "[] = {" << std::endl; + } const int WORDS_PER_LINE = 8; for (int i = 0; i < (int)spirv.size(); i += WORDS_PER_LINE) { out << "\t"; @@ -5099,32 +6930,90 @@ void OutputSpvHex(const std::vector& spirv, const char* baseName) } out << std::endl; } + if (varName != nullptr) { + out << "};"; + } out.close(); } // // Set up the glslang traversal // -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv) +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, SpvOptions* options) { spv::SpvBuildLogger logger; - GlslangToSpv(intermediate, spirv, &logger); + GlslangToSpv(intermediate, spirv, &logger, options); } -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, spv::SpvBuildLogger* logger) +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, + spv::SpvBuildLogger* logger, SpvOptions* options) { TIntermNode* root = intermediate.getTreeRoot(); if (root == 0) return; + glslang::SpvOptions defaultOptions; + if (options == nullptr) + options = &defaultOptions; + glslang::GetThreadPoolAllocator().push(); - TGlslangToSpvTraverser it(&intermediate, logger); + TGlslangToSpvTraverser it(intermediate.getSpv().spv, &intermediate, logger, *options); root->traverse(&it); it.finishSpv(); it.dumpSpv(spirv); +#if ENABLE_OPT + // If from HLSL, run spirv-opt to "legalize" the SPIR-V for Vulkan + // eg. forward and remove memory writes of opaque types. + if ((intermediate.getSource() == EShSourceHlsl || + options->optimizeSize) && + !options->disableOptimizer) { + spv_target_env target_env = SPV_ENV_UNIVERSAL_1_2; + + spvtools::Optimizer optimizer(target_env); + optimizer.SetMessageConsumer([](spv_message_level_t level, + const char* source, + const spv_position_t& position, + const char* message) { + std::cerr << StringifyMessage(level, source, position, message) + << std::endl; + }); + + optimizer.RegisterPass(CreateMergeReturnPass()); + optimizer.RegisterPass(CreateInlineExhaustivePass()); + optimizer.RegisterPass(CreateEliminateDeadFunctionsPass()); + optimizer.RegisterPass(CreateScalarReplacementPass()); + optimizer.RegisterPass(CreateLocalAccessChainConvertPass()); + optimizer.RegisterPass(CreateLocalSingleBlockLoadStoreElimPass()); + optimizer.RegisterPass(CreateLocalSingleStoreElimPass()); + optimizer.RegisterPass(CreateSimplificationPass()); + optimizer.RegisterPass(CreateAggressiveDCEPass()); + optimizer.RegisterPass(CreateVectorDCEPass()); + optimizer.RegisterPass(CreateDeadInsertElimPass()); + optimizer.RegisterPass(CreateAggressiveDCEPass()); + optimizer.RegisterPass(CreateDeadBranchElimPass()); + optimizer.RegisterPass(CreateBlockMergePass()); + optimizer.RegisterPass(CreateLocalMultiStoreElimPass()); + optimizer.RegisterPass(CreateIfConversionPass()); + optimizer.RegisterPass(CreateSimplificationPass()); + optimizer.RegisterPass(CreateAggressiveDCEPass()); + optimizer.RegisterPass(CreateVectorDCEPass()); + optimizer.RegisterPass(CreateDeadInsertElimPass()); + if (options->optimizeSize) { + optimizer.RegisterPass(CreateRedundancyEliminationPass()); + // TODO(greg-lunarg): Add this when AMD driver issues are resolved + // optimizer.RegisterPass(CreateCommonUniformElimPass()); + } + optimizer.RegisterPass(CreateAggressiveDCEPass()); + optimizer.RegisterPass(CreateCFGCleanupPass()); + + if (!optimizer.Run(spirv.data(), spirv.size(), &spirv)) + return; + } +#endif + glslang::GetThreadPoolAllocator().pop(); } diff --git a/deps/glslang/glslang/SPIRV/GlslangToSpv.h b/deps/glslang/glslang/SPIRV/GlslangToSpv.h index 428cfb6a7d..f7f7cff620 100644 --- a/deps/glslang/glslang/SPIRV/GlslangToSpv.h +++ b/deps/glslang/glslang/SPIRV/GlslangToSpv.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2014 LunarG, Inc. +// Copyright (C) 2014 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,20 +19,22 @@ // 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 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. -#if _MSC_VER >= 1900 +#pragma once + +#if defined(_MSC_VER) && _MSC_VER >= 1900 #pragma warning(disable : 4464) // relative include path contains '..' #endif @@ -45,10 +47,21 @@ namespace glslang { +struct SpvOptions { + SpvOptions() : generateDebugInfo(false), disableOptimizer(true), + optimizeSize(false) { } + bool generateDebugInfo; + bool disableOptimizer; + bool optimizeSize; +}; + void GetSpirvVersion(std::string&); -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv); -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, spv::SpvBuildLogger* logger); +int GetSpirvGeneratorVersion(); +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, + SpvOptions* options = nullptr); +void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, + spv::SpvBuildLogger* logger, SpvOptions* options = nullptr); void OutputSpvBin(const std::vector& spirv, const char* baseName); -void OutputSpvHex(const std::vector& spirv, const char* baseName); +void OutputSpvHex(const std::vector& spirv, const char* baseName, const char* varName); } diff --git a/deps/glslang/glslang/SPIRV/InReadableOrder.cpp b/deps/glslang/glslang/SPIRV/InReadableOrder.cpp index 86aae6d057..52b29613a4 100644 --- a/deps/glslang/glslang/SPIRV/InReadableOrder.cpp +++ b/deps/glslang/glslang/SPIRV/InReadableOrder.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // The SPIR-V spec requires code blocks to appear in an order satisfying the // dominator-tree direction (ie, dominator before the dominated). This is, @@ -51,7 +51,7 @@ #include "spvIR.h" #include -#include +#include using spv::Block; using spv::Id; @@ -69,33 +69,33 @@ public: void visit(Block* block) { assert(block); - if (visited_[block] || delayed_[block]) + if (visited_.count(block) || delayed_.count(block)) return; callback_(block); - visited_[block] = true; + visited_.insert(block); Block* mergeBlock = nullptr; Block* continueBlock = nullptr; auto mergeInst = block->getMergeInstruction(); if (mergeInst) { Id mergeId = mergeInst->getIdOperand(0); mergeBlock = block->getParent().getParent().getInstruction(mergeId)->getBlock(); - delayed_[mergeBlock] = true; + delayed_.insert(mergeBlock); if (mergeInst->getOpCode() == spv::OpLoopMerge) { Id continueId = mergeInst->getIdOperand(1); continueBlock = block->getParent().getParent().getInstruction(continueId)->getBlock(); - delayed_[continueBlock] = true; + delayed_.insert(continueBlock); } } const auto successors = block->getSuccessors(); for (auto it = successors.cbegin(); it != successors.cend(); ++it) visit(*it); if (continueBlock) { - delayed_[continueBlock] = false; + delayed_.erase(continueBlock); visit(continueBlock); } if (mergeBlock) { - delayed_[mergeBlock] = false; + delayed_.erase(mergeBlock); visit(mergeBlock); } } @@ -103,7 +103,7 @@ public: private: std::function callback_; // Whether a block has already been visited or is being delayed. - std::unordered_map visited_, delayed_; + std::unordered_set visited_, delayed_; }; } diff --git a/deps/glslang/glslang/SPIRV/SPVRemapper.cpp b/deps/glslang/glslang/SPIRV/SPVRemapper.cpp index 5c551fb847..fd0bb8950c 100755 --- a/deps/glslang/glslang/SPIRV/SPVRemapper.cpp +++ b/deps/glslang/glslang/SPIRV/SPVRemapper.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2015 LunarG, Inc. +// Copyright (C) 2015 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 "SPVRemapper.h" @@ -103,10 +103,10 @@ namespace spv { switch (opCode) { case spv::OpTypeVector: // fall through - case spv::OpTypeMatrix: // ... - case spv::OpTypeSampler: // ... - case spv::OpTypeArray: // ... - case spv::OpTypeRuntimeArray: // ... + case spv::OpTypeMatrix: // ... + case spv::OpTypeSampler: // ... + case spv::OpTypeArray: // ... + case spv::OpTypeRuntimeArray: // ... case spv::OpTypePipe: return range_t(2, 3); case spv::OpTypeStruct: // fall through case spv::OpTypeFunction: return range_t(2, maxCount); @@ -135,6 +135,9 @@ namespace spv { const unsigned typeStart = idPos(id); const spv::Op opCode = asOpCode(typeStart); + if (errorLatch) + return 0; + switch (opCode) { case spv::OpTypeInt: // fall through... case spv::OpTypeFloat: return (spv[typeStart+2]+31)/32; @@ -148,8 +151,10 @@ namespace spv { unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const { const auto tid_it = idTypeSizeMap.find(id); - if (tid_it == idTypeSizeMap.end()) + if (tid_it == idTypeSizeMap.end()) { error("type size for ID not found"); + return 0; + } return tid_it->second; } @@ -215,14 +220,19 @@ namespace spv { bool spirvbin_t::isConstOp(spv::Op opCode) const { switch (opCode) { - case spv::OpConstantNull: error("unimplemented constant type"); - case spv::OpConstantSampler: error("unimplemented constant type"); + case spv::OpConstantSampler: + error("unimplemented constant type"); + return true; + case spv::OpConstantNull: case spv::OpConstantTrue: case spv::OpConstantFalse: case spv::OpConstantComposite: - case spv::OpConstant: return true; - default: return false; + case spv::OpConstant: + return true; + + default: + return false; } } @@ -246,21 +256,33 @@ namespace spv { spv::Id spirvbin_t::localId(spv::Id id, spv::Id newId) { - assert(id != spv::NoResult && newId != spv::NoResult); + //assert(id != spv::NoResult && newId != spv::NoResult); + + if (id > bound()) { + error(std::string("ID out of range: ") + std::to_string(id)); + return spirvbin_t::unused; + } if (id >= idMapL.size()) idMapL.resize(id+1, unused); if (newId != unmapped && newId != unused) { - if (isOldIdUnused(id)) + if (isOldIdUnused(id)) { error(std::string("ID unused in module: ") + std::to_string(id)); + return spirvbin_t::unused; + } - if (!isOldIdUnmapped(id)) + if (!isOldIdUnmapped(id)) { error(std::string("ID already mapped: ") + std::to_string(id) + " -> " - + std::to_string(localId(id))); + + std::to_string(localId(id))); - if (isNewIdMapped(newId)) + return spirvbin_t::unused; + } + + if (isNewIdMapped(newId)) { error(std::string("ID already used in module: ") + std::to_string(newId)); + return spirvbin_t::unused; + } msg(4, 4, std::string("map: ") + std::to_string(id) + " -> " + std::to_string(newId)); setMapped(newId); @@ -286,7 +308,6 @@ namespace spv { return literal; } - void spirvbin_t::applyMap() { msg(3, 2, std::string("Applying map: ")); @@ -295,12 +316,15 @@ namespace spv { process(inst_fn_nop, // ignore instructions [this](spv::Id& id) { id = localId(id); + + if (errorLatch) + return; + assert(id != unused && id != unmapped); } ); } - // Find free IDs for anything we haven't mapped void spirvbin_t::mapRemainder() { @@ -314,25 +338,31 @@ namespace spv { continue; // Find a new mapping for any used but unmapped IDs - if (isOldIdUnmapped(id)) + if (isOldIdUnmapped(id)) { localId(id, unusedId = nextUnusedId(unusedId)); + if (errorLatch) + return; + } - if (isOldIdUnmapped(id)) + if (isOldIdUnmapped(id)) { error(std::string("old ID not mapped: ") + std::to_string(id)); + return; + } // Track max bound maxBound = std::max(maxBound, localId(id) + 1); + + if (errorLatch) + return; } bound(maxBound); // reset header ID bound to as big as it now needs to be } + // Mark debug instructions for stripping void spirvbin_t::stripDebug() { - if ((options & STRIP) == 0) - return; - - // build local Id and name maps + // Strip instructions in the stripOp set: debug info. process( [&](spv::Op opCode, unsigned start) { // remember opcodes we want to strip later @@ -343,6 +373,32 @@ namespace spv { op_fn_nop); } + // Mark instructions that refer to now-removed IDs for stripping + void spirvbin_t::stripDeadRefs() + { + process( + [&](spv::Op opCode, unsigned start) { + // strip opcodes pointing to removed data + switch (opCode) { + case spv::OpName: + case spv::OpMemberName: + case spv::OpDecorate: + case spv::OpMemberDecorate: + if (idPosR.find(asId(start+1)) == idPosR.end()) + stripInst(start); + break; + default: + break; // leave it alone + } + + return true; + }, + op_fn_nop); + + strip(); + } + + // Update local maps of ID, type, etc positions void spirvbin_t::buildLocalMaps() { msg(2, 2, std::string("build local maps: ")); @@ -351,7 +407,6 @@ namespace spv { idMapL.clear(); // preserve nameMap, so we don't clear that. fnPos.clear(); - fnPosDCE.clear(); fnCalls.clear(); typeConstPos.clear(); idPosR.clear(); @@ -366,10 +421,6 @@ namespace spv { // build local Id and name maps process( [&](spv::Op opCode, unsigned start) { - // remember opcodes we want to strip later - if ((options & STRIP) && isStripOp(opCode)) - stripInst(start); - unsigned word = start+1; spv::Id typeId = spv::NoResult; @@ -380,10 +431,13 @@ namespace spv { if (spv::InstructionDesc[opCode].hasResult()) { const spv::Id resultId = asId(word++); idPosR[resultId] = start; - + if (typeId != spv::NoResult) { const unsigned idTypeSize = typeSizeInWords(typeId); + if (errorLatch) + return false; + if (idTypeSize != 0) idTypeSizeMap[resultId] = idTypeSize; } @@ -399,17 +453,26 @@ namespace spv { } else if (opCode == spv::Op::OpEntryPoint) { entryPoint = asId(start + 2); } else if (opCode == spv::Op::OpFunction) { - if (fnStart != 0) + if (fnStart != 0) { error("nested function found"); + return false; + } + fnStart = start; fnRes = asId(start + 2); } else if (opCode == spv::Op::OpFunctionEnd) { assert(fnRes != spv::NoResult); - if (fnStart == 0) + if (fnStart == 0) { error("function end without function start"); + return false; + } + fnPos[fnRes] = range_t(fnStart, start + asWordCount(start)); fnStart = 0; } else if (isConstOp(opCode)) { + if (errorLatch) + return false; + assert(asId(start + 2) != spv::NoResult); typeConstPos.insert(start); } else if (isTypeOp(opCode)) { @@ -429,30 +492,37 @@ namespace spv { { msg(2, 2, std::string("validating: ")); - if (spv.size() < header_size) + if (spv.size() < header_size) { error("file too short: "); + return; + } - if (magic() != spv::MagicNumber) + if (magic() != spv::MagicNumber) { error("bad magic number"); + return; + } // field 1 = version // field 2 = generator magic // field 3 = result bound - if (schemaNum() != 0) + if (schemaNum() != 0) { error("bad schema, must be 0"); + return; + } } - int spirvbin_t::processInstruction(unsigned word, instfn_t instFn, idfn_t idFn) { const auto instructionStart = word; const unsigned wordCount = asWordCount(instructionStart); - const spv::Op opCode = asOpCode(instructionStart); const int nextInst = word++ + wordCount; + spv::Op opCode = asOpCode(instructionStart); - if (nextInst > int(spv.size())) + if (nextInst > int(spv.size())) { error("spir instruction terminated too early"); + return -1; + } // Base for computing number of operands; will be updated as more is learned unsigned numOperands = wordCount - 1; @@ -490,6 +560,18 @@ namespace spv { // Store IDs from instruction in our map for (int op = 0; numOperands > 0; ++op, --numOperands) { + // SpecConstantOp is special: it includes the operands of another opcode which is + // given as a literal in the 3rd word. We will switch over to pretending that the + // opcode being processed is the literal opcode value of the SpecConstantOp. See the + // SPIRV spec for details. This way we will handle IDs and literals as appropriate for + // the embedded op. + if (opCode == spv::OpSpecConstantOp) { + if (op == 0) { + opCode = asOpCode(word++); // this is the opcode embedded in the SpecConstantOp. + --numOperands; + } + } + switch (spv::InstructionDesc[opCode].operands.getClass(op)) { case spv::OperandId: case spv::OperandScope: @@ -522,6 +604,9 @@ namespace spv { const unsigned literalSize = idTypeSizeInWords(idBuffer[literalSizePos]); const unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize); + if (errorLatch) + return -1; + for (unsigned arg=0; arg 0) { fnLocalVars.erase(id); idMap.erase(id); @@ -891,6 +999,9 @@ namespace spv { } ); + if (errorLatch) + return; + process( [&](spv::Op opCode, unsigned start) { if (opCode == spv::OpLoad && fnLocalVars.count(asId(start+3)) > 0) @@ -899,6 +1010,9 @@ namespace spv { }, op_fn_nop); + if (errorLatch) + return; + // Chase replacements to their origins, in case there is a chain such as: // 2 = store 1 // 3 = load 2 @@ -932,6 +1046,9 @@ namespace spv { } ); + if (errorLatch) + return; + strip(); // strip out data we decided to eliminate } @@ -957,7 +1074,6 @@ namespace spv { if (call_it == fnCalls.end() || call_it->second == 0) { changed = true; stripRange.push_back(fn->second); - fnPosDCE.insert(*fn); // decrease counts of called functions process( @@ -976,6 +1092,9 @@ namespace spv { fn->second.first, fn->second.second); + if (errorLatch) + return; + fn = fnPos.erase(fn); } else ++fn; } @@ -1008,14 +1127,21 @@ namespace spv { [&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; } ); + if (errorLatch) + return; + // Remove single-use function variables + associated decorations and names process( [&](spv::Op opCode, unsigned start) { - if ((opCode == spv::OpVariable && varUseCount[asId(start+2)] == 1) || - (opCode == spv::OpDecorate && varUseCount[asId(start+1)] == 1) || - (opCode == spv::OpName && varUseCount[asId(start+1)] == 1)) { - stripInst(start); - } + spv::Id id = spv::NoResult; + if (opCode == spv::OpVariable) + id = asId(start+2); + if (opCode == spv::OpDecorate || opCode == spv::OpName) + id = asId(start+1); + + if (id != spv::NoResult && varUseCount[id] == 1) + stripInst(start); + return true; }, op_fn_nop); @@ -1045,6 +1171,9 @@ namespace spv { [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } ); + if (errorLatch) + return; + // Remove single reference types for (const auto typeStart : typeConstPos) { const spv::Id typeId = asTypeConstId(typeStart); @@ -1054,10 +1183,12 @@ namespace spv { stripInst(typeStart); } } + + if (errorLatch) + return; } } - #ifdef NOTDEF bool spirvbin_t::matchType(const spirvbin_t::globaltypes_t& globalTypes, spv::Id lt, spv::Id gt) const { @@ -1117,7 +1248,6 @@ namespace spv { } } - // Look for an equivalent type in the globalTypes map spv::Id spirvbin_t::findType(const spirvbin_t::globaltypes_t& globalTypes, spv::Id lt) const { @@ -1134,8 +1264,10 @@ namespace spv { unsigned spirvbin_t::idPos(spv::Id id) const { const auto tid_it = idPosR.find(id); - if (tid_it == idPosR.end()) + if (tid_it == idPosR.end()) { error("ID not found"); + return 0; + } return tid_it->second; } @@ -1194,10 +1326,6 @@ namespace spv { case spv::OpTypeReserveId: return 300002; case spv::OpTypeQueue: return 300003; case spv::OpTypePipe: return 300004; - - case spv::OpConstantNull: return 300005; - case spv::OpConstantSampler: return 300006; - case spv::OpConstantTrue: return 300007; case spv::OpConstantFalse: return 300008; case spv::OpConstantComposite: @@ -1214,6 +1342,18 @@ namespace spv { hash += w * spv[typeStart+w]; return hash; } + case spv::OpConstantNull: + { + std::uint32_t hash = 500009 + hashType(idPos(spv[typeStart+1])); + return hash; + } + case spv::OpConstantSampler: + { + std::uint32_t hash = 600011 + hashType(idPos(spv[typeStart+1])); + for (unsigned w=3; w < wordCount; ++w) + hash += w * spv[typeStart+w]; + return hash; + } default: error("unknown type opcode"); @@ -1234,12 +1374,17 @@ namespace spv { const spv::Id resId = asTypeConstId(typeStart); const std::uint32_t hashval = hashType(typeStart); - if (isOldIdUnmapped(resId)) + if (errorLatch) + return; + + if (isOldIdUnmapped(resId)) { localId(resId, nextUnusedId(hashval % softTypeIdLimit + firstMappedID)); + if (errorLatch) + return; + } } } - // Strip a single binary by removing ranges given in stripRange void spirvbin_t::strip() { @@ -1255,7 +1400,7 @@ namespace spv { int strippedPos = 0; for (unsigned word = 0; word < unsigned(spv.size()); ++word) { - if (strip_it != stripRange.end() && word >= strip_it->second) + while (strip_it != stripRange.end() && word >= strip_it->second) ++strip_it; if (strip_it == stripRange.end() || word < strip_it->first || word >= strip_it->second) @@ -1276,25 +1421,56 @@ namespace spv { // Set up opcode tables from SpvDoc spv::Parameterize(); - validate(); // validate header - buildLocalMaps(); + validate(); // validate header + buildLocalMaps(); // build ID maps msg(3, 4, std::string("ID bound: ") + std::to_string(bound())); + if (options & STRIP) stripDebug(); + if (errorLatch) return; + strip(); // strip out data we decided to eliminate + if (errorLatch) return; + if (options & OPT_LOADSTORE) optLoadStore(); + if (errorLatch) return; + if (options & OPT_FWD_LS) forwardLoadStores(); + if (errorLatch) return; + if (options & DCE_FUNCS) dceFuncs(); + if (errorLatch) return; + if (options & DCE_VARS) dceVars(); + if (errorLatch) return; + if (options & DCE_TYPES) dceTypes(); - strip(); // strip out data we decided to eliminate + if (errorLatch) return; + + strip(); // strip out data we decided to eliminate + if (errorLatch) return; + + stripDeadRefs(); // remove references to things we DCEed + if (errorLatch) return; + + // after the last strip, we must clean any debug info referring to now-deleted data if (options & MAP_TYPES) mapTypeConst(); - if (options & MAP_NAMES) mapNames(); - if (options & MAP_FUNCS) mapFnBodies(); + if (errorLatch) return; - mapRemainder(); // map any unmapped IDs - applyMap(); // Now remap each shader to the new IDs we've come up with + if (options & MAP_NAMES) mapNames(); + if (errorLatch) return; + + if (options & MAP_FUNCS) mapFnBodies(); + if (errorLatch) return; + + if (options & MAP_ALL) { + mapRemainder(); // map any unmapped IDs + if (errorLatch) return; + + applyMap(); // Now remap each shader to the new IDs we've come up with + if (errorLatch) return; + } } // remap from a memory image diff --git a/deps/glslang/glslang/SPIRV/SPVRemapper.h b/deps/glslang/glslang/SPIRV/SPVRemapper.h index ee5f63c653..97e3f31fa6 100755 --- a/deps/glslang/glslang/SPIRV/SPVRemapper.h +++ b/deps/glslang/glslang/SPIRV/SPVRemapper.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2015 LunarG, Inc. +// Copyright (C) 2015 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 SPIRVREMAPPER_H @@ -39,6 +39,7 @@ #include #include #include +#include namespace spv { @@ -111,7 +112,10 @@ namespace spv { class spirvbin_t : public spirvbin_base_t { public: - spirvbin_t(int verbose = 0) : entryPoint(spv::NoResult), largestNewId(0), verbose(verbose) { } + spirvbin_t(int verbose = 0) : entryPoint(spv::NoResult), largestNewId(0), verbose(verbose), errorLatch(false) + { } + + virtual ~spirvbin_t() { } // remap on an existing binary in memory void remap(std::vector& spv, std::uint32_t opts = DO_EVERYTHING); @@ -164,7 +168,7 @@ private: typedef std::unordered_map typesize_map_t; // handle error - void error(const std::string& txt) const { errorHandler(txt); } + void error(const std::string& txt) const { errorLatch = true; errorHandler(txt); } bool isConstOp(spv::Op opCode) const; bool isTypeOp(spv::Op opCode) const; @@ -239,7 +243,8 @@ private: void applyMap(); // remap per local name map void mapRemainder(); // map any IDs we haven't touched yet - void stripDebug(); // strip debug info + void stripDebug(); // strip all debug info + void stripDeadRefs(); // strips debug info for now-dead references after DCE void strip(); // remove debug symbols std::vector spv; // SPIR words @@ -264,7 +269,6 @@ private: // Function start and end. use unordered_map because we'll have // many fewer functions than IDs. std::unordered_map fnPos; - std::unordered_map fnPosDCE; // deleted functions // Which functions are called, anywhere in the module, with a call count std::unordered_map fnCalls; @@ -285,6 +289,11 @@ private: std::uint32_t options; int verbose; // verbosity level + // Error latch: this is set if the error handler is ever executed. It would be better to + // use a try/catch block and throw, but that's not desired for certain environments, so + // this is the alternative. + mutable bool errorLatch; + static errorfn_t errorHandler; static logfn_t logHandler; }; diff --git a/deps/glslang/glslang/SPIRV/SpvBuilder.cpp b/deps/glslang/glslang/SPIRV/SpvBuilder.cpp old mode 100644 new mode 100755 index 04b0f04f5d..10d655b00b --- a/deps/glslang/glslang/SPIRV/SpvBuilder.cpp +++ b/deps/glslang/glslang/SPIRV/SpvBuilder.cpp @@ -1,12 +1,12 @@ // -//Copyright (C) 2014-2015 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2014-2015 LunarG, Inc. +// Copyright (C) 2015-2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // Helper for making SPIR-V IR. Generally, this is documented in the header @@ -46,9 +46,7 @@ #include "SpvBuilder.h" -#ifdef AMD_EXTENSIONS - #include "hex_float.h" -#endif +#include "hex_float.h" #ifndef _WIN32 #include @@ -56,9 +54,13 @@ namespace spv { -Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) : +Builder::Builder(unsigned int spvVersion, unsigned int magicNumber, SpvBuildLogger* buildLogger) : + spvVersion(spvVersion), source(SourceLanguageUnknown), sourceVersion(0), + sourceFileStringId(NoResult), + currentLine(0), + emitOpLines(false), addressModel(AddressingModelLogical), memoryModel(MemoryModelGLSL450), builderNumber(magicNumber), @@ -79,11 +81,31 @@ Id Builder::import(const char* name) { Instruction* import = new Instruction(getUniqueId(), NoType, OpExtInstImport); import->addStringOperand(name); - + imports.push_back(std::unique_ptr(import)); return import->getResultId(); } +// Emit an OpLine if we've been asked to emit OpLines and the line number +// has changed since the last time, and is a valid line number. +void Builder::setLine(int lineNum) +{ + if (lineNum != 0 && lineNum != currentLine) { + currentLine = lineNum; + if (emitOpLines) + addLine(sourceFileStringId, currentLine, 0); + } +} + +void Builder::addLine(Id fileName, int lineNum, int column) +{ + Instruction* line = new Instruction(OpLine); + line->addIdOperand(fileName); + line->addImmediateOperand(lineNum); + line->addImmediateOperand(column); + buildPoint->addInstruction(std::unique_ptr(line)); +} + // For creating new groupedTypes (will return old type if the requested one was already made). Id Builder::makeVoidType() { @@ -170,6 +192,9 @@ Id Builder::makeIntegerType(int width, bool hasSign) // deal with capabilities switch (width) { + case 8: + addCapability(CapabilityInt8); + break; case 16: addCapability(CapabilityInt16); break; @@ -246,7 +271,7 @@ Id Builder::makeStructResultType(Id type0, Id type1) type = groupedTypes[OpTypeStruct][t]; if (type->getNumOperands() != 2) continue; - if (type->getIdOperand(0) != type0 || + if (type->getIdOperand(0) != type0 || type->getIdOperand(1) != type1) continue; return type->getResultId(); @@ -379,6 +404,8 @@ Id Builder::makeFunctionType(Id returnType, const std::vector& paramTypes) Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format) { + assert(sampled == 1 || sampled == 2); + // try to find it Instruction* type; for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) { @@ -410,27 +437,27 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo // deal with capabilities switch (dim) { case DimBuffer: - if (sampled) + if (sampled == 1) addCapability(CapabilitySampledBuffer); else addCapability(CapabilityImageBuffer); break; case Dim1D: - if (sampled) + if (sampled == 1) addCapability(CapabilitySampled1D); else addCapability(CapabilityImage1D); break; case DimCube: if (arrayed) { - if (sampled) + if (sampled == 1) addCapability(CapabilitySampledCubeArray); else addCapability(CapabilityImageCubeArray); } break; case DimRect: - if (sampled) + if (sampled == 1) addCapability(CapabilitySampledRect); else addCapability(CapabilityImageRect); @@ -443,10 +470,14 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo } if (ms) { - if (arrayed) - addCapability(CapabilityImageMSArray); - if (! sampled) - addCapability(CapabilityStorageImageMultisample); + if (sampled == 2) { + // Images used with subpass data are not storage + // images, so don't require the capability for them. + if (dim != Dim::DimSubpassData) + addCapability(CapabilityStorageImageMultisample); + if (arrayed) + addCapability(CapabilityImageMSArray); + } } return type->getResultId(); @@ -592,7 +623,7 @@ Id Builder::getContainedTypeId(Id typeId) const // See if a scalar constant of this type has already been created, so it // can be reused rather than duplicated. (Required by the specification). -Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const +Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) { Instruction* constant; for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { @@ -607,7 +638,7 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned valu } // Version of findScalarConstant (see above) for scalars that take two operands (e.g. a 'double' or 'int64'). -Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const +Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) { Instruction* constant; for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { @@ -628,7 +659,7 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, bool Builder::isConstantOpCode(Op opcode) const { switch (opcode) { - case OpUndef: + case OpUndef: case OpConstantTrue: case OpConstantFalse: case OpConstant: @@ -789,7 +820,6 @@ Id Builder::makeDoubleConstant(double d, bool specConstant) return c->getResultId(); } -#ifdef AMD_EXTENSIONS Id Builder::makeFloat16Constant(float f16, bool specConstant) { Op opcode = specConstant ? OpSpecConstant : OpConstant; @@ -817,9 +847,27 @@ Id Builder::makeFloat16Constant(float f16, bool specConstant) return c->getResultId(); } -#endif -Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const +Id Builder::makeFpConstant(Id type, double d, bool specConstant) +{ + assert(isFloatType(type)); + + switch (getScalarTypeWidth(type)) { + case 16: + return makeFloat16Constant((float)d, specConstant); + case 32: + return makeFloatConstant((float)d, specConstant); + case 64: + return makeDoubleConstant(d, specConstant); + default: + break; + } + + assert(false); + return NoResult; +} + +Id Builder::findCompositeConstant(Op typeClass, const std::vector& comps) { Instruction* constant = 0; bool found = false; @@ -847,8 +895,32 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const return found ? constant->getResultId() : NoResult; } +Id Builder::findStructConstant(Id typeId, const std::vector& comps) +{ + Instruction* constant = 0; + bool found = false; + for (int i = 0; i < (int)groupedStructConstants[typeId].size(); ++i) { + constant = groupedStructConstants[typeId][i]; + + // same contents? + bool mismatch = false; + for (int op = 0; op < constant->getNumOperands(); ++op) { + if (constant->getIdOperand(op) != comps[op]) { + mismatch = true; + break; + } + } + if (! mismatch) { + found = true; + break; + } + } + + return found ? constant->getResultId() : NoResult; +} + // Comments in header -Id Builder::makeCompositeConstant(Id typeId, std::vector& members, bool specConstant) +Id Builder::makeCompositeConstant(Id typeId, const std::vector& members, bool specConstant) { Op opcode = specConstant ? OpSpecConstantComposite : OpConstantComposite; assert(typeId); @@ -857,25 +929,33 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector& members, bool spec switch (typeClass) { case OpTypeVector: case OpTypeArray: - case OpTypeStruct: case OpTypeMatrix: + if (! specConstant) { + Id existing = findCompositeConstant(typeClass, members); + if (existing) + return existing; + } + break; + case OpTypeStruct: + if (! specConstant) { + Id existing = findStructConstant(typeId, members); + if (existing) + return existing; + } break; default: assert(0); return makeFloatConstant(0.0); } - if (! specConstant) { - Id existing = findCompositeConstant(typeClass, members); - if (existing) - return existing; - } - Instruction* c = new Instruction(getUniqueId(), typeId, opcode); for (int op = 0; op < (int)members.size(); ++op) c->addIdOperand(members[op]); constantsTypesGlobals.push_back(std::unique_ptr(c)); - groupedConstants[typeClass].push_back(c); + if (typeClass == OpTypeStruct) + groupedStructConstants[typeId].push_back(c); + else + groupedConstants[typeClass].push_back(c); module.mapInstruction(c); return c->getResultId(); @@ -928,21 +1008,11 @@ void Builder::addMemberName(Id id, int memberNumber, const char* string) names.push_back(std::unique_ptr(name)); } -void Builder::addLine(Id target, Id fileName, int lineNum, int column) -{ - Instruction* line = new Instruction(OpLine); - line->addIdOperand(target); - line->addIdOperand(fileName); - line->addImmediateOperand(lineNum); - line->addImmediateOperand(column); - - lines.push_back(std::unique_ptr(line)); -} - void Builder::addDecoration(Id id, Decoration decoration, int num) { if (decoration == spv::DecorationMax) return; + Instruction* dec = new Instruction(OpDecorate); dec->addIdOperand(id); dec->addImmediateOperand(decoration); @@ -952,8 +1022,37 @@ void Builder::addDecoration(Id id, Decoration decoration, int num) decorations.push_back(std::unique_ptr(dec)); } +void Builder::addDecoration(Id id, Decoration decoration, const char* s) +{ + if (decoration == spv::DecorationMax) + return; + + Instruction* dec = new Instruction(OpDecorateStringGOOGLE); + dec->addIdOperand(id); + dec->addImmediateOperand(decoration); + dec->addStringOperand(s); + + decorations.push_back(std::unique_ptr(dec)); +} + +void Builder::addDecorationId(Id id, Decoration decoration, Id idDecoration) +{ + if (decoration == spv::DecorationMax) + return; + + Instruction* dec = new Instruction(OpDecorateId); + dec->addIdOperand(id); + dec->addImmediateOperand(decoration); + dec->addIdOperand(idDecoration); + + decorations.push_back(std::unique_ptr(dec)); +} + void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decoration, int num) { + if (decoration == spv::DecorationMax) + return; + Instruction* dec = new Instruction(OpMemberDecorate); dec->addIdOperand(id); dec->addImmediateOperand(member); @@ -964,6 +1063,20 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat decorations.push_back(std::unique_ptr(dec)); } +void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decoration, const char *s) +{ + if (decoration == spv::DecorationMax) + return; + + Instruction* dec = new Instruction(OpMemberDecorateStringGOOGLE); + dec->addIdOperand(id); + dec->addImmediateOperand(member); + dec->addImmediateOperand(decoration); + dec->addStringOperand(s); + + decorations.push_back(std::unique_ptr(dec)); +} + // Comments in header Function* Builder::makeEntryPoint(const char* entryPoint) { @@ -971,16 +1084,16 @@ Function* Builder::makeEntryPoint(const char* entryPoint) Block* entry; std::vector params; - std::vector precisions; + std::vector> decorations; - entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry); + entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, decorations, &entry); return entryPointFunction; } // Comments in header Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const char* name, - const std::vector& paramTypes, const std::vector& precisions, Block **entry) + const std::vector& paramTypes, const std::vector>& decorations, Block **entry) { // Make the function and initial instructions in it Id typeId = makeFunctionType(returnType, paramTypes); @@ -989,8 +1102,10 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const // Set up the precisions setPrecision(function->getId(), precision); - for (unsigned p = 0; p < (unsigned)precisions.size(); ++p) - setPrecision(firstParamId + p, precisions[p]); + for (unsigned p = 0; p < (unsigned)decorations.size(); ++p) { + for (int d = 0; d < (int)decorations[p].size(); ++d) + addDecoration(firstParamId + p, decorations[p][d]); + } // CFG if (entry) { @@ -1098,7 +1213,7 @@ Id Builder::createLoad(Id lValue) } // Comments in header -Id Builder::createAccessChain(StorageClass storageClass, Id base, std::vector& offsets) +Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector& offsets) { // Figure out the final resulting type. spv::Id typeId = getTypeId(base); @@ -1125,7 +1240,8 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, std::vectoraddIdOperand(base); length->addImmediateOperand(member); buildPoint->addInstruction(std::unique_ptr(length)); @@ -1148,7 +1264,7 @@ Id Builder::createCompositeExtract(Id composite, Id typeId, unsigned index) return extract->getResultId(); } -Id Builder::createCompositeExtract(Id composite, Id typeId, std::vector& indexes) +Id Builder::createCompositeExtract(Id composite, Id typeId, const std::vector& indexes) { // Generate code for spec constants if in spec constant operation // generation mode. @@ -1175,7 +1291,7 @@ Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, unsigned i return insert->getResultId(); } -Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, std::vector& indexes) +Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, const std::vector& indexes) { Instruction* insert = new Instruction(getUniqueId(), typeId, OpCompositeInsert); insert->addIdOperand(object); @@ -1326,7 +1442,7 @@ Id Builder::createSpecConstantOp(Op opCode, Id typeId, const std::vector& op return op->getResultId(); } -Id Builder::createFunctionCall(spv::Function* function, std::vector& args) +Id Builder::createFunctionCall(spv::Function* function, const std::vector& args) { Instruction* op = new Instruction(getUniqueId(), function->getReturnType(), OpFunctionCall); op->addIdOperand(function->getId()); @@ -1338,7 +1454,7 @@ Id Builder::createFunctionCall(spv::Function* function, std::vector& ar } // Comments in header -Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, std::vector& channels) +Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, const std::vector& channels) { if (channels.size() == 1) return setPrecision(createCompositeExtract(source, typeId, channels.front()), precision); @@ -1360,22 +1476,19 @@ Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, std: } // Comments in header -Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, std::vector& channels) +Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, const std::vector& channels) { if (channels.size() == 1 && getNumComponents(source) == 1) return createCompositeInsert(source, target, typeId, channels.front()); Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle); + assert(isVector(target)); swizzle->addIdOperand(target); - if (accessChain.component != NoResult) - // For dynamic component selection, source does not involve in l-value swizzle - swizzle->addIdOperand(target); - else { - assert(getNumComponents(source) == (int)channels.size()); - assert(isVector(source)); - swizzle->addIdOperand(source); - } + + assert(getNumComponents(source) == (int)channels.size()); + assert(isVector(source)); + swizzle->addIdOperand(source); // Set up an identity shuffle from the base value to the result value unsigned int components[4]; @@ -1384,12 +1497,8 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, std::vector& args) +Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, const std::vector& args) { Instruction* inst = new Instruction(getUniqueId(), resultType, OpExtInst); inst->addIdOperand(builtins); @@ -1461,7 +1570,8 @@ Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, std::v // Accept all parameters needed to create a texture instruction. // Create the correct instruction based on the inputs, and make the call. -Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, bool noImplicitLod, const TextureParameters& parameters) +Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, + bool noImplicitLod, const TextureParameters& parameters) { static const int maxTextureArgs = 10; Id texArgs[maxTextureArgs] = {}; @@ -1514,6 +1624,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, texArgs[numArgs++] = parameters.offset; } if (parameters.offsets) { + addCapability(CapabilityImageGatherExtended); mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask); texArgs[numArgs++] = parameters.offsets; } @@ -1661,7 +1772,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, } // Comments in header -Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameters) +Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameters, bool isUnsignedResult) { // All these need a capability addCapability(CapabilityImageQuery); @@ -1694,19 +1805,25 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter } if (isArrayedImageType(getImageType(parameters.sampler))) ++numComponents; + + Id intType = isUnsignedResult ? makeUintType(32) : makeIntType(32); if (numComponents == 1) - resultType = makeIntType(32); + resultType = intType; else - resultType = makeVectorType(makeIntType(32), numComponents); + resultType = makeVectorType(intType, numComponents); break; } case OpImageQueryLod: +#ifdef AMD_EXTENSIONS + resultType = makeVectorType(getScalarTypeId(getTypeId(parameters.coords)), 2); +#else resultType = makeVectorType(makeFloatType(32), 2); +#endif break; case OpImageQueryLevels: case OpImageQuerySamples: - resultType = makeIntType(32); + resultType = isUnsignedResult ? makeUintType(32) : makeIntType(32); break; default: assert(0); @@ -1794,7 +1911,7 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b } // OpCompositeConstruct -Id Builder::createCompositeConstruct(Id typeId, std::vector& constituents) +Id Builder::createCompositeConstruct(Id typeId, const std::vector& constituents) { assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && getNumTypeConstituents(typeId) == (int)constituents.size())); @@ -1832,34 +1949,72 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc if (sources.size() == 1 && isScalar(sources[0]) && numTargetComponents > 1) return smearScalar(precision, sources[0], resultTypeId); + // accumulate the arguments for OpCompositeConstruct + std::vector constituents; Id scalarTypeId = getScalarTypeId(resultTypeId); - std::vector constituents; // accumulate the arguments for OpCompositeConstruct - for (unsigned int i = 0; i < sources.size(); ++i) { - assert(! isAggregate(sources[i])); - unsigned int sourceSize = getNumComponents(sources[i]); + + // lambda to store the result of visiting an argument component + const auto latchResult = [&](Id comp) { + if (numTargetComponents > 1) + constituents.push_back(comp); + else + result = comp; + ++targetComponent; + }; + + // lambda to visit a vector argument's components + const auto accumulateVectorConstituents = [&](Id sourceArg) { + unsigned int sourceSize = getNumComponents(sourceArg); unsigned int sourcesToUse = sourceSize; if (sourcesToUse + targetComponent > numTargetComponents) sourcesToUse = numTargetComponents - targetComponent; for (unsigned int s = 0; s < sourcesToUse; ++s) { - Id arg = sources[i]; - if (sourceSize > 1) { - std::vector swiz; - swiz.push_back(s); - arg = createRvalueSwizzle(precision, scalarTypeId, arg, swiz); - } - - if (numTargetComponents > 1) - constituents.push_back(arg); - else - result = arg; - ++targetComponent; + std::vector swiz; + swiz.push_back(s); + latchResult(createRvalueSwizzle(precision, scalarTypeId, sourceArg, swiz)); } + }; + + // lambda to visit a matrix argument's components + const auto accumulateMatrixConstituents = [&](Id sourceArg) { + unsigned int sourceSize = getNumColumns(sourceArg) * getNumRows(sourceArg); + unsigned int sourcesToUse = sourceSize; + if (sourcesToUse + targetComponent > numTargetComponents) + sourcesToUse = numTargetComponents - targetComponent; + + int col = 0; + int row = 0; + for (unsigned int s = 0; s < sourcesToUse; ++s) { + if (row >= getNumRows(sourceArg)) { + row = 0; + col++; + } + std::vector indexes; + indexes.push_back(col); + indexes.push_back(row); + latchResult(createCompositeExtract(sourceArg, scalarTypeId, indexes)); + row++; + } + }; + + // Go through the source arguments, each one could have either + // a single or multiple components to contribute. + for (unsigned int i = 0; i < sources.size(); ++i) { + if (isScalar(sources[i])) + latchResult(sources[i]); + else if (isVector(sources[i])) + accumulateVectorConstituents(sources[i]); + else if (isMatrix(sources[i])) + accumulateMatrixConstituents(sources[i]); + else + assert(0); if (targetComponent >= numTargetComponents) break; } + // If the result is a vector, make it from the gathered constituents. if (constituents.size() > 0) result = createCompositeConstruct(resultTypeId, constituents); @@ -1936,7 +2091,6 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } } - // Step 2: Construct a matrix from that array. // First make the column vectors, then make the matrix. @@ -1957,9 +2111,10 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } // Comments in header -Builder::If::If(Id cond, Builder& gb) : +Builder::If::If(Id cond, unsigned int ctrl, Builder& gb) : builder(gb), condition(cond), + control(ctrl), elseBlock(0) { function = &builder.getBuildPoint()->getParent(); @@ -2000,7 +2155,7 @@ void Builder::If::makeEndIf() // Go back to the headerBlock and make the flow control split builder.setBuildPoint(headerBlock); - builder.createSelectionMerge(mergeBlock, SelectionControlMaskNone); + builder.createSelectionMerge(mergeBlock, control); if (elseBlock) builder.createConditionalBranch(condition, thenBlock, elseBlock); else @@ -2012,7 +2167,8 @@ void Builder::If::makeEndIf() } // Comments in header -void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseValues, std::vector& valueIndexToSegment, int defaultSegment, +void Builder::makeSwitch(Id selector, unsigned int control, int numSegments, const std::vector& caseValues, + const std::vector& valueIndexToSegment, int defaultSegment, std::vector& segmentBlocks) { Function& function = buildPoint->getParent(); @@ -2024,7 +2180,7 @@ void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseVal Block* mergeBlock = new Block(getUniqueId(), function); // make and insert the switch's selection-merge instruction - createSelectionMerge(mergeBlock, SelectionControlMaskNone); + createSelectionMerge(mergeBlock, control); // make the switch instruction Instruction* switchInst = new Instruction(NoResult, NoType, OpSwitch); @@ -2140,10 +2296,11 @@ void Builder::accessChainPushSwizzle(std::vector& swizzle, Id preSwizz accessChain.preSwizzleBaseType = preSwizzleBaseType; // if needed, propagate the swizzle for the current access chain - if (accessChain.swizzle.size()) { + if (accessChain.swizzle.size() > 0) { std::vector oldSwizzle = accessChain.swizzle; accessChain.swizzle.resize(0); for (unsigned int i = 0; i < swizzle.size(); ++i) { + assert(swizzle[i] < oldSwizzle.size()); accessChain.swizzle.push_back(oldSwizzle[swizzle[i]]); } } else @@ -2160,34 +2317,28 @@ void Builder::accessChainStore(Id rvalue) transferAccessChainSwizzle(true); Id base = collapseAccessChain(); + Id source = rvalue; + + // dynamic component should be gone + assert(accessChain.component == NoResult); // If swizzle still exists, it is out-of-order or not full, we must load the target vector, // extract and insert elements to perform writeMask and/or swizzle. - Id source = NoResult; - if (accessChain.swizzle.size()) { + if (accessChain.swizzle.size() > 0) { Id tempBaseId = createLoad(base); - source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle); + source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle); } - // dynamic component selection - if (accessChain.component != NoResult) { - Id tempBaseId = (source == NoResult) ? createLoad(base) : source; - source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, accessChain.component); - } - - if (source == NoResult) - source = rvalue; - createStore(source, base); } // Comments in header -Id Builder::accessChainLoad(Decoration precision, Id resultType) +Id Builder::accessChainLoad(Decoration precision, Decoration nonUniform, Id resultType) { Id id; if (accessChain.isRValue) { - // transfer access chain, but keep it static, so we can stay in registers + // transfer access chain, but try to stay in registers transferAccessChainSwizzle(false); if (accessChain.indexChain.size() > 0) { Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType; @@ -2228,6 +2379,7 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) // load through the access chain id = createLoad(collapseAccessChain()); setPrecision(id, precision); + addDecoration(id, nonUniform); } // Done, unless there are swizzles to do @@ -2235,19 +2387,20 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) return id; // Do remaining swizzling - // First, static swizzling - if (accessChain.swizzle.size()) { - // static swizzle + + // Do the basic swizzle + if (accessChain.swizzle.size() > 0) { Id swizzledType = getScalarTypeId(getTypeId(id)); if (accessChain.swizzle.size() > 1) swizzledType = makeVectorType(swizzledType, (int)accessChain.swizzle.size()); id = createRvalueSwizzle(precision, swizzledType, id, accessChain.swizzle); } - // dynamic single-component selection + // Do the dynamic component if (accessChain.component != NoResult) id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), precision); + addDecoration(id, nonUniform); return id; } @@ -2340,7 +2493,7 @@ void Builder::dump(std::vector& out) const { // Header, before first instructions: out.push_back(MagicNumber); - out.push_back(Version); + out.push_back(spvVersion); out.push_back(builderNumber); out.push_back(uniqueId + 1); out.push_back(0); @@ -2354,7 +2507,7 @@ void Builder::dump(std::vector& out) const for (auto it = extensions.cbegin(); it != extensions.cend(); ++it) { Instruction extInst(0, 0, OpExtension); - extInst.addStringOperand(*it); + extInst.addStringOperand(it->c_str()); extInst.dump(out); } @@ -2369,19 +2522,15 @@ void Builder::dump(std::vector& out) const dumpInstructions(out, executionModes); // Debug instructions - if (source != SourceLanguageUnknown) { - Instruction sourceInst(0, 0, OpSource); - sourceInst.addImmediateOperand(source); - sourceInst.addImmediateOperand(sourceVersion); - sourceInst.dump(out); - } + dumpInstructions(out, strings); + dumpSourceInstructions(out); for (int e = 0; e < (int)sourceExtensions.size(); ++e) { Instruction sourceExtInst(0, 0, OpSourceExtension); sourceExtInst.addStringOperand(sourceExtensions[e]); sourceExtInst.dump(out); } dumpInstructions(out, names); - dumpInstructions(out, lines); + dumpModuleProcesses(out); // Annotation instructions dumpInstructions(out, decorations); @@ -2397,26 +2546,66 @@ void Builder::dump(std::vector& out) const // Protected methods. // -// Turn the described access chain in 'accessChain' into an instruction +// Turn the described access chain in 'accessChain' into an instruction(s) // computing its address. This *cannot* include complex swizzles, which must -// be handled after this is called, but it does include swizzles that select -// an individual element, as a single address of a scalar type can be -// computed by an OpAccessChain instruction. +// be handled after this is called. +// +// Can generate code. Id Builder::collapseAccessChain() { assert(accessChain.isRValue == false); - if (accessChain.indexChain.size() > 0) { - if (accessChain.instr == 0) { - StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); - accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain); - } - + // did we already emit an access chain for this? + if (accessChain.instr != NoResult) return accessChain.instr; - } else + + // If we have a dynamic component, we can still transfer + // that into a final operand to the access chain. We need to remap the + // dynamic component through the swizzle to get a new dynamic component to + // update. + // + // This was not done in transferAccessChainSwizzle() because it might + // generate code. + remapDynamicSwizzle(); + if (accessChain.component != NoResult) { + // transfer the dynamic component to the access chain + accessChain.indexChain.push_back(accessChain.component); + accessChain.component = NoResult; + } + + // note that non-trivial swizzling is left pending + + // do we have an access chain? + if (accessChain.indexChain.size() == 0) return accessChain.base; - // note that non-trivial swizzling is left pending... + // emit the access chain + StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); + accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain); + + return accessChain.instr; +} + +// For a dynamic component selection of a swizzle. +// +// Turn the swizzle and dynamic component into just a dynamic component. +// +// Generates code. +void Builder::remapDynamicSwizzle() +{ + // do we have a swizzle to remap a dynamic component through? + if (accessChain.component != NoResult && accessChain.swizzle.size() > 1) { + // build a vector of the swizzle for the component to map into + std::vector components; + for (int c = 0; c < (int)accessChain.swizzle.size(); ++c) + components.push_back(makeUintConstant(accessChain.swizzle[c])); + Id mapType = makeVectorType(makeUintType(32), (int)accessChain.swizzle.size()); + Id map = makeCompositeConstant(mapType, components); + + // use it + accessChain.component = createVectorExtractDynamic(map, makeUintType(32), accessChain.component); + accessChain.swizzle.clear(); + } } // clear out swizzle if it is redundant, that is reselecting the same components @@ -2442,38 +2631,30 @@ void Builder::simplifyAccessChainSwizzle() // To the extent any swizzling can become part of the chain // of accesses instead of a post operation, make it so. -// If 'dynamic' is true, include transferring a non-static component index, -// otherwise, only transfer static indexes. +// If 'dynamic' is true, include transferring the dynamic component, +// otherwise, leave it pending. // -// Also, Boolean vectors are likely to be special. While -// for external storage, they should only be integer types, -// function-local bool vectors could use sub-word indexing, -// so keep that as a separate Insert/Extract on a loaded vector. +// Does not generate code. just updates the access chain. void Builder::transferAccessChainSwizzle(bool dynamic) { - // too complex? - if (accessChain.swizzle.size() > 1) - return; - // non existent? if (accessChain.swizzle.size() == 0 && accessChain.component == NoResult) return; - // single component... - - // skip doing it for Boolean vectors - if (isBoolType(getContainedTypeId(accessChain.preSwizzleBaseType))) + // too complex? + // (this requires either a swizzle, or generating code for a dynamic component) + if (accessChain.swizzle.size() > 1) return; + // single component, either in the swizzle and/or dynamic component if (accessChain.swizzle.size() == 1) { - // handle static component + assert(accessChain.component == NoResult); + // handle static component selection accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle.front())); accessChain.swizzle.clear(); - // note, the only valid remaining dynamic access would be to this one - // component, so don't bother even looking at accessChain.component accessChain.preSwizzleBaseType = NoType; - accessChain.component = NoResult; } else if (dynamic && accessChain.component != NoResult) { + assert(accessChain.swizzle.size() == 0); // handle dynamic component accessChain.indexChain.push_back(accessChain.component); accessChain.preSwizzleBaseType = NoType; @@ -2491,7 +2672,7 @@ void Builder::createAndSetNoPredecessorBlock(const char* /*name*/) buildPoint->getParent().addBlock(block); setBuildPoint(block); - //if (name) + // if (name) // addName(block->getId(), name); } @@ -2512,12 +2693,15 @@ void Builder::createSelectionMerge(Block* mergeBlock, unsigned int control) buildPoint->addInstruction(std::unique_ptr(merge)); } -void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control) +void Builder::createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, + unsigned int dependencyLength) { Instruction* merge = new Instruction(OpLoopMerge); merge->addIdOperand(mergeBlock->getId()); merge->addIdOperand(continueBlock->getId()); merge->addImmediateOperand(control); + if ((control & LoopControlDependencyLengthMask) != 0) + merge->addImmediateOperand(dependencyLength); buildPoint->addInstruction(std::unique_ptr(merge)); } @@ -2532,6 +2716,48 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els elseBlock->addPredecessor(buildPoint); } +// OpSource +// [OpSourceContinued] +// ... +void Builder::dumpSourceInstructions(std::vector& out) const +{ + const int maxWordCount = 0xFFFF; + const int opSourceWordCount = 4; + const int nonNullBytesPerInstruction = 4 * (maxWordCount - opSourceWordCount) - 1; + + if (source != SourceLanguageUnknown) { + // OpSource Language Version File Source + Instruction sourceInst(NoResult, NoType, OpSource); + sourceInst.addImmediateOperand(source); + sourceInst.addImmediateOperand(sourceVersion); + // File operand + if (sourceFileStringId != NoResult) { + sourceInst.addIdOperand(sourceFileStringId); + // Source operand + if (sourceText.size() > 0) { + int nextByte = 0; + std::string subString; + while ((int)sourceText.size() - nextByte > 0) { + subString = sourceText.substr(nextByte, nonNullBytesPerInstruction); + if (nextByte == 0) { + // OpSource + sourceInst.addStringOperand(subString.c_str()); + sourceInst.dump(out); + } else { + // OpSourcContinued + Instruction sourceContinuedInst(OpSourceContinued); + sourceContinuedInst.addStringOperand(subString.c_str()); + sourceContinuedInst.dump(out); + } + nextByte += nonNullBytesPerInstruction; + } + } else + sourceInst.dump(out); + } else + sourceInst.dump(out); + } +} + void Builder::dumpInstructions(std::vector& out, const std::vector >& instructions) const { for (int i = 0; i < (int)instructions.size(); ++i) { @@ -2539,4 +2765,13 @@ void Builder::dumpInstructions(std::vector& out, const std::vector } } +void Builder::dumpModuleProcesses(std::vector& out) const +{ + for (int i = 0; i < (int)moduleProcesses.size(); ++i) { + Instruction moduleProcessed(OpModuleProcessed); + moduleProcessed.addStringOperand(moduleProcesses[i]); + moduleProcessed.dump(out); + } +} + }; // end spv namespace diff --git a/deps/glslang/glslang/SPIRV/SpvBuilder.h b/deps/glslang/glslang/SPIRV/SpvBuilder.h index ad5da5ffde..099b1d957f 100755 --- a/deps/glslang/glslang/SPIRV/SpvBuilder.h +++ b/deps/glslang/glslang/SPIRV/SpvBuilder.h @@ -1,12 +1,13 @@ // -//Copyright (C) 2014-2015 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2014-2015 LunarG, Inc. +// Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // "Builder" is an interface to fully build SPIR-V IR. Allocate one of @@ -55,22 +56,35 @@ #include #include #include +#include namespace spv { class Builder { public: - Builder(unsigned int userNumber, SpvBuildLogger* logger); + Builder(unsigned int spvVersion, unsigned int userNumber, SpvBuildLogger* logger); virtual ~Builder(); static const int maxMatrixSize = 4; + unsigned int getSpvVersion() const { return spvVersion; } + void setSource(spv::SourceLanguage lang, int version) { source = lang; sourceVersion = version; } + void setSourceFile(const std::string& file) + { + Instruction* fileString = new Instruction(getUniqueId(), NoType, OpString); + fileString->addStringOperand(file.c_str()); + sourceFileStringId = fileString->getResultId(); + strings.push_back(std::unique_ptr(fileString)); + } + void setSourceText(const std::string& text) { sourceText = text; } void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); } + void addModuleProcessed(const std::string& p) { moduleProcesses.push_back(p.c_str()); } + void setEmitOpLines() { emitOpLines = true; } void addExtension(const char* ext) { extensions.insert(ext); } Id import(const char*); void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem) @@ -92,6 +106,12 @@ public: return id; } + // Log the current line, and if different than the last one, + // issue a new OpLine, using the current file name. + void setLine(int line); + // Low-level OpLine. See setLine() for a layered helper. + void addLine(Id fileName, int line, int column); + // For creating new types (will return old type if the requested one was already made). Id makeVoidType(); Id makeBoolType(); @@ -133,7 +153,10 @@ public: bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); } - bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } + bool isBoolType(Id typeId) { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } + bool isIntType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) != 0; } + bool isUintType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) == 0; } + bool isFloatType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat; } bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; } bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } @@ -153,6 +176,13 @@ public: unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); } StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); } + int getScalarTypeWidth(Id typeId) const + { + Id scalarTypeId = getScalarTypeId(typeId); + assert(getTypeClass(scalarTypeId) == OpTypeInt || getTypeClass(scalarTypeId) == OpTypeFloat); + return module.getInstruction(scalarTypeId)->getImmediateOperand(0); + } + int getTypeNumColumns(Id typeId) const { assert(isMatrixType(typeId)); @@ -185,27 +215,32 @@ public: // For making new constants (will return old constant if the requested one was already made). Id makeBoolConstant(bool b, bool specConstant = false); + Id makeInt8Constant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(8), (unsigned)i, specConstant); } + Id makeUint8Constant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(8), u, specConstant); } + Id makeInt16Constant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(16), (unsigned)i, specConstant); } + Id makeUint16Constant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(16), u, specConstant); } Id makeIntConstant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(32), (unsigned)i, specConstant); } Id makeUintConstant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(32), u, specConstant); } Id makeInt64Constant(long long i, bool specConstant = false) { return makeInt64Constant(makeIntType(64), (unsigned long long)i, specConstant); } Id makeUint64Constant(unsigned long long u, bool specConstant = false) { return makeInt64Constant(makeUintType(64), u, specConstant); } Id makeFloatConstant(float f, bool specConstant = false); Id makeDoubleConstant(double d, bool specConstant = false); -#ifdef AMD_EXTENSIONS Id makeFloat16Constant(float f16, bool specConstant = false); -#endif + Id makeFpConstant(Id type, double d, bool specConstant = false); // Turn the array of constants into a proper spv constant of the requested type. - Id makeCompositeConstant(Id type, std::vector& comps, bool specConst = false); + Id makeCompositeConstant(Id type, const std::vector& comps, bool specConst = false); // Methods for adding information outside the CFG. Instruction* addEntryPoint(ExecutionModel, Function*, const char* name); void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, int value3 = -1); void addName(Id, const char* name); void addMemberName(Id, int member, const char* name); - void addLine(Id target, Id fileName, int line, int column); void addDecoration(Id, Decoration, int num = -1); + void addDecoration(Id, Decoration, const char*); + void addDecorationId(Id id, Decoration, Id idDecoration); void addMemberDecoration(Id, unsigned int member, Decoration, int num = -1); + void addMemberDecoration(Id, unsigned int member, Decoration, const char*); // At the end of what block do the next create*() instructions go? void setBuildPoint(Block* bp) { buildPoint = bp; } @@ -219,7 +254,7 @@ public: // Return the function, pass back the entry. // The returned pointer is only valid for the lifetime of this builder. Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name, const std::vector& paramTypes, - const std::vector& precisions, Block **entry = 0); + const std::vector>& precisions, Block **entry = 0); // Create a return. An 'implicit' return is one not appearing in the source // code. In the case of an implicit return, no post-return block is inserted. @@ -244,16 +279,16 @@ public: Id createLoad(Id lValue); // Create an OpAccessChain instruction - Id createAccessChain(StorageClass, Id base, std::vector& offsets); + Id createAccessChain(StorageClass, Id base, const std::vector& offsets); // Create an OpArrayLength instruction Id createArrayLength(Id base, unsigned int member); // Create an OpCompositeExtract instruction Id createCompositeExtract(Id composite, Id typeId, unsigned index); - Id createCompositeExtract(Id composite, Id typeId, std::vector& indexes); + Id createCompositeExtract(Id composite, Id typeId, const std::vector& indexes); Id createCompositeInsert(Id object, Id composite, Id typeId, unsigned index); - Id createCompositeInsert(Id object, Id composite, Id typeId, std::vector& indexes); + Id createCompositeInsert(Id object, Id composite, Id typeId, const std::vector& indexes); Id createVectorExtractDynamic(Id vector, Id typeId, Id componentIndex); Id createVectorInsertDynamic(Id vector, Id typeId, Id component, Id componentIndex); @@ -267,18 +302,18 @@ public: Id createBinOp(Op, Id typeId, Id operand1, Id operand2); Id createTriOp(Op, Id typeId, Id operand1, Id operand2, Id operand3); Id createOp(Op, Id typeId, const std::vector& operands); - Id createFunctionCall(spv::Function*, std::vector&); + Id createFunctionCall(spv::Function*, const std::vector&); Id createSpecConstantOp(Op, Id typeId, const std::vector& operands, const std::vector& literals); // Take an rvalue (source) and a set of channels to extract from it to // make a new rvalue, which is returned. - Id createRvalueSwizzle(Decoration precision, Id typeId, Id source, std::vector& channels); + Id createRvalueSwizzle(Decoration precision, Id typeId, Id source, const std::vector& channels); // Take a copy of an lvalue (target) and a source of components, and set the // source components into the lvalue where the 'channels' say to put them. // An updated version of the target is returned. // (No true lvalue or stores are used.) - Id createLvalueSwizzle(Id typeId, Id target, Id source, std::vector& channels); + Id createLvalueSwizzle(Id typeId, Id target, Id source, const std::vector& channels); // If both the id and precision are valid, the id // gets tagged with the requested precision. @@ -311,7 +346,7 @@ public: Id smearScalar(Decoration precision, Id scalarVal, Id vectorType); // Create a call to a built-in function. - Id createBuiltinCall(Id resultType, Id builtins, int entryPoint, std::vector& args); + Id createBuiltinCall(Id resultType, Id builtins, int entryPoint, const std::vector& args); // List of parameters used to create a texture operation struct TextureParameters { @@ -335,7 +370,7 @@ public: // Emit the OpTextureQuery* instruction that was passed in. // Figure out the right return value and type, and return it. - Id createTextureQueryCall(Op, const TextureParameters&); + Id createTextureQueryCall(Op, const TextureParameters&, bool isUnsignedResult); Id createSamplePositionCall(Decoration precision, Id, Id); @@ -346,7 +381,7 @@ public: Id createCompositeCompare(Decoration precision, Id, Id, bool /* true if for equal, false if for not-equal */); // OpCompositeConstruct - Id createCompositeConstruct(Id typeId, std::vector& constituents); + Id createCompositeConstruct(Id typeId, const std::vector& constituents); // vector or scalar constructor Id createConstructor(Decoration precision, const std::vector& sources, Id resultTypeId); @@ -357,7 +392,7 @@ public: // Helper to use for building nested control flow with if-then-else. class If { public: - If(Id condition, Builder& builder); + If(Id condition, unsigned int ctrl, Builder& builder); ~If() {} void makeBeginElse(); @@ -369,6 +404,7 @@ public: Builder& builder; Id condition; + unsigned int control; Function* function; Block* headerBlock; Block* thenBlock; @@ -388,8 +424,8 @@ public: // Returns the right set of basic blocks to start each code segment with, so that the caller's // recursion stack can hold the memory for it. // - void makeSwitch(Id condition, int numSegments, std::vector& caseValues, std::vector& valueToSegment, int defaultSegment, - std::vector& segmentBB); // return argument + void makeSwitch(Id condition, unsigned int control, int numSegments, const std::vector& caseValues, + const std::vector& valueToSegment, int defaultSegment, std::vector& segmentBB); // return argument // Add a branch to the innermost switch's merge block. void addSwitchBreak(); @@ -503,19 +539,22 @@ public: // push new swizzle onto the end of any existing swizzle, merging into a single swizzle void accessChainPushSwizzle(std::vector& swizzle, Id preSwizzleBaseType); - // push a variable component selection onto the access chain; supporting only one, so unsided + // push a dynamic component selection onto the access chain, only applicable with a + // non-trivial swizzle or no swizzle void accessChainPushComponent(Id component, Id preSwizzleBaseType) { - accessChain.component = component; - if (accessChain.preSwizzleBaseType == NoType) - accessChain.preSwizzleBaseType = preSwizzleBaseType; + if (accessChain.swizzle.size() != 1) { + accessChain.component = component; + if (accessChain.preSwizzleBaseType == NoType) + accessChain.preSwizzleBaseType = preSwizzleBaseType; + } } // use accessChain and swizzle to store value void accessChainStore(Id rvalue); // use accessChain and swizzle to load an r-value - Id accessChainLoad(Decoration precision, Id ResultType); + Id accessChainLoad(Decoration precision, Decoration nonUniform, Id ResultType); // get the direct pointer for an l-value Id accessChainGetLValue(); @@ -531,7 +570,7 @@ public: void createBranch(Block* block); void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock); - void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control); + void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control, unsigned int dependencyLength); // Sets to generate opcode for specialization constants. void setToSpecConstCodeGenMode() { generatingOpCodeForSpecConst = true; } @@ -543,20 +582,30 @@ public: protected: Id makeIntConstant(Id typeId, unsigned value, bool specConstant); Id makeInt64Constant(Id typeId, unsigned long long value, bool specConstant); - Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const; - Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const; - Id findCompositeConstant(Op typeClass, std::vector& comps) const; + Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value); + Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2); + Id findCompositeConstant(Op typeClass, const std::vector& comps); + Id findStructConstant(Id typeId, const std::vector& comps); Id collapseAccessChain(); + void remapDynamicSwizzle(); void transferAccessChainSwizzle(bool dynamic); void simplifyAccessChainSwizzle(); void createAndSetNoPredecessorBlock(const char*); void createSelectionMerge(Block* mergeBlock, unsigned int control); + void dumpSourceInstructions(std::vector&) const; void dumpInstructions(std::vector&, const std::vector >&) const; + void dumpModuleProcesses(std::vector&) const; + unsigned int spvVersion; // the version of SPIR-V to emit in the header SourceLanguage source; int sourceVersion; - std::set extensions; + spv::Id sourceFileStringId; + std::string sourceText; + int currentLine; + bool emitOpLines; + std::set extensions; std::vector sourceExtensions; + std::vector moduleProcesses; AddressingModel addressModel; MemoryModel memoryModel; std::set capabilities; @@ -569,19 +618,20 @@ public: AccessChain accessChain; // special blocks of instructions for output + std::vector > strings; std::vector > imports; std::vector > entryPoints; std::vector > executionModes; std::vector > names; - std::vector > lines; std::vector > decorations; std::vector > constantsTypesGlobals; std::vector > externals; std::vector > functions; // not output, internally used for quick & dirty canonical (unique) creation - std::vector groupedConstants[OpConstant]; // all types appear before OpConstant - std::vector groupedTypes[OpConstant]; + std::unordered_map> groupedConstants; // map type opcodes to constant inst. + std::unordered_map> groupedStructConstants; // map struct-id to constant instructions + std::unordered_map> groupedTypes; // map type opcodes to type instructions // stack of switches std::stack switchMerges; @@ -589,7 +639,7 @@ public: // Our loop stack. std::stack loops; - // The stream for outputing warnings and errors. + // The stream for outputting warnings and errors. SpvBuildLogger* logger; }; // end Builder class diff --git a/deps/glslang/glslang/SPIRV/disassemble.cpp b/deps/glslang/glslang/SPIRV/disassemble.cpp old mode 100644 new mode 100755 index b1023b9218..b432e65d0f --- a/deps/glslang/glslang/SPIRV/disassemble.cpp +++ b/deps/glslang/glslang/SPIRV/disassemble.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2014-2015 LunarG, Inc. +// Copyright (C) 2014-2015 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // Disassembler for SPIR-V. @@ -54,6 +54,10 @@ namespace spv { #ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" #endif + +#ifdef NV_EXTENSIONS + #include "GLSL.ext.NV.h" +#endif } } const char* GlslStd450DebugNames[spv::GLSLstd450Count]; @@ -64,6 +68,10 @@ namespace spv { static const char* GLSLextAMDGetDebugNames(const char*, unsigned); #endif +#ifdef NV_EXTENSIONS +static const char* GLSLextNVGetDebugNames(const char*, unsigned); +#endif + static void Kill(std::ostream& out, const char* message) { out << std::endl << "Disassembly failed: " << message << std::endl; @@ -73,9 +81,15 @@ static void Kill(std::ostream& out, const char* message) // used to identify the extended instruction library imported when printing enum ExtInstSet { GLSL450Inst, + #ifdef AMD_EXTENSIONS GLSLextAMDInst, #endif + +#ifdef NV_EXTENSIONS + GLSLextNVInst, +#endif + OpenCLExtInst, }; @@ -339,10 +353,21 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, if (resultId != 0 && idDescriptor[resultId].size() == 0) { switch (opCode) { case OpTypeInt: - idDescriptor[resultId] = "int"; + switch (stream[word]) { + case 8: idDescriptor[resultId] = "int8_t"; break; + case 16: idDescriptor[resultId] = "int16_t"; break; + default: assert(0); // fallthrough + case 32: idDescriptor[resultId] = "int"; break; + case 64: idDescriptor[resultId] = "int64_t"; break; + } break; case OpTypeFloat: - idDescriptor[resultId] = "float"; + switch (stream[word]) { + case 16: idDescriptor[resultId] = "float16_t"; break; + default: assert(0); // fallthrough + case 32: idDescriptor[resultId] = "float"; break; + case 64: idDescriptor[resultId] = "float64_t"; break; + } break; case OpTypeBool: idDescriptor[resultId] = "bool"; @@ -354,8 +379,18 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, idDescriptor[resultId] = "ptr"; break; case OpTypeVector: - if (idDescriptor[stream[word]].size() > 0) + if (idDescriptor[stream[word]].size() > 0) { idDescriptor[resultId].append(idDescriptor[stream[word]].begin(), idDescriptor[stream[word]].begin() + 1); + if (strstr(idDescriptor[stream[word]].c_str(), "8")) { + idDescriptor[resultId].append("8"); + } + if (strstr(idDescriptor[stream[word]].c_str(), "16")) { + idDescriptor[resultId].append("16"); + } + if (strstr(idDescriptor[stream[word]].c_str(), "64")) { + idDescriptor[resultId].append("64"); + } + } idDescriptor[resultId].append("vec"); switch (stream[word + 1]) { case 2: idDescriptor[resultId].append("2"); break; @@ -469,6 +504,13 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, strcmp(spv::E_SPV_AMD_shader_explicit_vertex_parameter, name) == 0 || strcmp(spv::E_SPV_AMD_gcn_shader, name) == 0) { extInstSet = GLSLextAMDInst; +#endif +#ifdef NV_EXTENSIONS + }else if (strcmp(spv::E_SPV_NV_sample_mask_override_coverage, name) == 0 || + strcmp(spv::E_SPV_NV_geometry_shader_passthrough, name) == 0 || + strcmp(spv::E_SPV_NV_viewport_array2, name) == 0 || + strcmp(spv::E_SPV_NVX_multiview_per_view_attributes, name) == 0) { + extInstSet = GLSLextNVInst; #endif } unsigned entrypoint = stream[word - 1]; @@ -479,6 +521,11 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, #ifdef AMD_EXTENSIONS } else if (extInstSet == GLSLextAMDInst) { out << "(" << GLSLextAMDGetDebugNames(name, entrypoint) << ")"; +#endif +#ifdef NV_EXTENSIONS + } + else if (extInstSet == GLSLextNVInst) { + out << "(" << GLSLextNVGetDebugNames(name, entrypoint) << ")"; #endif } } @@ -631,6 +678,35 @@ static const char* GLSLextAMDGetDebugNames(const char* name, unsigned entrypoint } #endif +#ifdef NV_EXTENSIONS +static const char* GLSLextNVGetDebugNames(const char* name, unsigned entrypoint) +{ + if (strcmp(name, spv::E_SPV_NV_sample_mask_override_coverage) == 0 || + strcmp(name, spv::E_SPV_NV_geometry_shader_passthrough) == 0 || + strcmp(name, spv::E_ARB_shader_viewport_layer_array) == 0 || + strcmp(name, spv::E_SPV_NV_viewport_array2) == 0 || + strcmp(spv::E_SPV_NVX_multiview_per_view_attributes, name) == 0) { + switch (entrypoint) { + case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; + case DecorationPassthroughNV: return "PassthroughNV"; + case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; + case DecorationViewportRelativeNV: return "ViewportRelativeNV"; + case BuiltInViewportMaskNV: return "ViewportMaskNV"; + case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; + case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; + case BuiltInSecondaryPositionNV: return "SecondaryPositionNV"; + case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; + case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; + case BuiltInPositionPerViewNV: return "PositionPerViewNV"; + case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; + case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; + default: return "Bad"; + } + } + return "Bad"; +} +#endif + void Disassemble(std::ostream& out, const std::vector& stream) { SpirvStream SpirvStream(out, stream); diff --git a/deps/glslang/glslang/SPIRV/disassemble.h b/deps/glslang/glslang/SPIRV/disassemble.h index f5d0bc23be..47cef65a57 100755 --- a/deps/glslang/glslang/SPIRV/disassemble.h +++ b/deps/glslang/glslang/SPIRV/disassemble.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2014-2015 LunarG, Inc. +// Copyright (C) 2014-2015 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // Disassembler for SPIR-V. diff --git a/deps/glslang/glslang/SPIRV/doc.cpp b/deps/glslang/glslang/SPIRV/doc.cpp index 0e68c7ef0b..a905968735 100755 --- a/deps/glslang/glslang/SPIRV/doc.cpp +++ b/deps/glslang/glslang/SPIRV/doc.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2014-2015 LunarG, Inc. +// Copyright (C) 2014-2015 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // 1) Programmatically fill in instruction/operand information. @@ -48,8 +48,13 @@ namespace spv { extern "C" { // Include C-based headers that don't have a namespace + #include "GLSL.ext.KHR.h" + #include "GLSL.ext.EXT.h" #ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" +#endif +#ifdef NV_EXTENSIONS + #include "GLSL.ext.NV.h" #endif } } @@ -61,16 +66,14 @@ namespace spv { // the specification (or their sanitized versions for auto-generating the // spirv headers. // -// Also, the ceilings are declared next to these, to help keep them in sync. +// Also, for masks the ceilings are declared next to these, to help keep them in sync. // Ceilings should be // - one more than the maximum value an enumerant takes on, for non-mask enumerants -// (for non-sparse enums, this is the number of enumurants) +// (for non-sparse enums, this is the number of enumerants) // - the number of bits consumed by the set of masks -// (for non-sparse mask enums, this is the number of enumurants) +// (for non-sparse mask enums, this is the number of enumerants) // -const int SourceLanguageCeiling = 6; // HLSL todo: need official enumerant - const char* SourceString(int source) { switch (source) { @@ -81,13 +84,10 @@ const char* SourceString(int source) case 4: return "OpenCL_CPP"; case 5: return "HLSL"; - case SourceLanguageCeiling: default: return "Bad"; } } -const int ExecutionModelCeiling = 7; - const char* ExecutionModelString(int model) { switch (model) { @@ -99,13 +99,10 @@ const char* ExecutionModelString(int model) case 5: return "GLCompute"; case 6: return "Kernel"; - case ExecutionModelCeiling: default: return "Bad"; } } -const int AddressingModelCeiling = 3; - const char* AddressingString(int addr) { switch (addr) { @@ -113,13 +110,10 @@ const char* AddressingString(int addr) case 1: return "Physical32"; case 2: return "Physical64"; - case AddressingModelCeiling: default: return "Bad"; } } -const int MemoryModelCeiling = 3; - const char* MemoryString(int mem) { switch (mem) { @@ -127,7 +121,6 @@ const char* MemoryString(int mem) case 1: return "GLSL450"; case 2: return "OpenCL"; - case MemoryModelCeiling: default: return "Bad"; } } @@ -171,13 +164,12 @@ const char* ExecutionModeString(int mode) case 31: return "ContractionOff"; case 32: return "Bad"; + case 4446: return "PostDepthCoverage"; case ExecutionModeCeiling: default: return "Bad"; } } -const int StorageClassCeiling = 12; - const char* StorageClassString(int StorageClass) { switch (StorageClass) { @@ -193,8 +185,8 @@ const char* StorageClassString(int StorageClass) case 9: return "PushConstant"; case 10: return "AtomicCounter"; case 11: return "Image"; + case 12: return "StorageBuffer"; - case StorageClassCeiling: default: return "Bad"; } } @@ -254,13 +246,21 @@ const char* DecorationString(int decoration) default: return "Bad"; #ifdef AMD_EXTENSIONS - case 4999: return "ExplicitInterpAMD"; + case DecorationExplicitInterpAMD: return "ExplicitInterpAMD"; #endif +#ifdef NV_EXTENSIONS + case DecorationOverrideCoverageNV: return "OverrideCoverageNV"; + case DecorationPassthroughNV: return "PassthroughNV"; + case DecorationViewportRelativeNV: return "ViewportRelativeNV"; + case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV"; +#endif + + case DecorationNonUniformEXT: return "DecorationNonUniformEXT"; + case DecorationHlslCounterBufferGOOGLE: return "DecorationHlslCounterBufferGOOGLE"; + case DecorationHlslSemanticGOOGLE: return "DecorationHlslSemanticGOOGLE"; } } -const int BuiltInCeiling = 44; - const char* BuiltInString(int builtIn) { switch (builtIn) { @@ -309,18 +309,17 @@ const char* BuiltInString(int builtIn) case 42: return "VertexIndex"; // TBD: put next to VertexId? case 43: return "InstanceIndex"; // TBD: put next to InstanceId? - case BuiltInCeiling: - default: return "Bad"; - case 4416: return "SubgroupEqMaskKHR"; case 4417: return "SubgroupGeMaskKHR"; case 4418: return "SubgroupGtMaskKHR"; case 4419: return "SubgroupLeMaskKHR"; case 4420: return "SubgroupLtMaskKHR"; - + case 4438: return "DeviceIndex"; + case 4440: return "ViewIndex"; case 4424: return "BaseVertex"; case 4425: return "BaseInstance"; case 4426: return "DrawIndex"; + case 5014: return "FragStencilRefEXT"; #ifdef AMD_EXTENSIONS case 4992: return "BaryCoordNoPerspAMD"; @@ -331,11 +330,21 @@ const char* BuiltInString(int builtIn) case 4997: return "BaryCoordSmoothSampleAMD"; case 4998: return "BaryCoordPullModelAMD"; #endif + +#ifdef NV_EXTENSIONS + case 5253: return "ViewportMaskNV"; + case 5257: return "SecondaryPositionNV"; + case 5258: return "SecondaryViewportMaskNV"; + case 5261: return "PositionPerViewNV"; + case 5262: return "ViewportMaskPerViewNV"; +#endif + + case 5264: return "FullyCoveredEXT"; + + default: return "Bad"; } } -const int DimensionCeiling = 7; - const char* DimensionString(int dim) { switch (dim) { @@ -347,13 +356,10 @@ const char* DimensionString(int dim) case 5: return "Buffer"; case 6: return "SubpassData"; - case DimensionCeiling: default: return "Bad"; } } -const int SamplerAddressingModeCeiling = 5; - const char* SamplerAddressingModeString(int mode) { switch (mode) { @@ -363,26 +369,20 @@ const char* SamplerAddressingModeString(int mode) case 3: return "Repeat"; case 4: return "RepeatMirrored"; - case SamplerAddressingModeCeiling: default: return "Bad"; } } -const int SamplerFilterModeCeiling = 2; - const char* SamplerFilterModeString(int mode) { switch (mode) { case 0: return "Nearest"; case 1: return "Linear"; - case SamplerFilterModeCeiling: default: return "Bad"; } } -const int ImageFormatCeiling = 40; - const char* ImageFormatString(int format) { switch (format) { @@ -439,14 +439,11 @@ const char* ImageFormatString(int format) case 38: return "R16ui"; case 39: return "R8ui"; - case ImageFormatCeiling: default: return "Bad"; } } -const int ImageChannelOrderCeiling = 19; - const char* ImageChannelOrderString(int format) { switch (format) { @@ -470,14 +467,11 @@ const char* ImageChannelOrderString(int format) case 17: return "sRGBA"; case 18: return "sBGRA"; - case ImageChannelOrderCeiling: default: return "Bad"; } } -const int ImageChannelDataTypeCeiling = 17; - const char* ImageChannelDataTypeString(int type) { switch (type) @@ -500,7 +494,6 @@ const char* ImageChannelDataTypeString(int type) case 15: return "UnormInt24"; case 16: return "UnormInt101010_2"; - case ImageChannelDataTypeCeiling: default: return "Bad"; } @@ -526,8 +519,6 @@ const char* ImageOperandsString(int format) } } -const int FPFastMathCeiling = 5; - const char* FPFastMathString(int mode) { switch (mode) { @@ -537,13 +528,10 @@ const char* FPFastMathString(int mode) case 3: return "AllowRecip"; case 4: return "Fast"; - case FPFastMathCeiling: default: return "Bad"; } } -const int FPRoundingModeCeiling = 4; - const char* FPRoundingModeString(int mode) { switch (mode) { @@ -552,26 +540,20 @@ const char* FPRoundingModeString(int mode) case 2: return "RTP"; case 3: return "RTN"; - case FPRoundingModeCeiling: default: return "Bad"; } } -const int LinkageTypeCeiling = 2; - const char* LinkageTypeString(int type) { switch (type) { case 0: return "Export"; case 1: return "Import"; - case LinkageTypeCeiling: default: return "Bad"; } } -const int FuncParamAttrCeiling = 8; - const char* FuncParamAttrString(int attr) { switch (attr) { @@ -584,13 +566,10 @@ const char* FuncParamAttrString(int attr) case 6: return "NoWrite"; case 7: return "NoReadWrite"; - case FuncParamAttrCeiling: default: return "Bad"; } } -const int AccessQualifierCeiling = 3; - const char* AccessQualifierString(int attr) { switch (attr) { @@ -598,7 +577,6 @@ const char* AccessQualifierString(int attr) case 1: return "WriteOnly"; case 2: return "ReadWrite"; - case AccessQualifierCeiling: default: return "Bad"; } } @@ -616,13 +594,15 @@ const char* SelectControlString(int cont) } } -const int LoopControlCeiling = 2; +const int LoopControlCeiling = 4; const char* LoopControlString(int cont) { switch (cont) { case 0: return "Unroll"; case 1: return "DontUnroll"; + case 2: return "DependencyInfinite"; + case 3: return "DependencyLength"; case LoopControlCeiling: default: return "Bad"; @@ -644,8 +624,6 @@ const char* FunctionControlString(int cont) } } -const int MemorySemanticsCeiling = 12; - const char* MemorySemanticsString(int mem) { // Note: No bits set (None) means "Relaxed" @@ -663,13 +641,10 @@ const char* MemorySemanticsString(int mem) case 10: return "AtomicCounterMemory"; case 11: return "ImageMemory"; - case MemorySemanticsCeiling: default: return "Bad"; } } -const int MemoryAccessCeiling = 3; - const char* MemoryAccessString(int mem) { switch (mem) { @@ -677,13 +652,10 @@ const char* MemoryAccessString(int mem) case 1: return "Aligned"; case 2: return "Nontemporal"; - case MemoryAccessCeiling: default: return "Bad"; } } -const int ScopeCeiling = 5; - const char* ScopeString(int mem) { switch (mem) { @@ -693,29 +665,29 @@ const char* ScopeString(int mem) case 3: return "Subgroup"; case 4: return "Invocation"; - case ScopeCeiling: default: return "Bad"; } } -const int GroupOperationCeiling = 3; - const char* GroupOperationString(int gop) { switch (gop) { - case 0: return "Reduce"; - case 1: return "InclusiveScan"; - case 2: return "ExclusiveScan"; + case GroupOperationReduce: return "Reduce"; + case GroupOperationInclusiveScan: return "InclusiveScan"; + case GroupOperationExclusiveScan: return "ExclusiveScan"; + case GroupOperationClusteredReduce: return "ClusteredReduce"; +#ifdef NV_EXTENSIONS + case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV"; + case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV"; + case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV"; +#endif - case GroupOperationCeiling: default: return "Bad"; } } -const int KernelEnqueueFlagsCeiling = 3; - const char* KernelEnqueueFlagsString(int flag) { switch (flag) @@ -724,26 +696,20 @@ const char* KernelEnqueueFlagsString(int flag) case 1: return "WaitKernel"; case 2: return "WaitWorkGroup"; - case KernelEnqueueFlagsCeiling: default: return "Bad"; } } -const int KernelProfilingInfoCeiling = 1; - const char* KernelProfilingInfoString(int info) { switch (info) { case 0: return "CmdExecTime"; - case KernelProfilingInfoCeiling: default: return "Bad"; } } -const int CapabilityCeiling = 58; - const char* CapabilityString(int info) { switch (info) @@ -806,12 +772,64 @@ const char* CapabilityString(int info) case 55: return "StorageImageReadWithoutFormat"; case 56: return "StorageImageWriteWithoutFormat"; case 57: return "MultiViewport"; + case 61: return "GroupNonUniform"; + case 62: return "GroupNonUniformVote"; + case 63: return "GroupNonUniformArithmetic"; + case 64: return "GroupNonUniformBallot"; + case 65: return "GroupNonUniformShuffle"; + case 66: return "GroupNonUniformShuffleRelative"; + case 67: return "GroupNonUniformClustered"; + case 68: return "GroupNonUniformQuad"; + + case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR"; + case CapabilityDrawParameters: return "DrawParameters"; + case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR"; + + case CapabilityStorageUniformBufferBlock16: return "StorageUniformBufferBlock16"; + case CapabilityStorageUniform16: return "StorageUniform16"; + case CapabilityStoragePushConstant16: return "StoragePushConstant16"; + case CapabilityStorageInputOutput16: return "StorageInputOutput16"; + + case CapabilityDeviceGroup: return "DeviceGroup"; + case CapabilityMultiView: return "MultiView"; + + case CapabilityStencilExportEXT: return "StencilExportEXT"; + +#ifdef AMD_EXTENSIONS + case CapabilityFloat16ImageAMD: return "Float16ImageAMD"; + case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; + case CapabilityFragmentMaskAMD: return "FragmentMaskAMD"; + case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD"; +#endif + + case CapabilityAtomicStorageOps: return "AtomicStorageOps"; + + case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage"; +#ifdef NV_EXTENSIONS + case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; + case CapabilityShaderViewportIndexLayerNV: return "ShaderViewportIndexLayerNV"; + case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV"; + case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV"; + case CapabilityPerViewAttributesNV: return "PerViewAttributesNV"; + case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV"; +#endif + + case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT"; + + case CapabilityShaderNonUniformEXT: return "CapabilityShaderNonUniformEXT"; + case CapabilityRuntimeDescriptorArrayEXT: return "CapabilityRuntimeDescriptorArrayEXT"; + case CapabilityInputAttachmentArrayDynamicIndexingEXT: return "CapabilityInputAttachmentArrayDynamicIndexingEXT"; + case CapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "CapabilityUniformTexelBufferArrayDynamicIndexingEXT"; + case CapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "CapabilityStorageTexelBufferArrayDynamicIndexingEXT"; + case CapabilityUniformBufferArrayNonUniformIndexingEXT: return "CapabilityUniformBufferArrayNonUniformIndexingEXT"; + case CapabilitySampledImageArrayNonUniformIndexingEXT: return "CapabilitySampledImageArrayNonUniformIndexingEXT"; + case CapabilityStorageBufferArrayNonUniformIndexingEXT: return "CapabilityStorageBufferArrayNonUniformIndexingEXT"; + case CapabilityStorageImageArrayNonUniformIndexingEXT: return "CapabilityStorageImageArrayNonUniformIndexingEXT"; + case CapabilityInputAttachmentArrayNonUniformIndexingEXT: return "CapabilityInputAttachmentArrayNonUniformIndexingEXT"; + case CapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "CapabilityUniformTexelBufferArrayNonUniformIndexingEXT"; + case CapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "CapabilityStorageTexelBufferArrayNonUniformIndexingEXT"; - case CapabilityCeiling: default: return "Bad"; - - case 4423: return "SubgroupBallotKHR"; - case 4427: return "DrawParameters"; } } @@ -1140,12 +1158,50 @@ const char* OpcodeString(int op) case 319: return "OpAtomicFlagClear"; case 320: return "OpImageSparseRead"; - case OpcodeCeiling: - default: - return "Bad"; + case OpModuleProcessed: return "OpModuleProcessed"; + case OpDecorateId: return "OpDecorateId"; + + case 333: return "OpGroupNonUniformElect"; + case 334: return "OpGroupNonUniformAll"; + case 335: return "OpGroupNonUniformAny"; + case 336: return "OpGroupNonUniformAllEqual"; + case 337: return "OpGroupNonUniformBroadcast"; + case 338: return "OpGroupNonUniformBroadcastFirst"; + case 339: return "OpGroupNonUniformBallot"; + case 340: return "OpGroupNonUniformInverseBallot"; + case 341: return "OpGroupNonUniformBallotBitExtract"; + case 342: return "OpGroupNonUniformBallotBitCount"; + case 343: return "OpGroupNonUniformBallotFindLSB"; + case 344: return "OpGroupNonUniformBallotFindMSB"; + case 345: return "OpGroupNonUniformShuffle"; + case 346: return "OpGroupNonUniformShuffleXor"; + case 347: return "OpGroupNonUniformShuffleUp"; + case 348: return "OpGroupNonUniformShuffleDown"; + case 349: return "OpGroupNonUniformIAdd"; + case 350: return "OpGroupNonUniformFAdd"; + case 351: return "OpGroupNonUniformIMul"; + case 352: return "OpGroupNonUniformFMul"; + case 353: return "OpGroupNonUniformSMin"; + case 354: return "OpGroupNonUniformUMin"; + case 355: return "OpGroupNonUniformFMin"; + case 356: return "OpGroupNonUniformSMax"; + case 357: return "OpGroupNonUniformUMax"; + case 358: return "OpGroupNonUniformFMax"; + case 359: return "OpGroupNonUniformBitwiseAnd"; + case 360: return "OpGroupNonUniformBitwiseOr"; + case 361: return "OpGroupNonUniformBitwiseXor"; + case 362: return "OpGroupNonUniformLogicalAnd"; + case 363: return "OpGroupNonUniformLogicalOr"; + case 364: return "OpGroupNonUniformLogicalXor"; + case 365: return "OpGroupNonUniformQuadBroadcast"; + case 366: return "OpGroupNonUniformQuadSwap"; case 4421: return "OpSubgroupBallotKHR"; case 4422: return "OpSubgroupFirstInvocationKHR"; + case 4428: return "OpSubgroupAllKHR"; + case 4429: return "OpSubgroupAnyKHR"; + case 4430: return "OpSubgroupAllEqualKHR"; + case 4432: return "OpSubgroupReadInvocationKHR"; #ifdef AMD_EXTENSIONS case 5000: return "OpGroupIAddNonUniformAMD"; @@ -1156,7 +1212,19 @@ const char* OpcodeString(int op) case 5005: return "OpGroupFMaxNonUniformAMD"; case 5006: return "OpGroupUMaxNonUniformAMD"; case 5007: return "OpGroupSMaxNonUniformAMD"; + + case 5011: return "OpFragmentMaskFetchAMD"; + case 5012: return "OpFragmentFetchAMD"; #endif + + case OpDecorateStringGOOGLE: return "OpDecorateStringGOOGLE"; + case OpMemberDecorateStringGOOGLE: return "OpMemberDecorateStringGOOGLE"; + +#ifdef NV_EXTENSIONS + case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; +#endif + default: + return "Bad"; } } @@ -1167,35 +1235,12 @@ OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; OperandParameters DecorationOperands[DecorationCeiling]; EnumDefinition OperandClassParams[OperandCount]; -EnumParameters ExecutionModelParams[ExecutionModelCeiling]; -EnumParameters AddressingParams[AddressingModelCeiling]; -EnumParameters MemoryParams[MemoryModelCeiling]; EnumParameters ExecutionModeParams[ExecutionModeCeiling]; -EnumParameters StorageParams[StorageClassCeiling]; -EnumParameters SamplerAddressingModeParams[SamplerAddressingModeCeiling]; -EnumParameters SamplerFilterModeParams[SamplerFilterModeCeiling]; -EnumParameters ImageFormatParams[ImageFormatCeiling]; -EnumParameters ImageChannelOrderParams[ImageChannelOrderCeiling]; -EnumParameters ImageChannelDataTypeParams[ImageChannelDataTypeCeiling]; EnumParameters ImageOperandsParams[ImageOperandsCeiling]; -EnumParameters FPFastMathParams[FPFastMathCeiling]; -EnumParameters FPRoundingModeParams[FPRoundingModeCeiling]; -EnumParameters LinkageTypeParams[LinkageTypeCeiling]; EnumParameters DecorationParams[DecorationCeiling]; -EnumParameters BuiltInParams[BuiltInCeiling]; -EnumParameters DimensionalityParams[DimensionCeiling]; -EnumParameters FuncParamAttrParams[FuncParamAttrCeiling]; -EnumParameters AccessQualifierParams[AccessQualifierCeiling]; -EnumParameters GroupOperationParams[GroupOperationCeiling]; EnumParameters LoopControlParams[FunctionControlCeiling]; EnumParameters SelectionControlParams[SelectControlCeiling]; EnumParameters FunctionControlParams[FunctionControlCeiling]; -EnumParameters MemorySemanticsParams[MemorySemanticsCeiling]; -EnumParameters MemoryAccessParams[MemoryAccessCeiling]; -EnumParameters ScopeParams[ScopeCeiling]; -EnumParameters KernelEnqueueFlagsParams[KernelEnqueueFlagsCeiling]; -EnumParameters KernelProfilingInfoParams[KernelProfilingInfoCeiling]; -EnumParameters CapabilityParams[CapabilityCeiling]; // Set up all the parameterizing descriptions of the opcodes, operands, etc. void Parameterize() @@ -1245,7 +1290,10 @@ void Parameterize() InstructionDesc[OpImageWrite].setResultAndType(false, false); InstructionDesc[OpDecorationGroup].setResultAndType(true, false); InstructionDesc[OpDecorate].setResultAndType(false, false); + InstructionDesc[OpDecorateId].setResultAndType(false, false); + InstructionDesc[OpDecorateStringGOOGLE].setResultAndType(false, false); InstructionDesc[OpMemberDecorate].setResultAndType(false, false); + InstructionDesc[OpMemberDecorateStringGOOGLE].setResultAndType(false, false); InstructionDesc[OpGroupDecorate].setResultAndType(false, false); InstructionDesc[OpGroupMemberDecorate].setResultAndType(false, false); InstructionDesc[OpName].setResultAndType(false, false); @@ -1284,6 +1332,7 @@ void Parameterize() InstructionDesc[OpReleaseEvent].setResultAndType(false, false); InstructionDesc[OpGroupWaitEvents].setResultAndType(false, false); InstructionDesc[OpAtomicFlagClear].setResultAndType(false, false); + InstructionDesc[OpModuleProcessed].setResultAndType(false, false); // Specific additional context-dependent operands @@ -1321,354 +1370,39 @@ void Parameterize() DecorationOperands[DecorationInputAttachmentIndex].push(OperandLiteralNumber, "'Attachment Index'"); DecorationOperands[DecorationAlignment].push(OperandLiteralNumber, "'Alignment'"); - OperandClassParams[OperandSource].set(SourceLanguageCeiling, SourceString, 0); - OperandClassParams[OperandExecutionModel].set(ExecutionModelCeiling, ExecutionModelString, ExecutionModelParams); - OperandClassParams[OperandAddressing].set(AddressingModelCeiling, AddressingString, AddressingParams); - OperandClassParams[OperandMemory].set(MemoryModelCeiling, MemoryString, MemoryParams); + OperandClassParams[OperandSource].set(0, SourceString, 0); + OperandClassParams[OperandExecutionModel].set(0, ExecutionModelString, nullptr); + OperandClassParams[OperandAddressing].set(0, AddressingString, nullptr); + OperandClassParams[OperandMemory].set(0, MemoryString, nullptr); OperandClassParams[OperandExecutionMode].set(ExecutionModeCeiling, ExecutionModeString, ExecutionModeParams); OperandClassParams[OperandExecutionMode].setOperands(ExecutionModeOperands); - OperandClassParams[OperandStorage].set(StorageClassCeiling, StorageClassString, StorageParams); - OperandClassParams[OperandDimensionality].set(DimensionCeiling, DimensionString, DimensionalityParams); - OperandClassParams[OperandSamplerAddressingMode].set(SamplerAddressingModeCeiling, SamplerAddressingModeString, SamplerAddressingModeParams); - OperandClassParams[OperandSamplerFilterMode].set(SamplerFilterModeCeiling, SamplerFilterModeString, SamplerFilterModeParams); - OperandClassParams[OperandSamplerImageFormat].set(ImageFormatCeiling, ImageFormatString, ImageFormatParams); - OperandClassParams[OperandImageChannelOrder].set(ImageChannelOrderCeiling, ImageChannelOrderString, ImageChannelOrderParams); - OperandClassParams[OperandImageChannelDataType].set(ImageChannelDataTypeCeiling, ImageChannelDataTypeString, ImageChannelDataTypeParams); + OperandClassParams[OperandStorage].set(0, StorageClassString, nullptr); + OperandClassParams[OperandDimensionality].set(0, DimensionString, nullptr); + OperandClassParams[OperandSamplerAddressingMode].set(0, SamplerAddressingModeString, nullptr); + OperandClassParams[OperandSamplerFilterMode].set(0, SamplerFilterModeString, nullptr); + OperandClassParams[OperandSamplerImageFormat].set(0, ImageFormatString, nullptr); + OperandClassParams[OperandImageChannelOrder].set(0, ImageChannelOrderString, nullptr); + OperandClassParams[OperandImageChannelDataType].set(0, ImageChannelDataTypeString, nullptr); OperandClassParams[OperandImageOperands].set(ImageOperandsCeiling, ImageOperandsString, ImageOperandsParams, true); - OperandClassParams[OperandFPFastMath].set(FPFastMathCeiling, FPFastMathString, FPFastMathParams, true); - OperandClassParams[OperandFPRoundingMode].set(FPRoundingModeCeiling, FPRoundingModeString, FPRoundingModeParams); - OperandClassParams[OperandLinkageType].set(LinkageTypeCeiling, LinkageTypeString, LinkageTypeParams); - OperandClassParams[OperandFuncParamAttr].set(FuncParamAttrCeiling, FuncParamAttrString, FuncParamAttrParams); - OperandClassParams[OperandAccessQualifier].set(AccessQualifierCeiling, AccessQualifierString, AccessQualifierParams); + OperandClassParams[OperandFPFastMath].set(0, FPFastMathString, nullptr, true); + OperandClassParams[OperandFPRoundingMode].set(0, FPRoundingModeString, nullptr); + OperandClassParams[OperandLinkageType].set(0, LinkageTypeString, nullptr); + OperandClassParams[OperandFuncParamAttr].set(0, FuncParamAttrString, nullptr); + OperandClassParams[OperandAccessQualifier].set(0, AccessQualifierString, nullptr); OperandClassParams[OperandDecoration].set(DecorationCeiling, DecorationString, DecorationParams); OperandClassParams[OperandDecoration].setOperands(DecorationOperands); - OperandClassParams[OperandBuiltIn].set(BuiltInCeiling, BuiltInString, BuiltInParams); + OperandClassParams[OperandBuiltIn].set(0, BuiltInString, nullptr); OperandClassParams[OperandSelect].set(SelectControlCeiling, SelectControlString, SelectionControlParams, true); OperandClassParams[OperandLoop].set(LoopControlCeiling, LoopControlString, LoopControlParams, true); OperandClassParams[OperandFunction].set(FunctionControlCeiling, FunctionControlString, FunctionControlParams, true); - OperandClassParams[OperandMemorySemantics].set(MemorySemanticsCeiling, MemorySemanticsString, MemorySemanticsParams, true); - OperandClassParams[OperandMemoryAccess].set(MemoryAccessCeiling, MemoryAccessString, MemoryAccessParams, true); - OperandClassParams[OperandScope].set(ScopeCeiling, ScopeString, ScopeParams); - OperandClassParams[OperandGroupOperation].set(GroupOperationCeiling, GroupOperationString, GroupOperationParams); - OperandClassParams[OperandKernelEnqueueFlags].set(KernelEnqueueFlagsCeiling, KernelEnqueueFlagsString, KernelEnqueueFlagsParams); - OperandClassParams[OperandKernelProfilingInfo].set(KernelProfilingInfoCeiling, KernelProfilingInfoString, KernelProfilingInfoParams, true); - OperandClassParams[OperandCapability].set(CapabilityCeiling, CapabilityString, CapabilityParams); - OperandClassParams[OperandOpcode].set(OpcodeCeiling, OpcodeString, 0); - - CapabilityParams[CapabilityShader].caps.push_back(CapabilityMatrix); - CapabilityParams[CapabilityGeometry].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityTessellation].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityVector16].caps.push_back(CapabilityKernel); - CapabilityParams[CapabilityFloat16Buffer].caps.push_back(CapabilityKernel); - CapabilityParams[CapabilityInt64Atomics].caps.push_back(CapabilityInt64); - CapabilityParams[CapabilityImageBasic].caps.push_back(CapabilityKernel); - CapabilityParams[CapabilityImageReadWrite].caps.push_back(CapabilityImageBasic); - CapabilityParams[CapabilityImageMipmap].caps.push_back(CapabilityImageBasic); - CapabilityParams[CapabilityPipes].caps.push_back(CapabilityKernel); - CapabilityParams[CapabilityDeviceEnqueue].caps.push_back(CapabilityKernel); - CapabilityParams[CapabilityLiteralSampler].caps.push_back(CapabilityKernel); - CapabilityParams[CapabilityAtomicStorage].caps.push_back(CapabilityShader); - CapabilityParams[CapabilitySampleRateShading].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityTessellationPointSize].caps.push_back(CapabilityTessellation); - CapabilityParams[CapabilityGeometryPointSize].caps.push_back(CapabilityGeometry); - CapabilityParams[CapabilityImageGatherExtended].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityStorageImageExtendedFormats].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityStorageImageMultisample].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityUniformBufferArrayDynamicIndexing].caps.push_back(CapabilityShader); - CapabilityParams[CapabilitySampledImageArrayDynamicIndexing].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityStorageBufferArrayDynamicIndexing].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityStorageImageArrayDynamicIndexing].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityClipDistance].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityCullDistance].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityGenericPointer].caps.push_back(CapabilityAddresses); - CapabilityParams[CapabilityInt8].caps.push_back(CapabilityKernel); - CapabilityParams[CapabilityInputAttachment].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityMinLod].caps.push_back(CapabilityShader); - CapabilityParams[CapabilitySparseResidency].caps.push_back(CapabilityShader); - CapabilityParams[CapabilitySampled1D].caps.push_back(CapabilityShader); - CapabilityParams[CapabilitySampledRect].caps.push_back(CapabilityShader); - CapabilityParams[CapabilitySampledBuffer].caps.push_back(CapabilityShader); - CapabilityParams[CapabilitySampledCubeArray].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityImageMSArray].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityImage1D].caps.push_back(CapabilitySampled1D); - CapabilityParams[CapabilityImageRect].caps.push_back(CapabilitySampledRect); - CapabilityParams[CapabilityImageBuffer].caps.push_back(CapabilitySampledBuffer); - CapabilityParams[CapabilityImageCubeArray].caps.push_back(CapabilitySampledCubeArray); - CapabilityParams[CapabilityImageQuery].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityDerivativeControl].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityInterpolationFunction].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityTransformFeedback].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityGeometryStreams].caps.push_back(CapabilityGeometry); - CapabilityParams[CapabilityStorageImageReadWithoutFormat].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityStorageImageWriteWithoutFormat].caps.push_back(CapabilityShader); - CapabilityParams[CapabilityMultiViewport].caps.push_back(CapabilityGeometry); - - AddressingParams[AddressingModelPhysical32].caps.push_back(CapabilityAddresses); - AddressingParams[AddressingModelPhysical64].caps.push_back(CapabilityAddresses); - - MemoryParams[MemoryModelSimple].caps.push_back(CapabilityShader); - MemoryParams[MemoryModelGLSL450].caps.push_back(CapabilityShader); - MemoryParams[MemoryModelOpenCL].caps.push_back(CapabilityKernel); - - MemorySemanticsParams[MemorySemanticsUniformMemoryShift].caps.push_back(CapabilityShader); - MemorySemanticsParams[MemorySemanticsAtomicCounterMemoryShift].caps.push_back(CapabilityAtomicStorage); - - ExecutionModelParams[ExecutionModelVertex].caps.push_back(CapabilityShader); - ExecutionModelParams[ExecutionModelTessellationControl].caps.push_back(CapabilityTessellation); - ExecutionModelParams[ExecutionModelTessellationEvaluation].caps.push_back(CapabilityTessellation); - ExecutionModelParams[ExecutionModelGeometry].caps.push_back(CapabilityGeometry); - ExecutionModelParams[ExecutionModelFragment].caps.push_back(CapabilityShader); - ExecutionModelParams[ExecutionModelGLCompute].caps.push_back(CapabilityShader); - ExecutionModelParams[ExecutionModelKernel].caps.push_back(CapabilityKernel); - - // Storage capabilites - StorageParams[StorageClassInput].caps.push_back(CapabilityShader); - StorageParams[StorageClassUniform].caps.push_back(CapabilityShader); - StorageParams[StorageClassOutput].caps.push_back(CapabilityShader); - StorageParams[StorageClassPrivate].caps.push_back(CapabilityShader); - StorageParams[StorageClassGeneric].caps.push_back(CapabilityKernel); - StorageParams[StorageClassAtomicCounter].caps.push_back(CapabilityAtomicStorage); - StorageParams[StorageClassPushConstant].caps.push_back(CapabilityShader); - - // Sampler Filter & Addressing mode capabilities - SamplerAddressingModeParams[SamplerAddressingModeNone].caps.push_back(CapabilityKernel); - SamplerAddressingModeParams[SamplerAddressingModeClampToEdge].caps.push_back(CapabilityKernel); - SamplerAddressingModeParams[SamplerAddressingModeClamp].caps.push_back(CapabilityKernel); - SamplerAddressingModeParams[SamplerAddressingModeRepeat].caps.push_back(CapabilityKernel); - SamplerAddressingModeParams[SamplerAddressingModeRepeatMirrored].caps.push_back(CapabilityKernel); - - SamplerFilterModeParams[SamplerFilterModeNearest].caps.push_back(CapabilityKernel); - SamplerFilterModeParams[SamplerFilterModeLinear].caps.push_back(CapabilityKernel); - - // image format capabilities - - // ES/Desktop float - ImageFormatParams[ImageFormatRgba32f].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatRgba16f].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatR32f].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatRgba8].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatRgba8Snorm].caps.push_back(CapabilityShader); - - // Desktop float - ImageFormatParams[ImageFormatRg32f].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg16f].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR11fG11fB10f].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR16f].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRgba16].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRgb10A2].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg16].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg8].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR16].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR8].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRgba16Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg16Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg8Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR16Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR8Snorm].caps.push_back(CapabilityStorageImageExtendedFormats); - - // ES/Desktop int - ImageFormatParams[ImageFormatRgba32i].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatRgba16i].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatRgba8i].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatR32i].caps.push_back(CapabilityShader); - - // Desktop int - ImageFormatParams[ImageFormatRg32i].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg16i].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg8i].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR16i].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR8i].caps.push_back(CapabilityStorageImageExtendedFormats); - - // ES/Desktop uint - ImageFormatParams[ImageFormatRgba32ui].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatRgba16ui].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatRgba8ui].caps.push_back(CapabilityShader); - ImageFormatParams[ImageFormatR32ui].caps.push_back(CapabilityShader); - - // Desktop uint - ImageFormatParams[ImageFormatRgb10a2ui].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg32ui].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg16ui].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatRg8ui].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR16ui].caps.push_back(CapabilityStorageImageExtendedFormats); - ImageFormatParams[ImageFormatR8ui].caps.push_back(CapabilityStorageImageExtendedFormats); - - // image channel order capabilities - for (int i = 0; i < ImageChannelOrderCeiling; ++i) { - ImageChannelOrderParams[i].caps.push_back(CapabilityKernel); - } - - // image channel type capabilities - for (int i = 0; i < ImageChannelDataTypeCeiling; ++i) { - ImageChannelDataTypeParams[i].caps.push_back(CapabilityKernel); - } - - // image lookup operands - ImageOperandsParams[ImageOperandsBiasShift].caps.push_back(CapabilityShader); - ImageOperandsParams[ImageOperandsOffsetShift].caps.push_back(CapabilityImageGatherExtended); - ImageOperandsParams[ImageOperandsMinLodShift].caps.push_back(CapabilityMinLod); - - // fast math flags capabilities - for (int i = 0; i < FPFastMathCeiling; ++i) { - FPFastMathParams[i].caps.push_back(CapabilityKernel); - } - - // fp rounding mode capabilities - for (int i = 0; i < FPRoundingModeCeiling; ++i) { - FPRoundingModeParams[i].caps.push_back(CapabilityKernel); - } - - // linkage types - for (int i = 0; i < LinkageTypeCeiling; ++i) { - LinkageTypeParams[i].caps.push_back(CapabilityLinkage); - } - - // function argument types - for (int i = 0; i < FuncParamAttrCeiling; ++i) { - FuncParamAttrParams[i].caps.push_back(CapabilityKernel); - } - - // function argument types - for (int i = 0; i < AccessQualifierCeiling; ++i) { - AccessQualifierParams[i].caps.push_back(CapabilityKernel); - } - - ExecutionModeParams[ExecutionModeInvocations].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeSpacingEqual].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeSpacingFractionalEven].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeSpacingFractionalOdd].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeVertexOrderCw].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeVertexOrderCcw].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModePixelCenterInteger].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModeOriginUpperLeft].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModeOriginLowerLeft].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModeEarlyFragmentTests].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModePointMode].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeXfb].caps.push_back(CapabilityTransformFeedback); - ExecutionModeParams[ExecutionModeDepthReplacing].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModeDepthGreater].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModeDepthLess].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModeDepthUnchanged].caps.push_back(CapabilityShader); - ExecutionModeParams[ExecutionModeLocalSizeHint].caps.push_back(CapabilityKernel); - ExecutionModeParams[ExecutionModeInputPoints].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeInputLines].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeInputLinesAdjacency].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeTriangles].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeTriangles].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeInputTrianglesAdjacency].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeQuads].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeIsolines].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeOutputVertices].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeOutputVertices].caps.push_back(CapabilityTessellation); - ExecutionModeParams[ExecutionModeOutputPoints].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeOutputLineStrip].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeOutputTriangleStrip].caps.push_back(CapabilityGeometry); - ExecutionModeParams[ExecutionModeVecTypeHint].caps.push_back(CapabilityKernel); - ExecutionModeParams[ExecutionModeContractionOff].caps.push_back(CapabilityKernel); - - DecorationParams[DecorationRelaxedPrecision].caps.push_back(CapabilityShader); - DecorationParams[DecorationBlock].caps.push_back(CapabilityShader); - DecorationParams[DecorationBufferBlock].caps.push_back(CapabilityShader); - DecorationParams[DecorationRowMajor].caps.push_back(CapabilityMatrix); - DecorationParams[DecorationColMajor].caps.push_back(CapabilityMatrix); - DecorationParams[DecorationGLSLShared].caps.push_back(CapabilityShader); - DecorationParams[DecorationGLSLPacked].caps.push_back(CapabilityShader); - DecorationParams[DecorationNoPerspective].caps.push_back(CapabilityShader); - DecorationParams[DecorationFlat].caps.push_back(CapabilityShader); - DecorationParams[DecorationPatch].caps.push_back(CapabilityTessellation); - DecorationParams[DecorationCentroid].caps.push_back(CapabilityShader); - DecorationParams[DecorationSample].caps.push_back(CapabilitySampleRateShading); - DecorationParams[DecorationInvariant].caps.push_back(CapabilityShader); - DecorationParams[DecorationConstant].caps.push_back(CapabilityKernel); - DecorationParams[DecorationUniform].caps.push_back(CapabilityShader); - DecorationParams[DecorationCPacked].caps.push_back(CapabilityKernel); - DecorationParams[DecorationSaturatedConversion].caps.push_back(CapabilityKernel); - DecorationParams[DecorationStream].caps.push_back(CapabilityGeometryStreams); - DecorationParams[DecorationLocation].caps.push_back(CapabilityShader); - DecorationParams[DecorationComponent].caps.push_back(CapabilityShader); - DecorationParams[DecorationOffset].caps.push_back(CapabilityShader); - DecorationParams[DecorationIndex].caps.push_back(CapabilityShader); - DecorationParams[DecorationBinding].caps.push_back(CapabilityShader); - DecorationParams[DecorationDescriptorSet].caps.push_back(CapabilityShader); - DecorationParams[DecorationXfbBuffer].caps.push_back(CapabilityTransformFeedback); - DecorationParams[DecorationXfbStride].caps.push_back(CapabilityTransformFeedback); - DecorationParams[DecorationArrayStride].caps.push_back(CapabilityShader); - DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityMatrix); - DecorationParams[DecorationFuncParamAttr].caps.push_back(CapabilityKernel); - DecorationParams[DecorationFPRoundingMode].caps.push_back(CapabilityKernel); - DecorationParams[DecorationFPFastMathMode].caps.push_back(CapabilityKernel); - DecorationParams[DecorationLinkageAttributes].caps.push_back(CapabilityLinkage); - DecorationParams[DecorationSpecId].caps.push_back(CapabilityShader); - DecorationParams[DecorationNoContraction].caps.push_back(CapabilityShader); - DecorationParams[DecorationInputAttachmentIndex].caps.push_back(CapabilityInputAttachment); - DecorationParams[DecorationAlignment].caps.push_back(CapabilityKernel); - - BuiltInParams[BuiltInPosition].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInPointSize].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityClipDistance); - BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityCullDistance); - - BuiltInParams[BuiltInVertexId].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInVertexId].desc = "Vertex ID, which takes on values 0, 1, 2, . . . ."; - - BuiltInParams[BuiltInInstanceId].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInInstanceId].desc = "Instance ID, which takes on values 0, 1, 2, . . . ."; - - BuiltInParams[BuiltInVertexIndex].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInVertexIndex].desc = "Vertex index, which takes on values base, base+1, base+2, . . . ."; - - BuiltInParams[BuiltInInstanceIndex].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInInstanceIndex].desc = "Instance index, which takes on values base, base+1, base+2, . . . ."; - - BuiltInParams[BuiltInPrimitiveId].caps.push_back(CapabilityGeometry); - BuiltInParams[BuiltInPrimitiveId].caps.push_back(CapabilityTessellation); - BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityGeometry); - BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityTessellation); - BuiltInParams[BuiltInLayer].caps.push_back(CapabilityGeometry); - BuiltInParams[BuiltInViewportIndex].caps.push_back(CapabilityMultiViewport); - BuiltInParams[BuiltInTessLevelOuter].caps.push_back(CapabilityTessellation); - BuiltInParams[BuiltInTessLevelInner].caps.push_back(CapabilityTessellation); - BuiltInParams[BuiltInTessCoord].caps.push_back(CapabilityTessellation); - BuiltInParams[BuiltInPatchVertices].caps.push_back(CapabilityTessellation); - BuiltInParams[BuiltInFragCoord].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInPointCoord].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInFrontFacing].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInSampleId].caps.push_back(CapabilitySampleRateShading); - BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilitySampleRateShading); - BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilitySampleRateShading); - BuiltInParams[BuiltInFragDepth].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInHelperInvocation].caps.push_back(CapabilityShader); - BuiltInParams[BuiltInWorkDim].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInGlobalSize].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInEnqueuedWorkgroupSize].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInGlobalOffset].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInGlobalLinearId].caps.push_back(CapabilityKernel); - - BuiltInParams[BuiltInSubgroupSize].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInSubgroupMaxSize].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInNumSubgroups].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInNumEnqueuedSubgroups].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInSubgroupId].caps.push_back(CapabilityKernel); - BuiltInParams[BuiltInSubgroupLocalInvocationId].caps.push_back(CapabilityKernel); - - DimensionalityParams[Dim1D].caps.push_back(CapabilitySampled1D); - DimensionalityParams[DimCube].caps.push_back(CapabilityShader); - DimensionalityParams[DimRect].caps.push_back(CapabilitySampledRect); - DimensionalityParams[DimBuffer].caps.push_back(CapabilitySampledBuffer); - DimensionalityParams[DimSubpassData].caps.push_back(CapabilityInputAttachment); - - // Group Operations - for (int i = 0; i < GroupOperationCeiling; ++i) { - GroupOperationParams[i].caps.push_back(CapabilityKernel); - } - - // Enqueue flags - for (int i = 0; i < KernelEnqueueFlagsCeiling; ++i) { - KernelEnqueueFlagsParams[i].caps.push_back(CapabilityKernel); - } - - // Profiling info - KernelProfilingInfoParams[0].caps.push_back(CapabilityKernel); + OperandClassParams[OperandMemorySemantics].set(0, MemorySemanticsString, nullptr, true); + OperandClassParams[OperandMemoryAccess].set(0, MemoryAccessString, nullptr, true); + OperandClassParams[OperandScope].set(0, ScopeString, nullptr); + OperandClassParams[OperandGroupOperation].set(0, GroupOperationString, nullptr); + OperandClassParams[OperandKernelEnqueueFlags].set(0, KernelEnqueueFlagsString, nullptr); + OperandClassParams[OperandKernelProfilingInfo].set(0, KernelProfilingInfoString, nullptr, true); + OperandClassParams[OperandCapability].set(0, CapabilityString, nullptr); + OperandClassParams[OperandOpcode].set(OpCodeMask + 1, OpcodeString, 0); // set name of operator, an initial set of style operands, and the description @@ -1720,7 +1454,6 @@ void Parameterize() InstructionDesc[OpTypeVector].operands.push(OperandId, "'Component Type'"); InstructionDesc[OpTypeVector].operands.push(OperandLiteralNumber, "'Component Count'"); - InstructionDesc[OpTypeMatrix].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpTypeMatrix].operands.push(OperandId, "'Column Type'"); InstructionDesc[OpTypeMatrix].operands.push(OperandLiteralNumber, "'Column Count'"); @@ -1738,31 +1471,19 @@ void Parameterize() InstructionDesc[OpTypeArray].operands.push(OperandId, "'Element Type'"); InstructionDesc[OpTypeArray].operands.push(OperandId, "'Length'"); - InstructionDesc[OpTypeRuntimeArray].capabilities.push_back(CapabilityShader); InstructionDesc[OpTypeRuntimeArray].operands.push(OperandId, "'Element Type'"); InstructionDesc[OpTypeStruct].operands.push(OperandVariableIds, "'Member 0 type', +\n'member 1 type', +\n..."); - InstructionDesc[OpTypeOpaque].capabilities.push_back(CapabilityKernel); InstructionDesc[OpTypeOpaque].operands.push(OperandLiteralString, "The name of the opaque type."); InstructionDesc[OpTypePointer].operands.push(OperandStorage, ""); InstructionDesc[OpTypePointer].operands.push(OperandId, "'Type'"); - InstructionDesc[OpTypeForwardPointer].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpTypeForwardPointer].operands.push(OperandId, "'Pointer Type'"); InstructionDesc[OpTypeForwardPointer].operands.push(OperandStorage, ""); - InstructionDesc[OpTypeEvent].capabilities.push_back(CapabilityKernel); - - InstructionDesc[OpTypeDeviceEvent].capabilities.push_back(CapabilityDeviceEnqueue); - - InstructionDesc[OpTypeReserveId].capabilities.push_back(CapabilityPipes); - - InstructionDesc[OpTypeQueue].capabilities.push_back(CapabilityDeviceEnqueue); - InstructionDesc[OpTypePipe].operands.push(OperandAccessQualifier, "'Qualifier'"); - InstructionDesc[OpTypePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpTypeFunction].operands.push(OperandId, "'Return Type'"); InstructionDesc[OpTypeFunction].operands.push(OperandVariableIds, "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..."); @@ -1771,7 +1492,6 @@ void Parameterize() InstructionDesc[OpConstantComposite].operands.push(OperandVariableIds, "'Constituents'"); - InstructionDesc[OpConstantSampler].capabilities.push_back(CapabilityLiteralSampler); InstructionDesc[OpConstantSampler].operands.push(OperandSamplerAddressingMode, ""); InstructionDesc[OpConstantSampler].operands.push(OperandLiteralNumber, "'Param'"); InstructionDesc[OpConstantSampler].operands.push(OperandSamplerFilterMode, ""); @@ -1809,11 +1529,24 @@ void Parameterize() InstructionDesc[OpDecorate].operands.push(OperandDecoration, ""); InstructionDesc[OpDecorate].operands.push(OperandVariableLiterals, "See <>."); + InstructionDesc[OpDecorateId].operands.push(OperandId, "'Target'"); + InstructionDesc[OpDecorateId].operands.push(OperandDecoration, ""); + InstructionDesc[OpDecorateId].operands.push(OperandVariableIds, "See <>."); + + InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandId, "'Target'"); + InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandDecoration, ""); + InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandLiteralString, "'Literal String'"); + InstructionDesc[OpMemberDecorate].operands.push(OperandId, "'Structure Type'"); InstructionDesc[OpMemberDecorate].operands.push(OperandLiteralNumber, "'Member'"); InstructionDesc[OpMemberDecorate].operands.push(OperandDecoration, ""); InstructionDesc[OpMemberDecorate].operands.push(OperandVariableLiterals, "See <>."); + InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandId, "'Structure Type'"); + InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandLiteralNumber, "'Member'"); + InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandDecoration, ""); + InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandLiteralString, "'Literal String'"); + InstructionDesc[OpGroupDecorate].operands.push(OperandId, "'Decoration Group'"); InstructionDesc[OpGroupDecorate].operands.push(OperandVariableIds, "'Targets'"); @@ -1851,8 +1584,6 @@ void Parameterize() InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Size'"); InstructionDesc[OpCopyMemorySized].operands.push(OperandMemoryAccess, "", true); - InstructionDesc[OpCopyMemorySized].capabilities.push_back(CapabilityAddresses); - InstructionDesc[OpSampledImage].operands.push(OperandId, "'Image'"); InstructionDesc[OpSampledImage].operands.push(OperandId, "'Sampler'"); @@ -1873,7 +1604,6 @@ void Parameterize() InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSampleImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Coordinate'"); @@ -1885,40 +1615,34 @@ void Parameterize() InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSampleDrefImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSampleDrefExplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSampleProjImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSampleProjExplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSampleProjDrefImplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSampleProjDrefExplicitLod].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageFetch].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageFetch].operands.push(OperandId, "'Coordinate'"); @@ -1930,122 +1654,96 @@ void Parameterize() InstructionDesc[OpImageGather].operands.push(OperandId, "'Component'"); InstructionDesc[OpImageGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageGather].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageGather].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageDrefGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageDrefGather].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageDrefGather].capabilities.push_back(CapabilityShader); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleDrefImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleDrefExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleProjImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleProjExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseFetch].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageSparseFetch].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseFetch].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseFetch].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseFetch].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Component'"); InstructionDesc[OpImageSparseGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseGather].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseGather].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'Sampled Image'"); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'D~ref~'"); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseDrefGather].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Coordinate'"); InstructionDesc[OpImageSparseRead].operands.push(OperandImageOperands, "", true); InstructionDesc[OpImageSparseRead].operands.push(OperandVariableIds, "", true); - InstructionDesc[OpImageSparseRead].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseTexelsResident].operands.push(OperandId, "'Resident Code'"); - InstructionDesc[OpImageSparseTexelsResident].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Level of Detail'"); - InstructionDesc[OpImageQuerySizeLod].capabilities.push_back(CapabilityKernel); - InstructionDesc[OpImageQuerySizeLod].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQuerySize].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageQuerySize].capabilities.push_back(CapabilityKernel); - InstructionDesc[OpImageQuerySize].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Image'"); InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Coordinate'"); - InstructionDesc[OpImageQueryLod].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQueryLevels].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageQueryLevels].capabilities.push_back(CapabilityKernel); - InstructionDesc[OpImageQueryLevels].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQuerySamples].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageQuerySamples].capabilities.push_back(CapabilityKernel); - InstructionDesc[OpImageQuerySamples].capabilities.push_back(CapabilityImageQuery); InstructionDesc[OpImageQueryFormat].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageQueryFormat].capabilities.push_back(CapabilityKernel); InstructionDesc[OpImageQueryOrder].operands.push(OperandId, "'Image'"); - InstructionDesc[OpImageQueryOrder].capabilities.push_back(CapabilityKernel); InstructionDesc[OpAccessChain].operands.push(OperandId, "'Base'"); InstructionDesc[OpAccessChain].operands.push(OperandVariableIds, "'Indexes'"); @@ -2056,12 +1754,10 @@ void Parameterize() InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Base'"); InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Element'"); InstructionDesc[OpPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'"); - InstructionDesc[OpPtrAccessChain].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Base'"); InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Element'"); InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'"); - InstructionDesc[OpInBoundsPtrAccessChain].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpSNegate].operands.push(OperandId, "'Operand'"); @@ -2088,65 +1784,49 @@ void Parameterize() InstructionDesc[OpFConvert].operands.push(OperandId, "'Float Value'"); InstructionDesc[OpSatConvertSToU].operands.push(OperandId, "'Signed Value'"); - InstructionDesc[OpSatConvertSToU].capabilities.push_back(CapabilityKernel); InstructionDesc[OpSatConvertUToS].operands.push(OperandId, "'Unsigned Value'"); - InstructionDesc[OpSatConvertUToS].capabilities.push_back(CapabilityKernel); InstructionDesc[OpConvertPtrToU].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpConvertPtrToU].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpConvertUToPtr].operands.push(OperandId, "'Integer Value'"); - InstructionDesc[OpConvertUToPtr].capabilities.push_back(CapabilityAddresses); InstructionDesc[OpPtrCastToGeneric].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpPtrCastToGeneric].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGenericCastToPtr].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpGenericCastToPtr].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandStorage, "'Storage'"); - InstructionDesc[OpGenericCastToPtrExplicit].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGenericPtrMemSemantics].operands.push(OperandId, "'Pointer'"); - InstructionDesc[OpGenericPtrMemSemantics].capabilities.push_back(CapabilityKernel); InstructionDesc[OpBitcast].operands.push(OperandId, "'Operand'"); InstructionDesc[OpQuantizeToF16].operands.push(OperandId, "'Value'"); - InstructionDesc[OpTranspose].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpTranspose].operands.push(OperandId, "'Matrix'"); InstructionDesc[OpIsNan].operands.push(OperandId, "'x'"); InstructionDesc[OpIsInf].operands.push(OperandId, "'x'"); - InstructionDesc[OpIsFinite].capabilities.push_back(CapabilityKernel); InstructionDesc[OpIsFinite].operands.push(OperandId, "'x'"); - InstructionDesc[OpIsNormal].capabilities.push_back(CapabilityKernel); InstructionDesc[OpIsNormal].operands.push(OperandId, "'x'"); - InstructionDesc[OpSignBitSet].capabilities.push_back(CapabilityKernel); InstructionDesc[OpSignBitSet].operands.push(OperandId, "'x'"); - InstructionDesc[OpLessOrGreater].capabilities.push_back(CapabilityKernel); InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'x'"); InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'y'"); - InstructionDesc[OpOrdered].capabilities.push_back(CapabilityKernel); InstructionDesc[OpOrdered].operands.push(OperandId, "'x'"); InstructionDesc[OpOrdered].operands.push(OperandId, "'y'"); - InstructionDesc[OpUnordered].capabilities.push_back(CapabilityKernel); InstructionDesc[OpUnordered].operands.push(OperandId, "'x'"); InstructionDesc[OpUnordered].operands.push(OperandId, "'y'"); InstructionDesc[OpArrayLength].operands.push(OperandId, "'Structure'"); InstructionDesc[OpArrayLength].operands.push(OperandLiteralNumber, "'Array member'"); - InstructionDesc[OpArrayLength].capabilities.push_back(CapabilityShader); InstructionDesc[OpIAdd].operands.push(OperandId, "'Operand 1'"); InstructionDesc[OpIAdd].operands.push(OperandId, "'Operand 2'"); @@ -2193,23 +1873,18 @@ void Parameterize() InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Vector'"); InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Scalar'"); - InstructionDesc[OpMatrixTimesScalar].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Matrix'"); InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Scalar'"); - InstructionDesc[OpVectorTimesMatrix].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Vector'"); InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Matrix'"); - InstructionDesc[OpMatrixTimesVector].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Matrix'"); InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Vector'"); - InstructionDesc[OpMatrixTimesMatrix].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'LeftMatrix'"); InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'RightMatrix'"); - InstructionDesc[OpOuterProduct].capabilities.push_back(CapabilityMatrix); InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 1'"); InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 2'"); @@ -2260,23 +1935,19 @@ void Parameterize() InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 1'"); InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 2'"); - InstructionDesc[OpBitFieldInsert].capabilities.push_back(CapabilityShader); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Insert'"); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Offset'"); InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Count'"); - - InstructionDesc[OpBitFieldSExtract].capabilities.push_back(CapabilityShader); + InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Offset'"); InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Count'"); - InstructionDesc[OpBitFieldUExtract].capabilities.push_back(CapabilityShader); InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Offset'"); InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Count'"); - InstructionDesc[OpBitReverse].capabilities.push_back(CapabilityShader); InstructionDesc[OpBitReverse].operands.push(OperandId, "'Base'"); InstructionDesc[OpBitCount].operands.push(OperandId, "'Base'"); @@ -2351,42 +2022,27 @@ void Parameterize() InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 1'"); InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 2'"); - InstructionDesc[OpDPdx].capabilities.push_back(CapabilityShader); InstructionDesc[OpDPdx].operands.push(OperandId, "'P'"); - InstructionDesc[OpDPdy].capabilities.push_back(CapabilityShader); InstructionDesc[OpDPdy].operands.push(OperandId, "'P'"); - InstructionDesc[OpFwidth].capabilities.push_back(CapabilityShader); InstructionDesc[OpFwidth].operands.push(OperandId, "'P'"); - InstructionDesc[OpDPdxFine].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdxFine].operands.push(OperandId, "'P'"); - InstructionDesc[OpDPdyFine].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdyFine].operands.push(OperandId, "'P'"); - InstructionDesc[OpFwidthFine].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpFwidthFine].operands.push(OperandId, "'P'"); - InstructionDesc[OpDPdxCoarse].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdxCoarse].operands.push(OperandId, "'P'"); - InstructionDesc[OpDPdyCoarse].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpDPdyCoarse].operands.push(OperandId, "'P'"); - InstructionDesc[OpFwidthCoarse].capabilities.push_back(CapabilityDerivativeControl); InstructionDesc[OpFwidthCoarse].operands.push(OperandId, "'P'"); - InstructionDesc[OpEmitVertex].capabilities.push_back(CapabilityGeometry); - - InstructionDesc[OpEndPrimitive].capabilities.push_back(CapabilityGeometry); - InstructionDesc[OpEmitStreamVertex].operands.push(OperandId, "'Stream'"); - InstructionDesc[OpEmitStreamVertex].capabilities.push_back(CapabilityGeometryStreams); InstructionDesc[OpEndStreamPrimitive].operands.push(OperandId, "'Stream'"); - InstructionDesc[OpEndStreamPrimitive].capabilities.push_back(CapabilityGeometryStreams); InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Memory'"); @@ -2426,7 +2082,6 @@ void Parameterize() InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandMemorySemantics, "'Unequal'"); InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Value'"); InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Comparator'"); - InstructionDesc[OpAtomicCompareExchangeWeak].capabilities.push_back(CapabilityKernel); InstructionDesc[OpAtomicIIncrement].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpAtomicIIncrement].operands.push(OperandScope, "'Scope'"); @@ -2484,16 +2139,15 @@ void Parameterize() InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandScope, "'Scope'"); InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicFlagTestAndSet].capabilities.push_back(CapabilityKernel); InstructionDesc[OpAtomicFlagClear].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpAtomicFlagClear].operands.push(OperandScope, "'Scope'"); InstructionDesc[OpAtomicFlagClear].operands.push(OperandMemorySemantics, "'Semantics'"); - InstructionDesc[OpAtomicFlagClear].capabilities.push_back(CapabilityKernel); InstructionDesc[OpLoopMerge].operands.push(OperandId, "'Merge Block'"); InstructionDesc[OpLoopMerge].operands.push(OperandId, "'Continue Target'"); InstructionDesc[OpLoopMerge].operands.push(OperandLoop, ""); + InstructionDesc[OpLoopMerge].operands.push(OperandOptionalLiteral, ""); InstructionDesc[OpSelectionMerge].operands.push(OperandId, "'Merge Block'"); InstructionDesc[OpSelectionMerge].operands.push(OperandSelect, ""); @@ -2509,19 +2163,15 @@ void Parameterize() InstructionDesc[OpSwitch].operands.push(OperandId, "'Default'"); InstructionDesc[OpSwitch].operands.push(OperandVariableLiteralId, "'Target'"); - InstructionDesc[OpKill].capabilities.push_back(CapabilityShader); InstructionDesc[OpReturnValue].operands.push(OperandId, "'Value'"); InstructionDesc[OpLifetimeStart].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpLifetimeStart].operands.push(OperandLiteralNumber, "'Size'"); - InstructionDesc[OpLifetimeStart].capabilities.push_back(CapabilityKernel); InstructionDesc[OpLifetimeStop].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpLifetimeStop].operands.push(OperandLiteralNumber, "'Size'"); - InstructionDesc[OpLifetimeStop].capabilities.push_back(CapabilityKernel); - InstructionDesc[OpGroupAsyncCopy].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Destination'"); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Source'"); @@ -2529,77 +2179,62 @@ void Parameterize() InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Stride'"); InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Event'"); - InstructionDesc[OpGroupWaitEvents].capabilities.push_back(CapabilityKernel); InstructionDesc[OpGroupWaitEvents].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Num Events'"); InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Events List'"); - InstructionDesc[OpGroupAll].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupAll].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupAll].operands.push(OperandId, "'Predicate'"); - InstructionDesc[OpGroupAny].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupAny].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupAny].operands.push(OperandId, "'Predicate'"); - InstructionDesc[OpGroupBroadcast].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupBroadcast].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'Value'"); InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'LocalId'"); - InstructionDesc[OpGroupIAdd].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupIAdd].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupIAdd].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupIAdd].operands.push(OperandId, "'X'"); - InstructionDesc[OpGroupFAdd].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFAdd].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFAdd].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFAdd].operands.push(OperandId, "'X'"); - InstructionDesc[OpGroupUMin].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMin].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMin].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMin].operands.push(OperandId, "'X'"); - InstructionDesc[OpGroupSMin].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMin].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMin].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMin].operands.push(OperandId, "X"); - InstructionDesc[OpGroupFMin].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMin].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMin].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMin].operands.push(OperandId, "X"); - InstructionDesc[OpGroupUMax].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMax].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMax].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMax].operands.push(OperandId, "X"); - InstructionDesc[OpGroupSMax].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMax].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMax].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMax].operands.push(OperandId, "X"); - InstructionDesc[OpGroupFMax].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMax].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMax].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMax].operands.push(OperandId, "X"); - InstructionDesc[OpReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReadPipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Pointer'"); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpWritePipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpReservedReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Index'"); @@ -2607,7 +2242,6 @@ void Parameterize() InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpReservedWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Index'"); @@ -2615,127 +2249,99 @@ void Parameterize() InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpReserveReadPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpReserveWritePipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpCommitReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpCommitWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpIsValidReserveId].capabilities.push_back(CapabilityPipes); InstructionDesc[OpIsValidReserveId].operands.push(OperandId, "'Reserve Id'"); - InstructionDesc[OpGetNumPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpGetMaxPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpGroupReserveReadPipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpGroupReserveWritePipePackets].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Num Packets'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpGroupCommitReadPipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpGroupCommitWritePipe].capabilities.push_back(CapabilityPipes); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Pipe'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Reserve Id'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Packet Size'"); InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Packet Alignment'"); - InstructionDesc[OpBuildNDRange].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'GlobalWorkSize'"); InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'LocalWorkSize'"); InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'GlobalWorkOffset'"); - InstructionDesc[OpGetDefaultQueue].capabilities.push_back(CapabilityDeviceEnqueue); - - InstructionDesc[OpCaptureEventProfilingInfo].capabilities.push_back(CapabilityDeviceEnqueue); - InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Event'"); InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Profiling Info'"); InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Value'"); - InstructionDesc[OpSetUserEventStatus].capabilities.push_back(CapabilityDeviceEnqueue); - InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Event'"); InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Status'"); - InstructionDesc[OpIsValidEvent].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpIsValidEvent].operands.push(OperandId, "'Event'"); - InstructionDesc[OpCreateUserEvent].capabilities.push_back(CapabilityDeviceEnqueue); - - InstructionDesc[OpRetainEvent].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpRetainEvent].operands.push(OperandId, "'Event'"); - InstructionDesc[OpReleaseEvent].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpReleaseEvent].operands.push(OperandId, "'Event'"); - InstructionDesc[OpGetKernelWorkGroupSize].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param Align'"); - InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param Align'"); - InstructionDesc[OpGetKernelNDrangeSubGroupCount].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'ND Range'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param Align'"); - InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'ND Range'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Invoke'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param Size'"); InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param Align'"); - InstructionDesc[OpEnqueueKernel].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Queue'"); InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Flags'"); InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'ND Range'"); @@ -2748,56 +2354,214 @@ void Parameterize() InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param Align'"); InstructionDesc[OpEnqueueKernel].operands.push(OperandVariableIds, "'Local Size'"); - InstructionDesc[OpEnqueueMarker].capabilities.push_back(CapabilityDeviceEnqueue); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Queue'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Num Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'"); + InstructionDesc[OpGroupNonUniformElect].operands.push(OperandScope, "'Execution'"); + + InstructionDesc[OpGroupNonUniformAll].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformAll].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformAny].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformAny].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "ID"); + + InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "Bit"); + + InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "'Id'"); + + InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "Mask"); + + InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "Offset"); + + InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "Offset"); + + InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "'ClusterSize'", true); + + InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "'Id'"); + + InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "X"); + InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandLiteralNumber, "'Direction'"); + InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'"); InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'"); + InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandId, "'Predicate'"); + + InstructionDesc[OpSubgroupAllKHR].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpSubgroupAllKHR].operands.push(OperandId, "'Predicate'"); + + InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandId, "'Predicate'"); + + InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Value'"); + InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Index'"); + + InstructionDesc[OpModuleProcessed].operands.push(OperandLiteralString, "'process'"); + #ifdef AMD_EXTENSIONS - InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandId, "'X'"); - InstructionDesc[OpGroupFAddNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandId, "'X'"); - InstructionDesc[OpGroupUMinNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandId, "'X'"); - InstructionDesc[OpGroupSMinNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandId, "X"); - InstructionDesc[OpGroupFMinNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandId, "X"); - InstructionDesc[OpGroupUMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandId, "X"); - InstructionDesc[OpGroupSMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandId, "X"); - InstructionDesc[OpGroupFMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandId, "X"); + + InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Image'"); + InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Coordinate'"); + + InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Image'"); + InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Coordinate'"); + InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Fragment Index'"); +#endif + +#ifdef NV_EXTENSIONS + InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X"); #endif } diff --git a/deps/glslang/glslang/SPIRV/doc.h b/deps/glslang/glslang/SPIRV/doc.h index e7afbaee27..7d0475d3eb 100644 --- a/deps/glslang/glslang/SPIRV/doc.h +++ b/deps/glslang/glslang/SPIRV/doc.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2014-2015 LunarG, Inc. +// Copyright (C) 2014-2015 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,26 +19,25 @@ // 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 _SPIRV_doc_h -#define _SPIRV_doc_h +// 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. // // Parameterize the SPIR-V enumerants. // +#pragma once + #include "spirv.hpp" #include @@ -191,14 +190,13 @@ protected: class EnumParameters { public: EnumParameters() : desc(0) { } - EnumCaps caps; const char* desc; }; // Parameterize a set of enumerants that form an enum class EnumDefinition : public EnumParameters { public: - EnumDefinition() : + EnumDefinition() : ceiling(0), bitmask(false), getName(0), enumParams(0), operandParams(0) { } void set(int ceil, const char* (*name)(int), EnumParameters* ep, bool mask = false) { @@ -236,7 +234,6 @@ public: bool hasType() const { return typePresent != 0; } const char* opDesc; - EnumCaps capabilities; OpcodeClass opClass; OperandParameters operands; @@ -245,8 +242,6 @@ protected: int resultPresent : 1; }; -const int OpcodeCeiling = 321; - // The set of objects that hold all the instruction/operand // parameterization information. extern InstructionParameters InstructionDesc[]; @@ -261,5 +256,3 @@ const char* AccessQualifierString(int attr); void PrintOperands(const OperandParameters& operands, int reservedOperands); }; // end namespace spv - -#endif diff --git a/deps/glslang/glslang/SPIRV/hex_float.h b/deps/glslang/glslang/SPIRV/hex_float.h index 31b9f9ed89..905b21a45a 100644 --- a/deps/glslang/glslang/SPIRV/hex_float.h +++ b/deps/glslang/glslang/SPIRV/hex_float.h @@ -23,7 +23,7 @@ #include #include -#if defined(_MSC_VER) && _MSC_VER < 1700 +#if defined(_MSC_VER) && _MSC_VER < 1800 namespace std { bool isnan(double f) { diff --git a/deps/glslang/glslang/SPIRV/spirv.hpp b/deps/glslang/glslang/SPIRV/spirv.hpp old mode 100755 new mode 100644 index bb3c3f4c76..e21762dbec --- a/deps/glslang/glslang/SPIRV/spirv.hpp +++ b/deps/glslang/glslang/SPIRV/spirv.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2016 The Khronos Group Inc. +// Copyright (c) 2014-2018 The Khronos Group Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and/or associated documentation files (the "Materials"), @@ -46,12 +46,12 @@ namespace spv { typedef unsigned int Id; -#define SPV_VERSION 0x10000 -#define SPV_REVISION 8 +#define SPV_VERSION 0x10300 +#define SPV_REVISION 1 static const unsigned int MagicNumber = 0x07230203; -static const unsigned int Version = 0x00010000; -static const unsigned int Revision = 8; +static const unsigned int Version = 0x00010300; +static const unsigned int Revision = 1; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; @@ -122,6 +122,15 @@ enum ExecutionMode { ExecutionModeOutputTriangleStrip = 29, ExecutionModeVecTypeHint = 30, ExecutionModeContractionOff = 31, + ExecutionModeInitializer = 33, + ExecutionModeFinalizer = 34, + ExecutionModeSubgroupSize = 35, + ExecutionModeSubgroupsPerWorkgroup = 36, + ExecutionModeSubgroupsPerWorkgroupId = 37, + ExecutionModeLocalSizeId = 38, + ExecutionModeLocalSizeHintId = 39, + ExecutionModePostDepthCoverage = 4446, + ExecutionModeStencilRefReplacingEXT = 5027, ExecutionModeMax = 0x7fffffff, }; @@ -138,6 +147,7 @@ enum StorageClass { StorageClassPushConstant = 9, StorageClassAtomicCounter = 10, StorageClassImage = 11, + StorageClassStorageBuffer = 12, StorageClassMax = 0x7fffffff, }; @@ -375,6 +385,17 @@ enum Decoration { DecorationNoContraction = 42, DecorationInputAttachmentIndex = 43, DecorationAlignment = 44, + DecorationMaxByteOffset = 45, + DecorationAlignmentId = 46, + DecorationMaxByteOffsetId = 47, + DecorationExplicitInterpAMD = 4999, + DecorationOverrideCoverageNV = 5248, + DecorationPassthroughNV = 5250, + DecorationViewportRelativeNV = 5252, + DecorationSecondaryViewportRelativeNV = 5256, + DecorationNonUniformEXT = 5300, + DecorationHlslCounterBufferGOOGLE = 5634, + DecorationHlslSemanticGOOGLE = 5635, DecorationMax = 0x7fffffff, }; @@ -420,14 +441,35 @@ enum BuiltIn { BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, + BuiltInSubgroupEqMask = 4416, BuiltInSubgroupEqMaskKHR = 4416, + BuiltInSubgroupGeMask = 4417, BuiltInSubgroupGeMaskKHR = 4417, + BuiltInSubgroupGtMask = 4418, BuiltInSubgroupGtMaskKHR = 4418, + BuiltInSubgroupLeMask = 4419, BuiltInSubgroupLeMaskKHR = 4419, + BuiltInSubgroupLtMask = 4420, BuiltInSubgroupLtMaskKHR = 4420, BuiltInBaseVertex = 4424, BuiltInBaseInstance = 4425, BuiltInDrawIndex = 4426, + BuiltInDeviceIndex = 4438, + BuiltInViewIndex = 4440, + BuiltInBaryCoordNoPerspAMD = 4992, + BuiltInBaryCoordNoPerspCentroidAMD = 4993, + BuiltInBaryCoordNoPerspSampleAMD = 4994, + BuiltInBaryCoordSmoothAMD = 4995, + BuiltInBaryCoordSmoothCentroidAMD = 4996, + BuiltInBaryCoordSmoothSampleAMD = 4997, + BuiltInBaryCoordPullModelAMD = 4998, + BuiltInFragStencilRefEXT = 5014, + BuiltInViewportMaskNV = 5253, + BuiltInSecondaryPositionNV = 5257, + BuiltInSecondaryViewportMaskNV = 5258, + BuiltInPositionPerViewNV = 5261, + BuiltInViewportMaskPerViewNV = 5262, + BuiltInFullyCoveredEXT = 5264, BuiltInMax = 0x7fffffff, }; @@ -446,6 +488,8 @@ enum SelectionControlMask { enum LoopControlShift { LoopControlUnrollShift = 0, LoopControlDontUnrollShift = 1, + LoopControlDependencyInfiniteShift = 2, + LoopControlDependencyLengthShift = 3, LoopControlMax = 0x7fffffff, }; @@ -453,6 +497,8 @@ enum LoopControlMask { LoopControlMaskNone = 0, LoopControlUnrollMask = 0x00000001, LoopControlDontUnrollMask = 0x00000002, + LoopControlDependencyInfiniteMask = 0x00000004, + LoopControlDependencyLengthMask = 0x00000008, }; enum FunctionControlShift { @@ -526,6 +572,10 @@ enum GroupOperation { GroupOperationReduce = 0, GroupOperationInclusiveScan = 1, GroupOperationExclusiveScan = 2, + GroupOperationClusteredReduce = 3, + GroupOperationPartitionedReduceNV = 6, + GroupOperationPartitionedInclusiveScanNV = 7, + GroupOperationPartitionedExclusiveScanNV = 8, GroupOperationMax = 0x7fffffff, }; @@ -603,8 +653,61 @@ enum Capability { CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, + CapabilitySubgroupDispatch = 58, + CapabilityNamedBarrier = 59, + CapabilityPipeStorage = 60, + CapabilityGroupNonUniform = 61, + CapabilityGroupNonUniformVote = 62, + CapabilityGroupNonUniformArithmetic = 63, + CapabilityGroupNonUniformBallot = 64, + CapabilityGroupNonUniformShuffle = 65, + CapabilityGroupNonUniformShuffleRelative = 66, + CapabilityGroupNonUniformClustered = 67, + CapabilityGroupNonUniformQuad = 68, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, + CapabilitySubgroupVoteKHR = 4431, + CapabilityStorageBuffer16BitAccess = 4433, + CapabilityStorageUniformBufferBlock16 = 4433, + CapabilityStorageUniform16 = 4434, + CapabilityUniformAndStorageBuffer16BitAccess = 4434, + CapabilityStoragePushConstant16 = 4435, + CapabilityStorageInputOutput16 = 4436, + CapabilityDeviceGroup = 4437, + CapabilityMultiView = 4439, + CapabilityVariablePointersStorageBuffer = 4441, + CapabilityVariablePointers = 4442, + CapabilityAtomicStorageOps = 4445, + CapabilitySampleMaskPostDepthCoverage = 4447, + CapabilityFloat16ImageAMD = 5008, + CapabilityImageGatherBiasLodAMD = 5009, + CapabilityFragmentMaskAMD = 5010, + CapabilityStencilExportEXT = 5013, + CapabilityImageReadWriteLodAMD = 5015, + CapabilitySampleMaskOverrideCoverageNV = 5249, + CapabilityGeometryShaderPassthroughNV = 5251, + CapabilityShaderViewportIndexLayerEXT = 5254, + CapabilityShaderViewportIndexLayerNV = 5254, + CapabilityShaderViewportMaskNV = 5255, + CapabilityShaderStereoViewNV = 5259, + CapabilityPerViewAttributesNV = 5260, + CapabilityFragmentFullyCoveredEXT = 5265, + CapabilityGroupNonUniformPartitionedNV = 5297, + CapabilityShaderNonUniformEXT = 5301, + CapabilityRuntimeDescriptorArrayEXT = 5302, + CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, + CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, + CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, + CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, + CapabilitySampledImageArrayNonUniformIndexingEXT = 5307, + CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, + CapabilityStorageImageArrayNonUniformIndexingEXT = 5309, + CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, + CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, + CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, + CapabilitySubgroupShuffleINTEL = 5568, + CapabilitySubgroupBufferBlockIOINTEL = 5569, + CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilityMax = 0x7fffffff, }; @@ -903,8 +1006,79 @@ enum Op { OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, + OpSizeOf = 321, + OpTypePipeStorage = 322, + OpConstantPipeStorage = 323, + OpCreatePipeFromPipeStorage = 324, + OpGetKernelLocalSizeForSubgroupCount = 325, + OpGetKernelMaxNumSubgroups = 326, + OpTypeNamedBarrier = 327, + OpNamedBarrierInitialize = 328, + OpMemoryNamedBarrier = 329, + OpModuleProcessed = 330, + OpExecutionModeId = 331, + OpDecorateId = 332, + OpGroupNonUniformElect = 333, + OpGroupNonUniformAll = 334, + OpGroupNonUniformAny = 335, + OpGroupNonUniformAllEqual = 336, + OpGroupNonUniformBroadcast = 337, + OpGroupNonUniformBroadcastFirst = 338, + OpGroupNonUniformBallot = 339, + OpGroupNonUniformInverseBallot = 340, + OpGroupNonUniformBallotBitExtract = 341, + OpGroupNonUniformBallotBitCount = 342, + OpGroupNonUniformBallotFindLSB = 343, + OpGroupNonUniformBallotFindMSB = 344, + OpGroupNonUniformShuffle = 345, + OpGroupNonUniformShuffleXor = 346, + OpGroupNonUniformShuffleUp = 347, + OpGroupNonUniformShuffleDown = 348, + OpGroupNonUniformIAdd = 349, + OpGroupNonUniformFAdd = 350, + OpGroupNonUniformIMul = 351, + OpGroupNonUniformFMul = 352, + OpGroupNonUniformSMin = 353, + OpGroupNonUniformUMin = 354, + OpGroupNonUniformFMin = 355, + OpGroupNonUniformSMax = 356, + OpGroupNonUniformUMax = 357, + OpGroupNonUniformFMax = 358, + OpGroupNonUniformBitwiseAnd = 359, + OpGroupNonUniformBitwiseOr = 360, + OpGroupNonUniformBitwiseXor = 361, + OpGroupNonUniformLogicalAnd = 362, + OpGroupNonUniformLogicalOr = 363, + OpGroupNonUniformLogicalXor = 364, + OpGroupNonUniformQuadBroadcast = 365, + OpGroupNonUniformQuadSwap = 366, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, + OpSubgroupAllKHR = 4428, + OpSubgroupAnyKHR = 4429, + OpSubgroupAllEqualKHR = 4430, + OpSubgroupReadInvocationKHR = 4432, + OpGroupIAddNonUniformAMD = 5000, + OpGroupFAddNonUniformAMD = 5001, + OpGroupFMinNonUniformAMD = 5002, + OpGroupUMinNonUniformAMD = 5003, + OpGroupSMinNonUniformAMD = 5004, + OpGroupFMaxNonUniformAMD = 5005, + OpGroupUMaxNonUniformAMD = 5006, + OpGroupSMaxNonUniformAMD = 5007, + OpFragmentMaskFetchAMD = 5011, + OpFragmentFetchAMD = 5012, + OpGroupNonUniformPartitionNV = 5296, + OpSubgroupShuffleINTEL = 5571, + OpSubgroupShuffleDownINTEL = 5572, + OpSubgroupShuffleUpINTEL = 5573, + OpSubgroupShuffleXorINTEL = 5574, + OpSubgroupBlockReadINTEL = 5575, + OpSubgroupBlockWriteINTEL = 5576, + OpSubgroupImageBlockReadINTEL = 5577, + OpSubgroupImageBlockWriteINTEL = 5578, + OpDecorateStringGOOGLE = 5632, + OpMemberDecorateStringGOOGLE = 5633, OpMax = 0x7fffffff, }; diff --git a/deps/glslang/glslang/SPIRV/spvIR.h b/deps/glslang/glslang/SPIRV/spvIR.h index 88630f899c..8b6c6447f4 100755 --- a/deps/glslang/glslang/SPIRV/spvIR.h +++ b/deps/glslang/glslang/SPIRV/spvIR.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2014 LunarG, Inc. +// Copyright (C) 2014 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // SPIRV-IR // @@ -65,12 +65,17 @@ const Id NoResult = 0; const Id NoType = 0; const Decoration NoPrecision = DecorationMax; + +#ifdef __GNUC__ +# define POTENTIALLY_UNUSED __attribute__((unused)) +#else +# define POTENTIALLY_UNUSED +#endif + +POTENTIALLY_UNUSED const MemorySemanticsMask MemorySemanticsAllMemory = - (MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask | - MemorySemanticsUniformMemoryMask | - MemorySemanticsSubgroupMemoryMask | + (MemorySemanticsMask)(MemorySemanticsUniformMemoryMask | MemorySemanticsWorkgroupMemoryMask | - MemorySemanticsCrossWorkgroupMemoryMask | MemorySemanticsAtomicCounterMemoryMask | MemorySemanticsImageMemoryMask); @@ -87,7 +92,6 @@ public: void addImmediateOperand(unsigned int immediate) { operands.push_back(immediate); } void addStringOperand(const char* str) { - originalString = str; unsigned int word; char* wordString = (char*)&word; char* wordPtr = wordString; @@ -120,7 +124,6 @@ public: Id getTypeId() const { return typeId; } Id getIdOperand(int op) const { return operands[op]; } unsigned int getImmediateOperand(int op) const { return operands[op]; } - const char* getStringOperand() const { return originalString.c_str(); } // Write out the binary form. void dump(std::vector& out) const @@ -151,7 +154,6 @@ protected: Id typeId; Op opCode; std::vector operands; - std::string originalString; // could be optimized away; convenience for getting string operand Block* block; }; @@ -256,7 +258,8 @@ public: delete blocks[i]; } Id getId() const { return functionInstruction.getResultId(); } - Id getParamId(int p) { return parameterInstructions[p]->getResultId(); } + Id getParamId(int p) const { return parameterInstructions[p]->getResultId(); } + Id getParamType(int p) const { return parameterInstructions[p]->getTypeId(); } void addBlock(Block* block) { blocks.push_back(block); } void removeBlock(Block* block) @@ -273,6 +276,10 @@ public: const std::vector& getBlocks() const { return blocks; } void addLocalVariable(std::unique_ptr inst); Id getReturnType() const { return functionInstruction.getTypeId(); } + + void setImplicitThis() { implicitThis = true; } + bool hasImplicitThis() const { return implicitThis; } + void dump(std::vector& out) const { // OpFunction @@ -296,6 +303,7 @@ protected: Instruction functionInstruction; std::vector parameterInstructions; std::vector blocks; + bool implicitThis; // true if this is a member function expecting to be passed a 'this' as the first argument }; // @@ -354,7 +362,7 @@ protected: // - the OpFunction instruction // - all the OpFunctionParameter instructions __inline Function::Function(Id id, Id resultType, Id functionType, Id firstParamId, Module& parent) - : parent(parent), functionInstruction(id, resultType, OpFunction) + : parent(parent), functionInstruction(id, resultType, OpFunction), implicitThis(false) { // OpFunction functionInstruction.addImmediateOperand(FunctionControlMaskNone); diff --git a/deps/glslang/glslang/StandAlone/CMakeLists.txt b/deps/glslang/glslang/StandAlone/CMakeLists.txt old mode 100644 new mode 100755 index 231ba277a7..d500121df5 --- a/deps/glslang/glslang/StandAlone/CMakeLists.txt +++ b/deps/glslang/glslang/StandAlone/CMakeLists.txt @@ -1,14 +1,13 @@ add_library(glslang-default-resource-limits - ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp -) + ${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} -) + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC ${PROJECT_SOURCE_DIR}) -set(SOURCES StandAlone.cpp) +set(SOURCES StandAlone.cpp DirStackFileIncluder.h) set(REMAPPER_SOURCES spirv-remap.cpp) add_executable(glslangValidator ${SOURCES}) @@ -20,9 +19,6 @@ glslang_set_link_args(spirv-remap) set(LIBRARIES glslang - OGLCompiler - OSDependent - HLSL SPIRV SPVRemapper glslang-default-resource-limits) @@ -42,8 +38,15 @@ if(WIN32) source_group("Source" FILES ${SOURCES}) endif(WIN32) -install(TARGETS glslangValidator - RUNTIME DESTINATION bin) +if(ENABLE_GLSLANG_INSTALL) + install(TARGETS glslangValidator + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(TARGETS spirv-remap - RUNTIME DESTINATION bin) + 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-new/StandAlone/DirStackFileIncluder.h b/deps/glslang/glslang/StandAlone/DirStackFileIncluder.h similarity index 100% rename from deps/glslang-new/StandAlone/DirStackFileIncluder.h rename to deps/glslang/glslang/StandAlone/DirStackFileIncluder.h diff --git a/deps/glslang/glslang/StandAlone/StandAlone.cpp b/deps/glslang/glslang/StandAlone/StandAlone.cpp index 84c80f58b3..6736dbcbf3 100644 --- a/deps/glslang/glslang/StandAlone/StandAlone.cpp +++ b/deps/glslang/glslang/StandAlone/StandAlone.cpp @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013-2016 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013-2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,25 +20,28 @@ // 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 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" @@ -46,11 +49,15 @@ #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" @@ -83,8 +90,18 @@ enum TOptions { EOptionAutoMapBindings = (1 << 19), EOptionFlattenUniformArrays = (1 << 20), EOptionNoStorageFormat = (1 << 21), - EOptionKeepUncalled = (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(). @@ -105,17 +122,16 @@ enum TFailCode { EShLanguage FindLanguage(const std::string& name, bool parseSuffix=true); void CompileFile(const char* fileName, ShHandle); void usage(); -void FreeFileData(char** data); -char** ReadFileData(const char* fileName); +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; -// Use to test breaking up a single shader file into multiple strings. -// Set in ReadFileData(). -int NumShaderStrings; +// array of unique places to leave the shader names and infologs for the asynchronous compiles +std::vector> WorkItems; TBuiltInResource Resources; std::string ConfigFile; @@ -125,49 +141,92 @@ std::string ConfigFile; // void ProcessConfigFile() { - char** configStrings = 0; - char* config = 0; - if (ConfigFile.size() > 0) { - configStrings = ReadFileData(ConfigFile.c_str()); - if (configStrings) - config = *configStrings; - else { - printf("Error opening configuration file; will instead use the default configuration\n"); - usage(); - } - } - - if (config == 0) { + if (ConfigFile.size() == 0) Resources = glslang::DefaultTBuiltInResource; - return; + else { + char* configString = ReadFileData(ConfigFile.c_str()); + glslang::DecodeResourceLimits(&Resources, configString); + FreeFileData(configString); } - - glslang::DecodeResourceLimits(&Resources, config); - - if (configStrings) - FreeFileData(configStrings); - else - delete[] config; } -// thread-safe list of shaders to asynchronously grab and compile -glslang::TWorklist Worklist; - -// array of unique places to leave the shader names and infologs for the asynchronous compiles -glslang::TWorkItem** Work = 0; -int NumWorkItems = 0; - 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 -std::array baseSamplerBinding; -std::array baseTextureBinding; -std::array baseImageBinding; -std::array baseUboBinding; +// 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. @@ -212,16 +271,63 @@ bool SetConfigFile(const std::string& name) // void Error(const char* message) { - printf("%s: Error %s (use -h for usage)\n", ExecutableName, message); + fprintf(stderr, "%s: Error %s (use -h for usage)\n", ExecutableName, message); exit(EFailUsage); } // -// Process an optional binding base of the form: -// --argname [stage] base +// 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, std::array& base) +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(); @@ -229,16 +335,29 @@ void ProcessBindingBase(int& argc, char**& argv, std::array 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 base + // Parse form: --argname set for (int lang=0; lang>& workItems, int argc, char* argv[]) { - baseSamplerBinding.fill(0); - baseTextureBinding.fill(0); - baseImageBinding.fill(0); - baseUboBinding.fill(0); + for (int res = 0; res < glslang::EResCount; ++res) + baseBinding[res].fill(0); ExecutableName = argv[0]; - NumWorkItems = argc; // will include some empties where the '-' options were, but it doesn't matter, they'll be 0 - Work = new glslang::TWorkItem*[NumWorkItems]; - for (int w = 0; w < NumWorkItems; ++w) - Work[w] = 0; + workItems.reserve(argc); - argc--; - argv++; - for (; argc >= 1; argc--, argv++) { + 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 '-': @@ -275,103 +428,200 @@ void ProcessArguments(int argc, char* argv[]) std::transform(lowerword.begin(), lowerword.end(), lowerword.begin(), ::tolower); // handle --word style options - if (lowerword == "shift-sampler-bindings" || // synonyms - lowerword == "shift-sampler-binding" || - lowerword == "ssb") { - ProcessBindingBase(argc, argv, baseSamplerBinding); - } else if (lowerword == "shift-texture-bindings" || // synonyms - lowerword == "shift-texture-binding" || - lowerword == "stb") { - ProcessBindingBase(argc, argv, baseTextureBinding); - } else if (lowerword == "shift-image-bindings" || // synonyms - lowerword == "shift-image-binding" || - lowerword == "sib") { - ProcessBindingBase(argc, argv, baseImageBinding); - } else if (lowerword == "shift-ubo-bindings" || // synonyms - lowerword == "shift-ubo-binding" || - lowerword == "sub") { - ProcessBindingBase(argc, argv, baseUboBinding); - } else if (lowerword == "auto-map-bindings" || // synonyms - lowerword == "auto-map-binding" || - lowerword == "amb") { + 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 == "no-storage-format" || // synonyms - lowerword == "nsf") { - Options |= EOptionNoStorageFormat; - } else if (lowerword == "source-entrypoint" || // synonyms - lowerword == "sep") { - sourceEntryPointName = argv[1]; - if (argc > 0) { - argc--; - argv++; - } else - Error("no provided for --source-entrypoint"); - break; + } 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 'H': - Options |= EOptionHumanReadableSpv; - if ((Options & EOptionSpv) == 0) { - // default to Vulkan - Options |= EOptionSpv; - Options |= EOptionVulkanRules; - Options |= EOptionLinkProgram; - } + case 'C': + Options |= EOptionCascadingErrors; break; - case 'V': - Options |= EOptionSpv; - Options |= EOptionVulkanRules; - Options |= EOptionLinkProgram; - break; - case 'S': - shaderStageName = argv[1]; - if (argc > 0) { - argc--; - argv++; - } + case 'D': + if (argv[0][2] == 0) + Options |= EOptionReadHlsl; else - Error("no specified for -S"); - break; - case 'G': - Options |= EOptionSpv; - Options |= EOptionLinkProgram; - // undo a -H default to Vulkan - Options &= ~EOptionVulkanRules; + 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 'C': - Options |= EOptionCascadingErrors; - break; case 'd': - Options |= EOptionDefaultDesktop; - break; - case 'D': - Options |= EOptionReadHlsl; + 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 > 0) { - argc--; - argv++; - } else - Error("no provided for -e"); + 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(); @@ -386,12 +636,10 @@ void ProcessArguments(int argc, char* argv[]) Options |= EOptionMemoryLeakMode; break; case 'o': - binaryFileName = argv[1]; - if (argc > 0) { - argc--; - argv++; - } else + if (argc <= 1) Error("no provided for -o"); + binaryFileName = argv[1]; + bumpArg(); break; case 'q': Options |= EOptionDumpReflection; @@ -403,9 +651,7 @@ void ProcessArguments(int argc, char* argv[]) Options |= EOptionSuppressInfolog; break; case 't': - #ifdef _WIN32 - Options |= EOptionMultiThreaded; - #endif + Options |= EOptionMultiThreaded; break; case 'v': Options |= EOptionDumpVersions; @@ -423,12 +669,15 @@ void ProcessArguments(int argc, char* argv[]) } else { std::string name(argv[0]); if (! SetConfigFile(name)) { - Work[argc] = new glslang::TWorkItem(name); - Worklist.add(Work[argc]); + 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"); @@ -465,30 +714,51 @@ void SetMessageOptions(EShMessages& messages) 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. // -// Return 0 for failure, 1 for success. -// -unsigned int CompileShaders(void*) +void CompileShaders(glslang::TWorklist& worklist) { + if (Options & EOptionDebug) + Error("cannot generate debug information unless linking to generate code"); + glslang::TWorkItem* workItem; - while (Worklist.remove(workItem)) { - ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), Options); + if (Options & EOptionStdin) { + worklist.remove(workItem); + ShHandle compiler = ShConstructCompiler(FindLanguage("stdin"), Options); if (compiler == 0) - return 0; + return; - CompileFile(workItem->name.c_str(), compiler); + CompileFile("stdin", compiler); - if (! (Options & EOptionSuppressInfolog)) - workItem->results = ShGetInfoLog(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; - return 0; + 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. @@ -504,36 +774,41 @@ void PutsIfNonEmpty(const char* str) // This prevents erroneous newlines from appearing. void StderrIfNonEmpty(const char* str) { - if (str && str[0]) { - fprintf(stderr, "%s\n", 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; - std::string fileName; - char** text; // memory owned/managed externally - const char* fileNameList[1]; + 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 - // Need to have a special constructors to adjust the fileNameList, since back end needs a list of ptrs - ShaderCompUnit(EShLanguage istage, std::string &ifileName, char** itext) - { - stage = istage; - fileName = ifileName; - text = itext; - fileNameList[0] = fileName.c_str(); - } + ShaderCompUnit(EShLanguage stage) : stage(stage), count(0) { } - ShaderCompUnit(const ShaderCompUnit &rhs) + ShaderCompUnit(const ShaderCompUnit& rhs) { stage = rhs.stage; - fileName = rhs.fileName; - text = rhs.text; - fileNameList[0] = fileName.c_str(); + 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; + } }; // @@ -560,29 +835,77 @@ void CompileAndLinkShaderUnits(std::vector compUnits) 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, 1); + 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 (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->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]); - shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]); - shader->setShiftImageBinding(baseImageBinding[compUnit.stage]); - shader->setShiftUboBinding(baseUboBinding[compUnit.stage]); shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0); + 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; + 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; - glslang::TShader::ForbidInclude includer; if (shader->preprocess(&Resources, defaultVersion, ENoProfile, false, false, messages, &str, includer)) { PutsIfNonEmpty(str.c_str()); @@ -593,14 +916,14 @@ void CompileAndLinkShaderUnits(std::vector compUnits) StderrIfNonEmpty(shader->getInfoDebugLog()); continue; } - if (! shader->parse(&Resources, defaultVersion, false, messages)) + if (! shader->parse(&Resources, defaultVersion, false, messages, includer)) CompileFailed = true; program.addShader(shader); if (! (Options & EOptionSuppressInfolog) && ! (Options & EOptionMemoryLeakMode)) { - PutsIfNonEmpty(compUnit.fileName.c_str()); + PutsIfNonEmpty(compUnit.fileName[0].c_str()); PutsIfNonEmpty(shader->getInfoLog()); PutsIfNonEmpty(shader->getInfoDebugLog()); } @@ -619,7 +942,7 @@ void CompileAndLinkShaderUnits(std::vector compUnits) if (!program.mapIO()) LinkFailed = true; } - + // Report if (! (Options & EOptionSuppressInfolog) && ! (Options & EOptionMemoryLeakMode)) { @@ -643,14 +966,19 @@ void CompileAndLinkShaderUnits(std::vector compUnits) std::vector spirv; std::string warningsErrors; spv::SpvBuildLogger logger; - glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), spirv, &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)); + glslang::OutputSpvHex(spirv, GetBinaryName((EShLanguage)stage), variableName); } else { glslang::OutputSpvBin(spirv, GetBinaryName((EShLanguage)stage)); } @@ -687,29 +1015,36 @@ void CompileAndLinkShaderUnits(std::vector compUnits) // 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() +void CompileAndLinkShaderFiles(glslang::TWorklist& Worklist) { std::vector compUnits; - // 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), - workItem->name, - ReadFileData(workItem->name.c_str()) - ); - - if (! compUnit.text) { - usage(); - return; - } - + // 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, @@ -723,22 +1058,34 @@ void CompileAndLinkShaderFiles() 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(it->text); + FreeFileData(const_cast(it->text[0])); } -int C_DECL main(int argc, char* argv[]) +int singleMain() { - ProcessArguments(argc, argv); + 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()) + if (workList.empty()) return ESuccess; } - if (Options & EOptionDumpVersions) { - printf("Glslang Version: %s %s\n", GLSLANG_REVISION, GLSLANG_DATE); + 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; @@ -746,16 +1093,22 @@ int C_DECL main(int argc, char* argv[]) 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()) + if (workList.empty()) return ESuccess; } - if (Worklist.empty()) { + 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(); // @@ -766,47 +1119,45 @@ int C_DECL main(int argc, char* argv[]) if (Options & EOptionLinkProgram || Options & EOptionOutputPreprocessed) { glslang::InitializeProcess(); - CompileAndLinkShaderFiles(); + 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(); - for (int w = 0; w < NumWorkItems; ++w) { - if (Work[w]) { - delete Work[w]; - } - } } else { ShInitialize(); + ShInitialize(); // also test reference counting of users + ShFinalize(); // also test reference counting of users - bool printShaderNames = Worklist.size() > 1; + bool printShaderNames = workList.size() > 1; if (Options & EOptionMultiThreaded) { - const int NumThreads = 16; - void* threads[NumThreads]; - for (int t = 0; t < NumThreads; ++t) { - threads[t] = glslang::OS_CreateThread(&CompileShaders); - if (! threads[t]) { - printf("Failed to create thread\n"); + 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; } } - glslang::OS_WaitForAllThreads(threads, NumThreads); + + std::for_each(threads.begin(), threads.end(), [](std::thread& t) { t.join(); }); } else - CompileShaders(0); + CompileShaders(workList); // Print out all the resulting infologs - for (int w = 0; w < NumWorkItems; ++w) { - if (Work[w]) { - if (printShaderNames || Work[w]->results.size() > 0) - PutsIfNonEmpty(Work[w]->name.c_str()); - PutsIfNonEmpty(Work[w]->results.c_str()); - delete Work[w]; + 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(); } - delete[] Work; - if (CompileFailed) return EFailCompile; if (LinkFailed) @@ -815,6 +1166,25 @@ int C_DECL main(int argc, char* argv[]) 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: @@ -826,36 +1196,48 @@ int C_DECL main(int argc, char* argv[]) // .frag = fragment // .comp = compute // -EShLanguage FindLanguage(const std::string& name, bool parseSuffix) +// 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) { - size_t ext = 0; - - // Search for a suffix on a filename: e.g, "myfile.frag". If given - // the suffix directly, we skip looking the '.' - if (parseSuffix) { - ext = name.rfind('.'); - if (ext == std::string::npos) { + 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; } - ++ext; - } + } else + stageName = name; - std::string suffix = name.substr(ext, std::string::npos); - if (shaderStageName) - suffix = shaderStageName; - - if (suffix == "vert") + if (stageName == "vert") return EShLangVertex; - else if (suffix == "tesc") + else if (stageName == "tesc") return EShLangTessControl; - else if (suffix == "tese") + else if (stageName == "tese") return EShLangTessEvaluation; - else if (suffix == "geom") + else if (stageName == "geom") return EShLangGeometry; - else if (suffix == "frag") + else if (stageName == "frag") return EShLangFragment; - else if (suffix == "comp") + else if (stageName == "comp") return EShLangCompute; usage(); @@ -863,40 +1245,40 @@ EShLanguage FindLanguage(const std::string& name, bool parseSuffix) } // -// Read a file's data into a string, and compile it using the old interface ShCompile, +// 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** shaderStrings = ReadFileData(fileName); - if (! shaderStrings) { - usage(); + 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); } - int* lengths = new int[NumShaderStrings]; - // move to length-based strings, rather than null-terminated strings - for (int s = 0; s < NumShaderStrings; ++s) - lengths[s] = (int)strlen(shaderStrings[s]); - - if (! shaderStrings) { - CompileFailed = true; - return; - } + 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, shaderStrings, NumShaderStrings, 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", + // 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); + // 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) @@ -904,7 +1286,7 @@ void CompileFile(const char* fileName, ShHandle compiler) } delete [] lengths; - FreeFileData(shaderStrings); + FreeFileData(shaderString); if (ret == 0) CompileFailed = true; @@ -917,8 +1299,8 @@ void usage() { printf("Usage: glslangValidator [option]... [file]...\n" "\n" - "Where: each 'file' ends in ., where is one of\n" - " .conf to provide an optional config file that replaces the default configuration\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" @@ -926,67 +1308,123 @@ void usage() " .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" - "Compilation warnings and errors will be printed to stdout.\n" - "\n" - "To get other information, use one of the following options:\n" - "Each option must be specified separately.\n" - " -V create SPIR-V binary, under Vulkan semantics; turns on -l;\n" - " default file name is .spv (-o overrides this)\n" - " -G create SPIR-V binary, under OpenGL semantics; turns on -l;\n" - " default file name is .spv (-o overrides this)\n" - " -H print human readable form of SPIR-V; turns on -V\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" - " -S uses explicit stage specified, rather then the file extension.\n" - " valid choices are vert, tesc, tese, geom, frag, or comp\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" - " -C cascading errors; risks crashes from accumulation of error recoveries\n" " -d default to desktop (#version 110) when there is no shader #version\n" " (default is ES version 100)\n" - " -D input is HLSL\n" - " -e specify entry-point name\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" + " -o save binary to , requires a binary option (e.g., -V)\n" " -q dump reflection query database\n" - " -r relaxed semantic error-checking mode\n" - " -s silent mode\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 suppress warnings (except as required by #extension : warn)\n" - " -x save 32-bit hexadecimal numbers as text, requires a binary option (e.g., -V)\n" - "\n" - " --shift-sampler-binding [stage] num set base binding number for samplers\n" - " --ssb [stage] num synonym for --shift-sampler-binding\n" - "\n" - " --shift-texture-binding [stage] num set base binding number for textures\n" - " --stb [stage] num synonym for --shift-texture-binding\n" - "\n" - " --shift-image-binding [stage] num set base binding number for images (uav)\n" - " --sib [stage] num synonym for --shift-image-binding\n" - "\n" - " --shift-UBO-binding [stage] num set base binding number for UBOs\n" - " --sub [stage] num synonym for --shift-UBO-binding\n" - "\n" - " --auto-map-bindings automatically bind uniform variables without\n" - " explicit bindings.\n" - " --amb synonym for --auto-map-bindings\n" - "\n" - " --flatten-uniform-arrays flatten uniform texture & sampler arrays to scalars\n" - " --fua synonym for --flatten-uniform-arrays\n" - "\n" - " --no-storage-format use Unknown image format\n" - " --nsf synonym for --no-storage-format\n" - "\n" - " --source-entrypoint name the given shader source function is renamed to be the entry point given in -e\n" - " --sep synonym for --source-entrypoint\n" - "\n" - " --keep-uncalled don't eliminate uncalled functions when linking\n" - " --ku synonym for --keep-uncalled\n" + " -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); @@ -1024,76 +1462,33 @@ int fopen_s( // // Malloc a string of sufficient size and read a string into it. // -char** ReadFileData(const char* fileName) +char* ReadFileData(const char* fileName) { FILE *in = nullptr; int errorCode = fopen_s(&in, fileName, "r"); - - int count = 0; - const int maxSourceStrings = 5; // for testing splitting shader/tokens across multiple strings - char** return_data = (char**)malloc(sizeof(char *) * (maxSourceStrings+1)); // freed in FreeFileData() - if (errorCode || in == nullptr) Error("unable to open input file"); - + + int count = 0; while (fgetc(in) != EOF) count++; fseek(in, 0, SEEK_SET); - char *fdata = (char*)malloc(count+2); // freed before return of this function - if (! fdata) - Error("can't allocate memory"); - - if ((int)fread(fdata, 1, count, in) != count) { - free(fdata); + 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"); } - fdata[count] = '\0'; + return_data[count] = '\0'; fclose(in); - if (count == 0) { - // recover from empty file - return_data[0] = (char*)malloc(count+2); // freed in FreeFileData() - return_data[0][0]='\0'; - NumShaderStrings = 0; - free(fdata); - - return return_data; - } else - NumShaderStrings = 1; // Set to larger than 1 for testing multiple strings - - // compute how to split up the file into multiple strings, for testing multiple strings - int len = (int)(ceil)((float)count/(float)NumShaderStrings); - int ptr_len = 0; - int i = 0; - while (count > 0) { - return_data[i] = (char*)malloc(len + 2); // freed in FreeFileData() - memcpy(return_data[i], fdata + ptr_len, len); - return_data[i][len] = '\0'; - count -= len; - ptr_len += len; - if (count < len) { - if (count == 0) { - NumShaderStrings = i + 1; - break; - } - len = count; - } - ++i; - } - - free(fdata); - return return_data; } -void FreeFileData(char** data) +void FreeFileData(char* data) { - for(int i = 0; i < NumShaderStrings; i++) - free(data[i]); - free(data); } diff --git a/deps/glslang/glslang/StandAlone/Worklist.h b/deps/glslang/glslang/StandAlone/Worklist.h index cfa80a8321..91b6f516be 100644 --- a/deps/glslang/glslang/StandAlone/Worklist.h +++ b/deps/glslang/glslang/StandAlone/Worklist.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,25 +19,26 @@ // 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 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 +#include namespace glslang { @@ -58,24 +59,19 @@ namespace glslang { void add(TWorkItem* item) { - GetGlobalLock(); - + std::lock_guard guard(mutex); worklist.push_back(item); - - ReleaseGlobalLock(); } bool remove(TWorkItem*& item) { - GetGlobalLock(); + std::lock_guard guard(mutex); if (worklist.empty()) return false; item = worklist.front(); worklist.pop_front(); - ReleaseGlobalLock(); - return true; } @@ -90,6 +86,7 @@ namespace glslang { } protected: + std::mutex mutex; std::list worklist; }; diff --git a/deps/glslang/glslang/StandAlone/spirv-remap.cpp b/deps/glslang/glslang/StandAlone/spirv-remap.cpp index f35b58eda9..998f7428aa 100644 --- a/deps/glslang/glslang/StandAlone/spirv-remap.cpp +++ b/deps/glslang/glslang/StandAlone/spirv-remap.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2015 LunarG, Inc. +// Copyright (C) 2015 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 @@ -143,8 +143,8 @@ namespace { << " [--map (all|types|names|funcs)]" << " [--dce (all|types|funcs)]" << " [--opt (all|loadstore)]" - << " [--strip-all | --strip all | -s]" - << " [--do-everything]" + << " [--strip-all | --strip all | -s]" + << " [--do-everything]" << " --input | -i file1 [file2...] --output|-o DESTDIR" << std::endl; @@ -311,7 +311,6 @@ namespace { } // namespace - int main(int argc, char** argv) { std::vector inputFile; diff --git a/deps/glslang-new/Test/100samplerExternal.frag b/deps/glslang/glslang/Test/100samplerExternal.frag similarity index 100% rename from deps/glslang-new/Test/100samplerExternal.frag rename to deps/glslang/glslang/Test/100samplerExternal.frag diff --git a/deps/glslang/glslang/Test/110scope.vert b/deps/glslang/glslang/Test/110scope.vert old mode 100644 new mode 100755 index e28db0fdb3..86c27a584e --- a/deps/glslang/glslang/Test/110scope.vert +++ b/deps/glslang/glslang/Test/110scope.vert @@ -71,4 +71,17 @@ void main() 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 index 9035aed7b4..ea35b80e42 100644 --- a/deps/glslang/glslang/Test/120.frag +++ b/deps/glslang/glslang/Test/120.frag @@ -236,3 +236,13 @@ void foo12111() 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/140.vert b/deps/glslang/glslang/Test/140.vert index 380d30e7c4..914e672d8f 100644 --- a/deps/glslang/glslang/Test/140.vert +++ b/deps/glslang/glslang/Test/140.vert @@ -57,3 +57,23 @@ void foo() 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.vert b/deps/glslang/glslang/Test/150.vert index 8e1db4dd8b..4dd9e5ca81 100644 --- a/deps/glslang/glslang/Test/150.vert +++ b/deps/glslang/glslang/Test/150.vert @@ -1,5 +1,9 @@ #version 150 core +#ifndef GL_core_profile +# error standard macro GL_core_profile not defined +#endif + in vec4 iv4; uniform float ps; diff --git a/deps/glslang/glslang/Test/300.vert b/deps/glslang/glslang/Test/300.vert index 83b9bb112a..daf98b836f 100644 --- a/deps/glslang/glslang/Test/300.vert +++ b/deps/glslang/glslang/Test/300.vert @@ -184,4 +184,21 @@ void fooDeeparray() 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-new/Test/300samplerExternal.frag b/deps/glslang/glslang/Test/300samplerExternal.frag similarity index 100% rename from deps/glslang-new/Test/300samplerExternal.frag rename to deps/glslang/glslang/Test/300samplerExternal.frag diff --git a/deps/glslang/glslang/Test/310.comp b/deps/glslang/glslang/Test/310.comp index 3252728c80..9ca8eaaa10 100644 --- a/deps/glslang/glslang/Test/310.comp +++ b/deps/glslang/glslang/Test/310.comp @@ -4,7 +4,7 @@ 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 @@ -238,3 +238,19 @@ float t__; // 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 index e9f0395004..6814e6c539 100644 --- a/deps/glslang/glslang/Test/310.frag +++ b/deps/glslang/glslang/Test/310.frag @@ -429,3 +429,23 @@ void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on 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.tese b/deps/glslang/glslang/Test/310.tese index 63b1daa697..bbeaa87fcf 100644 --- a/deps/glslang/glslang/Test/310.tese +++ b/deps/glslang/glslang/Test/310.tese @@ -55,7 +55,7 @@ patch sample in vec3 badp4; // ERROR #extension GL_ARB_separate_shader_objects : enable -in gl_PerVertex // ERROR, no size +in gl_PerVertex { vec4 gl_Position; } gl_in[]; diff --git a/deps/glslang/glslang/Test/310AofA.vert b/deps/glslang/glslang/Test/310AofA.vert index a196388de1..fba2977257 100644 --- a/deps/glslang/glslang/Test/310AofA.vert +++ b/deps/glslang/glslang/Test/310AofA.vert @@ -113,3 +113,9 @@ 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 index 72c403e834..7aa0ee1b72 100644 --- a/deps/glslang/glslang/Test/310implicitSizeArrayError.vert +++ b/deps/glslang/glslang/Test/310implicitSizeArrayError.vert @@ -1,5 +1,5 @@ #version 310 es -layout (location=0) uniform Block { +layout (binding=0) uniform Block { highp int a[]; } uni; layout (location=0) out highp int o; diff --git a/deps/glslang-new/Test/310runtimeArray.vert b/deps/glslang/glslang/Test/310runtimeArray.vert similarity index 100% rename from deps/glslang-new/Test/310runtimeArray.vert rename to deps/glslang/glslang/Test/310runtimeArray.vert diff --git a/deps/glslang-new/Test/320.comp b/deps/glslang/glslang/Test/320.comp similarity index 100% rename from deps/glslang-new/Test/320.comp rename to deps/glslang/glslang/Test/320.comp diff --git a/deps/glslang-new/Test/320.frag b/deps/glslang/glslang/Test/320.frag similarity index 100% rename from deps/glslang-new/Test/320.frag rename to deps/glslang/glslang/Test/320.frag diff --git a/deps/glslang-new/Test/320.geom b/deps/glslang/glslang/Test/320.geom similarity index 100% rename from deps/glslang-new/Test/320.geom rename to deps/glslang/glslang/Test/320.geom diff --git a/deps/glslang-new/Test/320.tesc b/deps/glslang/glslang/Test/320.tesc similarity index 100% rename from deps/glslang-new/Test/320.tesc rename to deps/glslang/glslang/Test/320.tesc diff --git a/deps/glslang-new/Test/320.tese b/deps/glslang/glslang/Test/320.tese similarity index 100% rename from deps/glslang-new/Test/320.tese rename to deps/glslang/glslang/Test/320.tese diff --git a/deps/glslang-new/Test/320.vert b/deps/glslang/glslang/Test/320.vert similarity index 100% rename from deps/glslang-new/Test/320.vert rename to deps/glslang/glslang/Test/320.vert diff --git a/deps/glslang/glslang/Test/400.frag b/deps/glslang/glslang/Test/400.frag index b7460b4a07..039d4809f1 100644 --- a/deps/glslang/glslang/Test/400.frag +++ b/deps/glslang/glslang/Test/400.frag @@ -184,10 +184,8 @@ void qlod() lod = textureQueryLod(sampRect, pf2); // ERROR } -struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member - uniform uint uu; -out int iout; +out uint iout; void bitwiseConv() { @@ -195,3 +193,9 @@ void bitwiseConv() 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 old mode 100644 new mode 100755 index 0b77e12120..f8e89558c0 --- a/deps/glslang/glslang/Test/400.geom +++ b/deps/glslang/glslang/Test/400.geom @@ -300,9 +300,9 @@ void doubles() dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); - dmat2v *= matrixCompMult(dmat2v, dmat2v); - dmat3v *= matrixCompMult(dmat3v, dmat3v); - dmat4v *= matrixCompMult(dmat4v, dmat4v); + dmat2v *= matrixCompMult(dmat2v, dmat2v); + dmat3v *= matrixCompMult(dmat3v, dmat3v); + dmat4v *= matrixCompMult(dmat4v, dmat4v); dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); diff --git a/deps/glslang/glslang/Test/400.tesc b/deps/glslang/glslang/Test/400.tesc index d01bd3ea1b..415d7f7d7b 100644 --- a/deps/glslang/glslang/Test/400.tesc +++ b/deps/glslang/glslang/Test/400.tesc @@ -103,3 +103,23 @@ patch out pinbn { 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 index a1d3ed8289..c110a1c4de 100644 --- a/deps/glslang/glslang/Test/400.tese +++ b/deps/glslang/glslang/Test/400.tese @@ -51,7 +51,7 @@ patch sample in vec3 badp4; // ERROR #extension GL_ARB_separate_shader_objects : enable -in gl_PerVertex // ERROR, no size +in gl_PerVertex { float gl_ClipDistance[1]; } gl_in[]; @@ -103,3 +103,23 @@ 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-new/Test/435.vert b/deps/glslang/glslang/Test/435.vert similarity index 100% rename from deps/glslang-new/Test/435.vert rename to deps/glslang/glslang/Test/435.vert diff --git a/deps/glslang/glslang/Test/440.vert b/deps/glslang/glslang/Test/440.vert index 2e61f79757..4ab6f2ee21 100644 --- a/deps/glslang/glslang/Test/440.vert +++ b/deps/glslang/glslang/Test/440.vert @@ -174,6 +174,12 @@ out layout(xfb_buffer=7, xfb_offset=0) bblck10 { // link ERROR, implicit stride 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 diff --git a/deps/glslang/glslang/Test/450.comp b/deps/glslang/glslang/Test/450.comp index 7f723ec0fe..fb2b56a771 100644 --- a/deps/glslang/glslang/Test/450.comp +++ b/deps/glslang/glslang/Test/450.comp @@ -1 +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 index 04f3aa1ca2..076d0b3a96 100644 --- a/deps/glslang/glslang/Test/450.frag +++ b/deps/glslang/glslang/Test/450.frag @@ -54,3 +54,15 @@ 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 index af67681378..45cbecba56 100644 --- a/deps/glslang/glslang/Test/450.geom +++ b/deps/glslang/glslang/Test/450.geom @@ -8,7 +8,12 @@ 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 index 75a9bf4692..bf5c08373b 100644 --- a/deps/glslang/glslang/Test/450.tesc +++ b/deps/glslang/glslang/Test/450.tesc @@ -12,3 +12,12 @@ 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 index 61447931c8..8cdeb20722 100644 --- a/deps/glslang/glslang/Test/450.tese +++ b/deps/glslang/glslang/Test/450.tese @@ -12,3 +12,10 @@ 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 index 48da3edb96..e99a133c13 100644 --- a/deps/glslang/glslang/Test/450.vert +++ b/deps/glslang/glslang/Test/450.vert @@ -21,3 +21,36 @@ 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-new/Test/460.frag b/deps/glslang/glslang/Test/460.frag similarity index 100% rename from deps/glslang-new/Test/460.frag rename to deps/glslang/glslang/Test/460.frag diff --git a/deps/glslang-new/Test/460.vert b/deps/glslang/glslang/Test/460.vert similarity index 100% rename from deps/glslang-new/Test/460.vert rename to deps/glslang/glslang/Test/460.vert diff --git a/deps/glslang/glslang/Test/array.frag b/deps/glslang/glslang/Test/array.frag index 4ccb00cdb6..a7b96a4419 100644 --- a/deps/glslang/glslang/Test/array.frag +++ b/deps/glslang/glslang/Test/array.frag @@ -102,5 +102,12 @@ void foo3() } int[] i = int[](); // ERROR, need constructor arguments -float emptyA[]; -float b = vec4(emptyA); // ERROR, array can't be a constructor argument +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/badChars.frag b/deps/glslang/glslang/Test/badChars.frag index d67bf3a5e0..3e9700d934 100644 --- a/deps/glslang/glslang/Test/badChars.frag +++ b/deps/glslang/glslang/Test/badChars.frag @@ -4,3 +4,4 @@ #if #endif int aÿ +#define A "ÿ \ No newline at end of file diff --git a/deps/glslang-new/Test/bar.h b/deps/glslang/glslang/Test/bar.h similarity index 100% rename from deps/glslang-new/Test/bar.h rename to deps/glslang/glslang/Test/bar.h diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.aliasOpaque.frag.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.flattenOpaque.frag.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.flattenSubset.frag.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.flattenSubset2.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.flattenSubset2.frag.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out diff --git a/deps/glslang-new/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out similarity index 100% rename from deps/glslang-new/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out rename to deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/100.frag.out b/deps/glslang/glslang/Test/baseResults/100.frag.out index 42635d3b02..5e702e87ca 100644 --- a/deps/glslang/glslang/Test/baseResults/100.frag.out +++ b/deps/glslang/glslang/Test/baseResults/100.frag.out @@ -5,7 +5,7 @@ ERROR: 0:3: 'array initializer' : not supported for this version or the enabled 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: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 @@ -84,7 +84,7 @@ 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 +ERROR: 0:3002: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON ERROR: 77 compilation errors. No code generated. @@ -97,280 +97,280 @@ 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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: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 Definition: f11(s21; ( global void) 0:67 Function Parameters: -0:67 'p2d' (in lowp sampler2D) -0:87 Function Definition: foo234( (global void) +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 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 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 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: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 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: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: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 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: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 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 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 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: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: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: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: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 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 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 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: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 '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 Definition: gggf(f1; ( global mediump int) 0:173 Function Parameters: -0:173 'f' (in mediump float) +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 Definition: agggf(f1; ( global mediump int) 0:175 Function Parameters: -0:175 'f' (in mediump float) +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 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: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 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: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 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 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:214 true case 0:214 Constant: 0:214 1 (const int) @@ -378,11 +378,11 @@ ERROR: node is still EOpNull! 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 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 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:220 true case 0:220 Constant: 0:220 1 (const int) @@ -390,37 +390,37 @@ ERROR: node is still EOpNull! 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 implicitly-sized 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:? '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:? 'fi2' ( const mediump float) 0:? 4.000000 -0:? 'fi3' (const mediump float) +0:? 'fi3' ( const mediump float) 0:? 5.000000 -0:? 'init1' (global mediump int) -0:? 'init2' (global mediump int) +0:? 'init1' ( global mediump int) +0:? 'init2' ( global mediump int) Linked fragment stage: @@ -435,94 +435,94 @@ 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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: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 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 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 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 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:214 true case 0:214 Constant: 0:214 1 (const int) @@ -530,11 +530,11 @@ ERROR: node is still EOpNull! 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 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 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:220 true case 0:220 Constant: 0:220 1 (const int) @@ -542,35 +542,35 @@ ERROR: node is still EOpNull! 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:? '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:? 'fi2' ( const mediump float) 0:? 4.000000 -0:? 'fi3' (const mediump float) +0:? 'fi3' ( const mediump float) 0:? 5.000000 -0:? 'init1' (global mediump int) -0:? 'init2' (global mediump int) +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 index 46c256075a..ab0ff1ee73 100644 --- a/deps/glslang/glslang/Test/baseResults/100Limits.vert.out +++ b/deps/glslang/glslang/Test/baseResults/100Limits.vert.out @@ -1,23 +1,23 @@ 100Limits.vert Shader version: 100 0:? Sequence -0:15 Function Definition: foo(f1; (global void) +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: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 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 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 @@ -31,20 +31,20 @@ Shader version: 100 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 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: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 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 @@ -52,8 +52,8 @@ Shader version: 100 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 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 @@ -61,356 +61,356 @@ Shader version: 100 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 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 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 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 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 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 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 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 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: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 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 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 Test condition and select ( temp void) 0:36 Condition -0:36 Compare Equal (temp bool) -0:36 'ga' (global highp int) +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 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: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 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 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 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 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 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 Test condition and select ( temp void) 0:38 Condition -0:38 Compare Equal (temp bool) -0:38 'ga' (global highp int) +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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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: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: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: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 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: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 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 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: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 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: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: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 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 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 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: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: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 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 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 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 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: @@ -418,25 +418,25 @@ Shader version: 100 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 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:? '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:? 'v3' ( const highp 3-component vector of float) 0:? 2.000000 0:? 2.000000 0:? 2.000000 @@ -447,23 +447,23 @@ Linked vertex stage: Shader version: 100 0:? Sequence -0:15 Function Definition: foo(f1; (global void) +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: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 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 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 @@ -477,20 +477,20 @@ Shader version: 100 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 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: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 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 @@ -498,8 +498,8 @@ Shader version: 100 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 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 @@ -507,356 +507,356 @@ Shader version: 100 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 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 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 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 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 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 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 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 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: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 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 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 Test condition and select ( temp void) 0:36 Condition -0:36 Compare Equal (temp bool) -0:36 'ga' (global highp int) +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 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: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 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 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 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 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 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 Test condition and select ( temp void) 0:38 Condition -0:38 Compare Equal (temp bool) -0:38 'ga' (global highp int) +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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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: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: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: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 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: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 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 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: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 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: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: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 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 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 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: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: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 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 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 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 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: @@ -864,25 +864,25 @@ Shader version: 100 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 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:? '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:? 'v3' ( const highp 3-component vector of float) 0:? 2.000000 0:? 2.000000 0:? 2.000000 diff --git a/deps/glslang-new/Test/baseResults/100samplerExternal.frag.out b/deps/glslang/glslang/Test/baseResults/100samplerExternal.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/100samplerExternal.frag.out rename to deps/glslang/glslang/Test/baseResults/100samplerExternal.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/100scope.vert.out b/deps/glslang/glslang/Test/baseResults/100scope.vert.out index 17423dc2d9..c59c8fd7d3 100644 --- a/deps/glslang/glslang/Test/baseResults/100scope.vert.out +++ b/deps/glslang/glslang/Test/baseResults/100scope.vert.out @@ -18,112 +18,112 @@ 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 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: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 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: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: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 Definition: radians(b1; ( global bool) 0:29 Function Parameters: -0:29 'x' (in bool) +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 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: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 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 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: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 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 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: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: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 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 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: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: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 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 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}) +0:? 'b' ( global bool) +0:? 'tan' ( global highp float) +0:? 's' ( smooth out structure{ global highp float f}) Linked vertex stage: @@ -133,96 +133,96 @@ ERROR: Linking vertex stage: No function definition (body) found: Shader version: 100 ERROR: node is still EOpNull! -0:3 Function Definition: f(i1;i1;i1; (global highp int) +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: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 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: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: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 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 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: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 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 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: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: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 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 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: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: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 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 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}) +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 index 74002ba72b..e23d3c0f46 100644 --- a/deps/glslang/glslang/Test/baseResults/110scope.vert.out +++ b/deps/glslang/glslang/Test/baseResults/110scope.vert.out @@ -2,130 +2,146 @@ ERROR: 0:5: 'a' : redefinition ERROR: 0:57: 'z' : undeclared identifier ERROR: 0:57: 'z' : redefinition -ERROR: 3 compilation errors. No code generated. +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 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: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 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:11 'a' ( in int) +0:25 Function Definition: cos(f1; ( global float) 0:25 Function Parameters: -0:25 'x' (in float) +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 Definition: radians(b1; ( global bool) 0:29 Function Parameters: -0:29 'x' (in bool) +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 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 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: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 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 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: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 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 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: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: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 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 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: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: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 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 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) +0:? 'b' ( global bool) +0:? 'c' ( global bool) +0:? 'f' ( global float) +0:? 'tan' ( global float) +0:? 'gi' ( global int) Linked vertex stage: @@ -137,109 +153,124 @@ ERROR: Linking vertex stage: No function definition (body) found: Shader version: 110 ERROR: node is still EOpNull! -0:3 Function Definition: f(i1;i1;i1; (global int) +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: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 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: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 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 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: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 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 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: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 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 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: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: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 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 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: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: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 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 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) +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 index 79898aafc3..e63c001002 100644 --- a/deps/glslang/glslang/Test/baseResults/120.frag.out +++ b/deps/glslang/glslang/Test/baseResults/120.frag.out @@ -1,27 +1,25 @@ 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: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' : illegal - vector component fields not from the same set -ERROR: 0:83: 'xyxyx' : illegal vector field selection -ERROR: 0:83: 'scalar swizzle' : not supported for this version or the enabled extensions -ERROR: 0:83: 'xy' : vector field selection out of range -ERROR: 0:84: 'z' : vector field selection out of range +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: 'int' : overloaded functions must have the same return type +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) @@ -31,17 +29,17 @@ ERROR: 0:99: 'return' : type does not match, or is not convertible to, the funct 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: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: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: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: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: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 @@ -50,254 +48,275 @@ ERROR: 0:189: 'texture1DGradARB' : required extension not requested: GL_ARB_shad 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:209: 'assign' : cannot convert from ' const float' to ' temp 4-component vector of float' ERROR: 0:212: 'sampler2DRect' : Reserved word. -ERROR: 53 compilation errors. No code generated. +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 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: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: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 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 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 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: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: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 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: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: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 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: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 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 'b' ( temp bool) 0:49 true case -0:49 Convert int to float (temp float) -0:49 'a' (temp int) +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: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 'b' ( temp bool) 0:50 true case -0:50 'f' (temp float) +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: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 'b' ( temp bool) 0:51 true case -0:51 'a' (temp int) +0:51 'a' ( temp int) 0:51 false case -0:51 'a' (temp int) +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: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: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:79 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:82 direct index ( temp float) +0:82 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:82 Constant: 0:82 0 (const int) -0:83 direct index (temp float) -0:83 'gl_FragColor' (fragColor 4-component vector of float FragColor) -0:83 Constant: -0:83 0 (const int) -0:84 direct index (temp float) -0:84 'centTexCoord' (centroid smooth in 2-component vector of float) +0: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 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 Definition: main( ( global int) 0:91 Function Parameters: -0:92 Function Definition: main(i1; (global void) +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:92 'a' ( in int) +0:97 Function Definition: foo(f1; ( global int) 0:97 Function Parameters: -0:97 'a' (out float) +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: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:103 'v' ( in 3-component vector of float) 0:105 Sequence -0:105 Test condition and select (temp void) +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 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 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: @@ -306,319 +325,333 @@ ERROR: node is still EOpNull! 0:106 Branch: Return with expression 0:106 Constant: 0:106 true (const bool) -0:109 Function Definition: v1( (global void) +0:109 Function Definition: v1( ( global void) 0:109 Function Parameters: -0:113 Function Definition: v2( (global void) +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 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 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 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 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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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 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: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: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: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: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: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:? '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: @@ -630,36 +663,37 @@ 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 Definition: main(i1; ( global void) 0:92 Function Parameters: -0:92 'a' (in int) +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:? '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 index 94a97b537e..5a91ed664e 100644 --- a/deps/glslang/glslang/Test/baseResults/120.vert.out +++ b/deps/glslang/glslang/Test/baseResults/120.vert.out @@ -12,29 +12,30 @@ ERROR: 0:28: 'length' : array must be declared with a size before using this me 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: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: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: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: 'float' : overloaded functions must have the same return type +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 @@ -53,16 +54,16 @@ ERROR: 0:176: 'bit shift right' : not supported for this version or the enabled 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: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: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: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: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: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 @@ -71,90 +72,89 @@ 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: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:200: '##' : token pasting not implemented (internal error) -ERROR: 0:200: '' : syntax error +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 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: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 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 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 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: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 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 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 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: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: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 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: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 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: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 @@ -163,42 +163,42 @@ ERROR: node is still EOpNull! 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 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: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 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 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 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: @@ -209,11 +209,11 @@ ERROR: node is still EOpNull! 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 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 Function Call: overloadE(mf22; ( global 3-component vector of float) 0:110 Constant: 0:110 0.500000 0:110 0.000000 @@ -221,180 +221,180 @@ ERROR: node is still EOpNull! 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 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: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 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 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: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: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: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: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 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 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 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 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 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 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 '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: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: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 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 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 move second child to first child ( temp float) +0:180 't' ( temp float) 0:180 Constant: 0:180 0.000000 0:186 Constant: @@ -403,31 +403,32 @@ ERROR: node is still EOpNull! 0:188 0.000000 0:189 Constant: 0:189 0.000000 -0:192 move second child to first child (temp float) +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:? '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:? '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:? 'abc' (global int) +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: @@ -435,69 +436,70 @@ Linked vertex stage: Shader version: 120 ERROR: node is still EOpNull! -0:15 Function Definition: main( (global void) +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: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 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 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 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: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 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 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:? '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:? '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:? 'abc' (global int) +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 index e71b3e28e3..81d055befe 100644 --- a/deps/glslang/glslang/Test/baseResults/130.frag.out +++ b/deps/glslang/glslang/Test/baseResults/130.frag.out @@ -4,20 +4,20 @@ 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: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: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: '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: '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 @@ -42,77 +42,77 @@ 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 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 implicitly-sized array of float ClipDistance) +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 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 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 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 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 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 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: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 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 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: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: @@ -123,34 +123,34 @@ ERROR: node is still EOpNull! 0:65 true (const bool) 0:66 Constant: 0:66 false (const bool) -0:77 Function Definition: bar23( (global void) +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: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 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 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 @@ -158,10 +158,10 @@ ERROR: node is still EOpNull! 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 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 @@ -170,10 +170,10 @@ ERROR: node is still EOpNull! 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 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 @@ -182,23 +182,23 @@ ERROR: node is still EOpNull! 0:85 1 (const int) 0:85 Constant: 0:85 2 (const int) -0:90 Function Definition: bar234( (global void) +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 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 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 @@ -206,20 +206,20 @@ ERROR: node is still EOpNull! 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 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 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 @@ -228,10 +228,10 @@ ERROR: node is still EOpNull! 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 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 @@ -240,66 +240,66 @@ ERROR: node is still EOpNull! 0:97 1 (const int) 0:97 Constant: 0:97 2 (const int) -0:107 Function Definition: bar235( (global void) +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 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: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 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: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 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 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 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 @@ -308,42 +308,42 @@ ERROR: node is still EOpNull! 0:117 0.200000 0:117 0.200000 0:117 0.200000 -0:129 Function Definition: bar23444( (global void) +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 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 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 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 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 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: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: @@ -354,54 +354,54 @@ ERROR: node is still EOpNull! 0:141 0.000000 0:143 Constant: 0:143 1 (const int) -0:162 Function Definition: qux2( (global void) +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: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: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 implicitly-sized 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:? '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) +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: @@ -417,44 +417,44 @@ 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 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 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:? '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) +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 index 1b3a0e19fa..e38043c60b 100644 --- a/deps/glslang/glslang/Test/baseResults/130.vert.out +++ b/deps/glslang/glslang/Test/baseResults/130.vert.out @@ -1,156 +1,155 @@ 130.vert ERROR: 0:59: 'gl_InstanceID' : undeclared identifier -ERROR: 0:59: '=' : cannot convert from 'temp float' to 'temp int' +ERROR: 0:59: '=' : cannot convert from ' temp float' to ' temp int' ERROR: 0:61: 'texelFetch' : no matching overloaded function found -ERROR: 0:61: 'assign' : cannot convert from 'const float' to 'temp int' -ERROR: 0:75: '##' : token pasting not implemented (internal error) -ERROR: 0:75: '' : syntax error -ERROR: 6 compilation errors. No code generated. +ERROR: 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 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 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 '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: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: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 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 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 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: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: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: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: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: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: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 implicitly-sized array of float ClipDistance) +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 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: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 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 implicitly-sized 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: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 implicitly-sized array of float ClipDistance) -0:? 'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord) -0:? 'abc' (global int) -0:? 'gl_VertexID' (gl_VertexId int VertexId) +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: @@ -159,128 +158,129 @@ ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVerte Shader version: 130 ERROR: node is still EOpNull! -0:15 Function Definition: main( (global void) +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 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 '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: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: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 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 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 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: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: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: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: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: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: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: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:? 'abc' (global int) -0:? 'gl_VertexID' (gl_VertexId int VertexId) +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 index 224cd30d8e..7ce2170362 100644 --- a/deps/glslang/glslang/Test/baseResults/140.frag.out +++ b/deps/glslang/glslang/Test/baseResults/140.frag.out @@ -15,72 +15,72 @@ 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 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 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 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 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 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 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 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 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 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: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 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 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:47 true case 0:47 Constant: 0:47 -2.000000 @@ -88,30 +88,30 @@ ERROR: node is still EOpNull! 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 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 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: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) +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: @@ -121,27 +121,27 @@ 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 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 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 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 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 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:47 true case 0:47 Constant: 0:47 -2.000000 @@ -149,21 +149,21 @@ ERROR: node is still EOpNull! 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 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) +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 index e7f88e3207..020afd08e6 100644 --- a/deps/glslang/glslang/Test/baseResults/140.vert.out +++ b/deps/glslang/glslang/Test/baseResults/140.vert.out @@ -9,90 +9,94 @@ 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: 10 compilation errors. No code generated. +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 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: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 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: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 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 implicitly-sized 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: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: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: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: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 @@ -102,11 +106,11 @@ ERROR: node is still EOpNull! 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 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 @@ -116,24 +120,34 @@ ERROR: node is still EOpNull! 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 implicitly-sized 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) +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: @@ -142,58 +156,60 @@ 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 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: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 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: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 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: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) +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 index 143de3b5a1..1454b55837 100644 --- a/deps/glslang/glslang/Test/baseResults/150.frag.out +++ b/deps/glslang/glslang/Test/baseResults/150.frag.out @@ -10,116 +10,116 @@ 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 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: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 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 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: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: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: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: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: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: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: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: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 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: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 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: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: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: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) +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: @@ -129,30 +129,30 @@ 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 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: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 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) +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 index dc5a41a27b..92b8e1aa50 100644 --- a/deps/glslang/glslang/Test/baseResults/150.geom.out +++ b/deps/glslang/glslang/Test/baseResults/150.geom.out @@ -44,83 +44,83 @@ 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 Definition: main( ( global void) 0:25 Function Parameters: 0:27 Sequence -0:27 EmitVertex (global void) -0:28 EndPrimitive (global void) +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 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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: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 Definition: foo(i1; ( global void) 0:67 Function Parameters: -0:67 'a' (in int) +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 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: @@ -129,50 +129,50 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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 implicitly-sized 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 implicitly-sized 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) +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: @@ -185,105 +185,105 @@ 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 Definition: main( ( global void) 0:25 Function Parameters: 0:27 Sequence -0:27 EmitVertex (global void) -0:28 EndPrimitive (global void) +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 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 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 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 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 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 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 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 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: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 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) +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 index 21fade77b9..89220264fa 100644 --- a/deps/glslang/glslang/Test/baseResults/150.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/150.tesc.out @@ -3,42 +3,42 @@ Shader version: 150 Requested GL_ARB_tessellation_shader vertices = 4 0:? Sequence -0:10 Function Definition: main( (global void) +0:10 Function Definition: main( ( global void) 0:10 Function Parameters: 0:12 Sequence -0:12 Barrier (global void) +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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -46,62 +46,62 @@ vertices = 4 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: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: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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:28 'gl_InvocationID' (in int InvocationID) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:29 'gl_InvocationID' (in int InvocationID) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:30 'gl_InvocationID' (in int InvocationID) +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: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 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:? 'outa' (global 4-element array of int) -0:? 'patchOut' (patch out 4-component vector of float) +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 @@ -115,43 +115,43 @@ 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 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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -159,58 +159,57 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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) @@ -232,49 +231,53 @@ 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: 21 compilation errors. No code generated. +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 Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence -0:15 Barrier (global void) +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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -282,153 +285,162 @@ ERROR: node is still EOpNull! 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: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: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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:31 'gl_InvocationID' (in int InvocationID) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:32 'gl_InvocationID' (in int InvocationID) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:33 'gl_InvocationID' (in int InvocationID) +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: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 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 Test condition and select ( temp void) 0:38 Condition -0:38 Compare Greater Than (temp bool) -0:38 'a' (temp int) +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:39 Barrier ( global void) 0:38 false case -0:41 Barrier (global void) -0:43 Barrier (global void) +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 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:46 Barrier ( global void) 0:49 switch 0:49 condition -0:49 'a' (temp int) +0:49 'a' ( temp int) 0:49 body 0:49 Sequence 0:50 default: 0:? Sequence -0:51 Barrier (global void) +0:51 Barrier ( global void) 0:52 Branch: Break -0:54 Test condition and select (temp int) +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 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 'a' ( temp int) 0:54 false case -0:54 Comma (temp int) -0:54 Barrier (global void) -0:54 'a' (temp int) +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) 0:56 Sequence -0:56 Barrier (global void) +0:56 Barrier ( global void) 0:59 Branch: Return -0:61 Barrier (global void) -0:67 Function Definition: foo( (global void) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: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: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 implicitly-sized 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) +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 -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -441,7 +453,6 @@ 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:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 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' @@ -459,53 +470,57 @@ ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or 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: 30 compilation errors. No code generated. +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 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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -513,78 +528,87 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: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 implicitly-sized 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}) +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 -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier ERROR: 1 compilation errors. No code generated. @@ -592,20 +616,19 @@ 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 Definition: main( ( global void) 0:8 Function Parameters: 0:? Linker Objects -0:? 'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:? 'outa' (global 1-element array of int) -0:? 'patchOut' (patch out 4-component vector of float) +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 -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. 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: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. @@ -615,36 +638,36 @@ 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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -652,35 +675,35 @@ ERROR: node is still EOpNull! 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: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: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: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: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 Test condition and select ( temp void) 0:36 Condition -0:36 logical-or (temp bool) -0:36 Compare Not Equal (temp bool) +0:36 logical-or ( temp bool) +0:36 Compare Not Equal ( temp bool) 0:36 Constant: 0:36 -0.625000 0:36 -0.500000 @@ -690,11 +713,11 @@ ERROR: node is still EOpNull! 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 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 Compare Not Equal ( temp bool) 0:37 Constant: 0:37 0.375000 0:37 0.500000 @@ -704,34 +727,33 @@ ERROR: node is still EOpNull! 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 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) +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 -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. -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: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 'temp float' to 'temp structure{global float s, global float t}' +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. @@ -742,28 +764,28 @@ 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 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 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 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 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 @@ -771,48 +793,48 @@ ERROR: node is still EOpNull! 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 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 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 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 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: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: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:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) 0:86 Condition -0:86 Compare Equal (temp bool) +0:86 Compare Equal ( temp bool) 0:86 Constant: 0:86 1 (const uint) 0:86 2 (const uint) @@ -830,43 +852,43 @@ ERROR: node is still EOpNull! 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 '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 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:? '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:? '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 implicitly-sized 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:? '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 @@ -883,8 +905,8 @@ ERROR: node is still EOpNull! 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:? '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 @@ -901,11 +923,11 @@ ERROR: node is still EOpNull! 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) +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: @@ -920,9 +942,7 @@ ERROR: Linking tessellation control stage: Multiple function bodies in multiple 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 implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" -ERROR: Linking tessellation control stage: Types must match: - outa: "global 4-element array of int" versus "global 1-element array of int" + 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( @@ -933,7 +953,7 @@ ERROR: Linking tessellation control stage: Multiple function bodies in multiple 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 implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out 3-element array of block{out 4-component vector of float Position gl_Position}" + 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: @@ -952,44 +972,46 @@ ERROR: Linking tessellation evaluation stage: Multiple function bodies in multip 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 Definition: main( ( global void) 0:10 Function Parameters: 0:12 Sequence -0:12 Barrier (global void) +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 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 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 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 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: @@ -997,94 +1019,94 @@ vertices = 4 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: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: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: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: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: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: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 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 Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence -0:15 Barrier (global void) +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 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 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 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 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: @@ -1092,135 +1114,135 @@ vertices = 4 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: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: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: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: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: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: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 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 Test condition and select ( temp void) 0:38 Condition -0:38 Compare Greater Than (temp bool) -0:38 'a' (temp int) +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:39 Barrier ( global void) 0:38 false case -0:41 Barrier (global void) -0:43 Barrier (global void) +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 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:46 Barrier ( global void) 0:49 switch 0:49 condition -0:49 'a' (temp int) +0:49 'a' ( temp int) 0:49 body 0:49 Sequence 0:50 default: 0:? Sequence -0:51 Barrier (global void) +0:51 Barrier ( global void) 0:52 Branch: Break -0:54 Test condition and select (temp int) +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 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 'a' ( temp int) 0:54 false case -0:54 Comma (temp int) -0:54 Barrier (global void) -0:54 'a' (temp int) +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) 0:56 Sequence -0:56 Barrier (global void) +0:56 Barrier ( global void) 0:59 Branch: Return -0:61 Barrier (global void) -0:8 Function Definition: main( (global void) +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 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 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 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 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: @@ -1228,97 +1250,99 @@ vertices = 4 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: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: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: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: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) +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 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 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 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 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 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: @@ -1326,89 +1350,89 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 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: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: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: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 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 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 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 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: @@ -1416,75 +1440,75 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 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: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: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: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 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 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 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 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 @@ -1492,48 +1516,48 @@ ERROR: node is still EOpNull! 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 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 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 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 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: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: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:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) 0:86 Condition -0:86 Compare Equal (temp bool) +0:86 Compare Equal ( temp bool) 0:86 Constant: 0:86 1 (const uint) 0:86 2 (const uint) @@ -1551,65 +1575,65 @@ ERROR: node is still EOpNull! 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 '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 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:? '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:? '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:? '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 @@ -1626,8 +1650,8 @@ ERROR: node is still EOpNull! 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:? '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 @@ -1644,9 +1668,9 @@ ERROR: node is still EOpNull! 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) +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 index a82e7896fe..504160d578 100644 --- a/deps/glslang/glslang/Test/baseResults/150.vert.out +++ b/deps/glslang/glslang/Test/baseResults/150.vert.out @@ -1,50 +1,50 @@ 150.vert -ERROR: 0:22: 'a' : cannot redeclare a user-block member array +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:9 Function Definition: main( (global void) -0:9 Function Parameters: -0:11 Sequence -0:11 move second child to first child (temp 4-component vector of float) -0:11 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position) -0:11 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:11 Constant: -0:11 0 (const uint) -0:11 'iv4' (in 4-component vector of float) -0:12 move second child to first child (temp float) -0:12 gl_PointSize: direct index for structure (gl_PointSize float PointSize) -0:12 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:12 Constant: -0:12 1 (const uint) -0:12 'ps' (uniform float) -0:13 move second child to first child (temp float) -0:13 direct index (temp float ClipDistance) -0:13 gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance) -0:13 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:13 Constant: -0:13 2 (const uint) -0:13 Constant: -0:13 2 (const int) -0:13 direct index (temp float) -0:13 'iv4' (in 4-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:14 move second child to first child (temp 4-component vector of float) -0:14 gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex) -0:14 '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:14 Constant: -0:14 3 (const uint) -0:14 'iv4' (in 4-component vector of float) +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 implicitly-sized array of int a}) -0:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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: @@ -53,43 +53,43 @@ ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVerte Shader version: 150 ERROR: node is still EOpNull! -0:9 Function Definition: main( (global void) -0:9 Function Parameters: -0:11 Sequence -0:11 move second child to first child (temp 4-component vector of float) -0:11 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position) -0:11 '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:11 Constant: -0:11 0 (const uint) -0:11 'iv4' (in 4-component vector of float) -0:12 move second child to first child (temp float) -0:12 gl_PointSize: direct index for structure (gl_PointSize float PointSize) -0:12 '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:12 Constant: -0:12 1 (const uint) -0:12 'ps' (uniform float) -0:13 move second child to first child (temp float) -0:13 direct index (temp float ClipDistance) -0:13 gl_ClipDistance: direct index for structure (out 4-element array of float ClipDistance) -0:13 '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:13 Constant: -0:13 2 (const uint) -0:13 Constant: -0:13 2 (const int) -0:13 direct index (temp float) -0:13 'iv4' (in 4-component vector of float) -0:13 Constant: -0:13 0 (const int) -0:14 move second child to first child (temp 4-component vector of float) -0:14 gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float ClipVertex) -0:14 '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:14 Constant: -0:14 3 (const uint) -0:14 'iv4' (in 4-component vector of float) +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) +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 index cca6abd7ef..ee1b8a55a9 100644 --- a/deps/glslang/glslang/Test/baseResults/300.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300.frag.out @@ -1,7 +1,7 @@ 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 with this profile: es +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 @@ -26,13 +26,14 @@ ERROR: 0:101: 'arrays of arrays' : not supported for this version or the enabled 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: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] @@ -43,317 +44,317 @@ 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 -ERROR: 45 compilation errors. No code generated. +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 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: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: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 '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: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: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 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 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: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 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: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 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: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: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 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 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 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 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: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 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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 @@ -362,41 +363,41 @@ ERROR: node is still EOpNull! 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 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) +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: @@ -406,226 +407,226 @@ ERROR: Linking fragment stage: when more than one fragment shader output, all mu Shader version: 300 using early_fragment_tests ERROR: node is still EOpNull! -0:53 Function Definition: main( (global void) +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: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: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 '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: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: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 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 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: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 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: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 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) +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 index 5f060cba8e..95ebb92e3c 100644 --- a/deps/glslang/glslang/Test/baseResults/300.vert.out +++ b/deps/glslang/glslang/Test/baseResults/300.vert.out @@ -41,168 +41,176 @@ ERROR: 0:170: 'Bfoo' : cannot add storage, auxiliary, memory, interpolation, lay 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: 44 compilation errors. No code generated. +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 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: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 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 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 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 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 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 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 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 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 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 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 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: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: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: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: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 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 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: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: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 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 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: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 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 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: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 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 @@ -215,11 +223,11 @@ ERROR: node is still EOpNull! 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 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 @@ -229,258 +237,269 @@ ERROR: node is still EOpNull! 0:128 Constant: 0:128 1 (const int) 0:128 1 (const int) -0:137 Function Definition: foo2349( (global void) +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 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: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: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 '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 Definition: agggf(f1; ( global highp int) 0:158 Function Parameters: -0:158 'f' (in highp float) +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 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 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 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: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 implicitly-sized array of highp float) -0:? 'badsize2' (global implicitly-sized array of highp float) -0:? 'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a}) -0:? 'okayA' (global 2-element array of highp float) -0:? 'newV' (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:? 'gl_VertexID' (gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId) +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 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: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 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 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 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 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 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 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 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 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 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 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 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: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: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: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: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 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 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: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: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 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:? 'gl_VertexID' (gl_VertexId highp int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId) +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 index a3bab69090..84d4d0860c 100644 --- a/deps/glslang/glslang/Test/baseResults/300BuiltIns.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300BuiltIns.frag.out @@ -8,206 +8,206 @@ 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 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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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) +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: @@ -215,204 +215,204 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:26 Function Definition: main( (global void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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) +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 index 224bd111b8..6f7de91b0a 100644 --- a/deps/glslang/glslang/Test/baseResults/300block.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300block.frag.out @@ -10,78 +10,78 @@ 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: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: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 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 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 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 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 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 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: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: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}) +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: @@ -89,65 +89,65 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:42 Function Definition: main( (global void) +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 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 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 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 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 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: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: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}) +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 index 62a0b367d7..3266d9b71d 100644 --- a/deps/glslang/glslang/Test/baseResults/300layout.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300layout.frag.out @@ -11,30 +11,30 @@ 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 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: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: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) +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: @@ -42,28 +42,28 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:10 Function Definition: main( (global void) +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: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: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) +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 index f69a989b1f..e245cbcf97 100644 --- a/deps/glslang/glslang/Test/baseResults/300layout.vert.out +++ b/deps/glslang/glslang/Test/baseResults/300layout.vert.out @@ -23,63 +23,63 @@ 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 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 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 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 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 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 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 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) +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: @@ -87,61 +87,61 @@ Linked vertex stage: Shader version: 300 ERROR: node is still EOpNull! -0:44 Function Definition: main( (global void) +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 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 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 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 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 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 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) +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 index 0713d3df45..dc54e76506 100644 --- a/deps/glslang/glslang/Test/baseResults/300link.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300link.frag.out @@ -1,11 +1,11 @@ 300link.frag Shader version: 300 0:? Sequence -0:8 Function Definition: main( (global void) +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) +0:? 'color1' ( out highp 4-component vector of float) +0:? 'color2' ( out highp 4-component vector of float) Linked fragment stage: @@ -14,9 +14,9 @@ ERROR: Linking fragment stage: when more than one fragment shader output, all mu Shader version: 300 0:? Sequence -0:8 Function Definition: main( (global void) +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) +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 index aaf71dc4c1..6bbb287e97 100644 --- a/deps/glslang/glslang/Test/baseResults/300link2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300link2.frag.out @@ -1,13 +1,13 @@ 300link2.frag Shader version: 300 0:? Sequence -0:9 Function Definition: main( (global void) +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) +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: @@ -15,11 +15,11 @@ Linked fragment stage: Shader version: 300 0:? Sequence -0:9 Function Definition: main( (global void) +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) +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 index 3224695121..e6114c5fab 100644 --- a/deps/glslang/glslang/Test/baseResults/300link3.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300link3.frag.out @@ -1,10 +1,10 @@ 300link3.frag Shader version: 300 0:? Sequence -0:7 Function Definition: main( (global void) +0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:? Linker Objects -0:? 'color1' (out highp 4-component vector of float) +0:? 'color1' ( out highp 4-component vector of float) Linked fragment stage: @@ -12,8 +12,8 @@ Linked fragment stage: Shader version: 300 0:? Sequence -0:7 Function Definition: main( (global void) +0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:? Linker Objects -0:? 'color1' (out highp 4-component vector of float) +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 index ff7663e93e..27772cb2bb 100644 --- a/deps/glslang/glslang/Test/baseResults/300operations.frag.out +++ b/deps/glslang/glslang/Test/baseResults/300operations.frag.out @@ -1,86 +1,86 @@ 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: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: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 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: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: @@ -105,136 +105,136 @@ ERROR: node is still EOpNull! 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: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 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: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 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) +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: @@ -242,27 +242,27 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:13 Function Definition: main( (global void) +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: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: @@ -287,134 +287,134 @@ ERROR: node is still EOpNull! 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: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 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: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 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) +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-new/Test/baseResults/300samplerExternal.frag.out b/deps/glslang/glslang/Test/baseResults/300samplerExternal.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/300samplerExternal.frag.out rename to deps/glslang/glslang/Test/baseResults/300samplerExternal.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/300scope.vert.out b/deps/glslang/glslang/Test/baseResults/300scope.vert.out index e340cf6aab..5a12020ef4 100644 --- a/deps/glslang/glslang/Test/baseResults/300scope.vert.out +++ b/deps/glslang/glslang/Test/baseResults/300scope.vert.out @@ -25,108 +25,108 @@ 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 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: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 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: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:25 'x' ( in highp float) 0:27 Sequence 0:27 Branch: Return -0:29 Function Definition: radians(b1; (global bool) +0:29 Function Definition: radians(b1; ( global bool) 0:29 Function Parameters: -0:29 'x' (in bool) +0:29 'x' ( in bool) 0:31 Sequence 0:31 Branch: Return -0:36 Function Definition: main( (global void) +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: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 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 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: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 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 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: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: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 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 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: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: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 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 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) +0:? 'b' ( global bool) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) Linked vertex stage: @@ -136,96 +136,96 @@ ERROR: Linking vertex stage: No function definition (body) found: Shader version: 300 ERROR: node is still EOpNull! -0:3 Function Definition: f(i1;i1;i1; (global highp int) +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: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 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: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: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 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 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: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 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 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: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: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 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 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: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: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 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 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) +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 index a5be10e13e..5a926f67fe 100644 --- a/deps/glslang/glslang/Test/baseResults/310.comp.out +++ b/deps/glslang/glslang/Test/baseResults/310.comp.out @@ -1,7 +1,7 @@ 310.comp -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -16,7 +16,7 @@ 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' must have a format layout 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 @@ -40,7 +40,6 @@ 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:136: 'atomic_uint' : layout(binding=X) is required 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 @@ -54,12 +53,12 @@ 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' must have a format layout 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' must have a format layout qualifier +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' must have a format layout 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 @@ -81,522 +80,537 @@ 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: 79 compilation errors. No code generated. +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 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 implicitly-sized array of highp float values}) +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 implicitly-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 implicitly-sized array of highp float values}) +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:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex) +0:59 Function Definition: foo( ( global void) 0:59 Function Parameters: 0:61 Sequence -0:61 move second child to first child (temp highp float) -0:61 direct index (layout(column_major shared ) temp highp float) -0:61 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:61 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 implicitly-sized array of highp float) -0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:62 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: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 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: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: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: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: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: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: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: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: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: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: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: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: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: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 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 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 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 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 Definition: foowo( ( global void) 0:191 Function Parameters: 0:? Sequence -0:194 move second child to first child (temp highp float) -0:194 'g' (temp highp float) -0:194 direct index (layout(column_major shared ) temp highp float) -0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:194 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:194 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 implicitly-sized array of highp float) -0:195 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:195 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 implicitly-sized array of highp float) -0:196 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:196 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 implicitly-sized array of highp float) -0:197 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:197 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 implicitly-sized array of highp float) -0:198 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:198 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 implicitly-sized array of highp float) -0:199 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:199 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:199 'f' ( temp highp float) +0:201 Test condition and select ( temp highp float) 0:201 Condition -0:201 'b' (temp bool) +0:201 'b' ( temp bool) 0:201 true case -0:201 'f' (temp highp float) +0:201 'f' ( temp highp float) 0:201 false case -0:201 direct index (layout(column_major shared ) temp highp float) -0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:201 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:201 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 Test condition and select ( temp highp float) 0:202 Condition -0:202 'b' (temp bool) +0:202 'b' ( temp bool) 0:202 true case -0:202 direct index (layout(column_major shared ) temp highp float) -0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:202 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:202 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:202 'f' ( temp highp float) +0:203 Test condition and select ( temp void) 0:203 Condition -0:203 Compare Equal (temp bool) -0:203 'f' (temp highp float) -0:203 direct index (layout(column_major shared ) temp highp float) -0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:203 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:203 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:204 Pre-Increment ( temp highp float) +0:204 'f' ( temp highp float) +0:205 Test condition and select ( temp void) 0:205 Condition -0:205 Compare Greater Than or Equal (temp bool) -0:205 'f' (temp highp float) -0:205 direct index (layout(column_major shared ) temp highp float) -0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:205 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:205 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 implicitly-sized array of highp float) -0:207 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0: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 implicitly-sized array of highp float values}) +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 implicitly-sized array of highp float) -0:209 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:209 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 Definition: foomultio( ( global void) 0:218 Function Parameters: 0:? Sequence -0:221 move second child to first child (temp highp float) -0:221 'g' (temp highp float) -0:221 direct index (layout(column_major shared ) temp highp float) -0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:221 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:221 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 implicitly-sized array of highp float values}) +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 implicitly-sized array of highp float) -0:223 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) +0:223 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 implicitly-sized array of highp float values}) +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:? '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:? '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 implicitly-sized array of highp float values}) -0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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) +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 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 implicitly-sized array of highp float values}) +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 implicitly-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 implicitly-sized array of highp float values}) +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:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex) 0:? Linker Objects -0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize) +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:? '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 implicitly-sized array of highp float values}) -0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 implicitly-sized 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) +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 index 34cae953bd..6763c0a1e7 100644 --- a/deps/glslang/glslang/Test/baseResults/310.frag.out +++ b/deps/glslang/glslang/Test/baseResults/310.frag.out @@ -1,5 +1,4 @@ 310.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -9,7 +8,7 @@ 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: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 @@ -19,13 +18,13 @@ ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier -ERROR: 0:66: '' : image variables not declared 'writeonly' must have a format layout qualifier +ERROR: 0: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' must have a format layout 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' must have a format layout 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' must have a format layout 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 @@ -36,7 +35,7 @@ ERROR: 0:83: 'layout-id value' : cannot be negative ERROR: 0:96: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:110: 'out' : cannot be bool ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut -ERROR: 0:111: '' : image variables not declared 'writeonly' must have a format layout qualifier +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 @@ -106,25 +105,25 @@ ERROR: 0:346: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragm 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 with this profile: es +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: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: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: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' : required extension not requested: GL_KHR_blend_equation_advanced +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 @@ -133,10 +132,14 @@ 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: 125 compilation errors. No code generated. +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 @@ -152,31 +155,31 @@ 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 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: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 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: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 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 @@ -186,10 +189,10 @@ ERROR: node is still EOpNull! 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 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 @@ -197,11 +200,11 @@ ERROR: node is still EOpNull! 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: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 @@ -211,10 +214,10 @@ ERROR: node is still EOpNull! 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 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 @@ -224,10 +227,10 @@ ERROR: node is still EOpNull! 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 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 @@ -235,33 +238,33 @@ ERROR: node is still EOpNull! 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 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: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 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: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 @@ -271,9 +274,9 @@ ERROR: node is still EOpNull! 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 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 @@ -283,9 +286,9 @@ ERROR: node is still EOpNull! 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 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 @@ -295,164 +298,164 @@ ERROR: node is still EOpNull! 0:45 Constant: 0:45 -10 (const int) 0:45 20 (const int) -0:47 Test condition and select (temp void) +0:47 Test condition and select ( temp void) 0:47 Condition -0:47 'gl_HelperInvocation' (in bool HelperInvocation) +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: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 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: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: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: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 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 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: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 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 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 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 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 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 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: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: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: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: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: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: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: @@ -467,28 +470,28 @@ ERROR: node is still EOpNull! 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 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: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: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: @@ -503,23 +506,23 @@ ERROR: node is still EOpNull! 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 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: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 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 @@ -528,10 +531,10 @@ ERROR: node is still EOpNull! 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 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 @@ -540,10 +543,10 @@ ERROR: node is still EOpNull! 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 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 @@ -551,276 +554,276 @@ ERROR: node is still EOpNull! 0:252 0.500000 0:252 Constant: 0:252 0.270000 -0:255 Function Definition: badSample( (global void) +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: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: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 implicitly-sized array of highp int SampleMaskIn) +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 implicitly-sized array of highp int SampleMaskIn) +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: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: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: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: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 implicitly-sized array of highp int SampleMaskIn) +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 implicitly-sized array of highp int SampleMaskIn) +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: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 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: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: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: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: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: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: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: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: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 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 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: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 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 @@ -828,21 +831,21 @@ ERROR: node is still EOpNull! 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: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 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 @@ -852,29 +855,29 @@ ERROR: node is still EOpNull! 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 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: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 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 @@ -885,94 +888,104 @@ ERROR: node is still EOpNull! 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 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 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: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 Definition: blendFoo( ( temp void) 0:427 Function Parameters: -0:428 Function Definition: blendFoo(vf3; (global void) +0:428 Function Definition: blendFoo(vf3; ( global void) 0:428 Function Parameters: -0:428 'v' (in mediump 3-component vector of float) +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:? '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) @@ -981,35 +994,35 @@ ERROR: node is still EOpNull! 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 implicitly-sized array of highp int SampleMaskIn) -0:? 'gl_SampleMask' (out implicitly-sized 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) +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: @@ -1017,6 +1030,8 @@ 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 @@ -1032,31 +1047,31 @@ 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 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: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 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: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 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 @@ -1066,10 +1081,10 @@ ERROR: node is still EOpNull! 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 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 @@ -1077,11 +1092,11 @@ ERROR: node is still EOpNull! 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: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 @@ -1091,10 +1106,10 @@ ERROR: node is still EOpNull! 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 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 @@ -1104,10 +1119,10 @@ ERROR: node is still EOpNull! 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 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 @@ -1115,73 +1130,73 @@ ERROR: node is still EOpNull! 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 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: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:? '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) @@ -1190,33 +1205,33 @@ ERROR: node is still EOpNull! 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) +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 index def6b7ab31..b0dabc3b20 100644 --- a/deps/glslang/glslang/Test/baseResults/310.geom.out +++ b/deps/glslang/glslang/Test/baseResults/310.geom.out @@ -1,5 +1,4 @@ 310.geom -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:29: 'fromVertex' : block instance name redefinition ERROR: 0:33: 'fromVertex' : redefinition ERROR: 0:35: 'fooC' : block instance name redefinition @@ -53,58 +52,58 @@ 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 Definition: main( ( global void) 0:39 Function Parameters: 0:41 Sequence -0:41 EmitVertex (global void) -0:42 EndPrimitive (global void) +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 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 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 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 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 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: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 Definition: foo(i1; ( global void) 0:63 Function Parameters: -0:63 'a' (in highp int) +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 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: @@ -112,85 +111,85 @@ ERROR: node is still EOpNull! 0:65 1.000000 0:65 1.000000 0:65 1.000000 -0:114 Function Definition: fooe1( (global void) +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: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: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: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 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 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: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 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 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: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:? '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) +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: @@ -205,74 +204,74 @@ 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 Definition: main( ( global void) 0:39 Function Parameters: 0:41 Sequence -0:41 EmitVertex (global void) -0:42 EndPrimitive (global void) +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 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 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 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 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 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: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:? '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) +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 index ab27198f61..433a7dc15d 100644 --- a/deps/glslang/glslang/Test/baseResults/310.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/310.tesc.out @@ -1,5 +1,4 @@ 310.tesc -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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) @@ -58,200 +57,200 @@ 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 Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence -0:17 Barrier (global void) +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 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}) -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}) +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}) -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}) +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 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: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: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: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: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: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: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 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 Test condition and select ( temp void) 0:40 Condition -0:40 Compare Greater Than (temp bool) -0:40 'a' (temp highp int) +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:41 Barrier ( global void) 0:40 false case -0:43 Barrier (global void) -0:45 Barrier (global void) +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 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:48 Barrier ( global void) 0:51 switch 0:51 condition -0:51 'a' (temp highp int) +0:51 'a' ( temp highp int) 0:51 body 0:51 Sequence 0:52 default: 0:? Sequence -0:53 Barrier (global void) +0:53 Barrier ( global void) 0:54 Branch: Break -0:56 Test condition and select (temp highp int) +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 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 '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: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:58 Barrier ( global void) 0:61 Branch: Return -0:63 Barrier (global void) -0:69 Function Definition: foo( (global void) +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 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: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:95 move second child to first child ( temp highp float) +0:95 'd' ( noContraction temp highp float) +0:95 fma ( global highp float) +0:95 'd' ( noContraction temp highp float) +0:95 'd' ( noContraction temp highp float) +0:95 'd' ( noContraction temp highp float) +0:112 Function Definition: pointSize2( ( global void) 0:112 Function Parameters: 0:114 Sequence 0:114 Sequence -0:114 move second child to first child (temp highp float) -0:114 'ps' (temp highp float) -0:114 gl_PointSize: direct index for structure (in highp float PointSize) -0:114 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:114 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:114 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 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: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: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: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 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: @@ -259,9 +258,9 @@ ERROR: node is still EOpNull! 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 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: @@ -269,9 +268,9 @@ ERROR: node is still EOpNull! 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 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: @@ -279,34 +278,34 @@ ERROR: node is still EOpNull! 0:142 2.000000 0:142 2.000000 0:142 2.000000 -0:153 Function Definition: outputtingOutparam(i1; (global void) +0:153 Function Definition: outputtingOutparam(i1; ( global void) 0:153 Function Parameters: -0:153 'a' (out highp int) +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 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 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 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 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 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: @@ -316,65 +315,65 @@ ERROR: node is still EOpNull! 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 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 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 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: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 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 implicitly-sized 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 implicitly-sized array of block{out highp float f}) -0:? 'patchIName' (patch out 4-element array of block{out highp float f}) +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: @@ -389,155 +388,155 @@ 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 Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence -0:17 Barrier (global void) +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 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}) -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}) +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}) -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}) +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 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: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: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: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: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: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: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 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 Test condition and select ( temp void) 0:40 Condition -0:40 Compare Greater Than (temp bool) -0:40 'a' (temp highp int) +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:41 Barrier ( global void) 0:40 false case -0:43 Barrier (global void) -0:45 Barrier (global void) +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 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:48 Barrier ( global void) 0:51 switch 0:51 condition -0:51 'a' (temp highp int) +0:51 'a' ( temp highp int) 0:51 body 0:51 Sequence 0:52 default: 0:? Sequence -0:53 Barrier (global void) +0:53 Barrier ( global void) 0:54 Branch: Break -0:56 Test condition and select (temp highp int) +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 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 '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: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:58 Barrier ( global void) 0:61 Branch: Return -0:63 Barrier (global void) +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}) +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 index 62894ec797..9c7c679daf 100644 --- a/deps/glslang/glslang/Test/baseResults/310.tese.out +++ b/deps/glslang/glslang/Test/baseResults/310.tese.out @@ -1,5 +1,4 @@ 310.tese -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -22,11 +21,10 @@ 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 with this profile: es +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:58: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 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' @@ -46,9 +44,9 @@ 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: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: 44 compilation errors. No code generated. +ERROR: 43 compilation errors. No code generated. Shader version: 310 @@ -64,121 +62,121 @@ 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 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 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}) -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}) +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}) -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}) +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 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: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: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: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 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 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 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: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: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: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 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: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: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) +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: @@ -197,106 +195,106 @@ 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 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 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}) -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}) +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}) -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}) +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 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: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: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: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 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 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 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: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: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: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) +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 index d0dfedf218..21fa27b90f 100644 --- a/deps/glslang/glslang/Test/baseResults/310.vert.out +++ b/deps/glslang/glslang/Test/baseResults/310.vert.out @@ -1,5 +1,4 @@ 310.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -22,7 +21,7 @@ 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: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 @@ -92,7 +91,7 @@ ERROR: 0:329: 'sampler/image' : type requires declaration of default precision q 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: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 @@ -110,167 +109,167 @@ 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 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: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 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 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 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: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: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 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 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: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: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: @@ -278,71 +277,71 @@ ERROR: node is still EOpNull! 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 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 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: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 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 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 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 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: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 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 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: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: @@ -357,56 +356,56 @@ ERROR: node is still EOpNull! 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 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: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 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 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 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 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 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: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: @@ -421,112 +420,112 @@ ERROR: node is still EOpNull! 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 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: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: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: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: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: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: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: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: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: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: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 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 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 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 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 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 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 @@ -535,30 +534,30 @@ ERROR: node is still EOpNull! 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 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 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 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 @@ -567,10 +566,10 @@ ERROR: node is still EOpNull! 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 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 @@ -579,10 +578,10 @@ ERROR: node is still EOpNull! 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 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 @@ -591,10 +590,10 @@ ERROR: node is still EOpNull! 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 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 @@ -609,10 +608,10 @@ ERROR: node is still EOpNull! 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 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 @@ -627,10 +626,10 @@ ERROR: node is still EOpNull! 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 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 @@ -645,20 +644,20 @@ ERROR: node is still EOpNull! 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 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 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 @@ -667,20 +666,20 @@ ERROR: node is still EOpNull! 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 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 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 @@ -689,20 +688,20 @@ ERROR: node is still EOpNull! 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 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 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 @@ -711,10 +710,10 @@ ERROR: node is still EOpNull! 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 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 @@ -723,70 +722,70 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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: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: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: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 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) @@ -794,10 +793,10 @@ ERROR: node is still EOpNull! 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 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) @@ -805,10 +804,10 @@ ERROR: node is still EOpNull! 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 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) @@ -816,96 +815,96 @@ ERROR: node is still EOpNull! 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: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: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: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: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: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:386 'datu' ( temp highp uint) +0:398 Function Definition: badInterp( ( global void) 0:398 Function Parameters: 0:400 Sequence 0:400 Constant: @@ -915,47 +914,47 @@ ERROR: node is still EOpNull! 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:? '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) @@ -964,68 +963,68 @@ ERROR: node is still EOpNull! 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) +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: @@ -1041,165 +1040,165 @@ 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 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: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 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 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 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: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:? '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) @@ -1208,66 +1207,66 @@ ERROR: node is still EOpNull! 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) +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 index 6b69e71e8e..451cc0b458 100644 --- a/deps/glslang/glslang/Test/baseResults/310AofA.vert.out +++ b/deps/glslang/glslang/Test/baseResults/310AofA.vert.out @@ -1,5 +1,4 @@ 310AofA.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -7,13 +6,13 @@ 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 implicitly-sized array of 7-element array of highp float' +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: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 implicitly-sized array of highp 4-component vector of float' +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 @@ -27,16 +26,16 @@ 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 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: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 Function Call: f(b1;f1;u1[4];i1[3][2]; ( global void) 0:13 Constant: 0:13 false (const bool) 0:13 Constant: @@ -46,15 +45,15 @@ ERROR: node is still EOpNull! 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: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: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 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: @@ -62,65 +61,65 @@ ERROR: node is still EOpNull! 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 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 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 '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 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 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 '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 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 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 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 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 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: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 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: @@ -130,8 +129,8 @@ ERROR: node is still EOpNull! 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: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 @@ -158,8 +157,8 @@ ERROR: node is still EOpNull! 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: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 @@ -186,8 +185,8 @@ ERROR: node is still EOpNull! 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: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 @@ -214,8 +213,8 @@ ERROR: node is still EOpNull! 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: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 @@ -241,55 +240,55 @@ ERROR: node is still EOpNull! 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 implicitly-sized array of 7-element array of highp float) +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: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 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 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 move second child to first child ( temp highp float) +0:90 direct index ( temp highp float) +0:90 direct index ( temp 7-element array of highp float) +0:90 'u' ( temp 5-element array of 7-element array of highp float) 0:90 Constant: 0:90 5 (const int) 0:90 Constant: 0:90 2 (const int) 0:90 Constant: 0:90 5.000000 -0:91 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float) -0:91 'u' (temp 5-element array of 7-element array of highp float) -0:94 direct index (layout(column_major shared ) temp highp 4-component vector of float) -0:94 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) -0:94 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:94 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0: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 implicitly-sized array of highp 4-component vector of float) -0:95 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:95 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:95 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: @@ -301,37 +300,56 @@ ERROR: node is still EOpNull! 0:95 4.300000 0:95 4.300000 0:95 4.300000 -0:96 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) -0:96 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:96 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) +0:96 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 implicitly-sized array of 7-element array of highp 4-component vector of float) -0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) -0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) +0:99 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 implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform implicitly-sized 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 implicitly-sized array of implicitly-sized 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 implicitly-sized 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 implicitly-sized 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) +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: @@ -339,16 +357,16 @@ 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 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: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 Function Call: f(b1;f1;u1[4];i1[3][2]; ( global void) 0:13 Constant: 0:13 false (const bool) 0:13 Constant: @@ -358,19 +376,19 @@ ERROR: node is still EOpNull! 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: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 implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform 1-element array of highp 4-component vector of float v}) -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 implicitly-sized array of implicitly-sized 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 implicitly-sized 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) +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 index 963735d853..6975cde230 100644 --- a/deps/glslang/glslang/Test/baseResults/310implicitSizeArrayError.vert.out +++ b/deps/glslang/glslang/Test/baseResults/310implicitSizeArrayError.vert.out @@ -1,28 +1,27 @@ 310implicitSizeArrayError.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 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 implicitly-sized array of highp int) -0:7 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized array of highp int a}) +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(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform implicitly-sized 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) +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: @@ -30,21 +29,21 @@ Linked vertex stage: Shader version: 310 ERROR: node is still EOpNull! -0:6 Function Definition: main( (global void) +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 1-element array of highp int) -0:7 'uni' (layout(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-element array of highp int a}) +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(location=0 column_major shared ) uniform block{layout(column_major shared ) uniform 1-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) +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-new/Test/baseResults/310runtimeArray.vert.out b/deps/glslang/glslang/Test/baseResults/310runtimeArray.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/310runtimeArray.vert.out rename to deps/glslang/glslang/Test/baseResults/310runtimeArray.vert.out diff --git a/deps/glslang-new/Test/baseResults/320.comp.out b/deps/glslang/glslang/Test/baseResults/320.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/320.comp.out rename to deps/glslang/glslang/Test/baseResults/320.comp.out diff --git a/deps/glslang-new/Test/baseResults/320.frag.out b/deps/glslang/glslang/Test/baseResults/320.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/320.frag.out rename to deps/glslang/glslang/Test/baseResults/320.frag.out diff --git a/deps/glslang-new/Test/baseResults/320.geom.out b/deps/glslang/glslang/Test/baseResults/320.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/320.geom.out rename to deps/glslang/glslang/Test/baseResults/320.geom.out diff --git a/deps/glslang-new/Test/baseResults/320.tesc.out b/deps/glslang/glslang/Test/baseResults/320.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/320.tesc.out rename to deps/glslang/glslang/Test/baseResults/320.tesc.out diff --git a/deps/glslang-new/Test/baseResults/320.tese.out b/deps/glslang/glslang/Test/baseResults/320.tese.out similarity index 100% rename from deps/glslang-new/Test/baseResults/320.tese.out rename to deps/glslang/glslang/Test/baseResults/320.tese.out diff --git a/deps/glslang-new/Test/baseResults/320.vert.out b/deps/glslang/glslang/Test/baseResults/320.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/320.vert.out rename to deps/glslang/glslang/Test/baseResults/320.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/330.frag.out b/deps/glslang/glslang/Test/baseResults/330.frag.out index d3c54fcf73..774563125c 100644 --- a/deps/glslang/glslang/Test/baseResults/330.frag.out +++ b/deps/glslang/glslang/Test/baseResults/330.frag.out @@ -16,6 +16,7 @@ ERROR: 0:57: 'location on block member' : not supported for this version or the 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 @@ -23,6 +24,7 @@ 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 @@ -34,96 +36,96 @@ ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full 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: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: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: 39 compilation errors. No code generated. +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 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: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: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 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 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 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: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: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 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:? '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 component=0 ) 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 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) 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 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k}) -0:? 'outVar2' (layout(location=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) +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: @@ -135,58 +137,58 @@ 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 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: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: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 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:? '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 component=0 ) 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 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{global float f1, temp float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) 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 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k}) -0:? 'outVar2' (layout(location=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) +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 index 58d6e5fdf6..1b8ded125e 100644 --- a/deps/glslang/glslang/Test/baseResults/330comp.frag.out +++ b/deps/glslang/glslang/Test/baseResults/330comp.frag.out @@ -1,24 +1,24 @@ 330comp.frag Shader version: 330 0:? Sequence -0:8 Function Definition: main( (global void) +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: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: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) +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: @@ -27,22 +27,22 @@ 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 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: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: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) +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 index aea4e49b3d..90f73dc723 100644 --- a/deps/glslang/glslang/Test/baseResults/400.frag.out +++ b/deps/glslang/glslang/Test/baseResults/400.frag.out @@ -1,5 +1,4 @@ 400.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -31,11 +30,15 @@ ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or 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: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:187: '' : syntax error -ERROR: 35 compilation errors. No code generated. +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 @@ -44,39 +47,39 @@ 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 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: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 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 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 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) @@ -89,19 +92,19 @@ ERROR: node is still EOpNull! 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 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: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 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 @@ -111,10 +114,10 @@ ERROR: node is still EOpNull! 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 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 @@ -122,11 +125,11 @@ ERROR: node is still EOpNull! 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: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 @@ -136,10 +139,10 @@ ERROR: node is still EOpNull! 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 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 @@ -149,37 +152,37 @@ ERROR: node is still EOpNull! 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 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: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: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 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: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 @@ -189,9 +192,9 @@ ERROR: node is still EOpNull! 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 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 @@ -201,9 +204,9 @@ ERROR: node is still EOpNull! 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 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 @@ -213,15 +216,15 @@ ERROR: node is still EOpNull! 0:54 Constant: 0:54 -10 (const int) 0:54 20 (const int) -0:60 Function Definition: foo24( (global void) +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 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) @@ -229,105 +232,105 @@ ERROR: node is still EOpNull! 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: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: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: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: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: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: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: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: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 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 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 @@ -337,37 +340,37 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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 @@ -378,140 +381,175 @@ ERROR: node is still EOpNull! 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 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 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: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 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: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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? '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:? '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: @@ -523,39 +561,39 @@ 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 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: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 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 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 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) @@ -568,19 +606,19 @@ ERROR: node is still EOpNull! 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 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: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 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 @@ -590,10 +628,10 @@ ERROR: node is still EOpNull! 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 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 @@ -601,11 +639,11 @@ ERROR: node is still EOpNull! 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: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 @@ -615,10 +653,10 @@ ERROR: node is still EOpNull! 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 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 @@ -628,61 +666,63 @@ ERROR: node is still EOpNull! 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 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: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: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:? '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 index 86e2b8ffa6..52ebebcedb 100644 --- a/deps/glslang/glslang/Test/baseResults/400.geom.out +++ b/deps/glslang/glslang/Test/baseResults/400.geom.out @@ -1,8 +1,7 @@ 400.geom -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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 layout to redeclared block member +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 @@ -20,9 +19,9 @@ 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: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: 0:116: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' ERROR: 23 compilation errors. No code generated. @@ -33,41 +32,41 @@ max_vertices = 127 input primitive = triangles output primitive = none ERROR: node is still EOpNull! -0:3 Function Definition: main( (global void) +0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:5 Sequence -0:5 EmitStreamVertex (global void) +0:5 EmitStreamVertex ( global void) 0:5 Constant: 0:5 1 (const int) -0:6 EndStreamPrimitive (global void) +0:6 EndStreamPrimitive ( global void) 0:6 Constant: 0:6 0 (const int) -0:7 EmitVertex (global void) -0:8 EndPrimitive (global void) +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: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 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 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 Definition: foo3( ( global void) 0:46 Function Parameters: 0:48 Sequence 0:48 Constant: @@ -78,970 +77,970 @@ ERROR: node is still EOpNull! 0:50 3 (const int) 0:51 Constant: 0:51 3 (const int) -0:75 Function Definition: bits( (global void) +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: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 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 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 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: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: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 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 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 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 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: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 'boolv' ( temp bool) 0:251 true case -0:251 isinf (global bool) -0:251 'doublev' (temp double) +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 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 '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 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 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 '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 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 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 '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 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: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: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: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: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: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: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: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: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: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: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) +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: @@ -1055,38 +1054,38 @@ max_vertices = 127 input primitive = triangles output primitive = none ERROR: node is still EOpNull! -0:3 Function Definition: main( (global void) +0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:5 Sequence -0:5 EmitStreamVertex (global void) +0:5 EmitStreamVertex ( global void) 0:5 Constant: 0:5 1 (const int) -0:6 EndStreamPrimitive (global void) +0:6 EndStreamPrimitive ( global void) 0:6 Constant: 0:6 0 (const int) -0:7 EmitVertex (global void) -0:8 EndPrimitive (global void) +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: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) +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 index f3e7b8bb68..0475741ffd 100644 --- a/deps/glslang/glslang/Test/baseResults/400.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/400.tesc.out @@ -1,5 +1,4 @@ 400.tesc -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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) @@ -21,49 +20,53 @@ 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: 21 compilation errors. No code generated. +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 Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence -0:15 Barrier (global void) +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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -71,150 +74,160 @@ ERROR: node is still EOpNull! 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: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: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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:31 'gl_InvocationID' (in int InvocationID) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:32 'gl_InvocationID' (in int InvocationID) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:33 'gl_InvocationID' (in int InvocationID) +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: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 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 Test condition and select ( temp void) 0:38 Condition -0:38 Compare Greater Than (temp bool) -0:38 'a' (temp int) +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:39 Barrier ( global void) 0:38 false case -0:41 Barrier (global void) -0:43 Barrier (global void) +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 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:46 Barrier ( global void) 0:49 switch 0:49 condition -0:49 'a' (temp int) +0:49 'a' ( temp int) 0:49 body 0:49 Sequence 0:50 default: 0:? Sequence -0:51 Barrier (global void) +0:51 Barrier ( global void) 0:52 Branch: Break -0:54 Test condition and select (temp int) +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 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 'a' ( temp int) 0:54 false case -0:54 Comma (temp int) -0:54 Barrier (global void) -0:54 'a' (temp int) +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) 0:56 Sequence -0:56 Barrier (global void) +0:56 Barrier ( global void) 0:59 Branch: Return -0:61 Barrier (global void) -0:67 Function Definition: foo( (global void) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: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: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 implicitly-sized 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) +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: @@ -222,44 +235,46 @@ 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 Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence -0:15 Barrier (global void) +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 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 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 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 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: @@ -267,119 +282,119 @@ ERROR: node is still EOpNull! 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: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: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: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: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: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: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 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 Test condition and select ( temp void) 0:38 Condition -0:38 Compare Greater Than (temp bool) -0:38 'a' (temp int) +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:39 Barrier ( global void) 0:38 false case -0:41 Barrier (global void) -0:43 Barrier (global void) +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 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:46 Barrier ( global void) 0:49 switch 0:49 condition -0:49 'a' (temp int) +0:49 'a' ( temp int) 0:49 body 0:49 Sequence 0:50 default: 0:? Sequence -0:51 Barrier (global void) +0:51 Barrier ( global void) 0:52 Branch: Break -0:54 Test condition and select (temp int) +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 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 'a' ( temp int) 0:54 false case -0:54 Comma (temp int) -0:54 Barrier (global void) -0:54 'a' (temp int) +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) 0:56 Sequence -0:56 Barrier (global void) +0:56 Barrier ( global void) 0:59 Branch: Return -0:61 Barrier (global void) +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) +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 index 324dbaa304..9580e857ca 100644 --- a/deps/glslang/glslang/Test/baseResults/400.tese.out +++ b/deps/glslang/glslang/Test/baseResults/400.tese.out @@ -1,5 +1,4 @@ 400.tese -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -12,7 +11,6 @@ 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:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized 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' @@ -30,53 +28,57 @@ ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or 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: 30 compilation errors. No code generated. +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 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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -84,75 +86,85 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: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 implicitly-sized 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}) +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: @@ -160,48 +172,50 @@ 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 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 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 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 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 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: @@ -209,73 +223,73 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 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: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: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: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}) +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 index bf07887558..05f58e2d84 100755 --- a/deps/glslang/glslang/Test/baseResults/400.vert.out +++ b/deps/glslang/glslang/Test/baseResults/400.vert.out @@ -1,5 +1,4 @@ 400.vert -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions @@ -18,279 +17,279 @@ 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 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: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: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: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: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: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: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: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: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: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: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: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: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: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: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) +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: @@ -298,259 +297,259 @@ Linked vertex stage: Shader version: 400 ERROR: node is still EOpNull! -0:8 Function Definition: foo1(d1;u1; (global void) +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: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: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: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: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: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: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: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: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: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: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: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: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) +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 index aa421dbe8b..ab5ad47285 100644 --- a/deps/glslang/glslang/Test/baseResults/410.geom.out +++ b/deps/glslang/glslang/Test/baseResults/410.geom.out @@ -1,12 +1,11 @@ 410.geom -Warning, version 410 is not yet complete; most version-specific features are present, but some are missing. 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: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' +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. @@ -17,45 +16,45 @@ max_vertices = -1 input primitive = none output primitive = none ERROR: node is still EOpNull! -0:3 Function Definition: main( (global void) +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 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 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 implicitly-sized array of block{in float PointSize gl_PointSize}) +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 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: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 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 implicitly-sized 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, }) +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: @@ -70,14 +69,14 @@ max_vertices = -1 input primitive = none output primitive = none ERROR: node is still EOpNull! -0:3 Function Definition: main( (global void) +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 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, }) +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 index 3305c407fd..0a397fdd4b 100644 --- a/deps/glslang/glslang/Test/baseResults/410.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/410.tesc.out @@ -1,5 +1,4 @@ 410.tesc -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier ERROR: 1 compilation errors. No code generated. @@ -7,12 +6,12 @@ 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 Definition: main( ( global void) 0:8 Function Parameters: 0:? Linker Objects -0:? 'gl_out' (out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:? 'outa' (global 1-element array of int) -0:? 'patchOut' (patch out 4-component vector of float) +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: @@ -22,10 +21,10 @@ ERROR: Linking tessellation control stage: At least one shader must specify an o Shader version: 400 vertices = -1 ERROR: node is still EOpNull! -0:8 Function Definition: main( (global void) +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) +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 index eb4f43a2e6..aacdf36c0f 100755 --- a/deps/glslang/glslang/Test/baseResults/410.vert.out +++ b/deps/glslang/glslang/Test/baseResults/410.vert.out @@ -1,16 +1,14 @@ 410.vert -Warning, version 410 is not yet complete; most version-specific features are present, but some are missing. - Shader version: 410 0:? Sequence -0:7 Function Definition: main( (global void) +0:7 Function 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) +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: @@ -18,12 +16,12 @@ Linked vertex stage: Shader version: 410 0:? Sequence -0:7 Function Definition: main( (global void) +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) +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 index a2311d5a80..4e091acff3 100755 --- a/deps/glslang/glslang/Test/baseResults/420.comp.out +++ b/deps/glslang/glslang/Test/baseResults/420.comp.out @@ -1,5 +1,4 @@ 420.comp -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions ERROR: 1 compilation errors. No code generated. @@ -8,57 +7,57 @@ 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 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 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 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: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 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: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:? '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) +0:? 'sfoo' ( shared 3-component vector of float) Linked compute stage: @@ -68,55 +67,55 @@ 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 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 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 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: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 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: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:? '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) +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 index 3b4c9be305..ffb8f6d283 100644 --- a/deps/glslang/glslang/Test/baseResults/420.frag.out +++ b/deps/glslang/glslang/Test/baseResults/420.frag.out @@ -1,26 +1,25 @@ 420.frag -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. 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 -WARNING: 0:14: 'atomic_uint' : implicitly sized atomic_uint array treated as having one element for tracking the default offset -ERROR: 3 compilation errors. No code generated. +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 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 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 implicitly-sized array of atomic_uint) +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: @@ -29,15 +28,15 @@ Linked fragment stage: Shader version: 420 using depth_any ERROR: node is still EOpNull! -0:6 Function Definition: main( (global void) +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 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) +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 index ca459a64a2..6bf6eb3792 100644 --- a/deps/glslang/glslang/Test/baseResults/420.geom.out +++ b/deps/glslang/glslang/Test/baseResults/420.geom.out @@ -1,5 +1,4 @@ 420.geom -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. 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) @@ -15,51 +14,51 @@ max_vertices = -1 input primitive = triangles output primitive = none ERROR: node is still EOpNull! -0:7 Function Definition: foo( (global void) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:11 'i' (global 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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:21 'i' (global 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 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 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 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) @@ -71,15 +70,15 @@ ERROR: node is still EOpNull! 0:40 0 (const int) 0:40 2 (const int) 0:40 1 (const int) -0:40 'i' (global 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 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) @@ -91,7 +90,7 @@ ERROR: node is still EOpNull! 0:42 0 (const int) 0:42 2 (const int) 0:42 1 (const int) -0:42 'i' (global int) +0:42 'i' ( global int) 0:42 Sequence 0:42 Constant: 0:42 0 (const int) @@ -100,34 +99,34 @@ ERROR: node is still EOpNull! 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 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 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 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: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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -143,11 +142,11 @@ 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}) +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 index 30839ec8db..a1f881cb19 100644 --- a/deps/glslang/glslang/Test/baseResults/420.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/420.tesc.out @@ -1,10 +1,9 @@ 420.tesc -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. 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: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. @@ -14,36 +13,36 @@ 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 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -51,35 +50,35 @@ ERROR: node is still EOpNull! 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: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: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: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: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 Test condition and select ( temp void) 0:36 Condition -0:36 logical-or (temp bool) -0:36 Compare Not Equal (temp bool) +0:36 logical-or ( temp bool) +0:36 Compare Not Equal ( temp bool) 0:36 Constant: 0:36 -0.625000 0:36 -0.500000 @@ -89,11 +88,11 @@ ERROR: node is still EOpNull! 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 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 Compare Not Equal ( temp bool) 0:37 Constant: 0:37 0.375000 0:37 0.500000 @@ -103,19 +102,19 @@ ERROR: node is still EOpNull! 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 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) +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: @@ -125,36 +124,36 @@ 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 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 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 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 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: @@ -162,34 +161,34 @@ ERROR: node is still EOpNull! 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: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: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: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: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) +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 index b8379d1500..71fca85e7c 100644 --- a/deps/glslang/glslang/Test/baseResults/420.tese.out +++ b/deps/glslang/glslang/Test/baseResults/420.tese.out @@ -1,17 +1,16 @@ 420.tese -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. -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: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 'temp float' to 'temp structure{global float s, global float t}' +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. @@ -22,28 +21,28 @@ 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 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 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 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 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 @@ -51,48 +50,48 @@ ERROR: node is still EOpNull! 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 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 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 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 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: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: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:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) 0:86 Condition -0:86 Compare Equal (temp bool) +0:86 Compare Equal ( temp bool) 0:86 Constant: 0:86 1 (const uint) 0:86 2 (const uint) @@ -110,43 +109,43 @@ ERROR: node is still EOpNull! 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 '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 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:? '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:? '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 implicitly-sized 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:? '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 @@ -163,8 +162,8 @@ ERROR: node is still EOpNull! 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:? '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 @@ -181,11 +180,11 @@ ERROR: node is still EOpNull! 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) +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: @@ -198,28 +197,28 @@ 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 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 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 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 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 @@ -227,48 +226,48 @@ ERROR: node is still EOpNull! 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 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 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 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 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: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: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:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) 0:86 Condition -0:86 Compare Equal (temp bool) +0:86 Compare Equal ( temp bool) 0:86 Constant: 0:86 1 (const uint) 0:86 2 (const uint) @@ -286,43 +285,43 @@ ERROR: node is still EOpNull! 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 '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 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:? '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:? '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:? '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 @@ -339,8 +338,8 @@ ERROR: node is still EOpNull! 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:? '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 @@ -357,9 +356,9 @@ ERROR: node is still EOpNull! 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) +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 index a70b44e789..25bce16cc3 100644 --- a/deps/glslang/glslang/Test/baseResults/420.vert.out +++ b/deps/glslang/glslang/Test/baseResults/420.vert.out @@ -1,5 +1,4 @@ 420.vert -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -7,20 +6,20 @@ 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: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: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: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: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 field selection out of range -ERROR: 0:62: 'xxxxx' : illegal vector field selection -ERROR: 0:63: 'xxy' : vector field selection out of range +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 @@ -31,9 +30,9 @@ ERROR: 0:76: 'binding' : sampler binding not less than gl_MaxCombinedTextureImag 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: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' must have a format layout qualifier +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 @@ -47,60 +46,61 @@ 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: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 array size of one for compile-time checking of binding numbers for implicitly-sized array -ERROR: 50 compilation errors. No code generated. +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 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: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: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: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 Test condition and select ( temp void) 0:35 Condition -0:35 Compare Equal (temp bool) -0:35 'i' (temp int) +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: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 Definition: bar(vf4; ( global void) 0:50 Function Parameters: -0:50 'v' (volatile in 4-component vector of float) +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: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 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: @@ -108,201 +108,203 @@ ERROR: node is still EOpNull! 0:55 Constant: 0:55 4.200000 0:55 true case is null -0:57 Test condition and select (temp void) +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 move second child to first child ( temp 4-component vector of float) +0:58 'badorder3' ( flat out 4-component vector of float) +0:58 direct index ( temp 4-component vector of float) +0:58 'bad' ( in 10-element array of 4-component vector of float) 0:58 Constant: 0:58 0 (const int) 0:61 Sequence -0:61 move second child to first child (temp 3-component vector of float) -0:61 'smeared' (temp 3-component vector of float) -0:61 Construct vec3 (temp 3-component vector of float) -0:61 'f' (temp float) -0:62 'f' (temp float) -0:63 'f' (temp float) -0:88 Function Definition: bar23444( (global void) +0: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 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 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 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 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 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:96 'a1' ( temp float) 0:97 Sequence -0:97 move second child to first child (temp int) -0:97 'a' (temp int) +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 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 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: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: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: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: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: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: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: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:? '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:? 'a' ( const int) 0:? 5 (const int) -0:? 'b' (temp int) -0:? 'cx' (const float) +0:? 'b' ( temp int) +0:? 'cx' ( const float) 0:? 4.200000 -0:? 'dx' (const float) +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 implicitly-sized array of image1D) -0:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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: @@ -310,79 +312,79 @@ Linked vertex stage: Shader version: 420 ERROR: node is still EOpNull! -0:32 Function Definition: main( (global void) +0:32 Function Definition: main( ( global void) 0:32 Function Parameters: 0:? Sequence -0:35 Test condition and select (temp void) +0:35 Test condition and select ( temp void) 0:35 Condition -0:35 Compare Equal (temp bool) -0:35 'i' (temp int) +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: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:? '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:? 'a' ( const int) 0:? 5 (const int) -0:? 'b' (temp int) -0:? 'cx' (const float) +0:? 'b' ( temp int) +0:? 'cx' ( const float) 0:? 4.200000 -0:? 'dx' (const float) +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) +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 index 54ec99ea86..9d95495b47 100644 --- a/deps/glslang/glslang/Test/baseResults/420_size_gl_in.geom.out +++ b/deps/glslang/glslang/Test/baseResults/420_size_gl_in.geom.out @@ -1,5 +1,4 @@ 420_size_gl_in.geom -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:19: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use ERROR: 1 compilation errors. No code generated. @@ -10,31 +9,31 @@ max_vertices = -1 input primitive = triangles output primitive = none ERROR: node is still EOpNull! -0:11 Function Definition: foo( (global void) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) -0:16 'i' (global 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 implicitly-sized array of float ClipDistance gl_ClipDistance}) +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: @@ -50,8 +49,8 @@ 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}) +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 index ed61346fba..599cd8e3e0 100644 --- a/deps/glslang/glslang/Test/baseResults/430.comp.out +++ b/deps/glslang/glslang/Test/baseResults/430.comp.out @@ -1,5 +1,4 @@ 430.comp -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -13,7 +12,7 @@ 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: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. @@ -22,80 +21,80 @@ 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 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 implicitly-sized array of float values}) +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 implicitly-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 implicitly-sized array of float values}) +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: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 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:40 Barrier ( global void) +0:63 Function Definition: foo( ( global void) 0:63 Function Parameters: 0:65 Sequence -0:65 move second child to first child (temp float) -0:65 direct index (layout(column_major shared ) temp float) -0:65 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float) -0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values}) +0:65 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 implicitly-sized array of float) -0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values}) +0:66 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: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 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 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) @@ -106,46 +105,46 @@ ERROR: node is still EOpNull! 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 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 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: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:? '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:? '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 implicitly-sized array of float values}) -0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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}) +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: @@ -154,57 +153,57 @@ 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 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 implicitly-sized array of float values}) +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 implicitly-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 implicitly-sized array of float values}) +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: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 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:40 Barrier ( global void) 0:? Linker Objects -0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) +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:? '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 implicitly-sized array of float values}) -0:? 'invalid' (layout(column_major shared ) buffer block{layout(column_major shared ) buffer implicitly-sized 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 implicitly-sized 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}) +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 index 8cd1156b5a..29ffb01aa8 100644 --- a/deps/glslang/glslang/Test/baseResults/430.vert.out +++ b/deps/glslang/glslang/Test/baseResults/430.vert.out @@ -1,5 +1,4 @@ 430.vert -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -28,8 +27,9 @@ ERROR: 0:64: 'uniform buffer-member align' : not supported for this version or t 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: 'offset/align' : can only be used with std140 or std430 layout packing -ERROR: 0:65: 'align' : can only be used with std140 or std430 layout packing +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 @@ -60,10 +60,10 @@ ERROR: 0:169: 'textureSamples and imageSamples' : not supported for this version 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:221: 'assign' : cannot convert from ' const float' to ' temp int' ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found -ERROR: 0:222: 'assign' : cannot convert from 'const float' to 'temp int' -ERROR: 63 compilation errors. No code generated. +ERROR: 0:222: 'assign' : cannot convert from ' const float' to ' temp int' +ERROR: 64 compilation errors. No code generated. Shader version: 430 @@ -71,197 +71,197 @@ 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 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 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 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: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: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:155 MemoryBarrierImage ( global void) 0:156 Constant: 0:156 0.000000 -0:166 Function Definition: fooq( (global void) +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: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: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: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:? '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 component=0 ) in bool b1, layout(location=29 component=0 ) 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) +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: @@ -276,65 +276,65 @@ 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:? '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 component=0 ) in bool b1, layout(location=29 component=0 ) 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) +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 index fd3892dc49..ac23dacb19 100644 --- a/deps/glslang/glslang/Test/baseResults/430AofA.frag.out +++ b/deps/glslang/glslang/Test/baseResults/430AofA.frag.out @@ -1,20 +1,19 @@ 430AofA.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument ERROR: 0:15: '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 implicitly-sized array of 7-element array of float' +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: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: '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 @@ -25,14 +24,14 @@ 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 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: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 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: @@ -40,65 +39,65 @@ ERROR: node is still EOpNull! 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 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 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 '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 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 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 '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 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 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 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 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 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: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 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: @@ -108,8 +107,8 @@ ERROR: node is still EOpNull! 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: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 @@ -136,8 +135,8 @@ ERROR: node is still EOpNull! 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: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 @@ -164,8 +163,8 @@ ERROR: node is still EOpNull! 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: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 @@ -192,8 +191,8 @@ ERROR: node is still EOpNull! 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: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 @@ -220,8 +219,8 @@ ERROR: node is still EOpNull! 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 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 @@ -248,8 +247,8 @@ ERROR: node is still EOpNull! 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 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 @@ -276,8 +275,8 @@ ERROR: node is still EOpNull! 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 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 @@ -304,8 +303,8 @@ ERROR: node is still EOpNull! 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 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 @@ -331,60 +330,60 @@ ERROR: node is still EOpNull! 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 implicitly-sized array of 7-element array of float) +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: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 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 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 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 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: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 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: @@ -404,11 +403,11 @@ ERROR: node is still EOpNull! 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 implicitly-sized array of 7-element array of float) -0:? 'gimp' (global implicitly-sized array of implicitly-sized 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) +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: @@ -416,14 +415,14 @@ 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 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: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 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: @@ -431,65 +430,65 @@ ERROR: node is still EOpNull! 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 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 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 '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 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 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 '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 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 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 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 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 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: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 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: @@ -499,8 +498,8 @@ ERROR: node is still EOpNull! 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: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 @@ -527,8 +526,8 @@ ERROR: node is still EOpNull! 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: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 @@ -555,8 +554,8 @@ ERROR: node is still EOpNull! 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: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 @@ -583,8 +582,8 @@ ERROR: node is still EOpNull! 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: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 @@ -611,8 +610,8 @@ ERROR: node is still EOpNull! 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 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 @@ -639,8 +638,8 @@ ERROR: node is still EOpNull! 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 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 @@ -667,8 +666,8 @@ ERROR: node is still EOpNull! 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 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 @@ -695,8 +694,8 @@ ERROR: node is still EOpNull! 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 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 @@ -722,54 +721,54 @@ ERROR: node is still EOpNull! 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: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: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 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 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 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 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: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 implicitly-sized 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) +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 index c7d05038f9..973c21aa14 100644 --- a/deps/glslang/glslang/Test/baseResults/430scope.vert.out +++ b/deps/glslang/glslang/Test/baseResults/430scope.vert.out @@ -1,5 +1,4 @@ 430scope.vert -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : function name is redeclaration of existing name ERROR: 0:20: 'c' : redefinition @@ -13,116 +12,116 @@ 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 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: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 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:11 'a' ( in int) +0:25 Function Definition: cos(f1; ( global float) 0:25 Function Parameters: -0:25 'x' (in float) +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 Definition: radians(b1; ( global bool) 0:29 Function Parameters: -0:29 'x' (in bool) +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 Definition: main( ( global void) 0:36 Function Parameters: 0:? Sequence -0:39 Function Call: g( (temp int) -0:42 'sin' (temp float) +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 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 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) +0:49 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: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 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 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: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: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 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 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: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: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 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 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) +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: @@ -132,100 +131,100 @@ ERROR: Linking vertex stage: No function definition (body) found: Shader version: 430 ERROR: node is still EOpNull! -0:3 Function Definition: f(i1;i1;i1; (global int) +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: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 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: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: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 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 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 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: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 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 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: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: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 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 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: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: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 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 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) +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-new/Test/baseResults/435.vert.out b/deps/glslang/glslang/Test/baseResults/435.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/435.vert.out rename to deps/glslang/glslang/Test/baseResults/435.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/440.frag.out b/deps/glslang/glslang/Test/baseResults/440.frag.out index bdc1b09561..18e014f921 100644 --- a/deps/glslang/glslang/Test/baseResults/440.frag.out +++ b/deps/glslang/glslang/Test/baseResults/440.frag.out @@ -1,5 +1,4 @@ 440.frag -Warning, version 440 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -22,11 +21,11 @@ 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: 'offset/align' : can only be used with std140 or std430 layout packing -ERROR: 0:43: 'offset/align' : can only be used with std140 or std430 layout packing +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: 'offset/align' : can only be used with std140 or std430 layout packing +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 @@ -37,8 +36,9 @@ 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: 'align' : can only be used with std140 or std430 layout packing -ERROR: 0:63: 'align' : can only be used with std140 or std430 layout packing +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 @@ -48,18 +48,18 @@ 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: 48 compilation errors. No code generated. +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 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 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 @@ -67,57 +67,57 @@ ERROR: node is still EOpNull! 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 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 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: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) +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: @@ -127,39 +127,39 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr 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) +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 index bf625c8a77..41796cb52a 100644 --- a/deps/glslang/glslang/Test/baseResults/440.vert.out +++ b/deps/glslang/glslang/Test/baseResults/440.vert.out @@ -1,5 +1,4 @@ 440.vert -Warning, version 440 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -47,115 +46,119 @@ ERROR: 0:166: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers 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:179: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:179: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:179: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:187: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input) -ERROR: 0:188: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) -ERROR: 0:189: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) -ERROR: 0:190: 'glBaseInstanceARB' : undeclared identifier -ERROR: 54 compilation errors. No code generated. +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:177 Function Definition: drawParamsBad( (global int) -0:177 Function Parameters: -0:179 Sequence -0:179 Branch: Return with expression -0:179 add (temp int) -0:179 add (temp int) -0:179 'gl_BaseVertexARB' (in int BaseVertex) -0:179 'gl_BaseInstanceARB' (in int BaseInstance) -0:179 'gl_DrawIDARB' (in int DrawId) -0:184 Function Definition: drawParams( (global int) -0:184 Function Parameters: -0:186 Sequence -0:186 Branch: Return with expression -0:186 add (temp int) -0:186 add (temp int) -0:186 'gl_BaseVertexARB' (in int BaseVertex) -0:186 'gl_BaseInstanceARB' (in int BaseInstance) -0:186 'gl_DrawIDARB' (in int DrawId) -0:187 move second child to first child (temp int) -0:187 'gl_BaseVertexARB' (in int BaseVertex) -0:187 Constant: -0:187 3 (const int) -0:188 move second child to first child (temp int) -0:188 'gl_BaseInstanceARB' (in int BaseInstance) -0:188 Constant: -0:188 3 (const int) -0:189 move second child to first child (temp int) -0:189 'gl_DrawIDARB' (in int DrawId) -0:189 Constant: -0:189 3 (const int) -0:190 'glBaseInstanceARB' (temp float) +0: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:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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: @@ -175,67 +178,68 @@ 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:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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 index 203c4b24d1..4ae77ccaa0 100644 --- a/deps/glslang/glslang/Test/baseResults/450.comp.out +++ b/deps/glslang/glslang/Test/baseResults/450.comp.out @@ -1,18 +1,24 @@ 450.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +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) -0:? Sequence +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: 0:? Linker Objects Linked compute stage: -ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point Shader version: 450 local_size = (1, 1, 1) -0:? Sequence +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 index 038267335d..9cbb4cbd08 100644 --- a/deps/glslang/glslang/Test/baseResults/450.frag.out +++ b/deps/glslang/glslang/Test/baseResults/450.frag.out @@ -1,276 +1,285 @@ 450.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +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 -0:? Sequence -0:8 Function Definition: main( (global void) +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: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: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: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: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 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 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 Test condition and select ( temp void) 0:21 Condition -0:21 'gl_HelperInvocation' (in bool HelperInvocation) +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: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 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: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: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: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: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 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 Definition: cull(i1; ( global float) 0:53 Function Parameters: -0:53 'i' (in int) +0:53 'i' ( in int) 0:55 Sequence 0:55 Branch: Return with expression -0:55 Test condition and select (temp float) +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 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 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: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:? '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 -0:? Sequence -0:8 Function Definition: main( (global void) +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: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: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: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: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 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 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 Test condition and select ( temp void) 0:21 Condition -0:21 'gl_HelperInvocation' (in bool HelperInvocation) +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: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 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: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: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: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:? '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 index fef3486aeb..e75bf939ad 100644 --- a/deps/glslang/glslang/Test/baseResults/450.geom.out +++ b/deps/glslang/glslang/Test/baseResults/450.geom.out @@ -1,72 +1,85 @@ 450.geom -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +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 = none +input primitive = triangles output primitive = none -0:? Sequence -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 (layout(stream=0 ) temp float CullDistance) -0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance) -0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) 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 implicitly-sized 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) +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 implicitly-sized 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:? '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 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: 450 invocations = 1 max_vertices = -1 -input primitive = none +input primitive = triangles output primitive = none -0:? Sequence -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 (layout(stream=0 ) temp float CullDistance) -0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float CullDistance) -0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) 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 2-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) +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 2-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:? '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 index aeef6cb3ad..b3f4e252d4 100644 --- a/deps/glslang/glslang/Test/baseResults/450.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/450.tesc.out @@ -1,26 +1,28 @@ 450.tesc -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +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 -0:? Sequence -0:11 Function Definition: main( (global void) +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 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 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: @@ -28,8 +30,10 @@ vertices = -1 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:? '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: @@ -38,24 +42,24 @@ ERROR: Linking tessellation control stage: At least one shader must specify an o Shader version: 450 vertices = -1 -0:? Sequence -0:11 Function Definition: main( (global void) +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 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 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: @@ -63,6 +67,8 @@ vertices = -1 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:? '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 index f988f1086d..796d6f1604 100644 --- a/deps/glslang/glslang/Test/baseResults/450.tese.out +++ b/deps/glslang/glslang/Test/baseResults/450.tese.out @@ -1,26 +1,33 @@ 450.tese -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +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 -0:? Sequence -0:11 Function Definition: main( (global void) +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 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 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: @@ -28,8 +35,14 @@ triangle order = none 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:? '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: @@ -40,22 +53,22 @@ Shader version: 450 input primitive = none vertex spacing = equal_spacing triangle order = ccw -0:? Sequence -0:11 Function Definition: main( (global void) +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 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 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: @@ -63,6 +76,12 @@ triangle order = ccw 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:? '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 index 86338c7612..0f5f23136e 100644 --- a/deps/glslang/glslang/Test/baseResults/450.vert.out +++ b/deps/glslang/glslang/Test/baseResults/450.vert.out @@ -1,38 +1,88 @@ 450.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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: 2 compilation errors. No code generated. +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 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 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:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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: @@ -40,13 +90,13 @@ Linked vertex stage: Shader version: 450 ERROR: node is still EOpNull! -0:7 Function Definition: main( (global void) +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 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: @@ -54,16 +104,20 @@ ERROR: node is still EOpNull! 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:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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-new/Test/baseResults/460.frag.out b/deps/glslang/glslang/Test/baseResults/460.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/460.frag.out rename to deps/glslang/glslang/Test/baseResults/460.frag.out diff --git a/deps/glslang-new/Test/baseResults/460.vert.out b/deps/glslang/glslang/Test/baseResults/460.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/460.vert.out rename to deps/glslang/glslang/Test/baseResults/460.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/Operations.frag.out b/deps/glslang/glslang/Test/baseResults/Operations.frag.out index bc12fe0dae..680eb26559 100644 --- a/deps/glslang/glslang/Test/baseResults/Operations.frag.out +++ b/deps/glslang/glslang/Test/baseResults/Operations.frag.out @@ -11,307 +11,307 @@ 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: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: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: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: 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 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: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: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 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 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 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 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 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 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 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: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: @@ -320,181 +320,181 @@ ERROR: node is still EOpNull! 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: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: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 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: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) @@ -502,8 +502,8 @@ ERROR: node is still EOpNull! 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 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) @@ -513,78 +513,78 @@ ERROR: node is still EOpNull! 0:151 2 (const int) 0:151 Constant: 0:151 0 (const int) -0:153 Test condition and select (temp void) +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 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: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: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 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: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 '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 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: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) +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: @@ -592,289 +592,289 @@ Linked fragment stage: Shader version: 130 ERROR: node is still EOpNull! -0:15 Function Definition: main( (global void) +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: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: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 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 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 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 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 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 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 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: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: @@ -883,181 +883,181 @@ ERROR: node is still EOpNull! 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: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: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 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: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) @@ -1065,8 +1065,8 @@ ERROR: node is still EOpNull! 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 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) @@ -1076,76 +1076,76 @@ ERROR: node is still EOpNull! 0:151 2 (const int) 0:151 Constant: 0:151 0 (const int) -0:153 Test condition and select (temp void) +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 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: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: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 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: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 '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 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: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) +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 index 7a60fbc6d0..eba1bf78cf 100644 --- a/deps/glslang/glslang/Test/baseResults/aggOps.frag.out +++ b/deps/glslang/glslang/Test/baseResults/aggOps.frag.out @@ -4,148 +4,148 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:23 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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 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 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 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: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 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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}) +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: @@ -153,146 +153,146 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:23 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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 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 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 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: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 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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}) +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 index e1eeae3e6c..17cd443ec8 100644 --- a/deps/glslang/glslang/Test/baseResults/always-discard.frag.out +++ b/deps/glslang/glslang/Test/baseResults/always-discard.frag.out @@ -1,36 +1,36 @@ always-discard.frag Shader version: 110 0:? Sequence -0:4 Function Definition: main( (global void) +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 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 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: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 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: @@ -38,12 +38,12 @@ Shader version: 110 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 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: @@ -51,70 +51,70 @@ Shader version: 110 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: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 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 Test condition and select ( temp void) 0:16 Condition -0:16 Compare Greater Than (temp bool) -0:16 'radius' (temp float) +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: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 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: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 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 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 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: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) +0:? 'tex_coord' ( smooth in 2-component vector of float) Linked fragment stage: @@ -122,36 +122,36 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:4 Function Definition: main( (global void) +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 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 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: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 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: @@ -159,12 +159,12 @@ Shader version: 110 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 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: @@ -172,68 +172,68 @@ Shader version: 110 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: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 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 Test condition and select ( temp void) 0:16 Condition -0:16 Compare Greater Than (temp bool) -0:16 'radius' (temp float) +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: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 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: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 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 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 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: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) +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 index 72f21d2f00..3c7c06f374 100644 --- a/deps/glslang/glslang/Test/baseResults/always-discard2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/always-discard2.frag.out @@ -1,36 +1,36 @@ always-discard2.frag Shader version: 110 0:? Sequence -0:4 Function Definition: main( (global void) +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 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 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: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 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: @@ -38,12 +38,12 @@ Shader version: 110 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 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: @@ -51,11 +51,11 @@ Shader version: 110 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: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) +0:? 'tex_coord' ( smooth in 2-component vector of float) Linked fragment stage: @@ -63,36 +63,36 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:4 Function Definition: main( (global void) +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 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 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: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 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: @@ -100,12 +100,12 @@ Shader version: 110 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 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: @@ -113,9 +113,9 @@ Shader version: 110 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: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) +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 index e254bf1397..2af9f27f71 100644 --- a/deps/glslang/glslang/Test/baseResults/array.frag.out +++ b/deps/glslang/glslang/Test/baseResults/array.frag.out @@ -1,137 +1,140 @@ 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 implicitly-sized array of float' +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: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: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 implicitly-sized array of int' +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: 26 compilation errors. No code generated. +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 Definition: foo(f1[5]; ( global 4-element array of float) 0:9 Function Parameters: -0:9 'a' (in 5-element array of float) +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 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 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 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 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 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: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 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 implicitly-sized array of float) +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 implicitly-sized array of float) +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 implicitly-sized array of float) -0:27 'a' (uniform int) +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 implicitly-sized array of float) +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: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 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 '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 implicitly-sized array of float) +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 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 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: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: @@ -139,9 +142,9 @@ ERROR: node is still EOpNull! 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 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: @@ -149,9 +152,9 @@ ERROR: node is still EOpNull! 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 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: @@ -160,60 +163,60 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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 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 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 implicitly-sized array of int) +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 implicitly-sized array of 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 implicitly-sized array of 3-component vector of float) +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: @@ -222,19 +225,19 @@ ERROR: node is still EOpNull! 0:73 2.400000 0:76 Constant: 0:76 0.000000 -0:79 Function Definition: foo2( (global implicitly-sized array of float) +0:79 Function 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 implicitly-sized array of float) +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: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 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: @@ -243,38 +246,49 @@ ERROR: node is still EOpNull! 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 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 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 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 implicitly-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 implicitly-sized array of 3-component vector of float) -0:? 'f' (global float) -0:? 'gUnusedUnsized' (global implicitly-sized array of float) -0:? 'i' (global implicitly-sized array of int) -0:? 'emptyA' (global implicitly-sized array of float) -0:? 'b' (global float) +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: @@ -282,108 +296,108 @@ 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 Definition: foo(f1[5]; ( global 4-element array of float) 0:9 Function Parameters: -0:9 'a' (in 5-element array of float) +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 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 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 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 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 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: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 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 4-element array of float) +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 4-element array of float) +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 4-element array of float) -0:27 'a' (uniform int) +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 4-element array of float) +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: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 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 '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 4-element array of float) +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 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 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: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: @@ -391,9 +405,9 @@ ERROR: node is still EOpNull! 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 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: @@ -401,9 +415,9 @@ ERROR: node is still EOpNull! 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 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: @@ -412,54 +426,55 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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 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 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 4-element 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:? '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 index cf54361420..e6f9f8dc19 100644 --- a/deps/glslang/glslang/Test/baseResults/array100.frag.out +++ b/deps/glslang/glslang/Test/baseResults/array100.frag.out @@ -8,9 +8,9 @@ ERROR: 0:11: 'arrayed constructor' : not supported for this version or the enabl 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: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 implicitly-sized array of mediump float' +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 @@ -26,81 +26,81 @@ 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 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: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 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 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 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 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 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: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 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 implicitly-sized array of mediump float) +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: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 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 '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 implicitly-sized array of mediump float) +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 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: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: @@ -108,9 +108,9 @@ ERROR: node is still EOpNull! 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 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: @@ -118,9 +118,9 @@ ERROR: node is still EOpNull! 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 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: @@ -128,34 +128,34 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:40 1.000000 0:40 1.000000 -0:53 Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:53 Function 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: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: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: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: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 implicitly-sized 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) +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: @@ -163,81 +163,81 @@ 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 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: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 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 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 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 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 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: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 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: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: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 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 '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 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 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: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: @@ -245,9 +245,9 @@ ERROR: node is still EOpNull! 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 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: @@ -255,9 +255,9 @@ ERROR: node is still EOpNull! 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 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: @@ -266,8 +266,8 @@ ERROR: node is still EOpNull! 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) +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 index e54b5dcf1e..c705a063e8 100644 --- a/deps/glslang/glslang/Test/baseResults/atomic_uint.frag.out +++ b/deps/glslang/glslang/Test/baseResults/atomic_uint.frag.out @@ -1,84 +1,78 @@ atomic_uint.frag -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. 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:18: 'atomic_uint' : layout(binding=X) is required 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: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: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:37: 'atomic_uint' : layout(binding=X) is required ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg -ERROR: 0:38: 'atomic_uint' : layout(binding=X) is required -ERROR: 0:40: 'atomic_uint' : layout(binding=X) is required -ERROR: 0:46: 'atomic_uint' : layout(binding=X) is required 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: 18 compilation errors. No code generated. +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 Definition: func(au1; ( global uint) 0:5 Function Parameters: -0:5 'c' (in atomic_uint) +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: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: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: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: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: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: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: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) +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: @@ -86,28 +80,28 @@ Linked fragment stage: Shader version: 420 ERROR: node is still EOpNull! -0:16 Function Definition: main( (global void) +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: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) +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 index a29b22f59b..e3fec617a9 100644 --- a/deps/glslang/glslang/Test/baseResults/badChars.frag.out +++ b/deps/glslang/glslang/Test/baseResults/badChars.frag.out @@ -4,15 +4,16 @@ 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: '' : syntax error -ERROR: 7 compilation errors. No code generated. +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) +0:? 'a' ( global mediump int) Linked fragment stage: @@ -22,5 +23,5 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr Shader version: 100 ERROR: node is still EOpNull! 0:? Linker Objects -0:? 'a' (global mediump int) +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 index 95937ce318..5e6233f8d2 100644 --- a/deps/glslang/glslang/Test/baseResults/badMacroArgs.frag.out +++ b/deps/glslang/glslang/Test/baseResults/badMacroArgs.frag.out @@ -1,5 +1,4 @@ badMacroArgs.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. 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 index 1c876bb597..b1a00ff517 100644 --- a/deps/glslang/glslang/Test/baseResults/comment.frag.out +++ b/deps/glslang/glslang/Test/baseResults/comment.frag.out @@ -1,14 +1,13 @@ comment.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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 Definition: main( ( global void) 0:17 Function Parameters: 0:? Linker Objects -0:? 'v' (smooth in 4-component vector of float) +0:? 'v' ( smooth in 4-component vector of float) Linked fragment stage: @@ -16,8 +15,8 @@ Linked fragment stage: Shader version: 430 0:? Sequence -0:17 Function Definition: main( (global void) +0:17 Function Definition: main( ( global void) 0:17 Function Parameters: 0:? Linker Objects -0:? 'v' (smooth in 4-component vector of float) +0:? 'v' ( smooth in 4-component vector of float) diff --git a/deps/glslang-new/Test/baseResults/compoundsuffix.frag.hlsl b/deps/glslang/glslang/Test/baseResults/compoundsuffix.frag.hlsl similarity index 100% rename from deps/glslang-new/Test/baseResults/compoundsuffix.frag.hlsl rename to deps/glslang/glslang/Test/baseResults/compoundsuffix.frag.hlsl diff --git a/deps/glslang-new/Test/baseResults/compoundsuffix.vert.glsl b/deps/glslang/glslang/Test/baseResults/compoundsuffix.vert.glsl similarity index 100% rename from deps/glslang-new/Test/baseResults/compoundsuffix.vert.glsl rename to deps/glslang/glslang/Test/baseResults/compoundsuffix.vert.glsl diff --git a/deps/glslang/glslang/Test/baseResults/conditionalDiscard.frag.out b/deps/glslang/glslang/Test/baseResults/conditionalDiscard.frag.out index 169787f46c..255d9c4dea 100644 --- a/deps/glslang/glslang/Test/baseResults/conditionalDiscard.frag.out +++ b/deps/glslang/glslang/Test/baseResults/conditionalDiscard.frag.out @@ -1,19 +1,19 @@ conditionalDiscard.frag Shader version: 110 0:? Sequence -0:6 Function Definition: main( (global void) +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: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 Compare Equal ( temp bool) +0:10 'v' ( temp 4-component vector of float) 0:10 Constant: 0:10 0.100000 0:10 0.200000 @@ -21,12 +21,12 @@ Shader version: 110 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: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) +0:? 'tex' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) Linked fragment stage: @@ -34,19 +34,19 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:6 Function Definition: main( (global void) +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: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 Compare Equal ( temp bool) +0:10 'v' ( temp 4-component vector of float) 0:10 Constant: 0:10 0.100000 0:10 0.200000 @@ -54,10 +54,10 @@ Shader version: 110 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: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) +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 index f04c7369ff..0b2dc62f8a 100644 --- a/deps/glslang/glslang/Test/baseResults/constErrors.frag.out +++ b/deps/glslang/glslang/Test/baseResults/constErrors.frag.out @@ -3,29 +3,29 @@ ERROR: 0:14: 'non-constant initializer' : not supported for this version or the 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: 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 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: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:? '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:? '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 @@ -34,21 +34,21 @@ Linked fragment stage: Shader version: 330 ERROR: node is still EOpNull! -0:10 Function Definition: main( (global void) +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: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:? '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:? '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 index 33bf51306d..33cfcbafed 100644 --- a/deps/glslang/glslang/Test/baseResults/constFold.frag.out +++ b/deps/glslang/glslang/Test/baseResults/constFold.frag.out @@ -1,5 +1,4 @@ constFold.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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' @@ -11,165 +10,165 @@ 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 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: @@ -179,7 +178,7 @@ ERROR: node is still EOpNull! 0:83 Constant: 0:83 2147483647 (const int) 0:84 Constant: -0:84 inf +0:84 +1.#INF 0:88 Constant: 0:88 2 (const uint) 0:88 3 (const uint) @@ -188,23 +187,23 @@ ERROR: node is still EOpNull! 0:90 Constant: 0:90 6 (const uint) 0:90 7 (const uint) -0:103 Function Definition: foo2( (global void) +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 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 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 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 direct index ( temp float) +0:108 'a4' ( global 2-element array of float) 0:108 Constant: 0:108 0 (const int) 0:109 Constant: @@ -219,32 +218,32 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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 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: @@ -257,12 +256,12 @@ ERROR: node is still EOpNull! 0:120 1.000000 0:120 Constant: 0:120 3 (const int) -0:126 Function Definition: foo3( (global void) +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 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 @@ -270,47 +269,47 @@ ERROR: node is still EOpNull! 0:128 76.000000 0:128 59.000000 0:128 88.000000 -0:138 Function Definition: foo4( (global void) +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 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:? 'a' ( const int) 0:? 1 (const int) -0:? 'b' (const int) +0:? 'b' ( const int) 0:? 2 (const int) -0:? 'c' (const int) +0:? 'c' ( const int) 0:? 3 (const int) -0:? 'd' (const int) +0:? 'd' ( const int) 0:? 2 (const int) -0:? 'e' (const float) +0:? 'e' ( const float) 0:? 2.000000 -0:? 'f' (const float) +0:? 'f' ( const float) 0:? 6.000000 -0:? 'g' (const float) +0:? 'g' ( const float) 0:? 3.000000 -0:? 'pytho' (const 2-component vector of float) +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:? '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 @@ -324,12 +323,12 @@ ERROR: node is still EOpNull! 0:? 6.000000 0:? 7.000000 0:? 8.000000 -0:? 'm2' (const 2X2 matrix of float) +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:? 'm3' ( const 3X3 matrix of float) 0:? 2.000000 0:? 3.000000 0:? 0.000000 @@ -339,32 +338,32 @@ ERROR: node is still EOpNull! 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:? 'mc' (const int) +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:? '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:? '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:? '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:? '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:? '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) @@ -374,17 +373,17 @@ ERROR: node is still EOpNull! 0:? 1 (const int) 0:? 9.000000 0:? false (const bool) -0:? 'cval1' (const bool) +0:? 'cval1' ( const bool) 0:? true (const bool) -0:? 'cval2' (const bool) +0:? 'cval2' ( const bool) 0:? false (const bool) -0:? 'cval3' (const bool) +0:? 'cval3' ( const bool) 0:? false (const bool) -0:? 'cval4' (const bool) +0:? 'cval4' ( const bool) 0:? true (const bool) -0:? 'cval5' (const bool) +0:? 'cval5' ( const bool) 0:? false (const bool) -0:? 'cval6' (const bool) +0:? 'cval6' ( const bool) 0:? true (const bool) @@ -393,192 +392,192 @@ Linked fragment stage: Shader version: 430 ERROR: node is still EOpNull! -0:28 Function Definition: main( (global void) +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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:? 'a' ( const int) 0:? 1 (const int) -0:? 'b' (const int) +0:? 'b' ( const int) 0:? 2 (const int) -0:? 'c' (const int) +0:? 'c' ( const int) 0:? 3 (const int) -0:? 'd' (const int) +0:? 'd' ( const int) 0:? 2 (const int) -0:? 'e' (const float) +0:? 'e' ( const float) 0:? 2.000000 -0:? 'f' (const float) +0:? 'f' ( const float) 0:? 6.000000 -0:? 'g' (const float) +0:? 'g' ( const float) 0:? 3.000000 -0:? 'pytho' (const 2-component vector of float) +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:? '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 @@ -592,12 +591,12 @@ ERROR: node is still EOpNull! 0:? 6.000000 0:? 7.000000 0:? 8.000000 -0:? 'm2' (const 2X2 matrix of float) +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:? 'm3' ( const 3X3 matrix of float) 0:? 2.000000 0:? 3.000000 0:? 0.000000 @@ -607,32 +606,32 @@ ERROR: node is still EOpNull! 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:? 'mc' (const int) +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:? '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:? '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:? '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:? '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:? '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) @@ -642,16 +641,16 @@ ERROR: node is still EOpNull! 0:? 1 (const int) 0:? 9.000000 0:? false (const bool) -0:? 'cval1' (const bool) +0:? 'cval1' ( const bool) 0:? true (const bool) -0:? 'cval2' (const bool) +0:? 'cval2' ( const bool) 0:? false (const bool) -0:? 'cval3' (const bool) +0:? 'cval3' ( const bool) 0:? false (const bool) -0:? 'cval4' (const bool) +0:? 'cval4' ( const bool) 0:? true (const bool) -0:? 'cval5' (const bool) +0:? 'cval5' ( const bool) 0:? false (const bool) -0:? 'cval6' (const bool) +0:? 'cval6' ( const bool) 0:? true (const bool) diff --git a/deps/glslang-new/Test/baseResults/constFoldIntMin.frag.out b/deps/glslang/glslang/Test/baseResults/constFoldIntMin.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/constFoldIntMin.frag.out rename to deps/glslang/glslang/Test/baseResults/constFoldIntMin.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/conversion.frag.out b/deps/glslang/glslang/Test/baseResults/conversion.frag.out index 3abf82ceff..73875d1962 100644 --- a/deps/glslang/glslang/Test/baseResults/conversion.frag.out +++ b/deps/glslang/glslang/Test/baseResults/conversion.frag.out @@ -1,427 +1,427 @@ conversion.frag Shader version: 130 0:? Sequence -0:33 Function Definition: main( (global void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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 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 'b' ( temp bool) 0:74 true case -0:74 Convert int to float (temp float) -0:74 'i' (temp int) +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 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 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 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 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 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: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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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 @@ -431,48 +431,48 @@ Shader version: 130 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 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: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) +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: @@ -480,427 +480,427 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:33 Function Definition: main( (global void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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 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 'b' ( temp bool) 0:74 true case -0:74 Convert int to float (temp float) -0:74 'i' (temp int) +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 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 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 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 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 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: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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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 @@ -910,46 +910,46 @@ Shader version: 130 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 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: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) +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 index 1fb18ecd1d..1a2286aa91 100755 --- a/deps/glslang/glslang/Test/baseResults/cppBad.vert.out +++ b/deps/glslang/glslang/Test/baseResults/cppBad.vert.out @@ -2,8 +2,8 @@ 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: 'macro expansion' : expected '(' following n -ERROR: 0:5: '' : syntax error +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. diff --git a/deps/glslang-new/Test/baseResults/cppBad2.vert.out b/deps/glslang/glslang/Test/baseResults/cppBad2.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/cppBad2.vert.out rename to deps/glslang/glslang/Test/baseResults/cppBad2.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/cppComplexExpr.vert.out b/deps/glslang/glslang/Test/baseResults/cppComplexExpr.vert.out index 352dcac181..6bfcd9cca3 100644 --- a/deps/glslang/glslang/Test/baseResults/cppComplexExpr.vert.out +++ b/deps/glslang/glslang/Test/baseResults/cppComplexExpr.vert.out @@ -1,6 +1,8 @@ cppComplexExpr.vert -ERROR: 0:46: 'xyxwx' : illegal vector field selection -ERROR: 0:46: 'xyxwx' : illegal vector field selection +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 @@ -47,80 +49,94 @@ 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: 48 compilation errors. No code generated. +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 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 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 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 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 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: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 float) -0:46 add (temp highp float) -0:46 direct index (temp highp float) -0:46 'gl_Position' (gl_Position highp 4-component vector of float Position) -0:46 Constant: -0:46 0 (const int) +0:46 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 float) -0:46 direct index (temp highp float) -0:46 'gl_Position' (gl_Position highp 4-component vector of float Position) -0:46 Constant: -0:46 0 (const int) +0:46 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 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 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: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) +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: @@ -129,37 +145,37 @@ 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 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 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 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 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 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: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: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) +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-new/Test/baseResults/cppDeepNest.frag.out b/deps/glslang/glslang/Test/baseResults/cppDeepNest.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/cppDeepNest.frag.out rename to deps/glslang/glslang/Test/baseResults/cppDeepNest.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/cppIndent.vert.out b/deps/glslang/glslang/Test/baseResults/cppIndent.vert.out index 318ca815d4..05eb244de0 100644 --- a/deps/glslang/glslang/Test/baseResults/cppIndent.vert.out +++ b/deps/glslang/glslang/Test/baseResults/cppIndent.vert.out @@ -1,45 +1,45 @@ cppIndent.vert ERROR: 0:61: 'macro expansion' : Too few args in Macro FUNC -ERROR: 0:61: '' : syntax error +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 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 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 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 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 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 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 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: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) +0:? 'sum' ( global float) Linked vertex stage: @@ -48,37 +48,37 @@ 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 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 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 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 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 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 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 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: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) +0:? 'sum' ( global float) diff --git a/deps/glslang-new/Test/baseResults/cppIntMinOverNegativeOne.frag.out b/deps/glslang/glslang/Test/baseResults/cppIntMinOverNegativeOne.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/cppIntMinOverNegativeOne.frag.out rename to deps/glslang/glslang/Test/baseResults/cppIntMinOverNegativeOne.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/cppNest.vert.out b/deps/glslang/glslang/Test/baseResults/cppNest.vert.out index 2077ec3379..afd0370d07 100644 --- a/deps/glslang/glslang/Test/baseResults/cppNest.vert.out +++ b/deps/glslang/glslang/Test/baseResults/cppNest.vert.out @@ -11,72 +11,72 @@ 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 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 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 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 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 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 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 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 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: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 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 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 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 Definition: foo985( ( global void) 0:175 Function Parameters: 0:175 Sequence -0:175 add (temp int) +0:175 add ( temp int) 0:175 Constant: 0:175 2 (const int) -0:175 Comma (temp 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) +0:? 'sum' ( global float) +0:? 'selected4' ( global int) +0:? 'selected2' ( global int) +0:? 'selected3' ( global int) Linked vertex stage: @@ -85,59 +85,59 @@ 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 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 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 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 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 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 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 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 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: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 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 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 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) +0:? 'sum' ( global float) +0:? 'selected4' ( global int) +0:? 'selected2' ( global int) +0:? 'selected3' ( global int) diff --git a/deps/glslang-new/Test/baseResults/cppPassMacroName.frag.out b/deps/glslang/glslang/Test/baseResults/cppPassMacroName.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/cppPassMacroName.frag.out rename to deps/glslang/glslang/Test/baseResults/cppPassMacroName.frag.out diff --git a/deps/glslang-new/Test/baseResults/cppRelaxSkipTokensErrors.vert.out b/deps/glslang/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/cppRelaxSkipTokensErrors.vert.out rename to deps/glslang/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/cppSimple.vert.out b/deps/glslang/glslang/Test/baseResults/cppSimple.vert.out index bf4b42aeef..8da3ae67ad 100644 --- a/deps/glslang/glslang/Test/baseResults/cppSimple.vert.out +++ b/deps/glslang/glslang/Test/baseResults/cppSimple.vert.out @@ -1,5 +1,4 @@ cppSimple.vert -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:77: '#error' : good1 ERROR: 0:81: '#error' : good2 ERROR: 0:85: '#error' : good3 @@ -22,7 +21,7 @@ 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: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_ @@ -76,10 +75,8 @@ 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: 'macro expansion' : expected '(' following FOOOM ERROR: 12:9014: 'FOOOM' : undeclared identifier -ERROR: 12:9014: '=' : cannot convert from 'temp float' to 'global int' -ERROR: 12:9015: 'macro expansion' : expected '(' following FOOOM +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 @@ -91,6 +88,8 @@ 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. @@ -98,84 +97,84 @@ 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 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 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 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 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 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 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 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 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 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0: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: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 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 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 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 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 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 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 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +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: @@ -184,24 +183,24 @@ ERROR: node is still EOpNull! 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) +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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:? '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) +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: @@ -210,95 +209,95 @@ 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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) +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) +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 index 030bae7d9e..789761692f 100644 --- a/deps/glslang/glslang/Test/baseResults/dataOut.frag.out +++ b/deps/glslang/glslang/Test/baseResults/dataOut.frag.out @@ -3,17 +3,17 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:5 Function Definition: main( (global void) +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 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:7 'Color' ( smooth in 4-component vector of float) 0:? Linker Objects -0:? 'Color' (smooth in 4-component vector of float) +0:? 'Color' ( smooth in 4-component vector of float) Linked fragment stage: @@ -21,15 +21,15 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:5 Function Definition: main( (global void) +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 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:7 'Color' ( smooth in 4-component vector of float) 0:? Linker Objects -0:? 'Color' (smooth in 4-component vector of float) +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 index 31b4f07a5f..dbadb03ed7 100644 --- a/deps/glslang/glslang/Test/baseResults/dataOutIndirect.frag.out +++ b/deps/glslang/glslang/Test/baseResults/dataOutIndirect.frag.out @@ -3,17 +3,17 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:7 Function Definition: main( (global void) +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: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) +0:? 'Color' ( smooth in 4-component vector of float) +0:? 'i' ( uniform int) Linked fragment stage: @@ -21,15 +21,15 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:7 Function Definition: main( (global void) +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: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) +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 index 6707ae72f5..6b02eb1c21 100644 --- a/deps/glslang/glslang/Test/baseResults/dce.frag.out +++ b/deps/glslang/glslang/Test/baseResults/dce.frag.out @@ -1,121 +1,119 @@ dce.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - 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 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 Definition: bar( ( global void) 0:7 Function Parameters: 0:9 Sequence -0:9 Test condition and select (temp void) +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: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: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 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:14 Pre-Increment ( temp int) +0:14 'c' ( global int) 0:16 switch 0:16 condition -0:16 'c' (global int) +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: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: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: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 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 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: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: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 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 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 Test condition and select ( temp void) 0:32 Condition -0:32 Compare Less Than (temp bool) -0:32 'c' (global int) +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: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: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: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: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 Test condition and select ( temp void) 0:48 Condition -0:48 Compare Greater Than (temp bool) -0:48 'c' (global int) +0:48 Compare Greater Than ( temp bool) +0:48 'c' ( global int) 0:48 Constant: 0:48 4 (const int) 0:48 true case @@ -123,17 +121,17 @@ Shader version: 400 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: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:55 Pre-Increment ( temp int) +0:55 'c' ( global int) 0:? Linker Objects -0:? 'flag' (const bool) +0:? 'flag' ( const bool) 0:? false (const bool) -0:? 'c' (global int) +0:? 'c' ( global int) Linked fragment stage: @@ -143,12 +141,12 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr 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 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:? 'flag' ( const bool) 0:? false (const bool) -0:? 'c' (global int) +0:? 'c' ( global int) diff --git a/deps/glslang/glslang/Test/baseResults/decls.frag.out b/deps/glslang/glslang/Test/baseResults/decls.frag.out index a7e2137d4e..72ad11c4f7 100644 --- a/deps/glslang/glslang/Test/baseResults/decls.frag.out +++ b/deps/glslang/glslang/Test/baseResults/decls.frag.out @@ -30,31 +30,31 @@ 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 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 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 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 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 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) @@ -62,36 +62,36 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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) @@ -99,61 +99,61 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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 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 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 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 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) @@ -161,112 +161,112 @@ ERROR: node is still EOpNull! 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 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 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 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:? '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:? '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:? 'cim2' ( const 2-element array of int) 0:? 10 (const int) 0:? 11 (const int) -0:? 'cim3' (const 3-element array of 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:? '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:? '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:? '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:? 'uim2' ( uniform 2-element array of int) 0:? 10 (const int) 0:? 11 (const int) -0:? 'uim3' (uniform 3-element array of 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:? '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) +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: @@ -275,31 +275,31 @@ 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 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 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 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 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 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) @@ -307,36 +307,36 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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) @@ -344,61 +344,61 @@ ERROR: node is still EOpNull! 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 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 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 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 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 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 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 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 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 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) @@ -406,110 +406,110 @@ ERROR: node is still EOpNull! 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 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 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 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:? '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:? '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:? 'cim2' ( const 2-element array of int) 0:? 10 (const int) 0:? 11 (const int) -0:? 'cim3' (const 3-element array of 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:? '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:? '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:? '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:? 'uim2' ( uniform 2-element array of int) 0:? 10 (const int) 0:? 11 (const int) -0:? 'uim3' (uniform 3-element array of 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:? '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) +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 index 9441ace975..a4fdf5a8ee 100644 --- a/deps/glslang/glslang/Test/baseResults/deepRvalue.frag.out +++ b/deps/glslang/glslang/Test/baseResults/deepRvalue.frag.out @@ -2,114 +2,114 @@ 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 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 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 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 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 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: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: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 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 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 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 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 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 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 'v1' ( global 4-component vector of float) 0:30 false case -0:30 'v2' (global 4-component vector of float) +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 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 @@ -125,19 +125,19 @@ Shader version: 120 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: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) +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: @@ -146,114 +146,114 @@ 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 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 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 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 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 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: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: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 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 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 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 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 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 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 'v1' ( global 4-component vector of float) 0:30 false case -0:30 'v2' (global 4-component vector of float) +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 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 @@ -269,17 +269,17 @@ Shader version: 120 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: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) +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 index 0177b39e32..91c1fc2075 100644 --- a/deps/glslang/glslang/Test/baseResults/depthOut.frag.out +++ b/deps/glslang/glslang/Test/baseResults/depthOut.frag.out @@ -4,18 +4,18 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:6 Function Definition: main( (global void) +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: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) +0:? 'Color' ( smooth in 4-component vector of float) +0:? 'Depth' ( smooth in float) Linked fragment stage: @@ -23,16 +23,16 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:6 Function Definition: main( (global void) +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: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) +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 index 9b194c7bd2..5f5e889455 100644 --- a/deps/glslang/glslang/Test/baseResults/discard-dce.frag.out +++ b/deps/glslang/glslang/Test/baseResults/discard-dce.frag.out @@ -1,36 +1,36 @@ discard-dce.frag Shader version: 110 0:? Sequence -0:4 Function Definition: main( (global void) +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 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 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: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 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: @@ -38,12 +38,12 @@ Shader version: 110 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 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: @@ -51,70 +51,70 @@ Shader version: 110 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: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 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 Test condition and select ( temp void) 0:16 Condition -0:16 Compare Greater Than (temp bool) -0:16 'radius' (temp float) +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: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 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: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 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 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 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: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) +0:? 'tex_coord' ( smooth in 2-component vector of float) Linked fragment stage: @@ -122,36 +122,36 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:4 Function Definition: main( (global void) +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 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 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: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 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: @@ -159,12 +159,12 @@ Shader version: 110 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 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: @@ -172,68 +172,68 @@ Shader version: 110 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: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 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 Test condition and select ( temp void) 0:16 Condition -0:16 Compare Greater Than (temp bool) -0:16 'radius' (temp float) +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: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 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: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 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 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 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: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) +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 index 4cfbea97dc..5302cb98b4 100644 --- a/deps/glslang/glslang/Test/baseResults/doWhileLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/doWhileLoop.frag.out @@ -1,33 +1,33 @@ doWhileLoop.frag Shader version: 110 0:? Sequence -0:7 Function Definition: main( (global void) +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: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 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 '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: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) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) Linked fragment stage: @@ -35,31 +35,31 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:7 Function Definition: main( (global void) +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: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 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 '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: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) +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 index 160b756697..8c9e4d9715 100644 --- a/deps/glslang/glslang/Test/baseResults/earlyReturnDiscard.frag.out +++ b/deps/glslang/glslang/Test/baseResults/earlyReturnDiscard.frag.out @@ -1,129 +1,129 @@ earlyReturnDiscard.frag Shader version: 110 0:? Sequence -0:19 Function Definition: main( (global void) +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: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 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: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: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 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 '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 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 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 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 '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: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 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 'threshhold2' ( uniform float) 0:42 true case 0:43 Sequence -0:43 Test condition and select (temp void) +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 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 '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 Test condition and select ( temp void) 0:45 Condition -0:45 'b' (uniform bool) +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 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 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 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 '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: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 Test condition and select ( temp void) 0:55 Condition -0:55 'b' (uniform bool) +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: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) +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: @@ -131,127 +131,127 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:19 Function Definition: main( (global void) +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: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 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: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: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 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 '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 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 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 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 '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: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 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 'threshhold2' ( uniform float) 0:42 true case 0:43 Sequence -0:43 Test condition and select (temp void) +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 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 '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 Test condition and select ( temp void) 0:45 Condition -0:45 'b' (uniform bool) +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 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 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 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 '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: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 Test condition and select ( temp void) 0:55 Condition -0:55 'b' (uniform bool) +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: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) +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/errors.frag.out b/deps/glslang/glslang/Test/baseResults/errors.frag.out index 23f66315a0..7271107e02 100644 --- a/deps/glslang/glslang/Test/baseResults/errors.frag.out +++ b/deps/glslang/glslang/Test/baseResults/errors.frag.out @@ -6,9 +6,9 @@ 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 Definition: main(i1; ( global mediump int) 0:1 Function Parameters: -0:1 'foo' (in mediump int) +0:1 'foo' ( in mediump int) 0:3 Sequence 0:3 Branch: Return with expression 0:3 Constant: @@ -21,9 +21,9 @@ Linked fragment stage: Shader version: 100 ERROR: node is still EOpNull! -0:1 Function Definition: main(i1; (global mediump int) +0:1 Function Definition: main(i1; ( global mediump int) 0:1 Function Parameters: -0:1 'foo' (in mediump int) +0:1 'foo' ( in mediump int) 0:3 Sequence 0:3 Branch: Return with expression 0:3 Constant: diff --git a/deps/glslang/glslang/Test/baseResults/es-link1.frag.out b/deps/glslang/glslang/Test/baseResults/es-link1.frag.out index 41ce9a0fdf..8e662c3d79 100644 --- a/deps/glslang/glslang/Test/baseResults/es-link1.frag.out +++ b/deps/glslang/glslang/Test/baseResults/es-link1.frag.out @@ -1,27 +1,27 @@ es-link1.frag Shader version: 100 0:? Sequence -0:5 Function Definition: main( (global void) +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: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 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 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) +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-new/Test/baseResults/findFunction.frag.out b/deps/glslang/glslang/Test/baseResults/findFunction.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/findFunction.frag.out rename to deps/glslang/glslang/Test/baseResults/findFunction.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/flowControl.frag.out b/deps/glslang/glslang/Test/baseResults/flowControl.frag.out index 324da066c1..4f5fc8bcec 100644 --- a/deps/glslang/glslang/Test/baseResults/flowControl.frag.out +++ b/deps/glslang/glslang/Test/baseResults/flowControl.frag.out @@ -1,41 +1,41 @@ flowControl.frag Shader version: 120 0:? Sequence -0:10 Function Definition: main( (global void) +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: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 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: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: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) +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: @@ -43,39 +43,39 @@ Linked fragment stage: Shader version: 120 0:? Sequence -0:10 Function Definition: main( (global void) +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: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 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: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: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) +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 index babd30e45d..e6a151788e 100644 --- a/deps/glslang/glslang/Test/baseResults/forLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/forLoop.frag.out @@ -1,98 +1,98 @@ forLoop.frag Shader version: 130 0:? Sequence -0:10 Function Definition: main( (global void) +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: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 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 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: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: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 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 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 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: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: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 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 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 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: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) @@ -100,8 +100,8 @@ Shader version: 130 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 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) @@ -111,28 +111,28 @@ Shader version: 130 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 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 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 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: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: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) @@ -140,8 +140,8 @@ Shader version: 130 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 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) @@ -151,31 +151,31 @@ Shader version: 130 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 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 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: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 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) +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: @@ -183,98 +183,98 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:10 Function Definition: main( (global void) +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: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 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 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: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: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 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 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 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: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: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 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 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 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: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) @@ -282,8 +282,8 @@ Shader version: 130 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 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) @@ -293,28 +293,28 @@ Shader version: 130 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 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 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 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: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: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) @@ -322,8 +322,8 @@ Shader version: 130 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 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) @@ -333,29 +333,29 @@ Shader version: 130 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 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 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: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 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) +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 index 357cc2bd45..22e77c5b76 100644 --- a/deps/glslang/glslang/Test/baseResults/forwardRef.frag.out +++ b/deps/glslang/glslang/Test/baseResults/forwardRef.frag.out @@ -1,35 +1,35 @@ forwardRef.frag Shader version: 110 0:? Sequence -0:11 Function Definition: main( (global void) +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: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: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 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: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 Compare Less Than ( temp bool) +0:28 'd' ( uniform float) 0:28 Constant: 0:28 4.200000 0:28 true case @@ -40,24 +40,24 @@ Shader version: 110 0:31 Branch: Return with expression 0:31 Constant: 0:31 4.500000 -0:34 Function Definition: foo(vf4; (global float) +0:34 Function Definition: foo(vf4; ( global float) 0:34 Function Parameters: -0:34 'bar' (in 4-component vector of float) +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 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 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) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) Linked fragment stage: @@ -65,35 +65,35 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:11 Function Definition: main( (global void) +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: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: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 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: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 Compare Less Than ( temp bool) +0:28 'd' ( uniform float) 0:28 Constant: 0:28 4.200000 0:28 true case @@ -104,22 +104,22 @@ Shader version: 110 0:31 Branch: Return with expression 0:31 Constant: 0:31 4.500000 -0:34 Function Definition: foo(vf4; (global float) +0:34 Function Definition: foo(vf4; ( global float) 0:34 Function Parameters: -0:34 'bar' (in 4-component vector of float) +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 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 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) +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 index 610f2bb1e6..902208ff7c 100644 --- a/deps/glslang/glslang/Test/baseResults/functionCall.frag.out +++ b/deps/glslang/glslang/Test/baseResults/functionCall.frag.out @@ -4,33 +4,33 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas 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 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 Definition: foo(vf4; ( global float) 0:9 Function Parameters: -0:9 'bar' (in 4-component vector of float) +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 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 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 Definition: bar( ( global void) 0:14 Function Parameters: -0:18 Function Definition: unreachableReturn( (global float) +0:18 Function Definition: unreachableReturn( ( global float) 0:18 Function Parameters: 0:20 Sequence -0:20 Test condition and select (temp void) +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 Compare Less Than ( temp bool) +0:20 'd' ( uniform float) 0:20 Constant: 0:20 4.200000 0:20 true case @@ -41,53 +41,53 @@ Shader version: 130 0:23 Branch: Return with expression 0:23 Constant: 0:23 4.500000 -0:27 Function Definition: missingReturn( (global float) +0:27 Function Definition: missingReturn( ( global float) 0:27 Function Parameters: 0:29 Sequence -0:29 Test condition and select (temp void) +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 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: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 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: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: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: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) +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: @@ -96,33 +96,33 @@ 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 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 Definition: foo(vf4; ( global float) 0:9 Function Parameters: -0:9 'bar' (in 4-component vector of float) +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 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 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 Definition: bar( ( global void) 0:14 Function Parameters: -0:18 Function Definition: unreachableReturn( (global float) +0:18 Function Definition: unreachableReturn( ( global float) 0:18 Function Parameters: 0:20 Sequence -0:20 Test condition and select (temp void) +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 Compare Less Than ( temp bool) +0:20 'd' ( uniform float) 0:20 Constant: 0:20 4.200000 0:20 true case @@ -133,51 +133,51 @@ Shader version: 130 0:23 Branch: Return with expression 0:23 Constant: 0:23 4.500000 -0:27 Function Definition: missingReturn( (global float) +0:27 Function Definition: missingReturn( ( global float) 0:27 Function Parameters: 0:29 Sequence -0:29 Test condition and select (temp void) +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 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: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 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: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: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: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) +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 index e0fd0767a8..d04e6e7adc 100644 --- a/deps/glslang/glslang/Test/baseResults/functionSemantics.frag.out +++ b/deps/glslang/glslang/Test/baseResults/functionSemantics.frag.out @@ -1,5 +1,4 @@ functionSemantics.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:74: 'return' : cannot convert return value to function return type WARNING: 0:74: 'return' : type conversion on return values was not explicitly allowed until version 420 ERROR: 1 compilation errors. No code generated. @@ -7,93 +6,93 @@ 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 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: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: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 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 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 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 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 '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: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: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: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 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: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 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 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 Definition: foo3( ( global int) 0:29 Function Parameters: 0:31 Sequence -0:31 Test condition and select (temp void) +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 Compare Greater Than ( temp bool) +0:31 'u' ( uniform float) 0:31 Constant: 0:31 3.200000 0:31 true case @@ -105,18 +104,18 @@ ERROR: node is still EOpNull! 0:36 Branch: Return with expression 0:36 Constant: 0:36 2000000 (const int) -0:39 Function Definition: main( (global void) +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 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 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: @@ -124,88 +123,88 @@ ERROR: node is still EOpNull! 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 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 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 '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 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 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 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: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: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:74 'u' ( uniform float) 0:? Linker Objects -0:? 'u' (uniform float) +0:? 'u' ( uniform float) Linked fragment stage: @@ -213,93 +212,93 @@ 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 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: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: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 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 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 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 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 '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: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: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: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 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: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 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 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 Definition: foo3( ( global int) 0:29 Function Parameters: 0:31 Sequence -0:31 Test condition and select (temp void) +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 Compare Greater Than ( temp bool) +0:31 'u' ( uniform float) 0:31 Constant: 0:31 3.200000 0:31 true case @@ -311,18 +310,18 @@ ERROR: node is still EOpNull! 0:36 Branch: Return with expression 0:36 Constant: 0:36 2000000 (const int) -0:39 Function Definition: main( (global void) +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 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 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: @@ -330,73 +329,73 @@ ERROR: node is still EOpNull! 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 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 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 '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 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 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 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: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) +0:? 'u' ( uniform float) diff --git a/deps/glslang-new/Test/baseResults/glsl.-D-U.frag.out b/deps/glslang/glslang/Test/baseResults/glsl.-D-U.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/glsl.-D-U.frag.out rename to deps/glslang/glslang/Test/baseResults/glsl.-D-U.frag.out diff --git a/deps/glslang-new/Test/baseResults/glsl.entryPointRename.vert.bad.out b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out similarity index 100% rename from deps/glslang-new/Test/baseResults/glsl.entryPointRename.vert.bad.out rename to deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out diff --git a/deps/glslang-new/Test/baseResults/glsl.entryPointRename.vert.out b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/glsl.entryPointRename.vert.out rename to deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.out diff --git a/deps/glslang-new/Test/baseResults/glsl.entryPointRename2.vert.out b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename2.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/glsl.entryPointRename2.vert.out rename to deps/glslang/glslang/Test/baseResults/glsl.entryPointRename2.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/glspv.esversion.vert.out b/deps/glslang/glslang/Test/baseResults/glspv.esversion.vert.out index 8e4b3b883c..782865abcc 100755 --- a/deps/glslang/glslang/Test/baseResults/glspv.esversion.vert.out +++ b/deps/glslang/glslang/Test/baseResults/glspv.esversion.vert.out @@ -1,6 +1,5 @@ glspv.esversion.vert ERROR: #version: ES shaders for OpenGL SPIR-V are not supported -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. ERROR: 1 compilation errors. No code generated. diff --git a/deps/glslang/glslang/Test/baseResults/glspv.frag.out b/deps/glslang/glslang/Test/baseResults/glspv.frag.out index daa1dc1e42..db752133c1 100755 --- a/deps/glslang/glslang/Test/baseResults/glspv.frag.out +++ b/deps/glslang/glslang/Test/baseResults/glspv.frag.out @@ -1,9 +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: 'input_attachment_index' : only allowed when using GLSL for Vulkan -ERROR: 0:14: '' : syntax error -ERROR: 4 compilation errors. No code generated. +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 index 3e8e8c4b00..4a45b5bfd1 100755 --- a/deps/glslang/glslang/Test/baseResults/glspv.version.frag.out +++ b/deps/glslang/glslang/Test/baseResults/glspv.version.frag.out @@ -2,7 +2,7 @@ glspv.version.frag ERROR: #version: compilation for SPIR-V does not support the compatibility profile // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 6 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/glspv.vert.out b/deps/glslang/glslang/Test/baseResults/glspv.vert.out index 5f6d9bbd54..f2fe53b295 100755 --- a/deps/glslang/glslang/Test/baseResults/glspv.vert.out +++ b/deps/glslang/glslang/Test/baseResults/glspv.vert.out @@ -1,5 +1,4 @@ glspv.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:3: 'push_constant' : only allowed when using GLSL for Vulkan ERROR: 0:6: 'descriptor set' : only allowed when using GLSL for Vulkan ERROR: 0:8: 'shared' : not allowed when generating SPIR-V @@ -7,7 +6,7 @@ ERROR: 0:9: 'packed' : not allowed when generating SPIR-V ERROR: 0:13: 'gl_VertexIndex' : undeclared identifier ERROR: 0:14: 'gl_InstanceIndex' : undeclared identifier ERROR: 0:17: 'gl_DepthRangeParameters' : undeclared identifier -ERROR: 0:20: '' : syntax error +ERROR: 0:20: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON ERROR: 8 compilation errors. No code generated. diff --git a/deps/glslang-new/Test/baseResults/hlsl.-D-U.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.-D-U.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.-D-U.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.-D-U.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.PointSize.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.PointSize.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.PointSize.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.PointSize.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.PointSize.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.PointSize.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.aliasOpaque.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.aliasOpaque.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.amend.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.amend.frag.out index 44d7655296..fa4ad035d7 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.amend.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.amend.frag.out @@ -1,207 +1,257 @@ hlsl.amend.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: f1( (temp void) +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 (layout(offset=0 ) uniform 4-component vector of float) -0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 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 (layout(offset=16 ) uniform float) -0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 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:12 Function Definition: f2( (temp void) +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 (layout(offset=0 ) uniform 4-component vector of float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 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 (layout(offset=16 ) uniform float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 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 (layout(offset=32 ) uniform 3-component vector of float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 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 Definition: f3( ( temp void) 0:17 Function Parameters: 0:? Sequence -0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 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 Definition: f4( ( temp void) 0:24 Function Parameters: 0:? Sequence -0:25 vector-scale (temp 4-component vector of float) -0:25 Convert int to float (temp float) -0:25 d: direct index for structure (layout(offset=44 ) uniform int) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 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 (layout(offset=0 ) uniform 4-component vector of float) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 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{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:? '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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: f1( (temp void) +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 (layout(offset=0 ) uniform 4-component vector of float) -0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 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 (layout(offset=16 ) uniform float) -0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 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:12 Function Definition: f2( (temp void) +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 (layout(offset=0 ) uniform 4-component vector of float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 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 (layout(offset=16 ) uniform float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 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 (layout(offset=32 ) uniform 3-component vector of float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 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 Definition: f3( ( temp void) 0:17 Function Parameters: 0:? Sequence -0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 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 Definition: f4( ( temp void) 0:24 Function Parameters: 0:? Sequence -0:25 vector-scale (temp 4-component vector of float) -0:25 Convert int to float (temp float) -0:25 d: direct index for structure (layout(offset=44 ) uniform int) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 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 (layout(offset=0 ) uniform 4-component vector of float) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 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{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:? '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): 80001 -// Id's are bound by 47 +// 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 "f2(" - Name 8 "f3(" - Name 10 "f4(" - Name 16 "$Global" - MemberName 16($Global) 0 "a" - MemberName 16($Global) 1 "b" - MemberName 16($Global) 2 "c" - MemberName 16($Global) 3 "d" - MemberName 16($Global) 4 "e" - Name 18 "" - MemberDecorate 16($Global) 0 Offset 0 - MemberDecorate 16($Global) 1 Offset 16 - MemberDecorate 16($Global) 2 Offset 32 - MemberDecorate 16($Global) 3 Offset 44 - MemberDecorate 16($Global) 4 Offset 48 - Decorate 16($Global) Block - Decorate 18 DescriptorSet 0 + 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 - 12: TypeFloat 32 - 13: TypeVector 12(float) 4 - 14: TypeVector 12(float) 3 - 15: TypeInt 32 1 - 16($Global): TypeStruct 13(fvec4) 12(float) 14(fvec3) 15(int) 15(int) - 17: TypePointer Uniform 16($Global) - 18: 17(ptr) Variable Uniform - 19: 15(int) Constant 0 - 20: TypePointer Uniform 13(fvec4) - 23: 15(int) Constant 1 - 24: TypePointer Uniform 12(float) - 28: TypeInt 32 0 - 29: 28(int) Constant 0 - 35: 15(int) Constant 2 - 39: 15(int) Constant 3 - 40: TypePointer Uniform 15(int) + 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 - 21: 20(ptr) AccessChain 18 19 - 22: 13(fvec4) Load 21 - 25: 24(ptr) AccessChain 18 23 - 26: 12(float) Load 25 - 27: 13(fvec4) VectorTimesScalar 22 26 + 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(f2(): 2 Function None 3 + 6(@f1(): 2 Function None 3 7: Label - 30: 24(ptr) AccessChain 18 19 29 - 31: 12(float) Load 30 - 32: 24(ptr) AccessChain 18 23 - 33: 12(float) Load 32 - 34: 12(float) FAdd 31 33 - 36: 24(ptr) AccessChain 18 35 29 - 37: 12(float) Load 36 - 38: 12(float) FAdd 34 37 + 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(f3(): 2 Function None 3 + 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(f4(): 2 Function None 3 + 10(f3(): 2 Function None 3 11: Label - 41: 40(ptr) AccessChain 18 39 - 42: 15(int) Load 41 - 43: 12(float) ConvertSToF 42 - 44: 20(ptr) AccessChain 18 19 - 45: 13(fvec4) Load 44 - 46: 13(fvec4) VectorTimesScalar 45 43 + Return + FunctionEnd + 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 index 74a348a2ed..4c8609c257 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.array.flatten.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.flatten.frag.out @@ -1,388 +1,428 @@ hlsl.array.flatten.frag -Shader version: 450 +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 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 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 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: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 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 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 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 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: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 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:? '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:? '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:? '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 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:? '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:? '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:? 'g_tex[2]' ( uniform texture1D) 0:35 Sequence -0:35 move second child to first child (temp 4-element array of float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:37 add (temp 4-component vector of float) -0:37 Function Call: TestFn1( (temp 4-component vector of float) -0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) -0:37 Comma (temp 3-element array of texture1D) +0:37 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 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:? '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:? '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:? '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 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:? '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:? '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:? '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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tex[0]' (uniform texture1D) -0:? 'g_tex[1]' (uniform texture1D) -0:? 'g_tex[2]' (uniform texture1D) -0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) -0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) -0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) -0:? 'g_samp[0]' (uniform sampler) -0:? 'g_samp[1]' (uniform sampler) -0:? 'g_samp[2]' (uniform sampler) -0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) -0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) -0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) -0:? 'not_flattened_a' (global 5-element array of int) +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: 450 +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 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 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 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: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 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 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 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 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: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 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:? '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:? '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:? '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 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:? '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:? '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:? 'g_tex[2]' ( uniform texture1D) 0:35 Sequence -0:35 move second child to first child (temp 4-element array of float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:37 add (temp 4-component vector of float) -0:37 Function Call: TestFn1( (temp 4-component vector of float) -0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) -0:37 Comma (temp 3-element array of texture1D) +0:37 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 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:? '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:? '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:? '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 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:? '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:? '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:? '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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tex[0]' (uniform texture1D) -0:? 'g_tex[1]' (uniform texture1D) -0:? 'g_tex[2]' (uniform texture1D) -0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) -0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) -0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) -0:? 'g_samp[0]' (uniform sampler) -0:? 'g_samp[1]' (uniform sampler) -0:? 'g_samp[2]' (uniform sampler) -0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) -0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) -0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) -0:? 'not_flattened_a' (global 5-element array of int) +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): 80001 -// Id's are bound by 123 +// 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" 99 + 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 28 "not_flattened_a" - Name 36 "g_tex[1]" - Name 39 "g_samp[1]" - Name 55 "local_sampler_array" - Name 57 "g_samp[0]" - Name 62 "g_samp[2]" - Name 65 "local_texture_array" - Name 66 "g_tex[0]" - Name 71 "g_tex[2]" - Name 77 "local_float_array" - Name 83 "$Global" - MemberName 83($Global) 0 "g_mats" - MemberName 83($Global) 1 "g_mats_explicit" - MemberName 83($Global) 2 "g_floats" - Name 85 "" - Name 99 "color" - Name 101 "aggShadow" - Name 108 "aggShadow" - Name 117 "g_tex_explicit[0]" - Name 118 "g_tex_explicit[1]" - Name 119 "g_tex_explicit[2]" - Name 120 "g_samp_explicit[0]" - Name 121 "g_samp_explicit[1]" - Name 122 "g_samp_explicit[2]" - Decorate 36(g_tex[1]) DescriptorSet 0 - Decorate 39(g_samp[1]) DescriptorSet 0 - Decorate 57(g_samp[0]) DescriptorSet 0 - Decorate 62(g_samp[2]) DescriptorSet 0 - Decorate 66(g_tex[0]) DescriptorSet 0 - Decorate 71(g_tex[2]) DescriptorSet 0 - Decorate 80 ArrayStride 48 - Decorate 81 ArrayStride 48 - Decorate 82 ArrayStride 16 - MemberDecorate 83($Global) 0 RowMajor - MemberDecorate 83($Global) 0 Offset 0 - MemberDecorate 83($Global) 0 MatrixStride 16 - MemberDecorate 83($Global) 1 RowMajor - MemberDecorate 83($Global) 1 Offset 192 - MemberDecorate 83($Global) 1 MatrixStride 16 - MemberDecorate 83($Global) 2 Offset 384 - Decorate 83($Global) Block - Decorate 85 DescriptorSet 0 - Decorate 99(color) Location 0 - Decorate 117(g_tex_explicit[0]) DescriptorSet 0 - Decorate 117(g_tex_explicit[0]) Binding 1 - Decorate 118(g_tex_explicit[1]) DescriptorSet 0 - Decorate 118(g_tex_explicit[1]) Binding 2 - Decorate 119(g_tex_explicit[2]) DescriptorSet 0 - Decorate 119(g_tex_explicit[2]) Binding 3 - Decorate 120(g_samp_explicit[0]) DescriptorSet 0 - Decorate 120(g_samp_explicit[0]) Binding 5 - Decorate 121(g_samp_explicit[1]) DescriptorSet 0 - Decorate 121(g_samp_explicit[1]) Binding 6 - Decorate 122(g_samp_explicit[2]) DescriptorSet 0 - Decorate 122(g_samp_explicit[2]) Binding 7 + 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 @@ -392,135 +432,161 @@ gl_FragCoord origin is upper left 12: TypeInt 32 0 13: 12(int) Constant 3 14: TypeArray 11 13 - 15: TypePointer UniformConstant 14 + 15: TypePointer Function 14 16: TypeSampler 17: TypeArray 16 13 - 18: TypePointer UniformConstant 17 + 18: TypePointer Function 17 19: TypeFunction 7(fvec4) 15(ptr) 18(ptr) - 24: TypeInt 32 1 - 25: 12(int) Constant 5 - 26: TypeArray 24(int) 25 - 27: TypePointer Private 26 -28(not_flattened_a): 27(ptr) Variable Private - 29: 24(int) Constant 1 - 30: 24(int) Constant 2 - 31: 24(int) Constant 3 - 32: 24(int) Constant 4 - 33: 24(int) Constant 5 - 34: 26 ConstantComposite 29 30 31 32 33 - 35: TypePointer UniformConstant 11 - 36(g_tex[1]): 35(ptr) Variable UniformConstant - 38: TypePointer UniformConstant 16 - 39(g_samp[1]): 38(ptr) Variable UniformConstant - 41: TypeSampledImage 11 - 43: 6(float) Constant 1045220557 -55(local_sampler_array): 18(ptr) Variable UniformConstant - 56: 24(int) Constant 0 - 57(g_samp[0]): 38(ptr) Variable UniformConstant - 62(g_samp[2]): 38(ptr) Variable UniformConstant -65(local_texture_array): 15(ptr) Variable UniformConstant - 66(g_tex[0]): 35(ptr) Variable UniformConstant - 71(g_tex[2]): 35(ptr) Variable UniformConstant - 74: 12(int) Constant 4 - 75: TypeArray 6(float) 74 - 76: TypePointer Function 75 - 78: TypeVector 6(float) 3 - 79: TypeMatrix 78(fvec3) 3 - 80: TypeArray 79 74 - 81: TypeArray 79 74 - 82: TypeArray 6(float) 74 - 83($Global): TypeStruct 80 81 82 - 84: TypePointer Uniform 83($Global) - 85: 84(ptr) Variable Uniform - 86: TypePointer Uniform 82 - 90: TypePointer Function 6(float) - 98: TypePointer Output 7(fvec4) - 99(color): 98(ptr) Variable Output - 101(aggShadow): 15(ptr) Variable UniformConstant - 108(aggShadow): 18(ptr) Variable UniformConstant -117(g_tex_explicit[0]): 35(ptr) Variable UniformConstant -118(g_tex_explicit[1]): 35(ptr) Variable UniformConstant -119(g_tex_explicit[2]): 35(ptr) Variable UniformConstant -120(g_samp_explicit[0]): 38(ptr) Variable UniformConstant -121(g_samp_explicit[1]): 38(ptr) Variable UniformConstant -122(g_samp_explicit[2]): 38(ptr) Variable UniformConstant + 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 -77(local_float_array): 76(ptr) Variable Function - Store 28(not_flattened_a) 34 - 58: 16 Load 57(g_samp[0]) - 59: 38(ptr) AccessChain 55(local_sampler_array) 56 - Store 59 58 - 60: 16 Load 39(g_samp[1]) - 61: 38(ptr) AccessChain 55(local_sampler_array) 29 - Store 61 60 - 63: 16 Load 62(g_samp[2]) - 64: 38(ptr) AccessChain 55(local_sampler_array) 30 - Store 64 63 - 67: 11 Load 66(g_tex[0]) - 68: 35(ptr) AccessChain 65(local_texture_array) 56 - Store 68 67 - 69: 11 Load 36(g_tex[1]) - 70: 35(ptr) AccessChain 65(local_texture_array) 29 - Store 70 69 - 72: 11 Load 71(g_tex[2]) - 73: 35(ptr) AccessChain 65(local_texture_array) 30 - Store 73 72 - 87: 86(ptr) AccessChain 85 30 - 88: 82 Load 87 - 89: 6(float) CompositeExtract 88 0 - 91: 90(ptr) AccessChain 77(local_float_array) 56 - Store 91 89 - 92: 6(float) CompositeExtract 88 1 - 93: 90(ptr) AccessChain 77(local_float_array) 29 - Store 93 92 - 94: 6(float) CompositeExtract 88 2 - 95: 90(ptr) AccessChain 77(local_float_array) 30 - Store 95 94 - 96: 6(float) CompositeExtract 88 3 - 97: 90(ptr) AccessChain 77(local_float_array) 31 - Store 97 96 - 100: 7(fvec4) FunctionCall 9(TestFn1() - 102: 11 Load 66(g_tex[0]) - 103: 35(ptr) AccessChain 101(aggShadow) 56 - Store 103 102 - 104: 11 Load 36(g_tex[1]) - 105: 35(ptr) AccessChain 101(aggShadow) 29 - Store 105 104 - 106: 11 Load 71(g_tex[2]) - 107: 35(ptr) AccessChain 101(aggShadow) 30 - Store 107 106 - 109: 16 Load 57(g_samp[0]) - 110: 38(ptr) AccessChain 108(aggShadow) 56 - Store 110 109 - 111: 16 Load 39(g_samp[1]) - 112: 38(ptr) AccessChain 108(aggShadow) 29 - Store 112 111 - 113: 16 Load 62(g_samp[2]) - 114: 38(ptr) AccessChain 108(aggShadow) 30 - Store 114 113 - 115: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 101(aggShadow) 108(aggShadow) - 116: 7(fvec4) FAdd 100 115 - Store 99(color) 116 + 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 - 37: 11 Load 36(g_tex[1]) - 40: 16 Load 39(g_samp[1]) - 42: 41 SampledImage 37 40 - 44: 7(fvec4) ImageSampleImplicitLod 42 43 - ReturnValue 44 + 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 - 47: 35(ptr) AccessChain 20(l_tex) 30 - 48: 11 Load 47 - 49: 38(ptr) AccessChain 21(l_samp) 30 - 50: 16 Load 49 - 51: 41 SampledImage 48 50 - 52: 7(fvec4) ImageSampleImplicitLod 51 43 - ReturnValue 52 + 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 index e04a5e8161..0f68e7cd55 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.array.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.frag.out @@ -1,225 +1,475 @@ hlsl.array.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) -0:8 Function Parameters: -0:8 'i' (layout(location=0 ) in int) -0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +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:10 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 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 add (temp 4-component vector of float) -0:10 add (temp 4-component vector of float) -0:10 direct index (layout(offset=0 ) temp 4-component vector of float) -0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1 (const int) -0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) -0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) -0:10 Constant: -0:10 0 (const uint) -0:10 'i' (layout(location=0 ) in int) -0:10 direct index (layout(location=1 ) temp 4-component vector of float) -0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (layout(location=1 ) temp 4-component vector of float) -0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) -0:10 'i' (layout(location=0 ) in int) -0:10 direct index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 Constant: -0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (layout(location=0 ) in int) -0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) -0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) -0:10 Constant: -0:10 1 (const uint) -0:10 'i' (layout(location=0 ) in int) -0:10 Constant: -0:10 0 (const int) -0:10 'i' (layout(location=0 ) in int) -0:10 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'i' (layout(location=0 ) in int) -0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) -0:8 Function Parameters: -0:8 'i' (layout(location=0 ) in int) -0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +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:10 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 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 add (temp 4-component vector of float) -0:10 add (temp 4-component vector of float) -0:10 direct index (layout(offset=0 ) temp 4-component vector of float) -0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) -0:10 Constant: -0:10 0 (const uint) -0:10 Constant: -0:10 1 (const int) -0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) -0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) -0:10 Constant: -0:10 0 (const uint) -0:10 'i' (layout(location=0 ) in int) -0:10 direct index (layout(location=1 ) temp 4-component vector of float) -0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (layout(location=1 ) temp 4-component vector of float) -0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) -0:10 'i' (layout(location=0 ) in int) -0:10 direct index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 Constant: -0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (layout(location=0 ) in int) -0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) -0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) -0:10 Constant: -0:10 1 (const uint) -0:10 'i' (layout(location=0 ) in int) -0:10 Constant: -0:10 0 (const int) -0:10 'i' (layout(location=0 ) in int) -0:10 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'i' (layout(location=0 ) in int) -0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +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): 80001 -// Id's are bound by 65 +// 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" 9 28 36 + EntryPoint Fragment 4 "PixelShaderFunction" 112 116 119 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "@entryPointOutput" - Name 15 "" - MemberName 15 0 "m" - Name 18 "$Global" - MemberName 18($Global) 0 "a" - MemberName 18($Global) 1 "s" - Name 20 "" - Name 28 "i" - Name 36 "input" - Name 49 "b" - Decorate 9(@entryPointOutput) Location 0 - Decorate 12 ArrayStride 16 - Decorate 14 ArrayStride 16 - MemberDecorate 15 0 Offset 0 - Decorate 17 ArrayStride 112 - MemberDecorate 18($Global) 0 Offset 0 - MemberDecorate 18($Global) 1 Offset 64 - Decorate 18($Global) Block - Decorate 20 DescriptorSet 0 - Decorate 28(i) Location 0 - Decorate 36(input) Location 1 + 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: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output + 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 4 - 12: TypeArray 7(fvec4) 11 - 13: 10(int) Constant 7 - 14: TypeArray 7(fvec4) 13 - 15: TypeStruct 14 - 16: 10(int) Constant 11 - 17: TypeArray 15(struct) 16 - 18($Global): TypeStruct 12 17 - 19: TypePointer Uniform 18($Global) - 20: 19(ptr) Variable Uniform - 21: TypeInt 32 1 - 22: 21(int) Constant 0 - 23: 21(int) Constant 1 - 24: TypePointer Uniform 7(fvec4) - 27: TypePointer Input 21(int) - 28(i): 27(ptr) Variable Input - 33: 10(int) Constant 3 - 34: TypeArray 7(fvec4) 33 - 35: TypePointer Input 34 - 36(input): 35(ptr) Variable Input - 37: 21(int) Constant 2 - 38: TypePointer Input 7(fvec4) - 46: 10(int) Constant 10 - 47: TypeArray 7(fvec4) 46 - 48: TypePointer Function 47 - 50: 21(int) Constant 5 - 51: TypePointer Function 7(fvec4) + 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 - 49(b): 48(ptr) Variable Function - 25: 24(ptr) AccessChain 20 22 23 - 26: 7(fvec4) Load 25 - 29: 21(int) Load 28(i) - 30: 24(ptr) AccessChain 20 22 29 - 31: 7(fvec4) Load 30 - 32: 7(fvec4) FAdd 26 31 - 39: 38(ptr) AccessChain 36(input) 37 - 40: 7(fvec4) Load 39 - 41: 7(fvec4) FAdd 32 40 - 42: 21(int) Load 28(i) - 43: 38(ptr) AccessChain 36(input) 42 - 44: 7(fvec4) Load 43 - 45: 7(fvec4) FAdd 41 44 - 52: 51(ptr) AccessChain 49(b) 50 - 53: 7(fvec4) Load 52 - 54: 7(fvec4) FAdd 45 53 - 55: 21(int) Load 28(i) - 56: 51(ptr) AccessChain 49(b) 55 - 57: 7(fvec4) Load 56 - 58: 7(fvec4) FAdd 54 57 - 59: 21(int) Load 28(i) - 60: 21(int) Load 28(i) - 61: 24(ptr) AccessChain 20 23 59 22 60 - 62: 7(fvec4) Load 61 - 63: 7(fvec4) FAdd 58 62 - Store 9(@entryPointOutput) 63 + 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 index 5674cb479f..9af6fed287 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -1,10 +1,10 @@ hlsl.array.implicit-size.frag -Shader version: 450 +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 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 @@ -12,8 +12,8 @@ gl_FragCoord origin is upper left 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 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 @@ -23,72 +23,72 @@ gl_FragCoord origin is upper left 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 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 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: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 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:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (out structure{temp 4-component vector of float color}) -0:30 Constant: -0:30 0 (const int) -0:30 Construct vec4 (temp 4-component vector of float) -0:30 add (temp float) -0:30 add (temp float) -0:30 add (temp float) -0:30 add (temp float) -0:30 direct index (temp float) -0:30 'g_array' (global 5-element array of float) -0:30 Constant: -0:30 0 (const int) -0:30 direct index (temp float) -0:30 'g_array' (global 5-element array of float) -0:30 Constant: -0:30 4 (const int) -0:30 direct index (temp float) -0:30 'l_array' (temp 3-element array of float) -0:30 Constant: -0:30 1 (const int) -0:30 f: direct index for structure (temp float) -0:30 direct index (temp structure{temp int i, temp float f}) -0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 indirect index (temp float) -0:30 'g_array' (global 5-element array of float) -0:30 'idx' (temp void) +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}) +0:? 'g_array' ( global 5-element array of float) +0:? 'g_array_unused' ( global 7-element array of float) +0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 450 +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 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 @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 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 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 @@ -107,63 +107,63 @@ gl_FragCoord origin is upper left 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 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 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: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 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:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (out structure{temp 4-component vector of float color}) -0:30 Constant: -0:30 0 (const int) -0:30 Construct vec4 (temp 4-component vector of float) -0:30 add (temp float) -0:30 add (temp float) -0:30 add (temp float) -0:30 add (temp float) -0:30 direct index (temp float) -0:30 'g_array' (global 5-element array of float) -0:30 Constant: -0:30 0 (const int) -0:30 direct index (temp float) -0:30 'g_array' (global 5-element array of float) -0:30 Constant: -0:30 4 (const int) -0:30 direct index (temp float) -0:30 'l_array' (temp 3-element array of float) -0:30 Constant: -0:30 1 (const int) -0:30 f: direct index for structure (temp float) -0:30 direct index (temp structure{temp int i, temp float f}) -0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 indirect index (temp float) -0:30 'g_array' (global 5-element array of float) -0:30 'idx' (temp void) +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}) +0:? 'g_array' ( global 5-element array of float) +0:? 'g_array_unused' ( global 7-element array of float) +0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 72 Capability Shader @@ -171,6 +171,7 @@ gl_FragCoord origin is upper left 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" @@ -228,7 +229,7 @@ gl_FragCoord origin is upper left 49: TypePointer Private 6(float) 52: 32(int) Constant 4 56: TypePointer Function 6(float) - 63: TypePointer Function 2 + 63: TypePointer Function 32(int) 70: TypePointer Function 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label @@ -254,7 +255,7 @@ gl_FragCoord origin is upper left 60: 49(ptr) AccessChain 37(g_mystruct) 48 38 61: 6(float) Load 60 62: 6(float) FAdd 59 61 - 65: 2 Load 64(idx) + 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 diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.array.multidim.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.array.multidim.frag.out index 66890b52ce..59f64c0e49 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.array.multidim.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.multidim.frag.out @@ -1,24 +1,24 @@ hlsl.array.multidim.frag -Shader version: 450 +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 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 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 direct index ( temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) 0:14 Constant: 0:14 1 (const int) 0:14 Constant: 0:14 2 (const int) -0:14 Construct vec4 (temp 4-component vector of float) -0:14 direct index (layout(offset=0 ) temp float) -0:14 direct index (layout(offset=0 ) temp 3-element array of float) -0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) -0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 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: @@ -27,64 +27,67 @@ gl_FragCoord origin is upper left 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 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 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 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 direct index ( temp 4-component vector of float) +0:18 direct index ( temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 2 (const int) -0:19 Sequence -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) -0:19 Constant: -0:19 0 (const int) -0:19 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +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: 450 +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 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 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 direct index ( temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) 0:14 Constant: 0:14 1 (const int) 0:14 Constant: 0:14 2 (const int) -0:14 Construct vec4 (temp 4-component vector of float) -0:14 direct index (layout(offset=0 ) temp float) -0:14 direct index (layout(offset=0 ) temp 3-element array of float) -0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) -0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 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: @@ -93,118 +96,129 @@ gl_FragCoord origin is upper left 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 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 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 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 direct index ( temp 4-component vector of float) +0:18 direct index ( temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 2 (const int) -0:19 Sequence -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) -0:19 Constant: -0:19 0 (const int) -0:19 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +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): 80001 -// Id's are bound by 52 +// 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" 48 + EntryPoint Fragment 4 "main" 54 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 14 "float4_array_1" - Name 23 "$Global" - MemberName 23($Global) 0 "float_array" - Name 25 "" - Name 36 "float4_array_2" - Name 41 "PS_OUTPUT" - MemberName 41(PS_OUTPUT) 0 "Color" - Name 43 "psout" - Name 48 "Color" - Decorate 18 ArrayStride 16 - Decorate 20 ArrayStride 48 - Decorate 22 ArrayStride 192 - MemberDecorate 23($Global) 0 Offset 0 - Decorate 23($Global) Block - Decorate 25 DescriptorSet 0 - Decorate 48(Color) Location 0 + 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: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(fvec4) 9 - 11: 8(int) Constant 2 - 12: TypeArray 10 11 - 13: TypePointer Function 12 - 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: 15(int) Constant 2 - 18: TypeArray 6(float) 9 - 19: 8(int) Constant 4 - 20: TypeArray 18 19 - 21: 8(int) Constant 5 - 22: TypeArray 20 21 - 23($Global): TypeStruct 22 - 24: TypePointer Uniform 23($Global) - 25: 24(ptr) Variable Uniform - 26: 15(int) Constant 0 - 27: 15(int) Constant 3 - 28: TypePointer Uniform 6(float) - 32: TypePointer Function 7(fvec4) - 34: TypeArray 10 21 - 35: TypePointer Function 34 - 37: TypePointer Function 10 - 41(PS_OUTPUT): TypeStruct 7(fvec4) - 42: TypePointer Function 41(PS_OUTPUT) - 47: TypePointer Output 7(fvec4) - 48(Color): 47(ptr) Variable Output + 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 -14(float4_array_1): 13(ptr) Variable Function -36(float4_array_2): 35(ptr) Variable Function - 43(psout): 42(ptr) Variable Function - 29: 28(ptr) AccessChain 25 26 17 27 16 - 30: 6(float) Load 29 - 31: 7(fvec4) CompositeConstruct 30 30 30 30 - 33: 32(ptr) AccessChain 14(float4_array_1) 16 17 - Store 33 31 - 38: 37(ptr) AccessChain 14(float4_array_1) 26 - 39: 10 Load 38 - 40: 37(ptr) AccessChain 36(float4_array_2) 16 - Store 40 39 - 44: 32(ptr) AccessChain 14(float4_array_1) 16 17 - 45: 7(fvec4) Load 44 - 46: 32(ptr) AccessChain 43(psout) 26 - Store 46 45 - 49: 32(ptr) AccessChain 43(psout) 26 - 50: 7(fvec4) Load 49 - Store 48(Color) 50 + 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 index bcd1603691..562a863343 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.assoc.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.assoc.frag.out @@ -1,140 +1,245 @@ hlsl.assoc.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:8 Function Parameters: -0:8 'a1' (layout(location=0 ) in 4-component vector of float) -0:8 'a2' (layout(location=1 ) in 4-component vector of float) -0:8 'a3' (layout(location=2 ) in 4-component vector of float) -0:8 'a4' (layout(location=3 ) in 4-component vector of float) -0:8 'a5' (layout(location=4 ) in 4-component vector of float) +0:8 'a1' ( in 4-component vector of float) +0:8 'a2' ( in 4-component vector of float) +0:8 'a3' ( in 4-component vector of float) +0:8 'a4' ( in 4-component vector of float) +0:8 'a5' ( in 4-component vector of float) 0:? Sequence -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a1' (layout(location=0 ) in 4-component vector of float) -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a2' (layout(location=1 ) in 4-component vector of float) -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a3' (layout(location=2 ) in 4-component vector of float) -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a4' (layout(location=3 ) in 4-component vector of float) -0:9 'a5' (layout(location=4 ) in 4-component vector of float) -0:10 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 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' (layout(location=0 ) in 4-component vector of float) -0:10 'a2' (layout(location=1 ) in 4-component vector of float) -0:10 'a3' (layout(location=2 ) in 4-component vector of float) -0:10 'a4' (layout(location=3 ) in 4-component vector of float) -0:10 'a5' (layout(location=4 ) in 4-component vector of float) -0:10 Branch: Return +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) +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: 450 +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 Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:8 Function Parameters: -0:8 'a1' (layout(location=0 ) in 4-component vector of float) -0:8 'a2' (layout(location=1 ) in 4-component vector of float) -0:8 'a3' (layout(location=2 ) in 4-component vector of float) -0:8 'a4' (layout(location=3 ) in 4-component vector of float) -0:8 'a5' (layout(location=4 ) in 4-component vector of float) +0:8 'a1' ( in 4-component vector of float) +0:8 'a2' ( in 4-component vector of float) +0:8 'a3' ( in 4-component vector of float) +0:8 'a4' ( in 4-component vector of float) +0:8 'a5' ( in 4-component vector of float) 0:? Sequence -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a1' (layout(location=0 ) in 4-component vector of float) -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a2' (layout(location=1 ) in 4-component vector of float) -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a3' (layout(location=2 ) in 4-component vector of float) -0:9 move second child to first child (temp 4-component vector of float) -0:9 'a4' (layout(location=3 ) in 4-component vector of float) -0:9 'a5' (layout(location=4 ) in 4-component vector of float) -0:10 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 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' (layout(location=0 ) in 4-component vector of float) -0:10 'a2' (layout(location=1 ) in 4-component vector of float) -0:10 'a3' (layout(location=2 ) in 4-component vector of float) -0:10 'a4' (layout(location=3 ) in 4-component vector of float) -0:10 'a5' (layout(location=4 ) in 4-component vector of float) -0:10 Branch: Return +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) +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): 80001 -// Id's are bound by 27 +// 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" 9 10 11 12 13 16 + EntryPoint Fragment 4 "PixelShaderFunction" 31 34 37 40 43 46 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "a1" - Name 10 "a2" - Name 11 "a3" - Name 12 "a4" - Name 13 "a5" - Name 16 "@entryPointOutput" - Decorate 9(a1) Location 0 - Decorate 10(a2) Location 1 - Decorate 11(a3) Location 2 - Decorate 12(a4) Location 3 - Decorate 13(a5) Location 4 - Decorate 16(@entryPointOutput) Location 0 + 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 Input 7(fvec4) - 9(a1): 8(ptr) Variable Input - 10(a2): 8(ptr) Variable Input - 11(a3): 8(ptr) Variable Input - 12(a4): 8(ptr) Variable Input - 13(a5): 8(ptr) Variable Input - 15: TypePointer Output 7(fvec4) -16(@entryPointOutput): 15(ptr) Variable Output + 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 - 14: 7(fvec4) Load 13(a5) - Store 12(a4) 14 - Store 11(a3) 14 - Store 10(a2) 14 - Store 9(a1) 14 - 17: 7(fvec4) Load 9(a1) - 18: 7(fvec4) Load 10(a2) - 19: 7(fvec4) FAdd 17 18 - 20: 7(fvec4) Load 11(a3) - 21: 7(fvec4) FAdd 19 20 - 22: 7(fvec4) Load 12(a4) - 23: 7(fvec4) FAdd 21 22 - 24: 7(fvec4) Load 13(a5) - 25: 7(fvec4) FAdd 23 24 - Store 16(@entryPointOutput) 25 + 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 index 2316cd9b9d..4bef5e764d 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.attribute.expression.comp.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.attribute.expression.comp.out @@ -1,138 +1,152 @@ hlsl.attribute.expression.comp -Shader version: 450 +Shader version: 500 local_size = (4, 6, 8) 0:? Sequence -0:9 Function Definition: main( (temp 4-component vector of float) +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 move second child to first child ( temp int) +0:11 'x' ( temp int) 0:11 Constant: 0:11 0 (const int) -0:11 Loop with condition tested first +0:11 Loop 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 (layout(offset=0 ) uniform int) -0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +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 Sequence -0:14 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:14 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +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: 450 +Shader version: 500 local_size = (4, 6, 8) 0:? Sequence -0:9 Function Definition: main( (temp 4-component vector of float) +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 move second child to first child ( temp int) +0:11 'x' ( temp int) 0:11 Constant: 0:11 0 (const int) -0:11 Loop with condition tested first +0:11 Loop 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 (layout(offset=0 ) uniform int) -0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +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 Sequence -0:14 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:14 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +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): 80001 -// Id's are bound by 34 +// 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" 30 + EntryPoint GLCompute 4 "main" 37 ExecutionMode 4 LocalSize 4 6 8 + Source HLSL 500 Name 4 "main" - Name 8 "x" - Name 16 "$Global" - MemberName 16($Global) 0 "bound" - Name 18 "" - Name 30 "@entryPointOutput" - MemberDecorate 16($Global) 0 Offset 0 - Decorate 16($Global) Block - Decorate 18 DescriptorSet 0 - Decorate 30(@entryPointOutput) Location 0 + 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: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 16($Global): TypeStruct 6(int) - 17: TypePointer Uniform 16($Global) - 18: 17(ptr) Variable Uniform - 19: TypePointer Uniform 6(int) - 22: TypeBool - 25: 6(int) Constant 1 - 27: TypeFloat 32 - 28: TypeVector 27(float) 4 - 29: TypePointer Output 28(fvec4) -30(@entryPointOutput): 29(ptr) Variable Output - 31: 27(float) Constant 0 - 32: 28(fvec4) ConstantComposite 31 31 31 31 + 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 - 8(x): 7(ptr) Variable Function - Store 8(x) 9 - Branch 10 - 10: Label - LoopMerge 12 13 None - Branch 14 - 14: Label - 15: 6(int) Load 8(x) - 20: 19(ptr) AccessChain 18 9 - 21: 6(int) Load 20 - 23: 22(bool) SLessThan 15 21 - BranchConditional 23 11 12 - 11: Label - Branch 13 - 13: Label - 24: 6(int) Load 8(x) - 26: 6(int) IAdd 24 25 - Store 8(x) 26 - Branch 10 - 12: Label - Store 30(@entryPointOutput) 32 + 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 index a3ce657da0..44e963e0fd 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.attribute.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.attribute.frag.out @@ -1,64 +1,99 @@ hlsl.attribute.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:11 Test condition and select (temp void) +0:11 Test condition and select ( temp void): DontFlatten 0:11 Condition 0:11 Constant: -0:11 0 (const int) +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) +0:? 'input' (layout( location=0) in 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:11 Test condition and select (temp void) +0:11 Test condition and select ( temp void): DontFlatten 0:11 Condition 0:11 Constant: -0:11 0 (const int) +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) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 14 +// 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" 13 + EntryPoint Fragment 4 "PixelShaderFunction" 19 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 13 "input" - Decorate 13(input) Location 0 + 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: TypeInt 32 1 - 7: 6(int) Constant 0 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypePointer Input 11(fvec4) - 13(input): 12(ptr) Variable Input + 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 - SelectionMerge 9 None - BranchConditional 7 8 9 - 8: Label - Branch 9 - 9: 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-new/Test/baseResults/hlsl.attributeC11.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.attributeC11.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.attributeC11.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.attributeC11.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.automap.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.automap.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.automap.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.automap.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.basic.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.basic.comp.out index 9101e22f8e..d84642e9a4 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.basic.comp.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.basic.comp.out @@ -1,58 +1,132 @@ hlsl.basic.comp -Shader version: 450 +Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:4 Function Definition: main(i1; (temp void) +0:4 Function Definition: @main(i1;i1; ( temp void) 0:4 Function Parameters: -0:4 'dti' (in int LocalInvocationID) +0:4 'dti' ( in int) +0:4 'gti' ( in int) 0:? Sequence -0:5 'dti' (in int LocalInvocationID) +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:? 'dti' (in int LocalInvocationID) -0:? 'a' (shared 100-element array of 4-component vector of float) +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: 450 +Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:4 Function Definition: main(i1; (temp void) +0:4 Function Definition: @main(i1;i1; ( temp void) 0:4 Function Parameters: -0:4 'dti' (in int LocalInvocationID) +0:4 'dti' ( in int) +0:4 'gti' ( in int) 0:? Sequence -0:5 'dti' (in int LocalInvocationID) +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:? 'dti' (in int LocalInvocationID) -0:? 'a' (shared 100-element array of 4-component vector of float) +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): 80001 -// Id's are bound by 16 +// 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" 8 + EntryPoint GLCompute 4 "main" 19 23 ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 Name 4 "main" - Name 8 "dti" - Name 15 "a" - Decorate 8(dti) BuiltIn LocalInvocationId + 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 Input 6(int) - 8(dti): 7(ptr) Variable Input - 9: TypeFloat 32 - 10: TypeVector 9(float) 4 - 11: TypeInt 32 0 - 12: 11(int) Constant 100 - 13: TypeArray 10(fvec4) 12 - 14: TypePointer Workgroup 13 - 15(a): 14(ptr) Variable Workgroup + 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 index 2c20b439c1..f4116d4e81 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.basic.geom.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.basic.geom.out @@ -1,200 +1,308 @@ hlsl.basic.geom -Shader version: 450 +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 Definition: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void) 0:16 Function Parameters: -0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) -0:16 'test' (layout(location=3 ) in 3-element array of uint) -0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0: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 move second child to first child ( temp float) +0:19 myfloat: direct index for structure ( temp float) +0:19 'Vert' ( temp structure{ temp float myfloat, temp int something}) 0:19 Constant: 0:19 0 (const int) -0:19 Convert uint to float (temp float) -0:19 add (temp uint) -0:19 add (temp uint) -0:19 direct index (layout(location=3 ) temp uint) -0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 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 (layout(location=3 ) temp uint) -0:19 'test' (layout(location=3 ) in 3-element array of uint) +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 (layout(location=3 ) temp uint) -0:19 'test' (layout(location=3 ) in 3-element array of uint) +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 move second child to first child ( temp int) +0:20 something: direct index for structure ( temp int) +0:20 'Vert' ( temp structure{ temp float myfloat, temp int something}) 0:20 Constant: 0:20 1 (const int) -0:20 Convert uint to int (temp int) -0:20 direct index (layout(location=0 ) temp uint) -0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 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 move second child to first child (temp structure{temp float myfloat, temp int something}) -0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) -0:22 'Vert' (temp structure{temp float myfloat, temp int something}) -0:22 EmitVertex (temp void) +0: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 move second child to first child (temp structure{temp float myfloat, temp int something}) -0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) -0:23 'Vert' (temp structure{temp float myfloat, temp int something}) -0:23 EmitVertex (temp void) -0:24 EndPrimitive (temp void) +0: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=3 ) in 3-element array of uint) -0:? 'myfloat' (layout(location=0 ) out float) -0:? 'something' (layout(location=1 ) out int) +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: 450 +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 Definition: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void) 0:16 Function Parameters: -0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) -0:16 'test' (layout(location=3 ) in 3-element array of uint) -0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0: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 move second child to first child ( temp float) +0:19 myfloat: direct index for structure ( temp float) +0:19 'Vert' ( temp structure{ temp float myfloat, temp int something}) 0:19 Constant: 0:19 0 (const int) -0:19 Convert uint to float (temp float) -0:19 add (temp uint) -0:19 add (temp uint) -0:19 direct index (layout(location=3 ) temp uint) -0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 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 (layout(location=3 ) temp uint) -0:19 'test' (layout(location=3 ) in 3-element array of uint) +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 (layout(location=3 ) temp uint) -0:19 'test' (layout(location=3 ) in 3-element array of uint) +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 move second child to first child ( temp int) +0:20 something: direct index for structure ( temp int) +0:20 'Vert' ( temp structure{ temp float myfloat, temp int something}) 0:20 Constant: 0:20 1 (const int) -0:20 Convert uint to int (temp int) -0:20 direct index (layout(location=0 ) temp uint) -0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 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 move second child to first child (temp structure{temp float myfloat, temp int something}) -0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) -0:22 'Vert' (temp structure{temp float myfloat, temp int something}) -0:22 EmitVertex (temp void) +0: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 move second child to first child (temp structure{temp float myfloat, temp int something}) -0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) -0:23 'Vert' (temp structure{temp float myfloat, temp int something}) -0:23 EmitVertex (temp void) -0:24 EndPrimitive (temp void) +0: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=3 ) in 3-element array of uint) -0:? 'myfloat' (layout(location=0 ) out float) -0:? 'something' (layout(location=1 ) out int) +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): 80001 -// Id's are bound by 45 +// 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" 16 31 38 42 44 + 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 8 "PSInput" - MemberName 8(PSInput) 0 "myfloat" - MemberName 8(PSInput) 1 "something" - Name 10 "Vert" + 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 31 "VertexID" - Name 38 "OutputStream" - Name 42 "myfloat" - Name 44 "something" - Decorate 16(test) Location 3 - Decorate 31(VertexID) Location 0 - Decorate 42(myfloat) Location 0 - Decorate 44(something) Location 1 + 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: TypeFloat 32 - 7: TypeInt 32 1 - 8(PSInput): TypeStruct 6(float) 7(int) - 9: TypePointer Function 8(PSInput) - 11: 7(int) Constant 0 - 12: TypeInt 32 0 - 13: 12(int) Constant 3 - 14: TypeArray 12(int) 13 - 15: TypePointer Input 14 - 16(test): 15(ptr) Variable Input - 17: TypePointer Input 12(int) - 20: 7(int) Constant 1 - 24: 7(int) Constant 2 - 29: TypePointer Function 6(float) - 31(VertexID): 15(ptr) Variable Input - 35: TypePointer Function 7(int) - 37: TypePointer Output 8(PSInput) -38(OutputStream): 37(ptr) Variable Output - 41: TypePointer Output 6(float) - 42(myfloat): 41(ptr) Variable Output - 43: TypePointer Output 7(int) - 44(something): 43(ptr) Variable Output + 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 - 10(Vert): 9(ptr) Variable Function - 18: 17(ptr) AccessChain 16(test) 11 - 19: 12(int) Load 18 - 21: 17(ptr) AccessChain 16(test) 20 - 22: 12(int) Load 21 - 23: 12(int) IAdd 19 22 - 25: 17(ptr) AccessChain 16(test) 24 - 26: 12(int) Load 25 - 27: 12(int) IAdd 23 26 - 28: 6(float) ConvertUToF 27 - 30: 29(ptr) AccessChain 10(Vert) 11 - Store 30 28 - 32: 17(ptr) AccessChain 31(VertexID) 11 - 33: 12(int) Load 32 - 34: 7(int) Bitcast 33 - 36: 35(ptr) AccessChain 10(Vert) 20 - Store 36 34 - 39: 8(PSInput) Load 10(Vert) - Store 38(OutputStream) 39 + 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 - 40: 8(PSInput) Load 10(Vert) - Store 38(OutputStream) 40 + 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 diff --git a/deps/glslang-new/Test/baseResults/hlsl.boolConv.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.boolConv.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.boolConv.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.boolConv.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.buffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.buffer.frag.out index dbb2b5e1c4..8d2c514736 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.buffer.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.buffer.frag.out @@ -1,199 +1,323 @@ hlsl.buffer.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:30 Function Definition: foo( ( temp float) 0:30 Function Parameters: -0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:31 Sequence -0:31 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 'input' (layout(location=0 ) in 4-component vector of float) -0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) -0:31 Constant: -0:31 0 (const uint) -0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) -0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) -0:31 Constant: -0:31 0 (const uint) -0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) -0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) -0:31 Constant: -0:31 0 (const uint) -0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) -0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) -0:31 Constant: -0:31 0 (const uint) -0:31 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) -0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:30 Function Definition: foo( ( temp float) 0:30 Function Parameters: -0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:31 Sequence -0:31 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 add (temp 4-component vector of float) -0:31 'input' (layout(location=0 ) in 4-component vector of float) -0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) -0:31 Constant: -0:31 0 (const uint) -0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) -0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) -0:31 Constant: -0:31 0 (const uint) -0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) -0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) -0:31 Constant: -0:31 0 (const uint) -0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) -0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) -0:31 Constant: -0:31 0 (const uint) -0:31 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) -0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +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): 80001 -// Id's are bound by 42 +// 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" 9 11 + EntryPoint Fragment 4 "PixelShaderFunction" 65 68 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "@entryPointOutput" - Name 11 "input" - Name 13 "" - MemberName 13 0 "v1" - Name 15 "" - Name 22 "" - MemberName 22 0 "v2" - Name 24 "" - Name 28 "cbufName" - MemberName 28(cbufName) 0 "v3" - MemberName 28(cbufName) 1 "i3" - Name 30 "" - Name 35 "tbufName" - MemberName 35(tbufName) 0 "v4" - MemberName 35(tbufName) 1 "i4" - MemberName 35(tbufName) 2 "f1" - MemberName 35(tbufName) 3 "f3" - MemberName 35(tbufName) 4 "f4" - MemberName 35(tbufName) 5 "f5" - MemberName 35(tbufName) 6 "f6" - MemberName 35(tbufName) 7 "f7" - MemberName 35(tbufName) 8 "m1" - MemberName 35(tbufName) 9 "m2" - MemberName 35(tbufName) 10 "m3" - MemberName 35(tbufName) 11 "m4" - Name 37 "" - Decorate 9(@entryPointOutput) Location 0 - Decorate 11(input) Location 0 - MemberDecorate 13 0 Offset 0 - Decorate 13 Block - Decorate 15 DescriptorSet 0 - MemberDecorate 22 0 Offset 0 - Decorate 22 BufferBlock - Decorate 24 DescriptorSet 0 - MemberDecorate 28(cbufName) 0 Offset 0 - MemberDecorate 28(cbufName) 1 Offset 20 - Decorate 28(cbufName) Block - Decorate 30 DescriptorSet 10 - Decorate 30 Binding 2 - MemberDecorate 35(tbufName) 0 Offset 16 - MemberDecorate 35(tbufName) 1 Offset 48 - MemberDecorate 35(tbufName) 2 Offset 60 - MemberDecorate 35(tbufName) 3 Offset 64 - MemberDecorate 35(tbufName) 4 Offset 68 - MemberDecorate 35(tbufName) 5 Offset 72 - MemberDecorate 35(tbufName) 6 Offset 76 - MemberDecorate 35(tbufName) 7 Offset 80 - MemberDecorate 35(tbufName) 8 RowMajor - MemberDecorate 35(tbufName) 8 Offset 96 - MemberDecorate 35(tbufName) 8 MatrixStride 16 - MemberDecorate 35(tbufName) 9 ColMajor - MemberDecorate 35(tbufName) 9 Offset 160 - MemberDecorate 35(tbufName) 9 MatrixStride 16 - MemberDecorate 35(tbufName) 10 RowMajor - MemberDecorate 35(tbufName) 10 Offset 208 - MemberDecorate 35(tbufName) 10 MatrixStride 16 - MemberDecorate 35(tbufName) 11 RowMajor - MemberDecorate 35(tbufName) 11 Offset 272 - MemberDecorate 35(tbufName) 11 MatrixStride 16 - Decorate 35(tbufName) BufferBlock - Decorate 37 DescriptorSet 0 - Decorate 37 Binding 8 + 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: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(input): 10(ptr) Variable Input - 13: TypeStruct 7(fvec4) - 14: TypePointer Uniform 13(struct) - 15: 14(ptr) Variable Uniform - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: TypePointer Uniform 7(fvec4) - 22: TypeStruct 7(fvec4) - 23: TypePointer Uniform 22(struct) - 24: 23(ptr) Variable Uniform - 28(cbufName): TypeStruct 7(fvec4) 16(int) - 29: TypePointer Uniform 28(cbufName) - 30: 29(ptr) Variable Uniform - 34: TypeMatrix 7(fvec4) 3 - 35(tbufName): TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 34 34 34 34 - 36: TypePointer Uniform 35(tbufName) - 37: 36(ptr) Variable Uniform + 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 - 12: 7(fvec4) Load 11(input) - 19: 18(ptr) AccessChain 15 17 - 20: 7(fvec4) Load 19 - 21: 7(fvec4) FAdd 12 20 - 25: 18(ptr) AccessChain 24 17 - 26: 7(fvec4) Load 25 - 27: 7(fvec4) FAdd 21 26 - 31: 18(ptr) AccessChain 30 17 - 32: 7(fvec4) Load 31 - 33: 7(fvec4) FAdd 27 32 - 38: 18(ptr) AccessChain 37 17 - 39: 7(fvec4) Load 38 - 40: 7(fvec4) FAdd 33 39 - Store 9(@entryPointOutput) 40 + 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 index 56a2ce869e..46b4eea5c6 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -1,93 +1,94 @@ hlsl.calculatelod.dx10.frag -Shader version: 450 +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 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 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 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 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: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: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: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: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 @@ -95,13 +96,13 @@ gl_FragCoord origin is upper left 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: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 @@ -109,22 +110,22 @@ gl_FragCoord origin is upper left 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: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 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: @@ -132,136 +133,143 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:43 Sequence -0:43 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 0 (const int) -0:43 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 1 (const int) -0:43 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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 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 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 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: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: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: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: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 @@ -269,13 +277,13 @@ gl_FragCoord origin is upper left 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: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 @@ -283,22 +291,22 @@ gl_FragCoord origin is upper left 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: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 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: @@ -306,46 +314,52 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:43 Sequence -0:43 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 0 (const int) -0:43 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 1 (const int) -0:43 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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): 80001 -// Id's are bound by 141 +// Generated by (magic number): 80007 +// Id's are bound by 148 Capability Shader Capability Sampled1D @@ -353,201 +367,214 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 132 136 + EntryPoint Fragment 4 "main" 140 144 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "txval10" - Name 11 "g_tTex1df4a" - Name 15 "g_sSamp" - Name 25 "txval11" - Name 28 "g_tTex1di4a" - Name 36 "txval12" - Name 40 "g_tTex1du4a" - Name 48 "txval20" - Name 51 "g_tTex2df4a" - Name 59 "txval21" - Name 62 "g_tTex2di4a" - Name 71 "txval22" - Name 74 "g_tTex2du4a" - Name 84 "txval40" - Name 87 "g_tTexcdf4a" - Name 96 "txval41" - Name 99 "g_tTexcdi4a" - Name 107 "txval42" - Name 110 "g_tTexcdu4a" - Name 122 "PS_OUTPUT" - MemberName 122(PS_OUTPUT) 0 "Color" - MemberName 122(PS_OUTPUT) 1 "Depth" - Name 124 "psout" - Name 132 "Color" - Name 136 "Depth" - Name 140 "g_tTex1df4" - Decorate 11(g_tTex1df4a) DescriptorSet 0 - Decorate 11(g_tTex1df4a) Binding 1 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 28(g_tTex1di4a) DescriptorSet 0 - Decorate 40(g_tTex1du4a) DescriptorSet 0 - Decorate 51(g_tTex2df4a) DescriptorSet 0 - Decorate 62(g_tTex2di4a) DescriptorSet 0 - Decorate 74(g_tTex2du4a) DescriptorSet 0 - Decorate 87(g_tTexcdf4a) DescriptorSet 0 - Decorate 99(g_tTexcdi4a) DescriptorSet 0 - Decorate 110(g_tTexcdu4a) DescriptorSet 0 - Decorate 132(Color) Location 0 - Decorate 136(Depth) BuiltIn FragDepth - Decorate 140(g_tTex1df4) DescriptorSet 0 - Decorate 140(g_tTex1df4) Binding 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D array sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4a): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeSampledImage 9 - 19: 6(float) Constant 1036831949 - 20: TypeVector 6(float) 2 - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 26: TypeImage 22(int) 1D array sampled format:Unknown - 27: TypePointer UniformConstant 26 - 28(g_tTex1di4a): 27(ptr) Variable UniformConstant - 31: TypeSampledImage 26 - 33: 6(float) Constant 1045220557 - 37: TypeInt 32 0 - 38: TypeImage 37(int) 1D array sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4a): 39(ptr) Variable UniformConstant - 43: TypeSampledImage 38 - 45: 6(float) Constant 1050253722 - 49: TypeImage 6(float) 2D array sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4a): 50(ptr) Variable UniformConstant - 54: TypeSampledImage 49 - 56: 20(fvec2) ConstantComposite 19 33 - 60: TypeImage 22(int) 2D array sampled format:Unknown - 61: TypePointer UniformConstant 60 - 62(g_tTex2di4a): 61(ptr) Variable UniformConstant - 65: TypeSampledImage 60 - 67: 6(float) Constant 1053609165 - 68: 20(fvec2) ConstantComposite 45 67 - 72: TypeImage 37(int) 2D array sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex2du4a): 73(ptr) Variable UniformConstant - 77: TypeSampledImage 72 - 79: 6(float) Constant 1056964608 - 80: 6(float) Constant 1058642330 - 81: 20(fvec2) ConstantComposite 79 80 - 85: TypeImage 6(float) Cube array sampled format:Unknown - 86: TypePointer UniformConstant 85 - 87(g_tTexcdf4a): 86(ptr) Variable UniformConstant - 90: TypeSampledImage 85 - 92: TypeVector 6(float) 3 - 93: 92(fvec3) ConstantComposite 19 33 45 - 97: TypeImage 22(int) Cube array sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTexcdi4a): 98(ptr) Variable UniformConstant - 102: TypeSampledImage 97 - 104: 92(fvec3) ConstantComposite 67 79 80 - 108: TypeImage 37(int) Cube array sampled format:Unknown - 109: TypePointer UniformConstant 108 -110(g_tTexcdu4a): 109(ptr) Variable UniformConstant - 113: TypeSampledImage 108 - 115: 6(float) Constant 1060320051 - 116: 6(float) Constant 1061997773 - 117: 6(float) Constant 1063675494 - 118: 92(fvec3) ConstantComposite 115 116 117 - 121: TypeVector 6(float) 4 - 122(PS_OUTPUT): TypeStruct 121(fvec4) 6(float) - 123: TypePointer Function 122(PS_OUTPUT) - 125: 6(float) Constant 1065353216 - 126: 121(fvec4) ConstantComposite 125 125 125 125 - 127: TypePointer Function 121(fvec4) - 129: 22(int) Constant 1 - 131: TypePointer Output 121(fvec4) - 132(Color): 131(ptr) Variable Output - 135: TypePointer Output 6(float) - 136(Depth): 135(ptr) Variable Output - 140(g_tTex1df4): 10(ptr) Variable UniformConstant + 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 - 8(txval10): 7(ptr) Variable Function - 25(txval11): 7(ptr) Variable Function - 36(txval12): 7(ptr) Variable Function - 48(txval20): 7(ptr) Variable Function - 59(txval21): 7(ptr) Variable Function - 71(txval22): 7(ptr) Variable Function - 84(txval40): 7(ptr) Variable Function - 96(txval41): 7(ptr) Variable Function - 107(txval42): 7(ptr) Variable Function - 124(psout): 123(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4a) - 16: 13 Load 15(g_sSamp) - 18: 17 SampledImage 12 16 - 21: 20(fvec2) ImageQueryLod 18 19 - 24: 6(float) CompositeExtract 21 0 - Store 8(txval10) 24 - 29: 26 Load 28(g_tTex1di4a) - 30: 13 Load 15(g_sSamp) - 32: 31 SampledImage 29 30 - 34: 20(fvec2) ImageQueryLod 32 33 - 35: 6(float) CompositeExtract 34 0 - Store 25(txval11) 35 - 41: 38 Load 40(g_tTex1du4a) - 42: 13 Load 15(g_sSamp) - 44: 43 SampledImage 41 42 - 46: 20(fvec2) ImageQueryLod 44 45 - 47: 6(float) CompositeExtract 46 0 - Store 36(txval12) 47 - 52: 49 Load 51(g_tTex2df4a) - 53: 13 Load 15(g_sSamp) - 55: 54 SampledImage 52 53 - 57: 20(fvec2) ImageQueryLod 55 56 - 58: 6(float) CompositeExtract 57 0 - Store 48(txval20) 58 - 63: 60 Load 62(g_tTex2di4a) - 64: 13 Load 15(g_sSamp) - 66: 65 SampledImage 63 64 - 69: 20(fvec2) ImageQueryLod 66 68 - 70: 6(float) CompositeExtract 69 0 - Store 59(txval21) 70 - 75: 72 Load 74(g_tTex2du4a) - 76: 13 Load 15(g_sSamp) - 78: 77 SampledImage 75 76 - 82: 20(fvec2) ImageQueryLod 78 81 - 83: 6(float) CompositeExtract 82 0 - Store 71(txval22) 83 - 88: 85 Load 87(g_tTexcdf4a) - 89: 13 Load 15(g_sSamp) - 91: 90 SampledImage 88 89 - 94: 20(fvec2) ImageQueryLod 91 93 - 95: 6(float) CompositeExtract 94 0 - Store 84(txval40) 95 - 100: 97 Load 99(g_tTexcdi4a) - 101: 13 Load 15(g_sSamp) - 103: 102 SampledImage 100 101 - 105: 20(fvec2) ImageQueryLod 103 104 - 106: 6(float) CompositeExtract 105 0 - Store 96(txval41) 106 - 111: 108 Load 110(g_tTexcdu4a) - 112: 13 Load 15(g_sSamp) - 114: 113 SampledImage 111 112 - 119: 20(fvec2) ImageQueryLod 114 118 - 120: 6(float) CompositeExtract 119 0 - Store 107(txval42) 120 - 128: 127(ptr) AccessChain 124(psout) 23 - Store 128 126 - 130: 7(ptr) AccessChain 124(psout) 129 - Store 130 125 - 133: 127(ptr) AccessChain 124(psout) 23 - 134: 121(fvec4) Load 133 - Store 132(Color) 134 - 137: 7(ptr) AccessChain 124(psout) 129 - 138: 6(float) Load 137 - Store 136(Depth) 138 +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 index 799dcc37fb..160c095864 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -11,95 +11,96 @@ ERROR: 0:38: '' : unimplemented: CalculateLevelOfDetailUnclamped ERROR: 9 compilation errors. No code generated. -Shader version: 450 +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 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 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 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 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: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: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: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: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 @@ -107,13 +108,13 @@ ERROR: node is still EOpNull! 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: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 @@ -121,22 +122,22 @@ ERROR: node is still EOpNull! 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: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 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: @@ -144,136 +145,143 @@ ERROR: node is still EOpNull! 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 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 Sequence -0:43 Sequence -0:43 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 0 (const int) -0:43 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 1 (const int) -0:43 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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 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 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 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: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: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: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: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 @@ -281,13 +289,13 @@ ERROR: node is still EOpNull! 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: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 @@ -295,22 +303,22 @@ ERROR: node is still EOpNull! 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: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 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: @@ -318,41 +326,47 @@ ERROR: node is still EOpNull! 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 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 Sequence -0:43 Sequence -0:43 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 0 (const int) -0:43 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 1 (const int) -0:43 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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 index bf7183f277..0aa11bead6 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.cast.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.cast.frag.out @@ -1,101 +1,127 @@ hlsl.cast.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 add (temp 4-component vector of float) -0:3 add (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (layout(location=0 ) 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' (layout(location=0 ) 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:3 Branch: Return +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) +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: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 add (temp 4-component vector of float) -0:3 add (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (layout(location=0 ) 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' (layout(location=0 ) 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:3 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 28 +// 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" 9 11 + EntryPoint Fragment 4 "PixelShaderFunction" 27 30 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "@entryPointOutput" - Name 11 "input" - Decorate 9(@entryPointOutput) Location 0 - Decorate 11(input) Location 0 + 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 Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(input): 10(ptr) Variable Input - 19: TypeInt 32 1 - 20: TypeVector 19(int) 4 - 24: 6(float) Constant 1067014160 - 25: 7(fvec4) ConstantComposite 24 24 24 24 + 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 - 12: 7(fvec4) Load 11(input) - 13: 6(float) CompositeExtract 12 0 - 14: 6(float) CompositeExtract 12 1 - 15: 6(float) CompositeExtract 12 2 - 16: 6(float) CompositeExtract 12 3 - 17: 7(fvec4) CompositeConstruct 13 14 15 16 - 18: 7(fvec4) Load 11(input) - 21: 20(ivec4) ConvertFToS 18 - 22: 7(fvec4) ConvertSToF 21 - 23: 7(fvec4) FAdd 17 22 - 26: 7(fvec4) FAdd 23 25 - Store 9(@entryPointOutput) 26 + 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-new/Test/baseResults/hlsl.cbuffer-identifier.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.cbuffer-identifier.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.charLit.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.charLit.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.charLit.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.charLit.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clip.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clip.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clip.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clip.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-1.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-1.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-1.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-1.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-2.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-2.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-2.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-2.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-2.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-3.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-3.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-3.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-3.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-3.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-3.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-4.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-4.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-4.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-4.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-4.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-5.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-5.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-5.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-5.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-6.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-6.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-6.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-6.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-7.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-7.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-7.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-7.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-8.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-8.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-8.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-8.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-9.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-9.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.clipdistance-9.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.clipdistance-9.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.color.hull.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.color.hull.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.color.hull.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.color.hull.tesc.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.comparison.vec.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.comparison.vec.frag.out index 1bf63ec8a7..c7e4ed52b8 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.comparison.vec.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.comparison.vec.frag.out @@ -1,110 +1,110 @@ hlsl.comparison.vec.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Definition: Bug1(vf4; ( temp void) 0:4 Function Parameters: -0:4 'a' (in 4-component vector of float) +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: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 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: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: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: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: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: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: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: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: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: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: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: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: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 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: @@ -112,129 +112,132 @@ gl_FragCoord origin is upper left 0:32 0.000000 0:32 0.000000 0:32 0.000000 -0:33 Sequence -0:33 Sequence -0:33 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color}) -0:33 Constant: -0:33 0 (const int) -0:33 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Definition: Bug1(vf4; ( temp void) 0:4 Function Parameters: -0:4 'a' (in 4-component vector of float) +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: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 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: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: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: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: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: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: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: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: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: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: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: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: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 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: @@ -242,161 +245,172 @@ gl_FragCoord origin is upper left 0:32 0.000000 0:32 0.000000 0:32 0.000000 -0:33 Sequence -0:33 Sequence -0:33 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color}) -0:33 Constant: -0:33 0 (const int) -0:33 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) +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): 80001 -// Id's are bound by 91 +// 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" 84 + EntryPoint Fragment 4 "main" 90 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 11 "Bug1(vf4;" Name 10 "a" - Name 13 "v04" - Name 17 "v01" - Name 21 "r00" - Name 25 "r01" - Name 29 "r02" - Name 33 "r03" - Name 37 "r10" - Name 42 "r11" - Name 47 "r12" - Name 52 "r13" - Name 57 "r20" - Name 62 "r21" - Name 67 "r22" - Name 72 "r23" - Name 77 "PS_OUTPUT" - MemberName 77(PS_OUTPUT) 0 "Color" - Name 79 "psout" - Name 84 "Color" - Name 88 "$Global" - MemberName 88($Global) 0 "uf4" - Name 90 "" - Decorate 84(Color) Location 0 - MemberDecorate 88($Global) 0 Offset 0 - Decorate 88($Global) Block - Decorate 90 DescriptorSet 0 + 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) - 14: 6(float) Constant 0 - 15: 7(fvec4) ConstantComposite 14 14 14 14 - 16: TypePointer Function 6(float) - 18: TypeBool - 19: TypeVector 18(bool) 4 - 20: TypePointer Function 19(bvec4) - 77(PS_OUTPUT): TypeStruct 7(fvec4) - 78: TypePointer Function 77(PS_OUTPUT) - 80: TypeInt 32 1 - 81: 80(int) Constant 0 - 83: TypePointer Output 7(fvec4) - 84(Color): 83(ptr) Variable Output - 88($Global): TypeStruct 7(fvec4) - 89: TypePointer Uniform 88($Global) - 90: 89(ptr) Variable Uniform + 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 - 79(psout): 78(ptr) Variable Function - 82: 8(ptr) AccessChain 79(psout) 81 - Store 82 15 - 85: 8(ptr) AccessChain 79(psout) 81 - 86: 7(fvec4) Load 85 - Store 84(Color) 86 + 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 - 13(v04): 8(ptr) Variable Function - 17(v01): 16(ptr) Variable Function - 21(r00): 20(ptr) Variable Function - 25(r01): 20(ptr) Variable Function - 29(r02): 20(ptr) Variable Function - 33(r03): 20(ptr) Variable Function - 37(r10): 20(ptr) Variable Function - 42(r11): 20(ptr) Variable Function - 47(r12): 20(ptr) Variable Function - 52(r13): 20(ptr) Variable Function - 57(r20): 20(ptr) Variable Function - 62(r21): 20(ptr) Variable Function - 67(r22): 20(ptr) Variable Function - 72(r23): 20(ptr) Variable Function - Store 13(v04) 15 - Store 17(v01) 14 - 22: 7(fvec4) Load 10(a) - 23: 7(fvec4) Load 13(v04) - 24: 19(bvec4) FOrdEqual 22 23 - Store 21(r00) 24 + 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 13(v04) - 28: 19(bvec4) FOrdNotEqual 26 27 - Store 25(r01) 28 + 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 13(v04) - 32: 19(bvec4) FOrdLessThan 30 31 - Store 29(r02) 32 + 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 13(v04) - 36: 19(bvec4) FOrdGreaterThan 34 35 - Store 33(r03) 36 + 35: 7(fvec4) Load 17(v04) + 36: 23(bvec4) FOrdLessThan 34 35 + Store 33(r02) 36 38: 7(fvec4) Load 10(a) - 39: 6(float) Load 17(v01) - 40: 7(fvec4) CompositeConstruct 39 39 39 39 - 41: 19(bvec4) FOrdEqual 38 40 - Store 37(r10) 41 - 43: 7(fvec4) Load 10(a) - 44: 6(float) Load 17(v01) - 45: 7(fvec4) CompositeConstruct 44 44 44 44 - 46: 19(bvec4) FOrdNotEqual 43 45 - Store 42(r11) 46 - 48: 7(fvec4) Load 10(a) - 49: 6(float) Load 17(v01) - 50: 7(fvec4) CompositeConstruct 49 49 49 49 - 51: 19(bvec4) FOrdLessThan 48 50 - Store 47(r12) 51 - 53: 7(fvec4) Load 10(a) - 54: 6(float) Load 17(v01) - 55: 7(fvec4) CompositeConstruct 54 54 54 54 - 56: 19(bvec4) FOrdGreaterThan 53 55 - Store 52(r13) 56 - 58: 6(float) Load 17(v01) + 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: 7(fvec4) Load 10(a) - 61: 19(bvec4) FOrdEqual 59 60 - Store 57(r20) 61 - 63: 6(float) Load 17(v01) - 64: 7(fvec4) CompositeConstruct 63 63 63 63 - 65: 7(fvec4) Load 10(a) - 66: 19(bvec4) FOrdNotEqual 64 65 - Store 62(r21) 66 - 68: 6(float) Load 17(v01) - 69: 7(fvec4) CompositeConstruct 68 68 68 68 - 70: 7(fvec4) Load 10(a) - 71: 19(bvec4) FOrdLessThan 69 70 - Store 67(r22) 71 - 73: 6(float) Load 17(v01) - 74: 7(fvec4) CompositeConstruct 73 73 73 73 - 75: 7(fvec4) Load 10(a) - 76: 19(bvec4) FOrdGreaterThan 74 75 - Store 72(r23) 76 + 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 index 32edbda72d..90d9f79b34 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.conditional.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.conditional.frag.out @@ -1,372 +1,797 @@ hlsl.conditional.frag -Shader version: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:8 Function Definition: vectorCond( ( temp 4-component vector of float) +0:8 Function Parameters: 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp int) -0:3 'a' (temp int) -0:3 Constant: -0:3 5 (const int) -0:4 Sequence -0:4 move second child to first child (temp int) -0:4 'b' (temp int) -0:4 Constant: -0:4 6 (const int) -0:5 Sequence -0:5 move second child to first child (temp int) -0:5 'c' (temp int) -0:5 Constant: -0:5 7 (const int) -0:6 Sequence -0:6 move second child to first child (temp int) -0:6 'd' (temp int) -0:6 Constant: -0:6 7 (const int) -0:7 Sequence -0:7 move second child to first child (temp 4-component vector of float) -0:7 'ret' (temp 4-component vector of float) -0:9 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:7 add (temp 4-component vector of float) -0:7 vector-scale (temp 4-component vector of float) -0:7 Convert int to float (temp float) -0:7 'a' (temp int) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:8 vector-scale (temp 4-component vector of float) -0:8 Convert int to float (temp float) -0:8 'b' (temp int) -0:8 'input' (layout(location=0 ) in 4-component vector of float) -0:9 vector-scale (temp 4-component vector of float) -0:9 Convert int to float (temp float) -0:9 'c' (temp int) -0:9 'input' (layout(location=0 ) in 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 'd' (temp int) -0:10 'input' (layout(location=0 ) in 4-component vector of float) -0:12 Comma (temp int) -0:12 move second child to first child (temp int) -0:12 'e' (temp int) -0:12 move second child to first child (temp int) -0:12 'a' (temp int) -0:12 Test condition and select (temp int) -0:12 Condition -0:12 'b' (temp int) -0:12 true case -0:12 move second child to first child (temp int) -0:12 'c' (temp int) -0:12 'd' (temp int) -0:12 false case +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 10 (const int) -0:12 move second child to first child (temp int) -0:12 'b' (temp int) -0:12 Test condition and select (temp int) -0:12 Condition -0:12 'a' (temp int) -0:12 true case -0:12 move second child to first child (temp int) -0:12 'd' (temp int) -0:12 'c' (temp int) -0:12 false case -0:12 Constant: -0:12 11 (const int) -0:14 move second child to first child (temp 4-component vector of float) -0:14 'f' (temp 4-component vector of float) -0:14 Test condition and select (temp 4-component vector of float) -0:14 Condition -0:14 Compare Less Than (temp bool) -0:14 direct index (temp float) -0:14 'ret' (temp 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:14 direct index (temp float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:14 Constant: -0:14 1 (const int) -0:14 true case -0:14 vector-scale (temp 4-component vector of float) -0:14 Convert int to float (temp float) -0:14 'c' (temp int) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:14 false case -0:14 vector-scale (temp 4-component vector of float) -0:14 Convert int to float (temp float) -0:14 'd' (temp int) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:15 Sequence -0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:15 add (temp 4-component vector of float) -0:15 vector-scale (temp 4-component vector of float) -0:15 Convert int to float (temp float) -0:15 'e' (temp int) -0:15 'ret' (temp 4-component vector of float) -0:15 'f' (temp 4-component vector of float) -0:15 Branch: Return +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:? '@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{ 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: 450 +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' (layout(location=0 ) in 4-component vector of float) +0:8 Function Definition: vectorCond( ( temp 4-component vector of float) +0:8 Function Parameters: 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp int) -0:3 'a' (temp int) -0:3 Constant: -0:3 5 (const int) -0:4 Sequence -0:4 move second child to first child (temp int) -0:4 'b' (temp int) -0:4 Constant: -0:4 6 (const int) -0:5 Sequence -0:5 move second child to first child (temp int) -0:5 'c' (temp int) -0:5 Constant: -0:5 7 (const int) -0:6 Sequence -0:6 move second child to first child (temp int) -0:6 'd' (temp int) -0:6 Constant: -0:6 7 (const int) -0:7 Sequence -0:7 move second child to first child (temp 4-component vector of float) -0:7 'ret' (temp 4-component vector of float) -0:9 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:7 add (temp 4-component vector of float) -0:7 vector-scale (temp 4-component vector of float) -0:7 Convert int to float (temp float) -0:7 'a' (temp int) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:8 vector-scale (temp 4-component vector of float) -0:8 Convert int to float (temp float) -0:8 'b' (temp int) -0:8 'input' (layout(location=0 ) in 4-component vector of float) -0:9 vector-scale (temp 4-component vector of float) -0:9 Convert int to float (temp float) -0:9 'c' (temp int) -0:9 'input' (layout(location=0 ) in 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 'd' (temp int) -0:10 'input' (layout(location=0 ) in 4-component vector of float) -0:12 Comma (temp int) -0:12 move second child to first child (temp int) -0:12 'e' (temp int) -0:12 move second child to first child (temp int) -0:12 'a' (temp int) -0:12 Test condition and select (temp int) -0:12 Condition -0:12 'b' (temp int) -0:12 true case -0:12 move second child to first child (temp int) -0:12 'c' (temp int) -0:12 'd' (temp int) -0:12 false case +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 10 (const int) -0:12 move second child to first child (temp int) -0:12 'b' (temp int) -0:12 Test condition and select (temp int) -0:12 Condition -0:12 'a' (temp int) -0:12 true case -0:12 move second child to first child (temp int) -0:12 'd' (temp int) -0:12 'c' (temp int) -0:12 false case -0:12 Constant: -0:12 11 (const int) -0:14 move second child to first child (temp 4-component vector of float) -0:14 'f' (temp 4-component vector of float) -0:14 Test condition and select (temp 4-component vector of float) -0:14 Condition -0:14 Compare Less Than (temp bool) -0:14 direct index (temp float) -0:14 'ret' (temp 4-component vector of float) -0:14 Constant: -0:14 0 (const int) -0:14 direct index (temp float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:14 Constant: -0:14 1 (const int) -0:14 true case -0:14 vector-scale (temp 4-component vector of float) -0:14 Convert int to float (temp float) -0:14 'c' (temp int) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:14 false case -0:14 vector-scale (temp 4-component vector of float) -0:14 Convert int to float (temp float) -0:14 'd' (temp int) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:15 Sequence -0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:15 add (temp 4-component vector of float) -0:15 vector-scale (temp 4-component vector of float) -0:15 Convert int to float (temp float) -0:15 'e' (temp int) -0:15 'ret' (temp 4-component vector of float) -0:15 'f' (temp 4-component vector of float) -0:15 Branch: Return +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:? '@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{ 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): 80001 -// Id's are bound by 91 +// 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" 22 83 + EntryPoint Fragment 4 "PixelShaderFunction" 199 202 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "a" - Name 10 "b" - Name 12 "c" - Name 14 "d" - Name 18 "ret" - Name 22 "input" - Name 40 "e" - Name 57 "f" - Name 83 "@entryPointOutput" - Decorate 22(input) Location 0 - Decorate 83(@entryPointOutput) Location 0 + 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: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 5 - 11: 6(int) Constant 6 - 13: 6(int) Constant 7 - 15: TypeFloat 32 - 16: TypeVector 15(float) 4 - 17: TypePointer Function 16(fvec4) - 21: TypePointer Input 16(fvec4) - 22(input): 21(ptr) Variable Input - 47: 6(int) Constant 10 - 55: 6(int) Constant 11 - 59: TypeInt 32 0 - 60: 59(int) Constant 0 - 61: TypePointer Function 15(float) - 64: 59(int) Constant 1 - 65: TypePointer Input 15(float) - 68: TypeBool - 82: TypePointer Output 16(fvec4) -83(@entryPointOutput): 82(ptr) Variable Output + 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 - 8(a): 7(ptr) Variable Function - 10(b): 7(ptr) Variable Function - 12(c): 7(ptr) Variable Function - 14(d): 7(ptr) Variable Function - 18(ret): 17(ptr) Variable Function - 40(e): 7(ptr) Variable Function - 41: 7(ptr) Variable Function - 49: 7(ptr) Variable Function - 57(f): 17(ptr) Variable Function - 58: 17(ptr) Variable Function - Store 8(a) 9 - Store 10(b) 11 - Store 12(c) 13 - Store 14(d) 13 - 19: 6(int) Load 8(a) - 20: 15(float) ConvertSToF 19 - 23: 16(fvec4) Load 22(input) - 24: 16(fvec4) VectorTimesScalar 23 20 - 25: 6(int) Load 10(b) - 26: 15(float) ConvertSToF 25 - 27: 16(fvec4) Load 22(input) - 28: 16(fvec4) VectorTimesScalar 27 26 - 29: 16(fvec4) FAdd 24 28 - 30: 6(int) Load 12(c) - 31: 15(float) ConvertSToF 30 - 32: 16(fvec4) Load 22(input) - 33: 16(fvec4) VectorTimesScalar 32 31 - 34: 16(fvec4) FAdd 29 33 - 35: 6(int) Load 14(d) - 36: 15(float) ConvertSToF 35 - 37: 16(fvec4) Load 22(input) - 38: 16(fvec4) VectorTimesScalar 37 36 - 39: 16(fvec4) FAdd 34 38 - Store 18(ret) 39 - 42: 6(int) Load 10(b) - SelectionMerge 44 None - BranchConditional 42 43 46 - 43: Label - 45: 6(int) Load 14(d) - Store 12(c) 45 - Store 41 45 - Branch 44 - 46: Label - Store 41 47 - Branch 44 - 44: Label - 48: 6(int) Load 41 - Store 8(a) 48 - Store 40(e) 48 - 50: 6(int) Load 8(a) - SelectionMerge 52 None - BranchConditional 50 51 54 - 51: Label - 53: 6(int) Load 12(c) - Store 14(d) 53 - Store 49 53 - Branch 52 - 54: Label - Store 49 55 - Branch 52 - 52: Label - 56: 6(int) Load 49 - Store 10(b) 56 - 62: 61(ptr) AccessChain 18(ret) 60 - 63: 15(float) Load 62 - 66: 65(ptr) AccessChain 22(input) 64 - 67: 15(float) Load 66 - 69: 68(bool) FOrdLessThan 63 67 - SelectionMerge 71 None - BranchConditional 69 70 76 - 70: Label - 72: 6(int) Load 12(c) - 73: 15(float) ConvertSToF 72 - 74: 16(fvec4) Load 22(input) - 75: 16(fvec4) VectorTimesScalar 74 73 - Store 58 75 - Branch 71 - 76: Label - 77: 6(int) Load 14(d) - 78: 15(float) ConvertSToF 77 - 79: 16(fvec4) Load 22(input) - 80: 16(fvec4) VectorTimesScalar 79 78 - Store 58 80 - Branch 71 - 71: Label - 81: 16(fvec4) Load 58 - Store 57(f) 81 - 84: 6(int) Load 40(e) - 85: 15(float) ConvertSToF 84 - 86: 16(fvec4) Load 18(ret) - 87: 16(fvec4) VectorTimesScalar 86 85 - 88: 16(fvec4) Load 57(f) - 89: 16(fvec4) FAdd 87 88 - Store 83(@entryPointOutput) 89 + 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-new/Test/baseResults/hlsl.constantbuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.constantbuffer.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.constantbuffer.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.constantbuffer.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.constructArray.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.constructArray.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.constructArray.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.constructArray.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.constructexpr.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.constructexpr.frag.out index e6ed6e13b8..227c7e1738 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.constructexpr.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.constructexpr.frag.out @@ -1,8 +1,8 @@ hlsl.constructexpr.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -17,16 +17,16 @@ gl_FragCoord origin is upper left 0:10 7 (const int) 0:11 Constant: 0:11 8 (const int) -0:12 Comma (temp 2-component vector of float) +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 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: @@ -34,26 +34,29 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Sequence -0:16 Sequence -0:16 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:16 color: direct index for structure (temp 4-component vector of float) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) -0:16 Constant: -0:16 0 (const int) -0:16 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -68,16 +71,16 @@ gl_FragCoord origin is upper left 0:10 7 (const int) 0:11 Constant: 0:11 8 (const int) -0:12 Comma (temp 2-component vector of float) +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 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: @@ -85,66 +88,77 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Sequence -0:16 Sequence -0:16 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:16 color: direct index for structure (temp 4-component vector of float) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) -0:16 Constant: -0:16 0 (const int) -0:16 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 35 +// 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" 31 + EntryPoint Fragment 4 "main" 37 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 22 "PS_OUTPUT" - MemberName 22(PS_OUTPUT) 0 "color" - Name 24 "ps_output" - Name 31 "color" - Decorate 31(color) Location 0 + 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: TypeInt 32 1 - 7: 6(int) Constant 3 - 8: 6(int) Constant 4 - 9: 6(int) Constant 5 - 10: 6(int) Constant 6 - 11: 6(int) Constant 7 - 12: 6(int) Constant 8 - 13: TypeFloat 32 - 14: TypeVector 13(float) 2 - 15: 13(float) Constant 1091567616 - 16: 13(float) Constant 1092616192 - 17: 14(fvec2) ConstantComposite 15 16 - 18: 13(float) Constant 1093664768 - 19: 13(float) Constant 1094713344 - 20: 14(fvec2) ConstantComposite 18 19 - 21: TypeVector 13(float) 4 - 22(PS_OUTPUT): TypeStruct 21(fvec4) - 23: TypePointer Function 22(PS_OUTPUT) - 25: 6(int) Constant 0 - 26: 13(float) Constant 1065353216 - 27: 21(fvec4) ConstantComposite 26 26 26 26 - 28: TypePointer Function 21(fvec4) - 30: TypePointer Output 21(fvec4) - 31(color): 30(ptr) Variable Output + 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 - 24(ps_output): 23(ptr) Variable Function - 29: 28(ptr) AccessChain 24(ps_output) 25 - Store 29 27 - 32: 28(ptr) AccessChain 24(ps_output) 25 - 33: 21(fvec4) Load 32 - Store 31(color) 33 + 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-new/Test/baseResults/hlsl.constructimat.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.constructimat.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.constructimat.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.constructimat.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.coverage.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.coverage.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.coverage.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.coverage.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.dashI.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.dashI.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.dashI.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.dashI.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out index 71842afa47..2bc08dabb8 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out @@ -1,25 +1,33 @@ hlsl.deadFunctionMissingBody.vert // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 13 +// 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" 9 + EntryPoint Vertex 4 "main" 16 + Source HLSL 500 Name 4 "main" - Name 9 "@entryPointOutput" - Decorate 9(@entryPointOutput) Location 0 + 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: TypePointer Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output - 10: 6(float) Constant 0 - 11: 7(fvec4) ConstantComposite 10 10 10 10 + 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 - Store 9(@entryPointOutput) 11 + 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 index 0b53246021..9749371a50 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.depthGreater.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.depthGreater.frag.out @@ -1,59 +1,95 @@ hlsl.depthGreater.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(f1; ( temp void) 0:2 Function Parameters: -0:2 'depth' (out float FragDepth) +0:2 'depth' ( out float) 0:? Sequence -0:3 move second child to first child (temp float) -0:3 'depth' (out float FragDepth) +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) +0:? 'depth' ( out float FragDepth) Linked fragment stage: -Shader version: 450 +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 Definition: @PixelShaderFunction(f1; ( temp void) 0:2 Function Parameters: -0:2 'depth' (out float FragDepth) +0:2 'depth' ( out float) 0:? Sequence -0:3 move second child to first child (temp float) -0:3 'depth' (out float FragDepth) +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) +0:? 'depth' ( out float FragDepth) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 10 +// 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" 8 + EntryPoint Fragment 4 "PixelShaderFunction" 18 ExecutionMode 4 OriginUpperLeft ExecutionMode 4 DepthGreater + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "depth" - Decorate 8(depth) BuiltIn FragDepth + 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 Output 6(float) - 8(depth): 7(ptr) Variable Output - 9: 6(float) Constant 1045220557 + 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 - Store 8(depth) 9 + 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 index ec664e1061..c3af8eeaee 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.depthLess.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.depthLess.frag.out @@ -1,60 +1,76 @@ hlsl.depthLess.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left using depth_less 0:? Sequence -0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) +0:2 Function Definition: @PixelShaderFunction( ( temp float) 0:2 Function Parameters: 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp float) -0:? '@entryPointOutput' (out float unknown built-in variable) -0:3 Constant: -0:3 0.200000 -0:3 Branch: Return +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 unknown built-in variable) +0:? '@entryPointOutput' ( out float FragDepth) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left using depth_less 0:? Sequence -0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) +0:2 Function Definition: @PixelShaderFunction( ( temp float) 0:2 Function Parameters: 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp float) -0:? '@entryPointOutput' (out float unknown built-in variable) -0:3 Constant: -0:3 0.200000 -0:3 Branch: Return +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 unknown built-in variable) +0:? '@entryPointOutput' ( out float FragDepth) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 11 +// 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" 8 + EntryPoint Fragment 4 "PixelShaderFunction" 14 ExecutionMode 4 OriginUpperLeft ExecutionMode 4 DepthLess + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "@entryPointOutput" + Name 8 "@PixelShaderFunction(" + Name 14 "@entryPointOutput" + Decorate 14(@entryPointOutput) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 - 7: TypePointer Output 6(float) -8(@entryPointOutput): 7(ptr) Variable Output - 9: 6(float) Constant 1045220557 + 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 - Store 8(@entryPointOutput) 9 + 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 index 9b4f2c72e0..cc7c866609 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.discard.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.discard.frag.out @@ -1,153 +1,191 @@ hlsl.discard.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo(f1; (temp void) +0:2 Function Definition: foo(f1; ( temp void) 0:2 Function Parameters: -0:2 'f' (in float) +0:2 'f' ( in float) 0:? Sequence -0:3 Test condition and select (temp void) +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 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 Definition: @PixelShaderFunction(vf4; ( temp void) 0:8 Function Parameters: -0:8 'input' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) +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 Test condition and select ( temp void) 0:10 Condition -0:10 direct index (temp float) -0:10 'input' (layout(location=0 ) in 4-component vector of float) -0:10 Constant: -0:10 0 (const int) +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' (layout(location=0 ) in 4-component vector of float) +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) +0:? 'input' (layout( location=0) in 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo(f1; (temp void) +0:2 Function Definition: foo(f1; ( temp void) 0:2 Function Parameters: -0:2 'f' (in float) +0:2 'f' ( in float) 0:? Sequence -0:3 Test condition and select (temp void) +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 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 Definition: @PixelShaderFunction(vf4; ( temp void) 0:8 Function Parameters: -0:8 'input' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) +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 Test condition and select ( temp void) 0:10 Condition -0:10 direct index (temp float) -0:10 'input' (layout(location=0 ) in 4-component vector of float) -0:10 Constant: -0:10 0 (const int) +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' (layout(location=0 ) in 4-component vector of float) +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) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 39 +// 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" 21 + EntryPoint Fragment 4 "PixelShaderFunction" 45 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 10 "foo(f1;" Name 9 "f" - Name 21 "input" - Name 22 "param" - Name 35 "f" - Decorate 21(input) Location 0 + 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) - 13: 6(float) Constant 1065353216 - 14: TypeBool - 19: TypeVector 6(float) 4 - 20: TypePointer Input 19(fvec4) - 21(input): 20(ptr) Variable Input - 23: TypeInt 32 0 - 24: 23(int) Constant 2 - 25: TypePointer Input 6(float) - 29: 23(int) Constant 0 + 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 - 22(param): 7(ptr) Variable Function - 35(f): 7(ptr) Variable Function - 26: 25(ptr) AccessChain 21(input) 24 - 27: 6(float) Load 26 - Store 22(param) 27 - 28: 2 FunctionCall 10(foo(f1;) 22(param) - 30: 25(ptr) AccessChain 21(input) 29 - 31: 6(float) Load 30 - SelectionMerge 33 None - BranchConditional 31 32 33 - 32: Label - Kill - 33: Label - 36: 25(ptr) AccessChain 21(input) 29 - 37: 6(float) Load 36 - Store 35(f) 37 - Kill + 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 - 12: 6(float) Load 9(f) - 15: 14(bool) FOrdLessThan 12 13 - SelectionMerge 17 None - BranchConditional 15 16 17 - 16: Label + 18: 6(float) Load 9(f) + 21: 20(bool) FOrdLessThan 18 19 + SelectionMerge 23 None + BranchConditional 21 22 23 + 22: Label Kill - 17: Label + 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 index c060cdc7e3..bb564658a2 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.doLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.doLoop.frag.out @@ -1,133 +1,271 @@ hlsl.doLoop.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in float) 0:? Sequence -0:3 Loop with condition not tested first +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 +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 all (temp bool) -0:5 Equal (temp 4-component vector of bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 Compare Greater Than ( temp bool) +0:5 'input' ( in float) +0:5 Constant: +0:5 2.000000 0:5 Loop Body -0:5 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 'input' (layout(location=0 ) in 4-component vector of float) -0:5 Branch: Return +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 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in float) Linked fragment stage: -Shader version: 450 +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 Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in float) 0:? Sequence -0:3 Loop with condition not tested first +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 +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 all (temp bool) -0:5 Equal (temp 4-component vector of bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 Compare Greater Than ( temp bool) +0:5 'input' ( in float) +0:5 Constant: +0:5 2.000000 0:5 Loop Body -0:5 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 'input' (layout(location=0 ) in 4-component vector of float) -0:5 Branch: Return +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 4-component vector of float) +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): 80001 -// Id's are bound by 33 +// 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" 23 25 + EntryPoint Fragment 4 "PixelShaderFunction" 64 67 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 23 "@entryPointOutput" - Name 25 "input" - Decorate 23(@entryPointOutput) Location 0 - Decorate 25(input) Location 0 + 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 - 10: TypeBool - 11: 10(bool) ConstantFalse - 20: TypeFloat 32 - 21: TypeVector 20(float) 4 - 22: TypePointer Output 21(fvec4) -23(@entryPointOutput): 22(ptr) Variable Output - 24: TypePointer Input 21(fvec4) - 25(input): 24(ptr) Variable Input - 30: TypeVector 10(bool) 4 + 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 - Branch 6 - 6: Label - LoopMerge 8 9 None - Branch 7 - 7: Label - Branch 9 - 9: Label - BranchConditional 11 6 8 - 8: Label - Branch 12 + 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 - LoopMerge 14 15 None Branch 13 13: Label - Branch 15 - 15: Label - BranchConditional 11 12 14 + LoopMerge 15 16 Unroll + Branch 14 14: Label Branch 16 16: Label - LoopMerge 18 19 None - Branch 17 - 17: Label - 26: 21(fvec4) Load 25(input) - Store 23(@entryPointOutput) 26 - Return + BranchConditional 18 13 15 + 15: Label + Branch 19 19: Label - 28: 21(fvec4) Load 25(input) - 29: 21(fvec4) Load 25(input) - 31: 30(bvec4) FOrdEqual 28 29 - 32: 10(bool) All 31 - BranchConditional 32 16 18 - 18: Label - Return + 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-new/Test/baseResults/hlsl.domain.1.tese.out b/deps/glslang/glslang/Test/baseResults/hlsl.domain.1.tese.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.domain.1.tese.out rename to deps/glslang/glslang/Test/baseResults/hlsl.domain.1.tese.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.domain.2.tese.out b/deps/glslang/glslang/Test/baseResults/hlsl.domain.2.tese.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.domain.2.tese.out rename to deps/glslang/glslang/Test/baseResults/hlsl.domain.2.tese.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.domain.3.tese.out b/deps/glslang/glslang/Test/baseResults/hlsl.domain.3.tese.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.domain.3.tese.out rename to deps/glslang/glslang/Test/baseResults/hlsl.domain.3.tese.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.emptystruct.init.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.emptystruct.init.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.emptystructreturn.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.emptystructreturn.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.emptystructreturn.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.emptystructreturn.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.entry-in.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.entry-in.frag.out index 04e3935d1f..dc9eea4af9 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.entry-in.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.entry-in.frag.out @@ -1,205 +1,180 @@ hlsl.entry-in.frag -Shader version: 450 +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 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: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 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 FragCoord) -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 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 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: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 Sequence -0:15 move second child to first child (temp 2-component vector of float) -0:15 v: direct index for structure (temp 2-component vector of float) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:15 Constant: -0:15 0 (const int) -0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:15 move second child to first child (temp 4-component vector of float) -0:15 fragCoord: direct index for structure (temp 4-component vector of float) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:15 Constant: -0:15 1 (const int) -0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:15 move second child to first child (temp 2-component vector of int) -0:15 i2: direct index for structure (temp 2-component vector of int) -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 Constant: -0:15 2 (const int) -0:? 'i2' (layout(location=1 ) in 2-component vector of int) +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: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 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Sequence -0:17 move second child to first child (temp 2-component vector of float) -0:17 v: direct index for structure (temp 2-component vector of float) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Constant: -0:17 0 (const int) -0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:17 move second child to first child (temp 4-component vector of float) -0:17 fragCoord: direct index for structure (temp 4-component vector of float) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Constant: -0:17 1 (const int) -0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:17 move second child to first child (temp 2-component vector of int) -0:17 i2: direct index for structure (temp 2-component vector of int) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Constant: -0:17 2 (const int) -0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -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:19 Branch: Return +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:? 'v' (layout(location=0 ) in 2-component vector of float) -0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:? 'i2' (layout(location=1 ) in 2-component vector of int) +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: 450 +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 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: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 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 FragCoord) -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 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 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: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 Sequence -0:15 move second child to first child (temp 2-component vector of float) -0:15 v: direct index for structure (temp 2-component vector of float) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:15 Constant: -0:15 0 (const int) -0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:15 move second child to first child (temp 4-component vector of float) -0:15 fragCoord: direct index for structure (temp 4-component vector of float) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:15 Constant: -0:15 1 (const int) -0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:15 move second child to first child (temp 2-component vector of int) -0:15 i2: direct index for structure (temp 2-component vector of int) -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 Constant: -0:15 2 (const int) -0:? 'i2' (layout(location=1 ) in 2-component vector of int) +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: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 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Sequence -0:17 move second child to first child (temp 2-component vector of float) -0:17 v: direct index for structure (temp 2-component vector of float) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Constant: -0:17 0 (const int) -0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:17 move second child to first child (temp 4-component vector of float) -0:17 fragCoord: direct index for structure (temp 4-component vector of float) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Constant: -0:17 1 (const int) -0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:17 move second child to first child (temp 2-component vector of int) -0:17 i2: direct index for structure (temp 2-component vector of int) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:17 Constant: -0:17 2 (const int) -0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -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:19 Branch: Return +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:? 'v' (layout(location=0 ) in 2-component vector of float) -0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:? 'i2' (layout(location=1 ) in 2-component vector of int) +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): 80001 -// Id's are bound by 71 +// 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" 32 37 43 63 + 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" @@ -207,20 +182,24 @@ gl_FragCoord origin is upper left MemberName 11(InParam) 2 "i2" Name 15 "fun(struct-InParam-vf2-vf4-vi21;" Name 14 "p" - Name 30 "local" - Name 32 "v" - Name 37 "fragCoord" - Name 43 "i2" - Name 47 "ret1" - Name 48 "param" - Name 51 "ret2" - Name 52 "aggShadow" - Name 59 "param" - Name 63 "@entryPointOutput" - Decorate 32(v) Location 0 - Decorate 37(fragCoord) BuiltIn FragCoord - Decorate 43(i2) Location 1 - Decorate 63(@entryPointOutput) Location 0 + 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 @@ -231,74 +210,77 @@ gl_FragCoord origin is upper left 11(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2) 12: TypePointer Function 11(InParam) 13: TypeFunction 6(float) 12(ptr) - 17: 9(int) Constant 0 - 18: TypeInt 32 0 - 19: 18(int) Constant 1 - 20: TypePointer Function 6(float) - 23: 9(int) Constant 1 - 24: 18(int) Constant 0 - 31: TypePointer Input 7(fvec2) - 32(v): 31(ptr) Variable Input - 34: TypePointer Function 7(fvec2) - 36: TypePointer Input 8(fvec4) - 37(fragCoord): 36(ptr) Variable Input - 39: TypePointer Function 8(fvec4) - 41: 9(int) Constant 2 - 42: TypePointer Input 10(ivec2) - 43(i2): 42(ptr) Variable Input - 45: TypePointer Function 10(ivec2) - 62: TypePointer Output 8(fvec4) -63(@entryPointOutput): 62(ptr) Variable Output + 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 - 30(local): 12(ptr) Variable Function - 47(ret1): 20(ptr) Variable Function - 48(param): 12(ptr) Variable Function - 51(ret2): 20(ptr) Variable Function - 52(aggShadow): 12(ptr) Variable Function - 59(param): 12(ptr) Variable Function - 33: 7(fvec2) Load 32(v) - 35: 34(ptr) AccessChain 30(local) 17 - Store 35 33 - 38: 8(fvec4) Load 37(fragCoord) - 40: 39(ptr) AccessChain 30(local) 23 - Store 40 38 - 44: 10(ivec2) Load 43(i2) - 46: 45(ptr) AccessChain 30(local) 41 - Store 46 44 - 49: 11(InParam) Load 30(local) - Store 48(param) 49 - 50: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 48(param) - Store 47(ret1) 50 - 53: 7(fvec2) Load 32(v) - 54: 34(ptr) AccessChain 52(aggShadow) 17 - Store 54 53 - 55: 8(fvec4) Load 37(fragCoord) - 56: 39(ptr) AccessChain 52(aggShadow) 23 - Store 56 55 - 57: 10(ivec2) Load 43(i2) - 58: 45(ptr) AccessChain 52(aggShadow) 41 - Store 58 57 - 60: 11(InParam) Load 52(aggShadow) - Store 59(param) 60 - 61: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 59(param) - Store 51(ret2) 61 - 64: 39(ptr) AccessChain 30(local) 23 - 65: 8(fvec4) Load 64 - 66: 6(float) Load 47(ret1) - 67: 8(fvec4) VectorTimesScalar 65 66 - 68: 6(float) Load 51(ret2) - 69: 8(fvec4) VectorTimesScalar 67 68 - Store 63(@entryPointOutput) 69 + 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 - 21: 20(ptr) AccessChain 14(p) 17 19 - 22: 6(float) Load 21 - 25: 20(ptr) AccessChain 14(p) 23 24 + 25: 24(ptr) AccessChain 14(p) 21 23 26: 6(float) Load 25 - 27: 6(float) FAdd 22 26 - ReturnValue 27 + 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 index 86fde14c63..6ca3011bba 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.entry-out.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.entry-out.frag.out @@ -1,218 +1,293 @@ hlsl.entry-out.frag -Shader version: 450 +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 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: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 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 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 Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float) 0:13 Function Parameters: -0:13 'input' (layout(location=0 ) in 4-component vector of float) -0:13 'out1' (layout(location=1 ) out 4-component vector of float) -0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0: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' (layout(location=1 ) out 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:15 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=2 ) out 2-component vector of float) +0: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:? 'i' (layout(location=3 ) out 2-component vector of int) +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 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 move second child to first child ( temp 2-component vector of int) +0:19 i: direct index for structure ( temp 2-component vector of int) +0:19 'local' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 13 (const int) 0:19 13 (const int) -0:20 Comma (temp void) -0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) -0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:20 Sequence -0:20 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:20 v: direct index for structure (temp 2-component vector of float) -0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child (temp 2-component vector of int) -0:? 'i' (layout(location=5 ) out 2-component vector of int) -0:20 i: direct index for structure (temp 2-component vector of int) -0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:20 Constant: -0:20 1 (const int) -0:22 Sequence -0:22 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:22 'out1' (layout(location=1 ) out 4-component vector of float) -0:22 Branch: Return +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:? 'v' (layout(location=2 ) out 2-component vector of float) -0:? 'i' (layout(location=3 ) out 2-component vector of int) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:? 'i' (layout(location=5 ) out 2-component vector of int) +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: 450 +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 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: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 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 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 Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float) 0:13 Function Parameters: -0:13 'input' (layout(location=0 ) in 4-component vector of float) -0:13 'out1' (layout(location=1 ) out 4-component vector of float) -0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0: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' (layout(location=1 ) out 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:15 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=2 ) out 2-component vector of float) +0: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:? 'i' (layout(location=3 ) out 2-component vector of int) +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 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 move second child to first child ( temp 2-component vector of int) +0:19 i: direct index for structure ( temp 2-component vector of int) +0:19 'local' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 13 (const int) 0:19 13 (const int) -0:20 Comma (temp void) -0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) -0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:20 Sequence -0:20 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:20 v: direct index for structure (temp 2-component vector of float) -0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:20 Constant: -0:20 0 (const int) -0:20 move second child to first child (temp 2-component vector of int) -0:? 'i' (layout(location=5 ) out 2-component vector of int) -0:20 i: direct index for structure (temp 2-component vector of int) -0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:20 Constant: -0:20 1 (const int) -0:22 Sequence -0:22 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:22 'out1' (layout(location=1 ) out 4-component vector of float) -0:22 Branch: Return +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:? 'v' (layout(location=2 ) out 2-component vector of float) -0:? 'i' (layout(location=3 ) out 2-component vector of int) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:? 'i' (layout(location=5 ) out 2-component vector of int) +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): 80001 -// Id's are bound by 60 +// 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" 28 30 33 37 51 54 57 + 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 28 "out1" - Name 30 "input" - Name 33 "v" - Name 37 "i" - Name 40 "local" - Name 47 "tempArg" - Name 48 "param" - Name 51 "v" - Name 54 "i" - Name 57 "@entryPointOutput" - Decorate 28(out1) Location 1 - Decorate 30(input) Location 0 - Decorate 33(v) Location 2 - Decorate 37(i) Location 3 - Decorate 51(v) Location 4 - Decorate 54(i) Location 5 - Decorate 57(@entryPointOutput) Location 0 + 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 @@ -222,66 +297,104 @@ gl_FragCoord origin is upper left 10(OutParam): TypeStruct 7(fvec2) 9(ivec2) 11: TypePointer Function 10(OutParam) 12: TypeFunction 2 11(ptr) - 16: 8(int) Constant 0 - 17: 6(float) Constant 1053609165 - 18: 7(fvec2) ConstantComposite 17 17 - 19: TypePointer Function 7(fvec2) - 21: 8(int) Constant 1 - 22: 8(int) Constant 7 - 23: 9(ivec2) ConstantComposite 22 22 - 24: TypePointer Function 9(ivec2) - 26: TypeVector 6(float) 4 - 27: TypePointer Output 26(fvec4) - 28(out1): 27(ptr) Variable Output - 29: TypePointer Input 26(fvec4) - 30(input): 29(ptr) Variable Input - 32: TypePointer Output 7(fvec2) - 33(v): 32(ptr) Variable Output - 34: 6(float) Constant 1073741824 - 35: 7(fvec2) ConstantComposite 34 34 - 36: TypePointer Output 9(ivec2) - 37(i): 36(ptr) Variable Output - 38: 8(int) Constant 3 - 39: 9(ivec2) ConstantComposite 38 38 - 41: 6(float) Constant 1094713344 - 42: 7(fvec2) ConstantComposite 41 41 - 44: 8(int) Constant 13 - 45: 9(ivec2) ConstantComposite 44 44 - 51(v): 32(ptr) Variable Output - 54(i): 36(ptr) Variable Output -57(@entryPointOutput): 27(ptr) Variable Output + 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 - 40(local): 11(ptr) Variable Function - 47(tempArg): 11(ptr) Variable Function - 48(param): 11(ptr) Variable Function - 31: 26(fvec4) Load 30(input) - Store 28(out1) 31 - Store 33(v) 35 - Store 37(i) 39 - 43: 19(ptr) AccessChain 40(local) 16 - Store 43 42 - 46: 24(ptr) AccessChain 40(local) 21 - Store 46 45 - 49: 2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 48(param) - 50:10(OutParam) Load 48(param) - Store 47(tempArg) 50 - 52: 19(ptr) AccessChain 47(tempArg) 16 - 53: 7(fvec2) Load 52 - Store 51(v) 53 - 55: 24(ptr) AccessChain 47(tempArg) 21 - 56: 9(ivec2) Load 55 - Store 54(i) 56 - 58: 26(fvec4) Load 28(out1) - Store 57(@entryPointOutput) 58 + 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 - 20: 19(ptr) AccessChain 13(op) 16 - Store 20 18 - 25: 24(ptr) AccessChain 13(op) 21 - Store 25 23 + 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 index b24cb7a257..898eb4bd87 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.entry.rename.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.entry.rename.frag.out @@ -1,15 +1,15 @@ hlsl.entry.rename.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: not_the_entry_point( (temp void) +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 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 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: @@ -17,34 +17,37 @@ gl_FragCoord origin is upper left 0:13 0.000000 0:13 0.000000 0:13 0.000000 -0:14 Sequence -0:14 Sequence -0:14 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:14 Color: direct index for structure (temp 4-component vector of float) -0:14 'psout' (temp structure{temp 4-component vector of float Color}) -0:14 Constant: -0:14 0 (const int) -0:14 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point}) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: not_the_entry_point( (temp void) +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 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 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: @@ -52,68 +55,79 @@ gl_FragCoord origin is upper left 0:13 0.000000 0:13 0.000000 0:13 0.000000 -0:14 Sequence -0:14 Sequence -0:14 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:14 Color: direct index for structure (temp 4-component vector of float) -0:14 'psout' (temp structure{temp 4-component vector of float Color}) -0:14 Constant: -0:14 0 (const int) -0:14 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point}) +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): 80001 -// Id's are bound by 27 +// 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" 20 + 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 "psout" - Name 20 "Color" - Name 24 "$Global" - MemberName 24($Global) 0 "also_not_the_entry_point" - Name 26 "" - Decorate 20(Color) Location 0 - MemberDecorate 24($Global) 0 Offset 0 - Decorate 24($Global) Block - Decorate 26 DescriptorSet 0 + 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: TypePointer Function 10(PS_OUTPUT) - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 15: 8(float) Constant 0 - 16: 9(fvec4) ConstantComposite 15 15 15 15 - 17: TypePointer Function 9(fvec4) - 19: TypePointer Output 9(fvec4) - 20(Color): 19(ptr) Variable Output - 24($Global): TypeStruct 13(int) - 25: TypePointer Uniform 24($Global) - 26: 25(ptr) Variable Uniform + 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 - 12(psout): 11(ptr) Variable Function - 18: 17(ptr) AccessChain 12(psout) 14 - Store 18 16 - 21: 17(ptr) AccessChain 12(psout) 14 - 22: 9(fvec4) Load 21 - Store 20(Color) 22 + 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-new/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.explicitDescriptorSet.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.explicitDescriptorSet.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.flatten.return.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flatten.return.frag.out index 39fbf0ef87..e47fe3ebf0 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.flatten.return.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.flatten.return.frag.out @@ -1,8 +1,8 @@ hlsl.flatten.return.frag -Shader version: 450 +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 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 @@ -14,53 +14,56 @@ gl_FragCoord origin is upper left 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 Definition: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Parameters: 0:? Sequence -0:17 Sequence -0:17 Sequence -0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:17 color: direct index for structure (temp 4-component vector of float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 0 (const int) -0:17 move second child to first child (temp float) -0:? 'other_struct_member1' (layout(location=1 ) out float) -0:17 other_struct_member1: direct index for structure (temp float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 1 (const int) -0:17 move second child to first child (temp float) -0:? 'other_struct_member2' (layout(location=2 ) out float) -0:17 other_struct_member2: direct index for structure (temp float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 2 (const int) -0:17 move second child to first child (temp float) -0:? 'other_struct_member3' (layout(location=3 ) out float) -0:17 other_struct_member3: direct index for structure (temp float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 3 (const int) -0:17 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'other_struct_member1' (layout(location=1 ) out float) -0:? 'other_struct_member2' (layout(location=2 ) out float) -0:? 'other_struct_member3' (layout(location=3 ) out float) +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: 450 +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 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 @@ -72,54 +75,58 @@ gl_FragCoord origin is upper left 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 Definition: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Parameters: 0:? Sequence -0:17 Sequence -0:17 Sequence -0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:17 color: direct index for structure (temp 4-component vector of float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 0 (const int) -0:17 move second child to first child (temp float) -0:? 'other_struct_member1' (layout(location=1 ) out float) -0:17 other_struct_member1: direct index for structure (temp float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 1 (const int) -0:17 move second child to first child (temp float) -0:? 'other_struct_member2' (layout(location=2 ) out float) -0:17 other_struct_member2: direct index for structure (temp float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 2 (const int) -0:17 move second child to first child (temp float) -0:? 'other_struct_member3' (layout(location=3 ) out float) -0:17 other_struct_member3: direct index for structure (temp float) -0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) -0:17 Constant: -0:17 3 (const int) -0:17 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'other_struct_member1' (layout(location=1 ) out float) -0:? 'other_struct_member2' (layout(location=2 ) out float) -0:? 'other_struct_member3' (layout(location=3 ) out float) +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): 80001 -// Id's are bound by 45 +// 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" 24 31 36 40 + 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" @@ -127,61 +134,67 @@ gl_FragCoord origin is upper left MemberName 8(PS_OUTPUT) 2 "other_struct_member2" MemberName 8(PS_OUTPUT) 3 "other_struct_member3" Name 10 "Func1(" - Name 21 "flattenTemp" - Name 24 "color" - Name 31 "other_struct_member1" - Name 36 "other_struct_member2" - Name 40 "other_struct_member3" - Decorate 24(color) Location 0 - Decorate 31(other_struct_member1) Location 1 - Decorate 36(other_struct_member2) Location 2 - Decorate 40(other_struct_member3) Location 3 + 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) - 12: 6(float) Constant 1065353216 - 13: 7(fvec4) ConstantComposite 12 12 12 12 - 14: 6(float) Constant 1073741824 - 15: 6(float) Constant 1077936128 - 16: 6(float) Constant 1082130432 - 17:8(PS_OUTPUT) ConstantComposite 13 14 15 16 - 20: TypePointer Function 8(PS_OUTPUT) - 23: TypePointer Output 7(fvec4) - 24(color): 23(ptr) Variable Output - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 27: TypePointer Function 7(fvec4) - 30: TypePointer Output 6(float) -31(other_struct_member1): 30(ptr) Variable Output - 32: 25(int) Constant 1 - 33: TypePointer Function 6(float) -36(other_struct_member2): 30(ptr) Variable Output - 37: 25(int) Constant 2 -40(other_struct_member3): 30(ptr) Variable Output - 41: 25(int) Constant 3 + 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 - 21(flattenTemp): 20(ptr) Variable Function - 22:8(PS_OUTPUT) FunctionCall 10(Func1() - Store 21(flattenTemp) 22 - 28: 27(ptr) AccessChain 21(flattenTemp) 26 - 29: 7(fvec4) Load 28 - Store 24(color) 29 - 34: 33(ptr) AccessChain 21(flattenTemp) 32 - 35: 6(float) Load 34 - Store 31(other_struct_member1) 35 - 38: 33(ptr) AccessChain 21(flattenTemp) 37 - 39: 6(float) Load 38 - Store 36(other_struct_member2) 39 - 42: 33(ptr) AccessChain 21(flattenTemp) 41 - 43: 6(float) Load 42 - Store 40(other_struct_member3) 43 + 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 17 + 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-new/Test/baseResults/hlsl.flattenOpaque.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.flattenOpaque.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.flattenOpaqueInit.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.flattenSubset.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.flattenSubset.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.flattenSubset2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.flattenSubset2.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.float1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.float1.frag.out index 641febd7bb..7862123138 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.float1.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.float1.frag.out @@ -1,71 +1,71 @@ hlsl.float1.frag -Shader version: 450 +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 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 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 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: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: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) +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: 450 +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 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 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 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: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: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) +0:? 'f1' ( global 1-component vector of float) +0:? 'scalar' ( global float) // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 27 Capability Shader @@ -73,6 +73,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.float4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.float4.frag.out index 27c9a5c6cf..cd741ed0c2 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.float4.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.float4.frag.out @@ -2,47 +2,47 @@ hlsl.float4.frag WARNING: 0:5: 'register' : ignoring shader_profile WARNING: 0:6: 'register' : ignoring shader_profile -Shader version: 450 +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 Definition: ShaderFunction(vf4; ( temp 4-component vector of float) 0:9 Function Parameters: -0:9 'input' (in 4-component vector of float) +0:9 'input' ( in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression -0:10 component-wise multiply (temp 4-component vector of float) -0:10 'input' (in 4-component vector of float) -0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:10 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{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:? '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: 450 +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 Definition: ShaderFunction(vf4; ( temp 4-component vector of float) 0:9 Function Parameters: -0:9 'input' (in 4-component vector of float) +0:9 'input' ( in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression -0:10 component-wise multiply (temp 4-component vector of float) -0:10 'input' (in 4-component vector of float) -0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) -0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:10 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{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:? '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): 80001 +// Generated by (magic number): 80007 // Id's are bound by 26 Capability Shader @@ -50,6 +50,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" @@ -62,7 +63,6 @@ gl_FragCoord origin is upper left Name 17 "" MemberDecorate 15($Global) 0 Offset 0 MemberDecorate 15($Global) 1 Offset 16 - MemberDecorate 15($Global) 1 BuiltIn FrontFacing MemberDecorate 15($Global) 2 Offset 20 MemberDecorate 15($Global) 3 Offset 32 MemberDecorate 15($Global) 4 Offset 48 diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.forLoop.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.forLoop.frag.out index 85b8fb272b..3e835f80d4 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.forLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.forLoop.frag.out @@ -1,75 +1,69 @@ hlsl.forLoop.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0: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' (layout(location=0 ) in 4-component vector of float) +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 +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' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 any ( temp bool) +0:5 NotEqual ( temp 4-component vector of bool) +0:5 'input' ( 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' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 any ( temp bool) +0:6 NotEqual ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) 0:6 Loop Body 0:? Sequence -0:6 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 Negate value (temp 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 any ( temp bool) +0:7 NotEqual ( temp 4-component vector of bool) +0:7 'input' ( in 4-component vector of float) +0:7 'input' ( in 4-component vector of float) 0:7 Loop Body 0:? Sequence -0:7 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 Negate value (temp 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +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 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' (layout(location=0 ) in 4-component vector of float) +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: @@ -80,11 +74,11 @@ gl_FragCoord origin is upper left 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 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' (layout(location=0 ) in 4-component vector of float) +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: @@ -92,109 +86,187 @@ gl_FragCoord origin is upper left 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 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 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 Test condition and select ( temp void) 0:11 Condition -0:11 Compare Equal (temp bool) -0:11 'ii' (temp int) +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: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) +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: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0: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' (layout(location=0 ) in 4-component vector of float) +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 +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' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 any ( temp bool) +0:5 NotEqual ( temp 4-component vector of bool) +0:5 'input' ( 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' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 any ( temp bool) +0:6 NotEqual ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) 0:6 Loop Body 0:? Sequence -0:6 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 Negate value (temp 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 any ( temp bool) +0:7 NotEqual ( temp 4-component vector of bool) +0:7 'input' ( in 4-component vector of float) +0:7 'input' ( in 4-component vector of float) 0:7 Loop Body 0:? Sequence -0:7 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 Negate value (temp 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 Branch: Return +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' (layout(location=0 ) in 4-component vector of float) +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 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' (layout(location=0 ) in 4-component vector of float) +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: @@ -205,11 +277,11 @@ gl_FragCoord origin is upper left 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 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' (layout(location=0 ) in 4-component vector of float) +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: @@ -217,217 +289,417 @@ gl_FragCoord origin is upper left 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 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 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 Test condition and select ( temp void) 0:11 Condition -0:11 Compare Equal (temp bool) -0:11 'ii' (temp int) +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: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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 114 +// 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" 13 43 + EntryPoint Fragment 4 "PixelShaderFunction" 176 179 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 13 "input" - Name 43 "@entryPointOutput" - Name 91 "ii" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 92 "ii" Name 111 "ii" - Decorate 13(input) Location 0 - Decorate 43(@entryPointOutput) Location 0 + 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 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12: TypePointer Input 11(fvec4) - 13(input): 12(ptr) Variable Input - 15: 10(float) Constant 1065353216 - 29: TypeBool - 30: TypeVector 29(bool) 4 - 42: TypePointer Output 11(fvec4) -43(@entryPointOutput): 42(ptr) Variable Output - 62: 10(float) Constant 1073741824 - 70: TypeInt 32 0 - 71: 70(int) Constant 0 - 72: TypePointer Input 10(float) - 89: TypeInt 32 1 - 90: TypePointer Function 89(int) - 92: 89(int) Constant 4294967295 - 99: 89(int) Constant 3 - 102: 89(int) Constant 2 - 108: 89(int) Constant 1 - 110: TypePointer Function 10(float) + 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 - 91(ii): 90(ptr) Variable Function - 111(ii): 110(ptr) Variable Function - Branch 6 - 6: Label - LoopMerge 8 9 None - Branch 7 - 7: Label - Branch 9 - 9: Label - Branch 6 - 8: Label - 14: 11(fvec4) Load 13(input) - 16: 11(fvec4) CompositeConstruct 15 15 15 15 - 17: 11(fvec4) FAdd 14 16 - Store 13(input) 17 - Branch 18 - 18: Label - LoopMerge 20 21 None - Branch 19 - 19: Label - Branch 21 - 21: Label - Branch 18 - 20: Label - Branch 22 - 22: Label - LoopMerge 24 25 None - Branch 26 - 26: Label - 27: 11(fvec4) Load 13(input) - 28: 11(fvec4) Load 13(input) - 31: 30(bvec4) FOrdNotEqual 27 28 - 32: 29(bool) Any 31 - BranchConditional 32 23 24 - 23: Label - Branch 25 - 25: Label - Branch 22 - 24: Label - Branch 33 - 33: Label - LoopMerge 35 36 None - Branch 37 - 37: Label - 38: 11(fvec4) Load 13(input) - 39: 11(fvec4) Load 13(input) - 40: 30(bvec4) FOrdNotEqual 38 39 - 41: 29(bool) Any 40 - BranchConditional 41 34 35 - 34: Label - 44: 11(fvec4) Load 13(input) - 45: 11(fvec4) FNegate 44 - Store 43(@entryPointOutput) 45 - Return - 36: Label - Branch 33 - 35: Label - 47: 11(fvec4) Load 13(input) - 48: 11(fvec4) CompositeConstruct 15 15 15 15 - 49: 11(fvec4) FSub 47 48 - Store 13(input) 49 - Branch 50 - 50: Label - LoopMerge 52 53 None - Branch 54 - 54: Label - 55: 11(fvec4) Load 13(input) - 56: 11(fvec4) Load 13(input) - 57: 30(bvec4) FOrdNotEqual 55 56 - 58: 29(bool) Any 57 - BranchConditional 58 51 52 - 51: Label - 59: 11(fvec4) Load 13(input) - 60: 11(fvec4) FNegate 59 - Store 43(@entryPointOutput) 60 - Return - 53: Label - 63: 11(fvec4) Load 13(input) - 64: 11(fvec4) CompositeConstruct 62 62 62 62 - 65: 11(fvec4) FAdd 63 64 - Store 13(input) 65 - Branch 50 - 52: Label - Branch 66 - 66: Label - LoopMerge 68 69 None - Branch 67 - 67: Label - 73: 72(ptr) AccessChain 13(input) 71 - 74: 10(float) Load 73 - 75: 29(bool) FOrdGreaterThan 74 62 - SelectionMerge 77 None - BranchConditional 75 76 77 - 76: Label - Branch 68 - 77: Label - Branch 69 - 69: Label - Branch 66 - 68: Label - Branch 79 - 79: Label - LoopMerge 81 82 None - Branch 80 - 80: Label - 83: 72(ptr) AccessChain 13(input) 71 - 84: 10(float) Load 83 - 85: 29(bool) FOrdGreaterThan 84 62 - SelectionMerge 87 None - BranchConditional 85 86 87 - 86: Label - Branch 82 - 87: Label - Branch 82 - 82: Label - Branch 79 - 81: Label - Store 91(ii) 92 - Branch 93 - 93: Label - LoopMerge 95 96 None - Branch 97 - 97: Label - 98: 89(int) Load 91(ii) - 100: 29(bool) SLessThan 98 99 - BranchConditional 100 94 95 - 94: Label - 101: 89(int) Load 91(ii) - 103: 29(bool) IEqual 101 102 - SelectionMerge 105 None - BranchConditional 103 104 105 - 104: Label - Branch 96 - 105: Label - Branch 96 - 96: Label - 107: 89(int) Load 91(ii) - 109: 89(int) IAdd 107 108 - Store 91(ii) 109 - Branch 93 - 95: Label - 112: 10(float) Load 111(ii) - 113: 10(float) FSub 112 15 - Store 111(ii) 113 + 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-new/Test/baseResults/hlsl.fraggeom.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.fraggeom.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.fraggeom.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.fraggeom.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.function.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.function.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.function.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.function.frag.out 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 index ee550d165c..be4606a2b2 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -1,82 +1,83 @@ hlsl.gather.array.dx10.frag -Shader version: 450 +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 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: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: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: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: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: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: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 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: @@ -84,125 +85,132 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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: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: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: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: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: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: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 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: @@ -210,217 +218,236 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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): 80001 -// Id's are bound by 117 +// 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" 99 103 + EntryPoint Fragment 4 "main" 107 111 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval20" - Name 12 "g_tTex2df4a" - Name 16 "g_sSamp" - Name 30 "txval21" - Name 33 "g_tTex2di4a" - Name 45 "txval22" - Name 48 "g_tTex2du4a" - Name 57 "txval40" - Name 60 "g_tTexcdf4a" - Name 67 "txval41" - Name 70 "g_tTexcdi4a" - Name 77 "txval42" - Name 80 "g_tTexcdu4a" - Name 90 "PS_OUTPUT" - MemberName 90(PS_OUTPUT) 0 "Color" - MemberName 90(PS_OUTPUT) 1 "Depth" - Name 92 "psout" - Name 99 "Color" - Name 103 "Depth" - Name 109 "g_tTex1df4a" - Name 110 "g_tTex1df4" - Name 113 "g_tTex1di4a" - Name 116 "g_tTex1du4a" - Decorate 12(g_tTex2df4a) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 33(g_tTex2di4a) DescriptorSet 0 - Decorate 48(g_tTex2du4a) DescriptorSet 0 - Decorate 60(g_tTexcdf4a) DescriptorSet 0 - Decorate 70(g_tTexcdi4a) DescriptorSet 0 - Decorate 80(g_tTexcdu4a) DescriptorSet 0 - Decorate 99(Color) Location 0 - Decorate 103(Depth) BuiltIn FragDepth - 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_tTex1di4a) DescriptorSet 0 - Decorate 116(g_tTex1du4a) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4a): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 3 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 6(float) Constant 1050253722 - 24: 20(fvec3) ConstantComposite 21 22 23 - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 28: TypeVector 25(int) 4 - 29: TypePointer Function 28(ivec4) - 31: TypeImage 25(int) 2D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex2di4a): 32(ptr) Variable UniformConstant - 36: TypeSampledImage 31 - 38: 6(float) Constant 1053609165 - 39: 6(float) Constant 1056964608 - 40: 20(fvec3) ConstantComposite 23 38 39 - 42: TypeInt 32 0 - 43: TypeVector 42(int) 4 - 44: TypePointer Function 43(ivec4) - 46: TypeImage 42(int) 2D array sampled format:Unknown - 47: TypePointer UniformConstant 46 - 48(g_tTex2du4a): 47(ptr) Variable UniformConstant - 51: TypeSampledImage 46 - 53: 6(float) Constant 1058642330 - 54: 6(float) Constant 1060320051 - 55: 20(fvec3) ConstantComposite 39 53 54 - 58: TypeImage 6(float) Cube array sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTexcdf4a): 59(ptr) Variable UniformConstant - 63: TypeSampledImage 58 - 65: 7(fvec4) ConstantComposite 21 22 23 38 - 68: TypeImage 25(int) Cube array sampled format:Unknown - 69: TypePointer UniformConstant 68 - 70(g_tTexcdi4a): 69(ptr) Variable UniformConstant - 73: TypeSampledImage 68 - 75: 7(fvec4) ConstantComposite 38 39 53 54 - 78: TypeImage 42(int) Cube array sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTexcdu4a): 79(ptr) Variable UniformConstant - 83: TypeSampledImage 78 - 85: 6(float) Constant 1061997773 - 86: 6(float) Constant 1063675494 - 87: 6(float) Constant 1065353216 - 88: 7(fvec4) ConstantComposite 54 85 86 87 - 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 91: TypePointer Function 90(PS_OUTPUT) - 93: 7(fvec4) ConstantComposite 87 87 87 87 - 95: 25(int) Constant 1 - 96: TypePointer Function 6(float) - 98: TypePointer Output 7(fvec4) - 99(Color): 98(ptr) Variable Output - 102: TypePointer Output 6(float) - 103(Depth): 102(ptr) Variable Output - 107: TypeImage 6(float) 1D array sampled format:Unknown - 108: TypePointer UniformConstant 107 -109(g_tTex1df4a): 108(ptr) Variable UniformConstant - 110(g_tTex1df4): 108(ptr) Variable UniformConstant - 111: TypeImage 25(int) 1D array sampled format:Unknown - 112: TypePointer UniformConstant 111 -113(g_tTex1di4a): 112(ptr) Variable UniformConstant - 114: TypeImage 42(int) 1D array sampled format:Unknown + 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_tTex1du4a): 115(ptr) Variable UniformConstant +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 - 9(txval20): 8(ptr) Variable Function - 30(txval21): 29(ptr) Variable Function - 45(txval22): 44(ptr) Variable Function - 57(txval40): 8(ptr) Variable Function - 67(txval41): 29(ptr) Variable Function - 77(txval42): 44(ptr) Variable Function - 92(psout): 91(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4a) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 27: 7(fvec4) ImageGather 19 24 26 - Store 9(txval20) 27 - 34: 31 Load 33(g_tTex2di4a) - 35: 14 Load 16(g_sSamp) - 37: 36 SampledImage 34 35 - 41: 28(ivec4) ImageGather 37 40 26 - Store 30(txval21) 41 - 49: 46 Load 48(g_tTex2du4a) - 50: 14 Load 16(g_sSamp) - 52: 51 SampledImage 49 50 - 56: 43(ivec4) ImageGather 52 55 26 - Store 45(txval22) 56 - 61: 58 Load 60(g_tTexcdf4a) - 62: 14 Load 16(g_sSamp) - 64: 63 SampledImage 61 62 - 66: 7(fvec4) ImageGather 64 65 26 - Store 57(txval40) 66 - 71: 68 Load 70(g_tTexcdi4a) - 72: 14 Load 16(g_sSamp) - 74: 73 SampledImage 71 72 - 76: 28(ivec4) ImageGather 74 75 26 - Store 67(txval41) 76 - 81: 78 Load 80(g_tTexcdu4a) - 82: 14 Load 16(g_sSamp) - 84: 83 SampledImage 81 82 - 89: 43(ivec4) ImageGather 84 88 26 - Store 77(txval42) 89 - 94: 8(ptr) AccessChain 92(psout) 26 - Store 94 93 - 97: 96(ptr) AccessChain 92(psout) 95 - Store 97 87 - 100: 8(ptr) AccessChain 92(psout) 26 - 101: 7(fvec4) Load 100 - Store 99(Color) 101 - 104: 96(ptr) AccessChain 92(psout) 95 - 105: 6(float) Load 104 - Store 103(Depth) 105 +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 index 86e106ca05..8182ddebbf 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -1,76 +1,77 @@ hlsl.gather.basic.dx10.frag -Shader version: 450 +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 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: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: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: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: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: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: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 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: @@ -78,123 +79,130 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:47 Sequence -0:47 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:47 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:47 Depth: direct index for structure (temp float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:47 Constant: -0:47 1 (const int) -0:47 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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_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: 450 +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 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: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: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: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: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: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: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 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: @@ -202,239 +210,258 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:47 Sequence -0:47 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:47 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:47 Depth: direct index for structure (temp float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:47 Constant: -0:47 1 (const int) -0:47 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 128 +// 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" 100 104 + EntryPoint Fragment 4 "main" 108 112 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval20" - Name 12 "g_tTex2df4" - Name 16 "g_sSamp" - Name 29 "txval21" - Name 32 "g_tTex2di4" - Name 44 "txval22" - Name 47 "g_tTex2du4" - Name 56 "txval40" - Name 59 "g_tTexcdf4" - Name 67 "txval41" - Name 70 "g_tTexcdi4" - Name 77 "txval42" - Name 80 "g_tTexcdu4" - Name 90 "PS_OUTPUT" - MemberName 90(PS_OUTPUT) 0 "Color" - MemberName 90(PS_OUTPUT) 1 "Depth" - Name 92 "psout" - Name 100 "Color" - Name 104 "Depth" - Name 108 "g_sSamp2d" - Name 111 "g_tTex1df4a" - Name 112 "g_tTex1df4" - Name 115 "g_tTex1di4" - Name 118 "g_tTex1du4" - Name 121 "g_tTex3df4" - Name 124 "g_tTex3di4" - Name 127 "g_tTex3du4" - Decorate 12(g_tTex2df4) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex2di4) DescriptorSet 0 - Decorate 47(g_tTex2du4) DescriptorSet 0 - Decorate 59(g_tTexcdf4) DescriptorSet 0 - Decorate 70(g_tTexcdi4) DescriptorSet 0 - Decorate 80(g_tTexcdu4) DescriptorSet 0 - Decorate 100(Color) Location 0 - Decorate 104(Depth) BuiltIn FragDepth - Decorate 108(g_sSamp2d) DescriptorSet 0 - Decorate 111(g_tTex1df4a) DescriptorSet 0 - Decorate 111(g_tTex1df4a) Binding 1 - Decorate 112(g_tTex1df4) DescriptorSet 0 - Decorate 112(g_tTex1df4) Binding 0 - Decorate 115(g_tTex1di4) DescriptorSet 0 - Decorate 118(g_tTex1du4) DescriptorSet 0 - Decorate 121(g_tTex3df4) DescriptorSet 0 - Decorate 124(g_tTex3di4) DescriptorSet 0 - Decorate 127(g_tTex3du4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypeVector 24(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 24(int) 2D sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex2di4): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 37: 6(float) Constant 1050253722 - 38: 6(float) Constant 1053609165 - 39: 20(fvec2) ConstantComposite 37 38 - 41: TypeInt 32 0 - 42: TypeVector 41(int) 4 - 43: TypePointer Function 42(ivec4) - 45: TypeImage 41(int) 2D sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2du4): 46(ptr) Variable UniformConstant - 50: TypeSampledImage 45 - 52: 6(float) Constant 1056964608 - 53: 6(float) Constant 1058642330 - 54: 20(fvec2) ConstantComposite 52 53 - 57: TypeImage 6(float) Cube sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTexcdf4): 58(ptr) Variable UniformConstant - 62: TypeSampledImage 57 - 64: TypeVector 6(float) 3 - 65: 64(fvec3) ConstantComposite 21 22 37 - 68: TypeImage 24(int) Cube sampled format:Unknown - 69: TypePointer UniformConstant 68 - 70(g_tTexcdi4): 69(ptr) Variable UniformConstant - 73: TypeSampledImage 68 - 75: 64(fvec3) ConstantComposite 38 52 53 - 78: TypeImage 41(int) Cube sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTexcdu4): 79(ptr) Variable UniformConstant - 83: TypeSampledImage 78 - 85: 6(float) Constant 1060320051 - 86: 6(float) Constant 1061997773 - 87: 6(float) Constant 1063675494 - 88: 64(fvec3) ConstantComposite 85 86 87 - 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 91: TypePointer Function 90(PS_OUTPUT) - 93: 6(float) Constant 1065353216 - 94: 7(fvec4) ConstantComposite 93 93 93 93 - 96: 24(int) Constant 1 - 97: TypePointer Function 6(float) - 99: TypePointer Output 7(fvec4) - 100(Color): 99(ptr) Variable Output - 103: TypePointer Output 6(float) - 104(Depth): 103(ptr) Variable Output - 108(g_sSamp2d): 15(ptr) Variable UniformConstant - 109: TypeImage 6(float) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 -111(g_tTex1df4a): 110(ptr) Variable UniformConstant - 112(g_tTex1df4): 110(ptr) Variable UniformConstant - 113: TypeImage 24(int) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1di4): 114(ptr) Variable UniformConstant - 116: TypeImage 41(int) 1D sampled format:Unknown + 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_tTex1du4): 117(ptr) Variable UniformConstant - 119: TypeImage 6(float) 3D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex3df4): 120(ptr) Variable UniformConstant - 122: TypeImage 24(int) 3D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex3di4): 123(ptr) Variable UniformConstant - 125: TypeImage 41(int) 3D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex3du4): 126(ptr) Variable UniformConstant +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 - 9(txval20): 8(ptr) Variable Function - 29(txval21): 28(ptr) Variable Function - 44(txval22): 43(ptr) Variable Function - 56(txval40): 8(ptr) Variable Function - 67(txval41): 28(ptr) Variable Function - 77(txval42): 43(ptr) Variable Function - 92(psout): 91(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 26: 7(fvec4) ImageGather 19 23 25 - Store 9(txval20) 26 - 33: 30 Load 32(g_tTex2di4) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 40: 27(ivec4) ImageGather 36 39 25 - Store 29(txval21) 40 - 48: 45 Load 47(g_tTex2du4) - 49: 14 Load 16(g_sSamp) - 51: 50 SampledImage 48 49 - 55: 42(ivec4) ImageGather 51 54 25 - Store 44(txval22) 55 - 60: 57 Load 59(g_tTexcdf4) - 61: 14 Load 16(g_sSamp) - 63: 62 SampledImage 60 61 - 66: 7(fvec4) ImageGather 63 65 25 - Store 56(txval40) 66 - 71: 68 Load 70(g_tTexcdi4) - 72: 14 Load 16(g_sSamp) - 74: 73 SampledImage 71 72 - 76: 27(ivec4) ImageGather 74 75 25 - Store 67(txval41) 76 - 81: 78 Load 80(g_tTexcdu4) - 82: 14 Load 16(g_sSamp) - 84: 83 SampledImage 81 82 - 89: 42(ivec4) ImageGather 84 88 25 - Store 77(txval42) 89 - 95: 8(ptr) AccessChain 92(psout) 25 - Store 95 94 - 98: 97(ptr) AccessChain 92(psout) 96 - Store 98 93 - 101: 8(ptr) AccessChain 92(psout) 25 - 102: 7(fvec4) Load 101 - Store 100(Color) 102 - 105: 97(ptr) AccessChain 92(psout) 96 - 106: 6(float) Load 105 - Store 104(Depth) 106 +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 index a8936753d3..fe5611495b 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -1,75 +1,75 @@ hlsl.gather.basic.dx10.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence -0:33 move second child to first child (temp 4-component vector of float) -0:33 'txval20' (temp 4-component vector of float) -0:33 textureGather (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: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: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: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: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: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: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 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: @@ -77,108 +77,111 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Sequence -0:45 Sequence -0:45 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:45 Pos: direct index for structure (temp 4-component vector of float) -0:45 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:45 Constant: -0:45 0 (const int) -0:45 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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_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: 450 +Shader version: 500 0:? Sequence -0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence -0:33 move second child to first child (temp 4-component vector of float) -0:33 'txval20' (temp 4-component vector of float) -0:33 textureGather (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: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: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: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: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: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: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 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: @@ -186,212 +189,223 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Sequence -0:45 Sequence -0:45 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:45 Pos: direct index for structure (temp 4-component vector of float) -0:45 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:45 Constant: -0:45 0 (const int) -0:45 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 121 +// 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" 97 + EntryPoint Vertex 4 "main" 103 + Source HLSL 500 Name 4 "main" - Name 9 "txval20" - Name 12 "g_tTex2df4" - Name 16 "g_sSamp" - Name 29 "txval21" - Name 32 "g_tTex2di4" - Name 44 "txval22" - Name 47 "g_tTex2du4" - Name 56 "txval40" - Name 59 "g_tTexcdf4" - Name 67 "txval41" - Name 70 "g_tTexcdi4" - Name 77 "txval42" - Name 80 "g_tTexcdu4" - Name 90 "VS_OUTPUT" - MemberName 90(VS_OUTPUT) 0 "Pos" - Name 92 "vsout" - Name 97 "Pos" - Name 101 "g_sSamp2d" - Name 104 "g_tTex1df4a" - Name 105 "g_tTex1df4" - Name 108 "g_tTex1di4" - Name 111 "g_tTex1du4" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" - Decorate 12(g_tTex2df4) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex2di4) DescriptorSet 0 - Decorate 47(g_tTex2du4) DescriptorSet 0 - Decorate 59(g_tTexcdf4) DescriptorSet 0 - Decorate 70(g_tTexcdi4) DescriptorSet 0 - Decorate 80(g_tTexcdu4) DescriptorSet 0 - Decorate 97(Pos) BuiltIn Position - Decorate 101(g_sSamp2d) DescriptorSet 0 - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 - Decorate 105(g_tTex1df4) DescriptorSet 0 - Decorate 105(g_tTex1df4) Binding 0 - Decorate 108(g_tTex1di4) DescriptorSet 0 - Decorate 111(g_tTex1du4) DescriptorSet 0 - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypeVector 24(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 24(int) 2D sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex2di4): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 37: 6(float) Constant 1050253722 - 38: 6(float) Constant 1053609165 - 39: 20(fvec2) ConstantComposite 37 38 - 41: TypeInt 32 0 - 42: TypeVector 41(int) 4 - 43: TypePointer Function 42(ivec4) - 45: TypeImage 41(int) 2D sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2du4): 46(ptr) Variable UniformConstant - 50: TypeSampledImage 45 - 52: 6(float) Constant 1056964608 - 53: 6(float) Constant 1058642330 - 54: 20(fvec2) ConstantComposite 52 53 - 57: TypeImage 6(float) Cube sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTexcdf4): 58(ptr) Variable UniformConstant - 62: TypeSampledImage 57 - 64: TypeVector 6(float) 3 - 65: 64(fvec3) ConstantComposite 21 22 37 - 68: TypeImage 24(int) Cube sampled format:Unknown - 69: TypePointer UniformConstant 68 - 70(g_tTexcdi4): 69(ptr) Variable UniformConstant - 73: TypeSampledImage 68 - 75: 64(fvec3) ConstantComposite 38 52 53 - 78: TypeImage 41(int) Cube sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTexcdu4): 79(ptr) Variable UniformConstant - 83: TypeSampledImage 78 - 85: 6(float) Constant 1060320051 - 86: 6(float) Constant 1061997773 - 87: 6(float) Constant 1063675494 - 88: 64(fvec3) ConstantComposite 85 86 87 - 90(VS_OUTPUT): TypeStruct 7(fvec4) - 91: TypePointer Function 90(VS_OUTPUT) - 93: 6(float) Constant 0 - 94: 7(fvec4) ConstantComposite 93 93 93 93 - 96: TypePointer Output 7(fvec4) - 97(Pos): 96(ptr) Variable Output - 101(g_sSamp2d): 15(ptr) Variable UniformConstant - 102: TypeImage 6(float) 1D sampled format:Unknown - 103: TypePointer UniformConstant 102 -104(g_tTex1df4a): 103(ptr) Variable UniformConstant - 105(g_tTex1df4): 103(ptr) Variable UniformConstant - 106: TypeImage 24(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1di4): 107(ptr) Variable UniformConstant - 109: TypeImage 41(int) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex1du4): 110(ptr) Variable UniformConstant - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 24(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 41(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 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 - 9(txval20): 8(ptr) Variable Function - 29(txval21): 28(ptr) Variable Function - 44(txval22): 43(ptr) Variable Function - 56(txval40): 8(ptr) Variable Function - 67(txval41): 28(ptr) Variable Function - 77(txval42): 43(ptr) Variable Function - 92(vsout): 91(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 26: 7(fvec4) ImageGather 19 23 25 - Store 9(txval20) 26 - 33: 30 Load 32(g_tTex2di4) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 40: 27(ivec4) ImageGather 36 39 25 - Store 29(txval21) 40 - 48: 45 Load 47(g_tTex2du4) - 49: 14 Load 16(g_sSamp) - 51: 50 SampledImage 48 49 - 55: 42(ivec4) ImageGather 51 54 25 - Store 44(txval22) 55 - 60: 57 Load 59(g_tTexcdf4) - 61: 14 Load 16(g_sSamp) - 63: 62 SampledImage 60 61 - 66: 7(fvec4) ImageGather 63 65 25 - Store 56(txval40) 66 - 71: 68 Load 70(g_tTexcdi4) - 72: 14 Load 16(g_sSamp) - 74: 73 SampledImage 71 72 - 76: 27(ivec4) ImageGather 74 75 25 - Store 67(txval41) 76 - 81: 78 Load 80(g_tTexcdu4) - 82: 14 Load 16(g_sSamp) - 84: 83 SampledImage 81 82 - 89: 42(ivec4) ImageGather 84 88 25 - Store 77(txval42) 89 - 95: 8(ptr) AccessChain 92(vsout) 25 - Store 95 94 - 98: 8(ptr) AccessChain 92(vsout) 25 - 99: 7(fvec4) Load 98 - Store 97(Pos) 99 + 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 index 5b48bf323b..ae816ddd82 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.gather.offset.dx10.frag -Shader version: 450 +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 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: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 @@ -19,12 +20,12 @@ gl_FragCoord origin is upper left 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: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 @@ -32,21 +33,21 @@ gl_FragCoord origin is upper left 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: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 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: @@ -54,63 +55,70 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:43 Sequence -0:43 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 0 (const int) -0:43 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 1 (const int) -0:43 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +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 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: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 @@ -118,12 +126,12 @@ gl_FragCoord origin is upper left 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: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 @@ -131,21 +139,21 @@ gl_FragCoord origin is upper left 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: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 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: @@ -153,209 +161,228 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:43 Sequence -0:43 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 0 (const int) -0:43 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:43 Constant: -0:43 1 (const int) -0:43 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 107 +// 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" 71 75 + EntryPoint Fragment 4 "main" 79 83 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval20" - Name 12 "g_tTex2df4" - Name 16 "g_sSamp" - Name 32 "txval21" - Name 35 "g_tTex2di4" - Name 48 "txval22" - Name 51 "g_tTex2du4" - Name 62 "PS_OUTPUT" - MemberName 62(PS_OUTPUT) 0 "Color" - MemberName 62(PS_OUTPUT) 1 "Depth" - Name 64 "psout" - Name 71 "Color" - Name 75 "Depth" - Name 81 "g_tTex1df4a" - Name 82 "g_tTex1df4" - Name 85 "g_tTex1di4" - Name 88 "g_tTex1du4" - Name 91 "g_tTex3df4" - Name 94 "g_tTex3di4" - Name 97 "g_tTex3du4" - Name 100 "g_tTexcdf4" - Name 103 "g_tTexcdi4" - Name 106 "g_tTexcdu4" - Decorate 12(g_tTex2df4) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 35(g_tTex2di4) DescriptorSet 0 - Decorate 51(g_tTex2du4) DescriptorSet 0 - Decorate 71(Color) Location 0 - Decorate 75(Depth) BuiltIn FragDepth - Decorate 81(g_tTex1df4a) DescriptorSet 0 - Decorate 81(g_tTex1df4a) Binding 1 - Decorate 82(g_tTex1df4) DescriptorSet 0 - Decorate 82(g_tTex1df4) Binding 0 - Decorate 85(g_tTex1di4) DescriptorSet 0 - Decorate 88(g_tTex1du4) DescriptorSet 0 - Decorate 91(g_tTex3df4) DescriptorSet 0 - Decorate 94(g_tTex3di4) DescriptorSet 0 - Decorate 97(g_tTex3du4) DescriptorSet 0 - Decorate 100(g_tTexcdf4) DescriptorSet 0 - Decorate 103(g_tTexcdi4) DescriptorSet 0 - Decorate 106(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: TypeInt 32 1 - 25: TypeVector 24(int) 2 - 26: 24(int) Constant 1 - 27: 24(int) Constant 0 - 28: 25(ivec2) ConstantComposite 26 27 - 30: TypeVector 24(int) 4 - 31: TypePointer Function 30(ivec4) - 33: TypeImage 24(int) 2D sampled format:Unknown - 34: TypePointer UniformConstant 33 - 35(g_tTex2di4): 34(ptr) Variable UniformConstant - 38: TypeSampledImage 33 - 40: 6(float) Constant 1050253722 - 41: 6(float) Constant 1053609165 - 42: 20(fvec2) ConstantComposite 40 41 - 43: 25(ivec2) ConstantComposite 26 26 - 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: 20(fvec2) ConstantComposite 56 57 - 59: 24(int) Constant 4294967295 - 60: 25(ivec2) ConstantComposite 26 59 - 62(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 63: TypePointer Function 62(PS_OUTPUT) - 65: 6(float) Constant 1065353216 - 66: 7(fvec4) ConstantComposite 65 65 65 65 - 68: TypePointer Function 6(float) - 70: TypePointer Output 7(fvec4) - 71(Color): 70(ptr) Variable Output - 74: TypePointer Output 6(float) - 75(Depth): 74(ptr) Variable Output - 79: TypeImage 6(float) 1D sampled format:Unknown - 80: TypePointer UniformConstant 79 - 81(g_tTex1df4a): 80(ptr) Variable UniformConstant - 82(g_tTex1df4): 80(ptr) Variable UniformConstant - 83: TypeImage 24(int) 1D sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTex1di4): 84(ptr) Variable UniformConstant - 86: TypeImage 45(int) 1D sampled format:Unknown + 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_tTex1du4): 87(ptr) Variable UniformConstant - 89: TypeImage 6(float) 3D sampled format:Unknown - 90: TypePointer UniformConstant 89 - 91(g_tTex3df4): 90(ptr) Variable UniformConstant - 92: TypeImage 24(int) 3D sampled format:Unknown - 93: TypePointer UniformConstant 92 - 94(g_tTex3di4): 93(ptr) Variable UniformConstant - 95: TypeImage 45(int) 3D sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTex3du4): 96(ptr) Variable UniformConstant - 98: TypeImage 6(float) Cube sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTexcdf4): 99(ptr) Variable UniformConstant - 101: TypeImage 24(int) Cube sampled format:Unknown - 102: TypePointer UniformConstant 101 - 103(g_tTexcdi4): 102(ptr) Variable UniformConstant - 104: TypeImage 45(int) Cube sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTexcdu4): 105(ptr) Variable UniformConstant + 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 - 9(txval20): 8(ptr) Variable Function - 32(txval21): 31(ptr) Variable Function - 48(txval22): 47(ptr) Variable Function - 64(psout): 63(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 29: 7(fvec4) ImageGather 19 23 27 ConstOffset 28 - Store 9(txval20) 29 - 36: 33 Load 35(g_tTex2di4) - 37: 14 Load 16(g_sSamp) - 39: 38 SampledImage 36 37 - 44: 30(ivec4) ImageGather 39 42 27 ConstOffset 43 - Store 32(txval21) 44 - 52: 49 Load 51(g_tTex2du4) - 53: 14 Load 16(g_sSamp) - 55: 54 SampledImage 52 53 - 61: 46(ivec4) ImageGather 55 58 27 ConstOffset 60 - Store 48(txval22) 61 - 67: 8(ptr) AccessChain 64(psout) 27 - Store 67 66 - 69: 68(ptr) AccessChain 64(psout) 26 - Store 69 65 - 72: 8(ptr) AccessChain 64(psout) 27 - 73: 7(fvec4) Load 72 - Store 71(Color) 73 - 76: 68(ptr) AccessChain 64(psout) 26 - 77: 6(float) Load 76 - Store 75(Depth) 77 + 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 index a7589cd9b0..8805232137 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.gather.offsetarray.dx10.frag -Shader version: 450 +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 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: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 @@ -20,12 +21,12 @@ gl_FragCoord origin is upper left 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: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 @@ -34,12 +35,12 @@ gl_FragCoord origin is upper left 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: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 @@ -47,9 +48,9 @@ gl_FragCoord origin is upper left 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 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: @@ -57,57 +58,64 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:35 Sequence -0:35 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:35 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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: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 @@ -116,12 +124,12 @@ gl_FragCoord origin is upper left 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: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 @@ -130,12 +138,12 @@ gl_FragCoord origin is upper left 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: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 @@ -143,9 +151,9 @@ gl_FragCoord origin is upper left 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 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: @@ -153,174 +161,193 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:35 Sequence -0:35 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:35 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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): 80001 -// Id's are bound by 90 +// 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" 72 76 + EntryPoint Fragment 4 "main" 80 84 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval20" - Name 12 "g_tTex2df4" - Name 16 "g_sSamp" - Name 33 "txval21" - Name 36 "g_tTex2di4" - Name 48 "txval22" - Name 51 "g_tTex2du4" - Name 63 "PS_OUTPUT" - MemberName 63(PS_OUTPUT) 0 "Color" - MemberName 63(PS_OUTPUT) 1 "Depth" - Name 65 "psout" - Name 72 "Color" - Name 76 "Depth" - Name 82 "g_tTex1df4a" - Name 83 "g_tTex1df4" - Name 86 "g_tTex1di4" - Name 89 "g_tTex1du4" - Decorate 12(g_tTex2df4) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 36(g_tTex2di4) DescriptorSet 0 - Decorate 51(g_tTex2du4) DescriptorSet 0 - Decorate 72(Color) Location 0 - Decorate 76(Depth) BuiltIn FragDepth - Decorate 82(g_tTex1df4a) DescriptorSet 0 - Decorate 82(g_tTex1df4a) Binding 1 - Decorate 83(g_tTex1df4) DescriptorSet 0 - Decorate 83(g_tTex1df4) Binding 0 - Decorate 86(g_tTex1di4) DescriptorSet 0 - Decorate 89(g_tTex1du4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 3 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 6(float) Constant 1050253722 - 24: 20(fvec3) ConstantComposite 21 22 23 - 25: TypeInt 32 1 - 26: TypeVector 25(int) 2 - 27: 25(int) Constant 1 - 28: 25(int) Constant 0 - 29: 26(ivec2) ConstantComposite 27 28 - 31: TypeVector 25(int) 4 - 32: TypePointer Function 31(ivec4) - 34: TypeImage 25(int) 2D array sampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(g_tTex2di4): 35(ptr) Variable UniformConstant - 39: TypeSampledImage 34 - 41: 6(float) Constant 1053609165 - 42: 20(fvec3) ConstantComposite 23 41 41 - 43: 26(ivec2) ConstantComposite 27 27 - 45: TypeInt 32 0 - 46: TypeVector 45(int) 4 - 47: TypePointer Function 46(ivec4) - 49: TypeImage 45(int) 2D array sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2du4): 50(ptr) Variable UniformConstant - 54: TypeSampledImage 49 - 56: 6(float) Constant 1056964608 - 57: 6(float) Constant 1058642330 - 58: 6(float) Constant 1060320051 - 59: 20(fvec3) ConstantComposite 56 57 58 - 60: 25(int) Constant 4294967295 - 61: 26(ivec2) ConstantComposite 27 60 - 63(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 64: TypePointer Function 63(PS_OUTPUT) - 66: 6(float) Constant 1065353216 - 67: 7(fvec4) ConstantComposite 66 66 66 66 - 69: TypePointer Function 6(float) - 71: TypePointer Output 7(fvec4) - 72(Color): 71(ptr) Variable Output - 75: TypePointer Output 6(float) - 76(Depth): 75(ptr) Variable Output - 80: TypeImage 6(float) 1D array sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex1df4a): 81(ptr) Variable UniformConstant - 83(g_tTex1df4): 81(ptr) Variable UniformConstant - 84: TypeImage 25(int) 1D array sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(g_tTex1di4): 85(ptr) Variable UniformConstant - 87: TypeImage 45(int) 1D array sampled format:Unknown + 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_tTex1du4): 88(ptr) Variable UniformConstant + 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 - 9(txval20): 8(ptr) Variable Function - 33(txval21): 32(ptr) Variable Function - 48(txval22): 47(ptr) Variable Function - 65(psout): 64(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 30: 7(fvec4) ImageGather 19 24 28 ConstOffset 29 - Store 9(txval20) 30 - 37: 34 Load 36(g_tTex2di4) - 38: 14 Load 16(g_sSamp) - 40: 39 SampledImage 37 38 - 44: 31(ivec4) ImageGather 40 42 28 ConstOffset 43 - Store 33(txval21) 44 - 52: 49 Load 51(g_tTex2du4) - 53: 14 Load 16(g_sSamp) - 55: 54 SampledImage 52 53 - 62: 46(ivec4) ImageGather 55 59 28 ConstOffset 61 - Store 48(txval22) 62 - 68: 8(ptr) AccessChain 65(psout) 28 - Store 68 67 - 70: 69(ptr) AccessChain 65(psout) 27 - Store 70 66 - 73: 8(ptr) AccessChain 65(psout) 28 - 74: 7(fvec4) Load 73 - Store 72(Color) 74 - 77: 69(ptr) AccessChain 65(psout) 27 - 78: 6(float) Load 77 - Store 76(Depth) 78 + 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 index b04a857336..35b0a003c8 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -1,325 +1,326 @@ hlsl.gatherRGBA.array.dx10.frag -Shader version: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 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 (layout(offset=16 ) uniform 3-component vector of float) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 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 (layout(offset=16 ) uniform 3-component vector of float) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 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 (layout(offset=16 ) uniform 3-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 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 (layout(offset=16 ) uniform 3-component vector of float) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 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 (layout(offset=16 ) uniform 3-component vector of float) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 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 (layout(offset=16 ) uniform 3-component vector of float) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 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 (layout(offset=16 ) uniform 3-component vector of float) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 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 (layout(offset=16 ) uniform 3-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 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 (layout(offset=16 ) uniform 3-component vector of float) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 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 (layout(offset=16 ) uniform 3-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 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 (layout(offset=16 ) uniform 3-component vector of float) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 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 (layout(offset=32 ) uniform 4-component vector of float) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 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 (layout(offset=32 ) uniform 4-component vector of float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 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 (layout(offset=32 ) uniform 4-component vector of float) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 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 (layout(offset=32 ) uniform 4-component vector of float) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 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 (layout(offset=32 ) uniform 4-component vector of float) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 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 (layout(offset=32 ) uniform 4-component vector of float) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 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 (layout(offset=32 ) uniform 4-component vector of float) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 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 (layout(offset=32 ) uniform 4-component vector of float) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 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 (layout(offset=32 ) uniform 4-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 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 (layout(offset=32 ) uniform 4-component vector of float) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 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 (layout(offset=32 ) uniform 4-component vector of float) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 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 (layout(offset=32 ) uniform 4-component vector of float) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 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 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: @@ -327,369 +328,376 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:70 Sequence -0:70 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 0 (const int) -0:70 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 1 (const int) -0:70 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? '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: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 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 (layout(offset=16 ) uniform 3-component vector of float) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 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 (layout(offset=16 ) uniform 3-component vector of float) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 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 (layout(offset=16 ) uniform 3-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 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 (layout(offset=16 ) uniform 3-component vector of float) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 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 (layout(offset=16 ) uniform 3-component vector of float) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 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 (layout(offset=16 ) uniform 3-component vector of float) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 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 (layout(offset=16 ) uniform 3-component vector of float) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 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 (layout(offset=16 ) uniform 3-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 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 (layout(offset=16 ) uniform 3-component vector of float) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 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 (layout(offset=16 ) uniform 3-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 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 (layout(offset=16 ) uniform 3-component vector of float) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 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 (layout(offset=32 ) uniform 4-component vector of float) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 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 (layout(offset=32 ) uniform 4-component vector of float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 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 (layout(offset=32 ) uniform 4-component vector of float) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 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 (layout(offset=32 ) uniform 4-component vector of float) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 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 (layout(offset=32 ) uniform 4-component vector of float) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 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 (layout(offset=32 ) uniform 4-component vector of float) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 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 (layout(offset=32 ) uniform 4-component vector of float) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 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 (layout(offset=32 ) uniform 4-component vector of float) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 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 (layout(offset=32 ) uniform 4-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 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 (layout(offset=32 ) uniform 4-component vector of float) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 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 (layout(offset=32 ) uniform 4-component vector of float) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 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 (layout(offset=32 ) uniform 4-component vector of float) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 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 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: @@ -697,396 +705,415 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:70 Sequence -0:70 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 0 (const int) -0:70 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 1 (const int) -0:70 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? '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): 80001 -// Id's are bound by 248 +// 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" 230 234 + EntryPoint Fragment 4 "main" 238 242 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval00" - Name 12 "g_tTex2df4a" - Name 16 "g_sSamp" - Name 22 "$Global" - MemberName 22($Global) 0 "c1" - MemberName 22($Global) 1 "c2" - MemberName 22($Global) 2 "c3" - MemberName 22($Global) 3 "c4" - Name 24 "" - Name 34 "txval01" - Name 37 "g_tTex2di4a" - Name 48 "txval02" - Name 51 "g_tTex2du4a" - Name 59 "txval10" - Name 67 "txval11" - Name 74 "txval12" - Name 81 "txval20" - Name 88 "txval21" - Name 95 "txval22" - Name 102 "txval30" - Name 110 "txval31" - Name 117 "txval32" - Name 124 "txval40" - Name 127 "g_tTexcdf4a" - Name 136 "txval41" - Name 139 "g_tTexcdi4a" - Name 147 "txval42" - Name 150 "g_tTexcdu4a" - Name 158 "txval50" - Name 165 "txval51" - Name 172 "txval52" - Name 179 "txval60" - Name 186 "txval61" - Name 193 "txval62" - Name 200 "txval70" - Name 207 "txval71" - Name 214 "txval72" - Name 221 "PS_OUTPUT" - MemberName 221(PS_OUTPUT) 0 "Color" - MemberName 221(PS_OUTPUT) 1 "Depth" - Name 223 "psout" - Name 230 "Color" - Name 234 "Depth" - Name 238 "g_sSamp2d" - Name 241 "g_tTex1df4a" - Name 244 "g_tTex1di4a" - Name 247 "g_tTex1du4a" - Decorate 12(g_tTex2df4a) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - MemberDecorate 22($Global) 0 Offset 0 - MemberDecorate 22($Global) 1 Offset 8 - MemberDecorate 22($Global) 2 Offset 16 - MemberDecorate 22($Global) 3 Offset 32 - Decorate 22($Global) Block - Decorate 24 DescriptorSet 0 - Decorate 37(g_tTex2di4a) DescriptorSet 0 - Decorate 51(g_tTex2du4a) DescriptorSet 0 - Decorate 127(g_tTexcdf4a) DescriptorSet 0 - Decorate 139(g_tTexcdi4a) DescriptorSet 0 - Decorate 150(g_tTexcdu4a) DescriptorSet 0 - Decorate 230(Color) Location 0 - Decorate 234(Depth) BuiltIn FragDepth - Decorate 238(g_sSamp2d) DescriptorSet 0 - Decorate 241(g_tTex1df4a) DescriptorSet 0 - Decorate 241(g_tTex1df4a) Binding 0 - Decorate 244(g_tTex1di4a) DescriptorSet 0 - Decorate 247(g_tTex1du4a) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4a): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: TypeVector 6(float) 3 - 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) - 23: TypePointer Uniform 22($Global) - 24: 23(ptr) Variable Uniform - 25: TypeInt 32 1 - 26: 25(int) Constant 2 - 27: TypePointer Uniform 21(fvec3) - 30: 25(int) Constant 0 - 32: TypeVector 25(int) 4 - 33: TypePointer Function 32(ivec4) - 35: TypeImage 25(int) 2D array sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex2di4a): 36(ptr) Variable UniformConstant - 40: TypeSampledImage 35 - 45: TypeInt 32 0 - 46: TypeVector 45(int) 4 - 47: TypePointer Function 46(ivec4) - 49: TypeImage 45(int) 2D array sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2du4a): 50(ptr) Variable UniformConstant - 54: TypeSampledImage 49 - 65: 25(int) Constant 1 - 108: 25(int) Constant 3 - 125: TypeImage 6(float) Cube array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTexcdf4a): 126(ptr) Variable UniformConstant - 130: TypeSampledImage 125 - 132: TypePointer Uniform 7(fvec4) - 137: TypeImage 25(int) Cube array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTexcdi4a): 138(ptr) Variable UniformConstant - 142: TypeSampledImage 137 - 148: TypeImage 45(int) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdu4a): 149(ptr) Variable UniformConstant - 153: TypeSampledImage 148 - 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 222: TypePointer Function 221(PS_OUTPUT) - 224: 6(float) Constant 1065353216 - 225: 7(fvec4) ConstantComposite 224 224 224 224 - 227: TypePointer Function 6(float) - 229: TypePointer Output 7(fvec4) - 230(Color): 229(ptr) Variable Output - 233: TypePointer Output 6(float) - 234(Depth): 233(ptr) Variable Output - 238(g_sSamp2d): 15(ptr) Variable UniformConstant - 239: TypeImage 6(float) 1D array sampled format:Unknown - 240: TypePointer UniformConstant 239 -241(g_tTex1df4a): 240(ptr) Variable UniformConstant - 242: TypeImage 25(int) 1D array sampled format:Unknown - 243: TypePointer UniformConstant 242 -244(g_tTex1di4a): 243(ptr) Variable UniformConstant - 245: TypeImage 45(int) 1D array sampled format:Unknown - 246: TypePointer UniformConstant 245 -247(g_tTex1du4a): 246(ptr) Variable UniformConstant + 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 - 9(txval00): 8(ptr) Variable Function - 34(txval01): 33(ptr) Variable Function - 48(txval02): 47(ptr) Variable Function - 59(txval10): 8(ptr) Variable Function - 67(txval11): 33(ptr) Variable Function - 74(txval12): 47(ptr) Variable Function - 81(txval20): 8(ptr) Variable Function - 88(txval21): 33(ptr) Variable Function - 95(txval22): 47(ptr) Variable Function - 102(txval30): 8(ptr) Variable Function - 110(txval31): 33(ptr) Variable Function - 117(txval32): 47(ptr) Variable Function - 124(txval40): 8(ptr) Variable Function - 136(txval41): 33(ptr) Variable Function - 147(txval42): 47(ptr) Variable Function - 158(txval50): 8(ptr) Variable Function - 165(txval51): 33(ptr) Variable Function - 172(txval52): 47(ptr) Variable Function - 179(txval60): 8(ptr) Variable Function - 186(txval61): 33(ptr) Variable Function - 193(txval62): 47(ptr) Variable Function - 200(txval70): 8(ptr) Variable Function - 207(txval71): 33(ptr) Variable Function - 214(txval72): 47(ptr) Variable Function - 223(psout): 222(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4a) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 28: 27(ptr) AccessChain 24 26 - 29: 21(fvec3) Load 28 - 31: 7(fvec4) ImageGather 19 29 30 - Store 9(txval00) 31 - 38: 35 Load 37(g_tTex2di4a) - 39: 14 Load 16(g_sSamp) - 41: 40 SampledImage 38 39 - 42: 27(ptr) AccessChain 24 26 - 43: 21(fvec3) Load 42 - 44: 32(ivec4) ImageGather 41 43 30 - Store 34(txval01) 44 - 52: 49 Load 51(g_tTex2du4a) - 53: 14 Load 16(g_sSamp) - 55: 54 SampledImage 52 53 - 56: 27(ptr) AccessChain 24 26 - 57: 21(fvec3) Load 56 - 58: 46(ivec4) ImageGather 55 57 30 - Store 48(txval02) 58 - 60: 10 Load 12(g_tTex2df4a) - 61: 14 Load 16(g_sSamp) - 62: 18 SampledImage 60 61 - 63: 27(ptr) AccessChain 24 26 - 64: 21(fvec3) Load 63 - 66: 7(fvec4) ImageGather 62 64 65 - Store 59(txval10) 66 - 68: 35 Load 37(g_tTex2di4a) - 69: 14 Load 16(g_sSamp) - 70: 40 SampledImage 68 69 - 71: 27(ptr) AccessChain 24 26 - 72: 21(fvec3) Load 71 - 73: 32(ivec4) ImageGather 70 72 65 - Store 67(txval11) 73 - 75: 49 Load 51(g_tTex2du4a) - 76: 14 Load 16(g_sSamp) - 77: 54 SampledImage 75 76 - 78: 27(ptr) AccessChain 24 26 - 79: 21(fvec3) Load 78 - 80: 46(ivec4) ImageGather 77 79 65 - Store 74(txval12) 80 - 82: 10 Load 12(g_tTex2df4a) - 83: 14 Load 16(g_sSamp) - 84: 18 SampledImage 82 83 - 85: 27(ptr) AccessChain 24 26 - 86: 21(fvec3) Load 85 - 87: 7(fvec4) ImageGather 84 86 26 - Store 81(txval20) 87 - 89: 35 Load 37(g_tTex2di4a) - 90: 14 Load 16(g_sSamp) - 91: 40 SampledImage 89 90 - 92: 27(ptr) AccessChain 24 26 - 93: 21(fvec3) Load 92 - 94: 32(ivec4) ImageGather 91 93 26 - Store 88(txval21) 94 - 96: 49 Load 51(g_tTex2du4a) - 97: 14 Load 16(g_sSamp) - 98: 54 SampledImage 96 97 - 99: 27(ptr) AccessChain 24 26 - 100: 21(fvec3) Load 99 - 101: 46(ivec4) ImageGather 98 100 26 - Store 95(txval22) 101 - 103: 10 Load 12(g_tTex2df4a) - 104: 14 Load 16(g_sSamp) - 105: 18 SampledImage 103 104 - 106: 27(ptr) AccessChain 24 26 - 107: 21(fvec3) Load 106 - 109: 7(fvec4) ImageGather 105 107 108 - Store 102(txval30) 109 - 111: 35 Load 37(g_tTex2di4a) - 112: 14 Load 16(g_sSamp) - 113: 40 SampledImage 111 112 - 114: 27(ptr) AccessChain 24 26 - 115: 21(fvec3) Load 114 - 116: 32(ivec4) ImageGather 113 115 108 - Store 110(txval31) 116 - 118: 49 Load 51(g_tTex2du4a) - 119: 14 Load 16(g_sSamp) - 120: 54 SampledImage 118 119 - 121: 27(ptr) AccessChain 24 26 - 122: 21(fvec3) Load 121 - 123: 46(ivec4) ImageGather 120 122 108 - Store 117(txval32) 123 - 128: 125 Load 127(g_tTexcdf4a) - 129: 14 Load 16(g_sSamp) - 131: 130 SampledImage 128 129 - 133: 132(ptr) AccessChain 24 108 - 134: 7(fvec4) Load 133 - 135: 7(fvec4) ImageGather 131 134 30 - Store 124(txval40) 135 - 140: 137 Load 139(g_tTexcdi4a) - 141: 14 Load 16(g_sSamp) - 143: 142 SampledImage 140 141 - 144: 132(ptr) AccessChain 24 108 - 145: 7(fvec4) Load 144 - 146: 32(ivec4) ImageGather 143 145 30 - Store 136(txval41) 146 - 151: 148 Load 150(g_tTexcdu4a) - 152: 14 Load 16(g_sSamp) - 154: 153 SampledImage 151 152 - 155: 132(ptr) AccessChain 24 108 - 156: 7(fvec4) Load 155 - 157: 46(ivec4) ImageGather 154 156 30 - Store 147(txval42) 157 - 159: 125 Load 127(g_tTexcdf4a) - 160: 14 Load 16(g_sSamp) - 161: 130 SampledImage 159 160 - 162: 132(ptr) AccessChain 24 108 - 163: 7(fvec4) Load 162 - 164: 7(fvec4) ImageGather 161 163 65 - Store 158(txval50) 164 - 166: 137 Load 139(g_tTexcdi4a) - 167: 14 Load 16(g_sSamp) - 168: 142 SampledImage 166 167 - 169: 132(ptr) AccessChain 24 108 - 170: 7(fvec4) Load 169 - 171: 32(ivec4) ImageGather 168 170 65 - Store 165(txval51) 171 - 173: 148 Load 150(g_tTexcdu4a) - 174: 14 Load 16(g_sSamp) - 175: 153 SampledImage 173 174 - 176: 132(ptr) AccessChain 24 108 - 177: 7(fvec4) Load 176 - 178: 46(ivec4) ImageGather 175 177 65 - Store 172(txval52) 178 - 180: 125 Load 127(g_tTexcdf4a) - 181: 14 Load 16(g_sSamp) - 182: 130 SampledImage 180 181 - 183: 132(ptr) AccessChain 24 108 - 184: 7(fvec4) Load 183 - 185: 7(fvec4) ImageGather 182 184 26 - Store 179(txval60) 185 - 187: 137 Load 139(g_tTexcdi4a) - 188: 14 Load 16(g_sSamp) - 189: 142 SampledImage 187 188 - 190: 132(ptr) AccessChain 24 108 - 191: 7(fvec4) Load 190 - 192: 32(ivec4) ImageGather 189 191 26 - Store 186(txval61) 192 - 194: 148 Load 150(g_tTexcdu4a) - 195: 14 Load 16(g_sSamp) - 196: 153 SampledImage 194 195 - 197: 132(ptr) AccessChain 24 108 - 198: 7(fvec4) Load 197 - 199: 46(ivec4) ImageGather 196 198 26 - Store 193(txval62) 199 - 201: 125 Load 127(g_tTexcdf4a) - 202: 14 Load 16(g_sSamp) - 203: 130 SampledImage 201 202 - 204: 132(ptr) AccessChain 24 108 - 205: 7(fvec4) Load 204 - 206: 7(fvec4) ImageGather 203 205 108 - Store 200(txval70) 206 - 208: 137 Load 139(g_tTexcdi4a) - 209: 14 Load 16(g_sSamp) - 210: 142 SampledImage 208 209 - 211: 132(ptr) AccessChain 24 108 - 212: 7(fvec4) Load 211 - 213: 32(ivec4) ImageGather 210 212 108 - Store 207(txval71) 213 - 215: 148 Load 150(g_tTexcdu4a) - 216: 14 Load 16(g_sSamp) - 217: 153 SampledImage 215 216 - 218: 132(ptr) AccessChain 24 108 - 219: 7(fvec4) Load 218 - 220: 46(ivec4) ImageGather 217 219 108 - Store 214(txval72) 220 - 226: 8(ptr) AccessChain 223(psout) 30 - Store 226 225 - 228: 227(ptr) AccessChain 223(psout) 65 - Store 228 224 - 231: 8(ptr) AccessChain 223(psout) 30 - 232: 7(fvec4) Load 231 - Store 230(Color) 232 - 235: 227(ptr) AccessChain 223(psout) 65 - 236: 6(float) Load 235 - Store 234(Depth) 236 +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 index d2fb0b1714..d0be6d5a2b 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -1,325 +1,326 @@ hlsl.gatherRGBA.basic.dx10.frag -Shader version: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of float) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 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 (layout(offset=8 ) uniform 2-component vector of float) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 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 (layout(offset=8 ) uniform 2-component vector of float) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 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 (layout(offset=8 ) uniform 2-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 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 (layout(offset=8 ) uniform 2-component vector of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 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 (layout(offset=8 ) uniform 2-component vector of float) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 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 (layout(offset=8 ) uniform 2-component vector of float) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 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 (layout(offset=8 ) uniform 2-component vector of float) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 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 (layout(offset=8 ) uniform 2-component vector of float) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 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 (layout(offset=8 ) uniform 2-component vector of float) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of float) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of float) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of float) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of float) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 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 (layout(offset=16 ) uniform 3-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 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 (layout(offset=16 ) uniform 3-component vector of float) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of float) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 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 (layout(offset=16 ) uniform 3-component vector of float) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 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 (layout(offset=16 ) uniform 3-component vector of float) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of float) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 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 (layout(offset=16 ) uniform 3-component vector of float) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of float) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of float) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 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 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: @@ -327,373 +328,380 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:76 Sequence -0:76 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:76 Color: direct index for structure (temp 4-component vector of float) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:76 Constant: -0:76 0 (const int) -0:76 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:76 Depth: direct index for structure (temp float) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:76 Constant: -0:76 1 (const int) -0:76 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? '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: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of float) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 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 (layout(offset=8 ) uniform 2-component vector of float) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 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 (layout(offset=8 ) uniform 2-component vector of float) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 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 (layout(offset=8 ) uniform 2-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 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 (layout(offset=8 ) uniform 2-component vector of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 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 (layout(offset=8 ) uniform 2-component vector of float) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 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 (layout(offset=8 ) uniform 2-component vector of float) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 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 (layout(offset=8 ) uniform 2-component vector of float) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 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 (layout(offset=8 ) uniform 2-component vector of float) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 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 (layout(offset=8 ) uniform 2-component vector of float) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of float) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of float) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of float) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of float) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 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 (layout(offset=16 ) uniform 3-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 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 (layout(offset=16 ) uniform 3-component vector of float) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of float) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 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 (layout(offset=16 ) uniform 3-component vector of float) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 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 (layout(offset=16 ) uniform 3-component vector of float) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of float) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 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 (layout(offset=16 ) uniform 3-component vector of float) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of float) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of float) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 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 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: @@ -701,418 +709,437 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:76 Sequence -0:76 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:76 Color: direct index for structure (temp 4-component vector of float) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:76 Constant: -0:76 0 (const int) -0:76 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:76 Depth: direct index for structure (temp float) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:76 Constant: -0:76 1 (const int) -0:76 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? '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): 80001 -// Id's are bound by 258 +// 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" 230 234 + EntryPoint Fragment 4 "main" 238 242 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval00" - Name 12 "g_tTex2df4" - Name 16 "g_sSamp" - Name 22 "$Global" - MemberName 22($Global) 0 "c1" - MemberName 22($Global) 1 "c2" - MemberName 22($Global) 2 "c3" - MemberName 22($Global) 3 "c4" - Name 24 "" - Name 34 "txval01" - Name 37 "g_tTex2di4" - Name 48 "txval02" - Name 51 "g_tTex2du4" - Name 59 "txval10" - Name 66 "txval11" - Name 73 "txval12" - Name 80 "txval20" - Name 88 "txval21" - Name 95 "txval22" - Name 102 "txval30" - Name 110 "txval31" - Name 117 "txval32" - Name 124 "txval40" - Name 127 "g_tTexcdf4" - Name 136 "txval41" - Name 139 "g_tTexcdi4" - Name 147 "txval42" - Name 150 "g_tTexcdu4" - Name 158 "txval50" - Name 165 "txval51" - Name 172 "txval52" - Name 179 "txval60" - Name 186 "txval61" - Name 193 "txval62" - Name 200 "txval70" - Name 207 "txval71" - Name 214 "txval72" - Name 221 "PS_OUTPUT" - MemberName 221(PS_OUTPUT) 0 "Color" - MemberName 221(PS_OUTPUT) 1 "Depth" - Name 223 "psout" - Name 230 "Color" - Name 234 "Depth" - Name 238 "g_sSamp2d" - Name 241 "g_tTex1df4a" - Name 242 "g_tTex1df4" - Name 245 "g_tTex1di4" - Name 248 "g_tTex1du4" - Name 251 "g_tTex3df4" - Name 254 "g_tTex3di4" - Name 257 "g_tTex3du4" - Decorate 12(g_tTex2df4) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - MemberDecorate 22($Global) 0 Offset 0 - MemberDecorate 22($Global) 1 Offset 8 - MemberDecorate 22($Global) 2 Offset 16 - MemberDecorate 22($Global) 3 Offset 32 - Decorate 22($Global) Block - Decorate 24 DescriptorSet 0 - Decorate 37(g_tTex2di4) DescriptorSet 0 - Decorate 51(g_tTex2du4) DescriptorSet 0 - Decorate 127(g_tTexcdf4) DescriptorSet 0 - Decorate 139(g_tTexcdi4) DescriptorSet 0 - Decorate 150(g_tTexcdu4) DescriptorSet 0 - Decorate 230(Color) Location 0 - Decorate 234(Depth) BuiltIn FragDepth - Decorate 238(g_sSamp2d) DescriptorSet 0 - Decorate 241(g_tTex1df4a) DescriptorSet 0 - Decorate 241(g_tTex1df4a) Binding 1 - Decorate 242(g_tTex1df4) DescriptorSet 0 - Decorate 242(g_tTex1df4) Binding 0 - Decorate 245(g_tTex1di4) DescriptorSet 0 - Decorate 248(g_tTex1du4) DescriptorSet 0 - Decorate 251(g_tTex3df4) DescriptorSet 0 - Decorate 254(g_tTex3di4) DescriptorSet 0 - Decorate 257(g_tTex3du4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: TypeVector 6(float) 3 - 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) - 23: TypePointer Uniform 22($Global) - 24: 23(ptr) Variable Uniform - 25: TypeInt 32 1 - 26: 25(int) Constant 1 - 27: TypePointer Uniform 20(fvec2) - 30: 25(int) Constant 0 - 32: TypeVector 25(int) 4 - 33: TypePointer Function 32(ivec4) - 35: TypeImage 25(int) 2D sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex2di4): 36(ptr) Variable UniformConstant - 40: TypeSampledImage 35 - 45: TypeInt 32 0 - 46: TypeVector 45(int) 4 - 47: TypePointer Function 46(ivec4) - 49: TypeImage 45(int) 2D sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2du4): 50(ptr) Variable UniformConstant - 54: TypeSampledImage 49 - 86: 25(int) Constant 2 - 108: 25(int) Constant 3 - 125: TypeImage 6(float) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdf4): 126(ptr) Variable UniformConstant - 130: TypeSampledImage 125 - 132: TypePointer Uniform 21(fvec3) - 137: TypeImage 25(int) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdi4): 138(ptr) Variable UniformConstant - 142: TypeSampledImage 137 - 148: TypeImage 45(int) Cube sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTexcdu4): 149(ptr) Variable UniformConstant - 153: TypeSampledImage 148 - 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 222: TypePointer Function 221(PS_OUTPUT) - 224: 6(float) Constant 1065353216 - 225: 7(fvec4) ConstantComposite 224 224 224 224 - 227: TypePointer Function 6(float) - 229: TypePointer Output 7(fvec4) - 230(Color): 229(ptr) Variable Output - 233: TypePointer Output 6(float) - 234(Depth): 233(ptr) Variable Output - 238(g_sSamp2d): 15(ptr) Variable UniformConstant - 239: TypeImage 6(float) 1D sampled format:Unknown - 240: TypePointer UniformConstant 239 -241(g_tTex1df4a): 240(ptr) Variable UniformConstant - 242(g_tTex1df4): 240(ptr) Variable UniformConstant - 243: TypeImage 25(int) 1D sampled format:Unknown - 244: TypePointer UniformConstant 243 - 245(g_tTex1di4): 244(ptr) Variable UniformConstant - 246: TypeImage 45(int) 1D sampled format:Unknown + 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_tTex1du4): 247(ptr) Variable UniformConstant - 249: TypeImage 6(float) 3D sampled format:Unknown - 250: TypePointer UniformConstant 249 - 251(g_tTex3df4): 250(ptr) Variable UniformConstant - 252: TypeImage 25(int) 3D sampled format:Unknown - 253: TypePointer UniformConstant 252 - 254(g_tTex3di4): 253(ptr) Variable UniformConstant - 255: TypeImage 45(int) 3D sampled format:Unknown - 256: TypePointer UniformConstant 255 - 257(g_tTex3du4): 256(ptr) Variable UniformConstant +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 - 9(txval00): 8(ptr) Variable Function - 34(txval01): 33(ptr) Variable Function - 48(txval02): 47(ptr) Variable Function - 59(txval10): 8(ptr) Variable Function - 66(txval11): 33(ptr) Variable Function - 73(txval12): 47(ptr) Variable Function - 80(txval20): 8(ptr) Variable Function - 88(txval21): 33(ptr) Variable Function - 95(txval22): 47(ptr) Variable Function - 102(txval30): 8(ptr) Variable Function - 110(txval31): 33(ptr) Variable Function - 117(txval32): 47(ptr) Variable Function - 124(txval40): 8(ptr) Variable Function - 136(txval41): 33(ptr) Variable Function - 147(txval42): 47(ptr) Variable Function - 158(txval50): 8(ptr) Variable Function - 165(txval51): 33(ptr) Variable Function - 172(txval52): 47(ptr) Variable Function - 179(txval60): 8(ptr) Variable Function - 186(txval61): 33(ptr) Variable Function - 193(txval62): 47(ptr) Variable Function - 200(txval70): 8(ptr) Variable Function - 207(txval71): 33(ptr) Variable Function - 214(txval72): 47(ptr) Variable Function - 223(psout): 222(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 28: 27(ptr) AccessChain 24 26 - 29: 20(fvec2) Load 28 - 31: 7(fvec4) ImageGather 19 29 30 - Store 9(txval00) 31 - 38: 35 Load 37(g_tTex2di4) - 39: 14 Load 16(g_sSamp) - 41: 40 SampledImage 38 39 - 42: 27(ptr) AccessChain 24 26 - 43: 20(fvec2) Load 42 - 44: 32(ivec4) ImageGather 41 43 30 - Store 34(txval01) 44 - 52: 49 Load 51(g_tTex2du4) - 53: 14 Load 16(g_sSamp) - 55: 54 SampledImage 52 53 - 56: 27(ptr) AccessChain 24 26 - 57: 20(fvec2) Load 56 - 58: 46(ivec4) ImageGather 55 57 30 - Store 48(txval02) 58 - 60: 10 Load 12(g_tTex2df4) - 61: 14 Load 16(g_sSamp) - 62: 18 SampledImage 60 61 - 63: 27(ptr) AccessChain 24 26 - 64: 20(fvec2) Load 63 - 65: 7(fvec4) ImageGather 62 64 26 - Store 59(txval10) 65 - 67: 35 Load 37(g_tTex2di4) - 68: 14 Load 16(g_sSamp) - 69: 40 SampledImage 67 68 - 70: 27(ptr) AccessChain 24 26 - 71: 20(fvec2) Load 70 - 72: 32(ivec4) ImageGather 69 71 26 - Store 66(txval11) 72 - 74: 49 Load 51(g_tTex2du4) - 75: 14 Load 16(g_sSamp) - 76: 54 SampledImage 74 75 - 77: 27(ptr) AccessChain 24 26 - 78: 20(fvec2) Load 77 - 79: 46(ivec4) ImageGather 76 78 26 - Store 73(txval12) 79 - 81: 10 Load 12(g_tTex2df4) - 82: 14 Load 16(g_sSamp) - 83: 18 SampledImage 81 82 - 84: 27(ptr) AccessChain 24 26 - 85: 20(fvec2) Load 84 - 87: 7(fvec4) ImageGather 83 85 86 - Store 80(txval20) 87 - 89: 35 Load 37(g_tTex2di4) - 90: 14 Load 16(g_sSamp) - 91: 40 SampledImage 89 90 - 92: 27(ptr) AccessChain 24 26 - 93: 20(fvec2) Load 92 - 94: 32(ivec4) ImageGather 91 93 86 - Store 88(txval21) 94 - 96: 49 Load 51(g_tTex2du4) - 97: 14 Load 16(g_sSamp) - 98: 54 SampledImage 96 97 - 99: 27(ptr) AccessChain 24 26 - 100: 20(fvec2) Load 99 - 101: 46(ivec4) ImageGather 98 100 86 - Store 95(txval22) 101 - 103: 10 Load 12(g_tTex2df4) - 104: 14 Load 16(g_sSamp) - 105: 18 SampledImage 103 104 - 106: 27(ptr) AccessChain 24 26 - 107: 20(fvec2) Load 106 - 109: 7(fvec4) ImageGather 105 107 108 - Store 102(txval30) 109 - 111: 35 Load 37(g_tTex2di4) - 112: 14 Load 16(g_sSamp) - 113: 40 SampledImage 111 112 - 114: 27(ptr) AccessChain 24 26 - 115: 20(fvec2) Load 114 - 116: 32(ivec4) ImageGather 113 115 108 - Store 110(txval31) 116 - 118: 49 Load 51(g_tTex2du4) - 119: 14 Load 16(g_sSamp) - 120: 54 SampledImage 118 119 - 121: 27(ptr) AccessChain 24 26 - 122: 20(fvec2) Load 121 - 123: 46(ivec4) ImageGather 120 122 108 - Store 117(txval32) 123 - 128: 125 Load 127(g_tTexcdf4) - 129: 14 Load 16(g_sSamp) - 131: 130 SampledImage 128 129 - 133: 132(ptr) AccessChain 24 86 - 134: 21(fvec3) Load 133 - 135: 7(fvec4) ImageGather 131 134 30 - Store 124(txval40) 135 - 140: 137 Load 139(g_tTexcdi4) - 141: 14 Load 16(g_sSamp) - 143: 142 SampledImage 140 141 - 144: 132(ptr) AccessChain 24 86 - 145: 21(fvec3) Load 144 - 146: 32(ivec4) ImageGather 143 145 30 - Store 136(txval41) 146 - 151: 148 Load 150(g_tTexcdu4) - 152: 14 Load 16(g_sSamp) - 154: 153 SampledImage 151 152 - 155: 132(ptr) AccessChain 24 86 - 156: 21(fvec3) Load 155 - 157: 46(ivec4) ImageGather 154 156 30 - Store 147(txval42) 157 - 159: 125 Load 127(g_tTexcdf4) - 160: 14 Load 16(g_sSamp) - 161: 130 SampledImage 159 160 - 162: 132(ptr) AccessChain 24 86 - 163: 21(fvec3) Load 162 - 164: 7(fvec4) ImageGather 161 163 26 - Store 158(txval50) 164 - 166: 137 Load 139(g_tTexcdi4) - 167: 14 Load 16(g_sSamp) - 168: 142 SampledImage 166 167 - 169: 132(ptr) AccessChain 24 86 - 170: 21(fvec3) Load 169 - 171: 32(ivec4) ImageGather 168 170 26 - Store 165(txval51) 171 - 173: 148 Load 150(g_tTexcdu4) - 174: 14 Load 16(g_sSamp) - 175: 153 SampledImage 173 174 - 176: 132(ptr) AccessChain 24 86 - 177: 21(fvec3) Load 176 - 178: 46(ivec4) ImageGather 175 177 26 - Store 172(txval52) 178 - 180: 125 Load 127(g_tTexcdf4) - 181: 14 Load 16(g_sSamp) - 182: 130 SampledImage 180 181 - 183: 132(ptr) AccessChain 24 86 - 184: 21(fvec3) Load 183 - 185: 7(fvec4) ImageGather 182 184 86 - Store 179(txval60) 185 - 187: 137 Load 139(g_tTexcdi4) - 188: 14 Load 16(g_sSamp) - 189: 142 SampledImage 187 188 - 190: 132(ptr) AccessChain 24 86 - 191: 21(fvec3) Load 190 - 192: 32(ivec4) ImageGather 189 191 86 - Store 186(txval61) 192 - 194: 148 Load 150(g_tTexcdu4) - 195: 14 Load 16(g_sSamp) - 196: 153 SampledImage 194 195 - 197: 132(ptr) AccessChain 24 86 - 198: 21(fvec3) Load 197 - 199: 46(ivec4) ImageGather 196 198 86 - Store 193(txval62) 199 - 201: 125 Load 127(g_tTexcdf4) - 202: 14 Load 16(g_sSamp) - 203: 130 SampledImage 201 202 - 204: 132(ptr) AccessChain 24 86 - 205: 21(fvec3) Load 204 - 206: 7(fvec4) ImageGather 203 205 108 - Store 200(txval70) 206 - 208: 137 Load 139(g_tTexcdi4) - 209: 14 Load 16(g_sSamp) - 210: 142 SampledImage 208 209 - 211: 132(ptr) AccessChain 24 86 - 212: 21(fvec3) Load 211 - 213: 32(ivec4) ImageGather 210 212 108 - Store 207(txval71) 213 - 215: 148 Load 150(g_tTexcdu4) - 216: 14 Load 16(g_sSamp) - 217: 153 SampledImage 215 216 - 218: 132(ptr) AccessChain 24 86 - 219: 21(fvec3) Load 218 - 220: 46(ivec4) ImageGather 217 219 108 - Store 214(txval72) 220 - 226: 8(ptr) AccessChain 223(psout) 30 - Store 226 225 - 228: 227(ptr) AccessChain 223(psout) 26 - Store 228 224 - 231: 8(ptr) AccessChain 223(psout) 30 - 232: 7(fvec4) Load 231 - Store 230(Color) 232 - 235: 227(ptr) AccessChain 223(psout) 26 - 236: 6(float) Load 235 - Store 234(Depth) 236 +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 index 433957417e..49fda31a06 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -1,577 +1,578 @@ hlsl.gatherRGBA.offset.dx10.frag -Shader version: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=8 ) uniform 2-component vector of float) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=56 ) uniform 2-component vector of int) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=8 ) uniform 2-component vector of float) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=56 ) uniform 2-component vector of int) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=8 ) uniform 2-component vector of float) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=8 ) uniform 2-component vector of float) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of float) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=8 ) uniform 2-component vector of float) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=56 ) uniform 2-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=8 ) uniform 2-component vector of float) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 (layout(offset=56 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of float) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=8 ) uniform 2-component vector of float) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=8 ) uniform 2-component vector of float) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=8 ) uniform 2-component vector of float) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=8 ) uniform 2-component vector of float) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 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 (layout(offset=56 ) uniform 2-component vector of int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 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 (layout(offset=8 ) uniform 2-component vector of float) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 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 (layout(offset=56 ) uniform 2-component vector of int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 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 (layout(offset=8 ) uniform 2-component vector of float) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=8 ) uniform 2-component vector of float) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=8 ) uniform 2-component vector of float) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=8 ) uniform 2-component vector of float) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=8 ) uniform 2-component vector of float) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 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 (layout(offset=56 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 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 (layout(offset=8 ) uniform 2-component vector of float) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 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 (layout(offset=56 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 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 (layout(offset=8 ) uniform 2-component vector of float) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=8 ) uniform 2-component vector of float) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=8 ) uniform 2-component vector of float) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 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: @@ -579,625 +580,632 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:115 Sequence -0:115 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:115 Color: direct index for structure (temp 4-component vector of float) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:115 Constant: -0:115 0 (const int) -0:115 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:115 Depth: direct index for structure (temp float) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:115 Constant: -0:115 1 (const int) -0:115 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=8 ) uniform 2-component vector of float) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=56 ) uniform 2-component vector of int) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=8 ) uniform 2-component vector of float) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=56 ) uniform 2-component vector of int) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=8 ) uniform 2-component vector of float) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=56 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=8 ) uniform 2-component vector of float) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=56 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=56 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of float) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=8 ) uniform 2-component vector of float) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=56 ) uniform 2-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=8 ) uniform 2-component vector of float) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 (layout(offset=56 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of float) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=56 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=8 ) uniform 2-component vector of float) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=56 ) uniform 2-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=8 ) uniform 2-component vector of float) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=56 ) uniform 2-component vector of int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 (layout(offset=8 ) uniform 2-component vector of float) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=8 ) uniform 2-component vector of float) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 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 (layout(offset=56 ) uniform 2-component vector of int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 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 (layout(offset=8 ) uniform 2-component vector of float) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 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 (layout(offset=56 ) uniform 2-component vector of int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 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 (layout(offset=8 ) uniform 2-component vector of float) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=56 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 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 (layout(offset=8 ) uniform 2-component vector of float) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=56 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 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 (layout(offset=8 ) uniform 2-component vector of float) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=56 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 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 (layout(offset=8 ) uniform 2-component vector of float) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=8 ) uniform 2-component vector of float) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 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 (layout(offset=56 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 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 (layout(offset=8 ) uniform 2-component vector of float) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 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 (layout(offset=56 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 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 (layout(offset=8 ) uniform 2-component vector of float) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=56 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 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 (layout(offset=8 ) uniform 2-component vector of float) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=56 ) uniform 2-component vector of int) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 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 (layout(offset=8 ) uniform 2-component vector of float) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 (layout(offset=56 ) uniform 2-component vector of int) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 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 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: @@ -1205,561 +1213,580 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:115 Sequence -0:115 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:115 Color: direct index for structure (temp 4-component vector of float) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:115 Constant: -0:115 0 (const int) -0:115 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:115 Depth: direct index for structure (temp float) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:115 Constant: -0:115 1 (const int) -0:115 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 392 +// 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" 355 359 + EntryPoint Fragment 4 "main" 363 367 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval001" - Name 12 "g_tTex2df4" - Name 16 "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" - MemberName 26($Global) 4 "o1" - MemberName 26($Global) 5 "o2" - MemberName 26($Global) 6 "o3" - MemberName 26($Global) 7 "o4" - Name 28 "" - Name 40 "txval011" - Name 43 "g_tTex2di4" - Name 56 "txval021" - Name 59 "g_tTex2du4" - Name 69 "txval004" - Name 87 "txval014" - Name 103 "txval024" - Name 119 "txval101" - Name 128 "txval111" - Name 137 "txval121" - Name 146 "txval104" - Name 162 "txval114" - Name 178 "txval124" - Name 194 "txval201" - Name 204 "txval211" - Name 213 "txval221" - Name 222 "txval204" - Name 238 "txval214" - Name 254 "txval224" - Name 270 "txval301" - Name 280 "txval311" - Name 289 "txval321" - Name 298 "txval304" - Name 314 "txval314" - Name 330 "txval324" - Name 346 "PS_OUTPUT" - MemberName 346(PS_OUTPUT) 0 "Color" - MemberName 346(PS_OUTPUT) 1 "Depth" - Name 348 "psout" - Name 355 "Color" - Name 359 "Depth" - Name 363 "g_sSamp2d" - Name 366 "g_tTex1df4a" - Name 367 "g_tTex1df4" - Name 370 "g_tTex1di4" - Name 373 "g_tTex1du4" - Name 376 "g_tTex3df4" - Name 379 "g_tTex3di4" - Name 382 "g_tTex3du4" - Name 385 "g_tTexcdf4" - Name 388 "g_tTexcdi4" - Name 391 "g_tTexcdu4" - Decorate 12(g_tTex2df4) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - MemberDecorate 26($Global) 0 Offset 0 - MemberDecorate 26($Global) 1 Offset 8 - MemberDecorate 26($Global) 2 Offset 16 - MemberDecorate 26($Global) 3 Offset 32 - MemberDecorate 26($Global) 4 Offset 48 - MemberDecorate 26($Global) 5 Offset 56 - MemberDecorate 26($Global) 6 Offset 64 - MemberDecorate 26($Global) 7 Offset 80 - Decorate 26($Global) Block - Decorate 28 DescriptorSet 0 - Decorate 43(g_tTex2di4) DescriptorSet 0 - Decorate 59(g_tTex2du4) DescriptorSet 0 - Decorate 355(Color) Location 0 - Decorate 359(Depth) BuiltIn FragDepth - Decorate 363(g_sSamp2d) DescriptorSet 0 - Decorate 366(g_tTex1df4a) DescriptorSet 0 - Decorate 366(g_tTex1df4a) Binding 1 - Decorate 367(g_tTex1df4) DescriptorSet 0 - Decorate 367(g_tTex1df4) Binding 0 - Decorate 370(g_tTex1di4) DescriptorSet 0 - Decorate 373(g_tTex1du4) DescriptorSet 0 - Decorate 376(g_tTex3df4) DescriptorSet 0 - Decorate 379(g_tTex3di4) DescriptorSet 0 - Decorate 382(g_tTex3du4) DescriptorSet 0 - Decorate 385(g_tTexcdf4) DescriptorSet 0 - Decorate 388(g_tTexcdi4) DescriptorSet 0 - Decorate 391(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: TypeVector 6(float) 3 - 22: TypeInt 32 1 - 23: TypeVector 22(int) 2 - 24: TypeVector 22(int) 3 - 25: TypeVector 22(int) 4 - 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) - 27: TypePointer Uniform 26($Global) - 28: 27(ptr) Variable Uniform - 29: 22(int) Constant 1 - 30: TypePointer Uniform 20(fvec2) - 33: 22(int) Constant 5 - 34: TypePointer Uniform 23(ivec2) - 37: 22(int) Constant 0 - 39: TypePointer Function 25(ivec4) - 41: TypeImage 22(int) 2D sampled format:Unknown - 42: TypePointer UniformConstant 41 - 43(g_tTex2di4): 42(ptr) Variable UniformConstant - 46: TypeSampledImage 41 - 53: TypeInt 32 0 - 54: TypeVector 53(int) 4 - 55: TypePointer Function 54(ivec4) - 57: TypeImage 53(int) 2D sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTex2du4): 58(ptr) Variable UniformConstant - 62: TypeSampledImage 57 - 83: 53(int) Constant 4 - 84: TypeArray 23(ivec2) 83 - 202: 22(int) Constant 2 - 278: 22(int) Constant 3 - 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 347: TypePointer Function 346(PS_OUTPUT) - 349: 6(float) Constant 1065353216 - 350: 7(fvec4) ConstantComposite 349 349 349 349 - 352: TypePointer Function 6(float) - 354: TypePointer Output 7(fvec4) - 355(Color): 354(ptr) Variable Output - 358: TypePointer Output 6(float) - 359(Depth): 358(ptr) Variable Output - 363(g_sSamp2d): 15(ptr) Variable UniformConstant - 364: TypeImage 6(float) 1D sampled format:Unknown - 365: TypePointer UniformConstant 364 -366(g_tTex1df4a): 365(ptr) Variable UniformConstant - 367(g_tTex1df4): 365(ptr) Variable UniformConstant - 368: TypeImage 22(int) 1D sampled format:Unknown - 369: TypePointer UniformConstant 368 - 370(g_tTex1di4): 369(ptr) Variable UniformConstant - 371: TypeImage 53(int) 1D sampled format:Unknown + 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_tTex1du4): 372(ptr) Variable UniformConstant - 374: TypeImage 6(float) 3D sampled format:Unknown - 375: TypePointer UniformConstant 374 - 376(g_tTex3df4): 375(ptr) Variable UniformConstant - 377: TypeImage 22(int) 3D sampled format:Unknown - 378: TypePointer UniformConstant 377 - 379(g_tTex3di4): 378(ptr) Variable UniformConstant - 380: TypeImage 53(int) 3D sampled format:Unknown - 381: TypePointer UniformConstant 380 - 382(g_tTex3du4): 381(ptr) Variable UniformConstant - 383: TypeImage 6(float) Cube sampled format:Unknown - 384: TypePointer UniformConstant 383 - 385(g_tTexcdf4): 384(ptr) Variable UniformConstant - 386: TypeImage 22(int) Cube sampled format:Unknown - 387: TypePointer UniformConstant 386 - 388(g_tTexcdi4): 387(ptr) Variable UniformConstant - 389: TypeImage 53(int) Cube sampled format:Unknown - 390: TypePointer UniformConstant 389 - 391(g_tTexcdu4): 390(ptr) Variable UniformConstant +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 - 9(txval001): 8(ptr) Variable Function - 40(txval011): 39(ptr) Variable Function - 56(txval021): 55(ptr) Variable Function - 69(txval004): 8(ptr) Variable Function - 87(txval014): 39(ptr) Variable Function - 103(txval024): 55(ptr) Variable Function - 119(txval101): 8(ptr) Variable Function - 128(txval111): 39(ptr) Variable Function - 137(txval121): 55(ptr) Variable Function - 146(txval104): 8(ptr) Variable Function - 162(txval114): 39(ptr) Variable Function - 178(txval124): 55(ptr) Variable Function - 194(txval201): 8(ptr) Variable Function - 204(txval211): 39(ptr) Variable Function - 213(txval221): 55(ptr) Variable Function - 222(txval204): 8(ptr) Variable Function - 238(txval214): 39(ptr) Variable Function - 254(txval224): 55(ptr) Variable Function - 270(txval301): 8(ptr) Variable Function - 280(txval311): 39(ptr) Variable Function - 289(txval321): 55(ptr) Variable Function - 298(txval304): 8(ptr) Variable Function - 314(txval314): 39(ptr) Variable Function - 330(txval324): 55(ptr) Variable Function - 348(psout): 347(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 31: 30(ptr) AccessChain 28 29 - 32: 20(fvec2) Load 31 - 35: 34(ptr) AccessChain 28 33 - 36: 23(ivec2) Load 35 - 38: 7(fvec4) ImageGather 19 32 37 Offset 36 - Store 9(txval001) 38 - 44: 41 Load 43(g_tTex2di4) - 45: 14 Load 16(g_sSamp) - 47: 46 SampledImage 44 45 - 48: 30(ptr) AccessChain 28 29 - 49: 20(fvec2) Load 48 - 50: 34(ptr) AccessChain 28 33 - 51: 23(ivec2) Load 50 - 52: 25(ivec4) ImageGather 47 49 37 Offset 51 - Store 40(txval011) 52 - 60: 57 Load 59(g_tTex2du4) - 61: 14 Load 16(g_sSamp) - 63: 62 SampledImage 60 61 - 64: 30(ptr) AccessChain 28 29 - 65: 20(fvec2) Load 64 - 66: 34(ptr) AccessChain 28 33 - 67: 23(ivec2) Load 66 - 68: 54(ivec4) ImageGather 63 65 37 Offset 67 - Store 56(txval021) 68 - 70: 10 Load 12(g_tTex2df4) - 71: 14 Load 16(g_sSamp) - 72: 18 SampledImage 70 71 - 73: 30(ptr) AccessChain 28 29 - 74: 20(fvec2) Load 73 - 75: 34(ptr) AccessChain 28 33 - 76: 23(ivec2) Load 75 - 77: 34(ptr) AccessChain 28 33 - 78: 23(ivec2) Load 77 - 79: 34(ptr) AccessChain 28 33 - 80: 23(ivec2) Load 79 - 81: 34(ptr) AccessChain 28 33 - 82: 23(ivec2) Load 81 - 85: 84 CompositeConstruct 76 78 80 82 - 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 - Store 69(txval004) 86 - 88: 41 Load 43(g_tTex2di4) - 89: 14 Load 16(g_sSamp) - 90: 46 SampledImage 88 89 - 91: 30(ptr) AccessChain 28 29 - 92: 20(fvec2) Load 91 - 93: 34(ptr) AccessChain 28 33 - 94: 23(ivec2) Load 93 - 95: 34(ptr) AccessChain 28 33 - 96: 23(ivec2) Load 95 - 97: 34(ptr) AccessChain 28 33 - 98: 23(ivec2) Load 97 - 99: 34(ptr) AccessChain 28 33 - 100: 23(ivec2) Load 99 - 101: 84 CompositeConstruct 94 96 98 100 - 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 - Store 87(txval014) 102 - 104: 57 Load 59(g_tTex2du4) - 105: 14 Load 16(g_sSamp) - 106: 62 SampledImage 104 105 - 107: 30(ptr) AccessChain 28 29 - 108: 20(fvec2) Load 107 - 109: 34(ptr) AccessChain 28 33 - 110: 23(ivec2) Load 109 - 111: 34(ptr) AccessChain 28 33 - 112: 23(ivec2) Load 111 - 113: 34(ptr) AccessChain 28 33 - 114: 23(ivec2) Load 113 - 115: 34(ptr) AccessChain 28 33 - 116: 23(ivec2) Load 115 - 117: 84 CompositeConstruct 110 112 114 116 - 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 - Store 103(txval024) 118 - 120: 10 Load 12(g_tTex2df4) - 121: 14 Load 16(g_sSamp) - 122: 18 SampledImage 120 121 - 123: 30(ptr) AccessChain 28 29 - 124: 20(fvec2) Load 123 - 125: 34(ptr) AccessChain 28 33 - 126: 23(ivec2) Load 125 - 127: 7(fvec4) ImageGather 122 124 29 Offset 126 - Store 119(txval101) 127 - 129: 41 Load 43(g_tTex2di4) - 130: 14 Load 16(g_sSamp) - 131: 46 SampledImage 129 130 - 132: 30(ptr) AccessChain 28 29 - 133: 20(fvec2) Load 132 - 134: 34(ptr) AccessChain 28 33 - 135: 23(ivec2) Load 134 - 136: 25(ivec4) ImageGather 131 133 29 Offset 135 - Store 128(txval111) 136 - 138: 57 Load 59(g_tTex2du4) - 139: 14 Load 16(g_sSamp) - 140: 62 SampledImage 138 139 - 141: 30(ptr) AccessChain 28 29 - 142: 20(fvec2) Load 141 - 143: 34(ptr) AccessChain 28 33 - 144: 23(ivec2) Load 143 - 145: 54(ivec4) ImageGather 140 142 29 Offset 144 - Store 137(txval121) 145 - 147: 10 Load 12(g_tTex2df4) - 148: 14 Load 16(g_sSamp) - 149: 18 SampledImage 147 148 - 150: 30(ptr) AccessChain 28 29 - 151: 20(fvec2) Load 150 - 152: 34(ptr) AccessChain 28 33 - 153: 23(ivec2) Load 152 - 154: 34(ptr) AccessChain 28 33 - 155: 23(ivec2) Load 154 - 156: 34(ptr) AccessChain 28 33 - 157: 23(ivec2) Load 156 - 158: 34(ptr) AccessChain 28 33 - 159: 23(ivec2) Load 158 - 160: 84 CompositeConstruct 153 155 157 159 - 161: 7(fvec4) ImageGather 149 151 29 ConstOffsets 160 - Store 146(txval104) 161 - 163: 41 Load 43(g_tTex2di4) - 164: 14 Load 16(g_sSamp) - 165: 46 SampledImage 163 164 - 166: 30(ptr) AccessChain 28 29 - 167: 20(fvec2) Load 166 - 168: 34(ptr) AccessChain 28 33 - 169: 23(ivec2) Load 168 - 170: 34(ptr) AccessChain 28 33 - 171: 23(ivec2) Load 170 - 172: 34(ptr) AccessChain 28 33 - 173: 23(ivec2) Load 172 - 174: 34(ptr) AccessChain 28 33 - 175: 23(ivec2) Load 174 - 176: 84 CompositeConstruct 169 171 173 175 - 177: 25(ivec4) ImageGather 165 167 29 ConstOffsets 176 - Store 162(txval114) 177 - 179: 57 Load 59(g_tTex2du4) - 180: 14 Load 16(g_sSamp) - 181: 62 SampledImage 179 180 - 182: 30(ptr) AccessChain 28 29 - 183: 20(fvec2) Load 182 - 184: 34(ptr) AccessChain 28 33 - 185: 23(ivec2) Load 184 - 186: 34(ptr) AccessChain 28 33 - 187: 23(ivec2) Load 186 - 188: 34(ptr) AccessChain 28 33 - 189: 23(ivec2) Load 188 - 190: 34(ptr) AccessChain 28 33 - 191: 23(ivec2) Load 190 - 192: 84 CompositeConstruct 185 187 189 191 - 193: 54(ivec4) ImageGather 181 183 29 ConstOffsets 192 - Store 178(txval124) 193 - 195: 10 Load 12(g_tTex2df4) - 196: 14 Load 16(g_sSamp) - 197: 18 SampledImage 195 196 - 198: 30(ptr) AccessChain 28 29 - 199: 20(fvec2) Load 198 - 200: 34(ptr) AccessChain 28 33 - 201: 23(ivec2) Load 200 - 203: 7(fvec4) ImageGather 197 199 202 Offset 201 - Store 194(txval201) 203 - 205: 41 Load 43(g_tTex2di4) - 206: 14 Load 16(g_sSamp) - 207: 46 SampledImage 205 206 - 208: 30(ptr) AccessChain 28 29 - 209: 20(fvec2) Load 208 - 210: 34(ptr) AccessChain 28 33 - 211: 23(ivec2) Load 210 - 212: 25(ivec4) ImageGather 207 209 202 Offset 211 - Store 204(txval211) 212 - 214: 57 Load 59(g_tTex2du4) - 215: 14 Load 16(g_sSamp) - 216: 62 SampledImage 214 215 - 217: 30(ptr) AccessChain 28 29 - 218: 20(fvec2) Load 217 - 219: 34(ptr) AccessChain 28 33 - 220: 23(ivec2) Load 219 - 221: 54(ivec4) ImageGather 216 218 202 Offset 220 - Store 213(txval221) 221 - 223: 10 Load 12(g_tTex2df4) - 224: 14 Load 16(g_sSamp) - 225: 18 SampledImage 223 224 - 226: 30(ptr) AccessChain 28 29 - 227: 20(fvec2) Load 226 - 228: 34(ptr) AccessChain 28 33 - 229: 23(ivec2) Load 228 - 230: 34(ptr) AccessChain 28 33 - 231: 23(ivec2) Load 230 - 232: 34(ptr) AccessChain 28 33 - 233: 23(ivec2) Load 232 - 234: 34(ptr) AccessChain 28 33 - 235: 23(ivec2) Load 234 - 236: 84 CompositeConstruct 229 231 233 235 - 237: 7(fvec4) ImageGather 225 227 202 ConstOffsets 236 - Store 222(txval204) 237 - 239: 41 Load 43(g_tTex2di4) - 240: 14 Load 16(g_sSamp) - 241: 46 SampledImage 239 240 - 242: 30(ptr) AccessChain 28 29 - 243: 20(fvec2) Load 242 - 244: 34(ptr) AccessChain 28 33 - 245: 23(ivec2) Load 244 - 246: 34(ptr) AccessChain 28 33 - 247: 23(ivec2) Load 246 - 248: 34(ptr) AccessChain 28 33 - 249: 23(ivec2) Load 248 - 250: 34(ptr) AccessChain 28 33 - 251: 23(ivec2) Load 250 - 252: 84 CompositeConstruct 245 247 249 251 - 253: 25(ivec4) ImageGather 241 243 202 ConstOffsets 252 - Store 238(txval214) 253 - 255: 57 Load 59(g_tTex2du4) - 256: 14 Load 16(g_sSamp) - 257: 62 SampledImage 255 256 - 258: 30(ptr) AccessChain 28 29 - 259: 20(fvec2) Load 258 - 260: 34(ptr) AccessChain 28 33 - 261: 23(ivec2) Load 260 - 262: 34(ptr) AccessChain 28 33 - 263: 23(ivec2) Load 262 - 264: 34(ptr) AccessChain 28 33 - 265: 23(ivec2) Load 264 - 266: 34(ptr) AccessChain 28 33 - 267: 23(ivec2) Load 266 - 268: 84 CompositeConstruct 261 263 265 267 - 269: 54(ivec4) ImageGather 257 259 202 ConstOffsets 268 - Store 254(txval224) 269 - 271: 10 Load 12(g_tTex2df4) - 272: 14 Load 16(g_sSamp) - 273: 18 SampledImage 271 272 - 274: 30(ptr) AccessChain 28 29 - 275: 20(fvec2) Load 274 - 276: 34(ptr) AccessChain 28 33 - 277: 23(ivec2) Load 276 - 279: 7(fvec4) ImageGather 273 275 278 Offset 277 - Store 270(txval301) 279 - 281: 41 Load 43(g_tTex2di4) - 282: 14 Load 16(g_sSamp) - 283: 46 SampledImage 281 282 - 284: 30(ptr) AccessChain 28 29 - 285: 20(fvec2) Load 284 - 286: 34(ptr) AccessChain 28 33 - 287: 23(ivec2) Load 286 - 288: 25(ivec4) ImageGather 283 285 278 Offset 287 - Store 280(txval311) 288 - 290: 57 Load 59(g_tTex2du4) - 291: 14 Load 16(g_sSamp) - 292: 62 SampledImage 290 291 - 293: 30(ptr) AccessChain 28 29 - 294: 20(fvec2) Load 293 - 295: 34(ptr) AccessChain 28 33 - 296: 23(ivec2) Load 295 - 297: 54(ivec4) ImageGather 292 294 278 Offset 296 - Store 289(txval321) 297 - 299: 10 Load 12(g_tTex2df4) - 300: 14 Load 16(g_sSamp) - 301: 18 SampledImage 299 300 - 302: 30(ptr) AccessChain 28 29 - 303: 20(fvec2) Load 302 - 304: 34(ptr) AccessChain 28 33 - 305: 23(ivec2) Load 304 - 306: 34(ptr) AccessChain 28 33 - 307: 23(ivec2) Load 306 - 308: 34(ptr) AccessChain 28 33 - 309: 23(ivec2) Load 308 - 310: 34(ptr) AccessChain 28 33 - 311: 23(ivec2) Load 310 - 312: 84 CompositeConstruct 305 307 309 311 - 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 - Store 298(txval304) 313 - 315: 41 Load 43(g_tTex2di4) - 316: 14 Load 16(g_sSamp) - 317: 46 SampledImage 315 316 - 318: 30(ptr) AccessChain 28 29 - 319: 20(fvec2) Load 318 - 320: 34(ptr) AccessChain 28 33 - 321: 23(ivec2) Load 320 - 322: 34(ptr) AccessChain 28 33 - 323: 23(ivec2) Load 322 - 324: 34(ptr) AccessChain 28 33 - 325: 23(ivec2) Load 324 - 326: 34(ptr) AccessChain 28 33 - 327: 23(ivec2) Load 326 - 328: 84 CompositeConstruct 321 323 325 327 - 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 - Store 314(txval314) 329 - 331: 57 Load 59(g_tTex2du4) - 332: 14 Load 16(g_sSamp) - 333: 62 SampledImage 331 332 - 334: 30(ptr) AccessChain 28 29 - 335: 20(fvec2) Load 334 - 336: 34(ptr) AccessChain 28 33 - 337: 23(ivec2) Load 336 - 338: 34(ptr) AccessChain 28 33 - 339: 23(ivec2) Load 338 - 340: 34(ptr) AccessChain 28 33 - 341: 23(ivec2) Load 340 - 342: 34(ptr) AccessChain 28 33 - 343: 23(ivec2) Load 342 - 344: 84 CompositeConstruct 337 339 341 343 - 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 - Store 330(txval324) 345 - 351: 8(ptr) AccessChain 348(psout) 37 - Store 351 350 - 353: 352(ptr) AccessChain 348(psout) 29 - Store 353 349 - 356: 8(ptr) AccessChain 348(psout) 37 - 357: 7(fvec4) Load 356 - Store 355(Color) 357 - 360: 352(ptr) AccessChain 348(psout) 29 - 361: 6(float) Load 360 - Store 359(Depth) 361 +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 index 4722cff67d..9de1a97216 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -1,577 +1,578 @@ hlsl.gatherRGBA.offsetarray.dx10.frag -Shader version: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of float) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 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 (layout(offset=56 ) uniform 2-component vector of int) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 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 (layout(offset=16 ) uniform 3-component vector of float) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 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 (layout(offset=56 ) uniform 2-component vector of int) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 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 (layout(offset=16 ) uniform 3-component vector of float) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 (layout(offset=56 ) uniform 2-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 (layout(offset=16 ) uniform 3-component vector of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=16 ) uniform 3-component vector of float) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=16 ) uniform 3-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=16 ) uniform 3-component vector of float) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=56 ) uniform 2-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=16 ) uniform 3-component vector of float) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=56 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of float) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=56 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of float) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=16 ) uniform 3-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=16 ) uniform 3-component vector of float) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of float) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 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 (layout(offset=56 ) uniform 2-component vector of int) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 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 (layout(offset=16 ) uniform 3-component vector of float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 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 (layout(offset=56 ) uniform 2-component vector of int) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 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 (layout(offset=16 ) uniform 3-component vector of float) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 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 (layout(offset=56 ) uniform 2-component vector of int) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 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 (layout(offset=16 ) uniform 3-component vector of float) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=16 ) uniform 3-component vector of float) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=16 ) uniform 3-component vector of float) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=16 ) uniform 3-component vector of float) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 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 (layout(offset=56 ) uniform 2-component vector of int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 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 (layout(offset=16 ) uniform 3-component vector of float) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 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 (layout(offset=56 ) uniform 2-component vector of int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 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 (layout(offset=16 ) uniform 3-component vector of float) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 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 (layout(offset=56 ) uniform 2-component vector of int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 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 (layout(offset=16 ) uniform 3-component vector of float) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=16 ) uniform 3-component vector of float) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=16 ) uniform 3-component vector of float) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 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: @@ -579,621 +580,628 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:109 Sequence -0:109 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:109 Color: direct index for structure (temp 4-component vector of float) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:109 Constant: -0:109 0 (const int) -0:109 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:109 Depth: direct index for structure (temp float) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:109 Constant: -0:109 1 (const int) -0:109 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of float) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 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 (layout(offset=56 ) uniform 2-component vector of int) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 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 (layout(offset=16 ) uniform 3-component vector of float) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 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 (layout(offset=56 ) uniform 2-component vector of int) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 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 (layout(offset=16 ) uniform 3-component vector of float) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 (layout(offset=56 ) uniform 2-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 (layout(offset=16 ) uniform 3-component vector of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=56 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=16 ) uniform 3-component vector of float) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=56 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=16 ) uniform 3-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=56 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=16 ) uniform 3-component vector of float) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=56 ) uniform 2-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=16 ) uniform 3-component vector of float) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=56 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of float) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=56 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of float) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=56 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 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 (layout(offset=16 ) uniform 3-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=56 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=16 ) uniform 3-component vector of float) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=56 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of float) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 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 (layout(offset=56 ) uniform 2-component vector of int) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 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 (layout(offset=16 ) uniform 3-component vector of float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 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 (layout(offset=56 ) uniform 2-component vector of int) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 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 (layout(offset=16 ) uniform 3-component vector of float) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 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 (layout(offset=56 ) uniform 2-component vector of int) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 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 (layout(offset=16 ) uniform 3-component vector of float) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=56 ) uniform 2-component vector of int) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 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 (layout(offset=16 ) uniform 3-component vector of float) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=56 ) uniform 2-component vector of int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 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 (layout(offset=16 ) uniform 3-component vector of float) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=56 ) uniform 2-component vector of int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 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 (layout(offset=16 ) uniform 3-component vector of float) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 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 (layout(offset=56 ) uniform 2-component vector of int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 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 (layout(offset=16 ) uniform 3-component vector of float) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 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 (layout(offset=56 ) uniform 2-component vector of int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 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 (layout(offset=16 ) uniform 3-component vector of float) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 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 (layout(offset=56 ) uniform 2-component vector of int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 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 (layout(offset=16 ) uniform 3-component vector of float) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=56 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 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 (layout(offset=16 ) uniform 3-component vector of float) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=56 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 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 (layout(offset=16 ) uniform 3-component vector of float) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 (layout(offset=56 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 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 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: @@ -1201,47 +1209,53 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:109 Sequence -0:109 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:109 Color: direct index for structure (temp 4-component vector of float) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:109 Constant: -0:109 0 (const int) -0:109 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:109 Depth: direct index for structure (temp float) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:109 Constant: -0:109 1 (const int) -0:109 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) -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{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 382 +// Generated by (magic number): 80007 +// Id's are bound by 389 Capability Shader Capability ImageGatherExtended @@ -1249,491 +1263,504 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 355 359 + EntryPoint Fragment 4 "main" 363 367 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval001" - Name 12 "g_tTex2df4a" - Name 16 "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" - MemberName 26($Global) 4 "o1" - MemberName 26($Global) 5 "o2" - MemberName 26($Global) 6 "o3" - MemberName 26($Global) 7 "o4" - Name 28 "" - Name 40 "txval011" - Name 43 "g_tTex2di4a" - Name 56 "txval021" - Name 59 "g_tTex2du4a" - Name 69 "txval004" - Name 87 "txval014" - Name 103 "txval024" - Name 119 "txval101" - Name 129 "txval111" - Name 138 "txval121" - Name 147 "txval104" - Name 163 "txval114" - Name 179 "txval124" - Name 195 "txval201" - Name 204 "txval211" - Name 213 "txval221" - Name 222 "txval204" - Name 238 "txval214" - Name 254 "txval224" - Name 270 "txval301" - Name 280 "txval311" - Name 289 "txval321" - Name 298 "txval304" - Name 314 "txval314" - Name 330 "txval324" - Name 346 "PS_OUTPUT" - MemberName 346(PS_OUTPUT) 0 "Color" - MemberName 346(PS_OUTPUT) 1 "Depth" - Name 348 "psout" - Name 355 "Color" - Name 359 "Depth" - Name 363 "g_sSamp2d" - Name 366 "g_tTex1df4a" - Name 369 "g_tTex1di4a" - Name 372 "g_tTex1du4a" - Name 375 "g_tTexcdf4a" - Name 378 "g_tTexcdi4a" - Name 381 "g_tTexcdu4a" - Decorate 12(g_tTex2df4a) DescriptorSet 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - MemberDecorate 26($Global) 0 Offset 0 - MemberDecorate 26($Global) 1 Offset 8 - MemberDecorate 26($Global) 2 Offset 16 - MemberDecorate 26($Global) 3 Offset 32 - MemberDecorate 26($Global) 4 Offset 48 - MemberDecorate 26($Global) 5 Offset 56 - MemberDecorate 26($Global) 6 Offset 64 - MemberDecorate 26($Global) 7 Offset 80 - Decorate 26($Global) Block - Decorate 28 DescriptorSet 0 - Decorate 43(g_tTex2di4a) DescriptorSet 0 - Decorate 59(g_tTex2du4a) DescriptorSet 0 - Decorate 355(Color) Location 0 - Decorate 359(Depth) BuiltIn FragDepth - Decorate 363(g_sSamp2d) DescriptorSet 0 - Decorate 366(g_tTex1df4a) DescriptorSet 0 - Decorate 366(g_tTex1df4a) Binding 0 - Decorate 369(g_tTex1di4a) DescriptorSet 0 - Decorate 372(g_tTex1du4a) DescriptorSet 0 - Decorate 375(g_tTexcdf4a) DescriptorSet 0 - Decorate 378(g_tTexcdi4a) DescriptorSet 0 - Decorate 381(g_tTexcdu4a) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 2D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex2df4a): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: TypeVector 6(float) 3 - 22: TypeInt 32 1 - 23: TypeVector 22(int) 2 - 24: TypeVector 22(int) 3 - 25: TypeVector 22(int) 4 - 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) - 27: TypePointer Uniform 26($Global) - 28: 27(ptr) Variable Uniform - 29: 22(int) Constant 2 - 30: TypePointer Uniform 21(fvec3) - 33: 22(int) Constant 5 - 34: TypePointer Uniform 23(ivec2) - 37: 22(int) Constant 0 - 39: TypePointer Function 25(ivec4) - 41: TypeImage 22(int) 2D array sampled format:Unknown - 42: TypePointer UniformConstant 41 - 43(g_tTex2di4a): 42(ptr) Variable UniformConstant - 46: TypeSampledImage 41 - 53: TypeInt 32 0 - 54: TypeVector 53(int) 4 - 55: TypePointer Function 54(ivec4) - 57: TypeImage 53(int) 2D array sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTex2du4a): 58(ptr) Variable UniformConstant - 62: TypeSampledImage 57 - 83: 53(int) Constant 4 - 84: TypeArray 23(ivec2) 83 - 127: 22(int) Constant 1 - 278: 22(int) Constant 3 - 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 347: TypePointer Function 346(PS_OUTPUT) - 349: 6(float) Constant 1065353216 - 350: 7(fvec4) ConstantComposite 349 349 349 349 - 352: TypePointer Function 6(float) - 354: TypePointer Output 7(fvec4) - 355(Color): 354(ptr) Variable Output - 358: TypePointer Output 6(float) - 359(Depth): 358(ptr) Variable Output - 363(g_sSamp2d): 15(ptr) Variable UniformConstant - 364: TypeImage 6(float) 1D array sampled format:Unknown - 365: TypePointer UniformConstant 364 -366(g_tTex1df4a): 365(ptr) Variable UniformConstant - 367: TypeImage 22(int) 1D array sampled format:Unknown - 368: TypePointer UniformConstant 367 -369(g_tTex1di4a): 368(ptr) Variable UniformConstant - 370: TypeImage 53(int) 1D array sampled format:Unknown - 371: TypePointer UniformConstant 370 -372(g_tTex1du4a): 371(ptr) Variable UniformConstant - 373: TypeImage 6(float) Cube array sampled format:Unknown - 374: TypePointer UniformConstant 373 -375(g_tTexcdf4a): 374(ptr) Variable UniformConstant - 376: TypeImage 22(int) Cube array sampled format:Unknown - 377: TypePointer UniformConstant 376 -378(g_tTexcdi4a): 377(ptr) Variable UniformConstant - 379: TypeImage 53(int) Cube array sampled format:Unknown - 380: TypePointer UniformConstant 379 -381(g_tTexcdu4a): 380(ptr) Variable UniformConstant + 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 - 9(txval001): 8(ptr) Variable Function - 40(txval011): 39(ptr) Variable Function - 56(txval021): 55(ptr) Variable Function - 69(txval004): 8(ptr) Variable Function - 87(txval014): 39(ptr) Variable Function - 103(txval024): 55(ptr) Variable Function - 119(txval101): 8(ptr) Variable Function - 129(txval111): 39(ptr) Variable Function - 138(txval121): 55(ptr) Variable Function - 147(txval104): 8(ptr) Variable Function - 163(txval114): 39(ptr) Variable Function - 179(txval124): 55(ptr) Variable Function - 195(txval201): 8(ptr) Variable Function - 204(txval211): 39(ptr) Variable Function - 213(txval221): 55(ptr) Variable Function - 222(txval204): 8(ptr) Variable Function - 238(txval214): 39(ptr) Variable Function - 254(txval224): 55(ptr) Variable Function - 270(txval301): 8(ptr) Variable Function - 280(txval311): 39(ptr) Variable Function - 289(txval321): 55(ptr) Variable Function - 298(txval304): 8(ptr) Variable Function - 314(txval314): 39(ptr) Variable Function - 330(txval324): 55(ptr) Variable Function - 348(psout): 347(ptr) Variable Function - 13: 10 Load 12(g_tTex2df4a) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 31: 30(ptr) AccessChain 28 29 - 32: 21(fvec3) Load 31 - 35: 34(ptr) AccessChain 28 33 - 36: 23(ivec2) Load 35 - 38: 7(fvec4) ImageGather 19 32 37 Offset 36 - Store 9(txval001) 38 - 44: 41 Load 43(g_tTex2di4a) - 45: 14 Load 16(g_sSamp) - 47: 46 SampledImage 44 45 - 48: 30(ptr) AccessChain 28 29 - 49: 21(fvec3) Load 48 - 50: 34(ptr) AccessChain 28 33 - 51: 23(ivec2) Load 50 - 52: 25(ivec4) ImageGather 47 49 37 Offset 51 - Store 40(txval011) 52 - 60: 57 Load 59(g_tTex2du4a) - 61: 14 Load 16(g_sSamp) - 63: 62 SampledImage 60 61 - 64: 30(ptr) AccessChain 28 29 - 65: 21(fvec3) Load 64 - 66: 34(ptr) AccessChain 28 33 - 67: 23(ivec2) Load 66 - 68: 54(ivec4) ImageGather 63 65 37 Offset 67 - Store 56(txval021) 68 - 70: 10 Load 12(g_tTex2df4a) - 71: 14 Load 16(g_sSamp) - 72: 18 SampledImage 70 71 - 73: 30(ptr) AccessChain 28 29 - 74: 21(fvec3) Load 73 - 75: 34(ptr) AccessChain 28 33 - 76: 23(ivec2) Load 75 - 77: 34(ptr) AccessChain 28 33 - 78: 23(ivec2) Load 77 - 79: 34(ptr) AccessChain 28 33 - 80: 23(ivec2) Load 79 - 81: 34(ptr) AccessChain 28 33 - 82: 23(ivec2) Load 81 - 85: 84 CompositeConstruct 76 78 80 82 - 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 - Store 69(txval004) 86 - 88: 41 Load 43(g_tTex2di4a) - 89: 14 Load 16(g_sSamp) - 90: 46 SampledImage 88 89 - 91: 30(ptr) AccessChain 28 29 - 92: 21(fvec3) Load 91 - 93: 34(ptr) AccessChain 28 33 - 94: 23(ivec2) Load 93 - 95: 34(ptr) AccessChain 28 33 - 96: 23(ivec2) Load 95 - 97: 34(ptr) AccessChain 28 33 - 98: 23(ivec2) Load 97 - 99: 34(ptr) AccessChain 28 33 - 100: 23(ivec2) Load 99 - 101: 84 CompositeConstruct 94 96 98 100 - 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 - Store 87(txval014) 102 - 104: 57 Load 59(g_tTex2du4a) - 105: 14 Load 16(g_sSamp) - 106: 62 SampledImage 104 105 - 107: 30(ptr) AccessChain 28 29 - 108: 21(fvec3) Load 107 - 109: 34(ptr) AccessChain 28 33 - 110: 23(ivec2) Load 109 - 111: 34(ptr) AccessChain 28 33 - 112: 23(ivec2) Load 111 - 113: 34(ptr) AccessChain 28 33 - 114: 23(ivec2) Load 113 - 115: 34(ptr) AccessChain 28 33 - 116: 23(ivec2) Load 115 - 117: 84 CompositeConstruct 110 112 114 116 - 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 - Store 103(txval024) 118 - 120: 10 Load 12(g_tTex2df4a) - 121: 14 Load 16(g_sSamp) - 122: 18 SampledImage 120 121 - 123: 30(ptr) AccessChain 28 29 - 124: 21(fvec3) Load 123 - 125: 34(ptr) AccessChain 28 33 - 126: 23(ivec2) Load 125 - 128: 7(fvec4) ImageGather 122 124 127 Offset 126 - Store 119(txval101) 128 - 130: 41 Load 43(g_tTex2di4a) - 131: 14 Load 16(g_sSamp) - 132: 46 SampledImage 130 131 - 133: 30(ptr) AccessChain 28 29 - 134: 21(fvec3) Load 133 - 135: 34(ptr) AccessChain 28 33 - 136: 23(ivec2) Load 135 - 137: 25(ivec4) ImageGather 132 134 127 Offset 136 - Store 129(txval111) 137 - 139: 57 Load 59(g_tTex2du4a) - 140: 14 Load 16(g_sSamp) - 141: 62 SampledImage 139 140 - 142: 30(ptr) AccessChain 28 29 - 143: 21(fvec3) Load 142 - 144: 34(ptr) AccessChain 28 33 - 145: 23(ivec2) Load 144 - 146: 54(ivec4) ImageGather 141 143 127 Offset 145 - Store 138(txval121) 146 - 148: 10 Load 12(g_tTex2df4a) - 149: 14 Load 16(g_sSamp) - 150: 18 SampledImage 148 149 - 151: 30(ptr) AccessChain 28 29 - 152: 21(fvec3) Load 151 - 153: 34(ptr) AccessChain 28 33 - 154: 23(ivec2) Load 153 - 155: 34(ptr) AccessChain 28 33 - 156: 23(ivec2) Load 155 - 157: 34(ptr) AccessChain 28 33 - 158: 23(ivec2) Load 157 - 159: 34(ptr) AccessChain 28 33 - 160: 23(ivec2) Load 159 - 161: 84 CompositeConstruct 154 156 158 160 - 162: 7(fvec4) ImageGather 150 152 127 ConstOffsets 161 - Store 147(txval104) 162 - 164: 41 Load 43(g_tTex2di4a) - 165: 14 Load 16(g_sSamp) - 166: 46 SampledImage 164 165 - 167: 30(ptr) AccessChain 28 29 - 168: 21(fvec3) Load 167 - 169: 34(ptr) AccessChain 28 33 - 170: 23(ivec2) Load 169 - 171: 34(ptr) AccessChain 28 33 - 172: 23(ivec2) Load 171 - 173: 34(ptr) AccessChain 28 33 - 174: 23(ivec2) Load 173 - 175: 34(ptr) AccessChain 28 33 - 176: 23(ivec2) Load 175 - 177: 84 CompositeConstruct 170 172 174 176 - 178: 25(ivec4) ImageGather 166 168 127 ConstOffsets 177 - Store 163(txval114) 178 - 180: 57 Load 59(g_tTex2du4a) - 181: 14 Load 16(g_sSamp) - 182: 62 SampledImage 180 181 - 183: 30(ptr) AccessChain 28 29 - 184: 21(fvec3) Load 183 - 185: 34(ptr) AccessChain 28 33 - 186: 23(ivec2) Load 185 - 187: 34(ptr) AccessChain 28 33 - 188: 23(ivec2) Load 187 - 189: 34(ptr) AccessChain 28 33 - 190: 23(ivec2) Load 189 - 191: 34(ptr) AccessChain 28 33 - 192: 23(ivec2) Load 191 - 193: 84 CompositeConstruct 186 188 190 192 - 194: 54(ivec4) ImageGather 182 184 127 ConstOffsets 193 - Store 179(txval124) 194 - 196: 10 Load 12(g_tTex2df4a) - 197: 14 Load 16(g_sSamp) - 198: 18 SampledImage 196 197 - 199: 30(ptr) AccessChain 28 29 - 200: 21(fvec3) Load 199 - 201: 34(ptr) AccessChain 28 33 - 202: 23(ivec2) Load 201 - 203: 7(fvec4) ImageGather 198 200 29 Offset 202 - Store 195(txval201) 203 - 205: 41 Load 43(g_tTex2di4a) - 206: 14 Load 16(g_sSamp) - 207: 46 SampledImage 205 206 - 208: 30(ptr) AccessChain 28 29 - 209: 21(fvec3) Load 208 - 210: 34(ptr) AccessChain 28 33 - 211: 23(ivec2) Load 210 - 212: 25(ivec4) ImageGather 207 209 29 Offset 211 - Store 204(txval211) 212 - 214: 57 Load 59(g_tTex2du4a) - 215: 14 Load 16(g_sSamp) - 216: 62 SampledImage 214 215 - 217: 30(ptr) AccessChain 28 29 - 218: 21(fvec3) Load 217 - 219: 34(ptr) AccessChain 28 33 - 220: 23(ivec2) Load 219 - 221: 54(ivec4) ImageGather 216 218 29 Offset 220 - Store 213(txval221) 221 - 223: 10 Load 12(g_tTex2df4a) - 224: 14 Load 16(g_sSamp) - 225: 18 SampledImage 223 224 - 226: 30(ptr) AccessChain 28 29 - 227: 21(fvec3) Load 226 - 228: 34(ptr) AccessChain 28 33 - 229: 23(ivec2) Load 228 - 230: 34(ptr) AccessChain 28 33 - 231: 23(ivec2) Load 230 - 232: 34(ptr) AccessChain 28 33 - 233: 23(ivec2) Load 232 - 234: 34(ptr) AccessChain 28 33 - 235: 23(ivec2) Load 234 - 236: 84 CompositeConstruct 229 231 233 235 - 237: 7(fvec4) ImageGather 225 227 29 ConstOffsets 236 - Store 222(txval204) 237 - 239: 41 Load 43(g_tTex2di4a) - 240: 14 Load 16(g_sSamp) - 241: 46 SampledImage 239 240 - 242: 30(ptr) AccessChain 28 29 - 243: 21(fvec3) Load 242 - 244: 34(ptr) AccessChain 28 33 - 245: 23(ivec2) Load 244 - 246: 34(ptr) AccessChain 28 33 - 247: 23(ivec2) Load 246 - 248: 34(ptr) AccessChain 28 33 - 249: 23(ivec2) Load 248 - 250: 34(ptr) AccessChain 28 33 - 251: 23(ivec2) Load 250 - 252: 84 CompositeConstruct 245 247 249 251 - 253: 25(ivec4) ImageGather 241 243 29 ConstOffsets 252 - Store 238(txval214) 253 - 255: 57 Load 59(g_tTex2du4a) - 256: 14 Load 16(g_sSamp) - 257: 62 SampledImage 255 256 - 258: 30(ptr) AccessChain 28 29 - 259: 21(fvec3) Load 258 - 260: 34(ptr) AccessChain 28 33 - 261: 23(ivec2) Load 260 - 262: 34(ptr) AccessChain 28 33 - 263: 23(ivec2) Load 262 - 264: 34(ptr) AccessChain 28 33 - 265: 23(ivec2) Load 264 - 266: 34(ptr) AccessChain 28 33 - 267: 23(ivec2) Load 266 - 268: 84 CompositeConstruct 261 263 265 267 - 269: 54(ivec4) ImageGather 257 259 29 ConstOffsets 268 - Store 254(txval224) 269 - 271: 10 Load 12(g_tTex2df4a) - 272: 14 Load 16(g_sSamp) - 273: 18 SampledImage 271 272 - 274: 30(ptr) AccessChain 28 29 - 275: 21(fvec3) Load 274 - 276: 34(ptr) AccessChain 28 33 - 277: 23(ivec2) Load 276 - 279: 7(fvec4) ImageGather 273 275 278 Offset 277 - Store 270(txval301) 279 - 281: 41 Load 43(g_tTex2di4a) - 282: 14 Load 16(g_sSamp) - 283: 46 SampledImage 281 282 - 284: 30(ptr) AccessChain 28 29 - 285: 21(fvec3) Load 284 - 286: 34(ptr) AccessChain 28 33 - 287: 23(ivec2) Load 286 - 288: 25(ivec4) ImageGather 283 285 278 Offset 287 - Store 280(txval311) 288 - 290: 57 Load 59(g_tTex2du4a) - 291: 14 Load 16(g_sSamp) - 292: 62 SampledImage 290 291 - 293: 30(ptr) AccessChain 28 29 - 294: 21(fvec3) Load 293 - 295: 34(ptr) AccessChain 28 33 - 296: 23(ivec2) Load 295 - 297: 54(ivec4) ImageGather 292 294 278 Offset 296 - Store 289(txval321) 297 - 299: 10 Load 12(g_tTex2df4a) - 300: 14 Load 16(g_sSamp) - 301: 18 SampledImage 299 300 - 302: 30(ptr) AccessChain 28 29 - 303: 21(fvec3) Load 302 - 304: 34(ptr) AccessChain 28 33 - 305: 23(ivec2) Load 304 - 306: 34(ptr) AccessChain 28 33 - 307: 23(ivec2) Load 306 - 308: 34(ptr) AccessChain 28 33 - 309: 23(ivec2) Load 308 - 310: 34(ptr) AccessChain 28 33 - 311: 23(ivec2) Load 310 - 312: 84 CompositeConstruct 305 307 309 311 - 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 - Store 298(txval304) 313 - 315: 41 Load 43(g_tTex2di4a) - 316: 14 Load 16(g_sSamp) - 317: 46 SampledImage 315 316 - 318: 30(ptr) AccessChain 28 29 - 319: 21(fvec3) Load 318 - 320: 34(ptr) AccessChain 28 33 - 321: 23(ivec2) Load 320 - 322: 34(ptr) AccessChain 28 33 - 323: 23(ivec2) Load 322 - 324: 34(ptr) AccessChain 28 33 - 325: 23(ivec2) Load 324 - 326: 34(ptr) AccessChain 28 33 - 327: 23(ivec2) Load 326 - 328: 84 CompositeConstruct 321 323 325 327 - 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 - Store 314(txval314) 329 - 331: 57 Load 59(g_tTex2du4a) - 332: 14 Load 16(g_sSamp) - 333: 62 SampledImage 331 332 - 334: 30(ptr) AccessChain 28 29 - 335: 21(fvec3) Load 334 - 336: 34(ptr) AccessChain 28 33 - 337: 23(ivec2) Load 336 - 338: 34(ptr) AccessChain 28 33 - 339: 23(ivec2) Load 338 - 340: 34(ptr) AccessChain 28 33 - 341: 23(ivec2) Load 340 - 342: 34(ptr) AccessChain 28 33 - 343: 23(ivec2) Load 342 - 344: 84 CompositeConstruct 337 339 341 343 - 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 - Store 330(txval324) 345 - 351: 8(ptr) AccessChain 348(psout) 37 - Store 351 350 - 353: 352(ptr) AccessChain 348(psout) 127 - Store 353 349 - 356: 8(ptr) AccessChain 348(psout) 37 - 357: 7(fvec4) Load 356 - Store 355(Color) 357 - 360: 352(ptr) AccessChain 348(psout) 127 - 361: 6(float) Load 360 - Store 359(Depth) 361 +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-new/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 0c488cfbfa..599c65912d 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1,1051 +1,1094 @@ hlsl.getdimensions.dx10.frag -Shader version: 450 +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 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 move second child to first child (temp uint) -0:65 'WidthU' (temp uint) -0:65 'sizeQueryTemp' (temp uint) +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 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: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 move second child to first child (temp uint) -0:69 'WidthU' (temp uint) -0:69 'sizeQueryTemp' (temp uint) +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 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: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 move second child to first child (temp uint) -0:73 'WidthU' (temp uint) -0:73 'sizeQueryTemp' (temp uint) +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 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: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 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 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 'ElementsU' (temp uint) -0:77 direct index (temp uint) -0:77 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'ElementsU' (temp uint) -0:81 direct index (temp uint) -0:81 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'ElementsU' (temp uint) -0:85 direct index (temp uint) -0:85 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:89 direct index (temp uint) -0:89 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:101 direct index (temp uint) -0:101 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:105 direct index (temp uint) -0:105 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:109 direct index (temp uint) -0:109 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:113 direct index (temp uint) -0:113 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:117 direct index (temp uint) -0:117 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:121 direct index (temp uint) -0:121 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:125 direct index (temp uint) -0:125 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:137 direct index (temp uint) -0:137 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:141 direct index (temp uint) -0:141 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:145 direct index (temp uint) -0:145 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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: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 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 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: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 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 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: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 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 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 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: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 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 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 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: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 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 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 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: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: @@ -1053,1111 +1096,1160 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:279 Sequence -0:279 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:279 Color: direct index for structure (temp 4-component vector of float) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:279 Constant: -0:279 0 (const int) -0:279 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:279 Depth: direct index for structure (temp float) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:279 Constant: -0:279 1 (const int) -0:279 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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:? '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: 450 +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 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 move second child to first child (temp uint) -0:65 'WidthU' (temp uint) -0:65 'sizeQueryTemp' (temp uint) +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 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: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 move second child to first child (temp uint) -0:69 'WidthU' (temp uint) -0:69 'sizeQueryTemp' (temp uint) +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 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: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 move second child to first child (temp uint) -0:73 'WidthU' (temp uint) -0:73 'sizeQueryTemp' (temp uint) +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 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: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 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 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 'ElementsU' (temp uint) -0:77 direct index (temp uint) -0:77 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'ElementsU' (temp uint) -0:81 direct index (temp uint) -0:81 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'ElementsU' (temp uint) -0:85 direct index (temp uint) -0:85 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:89 direct index (temp uint) -0:89 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:101 direct index (temp uint) -0:101 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:105 direct index (temp uint) -0:105 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:109 direct index (temp uint) -0:109 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:113 direct index (temp uint) -0:113 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:117 direct index (temp uint) -0:117 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:121 direct index (temp uint) -0:121 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:125 direct index (temp uint) -0:125 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 2-component vector of uint) +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 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 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 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: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 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 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 'HeightU' (temp uint) -0:137 direct index (temp uint) -0:137 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:141 direct index (temp uint) -0:141 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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 'HeightU' (temp uint) -0:145 direct index (temp uint) -0:145 'sizeQueryTemp' (temp 3-component vector of uint) +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 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 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 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 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 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: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 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 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: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 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 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: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 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 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: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 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 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 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: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 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 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 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: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 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 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 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: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: @@ -2165,925 +2257,941 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:279 Sequence -0:279 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:279 Color: direct index for structure (temp 4-component vector of float) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:279 Constant: -0:279 0 (const int) -0:279 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:279 Depth: direct index for structure (temp float) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:279 Constant: -0:279 1 (const int) -0:279 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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:? '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): 80001 -// Id's are bound by 545 +// Generated by (magic number): 80007 +// Id's are bound by 550 Capability Shader Capability Sampled1D Capability SampledCubeArray - Capability ImageMSArray Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 534 538 + EntryPoint Fragment 4 "main" 540 544 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "sizeQueryTemp" - Name 12 "g_tTex1df4" - Name 16 "WidthU" - Name 18 "sizeQueryTemp" - Name 23 "NumberOfLevelsU" - Name 26 "sizeQueryTemp" - Name 29 "g_tTex1di4" - Name 33 "sizeQueryTemp" + 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 42 "g_tTex1du4" - Name 46 "sizeQueryTemp" - Name 54 "sizeQueryTemp" - Name 57 "g_tTex1df4a" - Name 64 "ElementsU" - Name 68 "sizeQueryTemp" - Name 77 "sizeQueryTemp" - Name 80 "g_tTex1di4a" - Name 87 "sizeQueryTemp" - Name 96 "sizeQueryTemp" - Name 99 "g_tTex1du4a" - Name 106 "sizeQueryTemp" - Name 115 "sizeQueryTemp" - Name 118 "g_tTex2df4" - Name 123 "HeightU" - Name 126 "sizeQueryTemp" - Name 135 "sizeQueryTemp" - Name 138 "g_tTex2di4" - Name 145 "sizeQueryTemp" - Name 154 "sizeQueryTemp" - Name 157 "g_tTex2du4" - Name 164 "sizeQueryTemp" - Name 175 "sizeQueryTemp" - Name 178 "g_tTex2df4a" - Name 189 "sizeQueryTemp" - Name 200 "sizeQueryTemp" - Name 203 "g_tTex2di4a" - Name 212 "sizeQueryTemp" - Name 223 "sizeQueryTemp" - Name 226 "g_tTex2du4a" - Name 235 "sizeQueryTemp" - Name 246 "sizeQueryTemp" - Name 249 "g_tTex3df4" - Name 256 "DepthU" - Name 259 "sizeQueryTemp" - Name 270 "sizeQueryTemp" - Name 273 "g_tTex3di4" - Name 282 "sizeQueryTemp" - Name 293 "sizeQueryTemp" - Name 296 "g_tTex3du4" - Name 305 "sizeQueryTemp" - Name 316 "sizeQueryTemp" - Name 319 "g_tTexcdf4" - Name 326 "sizeQueryTemp" - Name 335 "sizeQueryTemp" - Name 338 "g_tTexcdi4" - Name 345 "sizeQueryTemp" - Name 354 "sizeQueryTemp" - Name 357 "g_tTexcdu4" - Name 364 "sizeQueryTemp" - Name 373 "sizeQueryTemp" - Name 376 "g_tTexcdf4a" - Name 385 "sizeQueryTemp" - Name 396 "sizeQueryTemp" - Name 399 "g_tTexcdi4a" - Name 408 "sizeQueryTemp" - Name 419 "sizeQueryTemp" - Name 422 "g_tTexcdu4a" - Name 431 "sizeQueryTemp" - Name 442 "sizeQueryTemp" - Name 445 "g_tTex2dmsf4" - Name 452 "NumberOfSamplesU" - Name 455 "sizeQueryTemp" - Name 458 "g_tTex2dmsi4" - Name 467 "sizeQueryTemp" - Name 470 "g_tTex2dmsu4" - Name 479 "sizeQueryTemp" - Name 482 "g_tTex2dmsf4a" - Name 493 "sizeQueryTemp" - Name 496 "g_tTex2dmsi4a" - Name 507 "sizeQueryTemp" - Name 510 "g_tTex2dmsu4a" - Name 522 "PS_OUTPUT" - MemberName 522(PS_OUTPUT) 0 "Color" - MemberName 522(PS_OUTPUT) 1 "Depth" - Name 524 "psout" - Name 534 "Color" - Name 538 "Depth" - Name 544 "g_sSamp" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 57(g_tTex1df4a) DescriptorSet 0 - Decorate 80(g_tTex1di4a) DescriptorSet 0 - Decorate 99(g_tTex1du4a) DescriptorSet 0 - Decorate 118(g_tTex2df4) DescriptorSet 0 - Decorate 138(g_tTex2di4) DescriptorSet 0 - Decorate 157(g_tTex2du4) DescriptorSet 0 - Decorate 178(g_tTex2df4a) DescriptorSet 0 - Decorate 203(g_tTex2di4a) DescriptorSet 0 - Decorate 226(g_tTex2du4a) DescriptorSet 0 - Decorate 249(g_tTex3df4) DescriptorSet 0 - Decorate 273(g_tTex3di4) DescriptorSet 0 - Decorate 296(g_tTex3du4) DescriptorSet 0 - Decorate 319(g_tTexcdf4) DescriptorSet 0 - Decorate 338(g_tTexcdi4) DescriptorSet 0 - Decorate 357(g_tTexcdu4) DescriptorSet 0 - Decorate 376(g_tTexcdf4a) DescriptorSet 0 - Decorate 399(g_tTexcdi4a) DescriptorSet 0 - Decorate 422(g_tTexcdu4a) DescriptorSet 0 - Decorate 445(g_tTex2dmsf4) DescriptorSet 0 - Decorate 458(g_tTex2dmsi4) DescriptorSet 0 - Decorate 470(g_tTex2dmsu4) DescriptorSet 0 - Decorate 482(g_tTex2dmsf4a) DescriptorSet 0 - Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 - Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 - Decorate 534(Color) Location 0 - Decorate 538(Depth) BuiltIn FragDepth - Decorate 544(g_sSamp) DescriptorSet 0 - Decorate 544(g_sSamp) Binding 0 + 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: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeFloat 32 - 10: TypeImage 9(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 20: 6(int) Constant 6 - 27: TypeImage 14(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 40: TypeImage 6(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 52: TypeVector 6(int) 2 - 53: TypePointer Function 52(ivec2) - 55: TypeImage 9(float) 1D array sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex1df4a): 56(ptr) Variable UniformConstant - 59: TypeVector 14(int) 2 - 61: 6(int) Constant 0 - 65: 6(int) Constant 1 - 78: TypeImage 14(int) 1D array sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTex1di4a): 79(ptr) Variable UniformConstant - 97: TypeImage 6(int) 1D array sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex1du4a): 98(ptr) Variable UniformConstant - 116: TypeImage 9(float) 2D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex2df4): 117(ptr) Variable UniformConstant - 136: TypeImage 14(int) 2D sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTex2di4): 137(ptr) Variable UniformConstant - 155: TypeImage 6(int) 2D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex2du4): 156(ptr) Variable UniformConstant - 173: TypeVector 6(int) 3 - 174: TypePointer Function 173(ivec3) - 176: TypeImage 9(float) 2D array sampled format:Unknown - 177: TypePointer UniformConstant 176 -178(g_tTex2df4a): 177(ptr) Variable UniformConstant - 180: TypeVector 14(int) 3 - 186: 6(int) Constant 2 - 201: TypeImage 14(int) 2D array sampled format:Unknown - 202: TypePointer UniformConstant 201 -203(g_tTex2di4a): 202(ptr) Variable UniformConstant - 224: TypeImage 6(int) 2D array sampled format:Unknown - 225: TypePointer UniformConstant 224 -226(g_tTex2du4a): 225(ptr) Variable UniformConstant - 247: TypeImage 9(float) 3D sampled format:Unknown - 248: TypePointer UniformConstant 247 - 249(g_tTex3df4): 248(ptr) Variable UniformConstant - 271: TypeImage 14(int) 3D sampled format:Unknown - 272: TypePointer UniformConstant 271 - 273(g_tTex3di4): 272(ptr) Variable UniformConstant - 294: TypeImage 6(int) 3D sampled format:Unknown - 295: TypePointer UniformConstant 294 - 296(g_tTex3du4): 295(ptr) Variable UniformConstant - 317: TypeImage 9(float) Cube sampled format:Unknown - 318: TypePointer UniformConstant 317 - 319(g_tTexcdf4): 318(ptr) Variable UniformConstant - 336: TypeImage 14(int) Cube sampled format:Unknown - 337: TypePointer UniformConstant 336 - 338(g_tTexcdi4): 337(ptr) Variable UniformConstant - 355: TypeImage 6(int) Cube sampled format:Unknown - 356: TypePointer UniformConstant 355 - 357(g_tTexcdu4): 356(ptr) Variable UniformConstant - 374: TypeImage 9(float) Cube array sampled format:Unknown - 375: TypePointer UniformConstant 374 -376(g_tTexcdf4a): 375(ptr) Variable UniformConstant - 397: TypeImage 14(int) Cube array sampled format:Unknown - 398: TypePointer UniformConstant 397 -399(g_tTexcdi4a): 398(ptr) Variable UniformConstant - 420: TypeImage 6(int) Cube array sampled format:Unknown - 421: TypePointer UniformConstant 420 -422(g_tTexcdu4a): 421(ptr) Variable UniformConstant - 443: TypeImage 9(float) 2D multi-sampled sampled format:Unknown - 444: TypePointer UniformConstant 443 -445(g_tTex2dmsf4): 444(ptr) Variable UniformConstant - 456: TypeImage 14(int) 2D multi-sampled sampled format:Unknown - 457: TypePointer UniformConstant 456 -458(g_tTex2dmsi4): 457(ptr) Variable UniformConstant - 468: TypeImage 6(int) 2D multi-sampled sampled format:Unknown - 469: TypePointer UniformConstant 468 -470(g_tTex2dmsu4): 469(ptr) Variable UniformConstant - 480: TypeImage 9(float) 2D array multi-sampled sampled format:Unknown - 481: TypePointer UniformConstant 480 -482(g_tTex2dmsf4a): 481(ptr) Variable UniformConstant - 494: TypeImage 14(int) 2D array multi-sampled sampled format:Unknown - 495: TypePointer UniformConstant 494 -496(g_tTex2dmsi4a): 495(ptr) Variable UniformConstant - 508: TypeImage 6(int) 2D array multi-sampled sampled format:Unknown - 509: TypePointer UniformConstant 508 -510(g_tTex2dmsu4a): 509(ptr) Variable UniformConstant - 521: TypeVector 9(float) 4 - 522(PS_OUTPUT): TypeStruct 521(fvec4) 9(float) - 523: TypePointer Function 522(PS_OUTPUT) - 525: 14(int) Constant 0 - 526: 9(float) Constant 1065353216 - 527: 521(fvec4) ConstantComposite 526 526 526 526 - 528: TypePointer Function 521(fvec4) - 530: 14(int) Constant 1 - 531: TypePointer Function 9(float) - 533: TypePointer Output 521(fvec4) - 534(Color): 533(ptr) Variable Output - 537: TypePointer Output 9(float) - 538(Depth): 537(ptr) Variable Output - 542: TypeSampler - 543: TypePointer UniformConstant 542 - 544(g_sSamp): 543(ptr) Variable UniformConstant + 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 -8(sizeQueryTemp): 7(ptr) Variable Function - 16(WidthU): 7(ptr) Variable Function -18(sizeQueryTemp): 7(ptr) Variable Function -23(NumberOfLevelsU): 7(ptr) Variable Function -26(sizeQueryTemp): 7(ptr) Variable Function -33(sizeQueryTemp): 7(ptr) Variable Function -39(sizeQueryTemp): 7(ptr) Variable Function -46(sizeQueryTemp): 7(ptr) Variable Function -54(sizeQueryTemp): 53(ptr) Variable Function - 64(ElementsU): 7(ptr) Variable Function -68(sizeQueryTemp): 53(ptr) Variable Function -77(sizeQueryTemp): 53(ptr) Variable Function -87(sizeQueryTemp): 53(ptr) Variable Function -96(sizeQueryTemp): 53(ptr) Variable Function -106(sizeQueryTemp): 53(ptr) Variable Function -115(sizeQueryTemp): 53(ptr) Variable Function - 123(HeightU): 7(ptr) Variable Function -126(sizeQueryTemp): 53(ptr) Variable Function -135(sizeQueryTemp): 53(ptr) Variable Function -145(sizeQueryTemp): 53(ptr) Variable Function -154(sizeQueryTemp): 53(ptr) Variable Function -164(sizeQueryTemp): 53(ptr) Variable Function -175(sizeQueryTemp): 174(ptr) Variable Function -189(sizeQueryTemp): 174(ptr) Variable Function -200(sizeQueryTemp): 174(ptr) Variable Function -212(sizeQueryTemp): 174(ptr) Variable Function -223(sizeQueryTemp): 174(ptr) Variable Function -235(sizeQueryTemp): 174(ptr) Variable Function -246(sizeQueryTemp): 174(ptr) Variable Function - 256(DepthU): 7(ptr) Variable Function -259(sizeQueryTemp): 174(ptr) Variable Function -270(sizeQueryTemp): 174(ptr) Variable Function -282(sizeQueryTemp): 174(ptr) Variable Function -293(sizeQueryTemp): 174(ptr) Variable Function -305(sizeQueryTemp): 174(ptr) Variable Function -316(sizeQueryTemp): 53(ptr) Variable Function -326(sizeQueryTemp): 53(ptr) Variable Function -335(sizeQueryTemp): 53(ptr) Variable Function -345(sizeQueryTemp): 53(ptr) Variable Function -354(sizeQueryTemp): 53(ptr) Variable Function -364(sizeQueryTemp): 53(ptr) Variable Function -373(sizeQueryTemp): 174(ptr) Variable Function -385(sizeQueryTemp): 174(ptr) Variable Function -396(sizeQueryTemp): 174(ptr) Variable Function -408(sizeQueryTemp): 174(ptr) Variable Function -419(sizeQueryTemp): 174(ptr) Variable Function -431(sizeQueryTemp): 174(ptr) Variable Function -442(sizeQueryTemp): 53(ptr) Variable Function -452(NumberOfSamplesU): 7(ptr) Variable Function -455(sizeQueryTemp): 53(ptr) Variable Function -467(sizeQueryTemp): 53(ptr) Variable Function -479(sizeQueryTemp): 174(ptr) Variable Function -493(sizeQueryTemp): 174(ptr) Variable Function -507(sizeQueryTemp): 174(ptr) Variable Function - 524(psout): 523(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 15: 14(int) ImageQuerySize 13 - Store 8(sizeQueryTemp) 15 - 17: 6(int) Load 8(sizeQueryTemp) - Store 16(WidthU) 17 - 19: 10 Load 12(g_tTex1df4) - 21: 14(int) ImageQuerySizeLod 19 20 - Store 18(sizeQueryTemp) 21 - 22: 6(int) Load 18(sizeQueryTemp) - Store 16(WidthU) 22 - 24: 10 Load 12(g_tTex1df4) - 25: 14(int) ImageQueryLevels 24 - Store 23(NumberOfLevelsU) 25 - 30: 27 Load 29(g_tTex1di4) - 31: 14(int) ImageQuerySize 30 - Store 26(sizeQueryTemp) 31 - 32: 6(int) Load 26(sizeQueryTemp) - Store 16(WidthU) 32 - 34: 27 Load 29(g_tTex1di4) - 35: 14(int) ImageQuerySizeLod 34 20 - Store 33(sizeQueryTemp) 35 - 36: 6(int) Load 33(sizeQueryTemp) - Store 16(WidthU) 36 - 37: 27 Load 29(g_tTex1di4) - 38: 14(int) ImageQueryLevels 37 - Store 23(NumberOfLevelsU) 38 - 43: 40 Load 42(g_tTex1du4) - 44: 14(int) ImageQuerySize 43 - Store 39(sizeQueryTemp) 44 - 45: 6(int) Load 39(sizeQueryTemp) - Store 16(WidthU) 45 - 47: 40 Load 42(g_tTex1du4) - 48: 14(int) ImageQuerySizeLod 47 20 - Store 46(sizeQueryTemp) 48 - 49: 6(int) Load 46(sizeQueryTemp) - Store 16(WidthU) 49 - 50: 40 Load 42(g_tTex1du4) - 51: 14(int) ImageQueryLevels 50 - Store 23(NumberOfLevelsU) 51 - 58: 55 Load 57(g_tTex1df4a) - 60: 59(ivec2) ImageQuerySize 58 - Store 54(sizeQueryTemp) 60 - 62: 7(ptr) AccessChain 54(sizeQueryTemp) 61 - 63: 6(int) Load 62 - Store 16(WidthU) 63 - 66: 7(ptr) AccessChain 54(sizeQueryTemp) 65 - 67: 6(int) Load 66 - Store 64(ElementsU) 67 - 69: 55 Load 57(g_tTex1df4a) - 70: 59(ivec2) ImageQuerySizeLod 69 20 - Store 68(sizeQueryTemp) 70 - 71: 7(ptr) AccessChain 68(sizeQueryTemp) 61 - 72: 6(int) Load 71 - Store 16(WidthU) 72 - 73: 7(ptr) AccessChain 68(sizeQueryTemp) 65 - 74: 6(int) Load 73 - Store 64(ElementsU) 74 - 75: 55 Load 57(g_tTex1df4a) - 76: 14(int) ImageQueryLevels 75 - Store 23(NumberOfLevelsU) 76 - 81: 78 Load 80(g_tTex1di4a) - 82: 59(ivec2) ImageQuerySize 81 - Store 77(sizeQueryTemp) 82 - 83: 7(ptr) AccessChain 77(sizeQueryTemp) 61 - 84: 6(int) Load 83 - Store 16(WidthU) 84 - 85: 7(ptr) AccessChain 77(sizeQueryTemp) 65 - 86: 6(int) Load 85 - Store 64(ElementsU) 86 - 88: 78 Load 80(g_tTex1di4a) - 89: 59(ivec2) ImageQuerySizeLod 88 20 - Store 87(sizeQueryTemp) 89 - 90: 7(ptr) AccessChain 87(sizeQueryTemp) 61 - 91: 6(int) Load 90 - Store 16(WidthU) 91 - 92: 7(ptr) AccessChain 87(sizeQueryTemp) 65 - 93: 6(int) Load 92 - Store 64(ElementsU) 93 - 94: 78 Load 80(g_tTex1di4a) - 95: 14(int) ImageQueryLevels 94 - Store 23(NumberOfLevelsU) 95 - 100: 97 Load 99(g_tTex1du4a) - 101: 59(ivec2) ImageQuerySize 100 - Store 96(sizeQueryTemp) 101 - 102: 7(ptr) AccessChain 96(sizeQueryTemp) 61 - 103: 6(int) Load 102 - Store 16(WidthU) 103 - 104: 7(ptr) AccessChain 96(sizeQueryTemp) 65 - 105: 6(int) Load 104 - Store 64(ElementsU) 105 - 107: 97 Load 99(g_tTex1du4a) - 108: 59(ivec2) ImageQuerySizeLod 107 20 - Store 106(sizeQueryTemp) 108 - 109: 7(ptr) AccessChain 106(sizeQueryTemp) 61 - 110: 6(int) Load 109 - Store 16(WidthU) 110 - 111: 7(ptr) AccessChain 106(sizeQueryTemp) 65 - 112: 6(int) Load 111 - Store 64(ElementsU) 112 - 113: 97 Load 99(g_tTex1du4a) - 114: 14(int) ImageQueryLevels 113 - Store 23(NumberOfLevelsU) 114 - 119: 116 Load 118(g_tTex2df4) - 120: 59(ivec2) ImageQuerySize 119 - Store 115(sizeQueryTemp) 120 - 121: 7(ptr) AccessChain 115(sizeQueryTemp) 61 - 122: 6(int) Load 121 - Store 16(WidthU) 122 - 124: 7(ptr) AccessChain 115(sizeQueryTemp) 65 - 125: 6(int) Load 124 - Store 123(HeightU) 125 - 127: 116 Load 118(g_tTex2df4) - 128: 59(ivec2) ImageQuerySizeLod 127 20 - Store 126(sizeQueryTemp) 128 - 129: 7(ptr) AccessChain 126(sizeQueryTemp) 61 - 130: 6(int) Load 129 - Store 16(WidthU) 130 - 131: 7(ptr) AccessChain 126(sizeQueryTemp) 65 - 132: 6(int) Load 131 - Store 123(HeightU) 132 - 133: 116 Load 118(g_tTex2df4) - 134: 14(int) ImageQueryLevels 133 - Store 23(NumberOfLevelsU) 134 - 139: 136 Load 138(g_tTex2di4) - 140: 59(ivec2) ImageQuerySize 139 - Store 135(sizeQueryTemp) 140 - 141: 7(ptr) AccessChain 135(sizeQueryTemp) 61 - 142: 6(int) Load 141 - Store 16(WidthU) 142 - 143: 7(ptr) AccessChain 135(sizeQueryTemp) 65 - 144: 6(int) Load 143 - Store 123(HeightU) 144 - 146: 136 Load 138(g_tTex2di4) - 147: 59(ivec2) ImageQuerySizeLod 146 20 - Store 145(sizeQueryTemp) 147 - 148: 7(ptr) AccessChain 145(sizeQueryTemp) 61 - 149: 6(int) Load 148 - Store 16(WidthU) 149 - 150: 7(ptr) AccessChain 145(sizeQueryTemp) 65 - 151: 6(int) Load 150 - Store 123(HeightU) 151 - 152: 136 Load 138(g_tTex2di4) - 153: 14(int) ImageQueryLevels 152 - Store 23(NumberOfLevelsU) 153 - 158: 155 Load 157(g_tTex2du4) - 159: 59(ivec2) ImageQuerySize 158 - Store 154(sizeQueryTemp) 159 - 160: 7(ptr) AccessChain 154(sizeQueryTemp) 61 - 161: 6(int) Load 160 - Store 16(WidthU) 161 - 162: 7(ptr) AccessChain 154(sizeQueryTemp) 65 - 163: 6(int) Load 162 - Store 123(HeightU) 163 - 165: 155 Load 157(g_tTex2du4) - 166: 59(ivec2) ImageQuerySizeLod 165 20 - Store 164(sizeQueryTemp) 166 - 167: 7(ptr) AccessChain 164(sizeQueryTemp) 61 - 168: 6(int) Load 167 - Store 16(WidthU) 168 - 169: 7(ptr) AccessChain 164(sizeQueryTemp) 65 - 170: 6(int) Load 169 - Store 123(HeightU) 170 - 171: 155 Load 157(g_tTex2du4) - 172: 14(int) ImageQueryLevels 171 - Store 23(NumberOfLevelsU) 172 - 179: 176 Load 178(g_tTex2df4a) - 181: 180(ivec3) ImageQuerySize 179 - Store 175(sizeQueryTemp) 181 - 182: 7(ptr) AccessChain 175(sizeQueryTemp) 61 - 183: 6(int) Load 182 - Store 16(WidthU) 183 - 184: 7(ptr) AccessChain 175(sizeQueryTemp) 65 - 185: 6(int) Load 184 - Store 123(HeightU) 185 - 187: 7(ptr) AccessChain 175(sizeQueryTemp) 186 - 188: 6(int) Load 187 - Store 64(ElementsU) 188 - 190: 176 Load 178(g_tTex2df4a) - 191: 180(ivec3) ImageQuerySizeLod 190 20 - Store 189(sizeQueryTemp) 191 - 192: 7(ptr) AccessChain 189(sizeQueryTemp) 61 - 193: 6(int) Load 192 - Store 16(WidthU) 193 - 194: 7(ptr) AccessChain 189(sizeQueryTemp) 65 - 195: 6(int) Load 194 - Store 123(HeightU) 195 - 196: 7(ptr) AccessChain 189(sizeQueryTemp) 186 - 197: 6(int) Load 196 - Store 64(ElementsU) 197 - 198: 176 Load 178(g_tTex2df4a) - 199: 14(int) ImageQueryLevels 198 - Store 23(NumberOfLevelsU) 199 - 204: 201 Load 203(g_tTex2di4a) - 205: 180(ivec3) ImageQuerySize 204 - Store 200(sizeQueryTemp) 205 - 206: 7(ptr) AccessChain 200(sizeQueryTemp) 61 - 207: 6(int) Load 206 - Store 16(WidthU) 207 - 208: 7(ptr) AccessChain 200(sizeQueryTemp) 65 - 209: 6(int) Load 208 - Store 123(HeightU) 209 - 210: 7(ptr) AccessChain 200(sizeQueryTemp) 186 - 211: 6(int) Load 210 - Store 64(ElementsU) 211 - 213: 201 Load 203(g_tTex2di4a) - 214: 180(ivec3) ImageQuerySizeLod 213 20 - Store 212(sizeQueryTemp) 214 - 215: 7(ptr) AccessChain 212(sizeQueryTemp) 61 - 216: 6(int) Load 215 - Store 16(WidthU) 216 - 217: 7(ptr) AccessChain 212(sizeQueryTemp) 65 - 218: 6(int) Load 217 - Store 123(HeightU) 218 - 219: 7(ptr) AccessChain 212(sizeQueryTemp) 186 - 220: 6(int) Load 219 - Store 64(ElementsU) 220 - 221: 201 Load 203(g_tTex2di4a) - 222: 14(int) ImageQueryLevels 221 - Store 23(NumberOfLevelsU) 222 - 227: 224 Load 226(g_tTex2du4a) - 228: 180(ivec3) ImageQuerySize 227 - Store 223(sizeQueryTemp) 228 - 229: 7(ptr) AccessChain 223(sizeQueryTemp) 61 - 230: 6(int) Load 229 - Store 16(WidthU) 230 - 231: 7(ptr) AccessChain 223(sizeQueryTemp) 65 - 232: 6(int) Load 231 - Store 123(HeightU) 232 - 233: 7(ptr) AccessChain 223(sizeQueryTemp) 186 - 234: 6(int) Load 233 - Store 64(ElementsU) 234 - 236: 224 Load 226(g_tTex2du4a) - 237: 180(ivec3) ImageQuerySizeLod 236 20 - Store 235(sizeQueryTemp) 237 - 238: 7(ptr) AccessChain 235(sizeQueryTemp) 61 - 239: 6(int) Load 238 - Store 16(WidthU) 239 - 240: 7(ptr) AccessChain 235(sizeQueryTemp) 65 - 241: 6(int) Load 240 - Store 123(HeightU) 241 - 242: 7(ptr) AccessChain 235(sizeQueryTemp) 186 - 243: 6(int) Load 242 - Store 64(ElementsU) 243 - 244: 224 Load 226(g_tTex2du4a) - 245: 14(int) ImageQueryLevels 244 - Store 23(NumberOfLevelsU) 245 - 250: 247 Load 249(g_tTex3df4) - 251: 180(ivec3) ImageQuerySize 250 - Store 246(sizeQueryTemp) 251 - 252: 7(ptr) AccessChain 246(sizeQueryTemp) 61 - 253: 6(int) Load 252 - Store 16(WidthU) 253 - 254: 7(ptr) AccessChain 246(sizeQueryTemp) 65 - 255: 6(int) Load 254 - Store 123(HeightU) 255 - 257: 7(ptr) AccessChain 246(sizeQueryTemp) 186 - 258: 6(int) Load 257 - Store 256(DepthU) 258 - 260: 247 Load 249(g_tTex3df4) - 261: 180(ivec3) ImageQuerySizeLod 260 20 - Store 259(sizeQueryTemp) 261 - 262: 7(ptr) AccessChain 259(sizeQueryTemp) 61 - 263: 6(int) Load 262 - Store 16(WidthU) 263 - 264: 7(ptr) AccessChain 259(sizeQueryTemp) 65 - 265: 6(int) Load 264 - Store 123(HeightU) 265 - 266: 7(ptr) AccessChain 259(sizeQueryTemp) 186 - 267: 6(int) Load 266 - Store 256(DepthU) 267 - 268: 247 Load 249(g_tTex3df4) - 269: 14(int) ImageQueryLevels 268 - Store 23(NumberOfLevelsU) 269 - 274: 271 Load 273(g_tTex3di4) - 275: 180(ivec3) ImageQuerySize 274 - Store 270(sizeQueryTemp) 275 - 276: 7(ptr) AccessChain 270(sizeQueryTemp) 61 - 277: 6(int) Load 276 - Store 16(WidthU) 277 - 278: 7(ptr) AccessChain 270(sizeQueryTemp) 65 - 279: 6(int) Load 278 - Store 123(HeightU) 279 - 280: 7(ptr) AccessChain 270(sizeQueryTemp) 186 - 281: 6(int) Load 280 - Store 256(DepthU) 281 - 283: 271 Load 273(g_tTex3di4) - 284: 180(ivec3) ImageQuerySizeLod 283 20 - Store 282(sizeQueryTemp) 284 - 285: 7(ptr) AccessChain 282(sizeQueryTemp) 61 - 286: 6(int) Load 285 - Store 16(WidthU) 286 - 287: 7(ptr) AccessChain 282(sizeQueryTemp) 65 - 288: 6(int) Load 287 - Store 123(HeightU) 288 - 289: 7(ptr) AccessChain 282(sizeQueryTemp) 186 - 290: 6(int) Load 289 - Store 256(DepthU) 290 - 291: 271 Load 273(g_tTex3di4) - 292: 14(int) ImageQueryLevels 291 - Store 23(NumberOfLevelsU) 292 - 297: 294 Load 296(g_tTex3du4) - 298: 180(ivec3) ImageQuerySize 297 - Store 293(sizeQueryTemp) 298 - 299: 7(ptr) AccessChain 293(sizeQueryTemp) 61 - 300: 6(int) Load 299 - Store 16(WidthU) 300 - 301: 7(ptr) AccessChain 293(sizeQueryTemp) 65 - 302: 6(int) Load 301 - Store 123(HeightU) 302 - 303: 7(ptr) AccessChain 293(sizeQueryTemp) 186 - 304: 6(int) Load 303 - Store 256(DepthU) 304 - 306: 294 Load 296(g_tTex3du4) - 307: 180(ivec3) ImageQuerySizeLod 306 20 - Store 305(sizeQueryTemp) 307 - 308: 7(ptr) AccessChain 305(sizeQueryTemp) 61 - 309: 6(int) Load 308 - Store 16(WidthU) 309 - 310: 7(ptr) AccessChain 305(sizeQueryTemp) 65 - 311: 6(int) Load 310 - Store 123(HeightU) 311 - 312: 7(ptr) AccessChain 305(sizeQueryTemp) 186 - 313: 6(int) Load 312 - Store 256(DepthU) 313 - 314: 294 Load 296(g_tTex3du4) - 315: 14(int) ImageQueryLevels 314 - Store 23(NumberOfLevelsU) 315 - 320: 317 Load 319(g_tTexcdf4) - 321: 59(ivec2) ImageQuerySize 320 - Store 316(sizeQueryTemp) 321 - 322: 7(ptr) AccessChain 316(sizeQueryTemp) 61 - 323: 6(int) Load 322 - Store 16(WidthU) 323 - 324: 7(ptr) AccessChain 316(sizeQueryTemp) 65 - 325: 6(int) Load 324 - Store 123(HeightU) 325 - 327: 317 Load 319(g_tTexcdf4) - 328: 59(ivec2) ImageQuerySizeLod 327 20 - Store 326(sizeQueryTemp) 328 - 329: 7(ptr) AccessChain 326(sizeQueryTemp) 61 - 330: 6(int) Load 329 - Store 16(WidthU) 330 - 331: 7(ptr) AccessChain 326(sizeQueryTemp) 65 - 332: 6(int) Load 331 - Store 123(HeightU) 332 - 333: 317 Load 319(g_tTexcdf4) - 334: 14(int) ImageQueryLevels 333 - Store 23(NumberOfLevelsU) 334 - 339: 336 Load 338(g_tTexcdi4) - 340: 59(ivec2) ImageQuerySize 339 - Store 335(sizeQueryTemp) 340 - 341: 7(ptr) AccessChain 335(sizeQueryTemp) 61 - 342: 6(int) Load 341 - Store 16(WidthU) 342 - 343: 7(ptr) AccessChain 335(sizeQueryTemp) 65 - 344: 6(int) Load 343 - Store 123(HeightU) 344 - 346: 336 Load 338(g_tTexcdi4) - 347: 59(ivec2) ImageQuerySizeLod 346 20 - Store 345(sizeQueryTemp) 347 - 348: 7(ptr) AccessChain 345(sizeQueryTemp) 61 - 349: 6(int) Load 348 - Store 16(WidthU) 349 - 350: 7(ptr) AccessChain 345(sizeQueryTemp) 65 - 351: 6(int) Load 350 - Store 123(HeightU) 351 - 352: 336 Load 338(g_tTexcdi4) - 353: 14(int) ImageQueryLevels 352 - Store 23(NumberOfLevelsU) 353 - 358: 355 Load 357(g_tTexcdu4) - 359: 59(ivec2) ImageQuerySize 358 - Store 354(sizeQueryTemp) 359 - 360: 7(ptr) AccessChain 354(sizeQueryTemp) 61 - 361: 6(int) Load 360 - Store 16(WidthU) 361 - 362: 7(ptr) AccessChain 354(sizeQueryTemp) 65 - 363: 6(int) Load 362 - Store 123(HeightU) 363 - 365: 355 Load 357(g_tTexcdu4) - 366: 59(ivec2) ImageQuerySizeLod 365 20 - Store 364(sizeQueryTemp) 366 - 367: 7(ptr) AccessChain 364(sizeQueryTemp) 61 - 368: 6(int) Load 367 - Store 16(WidthU) 368 - 369: 7(ptr) AccessChain 364(sizeQueryTemp) 65 - 370: 6(int) Load 369 - Store 123(HeightU) 370 - 371: 355 Load 357(g_tTexcdu4) - 372: 14(int) ImageQueryLevels 371 - Store 23(NumberOfLevelsU) 372 - 377: 374 Load 376(g_tTexcdf4a) - 378: 180(ivec3) ImageQuerySize 377 - Store 373(sizeQueryTemp) 378 - 379: 7(ptr) AccessChain 373(sizeQueryTemp) 61 - 380: 6(int) Load 379 - Store 16(WidthU) 380 - 381: 7(ptr) AccessChain 373(sizeQueryTemp) 65 - 382: 6(int) Load 381 - Store 123(HeightU) 382 - 383: 7(ptr) AccessChain 373(sizeQueryTemp) 186 - 384: 6(int) Load 383 - Store 64(ElementsU) 384 - 386: 374 Load 376(g_tTexcdf4a) - 387: 180(ivec3) ImageQuerySizeLod 386 20 - Store 385(sizeQueryTemp) 387 - 388: 7(ptr) AccessChain 385(sizeQueryTemp) 61 - 389: 6(int) Load 388 - Store 16(WidthU) 389 - 390: 7(ptr) AccessChain 385(sizeQueryTemp) 65 - 391: 6(int) Load 390 - Store 123(HeightU) 391 - 392: 7(ptr) AccessChain 385(sizeQueryTemp) 186 - 393: 6(int) Load 392 - Store 64(ElementsU) 393 - 394: 374 Load 376(g_tTexcdf4a) - 395: 14(int) ImageQueryLevels 394 - Store 23(NumberOfLevelsU) 395 - 400: 397 Load 399(g_tTexcdi4a) - 401: 180(ivec3) ImageQuerySize 400 - Store 396(sizeQueryTemp) 401 - 402: 7(ptr) AccessChain 396(sizeQueryTemp) 61 - 403: 6(int) Load 402 - Store 16(WidthU) 403 - 404: 7(ptr) AccessChain 396(sizeQueryTemp) 65 - 405: 6(int) Load 404 - Store 123(HeightU) 405 - 406: 7(ptr) AccessChain 396(sizeQueryTemp) 186 - 407: 6(int) Load 406 - Store 64(ElementsU) 407 - 409: 397 Load 399(g_tTexcdi4a) - 410: 180(ivec3) ImageQuerySizeLod 409 20 - Store 408(sizeQueryTemp) 410 - 411: 7(ptr) AccessChain 408(sizeQueryTemp) 61 - 412: 6(int) Load 411 - Store 16(WidthU) 412 - 413: 7(ptr) AccessChain 408(sizeQueryTemp) 65 - 414: 6(int) Load 413 - Store 123(HeightU) 414 - 415: 7(ptr) AccessChain 408(sizeQueryTemp) 186 - 416: 6(int) Load 415 - Store 64(ElementsU) 416 - 417: 397 Load 399(g_tTexcdi4a) - 418: 14(int) ImageQueryLevels 417 - Store 23(NumberOfLevelsU) 418 - 423: 420 Load 422(g_tTexcdu4a) - 424: 180(ivec3) ImageQuerySize 423 - Store 419(sizeQueryTemp) 424 - 425: 7(ptr) AccessChain 419(sizeQueryTemp) 61 - 426: 6(int) Load 425 - Store 16(WidthU) 426 - 427: 7(ptr) AccessChain 419(sizeQueryTemp) 65 - 428: 6(int) Load 427 - Store 123(HeightU) 428 - 429: 7(ptr) AccessChain 419(sizeQueryTemp) 186 - 430: 6(int) Load 429 - Store 64(ElementsU) 430 - 432: 420 Load 422(g_tTexcdu4a) - 433: 180(ivec3) ImageQuerySizeLod 432 20 - Store 431(sizeQueryTemp) 433 - 434: 7(ptr) AccessChain 431(sizeQueryTemp) 61 - 435: 6(int) Load 434 - Store 16(WidthU) 435 - 436: 7(ptr) AccessChain 431(sizeQueryTemp) 65 - 437: 6(int) Load 436 - Store 123(HeightU) 437 - 438: 7(ptr) AccessChain 431(sizeQueryTemp) 186 - 439: 6(int) Load 438 - Store 64(ElementsU) 439 - 440: 420 Load 422(g_tTexcdu4a) - 441: 14(int) ImageQueryLevels 440 - Store 23(NumberOfLevelsU) 441 - 446: 443 Load 445(g_tTex2dmsf4) - 447: 59(ivec2) ImageQuerySize 446 - Store 442(sizeQueryTemp) 447 - 448: 7(ptr) AccessChain 442(sizeQueryTemp) 61 - 449: 6(int) Load 448 - Store 16(WidthU) 449 - 450: 7(ptr) AccessChain 442(sizeQueryTemp) 65 - 451: 6(int) Load 450 - Store 123(HeightU) 451 - 453: 443 Load 445(g_tTex2dmsf4) - 454: 14(int) ImageQuerySamples 453 - Store 452(NumberOfSamplesU) 454 - 459: 456 Load 458(g_tTex2dmsi4) - 460: 59(ivec2) ImageQuerySize 459 - Store 455(sizeQueryTemp) 460 - 461: 7(ptr) AccessChain 455(sizeQueryTemp) 61 - 462: 6(int) Load 461 - Store 16(WidthU) 462 - 463: 7(ptr) AccessChain 455(sizeQueryTemp) 65 - 464: 6(int) Load 463 - Store 123(HeightU) 464 - 465: 456 Load 458(g_tTex2dmsi4) - 466: 14(int) ImageQuerySamples 465 - Store 452(NumberOfSamplesU) 466 - 471: 468 Load 470(g_tTex2dmsu4) - 472: 59(ivec2) ImageQuerySize 471 - Store 467(sizeQueryTemp) 472 - 473: 7(ptr) AccessChain 467(sizeQueryTemp) 61 - 474: 6(int) Load 473 - Store 16(WidthU) 474 - 475: 7(ptr) AccessChain 467(sizeQueryTemp) 65 - 476: 6(int) Load 475 - Store 123(HeightU) 476 - 477: 468 Load 470(g_tTex2dmsu4) - 478: 14(int) ImageQuerySamples 477 - Store 452(NumberOfSamplesU) 478 - 483: 480 Load 482(g_tTex2dmsf4a) - 484: 180(ivec3) ImageQuerySize 483 - Store 479(sizeQueryTemp) 484 - 485: 7(ptr) AccessChain 479(sizeQueryTemp) 61 - 486: 6(int) Load 485 - Store 16(WidthU) 486 - 487: 7(ptr) AccessChain 479(sizeQueryTemp) 65 - 488: 6(int) Load 487 - Store 123(HeightU) 488 - 489: 7(ptr) AccessChain 479(sizeQueryTemp) 186 - 490: 6(int) Load 489 - Store 64(ElementsU) 490 - 491: 480 Load 482(g_tTex2dmsf4a) - 492: 14(int) ImageQuerySamples 491 - Store 452(NumberOfSamplesU) 492 - 497: 494 Load 496(g_tTex2dmsi4a) - 498: 180(ivec3) ImageQuerySize 497 - Store 493(sizeQueryTemp) 498 - 499: 7(ptr) AccessChain 493(sizeQueryTemp) 61 - 500: 6(int) Load 499 - Store 16(WidthU) 500 - 501: 7(ptr) AccessChain 493(sizeQueryTemp) 65 - 502: 6(int) Load 501 - Store 123(HeightU) 502 - 503: 7(ptr) AccessChain 493(sizeQueryTemp) 186 - 504: 6(int) Load 503 - Store 64(ElementsU) 504 - 505: 494 Load 496(g_tTex2dmsi4a) - 506: 14(int) ImageQuerySamples 505 - Store 452(NumberOfSamplesU) 506 - 511: 508 Load 510(g_tTex2dmsu4a) - 512: 180(ivec3) ImageQuerySize 511 - Store 507(sizeQueryTemp) 512 - 513: 7(ptr) AccessChain 507(sizeQueryTemp) 61 - 514: 6(int) Load 513 - Store 16(WidthU) 514 - 515: 7(ptr) AccessChain 507(sizeQueryTemp) 65 - 516: 6(int) Load 515 - Store 123(HeightU) 516 - 517: 7(ptr) AccessChain 507(sizeQueryTemp) 186 - 518: 6(int) Load 517 - Store 64(ElementsU) 518 - 519: 508 Load 510(g_tTex2dmsu4a) - 520: 14(int) ImageQuerySamples 519 - Store 452(NumberOfSamplesU) 520 - 529: 528(ptr) AccessChain 524(psout) 525 - Store 529 527 - 532: 531(ptr) AccessChain 524(psout) 530 - Store 532 526 - 535: 528(ptr) AccessChain 524(psout) 525 - 536: 521(fvec4) Load 535 - Store 534(Color) 536 - 539: 531(ptr) AccessChain 524(psout) 530 - 540: 9(float) Load 539 - Store 538(Depth) 540 +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 index c1c90f4b25..cccdfeb247 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -1,34 +1,36 @@ hlsl.getdimensions.dx10.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence -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 move second child to first child (temp uint) -0:21 'WidthU' (temp uint) -0:21 'sizeQueryTemp' (temp uint) +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 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: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: @@ -36,54 +38,59 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:26 Pos: direct index for structure (temp 4-component vector of float) -0:26 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:26 Constant: -0:26 0 (const int) -0:26 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_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: 450 +Shader version: 500 0:? Sequence -0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence -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 move second child to first child (temp uint) -0:21 'WidthU' (temp uint) -0:21 'sizeQueryTemp' (temp uint) +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 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: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: @@ -91,92 +98,103 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:26 Pos: direct index for structure (temp 4-component vector of float) -0:26 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:26 Constant: -0:26 0 (const int) -0:26 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_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): 80001 -// Id's are bound by 43 +// 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" 36 + EntryPoint Vertex 4 "main" 42 + Source HLSL 500 Name 4 "main" - Name 8 "sizeQueryTemp" - Name 12 "g_tTex1df4" - Name 16 "WidthU" - Name 18 "sizeQueryTemp" - Name 23 "NumberOfLevelsU" - Name 27 "VS_OUTPUT" - MemberName 27(VS_OUTPUT) 0 "Pos" - Name 29 "vsout" - Name 36 "Pos" - Name 42 "g_sSamp" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 36(Pos) BuiltIn Position - Decorate 42(g_sSamp) DescriptorSet 0 - Decorate 42(g_sSamp) Binding 0 + 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: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeFloat 32 - 10: TypeImage 9(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 20: 6(int) Constant 6 - 26: TypeVector 9(float) 4 - 27(VS_OUTPUT): TypeStruct 26(fvec4) - 28: TypePointer Function 27(VS_OUTPUT) - 30: 14(int) Constant 0 - 31: 9(float) Constant 0 - 32: 26(fvec4) ConstantComposite 31 31 31 31 - 33: TypePointer Function 26(fvec4) - 35: TypePointer Output 26(fvec4) - 36(Pos): 35(ptr) Variable Output - 40: TypeSampler - 41: TypePointer UniformConstant 40 - 42(g_sSamp): 41(ptr) Variable UniformConstant + 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 -8(sizeQueryTemp): 7(ptr) Variable Function - 16(WidthU): 7(ptr) Variable Function -18(sizeQueryTemp): 7(ptr) Variable Function -23(NumberOfLevelsU): 7(ptr) Variable Function - 29(vsout): 28(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 15: 14(int) ImageQuerySize 13 - Store 8(sizeQueryTemp) 15 - 17: 6(int) Load 8(sizeQueryTemp) - Store 16(WidthU) 17 - 19: 10 Load 12(g_tTex1df4) - 21: 14(int) ImageQuerySizeLod 19 20 - Store 18(sizeQueryTemp) 21 - 22: 6(int) Load 18(sizeQueryTemp) - Store 16(WidthU) 22 - 24: 10 Load 12(g_tTex1df4) - 25: 14(int) ImageQueryLevels 24 - Store 23(NumberOfLevelsU) 25 - 34: 33(ptr) AccessChain 29(vsout) 30 - Store 34 32 - 37: 33(ptr) AccessChain 29(vsout) 30 - 38: 26(fvec4) Load 37 - Store 36(Pos) 38 + 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 index 918246b6ed..0b9a674099 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out @@ -1,301 +1,302 @@ hlsl.getdimensions.rw.dx10.frag -Shader version: 450 +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 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: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: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: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: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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: @@ -303,353 +304,360 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:93 Depth: direct index for structure ( temp float) +0:93 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:93 Constant: 0:93 1 (const int) 0:93 Constant: 0:93 1.000000 -0:95 Sequence -0:95 Sequence -0:95 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:95 Color: direct index for structure (temp 4-component vector of float) -0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:95 Constant: -0:95 0 (const int) -0:95 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:95 Depth: direct index for structure (temp float) -0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:95 Constant: -0:95 1 (const int) -0:95 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) -0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) -0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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: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: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: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: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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: @@ -657,434 +665,453 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:93 Depth: direct index for structure ( temp float) +0:93 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:93 Constant: 0:93 1 (const int) 0:93 Constant: 0:93 1.000000 -0:95 Sequence -0:95 Sequence -0:95 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:95 Color: direct index for structure (temp 4-component vector of float) -0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:95 Constant: -0:95 0 (const int) -0:95 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:95 Depth: direct index for structure (temp float) -0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:95 Constant: -0:95 1 (const int) -0:95 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) -0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) -0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 225 +// Generated by (magic number): 80007 +// Id's are bound by 232 Capability Shader - Capability Sampled1D - Capability SampledBuffer + Capability Image1D + Capability ImageBuffer Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 210 214 + EntryPoint Fragment 4 "main" 216 220 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "sizeQueryTemp" - Name 12 "g_tTex1df4" - Name 16 "WidthU" - Name 18 "sizeQueryTemp" - Name 21 "g_tTex1di4" - Name 25 "sizeQueryTemp" - Name 28 "g_tTex1du4" - Name 32 "sizeQueryTemp" - Name 35 "g_tBuffF" - Name 39 "sizeQueryTemp" - Name 42 "g_tBuffI" - Name 46 "sizeQueryTemp" - Name 49 "g_tBuffU" - Name 55 "sizeQueryTemp" - Name 58 "g_tTex1df4a" - Name 65 "ElementsU" - Name 69 "sizeQueryTemp" - Name 72 "g_tTex1di4a" - Name 79 "sizeQueryTemp" - Name 82 "g_tTex1du4a" - Name 89 "sizeQueryTemp" - Name 92 "g_tTex2df4" - Name 97 "HeightU" - Name 100 "sizeQueryTemp" - Name 103 "g_tTex2di4" - Name 110 "sizeQueryTemp" - Name 113 "g_tTex2du4" - Name 122 "sizeQueryTemp" - Name 125 "g_tTex2df4a" - Name 136 "sizeQueryTemp" - Name 139 "g_tTex2di4a" - Name 148 "sizeQueryTemp" - Name 151 "g_tTex2du4a" - Name 160 "sizeQueryTemp" - Name 163 "g_tTex3df4" - Name 170 "DepthU" - Name 173 "sizeQueryTemp" - Name 176 "g_tTex3di4" - Name 185 "sizeQueryTemp" - Name 188 "g_tTex3du4" - Name 198 "PS_OUTPUT" - MemberName 198(PS_OUTPUT) 0 "Color" - MemberName 198(PS_OUTPUT) 1 "Depth" - Name 200 "psout" - Name 210 "Color" - Name 214 "Depth" - Name 220 "g_sSamp" - Name 222 "$Global" - MemberName 222($Global) 0 "c1" - MemberName 222($Global) 1 "c2" - MemberName 222($Global) 2 "c3" - MemberName 222($Global) 3 "c4" - MemberName 222($Global) 4 "o1" - MemberName 222($Global) 5 "o2" - MemberName 222($Global) 6 "o3" - MemberName 222($Global) 7 "o4" - Name 224 "" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 21(g_tTex1di4) DescriptorSet 0 - Decorate 28(g_tTex1du4) DescriptorSet 0 - Decorate 35(g_tBuffF) DescriptorSet 0 - Decorate 42(g_tBuffI) DescriptorSet 0 - Decorate 49(g_tBuffU) DescriptorSet 0 - Decorate 58(g_tTex1df4a) DescriptorSet 0 - Decorate 72(g_tTex1di4a) DescriptorSet 0 - Decorate 82(g_tTex1du4a) DescriptorSet 0 - Decorate 92(g_tTex2df4) DescriptorSet 0 - Decorate 103(g_tTex2di4) DescriptorSet 0 - Decorate 113(g_tTex2du4) DescriptorSet 0 - Decorate 125(g_tTex2df4a) DescriptorSet 0 - Decorate 139(g_tTex2di4a) DescriptorSet 0 - Decorate 151(g_tTex2du4a) DescriptorSet 0 - Decorate 163(g_tTex3df4) DescriptorSet 0 - Decorate 176(g_tTex3di4) DescriptorSet 0 - Decorate 188(g_tTex3du4) DescriptorSet 0 - Decorate 210(Color) Location 0 - Decorate 214(Depth) BuiltIn FragDepth - Decorate 220(g_sSamp) DescriptorSet 0 - Decorate 220(g_sSamp) Binding 0 - MemberDecorate 222($Global) 0 Offset 0 - MemberDecorate 222($Global) 1 Offset 8 - MemberDecorate 222($Global) 2 Offset 16 - MemberDecorate 222($Global) 3 Offset 32 - MemberDecorate 222($Global) 4 Offset 48 - MemberDecorate 222($Global) 5 Offset 56 - MemberDecorate 222($Global) 6 Offset 64 - MemberDecorate 222($Global) 7 Offset 80 - Decorate 222($Global) Block - Decorate 224 DescriptorSet 0 + 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: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeFloat 32 - 10: TypeImage 9(float) 1D nonsampled format:Rgba32f - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 19: TypeImage 14(int) 1D nonsampled format:Rgba32i - 20: TypePointer UniformConstant 19 - 21(g_tTex1di4): 20(ptr) Variable UniformConstant - 26: TypeImage 6(int) 1D nonsampled format:Rgba32ui - 27: TypePointer UniformConstant 26 - 28(g_tTex1du4): 27(ptr) Variable UniformConstant - 33: TypeImage 9(float) Buffer nonsampled format:Rgba32f - 34: TypePointer UniformConstant 33 - 35(g_tBuffF): 34(ptr) Variable UniformConstant - 40: TypeImage 14(int) Buffer nonsampled format:Rgba32i - 41: TypePointer UniformConstant 40 - 42(g_tBuffI): 41(ptr) Variable UniformConstant - 47: TypeImage 6(int) Buffer nonsampled format:Rgba32ui - 48: TypePointer UniformConstant 47 - 49(g_tBuffU): 48(ptr) Variable UniformConstant - 53: TypeVector 6(int) 2 - 54: TypePointer Function 53(ivec2) - 56: TypeImage 9(float) 1D array nonsampled format:Rgba32f - 57: TypePointer UniformConstant 56 - 58(g_tTex1df4a): 57(ptr) Variable UniformConstant - 60: TypeVector 14(int) 2 - 62: 6(int) Constant 0 - 66: 6(int) Constant 1 - 70: TypeImage 14(int) 1D array nonsampled format:Rgba32i - 71: TypePointer UniformConstant 70 - 72(g_tTex1di4a): 71(ptr) Variable UniformConstant - 80: TypeImage 6(int) 1D array nonsampled format:Rgba32ui - 81: TypePointer UniformConstant 80 - 82(g_tTex1du4a): 81(ptr) Variable UniformConstant - 90: TypeImage 9(float) 2D nonsampled format:Rgba32f - 91: TypePointer UniformConstant 90 - 92(g_tTex2df4): 91(ptr) Variable UniformConstant - 101: TypeImage 14(int) 2D nonsampled format:Rgba32i - 102: TypePointer UniformConstant 101 - 103(g_tTex2di4): 102(ptr) Variable UniformConstant - 111: TypeImage 6(int) 2D nonsampled format:Rgba32ui - 112: TypePointer UniformConstant 111 - 113(g_tTex2du4): 112(ptr) Variable UniformConstant - 120: TypeVector 6(int) 3 - 121: TypePointer Function 120(ivec3) - 123: TypeImage 9(float) 2D array nonsampled format:Rgba32f - 124: TypePointer UniformConstant 123 -125(g_tTex2df4a): 124(ptr) Variable UniformConstant - 127: TypeVector 14(int) 3 - 133: 6(int) Constant 2 - 137: TypeImage 14(int) 2D array nonsampled format:Rgba32i - 138: TypePointer UniformConstant 137 -139(g_tTex2di4a): 138(ptr) Variable UniformConstant - 149: TypeImage 6(int) 2D array nonsampled format:Rgba32ui - 150: TypePointer UniformConstant 149 -151(g_tTex2du4a): 150(ptr) Variable UniformConstant - 161: TypeImage 9(float) 3D nonsampled format:Rgba32f - 162: TypePointer UniformConstant 161 - 163(g_tTex3df4): 162(ptr) Variable UniformConstant - 174: TypeImage 14(int) 3D nonsampled format:Rgba32i - 175: TypePointer UniformConstant 174 - 176(g_tTex3di4): 175(ptr) Variable UniformConstant - 186: TypeImage 6(int) 3D nonsampled format:Rgba32ui - 187: TypePointer UniformConstant 186 - 188(g_tTex3du4): 187(ptr) Variable UniformConstant - 197: TypeVector 9(float) 4 - 198(PS_OUTPUT): TypeStruct 197(fvec4) 9(float) - 199: TypePointer Function 198(PS_OUTPUT) - 201: 14(int) Constant 0 - 202: 9(float) Constant 1065353216 - 203: 197(fvec4) ConstantComposite 202 202 202 202 - 204: TypePointer Function 197(fvec4) - 206: 14(int) Constant 1 - 207: TypePointer Function 9(float) - 209: TypePointer Output 197(fvec4) - 210(Color): 209(ptr) Variable Output - 213: TypePointer Output 9(float) - 214(Depth): 213(ptr) Variable Output - 218: TypeSampler - 219: TypePointer UniformConstant 218 - 220(g_sSamp): 219(ptr) Variable UniformConstant - 221: TypeVector 14(int) 4 - 222($Global): TypeStruct 14(int) 60(ivec2) 127(ivec3) 221(ivec4) 14(int) 60(ivec2) 127(ivec3) 221(ivec4) - 223: TypePointer Uniform 222($Global) - 224: 223(ptr) Variable Uniform + 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 -8(sizeQueryTemp): 7(ptr) Variable Function - 16(WidthU): 7(ptr) Variable Function -18(sizeQueryTemp): 7(ptr) Variable Function -25(sizeQueryTemp): 7(ptr) Variable Function -32(sizeQueryTemp): 7(ptr) Variable Function -39(sizeQueryTemp): 7(ptr) Variable Function -46(sizeQueryTemp): 7(ptr) Variable Function -55(sizeQueryTemp): 54(ptr) Variable Function - 65(ElementsU): 7(ptr) Variable Function -69(sizeQueryTemp): 54(ptr) Variable Function -79(sizeQueryTemp): 54(ptr) Variable Function -89(sizeQueryTemp): 54(ptr) Variable Function - 97(HeightU): 7(ptr) Variable Function -100(sizeQueryTemp): 54(ptr) Variable Function -110(sizeQueryTemp): 54(ptr) Variable Function -122(sizeQueryTemp): 121(ptr) Variable Function -136(sizeQueryTemp): 121(ptr) Variable Function -148(sizeQueryTemp): 121(ptr) Variable Function -160(sizeQueryTemp): 121(ptr) Variable Function - 170(DepthU): 7(ptr) Variable Function -173(sizeQueryTemp): 121(ptr) Variable Function -185(sizeQueryTemp): 121(ptr) Variable Function - 200(psout): 199(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 15: 14(int) ImageQuerySize 13 - Store 8(sizeQueryTemp) 15 - 17: 6(int) Load 8(sizeQueryTemp) - Store 16(WidthU) 17 - 22: 19 Load 21(g_tTex1di4) - 23: 14(int) ImageQuerySize 22 - Store 18(sizeQueryTemp) 23 - 24: 6(int) Load 18(sizeQueryTemp) - Store 16(WidthU) 24 - 29: 26 Load 28(g_tTex1du4) - 30: 14(int) ImageQuerySize 29 - Store 25(sizeQueryTemp) 30 - 31: 6(int) Load 25(sizeQueryTemp) - Store 16(WidthU) 31 - 36: 33 Load 35(g_tBuffF) - 37: 14(int) ImageQuerySize 36 - Store 32(sizeQueryTemp) 37 - 38: 6(int) Load 32(sizeQueryTemp) - Store 16(WidthU) 38 - 43: 40 Load 42(g_tBuffI) - 44: 14(int) ImageQuerySize 43 - Store 39(sizeQueryTemp) 44 - 45: 6(int) Load 39(sizeQueryTemp) - Store 16(WidthU) 45 - 50: 47 Load 49(g_tBuffU) - 51: 14(int) ImageQuerySize 50 - Store 46(sizeQueryTemp) 51 - 52: 6(int) Load 46(sizeQueryTemp) - Store 16(WidthU) 52 - 59: 56 Load 58(g_tTex1df4a) - 61: 60(ivec2) ImageQuerySize 59 - Store 55(sizeQueryTemp) 61 - 63: 7(ptr) AccessChain 55(sizeQueryTemp) 62 - 64: 6(int) Load 63 - Store 16(WidthU) 64 - 67: 7(ptr) AccessChain 55(sizeQueryTemp) 66 - 68: 6(int) Load 67 - Store 65(ElementsU) 68 - 73: 70 Load 72(g_tTex1di4a) - 74: 60(ivec2) ImageQuerySize 73 - Store 69(sizeQueryTemp) 74 - 75: 7(ptr) AccessChain 69(sizeQueryTemp) 62 - 76: 6(int) Load 75 - Store 16(WidthU) 76 - 77: 7(ptr) AccessChain 69(sizeQueryTemp) 66 - 78: 6(int) Load 77 - Store 65(ElementsU) 78 - 83: 80 Load 82(g_tTex1du4a) - 84: 60(ivec2) ImageQuerySize 83 - Store 79(sizeQueryTemp) 84 - 85: 7(ptr) AccessChain 79(sizeQueryTemp) 62 - 86: 6(int) Load 85 - Store 16(WidthU) 86 - 87: 7(ptr) AccessChain 79(sizeQueryTemp) 66 - 88: 6(int) Load 87 - Store 65(ElementsU) 88 - 93: 90 Load 92(g_tTex2df4) - 94: 60(ivec2) ImageQuerySize 93 - Store 89(sizeQueryTemp) 94 - 95: 7(ptr) AccessChain 89(sizeQueryTemp) 62 - 96: 6(int) Load 95 - Store 16(WidthU) 96 - 98: 7(ptr) AccessChain 89(sizeQueryTemp) 66 - 99: 6(int) Load 98 - Store 97(HeightU) 99 - 104: 101 Load 103(g_tTex2di4) - 105: 60(ivec2) ImageQuerySize 104 - Store 100(sizeQueryTemp) 105 - 106: 7(ptr) AccessChain 100(sizeQueryTemp) 62 - 107: 6(int) Load 106 - Store 16(WidthU) 107 - 108: 7(ptr) AccessChain 100(sizeQueryTemp) 66 - 109: 6(int) Load 108 - Store 97(HeightU) 109 - 114: 111 Load 113(g_tTex2du4) - 115: 60(ivec2) ImageQuerySize 114 - Store 110(sizeQueryTemp) 115 - 116: 7(ptr) AccessChain 110(sizeQueryTemp) 62 - 117: 6(int) Load 116 - Store 16(WidthU) 117 - 118: 7(ptr) AccessChain 110(sizeQueryTemp) 66 - 119: 6(int) Load 118 - Store 97(HeightU) 119 - 126: 123 Load 125(g_tTex2df4a) - 128: 127(ivec3) ImageQuerySize 126 - Store 122(sizeQueryTemp) 128 - 129: 7(ptr) AccessChain 122(sizeQueryTemp) 62 - 130: 6(int) Load 129 - Store 16(WidthU) 130 - 131: 7(ptr) AccessChain 122(sizeQueryTemp) 66 - 132: 6(int) Load 131 - Store 97(HeightU) 132 - 134: 7(ptr) AccessChain 122(sizeQueryTemp) 133 - 135: 6(int) Load 134 - Store 65(ElementsU) 135 - 140: 137 Load 139(g_tTex2di4a) - 141: 127(ivec3) ImageQuerySize 140 - Store 136(sizeQueryTemp) 141 - 142: 7(ptr) AccessChain 136(sizeQueryTemp) 62 - 143: 6(int) Load 142 - Store 16(WidthU) 143 - 144: 7(ptr) AccessChain 136(sizeQueryTemp) 66 - 145: 6(int) Load 144 - Store 97(HeightU) 145 - 146: 7(ptr) AccessChain 136(sizeQueryTemp) 133 - 147: 6(int) Load 146 - Store 65(ElementsU) 147 - 152: 149 Load 151(g_tTex2du4a) - 153: 127(ivec3) ImageQuerySize 152 - Store 148(sizeQueryTemp) 153 - 154: 7(ptr) AccessChain 148(sizeQueryTemp) 62 - 155: 6(int) Load 154 - Store 16(WidthU) 155 - 156: 7(ptr) AccessChain 148(sizeQueryTemp) 66 - 157: 6(int) Load 156 - Store 97(HeightU) 157 - 158: 7(ptr) AccessChain 148(sizeQueryTemp) 133 - 159: 6(int) Load 158 - Store 65(ElementsU) 159 - 164: 161 Load 163(g_tTex3df4) - 165: 127(ivec3) ImageQuerySize 164 - Store 160(sizeQueryTemp) 165 - 166: 7(ptr) AccessChain 160(sizeQueryTemp) 62 - 167: 6(int) Load 166 - Store 16(WidthU) 167 - 168: 7(ptr) AccessChain 160(sizeQueryTemp) 66 - 169: 6(int) Load 168 - Store 97(HeightU) 169 - 171: 7(ptr) AccessChain 160(sizeQueryTemp) 133 - 172: 6(int) Load 171 - Store 170(DepthU) 172 - 177: 174 Load 176(g_tTex3di4) - 178: 127(ivec3) ImageQuerySize 177 - Store 173(sizeQueryTemp) 178 - 179: 7(ptr) AccessChain 173(sizeQueryTemp) 62 - 180: 6(int) Load 179 - Store 16(WidthU) 180 - 181: 7(ptr) AccessChain 173(sizeQueryTemp) 66 - 182: 6(int) Load 181 - Store 97(HeightU) 182 - 183: 7(ptr) AccessChain 173(sizeQueryTemp) 133 - 184: 6(int) Load 183 - Store 170(DepthU) 184 - 189: 186 Load 188(g_tTex3du4) - 190: 127(ivec3) ImageQuerySize 189 - Store 185(sizeQueryTemp) 190 - 191: 7(ptr) AccessChain 185(sizeQueryTemp) 62 - 192: 6(int) Load 191 - Store 16(WidthU) 192 - 193: 7(ptr) AccessChain 185(sizeQueryTemp) 66 - 194: 6(int) Load 193 - Store 97(HeightU) 194 - 195: 7(ptr) AccessChain 185(sizeQueryTemp) 133 - 196: 6(int) Load 195 - Store 170(DepthU) 196 - 205: 204(ptr) AccessChain 200(psout) 201 - Store 205 203 - 208: 207(ptr) AccessChain 200(psout) 206 - Store 208 202 - 211: 204(ptr) AccessChain 200(psout) 201 - 212: 197(fvec4) Load 211 - Store 210(Color) 212 - 215: 207(ptr) AccessChain 200(psout) 206 - 216: 9(float) Load 215 - Store 214(Depth) 216 +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 index 5985eadc1f..51bd076937 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -1,34 +1,245 @@ hlsl.getsampleposition.dx10.frag -ERROR: 0:16: '' : unimplemented: GetSamplePosition -ERROR: 0:17: '' : unimplemented: GetSamplePosition -ERROR: 2 compilation errors. No code generated. - - -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 ERROR: Bad aggregation op - (temp 2-component vector of float) -0:16 'g_tTex2dmsf4' (uniform texture2DMS) -0:16 Constant: -0:16 1 (const int) +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 ERROR: Bad aggregation op - (temp 2-component vector of float) -0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:17 Constant: -0:17 2 (const int) -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: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: @@ -36,64 +247,291 @@ ERROR: node is still EOpNull! 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 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 Sequence -0:22 Sequence -0:22 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:22 Color: direct index for structure (temp 4-component vector of float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:22 Depth: direct index for structure (temp float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:22 Constant: -0:22 1 (const int) -0:22 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex2dmsf4' (uniform texture2DMS) -0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? '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: 450 +Shader version: 500 gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 ERROR: Bad aggregation op - (temp 2-component vector of float) -0:16 'g_tTex2dmsf4' (uniform texture2DMS) -0:16 Constant: -0:16 1 (const int) +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 ERROR: Bad aggregation op - (temp 2-component vector of float) -0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:17 Constant: -0:17 2 (const int) -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: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: @@ -101,33 +539,308 @@ ERROR: node is still EOpNull! 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 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 Sequence -0:22 Sequence -0:22 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:22 Color: direct index for structure (temp 4-component vector of float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:22 Constant: -0:22 0 (const int) -0:22 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:22 Depth: direct index for structure (temp float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:22 Constant: -0:22 1 (const int) -0:22 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex2dmsf4' (uniform texture2DMS) -0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? '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) -SPIR-V is not generated for failed compile or link +// 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-new/Test/baseResults/hlsl.global-const-init.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.global-const-init.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.global-const-init.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.global-const-init.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.groupid.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.groupid.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.groupid.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.groupid.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.gs-hs-mix.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.gs-hs-mix.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hlslOffset.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.hlslOffset.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hlslOffset.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hlslOffset.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.1.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.1.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.1.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.1.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.2.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.2.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.2.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.2.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.3.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.3.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.3.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.3.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.4.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.4.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.4.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.4.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.5.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.5.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.5.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.5.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.hull.void.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.void.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.hull.void.tesc.out rename to deps/glslang/glslang/Test/baseResults/hlsl.hull.void.tesc.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.identifier.sample.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.identifier.sample.frag.out index 8e7408197f..a23451ec19 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.identifier.sample.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.identifier.sample.frag.out @@ -1,103 +1,139 @@ hlsl.identifier.sample.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:9 Function Definition: sample(i1; (temp int) +0:9 Function Definition: sample(i1; ( temp int) 0:9 Function Parameters: -0:9 'x' (in int) +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: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 int) -0:15 'sample' (temp int) -0:15 Constant: -0:15 3 (const int) -0:17 Sequence -0:17 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0: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:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:17 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:9 Function Definition: sample(i1; (temp int) +0:9 Function Definition: sample(i1; ( temp int) 0:9 Function Parameters: -0:9 'x' (in int) +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: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 int) -0:15 'sample' (temp int) -0:15 Constant: -0:15 3 (const int) -0:17 Sequence -0:17 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0: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:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:17 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 24 +// 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" 20 + EntryPoint Fragment 4 "main" 31 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 10 "sample(i1;" Name 9 "x" - Name 15 "sample" - Name 20 "@entryPointOutput" - Decorate 20(@entryPointOutput) Location 0 + 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) - 16: 6(int) Constant 3 - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypePointer Output 18(fvec4) -20(@entryPointOutput): 19(ptr) Variable Output - 21: 17(float) Constant 0 - 22: 18(fvec4) ConstantComposite 21 21 21 21 + 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 - 15(sample): 7(ptr) Variable Function - Store 15(sample) 16 - Store 20(@entryPointOutput) 22 + 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 - 12: 6(int) Load 9(x) - ReturnValue 12 + 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 index c37bff61a1..056b672e30 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.if.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.if.frag.out @@ -1,337 +1,370 @@ hlsl.if.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:3 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 all ( temp bool) +0:3 Equal ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) 0:3 true case -0:4 Sequence -0:4 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:4 'input' (layout(location=0 ) in 4-component vector of float) -0:4 Branch: Return -0:6 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 all ( temp bool) +0:6 Equal ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) 0:6 true case -0:7 Sequence -0:7 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 Branch: Return +0:7 Branch: Return with expression +0:7 'input' ( in 4-component vector of float) 0:6 false case -0:9 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 Negate value (temp 4-component vector of float) -0:9 'input' (layout(location=0 ) in 4-component vector of float) -0:9 Branch: Return -0:11 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 all ( temp bool) +0:11 Equal ( temp 4-component vector of bool) +0:11 'input' ( 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 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' (layout(location=0 ) in 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 all ( temp bool) +0:14 Equal ( temp 4-component vector of bool) +0:14 'input' ( in 4-component vector of float) +0:14 'input' ( in 4-component vector of float) 0:14 true case is null -0:19 Test condition and select (temp void) +0:19 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' (layout(location=0 ) in 4-component vector of float) -0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 all ( temp bool) +0:19 Equal ( temp 4-component vector of bool) +0:19 'input' ( in 4-component vector of float) +0:19 'input' ( in 4-component vector of float) 0:19 true case 0:? Sequence -0:20 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 'input' (layout(location=0 ) in 4-component vector of float) -0:20 Branch: Return -0:23 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 all ( temp bool) +0:23 Equal ( temp 4-component vector of bool) +0:23 'input' ( in 4-component vector of float) +0:23 'input' ( in 4-component vector of float) 0:23 true case 0:? Sequence -0:24 Sequence -0:24 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:24 'input' (layout(location=0 ) in 4-component vector of float) -0:24 Branch: Return +0:24 Branch: Return with expression +0:24 'input' ( in 4-component vector of float) 0:23 false case 0:? Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:26 Negate value (temp 4-component vector of float) -0:26 'input' (layout(location=0 ) in 4-component vector of float) -0:26 Branch: Return -0:30 Test condition and select (temp void) +0:26 Branch: Return with expression +0:26 Negate value ( temp 4-component vector of float) +0:26 'input' ( in 4-component vector of float) +0:30 Test condition and select ( temp void) 0:30 Condition -0:30 move second child to first child (temp float) -0:30 'ii' (temp float) -0:30 direct index (temp float) -0:30 'input' (layout(location=0 ) in 4-component vector of float) -0:30 Constant: -0:30 2 (const int) +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: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) +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: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:3 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 all ( temp bool) +0:3 Equal ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) 0:3 true case -0:4 Sequence -0:4 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:4 'input' (layout(location=0 ) in 4-component vector of float) -0:4 Branch: Return -0:6 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 all ( temp bool) +0:6 Equal ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) 0:6 true case -0:7 Sequence -0:7 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 Branch: Return +0:7 Branch: Return with expression +0:7 'input' ( in 4-component vector of float) 0:6 false case -0:9 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 Negate value (temp 4-component vector of float) -0:9 'input' (layout(location=0 ) in 4-component vector of float) -0:9 Branch: Return -0:11 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 all ( temp bool) +0:11 Equal ( temp 4-component vector of bool) +0:11 'input' ( 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 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' (layout(location=0 ) in 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 all ( temp bool) +0:14 Equal ( temp 4-component vector of bool) +0:14 'input' ( in 4-component vector of float) +0:14 'input' ( in 4-component vector of float) 0:14 true case is null -0:19 Test condition and select (temp void) +0:19 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' (layout(location=0 ) in 4-component vector of float) -0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 all ( temp bool) +0:19 Equal ( temp 4-component vector of bool) +0:19 'input' ( in 4-component vector of float) +0:19 'input' ( in 4-component vector of float) 0:19 true case 0:? Sequence -0:20 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 'input' (layout(location=0 ) in 4-component vector of float) -0:20 Branch: Return -0:23 Test condition and select (temp void) +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' (layout(location=0 ) in 4-component vector of float) -0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 all ( temp bool) +0:23 Equal ( temp 4-component vector of bool) +0:23 'input' ( in 4-component vector of float) +0:23 'input' ( in 4-component vector of float) 0:23 true case 0:? Sequence -0:24 Sequence -0:24 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:24 'input' (layout(location=0 ) in 4-component vector of float) -0:24 Branch: Return +0:24 Branch: Return with expression +0:24 'input' ( in 4-component vector of float) 0:23 false case 0:? Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:26 Negate value (temp 4-component vector of float) -0:26 'input' (layout(location=0 ) in 4-component vector of float) -0:26 Branch: Return -0:30 Test condition and select (temp void) +0:26 Branch: Return with expression +0:26 Negate value ( temp 4-component vector of float) +0:26 'input' ( in 4-component vector of float) +0:30 Test condition and select ( temp void) 0:30 Condition -0:30 move second child to first child (temp float) -0:30 'ii' (temp float) -0:30 direct index (temp float) -0:30 'input' (layout(location=0 ) in 4-component vector of float) -0:30 Constant: -0:30 2 (const int) +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: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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 84 +// 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" 9 19 + EntryPoint Fragment 4 "PixelShaderFunction" 96 99 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "input" - Name 19 "@entryPointOutput" - Name 67 "ii" - Name 80 "ii" - Decorate 9(input) Location 0 - Decorate 19(@entryPointOutput) Location 0 + 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 Input 7(fvec4) - 9(input): 8(ptr) Variable Input - 12: TypeBool - 13: TypeVector 12(bool) 4 - 18: TypePointer Output 7(fvec4) -19(@entryPointOutput): 18(ptr) Variable Output - 66: TypePointer Function 6(float) - 68: TypeInt 32 0 - 69: 68(int) Constant 2 - 70: TypePointer Input 6(float) - 76: 6(float) Constant 1065353216 - 78: TypeInt 32 1 - 79: TypePointer Function 78(int) - 82: 78(int) Constant 1 + 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 - 67(ii): 66(ptr) Variable Function - 80(ii): 79(ptr) Variable Function - 10: 7(fvec4) Load 9(input) - 11: 7(fvec4) Load 9(input) - 14: 13(bvec4) FOrdEqual 10 11 - 15: 12(bool) All 14 - SelectionMerge 17 None - BranchConditional 15 16 17 - 16: Label - 20: 7(fvec4) Load 9(input) - Store 19(@entryPointOutput) 20 - Return - 17: Label - 22: 7(fvec4) Load 9(input) - 23: 7(fvec4) Load 9(input) - 24: 13(bvec4) FOrdEqual 22 23 - 25: 12(bool) All 24 - SelectionMerge 27 None - BranchConditional 25 26 30 - 26: Label - 28: 7(fvec4) Load 9(input) - Store 19(@entryPointOutput) 28 - Return - 30: Label - 31: 7(fvec4) Load 9(input) - 32: 7(fvec4) FNegate 31 - Store 19(@entryPointOutput) 32 - Return - 27: Label - 34: 7(fvec4) Load 9(input) - 35: 7(fvec4) Load 9(input) - 36: 13(bvec4) FOrdEqual 34 35 - 37: 12(bool) All 36 - SelectionMerge 39 None - BranchConditional 37 38 39 - 38: Label - Branch 39 - 39: Label - 40: 7(fvec4) Load 9(input) - 41: 7(fvec4) Load 9(input) - 42: 13(bvec4) FOrdEqual 40 41 - 43: 12(bool) All 42 - SelectionMerge 45 None - BranchConditional 43 44 45 - 44: Label - Branch 45 - 45: Label - 46: 7(fvec4) Load 9(input) - 47: 7(fvec4) Load 9(input) - 48: 13(bvec4) FOrdEqual 46 47 - 49: 12(bool) All 48 - SelectionMerge 51 None - BranchConditional 49 50 51 - 50: Label - 52: 7(fvec4) Load 9(input) - Store 19(@entryPointOutput) 52 - Return - 51: Label - 54: 7(fvec4) Load 9(input) - 55: 7(fvec4) Load 9(input) - 56: 13(bvec4) FOrdEqual 54 55 - 57: 12(bool) All 56 - SelectionMerge 59 None - BranchConditional 57 58 62 - 58: Label - 60: 7(fvec4) Load 9(input) - Store 19(@entryPointOutput) 60 - Return - 62: Label - 63: 7(fvec4) Load 9(input) - 64: 7(fvec4) FNegate 63 - Store 19(@entryPointOutput) 64 - Return - 59: Label - 71: 70(ptr) AccessChain 9(input) 69 - 72: 6(float) Load 71 - Store 67(ii) 72 - SelectionMerge 74 None - BranchConditional 72 73 74 - 73: Label - 75: 6(float) Load 67(ii) - 77: 6(float) FAdd 75 76 - Store 67(ii) 77 - Branch 74 - 74: Label - 81: 78(int) Load 80(ii) - 83: 78(int) IAdd 81 82 - Store 80(ii) 83 + 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-new/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.imagefetch-subvec4.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.implicitBool.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.implicitBool.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.implicitBool.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.implicitBool.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.include.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.include.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.include.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.include.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.includeNegative.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.includeNegative.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.includeNegative.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.includeNegative.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.inf.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.inf.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.inf.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.inf.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.init.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.init.frag.out index 42f94caefa..9fc816ce29 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.init.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.init.frag.out @@ -1,480 +1,530 @@ hlsl.init.frag -Shader version: 450 +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: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: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 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 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 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 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 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 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 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 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 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 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 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 Definition: @ShaderFunction(vf4; ( temp 4-component vector of float) 0:21 Function Parameters: -0:21 'input' (layout(location=0 ) in 4-component vector of float) +0: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: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 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 '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 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 '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 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 component-wise multiply (temp 4-component vector of float) -0:35 'input' (layout(location=0 ) in 4-component vector of float) -0:35 'a1' (global 4-component vector of float) -0:35 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'a1' (global 4-component vector of float) -0:? 'b1' (global 4-component vector of float) -0:? 'a1i' (global 4-component vector of float) -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:? '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: 450 +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: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: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 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 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 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 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 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 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 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 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 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 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 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 Definition: @ShaderFunction(vf4; ( temp 4-component vector of float) 0:21 Function Parameters: -0:21 'input' (layout(location=0 ) in 4-component vector of float) +0: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: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 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 '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 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 '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 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 component-wise multiply (temp 4-component vector of float) -0:35 'input' (layout(location=0 ) in 4-component vector of float) -0:35 'a1' (global 4-component vector of float) -0:35 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'a1' (global 4-component vector of float) -0:? 'b1' (global 4-component vector of float) -0:? 'a1i' (global 4-component vector of float) -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:? '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): 80001 -// Id's are bound by 97 +// 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" 88 90 + EntryPoint Fragment 4 "ShaderFunction" 98 101 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "ShaderFunction" - Name 9 "a1" - Name 14 "b1" - Name 20 "a1i" - Name 21 "b1i" - Name 23 "a2" - Name 25 "b3" - Name 27 "b4" - Name 29 "a5" - Name 30 "c5" - Name 33 "Single1" - MemberName 33(Single1) 0 "f" - Name 35 "single1" - Name 40 "Single2" - MemberName 40(Single2) 0 "v" - Name 42 "single2" - Name 47 "Single3" - MemberName 47(Single3) 0 "s1" - Name 49 "single3" - Name 53 "Single4" - MemberName 53(Single4) 0 "s1" - Name 55 "single4" - Name 62 "a2" - Name 64 "S1" - MemberName 64(S1) 0 "f" - MemberName 64(S1) 1 "i" - Name 65 "S2" - MemberName 65(S2) 0 "j" - MemberName 65(S2) 1 "g" - MemberName 65(S2) 2 "s1" - Name 67 "s2i" - Name 70 "a3" - Name 71 "a4" - Name 76 "s2" - Name 82 "a8" - Name 83 "b2" - Name 85 "a9" - Name 88 "@entryPointOutput" - Name 90 "input" - Name 95 "c4" - Name 96 "b5" - Decorate 88(@entryPointOutput) Location 0 - Decorate 90(input) Location 0 + 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 Private 7(fvec4) - 9(a1): 8(ptr) Variable Private - 10: 6(float) Constant 1065353216 - 11: 6(float) Constant 1056964608 - 12: 6(float) Constant 0 - 13: 7(fvec4) ConstantComposite 10 11 12 10 - 14(b1): 8(ptr) Variable Private - 15: 6(float) Constant 1073741824 - 16: 6(float) Constant 1075838976 - 17: 6(float) Constant 1074161254 - 18: 6(float) Constant 1074580685 - 19: 7(fvec4) ConstantComposite 15 16 17 18 - 20(a1i): 8(ptr) Variable Private - 21(b1i): 8(ptr) Variable Private - 22: TypePointer Private 6(float) - 23(a2): 22(ptr) Variable Private - 24: 6(float) Constant 1045220557 - 25(b3): 22(ptr) Variable Private - 26: 6(float) Constant 1050253722 - 27(b4): 22(ptr) Variable Private - 28: 6(float) Constant 1053609165 - 29(a5): 22(ptr) Variable Private - 30(c5): 22(ptr) Variable Private - 31: 6(float) Constant 1069547520 - 32: TypeInt 32 1 - 33(Single1): TypeStruct 32(int) - 34: TypePointer Private 33(Single1) - 35(single1): 34(ptr) Variable Private - 36: 32(int) Constant 10 - 37: 33(Single1) ConstantComposite 36 - 38: TypeInt 32 0 - 39: TypeVector 38(int) 2 - 40(Single2): TypeStruct 39(ivec2) - 41: TypePointer Private 40(Single2) - 42(single2): 41(ptr) Variable Private - 43: 38(int) Constant 1 - 44: 38(int) Constant 2 - 45: 39(ivec2) ConstantComposite 43 44 - 46: 40(Single2) ConstantComposite 45 - 47(Single3): TypeStruct 33(Single1) - 48: TypePointer Private 47(Single3) - 49(single3): 48(ptr) Variable Private - 50: 32(int) Constant 3 - 51: 33(Single1) ConstantComposite 50 - 52: 47(Single3) ConstantComposite 51 - 53(Single4): TypeStruct 40(Single2) - 54: TypePointer Private 53(Single4) - 55(single4): 54(ptr) Variable Private - 56: 38(int) Constant 4 - 57: 38(int) Constant 5 - 58: 39(ivec2) ConstantComposite 56 57 - 59: 40(Single2) ConstantComposite 58 - 60: 53(Single4) ConstantComposite 59 - 61: TypePointer Function 7(fvec4) - 63: 7(fvec4) ConstantComposite 24 26 28 11 - 64(S1): TypeStruct 6(float) 32(int) - 65(S2): TypeStruct 32(int) 6(float) 64(S1) - 66: TypePointer Function 65(S2) - 68: 32(int) Constant 9 - 70(a3): 22(ptr) Variable Private - 71(a4): 22(ptr) Variable Private - 73: 32(int) Constant 12 - 81: TypePointer Function 6(float) - 83(b2): 22(ptr) Variable Private - 87: TypePointer Output 7(fvec4) -88(@entryPointOutput): 87(ptr) Variable Output - 89: TypePointer Input 7(fvec4) - 90(input): 89(ptr) Variable Input - 95(c4): 22(ptr) Variable Private - 96(b5): 22(ptr) Variable Private + 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 - 62(a2): 61(ptr) Variable Function - 67(s2i): 66(ptr) Variable Function - 76(s2): 66(ptr) Variable Function - 82(a8): 81(ptr) Variable Function - 85(a9): 81(ptr) Variable Function - Store 9(a1) 13 - Store 14(b1) 19 - Store 20(a1i) 13 - Store 21(b1i) 19 - Store 23(a2) 24 - Store 25(b3) 26 - Store 27(b4) 28 - Store 29(a5) 11 - Store 30(c5) 31 - Store 35(single1) 37 - Store 42(single2) 46 - Store 49(single3) 52 - Store 55(single4) 60 - Store 62(a2) 63 - 69: 6(float) Load 29(a5) - 72: 6(float) Load 71(a4) - 74: 64(S1) CompositeConstruct 72 73 - 75: 65(S2) CompositeConstruct 68 69 74 - Store 67(s2i) 75 - 77: 6(float) Load 29(a5) - 78: 6(float) Load 71(a4) - 79: 64(S1) CompositeConstruct 78 73 - 80: 65(S2) CompositeConstruct 68 77 79 - Store 76(s2) 80 - 84: 6(float) Load 83(b2) - Store 82(a8) 84 - 86: 6(float) Load 29(a5) - Store 85(a9) 86 - 91: 7(fvec4) Load 90(input) - 92: 7(fvec4) Load 9(a1) - 93: 7(fvec4) FMul 91 92 - Store 88(@entryPointOutput) 93 + 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 index 9b53e30499..9e03de3a9c 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.init2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.init2.frag.out @@ -1,197 +1,531 @@ hlsl.init2.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: Test1( (temp void) +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 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 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 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 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:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) -0:26 Function Parameters: +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:27 Function Call: Test1( (temp void) -0:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (temp structure{temp 4-component vector of float color}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1.000000 -0:30 1.000000 -0:30 1.000000 -0:30 1.000000 -0:31 Sequence -0:31 Sequence -0:31 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:31 color: direct index for structure (temp 4-component vector of float) -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) -0:31 Constant: -0:31 0 (const int) -0:31 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: Test1( (temp void) +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 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 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 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 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:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) -0:26 Function Parameters: +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:27 Function Call: Test1( (temp void) -0:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (temp structure{temp 4-component vector of float color}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1.000000 -0:30 1.000000 -0:30 1.000000 -0:30 1.000000 -0:31 Sequence -0:31 Sequence -0:31 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:31 color: direct index for structure (temp 4-component vector of float) -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) -0:31 Constant: -0:31 0 (const int) -0:31 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 47 +// 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" 43 + EntryPoint Fragment 4 "main" 109 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 6 "Test1(" - Name 10 "mystruct" - MemberName 10(mystruct) 0 "a" - Name 12 "test1" - Name 17 "test2" - Name 23 "test4" - Name 25 "mystruct2" - MemberName 25(mystruct2) 0 "a" - MemberName 25(mystruct2) 1 "b" - MemberName 25(mystruct2) 2 "c" - Name 27 "test5" - Name 34 "PS_OUTPUT" - MemberName 34(PS_OUTPUT) 0 "color" - Name 36 "ps_output" - Name 43 "color" - Decorate 43(color) Location 0 + 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) 2 - 10(mystruct): TypeStruct 9(fvec2) - 11: TypePointer Function 10(mystruct) - 13: 8(float) Constant 1065353216 - 14: 8(float) Constant 1073741824 - 15: 9(fvec2) ConstantComposite 13 14 - 16:10(mystruct) ConstantComposite 15 - 18: 8(float) Constant 1077936128 - 19: 8(float) Constant 1082130432 - 20: 9(fvec2) ConstantComposite 18 19 - 21:10(mystruct) ConstantComposite 20 - 22: TypePointer Function 8(float) - 24: 8(float) Constant 1088421888 - 25(mystruct2): TypeStruct 8(float) 8(float) 8(float) - 26: TypePointer Function 25(mystruct2) - 28: 8(float) Constant 1090519040 - 29: 8(float) Constant 1091567616 - 30: 8(float) Constant 1092616192 - 31:25(mystruct2) ConstantComposite 28 29 30 - 33: TypeVector 8(float) 4 - 34(PS_OUTPUT): TypeStruct 33(fvec4) - 35: TypePointer Function 34(PS_OUTPUT) - 37: TypeInt 32 1 - 38: 37(int) Constant 0 - 39: 33(fvec4) ConstantComposite 13 13 13 13 - 40: TypePointer Function 33(fvec4) - 42: TypePointer Output 33(fvec4) - 43(color): 42(ptr) Variable Output + 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 - 36(ps_output): 35(ptr) Variable Function - 32: 2 FunctionCall 6(Test1() - 41: 40(ptr) AccessChain 36(ps_output) 38 - Store 41 39 - 44: 40(ptr) AccessChain 36(ps_output) 38 - 45: 33(fvec4) Load 44 - Store 43(color) 45 + 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 - 12(test1): 11(ptr) Variable Function - 17(test2): 11(ptr) Variable Function - 23(test4): 22(ptr) Variable Function - 27(test5): 26(ptr) Variable Function - Store 12(test1) 16 - Store 17(test2) 21 - Store 23(test4) 24 - Store 27(test5) 31 + 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 index b2716a4c84..42adb1a81a 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.inoutquals.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.inoutquals.frag.out @@ -1,272 +1,375 @@ hlsl.inoutquals.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left +using depth_any 0:? Sequence -0:8 Function Definition: MyFunc(f1;f1;f1; (temp void) +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 '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: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:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:15 Function Parameters: -0:15 'inpos' (noperspective in 4-component vector of float FragCoord) -0:15 'sampleMask' (out int SampleMaskIn) +0: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:18 Sequence -0:18 move second child to first child (temp float) -0:18 'x' (temp float) -0:18 Constant: -0:18 7.000000 -0:18 move second child to first child (temp float) -0:18 'z' (temp float) -0:18 Constant: -0:18 3.000000 -0:19 Function Call: MyFunc(f1;f1;f1; (temp void) -0:19 'x' (temp float) -0:19 'y' (temp float) -0:19 'z' (temp float) -0:21 move second child to first child (temp 4-component vector of float) -0:21 Color: direct index for structure (temp 4-component vector of float) -0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:21 Constant: -0:21 0 (const int) -0:? Construct vec4 (temp 4-component vector of float) -0:21 'x' (temp float) -0:21 'y' (temp float) -0:21 'z' (temp float) -0:21 Constant: -0:21 1.000000 -0:22 move second child to first child (temp float) -0:22 Depth: direct index for structure (temp float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 1 (const int) -0:22 direct index (temp float) -0:22 'inpos' (noperspective in 4-component vector of float FragCoord) +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 3 (const int) -0:24 Sequence -0:24 Sequence -0:24 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:24 Color: direct index for structure (temp 4-component vector of float) -0:24 'psout' (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:? 'Depth' (out float FragDepth) -0:24 Depth: direct index for structure (temp float) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:24 Constant: -0:24 1 (const int) -0:24 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'inpos' (noperspective in 4-component vector of float FragCoord) -0:? 'sampleMask' (out int SampleMaskIn) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left +using depth_any 0:? Sequence -0:8 Function Definition: MyFunc(f1;f1;f1; (temp void) +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 '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: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:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:15 Function Parameters: -0:15 'inpos' (noperspective in 4-component vector of float FragCoord) -0:15 'sampleMask' (out int SampleMaskIn) +0: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:18 Sequence -0:18 move second child to first child (temp float) -0:18 'x' (temp float) -0:18 Constant: -0:18 7.000000 -0:18 move second child to first child (temp float) -0:18 'z' (temp float) -0:18 Constant: -0:18 3.000000 -0:19 Function Call: MyFunc(f1;f1;f1; (temp void) -0:19 'x' (temp float) -0:19 'y' (temp float) -0:19 'z' (temp float) -0:21 move second child to first child (temp 4-component vector of float) -0:21 Color: direct index for structure (temp 4-component vector of float) -0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:21 Constant: -0:21 0 (const int) -0:? Construct vec4 (temp 4-component vector of float) -0:21 'x' (temp float) -0:21 'y' (temp float) -0:21 'z' (temp float) -0:21 Constant: -0:21 1.000000 -0:22 move second child to first child (temp float) -0:22 Depth: direct index for structure (temp float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +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 1 (const int) -0:22 direct index (temp float) -0:22 'inpos' (noperspective in 4-component vector of float FragCoord) +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 3 (const int) -0:24 Sequence -0:24 Sequence -0:24 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:24 Color: direct index for structure (temp 4-component vector of float) -0:24 'psout' (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:? 'Depth' (out float FragDepth) -0:24 Depth: direct index for structure (temp float) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:24 Constant: -0:24 1 (const int) -0:24 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'inpos' (noperspective in 4-component vector of float FragCoord) -0:? 'sampleMask' (out int SampleMaskIn) +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): 80001 -// Id's are bound by 63 +// Generated by (magic number): 80007 +// Id's are bound by 92 Capability Shader - Capability SampleRateShading 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 53 57 62 + EntryPoint Fragment 4 "main" 68 78 82 88 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 12 "MyFunc(f1;f1;f1;" + Name 13 "MyFunc(f1;f1;f1;f1;" Name 9 "x" Name 10 "y" Name 11 "z" - Name 17 "x" - Name 19 "z" - Name 21 "y" - Name 22 "param" - Name 24 "param" - Name 25 "param" - Name 31 "PS_OUTPUT" - MemberName 31(PS_OUTPUT) 0 "Color" - MemberName 31(PS_OUTPUT) 1 "Depth" - Name 33 "psout" - Name 45 "inpos" - Name 53 "Color" - Name 57 "Depth" - Name 62 "sampleMask" - Decorate 45(inpos) NoPerspective - Decorate 45(inpos) BuiltIn FragCoord - Decorate 53(Color) Location 0 - Decorate 57(Depth) BuiltIn FragDepth - Decorate 62(sampleMask) BuiltIn SampleMask + 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) - 16: 6(float) Constant 3212836864 - 18: 6(float) Constant 1088421888 - 20: 6(float) Constant 1077936128 - 30: TypeVector 6(float) 4 - 31(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) - 32: TypePointer Function 31(PS_OUTPUT) - 34: TypeInt 32 1 - 35: 34(int) Constant 0 - 39: 6(float) Constant 1065353216 - 41: TypePointer Function 30(fvec4) - 43: 34(int) Constant 1 - 44: TypePointer Input 30(fvec4) - 45(inpos): 44(ptr) Variable Input - 46: TypeInt 32 0 - 47: 46(int) Constant 3 - 48: TypePointer Input 6(float) - 52: TypePointer Output 30(fvec4) - 53(Color): 52(ptr) Variable Output - 56: TypePointer Output 6(float) - 57(Depth): 56(ptr) Variable Output - 61: TypePointer Output 34(int) - 62(sampleMask): 61(ptr) Variable Output + 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 - 17(x): 7(ptr) Variable Function - 19(z): 7(ptr) Variable Function - 21(y): 7(ptr) Variable Function - 22(param): 7(ptr) Variable Function - 24(param): 7(ptr) Variable Function - 25(param): 7(ptr) Variable Function - 33(psout): 32(ptr) Variable Function - Store 17(x) 18 - Store 19(z) 20 - 23: 6(float) Load 17(x) - Store 22(param) 23 - 26: 6(float) Load 19(z) - Store 25(param) 26 - 27: 2 FunctionCall 12(MyFunc(f1;f1;f1;) 22(param) 24(param) 25(param) - 28: 6(float) Load 24(param) - Store 21(y) 28 - 29: 6(float) Load 25(param) - Store 19(z) 29 - 36: 6(float) Load 17(x) - 37: 6(float) Load 21(y) - 38: 6(float) Load 19(z) - 40: 30(fvec4) CompositeConstruct 36 37 38 39 - 42: 41(ptr) AccessChain 33(psout) 35 - Store 42 40 - 49: 48(ptr) AccessChain 45(inpos) 47 - 50: 6(float) Load 49 - 51: 7(ptr) AccessChain 33(psout) 43 - Store 51 50 - 54: 41(ptr) AccessChain 33(psout) 35 - 55: 30(fvec4) Load 54 - Store 53(Color) 55 - 58: 7(ptr) AccessChain 33(psout) 43 - 59: 6(float) Load 58 - Store 57(Depth) 59 + 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 -12(MyFunc(f1;f1;f1;): 2 Function None 8 +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 - 13: Label - 14: 6(float) Load 9(x) - Store 10(y) 14 - 15: 6(float) Load 10(y) - Store 11(z) 15 - Store 9(x) 16 + 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-new/Test/baseResults/hlsl.intrinsic.frexp.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.intrinsic.frexp.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.intrinsic.frexp.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.intrinsic.frexp.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 07bd3709e2..13fe578073 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -1,82 +1,96 @@ hlsl.intrinsics.barriers.comp -Shader version: 450 +Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: ComputeShaderFunction( (temp float) +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 GroupMemoryBarrier (temp void) -0:7 GroupMemoryBarrierWithGroupSync (temp void) -0:8 WorkgroupMemoryBarrier (temp void) -0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) -0:11 Sequence -0:11 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:11 Constant: -0:11 0.000000 -0:11 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out float) Linked compute stage: -Shader version: 450 +Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: ComputeShaderFunction( (temp float) +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 GroupMemoryBarrier (temp void) -0:7 GroupMemoryBarrierWithGroupSync (temp void) -0:8 WorkgroupMemoryBarrier (temp void) -0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) -0:11 Sequence -0:11 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:11 Constant: -0:11 0.000000 -0:11 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 17 +// 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" 14 + EntryPoint GLCompute 4 "ComputeShaderFunction" 20 ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 Name 4 "ComputeShaderFunction" - Name 14 "@entryPointOutput" - Decorate 14(@entryPointOutput) Location 0 + Name 8 "@ComputeShaderFunction(" + Name 20 "@entryPointOutput" + Decorate 20(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 - 6: TypeInt 32 0 - 7: 6(int) Constant 1 - 8: 6(int) Constant 4048 - 9: 6(int) Constant 512 - 10: 6(int) Constant 2 - 11: 6(int) Constant 256 - 12: TypeFloat 32 - 13: TypePointer Output 12(float) -14(@entryPointOutput): 13(ptr) Variable Output - 15: 12(float) Constant 0 + 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 - MemoryBarrier 7 8 - ControlBarrier 7 7 8 - MemoryBarrier 7 9 - ControlBarrier 7 7 9 - MemoryBarrier 10 11 - ControlBarrier 10 10 11 - Store 14(@entryPointOutput) 15 + 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 index 42ad973163..a5b543cb2b 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.comp.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.comp.out @@ -1,675 +1,730 @@ hlsl.intrinsics.comp -Shader version: 450 +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 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: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 'inF0' (in float) -0:24 AtomicAdd (temp void) -0:24 'gs_ua' (shared uint) -0:24 'gs_ub' (shared uint) -0:25 move second child to first child (temp uint) -0:25 'out_u1' (temp uint) -0:25 AtomicAdd (temp uint) -0:25 'gs_ua' (shared uint) -0:25 'gs_ub' (shared uint) -0:26 AtomicAnd (temp void) -0:26 'gs_ua' (shared uint) -0:26 'gs_ub' (shared uint) -0:27 move second child to first child (temp uint) -0:27 'out_u1' (temp uint) -0:27 AtomicAnd (temp uint) -0:27 'gs_ua' (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 void) -0:30 'gs_ua' (shared uint) -0:30 'gs_ub' (shared uint) -0:31 move second child to first child (temp uint) -0:31 'out_u1' (temp uint) -0:31 AtomicMax (temp uint) -0:31 'gs_ua' (shared uint) -0:31 'gs_ub' (shared uint) -0:32 AtomicMin (temp void) -0:32 'gs_ua' (shared uint) -0:32 'gs_ub' (shared uint) -0:33 move second child to first child (temp uint) -0:33 'out_u1' (temp uint) -0:33 AtomicMin (temp uint) -0:33 'gs_ua' (shared uint) -0:33 'gs_ub' (shared uint) -0:34 AtomicOr (temp void) -0:34 'gs_ua' (shared uint) -0:34 'gs_ub' (shared uint) -0:35 move second child to first child (temp uint) -0:35 'out_u1' (temp uint) -0:35 AtomicOr (temp uint) -0:35 'gs_ua' (shared uint) -0:35 'gs_ub' (shared uint) -0:36 AtomicXor (temp void) -0:36 'gs_ua' (shared uint) -0:36 'gs_ub' (shared uint) -0:37 move second child to first child (temp uint) -0:37 'out_u1' (temp uint) -0:37 AtomicXor (temp uint) -0:37 'gs_ua' (shared uint) -0:37 'gs_ub' (shared uint) +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 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: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 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: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 'inF0' (in 2-component vector of float) -0:58 AtomicAdd (temp void) -0:58 'gs_ua2' (shared 2-component vector of uint) -0:58 'gs_ub2' (shared 2-component vector of uint) -0:59 move second child to first child (temp 2-component vector of uint) -0:59 'out_u2' (temp 2-component vector of uint) -0:59 AtomicAdd (temp 2-component vector of uint) -0:59 'gs_ua2' (shared 2-component vector of uint) -0:59 'gs_ub2' (shared 2-component vector of uint) -0:60 AtomicAnd (temp void) -0:60 'gs_ua2' (shared 2-component vector of uint) -0:60 'gs_ub2' (shared 2-component vector of uint) -0:61 move second child to first child (temp 2-component vector of uint) -0:61 'out_u2' (temp 2-component vector of uint) -0:61 AtomicAnd (temp 2-component vector of uint) -0:61 'gs_ua2' (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 void) -0:64 'gs_ua2' (shared 2-component vector of uint) -0:64 'gs_ub2' (shared 2-component vector of uint) -0:65 move second child to first child (temp 2-component vector of uint) -0:65 'out_u2' (temp 2-component vector of uint) -0:65 AtomicMax (temp 2-component vector of uint) -0:65 'gs_ua2' (shared 2-component vector of uint) -0:65 'gs_ub2' (shared 2-component vector of uint) -0:66 AtomicMin (temp void) -0:66 'gs_ua2' (shared 2-component vector of uint) -0:66 'gs_ub2' (shared 2-component vector of uint) -0:67 move second child to first child (temp 2-component vector of uint) -0:67 'out_u2' (temp 2-component vector of uint) -0:67 AtomicMin (temp 2-component vector of uint) -0:67 'gs_ua2' (shared 2-component vector of uint) -0:67 'gs_ub2' (shared 2-component vector of uint) -0:68 AtomicOr (temp void) -0:68 'gs_ua2' (shared 2-component vector of uint) -0:68 'gs_ub2' (shared 2-component vector of uint) -0:69 move second child to first child (temp 2-component vector of uint) -0:69 'out_u2' (temp 2-component vector of uint) -0:69 AtomicOr (temp 2-component vector of uint) -0:69 'gs_ua2' (shared 2-component vector of uint) -0:69 'gs_ub2' (shared 2-component vector of uint) -0:70 AtomicXor (temp void) -0:70 'gs_ua2' (shared 2-component vector of uint) -0:70 'gs_ub2' (shared 2-component vector of uint) -0:71 move second child to first child (temp 2-component vector of uint) -0:71 'out_u2' (temp 2-component vector of uint) -0:71 AtomicXor (temp 2-component vector of uint) -0:71 'gs_ua2' (shared 2-component vector of uint) -0:71 'gs_ub2' (shared 2-component vector of uint) +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 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: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 'inF0' (in 3-component vector of float) -0:85 AtomicAdd (temp void) -0:85 'gs_ua3' (shared 3-component vector of uint) -0:85 'gs_ub3' (shared 3-component vector of uint) -0:86 move second child to first child (temp 3-component vector of uint) -0:86 'out_u3' (temp 3-component vector of uint) -0:86 AtomicAdd (temp 3-component vector of uint) -0:86 'gs_ua3' (shared 3-component vector of uint) -0:86 'gs_ub3' (shared 3-component vector of uint) -0:87 AtomicAnd (temp void) -0:87 'gs_ua3' (shared 3-component vector of uint) -0:87 'gs_ub3' (shared 3-component vector of uint) -0:88 move second child to first child (temp 3-component vector of uint) -0:88 'out_u3' (temp 3-component vector of uint) -0:88 AtomicAnd (temp 3-component vector of uint) -0:88 'gs_ua3' (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 void) -0:91 'gs_ua3' (shared 3-component vector of uint) -0:91 'gs_ub3' (shared 3-component vector of uint) -0:92 move second child to first child (temp 3-component vector of uint) -0:92 'out_u3' (temp 3-component vector of uint) -0:92 AtomicMax (temp 3-component vector of uint) -0:92 'gs_ua3' (shared 3-component vector of uint) -0:92 'gs_ub3' (shared 3-component vector of uint) -0:93 AtomicMin (temp void) -0:93 'gs_ua3' (shared 3-component vector of uint) -0:93 'gs_ub3' (shared 3-component vector of uint) -0:94 move second child to first child (temp 3-component vector of uint) -0:94 'out_u3' (temp 3-component vector of uint) -0:94 AtomicMin (temp 3-component vector of uint) -0:94 'gs_ua3' (shared 3-component vector of uint) -0:94 'gs_ub3' (shared 3-component vector of uint) -0:95 AtomicOr (temp void) -0:95 'gs_ua3' (shared 3-component vector of uint) -0:95 'gs_ub3' (shared 3-component vector of uint) -0:96 move second child to first child (temp 3-component vector of uint) -0:96 'out_u3' (temp 3-component vector of uint) -0:96 AtomicOr (temp 3-component vector of uint) -0:96 'gs_ua3' (shared 3-component vector of uint) -0:96 'gs_ub3' (shared 3-component vector of uint) -0:97 AtomicXor (temp void) -0:97 'gs_ua3' (shared 3-component vector of uint) -0:97 'gs_ub3' (shared 3-component vector of uint) -0:98 move second child to first child (temp 3-component vector of uint) -0:98 'out_u3' (temp 3-component vector of uint) -0:98 AtomicXor (temp 3-component vector of uint) -0:98 'gs_ua3' (shared 3-component vector of uint) -0:98 'gs_ub3' (shared 3-component vector of uint) +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 Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:105 Function Parameters: -0:105 'inF0' (layout(location=0 ) in 4-component vector of float) -0:105 'inF1' (layout(location=1 ) in 4-component vector of float) -0:105 'inF2' (layout(location=2 ) in 4-component vector of float) -0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) +0: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 'inF0' (layout(location=0 ) in 4-component vector of float) -0:112 AtomicAdd (temp void) -0:112 'gs_ua4' (shared 4-component vector of uint) -0:112 'gs_ub4' (shared 4-component vector of uint) -0:113 move second child to first child (temp 4-component vector of uint) -0:113 'out_u4' (temp 4-component vector of uint) -0:113 AtomicAdd (temp 4-component vector of uint) -0:113 'gs_ua4' (shared 4-component vector of uint) -0:113 'gs_ub4' (shared 4-component vector of uint) -0:114 AtomicAnd (temp void) -0:114 'gs_ua4' (shared 4-component vector of uint) -0:114 'gs_ub4' (shared 4-component vector of uint) -0:115 move second child to first child (temp 4-component vector of uint) -0:115 'out_u4' (temp 4-component vector of uint) -0:115 AtomicAnd (temp 4-component vector of uint) -0:115 'gs_ua4' (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 void) -0:118 'gs_ua4' (shared 4-component vector of uint) -0:118 'gs_ub4' (shared 4-component vector of uint) -0:119 move second child to first child (temp 4-component vector of uint) -0:119 'out_u4' (temp 4-component vector of uint) -0:119 AtomicMax (temp 4-component vector of uint) -0:119 'gs_ua4' (shared 4-component vector of uint) -0:119 'gs_ub4' (shared 4-component vector of uint) -0:120 AtomicMin (temp void) -0:120 'gs_ua4' (shared 4-component vector of uint) -0:120 'gs_ub4' (shared 4-component vector of uint) -0:121 move second child to first child (temp 4-component vector of uint) -0:121 'out_u4' (temp 4-component vector of uint) -0:121 AtomicMin (temp 4-component vector of uint) -0:121 'gs_ua4' (shared 4-component vector of uint) -0:121 'gs_ub4' (shared 4-component vector of uint) -0:122 AtomicOr (temp void) -0:122 'gs_ua4' (shared 4-component vector of uint) -0:122 'gs_ub4' (shared 4-component vector of uint) -0:123 move second child to first child (temp 4-component vector of uint) -0:123 'out_u4' (temp 4-component vector of uint) -0:123 AtomicOr (temp 4-component vector of uint) -0:123 'gs_ua4' (shared 4-component vector of uint) -0:123 'gs_ub4' (shared 4-component vector of uint) -0:124 AtomicXor (temp void) -0:124 'gs_ua4' (shared 4-component vector of uint) -0:124 'gs_ub4' (shared 4-component vector of uint) -0:125 move second child to first child (temp 4-component vector of uint) -0:125 'out_u4' (temp 4-component vector of uint) -0:125 AtomicXor (temp 4-component vector of uint) -0:125 'gs_ua4' (shared 4-component vector of uint) -0:125 'gs_ub4' (shared 4-component vector of uint) -0:128 Sequence -0:128 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:128 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) -0:? 'gs_ua' (shared uint) -0:? 'gs_ub' (shared uint) -0:? 'gs_uc' (shared uint) -0:? 'gs_ua2' (shared 2-component vector of uint) -0:? 'gs_ub2' (shared 2-component vector of uint) -0:? 'gs_uc2' (shared 2-component vector of uint) -0:? 'gs_ua3' (shared 3-component vector of uint) -0:? 'gs_ub3' (shared 3-component vector of uint) -0:? 'gs_uc3' (shared 3-component vector of uint) -0:? 'gs_ua4' (shared 4-component vector of uint) -0:? 'gs_ub4' (shared 4-component vector of uint) -0:? 'gs_uc4' (shared 4-component vector of uint) +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: 450 +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 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: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 'inF0' (in float) -0:24 AtomicAdd (temp void) -0:24 'gs_ua' (shared uint) -0:24 'gs_ub' (shared uint) -0:25 move second child to first child (temp uint) -0:25 'out_u1' (temp uint) -0:25 AtomicAdd (temp uint) -0:25 'gs_ua' (shared uint) -0:25 'gs_ub' (shared uint) -0:26 AtomicAnd (temp void) -0:26 'gs_ua' (shared uint) -0:26 'gs_ub' (shared uint) -0:27 move second child to first child (temp uint) -0:27 'out_u1' (temp uint) -0:27 AtomicAnd (temp uint) -0:27 'gs_ua' (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 void) -0:30 'gs_ua' (shared uint) -0:30 'gs_ub' (shared uint) -0:31 move second child to first child (temp uint) -0:31 'out_u1' (temp uint) -0:31 AtomicMax (temp uint) -0:31 'gs_ua' (shared uint) -0:31 'gs_ub' (shared uint) -0:32 AtomicMin (temp void) -0:32 'gs_ua' (shared uint) -0:32 'gs_ub' (shared uint) -0:33 move second child to first child (temp uint) -0:33 'out_u1' (temp uint) -0:33 AtomicMin (temp uint) -0:33 'gs_ua' (shared uint) -0:33 'gs_ub' (shared uint) -0:34 AtomicOr (temp void) -0:34 'gs_ua' (shared uint) -0:34 'gs_ub' (shared uint) -0:35 move second child to first child (temp uint) -0:35 'out_u1' (temp uint) -0:35 AtomicOr (temp uint) -0:35 'gs_ua' (shared uint) -0:35 'gs_ub' (shared uint) -0:36 AtomicXor (temp void) -0:36 'gs_ua' (shared uint) -0:36 'gs_ub' (shared uint) -0:37 move second child to first child (temp uint) -0:37 'out_u1' (temp uint) -0:37 AtomicXor (temp uint) -0:37 'gs_ua' (shared uint) -0:37 'gs_ub' (shared uint) +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 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: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 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: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 'inF0' (in 2-component vector of float) -0:58 AtomicAdd (temp void) -0:58 'gs_ua2' (shared 2-component vector of uint) -0:58 'gs_ub2' (shared 2-component vector of uint) -0:59 move second child to first child (temp 2-component vector of uint) -0:59 'out_u2' (temp 2-component vector of uint) -0:59 AtomicAdd (temp 2-component vector of uint) -0:59 'gs_ua2' (shared 2-component vector of uint) -0:59 'gs_ub2' (shared 2-component vector of uint) -0:60 AtomicAnd (temp void) -0:60 'gs_ua2' (shared 2-component vector of uint) -0:60 'gs_ub2' (shared 2-component vector of uint) -0:61 move second child to first child (temp 2-component vector of uint) -0:61 'out_u2' (temp 2-component vector of uint) -0:61 AtomicAnd (temp 2-component vector of uint) -0:61 'gs_ua2' (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 void) -0:64 'gs_ua2' (shared 2-component vector of uint) -0:64 'gs_ub2' (shared 2-component vector of uint) -0:65 move second child to first child (temp 2-component vector of uint) -0:65 'out_u2' (temp 2-component vector of uint) -0:65 AtomicMax (temp 2-component vector of uint) -0:65 'gs_ua2' (shared 2-component vector of uint) -0:65 'gs_ub2' (shared 2-component vector of uint) -0:66 AtomicMin (temp void) -0:66 'gs_ua2' (shared 2-component vector of uint) -0:66 'gs_ub2' (shared 2-component vector of uint) -0:67 move second child to first child (temp 2-component vector of uint) -0:67 'out_u2' (temp 2-component vector of uint) -0:67 AtomicMin (temp 2-component vector of uint) -0:67 'gs_ua2' (shared 2-component vector of uint) -0:67 'gs_ub2' (shared 2-component vector of uint) -0:68 AtomicOr (temp void) -0:68 'gs_ua2' (shared 2-component vector of uint) -0:68 'gs_ub2' (shared 2-component vector of uint) -0:69 move second child to first child (temp 2-component vector of uint) -0:69 'out_u2' (temp 2-component vector of uint) -0:69 AtomicOr (temp 2-component vector of uint) -0:69 'gs_ua2' (shared 2-component vector of uint) -0:69 'gs_ub2' (shared 2-component vector of uint) -0:70 AtomicXor (temp void) -0:70 'gs_ua2' (shared 2-component vector of uint) -0:70 'gs_ub2' (shared 2-component vector of uint) -0:71 move second child to first child (temp 2-component vector of uint) -0:71 'out_u2' (temp 2-component vector of uint) -0:71 AtomicXor (temp 2-component vector of uint) -0:71 'gs_ua2' (shared 2-component vector of uint) -0:71 'gs_ub2' (shared 2-component vector of uint) +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 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: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 'inF0' (in 3-component vector of float) -0:85 AtomicAdd (temp void) -0:85 'gs_ua3' (shared 3-component vector of uint) -0:85 'gs_ub3' (shared 3-component vector of uint) -0:86 move second child to first child (temp 3-component vector of uint) -0:86 'out_u3' (temp 3-component vector of uint) -0:86 AtomicAdd (temp 3-component vector of uint) -0:86 'gs_ua3' (shared 3-component vector of uint) -0:86 'gs_ub3' (shared 3-component vector of uint) -0:87 AtomicAnd (temp void) -0:87 'gs_ua3' (shared 3-component vector of uint) -0:87 'gs_ub3' (shared 3-component vector of uint) -0:88 move second child to first child (temp 3-component vector of uint) -0:88 'out_u3' (temp 3-component vector of uint) -0:88 AtomicAnd (temp 3-component vector of uint) -0:88 'gs_ua3' (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 void) -0:91 'gs_ua3' (shared 3-component vector of uint) -0:91 'gs_ub3' (shared 3-component vector of uint) -0:92 move second child to first child (temp 3-component vector of uint) -0:92 'out_u3' (temp 3-component vector of uint) -0:92 AtomicMax (temp 3-component vector of uint) -0:92 'gs_ua3' (shared 3-component vector of uint) -0:92 'gs_ub3' (shared 3-component vector of uint) -0:93 AtomicMin (temp void) -0:93 'gs_ua3' (shared 3-component vector of uint) -0:93 'gs_ub3' (shared 3-component vector of uint) -0:94 move second child to first child (temp 3-component vector of uint) -0:94 'out_u3' (temp 3-component vector of uint) -0:94 AtomicMin (temp 3-component vector of uint) -0:94 'gs_ua3' (shared 3-component vector of uint) -0:94 'gs_ub3' (shared 3-component vector of uint) -0:95 AtomicOr (temp void) -0:95 'gs_ua3' (shared 3-component vector of uint) -0:95 'gs_ub3' (shared 3-component vector of uint) -0:96 move second child to first child (temp 3-component vector of uint) -0:96 'out_u3' (temp 3-component vector of uint) -0:96 AtomicOr (temp 3-component vector of uint) -0:96 'gs_ua3' (shared 3-component vector of uint) -0:96 'gs_ub3' (shared 3-component vector of uint) -0:97 AtomicXor (temp void) -0:97 'gs_ua3' (shared 3-component vector of uint) -0:97 'gs_ub3' (shared 3-component vector of uint) -0:98 move second child to first child (temp 3-component vector of uint) -0:98 'out_u3' (temp 3-component vector of uint) -0:98 AtomicXor (temp 3-component vector of uint) -0:98 'gs_ua3' (shared 3-component vector of uint) -0:98 'gs_ub3' (shared 3-component vector of uint) +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 Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:105 Function Parameters: -0:105 'inF0' (layout(location=0 ) in 4-component vector of float) -0:105 'inF1' (layout(location=1 ) in 4-component vector of float) -0:105 'inF2' (layout(location=2 ) in 4-component vector of float) -0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) +0: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 'inF0' (layout(location=0 ) in 4-component vector of float) -0:112 AtomicAdd (temp void) -0:112 'gs_ua4' (shared 4-component vector of uint) -0:112 'gs_ub4' (shared 4-component vector of uint) -0:113 move second child to first child (temp 4-component vector of uint) -0:113 'out_u4' (temp 4-component vector of uint) -0:113 AtomicAdd (temp 4-component vector of uint) -0:113 'gs_ua4' (shared 4-component vector of uint) -0:113 'gs_ub4' (shared 4-component vector of uint) -0:114 AtomicAnd (temp void) -0:114 'gs_ua4' (shared 4-component vector of uint) -0:114 'gs_ub4' (shared 4-component vector of uint) -0:115 move second child to first child (temp 4-component vector of uint) -0:115 'out_u4' (temp 4-component vector of uint) -0:115 AtomicAnd (temp 4-component vector of uint) -0:115 'gs_ua4' (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 void) -0:118 'gs_ua4' (shared 4-component vector of uint) -0:118 'gs_ub4' (shared 4-component vector of uint) -0:119 move second child to first child (temp 4-component vector of uint) -0:119 'out_u4' (temp 4-component vector of uint) -0:119 AtomicMax (temp 4-component vector of uint) -0:119 'gs_ua4' (shared 4-component vector of uint) -0:119 'gs_ub4' (shared 4-component vector of uint) -0:120 AtomicMin (temp void) -0:120 'gs_ua4' (shared 4-component vector of uint) -0:120 'gs_ub4' (shared 4-component vector of uint) -0:121 move second child to first child (temp 4-component vector of uint) -0:121 'out_u4' (temp 4-component vector of uint) -0:121 AtomicMin (temp 4-component vector of uint) -0:121 'gs_ua4' (shared 4-component vector of uint) -0:121 'gs_ub4' (shared 4-component vector of uint) -0:122 AtomicOr (temp void) -0:122 'gs_ua4' (shared 4-component vector of uint) -0:122 'gs_ub4' (shared 4-component vector of uint) -0:123 move second child to first child (temp 4-component vector of uint) -0:123 'out_u4' (temp 4-component vector of uint) -0:123 AtomicOr (temp 4-component vector of uint) -0:123 'gs_ua4' (shared 4-component vector of uint) -0:123 'gs_ub4' (shared 4-component vector of uint) -0:124 AtomicXor (temp void) -0:124 'gs_ua4' (shared 4-component vector of uint) -0:124 'gs_ub4' (shared 4-component vector of uint) -0:125 move second child to first child (temp 4-component vector of uint) -0:125 'out_u4' (temp 4-component vector of uint) -0:125 AtomicXor (temp 4-component vector of uint) -0:125 'gs_ua4' (shared 4-component vector of uint) -0:125 'gs_ub4' (shared 4-component vector of uint) -0:128 Sequence -0:128 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:128 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) -0:? 'gs_ua' (shared uint) -0:? 'gs_ub' (shared uint) -0:? 'gs_uc' (shared uint) -0:? 'gs_ua2' (shared 2-component vector of uint) -0:? 'gs_ub2' (shared 2-component vector of uint) -0:? 'gs_uc2' (shared 2-component vector of uint) -0:? 'gs_ua3' (shared 3-component vector of uint) -0:? 'gs_ub3' (shared 3-component vector of uint) -0:? 'gs_uc3' (shared 3-component vector of uint) -0:? 'gs_ua4' (shared 4-component vector of uint) -0:? 'gs_ub4' (shared 4-component vector of uint) -0:? 'gs_uc4' (shared 4-component vector of uint) +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): 80001 -// Id's are bound by 224 +// 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" 175 215 219 220 222 223 + 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" @@ -693,34 +748,50 @@ local_size = (1, 1, 1) Name 43 "inF2" Name 44 "inU0" Name 45 "inU1" - Name 52 "gs_ua" - Name 53 "gs_ub" - Name 58 "out_u1" - Name 66 "gs_uc" - Name 95 "gs_ua2" - Name 96 "gs_ub2" - Name 99 "out_u2" - Name 107 "gs_uc2" - Name 136 "gs_ua3" - Name 137 "gs_ub3" - Name 140 "out_u3" - Name 148 "gs_uc3" - Name 175 "inF0" - Name 180 "gs_ua4" - Name 181 "gs_ub4" - Name 185 "out_u4" - Name 193 "gs_uc4" - Name 215 "@entryPointOutput" - Name 219 "inF1" - Name 220 "inF2" - Name 222 "inU0" - Name 223 "inU1" - Decorate 175(inF0) Location 0 - Decorate 215(@entryPointOutput) Location 0 - Decorate 219(inF1) Location 1 - Decorate 220(inF2) Location 2 - Decorate 222(inU0) Location 3 - Decorate 223(inU1) Location 4 + 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 @@ -739,88 +810,87 @@ local_size = (1, 1, 1) 38: TypeVector 8(int) 3 39: TypePointer Function 38(ivec3) 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) - 49: TypeBool - 51: TypePointer Workgroup 8(int) - 52(gs_ua): 51(ptr) Variable Workgroup - 53(gs_ub): 51(ptr) Variable Workgroup - 55: 8(int) Constant 1 - 56: 8(int) Constant 0 - 66(gs_uc): 51(ptr) Variable Workgroup - 87: 6(float) Constant 0 - 94: TypePointer Workgroup 26(ivec2) - 95(gs_ua2): 94(ptr) Variable Workgroup - 96(gs_ub2): 94(ptr) Variable Workgroup - 107(gs_uc2): 94(ptr) Variable Workgroup - 128: 6(float) Constant 1065353216 - 129: 6(float) Constant 1073741824 - 130: 24(fvec2) ConstantComposite 128 129 - 135: TypePointer Workgroup 38(ivec3) - 136(gs_ua3): 135(ptr) Variable Workgroup - 137(gs_ub3): 135(ptr) Variable Workgroup - 148(gs_uc3): 135(ptr) Variable Workgroup - 169: 6(float) Constant 1077936128 - 170: 36(fvec3) ConstantComposite 128 129 169 - 173: TypeVector 6(float) 4 - 174: TypePointer Input 173(fvec4) - 175(inF0): 174(ptr) Variable Input - 178: TypeVector 8(int) 4 - 179: TypePointer Workgroup 178(ivec4) - 180(gs_ua4): 179(ptr) Variable Workgroup - 181(gs_ub4): 179(ptr) Variable Workgroup - 184: TypePointer Function 178(ivec4) - 193(gs_uc4): 179(ptr) Variable Workgroup - 214: TypePointer Output 173(fvec4) -215(@entryPointOutput): 214(ptr) Variable Output - 216: 6(float) Constant 1082130432 - 217: 173(fvec4) ConstantComposite 128 129 169 216 - 219(inF1): 174(ptr) Variable Input - 220(inF2): 174(ptr) Variable Input - 221: TypePointer Input 178(ivec4) - 222(inU0): 221(ptr) Variable Input - 223(inU1): 221(ptr) Variable Input + 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 - 185(out_u4): 184(ptr) Variable Function - 176: 173(fvec4) Load 175(inF0) - 177: 49(bool) All 176 - 182: 178(ivec4) Load 181(gs_ub4) - 183: 2 AtomicIAdd 180(gs_ua4) 55 56 182 - 186: 178(ivec4) Load 181(gs_ub4) - 187: 178(ivec4) AtomicIAdd 180(gs_ua4) 55 56 186 - Store 185(out_u4) 187 - 188: 178(ivec4) Load 181(gs_ub4) - 189: 2 AtomicAnd 180(gs_ua4) 55 56 188 - 190: 178(ivec4) Load 181(gs_ub4) - 191: 178(ivec4) AtomicAnd 180(gs_ua4) 55 56 190 - Store 185(out_u4) 191 - 192: 178(ivec4) Load 181(gs_ub4) - 194: 178(ivec4) Load 193(gs_uc4) - 195: 178(ivec4) AtomicCompareExchange 180(gs_ua4) 55 56 56 194 192 - Store 185(out_u4) 195 - 196: 178(ivec4) Load 181(gs_ub4) - 197: 178(ivec4) AtomicExchange 180(gs_ua4) 55 56 196 - Store 185(out_u4) 197 - 198: 178(ivec4) Load 181(gs_ub4) - 199: 2 AtomicSMax 180(gs_ua4) 55 56 198 - 200: 178(ivec4) Load 181(gs_ub4) - 201: 178(ivec4) AtomicUMax 180(gs_ua4) 55 56 200 - Store 185(out_u4) 201 - 202: 178(ivec4) Load 181(gs_ub4) - 203: 2 AtomicSMin 180(gs_ua4) 55 56 202 - 204: 178(ivec4) Load 181(gs_ub4) - 205: 178(ivec4) AtomicUMin 180(gs_ua4) 55 56 204 - Store 185(out_u4) 205 - 206: 178(ivec4) Load 181(gs_ub4) - 207: 2 AtomicOr 180(gs_ua4) 55 56 206 - 208: 178(ivec4) Load 181(gs_ub4) - 209: 178(ivec4) AtomicOr 180(gs_ua4) 55 56 208 - Store 185(out_u4) 209 - 210: 178(ivec4) Load 181(gs_ub4) - 211: 2 AtomicXor 180(gs_ua4) 55 56 210 - 212: 178(ivec4) Load 181(gs_ub4) - 213: 178(ivec4) AtomicXor 180(gs_ua4) 55 56 212 - Store 185(out_u4) 213 - Store 215(@entryPointOutput) 217 + 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 @@ -830,54 +900,55 @@ local_size = (1, 1, 1) 14(inU0): 9(ptr) FunctionParameter 15(inU1): 9(ptr) FunctionParameter 17: Label - 58(out_u1): 9(ptr) Variable Function - 48: 6(float) Load 11(inF0) - 50: 49(bool) All 48 - 54: 8(int) Load 53(gs_ub) - 57: 2 AtomicIAdd 52(gs_ua) 55 56 54 - 59: 8(int) Load 53(gs_ub) - 60: 8(int) AtomicIAdd 52(gs_ua) 55 56 59 - Store 58(out_u1) 60 - 61: 8(int) Load 53(gs_ub) - 62: 2 AtomicAnd 52(gs_ua) 55 56 61 - 63: 8(int) Load 53(gs_ub) - 64: 8(int) AtomicAnd 52(gs_ua) 55 56 63 - Store 58(out_u1) 64 - 65: 8(int) Load 53(gs_ub) - 67: 8(int) Load 66(gs_uc) - 68: 8(int) AtomicCompareExchange 52(gs_ua) 55 56 56 67 65 - Store 58(out_u1) 68 - 69: 8(int) Load 53(gs_ub) - 70: 8(int) AtomicExchange 52(gs_ua) 55 56 69 - Store 58(out_u1) 70 - 71: 8(int) Load 53(gs_ub) - 72: 2 AtomicSMax 52(gs_ua) 55 56 71 - 73: 8(int) Load 53(gs_ub) - 74: 8(int) AtomicUMax 52(gs_ua) 55 56 73 - Store 58(out_u1) 74 - 75: 8(int) Load 53(gs_ub) - 76: 2 AtomicSMin 52(gs_ua) 55 56 75 - 77: 8(int) Load 53(gs_ub) - 78: 8(int) AtomicUMin 52(gs_ua) 55 56 77 - Store 58(out_u1) 78 - 79: 8(int) Load 53(gs_ub) - 80: 2 AtomicOr 52(gs_ua) 55 56 79 - 81: 8(int) Load 53(gs_ub) - 82: 8(int) AtomicOr 52(gs_ua) 55 56 81 - Store 58(out_u1) 82 - 83: 8(int) Load 53(gs_ub) - 84: 2 AtomicXor 52(gs_ua) 55 56 83 - 85: 8(int) Load 53(gs_ub) - 86: 8(int) AtomicXor 52(gs_ua) 55 56 85 - Store 58(out_u1) 86 - ReturnValue 87 + 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 87 + ReturnValue 62 FunctionEnd 34(ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 29(inF0): 25(ptr) FunctionParameter @@ -886,47 +957,48 @@ local_size = (1, 1, 1) 32(inU0): 27(ptr) FunctionParameter 33(inU1): 27(ptr) FunctionParameter 35: Label - 99(out_u2): 27(ptr) Variable Function - 92: 24(fvec2) Load 29(inF0) - 93: 49(bool) All 92 - 97: 26(ivec2) Load 96(gs_ub2) - 98: 2 AtomicIAdd 95(gs_ua2) 55 56 97 - 100: 26(ivec2) Load 96(gs_ub2) - 101: 26(ivec2) AtomicIAdd 95(gs_ua2) 55 56 100 - Store 99(out_u2) 101 - 102: 26(ivec2) Load 96(gs_ub2) - 103: 2 AtomicAnd 95(gs_ua2) 55 56 102 - 104: 26(ivec2) Load 96(gs_ub2) - 105: 26(ivec2) AtomicAnd 95(gs_ua2) 55 56 104 - Store 99(out_u2) 105 - 106: 26(ivec2) Load 96(gs_ub2) - 108: 26(ivec2) Load 107(gs_uc2) - 109: 26(ivec2) AtomicCompareExchange 95(gs_ua2) 55 56 56 108 106 - Store 99(out_u2) 109 - 110: 26(ivec2) Load 96(gs_ub2) - 111: 26(ivec2) AtomicExchange 95(gs_ua2) 55 56 110 - Store 99(out_u2) 111 - 112: 26(ivec2) Load 96(gs_ub2) - 113: 2 AtomicSMax 95(gs_ua2) 55 56 112 - 114: 26(ivec2) Load 96(gs_ub2) - 115: 26(ivec2) AtomicUMax 95(gs_ua2) 55 56 114 - Store 99(out_u2) 115 - 116: 26(ivec2) Load 96(gs_ub2) - 117: 2 AtomicSMin 95(gs_ua2) 55 56 116 - 118: 26(ivec2) Load 96(gs_ub2) - 119: 26(ivec2) AtomicUMin 95(gs_ua2) 55 56 118 - Store 99(out_u2) 119 - 120: 26(ivec2) Load 96(gs_ub2) - 121: 2 AtomicOr 95(gs_ua2) 55 56 120 - 122: 26(ivec2) Load 96(gs_ub2) - 123: 26(ivec2) AtomicOr 95(gs_ua2) 55 56 122 - Store 99(out_u2) 123 - 124: 26(ivec2) Load 96(gs_ub2) - 125: 2 AtomicXor 95(gs_ua2) 55 56 124 - 126: 26(ivec2) Load 96(gs_ub2) - 127: 26(ivec2) AtomicXor 95(gs_ua2) 55 56 126 - Store 99(out_u2) 127 - ReturnValue 130 + 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 @@ -935,45 +1007,96 @@ local_size = (1, 1, 1) 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label - 140(out_u3): 39(ptr) Variable Function - 133: 36(fvec3) Load 41(inF0) - 134: 49(bool) All 133 - 138: 38(ivec3) Load 137(gs_ub3) - 139: 2 AtomicIAdd 136(gs_ua3) 55 56 138 - 141: 38(ivec3) Load 137(gs_ub3) - 142: 38(ivec3) AtomicIAdd 136(gs_ua3) 55 56 141 - Store 140(out_u3) 142 - 143: 38(ivec3) Load 137(gs_ub3) - 144: 2 AtomicAnd 136(gs_ua3) 55 56 143 - 145: 38(ivec3) Load 137(gs_ub3) - 146: 38(ivec3) AtomicAnd 136(gs_ua3) 55 56 145 - Store 140(out_u3) 146 - 147: 38(ivec3) Load 137(gs_ub3) - 149: 38(ivec3) Load 148(gs_uc3) - 150: 38(ivec3) AtomicCompareExchange 136(gs_ua3) 55 56 56 149 147 - Store 140(out_u3) 150 - 151: 38(ivec3) Load 137(gs_ub3) - 152: 38(ivec3) AtomicExchange 136(gs_ua3) 55 56 151 - Store 140(out_u3) 152 - 153: 38(ivec3) Load 137(gs_ub3) - 154: 2 AtomicSMax 136(gs_ua3) 55 56 153 - 155: 38(ivec3) Load 137(gs_ub3) - 156: 38(ivec3) AtomicUMax 136(gs_ua3) 55 56 155 - Store 140(out_u3) 156 - 157: 38(ivec3) Load 137(gs_ub3) - 158: 2 AtomicSMin 136(gs_ua3) 55 56 157 - 159: 38(ivec3) Load 137(gs_ub3) - 160: 38(ivec3) AtomicUMin 136(gs_ua3) 55 56 159 - Store 140(out_u3) 160 - 161: 38(ivec3) Load 137(gs_ub3) - 162: 2 AtomicOr 136(gs_ua3) 55 56 161 - 163: 38(ivec3) Load 137(gs_ub3) - 164: 38(ivec3) AtomicOr 136(gs_ua3) 55 56 163 - Store 140(out_u3) 164 - 165: 38(ivec3) Load 137(gs_ub3) - 166: 2 AtomicXor 136(gs_ua3) 55 56 165 - 167: 38(ivec3) Load 137(gs_ub3) - 168: 38(ivec3) AtomicXor 136(gs_ua3) 55 56 167 - Store 140(out_u3) 168 - ReturnValue 170 + 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-new/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out index 91abf73789..55a102f551 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -1,169 +1,339 @@ hlsl.intrinsics.double.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp float) 0:5 Function Parameters: -0:5 'inDV1a' (layout(location=0 ) in double) -0:5 'inDV1b' (layout(location=1 ) in double) -0:5 'inDV1c' (layout(location=2 ) in double) -0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) -0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) -0:5 'inDV4' (layout(location=6 ) in 4-component vector of double) -0:5 'inU1a' (layout(location=8 ) in uint) -0:5 'inU1b' (layout(location=9 ) in uint) +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' (layout(location=0 ) in double) -0:6 'inDV1b' (layout(location=1 ) in double) -0:6 'inDV1c' (layout(location=2 ) in double) +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' (layout(location=8 ) in uint) -0:7 'inU1b' (layout(location=9 ) in uint) -0:9 Sequence -0:9 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:9 Constant: -0:9 0.000000 -0:9 Branch: Return +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 ) in double) -0:? 'inDV1b' (layout(location=1 ) in double) -0:? 'inDV1c' (layout(location=2 ) in double) -0:? 'inDV2' (layout(location=3 ) in 2-component vector of double) -0:? 'inDV3' (layout(location=4 ) in 3-component vector of double) -0:? 'inDV4' (layout(location=6 ) in 4-component vector of double) -0:? 'inU1a' (layout(location=8 ) in uint) -0:? 'inU1b' (layout(location=9 ) in uint) +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: 450 +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 Definition: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp float) 0:5 Function Parameters: -0:5 'inDV1a' (layout(location=0 ) in double) -0:5 'inDV1b' (layout(location=1 ) in double) -0:5 'inDV1c' (layout(location=2 ) in double) -0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) -0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) -0:5 'inDV4' (layout(location=6 ) in 4-component vector of double) -0:5 'inU1a' (layout(location=8 ) in uint) -0:5 'inU1b' (layout(location=9 ) in uint) +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' (layout(location=0 ) in double) -0:6 'inDV1b' (layout(location=1 ) in double) -0:6 'inDV1c' (layout(location=2 ) in double) +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' (layout(location=8 ) in uint) -0:7 'inU1b' (layout(location=9 ) in uint) -0:9 Sequence -0:9 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:9 Constant: -0:9 0.000000 -0:9 Branch: Return +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 ) in double) -0:? 'inDV1b' (layout(location=1 ) in double) -0:? 'inDV1c' (layout(location=2 ) in double) -0:? 'inDV2' (layout(location=3 ) in 2-component vector of double) -0:? 'inDV3' (layout(location=4 ) in 3-component vector of double) -0:? 'inDV4' (layout(location=6 ) in 4-component vector of double) -0:? 'inU1a' (layout(location=8 ) in uint) -0:? 'inU1b' (layout(location=9 ) in uint) +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): 80001 -// Id's are bound by 41 +// 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" 10 12 14 20 22 29 34 37 40 + EntryPoint Fragment 4 "PixelShaderFunction" 44 47 50 54 58 62 66 69 72 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "r00" - Name 10 "inDV1a" - Name 12 "inDV1b" - Name 14 "inDV1c" - Name 17 "r01" - Name 20 "inU1a" - Name 22 "inU1b" - Name 29 "@entryPointOutput" - Name 34 "inDV2" - Name 37 "inDV3" - Name 40 "inDV4" - Decorate 10(inDV1a) Location 0 - Decorate 12(inDV1b) Location 1 - Decorate 14(inDV1c) Location 2 - Decorate 20(inU1a) Location 8 - Decorate 22(inU1b) Location 9 - Decorate 29(@entryPointOutput) Location 0 - Decorate 34(inDV2) Location 3 - Decorate 37(inDV3) Location 4 - Decorate 40(inDV4) Location 6 + 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(float) - 9: TypePointer Input 6(float) - 10(inDV1a): 9(ptr) Variable Input - 12(inDV1b): 9(ptr) Variable Input - 14(inDV1c): 9(ptr) Variable Input - 18: TypeInt 32 0 - 19: TypePointer Input 18(int) - 20(inU1a): 19(ptr) Variable Input - 22(inU1b): 19(ptr) Variable Input - 24: TypeVector 18(int) 2 - 27: TypeFloat 32 - 28: TypePointer Output 27(float) -29(@entryPointOutput): 28(ptr) Variable Output - 30: 27(float) Constant 0 - 32: TypeVector 6(float) 2 - 33: TypePointer Input 32(fvec2) - 34(inDV2): 33(ptr) Variable Input - 35: TypeVector 6(float) 3 - 36: TypePointer Input 35(fvec3) - 37(inDV3): 36(ptr) Variable Input - 38: TypeVector 6(float) 4 - 39: TypePointer Input 38(fvec4) - 40(inDV4): 39(ptr) Variable Input + 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 - 8(r00): 7(ptr) Variable Function - 17(r01): 7(ptr) Variable Function - 11: 6(float) Load 10(inDV1a) - 13: 6(float) Load 12(inDV1b) - 15: 6(float) Load 14(inDV1c) - 16: 6(float) ExtInst 1(GLSL.std.450) 50(Fma) 11 13 15 - Store 8(r00) 16 - 21: 18(int) Load 20(inU1a) - 23: 18(int) Load 22(inU1b) - 25: 24(ivec2) CompositeConstruct 21 23 - 26: 6(float) Bitcast 25 - Store 17(r01) 26 - Store 29(@entryPointOutput) 30 + 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 index 8f8dd61015..e7865627ee 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -1,174 +1,286 @@ hlsl.intrinsics.evalfns.frag -Shader version: 450 +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 Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void) 0:3 Function Parameters: -0:3 'inF1' (layout(location=0 ) in float) -0:3 'inF2' (layout(location=1 ) in 2-component vector of float) -0:3 'inF3' (layout(location=2 ) in 3-component vector of float) -0:3 'inF4' (layout(location=3 ) in 4-component vector of float) -0:3 'inI2' (layout(location=4 ) in 2-component vector of int) +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' (layout(location=0 ) in float) +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' (layout(location=1 ) in 2-component vector of float) +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' (layout(location=2 ) in 3-component vector of float) +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' (layout(location=3 ) in 4-component vector of float) +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' (layout(location=0 ) 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' (layout(location=4 ) in 2-component vector of int) +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 ) in 2-component vector of int) +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: 450 +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 Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void) 0:3 Function Parameters: -0:3 'inF1' (layout(location=0 ) in float) -0:3 'inF2' (layout(location=1 ) in 2-component vector of float) -0:3 'inF3' (layout(location=2 ) in 3-component vector of float) -0:3 'inF4' (layout(location=3 ) in 4-component vector of float) -0:3 'inI2' (layout(location=4 ) in 2-component vector of int) +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' (layout(location=0 ) in float) +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' (layout(location=1 ) in 2-component vector of float) +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' (layout(location=2 ) in 3-component vector of float) +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' (layout(location=3 ) in 4-component vector of float) +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' (layout(location=0 ) 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' (layout(location=4 ) in 2-component vector of int) +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 ) in 2-component vector of int) +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): 80001 -// Id's are bound by 46 +// 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" 8 15 22 29 36 + EntryPoint Fragment 4 "main" 51 55 59 63 67 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "inF1" - Name 15 "inF2" - Name 22 "inF3" - Name 29 "inF4" - Name 36 "inI2" - Decorate 8(inF1) Location 0 - Decorate 15(inF2) Location 1 - Decorate 22(inF3) Location 2 - Decorate 29(inF4) Location 3 - Decorate 36(inI2) Location 4 + 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 Input 6(float) - 8(inF1): 7(ptr) Variable Input - 9: TypeVector 6(float) 2 - 10: 6(float) Constant 3204448256 - 11: 6(float) Constant 3179282432 - 12: 9(fvec2) ConstantComposite 10 11 - 14: TypePointer Input 9(fvec2) - 15(inF2): 14(ptr) Variable Input - 16: 6(float) Constant 0 - 17: 6(float) Constant 1031798784 - 18: 9(fvec2) ConstantComposite 16 17 - 20: TypeVector 6(float) 3 - 21: TypePointer Input 20(fvec3) - 22(inF3): 21(ptr) Variable Input - 23: 6(float) Constant 1044381696 - 24: 6(float) Constant 3200253952 - 25: 9(fvec2) ConstantComposite 23 24 - 27: TypeVector 6(float) 4 - 28: TypePointer Input 27(fvec4) - 29(inF4): 28(ptr) Variable Input - 30: 6(float) Constant 1054867456 - 31: 9(fvec2) ConstantComposite 30 10 - 33: TypeInt 32 1 - 34: TypeVector 33(int) 2 - 35: TypePointer Input 34(ivec2) - 36(inI2): 35(ptr) Variable Input - 38: 33(int) Constant 28 + 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 - 13: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 12 - 19: 9(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 15(inF2) 18 - 26: 20(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 22(inF3) 25 - 32: 27(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 29(inF4) 31 - 37: 34(ivec2) Load 36(inI2) - 39: 34(ivec2) CompositeConstruct 38 38 - 40: 34(ivec2) ShiftLeftLogical 37 39 - 41: 34(ivec2) CompositeConstruct 38 38 - 42: 34(ivec2) ShiftRightArithmetic 40 41 - 43: 9(fvec2) ConvertSToF 42 - 44: 9(fvec2) VectorTimesScalar 43 17 - 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 44 + 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 index 0b4c0746e6..c5619efa55 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -1,139 +1,389 @@ hlsl.intrinsics.f1632.frag -ERROR: 0:3: 'f32tof16' : unimplemented intrinsic: handle natively -ERROR: 0:16: 'f32tof16' : unimplemented intrinsic: handle natively -ERROR: 0:23: 'f32tof16' : unimplemented intrinsic: handle natively -ERROR: 0:30: 'f32tof16' : unimplemented intrinsic: handle natively -ERROR: 4 compilation errors. No code generated. - - -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) +0:? Sequence +0:2 Function Definition: PixelShaderFunctionS(u1; ( temp float) 0:2 Function Parameters: -0:2 'inF0' (in float) +0:2 'inF0' ( in uint) 0:? Sequence -0:3 ERROR: Bad unary op - (temp uint) -0:3 'inF0' (in float) -0:5 Branch: Return with expression -0:5 Constant: -0:5 0.000000 -0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float) -0:9 Function Parameters: -0:9 'inF0' (in 1-component vector of float) +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:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 -0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float) -0:15 Function Parameters: -0:15 'inF0' (in 2-component vector of float) +0: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:16 ERROR: Bad unary op - (temp 2-component vector of uint) -0:16 'inF0' (in 2-component vector of float) 0:18 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float) +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 3-component vector of float) +0:22 'inF0' ( in 4-component vector of uint) 0:? Sequence -0:23 ERROR: Bad unary op - (temp 3-component vector of uint) -0:23 'inF0' (in 3-component vector of float) -0:25 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) -0:29 Function Parameters: -0:29 'inF0' (layout(location=0 ) in 4-component vector of float) +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:30 ERROR: Bad unary op - (temp 4-component vector of uint) -0:30 'inF0' (layout(location=0 ) in 4-component vector of float) -0:32 Sequence -0:32 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:32 Branch: Return +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) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left -ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) +0:? Sequence +0:2 Function Definition: PixelShaderFunctionS(u1; ( temp float) 0:2 Function Parameters: -0:2 'inF0' (in float) +0:2 'inF0' ( in uint) 0:? Sequence -0:3 ERROR: Bad unary op - (temp uint) -0:3 'inF0' (in float) -0:5 Branch: Return with expression -0:5 Constant: -0:5 0.000000 -0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float) -0:9 Function Parameters: -0:9 'inF0' (in 1-component vector of float) +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:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 -0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float) -0:15 Function Parameters: -0:15 'inF0' (in 2-component vector of float) +0: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:16 ERROR: Bad unary op - (temp 2-component vector of uint) -0:16 'inF0' (in 2-component vector of float) 0:18 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float) +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 3-component vector of float) +0:22 'inF0' ( in 4-component vector of uint) 0:? Sequence -0:23 ERROR: Bad unary op - (temp 3-component vector of uint) -0:23 'inF0' (in 3-component vector of float) -0:25 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) -0:29 Function Parameters: -0:29 'inF0' (layout(location=0 ) in 4-component vector of float) +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:30 ERROR: Bad unary op - (temp 4-component vector of uint) -0:30 'inF0' (layout(location=0 ) in 4-component vector of float) -0:32 Sequence -0:32 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:32 Branch: Return +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) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -SPIR-V is not generated for failed compile or link +// 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-new/Test/baseResults/hlsl.intrinsics.f3216.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.intrinsics.f3216.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.frag.out index 5def9667d6..b7d71394f8 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.frag.out @@ -1,1220 +1,1239 @@ hlsl.intrinsics.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) +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 uint) +0:17 'inF0' ( in float) +0:17 'inF1' ( in float) +0:17 'inF2' ( in float) +0:17 'inU0' ( in uint) +0:17 'inU1' ( in 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 'inF0' (in float) +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: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: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 'inF0' (in float) +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: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: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 'inF0' (in float) +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: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: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: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: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: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 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 Sequence -0:34 move second child to first child (temp float) -0:34 'r014' (temp float) -0:34 cosine (temp float) -0:34 'inF0' (in float) +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 'r015' (temp float) -0:35 hyp. cosine (temp float) -0:35 'inF0' (in float) +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 int) -0:36 'r016' (temp int) -0:36 bitCount (temp int) -0:36 Constant: -0:36 7 (const int) +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 float) -0:37 'r017' (temp float) -0:37 dPdx (temp float) -0:37 'inF0' (in float) +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 'r018' (temp float) -0:38 dPdxCoarse (temp float) -0:38 'inF0' (in float) +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 'r019' (temp float) -0:39 dPdxFine (temp float) -0:39 'inF0' (in float) +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 'r020' (temp float) -0:40 dPdy (temp float) -0:40 'inF0' (in float) +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 'r021' (temp float) -0:41 dPdyCoarse (temp float) -0:41 'inF0' (in float) +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 'r022' (temp float) -0:42 dPdyFine (temp float) -0:42 'inF0' (in float) +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 'r023' (temp float) -0:43 degrees (temp float) -0:43 'inF0' (in float) -0:47 Sequence -0:47 move second child to first child (temp float) -0:47 'r027' (temp float) -0:47 exp (temp float) -0:47 'inF0' (in float) +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 'r028' (temp float) -0:48 exp2 (temp float) -0:48 'inF0' (in float) +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 uint) -0:49 'r029' (temp uint) -0:49 Convert int to uint (temp uint) -0:49 findMSB (temp int) -0:49 Constant: -0:49 7 (const int) +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 'r030' (temp uint) -0:50 Convert int to uint (temp uint) -0:50 findLSB (temp int) +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 float) -0:51 'r031' (temp float) -0:51 Floor (temp float) -0:51 'inF0' (in float) -0:53 Sequence -0:53 move second child to first child (temp float) -0:53 'r033' (temp float) -0:53 mod (temp float) -0:53 'inF0' (in float) -0:53 'inF1' (in float) +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 'r034' (temp float) -0:54 Fraction (temp float) -0:54 'inF0' (in float) +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 'r035' (temp float) -0:55 frexp (temp float) -0:55 'inF0' (in float) -0:55 'inF1' (in float) +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: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: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: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: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: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: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 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: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: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: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: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: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 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: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 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: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: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 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: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: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: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: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: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: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: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: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: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: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 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: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 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: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 'inF0' (in 2-component vector of float) +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: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: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 'inF0' (in 2-component vector of float) +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: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: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: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: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: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: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: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: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 any ( temp bool) +0:111 Compare Less Than ( temp 2-component vector of bool) +0:111 'inF0' ( in 2-component vector of float) 0:111 Constant: 0:111 0.000000 0:111 0.000000 0:111 true case 0:111 Branch: Kill -0:112 Sequence -0:112 move second child to first child (temp 2-component vector of float) -0:112 'r013' (temp 2-component vector of float) -0:112 cosine (temp 2-component vector of float) -0:112 'inF0' (in 2-component vector of float) +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 'r015' (temp 2-component vector of float) -0:113 hyp. cosine (temp 2-component vector of float) -0:113 'inF0' (in 2-component vector of float) +0: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 int) -0:114 'r016' (temp 2-component vector of int) -0:? bitCount (temp 2-component vector of int) +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:115 Sequence -0:115 move second child to first child (temp 2-component vector of float) -0:115 'r017' (temp 2-component vector of float) -0:115 dPdx (temp 2-component vector of float) -0:115 'inF0' (in 2-component vector of float) 0:116 Sequence -0:116 move second child to first child (temp 2-component vector of float) -0:116 'r018' (temp 2-component vector of float) -0:116 dPdxCoarse (temp 2-component vector of float) -0:116 'inF0' (in 2-component vector of float) +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 'r019' (temp 2-component vector of float) -0:117 dPdxFine (temp 2-component vector of float) -0:117 'inF0' (in 2-component vector of float) +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 'r020' (temp 2-component vector of float) -0:118 dPdy (temp 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) +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 'r021' (temp 2-component vector of float) -0:119 dPdyCoarse (temp 2-component vector of float) -0:119 'inF0' (in 2-component vector of float) +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 'r022' (temp 2-component vector of float) -0:120 dPdyFine (temp 2-component vector of float) -0:120 'inF0' (in 2-component vector of float) +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 'r023' (temp 2-component vector of float) -0:121 degrees (temp 2-component vector of float) -0:121 'inF0' (in 2-component vector of float) -0:125 Sequence -0:125 move second child to first child (temp float) -0:125 'r026' (temp float) -0:125 distance (temp float) -0:125 'inF0' (in 2-component vector of float) -0:125 'inF1' (in 2-component vector of float) +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 'r027' (temp float) -0:126 dot-product (temp float) -0:126 'inF0' (in 2-component vector of float) -0:126 'inF1' (in 2-component vector of float) -0:130 Sequence -0:130 move second child to first child (temp 2-component vector of float) -0:130 'r028' (temp 2-component vector of float) -0:130 exp (temp 2-component vector of float) -0:130 'inF0' (in 2-component vector of float) +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 'r029' (temp 2-component vector of float) -0:131 exp2 (temp 2-component vector of float) -0:131 'inF0' (in 2-component vector of float) +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 'r030' (temp 2-component vector of float) -0:132 face-forward (temp 2-component vector of float) -0:132 'inF0' (in 2-component vector of float) -0:132 'inF1' (in 2-component vector of float) -0:132 'inF2' (in 2-component vector of float) +0: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 uint) -0:133 '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: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 'r032' (temp 2-component vector of uint) -0:? findLSB (temp 2-component vector of uint) +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 float) -0:135 'r033' (temp 2-component vector of float) -0:135 Floor (temp 2-component vector of float) -0:135 'inF0' (in 2-component vector of float) -0:137 Sequence -0:137 move second child to first child (temp 2-component vector of float) -0:137 'r035' (temp 2-component vector of float) -0:137 mod (temp 2-component vector of float) -0:137 'inF0' (in 2-component vector of float) -0:137 'inF1' (in 2-component vector of float) +0: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 'r036' (temp 2-component vector of float) -0:138 Fraction (temp 2-component vector of float) -0:138 'inF0' (in 2-component vector of float) +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 'r037' (temp 2-component vector of float) -0:139 frexp (temp 2-component vector of float) -0:139 'inF0' (in 2-component vector of float) -0:139 'inF1' (in 2-component vector of float) +0: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: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: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: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: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: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: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: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 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: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: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: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: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: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: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 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: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: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 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: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: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: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 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: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: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: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: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: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: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: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: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: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: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 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: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 'inF0' (in 3-component vector of float) +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: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: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 'inF0' (in 3-component vector of float) +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: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: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: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: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: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: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: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: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 any ( temp bool) +0:194 Compare Less Than ( temp 3-component vector of bool) +0:194 'inF0' ( in 3-component vector of float) 0:194 Constant: 0:194 0.000000 0:194 0.000000 0:194 0.000000 0:194 true case 0:194 Branch: Kill -0:195 Sequence -0:195 move second child to first child (temp 3-component vector of float) -0:195 'r013' (temp 3-component vector of float) -0:195 cosine (temp 3-component vector of float) -0:195 'inF0' (in 3-component vector of float) +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 'r014' (temp 3-component vector of float) -0:196 hyp. cosine (temp 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) +0: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 uint) -0:197 'r015' (temp 3-component vector of uint) -0:? bitCount (temp 3-component vector of uint) +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:198 Sequence -0:198 move second child to first child (temp 3-component vector of float) -0:198 'r016' (temp 3-component vector of float) -0:198 cross-product (temp 3-component vector of float) -0:198 'inF0' (in 3-component vector of float) -0:198 'inF1' (in 3-component vector of float) 0:199 Sequence -0:199 move second child to first child (temp 3-component vector of float) -0:199 'r017' (temp 3-component vector of float) -0:199 dPdx (temp 3-component vector of float) -0:199 'inF0' (in 3-component vector of float) +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 'r018' (temp 3-component vector of float) -0:200 dPdxCoarse (temp 3-component vector of float) -0:200 'inF0' (in 3-component vector of float) +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 'r019' (temp 3-component vector of float) -0:201 dPdxFine (temp 3-component vector of float) -0:201 'inF0' (in 3-component vector of float) +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 'r020' (temp 3-component vector of float) -0:202 dPdy (temp 3-component vector of float) -0:202 'inF0' (in 3-component vector of float) +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 'r021' (temp 3-component vector of float) -0:203 dPdyCoarse (temp 3-component vector of float) -0:203 'inF0' (in 3-component vector of float) +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 'r022' (temp 3-component vector of float) -0:204 dPdyFine (temp 3-component vector of float) -0:204 'inF0' (in 3-component vector of float) +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 'r023' (temp 3-component vector of float) -0:205 degrees (temp 3-component vector of float) -0:205 'inF0' (in 3-component vector of float) +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 float) -0:206 'r024' (temp float) -0:206 distance (temp float) -0:206 'inF0' (in 3-component vector of float) -0:206 'inF1' (in 3-component vector of float) +0: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 'r025' (temp float) -0:207 dot-product (temp float) -0:207 'inF0' (in 3-component vector of float) -0:207 'inF1' (in 3-component vector of float) -0:211 Sequence -0:211 move second child to first child (temp 3-component vector of float) -0:211 'r029' (temp 3-component vector of float) -0:211 exp (temp 3-component vector of float) -0:211 'inF0' (in 3-component vector of float) +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 'r030' (temp 3-component vector of float) -0:212 exp2 (temp 3-component vector of float) -0:212 'inF0' (in 3-component vector of float) +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 'r031' (temp 3-component vector of float) -0:213 face-forward (temp 3-component vector of float) -0:213 'inF0' (in 3-component vector of float) -0:213 'inF1' (in 3-component vector of float) -0:213 'inF2' (in 3-component vector of float) +0: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 uint) -0:214 '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: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 'r033' (temp 3-component vector of uint) -0:? findLSB (temp 3-component vector of uint) +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 float) -0:216 'r034' (temp 3-component vector of float) -0:216 Floor (temp 3-component vector of float) -0:216 'inF0' (in 3-component vector of float) -0:218 Sequence -0:218 move second child to first child (temp 3-component vector of float) -0:218 'r036' (temp 3-component vector of float) -0:218 mod (temp 3-component vector of float) -0:218 'inF0' (in 3-component vector of float) -0:218 'inF1' (in 3-component vector of float) +0: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 'r037' (temp 3-component vector of float) -0:219 Fraction (temp 3-component vector of float) -0:219 'inF0' (in 3-component vector of float) +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 'r038' (temp 3-component vector of float) -0:220 frexp (temp 3-component vector of float) -0:220 'inF0' (in 3-component vector of float) -0:220 'inF1' (in 3-component vector of float) +0: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: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: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: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: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: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 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: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: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 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: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: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: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: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: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: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 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: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: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 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: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: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: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 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: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: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: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: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: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: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: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: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: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: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 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: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 'inF0' (in 4-component vector of float) +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: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: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 'inF0' (in 4-component vector of float) +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: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: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: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: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: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: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: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: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 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 @@ -1222,919 +1241,917 @@ gl_FragCoord origin is upper left 0:276 0.000000 0:276 true case 0:276 Branch: Kill -0:277 Sequence -0:277 move second child to first child (temp 4-component vector of float) -0:277 'r013' (temp 4-component vector of float) -0:277 cosine (temp 4-component vector of float) -0:277 'inF0' (in 4-component vector of float) +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 'r014' (temp 4-component vector of float) -0:278 hyp. cosine (temp 4-component vector of float) -0:278 'inF0' (in 4-component vector of float) +0: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 uint) -0:279 'r015' (temp 4-component vector of uint) -0:? bitCount (temp 4-component vector of uint) +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:280 Sequence -0:280 move second child to first child (temp 4-component vector of float) -0:280 'r016' (temp 4-component vector of float) -0:280 dPdx (temp 4-component vector of float) -0:280 'inF0' (in 4-component vector of float) 0:281 Sequence -0:281 move second child to first child (temp 4-component vector of float) -0:281 'r017' (temp 4-component vector of float) -0:281 dPdxCoarse (temp 4-component vector of float) -0:281 'inF0' (in 4-component vector of float) +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 'r018' (temp 4-component vector of float) -0:282 dPdxFine (temp 4-component vector of float) -0:282 'inF0' (in 4-component vector of float) +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 'r019' (temp 4-component vector of float) -0:283 dPdy (temp 4-component vector of float) -0:283 'inF0' (in 4-component vector of float) +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 'r020' (temp 4-component vector of float) -0:284 dPdyCoarse (temp 4-component vector of float) -0:284 'inF0' (in 4-component vector of float) +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 'r021' (temp 4-component vector of float) -0:285 dPdyFine (temp 4-component vector of float) -0:285 'inF0' (in 4-component vector of float) +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 'r022' (temp 4-component vector of float) -0:286 degrees (temp 4-component vector of float) -0:286 'inF0' (in 4-component vector of float) +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 float) -0:287 'r023' (temp float) -0:287 distance (temp float) -0:287 'inF0' (in 4-component vector of float) -0:287 'inF1' (in 4-component vector of float) +0: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 'r024' (temp float) -0:288 dot-product (temp float) -0:288 'inF0' (in 4-component vector of float) -0:288 'inF1' (in 4-component vector of float) +0: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 4-component vector of float) -0:289 'r025' (temp 4-component vector of float) -0:289 Construct vec4 (temp 4-component vector of float) -0:289 Constant: -0:289 1.000000 -0:289 component-wise multiply (temp float) -0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) -0:289 Constant: -0:289 1 (const int) -0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) -0:289 Constant: -0:289 1 (const int) -0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) -0:289 Constant: -0:289 2 (const int) -0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) -0:289 Constant: -0:289 3 (const int) -0:293 Sequence -0:293 move second child to first child (temp 4-component vector of float) -0:293 'r029' (temp 4-component vector of float) -0:293 exp (temp 4-component vector of float) -0:293 'inF0' (in 4-component vector of float) +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 'r030' (temp 4-component vector of float) -0:294 exp2 (temp 4-component vector of float) -0:294 'inF0' (in 4-component vector of float) +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 'r031' (temp 4-component vector of float) -0:295 face-forward (temp 4-component vector of float) -0:295 'inF0' (in 4-component vector of float) -0:295 'inF1' (in 4-component vector of float) -0:295 'inF2' (in 4-component vector of float) +0: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 uint) -0:296 '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: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 'r033' (temp 4-component vector of uint) -0:? findLSB (temp 4-component vector of uint) +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 float) -0:298 'r034' (temp 4-component vector of float) -0:298 Floor (temp 4-component vector of float) -0:298 'inF0' (in 4-component vector of float) -0:300 Sequence -0:300 move second child to first child (temp 4-component vector of float) -0:300 'r036' (temp 4-component vector of float) -0:300 mod (temp 4-component vector of float) -0:300 'inF0' (in 4-component vector of float) -0:300 'inF1' (in 4-component vector of float) +0: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 'r037' (temp 4-component vector of float) -0:301 Fraction (temp 4-component vector of float) -0:301 'inF0' (in 4-component vector of float) +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 'r038' (temp 4-component vector of float) -0:302 frexp (temp 4-component vector of float) -0:302 'inF0' (in 4-component vector of float) -0:302 'inF1' (in 4-component vector of float) +0: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: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: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: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: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: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: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: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 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: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: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: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: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: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: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 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: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: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 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: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: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: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 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: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: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: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: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: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: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: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: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: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: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:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:401 Function Parameters: -0:401 'inF0' (in 2X2 matrix of float) -0:401 'inF1' (in 2X2 matrix of float) -0:401 'inF2' (in 2X2 matrix of float) +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:403 Sequence -0:403 move second child to first child (temp bool) -0:403 'r000' (temp bool) -0:403 all (temp bool) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r001' (temp 2X2 matrix of float) -0:403 Absolute value (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 arc cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp bool) -0:403 'r003' (temp bool) -0:403 any (temp bool) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r004' (temp 2X2 matrix of float) -0:403 arc sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r005' (temp 2X2 matrix of float) -0:403 arc tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r006' (temp 2X2 matrix of float) -0:403 arc tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r007' (temp 2X2 matrix of float) -0:403 Ceiling (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Test condition and select (temp void) -0:403 Condition -0:403 any (temp bool) -0:403 Compare Less Than (temp 2X2 matrix of bool) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 true case -0:403 Branch: Kill -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r008' (temp 2X2 matrix of float) -0:403 clamp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r009' (temp 2X2 matrix of float) -0:403 cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r010' (temp 2X2 matrix of float) -0:403 hyp. cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r011' (temp 2X2 matrix of float) -0:403 dPdx (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r012' (temp 2X2 matrix of float) -0:403 dPdxCoarse (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r013' (temp 2X2 matrix of float) -0:403 dPdxFine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r014' (temp 2X2 matrix of float) -0:403 dPdy (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r015' (temp 2X2 matrix of float) -0:403 dPdyCoarse (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r016' (temp 2X2 matrix of float) -0:403 dPdyFine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r017' (temp 2X2 matrix of float) -0:403 degrees (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp float) -0:403 'r018' (temp float) -0:403 determinant (temp float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r019' (temp 2X2 matrix of float) -0:403 exp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'R020' (temp 2X2 matrix of float) -0:403 exp2 (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r021' (temp 2X2 matrix of float) -0:403 Floor (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r022' (temp 2X2 matrix of float) -0:403 mod (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r023' (temp 2X2 matrix of float) -0:403 Fraction (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r024' (temp 2X2 matrix of float) -0:403 frexp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r025' (temp 2X2 matrix of float) -0:403 fwidth (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r026' (temp 2X2 matrix of float) -0:403 ldexp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r026a' (temp 2X2 matrix of float) -0:403 mix (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r027' (temp 2X2 matrix of float) -0:403 log (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r028' (temp 2X2 matrix of float) -0:403 matrix-scale (temp 2X2 matrix of float) -0:403 log2 (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Constant: -0:403 0.301030 -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r029' (temp 2X2 matrix of float) -0:403 log2 (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r030' (temp 2X2 matrix of float) -0:403 max (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r031' (temp 2X2 matrix of float) -0:403 min (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r032' (temp 2X2 matrix of float) -0:403 pow (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r033' (temp 2X2 matrix of float) -0:403 radians (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r034' (temp 2X2 matrix of float) -0:403 roundEven (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r035' (temp 2X2 matrix of float) -0:403 inverse sqrt (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r036' (temp 2X2 matrix of float) -0:403 clamp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 Constant: -0:403 1.000000 -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r037' (temp 2X2 matrix of float) -0:403 Sign (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r038' (temp 2X2 matrix of float) -0:403 sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r039' (temp 2X2 matrix of float) -0:403 hyp. sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r049' (temp 2X2 matrix of float) -0:403 smoothstep (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r041' (temp 2X2 matrix of float) -0:403 sqrt (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r042' (temp 2X2 matrix of float) -0:403 step (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r043' (temp 2X2 matrix of float) -0:403 tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r044' (temp 2X2 matrix of float) -0:403 hyp. tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 transpose (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r046' (temp 2X2 matrix of float) -0:403 trunc (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:406 Branch: Return with expression +0:402 Sequence +0:402 move second child to first child ( temp bool) +0:402 'r000' ( temp bool) +0:402 all ( 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:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:410 Function Parameters: -0:410 'inF0' (in 3X3 matrix of float) -0:410 'inF1' (in 3X3 matrix of float) -0:410 'inF2' (in 3X3 matrix of float) +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:412 Sequence -0:412 move second child to first child (temp bool) -0:412 'r000' (temp bool) -0:412 all (temp bool) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r001' (temp 3X3 matrix of float) -0:412 Absolute value (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 arc cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp bool) -0:412 'r003' (temp bool) -0:412 any (temp bool) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r004' (temp 3X3 matrix of float) -0:412 arc sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r005' (temp 3X3 matrix of float) -0:412 arc tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r006' (temp 3X3 matrix of float) -0:412 arc tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r007' (temp 3X3 matrix of float) -0:412 Ceiling (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Test condition and select (temp void) -0:412 Condition -0:412 any (temp bool) -0:412 Compare Less Than (temp 3X3 matrix of bool) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 true case -0:412 Branch: Kill -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r008' (temp 3X3 matrix of float) -0:412 clamp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r009' (temp 3X3 matrix of float) -0:412 cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r010' (temp 3X3 matrix of float) -0:412 hyp. cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r011' (temp 3X3 matrix of float) -0:412 dPdx (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r012' (temp 3X3 matrix of float) -0:412 dPdxCoarse (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r013' (temp 3X3 matrix of float) -0:412 dPdxFine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r014' (temp 3X3 matrix of float) -0:412 dPdy (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r015' (temp 3X3 matrix of float) -0:412 dPdyCoarse (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r016' (temp 3X3 matrix of float) -0:412 dPdyFine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r017' (temp 3X3 matrix of float) -0:412 degrees (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp float) -0:412 'r018' (temp float) -0:412 determinant (temp float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r019' (temp 3X3 matrix of float) -0:412 exp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'R020' (temp 3X3 matrix of float) -0:412 exp2 (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r021' (temp 3X3 matrix of float) -0:412 Floor (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r022' (temp 3X3 matrix of float) -0:412 mod (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r023' (temp 3X3 matrix of float) -0:412 Fraction (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r024' (temp 3X3 matrix of float) -0:412 frexp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r025' (temp 3X3 matrix of float) -0:412 fwidth (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r026' (temp 3X3 matrix of float) -0:412 ldexp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r026a' (temp 3X3 matrix of float) -0:412 mix (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r027' (temp 3X3 matrix of float) -0:412 log (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r028' (temp 3X3 matrix of float) -0:412 matrix-scale (temp 3X3 matrix of float) -0:412 log2 (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Constant: -0:412 0.301030 -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r029' (temp 3X3 matrix of float) -0:412 log2 (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r030' (temp 3X3 matrix of float) -0:412 max (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r031' (temp 3X3 matrix of float) -0:412 min (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r032' (temp 3X3 matrix of float) -0:412 pow (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r033' (temp 3X3 matrix of float) -0:412 radians (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r034' (temp 3X3 matrix of float) -0:412 roundEven (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r035' (temp 3X3 matrix of float) -0:412 inverse sqrt (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r036' (temp 3X3 matrix of float) -0:412 clamp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 Constant: -0:412 1.000000 -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r037' (temp 3X3 matrix of float) -0:412 Sign (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r038' (temp 3X3 matrix of float) -0:412 sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r039' (temp 3X3 matrix of float) -0:412 hyp. sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r049' (temp 3X3 matrix of float) -0:412 smoothstep (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r041' (temp 3X3 matrix of float) -0:412 sqrt (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r042' (temp 3X3 matrix of float) -0:412 step (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r043' (temp 3X3 matrix of float) -0:412 tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r044' (temp 3X3 matrix of float) -0:412 hyp. tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 transpose (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r046' (temp 3X3 matrix of float) -0:412 trunc (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:415 Branch: Return with expression +0:411 Sequence +0:411 move second child to first child ( temp bool) +0:411 'r000' ( temp bool) +0:411 all ( 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 @@ -2145,301 +2162,297 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:419 Function Parameters: -0:419 'inF0' (in 4X4 matrix of float) -0:419 'inF1' (in 4X4 matrix of float) -0:419 'inF2' (in 4X4 matrix of float) +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:421 Sequence -0:421 move second child to first child (temp bool) -0:421 'r000' (temp bool) -0:421 all (temp bool) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r001' (temp 4X4 matrix of float) -0:421 Absolute value (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 arc cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp bool) -0:421 'r003' (temp bool) -0:421 any (temp bool) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r004' (temp 4X4 matrix of float) -0:421 arc sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r005' (temp 4X4 matrix of float) -0:421 arc tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r006' (temp 4X4 matrix of float) -0:421 arc tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r007' (temp 4X4 matrix of float) -0:421 Ceiling (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Test condition and select (temp void) -0:421 Condition -0:421 any (temp bool) -0:421 Compare Less Than (temp 4X4 matrix of bool) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 true case -0:421 Branch: Kill -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r008' (temp 4X4 matrix of float) -0:421 clamp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r009' (temp 4X4 matrix of float) -0:421 cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r010' (temp 4X4 matrix of float) -0:421 hyp. cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r011' (temp 4X4 matrix of float) -0:421 dPdx (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r012' (temp 4X4 matrix of float) -0:421 dPdxCoarse (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r013' (temp 4X4 matrix of float) -0:421 dPdxFine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r014' (temp 4X4 matrix of float) -0:421 dPdy (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r015' (temp 4X4 matrix of float) -0:421 dPdyCoarse (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r016' (temp 4X4 matrix of float) -0:421 dPdyFine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r017' (temp 4X4 matrix of float) -0:421 degrees (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp float) -0:421 'r018' (temp float) -0:421 determinant (temp float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r019' (temp 4X4 matrix of float) -0:421 exp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'R020' (temp 4X4 matrix of float) -0:421 exp2 (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r021' (temp 4X4 matrix of float) -0:421 Floor (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r022' (temp 4X4 matrix of float) -0:421 mod (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r023' (temp 4X4 matrix of float) -0:421 Fraction (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r024' (temp 4X4 matrix of float) -0:421 frexp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r025' (temp 4X4 matrix of float) -0:421 fwidth (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r026' (temp 4X4 matrix of float) -0:421 ldexp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r026a' (temp 4X4 matrix of float) -0:421 mix (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r027' (temp 4X4 matrix of float) -0:421 log (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r028' (temp 4X4 matrix of float) -0:421 matrix-scale (temp 4X4 matrix of float) -0:421 log2 (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Constant: -0:421 0.301030 -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r029' (temp 4X4 matrix of float) -0:421 log2 (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r030' (temp 4X4 matrix of float) -0:421 max (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r031' (temp 4X4 matrix of float) -0:421 min (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r032' (temp 4X4 matrix of float) -0:421 pow (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r033' (temp 4X4 matrix of float) -0:421 radians (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r034' (temp 4X4 matrix of float) -0:421 roundEven (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r035' (temp 4X4 matrix of float) -0:421 inverse sqrt (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r036' (temp 4X4 matrix of float) -0:421 clamp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 Constant: -0:421 1.000000 -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r037' (temp 4X4 matrix of float) -0:421 Sign (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r038' (temp 4X4 matrix of float) -0:421 sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r039' (temp 4X4 matrix of float) -0:421 hyp. sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r049' (temp 4X4 matrix of float) -0:421 smoothstep (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r041' (temp 4X4 matrix of float) -0:421 sqrt (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r042' (temp 4X4 matrix of float) -0:421 step (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r043' (temp 4X4 matrix of float) -0:421 tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r044' (temp 4X4 matrix of float) -0:421 hyp. tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 transpose (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r046' (temp 4X4 matrix of float) -0:421 trunc (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:424 Branch: Return with expression +0:420 Sequence +0:420 move second child to first child ( temp bool) +0:420 'r000' ( temp bool) +0:420 all ( 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 @@ -2457,1566 +2470,1588 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:442 Function Parameters: -0:442 'inF0' (in float) -0:442 'inF1' (in float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inFV1' (in 2-component vector of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inFM1' (in 2X2 matrix of float) +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:443 Sequence -0:443 move second child to first child (temp float) -0:443 'r0' (temp float) -0:443 component-wise multiply (temp float) -0:443 'inF1' (in float) -0:443 'inF0' (in float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r1' (temp 2-component vector of float) -0:443 vector-scale (temp 2-component vector of float) -0:443 'inF0' (in float) -0:443 'inFV0' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r2' (temp 2-component vector of float) -0:443 vector-scale (temp 2-component vector of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 'inF0' (in float) -0:443 Sequence -0:443 move second child to first child (temp float) -0:443 'r3' (temp float) -0:443 dot-product (temp float) -0:443 'inFV0' (in 2-component vector of float) -0:443 'inFV1' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r4' (temp 2-component vector of float) -0:443 vector-times-matrix (temp 2-component vector of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r5' (temp 2-component vector of float) -0:443 matrix-times-vector (temp 2-component vector of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2X2 matrix of float) -0:443 'r6' (temp 2X2 matrix of float) -0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inF0' (in float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child (temp 2X2 matrix of float) -0:443 'r7' (temp 2X2 matrix of float) -0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 'inF0' (in float) -0:443 Sequence -0:443 move second child to first child (temp 2X2 matrix of float) -0:443 'r8' (temp 2X2 matrix of float) -0:443 matrix-multiply (temp 2X2 matrix of float) -0:443 'inFM1' (in 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:449 Function Parameters: -0:449 'inF0' (in float) -0:449 'inF1' (in float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inFV1' (in 3-component vector of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inFM1' (in 3X3 matrix of float) +0:442 Sequence +0:442 move second child to first child ( temp float) +0:442 'r0' ( temp float) +0:442 component-wise multiply ( temp float) +0:442 '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:450 Sequence -0:450 move second child to first child (temp float) -0:450 'r0' (temp float) -0:450 component-wise multiply (temp float) -0:450 'inF1' (in float) -0:450 'inF0' (in float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r1' (temp 3-component vector of float) -0:450 vector-scale (temp 3-component vector of float) -0:450 'inF0' (in float) -0:450 'inFV0' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r2' (temp 3-component vector of float) -0:450 vector-scale (temp 3-component vector of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 'inF0' (in float) -0:450 Sequence -0:450 move second child to first child (temp float) -0:450 'r3' (temp float) -0:450 dot-product (temp float) -0:450 'inFV0' (in 3-component vector of float) -0:450 'inFV1' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r4' (temp 3-component vector of float) -0:450 vector-times-matrix (temp 3-component vector of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r5' (temp 3-component vector of float) -0:450 matrix-times-vector (temp 3-component vector of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3X3 matrix of float) -0:450 'r6' (temp 3X3 matrix of float) -0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inF0' (in float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child (temp 3X3 matrix of float) -0:450 'r7' (temp 3X3 matrix of float) -0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 'inF0' (in float) -0:450 Sequence -0:450 move second child to first child (temp 3X3 matrix of float) -0:450 'r8' (temp 3X3 matrix of float) -0:450 matrix-multiply (temp 3X3 matrix of float) -0:450 'inFM1' (in 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:456 Function Parameters: -0:456 'inF0' (in float) -0:456 'inF1' (in float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inFV1' (in 4-component vector of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inFM1' (in 4X4 matrix of float) +0:449 Sequence +0:449 move second child to first child ( temp float) +0:449 'r0' ( temp float) +0:449 component-wise multiply ( temp float) +0:449 '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:457 Sequence -0:457 move second child to first child (temp float) -0:457 'r0' (temp float) -0:457 component-wise multiply (temp float) -0:457 'inF1' (in float) -0:457 'inF0' (in float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r1' (temp 4-component vector of float) -0:457 vector-scale (temp 4-component vector of float) -0:457 'inF0' (in float) -0:457 'inFV0' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r2' (temp 4-component vector of float) -0:457 vector-scale (temp 4-component vector of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 'inF0' (in float) -0:457 Sequence -0:457 move second child to first child (temp float) -0:457 'r3' (temp float) -0:457 dot-product (temp float) -0:457 'inFV0' (in 4-component vector of float) -0:457 'inFV1' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r4' (temp 4-component vector of float) -0:457 vector-times-matrix (temp 4-component vector of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r5' (temp 4-component vector of float) -0:457 matrix-times-vector (temp 4-component vector of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4X4 matrix of float) -0:457 'r6' (temp 4X4 matrix of float) -0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inF0' (in float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child (temp 4X4 matrix of float) -0:457 'r7' (temp 4X4 matrix of float) -0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 'inF0' (in float) -0:457 Sequence -0:457 move second child to first child (temp 4X4 matrix of float) -0:457 'r8' (temp 4X4 matrix of float) -0:457 matrix-multiply (temp 4X4 matrix of float) -0:457 'inFM1' (in 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) -0:466 Function Parameters: -0:466 'inF0' (in float) -0:466 'inF1' (in float) -0:466 'inFV2' (in 2-component vector of float) -0:466 'inFV3' (in 3-component vector of float) -0:466 'inFM2x3' (in 2X3 matrix of float) -0:466 'inFM3x2' (in 3X2 matrix of float) -0:466 'inFM3x3' (in 3X3 matrix of float) -0:466 'inFM3x4' (in 3X4 matrix of float) -0:466 'inFM2x4' (in 2X4 matrix of float) +0:456 Sequence +0:456 move second child to first child ( temp float) +0:456 'r0' ( temp float) +0:456 component-wise multiply ( temp float) +0:456 '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 float) -0:467 'r00' (temp float) -0:467 component-wise multiply (temp float) -0:467 'inF1' (in float) -0:467 'inF0' (in float) +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 2-component vector of float) -0:468 'r01' (temp 2-component vector of float) -0:468 vector-scale (temp 2-component vector of float) -0:468 'inF0' (in float) -0:468 'inFV2' (in 2-component vector of float) +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 3-component vector of float) -0:469 'r02' (temp 3-component vector of float) -0:469 vector-scale (temp 3-component vector of float) -0:469 'inF0' (in float) -0:469 'inFV3' (in 3-component vector of float) +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 2-component vector of float) -0:470 'r03' (temp 2-component vector of float) -0:470 vector-scale (temp 2-component vector of float) -0:470 'inFV2' (in 2-component vector of float) -0:470 'inF0' (in float) +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 3-component vector of float) -0:471 'r04' (temp 3-component vector of float) -0:471 vector-scale (temp 3-component vector of float) -0:471 'inFV3' (in 3-component vector of float) -0:471 'inF0' (in float) +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 'r05' (temp float) -0:472 dot-product (temp float) -0:472 'inFV2' (in 2-component vector of float) -0:472 'inFV2' (in 2-component vector of float) +0: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 float) -0:473 'r06' (temp float) -0:473 dot-product (temp float) -0:473 'inFV3' (in 3-component vector of float) -0:473 'inFV3' (in 3-component vector of float) +0: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 3-component vector of float) -0:474 'r07' (temp 3-component vector of float) -0:474 matrix-times-vector (temp 3-component vector of float) -0:474 'inFM2x3' (in 2X3 matrix of float) -0:474 'inFV2' (in 2-component vector of float) +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 'r08' (temp 2-component vector of float) -0:475 matrix-times-vector (temp 2-component vector of float) -0:475 'inFM3x2' (in 3X2 matrix of float) -0:475 'inFV3' (in 3-component vector of float) +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 2-component vector of float) -0:476 'r09' (temp 2-component vector of float) -0:476 vector-times-matrix (temp 2-component vector of float) -0:476 'inFV3' (in 3-component vector of float) -0:476 'inFM2x3' (in 2X3 matrix of float) +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 3-component vector of float) -0:477 'r10' (temp 3-component vector of float) -0:477 vector-times-matrix (temp 3-component vector of float) -0:477 'inFV2' (in 2-component vector of float) -0:477 'inFM3x2' (in 3X2 matrix of float) +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 2X3 matrix of float) -0:478 'r11' (temp 2X3 matrix of float) -0:478 matrix-scale (temp 2X3 matrix of float) -0:478 'inF0' (in float) -0:478 'inFM2x3' (in 2X3 matrix of float) +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 3X2 matrix of float) -0:479 'r12' (temp 3X2 matrix of float) -0:479 matrix-scale (temp 3X2 matrix of float) -0:479 'inF0' (in float) -0:479 'inFM3x2' (in 3X2 matrix of float) +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 2X2 matrix of float) -0:480 'r13' (temp 2X2 matrix of float) -0:480 matrix-multiply (temp 2X2 matrix of float) -0:480 'inFM3x2' (in 3X2 matrix of float) -0:480 'inFM2x3' (in 2X3 matrix of float) +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 2X3 matrix of float) -0:481 'r14' (temp 2X3 matrix of float) -0:481 matrix-multiply (temp 2X3 matrix of float) -0:481 'inFM3x3' (in 3X3 matrix of float) -0:481 'inFM2x3' (in 2X3 matrix of float) +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 2X4 matrix of float) -0:482 'r15' (temp 2X4 matrix of float) -0:482 matrix-multiply (temp 2X4 matrix of float) -0:482 'inFM3x4' (in 3X4 matrix of float) -0:482 'inFM2x3' (in 2X3 matrix of float) -0:483 Sequence -0:483 move second child to first child (temp 3X4 matrix of float) -0:483 'r16' (temp 3X4 matrix of float) -0:483 matrix-multiply (temp 3X4 matrix of float) -0:483 'inFM2x4' (in 2X4 matrix of float) -0:483 'inFM3x2' (in 3X2 matrix of float) -0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) -0:489 Function Parameters: +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:491 move second child to first child (temp 4-component vector of float) -0:491 color: direct index for structure (temp 4-component vector of float) -0:491 'ps_output' (temp structure{temp 4-component vector of float color}) -0:491 Constant: -0:491 0 (const int) -0:491 Constant: -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:492 Sequence -0:492 Sequence -0:492 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:492 color: direct index for structure (temp 4-component vector of float) -0:492 'ps_output' (temp structure{temp 4-component vector of float color}) -0:492 Constant: -0:492 0 (const int) -0:492 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'gs_ua' (shared uint) -0:? 'gs_ub' (shared uint) -0:? 'gs_uc' (shared uint) -0:? 'gs_ua2' (shared 2-component vector of uint) -0:? 'gs_ub2' (shared 2-component vector of uint) -0:? 'gs_uc2' (shared 2-component vector of uint) -0:? 'gs_ua3' (shared 3-component vector of uint) -0:? 'gs_ub3' (shared 3-component vector of uint) -0:? 'gs_uc3' (shared 3-component vector of uint) -0:? 'gs_ua4' (shared 4-component vector of uint) -0:? 'gs_ub4' (shared 4-component vector of uint) -0:? 'gs_uc4' (shared 4-component vector of uint) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) +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 uint) +0:17 'inF0' ( in float) +0:17 'inF1' ( in float) +0:17 'inF2' ( in float) +0:17 'inU0' ( in uint) +0:17 'inU1' ( in 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 'inF0' (in float) +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: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: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 'inF0' (in float) +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: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: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 'inF0' (in float) +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: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: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: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: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: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 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 Sequence -0:34 move second child to first child (temp float) -0:34 'r014' (temp float) -0:34 cosine (temp float) -0:34 'inF0' (in float) +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 'r015' (temp float) -0:35 hyp. cosine (temp float) -0:35 'inF0' (in float) +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 int) -0:36 'r016' (temp int) -0:36 bitCount (temp int) -0:36 Constant: -0:36 7 (const int) +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 float) -0:37 'r017' (temp float) -0:37 dPdx (temp float) -0:37 'inF0' (in float) +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 'r018' (temp float) -0:38 dPdxCoarse (temp float) -0:38 'inF0' (in float) +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 'r019' (temp float) -0:39 dPdxFine (temp float) -0:39 'inF0' (in float) +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 'r020' (temp float) -0:40 dPdy (temp float) -0:40 'inF0' (in float) +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 'r021' (temp float) -0:41 dPdyCoarse (temp float) -0:41 'inF0' (in float) +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 'r022' (temp float) -0:42 dPdyFine (temp float) -0:42 'inF0' (in float) +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 'r023' (temp float) -0:43 degrees (temp float) -0:43 'inF0' (in float) -0:47 Sequence -0:47 move second child to first child (temp float) -0:47 'r027' (temp float) -0:47 exp (temp float) -0:47 'inF0' (in float) +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 'r028' (temp float) -0:48 exp2 (temp float) -0:48 'inF0' (in float) +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 uint) -0:49 'r029' (temp uint) -0:49 Convert int to uint (temp uint) -0:49 findMSB (temp int) -0:49 Constant: -0:49 7 (const int) +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 'r030' (temp uint) -0:50 Convert int to uint (temp uint) -0:50 findLSB (temp int) +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 float) -0:51 'r031' (temp float) -0:51 Floor (temp float) -0:51 'inF0' (in float) -0:53 Sequence -0:53 move second child to first child (temp float) -0:53 'r033' (temp float) -0:53 mod (temp float) -0:53 'inF0' (in float) -0:53 'inF1' (in float) +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 'r034' (temp float) -0:54 Fraction (temp float) -0:54 'inF0' (in float) +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 'r035' (temp float) -0:55 frexp (temp float) -0:55 'inF0' (in float) -0:55 'inF1' (in float) +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: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: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: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: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: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: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 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: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: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: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: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: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 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: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 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: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: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 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: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: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: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: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: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: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: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: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: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: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 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: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 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: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 'inF0' (in 2-component vector of float) +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: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: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 'inF0' (in 2-component vector of float) +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: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: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: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: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: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: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: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: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 any ( temp bool) +0:111 Compare Less Than ( temp 2-component vector of bool) +0:111 'inF0' ( in 2-component vector of float) 0:111 Constant: 0:111 0.000000 0:111 0.000000 0:111 true case 0:111 Branch: Kill -0:112 Sequence -0:112 move second child to first child (temp 2-component vector of float) -0:112 'r013' (temp 2-component vector of float) -0:112 cosine (temp 2-component vector of float) -0:112 'inF0' (in 2-component vector of float) +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 'r015' (temp 2-component vector of float) -0:113 hyp. cosine (temp 2-component vector of float) -0:113 'inF0' (in 2-component vector of float) +0: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 int) -0:114 'r016' (temp 2-component vector of int) -0:? bitCount (temp 2-component vector of int) +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:115 Sequence -0:115 move second child to first child (temp 2-component vector of float) -0:115 'r017' (temp 2-component vector of float) -0:115 dPdx (temp 2-component vector of float) -0:115 'inF0' (in 2-component vector of float) 0:116 Sequence -0:116 move second child to first child (temp 2-component vector of float) -0:116 'r018' (temp 2-component vector of float) -0:116 dPdxCoarse (temp 2-component vector of float) -0:116 'inF0' (in 2-component vector of float) +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 'r019' (temp 2-component vector of float) -0:117 dPdxFine (temp 2-component vector of float) -0:117 'inF0' (in 2-component vector of float) +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 'r020' (temp 2-component vector of float) -0:118 dPdy (temp 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) +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 'r021' (temp 2-component vector of float) -0:119 dPdyCoarse (temp 2-component vector of float) -0:119 'inF0' (in 2-component vector of float) +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 'r022' (temp 2-component vector of float) -0:120 dPdyFine (temp 2-component vector of float) -0:120 'inF0' (in 2-component vector of float) +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 'r023' (temp 2-component vector of float) -0:121 degrees (temp 2-component vector of float) -0:121 'inF0' (in 2-component vector of float) -0:125 Sequence -0:125 move second child to first child (temp float) -0:125 'r026' (temp float) -0:125 distance (temp float) -0:125 'inF0' (in 2-component vector of float) -0:125 'inF1' (in 2-component vector of float) +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 'r027' (temp float) -0:126 dot-product (temp float) -0:126 'inF0' (in 2-component vector of float) -0:126 'inF1' (in 2-component vector of float) -0:130 Sequence -0:130 move second child to first child (temp 2-component vector of float) -0:130 'r028' (temp 2-component vector of float) -0:130 exp (temp 2-component vector of float) -0:130 'inF0' (in 2-component vector of float) +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 'r029' (temp 2-component vector of float) -0:131 exp2 (temp 2-component vector of float) -0:131 'inF0' (in 2-component vector of float) +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 'r030' (temp 2-component vector of float) -0:132 face-forward (temp 2-component vector of float) -0:132 'inF0' (in 2-component vector of float) -0:132 'inF1' (in 2-component vector of float) -0:132 'inF2' (in 2-component vector of float) +0: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 uint) -0:133 '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: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 'r032' (temp 2-component vector of uint) -0:? findLSB (temp 2-component vector of uint) +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 float) -0:135 'r033' (temp 2-component vector of float) -0:135 Floor (temp 2-component vector of float) -0:135 'inF0' (in 2-component vector of float) -0:137 Sequence -0:137 move second child to first child (temp 2-component vector of float) -0:137 'r035' (temp 2-component vector of float) -0:137 mod (temp 2-component vector of float) -0:137 'inF0' (in 2-component vector of float) -0:137 'inF1' (in 2-component vector of float) +0: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 'r036' (temp 2-component vector of float) -0:138 Fraction (temp 2-component vector of float) -0:138 'inF0' (in 2-component vector of float) +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 'r037' (temp 2-component vector of float) -0:139 frexp (temp 2-component vector of float) -0:139 'inF0' (in 2-component vector of float) -0:139 'inF1' (in 2-component vector of float) +0: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: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: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: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: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: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: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: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 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: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: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: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: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: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: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 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: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: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 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: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: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: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 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: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: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: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: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: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: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: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: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: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: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 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: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 'inF0' (in 3-component vector of float) +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: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: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 'inF0' (in 3-component vector of float) +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: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: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: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: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: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: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: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: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 any ( temp bool) +0:194 Compare Less Than ( temp 3-component vector of bool) +0:194 'inF0' ( in 3-component vector of float) 0:194 Constant: 0:194 0.000000 0:194 0.000000 0:194 0.000000 0:194 true case 0:194 Branch: Kill -0:195 Sequence -0:195 move second child to first child (temp 3-component vector of float) -0:195 'r013' (temp 3-component vector of float) -0:195 cosine (temp 3-component vector of float) -0:195 'inF0' (in 3-component vector of float) +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 'r014' (temp 3-component vector of float) -0:196 hyp. cosine (temp 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) +0: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 uint) -0:197 'r015' (temp 3-component vector of uint) -0:? bitCount (temp 3-component vector of uint) +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:198 Sequence -0:198 move second child to first child (temp 3-component vector of float) -0:198 'r016' (temp 3-component vector of float) -0:198 cross-product (temp 3-component vector of float) -0:198 'inF0' (in 3-component vector of float) -0:198 'inF1' (in 3-component vector of float) 0:199 Sequence -0:199 move second child to first child (temp 3-component vector of float) -0:199 'r017' (temp 3-component vector of float) -0:199 dPdx (temp 3-component vector of float) -0:199 'inF0' (in 3-component vector of float) +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 'r018' (temp 3-component vector of float) -0:200 dPdxCoarse (temp 3-component vector of float) -0:200 'inF0' (in 3-component vector of float) +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 'r019' (temp 3-component vector of float) -0:201 dPdxFine (temp 3-component vector of float) -0:201 'inF0' (in 3-component vector of float) +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 'r020' (temp 3-component vector of float) -0:202 dPdy (temp 3-component vector of float) -0:202 'inF0' (in 3-component vector of float) +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 'r021' (temp 3-component vector of float) -0:203 dPdyCoarse (temp 3-component vector of float) -0:203 'inF0' (in 3-component vector of float) +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 'r022' (temp 3-component vector of float) -0:204 dPdyFine (temp 3-component vector of float) -0:204 'inF0' (in 3-component vector of float) +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 'r023' (temp 3-component vector of float) -0:205 degrees (temp 3-component vector of float) -0:205 'inF0' (in 3-component vector of float) +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 float) -0:206 'r024' (temp float) -0:206 distance (temp float) -0:206 'inF0' (in 3-component vector of float) -0:206 'inF1' (in 3-component vector of float) +0: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 'r025' (temp float) -0:207 dot-product (temp float) -0:207 'inF0' (in 3-component vector of float) -0:207 'inF1' (in 3-component vector of float) -0:211 Sequence -0:211 move second child to first child (temp 3-component vector of float) -0:211 'r029' (temp 3-component vector of float) -0:211 exp (temp 3-component vector of float) -0:211 'inF0' (in 3-component vector of float) +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 'r030' (temp 3-component vector of float) -0:212 exp2 (temp 3-component vector of float) -0:212 'inF0' (in 3-component vector of float) +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 'r031' (temp 3-component vector of float) -0:213 face-forward (temp 3-component vector of float) -0:213 'inF0' (in 3-component vector of float) -0:213 'inF1' (in 3-component vector of float) -0:213 'inF2' (in 3-component vector of float) +0: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 uint) -0:214 '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: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 'r033' (temp 3-component vector of uint) -0:? findLSB (temp 3-component vector of uint) +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 float) -0:216 'r034' (temp 3-component vector of float) -0:216 Floor (temp 3-component vector of float) -0:216 'inF0' (in 3-component vector of float) -0:218 Sequence -0:218 move second child to first child (temp 3-component vector of float) -0:218 'r036' (temp 3-component vector of float) -0:218 mod (temp 3-component vector of float) -0:218 'inF0' (in 3-component vector of float) -0:218 'inF1' (in 3-component vector of float) +0: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 'r037' (temp 3-component vector of float) -0:219 Fraction (temp 3-component vector of float) -0:219 'inF0' (in 3-component vector of float) +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 'r038' (temp 3-component vector of float) -0:220 frexp (temp 3-component vector of float) -0:220 'inF0' (in 3-component vector of float) -0:220 'inF1' (in 3-component vector of float) +0: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: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: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: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: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: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 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: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: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 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: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: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: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: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: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: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 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: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: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 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: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: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: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 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: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: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: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: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: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: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: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: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: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: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 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: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 'inF0' (in 4-component vector of float) +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: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: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 'inF0' (in 4-component vector of float) +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: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: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: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: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: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: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: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: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 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 @@ -4024,919 +4059,917 @@ gl_FragCoord origin is upper left 0:276 0.000000 0:276 true case 0:276 Branch: Kill -0:277 Sequence -0:277 move second child to first child (temp 4-component vector of float) -0:277 'r013' (temp 4-component vector of float) -0:277 cosine (temp 4-component vector of float) -0:277 'inF0' (in 4-component vector of float) +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 'r014' (temp 4-component vector of float) -0:278 hyp. cosine (temp 4-component vector of float) -0:278 'inF0' (in 4-component vector of float) +0: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 uint) -0:279 'r015' (temp 4-component vector of uint) -0:? bitCount (temp 4-component vector of uint) +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:280 Sequence -0:280 move second child to first child (temp 4-component vector of float) -0:280 'r016' (temp 4-component vector of float) -0:280 dPdx (temp 4-component vector of float) -0:280 'inF0' (in 4-component vector of float) 0:281 Sequence -0:281 move second child to first child (temp 4-component vector of float) -0:281 'r017' (temp 4-component vector of float) -0:281 dPdxCoarse (temp 4-component vector of float) -0:281 'inF0' (in 4-component vector of float) +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 'r018' (temp 4-component vector of float) -0:282 dPdxFine (temp 4-component vector of float) -0:282 'inF0' (in 4-component vector of float) +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 'r019' (temp 4-component vector of float) -0:283 dPdy (temp 4-component vector of float) -0:283 'inF0' (in 4-component vector of float) +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 'r020' (temp 4-component vector of float) -0:284 dPdyCoarse (temp 4-component vector of float) -0:284 'inF0' (in 4-component vector of float) +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 'r021' (temp 4-component vector of float) -0:285 dPdyFine (temp 4-component vector of float) -0:285 'inF0' (in 4-component vector of float) +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 'r022' (temp 4-component vector of float) -0:286 degrees (temp 4-component vector of float) -0:286 'inF0' (in 4-component vector of float) +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 float) -0:287 'r023' (temp float) -0:287 distance (temp float) -0:287 'inF0' (in 4-component vector of float) -0:287 'inF1' (in 4-component vector of float) +0: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 'r024' (temp float) -0:288 dot-product (temp float) -0:288 'inF0' (in 4-component vector of float) -0:288 'inF1' (in 4-component vector of float) +0: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 4-component vector of float) -0:289 'r025' (temp 4-component vector of float) -0:289 Construct vec4 (temp 4-component vector of float) -0:289 Constant: -0:289 1.000000 -0:289 component-wise multiply (temp float) -0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) -0:289 Constant: -0:289 1 (const int) -0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) -0:289 Constant: -0:289 1 (const int) -0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) -0:289 Constant: -0:289 2 (const int) -0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) -0:289 Constant: -0:289 3 (const int) -0:293 Sequence -0:293 move second child to first child (temp 4-component vector of float) -0:293 'r029' (temp 4-component vector of float) -0:293 exp (temp 4-component vector of float) -0:293 'inF0' (in 4-component vector of float) +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 'r030' (temp 4-component vector of float) -0:294 exp2 (temp 4-component vector of float) -0:294 'inF0' (in 4-component vector of float) +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 'r031' (temp 4-component vector of float) -0:295 face-forward (temp 4-component vector of float) -0:295 'inF0' (in 4-component vector of float) -0:295 'inF1' (in 4-component vector of float) -0:295 'inF2' (in 4-component vector of float) +0: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 uint) -0:296 '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: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 'r033' (temp 4-component vector of uint) -0:? findLSB (temp 4-component vector of uint) +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 float) -0:298 'r034' (temp 4-component vector of float) -0:298 Floor (temp 4-component vector of float) -0:298 'inF0' (in 4-component vector of float) -0:300 Sequence -0:300 move second child to first child (temp 4-component vector of float) -0:300 'r036' (temp 4-component vector of float) -0:300 mod (temp 4-component vector of float) -0:300 'inF0' (in 4-component vector of float) -0:300 'inF1' (in 4-component vector of float) +0: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 'r037' (temp 4-component vector of float) -0:301 Fraction (temp 4-component vector of float) -0:301 'inF0' (in 4-component vector of float) +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 'r038' (temp 4-component vector of float) -0:302 frexp (temp 4-component vector of float) -0:302 'inF0' (in 4-component vector of float) -0:302 'inF1' (in 4-component vector of float) +0: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: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: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: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: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: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: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: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 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: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: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: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: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: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: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 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: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: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 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: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: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: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 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: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: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: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: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: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: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: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: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: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: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:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:401 Function Parameters: -0:401 'inF0' (in 2X2 matrix of float) -0:401 'inF1' (in 2X2 matrix of float) -0:401 'inF2' (in 2X2 matrix of float) +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:403 Sequence -0:403 move second child to first child (temp bool) -0:403 'r000' (temp bool) -0:403 all (temp bool) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r001' (temp 2X2 matrix of float) -0:403 Absolute value (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 arc cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp bool) -0:403 'r003' (temp bool) -0:403 any (temp bool) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r004' (temp 2X2 matrix of float) -0:403 arc sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r005' (temp 2X2 matrix of float) -0:403 arc tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r006' (temp 2X2 matrix of float) -0:403 arc tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r007' (temp 2X2 matrix of float) -0:403 Ceiling (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Test condition and select (temp void) -0:403 Condition -0:403 any (temp bool) -0:403 Compare Less Than (temp 2X2 matrix of bool) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 0.000000 -0:403 true case -0:403 Branch: Kill -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r008' (temp 2X2 matrix of float) -0:403 clamp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r009' (temp 2X2 matrix of float) -0:403 cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r010' (temp 2X2 matrix of float) -0:403 hyp. cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r011' (temp 2X2 matrix of float) -0:403 dPdx (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r012' (temp 2X2 matrix of float) -0:403 dPdxCoarse (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r013' (temp 2X2 matrix of float) -0:403 dPdxFine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r014' (temp 2X2 matrix of float) -0:403 dPdy (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r015' (temp 2X2 matrix of float) -0:403 dPdyCoarse (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r016' (temp 2X2 matrix of float) -0:403 dPdyFine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r017' (temp 2X2 matrix of float) -0:403 degrees (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp float) -0:403 'r018' (temp float) -0:403 determinant (temp float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r019' (temp 2X2 matrix of float) -0:403 exp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'R020' (temp 2X2 matrix of float) -0:403 exp2 (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r021' (temp 2X2 matrix of float) -0:403 Floor (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r022' (temp 2X2 matrix of float) -0:403 mod (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r023' (temp 2X2 matrix of float) -0:403 Fraction (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r024' (temp 2X2 matrix of float) -0:403 frexp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r025' (temp 2X2 matrix of float) -0:403 fwidth (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r026' (temp 2X2 matrix of float) -0:403 ldexp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r026a' (temp 2X2 matrix of float) -0:403 mix (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r027' (temp 2X2 matrix of float) -0:403 log (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r028' (temp 2X2 matrix of float) -0:403 matrix-scale (temp 2X2 matrix of float) -0:403 log2 (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Constant: -0:403 0.301030 -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r029' (temp 2X2 matrix of float) -0:403 log2 (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r030' (temp 2X2 matrix of float) -0:403 max (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r031' (temp 2X2 matrix of float) -0:403 min (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r032' (temp 2X2 matrix of float) -0:403 pow (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r033' (temp 2X2 matrix of float) -0:403 radians (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r034' (temp 2X2 matrix of float) -0:403 roundEven (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r035' (temp 2X2 matrix of float) -0:403 inverse sqrt (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r036' (temp 2X2 matrix of float) -0:403 clamp (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Constant: -0:403 0.000000 -0:403 Constant: -0:403 1.000000 -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r037' (temp 2X2 matrix of float) -0:403 Sign (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r038' (temp 2X2 matrix of float) -0:403 sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 cosine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r039' (temp 2X2 matrix of float) -0:403 hyp. sine (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r049' (temp 2X2 matrix of float) -0:403 smoothstep (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 'inF2' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r041' (temp 2X2 matrix of float) -0:403 sqrt (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r042' (temp 2X2 matrix of float) -0:403 step (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 'inF1' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r043' (temp 2X2 matrix of float) -0:403 tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r044' (temp 2X2 matrix of float) -0:403 hyp. tangent (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 transpose (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:403 Sequence -0:403 move second child to first child (temp 2X2 matrix of float) -0:403 'r046' (temp 2X2 matrix of float) -0:403 trunc (temp 2X2 matrix of float) -0:403 'inF0' (in 2X2 matrix of float) -0:406 Branch: Return with expression +0:402 Sequence +0:402 move second child to first child ( temp bool) +0:402 'r000' ( temp bool) +0:402 all ( 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:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:410 Function Parameters: -0:410 'inF0' (in 3X3 matrix of float) -0:410 'inF1' (in 3X3 matrix of float) -0:410 'inF2' (in 3X3 matrix of float) +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:412 Sequence -0:412 move second child to first child (temp bool) -0:412 'r000' (temp bool) -0:412 all (temp bool) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r001' (temp 3X3 matrix of float) -0:412 Absolute value (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 arc cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp bool) -0:412 'r003' (temp bool) -0:412 any (temp bool) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r004' (temp 3X3 matrix of float) -0:412 arc sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r005' (temp 3X3 matrix of float) -0:412 arc tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r006' (temp 3X3 matrix of float) -0:412 arc tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r007' (temp 3X3 matrix of float) -0:412 Ceiling (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Test condition and select (temp void) -0:412 Condition -0:412 any (temp bool) -0:412 Compare Less Than (temp 3X3 matrix of bool) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 0.000000 -0:412 true case -0:412 Branch: Kill -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r008' (temp 3X3 matrix of float) -0:412 clamp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r009' (temp 3X3 matrix of float) -0:412 cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r010' (temp 3X3 matrix of float) -0:412 hyp. cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r011' (temp 3X3 matrix of float) -0:412 dPdx (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r012' (temp 3X3 matrix of float) -0:412 dPdxCoarse (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r013' (temp 3X3 matrix of float) -0:412 dPdxFine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r014' (temp 3X3 matrix of float) -0:412 dPdy (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r015' (temp 3X3 matrix of float) -0:412 dPdyCoarse (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r016' (temp 3X3 matrix of float) -0:412 dPdyFine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r017' (temp 3X3 matrix of float) -0:412 degrees (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp float) -0:412 'r018' (temp float) -0:412 determinant (temp float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r019' (temp 3X3 matrix of float) -0:412 exp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'R020' (temp 3X3 matrix of float) -0:412 exp2 (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r021' (temp 3X3 matrix of float) -0:412 Floor (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r022' (temp 3X3 matrix of float) -0:412 mod (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r023' (temp 3X3 matrix of float) -0:412 Fraction (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r024' (temp 3X3 matrix of float) -0:412 frexp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r025' (temp 3X3 matrix of float) -0:412 fwidth (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r026' (temp 3X3 matrix of float) -0:412 ldexp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r026a' (temp 3X3 matrix of float) -0:412 mix (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r027' (temp 3X3 matrix of float) -0:412 log (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r028' (temp 3X3 matrix of float) -0:412 matrix-scale (temp 3X3 matrix of float) -0:412 log2 (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Constant: -0:412 0.301030 -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r029' (temp 3X3 matrix of float) -0:412 log2 (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r030' (temp 3X3 matrix of float) -0:412 max (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r031' (temp 3X3 matrix of float) -0:412 min (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r032' (temp 3X3 matrix of float) -0:412 pow (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r033' (temp 3X3 matrix of float) -0:412 radians (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r034' (temp 3X3 matrix of float) -0:412 roundEven (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r035' (temp 3X3 matrix of float) -0:412 inverse sqrt (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r036' (temp 3X3 matrix of float) -0:412 clamp (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Constant: -0:412 0.000000 -0:412 Constant: -0:412 1.000000 -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r037' (temp 3X3 matrix of float) -0:412 Sign (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r038' (temp 3X3 matrix of float) -0:412 sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 cosine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r039' (temp 3X3 matrix of float) -0:412 hyp. sine (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r049' (temp 3X3 matrix of float) -0:412 smoothstep (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 'inF2' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r041' (temp 3X3 matrix of float) -0:412 sqrt (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r042' (temp 3X3 matrix of float) -0:412 step (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 'inF1' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r043' (temp 3X3 matrix of float) -0:412 tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r044' (temp 3X3 matrix of float) -0:412 hyp. tangent (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 transpose (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:412 Sequence -0:412 move second child to first child (temp 3X3 matrix of float) -0:412 'r046' (temp 3X3 matrix of float) -0:412 trunc (temp 3X3 matrix of float) -0:412 'inF0' (in 3X3 matrix of float) -0:415 Branch: Return with expression +0:411 Sequence +0:411 move second child to first child ( temp bool) +0:411 'r000' ( temp bool) +0:411 all ( 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 @@ -4947,301 +4980,297 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:419 Function Parameters: -0:419 'inF0' (in 4X4 matrix of float) -0:419 'inF1' (in 4X4 matrix of float) -0:419 'inF2' (in 4X4 matrix of float) +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:421 Sequence -0:421 move second child to first child (temp bool) -0:421 'r000' (temp bool) -0:421 all (temp bool) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r001' (temp 4X4 matrix of float) -0:421 Absolute value (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 arc cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp bool) -0:421 'r003' (temp bool) -0:421 any (temp bool) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r004' (temp 4X4 matrix of float) -0:421 arc sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r005' (temp 4X4 matrix of float) -0:421 arc tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r006' (temp 4X4 matrix of float) -0:421 arc tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r007' (temp 4X4 matrix of float) -0:421 Ceiling (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Test condition and select (temp void) -0:421 Condition -0:421 any (temp bool) -0:421 Compare Less Than (temp 4X4 matrix of bool) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 0.000000 -0:421 true case -0:421 Branch: Kill -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r008' (temp 4X4 matrix of float) -0:421 clamp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r009' (temp 4X4 matrix of float) -0:421 cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r010' (temp 4X4 matrix of float) -0:421 hyp. cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r011' (temp 4X4 matrix of float) -0:421 dPdx (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r012' (temp 4X4 matrix of float) -0:421 dPdxCoarse (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r013' (temp 4X4 matrix of float) -0:421 dPdxFine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r014' (temp 4X4 matrix of float) -0:421 dPdy (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r015' (temp 4X4 matrix of float) -0:421 dPdyCoarse (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r016' (temp 4X4 matrix of float) -0:421 dPdyFine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r017' (temp 4X4 matrix of float) -0:421 degrees (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp float) -0:421 'r018' (temp float) -0:421 determinant (temp float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r019' (temp 4X4 matrix of float) -0:421 exp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'R020' (temp 4X4 matrix of float) -0:421 exp2 (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r021' (temp 4X4 matrix of float) -0:421 Floor (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r022' (temp 4X4 matrix of float) -0:421 mod (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r023' (temp 4X4 matrix of float) -0:421 Fraction (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r024' (temp 4X4 matrix of float) -0:421 frexp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r025' (temp 4X4 matrix of float) -0:421 fwidth (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r026' (temp 4X4 matrix of float) -0:421 ldexp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r026a' (temp 4X4 matrix of float) -0:421 mix (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r027' (temp 4X4 matrix of float) -0:421 log (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r028' (temp 4X4 matrix of float) -0:421 matrix-scale (temp 4X4 matrix of float) -0:421 log2 (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Constant: -0:421 0.301030 -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r029' (temp 4X4 matrix of float) -0:421 log2 (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r030' (temp 4X4 matrix of float) -0:421 max (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r031' (temp 4X4 matrix of float) -0:421 min (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r032' (temp 4X4 matrix of float) -0:421 pow (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r033' (temp 4X4 matrix of float) -0:421 radians (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r034' (temp 4X4 matrix of float) -0:421 roundEven (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r035' (temp 4X4 matrix of float) -0:421 inverse sqrt (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r036' (temp 4X4 matrix of float) -0:421 clamp (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Constant: -0:421 0.000000 -0:421 Constant: -0:421 1.000000 -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r037' (temp 4X4 matrix of float) -0:421 Sign (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r038' (temp 4X4 matrix of float) -0:421 sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 cosine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r039' (temp 4X4 matrix of float) -0:421 hyp. sine (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r049' (temp 4X4 matrix of float) -0:421 smoothstep (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 'inF2' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r041' (temp 4X4 matrix of float) -0:421 sqrt (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r042' (temp 4X4 matrix of float) -0:421 step (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 'inF1' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r043' (temp 4X4 matrix of float) -0:421 tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r044' (temp 4X4 matrix of float) -0:421 hyp. tangent (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 transpose (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:421 Sequence -0:421 move second child to first child (temp 4X4 matrix of float) -0:421 'r046' (temp 4X4 matrix of float) -0:421 trunc (temp 4X4 matrix of float) -0:421 'inF0' (in 4X4 matrix of float) -0:424 Branch: Return with expression +0:420 Sequence +0:420 move second child to first child ( temp bool) +0:420 'r000' ( temp bool) +0:420 all ( 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 @@ -5259,3181 +5288,3171 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:442 Function Parameters: -0:442 'inF0' (in float) -0:442 'inF1' (in float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inFV1' (in 2-component vector of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inFM1' (in 2X2 matrix of float) +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:443 Sequence -0:443 move second child to first child (temp float) -0:443 'r0' (temp float) -0:443 component-wise multiply (temp float) -0:443 'inF1' (in float) -0:443 'inF0' (in float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r1' (temp 2-component vector of float) -0:443 vector-scale (temp 2-component vector of float) -0:443 'inF0' (in float) -0:443 'inFV0' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r2' (temp 2-component vector of float) -0:443 vector-scale (temp 2-component vector of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 'inF0' (in float) -0:443 Sequence -0:443 move second child to first child (temp float) -0:443 'r3' (temp float) -0:443 dot-product (temp float) -0:443 'inFV0' (in 2-component vector of float) -0:443 'inFV1' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r4' (temp 2-component vector of float) -0:443 vector-times-matrix (temp 2-component vector of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r5' (temp 2-component vector of float) -0:443 matrix-times-vector (temp 2-component vector of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2X2 matrix of float) -0:443 'r6' (temp 2X2 matrix of float) -0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inF0' (in float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 Sequence -0:443 move second child to first child (temp 2X2 matrix of float) -0:443 'r7' (temp 2X2 matrix of float) -0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 'inF0' (in float) -0:443 Sequence -0:443 move second child to first child (temp 2X2 matrix of float) -0:443 'r8' (temp 2X2 matrix of float) -0:443 matrix-multiply (temp 2X2 matrix of float) -0:443 'inFM1' (in 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:449 Function Parameters: -0:449 'inF0' (in float) -0:449 'inF1' (in float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inFV1' (in 3-component vector of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inFM1' (in 3X3 matrix of float) +0:442 Sequence +0:442 move second child to first child ( temp float) +0:442 'r0' ( temp float) +0:442 component-wise multiply ( temp float) +0:442 '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:450 Sequence -0:450 move second child to first child (temp float) -0:450 'r0' (temp float) -0:450 component-wise multiply (temp float) -0:450 'inF1' (in float) -0:450 'inF0' (in float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r1' (temp 3-component vector of float) -0:450 vector-scale (temp 3-component vector of float) -0:450 'inF0' (in float) -0:450 'inFV0' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r2' (temp 3-component vector of float) -0:450 vector-scale (temp 3-component vector of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 'inF0' (in float) -0:450 Sequence -0:450 move second child to first child (temp float) -0:450 'r3' (temp float) -0:450 dot-product (temp float) -0:450 'inFV0' (in 3-component vector of float) -0:450 'inFV1' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r4' (temp 3-component vector of float) -0:450 vector-times-matrix (temp 3-component vector of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r5' (temp 3-component vector of float) -0:450 matrix-times-vector (temp 3-component vector of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3X3 matrix of float) -0:450 'r6' (temp 3X3 matrix of float) -0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inF0' (in float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 Sequence -0:450 move second child to first child (temp 3X3 matrix of float) -0:450 'r7' (temp 3X3 matrix of float) -0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 'inF0' (in float) -0:450 Sequence -0:450 move second child to first child (temp 3X3 matrix of float) -0:450 'r8' (temp 3X3 matrix of float) -0:450 matrix-multiply (temp 3X3 matrix of float) -0:450 'inFM1' (in 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:456 Function Parameters: -0:456 'inF0' (in float) -0:456 'inF1' (in float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inFV1' (in 4-component vector of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inFM1' (in 4X4 matrix of float) +0:449 Sequence +0:449 move second child to first child ( temp float) +0:449 'r0' ( temp float) +0:449 component-wise multiply ( temp float) +0:449 '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:457 Sequence -0:457 move second child to first child (temp float) -0:457 'r0' (temp float) -0:457 component-wise multiply (temp float) -0:457 'inF1' (in float) -0:457 'inF0' (in float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r1' (temp 4-component vector of float) -0:457 vector-scale (temp 4-component vector of float) -0:457 'inF0' (in float) -0:457 'inFV0' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r2' (temp 4-component vector of float) -0:457 vector-scale (temp 4-component vector of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 'inF0' (in float) -0:457 Sequence -0:457 move second child to first child (temp float) -0:457 'r3' (temp float) -0:457 dot-product (temp float) -0:457 'inFV0' (in 4-component vector of float) -0:457 'inFV1' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r4' (temp 4-component vector of float) -0:457 vector-times-matrix (temp 4-component vector of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r5' (temp 4-component vector of float) -0:457 matrix-times-vector (temp 4-component vector of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4X4 matrix of float) -0:457 'r6' (temp 4X4 matrix of float) -0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inF0' (in float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 Sequence -0:457 move second child to first child (temp 4X4 matrix of float) -0:457 'r7' (temp 4X4 matrix of float) -0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 'inF0' (in float) -0:457 Sequence -0:457 move second child to first child (temp 4X4 matrix of float) -0:457 'r8' (temp 4X4 matrix of float) -0:457 matrix-multiply (temp 4X4 matrix of float) -0:457 'inFM1' (in 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) -0:466 Function Parameters: -0:466 'inF0' (in float) -0:466 'inF1' (in float) -0:466 'inFV2' (in 2-component vector of float) -0:466 'inFV3' (in 3-component vector of float) -0:466 'inFM2x3' (in 2X3 matrix of float) -0:466 'inFM3x2' (in 3X2 matrix of float) -0:466 'inFM3x3' (in 3X3 matrix of float) -0:466 'inFM3x4' (in 3X4 matrix of float) -0:466 'inFM2x4' (in 2X4 matrix of float) +0:456 Sequence +0:456 move second child to first child ( temp float) +0:456 'r0' ( temp float) +0:456 component-wise multiply ( temp float) +0:456 '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 float) -0:467 'r00' (temp float) -0:467 component-wise multiply (temp float) -0:467 'inF1' (in float) -0:467 'inF0' (in float) +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 2-component vector of float) -0:468 'r01' (temp 2-component vector of float) -0:468 vector-scale (temp 2-component vector of float) -0:468 'inF0' (in float) -0:468 'inFV2' (in 2-component vector of float) +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 3-component vector of float) -0:469 'r02' (temp 3-component vector of float) -0:469 vector-scale (temp 3-component vector of float) -0:469 'inF0' (in float) -0:469 'inFV3' (in 3-component vector of float) +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 2-component vector of float) -0:470 'r03' (temp 2-component vector of float) -0:470 vector-scale (temp 2-component vector of float) -0:470 'inFV2' (in 2-component vector of float) -0:470 'inF0' (in float) +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 3-component vector of float) -0:471 'r04' (temp 3-component vector of float) -0:471 vector-scale (temp 3-component vector of float) -0:471 'inFV3' (in 3-component vector of float) -0:471 'inF0' (in float) +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 'r05' (temp float) -0:472 dot-product (temp float) -0:472 'inFV2' (in 2-component vector of float) -0:472 'inFV2' (in 2-component vector of float) +0: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 float) -0:473 'r06' (temp float) -0:473 dot-product (temp float) -0:473 'inFV3' (in 3-component vector of float) -0:473 'inFV3' (in 3-component vector of float) +0: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 3-component vector of float) -0:474 'r07' (temp 3-component vector of float) -0:474 matrix-times-vector (temp 3-component vector of float) -0:474 'inFM2x3' (in 2X3 matrix of float) -0:474 'inFV2' (in 2-component vector of float) +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 'r08' (temp 2-component vector of float) -0:475 matrix-times-vector (temp 2-component vector of float) -0:475 'inFM3x2' (in 3X2 matrix of float) -0:475 'inFV3' (in 3-component vector of float) +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 2-component vector of float) -0:476 'r09' (temp 2-component vector of float) -0:476 vector-times-matrix (temp 2-component vector of float) -0:476 'inFV3' (in 3-component vector of float) -0:476 'inFM2x3' (in 2X3 matrix of float) +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 3-component vector of float) -0:477 'r10' (temp 3-component vector of float) -0:477 vector-times-matrix (temp 3-component vector of float) -0:477 'inFV2' (in 2-component vector of float) -0:477 'inFM3x2' (in 3X2 matrix of float) +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 2X3 matrix of float) -0:478 'r11' (temp 2X3 matrix of float) -0:478 matrix-scale (temp 2X3 matrix of float) -0:478 'inF0' (in float) -0:478 'inFM2x3' (in 2X3 matrix of float) +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 3X2 matrix of float) -0:479 'r12' (temp 3X2 matrix of float) -0:479 matrix-scale (temp 3X2 matrix of float) -0:479 'inF0' (in float) -0:479 'inFM3x2' (in 3X2 matrix of float) +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 2X2 matrix of float) -0:480 'r13' (temp 2X2 matrix of float) -0:480 matrix-multiply (temp 2X2 matrix of float) -0:480 'inFM3x2' (in 3X2 matrix of float) -0:480 'inFM2x3' (in 2X3 matrix of float) +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 2X3 matrix of float) -0:481 'r14' (temp 2X3 matrix of float) -0:481 matrix-multiply (temp 2X3 matrix of float) -0:481 'inFM3x3' (in 3X3 matrix of float) -0:481 'inFM2x3' (in 2X3 matrix of float) +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 2X4 matrix of float) -0:482 'r15' (temp 2X4 matrix of float) -0:482 matrix-multiply (temp 2X4 matrix of float) -0:482 'inFM3x4' (in 3X4 matrix of float) -0:482 'inFM2x3' (in 2X3 matrix of float) -0:483 Sequence -0:483 move second child to first child (temp 3X4 matrix of float) -0:483 'r16' (temp 3X4 matrix of float) -0:483 matrix-multiply (temp 3X4 matrix of float) -0:483 'inFM2x4' (in 2X4 matrix of float) -0:483 'inFM3x2' (in 3X2 matrix of float) -0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) -0:489 Function Parameters: +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:491 move second child to first child (temp 4-component vector of float) -0:491 color: direct index for structure (temp 4-component vector of float) -0:491 'ps_output' (temp structure{temp 4-component vector of float color}) -0:491 Constant: -0:491 0 (const int) -0:491 Constant: -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:491 1.000000 -0:492 Sequence -0:492 Sequence -0:492 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:492 color: direct index for structure (temp 4-component vector of float) -0:492 'ps_output' (temp structure{temp 4-component vector of float color}) -0:492 Constant: -0:492 0 (const int) -0:492 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'gs_ua' (shared uint) -0:? 'gs_ub' (shared uint) -0:? 'gs_uc' (shared uint) -0:? 'gs_ua2' (shared 2-component vector of uint) -0:? 'gs_ub2' (shared 2-component vector of uint) -0:? 'gs_uc2' (shared 2-component vector of uint) -0:? 'gs_ua3' (shared 3-component vector of uint) -0:? 'gs_ub3' (shared 3-component vector of uint) -0:? 'gs_uc3' (shared 3-component vector of uint) -0:? 'gs_ua4' (shared 4-component vector of uint) -0:? 'gs_ub4' (shared 4-component vector of uint) -0:? 'gs_uc4' (shared 4-component vector of uint) +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): 80001 -// Id's are bound by 1828 +// 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" 1808 + EntryPoint Fragment 4 "main" 1813 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" - Name 11 "inF0" - Name 12 "inF1" - Name 13 "inF2" - Name 14 "inU0" - Name 15 "inU1" - Name 22 "PixelShaderFunction1(vf1;vf1;vf1;" - Name 19 "inF0" - Name 20 "inF1" - Name 21 "inF2" - Name 34 "PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;" - Name 29 "inF0" - Name 30 "inF1" - Name 31 "inF2" - Name 32 "inU0" - Name 33 "inU1" - Name 46 "PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;" - Name 41 "inF0" - Name 42 "inF1" - Name 43 "inF2" - Name 44 "inU0" - Name 45 "inU1" - Name 58 "PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;" - Name 53 "inF0" - Name 54 "inF1" - Name 55 "inF2" - Name 56 "inU0" - Name 57 "inU1" - Name 66 "PixelShaderFunction2x2(mf22;mf22;mf22;" - Name 63 "inF0" - Name 64 "inF1" - Name 65 "inF2" - Name 74 "PixelShaderFunction3x3(mf33;mf33;mf33;" - Name 71 "inF0" - Name 72 "inF1" - Name 73 "inF2" - Name 82 "PixelShaderFunction4x4(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 133 "r000" - Name 136 "r001" - Name 139 "r002" - Name 142 "r003" - Name 145 "r004" - Name 150 "r005" - Name 153 "r006" - Name 156 "r007" - Name 159 "r009" - Name 162 "r010" - Name 166 "r011" - Name 169 "r012" - Name 180 "r014" - Name 183 "r015" - Name 186 "r016" - Name 189 "r017" - Name 192 "r018" - Name 195 "r019" - Name 198 "r020" - Name 201 "r021" - Name 204 "r022" - Name 207 "r023" - Name 210 "r027" - Name 213 "r028" - Name 216 "r029" - Name 219 "r030" - Name 222 "r031" - Name 225 "r033" - Name 229 "r034" - Name 232 "r035" - Name 234 "ResType" - Name 238 "r036" - Name 241 "r037" - Name 244 "r038" - Name 247 "r039" - Name 251 "r039a" - Name 256 "r040" - Name 259 "r041" - Name 264 "r042" - Name 267 "r043" - Name 271 "r044" - Name 275 "r045" - Name 279 "r046" - Name 282 "r047" - Name 286 "r048" - Name 290 "r049" - Name 293 "r050" - Name 296 "r051" - Name 299 "r052" - Name 302 "r053" - Name 309 "r055" - Name 312 "r056" - Name 317 "r057" - Name 320 "r058" - Name 324 "r059" - Name 327 "r060" - Name 330 "r061" - Name 337 "r000" - Name 340 "r001" - Name 343 "r002" - Name 346 "r003" - Name 349 "r004" - Name 354 "r005" - Name 357 "r006" - Name 360 "r007" - Name 363 "r009" - Name 366 "r010" - Name 370 "r011" - Name 373 "r012" - Name 386 "r013" - Name 389 "r015" - Name 392 "r016" - Name 396 "r017" - Name 399 "r018" - Name 402 "r019" - Name 405 "r020" - Name 408 "r021" - Name 411 "r022" - Name 414 "r023" - Name 417 "r026" - Name 421 "r027" - Name 425 "r028" - Name 428 "r029" - Name 431 "r030" - Name 436 "r031" - Name 441 "r032" - Name 443 "r033" - Name 446 "r035" - Name 450 "r036" - Name 453 "r037" - Name 455 "ResType" - Name 459 "r038" - Name 463 "r039" - Name 466 "r040" - Name 469 "r041" - Name 473 "r039a" - Name 478 "r042" - Name 481 "r043" - Name 484 "r044" - Name 488 "r045" - Name 491 "r046" - Name 495 "r047" - Name 499 "r048" - Name 502 "r049" - Name 506 "r050" - Name 509 "r051" - Name 513 "r052" - Name 517 "r053" - Name 522 "r054" - Name 527 "r055" - Name 530 "r056" - Name 533 "r057" - Name 538 "r058" - Name 541 "r059" - Name 548 "r060" - Name 551 "r061" - Name 556 "r062" - Name 559 "r063" - Name 563 "r064" - Name 566 "r065" - Name 569 "r066" - Name 575 "r000" - Name 578 "r001" - Name 581 "r002" - Name 584 "r003" - Name 587 "r004" - Name 592 "r005" - Name 595 "r006" - Name 598 "r007" - Name 601 "r009" - Name 604 "r010" - Name 608 "r011" - Name 611 "r012" - Name 624 "r013" - Name 627 "r014" - Name 630 "r015" - Name 635 "r016" - Name 639 "r017" - Name 642 "r018" - Name 645 "r019" - Name 648 "r020" - Name 651 "r021" - Name 654 "r022" - Name 657 "r023" - Name 660 "r024" - Name 664 "r025" - Name 668 "r029" - Name 671 "r030" - Name 674 "r031" - Name 679 "r032" - Name 683 "r033" - Name 685 "r034" - Name 688 "r036" - Name 692 "r037" - Name 695 "r038" - Name 697 "ResType" - Name 701 "r039" - Name 705 "r040" - Name 708 "r041" - Name 711 "r042" - Name 715 "r039a" - Name 720 "r039b" - Name 726 "r043" - Name 729 "r044" - Name 732 "r045" - Name 736 "r046" - Name 739 "r047" - Name 743 "r048" - Name 747 "r049" - Name 750 "r050" - Name 754 "r051" - Name 757 "r052" - Name 761 "r053" - Name 765 "r054" - Name 769 "r055" - Name 772 "r056" - Name 775 "r057" - Name 778 "r058" - Name 783 "r059" - Name 786 "r060" - Name 793 "r061" - Name 796 "r062" - Name 801 "r063" - Name 804 "r064" - Name 808 "r065" - Name 811 "r066" - Name 814 "r067" - Name 821 "r000" - Name 824 "r001" - Name 827 "r002" - Name 830 "r003" - Name 833 "r004" - Name 838 "r005" - Name 841 "r006" - Name 844 "r007" - Name 847 "r009" - Name 850 "r010" - Name 854 "r011" - Name 857 "r012" - Name 870 "r013" - Name 873 "r014" - Name 876 "r015" - Name 879 "r016" - Name 882 "r017" - Name 885 "r018" - Name 888 "r019" - Name 891 "r020" - Name 894 "r021" - Name 897 "r022" - Name 900 "r023" - Name 904 "r024" - Name 908 "r025" - Name 919 "r029" - Name 922 "r030" - Name 925 "r031" - Name 930 "r032" - Name 935 "r033" - Name 937 "r034" - Name 940 "r036" - Name 944 "r037" - Name 947 "r038" - Name 949 "ResType" - Name 953 "r039" - Name 957 "r040" - Name 960 "r041" - Name 963 "r042" - Name 967 "r039a" - Name 972 "r043" - Name 975 "r044" - Name 978 "r045" - Name 982 "r046" - Name 985 "r047" - Name 989 "r048" - Name 993 "r049" - Name 996 "r050" - Name 1000 "r051" - Name 1003 "r052" - Name 1007 "r053" - Name 1011 "r054" - Name 1015 "r055" - Name 1018 "r056" - Name 1021 "r057" - Name 1024 "r058" - Name 1029 "r059" - Name 1032 "r060" - Name 1039 "r061" - Name 1042 "r062" - Name 1047 "r063" - Name 1050 "r064" - Name 1054 "r065" - Name 1057 "r066" - Name 1060 "r067" - Name 1067 "r000" - Name 1070 "r001" - Name 1075 "r003" - Name 1078 "r004" - Name 1081 "r005" - Name 1084 "r006" - Name 1088 "r007" - Name 1099 "r008" - Name 1104 "r009" - Name 1107 "r010" - Name 1110 "r011" - Name 1113 "r012" - Name 1116 "r013" - Name 1119 "r014" - Name 1122 "r015" - Name 1125 "r016" - Name 1128 "r017" - Name 1131 "r018" - Name 1134 "r019" - Name 1137 "R020" - Name 1140 "r021" - Name 1143 "r022" - Name 1153 "r023" - Name 1156 "r024" - Name 1158 "ResType" - Name 1162 "r025" - Name 1165 "r026" - Name 1169 "r026a" - Name 1174 "r027" - Name 1177 "r028" - Name 1181 "r029" - Name 1184 "r030" - Name 1188 "r031" - Name 1192 "r032" - Name 1196 "r033" - Name 1199 "r034" - Name 1202 "r035" - Name 1205 "r036" - Name 1210 "r037" - Name 1213 "r038" - Name 1220 "r039" - Name 1223 "r049" - Name 1228 "r041" - Name 1231 "r042" - Name 1235 "r043" - Name 1238 "r044" - Name 1243 "r046" - Name 1250 "r000" - Name 1253 "r001" - Name 1258 "r003" - Name 1261 "r004" - Name 1264 "r005" - Name 1267 "r006" - Name 1271 "r007" - Name 1282 "r008" - Name 1287 "r009" - Name 1290 "r010" - Name 1293 "r011" - Name 1296 "r012" - Name 1299 "r013" - Name 1302 "r014" - Name 1305 "r015" - Name 1308 "r016" - Name 1311 "r017" - Name 1314 "r018" - Name 1317 "r019" - Name 1320 "R020" - Name 1323 "r021" - Name 1326 "r022" - Name 1339 "r023" - Name 1342 "r024" - Name 1344 "ResType" - Name 1348 "r025" - Name 1351 "r026" - Name 1355 "r026a" - Name 1360 "r027" - Name 1363 "r028" - Name 1367 "r029" - Name 1370 "r030" - Name 1374 "r031" - Name 1378 "r032" - Name 1382 "r033" - Name 1385 "r034" - Name 1388 "r035" - Name 1391 "r036" - Name 1396 "r037" - Name 1399 "r038" - Name 1406 "r039" - Name 1409 "r049" - Name 1414 "r041" - Name 1417 "r042" - Name 1421 "r043" - Name 1424 "r044" - Name 1429 "r046" - Name 1436 "r000" - Name 1439 "r001" - Name 1444 "r003" - Name 1447 "r004" - Name 1450 "r005" - Name 1453 "r006" - Name 1457 "r007" - Name 1468 "r008" - Name 1473 "r009" - Name 1476 "r010" - Name 1479 "r011" - Name 1482 "r012" - Name 1485 "r013" - Name 1488 "r014" - Name 1491 "r015" - Name 1494 "r016" - Name 1497 "r017" - Name 1500 "r018" - Name 1503 "r019" - Name 1506 "R020" - Name 1509 "r021" - Name 1512 "r022" - Name 1528 "r023" - Name 1531 "r024" - Name 1533 "ResType" - Name 1537 "r025" - Name 1540 "r026" - Name 1544 "r026a" - Name 1549 "r027" - Name 1552 "r028" - Name 1556 "r029" - Name 1559 "r030" - Name 1563 "r031" - Name 1567 "r032" - Name 1571 "r033" - Name 1574 "r034" - Name 1577 "r035" - Name 1580 "r036" - Name 1585 "r037" - Name 1588 "r038" - Name 1595 "r039" - Name 1598 "r049" - Name 1603 "r041" - Name 1606 "r042" - Name 1610 "r043" - Name 1613 "r044" - Name 1618 "r046" - Name 1625 "r0" - Name 1629 "r1" - Name 1633 "r2" - Name 1637 "r3" - Name 1641 "r4" - Name 1645 "r5" - Name 1649 "r6" - Name 1653 "r7" - Name 1657 "r8" - Name 1661 "r0" - Name 1665 "r1" - Name 1669 "r2" - Name 1673 "r3" - Name 1677 "r4" - Name 1681 "r5" - Name 1685 "r6" - Name 1689 "r7" - Name 1693 "r8" - Name 1697 "r0" - Name 1701 "r1" - Name 1705 "r2" - Name 1709 "r3" - Name 1713 "r4" - Name 1717 "r5" - Name 1721 "r6" - Name 1725 "r7" - Name 1729 "r8" - Name 1733 "r00" - Name 1737 "r01" - Name 1741 "r02" - Name 1745 "r03" - Name 1749 "r04" - Name 1753 "r05" - Name 1757 "r06" - Name 1761 "r07" - Name 1765 "r08" - Name 1769 "r09" - Name 1773 "r10" - Name 1777 "r11" - Name 1781 "r12" - Name 1785 "r13" - Name 1789 "r14" - Name 1793 "r15" - Name 1797 "r16" - Name 1801 "PS_OUTPUT" - MemberName 1801(PS_OUTPUT) 0 "color" - Name 1803 "ps_output" - Name 1808 "color" - Name 1813 "gs_ua" - Name 1814 "gs_ub" - Name 1815 "gs_uc" - Name 1817 "gs_ua2" - Name 1818 "gs_ub2" - Name 1819 "gs_uc2" - Name 1821 "gs_ua3" - Name 1822 "gs_ub3" - Name 1823 "gs_uc3" - Name 1825 "gs_ua4" - Name 1826 "gs_ub4" - Name 1827 "gs_uc4" - Decorate 1808(color) Location 0 + 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: 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 + 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 48(fvec4) 3 + 115: TypeMatrix 26(fvec2) 3 116: TypePointer Function 115 - 117: TypeMatrix 48(fvec4) 2 + 117: TypeMatrix 50(fvec4) 3 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) - 131: TypeBool - 132: TypePointer Function 131(bool) - 148: TypeInt 32 1 - 149: TypePointer Function 148(int) - 175: 6(float) Constant 0 - 187: 148(int) Constant 7 - 234(ResType): TypeStruct 6(float) 148(int) - 262: 6(float) Constant 1050288283 - 283: 6(float) Constant 1065353216 - 287: 148(int) Constant 2 - 352: TypeVector 148(int) 2 - 353: TypePointer Function 352(ivec2) - 379: 24(fvec2) ConstantComposite 175 175 - 380: TypeVector 131(bool) 2 - 393: 148(int) Constant 3 - 394: 352(ivec2) ConstantComposite 187 393 - 437: 8(int) Constant 7 - 438: 8(int) Constant 8 - 439: 26(ivec2) ConstantComposite 437 438 - 455(ResType): TypeStruct 24(fvec2) 352(ivec2) - 462: TypePointer Function 380(bvec2) - 520: 6(float) Constant 1073741824 - 523: 8(int) Constant 1 - 524: 8(int) Constant 2 - 525: 26(ivec2) ConstantComposite 523 524 - 572: 24(fvec2) ConstantComposite 283 520 - 590: TypeVector 148(int) 3 - 591: TypePointer Function 590(ivec3) - 617: 36(fvec3) ConstantComposite 175 175 175 - 618: TypeVector 131(bool) 3 - 631: 8(int) Constant 3 - 632: 8(int) Constant 5 - 633: 38(ivec3) ConstantComposite 437 631 632 - 680: 8(int) Constant 4 - 681: 38(ivec3) ConstantComposite 524 631 680 - 697(ResType): TypeStruct 36(fvec3) 590(ivec3) - 704: TypePointer Function 618(bvec3) - 723: 6(float) Constant 1050253722 - 770: 38(ivec3) ConstantComposite 523 524 631 - 817: 6(float) Constant 1077936128 - 818: 36(fvec3) ConstantComposite 283 520 817 - 836: TypeVector 148(int) 4 - 837: TypePointer Function 836(ivec4) - 863: 48(fvec4) ConstantComposite 175 175 175 175 - 864: TypeVector 131(bool) 4 - 877: 50(ivec4) ConstantComposite 437 631 632 524 - 931: 8(int) Constant 9 - 932: 8(int) Constant 10 - 933: 50(ivec4) ConstantComposite 437 438 931 932 - 949(ResType): TypeStruct 48(fvec4) 836(ivec4) - 956: TypePointer Function 864(bvec4) - 1016: 50(ivec4) ConstantComposite 523 524 631 680 - 1063: 6(float) Constant 1082130432 - 1064: 48(fvec4) ConstantComposite 283 520 817 1063 - 1092: 60 ConstantComposite 379 379 - 1093: TypeMatrix 380(bvec2) 2 - 1158(ResType): TypeStruct 60 352(ivec2) - 1246: 24(fvec2) ConstantComposite 520 520 - 1247: 60 ConstantComposite 1246 1246 - 1275: 68 ConstantComposite 617 617 617 - 1276: TypeMatrix 618(bvec3) 3 - 1344(ResType): TypeStruct 68 590(ivec3) - 1432: 36(fvec3) ConstantComposite 817 817 817 - 1433: 68 ConstantComposite 1432 1432 1432 - 1461: 76 ConstantComposite 863 863 863 863 - 1462: TypeMatrix 864(bvec4) 4 - 1533(ResType): TypeStruct 76 836(ivec4) - 1621: 48(fvec4) ConstantComposite 1063 1063 1063 1063 - 1622: 76 ConstantComposite 1621 1621 1621 1621 - 1801(PS_OUTPUT): TypeStruct 48(fvec4) - 1802: TypePointer Function 1801(PS_OUTPUT) - 1804: 148(int) Constant 0 - 1805: 48(fvec4) ConstantComposite 283 283 283 283 - 1807: TypePointer Output 48(fvec4) - 1808(color): 1807(ptr) Variable Output - 1812: TypePointer Workgroup 8(int) - 1813(gs_ua): 1812(ptr) Variable Workgroup - 1814(gs_ub): 1812(ptr) Variable Workgroup - 1815(gs_uc): 1812(ptr) Variable Workgroup - 1816: TypePointer Workgroup 26(ivec2) - 1817(gs_ua2): 1816(ptr) Variable Workgroup - 1818(gs_ub2): 1816(ptr) Variable Workgroup - 1819(gs_uc2): 1816(ptr) Variable Workgroup - 1820: TypePointer Workgroup 38(ivec3) - 1821(gs_ua3): 1820(ptr) Variable Workgroup - 1822(gs_ub3): 1820(ptr) Variable Workgroup - 1823(gs_uc3): 1820(ptr) Variable Workgroup - 1824: TypePointer Workgroup 50(ivec4) - 1825(gs_ua4): 1824(ptr) Variable Workgroup - 1826(gs_ub4): 1824(ptr) Variable Workgroup - 1827(gs_uc4): 1824(ptr) Variable Workgroup + 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 - 1803(ps_output): 1802(ptr) Variable Function - 1806: 49(ptr) AccessChain 1803(ps_output) 1804 - Store 1806 1805 - 1809: 49(ptr) AccessChain 1803(ps_output) 1804 - 1810: 48(fvec4) Load 1809 - Store 1808(color) 1810 + 1814:133(PS_OUTPUT) FunctionCall 135(@main() + 1815: 50(fvec4) CompositeExtract 1814 0 + Store 1813(@entryPointOutput.color) 1815 Return FunctionEnd -16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 - 11(inF0): 7(ptr) FunctionParameter - 12(inF1): 7(ptr) FunctionParameter - 13(inF2): 7(ptr) FunctionParameter - 14(inU0): 9(ptr) FunctionParameter - 15(inU1): 9(ptr) FunctionParameter - 17: Label - 133(r000): 132(ptr) Variable Function - 136(r001): 7(ptr) Variable Function - 139(r002): 7(ptr) Variable Function - 142(r003): 132(ptr) Variable Function - 145(r004): 7(ptr) Variable Function - 150(r005): 149(ptr) Variable Function - 153(r006): 9(ptr) Variable Function - 156(r007): 7(ptr) Variable Function - 159(r009): 7(ptr) Variable Function - 162(r010): 7(ptr) Variable Function - 166(r011): 7(ptr) Variable Function - 169(r012): 7(ptr) Variable Function - 180(r014): 7(ptr) Variable Function - 183(r015): 7(ptr) Variable Function - 186(r016): 149(ptr) Variable Function - 189(r017): 7(ptr) Variable Function - 192(r018): 7(ptr) Variable Function - 195(r019): 7(ptr) Variable Function - 198(r020): 7(ptr) Variable Function - 201(r021): 7(ptr) Variable Function - 204(r022): 7(ptr) Variable Function - 207(r023): 7(ptr) Variable Function - 210(r027): 7(ptr) Variable Function - 213(r028): 7(ptr) Variable Function - 216(r029): 9(ptr) Variable Function - 219(r030): 9(ptr) Variable Function - 222(r031): 7(ptr) Variable Function - 225(r033): 7(ptr) Variable Function - 229(r034): 7(ptr) Variable Function - 232(r035): 7(ptr) Variable Function - 238(r036): 7(ptr) Variable Function - 241(r037): 132(ptr) Variable Function - 244(r038): 132(ptr) Variable Function - 247(r039): 7(ptr) Variable Function - 251(r039a): 7(ptr) Variable Function - 256(r040): 7(ptr) Variable Function - 259(r041): 7(ptr) Variable Function - 264(r042): 7(ptr) Variable Function - 267(r043): 7(ptr) Variable Function - 271(r044): 7(ptr) Variable Function - 275(r045): 7(ptr) Variable Function - 279(r046): 7(ptr) Variable Function - 282(r047): 7(ptr) Variable Function - 286(r048): 9(ptr) Variable Function - 290(r049): 7(ptr) Variable Function - 293(r050): 7(ptr) Variable Function - 296(r051): 7(ptr) Variable Function - 299(r052): 7(ptr) Variable Function - 302(r053): 7(ptr) Variable Function - 309(r055): 7(ptr) Variable Function - 312(r056): 7(ptr) Variable Function - 317(r057): 7(ptr) Variable Function - 320(r058): 7(ptr) Variable Function - 324(r059): 7(ptr) Variable Function - 327(r060): 7(ptr) Variable Function - 330(r061): 7(ptr) Variable Function - 134: 6(float) Load 11(inF0) - 135: 131(bool) All 134 - Store 133(r000) 135 - 137: 6(float) Load 11(inF0) - 138: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 137 - Store 136(r001) 138 - 140: 6(float) Load 11(inF0) - 141: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 140 - Store 139(r002) 141 - 143: 6(float) Load 11(inF0) - 144: 131(bool) Any 143 - Store 142(r003) 144 - 146: 6(float) Load 11(inF0) - 147: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 146 - Store 145(r004) 147 - 151: 6(float) Load 11(inF0) - 152: 148(int) Bitcast 151 - Store 150(r005) 152 - 154: 6(float) Load 11(inF0) - 155: 8(int) Bitcast 154 - Store 153(r006) 155 - 157: 8(int) Load 14(inU0) - 158: 6(float) Bitcast 157 - Store 156(r007) 158 - 160: 6(float) Load 11(inF0) - 161: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 160 - Store 159(r009) 161 - 163: 6(float) Load 11(inF0) - 164: 6(float) Load 12(inF1) - 165: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 163 164 - Store 162(r010) 165 - 167: 6(float) Load 11(inF0) - 168: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 167 - Store 166(r011) 168 - 170: 6(float) Load 11(inF0) - 171: 6(float) Load 12(inF1) - 172: 6(float) Load 13(inF2) - 173: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 170 171 172 - Store 169(r012) 173 - 174: 6(float) Load 11(inF0) - 176: 131(bool) FOrdLessThan 174 175 - SelectionMerge 178 None - BranchConditional 176 177 178 - 177: Label +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 - 178: Label - 181: 6(float) Load 11(inF0) - 182: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 181 - Store 180(r014) 182 - 184: 6(float) Load 11(inF0) - 185: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 184 - Store 183(r015) 185 - 188: 148(int) BitCount 187 - Store 186(r016) 188 - 190: 6(float) Load 11(inF0) - 191: 6(float) DPdx 190 - Store 189(r017) 191 - 193: 6(float) Load 11(inF0) - 194: 6(float) DPdxCoarse 193 - Store 192(r018) 194 - 196: 6(float) Load 11(inF0) - 197: 6(float) DPdxFine 196 - Store 195(r019) 197 - 199: 6(float) Load 11(inF0) - 200: 6(float) DPdy 199 - Store 198(r020) 200 - 202: 6(float) Load 11(inF0) - 203: 6(float) DPdyCoarse 202 - Store 201(r021) 203 - 205: 6(float) Load 11(inF0) - 206: 6(float) DPdyFine 205 - Store 204(r022) 206 - 208: 6(float) Load 11(inF0) - 209: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 208 - Store 207(r023) 209 - 211: 6(float) Load 11(inF0) - 212: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 211 - Store 210(r027) 212 - 214: 6(float) Load 11(inF0) - 215: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 214 - Store 213(r028) 215 - 217: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 187 - 218: 8(int) Bitcast 217 - Store 216(r029) 218 - 220: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 187 - 221: 8(int) Bitcast 220 - Store 219(r030) 221 - 223: 6(float) Load 11(inF0) - 224: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 223 - Store 222(r031) 224 - 226: 6(float) Load 11(inF0) - 227: 6(float) Load 12(inF1) - 228: 6(float) FMod 226 227 - Store 225(r033) 228 - 230: 6(float) Load 11(inF0) - 231: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 230 - Store 229(r034) 231 - 233: 6(float) Load 11(inF0) - 235:234(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 233 - 236: 148(int) CompositeExtract 235 1 - Store 12(inF1) 236 - 237: 6(float) CompositeExtract 235 0 - Store 232(r035) 237 - 239: 6(float) Load 11(inF0) - 240: 6(float) Fwidth 239 - Store 238(r036) 240 - 242: 6(float) Load 11(inF0) - 243: 131(bool) IsInf 242 - Store 241(r037) 243 - 245: 6(float) Load 11(inF0) - 246: 131(bool) IsNan 245 - Store 244(r038) 246 - 248: 6(float) Load 11(inF0) - 249: 6(float) Load 12(inF1) - 250: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 248 249 - Store 247(r039) 250 - 252: 6(float) Load 11(inF0) - 253: 6(float) Load 12(inF1) - 254: 6(float) Load 13(inF2) - 255: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 252 253 254 - Store 251(r039a) 255 - 257: 6(float) Load 11(inF0) - 258: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 257 - Store 256(r040) 258 - 260: 6(float) Load 11(inF0) - 261: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 260 - 263: 6(float) FMul 261 262 - Store 259(r041) 263 - 265: 6(float) Load 11(inF0) - 266: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 265 - Store 264(r042) 266 - 268: 6(float) Load 11(inF0) - 269: 6(float) Load 12(inF1) - 270: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 268 269 - Store 267(r043) 270 - 272: 6(float) Load 11(inF0) - 273: 6(float) Load 12(inF1) - 274: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 272 273 - Store 271(r044) 274 - 276: 6(float) Load 11(inF0) - 277: 6(float) Load 12(inF1) - 278: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 276 277 - Store 275(r045) 278 - 280: 6(float) Load 11(inF0) - 281: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 280 - Store 279(r046) 281 - 284: 6(float) Load 11(inF0) - 285: 6(float) FDiv 283 284 - Store 282(r047) 285 - 288: 148(int) BitReverse 287 - 289: 8(int) Bitcast 288 - Store 286(r048) 289 - 291: 6(float) Load 11(inF0) - 292: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 291 - Store 290(r049) 292 - 294: 6(float) Load 11(inF0) - 295: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 294 - Store 293(r050) 295 - 297: 6(float) Load 11(inF0) - 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 283 - Store 296(r051) 298 - 300: 6(float) Load 11(inF0) - 301: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 300 - Store 299(r052) 301 - 303: 6(float) Load 11(inF0) - 304: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 303 - Store 302(r053) 304 - 305: 6(float) Load 11(inF0) - 306: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 305 - Store 12(inF1) 306 - 307: 6(float) Load 11(inF0) - 308: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 307 - Store 13(inF2) 308 - 310: 6(float) Load 11(inF0) - 311: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 310 - Store 309(r055) 311 - 313: 6(float) Load 11(inF0) - 314: 6(float) Load 12(inF1) - 315: 6(float) Load 13(inF2) - 316: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 313 314 315 - Store 312(r056) 316 - 318: 6(float) Load 11(inF0) - 319: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 318 - Store 317(r057) 319 - 321: 6(float) Load 11(inF0) - 322: 6(float) Load 12(inF1) - 323: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 321 322 - Store 320(r058) 323 - 325: 6(float) Load 11(inF0) - 326: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 325 - Store 324(r059) 326 - 328: 6(float) Load 11(inF0) - 329: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 328 - Store 327(r060) 329 - 331: 6(float) Load 11(inF0) - 332: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 331 - Store 330(r061) 332 - ReturnValue 175 - FunctionEnd -22(PixelShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 - 19(inF0): 7(ptr) FunctionParameter - 20(inF1): 7(ptr) FunctionParameter - 21(inF2): 7(ptr) FunctionParameter - 23: Label - ReturnValue 175 - FunctionEnd -34(PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 - 29(inF0): 25(ptr) FunctionParameter - 30(inF1): 25(ptr) FunctionParameter - 31(inF2): 25(ptr) FunctionParameter - 32(inU0): 27(ptr) FunctionParameter - 33(inU1): 27(ptr) FunctionParameter - 35: Label - 337(r000): 132(ptr) Variable Function - 340(r001): 25(ptr) Variable Function - 343(r002): 25(ptr) Variable Function - 346(r003): 132(ptr) Variable Function - 349(r004): 25(ptr) Variable Function - 354(r005): 353(ptr) Variable Function - 357(r006): 27(ptr) Variable Function - 360(r007): 25(ptr) Variable Function - 363(r009): 25(ptr) Variable Function - 366(r010): 25(ptr) Variable Function - 370(r011): 25(ptr) Variable Function - 373(r012): 25(ptr) Variable Function - 386(r013): 25(ptr) Variable Function - 389(r015): 25(ptr) Variable Function - 392(r016): 353(ptr) Variable Function - 396(r017): 25(ptr) Variable Function - 399(r018): 25(ptr) Variable Function - 402(r019): 25(ptr) Variable Function - 405(r020): 25(ptr) Variable Function - 408(r021): 25(ptr) Variable Function - 411(r022): 25(ptr) Variable Function - 414(r023): 25(ptr) Variable Function - 417(r026): 7(ptr) Variable Function - 421(r027): 7(ptr) Variable Function - 425(r028): 25(ptr) Variable Function - 428(r029): 25(ptr) Variable Function - 431(r030): 25(ptr) Variable Function - 436(r031): 27(ptr) Variable Function - 441(r032): 27(ptr) Variable Function - 443(r033): 25(ptr) Variable Function - 446(r035): 25(ptr) Variable Function - 450(r036): 25(ptr) Variable Function - 453(r037): 25(ptr) Variable Function - 459(r038): 25(ptr) Variable Function - 463(r039): 462(ptr) Variable Function - 466(r040): 462(ptr) Variable Function - 469(r041): 25(ptr) Variable Function - 473(r039a): 25(ptr) Variable Function - 478(r042): 7(ptr) Variable Function - 481(r043): 25(ptr) Variable Function - 484(r044): 25(ptr) Variable Function - 488(r045): 25(ptr) Variable Function - 491(r046): 25(ptr) Variable Function - 495(r047): 25(ptr) Variable Function - 499(r048): 25(ptr) Variable Function - 502(r049): 25(ptr) Variable Function - 506(r050): 25(ptr) Variable Function - 509(r051): 25(ptr) Variable Function - 513(r052): 25(ptr) Variable Function - 517(r053): 25(ptr) Variable Function - 522(r054): 27(ptr) Variable Function - 527(r055): 25(ptr) Variable Function - 530(r056): 25(ptr) Variable Function - 533(r057): 25(ptr) Variable Function - 538(r058): 25(ptr) Variable Function - 541(r059): 25(ptr) Variable Function - 548(r060): 25(ptr) Variable Function - 551(r061): 25(ptr) Variable Function - 556(r062): 25(ptr) Variable Function - 559(r063): 25(ptr) Variable Function - 563(r064): 25(ptr) Variable Function - 566(r065): 25(ptr) Variable Function - 569(r066): 25(ptr) Variable Function - 338: 24(fvec2) Load 29(inF0) - 339: 131(bool) All 338 - Store 337(r000) 339 - 341: 24(fvec2) Load 29(inF0) - 342: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 341 - Store 340(r001) 342 - 344: 24(fvec2) Load 29(inF0) - 345: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 344 - Store 343(r002) 345 - 347: 24(fvec2) Load 29(inF0) - 348: 131(bool) Any 347 - Store 346(r003) 348 - 350: 24(fvec2) Load 29(inF0) - 351: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 350 - Store 349(r004) 351 - 355: 24(fvec2) Load 29(inF0) - 356: 352(ivec2) Bitcast 355 - Store 354(r005) 356 - 358: 24(fvec2) Load 29(inF0) - 359: 26(ivec2) Bitcast 358 - Store 357(r006) 359 - 361: 26(ivec2) Load 32(inU0) - 362: 24(fvec2) Bitcast 361 - Store 360(r007) 362 - 364: 24(fvec2) Load 29(inF0) - 365: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 364 - Store 363(r009) 365 - 367: 24(fvec2) Load 29(inF0) - 368: 24(fvec2) Load 30(inF1) - 369: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 367 368 - Store 366(r010) 369 - 371: 24(fvec2) Load 29(inF0) - 372: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 371 - Store 370(r011) 372 - 374: 24(fvec2) Load 29(inF0) - 375: 24(fvec2) Load 30(inF1) - 376: 24(fvec2) Load 31(inF2) - 377: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 374 375 376 - Store 373(r012) 377 - 378: 24(fvec2) Load 29(inF0) - 381: 380(bvec2) FOrdLessThan 378 379 - 382: 131(bool) Any 381 - SelectionMerge 384 None - BranchConditional 382 383 384 - 383: Label + 184: Label + 186: 10(int) Load 157(r005) + 188: 137(bool) SLessThan 186 187 + SelectionMerge 190 None + BranchConditional 188 189 190 + 189: Label Kill - 384: Label - 387: 24(fvec2) Load 29(inF0) - 388: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 387 - Store 386(r013) 388 - 390: 24(fvec2) Load 29(inF0) - 391: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 390 - Store 389(r015) 391 - 395: 352(ivec2) BitCount 394 - Store 392(r016) 395 - 397: 24(fvec2) Load 29(inF0) - 398: 24(fvec2) DPdx 397 - Store 396(r017) 398 - 400: 24(fvec2) Load 29(inF0) - 401: 24(fvec2) DPdxCoarse 400 - Store 399(r018) 401 - 403: 24(fvec2) Load 29(inF0) - 404: 24(fvec2) DPdxFine 403 - Store 402(r019) 404 - 406: 24(fvec2) Load 29(inF0) - 407: 24(fvec2) DPdy 406 - Store 405(r020) 407 - 409: 24(fvec2) Load 29(inF0) - 410: 24(fvec2) DPdyCoarse 409 - Store 408(r021) 410 - 412: 24(fvec2) Load 29(inF0) - 413: 24(fvec2) DPdyFine 412 - Store 411(r022) 413 - 415: 24(fvec2) Load 29(inF0) - 416: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 415 - Store 414(r023) 416 - 418: 24(fvec2) Load 29(inF0) - 419: 24(fvec2) Load 30(inF1) - 420: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 418 419 - Store 417(r026) 420 - 422: 24(fvec2) Load 29(inF0) - 423: 24(fvec2) Load 30(inF1) - 424: 6(float) Dot 422 423 - Store 421(r027) 424 - 426: 24(fvec2) Load 29(inF0) - 427: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 426 - Store 425(r028) 427 - 429: 24(fvec2) Load 29(inF0) - 430: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 429 - Store 428(r029) 430 - 432: 24(fvec2) Load 29(inF0) - 433: 24(fvec2) Load 30(inF1) - 434: 24(fvec2) Load 31(inF2) - 435: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 432 433 434 - Store 431(r030) 435 - 440: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 439 - Store 436(r031) 440 - 442: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 439 - Store 441(r032) 442 - 444: 24(fvec2) Load 29(inF0) - 445: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 444 - Store 443(r033) 445 - 447: 24(fvec2) Load 29(inF0) - 448: 24(fvec2) Load 30(inF1) - 449: 24(fvec2) FMod 447 448 - Store 446(r035) 449 - 451: 24(fvec2) Load 29(inF0) - 452: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 451 - Store 450(r036) 452 - 454: 24(fvec2) Load 29(inF0) - 456:455(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 454 - 457: 352(ivec2) CompositeExtract 456 1 - Store 30(inF1) 457 - 458: 24(fvec2) CompositeExtract 456 0 - Store 453(r037) 458 - 460: 24(fvec2) Load 29(inF0) - 461: 24(fvec2) Fwidth 460 - Store 459(r038) 461 - 464: 24(fvec2) Load 29(inF0) - 465: 380(bvec2) IsInf 464 - Store 463(r039) 465 - 467: 24(fvec2) Load 29(inF0) - 468: 380(bvec2) IsNan 467 - Store 466(r040) 468 - 470: 24(fvec2) Load 29(inF0) - 471: 24(fvec2) Load 30(inF1) - 472: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 470 471 - Store 469(r041) 472 - 474: 24(fvec2) Load 29(inF0) - 475: 24(fvec2) Load 30(inF1) - 476: 24(fvec2) Load 31(inF2) - 477: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 474 475 476 - Store 473(r039a) 477 - 479: 24(fvec2) Load 29(inF0) - 480: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 479 - Store 478(r042) 480 - 482: 24(fvec2) Load 29(inF0) - 483: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 482 - Store 481(r043) 483 - 485: 24(fvec2) Load 29(inF0) - 486: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 485 - 487: 24(fvec2) VectorTimesScalar 486 262 - Store 484(r044) 487 - 489: 24(fvec2) Load 29(inF0) - 490: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 489 - Store 488(r045) 490 - 492: 24(fvec2) Load 29(inF0) - 493: 24(fvec2) Load 30(inF1) - 494: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 492 493 - Store 491(r046) 494 - 496: 24(fvec2) Load 29(inF0) - 497: 24(fvec2) Load 30(inF1) - 498: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 496 497 - Store 495(r047) 498 - 500: 24(fvec2) Load 29(inF0) - 501: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 500 - Store 499(r048) 501 - 503: 24(fvec2) Load 29(inF0) - 504: 24(fvec2) Load 30(inF1) - 505: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 503 504 - Store 502(r049) 505 - 507: 24(fvec2) Load 29(inF0) - 508: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 507 - Store 506(r050) 508 - 510: 24(fvec2) Load 29(inF0) - 511: 24(fvec2) CompositeConstruct 283 283 - 512: 24(fvec2) FDiv 511 510 - Store 509(r051) 512 - 514: 24(fvec2) Load 29(inF0) - 515: 24(fvec2) Load 30(inF1) - 516: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 514 515 - Store 513(r052) 516 - 518: 24(fvec2) Load 29(inF0) - 519: 24(fvec2) Load 30(inF1) - 521: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 518 519 520 - Store 517(r053) 521 - 526: 26(ivec2) BitReverse 525 - Store 522(r054) 526 - 528: 24(fvec2) Load 29(inF0) - 529: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 528 - Store 527(r055) 529 - 531: 24(fvec2) Load 29(inF0) - 532: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 531 - Store 530(r056) 532 - 534: 24(fvec2) Load 29(inF0) - 535: 24(fvec2) CompositeConstruct 175 175 - 536: 24(fvec2) CompositeConstruct 283 283 - 537: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 534 535 536 - Store 533(r057) 537 - 539: 24(fvec2) Load 29(inF0) - 540: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 539 - Store 538(r058) 540 - 542: 24(fvec2) Load 29(inF0) - 543: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 542 - Store 541(r059) 543 - 544: 24(fvec2) Load 29(inF0) - 545: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 544 - Store 30(inF1) 545 - 546: 24(fvec2) Load 29(inF0) - 547: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 546 - Store 31(inF2) 547 - 549: 24(fvec2) Load 29(inF0) - 550: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 549 - Store 548(r060) 550 - 552: 24(fvec2) Load 29(inF0) - 553: 24(fvec2) Load 30(inF1) - 554: 24(fvec2) Load 31(inF2) - 555: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 552 553 554 - Store 551(r061) 555 - 557: 24(fvec2) Load 29(inF0) - 558: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 557 - Store 556(r062) 558 - 560: 24(fvec2) Load 29(inF0) - 561: 24(fvec2) Load 30(inF1) - 562: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 560 561 - Store 559(r063) 562 - 564: 24(fvec2) Load 29(inF0) - 565: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 564 - Store 563(r064) 565 - 567: 24(fvec2) Load 29(inF0) - 568: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 567 - Store 566(r065) 568 - 570: 24(fvec2) Load 29(inF0) - 571: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 570 - Store 569(r066) 571 - ReturnValue 572 + 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 -46(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 - 41(inF0): 37(ptr) FunctionParameter - 42(inF1): 37(ptr) FunctionParameter - 43(inF2): 37(ptr) FunctionParameter - 44(inU0): 39(ptr) FunctionParameter - 45(inU1): 39(ptr) FunctionParameter - 47: Label - 575(r000): 132(ptr) Variable Function - 578(r001): 37(ptr) Variable Function - 581(r002): 37(ptr) Variable Function - 584(r003): 132(ptr) Variable Function - 587(r004): 37(ptr) Variable Function - 592(r005): 591(ptr) Variable Function - 595(r006): 39(ptr) Variable Function - 598(r007): 37(ptr) Variable Function - 601(r009): 37(ptr) Variable Function - 604(r010): 37(ptr) Variable Function - 608(r011): 37(ptr) Variable Function - 611(r012): 37(ptr) Variable Function - 624(r013): 37(ptr) Variable Function - 627(r014): 37(ptr) Variable Function - 630(r015): 39(ptr) Variable Function - 635(r016): 37(ptr) Variable Function - 639(r017): 37(ptr) Variable Function - 642(r018): 37(ptr) Variable Function - 645(r019): 37(ptr) Variable Function - 648(r020): 37(ptr) Variable Function - 651(r021): 37(ptr) Variable Function - 654(r022): 37(ptr) Variable Function - 657(r023): 37(ptr) Variable Function - 660(r024): 7(ptr) Variable Function - 664(r025): 7(ptr) Variable Function - 668(r029): 37(ptr) Variable Function - 671(r030): 37(ptr) Variable Function - 674(r031): 37(ptr) Variable Function - 679(r032): 39(ptr) Variable Function - 683(r033): 39(ptr) Variable Function - 685(r034): 37(ptr) Variable Function - 688(r036): 37(ptr) Variable Function - 692(r037): 37(ptr) Variable Function - 695(r038): 37(ptr) Variable Function - 701(r039): 37(ptr) Variable Function - 705(r040): 704(ptr) Variable Function - 708(r041): 704(ptr) Variable Function - 711(r042): 37(ptr) Variable Function - 715(r039a): 37(ptr) Variable Function - 720(r039b): 37(ptr) Variable Function - 726(r043): 7(ptr) Variable Function - 729(r044): 37(ptr) Variable Function - 732(r045): 37(ptr) Variable Function - 736(r046): 37(ptr) Variable Function - 739(r047): 37(ptr) Variable Function - 743(r048): 37(ptr) Variable Function - 747(r049): 37(ptr) Variable Function - 750(r050): 37(ptr) Variable Function - 754(r051): 37(ptr) Variable Function - 757(r052): 37(ptr) Variable Function - 761(r053): 37(ptr) Variable Function - 765(r054): 37(ptr) Variable Function - 769(r055): 39(ptr) Variable Function - 772(r056): 37(ptr) Variable Function - 775(r057): 37(ptr) Variable Function - 778(r058): 37(ptr) Variable Function - 783(r059): 37(ptr) Variable Function - 786(r060): 37(ptr) Variable Function - 793(r061): 37(ptr) Variable Function - 796(r062): 37(ptr) Variable Function - 801(r063): 37(ptr) Variable Function - 804(r064): 37(ptr) Variable Function - 808(r065): 37(ptr) Variable Function - 811(r066): 37(ptr) Variable Function - 814(r067): 37(ptr) Variable Function - 576: 36(fvec3) Load 41(inF0) - 577: 131(bool) All 576 - Store 575(r000) 577 - 579: 36(fvec3) Load 41(inF0) - 580: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 579 - Store 578(r001) 580 - 582: 36(fvec3) Load 41(inF0) - 583: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 582 - Store 581(r002) 583 - 585: 36(fvec3) Load 41(inF0) - 586: 131(bool) Any 585 - Store 584(r003) 586 - 588: 36(fvec3) Load 41(inF0) - 589: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 588 - Store 587(r004) 589 - 593: 36(fvec3) Load 41(inF0) - 594: 590(ivec3) Bitcast 593 - Store 592(r005) 594 - 596: 36(fvec3) Load 41(inF0) - 597: 38(ivec3) Bitcast 596 - Store 595(r006) 597 - 599: 38(ivec3) Load 44(inU0) - 600: 36(fvec3) Bitcast 599 - Store 598(r007) 600 - 602: 36(fvec3) Load 41(inF0) - 603: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 602 - Store 601(r009) 603 - 605: 36(fvec3) Load 41(inF0) - 606: 36(fvec3) Load 42(inF1) - 607: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 605 606 - Store 604(r010) 607 - 609: 36(fvec3) Load 41(inF0) - 610: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 609 - Store 608(r011) 610 - 612: 36(fvec3) Load 41(inF0) - 613: 36(fvec3) Load 42(inF1) - 614: 36(fvec3) Load 43(inF2) - 615: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 612 613 614 - Store 611(r012) 615 - 616: 36(fvec3) Load 41(inF0) - 619: 618(bvec3) FOrdLessThan 616 617 - 620: 131(bool) Any 619 - SelectionMerge 622 None - BranchConditional 620 621 622 - 621: Label +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 - 622: Label - 625: 36(fvec3) Load 41(inF0) - 626: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 625 - Store 624(r013) 626 - 628: 36(fvec3) Load 41(inF0) - 629: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 628 - Store 627(r014) 629 - 634: 38(ivec3) BitCount 633 - Store 630(r015) 634 - 636: 36(fvec3) Load 41(inF0) - 637: 36(fvec3) Load 42(inF1) - 638: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 636 637 - Store 635(r016) 638 - 640: 36(fvec3) Load 41(inF0) - 641: 36(fvec3) DPdx 640 - Store 639(r017) 641 - 643: 36(fvec3) Load 41(inF0) - 644: 36(fvec3) DPdxCoarse 643 - Store 642(r018) 644 - 646: 36(fvec3) Load 41(inF0) - 647: 36(fvec3) DPdxFine 646 - Store 645(r019) 647 - 649: 36(fvec3) Load 41(inF0) - 650: 36(fvec3) DPdy 649 - Store 648(r020) 650 - 652: 36(fvec3) Load 41(inF0) - 653: 36(fvec3) DPdyCoarse 652 - Store 651(r021) 653 - 655: 36(fvec3) Load 41(inF0) - 656: 36(fvec3) DPdyFine 655 - Store 654(r022) 656 - 658: 36(fvec3) Load 41(inF0) - 659: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 658 - Store 657(r023) 659 - 661: 36(fvec3) Load 41(inF0) - 662: 36(fvec3) Load 42(inF1) - 663: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 661 662 - Store 660(r024) 663 - 665: 36(fvec3) Load 41(inF0) - 666: 36(fvec3) Load 42(inF1) - 667: 6(float) Dot 665 666 - Store 664(r025) 667 - 669: 36(fvec3) Load 41(inF0) - 670: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 669 - Store 668(r029) 670 - 672: 36(fvec3) Load 41(inF0) - 673: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 672 - Store 671(r030) 673 - 675: 36(fvec3) Load 41(inF0) - 676: 36(fvec3) Load 42(inF1) - 677: 36(fvec3) Load 43(inF2) - 678: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 - Store 674(r031) 678 - 682: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 681 - Store 679(r032) 682 - 684: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 681 - Store 683(r033) 684 - 686: 36(fvec3) Load 41(inF0) - 687: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 686 - Store 685(r034) 687 - 689: 36(fvec3) Load 41(inF0) - 690: 36(fvec3) Load 42(inF1) - 691: 36(fvec3) FMod 689 690 - Store 688(r036) 691 - 693: 36(fvec3) Load 41(inF0) - 694: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 693 - Store 692(r037) 694 - 696: 36(fvec3) Load 41(inF0) - 698:697(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 696 - 699: 590(ivec3) CompositeExtract 698 1 - Store 42(inF1) 699 - 700: 36(fvec3) CompositeExtract 698 0 - Store 695(r038) 700 - 702: 36(fvec3) Load 41(inF0) - 703: 36(fvec3) Fwidth 702 - Store 701(r039) 703 - 706: 36(fvec3) Load 41(inF0) - 707: 618(bvec3) IsInf 706 - Store 705(r040) 707 - 709: 36(fvec3) Load 41(inF0) - 710: 618(bvec3) IsNan 709 - Store 708(r041) 710 - 712: 36(fvec3) Load 41(inF0) - 713: 36(fvec3) Load 42(inF1) - 714: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 712 713 - Store 711(r042) 714 - 716: 36(fvec3) Load 41(inF0) - 717: 36(fvec3) Load 42(inF1) - 718: 36(fvec3) Load 43(inF2) - 719: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 716 717 718 - Store 715(r039a) 719 - 721: 36(fvec3) Load 41(inF0) - 722: 36(fvec3) Load 42(inF1) - 724: 36(fvec3) CompositeConstruct 723 723 723 - 725: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 721 722 724 - Store 720(r039b) 725 - 727: 36(fvec3) Load 41(inF0) - 728: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 727 - Store 726(r043) 728 - 730: 36(fvec3) Load 41(inF0) - 731: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 730 - Store 729(r044) 731 - 733: 36(fvec3) Load 41(inF0) - 734: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 733 - 735: 36(fvec3) VectorTimesScalar 734 262 - Store 732(r045) 735 - 737: 36(fvec3) Load 41(inF0) - 738: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 737 - Store 736(r046) 738 - 740: 36(fvec3) Load 41(inF0) - 741: 36(fvec3) Load 42(inF1) - 742: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 740 741 - Store 739(r047) 742 - 744: 36(fvec3) Load 41(inF0) - 745: 36(fvec3) Load 42(inF1) - 746: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 744 745 - Store 743(r048) 746 - 748: 36(fvec3) Load 41(inF0) - 749: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 748 - Store 747(r049) 749 - 751: 36(fvec3) Load 41(inF0) - 752: 36(fvec3) Load 42(inF1) - 753: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 751 752 - Store 750(r050) 753 - 755: 36(fvec3) Load 41(inF0) - 756: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 755 - Store 754(r051) 756 - 758: 36(fvec3) Load 41(inF0) - 759: 36(fvec3) CompositeConstruct 283 283 283 - 760: 36(fvec3) FDiv 759 758 - Store 757(r052) 760 - 762: 36(fvec3) Load 41(inF0) - 763: 36(fvec3) Load 42(inF1) - 764: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 762 763 - Store 761(r053) 764 - 766: 36(fvec3) Load 41(inF0) - 767: 36(fvec3) Load 42(inF1) - 768: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 766 767 520 - Store 765(r054) 768 - 771: 38(ivec3) BitReverse 770 - Store 769(r055) 771 - 773: 36(fvec3) Load 41(inF0) - 774: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 773 - Store 772(r056) 774 - 776: 36(fvec3) Load 41(inF0) - 777: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 776 - Store 775(r057) 777 - 779: 36(fvec3) Load 41(inF0) - 780: 36(fvec3) CompositeConstruct 175 175 175 - 781: 36(fvec3) CompositeConstruct 283 283 283 - 782: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 779 780 781 - Store 778(r058) 782 - 784: 36(fvec3) Load 41(inF0) - 785: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 784 - Store 783(r059) 785 - 787: 36(fvec3) Load 41(inF0) - 788: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 787 - Store 786(r060) 788 - 789: 36(fvec3) Load 41(inF0) - 790: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 789 - Store 42(inF1) 790 - 791: 36(fvec3) Load 41(inF0) - 792: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 791 - Store 43(inF2) 792 - 794: 36(fvec3) Load 41(inF0) - 795: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 794 - Store 793(r061) 795 - 797: 36(fvec3) Load 41(inF0) - 798: 36(fvec3) Load 42(inF1) - 799: 36(fvec3) Load 43(inF2) - 800: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 797 798 799 - Store 796(r062) 800 - 802: 36(fvec3) Load 41(inF0) - 803: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 802 - Store 801(r063) 803 - 805: 36(fvec3) Load 41(inF0) - 806: 36(fvec3) Load 42(inF1) - 807: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 805 806 - Store 804(r064) 807 - 809: 36(fvec3) Load 41(inF0) - 810: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 809 - Store 808(r065) 810 - 812: 36(fvec3) Load 41(inF0) - 813: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 812 - Store 811(r066) 813 - 815: 36(fvec3) Load 41(inF0) - 816: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 815 - Store 814(r067) 816 - ReturnValue 818 - FunctionEnd -58(PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 - 53(inF0): 49(ptr) FunctionParameter - 54(inF1): 49(ptr) FunctionParameter - 55(inF2): 49(ptr) FunctionParameter - 56(inU0): 51(ptr) FunctionParameter - 57(inU1): 51(ptr) FunctionParameter - 59: Label - 821(r000): 132(ptr) Variable Function - 824(r001): 49(ptr) Variable Function - 827(r002): 49(ptr) Variable Function - 830(r003): 132(ptr) Variable Function - 833(r004): 49(ptr) Variable Function - 838(r005): 837(ptr) Variable Function - 841(r006): 51(ptr) Variable Function - 844(r007): 49(ptr) Variable Function - 847(r009): 49(ptr) Variable Function - 850(r010): 49(ptr) Variable Function - 854(r011): 49(ptr) Variable Function - 857(r012): 49(ptr) Variable Function - 870(r013): 49(ptr) Variable Function - 873(r014): 49(ptr) Variable Function - 876(r015): 51(ptr) Variable Function - 879(r016): 49(ptr) Variable Function - 882(r017): 49(ptr) Variable Function - 885(r018): 49(ptr) Variable Function - 888(r019): 49(ptr) Variable Function - 891(r020): 49(ptr) Variable Function - 894(r021): 49(ptr) Variable Function - 897(r022): 49(ptr) Variable Function - 900(r023): 7(ptr) Variable Function - 904(r024): 7(ptr) Variable Function - 908(r025): 49(ptr) Variable Function - 919(r029): 49(ptr) Variable Function - 922(r030): 49(ptr) Variable Function - 925(r031): 49(ptr) Variable Function - 930(r032): 51(ptr) Variable Function - 935(r033): 51(ptr) Variable Function - 937(r034): 49(ptr) Variable Function - 940(r036): 49(ptr) Variable Function - 944(r037): 49(ptr) Variable Function - 947(r038): 49(ptr) Variable Function - 953(r039): 49(ptr) Variable Function - 957(r040): 956(ptr) Variable Function - 960(r041): 956(ptr) Variable Function - 963(r042): 49(ptr) Variable Function - 967(r039a): 49(ptr) Variable Function - 972(r043): 7(ptr) Variable Function - 975(r044): 49(ptr) Variable Function - 978(r045): 49(ptr) Variable Function - 982(r046): 49(ptr) Variable Function - 985(r047): 49(ptr) Variable Function - 989(r048): 49(ptr) Variable Function - 993(r049): 49(ptr) Variable Function - 996(r050): 49(ptr) Variable Function - 1000(r051): 49(ptr) Variable Function - 1003(r052): 49(ptr) Variable Function - 1007(r053): 49(ptr) Variable Function - 1011(r054): 49(ptr) Variable Function - 1015(r055): 51(ptr) Variable Function - 1018(r056): 49(ptr) Variable Function - 1021(r057): 49(ptr) Variable Function - 1024(r058): 49(ptr) Variable Function - 1029(r059): 49(ptr) Variable Function - 1032(r060): 49(ptr) Variable Function - 1039(r061): 49(ptr) Variable Function - 1042(r062): 49(ptr) Variable Function - 1047(r063): 49(ptr) Variable Function - 1050(r064): 49(ptr) Variable Function - 1054(r065): 49(ptr) Variable Function - 1057(r066): 49(ptr) Variable Function - 1060(r067): 49(ptr) Variable Function - 822: 48(fvec4) Load 53(inF0) - 823: 131(bool) All 822 - Store 821(r000) 823 - 825: 48(fvec4) Load 53(inF0) - 826: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 825 - Store 824(r001) 826 - 828: 48(fvec4) Load 53(inF0) - 829: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 828 - Store 827(r002) 829 - 831: 48(fvec4) Load 53(inF0) - 832: 131(bool) Any 831 - Store 830(r003) 832 - 834: 48(fvec4) Load 53(inF0) - 835: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 834 - Store 833(r004) 835 - 839: 48(fvec4) Load 53(inF0) - 840: 836(ivec4) Bitcast 839 - Store 838(r005) 840 - 842: 48(fvec4) Load 53(inF0) - 843: 50(ivec4) Bitcast 842 - Store 841(r006) 843 - 845: 50(ivec4) Load 56(inU0) - 846: 48(fvec4) Bitcast 845 - Store 844(r007) 846 - 848: 48(fvec4) Load 53(inF0) - 849: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 848 - Store 847(r009) 849 - 851: 48(fvec4) Load 53(inF0) - 852: 48(fvec4) Load 54(inF1) - 853: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 851 852 - Store 850(r010) 853 - 855: 48(fvec4) Load 53(inF0) - 856: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 855 - Store 854(r011) 856 - 858: 48(fvec4) Load 53(inF0) - 859: 48(fvec4) Load 54(inF1) - 860: 48(fvec4) Load 55(inF2) - 861: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 858 859 860 - Store 857(r012) 861 - 862: 48(fvec4) Load 53(inF0) - 865: 864(bvec4) FOrdLessThan 862 863 - 866: 131(bool) Any 865 - SelectionMerge 868 None - BranchConditional 866 867 868 - 867: Label + 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 - 868: Label - 871: 48(fvec4) Load 53(inF0) - 872: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 871 - Store 870(r013) 872 - 874: 48(fvec4) Load 53(inF0) - 875: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 874 - Store 873(r014) 875 - 878: 50(ivec4) BitCount 877 - Store 876(r015) 878 - 880: 48(fvec4) Load 53(inF0) - 881: 48(fvec4) DPdx 880 - Store 879(r016) 881 - 883: 48(fvec4) Load 53(inF0) - 884: 48(fvec4) DPdxCoarse 883 - Store 882(r017) 884 - 886: 48(fvec4) Load 53(inF0) - 887: 48(fvec4) DPdxFine 886 - Store 885(r018) 887 - 889: 48(fvec4) Load 53(inF0) - 890: 48(fvec4) DPdy 889 - Store 888(r019) 890 - 892: 48(fvec4) Load 53(inF0) - 893: 48(fvec4) DPdyCoarse 892 - Store 891(r020) 893 - 895: 48(fvec4) Load 53(inF0) - 896: 48(fvec4) DPdyFine 895 - Store 894(r021) 896 - 898: 48(fvec4) Load 53(inF0) - 899: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 898 - Store 897(r022) 899 - 901: 48(fvec4) Load 53(inF0) - 902: 48(fvec4) Load 54(inF1) - 903: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 901 902 - Store 900(r023) 903 - 905: 48(fvec4) Load 53(inF0) - 906: 48(fvec4) Load 54(inF1) - 907: 6(float) Dot 905 906 - Store 904(r024) 907 - 909: 7(ptr) AccessChain 53(inF0) 523 - 910: 6(float) Load 909 - 911: 7(ptr) AccessChain 54(inF1) 523 - 912: 6(float) Load 911 - 913: 6(float) FMul 910 912 - 914: 7(ptr) AccessChain 53(inF0) 524 - 915: 6(float) Load 914 - 916: 7(ptr) AccessChain 54(inF1) 631 - 917: 6(float) Load 916 - 918: 48(fvec4) CompositeConstruct 283 913 915 917 - Store 908(r025) 918 - 920: 48(fvec4) Load 53(inF0) - 921: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 920 - Store 919(r029) 921 - 923: 48(fvec4) Load 53(inF0) - 924: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 923 - Store 922(r030) 924 - 926: 48(fvec4) Load 53(inF0) - 927: 48(fvec4) Load 54(inF1) - 928: 48(fvec4) Load 55(inF2) - 929: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 926 927 928 - Store 925(r031) 929 - 934: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 933 - Store 930(r032) 934 - 936: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 933 - Store 935(r033) 936 - 938: 48(fvec4) Load 53(inF0) - 939: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 938 - Store 937(r034) 939 - 941: 48(fvec4) Load 53(inF0) - 942: 48(fvec4) Load 54(inF1) - 943: 48(fvec4) FMod 941 942 - Store 940(r036) 943 - 945: 48(fvec4) Load 53(inF0) - 946: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 945 - Store 944(r037) 946 - 948: 48(fvec4) Load 53(inF0) - 950:949(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 948 - 951: 836(ivec4) CompositeExtract 950 1 - Store 54(inF1) 951 - 952: 48(fvec4) CompositeExtract 950 0 - Store 947(r038) 952 - 954: 48(fvec4) Load 53(inF0) - 955: 48(fvec4) Fwidth 954 - Store 953(r039) 955 - 958: 48(fvec4) Load 53(inF0) - 959: 864(bvec4) IsInf 958 - Store 957(r040) 959 - 961: 48(fvec4) Load 53(inF0) - 962: 864(bvec4) IsNan 961 - Store 960(r041) 962 - 964: 48(fvec4) Load 53(inF0) - 965: 48(fvec4) Load 54(inF1) - 966: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 964 965 - Store 963(r042) 966 - 968: 48(fvec4) Load 53(inF0) - 969: 48(fvec4) Load 54(inF1) - 970: 48(fvec4) Load 55(inF2) - 971: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 968 969 970 - Store 967(r039a) 971 - 973: 48(fvec4) Load 53(inF0) - 974: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 973 - Store 972(r043) 974 - 976: 48(fvec4) Load 53(inF0) - 977: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 976 - Store 975(r044) 977 - 979: 48(fvec4) Load 53(inF0) - 980: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979 - 981: 48(fvec4) VectorTimesScalar 980 262 - Store 978(r045) 981 - 983: 48(fvec4) Load 53(inF0) - 984: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 983 - Store 982(r046) 984 - 986: 48(fvec4) Load 53(inF0) - 987: 48(fvec4) Load 54(inF1) - 988: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 986 987 - Store 985(r047) 988 - 990: 48(fvec4) Load 53(inF0) - 991: 48(fvec4) Load 54(inF1) - 992: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 990 991 - Store 989(r048) 992 - 994: 48(fvec4) Load 53(inF0) - 995: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 994 - Store 993(r049) 995 - 997: 48(fvec4) Load 53(inF0) - 998: 48(fvec4) Load 54(inF1) - 999: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 997 998 - Store 996(r050) 999 - 1001: 48(fvec4) Load 53(inF0) - 1002: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1001 - Store 1000(r051) 1002 - 1004: 48(fvec4) Load 53(inF0) - 1005: 48(fvec4) CompositeConstruct 283 283 283 283 - 1006: 48(fvec4) FDiv 1005 1004 - Store 1003(r052) 1006 - 1008: 48(fvec4) Load 53(inF0) - 1009: 48(fvec4) Load 54(inF1) - 1010: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1008 1009 - Store 1007(r053) 1010 - 1012: 48(fvec4) Load 53(inF0) - 1013: 48(fvec4) Load 54(inF1) - 1014: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1012 1013 520 - Store 1011(r054) 1014 - 1017: 50(ivec4) BitReverse 1016 - Store 1015(r055) 1017 - 1019: 48(fvec4) Load 53(inF0) - 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1019 - Store 1018(r056) 1020 - 1022: 48(fvec4) Load 53(inF0) - 1023: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1022 - Store 1021(r057) 1023 - 1025: 48(fvec4) Load 53(inF0) - 1026: 48(fvec4) CompositeConstruct 175 175 175 175 - 1027: 48(fvec4) CompositeConstruct 283 283 283 283 - 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1025 1026 1027 - Store 1024(r058) 1028 - 1030: 48(fvec4) Load 53(inF0) - 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1030 - Store 1029(r059) 1031 - 1033: 48(fvec4) Load 53(inF0) - 1034: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1033 - Store 1032(r060) 1034 - 1035: 48(fvec4) Load 53(inF0) - 1036: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1035 - Store 54(inF1) 1036 - 1037: 48(fvec4) Load 53(inF0) - 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1037 - Store 55(inF2) 1038 - 1040: 48(fvec4) Load 53(inF0) - 1041: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1040 - Store 1039(r061) 1041 - 1043: 48(fvec4) Load 53(inF0) - 1044: 48(fvec4) Load 54(inF1) - 1045: 48(fvec4) Load 55(inF2) - 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 - Store 1042(r062) 1046 - 1048: 48(fvec4) Load 53(inF0) - 1049: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1048 - Store 1047(r063) 1049 - 1051: 48(fvec4) Load 53(inF0) - 1052: 48(fvec4) Load 54(inF1) - 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1051 1052 - Store 1050(r064) 1053 - 1055: 48(fvec4) Load 53(inF0) - 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1055 - Store 1054(r065) 1056 - 1058: 48(fvec4) Load 53(inF0) - 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1058 - Store 1057(r066) 1059 - 1061: 48(fvec4) Load 53(inF0) - 1062: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1061 - Store 1060(r067) 1062 - ReturnValue 1064 + 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 -66(PixelShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 - 63(inF0): 61(ptr) FunctionParameter - 64(inF1): 61(ptr) FunctionParameter - 65(inF2): 61(ptr) FunctionParameter - 67: Label - 1067(r000): 132(ptr) Variable Function - 1070(r001): 61(ptr) Variable Function - 1075(r003): 132(ptr) Variable Function - 1078(r004): 61(ptr) Variable Function - 1081(r005): 61(ptr) Variable Function - 1084(r006): 61(ptr) Variable Function - 1088(r007): 61(ptr) Variable Function - 1099(r008): 61(ptr) Variable Function - 1104(r009): 61(ptr) Variable Function - 1107(r010): 61(ptr) Variable Function - 1110(r011): 61(ptr) Variable Function - 1113(r012): 61(ptr) Variable Function - 1116(r013): 61(ptr) Variable Function - 1119(r014): 61(ptr) Variable Function - 1122(r015): 61(ptr) Variable Function - 1125(r016): 61(ptr) Variable Function - 1128(r017): 61(ptr) Variable Function - 1131(r018): 7(ptr) Variable Function - 1134(r019): 61(ptr) Variable Function - 1137(R020): 61(ptr) Variable Function - 1140(r021): 61(ptr) Variable Function - 1143(r022): 61(ptr) Variable Function - 1153(r023): 61(ptr) Variable Function - 1156(r024): 61(ptr) Variable Function - 1162(r025): 61(ptr) Variable Function - 1165(r026): 61(ptr) Variable Function - 1169(r026a): 61(ptr) Variable Function - 1174(r027): 61(ptr) Variable Function - 1177(r028): 61(ptr) Variable Function - 1181(r029): 61(ptr) Variable Function - 1184(r030): 61(ptr) Variable Function - 1188(r031): 61(ptr) Variable Function - 1192(r032): 61(ptr) Variable Function - 1196(r033): 61(ptr) Variable Function - 1199(r034): 61(ptr) Variable Function - 1202(r035): 61(ptr) Variable Function - 1205(r036): 61(ptr) Variable Function - 1210(r037): 61(ptr) Variable Function - 1213(r038): 61(ptr) Variable Function - 1220(r039): 61(ptr) Variable Function - 1223(r049): 61(ptr) Variable Function - 1228(r041): 61(ptr) Variable Function - 1231(r042): 61(ptr) Variable Function - 1235(r043): 61(ptr) Variable Function - 1238(r044): 61(ptr) Variable Function - 1243(r046): 61(ptr) Variable Function - 1068: 60 Load 63(inF0) - 1069: 131(bool) All 1068 - Store 1067(r000) 1069 - 1071: 60 Load 63(inF0) - 1072: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1071 - Store 1070(r001) 1072 - 1073: 60 Load 63(inF0) - 1074: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1073 - 1076: 60 Load 63(inF0) - 1077: 131(bool) Any 1076 - Store 1075(r003) 1077 - 1079: 60 Load 63(inF0) - 1080: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1079 - Store 1078(r004) 1080 - 1082: 60 Load 63(inF0) - 1083: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1082 - Store 1081(r005) 1083 - 1085: 60 Load 63(inF0) - 1086: 60 Load 64(inF1) - 1087: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1085 1086 - Store 1084(r006) 1087 - 1089: 60 Load 63(inF0) - 1090: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1089 - Store 1088(r007) 1090 - 1091: 60 Load 63(inF0) - 1094: 1093 FOrdLessThan 1091 1092 - 1095: 131(bool) Any 1094 - SelectionMerge 1097 None - BranchConditional 1095 1096 1097 - 1096: Label +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 - 1097: Label - 1100: 60 Load 63(inF0) - 1101: 60 Load 64(inF1) - 1102: 60 Load 65(inF2) - 1103: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1100 1101 1102 - Store 1099(r008) 1103 - 1105: 60 Load 63(inF0) - 1106: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1105 - Store 1104(r009) 1106 - 1108: 60 Load 63(inF0) - 1109: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1108 - Store 1107(r010) 1109 - 1111: 60 Load 63(inF0) - 1112: 60 DPdx 1111 - Store 1110(r011) 1112 - 1114: 60 Load 63(inF0) - 1115: 60 DPdxCoarse 1114 - Store 1113(r012) 1115 - 1117: 60 Load 63(inF0) - 1118: 60 DPdxFine 1117 - Store 1116(r013) 1118 - 1120: 60 Load 63(inF0) - 1121: 60 DPdy 1120 - Store 1119(r014) 1121 - 1123: 60 Load 63(inF0) - 1124: 60 DPdyCoarse 1123 - Store 1122(r015) 1124 - 1126: 60 Load 63(inF0) - 1127: 60 DPdyFine 1126 - Store 1125(r016) 1127 - 1129: 60 Load 63(inF0) - 1130: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1129 - Store 1128(r017) 1130 - 1132: 60 Load 63(inF0) - 1133: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1132 - Store 1131(r018) 1133 - 1135: 60 Load 63(inF0) - 1136: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1135 - Store 1134(r019) 1136 - 1138: 60 Load 63(inF0) - 1139: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1138 - Store 1137(R020) 1139 - 1141: 60 Load 63(inF0) - 1142: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1141 - Store 1140(r021) 1142 - 1144: 60 Load 63(inF0) - 1145: 60 Load 64(inF1) - 1146: 24(fvec2) CompositeExtract 1144 0 - 1147: 24(fvec2) CompositeExtract 1145 0 - 1148: 24(fvec2) FMod 1146 1147 - 1149: 24(fvec2) CompositeExtract 1144 1 - 1150: 24(fvec2) CompositeExtract 1145 1 - 1151: 24(fvec2) FMod 1149 1150 - 1152: 60 CompositeConstruct 1148 1151 - Store 1143(r022) 1152 - 1154: 60 Load 63(inF0) - 1155: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1154 - Store 1153(r023) 1155 - 1157: 60 Load 63(inF0) - 1159:1158(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1157 - 1160: 352(ivec2) CompositeExtract 1159 1 - Store 64(inF1) 1160 - 1161: 60 CompositeExtract 1159 0 - Store 1156(r024) 1161 - 1163: 60 Load 63(inF0) - 1164: 60 Fwidth 1163 - Store 1162(r025) 1164 - 1166: 60 Load 63(inF0) - 1167: 60 Load 64(inF1) - 1168: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1166 1167 - Store 1165(r026) 1168 - 1170: 60 Load 63(inF0) - 1171: 60 Load 64(inF1) - 1172: 60 Load 65(inF2) - 1173: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1170 1171 1172 - Store 1169(r026a) 1173 - 1175: 60 Load 63(inF0) - 1176: 60 ExtInst 1(GLSL.std.450) 28(Log) 1175 - Store 1174(r027) 1176 - 1178: 60 Load 63(inF0) - 1179: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1178 - 1180: 60 MatrixTimesScalar 1179 262 - Store 1177(r028) 1180 - 1182: 60 Load 63(inF0) - 1183: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1182 - Store 1181(r029) 1183 - 1185: 60 Load 63(inF0) - 1186: 60 Load 64(inF1) - 1187: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1185 1186 - Store 1184(r030) 1187 - 1189: 60 Load 63(inF0) - 1190: 60 Load 64(inF1) - 1191: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1189 1190 - Store 1188(r031) 1191 - 1193: 60 Load 63(inF0) - 1194: 60 Load 64(inF1) - 1195: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1193 1194 - Store 1192(r032) 1195 - 1197: 60 Load 63(inF0) - 1198: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1197 - Store 1196(r033) 1198 - 1200: 60 Load 63(inF0) - 1201: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1200 - Store 1199(r034) 1201 - 1203: 60 Load 63(inF0) - 1204: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1203 - Store 1202(r035) 1204 - 1206: 60 Load 63(inF0) - 1207: 24(fvec2) CompositeConstruct 175 175 - 1208: 24(fvec2) CompositeConstruct 283 283 - 1209: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1206 1207 1208 - Store 1205(r036) 1209 - 1211: 60 Load 63(inF0) - 1212: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1211 - Store 1210(r037) 1212 - 1214: 60 Load 63(inF0) - 1215: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1214 - Store 1213(r038) 1215 - 1216: 60 Load 63(inF0) - 1217: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1216 - Store 64(inF1) 1217 - 1218: 60 Load 63(inF0) - 1219: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1218 - Store 65(inF2) 1219 - 1221: 60 Load 63(inF0) - 1222: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1221 - Store 1220(r039) 1222 - 1224: 60 Load 63(inF0) - 1225: 60 Load 64(inF1) - 1226: 60 Load 65(inF2) - 1227: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1224 1225 1226 - Store 1223(r049) 1227 - 1229: 60 Load 63(inF0) - 1230: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1229 - Store 1228(r041) 1230 - 1232: 60 Load 63(inF0) - 1233: 60 Load 64(inF1) - 1234: 60 ExtInst 1(GLSL.std.450) 48(Step) 1232 1233 - Store 1231(r042) 1234 - 1236: 60 Load 63(inF0) - 1237: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1236 - Store 1235(r043) 1237 - 1239: 60 Load 63(inF0) - 1240: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1239 - Store 1238(r044) 1240 - 1241: 60 Load 63(inF0) - 1242: 60 Transpose 1241 - 1244: 60 Load 63(inF0) - 1245: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1244 - Store 1243(r046) 1245 - ReturnValue 1247 - FunctionEnd -74(PixelShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 - 71(inF0): 69(ptr) FunctionParameter - 72(inF1): 69(ptr) FunctionParameter - 73(inF2): 69(ptr) FunctionParameter - 75: Label - 1250(r000): 132(ptr) Variable Function - 1253(r001): 69(ptr) Variable Function - 1258(r003): 132(ptr) Variable Function - 1261(r004): 69(ptr) Variable Function - 1264(r005): 69(ptr) Variable Function - 1267(r006): 69(ptr) Variable Function - 1271(r007): 69(ptr) Variable Function - 1282(r008): 69(ptr) Variable Function - 1287(r009): 69(ptr) Variable Function - 1290(r010): 69(ptr) Variable Function - 1293(r011): 69(ptr) Variable Function - 1296(r012): 69(ptr) Variable Function - 1299(r013): 69(ptr) Variable Function - 1302(r014): 69(ptr) Variable Function - 1305(r015): 69(ptr) Variable Function - 1308(r016): 69(ptr) Variable Function - 1311(r017): 69(ptr) Variable Function - 1314(r018): 7(ptr) Variable Function - 1317(r019): 69(ptr) Variable Function - 1320(R020): 69(ptr) Variable Function - 1323(r021): 69(ptr) Variable Function - 1326(r022): 69(ptr) Variable Function - 1339(r023): 69(ptr) Variable Function - 1342(r024): 69(ptr) Variable Function - 1348(r025): 69(ptr) Variable Function - 1351(r026): 69(ptr) Variable Function - 1355(r026a): 69(ptr) Variable Function - 1360(r027): 69(ptr) Variable Function - 1363(r028): 69(ptr) Variable Function - 1367(r029): 69(ptr) Variable Function - 1370(r030): 69(ptr) Variable Function - 1374(r031): 69(ptr) Variable Function - 1378(r032): 69(ptr) Variable Function - 1382(r033): 69(ptr) Variable Function - 1385(r034): 69(ptr) Variable Function - 1388(r035): 69(ptr) Variable Function - 1391(r036): 69(ptr) Variable Function - 1396(r037): 69(ptr) Variable Function - 1399(r038): 69(ptr) Variable Function - 1406(r039): 69(ptr) Variable Function - 1409(r049): 69(ptr) Variable Function - 1414(r041): 69(ptr) Variable Function - 1417(r042): 69(ptr) Variable Function - 1421(r043): 69(ptr) Variable Function - 1424(r044): 69(ptr) Variable Function - 1429(r046): 69(ptr) Variable Function - 1251: 68 Load 71(inF0) - 1252: 131(bool) All 1251 - Store 1250(r000) 1252 - 1254: 68 Load 71(inF0) - 1255: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1254 - Store 1253(r001) 1255 - 1256: 68 Load 71(inF0) - 1257: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1256 - 1259: 68 Load 71(inF0) - 1260: 131(bool) Any 1259 - Store 1258(r003) 1260 - 1262: 68 Load 71(inF0) - 1263: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1262 - Store 1261(r004) 1263 - 1265: 68 Load 71(inF0) - 1266: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1265 - Store 1264(r005) 1266 - 1268: 68 Load 71(inF0) - 1269: 68 Load 72(inF1) - 1270: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1268 1269 - Store 1267(r006) 1270 - 1272: 68 Load 71(inF0) - 1273: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1272 - Store 1271(r007) 1273 - 1274: 68 Load 71(inF0) - 1277: 1276 FOrdLessThan 1274 1275 - 1278: 131(bool) Any 1277 - SelectionMerge 1280 None - BranchConditional 1278 1279 1280 - 1279: Label + 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 - 1280: Label - 1283: 68 Load 71(inF0) - 1284: 68 Load 72(inF1) - 1285: 68 Load 73(inF2) - 1286: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1283 1284 1285 - Store 1282(r008) 1286 - 1288: 68 Load 71(inF0) - 1289: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1288 - Store 1287(r009) 1289 - 1291: 68 Load 71(inF0) - 1292: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1291 - Store 1290(r010) 1292 - 1294: 68 Load 71(inF0) - 1295: 68 DPdx 1294 - Store 1293(r011) 1295 - 1297: 68 Load 71(inF0) - 1298: 68 DPdxCoarse 1297 - Store 1296(r012) 1298 - 1300: 68 Load 71(inF0) - 1301: 68 DPdxFine 1300 - Store 1299(r013) 1301 - 1303: 68 Load 71(inF0) - 1304: 68 DPdy 1303 - Store 1302(r014) 1304 - 1306: 68 Load 71(inF0) - 1307: 68 DPdyCoarse 1306 - Store 1305(r015) 1307 - 1309: 68 Load 71(inF0) - 1310: 68 DPdyFine 1309 - Store 1308(r016) 1310 - 1312: 68 Load 71(inF0) - 1313: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1312 - Store 1311(r017) 1313 - 1315: 68 Load 71(inF0) - 1316: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1315 - Store 1314(r018) 1316 - 1318: 68 Load 71(inF0) - 1319: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1318 - Store 1317(r019) 1319 - 1321: 68 Load 71(inF0) - 1322: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1321 - Store 1320(R020) 1322 - 1324: 68 Load 71(inF0) - 1325: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1324 - Store 1323(r021) 1325 - 1327: 68 Load 71(inF0) - 1328: 68 Load 72(inF1) - 1329: 36(fvec3) CompositeExtract 1327 0 - 1330: 36(fvec3) CompositeExtract 1328 0 - 1331: 36(fvec3) FMod 1329 1330 - 1332: 36(fvec3) CompositeExtract 1327 1 - 1333: 36(fvec3) CompositeExtract 1328 1 - 1334: 36(fvec3) FMod 1332 1333 - 1335: 36(fvec3) CompositeExtract 1327 2 - 1336: 36(fvec3) CompositeExtract 1328 2 - 1337: 36(fvec3) FMod 1335 1336 - 1338: 68 CompositeConstruct 1331 1334 1337 - Store 1326(r022) 1338 - 1340: 68 Load 71(inF0) - 1341: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1340 - Store 1339(r023) 1341 - 1343: 68 Load 71(inF0) - 1345:1344(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1343 - 1346: 590(ivec3) CompositeExtract 1345 1 - Store 72(inF1) 1346 - 1347: 68 CompositeExtract 1345 0 - Store 1342(r024) 1347 - 1349: 68 Load 71(inF0) - 1350: 68 Fwidth 1349 - Store 1348(r025) 1350 - 1352: 68 Load 71(inF0) - 1353: 68 Load 72(inF1) - 1354: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1352 1353 - Store 1351(r026) 1354 - 1356: 68 Load 71(inF0) - 1357: 68 Load 72(inF1) - 1358: 68 Load 73(inF2) - 1359: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1356 1357 1358 - Store 1355(r026a) 1359 - 1361: 68 Load 71(inF0) - 1362: 68 ExtInst 1(GLSL.std.450) 28(Log) 1361 - Store 1360(r027) 1362 - 1364: 68 Load 71(inF0) - 1365: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1364 - 1366: 68 MatrixTimesScalar 1365 262 - Store 1363(r028) 1366 - 1368: 68 Load 71(inF0) - 1369: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1368 - Store 1367(r029) 1369 - 1371: 68 Load 71(inF0) - 1372: 68 Load 72(inF1) - 1373: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1371 1372 - Store 1370(r030) 1373 - 1375: 68 Load 71(inF0) - 1376: 68 Load 72(inF1) - 1377: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1375 1376 - Store 1374(r031) 1377 - 1379: 68 Load 71(inF0) - 1380: 68 Load 72(inF1) - 1381: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1379 1380 - Store 1378(r032) 1381 - 1383: 68 Load 71(inF0) - 1384: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1383 - Store 1382(r033) 1384 - 1386: 68 Load 71(inF0) - 1387: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1386 - Store 1385(r034) 1387 - 1389: 68 Load 71(inF0) - 1390: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1389 - Store 1388(r035) 1390 - 1392: 68 Load 71(inF0) - 1393: 36(fvec3) CompositeConstruct 175 175 175 - 1394: 36(fvec3) CompositeConstruct 283 283 283 - 1395: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1392 1393 1394 - Store 1391(r036) 1395 - 1397: 68 Load 71(inF0) - 1398: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1397 - Store 1396(r037) 1398 - 1400: 68 Load 71(inF0) - 1401: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1400 - Store 1399(r038) 1401 - 1402: 68 Load 71(inF0) - 1403: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1402 - Store 72(inF1) 1403 - 1404: 68 Load 71(inF0) - 1405: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1404 - Store 73(inF2) 1405 - 1407: 68 Load 71(inF0) - 1408: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1407 - Store 1406(r039) 1408 - 1410: 68 Load 71(inF0) - 1411: 68 Load 72(inF1) - 1412: 68 Load 73(inF2) - 1413: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1410 1411 1412 - Store 1409(r049) 1413 - 1415: 68 Load 71(inF0) - 1416: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1415 - Store 1414(r041) 1416 - 1418: 68 Load 71(inF0) - 1419: 68 Load 72(inF1) - 1420: 68 ExtInst 1(GLSL.std.450) 48(Step) 1418 1419 - Store 1417(r042) 1420 - 1422: 68 Load 71(inF0) - 1423: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1422 - Store 1421(r043) 1423 - 1425: 68 Load 71(inF0) - 1426: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1425 - Store 1424(r044) 1426 - 1427: 68 Load 71(inF0) - 1428: 68 Transpose 1427 - 1430: 68 Load 71(inF0) - 1431: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1430 - Store 1429(r046) 1431 - ReturnValue 1433 + 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 -82(PixelShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 - 79(inF0): 77(ptr) FunctionParameter - 80(inF1): 77(ptr) FunctionParameter - 81(inF2): 77(ptr) FunctionParameter - 83: Label - 1436(r000): 132(ptr) Variable Function - 1439(r001): 77(ptr) Variable Function - 1444(r003): 132(ptr) Variable Function - 1447(r004): 77(ptr) Variable Function - 1450(r005): 77(ptr) Variable Function - 1453(r006): 77(ptr) Variable Function - 1457(r007): 77(ptr) Variable Function - 1468(r008): 77(ptr) Variable Function - 1473(r009): 77(ptr) Variable Function - 1476(r010): 77(ptr) Variable Function - 1479(r011): 77(ptr) Variable Function - 1482(r012): 77(ptr) Variable Function - 1485(r013): 77(ptr) Variable Function - 1488(r014): 77(ptr) Variable Function - 1491(r015): 77(ptr) Variable Function - 1494(r016): 77(ptr) Variable Function - 1497(r017): 77(ptr) Variable Function - 1500(r018): 7(ptr) Variable Function - 1503(r019): 77(ptr) Variable Function - 1506(R020): 77(ptr) Variable Function - 1509(r021): 77(ptr) Variable Function - 1512(r022): 77(ptr) Variable Function - 1528(r023): 77(ptr) Variable Function - 1531(r024): 77(ptr) Variable Function - 1537(r025): 77(ptr) Variable Function - 1540(r026): 77(ptr) Variable Function - 1544(r026a): 77(ptr) Variable Function - 1549(r027): 77(ptr) Variable Function - 1552(r028): 77(ptr) Variable Function - 1556(r029): 77(ptr) Variable Function - 1559(r030): 77(ptr) Variable Function - 1563(r031): 77(ptr) Variable Function - 1567(r032): 77(ptr) Variable Function - 1571(r033): 77(ptr) Variable Function - 1574(r034): 77(ptr) Variable Function - 1577(r035): 77(ptr) Variable Function - 1580(r036): 77(ptr) Variable Function - 1585(r037): 77(ptr) Variable Function - 1588(r038): 77(ptr) Variable Function - 1595(r039): 77(ptr) Variable Function - 1598(r049): 77(ptr) Variable Function - 1603(r041): 77(ptr) Variable Function - 1606(r042): 77(ptr) Variable Function - 1610(r043): 77(ptr) Variable Function - 1613(r044): 77(ptr) Variable Function - 1618(r046): 77(ptr) Variable Function - 1437: 76 Load 79(inF0) - 1438: 131(bool) All 1437 - Store 1436(r000) 1438 - 1440: 76 Load 79(inF0) - 1441: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1440 - Store 1439(r001) 1441 - 1442: 76 Load 79(inF0) - 1443: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1442 - 1445: 76 Load 79(inF0) - 1446: 131(bool) Any 1445 - Store 1444(r003) 1446 - 1448: 76 Load 79(inF0) - 1449: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1448 - Store 1447(r004) 1449 - 1451: 76 Load 79(inF0) - 1452: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1451 - Store 1450(r005) 1452 - 1454: 76 Load 79(inF0) - 1455: 76 Load 80(inF1) - 1456: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1454 1455 - Store 1453(r006) 1456 - 1458: 76 Load 79(inF0) - 1459: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1458 - Store 1457(r007) 1459 - 1460: 76 Load 79(inF0) - 1463: 1462 FOrdLessThan 1460 1461 - 1464: 131(bool) Any 1463 - SelectionMerge 1466 None - BranchConditional 1464 1465 1466 - 1465: Label +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 - 1466: Label - 1469: 76 Load 79(inF0) - 1470: 76 Load 80(inF1) - 1471: 76 Load 81(inF2) - 1472: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1469 1470 1471 - Store 1468(r008) 1472 - 1474: 76 Load 79(inF0) - 1475: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1474 - Store 1473(r009) 1475 - 1477: 76 Load 79(inF0) - 1478: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1477 - Store 1476(r010) 1478 - 1480: 76 Load 79(inF0) - 1481: 76 DPdx 1480 - Store 1479(r011) 1481 - 1483: 76 Load 79(inF0) - 1484: 76 DPdxCoarse 1483 - Store 1482(r012) 1484 - 1486: 76 Load 79(inF0) - 1487: 76 DPdxFine 1486 - Store 1485(r013) 1487 - 1489: 76 Load 79(inF0) - 1490: 76 DPdy 1489 - Store 1488(r014) 1490 - 1492: 76 Load 79(inF0) - 1493: 76 DPdyCoarse 1492 - Store 1491(r015) 1493 - 1495: 76 Load 79(inF0) - 1496: 76 DPdyFine 1495 - Store 1494(r016) 1496 - 1498: 76 Load 79(inF0) - 1499: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1498 - Store 1497(r017) 1499 - 1501: 76 Load 79(inF0) - 1502: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1501 - Store 1500(r018) 1502 - 1504: 76 Load 79(inF0) - 1505: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1504 - Store 1503(r019) 1505 - 1507: 76 Load 79(inF0) - 1508: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1507 - Store 1506(R020) 1508 - 1510: 76 Load 79(inF0) - 1511: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1510 - Store 1509(r021) 1511 - 1513: 76 Load 79(inF0) - 1514: 76 Load 80(inF1) - 1515: 48(fvec4) CompositeExtract 1513 0 - 1516: 48(fvec4) CompositeExtract 1514 0 - 1517: 48(fvec4) FMod 1515 1516 - 1518: 48(fvec4) CompositeExtract 1513 1 - 1519: 48(fvec4) CompositeExtract 1514 1 - 1520: 48(fvec4) FMod 1518 1519 - 1521: 48(fvec4) CompositeExtract 1513 2 - 1522: 48(fvec4) CompositeExtract 1514 2 - 1523: 48(fvec4) FMod 1521 1522 - 1524: 48(fvec4) CompositeExtract 1513 3 - 1525: 48(fvec4) CompositeExtract 1514 3 - 1526: 48(fvec4) FMod 1524 1525 - 1527: 76 CompositeConstruct 1517 1520 1523 1526 - Store 1512(r022) 1527 - 1529: 76 Load 79(inF0) - 1530: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1529 - Store 1528(r023) 1530 - 1532: 76 Load 79(inF0) - 1534:1533(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1532 - 1535: 836(ivec4) CompositeExtract 1534 1 - Store 80(inF1) 1535 - 1536: 76 CompositeExtract 1534 0 - Store 1531(r024) 1536 - 1538: 76 Load 79(inF0) - 1539: 76 Fwidth 1538 - Store 1537(r025) 1539 - 1541: 76 Load 79(inF0) - 1542: 76 Load 80(inF1) - 1543: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1541 1542 - Store 1540(r026) 1543 - 1545: 76 Load 79(inF0) - 1546: 76 Load 80(inF1) - 1547: 76 Load 81(inF2) - 1548: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1545 1546 1547 - Store 1544(r026a) 1548 - 1550: 76 Load 79(inF0) - 1551: 76 ExtInst 1(GLSL.std.450) 28(Log) 1550 - Store 1549(r027) 1551 - 1553: 76 Load 79(inF0) - 1554: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1553 - 1555: 76 MatrixTimesScalar 1554 262 - Store 1552(r028) 1555 - 1557: 76 Load 79(inF0) - 1558: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1557 - Store 1556(r029) 1558 - 1560: 76 Load 79(inF0) - 1561: 76 Load 80(inF1) - 1562: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1560 1561 - Store 1559(r030) 1562 - 1564: 76 Load 79(inF0) - 1565: 76 Load 80(inF1) - 1566: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1564 1565 - Store 1563(r031) 1566 - 1568: 76 Load 79(inF0) - 1569: 76 Load 80(inF1) - 1570: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1568 1569 - Store 1567(r032) 1570 - 1572: 76 Load 79(inF0) - 1573: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1572 - Store 1571(r033) 1573 - 1575: 76 Load 79(inF0) - 1576: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1575 - Store 1574(r034) 1576 - 1578: 76 Load 79(inF0) - 1579: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1578 - Store 1577(r035) 1579 - 1581: 76 Load 79(inF0) - 1582: 48(fvec4) CompositeConstruct 175 175 175 175 - 1583: 48(fvec4) CompositeConstruct 283 283 283 283 - 1584: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1581 1582 1583 - Store 1580(r036) 1584 - 1586: 76 Load 79(inF0) - 1587: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1586 - Store 1585(r037) 1587 - 1589: 76 Load 79(inF0) - 1590: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1589 - Store 1588(r038) 1590 - 1591: 76 Load 79(inF0) - 1592: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1591 - Store 80(inF1) 1592 - 1593: 76 Load 79(inF0) - 1594: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1593 - Store 81(inF2) 1594 - 1596: 76 Load 79(inF0) - 1597: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1596 - Store 1595(r039) 1597 - 1599: 76 Load 79(inF0) - 1600: 76 Load 80(inF1) - 1601: 76 Load 81(inF2) - 1602: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1599 1600 1601 - Store 1598(r049) 1602 - 1604: 76 Load 79(inF0) - 1605: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1604 - Store 1603(r041) 1605 - 1607: 76 Load 79(inF0) - 1608: 76 Load 80(inF1) - 1609: 76 ExtInst 1(GLSL.std.450) 48(Step) 1607 1608 - Store 1606(r042) 1609 - 1611: 76 Load 79(inF0) - 1612: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1611 - Store 1610(r043) 1612 - 1614: 76 Load 79(inF0) - 1615: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1614 - Store 1613(r044) 1615 - 1616: 76 Load 79(inF0) - 1617: 76 Transpose 1616 - 1619: 76 Load 79(inF0) - 1620: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1619 - Store 1618(r046) 1620 - ReturnValue 1622 + 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 -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 - 1625(r0): 7(ptr) Variable Function - 1629(r1): 25(ptr) Variable Function - 1633(r2): 25(ptr) Variable Function - 1637(r3): 7(ptr) Variable Function - 1641(r4): 25(ptr) Variable Function - 1645(r5): 25(ptr) Variable Function - 1649(r6): 61(ptr) Variable Function - 1653(r7): 61(ptr) Variable Function - 1657(r8): 61(ptr) Variable Function - 1626: 6(float) Load 86(inF1) - 1627: 6(float) Load 85(inF0) - 1628: 6(float) FMul 1626 1627 - Store 1625(r0) 1628 - 1630: 6(float) Load 85(inF0) - 1631: 24(fvec2) Load 87(inFV0) - 1632: 24(fvec2) VectorTimesScalar 1631 1630 - Store 1629(r1) 1632 - 1634: 24(fvec2) Load 87(inFV0) - 1635: 6(float) Load 85(inF0) - 1636: 24(fvec2) VectorTimesScalar 1634 1635 - Store 1633(r2) 1636 - 1638: 24(fvec2) Load 87(inFV0) - 1639: 24(fvec2) Load 88(inFV1) - 1640: 6(float) Dot 1638 1639 - Store 1637(r3) 1640 - 1642: 24(fvec2) Load 87(inFV0) - 1643: 60 Load 89(inFM0) - 1644: 24(fvec2) VectorTimesMatrix 1642 1643 - Store 1641(r4) 1644 - 1646: 60 Load 89(inFM0) - 1647: 24(fvec2) Load 87(inFV0) - 1648: 24(fvec2) MatrixTimesVector 1646 1647 - Store 1645(r5) 1648 - 1650: 6(float) Load 85(inF0) - 1651: 60 Load 89(inFM0) - 1652: 60 MatrixTimesScalar 1651 1650 - Store 1649(r6) 1652 - 1654: 60 Load 89(inFM0) - 1655: 6(float) Load 85(inF0) - 1656: 60 MatrixTimesScalar 1654 1655 - Store 1653(r7) 1656 - 1658: 60 Load 90(inFM1) - 1659: 60 Load 89(inFM0) - 1660: 60 MatrixTimesMatrix 1658 1659 - Store 1657(r8) 1660 +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 -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 - 1661(r0): 7(ptr) Variable Function - 1665(r1): 37(ptr) Variable Function - 1669(r2): 37(ptr) Variable Function - 1673(r3): 7(ptr) Variable Function - 1677(r4): 37(ptr) Variable Function - 1681(r5): 37(ptr) Variable Function - 1685(r6): 69(ptr) Variable Function - 1689(r7): 69(ptr) Variable Function - 1693(r8): 69(ptr) Variable Function - 1662: 6(float) Load 95(inF1) - 1663: 6(float) Load 94(inF0) - 1664: 6(float) FMul 1662 1663 - Store 1661(r0) 1664 - 1666: 6(float) Load 94(inF0) - 1667: 36(fvec3) Load 96(inFV0) - 1668: 36(fvec3) VectorTimesScalar 1667 1666 - Store 1665(r1) 1668 - 1670: 36(fvec3) Load 96(inFV0) - 1671: 6(float) Load 94(inF0) - 1672: 36(fvec3) VectorTimesScalar 1670 1671 - Store 1669(r2) 1672 - 1674: 36(fvec3) Load 96(inFV0) - 1675: 36(fvec3) Load 97(inFV1) - 1676: 6(float) Dot 1674 1675 - Store 1673(r3) 1676 - 1678: 36(fvec3) Load 96(inFV0) - 1679: 68 Load 98(inFM0) - 1680: 36(fvec3) VectorTimesMatrix 1678 1679 - Store 1677(r4) 1680 - 1682: 68 Load 98(inFM0) - 1683: 36(fvec3) Load 96(inFV0) - 1684: 36(fvec3) MatrixTimesVector 1682 1683 - Store 1681(r5) 1684 - 1686: 6(float) Load 94(inF0) - 1687: 68 Load 98(inFM0) - 1688: 68 MatrixTimesScalar 1687 1686 - Store 1685(r6) 1688 - 1690: 68 Load 98(inFM0) - 1691: 6(float) Load 94(inF0) - 1692: 68 MatrixTimesScalar 1690 1691 - Store 1689(r7) 1692 - 1694: 68 Load 99(inFM1) - 1695: 68 Load 98(inFM0) - 1696: 68 MatrixTimesMatrix 1694 1695 - Store 1693(r8) 1696 +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 -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 - 1697(r0): 7(ptr) Variable Function - 1701(r1): 49(ptr) Variable Function - 1705(r2): 49(ptr) Variable Function - 1709(r3): 7(ptr) Variable Function - 1713(r4): 49(ptr) Variable Function - 1717(r5): 49(ptr) Variable Function - 1721(r6): 77(ptr) Variable Function - 1725(r7): 77(ptr) Variable Function - 1729(r8): 77(ptr) Variable Function - 1698: 6(float) Load 104(inF1) - 1699: 6(float) Load 103(inF0) - 1700: 6(float) FMul 1698 1699 - Store 1697(r0) 1700 - 1702: 6(float) Load 103(inF0) - 1703: 48(fvec4) Load 105(inFV0) - 1704: 48(fvec4) VectorTimesScalar 1703 1702 - Store 1701(r1) 1704 - 1706: 48(fvec4) Load 105(inFV0) - 1707: 6(float) Load 103(inF0) - 1708: 48(fvec4) VectorTimesScalar 1706 1707 - Store 1705(r2) 1708 - 1710: 48(fvec4) Load 105(inFV0) - 1711: 48(fvec4) Load 106(inFV1) - 1712: 6(float) Dot 1710 1711 - Store 1709(r3) 1712 - 1714: 48(fvec4) Load 105(inFV0) - 1715: 76 Load 107(inFM0) - 1716: 48(fvec4) VectorTimesMatrix 1714 1715 - Store 1713(r4) 1716 - 1718: 76 Load 107(inFM0) - 1719: 48(fvec4) Load 105(inFV0) - 1720: 48(fvec4) MatrixTimesVector 1718 1719 - Store 1717(r5) 1720 - 1722: 6(float) Load 103(inF0) - 1723: 76 Load 107(inFM0) - 1724: 76 MatrixTimesScalar 1723 1722 - Store 1721(r6) 1724 - 1726: 76 Load 107(inFM0) - 1727: 6(float) Load 103(inF0) - 1728: 76 MatrixTimesScalar 1726 1727 - Store 1725(r7) 1728 - 1730: 76 Load 108(inFM1) - 1731: 76 Load 107(inFM0) - 1732: 76 MatrixTimesMatrix 1730 1731 - Store 1729(r8) 1732 +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 -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 - 1733(r00): 7(ptr) Variable Function - 1737(r01): 25(ptr) Variable Function - 1741(r02): 37(ptr) Variable Function - 1745(r03): 25(ptr) Variable Function - 1749(r04): 37(ptr) Variable Function - 1753(r05): 7(ptr) Variable Function - 1757(r06): 7(ptr) Variable Function - 1761(r07): 37(ptr) Variable Function - 1765(r08): 25(ptr) Variable Function - 1769(r09): 25(ptr) Variable Function - 1773(r10): 37(ptr) Variable Function - 1777(r11): 112(ptr) Variable Function - 1781(r12): 114(ptr) Variable Function - 1785(r13): 61(ptr) Variable Function - 1789(r14): 112(ptr) Variable Function - 1793(r15): 118(ptr) Variable Function - 1797(r16): 116(ptr) Variable Function - 1734: 6(float) Load 121(inF1) - 1735: 6(float) Load 120(inF0) - 1736: 6(float) FMul 1734 1735 - Store 1733(r00) 1736 - 1738: 6(float) Load 120(inF0) - 1739: 24(fvec2) Load 122(inFV2) - 1740: 24(fvec2) VectorTimesScalar 1739 1738 - Store 1737(r01) 1740 - 1742: 6(float) Load 120(inF0) - 1743: 36(fvec3) Load 123(inFV3) - 1744: 36(fvec3) VectorTimesScalar 1743 1742 - Store 1741(r02) 1744 - 1746: 24(fvec2) Load 122(inFV2) - 1747: 6(float) Load 120(inF0) - 1748: 24(fvec2) VectorTimesScalar 1746 1747 - Store 1745(r03) 1748 - 1750: 36(fvec3) Load 123(inFV3) - 1751: 6(float) Load 120(inF0) - 1752: 36(fvec3) VectorTimesScalar 1750 1751 - Store 1749(r04) 1752 - 1754: 24(fvec2) Load 122(inFV2) - 1755: 24(fvec2) Load 122(inFV2) - 1756: 6(float) Dot 1754 1755 - Store 1753(r05) 1756 - 1758: 36(fvec3) Load 123(inFV3) - 1759: 36(fvec3) Load 123(inFV3) +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(r06) 1760 - 1762: 111 Load 124(inFM2x3) - 1763: 24(fvec2) Load 122(inFV2) - 1764: 36(fvec3) MatrixTimesVector 1762 1763 - Store 1761(r07) 1764 - 1766: 113 Load 125(inFM3x2) - 1767: 36(fvec3) Load 123(inFV3) - 1768: 24(fvec2) MatrixTimesVector 1766 1767 - Store 1765(r08) 1768 - 1770: 36(fvec3) Load 123(inFV3) - 1771: 111 Load 124(inFM2x3) - 1772: 24(fvec2) VectorTimesMatrix 1770 1771 - Store 1769(r09) 1772 - 1774: 24(fvec2) Load 122(inFV2) - 1775: 113 Load 125(inFM3x2) - 1776: 36(fvec3) VectorTimesMatrix 1774 1775 - Store 1773(r10) 1776 - 1778: 6(float) Load 120(inF0) - 1779: 111 Load 124(inFM2x3) - 1780: 111 MatrixTimesScalar 1779 1778 - Store 1777(r11) 1780 - 1782: 6(float) Load 120(inF0) - 1783: 113 Load 125(inFM3x2) + 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(r12) 1784 - 1786: 113 Load 125(inFM3x2) - 1787: 111 Load 124(inFM2x3) - 1788: 60 MatrixTimesMatrix 1786 1787 - Store 1785(r13) 1788 - 1790: 68 Load 126(inFM3x3) - 1791: 111 Load 124(inFM2x3) - 1792: 111 MatrixTimesMatrix 1790 1791 - Store 1789(r14) 1792 - 1794: 115 Load 127(inFM3x4) - 1795: 111 Load 124(inFM2x3) - 1796: 117 MatrixTimesMatrix 1794 1795 - Store 1793(r15) 1796 - 1798: 117 Load 128(inFM2x4) - 1799: 113 Load 125(inFM3x2) - 1800: 115 MatrixTimesMatrix 1798 1799 - Store 1797(r16) 1800 + 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 index 6b393048e7..8b1454b872 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -1,144 +1,204 @@ hlsl.intrinsics.lit.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) +0:2 Function Definition: @PixelShaderFunction(f1;f1;f1; ( temp void) 0:2 Function Parameters: -0:2 'n_dot_l' (layout(location=0 ) in float) -0:2 'n_dot_h' (layout(location=1 ) in float) -0:2 'm' (layout(location=2 ) in float) +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 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' (layout(location=0 ) in float) +0:3 max ( temp float) +0:3 'n_dot_l' ( in float) 0:3 Constant: 0:3 0.000000 -0:3 Test condition and select (temp float) +0:3 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' (layout(location=0 ) in float) -0:3 'n_dot_h' (layout(location=1 ) in float) +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' (layout(location=1 ) in float) -0:3 'm' (layout(location=2 ) in float) +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) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) +0:2 Function Definition: @PixelShaderFunction(f1;f1;f1; ( temp void) 0:2 Function Parameters: -0:2 'n_dot_l' (layout(location=0 ) in float) -0:2 'n_dot_h' (layout(location=1 ) in float) -0:2 'm' (layout(location=2 ) in float) +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 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' (layout(location=0 ) in float) +0:3 max ( temp float) +0:3 'n_dot_l' ( in float) 0:3 Constant: 0:3 0.000000 -0:3 Test condition and select (temp float) +0:3 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' (layout(location=0 ) in float) -0:3 'n_dot_h' (layout(location=1 ) in float) +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' (layout(location=1 ) in float) -0:3 'm' (layout(location=2 ) in float) +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) +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): 80001 -// Id's are bound by 33 +// 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" 12 19 28 + EntryPoint Fragment 4 "PixelShaderFunction" 33 36 39 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "r0" - Name 12 "n_dot_l" - Name 19 "n_dot_h" - Name 28 "m" - Decorate 12(n_dot_l) Location 0 - Decorate 19(n_dot_h) Location 1 - Decorate 28(m) Location 2 + 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: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 1065353216 - 11: TypePointer Input 6(float) - 12(n_dot_l): 11(ptr) Variable Input - 14: 6(float) Constant 0 - 16: TypePointer Function 6(float) - 19(n_dot_h): 11(ptr) Variable Input - 22: TypeBool - 28(m): 11(ptr) Variable Input + 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 - 9(r0): 8(ptr) Variable Function - 17: 16(ptr) Variable Function - 13: 6(float) Load 12(n_dot_l) - 15: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 13 14 - 18: 6(float) Load 12(n_dot_l) - 20: 6(float) Load 19(n_dot_h) - 21: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 18 20 - 23: 22(bool) FOrdLessThan 21 14 - SelectionMerge 25 None - BranchConditional 23 24 26 - 24: Label - Store 17 14 - Branch 25 - 26: Label - 27: 6(float) Load 19(n_dot_h) - 29: 6(float) Load 28(m) - 30: 6(float) FMul 27 29 - Store 17 30 - Branch 25 - 25: Label - 31: 6(float) Load 17 - 32: 7(fvec4) CompositeConstruct 10 15 31 10 - Store 9(r0) 32 + 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 index 44dedf7706..97d67198ea 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -1,155 +1,194 @@ hlsl.intrinsics.negative.comp -Shader version: 450 +Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:2 Function Parameters: -0:2 'inF0' (in float) -0:2 'inF1' (in float) -0:2 'inF2' (in float) -0:2 'inI0' (in int) +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 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: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 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: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 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: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 Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:158 Function Parameters: -0:158 'inF0' (layout(location=0 ) in 4-component vector of float) -0:158 'inF1' (layout(location=1 ) in 4-component vector of float) -0:158 'inF2' (layout(location=2 ) in 4-component vector of float) -0:158 'inI0' (layout(location=3 ) in 4-component vector of int) +0:158 'inF0' ( in 4-component vector of float) +0:158 'inF1' ( in 4-component vector of float) +0:158 'inF2' ( in 4-component vector of float) +0:158 'inI0' ( in 4-component vector of int) 0:? Sequence -0:199 Sequence -0:199 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:199 Branch: Return +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) +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: 450 +Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:2 Function Parameters: -0:2 'inF0' (in float) -0:2 'inF1' (in float) -0:2 'inF2' (in float) -0:2 'inI0' (in int) +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 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: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 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: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 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: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 Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:158 Function Parameters: -0:158 'inF0' (layout(location=0 ) in 4-component vector of float) -0:158 'inF1' (layout(location=1 ) in 4-component vector of float) -0:158 'inF2' (layout(location=2 ) in 4-component vector of float) -0:158 'inI0' (layout(location=3 ) in 4-component vector of int) +0:158 'inF0' ( in 4-component vector of float) +0:158 'inF1' ( in 4-component vector of float) +0:158 'inF2' ( in 4-component vector of float) +0:158 'inI0' ( in 4-component vector of int) 0:? Sequence -0:199 Sequence -0:199 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:199 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inI0' (layout( location=3) in 4-component vector of int) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 72 +// 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" 61 66 67 68 71 + 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" @@ -171,16 +210,29 @@ local_size = (1, 1, 1) Name 40 "inF1" Name 41 "inF2" Name 42 "inI0" - Name 61 "@entryPointOutput" - Name 66 "inF0" - Name 67 "inF1" - Name 68 "inF2" - Name 71 "inI0" - Decorate 61(@entryPointOutput) Location 0 - Decorate 66(inF0) Location 0 - Decorate 67(inF1) Location 1 - Decorate 68(inF2) Location 2 - Decorate 71(inI0) Location 3 + 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 @@ -198,27 +250,55 @@ local_size = (1, 1, 1) 36: TypeVector 8(int) 3 37: TypePointer Function 36(ivec3) 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) - 45: 6(float) Constant 0 - 50: 6(float) Constant 1065353216 - 51: 6(float) Constant 1073741824 - 52: 23(fvec2) ConstantComposite 50 51 - 55: 6(float) Constant 1077936128 - 56: 34(fvec3) ConstantComposite 50 51 55 - 59: TypeVector 6(float) 4 - 60: TypePointer Output 59(fvec4) -61(@entryPointOutput): 60(ptr) Variable Output - 62: 6(float) Constant 1082130432 - 63: 59(fvec4) ConstantComposite 50 51 55 62 - 65: TypePointer Input 59(fvec4) - 66(inF0): 65(ptr) Variable Input - 67(inF1): 65(ptr) Variable Input - 68(inF2): 65(ptr) Variable Input - 69: TypeVector 8(int) 4 - 70: TypePointer Input 69(ivec4) - 71(inI0): 70(ptr) Variable Input + 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 - Store 61(@entryPointOutput) 63 + 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 @@ -227,7 +307,7 @@ local_size = (1, 1, 1) 13(inF2): 7(ptr) FunctionParameter 14(inI0): 9(ptr) FunctionParameter 16: Label - ReturnValue 45 + ReturnValue 56 FunctionEnd 21(ComputeShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 17(inF0): 7(ptr) FunctionParameter @@ -235,7 +315,7 @@ local_size = (1, 1, 1) 19(inF2): 7(ptr) FunctionParameter 20(inI0): 9(ptr) FunctionParameter 22: Label - ReturnValue 45 + ReturnValue 56 FunctionEnd 32(ComputeShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 28(inF0): 24(ptr) FunctionParameter @@ -243,7 +323,7 @@ local_size = (1, 1, 1) 30(inF2): 24(ptr) FunctionParameter 31(inI0): 26(ptr) FunctionParameter 33: Label - ReturnValue 52 + ReturnValue 63 FunctionEnd 43(ComputeShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 39(inF0): 35(ptr) FunctionParameter @@ -251,5 +331,13 @@ local_size = (1, 1, 1) 41(inF2): 35(ptr) FunctionParameter 42(inI0): 37(ptr) FunctionParameter 44: Label - ReturnValue 56 + 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 index e275054325..980cc96d02 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -1,24 +1,23 @@ hlsl.intrinsics.negative.frag -ERROR: 0:10: 'determinant' : no matching overloaded function found -ERROR: 0:12: 'f32tof16' : unimplemented intrinsic: handle natively +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' : 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:52: 'f32tof16' : unimplemented intrinsic: handle natively 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:68: 'f32tof16' : unimplemented intrinsic: handle natively 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:85: 'f32tof16' : unimplemented intrinsic: handle natively 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 @@ -59,57 +58,72 @@ 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: 60 compilation errors. No code generated. +ERROR: 59 compilation errors. No code generated. -Shader version: 450 +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 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: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: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 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) -0:9 Construct vec4 (in 4-component vector of float) -0:9 'inF0' (in float) -0:10 Constant: -0:10 0.000000 -0:12 ERROR: Bad unary op - (temp float) -0:12 Convert float to uint (temp uint) -0:12 'inF0' (in float) -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 Construct vec2 (in 2-component vector of 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: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) @@ -118,114 +132,154 @@ ERROR: node is still EOpNull! 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: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 Constant: -0:30 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 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: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 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: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) + ( 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: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 ERROR: Bad unary op - (temp 2-component vector of float) -0:52 Convert float to uint (temp 2-component vector of uint) -0:52 'inF0' (in 2-component vector of float) -0:53 findMSB (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: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 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: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: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 ERROR: Bad unary op - (temp 3-component vector of float) -0:68 Convert float to uint (temp 3-component vector of uint) -0:68 'inF0' (in 3-component vector of float) -0:69 findMSB (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: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 @@ -233,54 +287,106 @@ ERROR: node is still EOpNull! 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 Definition: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:80 Function Parameters: -0:80 'inF0' (layout(location=0 ) in 4-component vector of float) -0:80 'inF1' (layout(location=1 ) in 4-component vector of float) -0:80 'inF2' (layout(location=2 ) in 4-component vector of float) -0:80 'inI0' (layout(location=3 ) in 4-component vector of int) +0:80 'inF0' ( in 4-component vector of float) +0:80 'inF1' ( in 4-component vector of float) +0:80 'inF2' ( in 4-component vector of float) +0:80 'inI0' ( in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 bitCount (temp 4-component vector of uint) -0:82 Convert float to uint (temp 4-component vector of uint) -0:82 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 cross-product (temp 3-component vector of float) -0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF1' (layout(location=1 ) in 4-component vector of float) +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 ERROR: Bad unary op - (temp 4-component vector of float) -0:85 Convert float to uint (temp 4-component vector of uint) -0:85 'inF0' (layout(location=0 ) in 4-component vector of float) -0:86 findMSB (temp 4-component vector of uint) -0:86 Convert float to uint (temp 4-component vector of uint) -0:86 'inF0' (layout(location=0 ) in 4-component vector of float) -0:87 findLSB (temp 4-component vector of uint) -0:87 Convert float to uint (temp 4-component vector of uint) -0:87 'inF0' (layout(location=0 ) in 4-component vector of float) -0:89 bitFieldReverse (temp 4-component vector of uint) -0:89 Convert float to uint (temp 4-component vector of uint) -0:89 'inF0' (layout(location=0 ) in 4-component vector of float) +0: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 Sequence -0:92 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:92 Branch: Return -0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +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: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 @@ -314,11 +420,11 @@ ERROR: node is still EOpNull! 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 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: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 @@ -357,11 +463,11 @@ ERROR: node is still EOpNull! 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 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: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 @@ -408,64 +514,79 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? '@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: 450 +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 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: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: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 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) -0:9 Construct vec4 (in 4-component vector of float) -0:9 'inF0' (in float) -0:10 Constant: -0:10 0.000000 -0:12 ERROR: Bad unary op - (temp float) -0:12 Convert float to uint (temp uint) -0:12 'inF0' (in float) -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 Construct vec2 (in 2-component vector of 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: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) @@ -474,114 +595,154 @@ ERROR: node is still EOpNull! 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: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 Constant: -0:30 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 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: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 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: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) + ( 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: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 ERROR: Bad unary op - (temp 2-component vector of float) -0:52 Convert float to uint (temp 2-component vector of uint) -0:52 'inF0' (in 2-component vector of float) -0:53 findMSB (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: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 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: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: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 ERROR: Bad unary op - (temp 3-component vector of float) -0:68 Convert float to uint (temp 3-component vector of uint) -0:68 'inF0' (in 3-component vector of float) -0:69 findMSB (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: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 @@ -589,54 +750,106 @@ ERROR: node is still EOpNull! 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 Definition: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:80 Function Parameters: -0:80 'inF0' (layout(location=0 ) in 4-component vector of float) -0:80 'inF1' (layout(location=1 ) in 4-component vector of float) -0:80 'inF2' (layout(location=2 ) in 4-component vector of float) -0:80 'inI0' (layout(location=3 ) in 4-component vector of int) +0:80 'inF0' ( in 4-component vector of float) +0:80 'inF1' ( in 4-component vector of float) +0:80 'inF2' ( in 4-component vector of float) +0:80 'inI0' ( in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 bitCount (temp 4-component vector of uint) -0:82 Convert float to uint (temp 4-component vector of uint) -0:82 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 cross-product (temp 3-component vector of float) -0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF1' (layout(location=1 ) in 4-component vector of float) +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 ERROR: Bad unary op - (temp 4-component vector of float) -0:85 Convert float to uint (temp 4-component vector of uint) -0:85 'inF0' (layout(location=0 ) in 4-component vector of float) -0:86 findMSB (temp 4-component vector of uint) -0:86 Convert float to uint (temp 4-component vector of uint) -0:86 'inF0' (layout(location=0 ) in 4-component vector of float) -0:87 findLSB (temp 4-component vector of uint) -0:87 Convert float to uint (temp 4-component vector of uint) -0:87 'inF0' (layout(location=0 ) in 4-component vector of float) -0:89 bitFieldReverse (temp 4-component vector of uint) -0:89 Convert float to uint (temp 4-component vector of uint) -0:89 'inF0' (layout(location=0 ) in 4-component vector of float) +0: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 Sequence -0:92 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:92 Branch: Return -0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +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: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 @@ -670,11 +883,11 @@ ERROR: node is still EOpNull! 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 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: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 @@ -713,11 +926,11 @@ ERROR: node is still EOpNull! 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 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: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 @@ -764,10 +977,10 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) +0:? '@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 index b57a5a9a27..c2711c657e 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -1,70 +1,89 @@ hlsl.intrinsics.negative.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:15 Function Parameters: -0:15 'inF0' (in float) -0:15 'inF1' (in float) -0:15 'inF2' (in float) -0:15 'inI0' (in int) +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 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: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 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: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 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: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 Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:176 Function Parameters: -0:176 'inF0' (layout(location=0 ) in 4-component vector of float) -0:176 'inF1' (layout(location=1 ) in 4-component vector of float) -0:176 'inF2' (layout(location=2 ) in 4-component vector of float) -0:176 'inI0' (layout(location=3 ) in 4-component vector of int) +0:176 'inF0' ( in 4-component vector of float) +0:176 'inF1' ( in 4-component vector of float) +0:176 'inF2' ( in 4-component vector of float) +0:176 'inI0' ( in 4-component vector of int) 0:? Sequence -0:217 Sequence -0:217 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:217 Branch: Return -0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +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: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: @@ -72,11 +91,11 @@ Shader version: 450 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 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: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: @@ -89,11 +108,11 @@ Shader version: 450 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 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: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: @@ -114,94 +133,113 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -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:? '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: 450 +Shader version: 500 0:? Sequence -0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:15 Function Parameters: -0:15 'inF0' (in float) -0:15 'inF1' (in float) -0:15 'inF2' (in float) -0:15 'inI0' (in int) +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 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: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 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: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 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: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 Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:176 Function Parameters: -0:176 'inF0' (layout(location=0 ) in 4-component vector of float) -0:176 'inF1' (layout(location=1 ) in 4-component vector of float) -0:176 'inF2' (layout(location=2 ) in 4-component vector of float) -0:176 'inI0' (layout(location=3 ) in 4-component vector of int) +0:176 'inF0' ( in 4-component vector of float) +0:176 'inF1' ( in 4-component vector of float) +0:176 'inF2' ( in 4-component vector of float) +0:176 'inI0' ( in 4-component vector of int) 0:? Sequence -0:217 Sequence -0:217 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:217 Branch: Return -0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) +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: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: @@ -209,11 +247,11 @@ Shader version: 450 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 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: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: @@ -226,11 +264,11 @@ Shader version: 450 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 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: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: @@ -251,32 +289,33 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -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:? '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): 80001 -// Id's are bound by 128 +// 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" 85 102 103 104 107 + 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" @@ -298,40 +337,53 @@ Shader version: 450 Name 40 "inF1" Name 41 "inF2" Name 42 "inI0" - Name 51 "VertexShaderFunction2x2(mf22;mf22;mf22;" - Name 48 "inF0" - Name 49 "inF1" - Name 50 "inF2" - Name 59 "VertexShaderFunction3x3(mf33;mf33;mf33;" - Name 56 "inF0" - Name 57 "inF1" - Name 58 "inF2" - Name 68 "VertexShaderFunction4x4(mf44;mf44;mf44;" - Name 65 "inF0" - Name 66 "inF1" - Name 67 "inF2" - Name 85 "@entryPointOutput" - Name 102 "inF0" + 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 104 "inF2" - Name 107 "inI0" - Name 110 "gs_ua" - Name 111 "gs_ub" - Name 112 "gs_uc" - Name 115 "gs_ua2" - Name 116 "gs_ub2" - Name 117 "gs_uc2" - Name 120 "gs_ua3" - Name 121 "gs_ub3" - Name 122 "gs_uc3" - Name 125 "gs_ua4" - Name 126 "gs_ub4" - Name 127 "gs_uc4" - Decorate 85(@entryPointOutput) Location 0 - Decorate 102(inF0) Location 0 + 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 104(inF2) Location 2 - Decorate 107(inI0) Location 3 + Decorate 106(inF2) Location 2 + Decorate 110(inI0) Location 3 + Decorate 113(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -349,62 +401,90 @@ Shader version: 450 36: TypeVector 8(int) 3 37: TypePointer Function 36(ivec3) 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) - 45: TypeMatrix 23(fvec2) 2 - 46: TypePointer Function 45 - 47: TypeFunction 45 46(ptr) 46(ptr) 46(ptr) - 53: TypeMatrix 34(fvec3) 3 - 54: TypePointer Function 53 - 55: TypeFunction 53 54(ptr) 54(ptr) 54(ptr) - 61: TypeVector 6(float) 4 - 62: TypeMatrix 61(fvec4) 4 - 63: TypePointer Function 62 - 64: TypeFunction 62 63(ptr) 63(ptr) 63(ptr) - 70: 6(float) Constant 0 - 75: 6(float) Constant 1065353216 - 76: 6(float) Constant 1073741824 - 77: 23(fvec2) ConstantComposite 75 76 - 80: 6(float) Constant 1077936128 - 81: 34(fvec3) ConstantComposite 75 76 80 - 84: TypePointer Output 61(fvec4) -85(@entryPointOutput): 84(ptr) Variable Output - 86: 6(float) Constant 1082130432 - 87: 61(fvec4) ConstantComposite 75 76 80 86 - 89: 23(fvec2) ConstantComposite 76 76 - 90: 45 ConstantComposite 89 89 - 93: 34(fvec3) ConstantComposite 80 80 80 - 94: 53 ConstantComposite 93 93 93 - 97: 61(fvec4) ConstantComposite 86 86 86 86 - 98: 62 ConstantComposite 97 97 97 97 - 101: TypePointer Input 61(fvec4) - 102(inF0): 101(ptr) Variable Input - 103(inF1): 101(ptr) Variable Input - 104(inF2): 101(ptr) Variable Input - 105: TypeVector 8(int) 4 - 106: TypePointer Input 105(ivec4) - 107(inI0): 106(ptr) Variable Input - 108: TypeInt 32 0 - 109: TypePointer Private 108(int) - 110(gs_ua): 109(ptr) Variable Private - 111(gs_ub): 109(ptr) Variable Private - 112(gs_uc): 109(ptr) Variable Private - 113: TypeVector 108(int) 2 - 114: TypePointer Private 113(ivec2) - 115(gs_ua2): 114(ptr) Variable Private - 116(gs_ub2): 114(ptr) Variable Private - 117(gs_uc2): 114(ptr) Variable Private - 118: TypeVector 108(int) 3 - 119: TypePointer Private 118(ivec3) - 120(gs_ua3): 119(ptr) Variable Private - 121(gs_ub3): 119(ptr) Variable Private - 122(gs_uc3): 119(ptr) Variable Private - 123: TypeVector 108(int) 4 - 124: TypePointer Private 123(ivec4) - 125(gs_ua4): 124(ptr) Variable Private - 126(gs_ub4): 124(ptr) Variable Private - 127(gs_uc4): 124(ptr) Variable Private + 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 - Store 85(@entryPointOutput) 87 + 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 @@ -413,7 +493,7 @@ Shader version: 450 13(inF2): 7(ptr) FunctionParameter 14(inI0): 9(ptr) FunctionParameter 16: Label - ReturnValue 70 + ReturnValue 80 FunctionEnd 21(VertexShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 17(inF0): 7(ptr) FunctionParameter @@ -421,7 +501,7 @@ Shader version: 450 19(inF2): 7(ptr) FunctionParameter 20(inI0): 9(ptr) FunctionParameter 22: Label - ReturnValue 70 + ReturnValue 80 FunctionEnd 32(VertexShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 28(inF0): 24(ptr) FunctionParameter @@ -429,7 +509,7 @@ Shader version: 450 30(inF2): 24(ptr) FunctionParameter 31(inI0): 26(ptr) FunctionParameter 33: Label - ReturnValue 77 + ReturnValue 87 FunctionEnd 43(VertexShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 39(inF0): 35(ptr) FunctionParameter @@ -437,26 +517,34 @@ Shader version: 450 41(inF2): 35(ptr) FunctionParameter 42(inI0): 37(ptr) FunctionParameter 44: Label - ReturnValue 81 + ReturnValue 91 FunctionEnd -51(VertexShaderFunction2x2(mf22;mf22;mf22;): 45 Function None 47 - 48(inF0): 46(ptr) FunctionParameter - 49(inF1): 46(ptr) FunctionParameter - 50(inF2): 46(ptr) FunctionParameter - 52: Label - ReturnValue 90 +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 -59(VertexShaderFunction3x3(mf33;mf33;mf33;): 53 Function None 55 - 56(inF0): 54(ptr) FunctionParameter - 57(inF1): 54(ptr) FunctionParameter - 58(inF2): 54(ptr) FunctionParameter - 60: Label - ReturnValue 94 +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 -68(VertexShaderFunction4x4(mf44;mf44;mf44;): 62 Function None 64 - 65(inF0): 63(ptr) FunctionParameter - 66(inF1): 63(ptr) FunctionParameter - 67(inF2): 63(ptr) FunctionParameter - 69: Label - ReturnValue 98 +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 index f5ba86b023..a561dfe9a0 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out @@ -1,31 +1,31 @@ hlsl.intrinsics.promote.down.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:15 Function Parameters: 0:? Sequence 0:16 Sequence -0:16 move second child to first child (temp uint) -0:16 'r00' (temp uint) -0:16 bitCount (temp uint) -0:16 Convert float to uint (temp uint) -0:16 f: direct index for structure (layout(offset=8 ) uniform float) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 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 (layout(offset=32 ) uniform 2-component vector of float) -0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 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 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: @@ -33,50 +33,53 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:21 Sequence -0:21 Sequence -0:21 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:21 color: direct index for structure (temp 4-component vector of float) -0:21 'ps_output' (temp structure{temp 4-component vector of float color}) -0:21 Constant: -0:21 0 (const int) -0:21 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:15 Function Parameters: 0:? Sequence 0:16 Sequence -0:16 move second child to first child (temp uint) -0:16 'r00' (temp uint) -0:16 bitCount (temp uint) -0:16 Convert float to uint (temp uint) -0:16 f: direct index for structure (layout(offset=8 ) uniform float) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 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 (layout(offset=32 ) uniform 2-component vector of float) -0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 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 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: @@ -84,101 +87,112 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:21 Sequence -0:21 Sequence -0:21 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:21 color: direct index for structure (temp 4-component vector of float) -0:21 'ps_output' (temp structure{temp 4-component vector of float color}) -0:21 Constant: -0:21 0 (const int) -0:21 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +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): 80001 -// Id's are bound by 45 +// 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 + EntryPoint Fragment 4 "main" 47 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 14 "$Global" - MemberName 14($Global) 0 "i" - MemberName 14($Global) 1 "u" - MemberName 14($Global) 2 "f" - MemberName 14($Global) 3 "b" - MemberName 14($Global) 4 "i2" - MemberName 14($Global) 5 "u2" - MemberName 14($Global) 6 "f2" - MemberName 14($Global) 7 "b2" - Name 16 "" - Name 24 "r01" - Name 32 "PS_OUTPUT" - MemberName 32(PS_OUTPUT) 0 "color" - Name 34 "ps_output" - Name 41 "color" - MemberDecorate 14($Global) 0 Offset 0 - MemberDecorate 14($Global) 1 Offset 4 - MemberDecorate 14($Global) 2 Offset 8 - MemberDecorate 14($Global) 3 Offset 12 - MemberDecorate 14($Global) 4 Offset 16 - MemberDecorate 14($Global) 5 Offset 24 - MemberDecorate 14($Global) 6 Offset 32 - MemberDecorate 14($Global) 7 Offset 40 - Decorate 14($Global) Block - Decorate 16 DescriptorSet 0 - Decorate 41(color) Location 0 + 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: TypeInt 32 0 - 7: TypePointer Function 6(int) - 9: TypeInt 32 1 - 10: TypeFloat 32 - 11: TypeVector 9(int) 2 - 12: TypeVector 6(int) 2 - 13: TypeVector 10(float) 2 - 14($Global): TypeStruct 9(int) 6(int) 10(float) 6(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) - 15: TypePointer Uniform 14($Global) - 16: 15(ptr) Variable Uniform - 17: 9(int) Constant 2 - 18: TypePointer Uniform 10(float) - 23: TypePointer Function 12(ivec2) - 25: 9(int) Constant 6 - 26: TypePointer Uniform 13(fvec2) - 31: TypeVector 10(float) 4 - 32(PS_OUTPUT): TypeStruct 31(fvec4) - 33: TypePointer Function 32(PS_OUTPUT) - 35: 9(int) Constant 0 - 36: 10(float) Constant 0 - 37: 31(fvec4) ConstantComposite 36 36 36 36 - 38: TypePointer Function 31(fvec4) - 40: TypePointer Output 31(fvec4) - 41(color): 40(ptr) Variable Output + 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 - 8(r00): 7(ptr) Variable Function - 24(r01): 23(ptr) Variable Function - 34(ps_output): 33(ptr) Variable Function - 19: 18(ptr) AccessChain 16 17 - 20: 10(float) Load 19 - 21: 6(int) ConvertFToU 20 - 22: 6(int) BitCount 21 - Store 8(r00) 22 - 27: 26(ptr) AccessChain 16 25 - 28: 13(fvec2) Load 27 - 29: 12(ivec2) ConvertFToU 28 - 30: 12(ivec2) BitReverse 29 - Store 24(r01) 30 - 39: 38(ptr) AccessChain 34(ps_output) 35 - Store 39 37 - 42: 38(ptr) AccessChain 34(ps_output) 35 - 43: 31(fvec4) Load 42 - Store 41(color) 43 + 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 index 82b9e6861b..b064295a4e 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -1,885 +1,895 @@ hlsl.intrinsics.promote.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence -0:23 move second child to first child (temp float) -0:23 'r00' (temp float) -0:23 max (temp float) -0:23 Convert bool to float (temp float) -0:23 b: direct index for structure (layout(offset=12 ) uniform bool) -0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 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 (layout(offset=8 ) uniform float) -0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 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 (layout(offset=12 ) uniform bool) -0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 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 (layout(offset=4 ) uniform uint) -0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 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 (layout(offset=12 ) uniform bool) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 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 (layout(offset=0 ) uniform int) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 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 (layout(offset=0 ) uniform int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 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 (layout(offset=8 ) uniform float) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 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 (layout(offset=4 ) uniform uint) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 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 (layout(offset=8 ) uniform float) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 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 (layout(offset=32 ) uniform 2-component vector of float) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 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 (layout(offset=16 ) uniform 2-component vector of int) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 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 (layout(offset=16 ) uniform 2-component vector of int) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 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 (layout(offset=32 ) uniform 2-component vector of float) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 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 (layout(offset=32 ) uniform 2-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 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 (layout(offset=16 ) uniform 2-component vector of int) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 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 (layout(offset=32 ) uniform 2-component vector of float) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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 (layout(offset=32 ) uniform 2-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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 (layout(offset=12 ) uniform bool) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 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 (layout(offset=32 ) uniform 2-component vector of float) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 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 (layout(offset=12 ) uniform bool) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 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 (layout(offset=12 ) uniform bool) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 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 (layout(offset=16 ) uniform 2-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 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 (layout(offset=0 ) uniform int) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 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 (layout(offset=32 ) uniform 2-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 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 (layout(offset=4 ) uniform uint) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 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 (layout(offset=32 ) uniform 2-component vector of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 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 (layout(offset=0 ) uniform int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 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 (layout(offset=32 ) uniform 2-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 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 (layout(offset=4 ) uniform uint) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 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 (layout(offset=8 ) uniform float) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 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 (layout(offset=12 ) uniform bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 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 (layout(offset=0 ) uniform int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 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 (layout(offset=16 ) uniform 2-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 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 samplerBuffer) -0:51 Convert uint to int (temp int) -0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 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 samplerBuffer) -0:52 Convert float to int (temp int) -0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 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 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: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 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: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 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: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 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:73 move second child to first child ( temp int) +0:73 'WidthI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 'sizeQueryTemp' ( temp uint) +0:73 move second child to first child ( temp int) +0:73 'NumberOfLevelsI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 textureQueryLevels ( temp uint) +0:73 'g_tTex1df4' ( uniform texture1D) +0:77 move second child to first child ( temp 4-component vector of float) +0:77 color: direct index for structure ( temp 4-component vector of float) +0:77 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:77 Constant: 0:77 0 (const int) -0:77 Construct vec4 (temp 4-component vector of float) -0:77 'r00' (temp float) -0:78 Sequence -0:78 Sequence -0:78 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:78 color: direct index for structure (temp 4-component vector of float) -0:78 'ps_output' (temp structure{temp 4-component vector of float color}) -0:78 Constant: -0:78 0 (const int) -0:78 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:? 'g_tTex1df4' (uniform texture1D) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence -0:23 move second child to first child (temp float) -0:23 'r00' (temp float) -0:23 max (temp float) -0:23 Convert bool to float (temp float) -0:23 b: direct index for structure (layout(offset=12 ) uniform bool) -0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 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 (layout(offset=8 ) uniform float) -0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 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 (layout(offset=12 ) uniform bool) -0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 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 (layout(offset=4 ) uniform uint) -0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 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 (layout(offset=12 ) uniform bool) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 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 (layout(offset=0 ) uniform int) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 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 (layout(offset=0 ) uniform int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 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 (layout(offset=8 ) uniform float) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 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 (layout(offset=4 ) uniform uint) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 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 (layout(offset=8 ) uniform float) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 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 (layout(offset=32 ) uniform 2-component vector of float) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 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 (layout(offset=16 ) uniform 2-component vector of int) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 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 (layout(offset=16 ) uniform 2-component vector of int) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 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 (layout(offset=32 ) uniform 2-component vector of float) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 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 (layout(offset=32 ) uniform 2-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 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 (layout(offset=16 ) uniform 2-component vector of int) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 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 (layout(offset=32 ) uniform 2-component vector of float) -0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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 (layout(offset=32 ) uniform 2-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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 (layout(offset=12 ) uniform bool) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 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 (layout(offset=32 ) uniform 2-component vector of float) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 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 (layout(offset=12 ) uniform bool) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 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 (layout(offset=12 ) uniform bool) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 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 (layout(offset=16 ) uniform 2-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 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 (layout(offset=0 ) uniform int) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 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 (layout(offset=32 ) uniform 2-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 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 (layout(offset=4 ) uniform uint) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 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 (layout(offset=32 ) uniform 2-component vector of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 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 (layout(offset=0 ) uniform int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 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 (layout(offset=32 ) uniform 2-component vector of float) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 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 (layout(offset=4 ) uniform uint) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 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 (layout(offset=40 ) uniform 2-component vector of bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 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 (layout(offset=8 ) uniform float) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 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 (layout(offset=12 ) uniform bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 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 (layout(offset=0 ) uniform int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 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 (layout(offset=16 ) uniform 2-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 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 (layout(offset=24 ) uniform 2-component vector of uint) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 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 samplerBuffer) -0:51 Convert uint to int (temp int) -0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 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 samplerBuffer) -0:52 Convert float to int (temp int) -0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 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 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: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 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: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 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: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 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:73 move second child to first child ( temp int) +0:73 'WidthI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 'sizeQueryTemp' ( temp uint) +0:73 move second child to first child ( temp int) +0:73 'NumberOfLevelsI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 textureQueryLevels ( temp uint) +0:73 'g_tTex1df4' ( uniform texture1D) +0:77 move second child to first child ( temp 4-component vector of float) +0:77 color: direct index for structure ( temp 4-component vector of float) +0:77 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:77 Constant: 0:77 0 (const int) -0:77 Construct vec4 (temp 4-component vector of float) -0:77 'r00' (temp float) -0:78 Sequence -0:78 Sequence -0:78 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:78 color: direct index for structure (temp 4-component vector of float) -0:78 'ps_output' (temp structure{temp 4-component vector of float color}) -0:78 Constant: -0:78 0 (const int) -0:78 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:? 'g_tTex1df4' (uniform texture1D) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +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): 80001 -// Id's are bound by 320 +// Generated by (magic number): 80007 +// Id's are bound by 322 Capability Shader Capability Sampled1D @@ -887,427 +897,432 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 316 + EntryPoint Fragment 4 "main" 319 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 14 "$Global" - MemberName 14($Global) 0 "i" - MemberName 14($Global) 1 "u" - MemberName 14($Global) 2 "f" - MemberName 14($Global) 3 "b" - MemberName 14($Global) 4 "i2" - MemberName 14($Global) 5 "u2" - MemberName 14($Global) 6 "f2" - MemberName 14($Global) 7 "b2" - MemberName 14($Global) 8 "upos" - MemberName 14($Global) 9 "fpos" - Name 16 "" - Name 33 "r01" - Name 44 "r02" - Name 54 "r03" - Name 61 "r04" - Name 69 "r10" - Name 86 "r11" - Name 97 "r12" - Name 109 "r13" - Name 116 "r14" - Name 123 "r20" - Name 133 "r21" - Name 145 "r22" - Name 157 "r30" - Name 166 "r31" - Name 175 "r32" - Name 184 "r33" - Name 192 "r34" - Name 200 "r40" - Name 211 "r41" - Name 224 "r42" - Name 238 "r43" - Name 250 "r50" - Name 254 "g_tTexbfs" - Name 264 "r51" - Name 273 "sizeQueryTemp" - Name 276 "g_tTex1df4" - Name 279 "WidthI" - Name 282 "sizeQueryTemp" - Name 288 "NumberOfLevelsU" - Name 291 "sizeQueryTemp" - Name 294 "WidthU" - Name 296 "NumberOfLevelsI" - Name 300 "sizeQueryTemp" - Name 308 "PS_OUTPUT" - MemberName 308(PS_OUTPUT) 0 "color" + Name 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 316 "color" - MemberDecorate 14($Global) 0 Offset 0 - MemberDecorate 14($Global) 1 Offset 4 - MemberDecorate 14($Global) 2 Offset 8 - MemberDecorate 14($Global) 3 Offset 12 - MemberDecorate 14($Global) 4 Offset 16 - MemberDecorate 14($Global) 5 Offset 24 - MemberDecorate 14($Global) 6 Offset 32 - MemberDecorate 14($Global) 7 Offset 40 - MemberDecorate 14($Global) 8 Offset 48 - MemberDecorate 14($Global) 9 Offset 52 - Decorate 14($Global) Block - Decorate 16 DescriptorSet 0 - Decorate 254(g_tTexbfs) DescriptorSet 0 - Decorate 276(g_tTex1df4) DescriptorSet 0 - Decorate 316(color) Location 0 + 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: TypePointer Function 6(float) - 9: TypeInt 32 1 - 10: TypeInt 32 0 - 11: TypeVector 9(int) 2 - 12: TypeVector 10(int) 2 - 13: TypeVector 6(float) 2 - 14($Global): TypeStruct 9(int) 10(int) 6(float) 10(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) 10(int) 6(float) - 15: TypePointer Uniform 14($Global) - 16: 15(ptr) Variable Uniform - 17: 9(int) Constant 3 - 18: TypePointer Uniform 10(int) - 21: TypeBool - 22: 10(int) Constant 0 - 24: 6(float) Constant 0 - 25: 6(float) Constant 1065353216 - 27: 9(int) Constant 2 - 28: TypePointer Uniform 6(float) - 32: TypePointer Function 10(int) - 37: 10(int) Constant 1 - 39: 9(int) Constant 1 - 43: TypePointer Function 9(int) - 48: 9(int) Constant 0 - 50: TypePointer Uniform 9(int) - 68: TypePointer Function 13(fvec2) - 70: 9(int) Constant 7 - 71: TypePointer Uniform 12(ivec2) - 74: TypeVector 21(bool) 2 - 75: 12(ivec2) ConstantComposite 22 22 - 77: 13(fvec2) ConstantComposite 24 24 - 78: 13(fvec2) ConstantComposite 25 25 - 80: 9(int) Constant 6 - 81: TypePointer Uniform 13(fvec2) - 85: TypePointer Function 12(ivec2) - 90: 12(ivec2) ConstantComposite 37 37 - 92: 9(int) Constant 5 - 96: TypePointer Function 11(ivec2) - 101: 11(ivec2) ConstantComposite 48 48 - 102: 11(ivec2) ConstantComposite 39 39 - 104: 9(int) Constant 4 - 105: TypePointer Uniform 11(ivec2) - 251: TypeImage 6(float) Buffer sampled format:R32f - 252: TypeSampledImage 251 - 253: TypePointer UniformConstant 252 - 254(g_tTexbfs): 253(ptr) Variable UniformConstant - 256: 9(int) Constant 8 - 261: TypeVector 6(float) 4 - 266: 9(int) Constant 9 - 274: TypeImage 6(float) 1D sampled format:Unknown - 275: TypePointer UniformConstant 274 - 276(g_tTex1df4): 275(ptr) Variable UniformConstant - 284: 10(int) Constant 6 - 308(PS_OUTPUT): TypeStruct 261(fvec4) - 309: TypePointer Function 308(PS_OUTPUT) - 313: TypePointer Function 261(fvec4) - 315: TypePointer Output 261(fvec4) - 316(color): 315(ptr) Variable Output + 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 - 8(r00): 7(ptr) Variable Function - 33(r01): 32(ptr) Variable Function - 44(r02): 43(ptr) Variable Function - 54(r03): 7(ptr) Variable Function - 61(r04): 7(ptr) Variable Function - 69(r10): 68(ptr) Variable Function - 86(r11): 85(ptr) Variable Function - 97(r12): 96(ptr) Variable Function - 109(r13): 68(ptr) Variable Function - 116(r14): 68(ptr) Variable Function - 123(r20): 68(ptr) Variable Function - 133(r21): 85(ptr) Variable Function - 145(r22): 68(ptr) Variable Function - 157(r30): 68(ptr) Variable Function - 166(r31): 85(ptr) Variable Function - 175(r32): 96(ptr) Variable Function - 184(r33): 68(ptr) Variable Function - 192(r34): 68(ptr) Variable Function - 200(r40): 68(ptr) Variable Function - 211(r41): 85(ptr) Variable Function - 224(r42): 68(ptr) Variable Function - 238(r43): 96(ptr) Variable Function - 250(r50): 7(ptr) Variable Function - 264(r51): 7(ptr) Variable Function -273(sizeQueryTemp): 32(ptr) Variable Function - 279(WidthI): 43(ptr) Variable Function -282(sizeQueryTemp): 32(ptr) Variable Function -288(NumberOfLevelsU): 32(ptr) Variable Function -291(sizeQueryTemp): 32(ptr) Variable Function - 294(WidthU): 32(ptr) Variable Function -296(NumberOfLevelsI): 43(ptr) Variable Function -300(sizeQueryTemp): 32(ptr) Variable Function - 310(ps_output): 309(ptr) Variable Function - 19: 18(ptr) AccessChain 16 17 - 20: 10(int) Load 19 - 23: 21(bool) INotEqual 20 22 - 26: 6(float) Select 23 25 24 - 29: 28(ptr) AccessChain 16 27 - 30: 6(float) Load 29 - 31: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 26 30 - Store 8(r00) 31 - 34: 18(ptr) AccessChain 16 17 - 35: 10(int) Load 34 - 36: 21(bool) INotEqual 35 22 - 38: 10(int) Select 36 37 22 - 40: 18(ptr) AccessChain 16 39 - 41: 10(int) Load 40 - 42: 10(int) ExtInst 1(GLSL.std.450) 41(UMax) 38 41 - Store 33(r01) 42 - 45: 18(ptr) AccessChain 16 17 - 46: 10(int) Load 45 - 47: 21(bool) INotEqual 46 22 - 49: 9(int) Select 47 39 48 - 51: 50(ptr) AccessChain 16 48 - 52: 9(int) Load 51 - 53: 9(int) ExtInst 1(GLSL.std.450) 42(SMax) 49 52 - Store 44(r02) 53 - 55: 50(ptr) AccessChain 16 48 - 56: 9(int) Load 55 - 57: 6(float) ConvertSToF 56 - 58: 28(ptr) AccessChain 16 27 - 59: 6(float) Load 58 - 60: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 57 59 - Store 54(r03) 60 - 62: 18(ptr) AccessChain 16 39 - 63: 10(int) Load 62 - 64: 6(float) ConvertUToF 63 - 65: 28(ptr) AccessChain 16 27 - 66: 6(float) Load 65 - 67: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 64 66 - Store 61(r04) 67 - 72: 71(ptr) AccessChain 16 70 - 73: 12(ivec2) Load 72 - 76: 74(bvec2) INotEqual 73 75 - 79: 13(fvec2) Select 76 78 77 - 82: 81(ptr) AccessChain 16 80 - 83: 13(fvec2) Load 82 - 84: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 79 83 - Store 69(r10) 84 - 87: 71(ptr) AccessChain 16 70 - 88: 12(ivec2) Load 87 - 89: 74(bvec2) INotEqual 88 75 - 91: 12(ivec2) Select 89 90 75 - 93: 71(ptr) AccessChain 16 92 - 94: 12(ivec2) Load 93 - 95: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 91 94 - Store 86(r11) 95 - 98: 71(ptr) AccessChain 16 70 - 99: 12(ivec2) Load 98 - 100: 74(bvec2) INotEqual 99 75 - 103: 11(ivec2) Select 100 102 101 - 106: 105(ptr) AccessChain 16 104 - 107: 11(ivec2) Load 106 - 108: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 103 107 - Store 97(r12) 108 - 110: 105(ptr) AccessChain 16 104 - 111: 11(ivec2) Load 110 - 112: 13(fvec2) ConvertSToF 111 - 113: 81(ptr) AccessChain 16 80 - 114: 13(fvec2) Load 113 - 115: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 112 114 - Store 109(r13) 115 - 117: 71(ptr) AccessChain 16 92 - 118: 12(ivec2) Load 117 - 119: 13(fvec2) ConvertUToF 118 - 120: 81(ptr) AccessChain 16 80 - 121: 13(fvec2) Load 120 - 122: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 119 121 - Store 116(r14) 122 - 124: 105(ptr) AccessChain 16 104 - 125: 11(ivec2) Load 124 - 126: 13(fvec2) ConvertSToF 125 - 127: 71(ptr) AccessChain 16 92 - 128: 12(ivec2) Load 127 - 129: 13(fvec2) ConvertUToF 128 - 130: 81(ptr) AccessChain 16 80 - 131: 13(fvec2) Load 130 - 132: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 126 129 131 - Store 123(r20) 132 - 134: 71(ptr) AccessChain 16 70 - 135: 12(ivec2) Load 134 - 136: 74(bvec2) INotEqual 135 75 - 137: 12(ivec2) Select 136 90 75 - 138: 71(ptr) AccessChain 16 92 - 139: 12(ivec2) Load 138 - 140: 71(ptr) AccessChain 16 70 - 141: 12(ivec2) Load 140 - 142: 74(bvec2) INotEqual 141 75 - 143: 12(ivec2) Select 142 90 75 - 144: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 137 139 143 - Store 133(r21) 144 - 146: 71(ptr) AccessChain 16 70 - 147: 12(ivec2) Load 146 - 148: 74(bvec2) INotEqual 147 75 - 149: 13(fvec2) Select 148 78 77 - 150: 81(ptr) AccessChain 16 80 - 151: 13(fvec2) Load 150 - 152: 71(ptr) AccessChain 16 70 - 153: 12(ivec2) Load 152 - 154: 74(bvec2) INotEqual 153 75 - 155: 13(fvec2) Select 154 78 77 - 156: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 149 151 155 - Store 145(r22) 156 - 158: 18(ptr) AccessChain 16 17 - 159: 10(int) Load 158 - 160: 21(bool) INotEqual 159 22 - 161: 6(float) Select 160 25 24 - 162: 13(fvec2) CompositeConstruct 161 161 - 163: 81(ptr) AccessChain 16 80 - 164: 13(fvec2) Load 163 - 165: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 162 164 - Store 157(r30) 165 - 167: 18(ptr) AccessChain 16 17 - 168: 10(int) Load 167 - 169: 21(bool) INotEqual 168 22 - 170: 10(int) Select 169 37 22 - 171: 12(ivec2) CompositeConstruct 170 170 - 172: 71(ptr) AccessChain 16 92 - 173: 12(ivec2) Load 172 - 174: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 171 173 - Store 166(r31) 174 - 176: 18(ptr) AccessChain 16 17 - 177: 10(int) Load 176 - 178: 21(bool) INotEqual 177 22 - 179: 9(int) Select 178 39 48 - 180: 11(ivec2) CompositeConstruct 179 179 - 181: 105(ptr) AccessChain 16 104 - 182: 11(ivec2) Load 181 - 183: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 180 182 - Store 175(r32) 183 - 185: 50(ptr) AccessChain 16 48 - 186: 9(int) Load 185 - 187: 6(float) ConvertSToF 186 - 188: 13(fvec2) CompositeConstruct 187 187 - 189: 81(ptr) AccessChain 16 80 - 190: 13(fvec2) Load 189 - 191: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 188 190 - Store 184(r33) 191 - 193: 18(ptr) AccessChain 16 39 - 194: 10(int) Load 193 - 195: 6(float) ConvertUToF 194 - 196: 13(fvec2) CompositeConstruct 195 195 - 197: 81(ptr) AccessChain 16 80 - 198: 13(fvec2) Load 197 - 199: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 196 198 - Store 192(r34) 199 - 201: 50(ptr) AccessChain 16 48 - 202: 9(int) Load 201 - 203: 6(float) ConvertSToF 202 - 204: 13(fvec2) CompositeConstruct 203 203 - 205: 71(ptr) AccessChain 16 92 - 206: 12(ivec2) Load 205 - 207: 13(fvec2) ConvertUToF 206 - 208: 81(ptr) AccessChain 16 80 - 209: 13(fvec2) Load 208 - 210: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 204 207 209 - Store 200(r40) 210 - 212: 71(ptr) AccessChain 16 70 - 213: 12(ivec2) Load 212 - 214: 74(bvec2) INotEqual 213 75 - 215: 12(ivec2) Select 214 90 75 - 216: 18(ptr) AccessChain 16 39 - 217: 10(int) Load 216 - 218: 12(ivec2) CompositeConstruct 217 217 - 219: 71(ptr) AccessChain 16 70 - 220: 12(ivec2) Load 219 - 221: 74(bvec2) INotEqual 220 75 - 222: 12(ivec2) Select 221 90 75 - 223: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 215 218 222 - Store 211(r41) 223 - 225: 71(ptr) AccessChain 16 70 - 226: 12(ivec2) Load 225 - 227: 74(bvec2) INotEqual 226 75 - 228: 13(fvec2) Select 227 78 77 - 229: 28(ptr) AccessChain 16 27 - 230: 6(float) Load 229 - 231: 13(fvec2) CompositeConstruct 230 230 - 232: 18(ptr) AccessChain 16 17 - 233: 10(int) Load 232 - 234: 21(bool) INotEqual 233 22 - 235: 6(float) Select 234 25 24 - 236: 13(fvec2) CompositeConstruct 235 235 - 237: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 228 231 236 - Store 224(r42) 237 - 239: 50(ptr) AccessChain 16 48 - 240: 9(int) Load 239 - 241: 10(int) Bitcast 240 - 242: 12(ivec2) CompositeConstruct 241 241 - 243: 105(ptr) AccessChain 16 104 - 244: 11(ivec2) Load 243 - 245: 12(ivec2) Bitcast 244 - 246: 71(ptr) AccessChain 16 92 - 247: 12(ivec2) Load 246 - 248: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 242 245 247 - 249: 11(ivec2) Bitcast 248 - Store 238(r43) 249 - 255: 252 Load 254(g_tTexbfs) - 257: 18(ptr) AccessChain 16 256 - 258: 10(int) Load 257 - 259: 9(int) Bitcast 258 - 260: 251 Image 255 - 262: 261(fvec4) ImageFetch 260 259 - 263: 6(float) CompositeExtract 262 0 - Store 250(r50) 263 - 265: 252 Load 254(g_tTexbfs) - 267: 28(ptr) AccessChain 16 266 - 268: 6(float) Load 267 - 269: 9(int) ConvertFToS 268 - 270: 251 Image 265 - 271: 261(fvec4) ImageFetch 270 269 - 272: 6(float) CompositeExtract 271 0 - Store 264(r51) 272 - 277: 274 Load 276(g_tTex1df4) - 278: 9(int) ImageQuerySize 277 - Store 273(sizeQueryTemp) 278 - 280: 10(int) Load 273(sizeQueryTemp) - 281: 9(int) Bitcast 280 - Store 279(WidthI) 281 - 283: 274 Load 276(g_tTex1df4) - 285: 9(int) ImageQuerySizeLod 283 284 - Store 282(sizeQueryTemp) 285 - 286: 10(int) Load 282(sizeQueryTemp) - 287: 9(int) Bitcast 286 - Store 279(WidthI) 287 - 289: 274 Load 276(g_tTex1df4) - 290: 9(int) ImageQueryLevels 289 - Store 288(NumberOfLevelsU) 290 - 292: 274 Load 276(g_tTex1df4) - 293: 9(int) ImageQuerySizeLod 292 284 - Store 291(sizeQueryTemp) 293 - 295: 10(int) Load 291(sizeQueryTemp) - Store 294(WidthU) 295 - 297: 274 Load 276(g_tTex1df4) - 298: 9(int) ImageQueryLevels 297 - 299: 9(int) Bitcast 298 - Store 296(NumberOfLevelsI) 299 - 301: 274 Load 276(g_tTex1df4) - 302: 9(int) ImageQuerySizeLod 301 284 - Store 300(sizeQueryTemp) 302 - 303: 10(int) Load 300(sizeQueryTemp) - 304: 9(int) Bitcast 303 - Store 279(WidthI) 304 - 305: 274 Load 276(g_tTex1df4) - 306: 9(int) ImageQueryLevels 305 - 307: 9(int) Bitcast 306 - Store 296(NumberOfLevelsI) 307 - 311: 6(float) Load 8(r00) - 312: 261(fvec4) CompositeConstruct 311 311 311 311 - 314: 313(ptr) AccessChain 310(ps_output) 48 - Store 314 312 - 317: 313(ptr) AccessChain 310(ps_output) 48 - 318: 261(fvec4) Load 317 - Store 316(color) 318 + 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 index ebe6a24c83..57dfafc47f 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -1,13 +1,13 @@ hlsl.intrinsics.promote.outputs.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:20 Function Parameters: 0:? Sequence -0:37 clamp (temp float) -0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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: @@ -15,63 +15,65 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 1.000000 0:40 Sequence -0:40 move second child to first child (temp uint) -0:40 'sizeQueryTemp' (temp uint) -0:40 textureSize (temp uint) -0:40 'g_tTex1df4' (uniform texture1D) -0:40 move second child to first child (temp int) -0:40 'WidthI' (temp int) -0:40 Convert uint to int (temp int) -0:40 'sizeQueryTemp' (temp uint) +0: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 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: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 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: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 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: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: @@ -79,34 +81,37 @@ gl_FragCoord origin is upper left 0:47 0.000000 0:47 0.000000 0:47 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:48 color: direct index for structure (temp 4-component vector of float) -0:48 'ps_output' (temp structure{temp 4-component vector of float color}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:? 'g_tTex1df4' (uniform texture1D) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:20 Function Parameters: 0:? Sequence -0:37 clamp (temp float) -0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 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: @@ -114,63 +119,65 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 1.000000 0:40 Sequence -0:40 move second child to first child (temp uint) -0:40 'sizeQueryTemp' (temp uint) -0:40 textureSize (temp uint) -0:40 'g_tTex1df4' (uniform texture1D) -0:40 move second child to first child (temp int) -0:40 'WidthI' (temp int) -0:40 Convert uint to int (temp int) -0:40 'sizeQueryTemp' (temp uint) +0: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 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: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 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: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 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: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: @@ -178,24 +185,27 @@ gl_FragCoord origin is upper left 0:47 0.000000 0:47 0.000000 0:47 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:48 color: direct index for structure (temp 4-component vector of float) -0:48 'ps_output' (temp structure{temp 4-component vector of float color}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:? 'g_tTex1df4' (uniform texture1D) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +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): 80001 -// Id's are bound by 76 +// Generated by (magic number): 80007 +// Id's are bound by 80 Capability Shader Capability Sampled1D @@ -203,135 +213,142 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 68 + EntryPoint Fragment 4 "main" 74 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 12 "$Global" - MemberName 12($Global) 0 "i" - MemberName 12($Global) 1 "u" - MemberName 12($Global) 2 "f" - MemberName 12($Global) 3 "b" - MemberName 12($Global) 4 "i2" - MemberName 12($Global) 5 "u2" - MemberName 12($Global) 6 "f2" - MemberName 12($Global) 7 "b2" - MemberName 12($Global) 8 "upos" - MemberName 12($Global) 9 "fpos" - Name 14 "" - Name 23 "sizeQueryTemp" - Name 26 "g_tTex1df4" - Name 30 "WidthI" - Name 33 "sizeQueryTemp" - Name 39 "NumberOfLevelsU" - Name 42 "sizeQueryTemp" - Name 45 "WidthU" - Name 47 "NumberOfLevelsI" - Name 51 "sizeQueryTemp" - Name 60 "PS_OUTPUT" - MemberName 60(PS_OUTPUT) 0 "color" - Name 62 "ps_output" - Name 68 "color" - Name 75 "g_tTexbfs" - MemberDecorate 12($Global) 0 Offset 0 - MemberDecorate 12($Global) 1 Offset 4 - MemberDecorate 12($Global) 2 Offset 8 - MemberDecorate 12($Global) 3 Offset 12 - MemberDecorate 12($Global) 4 Offset 16 - MemberDecorate 12($Global) 5 Offset 24 - MemberDecorate 12($Global) 6 Offset 32 - MemberDecorate 12($Global) 7 Offset 40 - MemberDecorate 12($Global) 8 Offset 48 - MemberDecorate 12($Global) 9 Offset 52 - Decorate 12($Global) Block - Decorate 14 DescriptorSet 0 - Decorate 26(g_tTex1df4) DescriptorSet 0 - Decorate 68(color) Location 0 - Decorate 75(g_tTexbfs) DescriptorSet 0 + 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: TypeInt 32 1 - 7: TypeInt 32 0 - 8: TypeFloat 32 - 9: TypeVector 6(int) 2 - 10: TypeVector 7(int) 2 - 11: TypeVector 8(float) 2 - 12($Global): TypeStruct 6(int) 7(int) 8(float) 7(int) 9(ivec2) 10(ivec2) 11(fvec2) 10(ivec2) 7(int) 8(float) - 13: TypePointer Uniform 12($Global) - 14: 13(ptr) Variable Uniform - 15: 6(int) Constant 9 - 16: TypePointer Uniform 8(float) - 19: 8(float) Constant 0 - 20: 8(float) Constant 1065353216 - 22: TypePointer Function 7(int) - 24: TypeImage 8(float) 1D sampled format:Unknown - 25: TypePointer UniformConstant 24 - 26(g_tTex1df4): 25(ptr) Variable UniformConstant - 29: TypePointer Function 6(int) - 35: 7(int) Constant 6 - 59: TypeVector 8(float) 4 - 60(PS_OUTPUT): TypeStruct 59(fvec4) - 61: TypePointer Function 60(PS_OUTPUT) - 63: 6(int) Constant 0 - 64: 59(fvec4) ConstantComposite 19 19 19 19 - 65: TypePointer Function 59(fvec4) - 67: TypePointer Output 59(fvec4) - 68(color): 67(ptr) Variable Output - 72: TypeImage 8(float) Buffer sampled format:R32f - 73: TypeSampledImage 72 - 74: TypePointer UniformConstant 73 - 75(g_tTexbfs): 74(ptr) Variable UniformConstant + 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 -23(sizeQueryTemp): 22(ptr) Variable Function - 30(WidthI): 29(ptr) Variable Function -33(sizeQueryTemp): 22(ptr) Variable Function -39(NumberOfLevelsU): 22(ptr) Variable Function -42(sizeQueryTemp): 22(ptr) Variable Function - 45(WidthU): 22(ptr) Variable Function -47(NumberOfLevelsI): 29(ptr) Variable Function -51(sizeQueryTemp): 22(ptr) Variable Function - 62(ps_output): 61(ptr) Variable Function - 17: 16(ptr) AccessChain 14 15 - 18: 8(float) Load 17 - 21: 8(float) ExtInst 1(GLSL.std.450) 43(FClamp) 18 19 20 - 27: 24 Load 26(g_tTex1df4) - 28: 6(int) ImageQuerySize 27 - Store 23(sizeQueryTemp) 28 - 31: 7(int) Load 23(sizeQueryTemp) - 32: 6(int) Bitcast 31 - Store 30(WidthI) 32 - 34: 24 Load 26(g_tTex1df4) - 36: 6(int) ImageQuerySizeLod 34 35 - Store 33(sizeQueryTemp) 36 - 37: 7(int) Load 33(sizeQueryTemp) - 38: 6(int) Bitcast 37 - Store 30(WidthI) 38 - 40: 24 Load 26(g_tTex1df4) - 41: 6(int) ImageQueryLevels 40 - Store 39(NumberOfLevelsU) 41 - 43: 24 Load 26(g_tTex1df4) - 44: 6(int) ImageQuerySizeLod 43 35 - Store 42(sizeQueryTemp) 44 - 46: 7(int) Load 42(sizeQueryTemp) - Store 45(WidthU) 46 - 48: 24 Load 26(g_tTex1df4) - 49: 6(int) ImageQueryLevels 48 - 50: 6(int) Bitcast 49 - Store 47(NumberOfLevelsI) 50 - 52: 24 Load 26(g_tTex1df4) - 53: 6(int) ImageQuerySizeLod 52 35 - Store 51(sizeQueryTemp) 53 - 54: 7(int) Load 51(sizeQueryTemp) - 55: 6(int) Bitcast 54 - Store 30(WidthI) 55 - 56: 24 Load 26(g_tTex1df4) - 57: 6(int) ImageQueryLevels 56 - 58: 6(int) Bitcast 57 - Store 47(NumberOfLevelsI) 58 - 66: 65(ptr) AccessChain 62(ps_output) 63 - Store 66 64 - 69: 65(ptr) AccessChain 62(ps_output) 63 - 70: 59(fvec4) Load 69 - Store 68(color) 70 + 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 index 84146e660e..8e7e3ec618 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.vert.out @@ -1,941 +1,935 @@ hlsl.intrinsics.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) 0:2 Function Parameters: -0:2 'inF0' (in float) -0:2 'inF1' (in float) -0:2 'inF2' (in float) -0:2 'inU0' (in uint) -0:2 'inU1' (in uint) +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inU0' ( in uint) +0:2 'inU1' ( in uint) 0:? Sequence -0:3 all (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 '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: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: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 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 frexp (temp float) -0:31 'inF0' (in float) -0:31 'inF1' (in float) -0:32 isinf (temp bool) -0:32 'inF0' (in float) -0:33 isnan (temp bool) -0:33 'inF0' (in float) -0:34 ldexp (temp float) -0:34 'inF0' (in float) -0:34 'inF1' (in float) -0:35 mix (temp float) -0:35 'inF0' (in float) -0:35 'inF1' (in float) -0:35 'inF2' (in float) -0:36 log (temp float) -0:36 'inF0' (in float) -0:37 component-wise multiply (temp float) -0:37 log2 (temp float) -0:37 'inF0' (in float) -0:37 Constant: -0:37 0.301030 -0:38 log2 (temp float) -0:38 'inF0' (in float) -0:39 max (temp float) -0:39 'inF0' (in float) -0:39 'inF1' (in float) -0:40 min (temp float) -0:40 'inF0' (in float) -0:40 'inF1' (in float) -0:42 pow (temp float) -0:42 'inF0' (in float) -0:42 'inF1' (in float) -0:43 radians (temp float) -0:43 'inF0' (in float) -0:44 bitFieldReverse (temp int) -0:44 Constant: -0:44 2 (const int) -0:45 roundEven (temp float) -0:45 'inF0' (in float) -0:46 inverse sqrt (temp float) -0:46 'inF0' (in float) -0:47 clamp (temp float) -0:47 'inF0' (in float) -0:47 Constant: -0:47 0.000000 -0:47 Constant: -0:47 1.000000 -0:48 Sign (temp float) -0:48 'inF0' (in float) -0:49 sine (temp float) -0:49 'inF0' (in float) -0:50 Sequence -0:50 move second child to first child (temp float) -0:50 'inF1' (in float) -0:50 sine (temp float) -0:50 'inF0' (in float) -0:50 move second child to first child (temp float) -0:50 'inF2' (in float) -0:50 cosine (temp float) -0:50 'inF0' (in float) -0:51 hyp. sine (temp float) -0:51 'inF0' (in float) -0:52 smoothstep (temp float) -0:52 'inF0' (in float) -0:52 'inF1' (in float) -0:52 'inF2' (in float) -0:53 sqrt (temp float) -0:53 'inF0' (in float) -0:54 step (temp float) -0:54 'inF0' (in float) -0:54 'inF1' (in float) -0:55 tangent (temp float) -0:55 'inF0' (in float) -0:56 hyp. tangent (temp float) -0:56 'inF0' (in float) -0:58 trunc (temp float) -0:58 'inF0' (in float) -0:60 Branch: Return with expression -0:60 Constant: -0:60 0.000000 -0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) -0:64 Function Parameters: -0:64 'inF0' (in 1-component vector of float) -0:64 'inF1' (in 1-component vector of float) -0:64 'inF2' (in 1-component vector of float) +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:66 Branch: Return with expression -0:66 Constant: -0:66 0.000000 -0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) -0:70 Function Parameters: -0:70 'inF0' (in 2-component vector of float) -0:70 'inF1' (in 2-component vector of float) -0:70 'inF2' (in 2-component vector of float) -0:70 'inU0' (in 2-component vector of uint) -0:70 'inU1' (in 2-component vector of uint) +0: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:71 all (temp bool) -0:71 'inF0' (in 2-component vector of float) -0:72 Absolute value (temp 2-component vector of float) -0:72 'inF0' (in 2-component vector of float) -0:73 arc cosine (temp 2-component vector of float) -0:73 'inF0' (in 2-component vector of float) -0:74 any (temp bool) -0:74 'inF0' (in 2-component vector of float) -0:75 arc sine (temp 2-component vector of float) -0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToInt (temp 2-component vector of int) -0:76 'inF0' (in 2-component vector of float) -0:77 floatBitsToUint (temp 2-component vector of uint) -0:77 'inF0' (in 2-component vector of float) -0:78 intBitsToFloat (temp 2-component vector of float) -0:78 'inU0' (in 2-component vector of uint) -0:80 arc tangent (temp 2-component vector of float) -0:80 'inF0' (in 2-component vector of float) -0:81 arc tangent (temp 2-component vector of float) -0:81 'inF0' (in 2-component vector of float) -0:81 'inF1' (in 2-component vector of float) -0:82 Ceiling (temp 2-component vector of float) -0:82 'inF0' (in 2-component vector of float) -0:83 clamp (temp 2-component vector of float) -0:83 'inF0' (in 2-component vector of float) -0:83 'inF1' (in 2-component vector of float) -0:83 'inF2' (in 2-component vector of float) -0:84 cosine (temp 2-component vector of float) -0:84 'inF0' (in 2-component vector of float) -0:85 hyp. cosine (temp 2-component vector of float) -0:85 'inF0' (in 2-component vector of float) -0:? bitCount (temp 2-component vector of int) +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:87 degrees (temp 2-component vector of float) -0:87 'inF0' (in 2-component vector of float) -0:88 distance (temp float) -0:88 'inF0' (in 2-component vector of float) -0:88 'inF1' (in 2-component vector of float) -0:89 dot-product (temp float) -0:89 'inF0' (in 2-component vector of float) -0:89 'inF1' (in 2-component vector of float) -0:93 exp (temp 2-component vector of float) -0:93 'inF0' (in 2-component vector of float) -0:94 exp2 (temp 2-component vector of float) -0:94 'inF0' (in 2-component vector of float) -0:95 face-forward (temp 2-component vector of float) -0:95 'inF0' (in 2-component vector of float) -0:95 'inF1' (in 2-component vector of float) -0:95 'inF2' (in 2-component vector of float) -0:96 findMSB (temp 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 findLSB (temp int) -0:97 Constant: -0:97 7 (const int) -0:98 Floor (temp 2-component vector of float) -0:98 'inF0' (in 2-component vector of float) -0:100 mod (temp 2-component vector of float) -0:100 'inF0' (in 2-component vector of float) -0:100 'inF1' (in 2-component vector of float) -0:101 Fraction (temp 2-component vector of float) -0:101 'inF0' (in 2-component vector of float) -0:102 frexp (temp 2-component vector of float) -0:102 'inF0' (in 2-component vector of float) -0:102 'inF1' (in 2-component vector of float) -0:103 isinf (temp 2-component vector of bool) -0:103 'inF0' (in 2-component vector of float) -0:104 isnan (temp 2-component vector of bool) -0:104 'inF0' (in 2-component vector of float) -0:105 ldexp (temp 2-component vector of float) -0:105 'inF0' (in 2-component vector of float) -0:105 'inF1' (in 2-component vector of float) -0:106 mix (temp 2-component vector of float) -0:106 'inF0' (in 2-component vector of float) -0:106 'inF1' (in 2-component vector of float) -0:106 'inF2' (in 2-component vector of float) -0:107 length (temp float) -0:107 'inF0' (in 2-component vector of float) -0:108 log (temp 2-component vector of float) -0:108 'inF0' (in 2-component vector of float) -0:109 vector-scale (temp 2-component vector of float) -0:109 log2 (temp 2-component vector of float) -0:109 'inF0' (in 2-component vector of float) -0:109 Constant: -0:109 0.301030 -0:110 log2 (temp 2-component vector of float) -0:110 'inF0' (in 2-component vector of float) -0:111 max (temp 2-component vector of float) -0:111 'inF0' (in 2-component vector of float) -0:111 'inF1' (in 2-component vector of float) -0:112 min (temp 2-component vector of float) -0:112 'inF0' (in 2-component vector of float) -0:112 'inF1' (in 2-component vector of float) -0:114 normalize (temp 2-component vector of float) -0:114 'inF0' (in 2-component vector of float) -0:115 pow (temp 2-component vector of float) -0:115 'inF0' (in 2-component vector of float) -0:115 'inF1' (in 2-component vector of float) -0:116 radians (temp 2-component vector of float) -0:116 'inF0' (in 2-component vector of float) -0:117 reflect (temp 2-component vector of float) -0:117 'inF0' (in 2-component vector of float) -0:117 'inF1' (in 2-component vector of float) -0:118 refract (temp 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) -0:118 'inF1' (in 2-component vector of float) -0:118 Constant: -0:118 2.000000 -0:? bitFieldReverse (temp 2-component vector of 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:120 roundEven (temp 2-component vector of float) -0:120 'inF0' (in 2-component vector of float) -0:121 inverse sqrt (temp 2-component vector of float) -0:121 'inF0' (in 2-component vector of float) -0:122 clamp (temp 2-component vector of float) -0:122 'inF0' (in 2-component vector of float) -0:122 Constant: -0:122 0.000000 -0:122 Constant: -0:122 1.000000 -0:123 Sign (temp 2-component vector of float) -0:123 'inF0' (in 2-component vector of float) -0:124 sine (temp 2-component vector of float) -0:124 'inF0' (in 2-component vector of float) -0:125 Sequence -0:125 move second child to first child (temp 2-component vector of float) -0:125 'inF1' (in 2-component vector of float) -0:125 sine (temp 2-component vector of float) -0:125 'inF0' (in 2-component vector of float) -0:125 move second child to first child (temp 2-component vector of float) -0:125 'inF2' (in 2-component vector of float) -0:125 cosine (temp 2-component vector of float) -0:125 'inF0' (in 2-component vector of float) -0:126 hyp. sine (temp 2-component vector of float) -0:126 'inF0' (in 2-component vector of float) -0:127 smoothstep (temp 2-component vector of float) -0:127 'inF0' (in 2-component vector of float) -0:127 'inF1' (in 2-component vector of float) -0:127 'inF2' (in 2-component vector of float) -0:128 sqrt (temp 2-component vector of float) -0:128 'inF0' (in 2-component vector of float) -0:129 step (temp 2-component vector of float) -0:129 'inF0' (in 2-component vector of float) -0:129 'inF1' (in 2-component vector of float) -0:130 tangent (temp 2-component vector of float) -0:130 'inF0' (in 2-component vector of float) -0:131 hyp. tangent (temp 2-component vector of float) -0:131 'inF0' (in 2-component vector of float) -0:133 trunc (temp 2-component vector of float) -0:133 'inF0' (in 2-component vector of float) -0:136 Branch: Return with expression +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:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) -0:140 Function Parameters: -0:140 'inF0' (in 3-component vector of float) -0:140 'inF1' (in 3-component vector of float) -0:140 'inF2' (in 3-component vector of float) -0:140 'inU0' (in 3-component vector of uint) -0:140 'inU1' (in 3-component vector of uint) +0: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:141 all (temp bool) -0:141 'inF0' (in 3-component vector of float) -0:142 Absolute value (temp 3-component vector of float) -0:142 'inF0' (in 3-component vector of float) -0:143 arc cosine (temp 3-component vector of float) -0:143 'inF0' (in 3-component vector of float) -0:144 any (temp bool) -0:144 'inF0' (in 3-component vector of float) -0:145 arc sine (temp 3-component vector of float) -0:145 'inF0' (in 3-component vector of float) -0:146 floatBitsToInt (temp 3-component vector of int) -0:146 'inF0' (in 3-component vector of float) -0:147 floatBitsToUint (temp 3-component vector of uint) -0:147 'inF0' (in 3-component vector of float) -0:148 intBitsToFloat (temp 3-component vector of float) -0:148 'inU0' (in 3-component vector of uint) -0:150 arc tangent (temp 3-component vector of float) -0:150 'inF0' (in 3-component vector of float) -0:151 arc tangent (temp 3-component vector of float) -0:151 'inF0' (in 3-component vector of float) -0:151 'inF1' (in 3-component vector of float) -0:152 Ceiling (temp 3-component vector of float) -0:152 'inF0' (in 3-component vector of float) -0:153 clamp (temp 3-component vector of float) -0:153 'inF0' (in 3-component vector of float) -0:153 'inF1' (in 3-component vector of float) -0:153 'inF2' (in 3-component vector of float) -0:154 cosine (temp 3-component vector of float) -0:154 'inF0' (in 3-component vector of float) -0:155 hyp. cosine (temp 3-component vector of float) -0:155 'inF0' (in 3-component vector of float) -0:? bitCount (temp 3-component vector of int) +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:157 cross-product (temp 3-component vector of float) -0:157 'inF0' (in 3-component vector of float) -0:157 'inF1' (in 3-component vector of float) -0:158 degrees (temp 3-component vector of float) -0:158 'inF0' (in 3-component vector of float) -0:159 distance (temp float) -0:159 'inF0' (in 3-component vector of float) -0:159 'inF1' (in 3-component vector of float) -0:160 dot-product (temp float) -0:160 'inF0' (in 3-component vector of float) -0:160 'inF1' (in 3-component vector of float) -0:164 exp (temp 3-component vector of float) -0:164 'inF0' (in 3-component vector of float) -0:165 exp2 (temp 3-component vector of float) -0:165 'inF0' (in 3-component vector of float) -0:166 face-forward (temp 3-component vector of float) -0:166 'inF0' (in 3-component vector of float) -0:166 'inF1' (in 3-component vector of float) -0:166 'inF2' (in 3-component vector of float) -0:167 findMSB (temp int) -0:167 Constant: -0:167 7 (const int) -0:168 findLSB (temp int) -0:168 Constant: -0:168 7 (const int) -0:169 Floor (temp 3-component vector of float) -0:169 'inF0' (in 3-component vector of float) -0:171 mod (temp 3-component vector of float) -0:171 'inF0' (in 3-component vector of float) -0:171 'inF1' (in 3-component vector of float) -0:172 Fraction (temp 3-component vector of float) -0:172 'inF0' (in 3-component vector of float) -0:173 frexp (temp 3-component vector of float) -0:173 'inF0' (in 3-component vector of float) -0:173 'inF1' (in 3-component vector of float) -0:174 isinf (temp 3-component vector of bool) -0:174 'inF0' (in 3-component vector of float) -0:175 isnan (temp 3-component vector of bool) -0:175 'inF0' (in 3-component vector of float) -0:176 ldexp (temp 3-component vector of float) -0:176 'inF0' (in 3-component vector of float) -0:176 'inF1' (in 3-component vector of float) -0:177 mix (temp 3-component vector of float) -0:177 'inF0' (in 3-component vector of float) -0:177 'inF1' (in 3-component vector of float) -0:177 'inF2' (in 3-component vector of float) -0:178 length (temp float) -0:178 'inF0' (in 3-component vector of float) -0:179 log (temp 3-component vector of float) -0:179 'inF0' (in 3-component vector of float) -0:180 vector-scale (temp 3-component vector of float) -0:180 log2 (temp 3-component vector of float) -0:180 'inF0' (in 3-component vector of float) -0:180 Constant: -0:180 0.301030 -0:181 log2 (temp 3-component vector of float) -0:181 'inF0' (in 3-component vector of float) -0:182 max (temp 3-component vector of float) -0:182 'inF0' (in 3-component vector of float) -0:182 'inF1' (in 3-component vector of float) -0:183 min (temp 3-component vector of float) -0:183 'inF0' (in 3-component vector of float) -0:183 'inF1' (in 3-component vector of float) -0:185 normalize (temp 3-component vector of float) -0:185 'inF0' (in 3-component vector of float) -0:186 pow (temp 3-component vector of float) -0:186 'inF0' (in 3-component vector of float) -0:186 'inF1' (in 3-component vector of float) -0:187 radians (temp 3-component vector of float) -0:187 'inF0' (in 3-component vector of float) -0:188 reflect (temp 3-component vector of float) -0:188 'inF0' (in 3-component vector of float) -0:188 'inF1' (in 3-component vector of float) -0:189 refract (temp 3-component vector of float) -0:189 'inF0' (in 3-component vector of float) -0:189 'inF1' (in 3-component vector of float) -0:189 Constant: -0:189 2.000000 -0:? bitFieldReverse (temp 3-component vector of 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:191 roundEven (temp 3-component vector of float) -0:191 'inF0' (in 3-component vector of float) -0:192 inverse sqrt (temp 3-component vector of float) -0:192 'inF0' (in 3-component vector of float) -0:193 clamp (temp 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 1.000000 -0:194 Sign (temp 3-component vector of float) -0:194 'inF0' (in 3-component vector of float) -0:195 sine (temp 3-component vector of float) -0:195 'inF0' (in 3-component vector of float) -0:196 Sequence -0:196 move second child to first child (temp 3-component vector of float) -0:196 'inF1' (in 3-component vector of float) -0:196 sine (temp 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:196 move second child to first child (temp 3-component vector of float) -0:196 'inF2' (in 3-component vector of float) -0:196 cosine (temp 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:197 hyp. sine (temp 3-component vector of float) -0:197 'inF0' (in 3-component vector of float) -0:198 smoothstep (temp 3-component vector of float) -0:198 'inF0' (in 3-component vector of float) -0:198 'inF1' (in 3-component vector of float) -0:198 'inF2' (in 3-component vector of float) -0:199 sqrt (temp 3-component vector of float) -0:199 'inF0' (in 3-component vector of float) -0:200 step (temp 3-component vector of float) -0:200 'inF0' (in 3-component vector of float) -0:200 'inF1' (in 3-component vector of float) -0:201 tangent (temp 3-component vector of float) -0:201 'inF0' (in 3-component vector of float) -0:202 hyp. tangent (temp 3-component vector of float) -0:202 'inF0' (in 3-component vector of float) -0:204 trunc (temp 3-component vector of float) -0:204 'inF0' (in 3-component vector of float) -0:207 Branch: Return with expression +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:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) -0:211 Function Parameters: -0:211 'inF0' (in 4-component vector of float) -0:211 'inF1' (in 4-component vector of float) -0:211 'inF2' (in 4-component vector of float) -0:211 'inU0' (in 4-component vector of uint) -0:211 'inU1' (in 4-component vector of uint) +0: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:212 all (temp bool) -0:212 'inF0' (in 4-component vector of float) -0:213 Absolute value (temp 4-component vector of float) -0:213 'inF0' (in 4-component vector of float) -0:214 arc cosine (temp 4-component vector of float) -0:214 'inF0' (in 4-component vector of float) -0:215 any (temp bool) -0:215 'inF0' (in 4-component vector of float) -0:216 arc sine (temp 4-component vector of float) -0:216 'inF0' (in 4-component vector of float) -0:217 floatBitsToInt (temp 4-component vector of int) -0:217 'inF0' (in 4-component vector of float) -0:218 floatBitsToUint (temp 4-component vector of uint) -0:218 'inF0' (in 4-component vector of float) -0:219 intBitsToFloat (temp 4-component vector of float) -0:219 'inU0' (in 4-component vector of uint) -0:221 arc tangent (temp 4-component vector of float) -0:221 'inF0' (in 4-component vector of float) -0:222 arc tangent (temp 4-component vector of float) -0:222 'inF0' (in 4-component vector of float) -0:222 'inF1' (in 4-component vector of float) -0:223 Ceiling (temp 4-component vector of float) -0:223 'inF0' (in 4-component vector of float) -0:224 clamp (temp 4-component vector of float) -0:224 'inF0' (in 4-component vector of float) -0:224 'inF1' (in 4-component vector of float) -0:224 'inF2' (in 4-component vector of float) -0:225 cosine (temp 4-component vector of float) -0:225 'inF0' (in 4-component vector of float) -0:226 hyp. cosine (temp 4-component vector of float) -0:226 'inF0' (in 4-component vector of float) -0:? bitCount (temp 4-component vector of int) +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:228 degrees (temp 4-component vector of float) -0:228 'inF0' (in 4-component vector of float) -0:229 distance (temp float) -0:229 'inF0' (in 4-component vector of float) -0:229 'inF1' (in 4-component vector of float) -0:230 dot-product (temp float) -0:230 'inF0' (in 4-component vector of float) -0:230 'inF1' (in 4-component vector of float) -0:231 Construct vec4 (temp 4-component vector of float) -0:231 Constant: -0:231 1.000000 -0:231 component-wise multiply (temp float) -0:231 direct index (temp float) -0:231 'inF0' (in 4-component vector of float) -0:231 Constant: -0:231 1 (const int) -0:231 direct index (temp float) -0:231 'inF1' (in 4-component vector of float) -0:231 Constant: -0:231 1 (const int) -0:231 direct index (temp float) -0:231 'inF0' (in 4-component vector of float) -0:231 Constant: -0:231 2 (const int) -0:231 direct index (temp float) -0:231 'inF1' (in 4-component vector of float) -0:231 Constant: -0:231 3 (const int) -0:235 exp (temp 4-component vector of float) -0:235 'inF0' (in 4-component vector of float) -0:236 exp2 (temp 4-component vector of float) -0:236 'inF0' (in 4-component vector of float) -0:237 face-forward (temp 4-component vector of float) -0:237 'inF0' (in 4-component vector of float) -0:237 'inF1' (in 4-component vector of float) -0:237 'inF2' (in 4-component vector of float) -0:238 findMSB (temp int) -0:238 Constant: -0:238 7 (const int) -0:239 findLSB (temp int) -0:239 Constant: -0:239 7 (const int) -0:240 Floor (temp 4-component vector of float) -0:240 'inF0' (in 4-component vector of float) -0:242 mod (temp 4-component vector of float) -0:242 'inF0' (in 4-component vector of float) -0:242 'inF1' (in 4-component vector of float) -0:243 Fraction (temp 4-component vector of float) -0:243 'inF0' (in 4-component vector of float) -0:244 frexp (temp 4-component vector of float) -0:244 'inF0' (in 4-component vector of float) -0:244 'inF1' (in 4-component vector of float) -0:245 isinf (temp 4-component vector of bool) -0:245 'inF0' (in 4-component vector of float) -0:246 isnan (temp 4-component vector of bool) -0:246 'inF0' (in 4-component vector of float) -0:247 ldexp (temp 4-component vector of float) -0:247 'inF0' (in 4-component vector of float) -0:247 'inF1' (in 4-component vector of float) -0:248 mix (temp 4-component vector of float) -0:248 'inF0' (in 4-component vector of float) -0:248 'inF1' (in 4-component vector of float) -0:248 'inF2' (in 4-component vector of float) -0:249 length (temp float) -0:249 'inF0' (in 4-component vector of float) -0:250 log (temp 4-component vector of float) -0:250 'inF0' (in 4-component vector of float) -0:251 vector-scale (temp 4-component vector of float) -0:251 log2 (temp 4-component vector of float) -0:251 'inF0' (in 4-component vector of float) -0:251 Constant: -0:251 0.301030 -0:252 log2 (temp 4-component vector of float) -0:252 'inF0' (in 4-component vector of float) -0:253 max (temp 4-component vector of float) -0:253 'inF0' (in 4-component vector of float) -0:253 'inF1' (in 4-component vector of float) -0:254 min (temp 4-component vector of float) -0:254 'inF0' (in 4-component vector of float) -0:254 'inF1' (in 4-component vector of float) -0:256 normalize (temp 4-component vector of float) -0:256 'inF0' (in 4-component vector of float) -0:257 pow (temp 4-component vector of float) -0:257 'inF0' (in 4-component vector of float) -0:257 'inF1' (in 4-component vector of float) -0:258 radians (temp 4-component vector of float) -0:258 'inF0' (in 4-component vector of float) -0:259 reflect (temp 4-component vector of float) -0:259 'inF0' (in 4-component vector of float) -0:259 'inF1' (in 4-component vector of float) -0:260 refract (temp 4-component vector of float) -0:260 'inF0' (in 4-component vector of float) -0:260 'inF1' (in 4-component vector of float) -0:260 Constant: -0:260 2.000000 -0:? bitFieldReverse (temp 4-component vector of 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:262 roundEven (temp 4-component vector of float) -0:262 'inF0' (in 4-component vector of float) -0:263 inverse sqrt (temp 4-component vector of float) -0:263 'inF0' (in 4-component vector of float) -0:264 clamp (temp 4-component vector of float) -0:264 'inF0' (in 4-component vector of float) -0:264 Constant: -0:264 0.000000 -0:264 Constant: -0:264 1.000000 -0:265 Sign (temp 4-component vector of float) -0:265 'inF0' (in 4-component vector of float) -0:266 sine (temp 4-component vector of float) -0:266 'inF0' (in 4-component vector of float) -0:267 Sequence -0:267 move second child to first child (temp 4-component vector of float) -0:267 'inF1' (in 4-component vector of float) -0:267 sine (temp 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:267 move second child to first child (temp 4-component vector of float) -0:267 'inF2' (in 4-component vector of float) -0:267 cosine (temp 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:268 hyp. sine (temp 4-component vector of float) -0:268 'inF0' (in 4-component vector of float) -0:269 smoothstep (temp 4-component vector of float) -0:269 'inF0' (in 4-component vector of float) -0:269 'inF1' (in 4-component vector of float) -0:269 'inF2' (in 4-component vector of float) -0:270 sqrt (temp 4-component vector of float) -0:270 'inF0' (in 4-component vector of float) -0:271 step (temp 4-component vector of float) -0:271 'inF0' (in 4-component vector of float) -0:271 'inF1' (in 4-component vector of float) -0:272 tangent (temp 4-component vector of float) -0:272 'inF0' (in 4-component vector of float) -0:273 hyp. tangent (temp 4-component vector of float) -0:273 'inF0' (in 4-component vector of float) -0:275 trunc (temp 4-component vector of float) -0:275 'inF0' (in 4-component vector of float) -0:278 Branch: Return with expression +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:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:336 Function Parameters: -0:336 'inF0' (in 2X2 matrix of float) -0:336 'inF1' (in 2X2 matrix of float) -0:336 'inF2' (in 2X2 matrix of float) +0: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:338 all (temp bool) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Absolute value (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 any (temp bool) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 Ceiling (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 degrees (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 determinant (temp float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 exp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 exp2 (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 findMSB (temp int) -0:338 Constant: -0:338 7 (const int) -0:338 findLSB (temp int) -0:338 Constant: -0:338 7 (const int) -0:338 Floor (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 mod (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 Fraction (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 frexp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 ldexp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 mix (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 log (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 matrix-scale (temp 2X2 matrix of float) -0:338 log2 (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Constant: -0:338 0.301030 -0:338 log2 (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 max (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 min (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 pow (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 radians (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 roundEven (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 inverse sqrt (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Constant: -0:338 0.000000 -0:338 Constant: -0:338 1.000000 -0:338 Sign (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Sequence -0:338 move second child to first child (temp 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 move second child to first child (temp 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 smoothstep (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 sqrt (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 step (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 transpose (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 trunc (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:341 Branch: Return with expression +0: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:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:345 Function Parameters: -0:345 'inF0' (in 3X3 matrix of float) -0:345 'inF1' (in 3X3 matrix of float) -0:345 'inF2' (in 3X3 matrix of float) +0: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:347 all (temp bool) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Absolute value (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 any (temp bool) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 Ceiling (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 degrees (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 determinant (temp float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 exp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 exp2 (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 findMSB (temp int) -0:347 Constant: -0:347 7 (const int) -0:347 findLSB (temp int) -0:347 Constant: -0:347 7 (const int) -0:347 Floor (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 mod (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 Fraction (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 frexp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 ldexp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 mix (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 log (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 matrix-scale (temp 3X3 matrix of float) -0:347 log2 (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Constant: -0:347 0.301030 -0:347 log2 (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 max (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 min (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 pow (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 radians (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 roundEven (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 inverse sqrt (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Constant: -0:347 0.000000 -0:347 Constant: -0:347 1.000000 -0:347 Sign (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Sequence -0:347 move second child to first child (temp 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 move second child to first child (temp 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 smoothstep (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 sqrt (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 step (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 transpose (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 trunc (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:350 Branch: Return with expression +0: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 @@ -946,131 +940,130 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:354 Function Parameters: -0:354 'inF0' (in 4X4 matrix of float) -0:354 'inF1' (in 4X4 matrix of float) -0:354 'inF2' (in 4X4 matrix of float) +0: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:356 all (temp bool) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Absolute value (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 any (temp bool) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 Ceiling (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 degrees (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 determinant (temp float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 exp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 exp2 (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 findMSB (temp int) -0:356 Constant: -0:356 7 (const int) -0:356 findLSB (temp int) -0:356 Constant: -0:356 7 (const int) -0:356 Floor (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 mod (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 Fraction (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 frexp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 ldexp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 mix (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 log (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 matrix-scale (temp 4X4 matrix of float) -0:356 log2 (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Constant: -0:356 0.301030 -0:356 log2 (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 max (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 min (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 pow (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 radians (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 roundEven (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 inverse sqrt (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Constant: -0:356 0.000000 -0:356 Constant: -0:356 1.000000 -0:356 Sign (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Sequence -0:356 move second child to first child (temp 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 move second child to first child (temp 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 smoothstep (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 sqrt (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 step (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 transpose (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 trunc (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:359 Branch: Return with expression +0: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 @@ -1088,309 +1081,309 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:377 Function Parameters: -0:377 'inF0' (in float) -0:377 'inF1' (in float) -0:377 'inFV0' (in 2-component vector of float) -0:377 'inFV1' (in 2-component vector of float) -0:377 'inFM0' (in 2X2 matrix of float) -0:377 'inFM1' (in 2X2 matrix of float) +0: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:378 Sequence -0:378 move second child to first child (temp float) -0:378 'r0' (temp float) -0:378 component-wise multiply (temp float) -0:378 'inF1' (in float) -0:378 'inF0' (in float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r1' (temp 2-component vector of float) -0:378 vector-scale (temp 2-component vector of float) -0:378 'inF0' (in float) -0:378 'inFV0' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r2' (temp 2-component vector of float) -0:378 vector-scale (temp 2-component vector of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 'inF0' (in float) -0:378 Sequence -0:378 move second child to first child (temp float) -0:378 'r3' (temp float) -0:378 dot-product (temp float) -0:378 'inFV0' (in 2-component vector of float) -0:378 'inFV1' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r4' (temp 2-component vector of float) -0:378 vector-times-matrix (temp 2-component vector of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r5' (temp 2-component vector of float) -0:378 matrix-times-vector (temp 2-component vector of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2X2 matrix of float) -0:378 'r6' (temp 2X2 matrix of float) -0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inF0' (in float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 Sequence -0:378 move second child to first child (temp 2X2 matrix of float) -0:378 'r7' (temp 2X2 matrix of float) -0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 'inF0' (in float) -0:378 Sequence -0:378 move second child to first child (temp 2X2 matrix of float) -0:378 'r8' (temp 2X2 matrix of float) -0:378 matrix-multiply (temp 2X2 matrix of float) -0:378 'inFM1' (in 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:384 Function Parameters: -0:384 'inF0' (in float) -0:384 'inF1' (in float) -0:384 'inFV0' (in 3-component vector of float) -0:384 'inFV1' (in 3-component vector of float) -0:384 'inFM0' (in 3X3 matrix of float) -0:384 'inFM1' (in 3X3 matrix of float) +0: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:385 Sequence -0:385 move second child to first child (temp float) -0:385 'r0' (temp float) -0:385 component-wise multiply (temp float) -0:385 'inF1' (in float) -0:385 'inF0' (in float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r1' (temp 3-component vector of float) -0:385 vector-scale (temp 3-component vector of float) -0:385 'inF0' (in float) -0:385 'inFV0' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r2' (temp 3-component vector of float) -0:385 vector-scale (temp 3-component vector of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 'inF0' (in float) -0:385 Sequence -0:385 move second child to first child (temp float) -0:385 'r3' (temp float) -0:385 dot-product (temp float) -0:385 'inFV0' (in 3-component vector of float) -0:385 'inFV1' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r4' (temp 3-component vector of float) -0:385 vector-times-matrix (temp 3-component vector of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r5' (temp 3-component vector of float) -0:385 matrix-times-vector (temp 3-component vector of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3X3 matrix of float) -0:385 'r6' (temp 3X3 matrix of float) -0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inF0' (in float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 Sequence -0:385 move second child to first child (temp 3X3 matrix of float) -0:385 'r7' (temp 3X3 matrix of float) -0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 'inF0' (in float) -0:385 Sequence -0:385 move second child to first child (temp 3X3 matrix of float) -0:385 'r8' (temp 3X3 matrix of float) -0:385 matrix-multiply (temp 3X3 matrix of float) -0:385 'inFM1' (in 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:391 Function Parameters: -0:391 'inF0' (in float) -0:391 'inF1' (in float) -0:391 'inFV0' (in 4-component vector of float) -0:391 'inFV1' (in 4-component vector of float) -0:391 'inFM0' (in 4X4 matrix of float) -0:391 'inFM1' (in 4X4 matrix of float) +0: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:392 Sequence -0:392 move second child to first child (temp float) -0:392 'r0' (temp float) -0:392 component-wise multiply (temp float) -0:392 'inF1' (in float) -0:392 'inF0' (in float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r1' (temp 4-component vector of float) -0:392 vector-scale (temp 4-component vector of float) -0:392 'inF0' (in float) -0:392 'inFV0' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r2' (temp 4-component vector of float) -0:392 vector-scale (temp 4-component vector of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 'inF0' (in float) -0:392 Sequence -0:392 move second child to first child (temp float) -0:392 'r3' (temp float) -0:392 dot-product (temp float) -0:392 'inFV0' (in 4-component vector of float) -0:392 'inFV1' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r4' (temp 4-component vector of float) -0:392 vector-times-matrix (temp 4-component vector of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r5' (temp 4-component vector of float) -0:392 matrix-times-vector (temp 4-component vector of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4X4 matrix of float) -0:392 'r6' (temp 4X4 matrix of float) -0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inF0' (in float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 Sequence -0:392 move second child to first child (temp 4X4 matrix of float) -0:392 'r7' (temp 4X4 matrix of float) -0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 'inF0' (in float) -0:392 Sequence -0:392 move second child to first child (temp 4X4 matrix of float) -0:392 'r8' (temp 4X4 matrix of float) -0:392 matrix-multiply (temp 4X4 matrix of float) -0:392 'inFM1' (in 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) -0:401 Function Parameters: -0:401 'inF0' (in float) -0:401 'inF1' (in float) -0:401 'inFV2' (in 2-component vector of float) -0:401 'inFV3' (in 3-component vector of float) -0:401 'inFM2x3' (in 2X3 matrix of float) -0:401 'inFM3x2' (in 3X2 matrix of float) -0:401 'inFM3x3' (in 3X3 matrix of float) -0:401 'inFM3x4' (in 3X4 matrix of float) -0:401 'inFM2x4' (in 2X4 matrix of float) +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 'r00' (temp float) -0:402 component-wise multiply (temp float) -0:402 'inF1' (in float) -0:402 'inF0' (in float) +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 2-component vector of float) -0:403 'r01' (temp 2-component vector of float) -0:403 vector-scale (temp 2-component vector of float) -0:403 'inF0' (in float) -0:403 'inFV2' (in 2-component vector of float) +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 'r02' (temp 3-component vector of float) -0:404 vector-scale (temp 3-component vector of float) -0:404 'inF0' (in float) -0:404 'inFV3' (in 3-component vector of float) +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 'r03' (temp 2-component vector of float) -0:405 vector-scale (temp 2-component vector of float) -0:405 'inFV2' (in 2-component vector of float) -0:405 'inF0' (in float) +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 3-component vector of float) -0:406 'r04' (temp 3-component vector of float) -0:406 vector-scale (temp 3-component vector of float) -0:406 'inFV3' (in 3-component vector of float) -0:406 'inF0' (in float) +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 float) -0:407 'r05' (temp float) -0:407 dot-product (temp float) -0:407 'inFV2' (in 2-component vector of float) -0:407 'inFV2' (in 2-component vector of float) +0: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 float) -0:408 'r06' (temp float) -0:408 dot-product (temp float) -0:408 'inFV3' (in 3-component vector of float) -0:408 'inFV3' (in 3-component vector of float) +0: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 3-component vector of float) -0:409 'r07' (temp 3-component vector of float) -0:409 matrix-times-vector (temp 3-component vector of float) -0:409 'inFM2x3' (in 2X3 matrix of float) -0:409 'inFV2' (in 2-component vector of float) +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 2-component vector of float) -0:410 'r08' (temp 2-component vector of float) -0:410 matrix-times-vector (temp 2-component vector of float) -0:410 'inFM3x2' (in 3X2 matrix of float) -0:410 'inFV3' (in 3-component vector of float) +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 2-component vector of float) -0:411 'r09' (temp 2-component vector of float) -0:411 vector-times-matrix (temp 2-component vector of float) -0:411 'inFV3' (in 3-component vector of float) -0:411 'inFM2x3' (in 2X3 matrix of float) +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 3-component vector of float) -0:412 'r10' (temp 3-component vector of float) -0:412 vector-times-matrix (temp 3-component vector of float) -0:412 'inFV2' (in 2-component vector of float) -0:412 'inFM3x2' (in 3X2 matrix of float) +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 2X3 matrix of float) -0:413 'r11' (temp 2X3 matrix of float) -0:413 matrix-scale (temp 2X3 matrix of float) -0:413 'inF0' (in float) -0:413 'inFM2x3' (in 2X3 matrix of float) -0:414 Sequence -0:414 move second child to first child (temp 3X2 matrix of float) -0:414 'r12' (temp 3X2 matrix of float) -0:414 matrix-scale (temp 3X2 matrix of float) -0:414 'inF0' (in float) -0:414 'inFM3x2' (in 3X2 matrix of float) -0:415 Sequence -0:415 move second child to first child (temp 2X2 matrix of float) -0:415 'r13' (temp 2X2 matrix of float) -0:415 matrix-multiply (temp 2X2 matrix of float) -0:415 'inFM3x2' (in 3X2 matrix of float) -0:415 'inFM2x3' (in 2X3 matrix of float) -0:416 Sequence -0:416 move second child to first child (temp 2X3 matrix of float) -0:416 'r14' (temp 2X3 matrix of float) -0:416 matrix-multiply (temp 2X3 matrix of float) -0:416 'inFM3x3' (in 3X3 matrix of float) -0:416 'inFM2x3' (in 2X3 matrix of float) -0:417 Sequence -0:417 move second child to first child (temp 2X4 matrix of float) -0:417 'r15' (temp 2X4 matrix of float) -0:417 matrix-multiply (temp 2X4 matrix of float) -0:417 'inFM3x4' (in 3X4 matrix of float) -0:417 'inFM2x3' (in 2X3 matrix of float) -0:418 Sequence -0:418 move second child to first child (temp 3X4 matrix of float) -0:418 'r16' (temp 3X4 matrix of float) -0:418 matrix-multiply (temp 3X4 matrix of float) -0:418 'inFM2x4' (in 2X4 matrix of float) -0:418 'inFM3x2' (in 3X2 matrix of float) +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 @@ -1398,943 +1391,937 @@ Linked vertex stage: WARNING: Linking vertex stage: Entry point not found -Shader version: 450 +Shader version: 500 0:? Sequence -0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) 0:2 Function Parameters: -0:2 'inF0' (in float) -0:2 'inF1' (in float) -0:2 'inF2' (in float) -0:2 'inU0' (in uint) -0:2 'inU1' (in uint) +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inU0' ( in uint) +0:2 'inU1' ( in uint) 0:? Sequence -0:3 all (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 '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: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: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 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 frexp (temp float) -0:31 'inF0' (in float) -0:31 'inF1' (in float) -0:32 isinf (temp bool) -0:32 'inF0' (in float) -0:33 isnan (temp bool) -0:33 'inF0' (in float) -0:34 ldexp (temp float) -0:34 'inF0' (in float) -0:34 'inF1' (in float) -0:35 mix (temp float) -0:35 'inF0' (in float) -0:35 'inF1' (in float) -0:35 'inF2' (in float) -0:36 log (temp float) -0:36 'inF0' (in float) -0:37 component-wise multiply (temp float) -0:37 log2 (temp float) -0:37 'inF0' (in float) -0:37 Constant: -0:37 0.301030 -0:38 log2 (temp float) -0:38 'inF0' (in float) -0:39 max (temp float) -0:39 'inF0' (in float) -0:39 'inF1' (in float) -0:40 min (temp float) -0:40 'inF0' (in float) -0:40 'inF1' (in float) -0:42 pow (temp float) -0:42 'inF0' (in float) -0:42 'inF1' (in float) -0:43 radians (temp float) -0:43 'inF0' (in float) -0:44 bitFieldReverse (temp int) -0:44 Constant: -0:44 2 (const int) -0:45 roundEven (temp float) -0:45 'inF0' (in float) -0:46 inverse sqrt (temp float) -0:46 'inF0' (in float) -0:47 clamp (temp float) -0:47 'inF0' (in float) -0:47 Constant: -0:47 0.000000 -0:47 Constant: -0:47 1.000000 -0:48 Sign (temp float) -0:48 'inF0' (in float) -0:49 sine (temp float) -0:49 'inF0' (in float) -0:50 Sequence -0:50 move second child to first child (temp float) -0:50 'inF1' (in float) -0:50 sine (temp float) -0:50 'inF0' (in float) -0:50 move second child to first child (temp float) -0:50 'inF2' (in float) -0:50 cosine (temp float) -0:50 'inF0' (in float) -0:51 hyp. sine (temp float) -0:51 'inF0' (in float) -0:52 smoothstep (temp float) -0:52 'inF0' (in float) -0:52 'inF1' (in float) -0:52 'inF2' (in float) -0:53 sqrt (temp float) -0:53 'inF0' (in float) -0:54 step (temp float) -0:54 'inF0' (in float) -0:54 'inF1' (in float) -0:55 tangent (temp float) -0:55 'inF0' (in float) -0:56 hyp. tangent (temp float) -0:56 'inF0' (in float) -0:58 trunc (temp float) -0:58 'inF0' (in float) -0:60 Branch: Return with expression -0:60 Constant: -0:60 0.000000 -0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) -0:64 Function Parameters: -0:64 'inF0' (in 1-component vector of float) -0:64 'inF1' (in 1-component vector of float) -0:64 'inF2' (in 1-component vector of float) +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:66 Branch: Return with expression -0:66 Constant: -0:66 0.000000 -0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) -0:70 Function Parameters: -0:70 'inF0' (in 2-component vector of float) -0:70 'inF1' (in 2-component vector of float) -0:70 'inF2' (in 2-component vector of float) -0:70 'inU0' (in 2-component vector of uint) -0:70 'inU1' (in 2-component vector of uint) +0: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:71 all (temp bool) -0:71 'inF0' (in 2-component vector of float) -0:72 Absolute value (temp 2-component vector of float) -0:72 'inF0' (in 2-component vector of float) -0:73 arc cosine (temp 2-component vector of float) -0:73 'inF0' (in 2-component vector of float) -0:74 any (temp bool) -0:74 'inF0' (in 2-component vector of float) -0:75 arc sine (temp 2-component vector of float) -0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToInt (temp 2-component vector of int) -0:76 'inF0' (in 2-component vector of float) -0:77 floatBitsToUint (temp 2-component vector of uint) -0:77 'inF0' (in 2-component vector of float) -0:78 intBitsToFloat (temp 2-component vector of float) -0:78 'inU0' (in 2-component vector of uint) -0:80 arc tangent (temp 2-component vector of float) -0:80 'inF0' (in 2-component vector of float) -0:81 arc tangent (temp 2-component vector of float) -0:81 'inF0' (in 2-component vector of float) -0:81 'inF1' (in 2-component vector of float) -0:82 Ceiling (temp 2-component vector of float) -0:82 'inF0' (in 2-component vector of float) -0:83 clamp (temp 2-component vector of float) -0:83 'inF0' (in 2-component vector of float) -0:83 'inF1' (in 2-component vector of float) -0:83 'inF2' (in 2-component vector of float) -0:84 cosine (temp 2-component vector of float) -0:84 'inF0' (in 2-component vector of float) -0:85 hyp. cosine (temp 2-component vector of float) -0:85 'inF0' (in 2-component vector of float) -0:? bitCount (temp 2-component vector of int) +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:87 degrees (temp 2-component vector of float) -0:87 'inF0' (in 2-component vector of float) -0:88 distance (temp float) -0:88 'inF0' (in 2-component vector of float) -0:88 'inF1' (in 2-component vector of float) -0:89 dot-product (temp float) -0:89 'inF0' (in 2-component vector of float) -0:89 'inF1' (in 2-component vector of float) -0:93 exp (temp 2-component vector of float) -0:93 'inF0' (in 2-component vector of float) -0:94 exp2 (temp 2-component vector of float) -0:94 'inF0' (in 2-component vector of float) -0:95 face-forward (temp 2-component vector of float) -0:95 'inF0' (in 2-component vector of float) -0:95 'inF1' (in 2-component vector of float) -0:95 'inF2' (in 2-component vector of float) -0:96 findMSB (temp 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 findLSB (temp int) -0:97 Constant: -0:97 7 (const int) -0:98 Floor (temp 2-component vector of float) -0:98 'inF0' (in 2-component vector of float) -0:100 mod (temp 2-component vector of float) -0:100 'inF0' (in 2-component vector of float) -0:100 'inF1' (in 2-component vector of float) -0:101 Fraction (temp 2-component vector of float) -0:101 'inF0' (in 2-component vector of float) -0:102 frexp (temp 2-component vector of float) -0:102 'inF0' (in 2-component vector of float) -0:102 'inF1' (in 2-component vector of float) -0:103 isinf (temp 2-component vector of bool) -0:103 'inF0' (in 2-component vector of float) -0:104 isnan (temp 2-component vector of bool) -0:104 'inF0' (in 2-component vector of float) -0:105 ldexp (temp 2-component vector of float) -0:105 'inF0' (in 2-component vector of float) -0:105 'inF1' (in 2-component vector of float) -0:106 mix (temp 2-component vector of float) -0:106 'inF0' (in 2-component vector of float) -0:106 'inF1' (in 2-component vector of float) -0:106 'inF2' (in 2-component vector of float) -0:107 length (temp float) -0:107 'inF0' (in 2-component vector of float) -0:108 log (temp 2-component vector of float) -0:108 'inF0' (in 2-component vector of float) -0:109 vector-scale (temp 2-component vector of float) -0:109 log2 (temp 2-component vector of float) -0:109 'inF0' (in 2-component vector of float) -0:109 Constant: -0:109 0.301030 -0:110 log2 (temp 2-component vector of float) -0:110 'inF0' (in 2-component vector of float) -0:111 max (temp 2-component vector of float) -0:111 'inF0' (in 2-component vector of float) -0:111 'inF1' (in 2-component vector of float) -0:112 min (temp 2-component vector of float) -0:112 'inF0' (in 2-component vector of float) -0:112 'inF1' (in 2-component vector of float) -0:114 normalize (temp 2-component vector of float) -0:114 'inF0' (in 2-component vector of float) -0:115 pow (temp 2-component vector of float) -0:115 'inF0' (in 2-component vector of float) -0:115 'inF1' (in 2-component vector of float) -0:116 radians (temp 2-component vector of float) -0:116 'inF0' (in 2-component vector of float) -0:117 reflect (temp 2-component vector of float) -0:117 'inF0' (in 2-component vector of float) -0:117 'inF1' (in 2-component vector of float) -0:118 refract (temp 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) -0:118 'inF1' (in 2-component vector of float) -0:118 Constant: -0:118 2.000000 -0:? bitFieldReverse (temp 2-component vector of 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:120 roundEven (temp 2-component vector of float) -0:120 'inF0' (in 2-component vector of float) -0:121 inverse sqrt (temp 2-component vector of float) -0:121 'inF0' (in 2-component vector of float) -0:122 clamp (temp 2-component vector of float) -0:122 'inF0' (in 2-component vector of float) -0:122 Constant: -0:122 0.000000 -0:122 Constant: -0:122 1.000000 -0:123 Sign (temp 2-component vector of float) -0:123 'inF0' (in 2-component vector of float) -0:124 sine (temp 2-component vector of float) -0:124 'inF0' (in 2-component vector of float) -0:125 Sequence -0:125 move second child to first child (temp 2-component vector of float) -0:125 'inF1' (in 2-component vector of float) -0:125 sine (temp 2-component vector of float) -0:125 'inF0' (in 2-component vector of float) -0:125 move second child to first child (temp 2-component vector of float) -0:125 'inF2' (in 2-component vector of float) -0:125 cosine (temp 2-component vector of float) -0:125 'inF0' (in 2-component vector of float) -0:126 hyp. sine (temp 2-component vector of float) -0:126 'inF0' (in 2-component vector of float) -0:127 smoothstep (temp 2-component vector of float) -0:127 'inF0' (in 2-component vector of float) -0:127 'inF1' (in 2-component vector of float) -0:127 'inF2' (in 2-component vector of float) -0:128 sqrt (temp 2-component vector of float) -0:128 'inF0' (in 2-component vector of float) -0:129 step (temp 2-component vector of float) -0:129 'inF0' (in 2-component vector of float) -0:129 'inF1' (in 2-component vector of float) -0:130 tangent (temp 2-component vector of float) -0:130 'inF0' (in 2-component vector of float) -0:131 hyp. tangent (temp 2-component vector of float) -0:131 'inF0' (in 2-component vector of float) -0:133 trunc (temp 2-component vector of float) -0:133 'inF0' (in 2-component vector of float) -0:136 Branch: Return with expression +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:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) -0:140 Function Parameters: -0:140 'inF0' (in 3-component vector of float) -0:140 'inF1' (in 3-component vector of float) -0:140 'inF2' (in 3-component vector of float) -0:140 'inU0' (in 3-component vector of uint) -0:140 'inU1' (in 3-component vector of uint) +0: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:141 all (temp bool) -0:141 'inF0' (in 3-component vector of float) -0:142 Absolute value (temp 3-component vector of float) -0:142 'inF0' (in 3-component vector of float) -0:143 arc cosine (temp 3-component vector of float) -0:143 'inF0' (in 3-component vector of float) -0:144 any (temp bool) -0:144 'inF0' (in 3-component vector of float) -0:145 arc sine (temp 3-component vector of float) -0:145 'inF0' (in 3-component vector of float) -0:146 floatBitsToInt (temp 3-component vector of int) -0:146 'inF0' (in 3-component vector of float) -0:147 floatBitsToUint (temp 3-component vector of uint) -0:147 'inF0' (in 3-component vector of float) -0:148 intBitsToFloat (temp 3-component vector of float) -0:148 'inU0' (in 3-component vector of uint) -0:150 arc tangent (temp 3-component vector of float) -0:150 'inF0' (in 3-component vector of float) -0:151 arc tangent (temp 3-component vector of float) -0:151 'inF0' (in 3-component vector of float) -0:151 'inF1' (in 3-component vector of float) -0:152 Ceiling (temp 3-component vector of float) -0:152 'inF0' (in 3-component vector of float) -0:153 clamp (temp 3-component vector of float) -0:153 'inF0' (in 3-component vector of float) -0:153 'inF1' (in 3-component vector of float) -0:153 'inF2' (in 3-component vector of float) -0:154 cosine (temp 3-component vector of float) -0:154 'inF0' (in 3-component vector of float) -0:155 hyp. cosine (temp 3-component vector of float) -0:155 'inF0' (in 3-component vector of float) -0:? bitCount (temp 3-component vector of int) +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:157 cross-product (temp 3-component vector of float) -0:157 'inF0' (in 3-component vector of float) -0:157 'inF1' (in 3-component vector of float) -0:158 degrees (temp 3-component vector of float) -0:158 'inF0' (in 3-component vector of float) -0:159 distance (temp float) -0:159 'inF0' (in 3-component vector of float) -0:159 'inF1' (in 3-component vector of float) -0:160 dot-product (temp float) -0:160 'inF0' (in 3-component vector of float) -0:160 'inF1' (in 3-component vector of float) -0:164 exp (temp 3-component vector of float) -0:164 'inF0' (in 3-component vector of float) -0:165 exp2 (temp 3-component vector of float) -0:165 'inF0' (in 3-component vector of float) -0:166 face-forward (temp 3-component vector of float) -0:166 'inF0' (in 3-component vector of float) -0:166 'inF1' (in 3-component vector of float) -0:166 'inF2' (in 3-component vector of float) -0:167 findMSB (temp int) -0:167 Constant: -0:167 7 (const int) -0:168 findLSB (temp int) -0:168 Constant: -0:168 7 (const int) -0:169 Floor (temp 3-component vector of float) -0:169 'inF0' (in 3-component vector of float) -0:171 mod (temp 3-component vector of float) -0:171 'inF0' (in 3-component vector of float) -0:171 'inF1' (in 3-component vector of float) -0:172 Fraction (temp 3-component vector of float) -0:172 'inF0' (in 3-component vector of float) -0:173 frexp (temp 3-component vector of float) -0:173 'inF0' (in 3-component vector of float) -0:173 'inF1' (in 3-component vector of float) -0:174 isinf (temp 3-component vector of bool) -0:174 'inF0' (in 3-component vector of float) -0:175 isnan (temp 3-component vector of bool) -0:175 'inF0' (in 3-component vector of float) -0:176 ldexp (temp 3-component vector of float) -0:176 'inF0' (in 3-component vector of float) -0:176 'inF1' (in 3-component vector of float) -0:177 mix (temp 3-component vector of float) -0:177 'inF0' (in 3-component vector of float) -0:177 'inF1' (in 3-component vector of float) -0:177 'inF2' (in 3-component vector of float) -0:178 length (temp float) -0:178 'inF0' (in 3-component vector of float) -0:179 log (temp 3-component vector of float) -0:179 'inF0' (in 3-component vector of float) -0:180 vector-scale (temp 3-component vector of float) -0:180 log2 (temp 3-component vector of float) -0:180 'inF0' (in 3-component vector of float) -0:180 Constant: -0:180 0.301030 -0:181 log2 (temp 3-component vector of float) -0:181 'inF0' (in 3-component vector of float) -0:182 max (temp 3-component vector of float) -0:182 'inF0' (in 3-component vector of float) -0:182 'inF1' (in 3-component vector of float) -0:183 min (temp 3-component vector of float) -0:183 'inF0' (in 3-component vector of float) -0:183 'inF1' (in 3-component vector of float) -0:185 normalize (temp 3-component vector of float) -0:185 'inF0' (in 3-component vector of float) -0:186 pow (temp 3-component vector of float) -0:186 'inF0' (in 3-component vector of float) -0:186 'inF1' (in 3-component vector of float) -0:187 radians (temp 3-component vector of float) -0:187 'inF0' (in 3-component vector of float) -0:188 reflect (temp 3-component vector of float) -0:188 'inF0' (in 3-component vector of float) -0:188 'inF1' (in 3-component vector of float) -0:189 refract (temp 3-component vector of float) -0:189 'inF0' (in 3-component vector of float) -0:189 'inF1' (in 3-component vector of float) -0:189 Constant: -0:189 2.000000 -0:? bitFieldReverse (temp 3-component vector of 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:191 roundEven (temp 3-component vector of float) -0:191 'inF0' (in 3-component vector of float) -0:192 inverse sqrt (temp 3-component vector of float) -0:192 'inF0' (in 3-component vector of float) -0:193 clamp (temp 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 1.000000 -0:194 Sign (temp 3-component vector of float) -0:194 'inF0' (in 3-component vector of float) -0:195 sine (temp 3-component vector of float) -0:195 'inF0' (in 3-component vector of float) -0:196 Sequence -0:196 move second child to first child (temp 3-component vector of float) -0:196 'inF1' (in 3-component vector of float) -0:196 sine (temp 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:196 move second child to first child (temp 3-component vector of float) -0:196 'inF2' (in 3-component vector of float) -0:196 cosine (temp 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:197 hyp. sine (temp 3-component vector of float) -0:197 'inF0' (in 3-component vector of float) -0:198 smoothstep (temp 3-component vector of float) -0:198 'inF0' (in 3-component vector of float) -0:198 'inF1' (in 3-component vector of float) -0:198 'inF2' (in 3-component vector of float) -0:199 sqrt (temp 3-component vector of float) -0:199 'inF0' (in 3-component vector of float) -0:200 step (temp 3-component vector of float) -0:200 'inF0' (in 3-component vector of float) -0:200 'inF1' (in 3-component vector of float) -0:201 tangent (temp 3-component vector of float) -0:201 'inF0' (in 3-component vector of float) -0:202 hyp. tangent (temp 3-component vector of float) -0:202 'inF0' (in 3-component vector of float) -0:204 trunc (temp 3-component vector of float) -0:204 'inF0' (in 3-component vector of float) -0:207 Branch: Return with expression +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:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) -0:211 Function Parameters: -0:211 'inF0' (in 4-component vector of float) -0:211 'inF1' (in 4-component vector of float) -0:211 'inF2' (in 4-component vector of float) -0:211 'inU0' (in 4-component vector of uint) -0:211 'inU1' (in 4-component vector of uint) +0: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:212 all (temp bool) -0:212 'inF0' (in 4-component vector of float) -0:213 Absolute value (temp 4-component vector of float) -0:213 'inF0' (in 4-component vector of float) -0:214 arc cosine (temp 4-component vector of float) -0:214 'inF0' (in 4-component vector of float) -0:215 any (temp bool) -0:215 'inF0' (in 4-component vector of float) -0:216 arc sine (temp 4-component vector of float) -0:216 'inF0' (in 4-component vector of float) -0:217 floatBitsToInt (temp 4-component vector of int) -0:217 'inF0' (in 4-component vector of float) -0:218 floatBitsToUint (temp 4-component vector of uint) -0:218 'inF0' (in 4-component vector of float) -0:219 intBitsToFloat (temp 4-component vector of float) -0:219 'inU0' (in 4-component vector of uint) -0:221 arc tangent (temp 4-component vector of float) -0:221 'inF0' (in 4-component vector of float) -0:222 arc tangent (temp 4-component vector of float) -0:222 'inF0' (in 4-component vector of float) -0:222 'inF1' (in 4-component vector of float) -0:223 Ceiling (temp 4-component vector of float) -0:223 'inF0' (in 4-component vector of float) -0:224 clamp (temp 4-component vector of float) -0:224 'inF0' (in 4-component vector of float) -0:224 'inF1' (in 4-component vector of float) -0:224 'inF2' (in 4-component vector of float) -0:225 cosine (temp 4-component vector of float) -0:225 'inF0' (in 4-component vector of float) -0:226 hyp. cosine (temp 4-component vector of float) -0:226 'inF0' (in 4-component vector of float) -0:? bitCount (temp 4-component vector of int) +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:228 degrees (temp 4-component vector of float) -0:228 'inF0' (in 4-component vector of float) -0:229 distance (temp float) -0:229 'inF0' (in 4-component vector of float) -0:229 'inF1' (in 4-component vector of float) -0:230 dot-product (temp float) -0:230 'inF0' (in 4-component vector of float) -0:230 'inF1' (in 4-component vector of float) -0:231 Construct vec4 (temp 4-component vector of float) -0:231 Constant: -0:231 1.000000 -0:231 component-wise multiply (temp float) -0:231 direct index (temp float) -0:231 'inF0' (in 4-component vector of float) -0:231 Constant: -0:231 1 (const int) -0:231 direct index (temp float) -0:231 'inF1' (in 4-component vector of float) -0:231 Constant: -0:231 1 (const int) -0:231 direct index (temp float) -0:231 'inF0' (in 4-component vector of float) -0:231 Constant: -0:231 2 (const int) -0:231 direct index (temp float) -0:231 'inF1' (in 4-component vector of float) -0:231 Constant: -0:231 3 (const int) -0:235 exp (temp 4-component vector of float) -0:235 'inF0' (in 4-component vector of float) -0:236 exp2 (temp 4-component vector of float) -0:236 'inF0' (in 4-component vector of float) -0:237 face-forward (temp 4-component vector of float) -0:237 'inF0' (in 4-component vector of float) -0:237 'inF1' (in 4-component vector of float) -0:237 'inF2' (in 4-component vector of float) -0:238 findMSB (temp int) -0:238 Constant: -0:238 7 (const int) -0:239 findLSB (temp int) -0:239 Constant: -0:239 7 (const int) -0:240 Floor (temp 4-component vector of float) -0:240 'inF0' (in 4-component vector of float) -0:242 mod (temp 4-component vector of float) -0:242 'inF0' (in 4-component vector of float) -0:242 'inF1' (in 4-component vector of float) -0:243 Fraction (temp 4-component vector of float) -0:243 'inF0' (in 4-component vector of float) -0:244 frexp (temp 4-component vector of float) -0:244 'inF0' (in 4-component vector of float) -0:244 'inF1' (in 4-component vector of float) -0:245 isinf (temp 4-component vector of bool) -0:245 'inF0' (in 4-component vector of float) -0:246 isnan (temp 4-component vector of bool) -0:246 'inF0' (in 4-component vector of float) -0:247 ldexp (temp 4-component vector of float) -0:247 'inF0' (in 4-component vector of float) -0:247 'inF1' (in 4-component vector of float) -0:248 mix (temp 4-component vector of float) -0:248 'inF0' (in 4-component vector of float) -0:248 'inF1' (in 4-component vector of float) -0:248 'inF2' (in 4-component vector of float) -0:249 length (temp float) -0:249 'inF0' (in 4-component vector of float) -0:250 log (temp 4-component vector of float) -0:250 'inF0' (in 4-component vector of float) -0:251 vector-scale (temp 4-component vector of float) -0:251 log2 (temp 4-component vector of float) -0:251 'inF0' (in 4-component vector of float) -0:251 Constant: -0:251 0.301030 -0:252 log2 (temp 4-component vector of float) -0:252 'inF0' (in 4-component vector of float) -0:253 max (temp 4-component vector of float) -0:253 'inF0' (in 4-component vector of float) -0:253 'inF1' (in 4-component vector of float) -0:254 min (temp 4-component vector of float) -0:254 'inF0' (in 4-component vector of float) -0:254 'inF1' (in 4-component vector of float) -0:256 normalize (temp 4-component vector of float) -0:256 'inF0' (in 4-component vector of float) -0:257 pow (temp 4-component vector of float) -0:257 'inF0' (in 4-component vector of float) -0:257 'inF1' (in 4-component vector of float) -0:258 radians (temp 4-component vector of float) -0:258 'inF0' (in 4-component vector of float) -0:259 reflect (temp 4-component vector of float) -0:259 'inF0' (in 4-component vector of float) -0:259 'inF1' (in 4-component vector of float) -0:260 refract (temp 4-component vector of float) -0:260 'inF0' (in 4-component vector of float) -0:260 'inF1' (in 4-component vector of float) -0:260 Constant: -0:260 2.000000 -0:? bitFieldReverse (temp 4-component vector of 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:262 roundEven (temp 4-component vector of float) -0:262 'inF0' (in 4-component vector of float) -0:263 inverse sqrt (temp 4-component vector of float) -0:263 'inF0' (in 4-component vector of float) -0:264 clamp (temp 4-component vector of float) -0:264 'inF0' (in 4-component vector of float) -0:264 Constant: -0:264 0.000000 -0:264 Constant: -0:264 1.000000 -0:265 Sign (temp 4-component vector of float) -0:265 'inF0' (in 4-component vector of float) -0:266 sine (temp 4-component vector of float) -0:266 'inF0' (in 4-component vector of float) -0:267 Sequence -0:267 move second child to first child (temp 4-component vector of float) -0:267 'inF1' (in 4-component vector of float) -0:267 sine (temp 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:267 move second child to first child (temp 4-component vector of float) -0:267 'inF2' (in 4-component vector of float) -0:267 cosine (temp 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:268 hyp. sine (temp 4-component vector of float) -0:268 'inF0' (in 4-component vector of float) -0:269 smoothstep (temp 4-component vector of float) -0:269 'inF0' (in 4-component vector of float) -0:269 'inF1' (in 4-component vector of float) -0:269 'inF2' (in 4-component vector of float) -0:270 sqrt (temp 4-component vector of float) -0:270 'inF0' (in 4-component vector of float) -0:271 step (temp 4-component vector of float) -0:271 'inF0' (in 4-component vector of float) -0:271 'inF1' (in 4-component vector of float) -0:272 tangent (temp 4-component vector of float) -0:272 'inF0' (in 4-component vector of float) -0:273 hyp. tangent (temp 4-component vector of float) -0:273 'inF0' (in 4-component vector of float) -0:275 trunc (temp 4-component vector of float) -0:275 'inF0' (in 4-component vector of float) -0:278 Branch: Return with expression +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:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:336 Function Parameters: -0:336 'inF0' (in 2X2 matrix of float) -0:336 'inF1' (in 2X2 matrix of float) -0:336 'inF2' (in 2X2 matrix of float) +0: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:338 all (temp bool) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Absolute value (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 any (temp bool) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 Ceiling (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 degrees (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 determinant (temp float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 exp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 exp2 (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 findMSB (temp int) -0:338 Constant: -0:338 7 (const int) -0:338 findLSB (temp int) -0:338 Constant: -0:338 7 (const int) -0:338 Floor (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 mod (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 Fraction (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 frexp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 ldexp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 mix (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 log (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 matrix-scale (temp 2X2 matrix of float) -0:338 log2 (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Constant: -0:338 0.301030 -0:338 log2 (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 max (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 min (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 pow (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 radians (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 roundEven (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 inverse sqrt (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Constant: -0:338 0.000000 -0:338 Constant: -0:338 1.000000 -0:338 Sign (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 Sequence -0:338 move second child to first child (temp 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 move second child to first child (temp 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. sine (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 smoothstep (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 'inF2' (in 2X2 matrix of float) -0:338 sqrt (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 step (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 'inF1' (in 2X2 matrix of float) -0:338 tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. tangent (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 transpose (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:338 trunc (temp 2X2 matrix of float) -0:338 'inF0' (in 2X2 matrix of float) -0:341 Branch: Return with expression +0: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:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:345 Function Parameters: -0:345 'inF0' (in 3X3 matrix of float) -0:345 'inF1' (in 3X3 matrix of float) -0:345 'inF2' (in 3X3 matrix of float) +0: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:347 all (temp bool) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Absolute value (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 any (temp bool) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 Ceiling (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 degrees (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 determinant (temp float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 exp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 exp2 (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 findMSB (temp int) -0:347 Constant: -0:347 7 (const int) -0:347 findLSB (temp int) -0:347 Constant: -0:347 7 (const int) -0:347 Floor (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 mod (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 Fraction (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 frexp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 ldexp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 mix (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 log (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 matrix-scale (temp 3X3 matrix of float) -0:347 log2 (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Constant: -0:347 0.301030 -0:347 log2 (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 max (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 min (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 pow (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 radians (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 roundEven (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 inverse sqrt (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Constant: -0:347 0.000000 -0:347 Constant: -0:347 1.000000 -0:347 Sign (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 Sequence -0:347 move second child to first child (temp 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 move second child to first child (temp 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. sine (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 smoothstep (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 'inF2' (in 3X3 matrix of float) -0:347 sqrt (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 step (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 'inF1' (in 3X3 matrix of float) -0:347 tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. tangent (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 transpose (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:347 trunc (temp 3X3 matrix of float) -0:347 'inF0' (in 3X3 matrix of float) -0:350 Branch: Return with expression +0: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 @@ -2345,131 +2332,130 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:354 Function Parameters: -0:354 'inF0' (in 4X4 matrix of float) -0:354 'inF1' (in 4X4 matrix of float) -0:354 'inF2' (in 4X4 matrix of float) +0: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:356 all (temp bool) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Absolute value (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 any (temp bool) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 Ceiling (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 degrees (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 determinant (temp float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 exp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 exp2 (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 findMSB (temp int) -0:356 Constant: -0:356 7 (const int) -0:356 findLSB (temp int) -0:356 Constant: -0:356 7 (const int) -0:356 Floor (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 mod (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 Fraction (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 frexp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 ldexp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 mix (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 log (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 matrix-scale (temp 4X4 matrix of float) -0:356 log2 (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Constant: -0:356 0.301030 -0:356 log2 (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 max (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 min (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 pow (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 radians (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 roundEven (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 inverse sqrt (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Constant: -0:356 0.000000 -0:356 Constant: -0:356 1.000000 -0:356 Sign (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 Sequence -0:356 move second child to first child (temp 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 move second child to first child (temp 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. sine (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 smoothstep (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 'inF2' (in 4X4 matrix of float) -0:356 sqrt (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 step (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 'inF1' (in 4X4 matrix of float) -0:356 tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. tangent (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 transpose (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:356 trunc (temp 4X4 matrix of float) -0:356 'inF0' (in 4X4 matrix of float) -0:359 Branch: Return with expression +0: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 @@ -2487,319 +2473,320 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:377 Function Parameters: -0:377 'inF0' (in float) -0:377 'inF1' (in float) -0:377 'inFV0' (in 2-component vector of float) -0:377 'inFV1' (in 2-component vector of float) -0:377 'inFM0' (in 2X2 matrix of float) -0:377 'inFM1' (in 2X2 matrix of float) +0: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:378 Sequence -0:378 move second child to first child (temp float) -0:378 'r0' (temp float) -0:378 component-wise multiply (temp float) -0:378 'inF1' (in float) -0:378 'inF0' (in float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r1' (temp 2-component vector of float) -0:378 vector-scale (temp 2-component vector of float) -0:378 'inF0' (in float) -0:378 'inFV0' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r2' (temp 2-component vector of float) -0:378 vector-scale (temp 2-component vector of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 'inF0' (in float) -0:378 Sequence -0:378 move second child to first child (temp float) -0:378 'r3' (temp float) -0:378 dot-product (temp float) -0:378 'inFV0' (in 2-component vector of float) -0:378 'inFV1' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r4' (temp 2-component vector of float) -0:378 vector-times-matrix (temp 2-component vector of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r5' (temp 2-component vector of float) -0:378 matrix-times-vector (temp 2-component vector of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2X2 matrix of float) -0:378 'r6' (temp 2X2 matrix of float) -0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inF0' (in float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 Sequence -0:378 move second child to first child (temp 2X2 matrix of float) -0:378 'r7' (temp 2X2 matrix of float) -0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 'inF0' (in float) -0:378 Sequence -0:378 move second child to first child (temp 2X2 matrix of float) -0:378 'r8' (temp 2X2 matrix of float) -0:378 matrix-multiply (temp 2X2 matrix of float) -0:378 'inFM1' (in 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:384 Function Parameters: -0:384 'inF0' (in float) -0:384 'inF1' (in float) -0:384 'inFV0' (in 3-component vector of float) -0:384 'inFV1' (in 3-component vector of float) -0:384 'inFM0' (in 3X3 matrix of float) -0:384 'inFM1' (in 3X3 matrix of float) +0: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:385 Sequence -0:385 move second child to first child (temp float) -0:385 'r0' (temp float) -0:385 component-wise multiply (temp float) -0:385 'inF1' (in float) -0:385 'inF0' (in float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r1' (temp 3-component vector of float) -0:385 vector-scale (temp 3-component vector of float) -0:385 'inF0' (in float) -0:385 'inFV0' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r2' (temp 3-component vector of float) -0:385 vector-scale (temp 3-component vector of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 'inF0' (in float) -0:385 Sequence -0:385 move second child to first child (temp float) -0:385 'r3' (temp float) -0:385 dot-product (temp float) -0:385 'inFV0' (in 3-component vector of float) -0:385 'inFV1' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r4' (temp 3-component vector of float) -0:385 vector-times-matrix (temp 3-component vector of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r5' (temp 3-component vector of float) -0:385 matrix-times-vector (temp 3-component vector of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3X3 matrix of float) -0:385 'r6' (temp 3X3 matrix of float) -0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inF0' (in float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 Sequence -0:385 move second child to first child (temp 3X3 matrix of float) -0:385 'r7' (temp 3X3 matrix of float) -0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 'inF0' (in float) -0:385 Sequence -0:385 move second child to first child (temp 3X3 matrix of float) -0:385 'r8' (temp 3X3 matrix of float) -0:385 matrix-multiply (temp 3X3 matrix of float) -0:385 'inFM1' (in 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:391 Function Parameters: -0:391 'inF0' (in float) -0:391 'inF1' (in float) -0:391 'inFV0' (in 4-component vector of float) -0:391 'inFV1' (in 4-component vector of float) -0:391 'inFM0' (in 4X4 matrix of float) -0:391 'inFM1' (in 4X4 matrix of float) +0: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:392 Sequence -0:392 move second child to first child (temp float) -0:392 'r0' (temp float) -0:392 component-wise multiply (temp float) -0:392 'inF1' (in float) -0:392 'inF0' (in float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r1' (temp 4-component vector of float) -0:392 vector-scale (temp 4-component vector of float) -0:392 'inF0' (in float) -0:392 'inFV0' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r2' (temp 4-component vector of float) -0:392 vector-scale (temp 4-component vector of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 'inF0' (in float) -0:392 Sequence -0:392 move second child to first child (temp float) -0:392 'r3' (temp float) -0:392 dot-product (temp float) -0:392 'inFV0' (in 4-component vector of float) -0:392 'inFV1' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r4' (temp 4-component vector of float) -0:392 vector-times-matrix (temp 4-component vector of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r5' (temp 4-component vector of float) -0:392 matrix-times-vector (temp 4-component vector of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4X4 matrix of float) -0:392 'r6' (temp 4X4 matrix of float) -0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inF0' (in float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 Sequence -0:392 move second child to first child (temp 4X4 matrix of float) -0:392 'r7' (temp 4X4 matrix of float) -0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 'inF0' (in float) -0:392 Sequence -0:392 move second child to first child (temp 4X4 matrix of float) -0:392 'r8' (temp 4X4 matrix of float) -0:392 matrix-multiply (temp 4X4 matrix of float) -0:392 'inFM1' (in 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) -0:401 Function Parameters: -0:401 'inF0' (in float) -0:401 'inF1' (in float) -0:401 'inFV2' (in 2-component vector of float) -0:401 'inFV3' (in 3-component vector of float) -0:401 'inFM2x3' (in 2X3 matrix of float) -0:401 'inFM3x2' (in 3X2 matrix of float) -0:401 'inFM3x3' (in 3X3 matrix of float) -0:401 'inFM3x4' (in 3X4 matrix of float) -0:401 'inFM2x4' (in 2X4 matrix of float) +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 'r00' (temp float) -0:402 component-wise multiply (temp float) -0:402 'inF1' (in float) -0:402 'inF0' (in float) +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 2-component vector of float) -0:403 'r01' (temp 2-component vector of float) -0:403 vector-scale (temp 2-component vector of float) -0:403 'inF0' (in float) -0:403 'inFV2' (in 2-component vector of float) +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 'r02' (temp 3-component vector of float) -0:404 vector-scale (temp 3-component vector of float) -0:404 'inF0' (in float) -0:404 'inFV3' (in 3-component vector of float) +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 'r03' (temp 2-component vector of float) -0:405 vector-scale (temp 2-component vector of float) -0:405 'inFV2' (in 2-component vector of float) -0:405 'inF0' (in float) +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 3-component vector of float) -0:406 'r04' (temp 3-component vector of float) -0:406 vector-scale (temp 3-component vector of float) -0:406 'inFV3' (in 3-component vector of float) -0:406 'inF0' (in float) +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 float) -0:407 'r05' (temp float) -0:407 dot-product (temp float) -0:407 'inFV2' (in 2-component vector of float) -0:407 'inFV2' (in 2-component vector of float) +0: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 float) -0:408 'r06' (temp float) -0:408 dot-product (temp float) -0:408 'inFV3' (in 3-component vector of float) -0:408 'inFV3' (in 3-component vector of float) +0: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 3-component vector of float) -0:409 'r07' (temp 3-component vector of float) -0:409 matrix-times-vector (temp 3-component vector of float) -0:409 'inFM2x3' (in 2X3 matrix of float) -0:409 'inFV2' (in 2-component vector of float) +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 2-component vector of float) -0:410 'r08' (temp 2-component vector of float) -0:410 matrix-times-vector (temp 2-component vector of float) -0:410 'inFM3x2' (in 3X2 matrix of float) -0:410 'inFV3' (in 3-component vector of float) +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 2-component vector of float) -0:411 'r09' (temp 2-component vector of float) -0:411 vector-times-matrix (temp 2-component vector of float) -0:411 'inFV3' (in 3-component vector of float) -0:411 'inFM2x3' (in 2X3 matrix of float) +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 3-component vector of float) -0:412 'r10' (temp 3-component vector of float) -0:412 vector-times-matrix (temp 3-component vector of float) -0:412 'inFV2' (in 2-component vector of float) -0:412 'inFM3x2' (in 3X2 matrix of float) +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 2X3 matrix of float) -0:413 'r11' (temp 2X3 matrix of float) -0:413 matrix-scale (temp 2X3 matrix of float) -0:413 'inF0' (in float) -0:413 'inFM2x3' (in 2X3 matrix of float) -0:414 Sequence -0:414 move second child to first child (temp 3X2 matrix of float) -0:414 'r12' (temp 3X2 matrix of float) -0:414 matrix-scale (temp 3X2 matrix of float) -0:414 'inF0' (in float) -0:414 'inFM3x2' (in 3X2 matrix of float) -0:415 Sequence -0:415 move second child to first child (temp 2X2 matrix of float) -0:415 'r13' (temp 2X2 matrix of float) -0:415 matrix-multiply (temp 2X2 matrix of float) -0:415 'inFM3x2' (in 3X2 matrix of float) -0:415 'inFM2x3' (in 2X3 matrix of float) -0:416 Sequence -0:416 move second child to first child (temp 2X3 matrix of float) -0:416 'r14' (temp 2X3 matrix of float) -0:416 matrix-multiply (temp 2X3 matrix of float) -0:416 'inFM3x3' (in 3X3 matrix of float) -0:416 'inFM2x3' (in 2X3 matrix of float) -0:417 Sequence -0:417 move second child to first child (temp 2X4 matrix of float) -0:417 'r15' (temp 2X4 matrix of float) -0:417 matrix-multiply (temp 2X4 matrix of float) -0:417 'inFM3x4' (in 3X4 matrix of float) -0:417 'inFM2x3' (in 2X3 matrix of float) -0:418 Sequence -0:418 move second child to first child (temp 3X4 matrix of float) -0:418 'r16' (temp 3X4 matrix of float) -0:418 matrix-multiply (temp 3X4 matrix of float) -0:418 'inFM2x4' (in 2X4 matrix of float) -0:418 'inFM3x2' (in 3X2 matrix of float) +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): 80001 -// Id's are bound by 1240 +// 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" @@ -2872,57 +2859,50 @@ Shader version: 450 Name 126 "inFM3x3" Name 127 "inFM3x4" Name 128 "inFM2x4" - Name 182 "ResType" - Name 316 "ResType" - Name 464 "ResType" - Name 620 "ResType" - Name 753 "ResType" - Name 873 "ResType" - Name 996 "ResType" - Name 1064 "r0" - Name 1068 "r1" - Name 1072 "r2" - Name 1076 "r3" - Name 1080 "r4" - Name 1084 "r5" - Name 1088 "r6" - Name 1092 "r7" - Name 1096 "r8" - Name 1100 "r0" - Name 1104 "r1" - Name 1108 "r2" - Name 1112 "r3" - Name 1116 "r4" - Name 1120 "r5" - Name 1124 "r6" - Name 1128 "r7" - Name 1132 "r8" - Name 1136 "r0" - Name 1140 "r1" - Name 1144 "r2" - Name 1148 "r3" - Name 1152 "r4" - Name 1156 "r5" - Name 1160 "r6" - Name 1164 "r7" - Name 1168 "r8" - Name 1172 "r00" - Name 1176 "r01" - Name 1180 "r02" - Name 1184 "r03" - Name 1188 "r04" - Name 1192 "r05" - Name 1196 "r06" - Name 1200 "r07" - Name 1204 "r08" - Name 1208 "r09" - Name 1212 "r10" - Name 1216 "r11" - Name 1220 "r12" - Name 1224 "r13" - Name 1228 "r14" - Name 1232 "r15" - Name 1236 "r16" + 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 @@ -2968,50 +2948,49 @@ Shader version: 450 118: TypePointer Function 117 119: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 112(ptr) 114(ptr) 69(ptr) 116(ptr) 118(ptr) 132: TypeBool - 143: TypeInt 32 1 - 164: 143(int) Constant 7 - 182(ResType): TypeStruct 6(float) 143(int) - 201: 6(float) Constant 1050288283 - 216: 143(int) Constant 2 - 223: 6(float) Constant 0 - 224: 6(float) Constant 1065353216 - 266: TypeVector 143(int) 2 - 287: 143(int) Constant 3 - 288: 266(ivec2) ConstantComposite 164 287 - 316(ResType): TypeStruct 24(fvec2) 266(ivec2) - 321: TypeVector 132(bool) 2 - 359: 6(float) Constant 1073741824 - 361: 143(int) Constant 1 - 362: 266(ivec2) ConstantComposite 361 216 - 397: 24(fvec2) ConstantComposite 224 359 - 411: TypeVector 143(int) 3 - 432: 143(int) Constant 5 - 433: 411(ivec3) ConstantComposite 164 287 432 - 464(ResType): TypeStruct 36(fvec3) 411(ivec3) - 469: TypeVector 132(bool) 3 - 508: 411(ivec3) ConstantComposite 361 216 287 - 543: 6(float) Constant 1077936128 - 544: 36(fvec3) ConstantComposite 224 359 543 - 558: TypeVector 143(int) 4 - 579: 558(ivec4) ConstantComposite 164 287 432 216 - 589: 8(int) Constant 1 - 595: 8(int) Constant 2 - 598: 8(int) Constant 3 - 620(ResType): TypeStruct 48(fvec4) 558(ivec4) - 625: TypeVector 132(bool) 4 - 664: 143(int) Constant 4 - 665: 558(ivec4) ConstantComposite 361 216 287 664 - 700: 6(float) Constant 1082130432 - 701: 48(fvec4) ConstantComposite 224 359 543 700 - 753(ResType): TypeStruct 60 266(ivec2) - 817: 24(fvec2) ConstantComposite 359 359 - 818: 60 ConstantComposite 817 817 - 873(ResType): TypeStruct 68 411(ivec3) - 937: 36(fvec3) ConstantComposite 543 543 543 - 938: 68 ConstantComposite 937 937 937 - 996(ResType): TypeStruct 76 558(ivec4) - 1060: 48(fvec4) ConstantComposite 700 700 700 700 - 1061: 76 ConstantComposite 1060 1060 1060 1060 + 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 @@ -3024,128 +3003,125 @@ Shader version: 450 15(inU1): 9(ptr) FunctionParameter 17: Label 131: 6(float) Load 11(inF0) - 133: 132(bool) All 131 - 134: 6(float) Load 11(inF0) - 135: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 134 + 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) 17(Acos) 136 + 137: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 136 138: 6(float) Load 11(inF0) - 139: 132(bool) Any 138 + 139: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 138 140: 6(float) Load 11(inF0) - 141: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 140 - 142: 6(float) Load 11(inF0) - 144: 143(int) Bitcast 142 + 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) - 146: 8(int) Bitcast 145 - 147: 8(int) Load 14(inU0) - 148: 6(float) Bitcast 147 - 149: 6(float) Load 11(inF0) - 150: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 149 - 151: 6(float) Load 11(inF0) - 152: 6(float) Load 12(inF1) - 153: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 151 152 + 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) ExtInst 1(GLSL.std.450) 9(Ceil) 154 - 156: 6(float) Load 11(inF0) - 157: 6(float) Load 12(inF1) - 158: 6(float) Load 13(inF2) - 159: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 156 157 158 - 160: 6(float) Load 11(inF0) - 161: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 160 - 162: 6(float) Load 11(inF0) - 163: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 162 - 165: 143(int) BitCount 164 - 166: 6(float) Load 11(inF0) - 167: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 166 - 168: 6(float) Load 11(inF0) - 169: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 168 - 170: 6(float) Load 11(inF0) - 171: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 170 - 172: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 - 173: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 - 174: 6(float) Load 11(inF0) - 175: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 174 - 176: 6(float) Load 11(inF0) - 177: 6(float) Load 12(inF1) - 178: 6(float) FMod 176 177 + 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) ExtInst 1(GLSL.std.450) 10(Fract) 179 - 181: 6(float) Load 11(inF0) - 183:182(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 181 - 184: 143(int) CompositeExtract 183 1 - Store 12(inF1) 184 - 185: 6(float) CompositeExtract 183 0 + 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) IsInf 186 + 187: 132(bool) IsNan 186 188: 6(float) Load 11(inF0) - 189: 132(bool) IsNan 188 - 190: 6(float) Load 11(inF0) - 191: 6(float) Load 12(inF1) - 192: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 190 191 - 193: 6(float) Load 11(inF0) - 194: 6(float) Load 12(inF1) - 195: 6(float) Load 13(inF2) - 196: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 193 194 195 + 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) 28(Log) 197 - 199: 6(float) Load 11(inF0) - 200: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 199 - 202: 6(float) FMul 200 201 + 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) ExtInst 1(GLSL.std.450) 30(Log2) 203 - 205: 6(float) Load 11(inF0) - 206: 6(float) Load 12(inF1) - 207: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 205 206 - 208: 6(float) Load 11(inF0) - 209: 6(float) Load 12(inF1) - 210: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 208 209 - 211: 6(float) Load 11(inF0) - 212: 6(float) Load 12(inF1) - 213: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 211 212 - 214: 6(float) Load 11(inF0) - 215: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 214 - 217: 143(int) BitReverse 216 + 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) 2(RoundEven) 218 + 219: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 218 220: 6(float) Load 11(inF0) - 221: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 220 - 222: 6(float) Load 11(inF0) - 225: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 222 223 224 - 226: 6(float) Load 11(inF0) - 227: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 226 - 228: 6(float) Load 11(inF0) - 229: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 228 - 230: 6(float) Load 11(inF0) - 231: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 230 - Store 12(inF1) 231 - 232: 6(float) Load 11(inF0) - 233: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 232 - Store 13(inF2) 233 - 234: 6(float) Load 11(inF0) - 235: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 234 - 236: 6(float) Load 11(inF0) - 237: 6(float) Load 12(inF1) - 238: 6(float) Load 13(inF2) - 239: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 236 237 238 - 240: 6(float) Load 11(inF0) - 241: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 240 + 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) Load 12(inF1) - 244: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 242 243 - 245: 6(float) Load 11(inF0) - 246: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 245 - 247: 6(float) Load 11(inF0) - 248: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 247 - 249: 6(float) Load 11(inF0) - 250: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 249 - ReturnValue 223 + 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 223 + ReturnValue 133 FunctionEnd 34(VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 29(inF0): 25(ptr) FunctionParameter @@ -3154,144 +3130,141 @@ Shader version: 450 32(inU0): 27(ptr) FunctionParameter 33(inU1): 27(ptr) FunctionParameter 35: Label - 255: 24(fvec2) Load 29(inF0) + 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: 132(bool) Any 261 - 263: 24(fvec2) Load 29(inF0) - 264: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 263 - 265: 24(fvec2) Load 29(inF0) - 267: 266(ivec2) Bitcast 265 - 268: 24(fvec2) Load 29(inF0) - 269: 26(ivec2) Bitcast 268 - 270: 26(ivec2) Load 32(inU0) - 271: 24(fvec2) Bitcast 270 - 272: 24(fvec2) Load 29(inF0) - 273: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 272 - 274: 24(fvec2) Load 29(inF0) - 275: 24(fvec2) Load 30(inF1) - 276: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 274 275 - 277: 24(fvec2) Load 29(inF0) - 278: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 277 - 279: 24(fvec2) Load 29(inF0) - 280: 24(fvec2) Load 30(inF1) - 281: 24(fvec2) Load 31(inF2) - 282: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 279 280 281 - 283: 24(fvec2) Load 29(inF0) - 284: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 283 - 285: 24(fvec2) Load 29(inF0) - 286: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 285 - 289: 266(ivec2) BitCount 288 - 290: 24(fvec2) Load 29(inF0) - 291: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 290 - 292: 24(fvec2) Load 29(inF0) - 293: 24(fvec2) Load 30(inF1) - 294: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 292 293 - 295: 24(fvec2) Load 29(inF0) - 296: 24(fvec2) Load 30(inF1) - 297: 6(float) Dot 295 296 - 298: 24(fvec2) Load 29(inF0) - 299: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 298 - 300: 24(fvec2) Load 29(inF0) - 301: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 300 - 302: 24(fvec2) Load 29(inF0) - 303: 24(fvec2) Load 30(inF1) - 304: 24(fvec2) Load 31(inF2) - 305: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 302 303 304 - 306: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 - 307: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 - 308: 24(fvec2) Load 29(inF0) - 309: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 308 - 310: 24(fvec2) Load 29(inF0) - 311: 24(fvec2) Load 30(inF1) - 312: 24(fvec2) FMod 310 311 - 313: 24(fvec2) Load 29(inF0) - 314: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 313 - 315: 24(fvec2) Load 29(inF0) - 317:316(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 315 - 318: 266(ivec2) CompositeExtract 317 1 - Store 30(inF1) 318 - 319: 24(fvec2) CompositeExtract 317 0 + 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) - 322: 321(bvec2) IsInf 320 + 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: 321(bvec2) IsNan 323 - 325: 24(fvec2) Load 29(inF0) - 326: 24(fvec2) Load 30(inF1) - 327: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 325 326 - 328: 24(fvec2) Load 29(inF0) - 329: 24(fvec2) Load 30(inF1) - 330: 24(fvec2) Load 31(inF2) - 331: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 328 329 330 - 332: 24(fvec2) Load 29(inF0) - 333: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 332 + 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) 28(Log) 334 + 335: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 334 336: 24(fvec2) Load 29(inF0) - 337: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 336 - 338: 24(fvec2) VectorTimesScalar 337 201 + 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) ExtInst 1(GLSL.std.450) 30(Log2) 339 - 341: 24(fvec2) Load 29(inF0) - 342: 24(fvec2) Load 30(inF1) - 343: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 341 342 + 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) 37(FMin) 344 345 + 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) 69(Normalize) 347 + 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) 26(Pow) 349 350 + 351: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 349 350 352: 24(fvec2) Load 29(inF0) - 353: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 352 - 354: 24(fvec2) Load 29(inF0) - 355: 24(fvec2) Load 30(inF1) - 356: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 354 355 - 357: 24(fvec2) Load 29(inF0) - 358: 24(fvec2) Load 30(inF1) - 360: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 357 358 359 - 363: 266(ivec2) BitReverse 362 - 364: 24(fvec2) Load 29(inF0) - 365: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 364 - 366: 24(fvec2) Load 29(inF0) - 367: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 366 - 368: 24(fvec2) Load 29(inF0) - 369: 24(fvec2) CompositeConstruct 223 223 - 370: 24(fvec2) CompositeConstruct 224 224 - 371: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 368 369 370 - 372: 24(fvec2) Load 29(inF0) - 373: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 372 - 374: 24(fvec2) Load 29(inF0) - 375: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 374 - 376: 24(fvec2) Load 29(inF0) - 377: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 376 - Store 30(inF1) 377 - 378: 24(fvec2) Load 29(inF0) - 379: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 378 - Store 31(inF2) 379 - 380: 24(fvec2) Load 29(inF0) - 381: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 380 - 382: 24(fvec2) Load 29(inF0) - 383: 24(fvec2) Load 30(inF1) - 384: 24(fvec2) Load 31(inF2) - 385: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 382 383 384 + 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) 31(Sqrt) 386 + 387: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 386 388: 24(fvec2) Load 29(inF0) - 389: 24(fvec2) Load 30(inF1) - 390: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 388 389 - 391: 24(fvec2) Load 29(inF0) - 392: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 391 - 393: 24(fvec2) Load 29(inF0) - 394: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 393 - 395: 24(fvec2) Load 29(inF0) - 396: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 395 - ReturnValue 397 + 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 @@ -3300,147 +3273,144 @@ Shader version: 450 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: 132(bool) All 400 + 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) 4(FAbs) 402 + 403: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 402 404: 36(fvec3) Load 41(inF0) - 405: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 404 - 406: 36(fvec3) Load 41(inF0) - 407: 132(bool) Any 406 - 408: 36(fvec3) Load 41(inF0) - 409: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 408 - 410: 36(fvec3) Load 41(inF0) - 412: 411(ivec3) Bitcast 410 - 413: 36(fvec3) Load 41(inF0) - 414: 38(ivec3) Bitcast 413 - 415: 38(ivec3) Load 44(inU0) - 416: 36(fvec3) Bitcast 415 - 417: 36(fvec3) Load 41(inF0) - 418: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 417 - 419: 36(fvec3) Load 41(inF0) - 420: 36(fvec3) Load 42(inF1) - 421: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 419 420 - 422: 36(fvec3) Load 41(inF0) - 423: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 422 - 424: 36(fvec3) Load 41(inF0) - 425: 36(fvec3) Load 42(inF1) - 426: 36(fvec3) Load 43(inF2) - 427: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 424 425 426 - 428: 36(fvec3) Load 41(inF0) - 429: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 428 - 430: 36(fvec3) Load 41(inF0) - 431: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 430 - 434: 411(ivec3) BitCount 433 - 435: 36(fvec3) Load 41(inF0) - 436: 36(fvec3) Load 42(inF1) - 437: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 436 - 438: 36(fvec3) Load 41(inF0) - 439: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 438 - 440: 36(fvec3) Load 41(inF0) - 441: 36(fvec3) Load 42(inF1) - 442: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 440 441 - 443: 36(fvec3) Load 41(inF0) - 444: 36(fvec3) Load 42(inF1) - 445: 6(float) Dot 443 444 - 446: 36(fvec3) Load 41(inF0) - 447: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 446 - 448: 36(fvec3) Load 41(inF0) - 449: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 448 - 450: 36(fvec3) Load 41(inF0) - 451: 36(fvec3) Load 42(inF1) - 452: 36(fvec3) Load 43(inF2) - 453: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 450 451 452 - 454: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 - 455: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 - 456: 36(fvec3) Load 41(inF0) - 457: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 456 - 458: 36(fvec3) Load 41(inF0) - 459: 36(fvec3) Load 42(inF1) - 460: 36(fvec3) FMod 458 459 - 461: 36(fvec3) Load 41(inF0) - 462: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 461 - 463: 36(fvec3) Load 41(inF0) - 465:464(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 463 - 466: 411(ivec3) CompositeExtract 465 1 - Store 42(inF1) 466 - 467: 36(fvec3) CompositeExtract 465 0 - 468: 36(fvec3) Load 41(inF0) - 470: 469(bvec3) IsInf 468 - 471: 36(fvec3) Load 41(inF0) - 472: 469(bvec3) IsNan 471 + 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: 36(fvec3) Load 42(inF1) - 475: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 473 474 - 476: 36(fvec3) Load 41(inF0) - 477: 36(fvec3) Load 42(inF1) - 478: 36(fvec3) Load 43(inF2) - 479: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 476 477 478 + 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: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 480 + 481: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 480 482: 36(fvec3) Load 41(inF0) - 483: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 482 - 484: 36(fvec3) Load 41(inF0) - 485: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 484 - 486: 36(fvec3) VectorTimesScalar 485 201 - 487: 36(fvec3) Load 41(inF0) - 488: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 487 - 489: 36(fvec3) Load 41(inF0) - 490: 36(fvec3) Load 42(inF1) - 491: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 489 490 - 492: 36(fvec3) Load 41(inF0) - 493: 36(fvec3) Load 42(inF1) - 494: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 492 493 + 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) ExtInst 1(GLSL.std.450) 69(Normalize) 495 - 497: 36(fvec3) Load 41(inF0) - 498: 36(fvec3) Load 42(inF1) - 499: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 497 498 - 500: 36(fvec3) Load 41(inF0) - 501: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 500 - 502: 36(fvec3) Load 41(inF0) - 503: 36(fvec3) Load 42(inF1) - 504: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 502 503 + 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) Load 42(inF1) - 507: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 505 506 359 - 509: 411(ivec3) BitReverse 508 - 510: 36(fvec3) Load 41(inF0) - 511: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 510 - 512: 36(fvec3) Load 41(inF0) - 513: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 512 - 514: 36(fvec3) Load 41(inF0) - 515: 36(fvec3) CompositeConstruct 223 223 223 - 516: 36(fvec3) CompositeConstruct 224 224 224 - 517: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 514 515 516 - 518: 36(fvec3) Load 41(inF0) - 519: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 518 - 520: 36(fvec3) Load 41(inF0) - 521: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 520 - 522: 36(fvec3) Load 41(inF0) - 523: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 522 - Store 42(inF1) 523 - 524: 36(fvec3) Load 41(inF0) - 525: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 524 - Store 43(inF2) 525 - 526: 36(fvec3) Load 41(inF0) - 527: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 526 - 528: 36(fvec3) Load 41(inF0) - 529: 36(fvec3) Load 42(inF1) - 530: 36(fvec3) Load 43(inF2) - 531: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 528 529 530 + 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) 31(Sqrt) 532 + 533: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 532 534: 36(fvec3) Load 41(inF0) - 535: 36(fvec3) Load 42(inF1) - 536: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 534 535 - 537: 36(fvec3) Load 41(inF0) - 538: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 537 - 539: 36(fvec3) Load 41(inF0) - 540: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 539 - 541: 36(fvec3) Load 41(inF0) - 542: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 541 - ReturnValue 544 + 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 @@ -3449,529 +3419,517 @@ Shader version: 450 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: 132(bool) All 547 + 548: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 547 549: 48(fvec4) Load 53(inF0) - 550: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 549 - 551: 48(fvec4) Load 53(inF0) - 552: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 551 - 553: 48(fvec4) Load 53(inF0) - 554: 132(bool) Any 553 - 555: 48(fvec4) Load 53(inF0) - 556: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 555 + 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) - 559: 558(ivec4) Bitcast 557 - 560: 48(fvec4) Load 53(inF0) - 561: 50(ivec4) Bitcast 560 - 562: 50(ivec4) Load 56(inU0) - 563: 48(fvec4) Bitcast 562 - 564: 48(fvec4) Load 53(inF0) - 565: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 564 + 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) Load 54(inF1) - 568: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 566 567 - 569: 48(fvec4) Load 53(inF0) - 570: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 569 - 571: 48(fvec4) Load 53(inF0) - 572: 48(fvec4) Load 54(inF1) - 573: 48(fvec4) Load 55(inF2) - 574: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 571 572 573 - 575: 48(fvec4) Load 53(inF0) - 576: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 575 - 577: 48(fvec4) Load 53(inF0) - 578: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 577 - 580: 558(ivec4) BitCount 579 - 581: 48(fvec4) Load 53(inF0) - 582: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 581 + 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) ExtInst 1(GLSL.std.450) 67(Distance) 583 584 - 586: 48(fvec4) Load 53(inF0) - 587: 48(fvec4) Load 54(inF1) - 588: 6(float) Dot 586 587 - 590: 7(ptr) AccessChain 53(inF0) 589 - 591: 6(float) Load 590 - 592: 7(ptr) AccessChain 54(inF1) 589 - 593: 6(float) Load 592 - 594: 6(float) FMul 591 593 - 596: 7(ptr) AccessChain 53(inF0) 595 + 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 - 599: 7(ptr) AccessChain 54(inF1) 598 - 600: 6(float) Load 599 - 601: 48(fvec4) CompositeConstruct 224 594 597 600 - 602: 48(fvec4) Load 53(inF0) - 603: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 602 - 604: 48(fvec4) Load 53(inF0) - 605: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 604 - 606: 48(fvec4) Load 53(inF0) - 607: 48(fvec4) Load 54(inF1) - 608: 48(fvec4) Load 55(inF2) - 609: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 606 607 608 - 610: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 - 611: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 - 612: 48(fvec4) Load 53(inF0) - 613: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 612 + 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) Load 54(inF1) - 616: 48(fvec4) FMod 614 615 - 617: 48(fvec4) Load 53(inF0) - 618: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 617 - 619: 48(fvec4) Load 53(inF0) - 621:620(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 619 - 622: 558(ivec4) CompositeExtract 621 1 - Store 54(inF1) 622 - 623: 48(fvec4) CompositeExtract 621 0 - 624: 48(fvec4) Load 53(inF0) - 626: 625(bvec4) IsInf 624 + 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: 625(bvec4) IsNan 627 + 628: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 627 629: 48(fvec4) Load 53(inF0) - 630: 48(fvec4) Load 54(inF1) - 631: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 629 630 - 632: 48(fvec4) Load 53(inF0) - 633: 48(fvec4) Load 54(inF1) - 634: 48(fvec4) Load 55(inF2) - 635: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 632 633 634 + 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: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 636 - 638: 48(fvec4) Load 53(inF0) - 639: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 638 - 640: 48(fvec4) Load 53(inF0) - 641: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 640 - 642: 48(fvec4) VectorTimesScalar 641 201 - 643: 48(fvec4) Load 53(inF0) - 644: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 643 - 645: 48(fvec4) Load 53(inF0) - 646: 48(fvec4) Load 54(inF1) - 647: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 645 646 - 648: 48(fvec4) Load 53(inF0) - 649: 48(fvec4) Load 54(inF1) - 650: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 648 649 - 651: 48(fvec4) Load 53(inF0) - 652: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 651 - 653: 48(fvec4) Load 53(inF0) - 654: 48(fvec4) Load 54(inF1) - 655: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 653 654 - 656: 48(fvec4) Load 53(inF0) - 657: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 656 + 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) Load 54(inF1) - 660: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 658 659 - 661: 48(fvec4) Load 53(inF0) - 662: 48(fvec4) Load 54(inF1) - 663: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 661 662 359 - 666: 558(ivec4) BitReverse 665 - 667: 48(fvec4) Load 53(inF0) - 668: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 667 - 669: 48(fvec4) Load 53(inF0) - 670: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 669 - 671: 48(fvec4) Load 53(inF0) - 672: 48(fvec4) CompositeConstruct 223 223 223 223 - 673: 48(fvec4) CompositeConstruct 224 224 224 224 - 674: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 671 672 673 - 675: 48(fvec4) Load 53(inF0) - 676: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 675 - 677: 48(fvec4) Load 53(inF0) - 678: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 677 - 679: 48(fvec4) Load 53(inF0) - 680: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 679 - Store 54(inF1) 680 - 681: 48(fvec4) Load 53(inF0) - 682: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 681 - Store 55(inF2) 682 - 683: 48(fvec4) Load 53(inF0) - 684: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 683 + 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) Load 54(inF1) - 687: 48(fvec4) Load 55(inF2) - 688: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 685 686 687 + 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) 31(Sqrt) 689 - 691: 48(fvec4) Load 53(inF0) - 692: 48(fvec4) Load 54(inF1) - 693: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 691 692 - 694: 48(fvec4) Load 53(inF0) - 695: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 694 - 696: 48(fvec4) Load 53(inF0) - 697: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 696 - 698: 48(fvec4) Load 53(inF0) - 699: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 698 - ReturnValue 701 + 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 - 704: 60 Load 63(inF0) - 705: 132(bool) All 704 + 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) 4(FAbs) 706 + 707: 60 ExtInst 1(GLSL.std.450) 16(Asin) 706 708: 60 Load 63(inF0) - 709: 60 ExtInst 1(GLSL.std.450) 17(Acos) 708 + 709: 60 ExtInst 1(GLSL.std.450) 18(Atan) 708 710: 60 Load 63(inF0) - 711: 132(bool) Any 710 - 712: 60 Load 63(inF0) - 713: 60 ExtInst 1(GLSL.std.450) 16(Asin) 712 - 714: 60 Load 63(inF0) - 715: 60 ExtInst 1(GLSL.std.450) 18(Atan) 714 - 716: 60 Load 63(inF0) - 717: 60 Load 64(inF1) - 718: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 716 717 + 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) 9(Ceil) 719 + 720: 60 ExtInst 1(GLSL.std.450) 14(Cos) 719 721: 60 Load 63(inF0) - 722: 60 Load 64(inF1) - 723: 60 Load 65(inF2) - 724: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 721 722 723 + 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: 60 ExtInst 1(GLSL.std.450) 14(Cos) 725 + 726: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 725 727: 60 Load 63(inF0) - 728: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 727 + 728: 60 ExtInst 1(GLSL.std.450) 27(Exp) 727 729: 60 Load 63(inF0) - 730: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 729 - 731: 60 Load 63(inF0) - 732: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 731 + 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) 27(Exp) 733 + 734: 60 ExtInst 1(GLSL.std.450) 8(Floor) 733 735: 60 Load 63(inF0) - 736: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 735 - 737: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 - 738: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 - 739: 60 Load 63(inF0) - 740: 60 ExtInst 1(GLSL.std.450) 8(Floor) 739 - 741: 60 Load 63(inF0) - 742: 60 Load 64(inF1) - 743: 24(fvec2) CompositeExtract 741 0 - 744: 24(fvec2) CompositeExtract 742 0 - 745: 24(fvec2) FMod 743 744 - 746: 24(fvec2) CompositeExtract 741 1 - 747: 24(fvec2) CompositeExtract 742 1 - 748: 24(fvec2) FMod 746 747 - 749: 60 CompositeConstruct 745 748 - 750: 60 Load 63(inF0) - 751: 60 ExtInst 1(GLSL.std.450) 10(Fract) 750 - 752: 60 Load 63(inF0) - 754:753(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 752 - 755: 266(ivec2) CompositeExtract 754 1 - Store 64(inF1) 755 - 756: 60 CompositeExtract 754 0 - 757: 60 Load 63(inF0) - 758: 60 Load 64(inF1) - 759: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 757 758 + 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 Load 65(inF2) - 763: 60 ExtInst 1(GLSL.std.450) 46(FMix) 760 761 762 - 764: 60 Load 63(inF0) - 765: 60 ExtInst 1(GLSL.std.450) 28(Log) 764 + 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 ExtInst 1(GLSL.std.450) 30(Log2) 766 - 768: 60 MatrixTimesScalar 767 201 + 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) 30(Log2) 769 + 770: 60 ExtInst 1(GLSL.std.450) 11(Radians) 769 771: 60 Load 63(inF0) - 772: 60 Load 64(inF1) - 773: 60 ExtInst 1(GLSL.std.450) 40(FMax) 771 772 - 774: 60 Load 63(inF0) - 775: 60 Load 64(inF1) - 776: 60 ExtInst 1(GLSL.std.450) 37(FMin) 774 775 - 777: 60 Load 63(inF0) - 778: 60 Load 64(inF1) - 779: 60 ExtInst 1(GLSL.std.450) 26(Pow) 777 778 - 780: 60 Load 63(inF0) - 781: 60 ExtInst 1(GLSL.std.450) 11(Radians) 780 - 782: 60 Load 63(inF0) - 783: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 782 - 784: 60 Load 63(inF0) - 785: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 784 - 786: 60 Load 63(inF0) - 787: 24(fvec2) CompositeConstruct 223 223 - 788: 24(fvec2) CompositeConstruct 224 224 - 789: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 786 787 788 - 790: 60 Load 63(inF0) - 791: 60 ExtInst 1(GLSL.std.450) 6(FSign) 790 - 792: 60 Load 63(inF0) - 793: 60 ExtInst 1(GLSL.std.450) 13(Sin) 792 - 794: 60 Load 63(inF0) - 795: 60 ExtInst 1(GLSL.std.450) 13(Sin) 794 - Store 64(inF1) 795 - 796: 60 Load 63(inF0) - 797: 60 ExtInst 1(GLSL.std.450) 14(Cos) 796 - Store 65(inF2) 797 + 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) 19(Sinh) 798 + 799: 60 ExtInst 1(GLSL.std.450) 15(Tan) 798 800: 60 Load 63(inF0) - 801: 60 Load 64(inF1) - 802: 60 Load 65(inF2) - 803: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 800 801 802 + 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) 31(Sqrt) 804 - 806: 60 Load 63(inF0) - 807: 60 Load 64(inF1) - 808: 60 ExtInst 1(GLSL.std.450) 48(Step) 806 807 - 809: 60 Load 63(inF0) - 810: 60 ExtInst 1(GLSL.std.450) 15(Tan) 809 - 811: 60 Load 63(inF0) - 812: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 811 - 813: 60 Load 63(inF0) - 814: 60 Transpose 813 - 815: 60 Load 63(inF0) - 816: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 815 - ReturnValue 818 + 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: 132(bool) All 821 + 822: 68 ExtInst 1(GLSL.std.450) 16(Asin) 821 823: 68 Load 71(inF0) - 824: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 823 + 824: 68 ExtInst 1(GLSL.std.450) 18(Atan) 823 825: 68 Load 71(inF0) - 826: 68 ExtInst 1(GLSL.std.450) 17(Acos) 825 - 827: 68 Load 71(inF0) - 828: 132(bool) Any 827 - 829: 68 Load 71(inF0) - 830: 68 ExtInst 1(GLSL.std.450) 16(Asin) 829 - 831: 68 Load 71(inF0) - 832: 68 ExtInst 1(GLSL.std.450) 18(Atan) 831 - 833: 68 Load 71(inF0) - 834: 68 Load 72(inF1) - 835: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 833 834 + 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) 9(Ceil) 836 + 837: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 836 838: 68 Load 71(inF0) - 839: 68 Load 72(inF1) - 840: 68 Load 73(inF2) - 841: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 838 839 840 + 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) 14(Cos) 842 + 843: 68 ExtInst 1(GLSL.std.450) 27(Exp) 842 844: 68 Load 71(inF0) - 845: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 844 - 846: 68 Load 71(inF0) - 847: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 846 + 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: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 848 + 849: 68 ExtInst 1(GLSL.std.450) 8(Floor) 848 850: 68 Load 71(inF0) - 851: 68 ExtInst 1(GLSL.std.450) 27(Exp) 850 - 852: 68 Load 71(inF0) - 853: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 852 - 854: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 - 855: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 - 856: 68 Load 71(inF0) - 857: 68 ExtInst 1(GLSL.std.450) 8(Floor) 856 - 858: 68 Load 71(inF0) - 859: 68 Load 72(inF1) - 860: 36(fvec3) CompositeExtract 858 0 - 861: 36(fvec3) CompositeExtract 859 0 - 862: 36(fvec3) FMod 860 861 - 863: 36(fvec3) CompositeExtract 858 1 - 864: 36(fvec3) CompositeExtract 859 1 - 865: 36(fvec3) FMod 863 864 - 866: 36(fvec3) CompositeExtract 858 2 - 867: 36(fvec3) CompositeExtract 859 2 - 868: 36(fvec3) FMod 866 867 - 869: 68 CompositeConstruct 862 865 868 - 870: 68 Load 71(inF0) - 871: 68 ExtInst 1(GLSL.std.450) 10(Fract) 870 - 872: 68 Load 71(inF0) - 874:873(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 872 - 875: 411(ivec3) CompositeExtract 874 1 - Store 72(inF1) 875 - 876: 68 CompositeExtract 874 0 - 877: 68 Load 71(inF0) - 878: 68 Load 72(inF1) - 879: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 877 878 - 880: 68 Load 71(inF0) - 881: 68 Load 72(inF1) - 882: 68 Load 73(inF2) - 883: 68 ExtInst 1(GLSL.std.450) 46(FMix) 880 881 882 + 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 ExtInst 1(GLSL.std.450) 28(Log) 884 - 886: 68 Load 71(inF0) - 887: 68 ExtInst 1(GLSL.std.450) 30(Log2) 886 - 888: 68 MatrixTimesScalar 887 201 + 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) 30(Log2) 889 + 890: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 889 891: 68 Load 71(inF0) - 892: 68 Load 72(inF1) - 893: 68 ExtInst 1(GLSL.std.450) 40(FMax) 891 892 - 894: 68 Load 71(inF0) - 895: 68 Load 72(inF1) - 896: 68 ExtInst 1(GLSL.std.450) 37(FMin) 894 895 + 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 Load 72(inF1) - 899: 68 ExtInst 1(GLSL.std.450) 26(Pow) 897 898 - 900: 68 Load 71(inF0) - 901: 68 ExtInst 1(GLSL.std.450) 11(Radians) 900 - 902: 68 Load 71(inF0) - 903: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 902 - 904: 68 Load 71(inF0) - 905: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 904 - 906: 68 Load 71(inF0) - 907: 36(fvec3) CompositeConstruct 223 223 223 - 908: 36(fvec3) CompositeConstruct 224 224 224 - 909: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 906 907 908 - 910: 68 Load 71(inF0) - 911: 68 ExtInst 1(GLSL.std.450) 6(FSign) 910 - 912: 68 Load 71(inF0) - 913: 68 ExtInst 1(GLSL.std.450) 13(Sin) 912 - 914: 68 Load 71(inF0) - 915: 68 ExtInst 1(GLSL.std.450) 13(Sin) 914 - Store 72(inF1) 915 + 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) 14(Cos) 916 - Store 73(inF2) 917 + 917: 68 ExtInst 1(GLSL.std.450) 15(Tan) 916 918: 68 Load 71(inF0) - 919: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 918 + 919: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 918 920: 68 Load 71(inF0) - 921: 68 Load 72(inF1) - 922: 68 Load 73(inF2) - 923: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 920 921 922 - 924: 68 Load 71(inF0) - 925: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 924 - 926: 68 Load 71(inF0) - 927: 68 Load 72(inF1) - 928: 68 ExtInst 1(GLSL.std.450) 48(Step) 926 927 - 929: 68 Load 71(inF0) - 930: 68 ExtInst 1(GLSL.std.450) 15(Tan) 929 - 931: 68 Load 71(inF0) - 932: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 931 - 933: 68 Load 71(inF0) - 934: 68 Transpose 933 - 935: 68 Load 71(inF0) - 936: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 935 - ReturnValue 938 + 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: 132(bool) All 941 + 942: 76 ExtInst 1(GLSL.std.450) 18(Atan) 941 943: 76 Load 79(inF0) - 944: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 943 - 945: 76 Load 79(inF0) - 946: 76 ExtInst 1(GLSL.std.450) 17(Acos) 945 - 947: 76 Load 79(inF0) - 948: 132(bool) Any 947 - 949: 76 Load 79(inF0) - 950: 76 ExtInst 1(GLSL.std.450) 16(Asin) 949 - 951: 76 Load 79(inF0) - 952: 76 ExtInst 1(GLSL.std.450) 18(Atan) 951 - 953: 76 Load 79(inF0) - 954: 76 Load 80(inF1) - 955: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 953 954 + 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) 9(Ceil) 956 + 957: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 956 958: 76 Load 79(inF0) - 959: 76 Load 80(inF1) - 960: 76 Load 81(inF2) - 961: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 958 959 960 + 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) 14(Cos) 962 - 964: 76 Load 79(inF0) - 965: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 964 + 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) 12(Degrees) 966 + 967: 76 ExtInst 1(GLSL.std.450) 8(Floor) 966 968: 76 Load 79(inF0) - 969: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 968 - 970: 76 Load 79(inF0) - 971: 76 ExtInst 1(GLSL.std.450) 27(Exp) 970 - 972: 76 Load 79(inF0) - 973: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 972 - 974: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 - 975: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 - 976: 76 Load 79(inF0) - 977: 76 ExtInst 1(GLSL.std.450) 8(Floor) 976 - 978: 76 Load 79(inF0) - 979: 76 Load 80(inF1) - 980: 48(fvec4) CompositeExtract 978 0 - 981: 48(fvec4) CompositeExtract 979 0 - 982: 48(fvec4) FMod 980 981 - 983: 48(fvec4) CompositeExtract 978 1 - 984: 48(fvec4) CompositeExtract 979 1 - 985: 48(fvec4) FMod 983 984 - 986: 48(fvec4) CompositeExtract 978 2 - 987: 48(fvec4) CompositeExtract 979 2 - 988: 48(fvec4) FMod 986 987 - 989: 48(fvec4) CompositeExtract 978 3 - 990: 48(fvec4) CompositeExtract 979 3 - 991: 48(fvec4) FMod 989 990 - 992: 76 CompositeConstruct 982 985 988 991 - 993: 76 Load 79(inF0) - 994: 76 ExtInst 1(GLSL.std.450) 10(Fract) 993 - 995: 76 Load 79(inF0) - 997:996(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 995 - 998: 558(ivec4) CompositeExtract 997 1 - Store 80(inF1) 998 - 999: 76 CompositeExtract 997 0 - 1000: 76 Load 79(inF0) - 1001: 76 Load 80(inF1) - 1002: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1000 1001 - 1003: 76 Load 79(inF0) - 1004: 76 Load 80(inF1) - 1005: 76 Load 81(inF2) - 1006: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1003 1004 1005 - 1007: 76 Load 79(inF0) - 1008: 76 ExtInst 1(GLSL.std.450) 28(Log) 1007 - 1009: 76 Load 79(inF0) - 1010: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1009 - 1011: 76 MatrixTimesScalar 1010 201 + 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) 30(Log2) 1012 + 1013: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1012 1014: 76 Load 79(inF0) - 1015: 76 Load 80(inF1) - 1016: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1014 1015 - 1017: 76 Load 79(inF0) - 1018: 76 Load 80(inF1) - 1019: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1017 1018 + 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 Load 80(inF1) - 1022: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1020 1021 - 1023: 76 Load 79(inF0) - 1024: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1023 - 1025: 76 Load 79(inF0) - 1026: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1025 - 1027: 76 Load 79(inF0) - 1028: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1027 - 1029: 76 Load 79(inF0) - 1030: 48(fvec4) CompositeConstruct 223 223 223 223 - 1031: 48(fvec4) CompositeConstruct 224 224 224 224 - 1032: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1029 1030 1031 - 1033: 76 Load 79(inF0) - 1034: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1033 - 1035: 76 Load 79(inF0) - 1036: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1035 + 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) 13(Sin) 1037 - Store 80(inF1) 1038 + 1038: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1037 1039: 76 Load 79(inF0) - 1040: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1039 - Store 81(inF2) 1040 + 1040: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1039 1041: 76 Load 79(inF0) - 1042: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1041 + 1042: 76 Transpose 1041 1043: 76 Load 79(inF0) - 1044: 76 Load 80(inF1) - 1045: 76 Load 81(inF2) - 1046: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 - 1047: 76 Load 79(inF0) - 1048: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1047 - 1049: 76 Load 79(inF0) - 1050: 76 Load 80(inF1) - 1051: 76 ExtInst 1(GLSL.std.450) 48(Step) 1049 1050 - 1052: 76 Load 79(inF0) - 1053: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1052 - 1054: 76 Load 79(inF0) - 1055: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1054 - 1056: 76 Load 79(inF0) - 1057: 76 Transpose 1056 - 1058: 76 Load 79(inF0) - 1059: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1058 - ReturnValue 1061 + 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 @@ -3981,51 +3939,51 @@ Shader version: 450 89(inFM0): 61(ptr) FunctionParameter 90(inFM1): 61(ptr) FunctionParameter 92: Label - 1064(r0): 7(ptr) Variable Function - 1068(r1): 25(ptr) Variable Function - 1072(r2): 25(ptr) Variable Function - 1076(r3): 7(ptr) Variable Function - 1080(r4): 25(ptr) Variable Function - 1084(r5): 25(ptr) Variable Function - 1088(r6): 61(ptr) Variable Function - 1092(r7): 61(ptr) Variable Function - 1096(r8): 61(ptr) Variable Function - 1065: 6(float) Load 86(inF1) - 1066: 6(float) Load 85(inF0) - 1067: 6(float) FMul 1065 1066 - Store 1064(r0) 1067 - 1069: 6(float) Load 85(inF0) - 1070: 24(fvec2) Load 87(inFV0) - 1071: 24(fvec2) VectorTimesScalar 1070 1069 - Store 1068(r1) 1071 - 1073: 24(fvec2) Load 87(inFV0) + 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: 24(fvec2) VectorTimesScalar 1073 1074 - Store 1072(r2) 1075 - 1077: 24(fvec2) Load 87(inFV0) - 1078: 24(fvec2) Load 88(inFV1) - 1079: 6(float) Dot 1077 1078 - Store 1076(r3) 1079 - 1081: 24(fvec2) Load 87(inFV0) - 1082: 60 Load 89(inFM0) - 1083: 24(fvec2) VectorTimesMatrix 1081 1082 - Store 1080(r4) 1083 - 1085: 60 Load 89(inFM0) - 1086: 24(fvec2) Load 87(inFV0) - 1087: 24(fvec2) MatrixTimesVector 1085 1086 - Store 1084(r5) 1087 - 1089: 6(float) Load 85(inF0) - 1090: 60 Load 89(inFM0) - 1091: 60 MatrixTimesScalar 1090 1089 - Store 1088(r6) 1091 - 1093: 60 Load 89(inFM0) - 1094: 6(float) Load 85(inF0) - 1095: 60 MatrixTimesScalar 1093 1094 - Store 1092(r7) 1095 - 1097: 60 Load 90(inFM1) - 1098: 60 Load 89(inFM0) - 1099: 60 MatrixTimesMatrix 1097 1098 - Store 1096(r8) 1099 + 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 @@ -4036,51 +3994,51 @@ Shader version: 450 98(inFM0): 69(ptr) FunctionParameter 99(inFM1): 69(ptr) FunctionParameter 101: Label - 1100(r0): 7(ptr) Variable Function - 1104(r1): 37(ptr) Variable Function - 1108(r2): 37(ptr) Variable Function - 1112(r3): 7(ptr) Variable Function - 1116(r4): 37(ptr) Variable Function - 1120(r5): 37(ptr) Variable Function - 1124(r6): 69(ptr) Variable Function - 1128(r7): 69(ptr) Variable Function - 1132(r8): 69(ptr) Variable Function - 1101: 6(float) Load 95(inF1) - 1102: 6(float) Load 94(inF0) - 1103: 6(float) FMul 1101 1102 - Store 1100(r0) 1103 - 1105: 6(float) Load 94(inF0) - 1106: 36(fvec3) Load 96(inFV0) - 1107: 36(fvec3) VectorTimesScalar 1106 1105 - Store 1104(r1) 1107 - 1109: 36(fvec3) Load 96(inFV0) + 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: 36(fvec3) VectorTimesScalar 1109 1110 - Store 1108(r2) 1111 - 1113: 36(fvec3) Load 96(inFV0) - 1114: 36(fvec3) Load 97(inFV1) - 1115: 6(float) Dot 1113 1114 - Store 1112(r3) 1115 - 1117: 36(fvec3) Load 96(inFV0) - 1118: 68 Load 98(inFM0) - 1119: 36(fvec3) VectorTimesMatrix 1117 1118 - Store 1116(r4) 1119 - 1121: 68 Load 98(inFM0) - 1122: 36(fvec3) Load 96(inFV0) - 1123: 36(fvec3) MatrixTimesVector 1121 1122 - Store 1120(r5) 1123 - 1125: 6(float) Load 94(inF0) - 1126: 68 Load 98(inFM0) - 1127: 68 MatrixTimesScalar 1126 1125 - Store 1124(r6) 1127 - 1129: 68 Load 98(inFM0) - 1130: 6(float) Load 94(inF0) - 1131: 68 MatrixTimesScalar 1129 1130 - Store 1128(r7) 1131 - 1133: 68 Load 99(inFM1) - 1134: 68 Load 98(inFM0) - 1135: 68 MatrixTimesMatrix 1133 1134 - Store 1132(r8) 1135 + 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 @@ -4091,51 +4049,51 @@ Shader version: 450 107(inFM0): 77(ptr) FunctionParameter 108(inFM1): 77(ptr) FunctionParameter 110: Label - 1136(r0): 7(ptr) Variable Function - 1140(r1): 49(ptr) Variable Function - 1144(r2): 49(ptr) Variable Function - 1148(r3): 7(ptr) Variable Function - 1152(r4): 49(ptr) Variable Function - 1156(r5): 49(ptr) Variable Function - 1160(r6): 77(ptr) Variable Function - 1164(r7): 77(ptr) Variable Function - 1168(r8): 77(ptr) Variable Function - 1137: 6(float) Load 104(inF1) - 1138: 6(float) Load 103(inF0) - 1139: 6(float) FMul 1137 1138 - Store 1136(r0) 1139 - 1141: 6(float) Load 103(inF0) - 1142: 48(fvec4) Load 105(inFV0) - 1143: 48(fvec4) VectorTimesScalar 1142 1141 - Store 1140(r1) 1143 - 1145: 48(fvec4) Load 105(inFV0) + 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: 48(fvec4) VectorTimesScalar 1145 1146 - Store 1144(r2) 1147 - 1149: 48(fvec4) Load 105(inFV0) - 1150: 48(fvec4) Load 106(inFV1) - 1151: 6(float) Dot 1149 1150 - Store 1148(r3) 1151 - 1153: 48(fvec4) Load 105(inFV0) - 1154: 76 Load 107(inFM0) - 1155: 48(fvec4) VectorTimesMatrix 1153 1154 - Store 1152(r4) 1155 - 1157: 76 Load 107(inFM0) - 1158: 48(fvec4) Load 105(inFV0) - 1159: 48(fvec4) MatrixTimesVector 1157 1158 - Store 1156(r5) 1159 - 1161: 6(float) Load 103(inF0) - 1162: 76 Load 107(inFM0) - 1163: 76 MatrixTimesScalar 1162 1161 - Store 1160(r6) 1163 - 1165: 76 Load 107(inFM0) - 1166: 6(float) Load 103(inF0) - 1167: 76 MatrixTimesScalar 1165 1166 - Store 1164(r7) 1167 - 1169: 76 Load 108(inFM1) - 1170: 76 Load 107(inFM0) - 1171: 76 MatrixTimesMatrix 1169 1170 - Store 1168(r8) 1171 + 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 @@ -4149,90 +4107,90 @@ Shader version: 450 127(inFM3x4): 116(ptr) FunctionParameter 128(inFM2x4): 118(ptr) FunctionParameter 130: Label - 1172(r00): 7(ptr) Variable Function - 1176(r01): 25(ptr) Variable Function - 1180(r02): 37(ptr) Variable Function - 1184(r03): 25(ptr) Variable Function - 1188(r04): 37(ptr) Variable Function - 1192(r05): 7(ptr) Variable Function - 1196(r06): 7(ptr) Variable Function - 1200(r07): 37(ptr) Variable Function - 1204(r08): 25(ptr) Variable Function - 1208(r09): 25(ptr) Variable Function - 1212(r10): 37(ptr) Variable Function - 1216(r11): 112(ptr) Variable Function - 1220(r12): 114(ptr) Variable Function - 1224(r13): 61(ptr) Variable Function - 1228(r14): 112(ptr) Variable Function - 1232(r15): 118(ptr) Variable Function - 1236(r16): 116(ptr) Variable Function - 1173: 6(float) Load 121(inF1) - 1174: 6(float) Load 120(inF0) - 1175: 6(float) FMul 1173 1174 - Store 1172(r00) 1175 - 1177: 6(float) Load 120(inF0) + 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) VectorTimesScalar 1178 1177 - Store 1176(r01) 1179 - 1181: 6(float) Load 120(inF0) + 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) VectorTimesScalar 1182 1181 - Store 1180(r02) 1183 - 1185: 24(fvec2) Load 122(inFV2) - 1186: 6(float) Load 120(inF0) - 1187: 24(fvec2) VectorTimesScalar 1185 1186 - Store 1184(r03) 1187 - 1189: 36(fvec3) Load 123(inFV3) - 1190: 6(float) Load 120(inF0) - 1191: 36(fvec3) VectorTimesScalar 1189 1190 - Store 1188(r04) 1191 - 1193: 24(fvec2) Load 122(inFV2) - 1194: 24(fvec2) Load 122(inFV2) - 1195: 6(float) Dot 1193 1194 - Store 1192(r05) 1195 - 1197: 36(fvec3) Load 123(inFV3) - 1198: 36(fvec3) Load 123(inFV3) - 1199: 6(float) Dot 1197 1198 - Store 1196(r06) 1199 - 1201: 111 Load 124(inFM2x3) - 1202: 24(fvec2) Load 122(inFV2) - 1203: 36(fvec3) MatrixTimesVector 1201 1202 - Store 1200(r07) 1203 - 1205: 113 Load 125(inFM3x2) - 1206: 36(fvec3) Load 123(inFV3) - 1207: 24(fvec2) MatrixTimesVector 1205 1206 - Store 1204(r08) 1207 - 1209: 36(fvec3) Load 123(inFV3) - 1210: 111 Load 124(inFM2x3) - 1211: 24(fvec2) VectorTimesMatrix 1209 1210 - Store 1208(r09) 1211 - 1213: 24(fvec2) Load 122(inFV2) - 1214: 113 Load 125(inFM3x2) - 1215: 36(fvec3) VectorTimesMatrix 1213 1214 - Store 1212(r10) 1215 - 1217: 6(float) Load 120(inF0) - 1218: 111 Load 124(inFM2x3) - 1219: 111 MatrixTimesScalar 1218 1217 - Store 1216(r11) 1219 - 1221: 6(float) Load 120(inF0) - 1222: 113 Load 125(inFM3x2) - 1223: 113 MatrixTimesScalar 1222 1221 - Store 1220(r12) 1223 - 1225: 113 Load 125(inFM3x2) - 1226: 111 Load 124(inFM2x3) - 1227: 60 MatrixTimesMatrix 1225 1226 - Store 1224(r13) 1227 - 1229: 68 Load 126(inFM3x3) - 1230: 111 Load 124(inFM2x3) - 1231: 111 MatrixTimesMatrix 1229 1230 - Store 1228(r14) 1231 - 1233: 115 Load 127(inFM3x4) - 1234: 111 Load 124(inFM2x3) - 1235: 117 MatrixTimesMatrix 1233 1234 - Store 1232(r15) 1235 - 1237: 117 Load 128(inFM2x4) - 1238: 113 Load 125(inFM3x2) - 1239: 115 MatrixTimesMatrix 1237 1238 - Store 1236(r16) 1239 + 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-new/Test/baseResults/hlsl.isfinite.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.isfinite.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.isfinite.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.isfinite.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.layout.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.layout.frag.out index 0c12435a14..010c2ecd40 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.layout.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.layout.frag.out @@ -1,123 +1,151 @@ hlsl.layout.frag -Shader version: 450 +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 Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:16 Function Parameters: -0:16 'input' (in 4-component vector of float) +0:16 'input' ( in 4-component vector of float) 0:? Sequence -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 'input' (in 4-component vector of float) -0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:17 Constant: -0:17 0 (const uint) -0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) -0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) -0:17 Constant: -0:17 0 (const uint) -0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) -0:17 Constant: -0:17 0 (const uint) +0: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 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) -0:? 'specConst' (specialization-constant const int) +0:? '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 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +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: 450 +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 Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:16 Function Parameters: -0:16 'input' (in 4-component vector of float) +0:16 'input' ( in 4-component vector of float) 0:? Sequence -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 'input' (in 4-component vector of float) -0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:17 Constant: -0:17 0 (const uint) -0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) -0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) -0:17 Constant: -0:17 0 (const uint) -0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) -0:17 Constant: -0:17 0 (const uint) +0: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 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) -0:? 'specConst' (specialization-constant const int) +0:? '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 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +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): 80001 -// Id's are bound by 39 +// 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 14 "tbufName" - MemberName 14(tbufName) 0 "v1" - Name 16 "" - Name 23 "tbufName2" - MemberName 23(tbufName2) 0 "v5" - Name 25 "" - Name 30 "tbufName2" - MemberName 30(tbufName2) 0 "v1PostLayout" - Name 32 "" - MemberDecorate 14(tbufName) 0 Offset 16 - Decorate 14(tbufName) BufferBlock - Decorate 16 DescriptorSet 3 - Decorate 16 Binding 5 - MemberDecorate 23(tbufName2) 0 Offset 0 - Decorate 23(tbufName2) BufferBlock - MemberDecorate 30(tbufName2) 0 Offset 16 - Decorate 30(tbufName2) BufferBlock - Decorate 32 DescriptorSet 4 - Decorate 32 Binding 7 - Decorate 38 SpecId 17 + 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(tbufName): TypeStruct 7(fvec4) - 15: TypePointer Uniform 14(tbufName) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Uniform 7(fvec4) - 23(tbufName2): TypeStruct 7(fvec4) - 24: TypePointer PushConstant 23(tbufName2) - 25: 24(ptr) Variable PushConstant - 26: TypePointer PushConstant 7(fvec4) - 30(tbufName2): TypeStruct 7(fvec4) - 31: TypePointer Uniform 30(tbufName2) - 32: 31(ptr) Variable Uniform - 38: 17(int) SpecConstant 10 + 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 @@ -125,15 +153,19 @@ gl_FragCoord origin is upper left 11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label - 13: 7(fvec4) Load 10(input) - 20: 19(ptr) AccessChain 16 18 - 21: 7(fvec4) Load 20 - 22: 7(fvec4) FAdd 13 21 - 27: 26(ptr) AccessChain 25 18 - 28: 7(fvec4) Load 27 - 29: 7(fvec4) FAdd 22 28 - 33: 19(ptr) AccessChain 32 18 - 34: 7(fvec4) Load 33 - 35: 7(fvec4) FAdd 29 34 - ReturnValue 35 + 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-new/Test/baseResults/hlsl.layoutOverride.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.layoutOverride.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.layoutOverride.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.layoutOverride.vert.out 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 index 288a0f3f5e..2acf3d473d 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -1,133 +1,134 @@ hlsl.load.2dms.dx10.frag -Shader version: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of int) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 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 (layout(offset=8 ) uniform 2-component vector of int) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 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 (layout(offset=8 ) uniform 2-component vector of int) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 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 (layout(offset=8 ) uniform 2-component vector of int) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 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 (layout(offset=56 ) uniform 2-component vector of int) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 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 (layout(offset=8 ) uniform 2-component vector of int) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 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 (layout(offset=56 ) uniform 2-component vector of int) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 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 (layout(offset=8 ) uniform 2-component vector of int) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 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 (layout(offset=56 ) uniform 2-component vector of int) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 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 (layout(offset=16 ) uniform 3-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 (layout(offset=16 ) uniform 3-component vector of int) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 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 (layout(offset=16 ) uniform 3-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=16 ) uniform 3-component vector of int) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=56 ) uniform 2-component vector of int) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=16 ) uniform 3-component vector of int) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=56 ) uniform 2-component vector of int) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=16 ) uniform 3-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=56 ) uniform 2-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 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: @@ -135,173 +136,180 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:54 Sequence -0:54 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:54 Color: direct index for structure (temp 4-component vector of float) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:54 Constant: -0:54 0 (const int) -0:54 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex2dmsf4' (uniform texture2DMS) -0:? 'g_tTex2dmsi4' (uniform itexture2DMS) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of int) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 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 (layout(offset=8 ) uniform 2-component vector of int) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 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 (layout(offset=8 ) uniform 2-component vector of int) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 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 (layout(offset=8 ) uniform 2-component vector of int) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 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 (layout(offset=56 ) uniform 2-component vector of int) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 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 (layout(offset=8 ) uniform 2-component vector of int) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 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 (layout(offset=56 ) uniform 2-component vector of int) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 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 (layout(offset=8 ) uniform 2-component vector of int) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 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 (layout(offset=56 ) uniform 2-component vector of int) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 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 (layout(offset=16 ) uniform 3-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 (layout(offset=16 ) uniform 3-component vector of int) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 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 (layout(offset=16 ) uniform 3-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=16 ) uniform 3-component vector of int) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=56 ) uniform 2-component vector of int) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 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 (layout(offset=16 ) uniform 3-component vector of int) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=56 ) uniform 2-component vector of int) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 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 (layout(offset=16 ) uniform 3-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=56 ) uniform 2-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 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: @@ -309,218 +317,236 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:54 Sequence -0:54 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:54 Color: direct index for structure (temp 4-component vector of float) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:54 Constant: -0:54 0 (const int) -0:54 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex2dmsf4' (uniform texture2DMS) -0:? 'g_tTex2dmsi4' (uniform itexture2DMS) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 123 +// Generated by (magic number): 80007 +// Id's are bound by 130 Capability Shader Capability ImageGatherExtended - Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 112 116 + EntryPoint Fragment 4 "main" 120 124 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex2dmsf4" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 27 "g_tTex2dmsi4" - Name 35 "g_tTex2dmsu4" - Name 62 "g_tTex2dmsf4a" - Name 71 "g_tTex2dmsi4a" - Name 78 "g_tTex2dmsu4a" - Name 101 "PS_OUTPUT" - MemberName 101(PS_OUTPUT) 0 "Color" - MemberName 101(PS_OUTPUT) 1 "Depth" - Name 103 "psout" - Name 112 "Color" - Name 116 "Depth" - Name 122 "g_sSamp" - Decorate 9(g_tTex2dmsf4) DescriptorSet 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 27(g_tTex2dmsi4) DescriptorSet 0 - Decorate 35(g_tTex2dmsu4) DescriptorSet 0 - Decorate 62(g_tTex2dmsf4a) DescriptorSet 0 - Decorate 71(g_tTex2dmsi4a) DescriptorSet 0 - Decorate 78(g_tTex2dmsu4a) DescriptorSet 0 - Decorate 112(Color) Location 0 - Decorate 116(Depth) BuiltIn FragDepth - Decorate 122(g_sSamp) DescriptorSet 0 - Decorate 122(g_sSamp) Binding 0 + 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: TypeImage 6(float) 2D multi-sampled sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9(g_tTex2dmsf4): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 1 - 19: TypePointer Uniform 12(ivec2) - 22: 11(int) Constant 3 - 23: TypeVector 6(float) 4 - 25: TypeImage 11(int) 2D multi-sampled sampled format:Unknown - 26: TypePointer UniformConstant 25 -27(g_tTex2dmsi4): 26(ptr) Variable UniformConstant - 32: TypeInt 32 0 - 33: TypeImage 32(int) 2D multi-sampled sampled format:Unknown - 34: TypePointer UniformConstant 33 -35(g_tTex2dmsu4): 34(ptr) Variable UniformConstant - 39: TypeVector 32(int) 4 - 44: 11(int) Constant 5 - 60: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown - 61: TypePointer UniformConstant 60 -62(g_tTex2dmsf4a): 61(ptr) Variable UniformConstant - 64: 11(int) Constant 2 - 65: TypePointer Uniform 13(ivec3) - 69: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown - 70: TypePointer UniformConstant 69 -71(g_tTex2dmsi4a): 70(ptr) Variable UniformConstant - 76: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown - 77: TypePointer UniformConstant 76 -78(g_tTex2dmsu4a): 77(ptr) Variable UniformConstant - 101(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) - 102: TypePointer Function 101(PS_OUTPUT) - 104: 11(int) Constant 0 - 105: 6(float) Constant 1065353216 - 106: 23(fvec4) ConstantComposite 105 105 105 105 - 107: TypePointer Function 23(fvec4) - 109: TypePointer Function 6(float) - 111: TypePointer Output 23(fvec4) - 112(Color): 111(ptr) Variable Output - 115: TypePointer Output 6(float) - 116(Depth): 115(ptr) Variable Output - 120: TypeSampler - 121: TypePointer UniformConstant 120 - 122(g_sSamp): 121(ptr) Variable UniformConstant + 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 - 103(psout): 102(ptr) Variable Function - 10: 7 Load 9(g_tTex2dmsf4) - 20: 19(ptr) AccessChain 17 18 - 21: 12(ivec2) Load 20 - 24: 23(fvec4) ImageFetch 10 21 Sample 22 - 28: 25 Load 27(g_tTex2dmsi4) - 29: 19(ptr) AccessChain 17 18 - 30: 12(ivec2) Load 29 - 31: 14(ivec4) ImageFetch 28 30 Sample 22 - 36: 33 Load 35(g_tTex2dmsu4) - 37: 19(ptr) AccessChain 17 18 - 38: 12(ivec2) Load 37 - 40: 39(ivec4) ImageFetch 36 38 Sample 22 - 41: 7 Load 9(g_tTex2dmsf4) - 42: 19(ptr) AccessChain 17 18 - 43: 12(ivec2) Load 42 - 45: 19(ptr) AccessChain 17 44 - 46: 12(ivec2) Load 45 - 47: 23(fvec4) ImageFetch 41 43 Offset Sample 46 22 - 48: 25 Load 27(g_tTex2dmsi4) - 49: 19(ptr) AccessChain 17 18 - 50: 12(ivec2) Load 49 - 51: 19(ptr) AccessChain 17 44 - 52: 12(ivec2) Load 51 - 53: 14(ivec4) ImageFetch 48 50 Offset Sample 52 22 - 54: 33 Load 35(g_tTex2dmsu4) - 55: 19(ptr) AccessChain 17 18 - 56: 12(ivec2) Load 55 - 57: 19(ptr) AccessChain 17 44 - 58: 12(ivec2) Load 57 - 59: 39(ivec4) ImageFetch 54 56 Offset Sample 58 22 - 63: 60 Load 62(g_tTex2dmsf4a) - 66: 65(ptr) AccessChain 17 64 - 67: 13(ivec3) Load 66 - 68: 23(fvec4) ImageFetch 63 67 Sample 22 - 72: 69 Load 71(g_tTex2dmsi4a) - 73: 65(ptr) AccessChain 17 64 - 74: 13(ivec3) Load 73 - 75: 14(ivec4) ImageFetch 72 74 Sample 22 - 79: 76 Load 78(g_tTex2dmsu4a) - 80: 65(ptr) AccessChain 17 64 - 81: 13(ivec3) Load 80 - 82: 39(ivec4) ImageFetch 79 81 Sample 22 - 83: 60 Load 62(g_tTex2dmsf4a) - 84: 65(ptr) AccessChain 17 64 - 85: 13(ivec3) Load 84 - 86: 19(ptr) AccessChain 17 44 - 87: 12(ivec2) Load 86 - 88: 23(fvec4) ImageFetch 83 85 Offset Sample 87 22 - 89: 69 Load 71(g_tTex2dmsi4a) - 90: 65(ptr) AccessChain 17 64 - 91: 13(ivec3) Load 90 - 92: 19(ptr) AccessChain 17 44 - 93: 12(ivec2) Load 92 - 94: 14(ivec4) ImageFetch 89 91 Offset Sample 93 22 - 95: 76 Load 78(g_tTex2dmsu4a) - 96: 65(ptr) AccessChain 17 64 - 97: 13(ivec3) Load 96 - 98: 19(ptr) AccessChain 17 44 - 99: 12(ivec2) Load 98 - 100: 39(ivec4) ImageFetch 95 97 Offset Sample 99 22 - 108: 107(ptr) AccessChain 103(psout) 104 - Store 108 106 - 110: 109(ptr) AccessChain 103(psout) 18 - Store 110 105 - 113: 107(ptr) AccessChain 103(psout) 104 - 114: 23(fvec4) Load 113 - Store 112(Color) 114 - 117: 109(ptr) AccessChain 103(psout) 18 - 118: 6(float) Load 117 - Store 116(Depth) 118 +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 index 8c4f7c8d05..dd665edfa9 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -1,15 +1,16 @@ hlsl.load.array.dx10.frag -Shader version: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 @@ -17,18 +18,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 @@ -36,18 +37,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 @@ -55,18 +56,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -76,18 +77,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -97,18 +98,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -118,16 +119,16 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 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: @@ -135,70 +136,77 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:70 Sequence -0:70 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 0 (const int) -0:70 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 1 (const int) -0:70 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 @@ -206,18 +214,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 @@ -225,18 +233,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 @@ -244,18 +252,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -265,18 +273,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -286,18 +294,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -307,16 +315,16 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 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: @@ -324,293 +332,312 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:70 Sequence -0:70 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 0 (const int) -0:70 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:70 Constant: -0:70 1 (const int) -0:70 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 152 +// 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" 96 100 + EntryPoint Fragment 4 "main" 104 108 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1df4a" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 32 "g_tTex1di4a" - Name 42 "g_tTex1du4a" - Name 53 "g_tTex2df4a" - Name 66 "g_tTex2di4a" - Name 76 "g_tTex2du4a" - Name 84 "PS_OUTPUT" - MemberName 84(PS_OUTPUT) 0 "Color" - MemberName 84(PS_OUTPUT) 1 "Depth" - Name 86 "psout" - Name 96 "Color" - Name 100 "Depth" - Name 106 "g_sSamp" - Name 109 "g_tTex1df4" - Name 112 "g_tTex1di4" - Name 115 "g_tTex1du4" - Name 118 "g_tTex2df4" - Name 121 "g_tTex2di4" - Name 124 "g_tTex2du4" - Name 127 "g_tTex3df4" - Name 130 "g_tTex3di4" - Name 133 "g_tTex3du4" - Name 136 "g_tTexcdf4" - Name 139 "g_tTexcdi4" - Name 142 "g_tTexcdu4" - Name 145 "g_tTexcdf4a" - Name 148 "g_tTexcdi4a" - Name 151 "g_tTexcdu4a" - Decorate 9(g_tTex1df4a) DescriptorSet 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 32(g_tTex1di4a) DescriptorSet 0 - Decorate 42(g_tTex1du4a) DescriptorSet 0 - Decorate 53(g_tTex2df4a) DescriptorSet 0 - Decorate 66(g_tTex2di4a) DescriptorSet 0 - Decorate 76(g_tTex2du4a) DescriptorSet 0 - Decorate 96(Color) Location 0 - Decorate 100(Depth) BuiltIn FragDepth - Decorate 106(g_sSamp) DescriptorSet 0 - Decorate 106(g_sSamp) Binding 0 - Decorate 109(g_tTex1df4) DescriptorSet 0 - Decorate 109(g_tTex1df4) Binding 0 - Decorate 112(g_tTex1di4) DescriptorSet 0 - Decorate 115(g_tTex1du4) DescriptorSet 0 - Decorate 118(g_tTex2df4) DescriptorSet 0 - Decorate 121(g_tTex2di4) DescriptorSet 0 - Decorate 124(g_tTex2du4) DescriptorSet 0 - Decorate 127(g_tTex3df4) DescriptorSet 0 - Decorate 130(g_tTex3di4) DescriptorSet 0 - Decorate 133(g_tTex3du4) DescriptorSet 0 - Decorate 136(g_tTexcdf4) DescriptorSet 0 - Decorate 139(g_tTexcdi4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 145(g_tTexcdf4a) DescriptorSet 0 - Decorate 148(g_tTexcdi4a) DescriptorSet 0 - Decorate 151(g_tTexcdu4a) DescriptorSet 0 + 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: TypeImage 6(float) 1D array sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9(g_tTex1df4a): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 2 - 19: TypePointer Uniform 13(ivec3) - 23: TypeInt 32 0 - 24: 23(int) Constant 2 - 25: TypePointer Uniform 11(int) - 28: TypeVector 6(float) 4 - 30: TypeImage 11(int) 1D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4a): 31(ptr) Variable UniformConstant - 40: TypeImage 23(int) 1D array sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4a): 41(ptr) Variable UniformConstant - 49: TypeVector 23(int) 4 - 51: TypeImage 6(float) 2D array sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4a): 52(ptr) Variable UniformConstant - 55: 11(int) Constant 3 - 56: TypePointer Uniform 14(ivec4) - 60: 23(int) Constant 3 - 64: TypeImage 11(int) 2D array sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4a): 65(ptr) Variable UniformConstant - 74: TypeImage 23(int) 2D array sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4a): 75(ptr) Variable UniformConstant - 84(PS_OUTPUT): TypeStruct 28(fvec4) 6(float) - 85: TypePointer Function 84(PS_OUTPUT) - 87: 11(int) Constant 0 - 88: 6(float) Constant 1065353216 - 89: 28(fvec4) ConstantComposite 88 88 88 88 - 90: TypePointer Function 28(fvec4) - 92: 11(int) Constant 1 - 93: TypePointer Function 6(float) - 95: TypePointer Output 28(fvec4) - 96(Color): 95(ptr) Variable Output - 99: TypePointer Output 6(float) - 100(Depth): 99(ptr) Variable Output - 104: TypeSampler - 105: TypePointer UniformConstant 104 - 106(g_sSamp): 105(ptr) Variable UniformConstant - 107: TypeImage 6(float) 1D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex1df4): 108(ptr) Variable UniformConstant - 110: TypeImage 11(int) 1D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex1di4): 111(ptr) Variable UniformConstant - 113: TypeImage 23(int) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) 2D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex2df4): 117(ptr) Variable UniformConstant - 119: TypeImage 11(int) 2D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex2di4): 120(ptr) Variable UniformConstant - 122: TypeImage 23(int) 2D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex2du4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) 3D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex3df4): 126(ptr) Variable UniformConstant - 128: TypeImage 11(int) 3D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex3di4): 129(ptr) Variable UniformConstant - 131: TypeImage 23(int) 3D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex3du4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTexcdf4): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdi4): 138(ptr) Variable UniformConstant - 140: TypeImage 23(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdf4a): 144(ptr) Variable UniformConstant - 146: TypeImage 11(int) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdi4a): 147(ptr) Variable UniformConstant - 149: TypeImage 23(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 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 - 86(psout): 85(ptr) Variable Function - 10: 7 Load 9(g_tTex1df4a) - 20: 19(ptr) AccessChain 17 18 - 21: 13(ivec3) Load 20 - 22: 12(ivec2) VectorShuffle 21 21 0 1 - 26: 25(ptr) AccessChain 17 18 24 - 27: 11(int) Load 26 - 29: 28(fvec4) ImageFetch 10 22 Lod 27 - 33: 30 Load 32(g_tTex1di4a) - 34: 19(ptr) AccessChain 17 18 - 35: 13(ivec3) Load 34 - 36: 12(ivec2) VectorShuffle 35 35 0 1 - 37: 25(ptr) AccessChain 17 18 24 - 38: 11(int) Load 37 - 39: 14(ivec4) ImageFetch 33 36 Lod 38 - 43: 40 Load 42(g_tTex1du4a) - 44: 19(ptr) AccessChain 17 18 - 45: 13(ivec3) Load 44 - 46: 12(ivec2) VectorShuffle 45 45 0 1 - 47: 25(ptr) AccessChain 17 18 24 - 48: 11(int) Load 47 - 50: 49(ivec4) ImageFetch 43 46 Lod 48 - 54: 51 Load 53(g_tTex2df4a) - 57: 56(ptr) AccessChain 17 55 - 58: 14(ivec4) Load 57 - 59: 13(ivec3) VectorShuffle 58 58 0 1 2 - 61: 25(ptr) AccessChain 17 55 60 - 62: 11(int) Load 61 - 63: 28(fvec4) ImageFetch 54 59 Lod 62 - 67: 64 Load 66(g_tTex2di4a) - 68: 56(ptr) AccessChain 17 55 - 69: 14(ivec4) Load 68 - 70: 13(ivec3) VectorShuffle 69 69 0 1 2 - 71: 25(ptr) AccessChain 17 55 60 - 72: 11(int) Load 71 - 73: 14(ivec4) ImageFetch 67 70 Lod 72 - 77: 74 Load 76(g_tTex2du4a) - 78: 56(ptr) AccessChain 17 55 - 79: 14(ivec4) Load 78 - 80: 13(ivec3) VectorShuffle 79 79 0 1 2 - 81: 25(ptr) AccessChain 17 55 60 - 82: 11(int) Load 81 - 83: 49(ivec4) ImageFetch 77 80 Lod 82 - 91: 90(ptr) AccessChain 86(psout) 87 - Store 91 89 - 94: 93(ptr) AccessChain 86(psout) 92 - Store 94 88 - 97: 90(ptr) AccessChain 86(psout) 87 - 98: 28(fvec4) Load 97 - Store 96(Color) 98 - 101: 93(ptr) AccessChain 86(psout) 92 - 102: 6(float) Load 101 - Store 100(Depth) 102 +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 index c8e8eb6307..bcfb977b19 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -1,66 +1,67 @@ hlsl.load.basic.dx10.frag -Shader version: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -68,18 +69,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -87,18 +88,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -106,18 +107,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 @@ -127,18 +128,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 @@ -148,18 +149,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 @@ -169,16 +170,16 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 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: @@ -186,121 +187,128 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:75 Sequence -0:75 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 0 (const int) -0:75 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 1 (const int) -0:75 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -308,18 +316,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -327,18 +335,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -346,18 +354,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 @@ -367,18 +375,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 @@ -388,18 +396,18 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 @@ -409,16 +417,16 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 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: @@ -426,313 +434,332 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:75 Sequence -0:75 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 0 (const int) -0:75 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 1 (const int) -0:75 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 172 +// 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" 125 129 + EntryPoint Fragment 4 "main" 133 137 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1df4" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 31 "g_tTex1di4" - Name 40 "g_tTex1du4" - Name 50 "g_tTex2df4" - Name 63 "g_tTex2di4" - Name 73 "g_tTex2du4" - Name 83 "g_tTex3df4" - Name 96 "g_tTex3di4" - Name 106 "g_tTex3du4" - Name 114 "PS_OUTPUT" - MemberName 114(PS_OUTPUT) 0 "Color" - MemberName 114(PS_OUTPUT) 1 "Depth" - Name 116 "psout" - Name 125 "Color" - Name 129 "Depth" - Name 135 "g_sSamp" - Name 138 "g_tTexcdf4" - Name 141 "g_tTexcdi4" - Name 144 "g_tTexcdu4" - Name 147 "g_tTex1df4a" - Name 150 "g_tTex1di4a" - Name 153 "g_tTex1du4a" - Name 156 "g_tTex2df4a" - Name 159 "g_tTex2di4a" - Name 162 "g_tTex2du4a" - Name 165 "g_tTexcdf4a" - Name 168 "g_tTexcdi4a" - Name 171 "g_tTexcdu4a" - Decorate 9(g_tTex1df4) DescriptorSet 0 - Decorate 9(g_tTex1df4) Binding 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 31(g_tTex1di4) DescriptorSet 0 - Decorate 40(g_tTex1du4) DescriptorSet 0 - Decorate 50(g_tTex2df4) DescriptorSet 0 - Decorate 63(g_tTex2di4) DescriptorSet 0 - Decorate 73(g_tTex2du4) DescriptorSet 0 - Decorate 83(g_tTex3df4) DescriptorSet 0 - Decorate 96(g_tTex3di4) DescriptorSet 0 - Decorate 106(g_tTex3du4) DescriptorSet 0 - Decorate 125(Color) Location 0 - Decorate 129(Depth) BuiltIn FragDepth - Decorate 135(g_sSamp) DescriptorSet 0 - Decorate 135(g_sSamp) Binding 0 - Decorate 138(g_tTexcdf4) DescriptorSet 0 - Decorate 141(g_tTexcdi4) DescriptorSet 0 - Decorate 144(g_tTexcdu4) DescriptorSet 0 - Decorate 147(g_tTex1df4a) DescriptorSet 0 - Decorate 150(g_tTex1di4a) DescriptorSet 0 - Decorate 153(g_tTex1du4a) DescriptorSet 0 - Decorate 156(g_tTex2df4a) DescriptorSet 0 - Decorate 159(g_tTex2di4a) DescriptorSet 0 - Decorate 162(g_tTex2du4a) DescriptorSet 0 - Decorate 165(g_tTexcdf4a) DescriptorSet 0 - Decorate 168(g_tTexcdi4a) DescriptorSet 0 - Decorate 171(g_tTexcdu4a) DescriptorSet 0 + 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: TypeImage 6(float) 1D sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9(g_tTex1df4): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 1 - 19: TypeInt 32 0 - 20: 19(int) Constant 0 - 21: TypePointer Uniform 11(int) - 24: 19(int) Constant 1 - 27: TypeVector 6(float) 4 - 29: TypeImage 11(int) 1D sampled format:Unknown - 30: TypePointer UniformConstant 29 - 31(g_tTex1di4): 30(ptr) Variable UniformConstant - 38: TypeImage 19(int) 1D sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4): 39(ptr) Variable UniformConstant - 46: TypeVector 19(int) 4 - 48: TypeImage 6(float) 2D sampled format:Unknown - 49: TypePointer UniformConstant 48 - 50(g_tTex2df4): 49(ptr) Variable UniformConstant - 52: 11(int) Constant 2 - 53: TypePointer Uniform 13(ivec3) - 57: 19(int) Constant 2 - 61: TypeImage 11(int) 2D sampled format:Unknown - 62: TypePointer UniformConstant 61 - 63(g_tTex2di4): 62(ptr) Variable UniformConstant - 71: TypeImage 19(int) 2D sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2du4): 72(ptr) Variable UniformConstant - 81: TypeImage 6(float) 3D sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex3df4): 82(ptr) Variable UniformConstant - 85: 11(int) Constant 3 - 86: TypePointer Uniform 14(ivec4) - 90: 19(int) Constant 3 - 94: TypeImage 11(int) 3D sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTex3di4): 95(ptr) Variable UniformConstant - 104: TypeImage 19(int) 3D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex3du4): 105(ptr) Variable UniformConstant - 114(PS_OUTPUT): TypeStruct 27(fvec4) 6(float) - 115: TypePointer Function 114(PS_OUTPUT) - 117: 11(int) Constant 0 - 118: 6(float) Constant 1065353216 - 119: 27(fvec4) ConstantComposite 118 118 118 118 - 120: TypePointer Function 27(fvec4) - 122: TypePointer Function 6(float) - 124: TypePointer Output 27(fvec4) - 125(Color): 124(ptr) Variable Output - 128: TypePointer Output 6(float) - 129(Depth): 128(ptr) Variable Output - 133: TypeSampler - 134: TypePointer UniformConstant 133 - 135(g_sSamp): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdf4): 137(ptr) Variable UniformConstant - 139: TypeImage 11(int) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdi4): 140(ptr) Variable UniformConstant - 142: TypeImage 19(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdu4): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) 1D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex1df4a): 146(ptr) Variable UniformConstant - 148: TypeImage 11(int) 1D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex1di4a): 149(ptr) Variable UniformConstant - 151: TypeImage 19(int) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1du4a): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) 2D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex2df4a): 155(ptr) Variable UniformConstant - 157: TypeImage 11(int) 2D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex2di4a): 158(ptr) Variable UniformConstant - 160: TypeImage 19(int) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2du4a): 161(ptr) Variable UniformConstant - 163: TypeImage 6(float) Cube array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTexcdf4a): 164(ptr) Variable UniformConstant - 166: TypeImage 11(int) Cube array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTexcdi4a): 167(ptr) Variable UniformConstant - 169: TypeImage 19(int) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 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 - 116(psout): 115(ptr) Variable Function - 10: 7 Load 9(g_tTex1df4) - 22: 21(ptr) AccessChain 17 18 20 - 23: 11(int) Load 22 - 25: 21(ptr) AccessChain 17 18 24 - 26: 11(int) Load 25 - 28: 27(fvec4) ImageFetch 10 23 Lod 26 - 32: 29 Load 31(g_tTex1di4) - 33: 21(ptr) AccessChain 17 18 20 - 34: 11(int) Load 33 - 35: 21(ptr) AccessChain 17 18 24 - 36: 11(int) Load 35 - 37: 14(ivec4) ImageFetch 32 34 Lod 36 - 41: 38 Load 40(g_tTex1du4) - 42: 21(ptr) AccessChain 17 18 20 - 43: 11(int) Load 42 - 44: 21(ptr) AccessChain 17 18 24 - 45: 11(int) Load 44 - 47: 46(ivec4) ImageFetch 41 43 Lod 45 - 51: 48 Load 50(g_tTex2df4) - 54: 53(ptr) AccessChain 17 52 - 55: 13(ivec3) Load 54 - 56: 12(ivec2) VectorShuffle 55 55 0 1 - 58: 21(ptr) AccessChain 17 52 57 - 59: 11(int) Load 58 - 60: 27(fvec4) ImageFetch 51 56 Lod 59 - 64: 61 Load 63(g_tTex2di4) - 65: 53(ptr) AccessChain 17 52 - 66: 13(ivec3) Load 65 - 67: 12(ivec2) VectorShuffle 66 66 0 1 - 68: 21(ptr) AccessChain 17 52 57 - 69: 11(int) Load 68 - 70: 14(ivec4) ImageFetch 64 67 Lod 69 - 74: 71 Load 73(g_tTex2du4) - 75: 53(ptr) AccessChain 17 52 - 76: 13(ivec3) Load 75 - 77: 12(ivec2) VectorShuffle 76 76 0 1 - 78: 21(ptr) AccessChain 17 52 57 - 79: 11(int) Load 78 - 80: 46(ivec4) ImageFetch 74 77 Lod 79 - 84: 81 Load 83(g_tTex3df4) - 87: 86(ptr) AccessChain 17 85 - 88: 14(ivec4) Load 87 - 89: 13(ivec3) VectorShuffle 88 88 0 1 2 - 91: 21(ptr) AccessChain 17 85 90 - 92: 11(int) Load 91 - 93: 27(fvec4) ImageFetch 84 89 Lod 92 - 97: 94 Load 96(g_tTex3di4) - 98: 86(ptr) AccessChain 17 85 - 99: 14(ivec4) Load 98 - 100: 13(ivec3) VectorShuffle 99 99 0 1 2 - 101: 21(ptr) AccessChain 17 85 90 - 102: 11(int) Load 101 - 103: 14(ivec4) ImageFetch 97 100 Lod 102 - 107: 104 Load 106(g_tTex3du4) - 108: 86(ptr) AccessChain 17 85 - 109: 14(ivec4) Load 108 - 110: 13(ivec3) VectorShuffle 109 109 0 1 2 - 111: 21(ptr) AccessChain 17 85 90 - 112: 11(int) Load 111 - 113: 46(ivec4) ImageFetch 107 110 Lod 112 - 121: 120(ptr) AccessChain 116(psout) 117 - Store 121 119 - 123: 122(ptr) AccessChain 116(psout) 18 - Store 123 118 - 126: 120(ptr) AccessChain 116(psout) 117 - 127: 27(fvec4) Load 126 - Store 125(Color) 127 - 130: 122(ptr) AccessChain 116(psout) 18 - 131: 6(float) Load 130 - Store 129(Depth) 131 +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 index a86f0aea97..163899168e 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -1,65 +1,65 @@ hlsl.load.basic.dx10.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:47 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence -0:51 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 @@ -67,18 +67,18 @@ Shader version: 450 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 (layout(offset=16 ) uniform 3-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -86,18 +86,18 @@ Shader version: 450 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -105,18 +105,18 @@ Shader version: 450 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=32 ) uniform 4-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 @@ -126,18 +126,18 @@ Shader version: 450 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 (layout(offset=32 ) uniform 4-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 @@ -147,18 +147,18 @@ Shader version: 450 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 @@ -168,16 +168,16 @@ Shader version: 450 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 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: @@ -185,106 +185,109 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Sequence -0:69 Sequence -0:69 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:69 Pos: direct index for structure (temp 4-component vector of float) -0:69 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:69 Constant: -0:69 0 (const int) -0:69 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +Shader version: 500 0:? Sequence -0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:47 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence -0:51 textureFetch (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 (layout(offset=8 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 @@ -292,18 +295,18 @@ Shader version: 450 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 (layout(offset=16 ) uniform 3-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -311,18 +314,18 @@ Shader version: 450 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -330,18 +333,18 @@ Shader version: 450 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=32 ) uniform 4-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 @@ -351,18 +354,18 @@ Shader version: 450 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 (layout(offset=32 ) uniform 4-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 @@ -372,18 +375,18 @@ Shader version: 450 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 @@ -393,16 +396,16 @@ Shader version: 450 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 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: @@ -410,287 +413,298 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Sequence -0:69 Sequence -0:69 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:69 Pos: direct index for structure (temp 4-component vector of float) -0:69 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:69 Constant: -0:69 0 (const int) -0:69 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 166 +// 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" 123 + EntryPoint Vertex 4 "main" 129 + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1df4" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 31 "g_tTex1di4" - Name 40 "g_tTex1du4" - Name 50 "g_tTex2df4" - Name 63 "g_tTex2di4" - Name 73 "g_tTex2du4" - Name 83 "g_tTex3df4" - Name 96 "g_tTex3di4" - Name 106 "g_tTex3du4" - Name 114 "VS_OUTPUT" - MemberName 114(VS_OUTPUT) 0 "Pos" - Name 116 "vsout" - Name 123 "Pos" - Name 129 "g_sSamp" - Name 132 "g_tTexcdf4" - Name 135 "g_tTexcdi4" - Name 138 "g_tTexcdu4" - Name 141 "g_tTex1df4a" - Name 144 "g_tTex1di4a" - Name 147 "g_tTex1du4a" - Name 150 "g_tTex2df4a" - Name 153 "g_tTex2di4a" - Name 156 "g_tTex2du4a" - Name 159 "g_tTexcdf4a" - Name 162 "g_tTexcdi4a" - Name 165 "g_tTexcdu4a" - Decorate 9(g_tTex1df4) DescriptorSet 0 - Decorate 9(g_tTex1df4) Binding 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 31(g_tTex1di4) DescriptorSet 0 - Decorate 40(g_tTex1du4) DescriptorSet 0 - Decorate 50(g_tTex2df4) DescriptorSet 0 - Decorate 63(g_tTex2di4) DescriptorSet 0 - Decorate 73(g_tTex2du4) DescriptorSet 0 - Decorate 83(g_tTex3df4) DescriptorSet 0 - Decorate 96(g_tTex3di4) DescriptorSet 0 - Decorate 106(g_tTex3du4) DescriptorSet 0 - Decorate 123(Pos) BuiltIn Position - Decorate 129(g_sSamp) DescriptorSet 0 - Decorate 129(g_sSamp) Binding 0 - Decorate 132(g_tTexcdf4) DescriptorSet 0 - Decorate 135(g_tTexcdi4) DescriptorSet 0 - Decorate 138(g_tTexcdu4) DescriptorSet 0 - Decorate 141(g_tTex1df4a) DescriptorSet 0 - Decorate 144(g_tTex1di4a) DescriptorSet 0 - Decorate 147(g_tTex1du4a) DescriptorSet 0 - Decorate 150(g_tTex2df4a) DescriptorSet 0 - Decorate 153(g_tTex2di4a) DescriptorSet 0 - Decorate 156(g_tTex2du4a) DescriptorSet 0 - Decorate 159(g_tTexcdf4a) DescriptorSet 0 - Decorate 162(g_tTexcdi4a) DescriptorSet 0 - Decorate 165(g_tTexcdu4a) DescriptorSet 0 + 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: TypeImage 6(float) 1D sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9(g_tTex1df4): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 1 - 19: TypeInt 32 0 - 20: 19(int) Constant 0 - 21: TypePointer Uniform 11(int) - 24: 19(int) Constant 1 - 27: TypeVector 6(float) 4 - 29: TypeImage 11(int) 1D sampled format:Unknown - 30: TypePointer UniformConstant 29 - 31(g_tTex1di4): 30(ptr) Variable UniformConstant - 38: TypeImage 19(int) 1D sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4): 39(ptr) Variable UniformConstant - 46: TypeVector 19(int) 4 - 48: TypeImage 6(float) 2D sampled format:Unknown - 49: TypePointer UniformConstant 48 - 50(g_tTex2df4): 49(ptr) Variable UniformConstant - 52: 11(int) Constant 2 - 53: TypePointer Uniform 13(ivec3) - 57: 19(int) Constant 2 - 61: TypeImage 11(int) 2D sampled format:Unknown - 62: TypePointer UniformConstant 61 - 63(g_tTex2di4): 62(ptr) Variable UniformConstant - 71: TypeImage 19(int) 2D sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2du4): 72(ptr) Variable UniformConstant - 81: TypeImage 6(float) 3D sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex3df4): 82(ptr) Variable UniformConstant - 85: 11(int) Constant 3 - 86: TypePointer Uniform 14(ivec4) - 90: 19(int) Constant 3 - 94: TypeImage 11(int) 3D sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTex3di4): 95(ptr) Variable UniformConstant - 104: TypeImage 19(int) 3D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex3du4): 105(ptr) Variable UniformConstant - 114(VS_OUTPUT): TypeStruct 27(fvec4) - 115: TypePointer Function 114(VS_OUTPUT) - 117: 11(int) Constant 0 - 118: 6(float) Constant 0 - 119: 27(fvec4) ConstantComposite 118 118 118 118 - 120: TypePointer Function 27(fvec4) - 122: TypePointer Output 27(fvec4) - 123(Pos): 122(ptr) Variable Output - 127: TypeSampler - 128: TypePointer UniformConstant 127 - 129(g_sSamp): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdf4): 131(ptr) Variable UniformConstant - 133: TypeImage 11(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdi4): 134(ptr) Variable UniformConstant - 136: TypeImage 19(int) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdu4): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 1D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex1df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 11(int) 1D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex1di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 19(int) 1D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex1du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) 2D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex2df4a): 149(ptr) Variable UniformConstant - 151: TypeImage 11(int) 2D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex2di4a): 152(ptr) Variable UniformConstant - 154: TypeImage 19(int) 2D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex2du4a): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) Cube array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTexcdf4a): 158(ptr) Variable UniformConstant - 160: TypeImage 11(int) Cube array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTexcdi4a): 161(ptr) Variable UniformConstant - 163: TypeImage 19(int) Cube array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTexcdu4a): 164(ptr) Variable UniformConstant + 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 - 116(vsout): 115(ptr) Variable Function - 10: 7 Load 9(g_tTex1df4) - 22: 21(ptr) AccessChain 17 18 20 - 23: 11(int) Load 22 - 25: 21(ptr) AccessChain 17 18 24 - 26: 11(int) Load 25 - 28: 27(fvec4) ImageFetch 10 23 Lod 26 - 32: 29 Load 31(g_tTex1di4) - 33: 21(ptr) AccessChain 17 18 20 - 34: 11(int) Load 33 - 35: 21(ptr) AccessChain 17 18 24 - 36: 11(int) Load 35 - 37: 14(ivec4) ImageFetch 32 34 Lod 36 - 41: 38 Load 40(g_tTex1du4) - 42: 21(ptr) AccessChain 17 18 20 - 43: 11(int) Load 42 - 44: 21(ptr) AccessChain 17 18 24 - 45: 11(int) Load 44 - 47: 46(ivec4) ImageFetch 41 43 Lod 45 - 51: 48 Load 50(g_tTex2df4) - 54: 53(ptr) AccessChain 17 52 - 55: 13(ivec3) Load 54 - 56: 12(ivec2) VectorShuffle 55 55 0 1 - 58: 21(ptr) AccessChain 17 52 57 - 59: 11(int) Load 58 - 60: 27(fvec4) ImageFetch 51 56 Lod 59 - 64: 61 Load 63(g_tTex2di4) - 65: 53(ptr) AccessChain 17 52 - 66: 13(ivec3) Load 65 - 67: 12(ivec2) VectorShuffle 66 66 0 1 - 68: 21(ptr) AccessChain 17 52 57 - 69: 11(int) Load 68 - 70: 14(ivec4) ImageFetch 64 67 Lod 69 - 74: 71 Load 73(g_tTex2du4) - 75: 53(ptr) AccessChain 17 52 - 76: 13(ivec3) Load 75 - 77: 12(ivec2) VectorShuffle 76 76 0 1 - 78: 21(ptr) AccessChain 17 52 57 - 79: 11(int) Load 78 - 80: 46(ivec4) ImageFetch 74 77 Lod 79 - 84: 81 Load 83(g_tTex3df4) - 87: 86(ptr) AccessChain 17 85 - 88: 14(ivec4) Load 87 - 89: 13(ivec3) VectorShuffle 88 88 0 1 2 - 91: 21(ptr) AccessChain 17 85 90 - 92: 11(int) Load 91 - 93: 27(fvec4) ImageFetch 84 89 Lod 92 - 97: 94 Load 96(g_tTex3di4) - 98: 86(ptr) AccessChain 17 85 - 99: 14(ivec4) Load 98 - 100: 13(ivec3) VectorShuffle 99 99 0 1 2 - 101: 21(ptr) AccessChain 17 85 90 - 102: 11(int) Load 101 - 103: 14(ivec4) ImageFetch 97 100 Lod 102 - 107: 104 Load 106(g_tTex3du4) - 108: 86(ptr) AccessChain 17 85 - 109: 14(ivec4) Load 108 - 110: 13(ivec3) VectorShuffle 109 109 0 1 2 - 111: 21(ptr) AccessChain 17 85 90 - 112: 11(int) Load 111 - 113: 46(ivec4) ImageFetch 107 110 Lod 112 - 121: 120(ptr) AccessChain 116(vsout) 117 - Store 121 119 - 124: 120(ptr) AccessChain 116(vsout) 117 - 125: 27(fvec4) Load 124 - Store 123(Pos) 125 + 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 index c80ddcfe91..21e5d30402 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -1,40 +1,41 @@ hlsl.load.buffer.dx10.frag -Shader version: 450 +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 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 samplerBuffer) -0:28 c1: direct index for structure (layout(offset=0 ) uniform int) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 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 isamplerBuffer) -0:29 c1: direct index for structure (layout(offset=0 ) uniform int) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 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 usamplerBuffer) -0:30 c1: direct index for structure (layout(offset=0 ) uniform int) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 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 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: @@ -42,77 +43,84 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Sequence -0:37 Sequence -0:37 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:37 Color: direct index for structure (temp 4-component vector of float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 0 (const int) -0:37 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:37 Depth: direct index for structure (temp float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 1 (const int) -0:37 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) -0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) -0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) -0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 samplerBuffer) -0:28 c1: direct index for structure (layout(offset=0 ) uniform int) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 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 isamplerBuffer) -0:29 c1: direct index for structure (layout(offset=0 ) uniform int) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 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 usamplerBuffer) -0:30 c1: direct index for structure (layout(offset=0 ) uniform int) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 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 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: @@ -120,162 +128,175 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Sequence -0:37 Sequence -0:37 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:37 Color: direct index for structure (temp 4-component vector of float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 0 (const int) -0:37 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:37 Depth: direct index for structure (temp float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 1 (const int) -0:37 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) -0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) -0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) -0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 71 +// 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" 62 66 + EntryPoint Fragment 4 "main" 64 68 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "r00" - Name 13 "g_tTexbf4" - Name 19 "$Global" - MemberName 19($Global) 0 "c1" - MemberName 19($Global) 1 "c2" - MemberName 19($Global) 2 "c3" - MemberName 19($Global) 3 "c4" - MemberName 19($Global) 4 "o1" - MemberName 19($Global) 5 "o2" - MemberName 19($Global) 6 "o3" - MemberName 19($Global) 7 "o4" - Name 21 "" - Name 29 "r01" - Name 33 "g_tTexbi4" + Name 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 46 "g_tTexbu4" - Name 52 "PS_OUTPUT" - MemberName 52(PS_OUTPUT) 0 "Color" - MemberName 52(PS_OUTPUT) 1 "Depth" - Name 54 "psout" - Name 62 "Color" - Name 66 "Depth" - Name 70 "g_tTexbf4_test" - Decorate 13(g_tTexbf4) DescriptorSet 0 - MemberDecorate 19($Global) 0 Offset 0 - MemberDecorate 19($Global) 1 Offset 8 - MemberDecorate 19($Global) 2 Offset 16 - MemberDecorate 19($Global) 3 Offset 32 - MemberDecorate 19($Global) 4 Offset 48 - MemberDecorate 19($Global) 5 Offset 56 - MemberDecorate 19($Global) 6 Offset 64 - MemberDecorate 19($Global) 7 Offset 80 - Decorate 19($Global) Block - Decorate 21 DescriptorSet 0 - Decorate 33(g_tTexbi4) DescriptorSet 0 - Decorate 46(g_tTexbu4) DescriptorSet 0 - Decorate 62(Color) Location 0 - Decorate 66(Depth) BuiltIn FragDepth - Decorate 70(g_tTexbf4_test) DescriptorSet 0 - Decorate 70(g_tTexbf4_test) Binding 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) Buffer sampled format:Rgba32f - 11: TypeSampledImage 10 - 12: TypePointer UniformConstant 11 - 13(g_tTexbf4): 12(ptr) Variable UniformConstant - 15: TypeInt 32 1 - 16: TypeVector 15(int) 2 - 17: TypeVector 15(int) 3 - 18: TypeVector 15(int) 4 - 19($Global): TypeStruct 15(int) 16(ivec2) 17(ivec3) 18(ivec4) 15(int) 16(ivec2) 17(ivec3) 18(ivec4) - 20: TypePointer Uniform 19($Global) - 21: 20(ptr) Variable Uniform - 22: 15(int) Constant 0 - 23: TypePointer Uniform 15(int) - 28: TypePointer Function 18(ivec4) - 30: TypeImage 15(int) Buffer sampled format:Rgba32i - 31: TypeSampledImage 30 - 32: TypePointer UniformConstant 31 - 33(g_tTexbi4): 32(ptr) Variable UniformConstant + 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: TypeSampledImage 43 - 45: TypePointer UniformConstant 44 - 46(g_tTexbu4): 45(ptr) Variable UniformConstant - 52(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 53: TypePointer Function 52(PS_OUTPUT) - 55: 6(float) Constant 1065353216 - 56: 7(fvec4) ConstantComposite 55 55 55 55 - 58: 15(int) Constant 1 - 59: TypePointer Function 6(float) - 61: TypePointer Output 7(fvec4) - 62(Color): 61(ptr) Variable Output - 65: TypePointer Output 6(float) - 66(Depth): 65(ptr) Variable Output -70(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 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 - 9(r00): 8(ptr) Variable Function - 29(r01): 28(ptr) Variable Function - 42(r02): 41(ptr) Variable Function - 54(psout): 53(ptr) Variable Function - 14: 11 Load 13(g_tTexbf4) - 24: 23(ptr) AccessChain 21 22 - 25: 15(int) Load 24 - 26: 10 Image 14 - 27: 7(fvec4) ImageFetch 26 25 - Store 9(r00) 27 - 34: 31 Load 33(g_tTexbi4) - 35: 23(ptr) AccessChain 21 22 - 36: 15(int) Load 35 - 37: 30 Image 34 - 38: 18(ivec4) ImageFetch 37 36 - Store 29(r01) 38 - 47: 44 Load 46(g_tTexbu4) - 48: 23(ptr) AccessChain 21 22 - 49: 15(int) Load 48 - 50: 43 Image 47 - 51: 40(ivec4) ImageFetch 50 49 - Store 42(r02) 51 - 57: 8(ptr) AccessChain 54(psout) 22 - Store 57 56 - 60: 59(ptr) AccessChain 54(psout) 58 - Store 60 55 - 63: 8(ptr) AccessChain 54(psout) 22 - 64: 7(fvec4) Load 63 - Store 62(Color) 64 - 67: 59(ptr) AccessChain 54(psout) 58 - 68: 6(float) Load 67 - Store 66(Depth) 68 + 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 index c0cd152843..d951d093b0 100644 --- 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 @@ -1,43 +1,44 @@ hlsl.load.buffer.float.dx10.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence -0:28 move second child to first child (temp float) -0:28 'r00' (temp float) -0:28 Construct float (temp float) -0:? textureFetch (temp 4-component vector of float) -0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:28 c1: direct index for structure (layout(offset=0 ) uniform int) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 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 isamplerBuffer) -0:29 c1: direct index for structure (layout(offset=0 ) uniform int) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 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 usamplerBuffer) -0:30 c1: direct index for structure (layout(offset=0 ) uniform int) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 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 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: @@ -45,80 +46,87 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Sequence -0:37 Sequence -0:37 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:37 Color: direct index for structure (temp 4-component vector of float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 0 (const int) -0:37 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:37 Depth: direct index for structure (temp float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 1 (const int) -0:37 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) -0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) -0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence -0:28 move second child to first child (temp float) -0:28 'r00' (temp float) -0:28 Construct float (temp float) -0:? textureFetch (temp 4-component vector of float) -0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:28 c1: direct index for structure (layout(offset=0 ) uniform int) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 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 isamplerBuffer) -0:29 c1: direct index for structure (layout(offset=0 ) uniform int) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 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 usamplerBuffer) -0:30 c1: direct index for structure (layout(offset=0 ) uniform int) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 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 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: @@ -126,165 +134,178 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Sequence -0:37 Sequence -0:37 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:37 Color: direct index for structure (temp 4-component vector of float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 0 (const int) -0:37 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:37 Depth: direct index for structure (temp float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:37 Constant: -0:37 1 (const int) -0:37 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) -0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) -0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 74 +// 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" 65 69 + EntryPoint Fragment 4 "main" 67 71 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 12 "g_tTexbfs" - Name 18 "$Global" - MemberName 18($Global) 0 "c1" - MemberName 18($Global) 1 "c2" - MemberName 18($Global) 2 "c3" - MemberName 18($Global) 3 "c4" - MemberName 18($Global) 4 "o1" - MemberName 18($Global) 5 "o2" - MemberName 18($Global) 6 "o3" - MemberName 18($Global) 7 "o4" - Name 20 "" - Name 30 "r01" - Name 34 "g_tTexbis" + Name 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 47 "g_tTexbus" - Name 55 "PS_OUTPUT" - MemberName 55(PS_OUTPUT) 0 "Color" - MemberName 55(PS_OUTPUT) 1 "Depth" - Name 57 "psout" - Name 65 "Color" - Name 69 "Depth" - Name 73 "g_tTexbfs_test" - Decorate 12(g_tTexbfs) DescriptorSet 0 - MemberDecorate 18($Global) 0 Offset 0 - MemberDecorate 18($Global) 1 Offset 8 - MemberDecorate 18($Global) 2 Offset 16 - MemberDecorate 18($Global) 3 Offset 32 - MemberDecorate 18($Global) 4 Offset 48 - MemberDecorate 18($Global) 5 Offset 56 - MemberDecorate 18($Global) 6 Offset 64 - MemberDecorate 18($Global) 7 Offset 80 - Decorate 18($Global) Block - Decorate 20 DescriptorSet 0 - Decorate 34(g_tTexbis) DescriptorSet 0 - Decorate 47(g_tTexbus) DescriptorSet 0 - Decorate 65(Color) Location 0 - Decorate 69(Depth) BuiltIn FragDepth - Decorate 73(g_tTexbfs_test) DescriptorSet 0 - Decorate 73(g_tTexbfs_test) Binding 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) Buffer sampled format:R32f - 10: TypeSampledImage 9 - 11: TypePointer UniformConstant 10 - 12(g_tTexbfs): 11(ptr) Variable UniformConstant - 14: TypeInt 32 1 - 15: TypeVector 14(int) 2 - 16: TypeVector 14(int) 3 - 17: TypeVector 14(int) 4 - 18($Global): TypeStruct 14(int) 15(ivec2) 16(ivec3) 17(ivec4) 14(int) 15(ivec2) 16(ivec3) 17(ivec4) - 19: TypePointer Uniform 18($Global) - 20: 19(ptr) Variable Uniform - 21: 14(int) Constant 0 - 22: TypePointer Uniform 14(int) - 26: TypeVector 6(float) 4 - 29: TypePointer Function 14(int) - 31: TypeImage 14(int) Buffer sampled format:R32i - 32: TypeSampledImage 31 - 33: TypePointer UniformConstant 32 - 34(g_tTexbis): 33(ptr) Variable UniformConstant + 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: TypeSampledImage 44 - 46: TypePointer UniformConstant 45 - 47(g_tTexbus): 46(ptr) Variable UniformConstant - 52: TypeVector 41(int) 4 - 55(PS_OUTPUT): TypeStruct 26(fvec4) 6(float) - 56: TypePointer Function 55(PS_OUTPUT) - 58: 6(float) Constant 1065353216 - 59: 26(fvec4) ConstantComposite 58 58 58 58 - 60: TypePointer Function 26(fvec4) - 62: 14(int) Constant 1 - 64: TypePointer Output 26(fvec4) - 65(Color): 64(ptr) Variable Output - 68: TypePointer Output 6(float) - 69(Depth): 68(ptr) Variable Output -73(g_tTexbfs_test): 11(ptr) Variable UniformConstant + 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 - 8(r00): 7(ptr) Variable Function - 30(r01): 29(ptr) Variable Function - 43(r02): 42(ptr) Variable Function - 57(psout): 56(ptr) Variable Function - 13: 10 Load 12(g_tTexbfs) - 23: 22(ptr) AccessChain 20 21 - 24: 14(int) Load 23 - 25: 9 Image 13 - 27: 26(fvec4) ImageFetch 25 24 - 28: 6(float) CompositeExtract 27 0 - Store 8(r00) 28 - 35: 32 Load 34(g_tTexbis) - 36: 22(ptr) AccessChain 20 21 - 37: 14(int) Load 36 - 38: 31 Image 35 - 39: 17(ivec4) ImageFetch 38 37 - 40: 14(int) CompositeExtract 39 0 - Store 30(r01) 40 - 48: 45 Load 47(g_tTexbus) - 49: 22(ptr) AccessChain 20 21 - 50: 14(int) Load 49 - 51: 44 Image 48 - 53: 52(ivec4) ImageFetch 51 50 - 54: 41(int) CompositeExtract 53 0 - Store 43(r02) 54 - 61: 60(ptr) AccessChain 57(psout) 21 - Store 61 59 - 63: 7(ptr) AccessChain 57(psout) 62 - Store 63 58 - 66: 60(ptr) AccessChain 57(psout) 21 - 67: 26(fvec4) Load 66 - Store 65(Color) 67 - 70: 7(ptr) AccessChain 57(psout) 62 - 71: 6(float) Load 70 - Store 69(Depth) 71 + 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 index 9a14b658e6..d59ff6ff45 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -1,78 +1,79 @@ hlsl.load.offset.dx10.frag -Shader version: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=48 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=48 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=48 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -80,22 +81,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=56 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -103,22 +104,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=56 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -126,22 +127,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=56 ) uniform 2-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 @@ -151,22 +152,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=64 ) uniform 3-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 @@ -176,22 +177,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=64 ) uniform 3-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 @@ -201,20 +202,20 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 (layout(offset=64 ) uniform 3-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 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: @@ -222,133 +223,140 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:75 Sequence -0:75 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 0 (const int) -0:75 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 1 (const int) -0:75 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=48 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=48 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=8 ) uniform 2-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=48 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -356,22 +364,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=56 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -379,22 +387,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=56 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -402,22 +410,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=56 ) uniform 2-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 @@ -427,22 +435,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=64 ) uniform 3-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 @@ -452,22 +460,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=64 ) uniform 3-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 @@ -477,20 +485,20 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 (layout(offset=64 ) uniform 3-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 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 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: @@ -498,58 +506,64 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:75 Sequence -0:75 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 0 (const int) -0:75 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:75 Constant: -0:75 1 (const int) -0:75 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 194 +// Generated by (magic number): 80007 +// Id's are bound by 201 Capability Shader Capability ImageGatherExtended @@ -557,277 +571,290 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 147 151 + EntryPoint Fragment 4 "main" 155 159 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1df4" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 34 "g_tTex1di4" - Name 45 "g_tTex1du4" - Name 57 "g_tTex2df4" - Name 74 "g_tTex2di4" - Name 86 "g_tTex2du4" - Name 98 "g_tTex3df4" - Name 114 "g_tTex3di4" - Name 126 "g_tTex3du4" - Name 136 "PS_OUTPUT" - MemberName 136(PS_OUTPUT) 0 "Color" - MemberName 136(PS_OUTPUT) 1 "Depth" - Name 138 "psout" - Name 147 "Color" - Name 151 "Depth" - Name 157 "g_sSamp" - Name 160 "g_tTexcdf4" - Name 163 "g_tTexcdi4" - Name 166 "g_tTexcdu4" - Name 169 "g_tTex1df4a" - Name 172 "g_tTex1di4a" - Name 175 "g_tTex1du4a" - Name 178 "g_tTex2df4a" - Name 181 "g_tTex2di4a" - Name 184 "g_tTex2du4a" - Name 187 "g_tTexcdf4a" - Name 190 "g_tTexcdi4a" - Name 193 "g_tTexcdu4a" - Decorate 9(g_tTex1df4) DescriptorSet 0 - Decorate 9(g_tTex1df4) Binding 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 34(g_tTex1di4) DescriptorSet 0 - Decorate 45(g_tTex1du4) DescriptorSet 0 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 74(g_tTex2di4) DescriptorSet 0 - Decorate 86(g_tTex2du4) DescriptorSet 0 - Decorate 98(g_tTex3df4) DescriptorSet 0 - Decorate 114(g_tTex3di4) DescriptorSet 0 - Decorate 126(g_tTex3du4) DescriptorSet 0 - Decorate 147(Color) Location 0 - Decorate 151(Depth) BuiltIn FragDepth - Decorate 157(g_sSamp) DescriptorSet 0 - Decorate 157(g_sSamp) Binding 0 - Decorate 160(g_tTexcdf4) DescriptorSet 0 - Decorate 163(g_tTexcdi4) DescriptorSet 0 - Decorate 166(g_tTexcdu4) DescriptorSet 0 - Decorate 169(g_tTex1df4a) DescriptorSet 0 - Decorate 172(g_tTex1di4a) DescriptorSet 0 - Decorate 175(g_tTex1du4a) DescriptorSet 0 - Decorate 178(g_tTex2df4a) DescriptorSet 0 - Decorate 181(g_tTex2di4a) DescriptorSet 0 - Decorate 184(g_tTex2du4a) DescriptorSet 0 - Decorate 187(g_tTexcdf4a) DescriptorSet 0 - Decorate 190(g_tTexcdi4a) DescriptorSet 0 - Decorate 193(g_tTexcdu4a) DescriptorSet 0 + 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: TypeImage 6(float) 1D sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9(g_tTex1df4): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 1 - 19: TypeInt 32 0 - 20: 19(int) Constant 0 - 21: TypePointer Uniform 11(int) - 24: 19(int) Constant 1 - 27: 11(int) Constant 4 - 30: TypeVector 6(float) 4 - 32: TypeImage 11(int) 1D sampled format:Unknown - 33: TypePointer UniformConstant 32 - 34(g_tTex1di4): 33(ptr) Variable UniformConstant - 43: TypeImage 19(int) 1D sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex1du4): 44(ptr) Variable UniformConstant - 53: TypeVector 19(int) 4 - 55: TypeImage 6(float) 2D sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex2df4): 56(ptr) Variable UniformConstant - 59: 11(int) Constant 2 - 60: TypePointer Uniform 13(ivec3) - 64: 19(int) Constant 2 - 67: 11(int) Constant 5 - 68: TypePointer Uniform 12(ivec2) - 72: TypeImage 11(int) 2D sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex2di4): 73(ptr) Variable UniformConstant - 84: TypeImage 19(int) 2D sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(g_tTex2du4): 85(ptr) Variable UniformConstant - 96: TypeImage 6(float) 3D sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTex3df4): 97(ptr) Variable UniformConstant - 100: 11(int) Constant 3 - 101: TypePointer Uniform 14(ivec4) - 105: 19(int) Constant 3 - 108: 11(int) Constant 6 - 112: TypeImage 11(int) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3di4): 113(ptr) Variable UniformConstant - 124: TypeImage 19(int) 3D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex3du4): 125(ptr) Variable UniformConstant - 136(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) - 137: TypePointer Function 136(PS_OUTPUT) - 139: 11(int) Constant 0 - 140: 6(float) Constant 1065353216 - 141: 30(fvec4) ConstantComposite 140 140 140 140 - 142: TypePointer Function 30(fvec4) - 144: TypePointer Function 6(float) - 146: TypePointer Output 30(fvec4) - 147(Color): 146(ptr) Variable Output - 150: TypePointer Output 6(float) - 151(Depth): 150(ptr) Variable Output - 155: TypeSampler - 156: TypePointer UniformConstant 155 - 157(g_sSamp): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) Cube sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTexcdf4): 159(ptr) Variable UniformConstant - 161: TypeImage 11(int) Cube sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTexcdi4): 162(ptr) Variable UniformConstant - 164: TypeImage 19(int) Cube sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTexcdu4): 165(ptr) Variable UniformConstant - 167: TypeImage 6(float) 1D array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTex1df4a): 168(ptr) Variable UniformConstant - 170: TypeImage 11(int) 1D array sampled format:Unknown - 171: TypePointer UniformConstant 170 -172(g_tTex1di4a): 171(ptr) Variable UniformConstant - 173: TypeImage 19(int) 1D array sampled format:Unknown - 174: TypePointer UniformConstant 173 -175(g_tTex1du4a): 174(ptr) Variable UniformConstant - 176: TypeImage 6(float) 2D array sampled format:Unknown - 177: TypePointer UniformConstant 176 -178(g_tTex2df4a): 177(ptr) Variable UniformConstant - 179: TypeImage 11(int) 2D array sampled format:Unknown - 180: TypePointer UniformConstant 179 -181(g_tTex2di4a): 180(ptr) Variable UniformConstant - 182: TypeImage 19(int) 2D array sampled format:Unknown - 183: TypePointer UniformConstant 182 -184(g_tTex2du4a): 183(ptr) Variable UniformConstant - 185: TypeImage 6(float) Cube array sampled format:Unknown - 186: TypePointer UniformConstant 185 -187(g_tTexcdf4a): 186(ptr) Variable UniformConstant - 188: TypeImage 11(int) Cube array sampled format:Unknown - 189: TypePointer UniformConstant 188 -190(g_tTexcdi4a): 189(ptr) Variable UniformConstant - 191: TypeImage 19(int) Cube array sampled format:Unknown - 192: TypePointer UniformConstant 191 -193(g_tTexcdu4a): 192(ptr) Variable UniformConstant + 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 - 138(psout): 137(ptr) Variable Function - 10: 7 Load 9(g_tTex1df4) - 22: 21(ptr) AccessChain 17 18 20 - 23: 11(int) Load 22 - 25: 21(ptr) AccessChain 17 18 24 - 26: 11(int) Load 25 - 28: 21(ptr) AccessChain 17 27 - 29: 11(int) Load 28 - 31: 30(fvec4) ImageFetch 10 23 Lod Offset 26 29 - 35: 32 Load 34(g_tTex1di4) - 36: 21(ptr) AccessChain 17 18 20 - 37: 11(int) Load 36 - 38: 21(ptr) AccessChain 17 18 24 - 39: 11(int) Load 38 - 40: 21(ptr) AccessChain 17 27 - 41: 11(int) Load 40 - 42: 14(ivec4) ImageFetch 35 37 Lod Offset 39 41 - 46: 43 Load 45(g_tTex1du4) - 47: 21(ptr) AccessChain 17 18 20 - 48: 11(int) Load 47 - 49: 21(ptr) AccessChain 17 18 24 - 50: 11(int) Load 49 - 51: 21(ptr) AccessChain 17 27 - 52: 11(int) Load 51 - 54: 53(ivec4) ImageFetch 46 48 Lod Offset 50 52 - 58: 55 Load 57(g_tTex2df4) - 61: 60(ptr) AccessChain 17 59 - 62: 13(ivec3) Load 61 - 63: 12(ivec2) VectorShuffle 62 62 0 1 - 65: 21(ptr) AccessChain 17 59 64 - 66: 11(int) Load 65 - 69: 68(ptr) AccessChain 17 67 - 70: 12(ivec2) Load 69 - 71: 30(fvec4) ImageFetch 58 63 Lod Offset 66 70 - 75: 72 Load 74(g_tTex2di4) - 76: 60(ptr) AccessChain 17 59 - 77: 13(ivec3) Load 76 - 78: 12(ivec2) VectorShuffle 77 77 0 1 - 79: 21(ptr) AccessChain 17 59 64 - 80: 11(int) Load 79 - 81: 68(ptr) AccessChain 17 67 - 82: 12(ivec2) Load 81 - 83: 14(ivec4) ImageFetch 75 78 Lod Offset 80 82 - 87: 84 Load 86(g_tTex2du4) - 88: 60(ptr) AccessChain 17 59 - 89: 13(ivec3) Load 88 - 90: 12(ivec2) VectorShuffle 89 89 0 1 - 91: 21(ptr) AccessChain 17 59 64 - 92: 11(int) Load 91 - 93: 68(ptr) AccessChain 17 67 - 94: 12(ivec2) Load 93 - 95: 53(ivec4) ImageFetch 87 90 Lod Offset 92 94 - 99: 96 Load 98(g_tTex3df4) - 102: 101(ptr) AccessChain 17 100 - 103: 14(ivec4) Load 102 - 104: 13(ivec3) VectorShuffle 103 103 0 1 2 - 106: 21(ptr) AccessChain 17 100 105 - 107: 11(int) Load 106 - 109: 60(ptr) AccessChain 17 108 - 110: 13(ivec3) Load 109 - 111: 30(fvec4) ImageFetch 99 104 Lod Offset 107 110 - 115: 112 Load 114(g_tTex3di4) - 116: 101(ptr) AccessChain 17 100 - 117: 14(ivec4) Load 116 - 118: 13(ivec3) VectorShuffle 117 117 0 1 2 - 119: 21(ptr) AccessChain 17 100 105 - 120: 11(int) Load 119 - 121: 60(ptr) AccessChain 17 108 - 122: 13(ivec3) Load 121 - 123: 14(ivec4) ImageFetch 115 118 Lod Offset 120 122 - 127: 124 Load 126(g_tTex3du4) - 128: 101(ptr) AccessChain 17 100 - 129: 14(ivec4) Load 128 - 130: 13(ivec3) VectorShuffle 129 129 0 1 2 - 131: 21(ptr) AccessChain 17 100 105 - 132: 11(int) Load 131 - 133: 60(ptr) AccessChain 17 108 - 134: 13(ivec3) Load 133 - 135: 53(ivec4) ImageFetch 127 130 Lod Offset 132 134 - 143: 142(ptr) AccessChain 138(psout) 139 - Store 143 141 - 145: 144(ptr) AccessChain 138(psout) 18 - Store 145 140 - 148: 142(ptr) AccessChain 138(psout) 139 - 149: 30(fvec4) Load 148 - Store 147(Color) 149 - 152: 144(ptr) AccessChain 138(psout) 18 - 153: 6(float) Load 152 - Store 151(Depth) 153 +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 index fb58eff35a..b472462aa5 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -1,15 +1,16 @@ hlsl.load.offsetarray.dx10.frag -Shader version: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 @@ -17,22 +18,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=48 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 @@ -40,22 +41,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=48 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 @@ -63,22 +64,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=48 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -88,22 +89,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=56 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -113,22 +114,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=56 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -138,20 +139,20 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=56 ) uniform 2-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 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: @@ -159,70 +160,77 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:68 Sequence -0:68 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:68 Color: direct index for structure (temp 4-component vector of float) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:68 Constant: -0:68 0 (const int) -0:68 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 @@ -230,22 +238,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=48 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 @@ -253,22 +261,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=48 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 @@ -276,22 +284,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=48 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 @@ -301,22 +309,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=56 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 @@ -326,22 +334,22 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=56 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 @@ -351,20 +359,20 @@ gl_FragCoord origin is upper left 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 (layout(offset=32 ) uniform 4-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 (layout(offset=56 ) uniform 2-component vector of int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 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 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: @@ -372,58 +380,64 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:68 Sequence -0:68 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:68 Color: direct index for structure (temp 4-component vector of float) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:68 Constant: -0:68 0 (const int) -0:68 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 167 +// Generated by (magic number): 80007 +// Id's are bound by 174 Capability Shader Capability ImageGatherExtended @@ -431,250 +445,263 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 111 115 + EntryPoint Fragment 4 "main" 119 123 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1df4a" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 35 "g_tTex1di4a" - Name 47 "g_tTex1du4a" - Name 60 "g_tTex2df4a" - Name 77 "g_tTex2di4a" - Name 89 "g_tTex2du4a" - Name 99 "PS_OUTPUT" - MemberName 99(PS_OUTPUT) 0 "Color" - MemberName 99(PS_OUTPUT) 1 "Depth" - Name 101 "psout" - Name 111 "Color" - Name 115 "Depth" - Name 121 "g_sSamp" - Name 124 "g_tTex1df4" - Name 127 "g_tTex1di4" - Name 130 "g_tTex1du4" - Name 133 "g_tTex2df4" - Name 136 "g_tTex2di4" - Name 139 "g_tTex2du4" - Name 142 "g_tTex3df4" - Name 145 "g_tTex3di4" - Name 148 "g_tTex3du4" - Name 151 "g_tTexcdf4" - Name 154 "g_tTexcdi4" - Name 157 "g_tTexcdu4" - Name 160 "g_tTexcdf4a" - Name 163 "g_tTexcdi4a" - Name 166 "g_tTexcdu4a" - Decorate 9(g_tTex1df4a) DescriptorSet 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 35(g_tTex1di4a) DescriptorSet 0 - Decorate 47(g_tTex1du4a) DescriptorSet 0 - Decorate 60(g_tTex2df4a) DescriptorSet 0 - Decorate 77(g_tTex2di4a) DescriptorSet 0 - Decorate 89(g_tTex2du4a) DescriptorSet 0 - Decorate 111(Color) Location 0 - Decorate 115(Depth) BuiltIn FragDepth - Decorate 121(g_sSamp) DescriptorSet 0 - Decorate 121(g_sSamp) Binding 0 - Decorate 124(g_tTex1df4) DescriptorSet 0 - Decorate 124(g_tTex1df4) Binding 0 - Decorate 127(g_tTex1di4) DescriptorSet 0 - Decorate 130(g_tTex1du4) DescriptorSet 0 - Decorate 133(g_tTex2df4) DescriptorSet 0 - Decorate 136(g_tTex2di4) DescriptorSet 0 - Decorate 139(g_tTex2du4) DescriptorSet 0 - Decorate 142(g_tTex3df4) DescriptorSet 0 - Decorate 145(g_tTex3di4) DescriptorSet 0 - Decorate 148(g_tTex3du4) DescriptorSet 0 - Decorate 151(g_tTexcdf4) DescriptorSet 0 - Decorate 154(g_tTexcdi4) DescriptorSet 0 - Decorate 157(g_tTexcdu4) DescriptorSet 0 - Decorate 160(g_tTexcdf4a) DescriptorSet 0 - Decorate 163(g_tTexcdi4a) DescriptorSet 0 - Decorate 166(g_tTexcdu4a) DescriptorSet 0 + 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: TypeImage 6(float) 1D array sampled format:Unknown - 8: TypePointer UniformConstant 7 - 9(g_tTex1df4a): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 2 - 19: TypePointer Uniform 13(ivec3) - 23: TypeInt 32 0 - 24: 23(int) Constant 2 - 25: TypePointer Uniform 11(int) - 28: 11(int) Constant 4 - 31: TypeVector 6(float) 4 - 33: TypeImage 11(int) 1D array sampled format:Unknown - 34: TypePointer UniformConstant 33 - 35(g_tTex1di4a): 34(ptr) Variable UniformConstant - 45: TypeImage 23(int) 1D array sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex1du4a): 46(ptr) Variable UniformConstant - 56: TypeVector 23(int) 4 - 58: TypeImage 6(float) 2D array sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTex2df4a): 59(ptr) Variable UniformConstant - 62: 11(int) Constant 3 - 63: TypePointer Uniform 14(ivec4) - 67: 23(int) Constant 3 - 70: 11(int) Constant 5 - 71: TypePointer Uniform 12(ivec2) - 75: TypeImage 11(int) 2D array sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex2di4a): 76(ptr) Variable UniformConstant - 87: TypeImage 23(int) 2D array sampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(g_tTex2du4a): 88(ptr) Variable UniformConstant - 99(PS_OUTPUT): TypeStruct 31(fvec4) 6(float) - 100: TypePointer Function 99(PS_OUTPUT) - 102: 11(int) Constant 0 - 103: 6(float) Constant 1065353216 - 104: 31(fvec4) ConstantComposite 103 103 103 103 - 105: TypePointer Function 31(fvec4) - 107: 11(int) Constant 1 - 108: TypePointer Function 6(float) - 110: TypePointer Output 31(fvec4) - 111(Color): 110(ptr) Variable Output - 114: TypePointer Output 6(float) - 115(Depth): 114(ptr) Variable Output - 119: TypeSampler - 120: TypePointer UniformConstant 119 - 121(g_sSamp): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) 1D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex1df4): 123(ptr) Variable UniformConstant - 125: TypeImage 11(int) 1D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex1di4): 126(ptr) Variable UniformConstant - 128: TypeImage 23(int) 1D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex1du4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 2D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex2df4): 132(ptr) Variable UniformConstant - 134: TypeImage 11(int) 2D sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTex2di4): 135(ptr) Variable UniformConstant - 137: TypeImage 23(int) 2D sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTex2du4): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) 3D sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTex3df4): 141(ptr) Variable UniformConstant - 143: TypeImage 11(int) 3D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex3di4): 144(ptr) Variable UniformConstant - 146: TypeImage 23(int) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3du4): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTexcdf4): 150(ptr) Variable UniformConstant - 152: TypeImage 11(int) Cube sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTexcdi4): 153(ptr) Variable UniformConstant - 155: TypeImage 23(int) Cube sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTexcdu4): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) Cube array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTexcdf4a): 159(ptr) Variable UniformConstant - 161: TypeImage 11(int) Cube array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTexcdi4a): 162(ptr) Variable UniformConstant - 164: TypeImage 23(int) Cube array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTexcdu4a): 165(ptr) Variable UniformConstant + 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 - 101(psout): 100(ptr) Variable Function - 10: 7 Load 9(g_tTex1df4a) - 20: 19(ptr) AccessChain 17 18 - 21: 13(ivec3) Load 20 - 22: 12(ivec2) VectorShuffle 21 21 0 1 - 26: 25(ptr) AccessChain 17 18 24 - 27: 11(int) Load 26 - 29: 25(ptr) AccessChain 17 28 - 30: 11(int) Load 29 - 32: 31(fvec4) ImageFetch 10 22 Lod Offset 27 30 - 36: 33 Load 35(g_tTex1di4a) - 37: 19(ptr) AccessChain 17 18 - 38: 13(ivec3) Load 37 - 39: 12(ivec2) VectorShuffle 38 38 0 1 - 40: 25(ptr) AccessChain 17 18 24 - 41: 11(int) Load 40 - 42: 25(ptr) AccessChain 17 28 - 43: 11(int) Load 42 - 44: 14(ivec4) ImageFetch 36 39 Lod Offset 41 43 - 48: 45 Load 47(g_tTex1du4a) - 49: 19(ptr) AccessChain 17 18 - 50: 13(ivec3) Load 49 - 51: 12(ivec2) VectorShuffle 50 50 0 1 - 52: 25(ptr) AccessChain 17 18 24 - 53: 11(int) Load 52 - 54: 25(ptr) AccessChain 17 28 - 55: 11(int) Load 54 - 57: 56(ivec4) ImageFetch 48 51 Lod Offset 53 55 - 61: 58 Load 60(g_tTex2df4a) - 64: 63(ptr) AccessChain 17 62 - 65: 14(ivec4) Load 64 - 66: 13(ivec3) VectorShuffle 65 65 0 1 2 - 68: 25(ptr) AccessChain 17 62 67 - 69: 11(int) Load 68 - 72: 71(ptr) AccessChain 17 70 - 73: 12(ivec2) Load 72 - 74: 31(fvec4) ImageFetch 61 66 Lod Offset 69 73 - 78: 75 Load 77(g_tTex2di4a) - 79: 63(ptr) AccessChain 17 62 - 80: 14(ivec4) Load 79 - 81: 13(ivec3) VectorShuffle 80 80 0 1 2 - 82: 25(ptr) AccessChain 17 62 67 - 83: 11(int) Load 82 - 84: 71(ptr) AccessChain 17 70 - 85: 12(ivec2) Load 84 - 86: 14(ivec4) ImageFetch 78 81 Lod Offset 83 85 - 90: 87 Load 89(g_tTex2du4a) - 91: 63(ptr) AccessChain 17 62 - 92: 14(ivec4) Load 91 - 93: 13(ivec3) VectorShuffle 92 92 0 1 2 - 94: 25(ptr) AccessChain 17 62 67 - 95: 11(int) Load 94 - 96: 71(ptr) AccessChain 17 70 - 97: 12(ivec2) Load 96 - 98: 56(ivec4) ImageFetch 90 93 Lod Offset 95 97 - 106: 105(ptr) AccessChain 101(psout) 102 - Store 106 104 - 109: 108(ptr) AccessChain 101(psout) 107 - Store 109 103 - 112: 105(ptr) AccessChain 101(psout) 102 - 113: 31(fvec4) Load 112 - Store 111(Color) 113 - 116: 108(ptr) AccessChain 101(psout) 107 - 117: 6(float) Load 116 - Store 115(Depth) 117 +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 index e9cc3940b4..f134901271 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -1,31 +1,31 @@ hlsl.load.rwbuffer.dx10.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:22 Function Parameters: 0:? Sequence -0:25 imageLoad (temp 4-component vector of float) -0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) -0:25 c1: direct index for structure (layout(offset=0 ) uniform int) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 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 (layout(offset=0 ) uniform int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 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 (layout(offset=0 ) uniform int) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 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 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: @@ -33,53 +33,56 @@ gl_FragCoord origin is upper left 0:29 1.000000 0:29 1.000000 0:29 1.000000 -0:31 Sequence -0:31 Sequence -0:31 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:31 Color: direct index for structure (temp 4-component vector of float) -0:31 'psout' (temp structure{temp 4-component vector of float Color}) -0:31 Constant: -0:31 0 (const int) -0:31 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) -0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) -0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:22 Function Parameters: 0:? Sequence -0:25 imageLoad (temp 4-component vector of float) -0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) -0:25 c1: direct index for structure (layout(offset=0 ) uniform int) -0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 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 (layout(offset=0 ) uniform int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 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 (layout(offset=0 ) uniform int) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 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 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: @@ -87,114 +90,125 @@ gl_FragCoord origin is upper left 0:29 1.000000 0:29 1.000000 0:29 1.000000 -0:31 Sequence -0:31 Sequence -0:31 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:31 Color: direct index for structure (temp 4-component vector of float) -0:31 'psout' (temp structure{temp 4-component vector of float Color}) -0:31 Constant: -0:31 0 (const int) -0:31 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) -0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) -0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 52 +// Generated by (magic number): 80007 +// Id's are bound by 57 Capability Shader - Capability SampledBuffer + Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 48 + EntryPoint Fragment 4 "main" 54 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 9 "g_tBuffF" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 27 "g_tBuffU" - Name 35 "g_tBuffI" - Name 40 "PS_OUTPUT" - MemberName 40(PS_OUTPUT) 0 "Color" - Name 42 "psout" - Name 48 "Color" - Decorate 9(g_tBuffF) DescriptorSet 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 27(g_tBuffU) DescriptorSet 0 - Decorate 35(g_tBuffI) DescriptorSet 0 - Decorate 48(Color) Location 0 + 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: TypeImage 6(float) Buffer nonsampled format:Rgba32f - 8: TypePointer UniformConstant 7 - 9(g_tBuffF): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 0 - 19: TypePointer Uniform 11(int) - 22: TypeVector 6(float) 4 - 24: TypeInt 32 0 - 25: TypeImage 24(int) Buffer nonsampled format:Rgba32ui - 26: TypePointer UniformConstant 25 - 27(g_tBuffU): 26(ptr) Variable UniformConstant - 31: TypeVector 24(int) 4 - 33: TypeImage 11(int) Buffer nonsampled format:Rgba32i - 34: TypePointer UniformConstant 33 - 35(g_tBuffI): 34(ptr) Variable UniformConstant - 40(PS_OUTPUT): TypeStruct 22(fvec4) - 41: TypePointer Function 40(PS_OUTPUT) - 43: 6(float) Constant 1065353216 - 44: 22(fvec4) ConstantComposite 43 43 43 43 - 45: TypePointer Function 22(fvec4) - 47: TypePointer Output 22(fvec4) - 48(Color): 47(ptr) Variable Output + 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 - 42(psout): 41(ptr) Variable Function - 10: 7 Load 9(g_tBuffF) - 20: 19(ptr) AccessChain 17 18 - 21: 11(int) Load 20 - 23: 22(fvec4) ImageRead 10 21 - 28: 25 Load 27(g_tBuffU) - 29: 19(ptr) AccessChain 17 18 - 30: 11(int) Load 29 - 32: 31(ivec4) ImageRead 28 30 - 36: 33 Load 35(g_tBuffI) - 37: 19(ptr) AccessChain 17 18 - 38: 11(int) Load 37 - 39: 14(ivec4) ImageRead 36 38 - 46: 45(ptr) AccessChain 42(psout) 18 - Store 46 44 - 49: 45(ptr) AccessChain 42(psout) 18 - 50: 22(fvec4) Load 49 - Store 48(Color) 50 + 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 index a81ddf57de..de31ee0246 100644 --- 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 @@ -1,49 +1,50 @@ hlsl.load.rwtexture.array.dx10.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (temp 4-component vector of float) -0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=8 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=8 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=16 ) uniform 3-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=16 ) uniform 3-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=16 ) uniform 3-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 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: @@ -51,98 +52,105 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:54 Depth: direct index for structure ( temp float) +0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:54 Constant: 0:54 1 (const int) 0:54 Constant: 0:54 1.000000 -0:56 Sequence -0:56 Sequence -0:56 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:56 Constant: -0:56 0 (const int) -0:56 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:56 Depth: direct index for structure (temp float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:56 Constant: -0:56 1 (const int) -0:56 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (temp 4-component vector of float) -0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=8 ) uniform 2-component vector of int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=8 ) uniform 2-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=16 ) uniform 3-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=16 ) uniform 3-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=16 ) uniform 3-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 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: @@ -150,234 +158,253 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:54 Depth: direct index for structure ( temp float) +0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:54 Constant: 0:54 1 (const int) 0:54 Constant: 0:54 1.000000 -0:56 Sequence -0:56 Sequence -0:56 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:56 Constant: -0:56 0 (const int) -0:56 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:56 Depth: direct index for structure (temp float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:56 Constant: -0:56 1 (const int) -0:56 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 112 +// Generated by (magic number): 80007 +// Id's are bound by 119 Capability Shader - Capability Sampled1D + Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 74 78 + EntryPoint Fragment 4 "main" 82 86 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1df4a" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 26 "g_tTex1di4a" - Name 34 "g_tTex1du4a" - Name 42 "g_tTex2df4a" - Name 51 "g_tTex2di4a" - Name 58 "g_tTex2du4a" - Name 63 "PS_OUTPUT" - MemberName 63(PS_OUTPUT) 0 "Color" - MemberName 63(PS_OUTPUT) 1 "Depth" - Name 65 "psout" - Name 74 "Color" - Name 78 "Depth" - Name 84 "g_sSamp" - Name 87 "g_tTex1df4" - Name 90 "g_tTex1di4" - Name 93 "g_tTex1du4" - Name 96 "g_tTex2df4" - Name 99 "g_tTex2di4" - Name 102 "g_tTex2du4" - Name 105 "g_tTex3df4" - Name 108 "g_tTex3di4" - Name 111 "g_tTex3du4" - Decorate 9(g_tTex1df4a) DescriptorSet 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 26(g_tTex1di4a) DescriptorSet 0 - Decorate 34(g_tTex1du4a) DescriptorSet 0 - Decorate 42(g_tTex2df4a) DescriptorSet 0 - Decorate 51(g_tTex2di4a) DescriptorSet 0 - Decorate 58(g_tTex2du4a) DescriptorSet 0 - Decorate 74(Color) Location 0 - Decorate 78(Depth) BuiltIn FragDepth - Decorate 84(g_sSamp) DescriptorSet 0 - Decorate 84(g_sSamp) Binding 0 - Decorate 87(g_tTex1df4) DescriptorSet 0 - Decorate 87(g_tTex1df4) Binding 0 - Decorate 90(g_tTex1di4) DescriptorSet 0 - Decorate 93(g_tTex1du4) DescriptorSet 0 - Decorate 96(g_tTex2df4) DescriptorSet 0 - Decorate 99(g_tTex2di4) DescriptorSet 0 - Decorate 102(g_tTex2du4) DescriptorSet 0 - Decorate 105(g_tTex3df4) DescriptorSet 0 - Decorate 108(g_tTex3di4) DescriptorSet 0 - Decorate 111(g_tTex3du4) DescriptorSet 0 + 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: TypeImage 6(float) 1D array nonsampled format:Rgba32f - 8: TypePointer UniformConstant 7 - 9(g_tTex1df4a): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 1 - 19: TypePointer Uniform 12(ivec2) - 22: TypeVector 6(float) 4 - 24: TypeImage 11(int) 1D array nonsampled format:Rgba32i - 25: TypePointer UniformConstant 24 - 26(g_tTex1di4a): 25(ptr) Variable UniformConstant - 31: TypeInt 32 0 - 32: TypeImage 31(int) 1D array nonsampled format:Rgba32ui - 33: TypePointer UniformConstant 32 - 34(g_tTex1du4a): 33(ptr) Variable UniformConstant - 38: TypeVector 31(int) 4 - 40: TypeImage 6(float) 2D array nonsampled format:Rgba32f - 41: TypePointer UniformConstant 40 - 42(g_tTex2df4a): 41(ptr) Variable UniformConstant - 44: 11(int) Constant 2 - 45: TypePointer Uniform 13(ivec3) - 49: TypeImage 11(int) 2D array nonsampled format:Rgba32i - 50: TypePointer UniformConstant 49 - 51(g_tTex2di4a): 50(ptr) Variable UniformConstant - 56: TypeImage 31(int) 2D array nonsampled format:Rgba32ui - 57: TypePointer UniformConstant 56 - 58(g_tTex2du4a): 57(ptr) Variable UniformConstant - 63(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) - 64: TypePointer Function 63(PS_OUTPUT) - 66: 11(int) Constant 0 - 67: 6(float) Constant 1065353216 - 68: 22(fvec4) ConstantComposite 67 67 67 67 - 69: TypePointer Function 22(fvec4) - 71: TypePointer Function 6(float) - 73: TypePointer Output 22(fvec4) - 74(Color): 73(ptr) Variable Output - 77: TypePointer Output 6(float) - 78(Depth): 77(ptr) Variable Output - 82: TypeSampler - 83: TypePointer UniformConstant 82 - 84(g_sSamp): 83(ptr) Variable UniformConstant - 85: TypeImage 6(float) 1D nonsampled format:Rgba32f - 86: TypePointer UniformConstant 85 - 87(g_tTex1df4): 86(ptr) Variable UniformConstant - 88: TypeImage 11(int) 1D nonsampled format:Rgba32i - 89: TypePointer UniformConstant 88 - 90(g_tTex1di4): 89(ptr) Variable UniformConstant - 91: TypeImage 31(int) 1D nonsampled format:Rgba32ui - 92: TypePointer UniformConstant 91 - 93(g_tTex1du4): 92(ptr) Variable UniformConstant - 94: TypeImage 6(float) 2D nonsampled format:Rgba32f - 95: TypePointer UniformConstant 94 - 96(g_tTex2df4): 95(ptr) Variable UniformConstant - 97: TypeImage 11(int) 2D nonsampled format:Rgba32i - 98: TypePointer UniformConstant 97 - 99(g_tTex2di4): 98(ptr) Variable UniformConstant - 100: TypeImage 31(int) 2D nonsampled format:Rgba32ui - 101: TypePointer UniformConstant 100 - 102(g_tTex2du4): 101(ptr) Variable UniformConstant - 103: TypeImage 6(float) 3D nonsampled format:Rgba32f - 104: TypePointer UniformConstant 103 - 105(g_tTex3df4): 104(ptr) Variable UniformConstant - 106: TypeImage 11(int) 3D nonsampled format:Rgba32i - 107: TypePointer UniformConstant 106 - 108(g_tTex3di4): 107(ptr) Variable UniformConstant - 109: TypeImage 31(int) 3D nonsampled format:Rgba32ui - 110: TypePointer UniformConstant 109 - 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 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 - 65(psout): 64(ptr) Variable Function - 10: 7 Load 9(g_tTex1df4a) - 20: 19(ptr) AccessChain 17 18 - 21: 12(ivec2) Load 20 - 23: 22(fvec4) ImageRead 10 21 - 27: 24 Load 26(g_tTex1di4a) - 28: 19(ptr) AccessChain 17 18 - 29: 12(ivec2) Load 28 - 30: 14(ivec4) ImageRead 27 29 - 35: 32 Load 34(g_tTex1du4a) - 36: 19(ptr) AccessChain 17 18 - 37: 12(ivec2) Load 36 - 39: 38(ivec4) ImageRead 35 37 - 43: 40 Load 42(g_tTex2df4a) - 46: 45(ptr) AccessChain 17 44 - 47: 13(ivec3) Load 46 - 48: 22(fvec4) ImageRead 43 47 - 52: 49 Load 51(g_tTex2di4a) - 53: 45(ptr) AccessChain 17 44 - 54: 13(ivec3) Load 53 - 55: 14(ivec4) ImageRead 52 54 - 59: 56 Load 58(g_tTex2du4a) - 60: 45(ptr) AccessChain 17 44 - 61: 13(ivec3) Load 60 - 62: 38(ivec4) ImageRead 59 61 - 70: 69(ptr) AccessChain 65(psout) 66 - Store 70 68 - 72: 71(ptr) AccessChain 65(psout) 18 - Store 72 67 - 75: 69(ptr) AccessChain 65(psout) 66 - 76: 22(fvec4) Load 75 - Store 74(Color) 76 - 79: 71(ptr) AccessChain 65(psout) 18 - 80: 6(float) Load 79 - Store 78(Depth) 80 + 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 index b5435bac4b..68044aa587 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -1,67 +1,68 @@ hlsl.load.rwtexture.dx10.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (temp 4-component vector of float) -0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:44 c1: direct index for structure (layout(offset=0 ) uniform int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=0 ) uniform int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=0 ) uniform int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=8 ) uniform 2-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=8 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=8 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 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 (layout(offset=16 ) uniform 3-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 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: @@ -69,116 +70,123 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:59 Depth: direct index for structure ( temp float) +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 1 (const int) 0:59 Constant: 0:59 1.000000 -0:61 Sequence -0:61 Sequence -0:61 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:61 Color: direct index for structure (temp 4-component vector of float) -0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:61 Constant: -0:61 0 (const int) -0:61 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:61 Depth: direct index for structure (temp float) -0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:61 Constant: -0:61 1 (const int) -0:61 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (temp 4-component vector of float) -0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:44 c1: direct index for structure (layout(offset=0 ) uniform int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 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 (layout(offset=0 ) uniform int) -0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 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 (layout(offset=0 ) uniform int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 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 (layout(offset=8 ) uniform 2-component vector of int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=8 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 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 (layout(offset=8 ) uniform 2-component vector of int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=16 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 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 (layout(offset=16 ) uniform 3-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 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: @@ -186,247 +194,266 @@ gl_FragCoord origin is upper left 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 move second child to first child ( temp float) +0:59 Depth: direct index for structure ( temp float) +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 1 (const int) 0:59 Constant: 0:59 1.000000 -0:61 Sequence -0:61 Sequence -0:61 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:61 Color: direct index for structure (temp 4-component vector of float) -0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:61 Constant: -0:61 0 (const int) -0:61 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:61 Depth: direct index for structure (temp float) -0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:61 Constant: -0:61 1 (const int) -0:61 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 125 +// Generated by (magic number): 80007 +// Id's are bound by 132 Capability Shader - Capability Sampled1D + Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 100 + EntryPoint Fragment 4 "main" 104 108 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1df4" - Name 15 "$Global" - MemberName 15($Global) 0 "c1" - MemberName 15($Global) 1 "c2" - MemberName 15($Global) 2 "c3" - MemberName 15($Global) 3 "c4" - MemberName 15($Global) 4 "o1" - MemberName 15($Global) 5 "o2" - MemberName 15($Global) 6 "o3" - MemberName 15($Global) 7 "o4" - Name 17 "" - Name 26 "g_tTex1di4" - Name 34 "g_tTex1du4" - Name 42 "g_tTex2df4" - Name 51 "g_tTex2di4" - Name 58 "g_tTex2du4" - Name 65 "g_tTex3df4" - Name 74 "g_tTex3di4" - Name 81 "g_tTex3du4" - Name 86 "PS_OUTPUT" - MemberName 86(PS_OUTPUT) 0 "Color" - MemberName 86(PS_OUTPUT) 1 "Depth" - Name 88 "psout" - Name 96 "Color" - Name 100 "Depth" - Name 106 "g_sSamp" - Name 109 "g_tTex1df4a" - Name 112 "g_tTex1di4a" - Name 115 "g_tTex1du4a" - Name 118 "g_tTex2df4a" - Name 121 "g_tTex2di4a" - Name 124 "g_tTex2du4a" - Decorate 9(g_tTex1df4) DescriptorSet 0 - Decorate 9(g_tTex1df4) Binding 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 32 - MemberDecorate 15($Global) 4 Offset 48 - MemberDecorate 15($Global) 5 Offset 56 - MemberDecorate 15($Global) 6 Offset 64 - MemberDecorate 15($Global) 7 Offset 80 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 26(g_tTex1di4) DescriptorSet 0 - Decorate 34(g_tTex1du4) DescriptorSet 0 - Decorate 42(g_tTex2df4) DescriptorSet 0 - Decorate 51(g_tTex2di4) DescriptorSet 0 - Decorate 58(g_tTex2du4) DescriptorSet 0 - Decorate 65(g_tTex3df4) DescriptorSet 0 - Decorate 74(g_tTex3di4) DescriptorSet 0 - Decorate 81(g_tTex3du4) DescriptorSet 0 - Decorate 96(Color) Location 0 - Decorate 100(Depth) BuiltIn FragDepth - Decorate 106(g_sSamp) DescriptorSet 0 - Decorate 106(g_sSamp) Binding 0 - Decorate 109(g_tTex1df4a) DescriptorSet 0 - Decorate 112(g_tTex1di4a) DescriptorSet 0 - Decorate 115(g_tTex1du4a) DescriptorSet 0 - Decorate 118(g_tTex2df4a) DescriptorSet 0 - Decorate 121(g_tTex2di4a) DescriptorSet 0 - Decorate 124(g_tTex2du4a) DescriptorSet 0 + 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: TypeImage 6(float) 1D nonsampled format:Rgba32f - 8: TypePointer UniformConstant 7 - 9(g_tTex1df4): 8(ptr) Variable UniformConstant - 11: TypeInt 32 1 - 12: TypeVector 11(int) 2 - 13: TypeVector 11(int) 3 - 14: TypeVector 11(int) 4 - 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 11(int) Constant 0 - 19: TypePointer Uniform 11(int) - 22: TypeVector 6(float) 4 - 24: TypeImage 11(int) 1D nonsampled format:Rgba32i - 25: TypePointer UniformConstant 24 - 26(g_tTex1di4): 25(ptr) Variable UniformConstant - 31: TypeInt 32 0 - 32: TypeImage 31(int) 1D nonsampled format:Rgba32ui - 33: TypePointer UniformConstant 32 - 34(g_tTex1du4): 33(ptr) Variable UniformConstant - 38: TypeVector 31(int) 4 - 40: TypeImage 6(float) 2D nonsampled format:Rgba32f - 41: TypePointer UniformConstant 40 - 42(g_tTex2df4): 41(ptr) Variable UniformConstant - 44: 11(int) Constant 1 - 45: TypePointer Uniform 12(ivec2) - 49: TypeImage 11(int) 2D nonsampled format:Rgba32i - 50: TypePointer UniformConstant 49 - 51(g_tTex2di4): 50(ptr) Variable UniformConstant - 56: TypeImage 31(int) 2D nonsampled format:Rgba32ui - 57: TypePointer UniformConstant 56 - 58(g_tTex2du4): 57(ptr) Variable UniformConstant - 63: TypeImage 6(float) 3D nonsampled format:Rgba32f - 64: TypePointer UniformConstant 63 - 65(g_tTex3df4): 64(ptr) Variable UniformConstant - 67: 11(int) Constant 2 - 68: TypePointer Uniform 13(ivec3) - 72: TypeImage 11(int) 3D nonsampled format:Rgba32i - 73: TypePointer UniformConstant 72 - 74(g_tTex3di4): 73(ptr) Variable UniformConstant - 79: TypeImage 31(int) 3D nonsampled format:Rgba32ui - 80: TypePointer UniformConstant 79 - 81(g_tTex3du4): 80(ptr) Variable UniformConstant - 86(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) - 87: TypePointer Function 86(PS_OUTPUT) - 89: 6(float) Constant 1065353216 - 90: 22(fvec4) ConstantComposite 89 89 89 89 - 91: TypePointer Function 22(fvec4) - 93: TypePointer Function 6(float) - 95: TypePointer Output 22(fvec4) - 96(Color): 95(ptr) Variable Output - 99: TypePointer Output 6(float) - 100(Depth): 99(ptr) Variable Output - 104: TypeSampler - 105: TypePointer UniformConstant 104 - 106(g_sSamp): 105(ptr) Variable UniformConstant - 107: TypeImage 6(float) 1D array nonsampled format:Rgba32f - 108: TypePointer UniformConstant 107 -109(g_tTex1df4a): 108(ptr) Variable UniformConstant - 110: TypeImage 11(int) 1D array nonsampled format:Rgba32i - 111: TypePointer UniformConstant 110 -112(g_tTex1di4a): 111(ptr) Variable UniformConstant - 113: TypeImage 31(int) 1D array nonsampled format:Rgba32ui - 114: TypePointer UniformConstant 113 -115(g_tTex1du4a): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) 2D array nonsampled format:Rgba32f - 117: TypePointer UniformConstant 116 -118(g_tTex2df4a): 117(ptr) Variable UniformConstant - 119: TypeImage 11(int) 2D array nonsampled format:Rgba32i - 120: TypePointer UniformConstant 119 -121(g_tTex2di4a): 120(ptr) Variable UniformConstant - 122: TypeImage 31(int) 2D array nonsampled format:Rgba32ui - 123: TypePointer UniformConstant 122 -124(g_tTex2du4a): 123(ptr) Variable UniformConstant + 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 - 88(psout): 87(ptr) Variable Function - 10: 7 Load 9(g_tTex1df4) - 20: 19(ptr) AccessChain 17 18 - 21: 11(int) Load 20 - 23: 22(fvec4) ImageRead 10 21 - 27: 24 Load 26(g_tTex1di4) - 28: 19(ptr) AccessChain 17 18 - 29: 11(int) Load 28 - 30: 14(ivec4) ImageRead 27 29 - 35: 32 Load 34(g_tTex1du4) - 36: 19(ptr) AccessChain 17 18 - 37: 11(int) Load 36 - 39: 38(ivec4) ImageRead 35 37 - 43: 40 Load 42(g_tTex2df4) - 46: 45(ptr) AccessChain 17 44 - 47: 12(ivec2) Load 46 - 48: 22(fvec4) ImageRead 43 47 - 52: 49 Load 51(g_tTex2di4) - 53: 45(ptr) AccessChain 17 44 - 54: 12(ivec2) Load 53 - 55: 14(ivec4) ImageRead 52 54 - 59: 56 Load 58(g_tTex2du4) - 60: 45(ptr) AccessChain 17 44 - 61: 12(ivec2) Load 60 - 62: 38(ivec4) ImageRead 59 61 - 66: 63 Load 65(g_tTex3df4) - 69: 68(ptr) AccessChain 17 67 - 70: 13(ivec3) Load 69 - 71: 22(fvec4) ImageRead 66 70 - 75: 72 Load 74(g_tTex3di4) - 76: 68(ptr) AccessChain 17 67 - 77: 13(ivec3) Load 76 - 78: 14(ivec4) ImageRead 75 77 - 82: 79 Load 81(g_tTex3du4) - 83: 68(ptr) AccessChain 17 67 - 84: 13(ivec3) Load 83 - 85: 38(ivec4) ImageRead 82 84 - 92: 91(ptr) AccessChain 88(psout) 18 - Store 92 90 - 94: 93(ptr) AccessChain 88(psout) 44 - Store 94 89 - 97: 91(ptr) AccessChain 88(psout) 18 - 98: 22(fvec4) Load 97 - Store 96(Color) 98 - 101: 93(ptr) AccessChain 88(psout) 44 - 102: 6(float) Load 101 - Store 100(Depth) 102 +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-new/Test/baseResults/hlsl.localStructuredBuffer.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.localStructuredBuffer.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.localStructuredBuffer.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.localStructuredBuffer.comp.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.frag.out index d9ae7d5b70..b90811bd6a 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.frag.out @@ -1,43 +1,41 @@ hlsl.logical.binary.frag -Shader version: 450 +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 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 Test condition and select ( temp void) 0:13 Condition -0:13 logical-and (temp bool) -0:13 Convert int to bool (temp bool) -0:13 ival: direct index for structure (layout(offset=0 ) uniform int) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 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 int to bool (temp bool) -0:13 Convert float to int (temp int) -0:13 fval: direct index for structure (layout(offset=32 ) uniform float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:13 Constant: -0:13 2 (const uint) +0:13 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 Test condition and select ( temp void) 0:14 Condition -0:14 logical-or (temp bool) -0:14 Convert int to bool (temp bool) -0:14 ival: direct index for structure (layout(offset=0 ) uniform int) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 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 int to bool (temp bool) -0:14 Convert float to int (temp int) -0:14 fval: direct index for structure (layout(offset=32 ) uniform float) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:14 Constant: -0:14 2 (const uint) +0:14 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 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: @@ -45,62 +43,63 @@ gl_FragCoord origin is upper left 0:17 1.000000 0:17 1.000000 0:17 1.000000 -0:18 Sequence -0:18 Sequence -0:18 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:18 Color: direct index for structure (temp 4-component vector of float) -0:18 'psout' (temp structure{temp 4-component vector of float Color}) -0:18 Constant: -0:18 0 (const int) -0:18 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +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: 450 +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 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 Test condition and select ( temp void) 0:13 Condition -0:13 logical-and (temp bool) -0:13 Convert int to bool (temp bool) -0:13 ival: direct index for structure (layout(offset=0 ) uniform int) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 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 int to bool (temp bool) -0:13 Convert float to int (temp int) -0:13 fval: direct index for structure (layout(offset=32 ) uniform float) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:13 Constant: -0:13 2 (const uint) +0:13 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 Test condition and select ( temp void) 0:14 Condition -0:14 logical-or (temp bool) -0:14 Convert int to bool (temp bool) -0:14 ival: direct index for structure (layout(offset=0 ) uniform int) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 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 int to bool (temp bool) -0:14 Convert float to int (temp int) -0:14 fval: direct index for structure (layout(offset=32 ) uniform float) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:14 Constant: -0:14 2 (const uint) +0:14 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 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: @@ -108,113 +107,112 @@ gl_FragCoord origin is upper left 0:17 1.000000 0:17 1.000000 0:17 1.000000 -0:18 Sequence -0:18 Sequence -0:18 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:18 Color: direct index for structure (temp 4-component vector of float) -0:18 'psout' (temp structure{temp 4-component vector of float Color}) -0:18 Constant: -0:18 0 (const int) -0:18 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +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): 80001 -// Id's are bound by 57 +// 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 11 "$Global" - MemberName 11($Global) 0 "ival" - MemberName 11($Global) 1 "ival4" - MemberName 11($Global) 2 "fval" - MemberName 11($Global) 3 "fval4" - Name 13 "" - Name 45 "PS_OUTPUT" - MemberName 45(PS_OUTPUT) 0 "Color" - Name 47 "psout" - Name 53 "Color" - MemberDecorate 11($Global) 0 Offset 0 - MemberDecorate 11($Global) 1 Offset 16 - MemberDecorate 11($Global) 2 Offset 32 - MemberDecorate 11($Global) 3 Offset 48 - Decorate 11($Global) Block - Decorate 13 DescriptorSet 0 - Decorate 53(Color) Location 0 + 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: TypeBool - 7: TypeInt 32 1 - 8: TypeVector 7(int) 4 - 9: TypeFloat 32 - 10: TypeVector 9(float) 4 - 11($Global): TypeStruct 7(int) 8(ivec4) 9(float) 10(fvec4) - 12: TypePointer Uniform 11($Global) - 13: 12(ptr) Variable Uniform - 14: 7(int) Constant 0 - 15: TypePointer Uniform 7(int) - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 23: 7(int) Constant 2 - 24: TypePointer Uniform 9(float) - 45(PS_OUTPUT): TypeStruct 10(fvec4) - 46: TypePointer Function 45(PS_OUTPUT) - 48: 9(float) Constant 1065353216 - 49: 10(fvec4) ConstantComposite 48 48 48 48 - 50: TypePointer Function 10(fvec4) - 52: TypePointer Output 10(fvec4) - 53(Color): 52(ptr) Variable Output + 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 - 47(psout): 46(ptr) Variable Function - 16: 15(ptr) AccessChain 13 14 - 17: 7(int) Load 16 - 20: 6(bool) INotEqual 17 19 - SelectionMerge 22 None - BranchConditional 20 21 22 - 21: Label - 25: 24(ptr) AccessChain 13 23 - 26: 9(float) Load 25 - 27: 7(int) ConvertFToS 26 - 28: 6(bool) INotEqual 27 19 - Branch 22 - 22: Label - 29: 6(bool) Phi 20 5 28 21 - SelectionMerge 31 None - BranchConditional 29 30 31 - 30: Label - Branch 31 - 31: Label - 32: 15(ptr) AccessChain 13 14 - 33: 7(int) Load 32 - 34: 6(bool) INotEqual 33 19 - 35: 6(bool) LogicalNot 34 - SelectionMerge 37 None - BranchConditional 35 36 37 - 36: Label - 38: 24(ptr) AccessChain 13 23 - 39: 9(float) Load 38 - 40: 7(int) ConvertFToS 39 - 41: 6(bool) INotEqual 40 19 - Branch 37 - 37: Label - 42: 6(bool) Phi 34 31 41 36 - SelectionMerge 44 None - BranchConditional 42 43 44 - 43: Label - Branch 44 - 44: Label - 51: 50(ptr) AccessChain 47(psout) 14 - Store 51 49 - 54: 50(ptr) AccessChain 47(psout) 14 - 55: 10(fvec4) Load 54 - Store 53(Color) 55 + 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 index 32b5a38597..32753e5c2f 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out @@ -1,412 +1,415 @@ hlsl.logical.binary.vec.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:10 Function Parameters: 0:? Sequence 0:11 Sequence -0:11 move second child to first child (temp 4-component vector of bool) -0:11 'r00' (temp 4-component vector of bool) -0:11 Negate conditional (temp 4-component vector of bool) -0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) -0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 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 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:22 Constant: 0:22 0 (const int) -0:22 Convert bool to float (temp 4-component vector of float) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 'r00' (temp 4-component vector of bool) -0:22 'r01' (temp 4-component vector of bool) -0:22 'r02' (temp 4-component vector of bool) -0:22 'r10' (temp 4-component vector of bool) -0:22 'r11' (temp 4-component vector of bool) -0:22 'r20' (temp 4-component vector of bool) -0:22 'r21' (temp 4-component vector of bool) -0:23 Sequence -0:23 Sequence -0:23 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:23 Color: direct index for structure (temp 4-component vector of float) -0:23 'psout' (temp structure{temp 4-component vector of float Color}) -0:23 Constant: -0:23 0 (const int) -0:23 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:10 Function Parameters: 0:? Sequence 0:11 Sequence -0:11 move second child to first child (temp 4-component vector of bool) -0:11 'r00' (temp 4-component vector of bool) -0:11 Negate conditional (temp 4-component vector of bool) -0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) -0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 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 (layout(offset=0 ) uniform 4-component vector of bool) -0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 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 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:22 Constant: 0:22 0 (const int) -0:22 Convert bool to float (temp 4-component vector of float) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 logical-or (temp 4-component vector of bool) -0:22 'r00' (temp 4-component vector of bool) -0:22 'r01' (temp 4-component vector of bool) -0:22 'r02' (temp 4-component vector of bool) -0:22 'r10' (temp 4-component vector of bool) -0:22 'r11' (temp 4-component vector of bool) -0:22 'r20' (temp 4-component vector of bool) -0:22 'r21' (temp 4-component vector of bool) -0:23 Sequence -0:23 Sequence -0:23 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:23 Color: direct index for structure (temp 4-component vector of float) -0:23 'psout' (temp structure{temp 4-component vector of float Color}) -0:23 Constant: -0:23 0 (const int) -0:23 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +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): 80001 +// 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" 111 + EntryPoint Fragment 4 "main" 112 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 9 "r00" - Name 12 "$Global" - MemberName 12($Global) 0 "b4a" - MemberName 12($Global) 1 "b4b" - MemberName 12($Global) 2 "b1a" - MemberName 12($Global) 3 "b1b" - Name 14 "" - Name 24 "r01" - Name 33 "r02" - Name 41 "r10" - Name 52 "r11" - Name 61 "r20" - Name 73 "r21" - Name 87 "PS_OUTPUT" - MemberName 87(PS_OUTPUT) 0 "Color" - Name 89 "psout" - Name 111 "Color" - MemberDecorate 12($Global) 0 Offset 0 - MemberDecorate 12($Global) 1 Offset 16 - MemberDecorate 12($Global) 2 Offset 32 - MemberDecorate 12($Global) 3 Offset 36 - Decorate 12($Global) Block - Decorate 14 DescriptorSet 0 - Decorate 111(Color) Location 0 + 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: TypeBool - 7: TypeVector 6(bool) 4 - 8: TypePointer Function 7(bvec4) - 10: TypeInt 32 0 - 11: TypeVector 10(int) 4 - 12($Global): TypeStruct 11(ivec4) 11(ivec4) 10(int) 10(int) - 13: TypePointer Uniform 12($Global) - 14: 13(ptr) Variable Uniform - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Uniform 11(ivec4) - 20: 10(int) Constant 0 - 21: 11(ivec4) ConstantComposite 20 20 20 20 - 28: 15(int) Constant 1 - 42: 15(int) Constant 2 - 43: TypePointer Uniform 10(int) - 67: 15(int) Constant 3 - 85: TypeFloat 32 - 86: TypeVector 85(float) 4 - 87(PS_OUTPUT): TypeStruct 86(fvec4) - 88: TypePointer Function 87(PS_OUTPUT) - 103: 85(float) Constant 0 - 104: 85(float) Constant 1065353216 - 105: 86(fvec4) ConstantComposite 103 103 103 103 - 106: 86(fvec4) ConstantComposite 104 104 104 104 - 108: TypePointer Function 86(fvec4) - 110: TypePointer Output 86(fvec4) - 111(Color): 110(ptr) Variable Output + 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 - 9(r00): 8(ptr) Variable Function - 24(r01): 8(ptr) Variable Function - 33(r02): 8(ptr) Variable Function - 41(r10): 8(ptr) Variable Function - 52(r11): 8(ptr) Variable Function - 61(r20): 8(ptr) Variable Function - 73(r21): 8(ptr) Variable Function - 89(psout): 88(ptr) Variable Function - 18: 17(ptr) AccessChain 14 16 - 19: 11(ivec4) Load 18 - 22: 7(bvec4) INotEqual 19 21 - 23: 7(bvec4) LogicalNot 22 - Store 9(r00) 23 - 25: 17(ptr) AccessChain 14 16 - 26: 11(ivec4) Load 25 - 27: 7(bvec4) INotEqual 26 21 - 29: 17(ptr) AccessChain 14 28 - 30: 11(ivec4) Load 29 - 31: 7(bvec4) INotEqual 30 21 - 32: 7(bvec4) LogicalAnd 27 31 - Store 24(r01) 32 - 34: 17(ptr) AccessChain 14 16 - 35: 11(ivec4) Load 34 - 36: 7(bvec4) INotEqual 35 21 - 37: 17(ptr) AccessChain 14 28 - 38: 11(ivec4) Load 37 - 39: 7(bvec4) INotEqual 38 21 - 40: 7(bvec4) LogicalOr 36 39 - Store 33(r02) 40 - 44: 43(ptr) AccessChain 14 42 - 45: 10(int) Load 44 - 46: 6(bool) INotEqual 45 20 - 47: 7(bvec4) CompositeConstruct 46 46 46 46 - 48: 17(ptr) AccessChain 14 28 - 49: 11(ivec4) Load 48 - 50: 7(bvec4) INotEqual 49 21 - 51: 7(bvec4) LogicalAnd 47 50 - Store 41(r10) 51 - 53: 43(ptr) AccessChain 14 42 - 54: 10(int) Load 53 - 55: 6(bool) INotEqual 54 20 - 56: 7(bvec4) CompositeConstruct 55 55 55 55 - 57: 17(ptr) AccessChain 14 28 - 58: 11(ivec4) Load 57 - 59: 7(bvec4) INotEqual 58 21 - 60: 7(bvec4) LogicalOr 56 59 - Store 52(r11) 60 - 62: 17(ptr) AccessChain 14 16 - 63: 11(ivec4) Load 62 - 64: 7(bvec4) INotEqual 63 21 - SelectionMerge 66 None - BranchConditional 64 65 66 - 65: Label - 68: 43(ptr) AccessChain 14 67 - 69: 10(int) Load 68 - 70: 6(bool) INotEqual 69 20 - 71: 7(bvec4) CompositeConstruct 70 70 70 70 - Branch 66 - 66: Label - 72: 6(bool) Phi 64 5 71 65 - Store 61(r20) 72 - 74: 17(ptr) AccessChain 14 16 - 75: 11(ivec4) Load 74 - 76: 7(bvec4) INotEqual 75 21 - 77: 6(bool) LogicalNot 76 - SelectionMerge 79 None - BranchConditional 77 78 79 - 78: Label - 80: 43(ptr) AccessChain 14 67 - 81: 10(int) Load 80 - 82: 6(bool) INotEqual 81 20 - 83: 7(bvec4) CompositeConstruct 82 82 82 82 - Branch 79 - 79: Label - 84: 6(bool) Phi 76 66 83 78 - Store 73(r21) 84 - 90: 7(bvec4) Load 9(r00) - 91: 7(bvec4) Load 24(r01) - 92: 7(bvec4) LogicalOr 90 91 - 93: 7(bvec4) Load 33(r02) - 94: 7(bvec4) LogicalOr 92 93 - 95: 7(bvec4) Load 41(r10) - 96: 7(bvec4) LogicalOr 94 95 - 97: 7(bvec4) Load 52(r11) - 98: 7(bvec4) LogicalOr 96 97 - 99: 7(bvec4) Load 61(r20) - 100: 7(bvec4) LogicalOr 98 99 - 101: 7(bvec4) Load 73(r21) - 102: 7(bvec4) LogicalOr 100 101 - 107: 86(fvec4) Select 102 106 105 - 109: 108(ptr) AccessChain 89(psout) 16 - Store 109 107 - 112: 108(ptr) AccessChain 89(psout) 16 - 113: 86(fvec4) Load 112 - Store 111(Color) 113 + 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 index 1aaa69a24e..25dbc2ad53 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.logical.unary.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.logical.unary.frag.out @@ -1,69 +1,71 @@ hlsl.logical.unary.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:12 Function Parameters: 0:? Sequence -0:13 Negate conditional (temp bool) -0:13 Convert int to bool (temp bool) -0:13 ival: direct index for structure (layout(offset=0 ) uniform int) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 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 (layout(offset=16 ) uniform 4-component vector of int) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 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 (layout(offset=32 ) uniform float) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 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 (layout(offset=48 ) uniform 4-component vector of float) -0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 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 Test condition and select ( temp void) 0:19 Condition -0:19 ival: direct index for structure (layout(offset=0 ) uniform int) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:19 Constant: -0:19 0 (const uint) +0:19 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 Test condition and select ( temp void) 0:20 Condition -0:20 fval: direct index for structure (layout(offset=32 ) uniform float) -0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:20 Constant: -0:20 2 (const uint) +0:20 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 Test condition and select ( temp void) 0:21 Condition -0:21 Negate conditional (temp bool) -0:21 Convert int to bool (temp bool) -0:21 ival: direct index for structure (layout(offset=0 ) uniform int) -0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 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 Test condition and select ( temp void) 0:22 Condition -0:22 Negate conditional (temp bool) -0:22 Convert float to bool (temp bool) -0:22 fval: direct index for structure (layout(offset=32 ) uniform float) -0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 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 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: @@ -71,88 +73,93 @@ gl_FragCoord origin is upper left 0:25 1.000000 0:25 1.000000 0:25 1.000000 -0:26 Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:26 Color: direct index for structure (temp 4-component vector of float) -0:26 'psout' (temp structure{temp 4-component vector of float Color}) -0:26 Constant: -0:26 0 (const int) -0:26 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:12 Function Parameters: 0:? Sequence -0:13 Negate conditional (temp bool) -0:13 Convert int to bool (temp bool) -0:13 ival: direct index for structure (layout(offset=0 ) uniform int) -0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 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 (layout(offset=16 ) uniform 4-component vector of int) -0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 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 (layout(offset=32 ) uniform float) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 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 (layout(offset=48 ) uniform 4-component vector of float) -0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 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 Test condition and select ( temp void) 0:19 Condition -0:19 ival: direct index for structure (layout(offset=0 ) uniform int) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:19 Constant: -0:19 0 (const uint) +0:19 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 Test condition and select ( temp void) 0:20 Condition -0:20 fval: direct index for structure (layout(offset=32 ) uniform float) -0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) -0:20 Constant: -0:20 2 (const uint) +0:20 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 Test condition and select ( temp void) 0:21 Condition -0:21 Negate conditional (temp bool) -0:21 Convert int to bool (temp bool) -0:21 ival: direct index for structure (layout(offset=0 ) uniform int) -0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 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 Test condition and select ( temp void) 0:22 Condition -0:22 Negate conditional (temp bool) -0:22 Convert float to bool (temp bool) -0:22 fval: direct index for structure (layout(offset=32 ) uniform float) -0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 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 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: @@ -160,133 +167,146 @@ gl_FragCoord origin is upper left 0:25 1.000000 0:25 1.000000 0:25 1.000000 -0:26 Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:26 Color: direct index for structure (temp 4-component vector of float) -0:26 'psout' (temp structure{temp 4-component vector of float Color}) -0:26 Constant: -0:26 0 (const int) -0:26 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +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): 80001 -// Id's are bound by 77 +// 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" 73 + EntryPoint Fragment 4 "main" 81 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 10 "$Global" - MemberName 10($Global) 0 "ival" - MemberName 10($Global) 1 "ival4" - MemberName 10($Global) 2 "fval" - MemberName 10($Global) 3 "fval4" - Name 12 "" - Name 65 "PS_OUTPUT" - MemberName 65(PS_OUTPUT) 0 "Color" - Name 67 "psout" - Name 73 "Color" - MemberDecorate 10($Global) 0 Offset 0 - MemberDecorate 10($Global) 1 Offset 16 - MemberDecorate 10($Global) 2 Offset 32 - MemberDecorate 10($Global) 3 Offset 48 - Decorate 10($Global) Block - Decorate 12 DescriptorSet 0 - Decorate 73(Color) Location 0 + 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: TypeInt 32 1 - 7: TypeVector 6(int) 4 - 8: TypeFloat 32 - 9: TypeVector 8(float) 4 - 10($Global): TypeStruct 6(int) 7(ivec4) 8(float) 9(fvec4) - 11: TypePointer Uniform 10($Global) - 12: 11(ptr) Variable Uniform - 13: 6(int) Constant 0 - 14: TypePointer Uniform 6(int) - 17: TypeBool - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 22: 6(int) Constant 1 - 23: TypePointer Uniform 7(ivec4) - 26: TypeVector 17(bool) 4 - 27: TypeVector 18(int) 4 - 28: 27(ivec4) ConstantComposite 19 19 19 19 - 31: 6(int) Constant 2 - 32: TypePointer Uniform 8(float) - 35: 8(float) Constant 0 - 38: 6(int) Constant 3 - 39: TypePointer Uniform 9(fvec4) - 42: 9(fvec4) ConstantComposite 35 35 35 35 - 65(PS_OUTPUT): TypeStruct 9(fvec4) - 66: TypePointer Function 65(PS_OUTPUT) - 68: 8(float) Constant 1065353216 - 69: 9(fvec4) ConstantComposite 68 68 68 68 - 70: TypePointer Function 9(fvec4) - 72: TypePointer Output 9(fvec4) - 73(Color): 72(ptr) Variable Output + 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 - 67(psout): 66(ptr) Variable Function - 15: 14(ptr) AccessChain 12 13 - 16: 6(int) Load 15 - 20: 17(bool) INotEqual 16 19 - 21: 17(bool) LogicalNot 20 - 24: 23(ptr) AccessChain 12 22 - 25: 7(ivec4) Load 24 - 29: 26(bvec4) INotEqual 25 28 - 30: 26(bvec4) LogicalNot 29 - 33: 32(ptr) AccessChain 12 31 - 34: 8(float) Load 33 - 36: 17(bool) FOrdNotEqual 34 35 - 37: 17(bool) LogicalNot 36 - 40: 39(ptr) AccessChain 12 38 - 41: 9(fvec4) Load 40 - 43: 26(bvec4) FOrdNotEqual 41 42 - 44: 26(bvec4) LogicalNot 43 - 45: 14(ptr) AccessChain 12 13 - 46: 6(int) Load 45 - SelectionMerge 48 None - BranchConditional 46 47 48 - 47: Label - Branch 48 - 48: Label - 49: 32(ptr) AccessChain 12 31 - 50: 8(float) Load 49 - SelectionMerge 52 None - BranchConditional 50 51 52 - 51: Label - Branch 52 - 52: Label - 53: 14(ptr) AccessChain 12 13 - 54: 6(int) Load 53 - 55: 17(bool) INotEqual 54 19 - 56: 17(bool) LogicalNot 55 + 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: 32(ptr) AccessChain 12 31 - 60: 8(float) Load 59 - 61: 17(bool) FOrdNotEqual 60 35 - 62: 17(bool) LogicalNot 61 + 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 - 71: 70(ptr) AccessChain 67(psout) 13 - Store 71 69 - 74: 70(ptr) AccessChain 67(psout) 13 - 75: 9(fvec4) Load 74 - Store 73(Color) 75 - Return + 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-new/Test/baseResults/hlsl.logicalConvert.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.logicalConvert.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.logicalConvert.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.logicalConvert.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.loopattr.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.loopattr.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.loopattr.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.loopattr.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matNx1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matNx1.frag.out index f9dd65f9e7..109362e458 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.matNx1.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matNx1.frag.out @@ -1,56 +1,56 @@ hlsl.matNx1.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: TestMatNx1( (temp void) +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: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: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: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: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: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: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: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: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 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: @@ -58,74 +58,77 @@ gl_FragCoord origin is upper left 0:29 1.000000 0:29 1.000000 0:29 1.000000 -0:30 Sequence -0:30 Sequence -0:30 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (temp structure{temp 4-component vector of float color}) -0:30 Constant: -0:30 0 (const int) -0:30 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: TestMatNx1( (temp void) +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: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: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: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: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: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: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: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: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 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: @@ -133,129 +136,140 @@ gl_FragCoord origin is upper left 0:29 1.000000 0:29 1.000000 0:29 1.000000 -0:30 Sequence -0:30 Sequence -0:30 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (temp structure{temp 4-component vector of float color}) -0:30 Constant: -0:30 0 (const int) -0:30 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 72 +// 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" 68 + EntryPoint Fragment 4 "main" 74 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 6 "TestMatNx1(" - Name 12 "r00" - Name 13 "f1x1" - Name 19 "r01" - Name 22 "f2x1" - Name 28 "r02" - Name 31 "f3x1" - Name 37 "r03" - Name 40 "f4x1" - Name 43 "r10" - Name 46 "r11" - Name 47 "f1x2" - Name 50 "r12" - Name 51 "f1x3" - Name 54 "r13" - Name 55 "f1x4" - Name 58 "PS_OUTPUT" - MemberName 58(PS_OUTPUT) 0 "color" - Name 60 "ps_output" - Name 68 "color" - Decorate 68(color) Location 0 + 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) 1 - 10: TypeMatrix 9(fvec) 1 - 11: TypePointer Function 10 - 16: TypeVector 8(float) 2 - 17: TypeMatrix 16(fvec2) 1 - 18: TypePointer Function 17 - 20: TypeMatrix 9(fvec) 2 - 21: TypePointer Function 20 - 25: TypeVector 8(float) 3 - 26: TypeMatrix 25(fvec3) 1 - 27: TypePointer Function 26 - 29: TypeMatrix 9(fvec) 3 - 30: TypePointer Function 29 - 34: TypeVector 8(float) 4 - 35: TypeMatrix 34(fvec4) 1 - 36: TypePointer Function 35 - 38: TypeMatrix 9(fvec) 4 - 39: TypePointer Function 38 - 58(PS_OUTPUT): TypeStruct 34(fvec4) - 59: TypePointer Function 58(PS_OUTPUT) - 61: TypeInt 32 1 - 62: 61(int) Constant 0 - 63: 8(float) Constant 1065353216 - 64: 34(fvec4) ConstantComposite 63 63 63 63 - 65: TypePointer Function 34(fvec4) - 67: TypePointer Output 34(fvec4) - 68(color): 67(ptr) Variable Output + 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 - 60(ps_output): 59(ptr) Variable Function - 66: 65(ptr) AccessChain 60(ps_output) 62 - Store 66 64 - 69: 65(ptr) AccessChain 60(ps_output) 62 - 70: 34(fvec4) Load 69 - Store 68(color) 70 + 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 - 12(r00): 11(ptr) Variable Function - 13(f1x1): 11(ptr) Variable Function - 19(r01): 18(ptr) Variable Function - 22(f2x1): 21(ptr) Variable Function - 28(r02): 27(ptr) Variable Function - 31(f3x1): 30(ptr) Variable Function - 37(r03): 36(ptr) Variable Function - 40(f4x1): 39(ptr) Variable Function - 43(r10): 11(ptr) Variable Function - 46(r11): 21(ptr) Variable Function - 47(f1x2): 18(ptr) Variable Function - 50(r12): 30(ptr) Variable Function - 51(f1x3): 27(ptr) Variable Function - 54(r13): 39(ptr) Variable Function - 55(f1x4): 36(ptr) Variable Function - 14: 10 Load 13(f1x1) - 15: 10 Transpose 14 - Store 12(r00) 15 - 23: 20 Load 22(f2x1) - 24: 17 Transpose 23 - Store 19(r01) 24 - 32: 29 Load 31(f3x1) - 33: 26 Transpose 32 - Store 28(r02) 33 - 41: 38 Load 40(f4x1) - 42: 35 Transpose 41 - Store 37(r03) 42 - 44: 10 Load 13(f1x1) - 45: 10 Transpose 44 - Store 43(r10) 45 - 48: 17 Load 47(f1x2) - 49: 20 Transpose 48 - Store 46(r11) 49 - 52: 26 Load 51(f1x3) - 53: 29 Transpose 52 - Store 50(r12) 53 - 56: 35 Load 55(f1x4) - 57: 38 Transpose 56 - Store 54(r13) 57 + 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 index e24c878441..82575b04ad 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.matType.bool.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matType.bool.frag.out @@ -1,96 +1,96 @@ hlsl.matType.bool.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: TestBoolMatTypes( (temp void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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 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: @@ -98,114 +98,117 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:52 Sequence -0:52 Sequence -0:52 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:52 color: direct index for structure (temp 4-component vector of float) -0:52 'ps_output' (temp structure{temp 4-component vector of float color}) -0:52 Constant: -0:52 0 (const int) -0:52 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: TestBoolMatTypes( (temp void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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 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: @@ -213,207 +216,218 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:52 Sequence -0:52 Sequence -0:52 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:52 color: direct index for structure (temp 4-component vector of float) -0:52 'ps_output' (temp structure{temp 4-component vector of float color}) -0:52 Constant: -0:52 0 (const int) -0:52 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 125 +// 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" 121 + EntryPoint Fragment 4 "main" 127 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 6 "TestBoolMatTypes(" - Name 12 "r00" - Name 13 "b1x1" - Name 19 "r01" - Name 22 "b2x1" - Name 28 "r02" - Name 31 "b3x1" - Name 37 "r03" - Name 40 "b4x1" - Name 43 "r10" - Name 44 "b1x2" - Name 49 "r11" - Name 50 "b2x2" - Name 55 "r12" - Name 58 "b3x2" - Name 63 "r13" - Name 66 "b4x2" - Name 69 "r20" - Name 70 "b1x3" - Name 73 "r21" - Name 74 "b2x3" - Name 79 "r22" - Name 80 "b3x3" - Name 85 "r23" - Name 88 "b4x3" - Name 91 "r30" - Name 92 "b1x4" - Name 95 "r31" - Name 96 "b2x4" - Name 99 "r32" - Name 100 "b3x4" - Name 105 "r33" - Name 106 "b4x4" - Name 111 "PS_OUTPUT" - MemberName 111(PS_OUTPUT) 0 "color" - Name 113 "ps_output" - Name 121 "color" - Decorate 121(color) Location 0 + 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: TypeBool - 9: TypeVector 8(bool) 1 - 10: TypeMatrix 9(bvec) 1 - 11: TypePointer Function 10 - 16: TypeVector 8(bool) 2 - 17: TypeMatrix 16(bvec2) 1 - 18: TypePointer Function 17 - 20: TypeMatrix 9(bvec) 2 - 21: TypePointer Function 20 - 25: TypeVector 8(bool) 3 - 26: TypeMatrix 25(bvec3) 1 + 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 - 29: TypeMatrix 9(bvec) 3 - 30: TypePointer Function 29 - 34: TypeVector 8(bool) 4 - 35: TypeMatrix 34(bvec4) 1 + 31: TypeVector 14(bool) 3 + 32: TypeMatrix 31(bvec3) 1 + 33: TypePointer Function 32 + 35: TypeMatrix 15(bvec) 3 36: TypePointer Function 35 - 38: TypeMatrix 9(bvec) 4 - 39: TypePointer Function 38 - 47: TypeMatrix 16(bvec2) 2 - 48: TypePointer Function 47 - 53: TypeMatrix 25(bvec3) 2 + 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 - 56: TypeMatrix 16(bvec2) 3 - 57: TypePointer Function 56 - 61: TypeMatrix 34(bvec4) 2 - 62: TypePointer Function 61 - 64: TypeMatrix 16(bvec2) 4 - 65: TypePointer Function 64 - 77: TypeMatrix 25(bvec3) 3 - 78: TypePointer Function 77 - 83: TypeMatrix 34(bvec4) 3 + 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 - 86: TypeMatrix 25(bvec3) 4 - 87: TypePointer Function 86 - 103: TypeMatrix 34(bvec4) 4 - 104: TypePointer Function 103 - 109: TypeFloat 32 - 110: TypeVector 109(float) 4 - 111(PS_OUTPUT): TypeStruct 110(fvec4) - 112: TypePointer Function 111(PS_OUTPUT) - 114: TypeInt 32 1 - 115: 114(int) Constant 0 - 116: 109(float) Constant 0 - 117: 110(fvec4) ConstantComposite 116 116 116 116 - 118: TypePointer Function 110(fvec4) - 120: TypePointer Output 110(fvec4) - 121(color): 120(ptr) Variable Output + 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 - 113(ps_output): 112(ptr) Variable Function - 119: 118(ptr) AccessChain 113(ps_output) 115 - Store 119 117 - 122: 118(ptr) AccessChain 113(ps_output) 115 - 123: 110(fvec4) Load 122 - Store 121(color) 123 + 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 - 12(r00): 11(ptr) Variable Function - 13(b1x1): 11(ptr) Variable Function - 19(r01): 18(ptr) Variable Function - 22(b2x1): 21(ptr) Variable Function - 28(r02): 27(ptr) Variable Function - 31(b3x1): 30(ptr) Variable Function - 37(r03): 36(ptr) Variable Function - 40(b4x1): 39(ptr) Variable Function - 43(r10): 21(ptr) Variable Function - 44(b1x2): 18(ptr) Variable Function - 49(r11): 48(ptr) Variable Function - 50(b2x2): 48(ptr) Variable Function - 55(r12): 54(ptr) Variable Function - 58(b3x2): 57(ptr) Variable Function - 63(r13): 62(ptr) Variable Function - 66(b4x2): 65(ptr) Variable Function - 69(r20): 30(ptr) Variable Function - 70(b1x3): 27(ptr) Variable Function - 73(r21): 57(ptr) Variable Function - 74(b2x3): 54(ptr) Variable Function - 79(r22): 78(ptr) Variable Function - 80(b3x3): 78(ptr) Variable Function - 85(r23): 84(ptr) Variable Function - 88(b4x3): 87(ptr) Variable Function - 91(r30): 39(ptr) Variable Function - 92(b1x4): 36(ptr) Variable Function - 95(r31): 65(ptr) Variable Function - 96(b2x4): 62(ptr) Variable Function - 99(r32): 87(ptr) Variable Function - 100(b3x4): 84(ptr) Variable Function - 105(r33): 104(ptr) Variable Function - 106(b4x4): 104(ptr) Variable Function - 14: 10 Load 13(b1x1) - 15: 10 Transpose 14 - Store 12(r00) 15 - 23: 20 Load 22(b2x1) - 24: 17 Transpose 23 - Store 19(r01) 24 - 32: 29 Load 31(b3x1) - 33: 26 Transpose 32 - Store 28(r02) 33 - 41: 38 Load 40(b4x1) - 42: 35 Transpose 41 - Store 37(r03) 42 - 45: 17 Load 44(b1x2) - 46: 20 Transpose 45 - Store 43(r10) 46 - 51: 47 Load 50(b2x2) - 52: 47 Transpose 51 - Store 49(r11) 52 - 59: 56 Load 58(b3x2) - 60: 53 Transpose 59 - Store 55(r12) 60 - 67: 64 Load 66(b4x2) - 68: 61 Transpose 67 - Store 63(r13) 68 - 71: 26 Load 70(b1x3) - 72: 29 Transpose 71 - Store 69(r20) 72 - 75: 53 Load 74(b2x3) - 76: 56 Transpose 75 - Store 73(r21) 76 - 81: 77 Load 80(b3x3) - 82: 77 Transpose 81 - Store 79(r22) 82 - 89: 86 Load 88(b4x3) - 90: 83 Transpose 89 - Store 85(r23) 90 - 93: 35 Load 92(b1x4) - 94: 38 Transpose 93 - Store 91(r30) 94 - 97: 61 Load 96(b2x4) - 98: 64 Transpose 97 - Store 95(r31) 98 - 101: 83 Load 100(b3x4) - 102: 86 Transpose 101 - Store 99(r32) 102 - 107: 103 Load 106(b4x4) - 108: 103 Transpose 107 - Store 105(r33) 108 + 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 index 038ca738ae..958b37e0d6 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.matType.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matType.frag.out @@ -1,37 +1,37 @@ hlsl.matType.frag -Shader version: 450 +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 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: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:10 'inFloat1' ( in 1-component vector of float) 0:? Linker Objects -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) +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: 450 +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 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: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:10 'inFloat1' ( in 1-component vector of float) 0:? Linker Objects -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) +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): 80001 +// Generated by (magic number): 80007 // Id's are bound by 30 Capability Shader @@ -40,6 +40,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" @@ -81,8 +82,8 @@ gl_FragCoord origin is upper left 19: TypeVector 6(float) 2 20: TypeMatrix 19(fvec2) 1 21: TypeFloat 64 - 22: TypeVector 21(float) 3 - 23: TypeMatrix 22(fvec3) 2 + 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 diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matType.int.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matType.int.frag.out index d7ffb0f780..b8d29ac052 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.matType.int.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matType.int.frag.out @@ -1,179 +1,179 @@ hlsl.matType.int.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: TestIntMatTypes( (temp void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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 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: @@ -181,197 +181,200 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:96 Sequence -0:96 Sequence -0:96 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:96 color: direct index for structure (temp 4-component vector of float) -0:96 'ps_output' (temp structure{temp 4-component vector of float color}) -0:96 Constant: -0:96 0 (const int) -0:96 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: TestIntMatTypes( (temp void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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 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: @@ -379,360 +382,371 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:96 Sequence -0:96 Sequence -0:96 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:96 color: direct index for structure (temp 4-component vector of float) -0:96 'ps_output' (temp structure{temp 4-component vector of float color}) -0:96 Constant: -0:96 0 (const int) -0:96 Branch: Return +0: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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 227 +// 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" 223 + EntryPoint Fragment 4 "main" 229 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 6 "TestIntMatTypes(" Name 8 "TestUintMatTypes(" - Name 14 "r00" - Name 15 "i1x1" - Name 21 "r01" - Name 24 "i2x1" - Name 30 "r02" - Name 33 "i3x1" - Name 39 "r03" - Name 42 "i4x1" - Name 45 "r10" - Name 46 "i1x2" - Name 51 "r11" - Name 52 "i2x2" - Name 57 "r12" - Name 60 "i3x2" - Name 65 "r13" - Name 68 "i4x2" - Name 71 "r20" - Name 72 "i1x3" - Name 75 "r21" - Name 76 "i2x3" - Name 81 "r22" - Name 82 "i3x3" - Name 87 "r23" - Name 90 "i4x3" - Name 93 "r30" - Name 94 "i1x4" - Name 97 "r31" - Name 98 "i2x4" - Name 101 "r32" - Name 102 "i3x4" - Name 107 "r33" - Name 108 "i4x4" - Name 115 "r00" - Name 116 "u1x1" - Name 122 "r01" - Name 125 "u2x1" - Name 131 "r02" - Name 134 "u3x1" - Name 140 "r03" - Name 143 "u4x1" - Name 146 "r10" - Name 147 "u1x2" - Name 152 "r11" - Name 153 "u2x2" - Name 158 "r12" - Name 161 "u3x2" - Name 166 "r13" - Name 169 "u4x2" - Name 172 "r20" - Name 173 "u1x3" - Name 176 "r21" - Name 177 "u2x3" - Name 182 "r22" - Name 183 "u3x3" - Name 188 "r23" - Name 191 "u4x3" - Name 194 "r30" - Name 195 "u1x4" - Name 198 "r31" - Name 199 "u2x4" - Name 202 "r32" - Name 203 "u3x4" - Name 208 "r33" - Name 209 "u4x4" - Name 214 "PS_OUTPUT" - MemberName 214(PS_OUTPUT) 0 "color" - Name 216 "ps_output" - Name 223 "color" - Decorate 223(color) Location 0 + 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: TypeInt 32 1 - 11: TypeVector 10(int) 1 - 12: TypeMatrix 11(ivec) 1 - 13: TypePointer Function 12 - 18: TypeVector 10(int) 2 - 19: TypeMatrix 18(ivec2) 1 - 20: TypePointer Function 19 - 22: TypeMatrix 11(ivec) 2 - 23: TypePointer Function 22 - 27: TypeVector 10(int) 3 - 28: TypeMatrix 27(ivec3) 1 + 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 - 31: TypeMatrix 11(ivec) 3 - 32: TypePointer Function 31 - 36: TypeVector 10(int) 4 - 37: TypeMatrix 36(ivec4) 1 + 33: TypeVector 16(int) 3 + 34: TypeMatrix 33(ivec3) 1 + 35: TypePointer Function 34 + 37: TypeMatrix 17(ivec) 3 38: TypePointer Function 37 - 40: TypeMatrix 11(ivec) 4 - 41: TypePointer Function 40 - 49: TypeMatrix 18(ivec2) 2 - 50: TypePointer Function 49 - 55: TypeMatrix 27(ivec3) 2 + 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 - 58: TypeMatrix 18(ivec2) 3 - 59: TypePointer Function 58 - 63: TypeMatrix 36(ivec4) 2 - 64: TypePointer Function 63 - 66: TypeMatrix 18(ivec2) 4 - 67: TypePointer Function 66 - 79: TypeMatrix 27(ivec3) 3 - 80: TypePointer Function 79 - 85: TypeMatrix 36(ivec4) 3 + 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 - 88: TypeMatrix 27(ivec3) 4 - 89: TypePointer Function 88 - 105: TypeMatrix 36(ivec4) 4 - 106: TypePointer Function 105 - 111: TypeInt 32 0 - 112: TypeVector 111(int) 1 - 113: TypeMatrix 112(ivec) 1 - 114: TypePointer Function 113 - 119: TypeVector 111(int) 2 - 120: TypeMatrix 119(ivec2) 1 - 121: TypePointer Function 120 - 123: TypeMatrix 112(ivec) 2 - 124: TypePointer Function 123 - 128: TypeVector 111(int) 3 - 129: TypeMatrix 128(ivec3) 1 + 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 - 132: TypeMatrix 112(ivec) 3 - 133: TypePointer Function 132 - 137: TypeVector 111(int) 4 - 138: TypeMatrix 137(ivec4) 1 + 134: TypeVector 117(int) 3 + 135: TypeMatrix 134(ivec3) 1 + 136: TypePointer Function 135 + 138: TypeMatrix 118(ivec) 3 139: TypePointer Function 138 - 141: TypeMatrix 112(ivec) 4 - 142: TypePointer Function 141 - 150: TypeMatrix 119(ivec2) 2 - 151: TypePointer Function 150 - 156: TypeMatrix 128(ivec3) 2 + 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 - 159: TypeMatrix 119(ivec2) 3 - 160: TypePointer Function 159 - 164: TypeMatrix 137(ivec4) 2 - 165: TypePointer Function 164 - 167: TypeMatrix 119(ivec2) 4 - 168: TypePointer Function 167 - 180: TypeMatrix 128(ivec3) 3 - 181: TypePointer Function 180 - 186: TypeMatrix 137(ivec4) 3 + 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 - 189: TypeMatrix 128(ivec3) 4 - 190: TypePointer Function 189 - 206: TypeMatrix 137(ivec4) 4 - 207: TypePointer Function 206 - 212: TypeFloat 32 - 213: TypeVector 212(float) 4 - 214(PS_OUTPUT): TypeStruct 213(fvec4) - 215: TypePointer Function 214(PS_OUTPUT) - 217: 10(int) Constant 0 - 218: 212(float) Constant 0 - 219: 213(fvec4) ConstantComposite 218 218 218 218 - 220: TypePointer Function 213(fvec4) - 222: TypePointer Output 213(fvec4) - 223(color): 222(ptr) Variable Output + 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 - 216(ps_output): 215(ptr) Variable Function - 221: 220(ptr) AccessChain 216(ps_output) 217 - Store 221 219 - 224: 220(ptr) AccessChain 216(ps_output) 217 - 225: 213(fvec4) Load 224 - Store 223(color) 225 + 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 - 14(r00): 13(ptr) Variable Function - 15(i1x1): 13(ptr) Variable Function - 21(r01): 20(ptr) Variable Function - 24(i2x1): 23(ptr) Variable Function - 30(r02): 29(ptr) Variable Function - 33(i3x1): 32(ptr) Variable Function - 39(r03): 38(ptr) Variable Function - 42(i4x1): 41(ptr) Variable Function - 45(r10): 23(ptr) Variable Function - 46(i1x2): 20(ptr) Variable Function - 51(r11): 50(ptr) Variable Function - 52(i2x2): 50(ptr) Variable Function - 57(r12): 56(ptr) Variable Function - 60(i3x2): 59(ptr) Variable Function - 65(r13): 64(ptr) Variable Function - 68(i4x2): 67(ptr) Variable Function - 71(r20): 32(ptr) Variable Function - 72(i1x3): 29(ptr) Variable Function - 75(r21): 59(ptr) Variable Function - 76(i2x3): 56(ptr) Variable Function - 81(r22): 80(ptr) Variable Function - 82(i3x3): 80(ptr) Variable Function - 87(r23): 86(ptr) Variable Function - 90(i4x3): 89(ptr) Variable Function - 93(r30): 41(ptr) Variable Function - 94(i1x4): 38(ptr) Variable Function - 97(r31): 67(ptr) Variable Function - 98(i2x4): 64(ptr) Variable Function - 101(r32): 89(ptr) Variable Function - 102(i3x4): 86(ptr) Variable Function - 107(r33): 106(ptr) Variable Function - 108(i4x4): 106(ptr) Variable Function - 16: 12 Load 15(i1x1) - 17: 12 Transpose 16 - Store 14(r00) 17 - 25: 22 Load 24(i2x1) - 26: 19 Transpose 25 - Store 21(r01) 26 - 34: 31 Load 33(i3x1) - 35: 28 Transpose 34 - Store 30(r02) 35 - 43: 40 Load 42(i4x1) - 44: 37 Transpose 43 - Store 39(r03) 44 - 47: 19 Load 46(i1x2) - 48: 22 Transpose 47 - Store 45(r10) 48 - 53: 49 Load 52(i2x2) - 54: 49 Transpose 53 - Store 51(r11) 54 - 61: 58 Load 60(i3x2) - 62: 55 Transpose 61 - Store 57(r12) 62 - 69: 66 Load 68(i4x2) - 70: 63 Transpose 69 - Store 65(r13) 70 - 73: 28 Load 72(i1x3) - 74: 31 Transpose 73 - Store 71(r20) 74 - 77: 55 Load 76(i2x3) - 78: 58 Transpose 77 - Store 75(r21) 78 - 83: 79 Load 82(i3x3) - 84: 79 Transpose 83 - Store 81(r22) 84 - 91: 88 Load 90(i4x3) - 92: 85 Transpose 91 - Store 87(r23) 92 - 95: 37 Load 94(i1x4) - 96: 40 Transpose 95 - Store 93(r30) 96 - 99: 63 Load 98(i2x4) - 100: 66 Transpose 99 - Store 97(r31) 100 - 103: 85 Load 102(i3x4) - 104: 88 Transpose 103 - Store 101(r32) 104 - 109: 105 Load 108(i4x4) - 110: 105 Transpose 109 - Store 107(r33) 110 + 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 - 115(r00): 114(ptr) Variable Function - 116(u1x1): 114(ptr) Variable Function - 122(r01): 121(ptr) Variable Function - 125(u2x1): 124(ptr) Variable Function - 131(r02): 130(ptr) Variable Function - 134(u3x1): 133(ptr) Variable Function - 140(r03): 139(ptr) Variable Function - 143(u4x1): 142(ptr) Variable Function - 146(r10): 124(ptr) Variable Function - 147(u1x2): 121(ptr) Variable Function - 152(r11): 151(ptr) Variable Function - 153(u2x2): 151(ptr) Variable Function - 158(r12): 157(ptr) Variable Function - 161(u3x2): 160(ptr) Variable Function - 166(r13): 165(ptr) Variable Function - 169(u4x2): 168(ptr) Variable Function - 172(r20): 133(ptr) Variable Function - 173(u1x3): 130(ptr) Variable Function - 176(r21): 160(ptr) Variable Function - 177(u2x3): 157(ptr) Variable Function - 182(r22): 181(ptr) Variable Function - 183(u3x3): 181(ptr) Variable Function - 188(r23): 187(ptr) Variable Function - 191(u4x3): 190(ptr) Variable Function - 194(r30): 142(ptr) Variable Function - 195(u1x4): 139(ptr) Variable Function - 198(r31): 168(ptr) Variable Function - 199(u2x4): 165(ptr) Variable Function - 202(r32): 190(ptr) Variable Function - 203(u3x4): 187(ptr) Variable Function - 208(r33): 207(ptr) Variable Function - 209(u4x4): 207(ptr) Variable Function - 117: 113 Load 116(u1x1) - 118: 113 Transpose 117 - Store 115(r00) 118 - 126: 123 Load 125(u2x1) - 127: 120 Transpose 126 - Store 122(r01) 127 - 135: 132 Load 134(u3x1) - 136: 129 Transpose 135 - Store 131(r02) 136 - 144: 141 Load 143(u4x1) - 145: 138 Transpose 144 - Store 140(r03) 145 - 148: 120 Load 147(u1x2) - 149: 123 Transpose 148 - Store 146(r10) 149 - 154: 150 Load 153(u2x2) - 155: 150 Transpose 154 - Store 152(r11) 155 - 162: 159 Load 161(u3x2) - 163: 156 Transpose 162 - Store 158(r12) 163 - 170: 167 Load 169(u4x2) - 171: 164 Transpose 170 - Store 166(r13) 171 - 174: 129 Load 173(u1x3) - 175: 132 Transpose 174 - Store 172(r20) 175 - 178: 156 Load 177(u2x3) - 179: 159 Transpose 178 - Store 176(r21) 179 - 184: 180 Load 183(u3x3) - 185: 180 Transpose 184 - Store 182(r22) 185 - 192: 189 Load 191(u4x3) - 193: 186 Transpose 192 - Store 188(r23) 193 - 196: 138 Load 195(u1x4) - 197: 141 Transpose 196 - Store 194(r30) 197 - 200: 164 Load 199(u2x4) - 201: 167 Transpose 200 - Store 198(r31) 201 - 204: 186 Load 203(u3x4) - 205: 189 Transpose 204 - Store 202(r32) 205 - 210: 206 Load 209(u4x4) - 211: 206 Transpose 210 - Store 208(r33) 211 + 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-new/Test/baseResults/hlsl.matpack-1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matpack-1.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.matpack-1.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.matpack-1.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.matpack-pragma.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.matpack-pragma.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.matrixSwizzle.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.matrixSwizzle.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matrixindex.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matrixindex.frag.out index 420ba9f55d..63e5614ef5 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.matrixindex.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matrixindex.frag.out @@ -1,92 +1,92 @@ hlsl.matrixindex.frag -Shader version: 450 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 @@ -94,134 +94,137 @@ gl_FragCoord origin is upper left 0:43 23.000000 0:43 24.000000 0:43 25.000000 -0:43 idx: direct index for structure (layout(offset=0 ) uniform int) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 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 (layout(offset=16 ) temp 2-component vector of float) -0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 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 (layout(offset=0 ) uniform int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +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: 450 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 @@ -229,179 +232,190 @@ gl_FragCoord origin is upper left 0:43 23.000000 0:43 24.000000 0:43 25.000000 -0:43 idx: direct index for structure (layout(offset=0 ) uniform int) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 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 (layout(offset=16 ) temp 2-component vector of float) -0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 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 (layout(offset=0 ) uniform int) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +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): 80001 -// Id's are bound by 78 +// 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" 74 + EntryPoint Fragment 4 "main" 80 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "e1_00" - Name 10 "e1_01" - Name 12 "e1_10" - Name 14 "e1_11" - Name 16 "e1_20" - Name 18 "e1_21" - Name 20 "e2_00" - Name 22 "e2_01" - Name 24 "e2_10" - Name 26 "e2_11" - Name 28 "e2_20" - Name 30 "e2_21" - Name 34 "r0a" - Name 36 "r1a" - Name 38 "r2a" - Name 40 "r0b" - Name 47 "$Global" - MemberName 47($Global) 0 "idx" - MemberName 47($Global) 1 "um" - Name 49 "" - Name 55 "indexable" - Name 58 "r0c" - Name 66 "PS_OUTPUT" - MemberName 66(PS_OUTPUT) 0 "Color" - Name 68 "psout" - Name 74 "Color" - MemberDecorate 47($Global) 0 Offset 0 - MemberDecorate 47($Global) 1 RowMajor - MemberDecorate 47($Global) 1 Offset 16 - MemberDecorate 47($Global) 1 MatrixStride 16 - Decorate 47($Global) Block - Decorate 49 DescriptorSet 0 - Decorate 74(Color) Location 0 + 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: TypePointer Function 6(float) - 9: 6(float) Constant 1092616192 - 11: 6(float) Constant 1093664768 - 13: 6(float) Constant 1094713344 - 15: 6(float) Constant 1095761920 - 17: 6(float) Constant 1096810496 - 19: 6(float) Constant 1097859072 - 21: 6(float) Constant 1101004800 - 23: 6(float) Constant 1101529088 - 25: 6(float) Constant 1102053376 - 27: 6(float) Constant 1102577664 - 29: 6(float) Constant 1103101952 - 31: 6(float) Constant 1103626240 - 32: TypeVector 6(float) 2 - 33: TypePointer Function 32(fvec2) - 35: 32(fvec2) ConstantComposite 9 11 - 37: 32(fvec2) ConstantComposite 13 15 - 39: 32(fvec2) ConstantComposite 17 19 - 41: TypeMatrix 32(fvec2) 3 - 42: 32(fvec2) ConstantComposite 21 23 - 43: 32(fvec2) ConstantComposite 25 27 - 44: 32(fvec2) ConstantComposite 29 31 - 45: 41 ConstantComposite 42 43 44 - 46: TypeInt 32 1 - 47($Global): TypeStruct 46(int) 41 - 48: TypePointer Uniform 47($Global) - 49: 48(ptr) Variable Uniform - 50: 46(int) Constant 0 - 51: TypePointer Uniform 46(int) - 54: TypePointer Function 41 - 59: 46(int) Constant 1 - 62: TypePointer Uniform 32(fvec2) - 65: TypeVector 6(float) 4 - 66(PS_OUTPUT): TypeStruct 65(fvec4) - 67: TypePointer Function 66(PS_OUTPUT) - 71: TypePointer Function 65(fvec4) - 73: TypePointer Output 65(fvec4) - 74(Color): 73(ptr) Variable Output + 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 - 8(e1_00): 7(ptr) Variable Function - 10(e1_01): 7(ptr) Variable Function - 12(e1_10): 7(ptr) Variable Function - 14(e1_11): 7(ptr) Variable Function - 16(e1_20): 7(ptr) Variable Function - 18(e1_21): 7(ptr) Variable Function - 20(e2_00): 7(ptr) Variable Function - 22(e2_01): 7(ptr) Variable Function - 24(e2_10): 7(ptr) Variable Function - 26(e2_11): 7(ptr) Variable Function - 28(e2_20): 7(ptr) Variable Function - 30(e2_21): 7(ptr) Variable Function - 34(r0a): 33(ptr) Variable Function - 36(r1a): 33(ptr) Variable Function - 38(r2a): 33(ptr) Variable Function - 40(r0b): 33(ptr) Variable Function - 55(indexable): 54(ptr) Variable Function - 58(r0c): 33(ptr) Variable Function - 68(psout): 67(ptr) Variable Function - Store 8(e1_00) 9 - Store 10(e1_01) 11 - Store 12(e1_10) 13 - Store 14(e1_11) 15 - Store 16(e1_20) 17 - Store 18(e1_21) 19 - Store 20(e2_00) 21 - Store 22(e2_01) 23 - Store 24(e2_10) 25 - Store 26(e2_11) 27 - Store 28(e2_20) 29 - Store 30(e2_21) 31 - Store 34(r0a) 35 - Store 36(r1a) 37 - Store 38(r2a) 39 - 52: 51(ptr) AccessChain 49 50 - 53: 46(int) Load 52 - Store 55(indexable) 45 - 56: 33(ptr) AccessChain 55(indexable) 53 - 57: 32(fvec2) Load 56 - Store 40(r0b) 57 - 60: 51(ptr) AccessChain 49 50 - 61: 46(int) Load 60 - 63: 62(ptr) AccessChain 49 59 61 - 64: 32(fvec2) Load 63 - Store 58(r0c) 64 - 69: 6(float) Load 26(e2_11) - 70: 65(fvec4) CompositeConstruct 69 69 69 69 - 72: 71(ptr) AccessChain 68(psout) 50 - Store 72 70 - 75: 71(ptr) AccessChain 68(psout) 50 - 76: 65(fvec4) Load 75 - Store 74(Color) 76 + 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 index 8995af35dc..db215a2c00 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.max.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.max.frag.out @@ -1,78 +1,129 @@ hlsl.max.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input1' (layout(location=0 ) in 4-component vector of float) -0:2 'input2' (layout(location=1 ) in 4-component vector of float) +0:2 'input1' ( in 4-component vector of float) +0:2 'input2' ( in 4-component vector of float) 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 max (temp 4-component vector of float) -0:3 'input1' (layout(location=0 ) in 4-component vector of float) -0:3 'input2' (layout(location=1 ) in 4-component vector of float) -0:3 Branch: Return +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) +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: 450 +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 Definition: @PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input1' (layout(location=0 ) in 4-component vector of float) -0:2 'input2' (layout(location=1 ) in 4-component vector of float) +0:2 'input1' ( in 4-component vector of float) +0:2 'input2' ( in 4-component vector of float) 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 max (temp 4-component vector of float) -0:3 'input1' (layout(location=0 ) in 4-component vector of float) -0:3 'input2' (layout(location=1 ) in 4-component vector of float) -0:3 Branch: Return +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) +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): 80001 -// Id's are bound by 17 +// 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" 9 11 13 + EntryPoint Fragment 4 "PixelShaderFunction" 21 24 27 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "@entryPointOutput" - Name 11 "input1" - Name 13 "input2" - Decorate 9(@entryPointOutput) Location 0 - Decorate 11(input1) Location 0 - Decorate 13(input2) Location 1 + 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 Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(input1): 10(ptr) Variable Input - 13(input2): 10(ptr) Variable Input + 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 - 12: 7(fvec4) Load 11(input1) - 14: 7(fvec4) Load 13(input2) - 15: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 12 14 - Store 9(@entryPointOutput) 15 + 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-new/Test/baseResults/hlsl.memberFunCall.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.memberFunCall.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.memberFunCall.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.memberFunCall.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.mintypes.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mintypes.frag.out index 84c7a8c894..8722cf275b 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.mintypes.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.mintypes.frag.out @@ -1,28 +1,28 @@ hlsl.mintypes.frag -Shader version: 450 +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 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: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: @@ -30,47 +30,50 @@ gl_FragCoord origin is upper left 0:47 0.000000 0:47 0.000000 0:47 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) +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: 450 +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 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: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: @@ -78,147 +81,158 @@ gl_FragCoord origin is upper left 0:47 0.000000 0:47 0.000000 0:47 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) +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): 80001 -// Id's are bound by 65 +// 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 + EntryPoint Fragment 4 "main" 64 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 9 "mf16_2" - Name 12 "mf16" - Name 16 "mf10_2" - Name 18 "mf10" - Name 25 "mi16_2" - Name 28 "mi16" - Name 32 "mi12_2" - Name 34 "mi12" - Name 41 "mu16_2" - Name 44 "mu16" - Name 49 "PS_OUTPUT" - MemberName 49(PS_OUTPUT) 0 "Color" - Name 51 "psout" - Name 58 "Color" - Name 62 "$Global" - MemberName 62($Global) 0 "b1a" - MemberName 62($Global) 1 "b1b" - Name 64 "" - Decorate 9(mf16_2) RelaxedPrecision - Decorate 10 RelaxedPrecision - Decorate 12(mf16) RelaxedPrecision - Decorate 13 RelaxedPrecision - Decorate 14 RelaxedPrecision + 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 16(mf10_2) RelaxedPrecision - Decorate 17 RelaxedPrecision - Decorate 18(mf10) RelaxedPrecision + Decorate 17(mf16) RelaxedPrecision + Decorate 18 RelaxedPrecision Decorate 19 RelaxedPrecision Decorate 20 RelaxedPrecision - Decorate 21 RelaxedPrecision - Decorate 25(mi16_2) RelaxedPrecision + Decorate 21(mf10_2) RelaxedPrecision + Decorate 22 RelaxedPrecision + Decorate 23(mf10) RelaxedPrecision + Decorate 24 RelaxedPrecision + Decorate 25 RelaxedPrecision Decorate 26 RelaxedPrecision - Decorate 28(mi16) RelaxedPrecision - Decorate 29 RelaxedPrecision - Decorate 30 RelaxedPrecision + Decorate 30(mi16_2) RelaxedPrecision Decorate 31 RelaxedPrecision - Decorate 32(mi12_2) RelaxedPrecision - Decorate 33 RelaxedPrecision - Decorate 34(mi12) RelaxedPrecision + Decorate 33(mi16) RelaxedPrecision + Decorate 34 RelaxedPrecision Decorate 35 RelaxedPrecision Decorate 36 RelaxedPrecision - Decorate 37 RelaxedPrecision - Decorate 41(mu16_2) RelaxedPrecision + Decorate 37(mi12_2) RelaxedPrecision + Decorate 38 RelaxedPrecision + Decorate 39(mi12) RelaxedPrecision + Decorate 40 RelaxedPrecision + Decorate 41 RelaxedPrecision Decorate 42 RelaxedPrecision - Decorate 44(mu16) RelaxedPrecision - Decorate 45 RelaxedPrecision - Decorate 46 RelaxedPrecision + Decorate 46(mu16_2) RelaxedPrecision Decorate 47 RelaxedPrecision - Decorate 58(Color) Location 0 - MemberDecorate 62($Global) 0 RelaxedPrecision - MemberDecorate 62($Global) 0 Offset 0 - MemberDecorate 62($Global) 1 RelaxedPrecision - MemberDecorate 62($Global) 1 Offset 4 - Decorate 62($Global) Block - Decorate 64 DescriptorSet 0 + 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) 2 - 8: TypePointer Function 7(fvec2) - 11: TypePointer Function 6(float) - 22: TypeInt 32 1 - 23: TypeVector 22(int) 2 - 24: TypePointer Function 23(ivec2) - 27: TypePointer Function 22(int) - 38: TypeInt 32 0 - 39: TypeVector 38(int) 2 - 40: TypePointer Function 39(ivec2) - 43: TypePointer Function 38(int) - 48: TypeVector 6(float) 4 - 49(PS_OUTPUT): TypeStruct 48(fvec4) - 50: TypePointer Function 49(PS_OUTPUT) - 52: 22(int) Constant 0 - 53: 6(float) Constant 0 - 54: 48(fvec4) ConstantComposite 53 53 53 53 - 55: TypePointer Function 48(fvec4) - 57: TypePointer Output 48(fvec4) - 58(Color): 57(ptr) Variable Output - 62($Global): TypeStruct 6(float) 6(float) - 63: TypePointer Uniform 62($Global) - 64: 63(ptr) Variable Uniform + 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 - 9(mf16_2): 8(ptr) Variable Function - 12(mf16): 11(ptr) Variable Function - 16(mf10_2): 8(ptr) Variable Function - 18(mf10): 11(ptr) Variable Function - 25(mi16_2): 24(ptr) Variable Function - 28(mi16): 27(ptr) Variable Function - 32(mi12_2): 24(ptr) Variable Function - 34(mi12): 27(ptr) Variable Function - 41(mu16_2): 40(ptr) Variable Function - 44(mu16): 43(ptr) Variable Function - 51(psout): 50(ptr) Variable Function - 10: 7(fvec2) Load 9(mf16_2) - 13: 6(float) Load 12(mf16) - 14: 7(fvec2) CompositeConstruct 13 13 - 15: 7(fvec2) FAdd 10 14 - 17: 7(fvec2) Load 16(mf10_2) - 19: 6(float) Load 18(mf10) - 20: 7(fvec2) CompositeConstruct 19 19 - 21: 7(fvec2) FAdd 17 20 - 26: 23(ivec2) Load 25(mi16_2) - 29: 22(int) Load 28(mi16) - 30: 23(ivec2) CompositeConstruct 29 29 - 31: 23(ivec2) IAdd 26 30 - 33: 23(ivec2) Load 32(mi12_2) - 35: 22(int) Load 34(mi12) - 36: 23(ivec2) CompositeConstruct 35 35 - 37: 23(ivec2) IAdd 33 36 - 42: 39(ivec2) Load 41(mu16_2) - 45: 38(int) Load 44(mu16) - 46: 39(ivec2) CompositeConstruct 45 45 - 47: 39(ivec2) IAdd 42 46 - 56: 55(ptr) AccessChain 51(psout) 52 - Store 56 54 - 59: 55(ptr) AccessChain 51(psout) 52 - 60: 48(fvec4) Load 59 - Store 58(Color) 60 + 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-new/Test/baseResults/hlsl.mip.negative.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.mip.negative.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.mip.negative.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.mip.negative2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative2.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.mip.negative2.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.mip.negative2.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.mip.operator.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mip.operator.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.mip.operator.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.mip.operator.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.mul-truncate.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mul-truncate.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.mul-truncate.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.mul-truncate.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.multiDescriptorSet.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.multiDescriptorSet.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.multiEntry.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.multiEntry.vert.out index f0d05abd8f..1c7711882e 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.multiEntry.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.multiEntry.vert.out @@ -1,79 +1,98 @@ hlsl.multiEntry.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:4 Function Definition: FakeEntrypoint(u1; (temp 4-component vector of float) +0:4 Function Definition: FakeEntrypoint(u1; ( temp 4-component vector of float) 0:4 Function Parameters: -0:4 'Index' (in uint) +0: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 samplerBuffer) -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 Position) +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 VertexIndex) +0:9 'Index' ( in uint) 0:? Sequence -0:10 Sequence -0:10 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float Position) -0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) -0:10 'Index' (in uint VertexIndex) -0:10 Branch: Return +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:? '@entryPointOutput' (out 4-component vector of float Position) -0:? 'Index' (in uint VertexIndex) -0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) +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: 450 +Shader version: 500 0:? Sequence -0:4 Function Definition: FakeEntrypoint(u1; (temp 4-component vector of float) +0:4 Function Definition: FakeEntrypoint(u1; ( temp 4-component vector of float) 0:4 Function Parameters: -0:4 'Index' (in uint) +0: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 samplerBuffer) -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 Position) +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 VertexIndex) +0:9 'Index' ( in uint) 0:? Sequence -0:10 Sequence -0:10 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float Position) -0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) -0:10 'Index' (in uint VertexIndex) -0:10 Branch: Return +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:? '@entryPointOutput' (out 4-component vector of float Position) -0:? 'Index' (in uint VertexIndex) -0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) +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): 80001 -// Id's are bound by 34 +// 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" 27 29 + EntryPoint Vertex 4 "RealEntrypoint" 34 37 + Source HLSL 500 Name 4 "RealEntrypoint" Name 12 "FakeEntrypoint(u1;" Name 11 "Index" - Name 17 "Position" - Name 27 "@entryPointOutput" - Name 29 "Index" - Name 30 "param" - Decorate 17(Position) DescriptorSet 0 - Decorate 27(@entryPointOutput) BuiltIn Position - Decorate 29(Index) BuiltIn VertexIndex + 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 @@ -81,31 +100,41 @@ Shader version: 450 8: TypeFloat 32 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeImage 8(float) Buffer sampled format:Rgba32f - 15: TypeSampledImage 14 - 16: TypePointer UniformConstant 15 - 17(Position): 16(ptr) Variable UniformConstant - 20: TypeInt 32 1 - 26: TypePointer Output 9(fvec4) -27(@entryPointOutput): 26(ptr) Variable Output - 28: TypePointer Input 6(int) - 29(Index): 28(ptr) Variable Input + 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 - 30(param): 7(ptr) Variable Function - 31: 6(int) Load 29(Index) - Store 30(param) 31 - 32: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 30(param) - Store 27(@entryPointOutput) 32 + 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 - 18: 15 Load 17(Position) - 19: 6(int) Load 11(Index) - 21: 20(int) Bitcast 19 - 22: 14 Image 18 - 23: 9(fvec4) ImageFetch 22 21 - ReturnValue 23 + 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 index 80d7f1661b..695a52c696 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.multiReturn.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.multiReturn.frag.out @@ -1,74 +1,84 @@ hlsl.multiReturn.frag -Shader version: 450 +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 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 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 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: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}) +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) Linked fragment stage: -Shader version: 450 +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 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 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 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: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}) +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 39 +// 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 "S" - MemberName 13(S) 0 "f" - MemberName 13(S) 1 "v" - MemberName 13(S) 2 "m" - Name 14 "bufName" - MemberName 14(bufName) 0 "s" - Name 16 "" - MemberDecorate 13(S) 0 Offset 0 - MemberDecorate 13(S) 1 Offset 16 - MemberDecorate 13(S) 2 RowMajor - MemberDecorate 13(S) 2 Offset 32 - MemberDecorate 13(S) 2 MatrixStride 16 - MemberDecorate 14(bufName) 0 Offset 0 - Decorate 14(bufName) Block - Decorate 16 DescriptorSet 0 + 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 @@ -76,38 +86,43 @@ gl_FragCoord origin is upper left 8: TypeMatrix 7(fvec3) 3 9(S): TypeStruct 6(float) 7(fvec3) 8 10: TypeFunction 9(S) - 13(S): TypeStruct 6(float) 7(fvec3) 8 - 14(bufName): TypeStruct 13(S) - 15: TypePointer Uniform 14(bufName) - 16: 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Uniform 13(S) - 22: TypePointer Function 9(S) - 25: TypePointer Function 6(float) - 28: 17(int) Constant 1 - 29: TypePointer Function 7(fvec3) - 32: 17(int) Constant 2 - 33: TypePointer Function 8 + 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 - 38: 9(S) FunctionCall 11(foo() + 41: 2 FunctionCall 13(@main() Return FunctionEnd 11(foo(): 9(S) Function None 10 12: Label - 23: 22(ptr) Variable Function - 20: 19(ptr) AccessChain 16 18 - 21: 13(S) Load 20 - 24: 6(float) CompositeExtract 21 0 - 26: 25(ptr) AccessChain 23 18 - Store 26 24 - 27: 7(fvec3) CompositeExtract 21 1 - 30: 29(ptr) AccessChain 23 28 - Store 30 27 - 31: 8 CompositeExtract 21 2 - 34: 33(ptr) AccessChain 23 32 - Store 34 31 - 35: 9(S) Load 23 - ReturnValue 35 + 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-new/Test/baseResults/hlsl.namespace.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.namespace.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.namespace.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.namespace.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.noSemantic.functionality1.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.noSemantic.functionality1.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.nonint-index.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.nonint-index.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.nonint-index.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.nonint-index.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out index e8d3630ed2..b1fa856faa 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -1,225 +1,292 @@ hlsl.numericsuffixes.frag -Shader version: 450 +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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp uint) +0:15 'r08' ( temp uint) 0:15 Constant: 0:15 58 (const uint) -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 'ps_output' (temp structure{temp 4-component vector of float color}) +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 0 (const int) -0:18 Construct vec4 (temp 4-component vector of float) -0:18 Convert int to float (temp float) -0:18 'r07' (temp int) +0:18 1.100000 0:19 Sequence -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:19 color: direct index for structure (temp 4-component vector of float) -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) -0:19 Constant: -0:19 0 (const int) -0:19 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp uint) +0:15 'r08' ( temp uint) 0:15 Constant: 0:15 58 (const uint) -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 'ps_output' (temp structure{temp 4-component vector of float color}) +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 0 (const int) -0:18 Construct vec4 (temp 4-component vector of float) -0:18 Convert int to float (temp float) -0:18 'r07' (temp int) +0:18 1.100000 0:19 Sequence -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:19 color: direct index for structure (temp 4-component vector of float) -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) -0:19 Constant: -0:19 0 (const int) -0:19 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 44 +// 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" 40 + EntryPoint Fragment 4 "main" 51 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 12 "r01" - Name 14 "r02" - Name 16 "r03" - Name 18 "r04" - Name 21 "r05" - Name 23 "r06" - Name 25 "r07" - Name 27 "r08" - Name 30 "PS_OUTPUT" - MemberName 30(PS_OUTPUT) 0 "color" - Name 32 "ps_output" - Name 40 "color" - Decorate 40(color) Location 0 + 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: TypePointer Function 6(float) - 9: 6(float) Constant 1065353216 - 10: TypeInt 32 0 - 11: TypePointer Function 10(int) - 13: 10(int) Constant 1 - 15: 10(int) Constant 2 - 17: 10(int) Constant 2748 - 19: TypeInt 32 1 - 20: TypePointer Function 19(int) - 22: 19(int) Constant 5 - 24: 19(int) Constant 6 - 26: 19(int) Constant 57 - 28: 10(int) Constant 58 - 29: TypeVector 6(float) 4 - 30(PS_OUTPUT): TypeStruct 29(fvec4) - 31: TypePointer Function 30(PS_OUTPUT) - 33: 19(int) Constant 0 - 37: TypePointer Function 29(fvec4) - 39: TypePointer Output 29(fvec4) - 40(color): 39(ptr) Variable Output + 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 - 8(r00): 7(ptr) Variable Function - 12(r01): 11(ptr) Variable Function - 14(r02): 11(ptr) Variable Function - 16(r03): 11(ptr) Variable Function - 18(r04): 11(ptr) Variable Function - 21(r05): 20(ptr) Variable Function - 23(r06): 20(ptr) Variable Function - 25(r07): 20(ptr) Variable Function - 27(r08): 11(ptr) Variable Function - 32(ps_output): 31(ptr) Variable Function - Store 8(r00) 9 - Store 12(r01) 13 - Store 14(r02) 15 - Store 16(r03) 17 - Store 18(r04) 17 - Store 21(r05) 22 - Store 23(r06) 24 - Store 25(r07) 26 - Store 27(r08) 28 - 34: 19(int) Load 25(r07) - 35: 6(float) ConvertSToF 34 - 36: 29(fvec4) CompositeConstruct 35 35 35 35 - 38: 37(ptr) AccessChain 32(ps_output) 33 - Store 38 36 - 41: 37(ptr) AccessChain 32(ps_output) 33 - 42: 29(fvec4) Load 41 - Store 40(color) 42 + 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 index 76e95c8f86..fd7de34b17 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.numthreads.comp.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.numthreads.comp.out @@ -1,56 +1,84 @@ hlsl.numthreads.comp -Shader version: 450 -local_size = (4, 4, 2) +Shader version: 500 +local_size = (1, 4, 8) 0:? Sequence -0:4 Function Definition: main(vu3; (temp void) +0:4 Function Definition: main(vu3; ( temp void) 0:4 Function Parameters: -0:4 'tid' (in 3-component vector of uint) -0:9 Function Definition: main_aux1(vu3; (temp void) +0: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 LocalInvocationID) +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 LocalInvocationID) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) Linked compute stage: -Shader version: 450 -local_size = (4, 4, 2) +Shader version: 500 +local_size = (1, 4, 8) 0:? Sequence -0:4 Function Definition: main(vu3; (temp void) +0:4 Function Definition: main(vu3; ( temp void) 0:4 Function Parameters: -0:4 'tid' (in 3-component vector of uint) -0:9 Function Definition: main_aux1(vu3; (temp void) +0: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 LocalInvocationID) +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 LocalInvocationID) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 15 +// 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_aux1" 14 - ExecutionMode 4 LocalSize 4 4 2 - Name 4 "main_aux1" + 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 "tid" - Decorate 14(tid) BuiltIn LocalInvocationId + 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) - 13: TypePointer Input 7(ivec3) - 14(tid): 13(ptr) Variable Input - 4(main_aux1): 2 Function None 3 + 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 @@ -58,3 +86,8 @@ local_size = (4, 4, 2) 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-new/Test/baseResults/hlsl.opaque-type-bug.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.opaque-type-bug.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.overload.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.overload.frag.out index 4eed1a3fc5..5960d3d589 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.overload.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.overload.frag.out @@ -1,734 +1,749 @@ hlsl.overload.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1(d1;b1; (temp void) +0:2 Function Definition: foo1(d1;b1; ( temp void) 0:2 Function Parameters: -0:2 'a' (in double) -0:2 'b' (in bool) -0:3 Function Definition: foo1(d1;u1; (temp void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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' (layout(location=0 ) in 4-component vector of float) +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 Sequence -0:141 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:141 'input' (layout(location=0 ) in 4-component vector of float) -0:141 Branch: Return +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) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1(d1;b1; (temp void) +0:2 Function Definition: foo1(d1;b1; ( temp void) 0:2 Function Parameters: -0:2 'a' (in double) -0:2 'b' (in bool) -0:3 Function Definition: foo1(d1;u1; (temp void) +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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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' (layout(location=0 ) in 4-component vector of float) +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 Sequence -0:141 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:141 'input' (layout(location=0 ) in 4-component vector of float) -0:141 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 509 +// 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" 504 506 + EntryPoint Fragment 4 "PixelShaderFunction" 513 516 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 13 "foo1(d1;b1;" Name 11 "a" @@ -804,22 +819,22 @@ gl_FragCoord origin is upper left Name 143 "" Name 147 "foo15(vb1;" Name 146 "" - Name 149 "d" - Name 150 "b" - Name 151 "param" - Name 153 "param" - Name 156 "param" - Name 158 "param" - Name 161 "u" + 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 "i" + Name 167 "u" Name 168 "param" Name 170 "param" - Name 173 "f" + Name 173 "i" Name 174 "param" Name 176 "param" - Name 181 "param" + Name 179 "f" + Name 180 "param" Name 182 "param" Name 187 "param" Name 188 "param" @@ -859,66 +874,70 @@ gl_FragCoord origin is upper left Name 290 "param" Name 295 "param" Name 296 "param" - Name 299 "param" Name 301 "param" - Name 304 "param" - Name 306 "param" - Name 309 "param" - Name 311 "param" - Name 314 "param" - Name 316 "param" - Name 319 "param" - Name 321 "param" - Name 324 "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 335 "param" - Name 339 "param" - Name 344 "param" - Name 349 "param" - Name 353 "param" + Name 336 "param" + Name 341 "param" + Name 345 "param" + Name 350 "param" Name 355 "param" - Name 360 "param" - Name 364 "param" + Name 359 "param" + Name 361 "param" + Name 366 "param" Name 370 "param" - Name 374 "param" - Name 378 "param" + Name 376 "param" Name 380 "param" - Name 385 "param" - Name 390 "param" - Name 394 "param" - Name 398 "param" - Name 402 "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 412 "param" - Name 417 "param" - Name 421 "param" - Name 425 "param" - Name 429 "param" - Name 433 "param" - Name 437 "param" - Name 441 "param" - Name 445 "param" - Name 449 "param" - Name 453 "param" - Name 457 "param" - Name 461 "param" - Name 465 "param" - Name 469 "param" - Name 474 "param" - Name 481 "param" - Name 485 "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 494 "param" + Name 497 "param" Name 500 "param" - Name 504 "@entryPointOutput" - Name 506 "input" - Decorate 504(@entryPointOutput) Location 0 - Decorate 506(input) Location 0 + 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(float) + 7: TypePointer Function 6(float64_t) 8: TypeBool 9: TypePointer Function 8(bool) 10: TypeFunction 2 7(ptr) 9(ptr) @@ -948,476 +967,40 @@ gl_FragCoord origin is upper left 113: TypeVector 22(int) 3 114: TypePointer Function 113(ivec3) 115: TypeFunction 2 114(ptr) - 125: TypeVector 6(float) 3 - 126: TypePointer Function 125(fvec3) + 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) - 328: 6(float) Constant 0 0 - 333: 15(int) Constant 0 - 342: 29(float) Constant 0 - 347: 15(int) Constant 1 - 367: 22(int) Constant 0 - 368: 22(int) Constant 1 - 388: 29(float) Constant 1065353216 - 408: 6(float) Constant 0 1072693248 - 478: TypeVector 22(int) 2 - 488: TypeVector 22(int) 4 - 497: TypeVector 8(bool) 3 - 502: TypeVector 29(float) 4 - 503: TypePointer Output 502(fvec4) -504(@entryPointOutput): 503(ptr) Variable Output - 505: TypePointer Input 502(fvec4) - 506(input): 505(ptr) Variable Input + 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 - 149(d): 7(ptr) Variable Function - 150(b): 9(ptr) Variable Function - 151(param): 7(ptr) Variable Function - 153(param): 9(ptr) Variable Function - 156(param): 7(ptr) Variable Function - 158(param): 7(ptr) Variable Function - 161(u): 16(ptr) Variable Function - 162(param): 7(ptr) Variable Function - 164(param): 16(ptr) Variable Function - 167(i): 23(ptr) Variable Function - 168(param): 7(ptr) Variable Function - 170(param): 23(ptr) Variable Function - 173(f): 30(ptr) Variable Function - 174(param): 7(ptr) Variable Function - 176(param): 30(ptr) Variable Function - 181(param): 7(ptr) Variable Function - 182(param): 9(ptr) Variable Function - 187(param): 7(ptr) Variable Function - 188(param): 7(ptr) Variable Function - 193(param): 7(ptr) Variable Function - 194(param): 16(ptr) Variable Function - 199(param): 7(ptr) Variable Function - 200(param): 23(ptr) Variable Function - 205(param): 7(ptr) Variable Function - 206(param): 30(ptr) Variable Function - 211(param): 7(ptr) Variable Function - 212(param): 9(ptr) Variable Function - 217(param): 7(ptr) Variable Function - 218(param): 7(ptr) Variable Function - 223(param): 7(ptr) Variable Function - 224(param): 16(ptr) Variable Function - 229(param): 7(ptr) Variable Function - 230(param): 23(ptr) Variable Function - 235(param): 7(ptr) Variable Function - 236(param): 30(ptr) Variable Function - 241(param): 7(ptr) Variable Function - 242(param): 9(ptr) Variable Function - 247(param): 7(ptr) Variable Function - 248(param): 7(ptr) Variable Function - 253(param): 7(ptr) Variable Function - 254(param): 16(ptr) Variable Function - 259(param): 7(ptr) Variable Function - 260(param): 23(ptr) Variable Function - 265(param): 7(ptr) Variable Function - 266(param): 30(ptr) Variable Function - 271(param): 23(ptr) Variable Function - 272(param): 9(ptr) Variable Function - 277(param): 23(ptr) Variable Function - 278(param): 7(ptr) Variable Function - 283(param): 23(ptr) Variable Function - 284(param): 16(ptr) Variable Function - 289(param): 23(ptr) Variable Function - 290(param): 23(ptr) Variable Function - 295(param): 23(ptr) Variable Function - 296(param): 30(ptr) Variable Function - 299(param): 23(ptr) Variable Function - 301(param): 9(ptr) Variable Function - 304(param): 23(ptr) Variable Function - 306(param): 7(ptr) Variable Function - 309(param): 23(ptr) Variable Function - 311(param): 16(ptr) Variable Function - 314(param): 23(ptr) Variable Function - 316(param): 23(ptr) Variable Function - 319(param): 23(ptr) Variable Function - 321(param): 30(ptr) Variable Function - 324(param): 9(ptr) Variable Function - 330(param): 9(ptr) Variable Function - 335(param): 9(ptr) Variable Function - 339(param): 9(ptr) Variable Function - 344(param): 9(ptr) Variable Function - 349(param): 16(ptr) Variable Function - 353(param): 16(ptr) Variable Function - 355(param): 16(ptr) Variable Function - 360(param): 16(ptr) Variable Function - 364(param): 16(ptr) Variable Function - 370(param): 23(ptr) Variable Function - 374(param): 23(ptr) Variable Function - 378(param): 23(ptr) Variable Function - 380(param): 23(ptr) Variable Function - 385(param): 23(ptr) Variable Function - 390(param): 30(ptr) Variable Function - 394(param): 30(ptr) Variable Function - 398(param): 30(ptr) Variable Function - 402(param): 30(ptr) Variable Function - 404(param): 30(ptr) Variable Function - 410(param): 7(ptr) Variable Function - 412(param): 7(ptr) Variable Function - 417(param): 7(ptr) Variable Function - 421(param): 7(ptr) Variable Function - 425(param): 7(ptr) Variable Function - 429(param): 30(ptr) Variable Function - 433(param): 30(ptr) Variable Function - 437(param): 30(ptr) Variable Function - 441(param): 23(ptr) Variable Function - 445(param): 16(ptr) Variable Function - 449(param): 16(ptr) Variable Function - 453(param): 23(ptr) Variable Function - 457(param): 23(ptr) Variable Function - 461(param): 23(ptr) Variable Function - 465(param): 16(ptr) Variable Function - 469(param): 7(ptr) Variable Function - 474(param): 126(ptr) Variable Function - 481(param): 135(ptr) Variable Function - 485(param): 105(ptr) Variable Function - 491(param): 23(ptr) Variable Function - 494(param): 9(ptr) Variable Function - 500(param): 9(ptr) Variable Function - 152: 6(float) Load 149(d) - Store 151(param) 152 - 154: 8(bool) Load 150(b) - Store 153(param) 154 - 155: 2 FunctionCall 13(foo1(d1;b1;) 151(param) 153(param) - 157: 6(float) Load 149(d) - Store 156(param) 157 - 159: 6(float) Load 149(d) - Store 158(param) 159 - 160: 2 FunctionCall 39(foo1(d1;d1;) 156(param) 158(param) - 163: 6(float) Load 149(d) - Store 162(param) 163 - 165: 15(int) Load 161(u) - Store 164(param) 165 - 166: 2 FunctionCall 20(foo1(d1;u1;) 162(param) 164(param) - 169: 6(float) Load 149(d) - Store 168(param) 169 - 171: 22(int) Load 167(i) - Store 170(param) 171 - 172: 2 FunctionCall 27(foo1(d1;i1;) 168(param) 170(param) - 175: 6(float) Load 149(d) - Store 174(param) 175 - 177: 29(float) Load 173(f) - Store 176(param) 177 - 178: 2 FunctionCall 34(foo1(d1;f1;) 174(param) 176(param) - 179: 29(float) Load 173(f) - 180: 6(float) FConvert 179 - Store 181(param) 180 - 183: 8(bool) Load 150(b) - Store 182(param) 183 - 184: 2 FunctionCall 13(foo1(d1;b1;) 181(param) 182(param) - 185: 29(float) Load 173(f) - 186: 6(float) FConvert 185 - Store 187(param) 186 - 189: 6(float) Load 149(d) - Store 188(param) 189 - 190: 2 FunctionCall 39(foo1(d1;d1;) 187(param) 188(param) - 191: 29(float) Load 173(f) - 192: 6(float) FConvert 191 - Store 193(param) 192 - 195: 15(int) Load 161(u) - Store 194(param) 195 - 196: 2 FunctionCall 20(foo1(d1;u1;) 193(param) 194(param) - 197: 29(float) Load 173(f) - 198: 6(float) FConvert 197 - Store 199(param) 198 - 201: 22(int) Load 167(i) - Store 200(param) 201 - 202: 2 FunctionCall 27(foo1(d1;i1;) 199(param) 200(param) - 203: 29(float) Load 173(f) - 204: 6(float) FConvert 203 - Store 205(param) 204 - 207: 29(float) Load 173(f) - Store 206(param) 207 - 208: 2 FunctionCall 34(foo1(d1;f1;) 205(param) 206(param) - 209: 15(int) Load 161(u) - 210: 6(float) ConvertUToF 209 - Store 211(param) 210 - 213: 8(bool) Load 150(b) - Store 212(param) 213 - 214: 2 FunctionCall 13(foo1(d1;b1;) 211(param) 212(param) - 215: 15(int) Load 161(u) - 216: 6(float) ConvertUToF 215 - Store 217(param) 216 - 219: 6(float) Load 149(d) - Store 218(param) 219 - 220: 2 FunctionCall 39(foo1(d1;d1;) 217(param) 218(param) - 221: 15(int) Load 161(u) - 222: 6(float) ConvertUToF 221 - Store 223(param) 222 - 225: 15(int) Load 161(u) - Store 224(param) 225 - 226: 2 FunctionCall 20(foo1(d1;u1;) 223(param) 224(param) - 227: 15(int) Load 161(u) - 228: 6(float) ConvertUToF 227 - Store 229(param) 228 - 231: 22(int) Load 167(i) - Store 230(param) 231 - 232: 2 FunctionCall 27(foo1(d1;i1;) 229(param) 230(param) - 233: 15(int) Load 161(u) - 234: 6(float) ConvertUToF 233 - Store 235(param) 234 - 237: 29(float) Load 173(f) - Store 236(param) 237 - 238: 2 FunctionCall 34(foo1(d1;f1;) 235(param) 236(param) - 239: 22(int) Load 167(i) - 240: 6(float) ConvertSToF 239 - Store 241(param) 240 - 243: 8(bool) Load 150(b) - Store 242(param) 243 - 244: 2 FunctionCall 13(foo1(d1;b1;) 241(param) 242(param) - 245: 22(int) Load 167(i) - 246: 6(float) ConvertSToF 245 - Store 247(param) 246 - 249: 6(float) Load 149(d) - Store 248(param) 249 - 250: 2 FunctionCall 39(foo1(d1;d1;) 247(param) 248(param) - 251: 22(int) Load 167(i) - 252: 6(float) ConvertSToF 251 - Store 253(param) 252 - 255: 15(int) Load 161(u) - Store 254(param) 255 - 256: 2 FunctionCall 20(foo1(d1;u1;) 253(param) 254(param) - 257: 22(int) Load 167(i) - 258: 6(float) ConvertSToF 257 - Store 259(param) 258 - 261: 22(int) Load 167(i) - Store 260(param) 261 - 262: 2 FunctionCall 27(foo1(d1;i1;) 259(param) 260(param) - 263: 22(int) Load 167(i) - 264: 6(float) ConvertSToF 263 - Store 265(param) 264 - 267: 29(float) Load 173(f) - Store 266(param) 267 - 268: 2 FunctionCall 34(foo1(d1;f1;) 265(param) 266(param) - 269: 15(int) Load 161(u) - 270: 22(int) Bitcast 269 - Store 271(param) 270 - 273: 8(bool) Load 150(b) - Store 272(param) 273 - 274: 2 FunctionCall 44(foo2(i1;b1;) 271(param) 272(param) - 275: 15(int) Load 161(u) - 276: 22(int) Bitcast 275 - Store 277(param) 276 - 279: 6(float) Load 149(d) - Store 278(param) 279 - 280: 2 FunctionCall 64(foo2(i1;d1;) 277(param) 278(param) - 281: 15(int) Load 161(u) - 282: 22(int) Bitcast 281 - Store 283(param) 282 - 285: 15(int) Load 161(u) - Store 284(param) 285 - 286: 2 FunctionCall 49(foo2(i1;u1;) 283(param) 284(param) - 287: 15(int) Load 161(u) - 288: 22(int) Bitcast 287 - Store 289(param) 288 - 291: 22(int) Load 167(i) - Store 290(param) 291 - 292: 2 FunctionCall 54(foo2(i1;i1;) 289(param) 290(param) - 293: 15(int) Load 161(u) - 294: 22(int) Bitcast 293 - Store 295(param) 294 - 297: 29(float) Load 173(f) - Store 296(param) 297 - 298: 2 FunctionCall 59(foo2(i1;f1;) 295(param) 296(param) - 300: 22(int) Load 167(i) - Store 299(param) 300 - 302: 8(bool) Load 150(b) - Store 301(param) 302 - 303: 2 FunctionCall 44(foo2(i1;b1;) 299(param) 301(param) - 305: 22(int) Load 167(i) - Store 304(param) 305 - 307: 6(float) Load 149(d) - Store 306(param) 307 - 308: 2 FunctionCall 64(foo2(i1;d1;) 304(param) 306(param) - 310: 22(int) Load 167(i) - Store 309(param) 310 - 312: 15(int) Load 161(u) - Store 311(param) 312 - 313: 2 FunctionCall 49(foo2(i1;u1;) 309(param) 311(param) - 315: 22(int) Load 167(i) - Store 314(param) 315 - 317: 22(int) Load 167(i) - Store 316(param) 317 - 318: 2 FunctionCall 54(foo2(i1;i1;) 314(param) 316(param) - 320: 22(int) Load 167(i) - Store 319(param) 320 - 322: 29(float) Load 173(f) - Store 321(param) 322 - 323: 2 FunctionCall 59(foo2(i1;f1;) 319(param) 321(param) - 325: 8(bool) Load 150(b) - Store 324(param) 325 - 326: 2 FunctionCall 68(foo3(b1;) 324(param) - 327: 6(float) Load 149(d) - 329: 8(bool) FOrdNotEqual 327 328 - Store 330(param) 329 - 331: 2 FunctionCall 68(foo3(b1;) 330(param) - 332: 15(int) Load 161(u) - 334: 8(bool) INotEqual 332 333 - Store 335(param) 334 - 336: 2 FunctionCall 68(foo3(b1;) 335(param) - 337: 22(int) Load 167(i) - 338: 8(bool) INotEqual 337 333 - Store 339(param) 338 - 340: 2 FunctionCall 68(foo3(b1;) 339(param) - 341: 29(float) Load 173(f) - 343: 8(bool) FOrdNotEqual 341 342 - Store 344(param) 343 - 345: 2 FunctionCall 68(foo3(b1;) 344(param) - 346: 8(bool) Load 150(b) - 348: 15(int) Select 346 347 333 - Store 349(param) 348 - 350: 2 FunctionCall 72(foo4(u1;) 349(param) - 351: 6(float) Load 149(d) - 352: 15(int) ConvertFToU 351 - Store 353(param) 352 - 354: 2 FunctionCall 72(foo4(u1;) 353(param) - 356: 15(int) Load 161(u) - Store 355(param) 356 - 357: 2 FunctionCall 72(foo4(u1;) 355(param) - 358: 22(int) Load 167(i) - 359: 15(int) Bitcast 358 - Store 360(param) 359 - 361: 2 FunctionCall 72(foo4(u1;) 360(param) - 362: 29(float) Load 173(f) - 363: 15(int) ConvertFToU 362 - Store 364(param) 363 - 365: 2 FunctionCall 72(foo4(u1;) 364(param) - 366: 8(bool) Load 150(b) - 369: 22(int) Select 366 368 367 - Store 370(param) 369 - 371: 2 FunctionCall 76(foo5(i1;) 370(param) - 372: 6(float) Load 149(d) - 373: 22(int) ConvertFToS 372 - Store 374(param) 373 - 375: 2 FunctionCall 76(foo5(i1;) 374(param) - 376: 15(int) Load 161(u) - 377: 22(int) Bitcast 376 - Store 378(param) 377 - 379: 2 FunctionCall 76(foo5(i1;) 378(param) - 381: 22(int) Load 167(i) - Store 380(param) 381 - 382: 2 FunctionCall 76(foo5(i1;) 380(param) - 383: 29(float) Load 173(f) - 384: 22(int) ConvertFToS 383 - Store 385(param) 384 - 386: 2 FunctionCall 76(foo5(i1;) 385(param) - 387: 8(bool) Load 150(b) - 389: 29(float) Select 387 388 342 - Store 390(param) 389 - 391: 2 FunctionCall 80(foo6(f1;) 390(param) - 392: 6(float) Load 149(d) - 393: 29(float) FConvert 392 - Store 394(param) 393 - 395: 2 FunctionCall 80(foo6(f1;) 394(param) - 396: 15(int) Load 161(u) - 397: 29(float) ConvertUToF 396 - Store 398(param) 397 - 399: 2 FunctionCall 80(foo6(f1;) 398(param) - 400: 22(int) Load 167(i) - 401: 29(float) ConvertSToF 400 - Store 402(param) 401 - 403: 2 FunctionCall 80(foo6(f1;) 402(param) - 405: 29(float) Load 173(f) - Store 404(param) 405 - 406: 2 FunctionCall 80(foo6(f1;) 404(param) - 407: 8(bool) Load 150(b) - 409: 6(float) Select 407 408 328 - Store 410(param) 409 - 411: 2 FunctionCall 84(foo7(d1;) 410(param) - 413: 6(float) Load 149(d) - Store 412(param) 413 - 414: 2 FunctionCall 84(foo7(d1;) 412(param) - 415: 15(int) Load 161(u) - 416: 6(float) ConvertUToF 415 - Store 417(param) 416 - 418: 2 FunctionCall 84(foo7(d1;) 417(param) - 419: 22(int) Load 167(i) - 420: 6(float) ConvertSToF 419 - Store 421(param) 420 - 422: 2 FunctionCall 84(foo7(d1;) 421(param) - 423: 29(float) Load 173(f) - 424: 6(float) FConvert 423 - Store 425(param) 424 - 426: 2 FunctionCall 84(foo7(d1;) 425(param) - 427: 8(bool) Load 150(b) - 428: 29(float) Select 427 388 342 - Store 429(param) 428 - 430: 2 FunctionCall 87(foo8(f1;) 429(param) - 431: 15(int) Load 161(u) - 432: 29(float) ConvertUToF 431 - Store 433(param) 432 - 434: 2 FunctionCall 87(foo8(f1;) 433(param) - 435: 22(int) Load 167(i) - 436: 29(float) ConvertSToF 435 - Store 437(param) 436 - 438: 2 FunctionCall 87(foo8(f1;) 437(param) - 439: 8(bool) Load 150(b) - 440: 22(int) Select 439 368 367 - Store 441(param) 440 - 442: 2 FunctionCall 93(foo9(i1;) 441(param) - 443: 29(float) Load 173(f) - 444: 15(int) ConvertFToU 443 - Store 445(param) 444 - 446: 2 FunctionCall 96(foo9(u1;) 445(param) - 447: 6(float) Load 149(d) - 448: 15(int) ConvertFToU 447 - Store 449(param) 448 - 450: 2 FunctionCall 96(foo9(u1;) 449(param) - 451: 15(int) Load 161(u) - 452: 22(int) Bitcast 451 - Store 453(param) 452 - 454: 2 FunctionCall 102(foo10(i1;) 453(param) - 455: 29(float) Load 173(f) - 456: 22(int) ConvertFToS 455 - Store 457(param) 456 - 458: 2 FunctionCall 102(foo10(i1;) 457(param) - 459: 6(float) Load 149(d) - 460: 22(int) ConvertFToS 459 - Store 461(param) 460 - 462: 2 FunctionCall 102(foo10(i1;) 461(param) - 463: 8(bool) Load 150(b) - 464: 15(int) Select 463 347 333 - Store 465(param) 464 - 466: 2 FunctionCall 120(foo11(u1;) 465(param) - 467: 29(float) Load 173(f) - 468: 6(float) FConvert 467 - Store 469(param) 468 - 470: 2 FunctionCall 111(foo11(d1;) 469(param) - 471: 29(float) Load 173(f) - 472: 104(fvec3) CompositeConstruct 471 471 471 - 473: 125(fvec3) FConvert 472 - Store 474(param) 473 - 475: 2 FunctionCall 129(foo12(vd3;) 474(param) - 476: 22(int) Load 167(i) - 477: 22(int) Load 167(i) - 479: 478(ivec2) CompositeConstruct 476 477 - 480: 134(ivec2) Bitcast 479 - Store 481(param) 480 - 482: 2 FunctionCall 138(foo16(vu2;) 481(param) - 483: 29(float) Load 173(f) - 484: 104(fvec3) CompositeConstruct 483 483 483 - Store 485(param) 484 - 486: 2 FunctionCall 141(foo13(vf3;) 485(param) - 487: 22(int) Load 167(i) - 489: 488(ivec4) CompositeConstruct 487 487 487 487 - 490: 22(int) CompositeExtract 489 0 - Store 491(param) 490 - 492: 2 FunctionCall 144(foo14(vi1;) 491(param) - 493: 8(bool) Load 150(b) - Store 494(param) 493 - 495: 2 FunctionCall 147(foo15(vb1;) 494(param) - 496: 8(bool) Load 150(b) - 498: 497(bvec3) CompositeConstruct 496 496 496 - 499: 8(bool) CompositeExtract 498 0 - Store 500(param) 499 - 501: 2 FunctionCall 147(foo15(vb1;) 500(param) - 507: 502(fvec4) Load 506(input) - Store 504(@entryPointOutput) 507 + 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 @@ -1590,3 +1173,453 @@ gl_FragCoord origin is upper left 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-new/Test/baseResults/hlsl.params.default.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.params.default.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.params.default.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.params.default.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.params.default.negative.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.params.default.negative.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.params.default.negative.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.params.default.negative.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.partialFlattenLocal.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.partialFlattenMixed.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.partialFlattenMixed.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.partialInit.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.partialInit.frag.out index 5bf838a4a5..350a745724 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.partialInit.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.partialInit.frag.out @@ -1,29 +1,32 @@ hlsl.partialInit.frag -Shader version: 450 +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 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 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 Definition: @PixelShaderFunction(vf4; ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) 0:18 Function Parameters: -0:18 'input' (layout(location=0 ) in 4-component vector of float) +0: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 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 @@ -32,20 +35,20 @@ gl_FragCoord origin is upper left 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 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 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 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 @@ -55,8 +58,8 @@ gl_FragCoord origin is upper left 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 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 @@ -65,8 +68,8 @@ gl_FragCoord origin is upper left 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 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 @@ -75,18 +78,18 @@ gl_FragCoord origin is upper left 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 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 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 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 @@ -109,70 +112,121 @@ gl_FragCoord origin is upper left 0:26 0.000000 0:26 false (const bool) 0:28 Sequence -0:28 Sequence -0:28 move second child to first child (temp int) -0:? 'a' (layout(location=0 ) out int) -0:28 a: direct index for structure (temp int) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 0 (const int) -0:28 move second child to first child (temp float) -0:? 'b' (layout(location=1 ) out float) -0:28 b: direct index for structure (temp float) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 1 (const int) -0:28 move second child to first child (temp bool) -0:? 'c' (layout(location=2 ) out bool) -0:28 c: direct index for structure (temp bool) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 2 (const int) -0:28 move second child to first child (temp 4-component vector of float) -0:? 'v' (layout(location=3 ) out 4-component vector of float) -0:28 v: direct index for structure (temp 4-component vector of float) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 3 (const int) -0:28 Branch: Return +0: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:? 'a' (layout(location=0 ) out int) -0:? 'b' (layout(location=1 ) out float) -0:? 'c' (layout(location=2 ) out bool) -0:? 'v' (layout(location=3 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'gv' (global 4-component vector of float) -0:? 'gfa' (global 3-element array of float) +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: 450 +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 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 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 Definition: @PixelShaderFunction(vf4; ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) 0:18 Function Parameters: -0:18 'input' (layout(location=0 ) in 4-component vector of float) +0: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 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 @@ -181,20 +235,20 @@ gl_FragCoord origin is upper left 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 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 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 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 @@ -204,8 +258,8 @@ gl_FragCoord origin is upper left 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 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 @@ -214,8 +268,8 @@ gl_FragCoord origin is upper left 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 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 @@ -224,18 +278,18 @@ gl_FragCoord origin is upper left 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 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 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 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 @@ -258,161 +312,256 @@ gl_FragCoord origin is upper left 0:26 0.000000 0:26 false (const bool) 0:28 Sequence -0:28 Sequence -0:28 move second child to first child (temp int) -0:? 'a' (layout(location=0 ) out int) -0:28 a: direct index for structure (temp int) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 0 (const int) -0:28 move second child to first child (temp float) -0:? 'b' (layout(location=1 ) out float) -0:28 b: direct index for structure (temp float) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 1 (const int) -0:28 move second child to first child (temp bool) -0:? 'c' (layout(location=2 ) out bool) -0:28 c: direct index for structure (temp bool) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 2 (const int) -0:28 move second child to first child (temp 4-component vector of float) -0:? 'v' (layout(location=3 ) out 4-component vector of float) -0:28 v: direct index for structure (temp 4-component vector of float) -0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:28 Constant: -0:28 3 (const int) -0:28 Branch: Return +0: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:? 'a' (layout(location=0 ) out int) -0:? 'b' (layout(location=1 ) out float) -0:? 'c' (layout(location=2 ) out bool) -0:? 'v' (layout(location=3 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'gv' (global 4-component vector of float) -0:? 'gfa' (global 3-element array of float) +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): 80001 -// Id's are bound by 75 +// 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" 54 59 65 69 74 + EntryPoint Fragment 4 "PixelShaderFunction" 80 87 91 95 99 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "gv" - Name 17 "gfa" - Name 21 "outs" - MemberName 21(outs) 0 "a" - MemberName 21(outs) 1 "b" - MemberName 21(outs) 2 "c" - MemberName 21(outs) 3 "v" - Name 23 "o2" - Name 28 "o4" - Name 37 "o1" - Name 40 "o3" - Name 47 "Nest" - MemberName 47(Nest) 0 "m" - MemberName 47(Nest) 1 "os" - MemberName 47(Nest) 2 "b" - Name 49 "nest" - Name 54 "a" - Name 59 "b" - Name 65 "c" - Name 69 "v" - Name 74 "input" - Decorate 54(a) Location 0 - Decorate 59(b) Location 1 - Decorate 65(c) Location 2 - Decorate 69(v) Location 3 - Decorate 74(input) Location 0 + 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 Private 7(fvec4) - 9(gv): 8(ptr) Variable Private - 10: 6(float) Constant 0 - 11: 6(float) Constant 1065353216 - 12: 7(fvec4) ConstantComposite 10 10 11 10 - 13: TypeInt 32 0 - 14: 13(int) Constant 3 - 15: TypeArray 6(float) 14 - 16: TypePointer Private 15 - 17(gfa): 16(ptr) Variable Private - 18: 15 ConstantComposite 10 10 10 - 19: TypeInt 32 1 - 20: TypeBool - 21(outs): TypeStruct 19(int) 6(float) 20(bool) 7(fvec4) - 22: TypePointer Function 21(outs) - 24: 19(int) Constant 3 - 25: 20(bool) ConstantFalse - 26: 7(fvec4) ConstantComposite 10 10 10 10 - 27: 21(outs) ConstantComposite 24 10 25 26 - 30: 19(int) Constant 2 - 31: TypePointer Private 6(float) - 35: TypePointer Function 7(fvec4) - 38: 19(int) Constant 0 - 39: 21(outs) ConstantComposite 38 10 25 26 - 41: TypePointer Function 20(bool) - 45: TypeVector 6(float) 3 - 46: TypeMatrix 45(fvec3) 4 - 47(Nest): TypeStruct 46 21(outs) 20(bool) - 48: TypePointer Function 47(Nest) - 50: 45(fvec3) ConstantComposite 10 10 10 - 51: 46 ConstantComposite 50 50 50 50 - 52: 47(Nest) ConstantComposite 51 39 25 - 53: TypePointer Output 19(int) - 54(a): 53(ptr) Variable Output - 55: TypePointer Function 19(int) - 58: TypePointer Output 6(float) - 59(b): 58(ptr) Variable Output - 60: 19(int) Constant 1 - 61: TypePointer Function 6(float) - 64: TypePointer Output 20(bool) - 65(c): 64(ptr) Variable Output - 68: TypePointer Output 7(fvec4) - 69(v): 68(ptr) Variable Output - 73: TypePointer Input 7(fvec4) - 74(input): 73(ptr) Variable Input + 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 - 23(o2): 22(ptr) Variable Function - 28(o4): 22(ptr) Variable Function - 37(o1): 22(ptr) Variable Function - 40(o3): 22(ptr) Variable Function - 49(nest): 48(ptr) Variable Function - Store 9(gv) 12 - Store 17(gfa) 18 - Store 23(o2) 27 - 29: 7(fvec4) Load 9(gv) - 32: 31(ptr) AccessChain 17(gfa) 30 - 33: 6(float) Load 32 - 34: 7(fvec4) VectorTimesScalar 29 33 - 36: 35(ptr) AccessChain 28(o4) 24 - Store 36 34 - Store 37(o1) 39 - Store 40(o3) 39 - Store 28(o4) 39 - 42: 41(ptr) AccessChain 37(o1) 30 - 43: 20(bool) Load 42 - 44: 41(ptr) AccessChain 28(o4) 30 - Store 44 43 - Store 49(nest) 52 - 56: 55(ptr) AccessChain 28(o4) 38 - 57: 19(int) Load 56 - Store 54(a) 57 - 62: 61(ptr) AccessChain 28(o4) 60 - 63: 6(float) Load 62 - Store 59(b) 63 - 66: 41(ptr) AccessChain 28(o4) 30 - 67: 20(bool) Load 66 - Store 65(c) 67 - 70: 35(ptr) AccessChain 28(o4) 24 - 71: 7(fvec4) Load 70 - Store 69(v) 71 + 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 index 6bbbee6451..2c06fe91f8 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.pp.line.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.pp.line.frag.out @@ -1,165 +1,192 @@ hlsl.pp.line.frag -Shader version: 450 +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 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 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 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:? 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 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 Sequence -0:129 Sequence -0:129 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:129 Color: direct index for structure (temp 4-component vector of float) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:129 Constant: -0:129 0 (const int) -0:129 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:129 Depth: direct index for structure (temp float) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:129 Constant: -0:129 1 (const int) -0:129 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +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 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 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 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:? 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 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 Sequence -0:129 Sequence -0:129 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:129 Color: direct index for structure (temp 4-component vector of float) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:129 Constant: -0:129 0 (const int) -0:129 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:129 Depth: direct index for structure (temp float) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:129 Constant: -0:129 1 (const int) -0:129 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +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): 80001 -// Id's are bound by 35 +// 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" 27 31 + EntryPoint Fragment 4 "main" 35 39 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "thisLineIs" - Name 12 "PS_OUTPUT" - MemberName 12(PS_OUTPUT) 0 "Color" - MemberName 12(PS_OUTPUT) 1 "Depth" - Name 14 "psout" - Name 27 "Color" - Name 31 "Depth" - Decorate 27(Color) Location 0 - Decorate 31(Depth) BuiltIn FragDepth + 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: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 124 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12(PS_OUTPUT): TypeStruct 11(fvec4) 10(float) - 13: TypePointer Function 12(PS_OUTPUT) - 15: 6(int) Constant 0 - 18: 10(float) Constant 0 - 19: 10(float) Constant 1065353216 - 21: TypePointer Function 11(fvec4) - 23: 6(int) Constant 1 - 24: TypePointer Function 10(float) - 26: TypePointer Output 11(fvec4) - 27(Color): 26(ptr) Variable Output - 30: TypePointer Output 10(float) - 31(Depth): 30(ptr) Variable Output + 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 - 8(thisLineIs): 7(ptr) Variable Function - 14(psout): 13(ptr) Variable Function - Store 8(thisLineIs) 9 - 16: 6(int) Load 8(thisLineIs) - 17: 10(float) ConvertSToF 16 - 20: 11(fvec4) CompositeConstruct 17 18 18 19 - 22: 21(ptr) AccessChain 14(psout) 15 - Store 22 20 - 25: 24(ptr) AccessChain 14(psout) 23 - Store 25 19 - 28: 21(ptr) AccessChain 14(psout) 15 - 29: 11(fvec4) Load 28 - Store 27(Color) 29 - 32: 24(ptr) AccessChain 14(psout) 23 - 33: 10(float) Load 32 - Store 31(Depth) 33 + 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-new/Test/baseResults/hlsl.pp.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.pp.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.pp.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.pp.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.precedence.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.precedence.frag.out index 1e18a405b8..f4c53389d7 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.precedence.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.precedence.frag.out @@ -1,170 +1,257 @@ hlsl.precedence.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:7 Function Parameters: -0:7 'a1' (layout(location=0 ) in 4-component vector of float) -0:7 'a2' (layout(location=1 ) in 4-component vector of float) -0:7 'a3' (layout(location=2 ) in 4-component vector of float) -0:7 'a4' (layout(location=3 ) in 4-component vector of float) +0:7 'a1' ( in 4-component vector of float) +0:7 'a2' ( in 4-component vector of float) +0:7 'a3' ( in 4-component vector of float) +0:7 'a4' ( in 4-component vector of float) 0:? Sequence -0:8 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 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' (layout(location=0 ) in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (layout(location=1 ) in 4-component vector of float) -0:8 'a3' (layout(location=2 ) in 4-component vector of float) -0:8 'a4' (layout(location=3 ) 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' (layout(location=0 ) 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' (layout(location=1 ) 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' (layout(location=2 ) in 4-component vector of float) -0:8 Constant: -0:8 3 (const int) -0:8 Branch: Return +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) +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: 450 +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 Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:7 Function Parameters: -0:7 'a1' (layout(location=0 ) in 4-component vector of float) -0:7 'a2' (layout(location=1 ) in 4-component vector of float) -0:7 'a3' (layout(location=2 ) in 4-component vector of float) -0:7 'a4' (layout(location=3 ) in 4-component vector of float) +0:7 'a1' ( in 4-component vector of float) +0:7 'a2' ( in 4-component vector of float) +0:7 'a3' ( in 4-component vector of float) +0:7 'a4' ( in 4-component vector of float) 0:? Sequence -0:8 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 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' (layout(location=0 ) in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (layout(location=1 ) in 4-component vector of float) -0:8 'a3' (layout(location=2 ) in 4-component vector of float) -0:8 'a4' (layout(location=3 ) 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' (layout(location=0 ) 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' (layout(location=1 ) 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' (layout(location=2 ) in 4-component vector of float) -0:8 Constant: -0:8 3 (const int) -0:8 Branch: Return +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) +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): 80001 -// Id's are bound by 39 +// 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" 9 11 13 15 19 + EntryPoint Fragment 4 "PixelShaderFunction" 43 46 49 52 55 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "@entryPointOutput" - Name 11 "a1" - Name 13 "a2" - Name 15 "a3" - Name 19 "a4" - Decorate 9(@entryPointOutput) Location 0 - Decorate 11(a1) Location 0 - Decorate 13(a2) Location 1 - Decorate 15(a3) Location 2 - Decorate 19(a4) Location 3 + 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 Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(a1): 10(ptr) Variable Input - 13(a2): 10(ptr) Variable Input - 15(a3): 10(ptr) Variable Input - 19(a4): 10(ptr) Variable Input - 22: TypeVector 6(float) 3 - 28: TypeInt 32 0 - 29: 28(int) Constant 3 - 30: TypePointer Input 6(float) + 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 - 12: 7(fvec4) Load 11(a1) - 14: 7(fvec4) Load 13(a2) - 16: 7(fvec4) Load 15(a3) - 17: 7(fvec4) FMul 14 16 - 18: 7(fvec4) FAdd 12 17 - 20: 7(fvec4) Load 19(a4) - 21: 7(fvec4) FAdd 18 20 - 23: 7(fvec4) Load 11(a1) - 24: 22(fvec3) VectorShuffle 23 23 0 1 2 - 25: 7(fvec4) Load 13(a2) - 26: 22(fvec3) VectorShuffle 25 25 0 1 2 - 27: 22(fvec3) FMul 24 26 - 31: 30(ptr) AccessChain 15(a3) 29 - 32: 6(float) Load 31 - 33: 6(float) CompositeExtract 27 0 - 34: 6(float) CompositeExtract 27 1 - 35: 6(float) CompositeExtract 27 2 - 36: 7(fvec4) CompositeConstruct 33 34 35 32 - 37: 7(fvec4) FAdd 21 36 - Store 9(@entryPointOutput) 37 + 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 index 64cce2c736..9ce674d6b9 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.precedence2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.precedence2.frag.out @@ -1,127 +1,218 @@ hlsl.precedence2.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(i1;i1;i1;i1; ( temp int) 0:7 Function Parameters: -0:7 'a1' (layout(location=0 ) in int) -0:7 'a2' (layout(location=1 ) in int) -0:7 'a3' (layout(location=2 ) in int) -0:7 'a4' (layout(location=3 ) in int) +0:7 'a1' ( in int) +0:7 'a2' ( in int) +0:7 'a3' ( in int) +0:7 'a4' ( in int) 0:? Sequence -0:8 Sequence -0:8 move second child to first child (temp int) -0:? '@entryPointOutput' (layout(location=0 ) out int) -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' (layout(location=0 ) in int) -0:8 'a2' (layout(location=1 ) in int) -0:8 'a3' (layout(location=2 ) in int) -0:8 'a4' (layout(location=3 ) in int) -0:8 left-shift (temp int) -0:8 'a1' (layout(location=0 ) in int) -0:8 add (temp int) -0:8 'a2' (layout(location=1 ) in int) -0:8 component-wise multiply (temp int) -0:8 'a3' (layout(location=2 ) in int) -0:8 'a4' (layout(location=3 ) in int) -0:8 Branch: Return +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 ) in int) -0:? 'a2' (layout(location=1 ) in int) -0:? 'a3' (layout(location=2 ) in int) -0:? 'a4' (layout(location=3 ) in int) +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: 450 +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 Definition: @PixelShaderFunction(i1;i1;i1;i1; ( temp int) 0:7 Function Parameters: -0:7 'a1' (layout(location=0 ) in int) -0:7 'a2' (layout(location=1 ) in int) -0:7 'a3' (layout(location=2 ) in int) -0:7 'a4' (layout(location=3 ) in int) +0:7 'a1' ( in int) +0:7 'a2' ( in int) +0:7 'a3' ( in int) +0:7 'a4' ( in int) 0:? Sequence -0:8 Sequence -0:8 move second child to first child (temp int) -0:? '@entryPointOutput' (layout(location=0 ) out int) -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' (layout(location=0 ) in int) -0:8 'a2' (layout(location=1 ) in int) -0:8 'a3' (layout(location=2 ) in int) -0:8 'a4' (layout(location=3 ) in int) -0:8 left-shift (temp int) -0:8 'a1' (layout(location=0 ) in int) -0:8 add (temp int) -0:8 'a2' (layout(location=1 ) in int) -0:8 component-wise multiply (temp int) -0:8 'a3' (layout(location=2 ) in int) -0:8 'a4' (layout(location=3 ) in int) -0:8 Branch: Return +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 ) in int) -0:? 'a2' (layout(location=1 ) in int) -0:? 'a3' (layout(location=2 ) in int) -0:? 'a4' (layout(location=3 ) in int) +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): 80001 -// Id's are bound by 30 +// 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" 8 10 12 15 18 + EntryPoint Fragment 4 "PixelShaderFunction" 34 37 40 43 46 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "@entryPointOutput" - Name 10 "a1" - Name 12 "a2" - Name 15 "a3" - Name 18 "a4" - Decorate 8(@entryPointOutput) Location 0 - Decorate 10(a1) Location 0 - Decorate 12(a2) Location 1 - Decorate 15(a3) Location 2 - Decorate 18(a4) Location 3 + 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 Output 6(int) -8(@entryPointOutput): 7(ptr) Variable Output - 9: TypePointer Input 6(int) - 10(a1): 9(ptr) Variable Input - 12(a2): 9(ptr) Variable Input - 15(a3): 9(ptr) Variable Input - 18(a4): 9(ptr) Variable Input + 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 - 11: 6(int) Load 10(a1) - 13: 6(int) Load 12(a2) - 14: 6(int) IMul 11 13 - 16: 6(int) Load 15(a3) - 17: 6(int) IAdd 14 16 - 19: 6(int) Load 18(a4) - 20: 6(int) ShiftLeftLogical 17 19 - 21: 6(int) Load 10(a1) - 22: 6(int) Load 12(a2) - 23: 6(int) Load 15(a3) - 24: 6(int) Load 18(a4) - 25: 6(int) IMul 23 24 - 26: 6(int) IAdd 22 25 - 27: 6(int) ShiftLeftLogical 21 26 - 28: 6(int) IAdd 20 27 - Store 8(@entryPointOutput) 28 + 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 index cd2af74658..dd450690a0 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.precise.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.precise.frag.out @@ -1,17 +1,17 @@ hlsl.precise.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:6 Function Definition: MyFunction(f1;vf3; (temp void) +0:6 Function Definition: MyFunction(f1;vf3; ( temp void) 0:6 Function Parameters: -0:6 'myfloat' (noContraction in float) -0:6 'myfloat3' (noContraction out 3-component vector of float) -0:9 Function Definition: main( (temp structure{noContraction temp 4-component vector of float color}) +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 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: @@ -19,36 +19,39 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Sequence -0:12 Sequence -0:12 move second child to first child (noContraction temp 4-component vector of float) -0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) -0:12 color: direct index for structure (noContraction temp 4-component vector of float) -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) -0:12 Constant: -0:12 0 (const int) -0:12 Branch: Return +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:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) -0:? 'precisefloat' (noContraction global float) +0:? 'precisefloat' ( noContraction global float) +0:? '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:6 Function Definition: MyFunction(f1;vf3; (temp void) +0:6 Function Definition: MyFunction(f1;vf3; ( temp void) 0:6 Function Parameters: -0:6 'myfloat' (noContraction in float) -0:6 'myfloat3' (noContraction out 3-component vector of float) -0:9 Function Definition: main( (temp structure{noContraction temp 4-component vector of float color}) +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 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: @@ -56,38 +59,43 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Sequence -0:12 Sequence -0:12 move second child to first child (noContraction temp 4-component vector of float) -0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) -0:12 color: direct index for structure (noContraction temp 4-component vector of float) -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) -0:12 Constant: -0:12 0 (const int) -0:12 Branch: Return +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:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) -0:? 'precisefloat' (noContraction global float) +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): 80001 -// Id's are bound by 32 +// 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" 26 + 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 "ps_output" - Name 26 "color" - Name 31 "precisefloat" - Decorate 26(color) Location 0 + 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 @@ -97,24 +105,22 @@ gl_FragCoord origin is upper left 10: TypeFunction 2 7(ptr) 9(ptr) 15: TypeVector 6(float) 4 16(PS_OUTPUT): TypeStruct 15(fvec4) - 17: TypePointer Function 16(PS_OUTPUT) - 19: TypeInt 32 1 - 20: 19(int) Constant 0 - 21: 6(float) Constant 1065353216 - 22: 15(fvec4) ConstantComposite 21 21 21 21 - 23: TypePointer Function 15(fvec4) - 25: TypePointer Output 15(fvec4) - 26(color): 25(ptr) Variable Output - 30: TypePointer Private 6(float) -31(precisefloat): 30(ptr) Variable Private + 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 - 18(ps_output): 17(ptr) Variable Function - 24: 23(ptr) AccessChain 18(ps_output) 20 - Store 24 22 - 27: 23(ptr) AccessChain 18(ps_output) 20 - 28: 15(fvec4) Load 27 - Store 26(color) 28 + 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 @@ -123,3 +129,11 @@ gl_FragCoord origin is upper left 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-new/Test/baseResults/hlsl.preprocessor.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.preprocessor.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.preprocessor.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.preprocessor.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.promote.atomic.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.promote.atomic.frag.out index 7fa0cad86b..ecc188b1c3 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.promote.atomic.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promote.atomic.frag.out @@ -1,109 +1,123 @@ hlsl.promote.atomic.frag -Shader version: 450 +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 Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence -0:13 move second child to first child (temp int) -0:13 'Orig' (temp int) -0:13 Convert uint to int (temp int) -0:13 imageAtomicAdd (temp uint) -0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) -0:13 'Loc' (temp int) -0:13 Convert int to uint (temp uint) -0:13 'Inc' (temp int) -0:15 Sequence -0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:15 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) +0:? 's_uintbuff' (layout( r32ui) uniform uimageBuffer) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +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 Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence -0:13 move second child to first child (temp int) -0:13 'Orig' (temp int) -0:13 Convert uint to int (temp int) -0:13 imageAtomicAdd (temp uint) -0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) -0:13 'Loc' (temp int) -0:13 Convert int to uint (temp uint) -0:13 'Inc' (temp int) -0:15 Sequence -0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:15 Branch: Return +0: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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) +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): 80001 -// Id's are bound by 31 +// Generated by (magic number): 80007 +// Id's are bound by 36 Capability Shader - Capability SampledBuffer + Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 + EntryPoint Fragment 4 "main" 34 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "Orig" - Name 12 "s_uintbuff" - Name 13 "Loc" - Name 15 "Inc" - Name 27 "@entryPointOutput" - Decorate 12(s_uintbuff) DescriptorSet 0 - Decorate 27(@entryPointOutput) Location 0 + 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: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: TypeInt 32 0 - 10: TypeImage 9(int) Buffer nonsampled format:R32ui - 11: TypePointer UniformConstant 10 - 12(s_uintbuff): 11(ptr) Variable UniformConstant - 18: 9(int) Constant 0 - 19: TypePointer Image 9(int) - 21: 9(int) Constant 1 - 24: TypeFloat 32 - 25: TypeVector 24(float) 4 - 26: TypePointer Output 25(fvec4) -27(@entryPointOutput): 26(ptr) Variable Output - 28: 24(float) Constant 0 - 29: 25(fvec4) ConstantComposite 28 28 28 28 + 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 - 8(Orig): 7(ptr) Variable Function - 13(Loc): 7(ptr) Variable Function - 15(Inc): 7(ptr) Variable Function - 14: 6(int) Load 13(Loc) - 16: 6(int) Load 15(Inc) - 17: 9(int) Bitcast 16 - 20: 19(ptr) ImageTexelPointer 12(s_uintbuff) 14 18 - 22: 9(int) AtomicIAdd 20 21 18 17 - 23: 6(int) Bitcast 22 - Store 8(Orig) 23 - Store 27(@entryPointOutput) 29 + 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 index 2c7425e18a..e1931af1ac 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.promote.binary.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promote.binary.frag.out @@ -1,65 +1,65 @@ hlsl.promote.binary.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:14 Function Parameters: 0:? Sequence -0:15 mod (temp float) -0:15 Convert int to float (temp float) -0:15 ival: direct index for structure (layout(offset=32 ) uniform int) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 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 (layout(offset=64 ) uniform float) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 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 (layout(offset=48 ) uniform 4-component vector of int) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 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 (layout(offset=80 ) uniform 4-component vector of float) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 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 (layout(offset=0 ) uniform bool) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 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 (layout(offset=64 ) uniform float) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 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 (layout(offset=80 ) uniform 4-component vector of float) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 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 move second child to first child ( temp int) +0:21 'l_int' ( temp int) 0:21 Constant: 0:21 1 (const int) -0:22 mod second child into first child (temp int) -0:22 'l_int' (temp int) -0:22 Convert float to int (temp int) -0:22 fval: direct index for structure (layout(offset=64 ) uniform float) -0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 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 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: @@ -67,84 +67,87 @@ gl_FragCoord origin is upper left 0:25 0.000000 0:25 0.000000 0:25 0.000000 -0:26 Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:26 Color: direct index for structure (temp 4-component vector of float) -0:26 'psout' (temp structure{temp 4-component vector of float Color}) -0:26 Constant: -0:26 0 (const int) -0:26 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:14 Function Parameters: 0:? Sequence -0:15 mod (temp float) -0:15 Convert int to float (temp float) -0:15 ival: direct index for structure (layout(offset=32 ) uniform int) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 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 (layout(offset=64 ) uniform float) -0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 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 (layout(offset=48 ) uniform 4-component vector of int) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 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 (layout(offset=80 ) uniform 4-component vector of float) -0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 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 (layout(offset=0 ) uniform bool) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 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 (layout(offset=64 ) uniform float) -0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 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 (layout(offset=16 ) uniform 4-component vector of bool) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 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 (layout(offset=80 ) uniform 4-component vector of float) -0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 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 move second child to first child ( temp int) +0:21 'l_int' ( temp int) 0:21 Constant: 0:21 1 (const int) -0:22 mod second child into first child (temp int) -0:22 'l_int' (temp int) -0:22 Convert float to int (temp int) -0:22 fval: direct index for structure (layout(offset=64 ) uniform float) -0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 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 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: @@ -152,129 +155,140 @@ gl_FragCoord origin is upper left 0:25 0.000000 0:25 0.000000 0:25 0.000000 -0:26 Sequence -0:26 Sequence -0:26 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:26 Color: direct index for structure (temp 4-component vector of float) -0:26 'psout' (temp structure{temp 4-component vector of float Color}) -0:26 Constant: -0:26 0 (const int) -0:26 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +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): 80001 -// Id's are bound by 78 +// 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" 74 + EntryPoint Fragment 4 "main" 80 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 12 "$Global" - MemberName 12($Global) 0 "bval" - MemberName 12($Global) 1 "bval4" - MemberName 12($Global) 2 "ival" - MemberName 12($Global) 3 "ival4" - MemberName 12($Global) 4 "fval" - MemberName 12($Global) 5 "fval4" - Name 14 "" - Name 62 "l_int" - Name 68 "PS_OUTPUT" - MemberName 68(PS_OUTPUT) 0 "Color" - Name 70 "psout" - Name 74 "Color" - MemberDecorate 12($Global) 0 Offset 0 - MemberDecorate 12($Global) 1 Offset 16 - MemberDecorate 12($Global) 2 Offset 32 - MemberDecorate 12($Global) 3 Offset 48 - MemberDecorate 12($Global) 4 Offset 64 - MemberDecorate 12($Global) 5 Offset 80 - Decorate 12($Global) Block - Decorate 14 DescriptorSet 0 - Decorate 74(Color) Location 0 + 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: TypeInt 32 0 - 7: TypeVector 6(int) 4 - 8: TypeInt 32 1 - 9: TypeVector 8(int) 4 - 10: TypeFloat 32 - 11: TypeVector 10(float) 4 - 12($Global): TypeStruct 6(int) 7(ivec4) 8(int) 9(ivec4) 10(float) 11(fvec4) - 13: TypePointer Uniform 12($Global) - 14: 13(ptr) Variable Uniform - 15: 8(int) Constant 2 - 16: TypePointer Uniform 8(int) - 20: 8(int) Constant 4 - 21: TypePointer Uniform 10(float) - 25: 8(int) Constant 3 - 26: TypePointer Uniform 9(ivec4) - 30: 8(int) Constant 5 - 31: TypePointer Uniform 11(fvec4) - 35: 8(int) Constant 0 - 36: TypePointer Uniform 6(int) - 39: TypeBool - 40: 6(int) Constant 0 - 42: 10(float) Constant 0 - 43: 10(float) Constant 1065353216 - 48: 8(int) Constant 1 - 49: TypePointer Uniform 7(ivec4) - 52: TypeVector 39(bool) 4 - 53: 7(ivec4) ConstantComposite 40 40 40 40 - 55: 11(fvec4) ConstantComposite 42 42 42 42 - 56: 11(fvec4) ConstantComposite 43 43 43 43 - 61: TypePointer Function 8(int) - 68(PS_OUTPUT): TypeStruct 11(fvec4) - 69: TypePointer Function 68(PS_OUTPUT) - 71: TypePointer Function 11(fvec4) - 73: TypePointer Output 11(fvec4) - 74(Color): 73(ptr) Variable Output + 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 - 62(l_int): 61(ptr) Variable Function - 70(psout): 69(ptr) Variable Function - 17: 16(ptr) AccessChain 14 15 - 18: 8(int) Load 17 - 19: 10(float) ConvertSToF 18 - 22: 21(ptr) AccessChain 14 20 - 23: 10(float) Load 22 - 24: 10(float) FMod 19 23 - 27: 26(ptr) AccessChain 14 25 - 28: 9(ivec4) Load 27 - 29: 11(fvec4) ConvertSToF 28 - 32: 31(ptr) AccessChain 14 30 - 33: 11(fvec4) Load 32 - 34: 11(fvec4) FMod 29 33 - 37: 36(ptr) AccessChain 14 35 - 38: 6(int) Load 37 - 41: 39(bool) INotEqual 38 40 - 44: 10(float) Select 41 43 42 - 45: 21(ptr) AccessChain 14 20 - 46: 10(float) Load 45 - 47: 10(float) FMod 44 46 - 50: 49(ptr) AccessChain 14 48 - 51: 7(ivec4) Load 50 - 54: 52(bvec4) INotEqual 51 53 - 57: 11(fvec4) Select 54 56 55 - 58: 31(ptr) AccessChain 14 30 - 59: 11(fvec4) Load 58 - 60: 11(fvec4) FMod 57 59 - Store 62(l_int) 48 - 63: 21(ptr) AccessChain 14 20 - 64: 10(float) Load 63 - 65: 8(int) ConvertFToS 64 - 66: 8(int) Load 62(l_int) - 67: 8(int) SMod 66 65 - Store 62(l_int) 67 - 72: 71(ptr) AccessChain 70(psout) 35 - Store 72 55 - 75: 71(ptr) AccessChain 70(psout) 35 - 76: 11(fvec4) Load 75 - Store 74(Color) 76 + 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 index 9179dbcc52..b92d740904 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.promote.vec1.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promote.vec1.frag.out @@ -1,118 +1,132 @@ hlsl.promote.vec1.frag -Shader version: 450 +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 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:7 move second child to first child ( temp float) +0:7 'f1a' ( temp float) +0:7 Construct float ( temp float) +0:7 'f1b' ( temp 1-component vector of float) +0:8 move second child to first child ( temp 1-component vector of float) +0:8 'f1b' ( temp 1-component vector of float) +0:8 Construct float ( temp 1-component vector of float) +0:8 'f1a' ( temp float) +0:11 step ( temp 3-component vector of float) 0:11 Constant: 0:11 0.000000 0:11 0.000000 0:11 0.000000 -0:11 'f3' (temp 3-component vector of float) -0:13 sine (temp float) -0:13 Construct float (in float) -0:13 'f1b' (temp 1-component vector of float) -0:15 Sequence -0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:15 Branch: Return +0: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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +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 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:7 move second child to first child ( temp float) +0:7 'f1a' ( temp float) +0:7 Construct float ( temp float) +0:7 'f1b' ( temp 1-component vector of float) +0:8 move second child to first child ( temp 1-component vector of float) +0:8 'f1b' ( temp 1-component vector of float) +0:8 Construct float ( temp 1-component vector of float) +0:8 'f1a' ( temp float) +0:11 step ( temp 3-component vector of float) 0:11 Constant: 0:11 0.000000 0:11 0.000000 0:11 0.000000 -0:11 'f3' (temp 3-component vector of float) -0:13 sine (temp float) -0:13 Construct float (in float) -0:13 'f1b' (temp 1-component vector of float) -0:15 Sequence -0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:15 Branch: Return +0: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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 26 +// 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" 23 + EntryPoint Fragment 4 "main" 29 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "f1a" - Name 9 "f1b" - Name 16 "f3" - Name 23 "@entryPointOutput" - Decorate 23(@entryPointOutput) Location 0 + 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: TypePointer Function 6(float) - 12: TypeVector 6(float) 3 - 13: 6(float) Constant 0 - 14: 12(fvec3) ConstantComposite 13 13 13 - 15: TypePointer Function 12(fvec3) - 21: TypeVector 6(float) 4 - 22: TypePointer Output 21(fvec4) -23(@entryPointOutput): 22(ptr) Variable Output - 24: 21(fvec4) ConstantComposite 13 13 13 13 + 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 - 8(f1a): 7(ptr) Variable Function - 9(f1b): 7(ptr) Variable Function - 16(f3): 15(ptr) Variable Function - 10: 6(float) Load 9(f1b) - Store 8(f1a) 10 - 11: 6(float) Load 8(f1a) - Store 9(f1b) 11 - 17: 12(fvec3) Load 16(f3) - 18: 12(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 14 17 - 19: 6(float) Load 9(f1b) - 20: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 19 - Store 23(@entryPointOutput) 24 + 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 index 01ced16996..9c08948421 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.promotions.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promotions.frag.out @@ -1,1590 +1,1597 @@ hlsl.promotions.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:19 Function Definition: Fn_F3(vf3; (temp void) +0:19 Function Definition: Fn_F3(vf3; ( temp void) 0:19 Function Parameters: -0:19 'x' (in 3-component vector of float) -0:20 Function Definition: Fn_I3(vi3; (temp void) +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: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: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: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: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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 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 (layout(offset=0 ) uniform 3-component vector of int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 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 (layout(offset=64 ) uniform 3-component vector of double) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 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 (layout(offset=32 ) uniform 3-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 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 (layout(offset=64 ) uniform 3-component vector of double) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 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 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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 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 (layout(offset=0 ) uniform 3-component vector of int) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 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 (layout(offset=32 ) uniform 3-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 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 (layout(offset=64 ) uniform 3-component vector of double) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 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 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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 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 (layout(offset=0 ) uniform 3-component vector of int) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 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 (layout(offset=32 ) uniform 3-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 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 (layout(offset=64 ) uniform 3-component vector of double) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 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 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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 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 (layout(offset=0 ) uniform 3-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 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 (layout(offset=32 ) uniform 3-component vector of float) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 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 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 (layout(offset=0 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 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 (layout(offset=64 ) uniform 3-component vector of double) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 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 (layout(offset=32 ) uniform 3-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 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 (layout(offset=64 ) uniform 3-component vector of double) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 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 (layout(offset=0 ) uniform 3-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 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 (layout(offset=32 ) uniform 3-component vector of float) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 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 (layout(offset=64 ) uniform 3-component vector of double) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 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 (layout(offset=0 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 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 (layout(offset=32 ) uniform 3-component vector of float) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 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 (layout(offset=64 ) uniform 3-component vector of double) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 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 (layout(offset=0 ) uniform 3-component vector of int) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 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 (layout(offset=32 ) uniform 3-component vector of float) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 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 (layout(offset=0 ) uniform 3-component vector of int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 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 (layout(offset=64 ) uniform 3-component vector of double) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 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 (layout(offset=32 ) uniform 3-component vector of float) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 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 (layout(offset=64 ) uniform 3-component vector of double) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 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 (layout(offset=0 ) uniform 3-component vector of int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 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 (layout(offset=32 ) uniform 3-component vector of float) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 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 (layout(offset=64 ) uniform 3-component vector of double) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 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 (layout(offset=0 ) uniform 3-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 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 (layout(offset=32 ) uniform 3-component vector of float) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 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 (layout(offset=88 ) uniform int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 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 (layout(offset=92 ) uniform bool) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 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 (layout(offset=100 ) uniform uint) -0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 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 (layout(offset=104 ) uniform double) -0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 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 (layout(offset=92 ) uniform bool) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 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 (layout(offset=100 ) uniform uint) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 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 (layout(offset=96 ) uniform float) -0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 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 (layout(offset=104 ) uniform double) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 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 (layout(offset=92 ) uniform bool) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 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 (layout(offset=88 ) uniform int) -0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 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 (layout(offset=96 ) uniform float) -0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 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 (layout(offset=104 ) uniform double) -0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 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 (layout(offset=88 ) uniform int) -0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 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 (layout(offset=100 ) uniform uint) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 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 (layout(offset=96 ) uniform float) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 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 (layout(offset=92 ) uniform bool) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 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 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 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 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: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 Sequence -0:200 Sequence -0:200 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:200 Color: direct index for structure (temp 4-component vector of float) -0:200 'psout' (temp structure{temp 4-component vector of float Color}) -0:200 Constant: -0:200 0 (const int) -0:200 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:19 Function Definition: Fn_F3(vf3; (temp void) +0:19 Function Definition: Fn_F3(vf3; ( temp void) 0:19 Function Parameters: -0:19 'x' (in 3-component vector of float) -0:20 Function Definition: Fn_I3(vi3; (temp void) +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: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: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: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: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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 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 (layout(offset=0 ) uniform 3-component vector of int) -0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 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 (layout(offset=64 ) uniform 3-component vector of double) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 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 (layout(offset=32 ) uniform 3-component vector of float) -0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 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 (layout(offset=64 ) uniform 3-component vector of double) -0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 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 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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 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 (layout(offset=0 ) uniform 3-component vector of int) -0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 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 (layout(offset=32 ) uniform 3-component vector of float) -0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 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 (layout(offset=64 ) uniform 3-component vector of double) -0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 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 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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 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 (layout(offset=0 ) uniform 3-component vector of int) -0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 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 (layout(offset=32 ) uniform 3-component vector of float) -0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 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 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: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 (layout(offset=64 ) uniform 3-component vector of double) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 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 (layout(offset=64 ) uniform 3-component vector of double) -0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 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 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: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 (layout(offset=0 ) uniform 3-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 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 (layout(offset=0 ) uniform 3-component vector of int) -0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 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 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: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 (layout(offset=48 ) uniform 3-component vector of uint) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 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 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: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 (layout(offset=16 ) uniform 3-component vector of bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 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 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: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 (layout(offset=32 ) uniform 3-component vector of float) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 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 (layout(offset=32 ) uniform 3-component vector of float) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 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 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 (layout(offset=0 ) uniform 3-component vector of int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 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 (layout(offset=64 ) uniform 3-component vector of double) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 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 (layout(offset=32 ) uniform 3-component vector of float) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 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 (layout(offset=64 ) uniform 3-component vector of double) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 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 (layout(offset=0 ) uniform 3-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 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 (layout(offset=32 ) uniform 3-component vector of float) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 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 (layout(offset=64 ) uniform 3-component vector of double) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 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 (layout(offset=0 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 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 (layout(offset=32 ) uniform 3-component vector of float) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 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 (layout(offset=64 ) uniform 3-component vector of double) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 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 (layout(offset=0 ) uniform 3-component vector of int) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 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 (layout(offset=32 ) uniform 3-component vector of float) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 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 (layout(offset=0 ) uniform 3-component vector of int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 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 (layout(offset=64 ) uniform 3-component vector of double) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 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 (layout(offset=32 ) uniform 3-component vector of float) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 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 (layout(offset=64 ) uniform 3-component vector of double) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 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 (layout(offset=0 ) uniform 3-component vector of int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 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 (layout(offset=32 ) uniform 3-component vector of float) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 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 (layout(offset=64 ) uniform 3-component vector of double) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 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 (layout(offset=0 ) uniform 3-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 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 (layout(offset=48 ) uniform 3-component vector of uint) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 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 (layout(offset=32 ) uniform 3-component vector of float) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 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 (layout(offset=16 ) uniform 3-component vector of bool) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 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 (layout(offset=88 ) uniform int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 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 (layout(offset=92 ) uniform bool) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 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 (layout(offset=100 ) uniform uint) -0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 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 (layout(offset=104 ) uniform double) -0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 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 (layout(offset=92 ) uniform bool) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 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 (layout(offset=100 ) uniform uint) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 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 (layout(offset=96 ) uniform float) -0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 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 (layout(offset=104 ) uniform double) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 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 (layout(offset=92 ) uniform bool) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 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 (layout(offset=88 ) uniform int) -0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 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 (layout(offset=96 ) uniform float) -0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 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 (layout(offset=104 ) uniform double) -0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 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 (layout(offset=88 ) uniform int) -0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 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 (layout(offset=100 ) uniform uint) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 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 (layout(offset=96 ) uniform float) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 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 (layout(offset=92 ) uniform bool) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 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 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 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 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: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 Sequence -0:200 Sequence -0:200 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:200 Color: direct index for structure (temp 4-component vector of float) -0:200 'psout' (temp structure{temp 4-component vector of float Color}) -0:200 Constant: -0:200 0 (const int) -0:200 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +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): 80001 -// Id's are bound by 591 +// 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" 587 + EntryPoint Fragment 4 "main" 593 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 11 "Fn_F3(vf3;" Name 10 "x" @@ -1636,58 +1643,59 @@ gl_FragCoord origin is upper left Name 100 "p" Name 104 "Fn_R_D3F(vd3;" Name 103 "p" - Name 106 "$Global" - MemberName 106($Global) 0 "i3" - MemberName 106($Global) 1 "b3" - MemberName 106($Global) 2 "f3" - MemberName 106($Global) 3 "u3" - MemberName 106($Global) 4 "d3" - MemberName 106($Global) 5 "is" - MemberName 106($Global) 6 "bs" - MemberName 106($Global) 7 "fs" - MemberName 106($Global) 8 "us" - MemberName 106($Global) 9 "ds" - Name 108 "" - Name 300 "r00" - Name 304 "r01" - Name 309 "r02" - Name 313 "r03" - Name 317 "r10" - Name 322 "r11" - Name 326 "r12" - Name 330 "r13" - Name 334 "r20" - Name 339 "r21" - Name 343 "r22" - Name 347 "r23" - Name 351 "r30" - Name 355 "r31" - Name 359 "r32" - Name 363 "r33" - Name 367 "r40" - Name 371 "r41" - Name 375 "r42" - Name 379 "r43" - Name 570 "c1" - Name 571 "c2" - Name 574 "outval" - Name 581 "PS_OUTPUT" - MemberName 581(PS_OUTPUT) 0 "Color" - Name 583 "psout" - Name 587 "Color" - MemberDecorate 106($Global) 0 Offset 0 - MemberDecorate 106($Global) 1 Offset 16 - MemberDecorate 106($Global) 2 Offset 32 - MemberDecorate 106($Global) 3 Offset 48 - MemberDecorate 106($Global) 4 Offset 64 - MemberDecorate 106($Global) 5 Offset 88 - MemberDecorate 106($Global) 6 Offset 92 - MemberDecorate 106($Global) 7 Offset 96 - MemberDecorate 106($Global) 8 Offset 100 - MemberDecorate 106($Global) 9 Offset 104 - Decorate 106($Global) Block - Decorate 108 DescriptorSet 0 - Decorate 587(Color) Location 0 + 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 @@ -1707,389 +1715,63 @@ gl_FragCoord origin is upper left 29: TypePointer Function 28(bvec3) 30: TypeFunction 2 29(ptr) 34: TypeFloat 64 - 35: TypeVector 34(float) 3 - 36: TypePointer Function 35(fvec3) + 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(fvec3) 36(ptr) - 106($Global): TypeStruct 14(ivec3) 21(ivec3) 7(fvec3) 21(ivec3) 35(fvec3) 13(int) 20(int) 6(float) 20(int) 34(float) - 107: TypePointer Uniform 106($Global) - 108: 107(ptr) Variable Uniform - 109: 13(int) Constant 0 - 110: TypePointer Uniform 14(ivec3) - 119: 13(int) Constant 3 - 120: TypePointer Uniform 21(ivec3) - 129: 13(int) Constant 1 - 132: 20(int) Constant 0 - 133: 21(ivec3) ConstantComposite 132 132 132 - 135: 6(float) Constant 0 - 136: 6(float) Constant 1065353216 - 137: 7(fvec3) ConstantComposite 135 135 135 - 138: 7(fvec3) ConstantComposite 136 136 136 - 146: 13(int) Constant 4 - 147: TypePointer Uniform 35(fvec3) - 167: 14(ivec3) ConstantComposite 109 109 109 - 168: 14(ivec3) ConstantComposite 129 129 129 - 176: 13(int) Constant 2 - 177: TypePointer Uniform 7(fvec3) - 213: 20(int) Constant 1 - 214: 21(ivec3) ConstantComposite 213 213 213 - 256: 34(float) Constant 0 0 - 257: 35(fvec3) ConstantComposite 256 256 256 - 283: 34(float) Constant 0 1072693248 - 284: 35(fvec3) ConstantComposite 283 283 283 - 468: 13(int) Constant 5 - 469: TypePointer Uniform 13(int) - 475: 13(int) Constant 6 - 476: TypePointer Uniform 20(int) - 483: 13(int) Constant 8 - 489: 13(int) Constant 9 - 490: TypePointer Uniform 34(float) - 509: 13(int) Constant 7 - 510: TypePointer Uniform 6(float) - 569: TypePointer Function 13(int) - 572: TypeVector 6(float) 4 - 573: TypePointer Function 572(fvec4) - 575: 6(float) Constant 1080452710 - 581(PS_OUTPUT): TypeStruct 572(fvec4) - 582: TypePointer Function 581(PS_OUTPUT) - 586: TypePointer Output 572(fvec4) - 587(Color): 586(ptr) Variable Output + 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 - 300(r00): 8(ptr) Variable Function - 304(r01): 8(ptr) Variable Function - 309(r02): 8(ptr) Variable Function - 313(r03): 8(ptr) Variable Function - 317(r10): 15(ptr) Variable Function - 322(r11): 15(ptr) Variable Function - 326(r12): 15(ptr) Variable Function - 330(r13): 15(ptr) Variable Function - 334(r20): 22(ptr) Variable Function - 339(r21): 22(ptr) Variable Function - 343(r22): 22(ptr) Variable Function - 347(r23): 22(ptr) Variable Function - 351(r30): 29(ptr) Variable Function - 355(r31): 29(ptr) Variable Function - 359(r32): 29(ptr) Variable Function - 363(r33): 29(ptr) Variable Function - 367(r40): 36(ptr) Variable Function - 371(r41): 36(ptr) Variable Function - 375(r42): 36(ptr) Variable Function - 379(r43): 36(ptr) Variable Function - 570(c1): 569(ptr) Variable Function - 571(c2): 569(ptr) Variable Function - 574(outval): 573(ptr) Variable Function - 583(psout): 582(ptr) Variable Function - 301: 110(ptr) AccessChain 108 109 - 302: 14(ivec3) Load 301 - 303: 7(fvec3) ConvertSToF 302 - Store 300(r00) 303 - 305: 120(ptr) AccessChain 108 129 - 306: 21(ivec3) Load 305 - 307: 28(bvec3) INotEqual 306 133 - 308: 7(fvec3) Select 307 138 137 - Store 304(r01) 308 - 310: 120(ptr) AccessChain 108 119 - 311: 21(ivec3) Load 310 - 312: 7(fvec3) ConvertUToF 311 - Store 309(r02) 312 - 314: 147(ptr) AccessChain 108 146 - 315: 35(fvec3) Load 314 - 316: 7(fvec3) FConvert 315 - Store 313(r03) 316 - 318: 120(ptr) AccessChain 108 129 - 319: 21(ivec3) Load 318 - 320: 28(bvec3) INotEqual 319 133 - 321: 14(ivec3) Select 320 168 167 - Store 317(r10) 321 - 323: 120(ptr) AccessChain 108 119 - 324: 21(ivec3) Load 323 - 325: 14(ivec3) Bitcast 324 - Store 322(r11) 325 - 327: 177(ptr) AccessChain 108 176 - 328: 7(fvec3) Load 327 - 329: 14(ivec3) ConvertFToS 328 - Store 326(r12) 329 - 331: 147(ptr) AccessChain 108 146 - 332: 35(fvec3) Load 331 - 333: 14(ivec3) ConvertFToS 332 - Store 330(r13) 333 - 335: 120(ptr) AccessChain 108 129 - 336: 21(ivec3) Load 335 - 337: 28(bvec3) INotEqual 336 133 - 338: 21(ivec3) Select 337 214 133 - Store 334(r20) 338 - 340: 110(ptr) AccessChain 108 109 - 341: 14(ivec3) Load 340 - 342: 21(ivec3) Bitcast 341 - Store 339(r21) 342 - 344: 177(ptr) AccessChain 108 176 - 345: 7(fvec3) Load 344 - 346: 21(ivec3) ConvertFToU 345 - Store 343(r22) 346 - 348: 147(ptr) AccessChain 108 146 - 349: 35(fvec3) Load 348 - 350: 21(ivec3) ConvertFToU 349 - Store 347(r23) 350 - 352: 110(ptr) AccessChain 108 109 - 353: 14(ivec3) Load 352 - 354: 28(bvec3) INotEqual 353 133 - Store 351(r30) 354 - 356: 120(ptr) AccessChain 108 119 - 357: 21(ivec3) Load 356 - 358: 28(bvec3) INotEqual 357 133 - Store 355(r31) 358 - 360: 177(ptr) AccessChain 108 176 - 361: 7(fvec3) Load 360 - 362: 28(bvec3) FOrdNotEqual 361 137 - Store 359(r32) 362 - 364: 147(ptr) AccessChain 108 146 - 365: 35(fvec3) Load 364 - 366: 28(bvec3) FOrdNotEqual 365 257 - Store 363(r33) 366 - 368: 110(ptr) AccessChain 108 109 - 369: 14(ivec3) Load 368 - 370: 35(fvec3) ConvertSToF 369 - Store 367(r40) 370 - 372: 120(ptr) AccessChain 108 119 - 373: 21(ivec3) Load 372 - 374: 35(fvec3) ConvertUToF 373 - Store 371(r41) 374 - 376: 177(ptr) AccessChain 108 176 - 377: 7(fvec3) Load 376 - 378: 35(fvec3) FConvert 377 - Store 375(r42) 378 - 380: 120(ptr) AccessChain 108 129 - 381: 21(ivec3) Load 380 - 382: 28(bvec3) INotEqual 381 133 - 383: 35(fvec3) Select 382 284 257 - Store 379(r43) 383 - 384: 110(ptr) AccessChain 108 109 - 385: 14(ivec3) Load 384 - 386: 7(fvec3) ConvertSToF 385 - 387: 7(fvec3) Load 300(r00) - 388: 7(fvec3) FMul 387 386 - Store 300(r00) 388 - 389: 120(ptr) AccessChain 108 129 - 390: 21(ivec3) Load 389 - 391: 28(bvec3) INotEqual 390 133 - 392: 7(fvec3) Select 391 138 137 - 393: 7(fvec3) Load 304(r01) - 394: 7(fvec3) FMul 393 392 - Store 304(r01) 394 - 395: 120(ptr) AccessChain 108 119 - 396: 21(ivec3) Load 395 - 397: 7(fvec3) ConvertUToF 396 - 398: 7(fvec3) Load 309(r02) - 399: 7(fvec3) FMul 398 397 - Store 309(r02) 399 - 400: 147(ptr) AccessChain 108 146 - 401: 35(fvec3) Load 400 - 402: 7(fvec3) FConvert 401 - 403: 7(fvec3) Load 313(r03) - 404: 7(fvec3) FMul 403 402 - Store 313(r03) 404 - 405: 120(ptr) AccessChain 108 129 - 406: 21(ivec3) Load 405 - 407: 28(bvec3) INotEqual 406 133 - 408: 14(ivec3) Select 407 168 167 - 409: 14(ivec3) Load 317(r10) - 410: 14(ivec3) IMul 409 408 - Store 317(r10) 410 - 411: 120(ptr) AccessChain 108 119 - 412: 21(ivec3) Load 411 - 413: 14(ivec3) Bitcast 412 - 414: 14(ivec3) Load 322(r11) - 415: 14(ivec3) IMul 414 413 - Store 322(r11) 415 - 416: 177(ptr) AccessChain 108 176 - 417: 7(fvec3) Load 416 - 418: 14(ivec3) ConvertFToS 417 - 419: 14(ivec3) Load 326(r12) - 420: 14(ivec3) IMul 419 418 - Store 326(r12) 420 - 421: 147(ptr) AccessChain 108 146 - 422: 35(fvec3) Load 421 - 423: 14(ivec3) ConvertFToS 422 - 424: 14(ivec3) Load 330(r13) - 425: 14(ivec3) IMul 424 423 - Store 330(r13) 425 - 426: 120(ptr) AccessChain 108 129 - 427: 21(ivec3) Load 426 - 428: 28(bvec3) INotEqual 427 133 - 429: 21(ivec3) Select 428 214 133 - 430: 21(ivec3) Load 334(r20) - 431: 21(ivec3) IMul 430 429 - Store 334(r20) 431 - 432: 110(ptr) AccessChain 108 109 - 433: 14(ivec3) Load 432 - 434: 21(ivec3) Bitcast 433 - 435: 21(ivec3) Load 339(r21) - 436: 21(ivec3) IMul 435 434 - Store 339(r21) 436 - 437: 177(ptr) AccessChain 108 176 - 438: 7(fvec3) Load 437 - 439: 21(ivec3) ConvertFToU 438 - 440: 21(ivec3) Load 343(r22) - 441: 21(ivec3) IMul 440 439 - Store 343(r22) 441 - 442: 147(ptr) AccessChain 108 146 - 443: 35(fvec3) Load 442 - 444: 21(ivec3) ConvertFToU 443 - 445: 21(ivec3) Load 347(r23) - 446: 21(ivec3) IMul 445 444 - Store 347(r23) 446 - 447: 110(ptr) AccessChain 108 109 - 448: 14(ivec3) Load 447 - 449: 35(fvec3) ConvertSToF 448 - 450: 35(fvec3) Load 367(r40) - 451: 35(fvec3) FMul 450 449 - Store 367(r40) 451 - 452: 120(ptr) AccessChain 108 119 - 453: 21(ivec3) Load 452 - 454: 35(fvec3) ConvertUToF 453 - 455: 35(fvec3) Load 371(r41) - 456: 35(fvec3) FMul 455 454 - Store 371(r41) 456 - 457: 177(ptr) AccessChain 108 176 - 458: 7(fvec3) Load 457 - 459: 35(fvec3) FConvert 458 - 460: 35(fvec3) Load 375(r42) - 461: 35(fvec3) FMul 460 459 - Store 375(r42) 461 - 462: 120(ptr) AccessChain 108 129 - 463: 21(ivec3) Load 462 - 464: 28(bvec3) INotEqual 463 133 - 465: 35(fvec3) Select 464 284 257 - 466: 35(fvec3) Load 379(r43) - 467: 35(fvec3) FMul 466 465 - Store 379(r43) 467 - 470: 469(ptr) AccessChain 108 468 - 471: 13(int) Load 470 - 472: 6(float) ConvertSToF 471 - 473: 7(fvec3) Load 300(r00) - 474: 7(fvec3) VectorTimesScalar 473 472 - Store 300(r00) 474 - 477: 476(ptr) AccessChain 108 475 - 478: 20(int) Load 477 - 479: 27(bool) INotEqual 478 132 - 480: 6(float) Select 479 136 135 - 481: 7(fvec3) Load 304(r01) - 482: 7(fvec3) VectorTimesScalar 481 480 - Store 304(r01) 482 - 484: 476(ptr) AccessChain 108 483 - 485: 20(int) Load 484 - 486: 6(float) ConvertUToF 485 - 487: 7(fvec3) Load 309(r02) - 488: 7(fvec3) VectorTimesScalar 487 486 - Store 309(r02) 488 - 491: 490(ptr) AccessChain 108 489 - 492: 34(float) Load 491 - 493: 6(float) FConvert 492 - 494: 7(fvec3) Load 313(r03) - 495: 7(fvec3) VectorTimesScalar 494 493 - Store 313(r03) 495 - 496: 476(ptr) AccessChain 108 475 - 497: 20(int) Load 496 - 498: 27(bool) INotEqual 497 132 - 499: 13(int) Select 498 129 109 - 500: 14(ivec3) Load 317(r10) - 501: 14(ivec3) CompositeConstruct 499 499 499 - 502: 14(ivec3) IMul 500 501 - Store 317(r10) 502 - 503: 476(ptr) AccessChain 108 483 - 504: 20(int) Load 503 - 505: 13(int) Bitcast 504 - 506: 14(ivec3) Load 322(r11) - 507: 14(ivec3) CompositeConstruct 505 505 505 - 508: 14(ivec3) IMul 506 507 - Store 322(r11) 508 - 511: 510(ptr) AccessChain 108 509 - 512: 6(float) Load 511 - 513: 13(int) ConvertFToS 512 - 514: 14(ivec3) Load 326(r12) - 515: 14(ivec3) CompositeConstruct 513 513 513 - 516: 14(ivec3) IMul 514 515 - Store 326(r12) 516 - 517: 490(ptr) AccessChain 108 489 - 518: 34(float) Load 517 - 519: 13(int) ConvertFToS 518 - 520: 14(ivec3) Load 330(r13) - 521: 14(ivec3) CompositeConstruct 519 519 519 - 522: 14(ivec3) IMul 520 521 - Store 330(r13) 522 - 523: 476(ptr) AccessChain 108 475 - 524: 20(int) Load 523 - 525: 27(bool) INotEqual 524 132 - 526: 20(int) Select 525 213 132 - 527: 21(ivec3) Load 334(r20) - 528: 21(ivec3) CompositeConstruct 526 526 526 - 529: 21(ivec3) IMul 527 528 - Store 334(r20) 529 - 530: 469(ptr) AccessChain 108 468 - 531: 13(int) Load 530 - 532: 20(int) Bitcast 531 - 533: 21(ivec3) Load 339(r21) - 534: 21(ivec3) CompositeConstruct 532 532 532 - 535: 21(ivec3) IMul 533 534 - Store 339(r21) 535 - 536: 510(ptr) AccessChain 108 509 - 537: 6(float) Load 536 - 538: 20(int) ConvertFToU 537 - 539: 21(ivec3) Load 343(r22) - 540: 21(ivec3) CompositeConstruct 538 538 538 - 541: 21(ivec3) IMul 539 540 - Store 343(r22) 541 - 542: 490(ptr) AccessChain 108 489 - 543: 34(float) Load 542 - 544: 20(int) ConvertFToU 543 - 545: 21(ivec3) Load 347(r23) - 546: 21(ivec3) CompositeConstruct 544 544 544 - 547: 21(ivec3) IMul 545 546 - Store 347(r23) 547 - 548: 469(ptr) AccessChain 108 468 - 549: 13(int) Load 548 - 550: 34(float) ConvertSToF 549 - 551: 35(fvec3) Load 367(r40) - 552: 35(fvec3) VectorTimesScalar 551 550 - Store 367(r40) 552 - 553: 476(ptr) AccessChain 108 483 - 554: 20(int) Load 553 - 555: 34(float) ConvertUToF 554 - 556: 35(fvec3) Load 371(r41) - 557: 35(fvec3) VectorTimesScalar 556 555 - Store 371(r41) 557 - 558: 510(ptr) AccessChain 108 509 - 559: 6(float) Load 558 - 560: 34(float) FConvert 559 - 561: 35(fvec3) Load 375(r42) - 562: 35(fvec3) VectorTimesScalar 561 560 - Store 375(r42) 562 - 563: 476(ptr) AccessChain 108 475 - 564: 20(int) Load 563 - 565: 27(bool) INotEqual 564 132 - 566: 34(float) Select 565 283 256 - 567: 35(fvec3) Load 379(r43) - 568: 35(fvec3) VectorTimesScalar 567 566 - Store 379(r43) 568 - Store 570(c1) 119 - Store 571(c2) 119 - 576: 13(int) Load 570(c1) - 577: 6(float) ConvertSToF 576 - 578: 13(int) Load 571(c2) - 579: 6(float) ConvertSToF 578 - 580: 572(fvec4) CompositeConstruct 575 575 577 579 - Store 574(outval) 580 - 584: 572(fvec4) Load 574(outval) - 585: 573(ptr) AccessChain 583(psout) 109 - Store 585 584 - 588: 573(ptr) AccessChain 583(psout) 109 - 589: 572(fvec4) Load 588 - Store 587(Color) 589 + 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 @@ -2120,248 +1802,580 @@ gl_FragCoord origin is upper left 43(Fn_R_F3I(vf3;): 7(fvec3) Function None 41 42(p): 8(ptr) FunctionParameter 44: Label - 111: 110(ptr) AccessChain 108 109 - 112: 14(ivec3) Load 111 - 113: 7(fvec3) ConvertSToF 112 - Store 42(p) 113 - 114: 110(ptr) AccessChain 108 109 - 115: 14(ivec3) Load 114 - 116: 7(fvec3) ConvertSToF 115 - ReturnValue 116 + 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 - 121: 120(ptr) AccessChain 108 119 - 122: 21(ivec3) Load 121 - 123: 7(fvec3) ConvertUToF 122 - Store 45(p) 123 - 124: 120(ptr) AccessChain 108 119 - 125: 21(ivec3) Load 124 - 126: 7(fvec3) ConvertUToF 125 - ReturnValue 126 + 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 - 130: 120(ptr) AccessChain 108 129 - 131: 21(ivec3) Load 130 - 134: 28(bvec3) INotEqual 131 133 - 139: 7(fvec3) Select 134 138 137 - Store 48(p) 139 - 140: 120(ptr) AccessChain 108 129 - 141: 21(ivec3) Load 140 - 142: 28(bvec3) INotEqual 141 133 - 143: 7(fvec3) Select 142 138 137 - ReturnValue 143 + 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 - 148: 147(ptr) AccessChain 108 146 - 149: 35(fvec3) Load 148 - 150: 7(fvec3) FConvert 149 - Store 51(p) 150 - 151: 147(ptr) AccessChain 108 146 - 152: 35(fvec3) Load 151 - 153: 7(fvec3) FConvert 152 - ReturnValue 153 + 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 - 156: 120(ptr) AccessChain 108 119 - 157: 21(ivec3) Load 156 - 158: 14(ivec3) Bitcast 157 - Store 55(p) 158 - 159: 120(ptr) AccessChain 108 119 - 160: 21(ivec3) Load 159 - 161: 14(ivec3) Bitcast 160 - ReturnValue 161 + 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 - 164: 120(ptr) AccessChain 108 129 - 165: 21(ivec3) Load 164 - 166: 28(bvec3) INotEqual 165 133 - 169: 14(ivec3) Select 166 168 167 - Store 58(p) 169 - 170: 120(ptr) AccessChain 108 129 - 171: 21(ivec3) Load 170 - 172: 28(bvec3) INotEqual 171 133 - 173: 14(ivec3) Select 172 168 167 - ReturnValue 173 + 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 - 178: 177(ptr) AccessChain 108 176 - 179: 7(fvec3) Load 178 - 180: 14(ivec3) ConvertFToS 179 - Store 61(p) 180 - 181: 177(ptr) AccessChain 108 176 - 182: 7(fvec3) Load 181 - 183: 14(ivec3) ConvertFToS 182 - ReturnValue 183 + 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 - 186: 147(ptr) AccessChain 108 146 - 187: 35(fvec3) Load 186 - 188: 14(ivec3) ConvertFToS 187 - Store 64(p) 188 - 189: 147(ptr) AccessChain 108 146 - 190: 35(fvec3) Load 189 - 191: 14(ivec3) ConvertFToS 190 - ReturnValue 191 + 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 - 194: 110(ptr) AccessChain 108 109 - 195: 14(ivec3) Load 194 - 196: 21(ivec3) Bitcast 195 - Store 68(p) 196 - 197: 110(ptr) AccessChain 108 109 - 198: 14(ivec3) Load 197 - 199: 21(ivec3) Bitcast 198 - ReturnValue 199 + 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 - 202: 177(ptr) AccessChain 108 176 - 203: 7(fvec3) Load 202 - 204: 21(ivec3) ConvertFToU 203 - Store 71(p) 204 - 205: 177(ptr) AccessChain 108 176 - 206: 7(fvec3) Load 205 - 207: 21(ivec3) ConvertFToU 206 - ReturnValue 207 + 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 - 210: 120(ptr) AccessChain 108 129 - 211: 21(ivec3) Load 210 - 212: 28(bvec3) INotEqual 211 133 - 215: 21(ivec3) Select 212 214 133 - Store 74(p) 215 - 216: 120(ptr) AccessChain 108 129 - 217: 21(ivec3) Load 216 - 218: 28(bvec3) INotEqual 217 133 - 219: 21(ivec3) Select 218 214 133 - ReturnValue 219 + 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 - 222: 147(ptr) AccessChain 108 146 - 223: 35(fvec3) Load 222 - 224: 21(ivec3) ConvertFToU 223 - Store 77(p) 224 - 225: 147(ptr) AccessChain 108 146 - 226: 35(fvec3) Load 225 - 227: 21(ivec3) ConvertFToU 226 - ReturnValue 227 + 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 - 230: 110(ptr) AccessChain 108 109 - 231: 14(ivec3) Load 230 - 232: 28(bvec3) INotEqual 231 133 - Store 81(p) 232 - 233: 110(ptr) AccessChain 108 109 - 234: 14(ivec3) Load 233 - 235: 28(bvec3) INotEqual 234 133 - ReturnValue 235 + 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 - 238: 120(ptr) AccessChain 108 119 - 239: 21(ivec3) Load 238 - 240: 28(bvec3) INotEqual 239 133 - Store 84(p) 240 - 241: 120(ptr) AccessChain 108 119 - 242: 21(ivec3) Load 241 - 243: 28(bvec3) INotEqual 242 133 - ReturnValue 243 + 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 - 246: 177(ptr) AccessChain 108 176 - 247: 7(fvec3) Load 246 - 248: 28(bvec3) FOrdNotEqual 247 137 - Store 87(p) 248 - 249: 177(ptr) AccessChain 108 176 - 250: 7(fvec3) Load 249 - 251: 28(bvec3) FOrdNotEqual 250 137 - ReturnValue 251 + 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 - 254: 147(ptr) AccessChain 108 146 - 255: 35(fvec3) Load 254 - 258: 28(bvec3) FOrdNotEqual 255 257 - Store 90(p) 258 - 259: 147(ptr) AccessChain 108 146 - 260: 35(fvec3) Load 259 - 261: 28(bvec3) FOrdNotEqual 260 257 - ReturnValue 261 + 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(fvec3) Function None 93 +95(Fn_R_D3I(vd3;): 35(f64vec3) Function None 93 94(p): 36(ptr) FunctionParameter 96: Label - 264: 110(ptr) AccessChain 108 109 - 265: 14(ivec3) Load 264 - 266: 35(fvec3) ConvertSToF 265 - Store 94(p) 266 - 267: 110(ptr) AccessChain 108 109 - 268: 14(ivec3) Load 267 - 269: 35(fvec3) ConvertSToF 268 - ReturnValue 269 + 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(fvec3) Function None 93 +98(Fn_R_D3U(vd3;): 35(f64vec3) Function None 93 97(p): 36(ptr) FunctionParameter 99: Label - 272: 120(ptr) AccessChain 108 119 - 273: 21(ivec3) Load 272 - 274: 35(fvec3) ConvertUToF 273 - Store 97(p) 274 - 275: 120(ptr) AccessChain 108 119 - 276: 21(ivec3) Load 275 - 277: 35(fvec3) ConvertUToF 276 - ReturnValue 277 + 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(fvec3) Function None 93 +101(Fn_R_D3B(vd3;): 35(f64vec3) Function None 93 100(p): 36(ptr) FunctionParameter 102: Label - 280: 120(ptr) AccessChain 108 129 - 281: 21(ivec3) Load 280 - 282: 28(bvec3) INotEqual 281 133 - 285: 35(fvec3) Select 282 284 257 - Store 100(p) 285 - 286: 120(ptr) AccessChain 108 129 - 287: 21(ivec3) Load 286 - 288: 28(bvec3) INotEqual 287 133 - 289: 35(fvec3) Select 288 284 257 - ReturnValue 289 + 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(fvec3) Function None 93 +104(Fn_R_D3F(vd3;): 35(f64vec3) Function None 93 103(p): 36(ptr) FunctionParameter 105: Label - 292: 177(ptr) AccessChain 108 176 - 293: 7(fvec3) Load 292 - 294: 35(fvec3) FConvert 293 - Store 103(p) 294 - 295: 177(ptr) AccessChain 108 176 - 296: 7(fvec3) Load 295 - 297: 35(fvec3) FConvert 296 - ReturnValue 297 + 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.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.vert.out index 8ecfde6168..5f7a033961 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.reflection.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.vert.out @@ -2,26 +2,19 @@ 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 -ablock.scalar: offset 12, type 1404, size 1, index 2, binding -1 m23: offset 16, type 8b67, size 1, index 0, binding -1 scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 -c_m23: offset 16, type 8b67, size 1, index 3, binding -1 -c_scalarAfterm23: offset 48, type 1404, size 1, index 3, binding -1 +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 -ablock.memfloat2: offset 48, type 8b50, size 1, index 2, binding -1 -ablock.memf1: offset 56, type 1406, size 1, index 2, binding -1 -ablock.memf2: offset 60, type 8b56, size 1, index 2, binding -1 -ablock.memf3: offset 64, type 1404, size 1, index 2, binding -1 -ablock.memfloat2a: offset 72, type 8b50, size 1, index 2, binding -1 -ablock.m22: offset 80, type 8b5a, size 7, index 2, binding -1 +m22: offset 208, type 8b5a, size 9, index 0, binding -1 dm22: offset 32, type 8b5a, size 4, index 1, binding -1 -m22: offset 208, type 8b5a, size 3, index 0, binding -1 -nest.foo.n1.a: offset 0, type 1406, size 1, index 4, binding -1 -nest.foo.n2.b: offset 16, type 1406, size 1, index 4, binding -1 -nest.foo.n2.c: offset 20, type 1406, size 1, index 4, binding -1 -nest.foo.n2.d: offset 24, type 1406, size 1, index 4, binding -1 +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 @@ -61,19 +54,18 @@ deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 deepD[1].v3: offset 2480, type 8b54, size 1, index 1, binding -1 -arrBl.foo: offset 0, type 1406, size 1, index 5, binding -1 -arrBl2.foo: offset 0, type 1406, size 1, index 6, binding -1 +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 -ablock: offset -1, type ffffffff, size 304, index -1, binding -1 c_nameless: offset -1, type ffffffff, size 96, index -1, binding -1 -nest: offset -1, type ffffffff, size 32, index -1, binding -1 -arrBl: offset -1, type ffffffff, size 4, index -1, binding -1 -arrBl2: offset -1, type ffffffff, size 4, index -1, binding -1 +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 diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.rw.atomics.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.atomics.frag.out index 123bd4cbee..c874cd23ce 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.rw.atomics.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.atomics.frag.out @@ -1,1933 +1,1933 @@ hlsl.rw.atomics.frag -Shader version: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:45 Function Parameters: 0:? Sequence -0:50 imageAtomicAdd (temp int) -0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:50 i1: direct index for structure (layout(offset=36 ) uniform int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 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 (layout(offset=60 ) uniform int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 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 (layout(offset=36 ) uniform int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 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 (layout(offset=36 ) uniform int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 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 (layout(offset=36 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 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 (layout(offset=60 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 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 (layout(offset=36 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 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 (layout(offset=36 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 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 (layout(offset=36 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 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 (layout(offset=60 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 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 (layout(offset=64 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 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 (layout(offset=36 ) uniform int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 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 (layout(offset=36 ) uniform int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 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 (layout(offset=36 ) uniform int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 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 (layout(offset=60 ) uniform int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 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 (layout(offset=36 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 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 (layout(offset=36 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 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 (layout(offset=36 ) uniform int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 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 (layout(offset=60 ) uniform int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 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 (layout(offset=36 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 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 (layout(offset=36 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 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 (layout(offset=36 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 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 (layout(offset=60 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 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 (layout(offset=36 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 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 (layout(offset=36 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 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 (layout(offset=36 ) uniform int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 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 (layout(offset=60 ) uniform int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 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 (layout(offset=36 ) uniform int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 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 (layout(offset=36 ) uniform int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 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 (layout(offset=0 ) uniform uint) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 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 (layout(offset=0 ) uniform uint) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 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 (layout(offset=0 ) uniform uint) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 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 (layout(offset=0 ) uniform uint) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 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 (layout(offset=0 ) uniform uint) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 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 (layout(offset=0 ) uniform uint) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 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 (layout(offset=0 ) uniform uint) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 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 (layout(offset=0 ) uniform uint) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 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 (layout(offset=0 ) uniform uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 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 (layout(offset=28 ) uniform uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 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 (layout(offset=32 ) uniform uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 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 (layout(offset=0 ) uniform uint) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 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 (layout(offset=0 ) uniform uint) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 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 (layout(offset=0 ) uniform uint) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 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 (layout(offset=0 ) uniform uint) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 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 (layout(offset=0 ) uniform uint) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 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 (layout(offset=0 ) uniform uint) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 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 (layout(offset=0 ) uniform uint) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 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 (layout(offset=0 ) uniform uint) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 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 (layout(offset=0 ) uniform uint) -0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 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 (layout(offset=0 ) uniform uint) -0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 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 (layout(offset=0 ) uniform uint) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 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 (layout(offset=0 ) uniform uint) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 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 (layout(offset=0 ) uniform uint) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 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 (layout(offset=0 ) uniform uint) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 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 (layout(offset=0 ) uniform uint) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 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 (layout(offset=0 ) uniform uint) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 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 (layout(offset=0 ) uniform uint) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 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 (layout(offset=0 ) uniform uint) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 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 (layout(offset=40 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 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 (layout(offset=60 ) uniform int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 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 (layout(offset=40 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 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 (layout(offset=36 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 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 (layout(offset=40 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 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 (layout(offset=60 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 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 (layout(offset=40 ) uniform 2-component vector of int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 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 (layout(offset=36 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 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 (layout(offset=40 ) uniform 2-component vector of int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 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 (layout(offset=60 ) uniform int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 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 (layout(offset=64 ) uniform int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 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 (layout(offset=40 ) uniform 2-component vector of int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 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 (layout(offset=36 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 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 (layout(offset=40 ) uniform 2-component vector of int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 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 (layout(offset=60 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 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 (layout(offset=40 ) uniform 2-component vector of int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 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 (layout(offset=36 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 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 (layout(offset=40 ) uniform 2-component vector of int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 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 (layout(offset=60 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 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 (layout(offset=40 ) uniform 2-component vector of int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 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 (layout(offset=36 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 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 (layout(offset=40 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 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 (layout(offset=60 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 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 (layout(offset=40 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 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 (layout(offset=36 ) uniform int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 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 (layout(offset=40 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 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 (layout(offset=60 ) uniform int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 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 (layout(offset=40 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 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 (layout(offset=36 ) uniform int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 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 (layout(offset=0 ) uniform uint) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 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 (layout(offset=0 ) uniform uint) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 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 (layout(offset=0 ) uniform uint) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 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 (layout(offset=0 ) uniform uint) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 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 (layout(offset=28 ) uniform uint) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 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 (layout(offset=32 ) uniform uint) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 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 (layout(offset=0 ) uniform uint) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 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 (layout(offset=0 ) uniform uint) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 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 (layout(offset=0 ) uniform uint) -0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 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 (layout(offset=0 ) uniform uint) -0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 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 (layout(offset=0 ) uniform uint) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 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 (layout(offset=0 ) uniform uint) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 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 (layout(offset=0 ) uniform uint) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 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 (layout(offset=0 ) uniform uint) -0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 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 (layout(offset=0 ) uniform uint) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 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 (layout(offset=48 ) uniform 3-component vector of int) -0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 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 (layout(offset=60 ) uniform int) -0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 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 (layout(offset=48 ) uniform 3-component vector of int) -0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 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 (layout(offset=36 ) uniform int) -0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 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 (layout(offset=48 ) uniform 3-component vector of int) -0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 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 (layout(offset=60 ) uniform int) -0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 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 (layout(offset=48 ) uniform 3-component vector of int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 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 (layout(offset=36 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 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 (layout(offset=48 ) uniform 3-component vector of int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 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 (layout(offset=60 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 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 (layout(offset=64 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 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 (layout(offset=48 ) uniform 3-component vector of int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 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 (layout(offset=36 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 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 (layout(offset=48 ) uniform 3-component vector of int) -0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 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 (layout(offset=60 ) uniform int) -0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 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 (layout(offset=48 ) uniform 3-component vector of int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 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 (layout(offset=36 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 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 (layout(offset=48 ) uniform 3-component vector of int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 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 (layout(offset=60 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 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 (layout(offset=48 ) uniform 3-component vector of int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 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 (layout(offset=36 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 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 (layout(offset=48 ) uniform 3-component vector of int) -0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 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 (layout(offset=60 ) uniform int) -0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 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 (layout(offset=48 ) uniform 3-component vector of int) -0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 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 (layout(offset=36 ) uniform int) -0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 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 (layout(offset=48 ) uniform 3-component vector of int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 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 (layout(offset=60 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 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 (layout(offset=48 ) uniform 3-component vector of int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 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 (layout(offset=36 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 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 (layout(offset=0 ) uniform uint) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 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 (layout(offset=0 ) uniform uint) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 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 (layout(offset=0 ) uniform uint) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 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 (layout(offset=0 ) uniform uint) -0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 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 (layout(offset=28 ) uniform uint) -0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 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 (layout(offset=32 ) uniform uint) -0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 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 (layout(offset=0 ) uniform uint) -0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 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 (layout(offset=0 ) uniform uint) -0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 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 (layout(offset=0 ) uniform uint) -0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 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 (layout(offset=0 ) uniform uint) -0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 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 (layout(offset=0 ) uniform uint) -0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 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 (layout(offset=0 ) uniform uint) -0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 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 (layout(offset=0 ) uniform uint) -0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 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 (layout(offset=0 ) uniform uint) -0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 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 (layout(offset=0 ) uniform uint) -0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 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 (layout(offset=40 ) uniform 2-component vector of int) -0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 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 (layout(offset=60 ) uniform int) -0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 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 (layout(offset=40 ) uniform 2-component vector of int) -0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 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 (layout(offset=36 ) uniform int) -0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 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 (layout(offset=40 ) uniform 2-component vector of int) -0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 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 (layout(offset=60 ) uniform int) -0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 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 (layout(offset=40 ) uniform 2-component vector of int) -0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 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 (layout(offset=36 ) uniform int) -0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 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 (layout(offset=40 ) uniform 2-component vector of int) -0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 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 (layout(offset=60 ) uniform int) -0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 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 (layout(offset=64 ) uniform int) -0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 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 (layout(offset=40 ) uniform 2-component vector of int) -0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 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 (layout(offset=36 ) uniform int) -0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 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 (layout(offset=40 ) uniform 2-component vector of int) -0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 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 (layout(offset=60 ) uniform int) -0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 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 (layout(offset=40 ) uniform 2-component vector of int) -0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 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 (layout(offset=36 ) uniform int) -0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 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 (layout(offset=40 ) uniform 2-component vector of int) -0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 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 (layout(offset=60 ) uniform int) -0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 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 (layout(offset=40 ) uniform 2-component vector of int) -0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 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 (layout(offset=36 ) uniform int) -0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 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 (layout(offset=40 ) uniform 2-component vector of int) -0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 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 (layout(offset=60 ) uniform int) -0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 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 (layout(offset=40 ) uniform 2-component vector of int) -0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 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 (layout(offset=36 ) uniform int) -0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 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 (layout(offset=40 ) uniform 2-component vector of int) -0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 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 (layout(offset=60 ) uniform int) -0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 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 (layout(offset=40 ) uniform 2-component vector of int) -0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 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 (layout(offset=36 ) uniform int) -0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 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 (layout(offset=0 ) uniform uint) -0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 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 (layout(offset=0 ) uniform uint) -0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 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 (layout(offset=0 ) uniform uint) -0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 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 (layout(offset=0 ) uniform uint) -0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 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 (layout(offset=28 ) uniform uint) -0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 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 (layout(offset=32 ) uniform uint) -0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 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 (layout(offset=0 ) uniform uint) -0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 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 (layout(offset=0 ) uniform uint) -0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 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 (layout(offset=0 ) uniform uint) -0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 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 (layout(offset=0 ) uniform uint) -0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 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 (layout(offset=0 ) uniform uint) -0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 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 (layout(offset=0 ) uniform uint) -0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 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 (layout(offset=0 ) uniform uint) -0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 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 (layout(offset=0 ) uniform uint) -0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 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 (layout(offset=0 ) uniform uint) -0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 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 (layout(offset=40 ) uniform 2-component vector of int) -0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 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 (layout(offset=60 ) uniform int) -0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 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 (layout(offset=40 ) uniform 2-component vector of int) -0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 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 (layout(offset=36 ) uniform int) -0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 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 (layout(offset=40 ) uniform 2-component vector of int) -0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 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 (layout(offset=60 ) uniform int) -0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 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 (layout(offset=40 ) uniform 2-component vector of int) -0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 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 (layout(offset=36 ) uniform int) -0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 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 (layout(offset=40 ) uniform 2-component vector of int) -0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 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 (layout(offset=60 ) uniform int) -0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 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 (layout(offset=64 ) uniform int) -0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 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 (layout(offset=40 ) uniform 2-component vector of int) -0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 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 (layout(offset=36 ) uniform int) -0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 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 (layout(offset=40 ) uniform 2-component vector of int) -0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 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 (layout(offset=60 ) uniform int) -0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 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 (layout(offset=40 ) uniform 2-component vector of int) -0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 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 (layout(offset=36 ) uniform int) -0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 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 (layout(offset=40 ) uniform 2-component vector of int) -0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 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 (layout(offset=60 ) uniform int) -0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 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 (layout(offset=40 ) uniform 2-component vector of int) -0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 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 (layout(offset=36 ) uniform int) -0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 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 (layout(offset=40 ) uniform 2-component vector of int) -0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 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 (layout(offset=60 ) uniform int) -0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 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 (layout(offset=40 ) uniform 2-component vector of int) -0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 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 (layout(offset=36 ) uniform int) -0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 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 (layout(offset=40 ) uniform 2-component vector of int) -0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 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 (layout(offset=60 ) uniform int) -0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 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 (layout(offset=40 ) uniform 2-component vector of int) -0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 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 (layout(offset=36 ) uniform int) -0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 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 (layout(offset=0 ) uniform uint) -0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 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 (layout(offset=0 ) uniform uint) -0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 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 (layout(offset=0 ) uniform uint) -0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 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 (layout(offset=0 ) uniform uint) -0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 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 (layout(offset=28 ) uniform uint) -0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 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 (layout(offset=32 ) uniform uint) -0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 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 (layout(offset=0 ) uniform uint) -0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 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 (layout(offset=0 ) uniform uint) -0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 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 (layout(offset=0 ) uniform uint) -0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 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 (layout(offset=0 ) uniform uint) -0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 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 (layout(offset=0 ) uniform uint) -0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 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 (layout(offset=0 ) uniform uint) -0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 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 (layout(offset=0 ) uniform uint) -0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 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 (layout(offset=0 ) uniform uint) -0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 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 (layout(offset=0 ) uniform uint) -0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 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 (layout(offset=36 ) uniform int) -0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 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 (layout(offset=60 ) uniform int) -0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 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 (layout(offset=36 ) uniform int) -0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 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 (layout(offset=36 ) uniform int) -0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 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 (layout(offset=36 ) uniform int) -0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 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 (layout(offset=60 ) uniform int) -0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 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 (layout(offset=36 ) uniform int) -0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 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 (layout(offset=36 ) uniform int) -0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 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 (layout(offset=36 ) uniform int) -0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 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 (layout(offset=60 ) uniform int) -0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 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 (layout(offset=64 ) uniform int) -0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 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 (layout(offset=36 ) uniform int) -0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 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 (layout(offset=36 ) uniform int) -0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 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 (layout(offset=36 ) uniform int) -0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 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 (layout(offset=60 ) uniform int) -0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 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 (layout(offset=36 ) uniform int) -0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 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 (layout(offset=36 ) uniform int) -0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 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 (layout(offset=36 ) uniform int) -0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 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 (layout(offset=60 ) uniform int) -0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 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 (layout(offset=36 ) uniform int) -0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 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 (layout(offset=36 ) uniform int) -0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 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 (layout(offset=36 ) uniform int) -0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 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 (layout(offset=60 ) uniform int) -0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 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 (layout(offset=36 ) uniform int) -0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 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 (layout(offset=36 ) uniform int) -0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 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 (layout(offset=36 ) uniform int) -0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 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 (layout(offset=60 ) uniform int) -0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 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 (layout(offset=36 ) uniform int) -0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 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 (layout(offset=36 ) uniform int) -0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 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 (layout(offset=0 ) uniform uint) -0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 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 (layout(offset=0 ) uniform uint) -0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 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 (layout(offset=0 ) uniform uint) -0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 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 (layout(offset=0 ) uniform uint) -0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 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 (layout(offset=0 ) uniform uint) -0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 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 (layout(offset=0 ) uniform uint) -0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 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 (layout(offset=0 ) uniform uint) -0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 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 (layout(offset=0 ) uniform uint) -0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 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 (layout(offset=0 ) uniform uint) -0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 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 (layout(offset=28 ) uniform uint) -0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 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 (layout(offset=32 ) uniform uint) -0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 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 (layout(offset=0 ) uniform uint) -0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 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 (layout(offset=0 ) uniform uint) -0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 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 (layout(offset=0 ) uniform uint) -0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 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 (layout(offset=0 ) uniform uint) -0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 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 (layout(offset=0 ) uniform uint) -0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 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 (layout(offset=0 ) uniform uint) -0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 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 (layout(offset=0 ) uniform uint) -0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 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 (layout(offset=0 ) uniform uint) -0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 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 (layout(offset=0 ) uniform uint) -0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 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 (layout(offset=0 ) uniform uint) -0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 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 (layout(offset=0 ) uniform uint) -0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 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 (layout(offset=0 ) uniform uint) -0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 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 (layout(offset=0 ) uniform uint) -0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 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 (layout(offset=0 ) uniform uint) -0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 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 (layout(offset=0 ) uniform uint) -0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 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 (layout(offset=0 ) uniform uint) -0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 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 (layout(offset=0 ) uniform uint) -0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 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 (layout(offset=0 ) uniform uint) -0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 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 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: @@ -1935,1971 +1935,1974 @@ gl_FragCoord origin is upper left 0:242 1.000000 0:242 1.000000 0:242 1.000000 -0:243 Sequence -0:243 Sequence -0:243 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:243 Color: direct index for structure (temp 4-component vector of float) -0:243 'psout' (temp structure{temp 4-component vector of float Color}) -0:243 Constant: -0:243 0 (const int) -0:243 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) -0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) -0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) -0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) -0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) -0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) -0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) -0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) -0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) -0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) -0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) -0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) -0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +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: 450 +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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:45 Function Parameters: 0:? Sequence -0:50 imageAtomicAdd (temp int) -0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:50 i1: direct index for structure (layout(offset=36 ) uniform int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 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 (layout(offset=60 ) uniform int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 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 (layout(offset=36 ) uniform int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 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 (layout(offset=36 ) uniform int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 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 (layout(offset=36 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 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 (layout(offset=60 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 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 (layout(offset=36 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 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 (layout(offset=36 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 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 (layout(offset=36 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 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 (layout(offset=60 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 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 (layout(offset=64 ) uniform int) -0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 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 (layout(offset=36 ) uniform int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 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 (layout(offset=36 ) uniform int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 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 (layout(offset=36 ) uniform int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 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 (layout(offset=60 ) uniform int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 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 (layout(offset=36 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 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 (layout(offset=36 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 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 (layout(offset=36 ) uniform int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 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 (layout(offset=60 ) uniform int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 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 (layout(offset=36 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 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 (layout(offset=36 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 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 (layout(offset=36 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 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 (layout(offset=60 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 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 (layout(offset=36 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 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 (layout(offset=36 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 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 (layout(offset=36 ) uniform int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 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 (layout(offset=60 ) uniform int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 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 (layout(offset=36 ) uniform int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 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 (layout(offset=36 ) uniform int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 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 (layout(offset=0 ) uniform uint) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 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 (layout(offset=0 ) uniform uint) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 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 (layout(offset=0 ) uniform uint) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 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 (layout(offset=0 ) uniform uint) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 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 (layout(offset=0 ) uniform uint) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 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 (layout(offset=0 ) uniform uint) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 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 (layout(offset=0 ) uniform uint) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 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 (layout(offset=0 ) uniform uint) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 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 (layout(offset=0 ) uniform uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 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 (layout(offset=28 ) uniform uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 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 (layout(offset=32 ) uniform uint) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 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 (layout(offset=0 ) uniform uint) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 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 (layout(offset=0 ) uniform uint) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 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 (layout(offset=0 ) uniform uint) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 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 (layout(offset=0 ) uniform uint) -0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 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 (layout(offset=0 ) uniform uint) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 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 (layout(offset=0 ) uniform uint) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 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 (layout(offset=0 ) uniform uint) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 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 (layout(offset=0 ) uniform uint) -0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 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 (layout(offset=0 ) uniform uint) -0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 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 (layout(offset=0 ) uniform uint) -0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 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 (layout(offset=0 ) uniform uint) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 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 (layout(offset=0 ) uniform uint) -0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 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 (layout(offset=0 ) uniform uint) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 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 (layout(offset=0 ) uniform uint) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 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 (layout(offset=0 ) uniform uint) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 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 (layout(offset=0 ) uniform uint) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 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 (layout(offset=0 ) uniform uint) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 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 (layout(offset=0 ) uniform uint) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 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 (layout(offset=40 ) uniform 2-component vector of int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 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 (layout(offset=60 ) uniform int) -0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 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 (layout(offset=40 ) uniform 2-component vector of int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 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 (layout(offset=36 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 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 (layout(offset=40 ) uniform 2-component vector of int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 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 (layout(offset=60 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 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 (layout(offset=40 ) uniform 2-component vector of int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 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 (layout(offset=36 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 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 (layout(offset=40 ) uniform 2-component vector of int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 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 (layout(offset=60 ) uniform int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 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 (layout(offset=64 ) uniform int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 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 (layout(offset=40 ) uniform 2-component vector of int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 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 (layout(offset=36 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 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 (layout(offset=40 ) uniform 2-component vector of int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 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 (layout(offset=60 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 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 (layout(offset=40 ) uniform 2-component vector of int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 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 (layout(offset=36 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 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 (layout(offset=40 ) uniform 2-component vector of int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 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 (layout(offset=60 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 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 (layout(offset=40 ) uniform 2-component vector of int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 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 (layout(offset=36 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 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 (layout(offset=40 ) uniform 2-component vector of int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 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 (layout(offset=60 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 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 (layout(offset=40 ) uniform 2-component vector of int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 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 (layout(offset=36 ) uniform int) -0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 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 (layout(offset=40 ) uniform 2-component vector of int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 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 (layout(offset=60 ) uniform int) -0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 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 (layout(offset=40 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 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 (layout(offset=36 ) uniform int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 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 (layout(offset=0 ) uniform uint) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 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 (layout(offset=0 ) uniform uint) -0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 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 (layout(offset=0 ) uniform uint) -0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 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 (layout(offset=0 ) uniform uint) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 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 (layout(offset=28 ) uniform uint) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 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 (layout(offset=32 ) uniform uint) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 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 (layout(offset=0 ) uniform uint) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 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 (layout(offset=0 ) uniform uint) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 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 (layout(offset=0 ) uniform uint) -0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 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 (layout(offset=0 ) uniform uint) -0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 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 (layout(offset=0 ) uniform uint) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 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 (layout(offset=0 ) uniform uint) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 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 (layout(offset=0 ) uniform uint) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 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 (layout(offset=0 ) uniform uint) -0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 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 (layout(offset=0 ) uniform uint) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 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 (layout(offset=48 ) uniform 3-component vector of int) -0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 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 (layout(offset=60 ) uniform int) -0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 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 (layout(offset=48 ) uniform 3-component vector of int) -0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 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 (layout(offset=36 ) uniform int) -0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 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 (layout(offset=48 ) uniform 3-component vector of int) -0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 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 (layout(offset=60 ) uniform int) -0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 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 (layout(offset=48 ) uniform 3-component vector of int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 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 (layout(offset=36 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 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 (layout(offset=48 ) uniform 3-component vector of int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 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 (layout(offset=60 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 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 (layout(offset=64 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 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 (layout(offset=48 ) uniform 3-component vector of int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 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 (layout(offset=36 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 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 (layout(offset=48 ) uniform 3-component vector of int) -0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 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 (layout(offset=60 ) uniform int) -0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 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 (layout(offset=48 ) uniform 3-component vector of int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 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 (layout(offset=36 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 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 (layout(offset=48 ) uniform 3-component vector of int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 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 (layout(offset=60 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 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 (layout(offset=48 ) uniform 3-component vector of int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 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 (layout(offset=36 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 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 (layout(offset=48 ) uniform 3-component vector of int) -0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 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 (layout(offset=60 ) uniform int) -0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 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 (layout(offset=48 ) uniform 3-component vector of int) -0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 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 (layout(offset=36 ) uniform int) -0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 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 (layout(offset=48 ) uniform 3-component vector of int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 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 (layout(offset=60 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 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 (layout(offset=48 ) uniform 3-component vector of int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 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 (layout(offset=36 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 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 (layout(offset=0 ) uniform uint) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 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 (layout(offset=0 ) uniform uint) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 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 (layout(offset=0 ) uniform uint) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 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 (layout(offset=0 ) uniform uint) -0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 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 (layout(offset=28 ) uniform uint) -0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 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 (layout(offset=32 ) uniform uint) -0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 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 (layout(offset=0 ) uniform uint) -0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 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 (layout(offset=0 ) uniform uint) -0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 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 (layout(offset=0 ) uniform uint) -0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 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 (layout(offset=0 ) uniform uint) -0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 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 (layout(offset=0 ) uniform uint) -0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 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 (layout(offset=0 ) uniform uint) -0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 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 (layout(offset=0 ) uniform uint) -0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 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 (layout(offset=0 ) uniform uint) -0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 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 (layout(offset=16 ) uniform 3-component vector of uint) -0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 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 (layout(offset=0 ) uniform uint) -0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 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 (layout(offset=40 ) uniform 2-component vector of int) -0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 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 (layout(offset=60 ) uniform int) -0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 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 (layout(offset=40 ) uniform 2-component vector of int) -0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 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 (layout(offset=36 ) uniform int) -0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 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 (layout(offset=40 ) uniform 2-component vector of int) -0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 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 (layout(offset=60 ) uniform int) -0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 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 (layout(offset=40 ) uniform 2-component vector of int) -0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 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 (layout(offset=36 ) uniform int) -0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 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 (layout(offset=40 ) uniform 2-component vector of int) -0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 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 (layout(offset=60 ) uniform int) -0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 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 (layout(offset=64 ) uniform int) -0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 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 (layout(offset=40 ) uniform 2-component vector of int) -0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 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 (layout(offset=36 ) uniform int) -0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 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 (layout(offset=40 ) uniform 2-component vector of int) -0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 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 (layout(offset=60 ) uniform int) -0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 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 (layout(offset=40 ) uniform 2-component vector of int) -0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 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 (layout(offset=36 ) uniform int) -0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 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 (layout(offset=40 ) uniform 2-component vector of int) -0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 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 (layout(offset=60 ) uniform int) -0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 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 (layout(offset=40 ) uniform 2-component vector of int) -0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 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 (layout(offset=36 ) uniform int) -0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 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 (layout(offset=40 ) uniform 2-component vector of int) -0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 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 (layout(offset=60 ) uniform int) -0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 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 (layout(offset=40 ) uniform 2-component vector of int) -0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 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 (layout(offset=36 ) uniform int) -0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 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 (layout(offset=40 ) uniform 2-component vector of int) -0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 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 (layout(offset=60 ) uniform int) -0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 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 (layout(offset=40 ) uniform 2-component vector of int) -0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 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 (layout(offset=36 ) uniform int) -0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 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 (layout(offset=0 ) uniform uint) -0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 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 (layout(offset=0 ) uniform uint) -0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 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 (layout(offset=0 ) uniform uint) -0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 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 (layout(offset=0 ) uniform uint) -0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 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 (layout(offset=28 ) uniform uint) -0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 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 (layout(offset=32 ) uniform uint) -0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 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 (layout(offset=0 ) uniform uint) -0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 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 (layout(offset=0 ) uniform uint) -0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 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 (layout(offset=0 ) uniform uint) -0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 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 (layout(offset=0 ) uniform uint) -0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 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 (layout(offset=0 ) uniform uint) -0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 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 (layout(offset=0 ) uniform uint) -0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 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 (layout(offset=0 ) uniform uint) -0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 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 (layout(offset=0 ) uniform uint) -0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 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 (layout(offset=0 ) uniform uint) -0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 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 (layout(offset=40 ) uniform 2-component vector of int) -0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 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 (layout(offset=60 ) uniform int) -0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 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 (layout(offset=40 ) uniform 2-component vector of int) -0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 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 (layout(offset=36 ) uniform int) -0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 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 (layout(offset=40 ) uniform 2-component vector of int) -0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 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 (layout(offset=60 ) uniform int) -0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 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 (layout(offset=40 ) uniform 2-component vector of int) -0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 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 (layout(offset=36 ) uniform int) -0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 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 (layout(offset=40 ) uniform 2-component vector of int) -0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 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 (layout(offset=60 ) uniform int) -0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 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 (layout(offset=64 ) uniform int) -0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 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 (layout(offset=40 ) uniform 2-component vector of int) -0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 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 (layout(offset=36 ) uniform int) -0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 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 (layout(offset=40 ) uniform 2-component vector of int) -0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 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 (layout(offset=60 ) uniform int) -0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 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 (layout(offset=40 ) uniform 2-component vector of int) -0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 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 (layout(offset=36 ) uniform int) -0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 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 (layout(offset=40 ) uniform 2-component vector of int) -0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 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 (layout(offset=60 ) uniform int) -0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 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 (layout(offset=40 ) uniform 2-component vector of int) -0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 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 (layout(offset=36 ) uniform int) -0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 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 (layout(offset=40 ) uniform 2-component vector of int) -0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 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 (layout(offset=60 ) uniform int) -0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 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 (layout(offset=40 ) uniform 2-component vector of int) -0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 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 (layout(offset=36 ) uniform int) -0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 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 (layout(offset=40 ) uniform 2-component vector of int) -0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 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 (layout(offset=60 ) uniform int) -0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 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 (layout(offset=40 ) uniform 2-component vector of int) -0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 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 (layout(offset=36 ) uniform int) -0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 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 (layout(offset=0 ) uniform uint) -0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 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 (layout(offset=0 ) uniform uint) -0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 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 (layout(offset=0 ) uniform uint) -0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 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 (layout(offset=0 ) uniform uint) -0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 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 (layout(offset=28 ) uniform uint) -0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 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 (layout(offset=32 ) uniform uint) -0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 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 (layout(offset=0 ) uniform uint) -0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 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 (layout(offset=0 ) uniform uint) -0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 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 (layout(offset=0 ) uniform uint) -0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 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 (layout(offset=0 ) uniform uint) -0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 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 (layout(offset=0 ) uniform uint) -0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 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 (layout(offset=0 ) uniform uint) -0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 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 (layout(offset=0 ) uniform uint) -0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 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 (layout(offset=0 ) uniform uint) -0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 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 (layout(offset=8 ) uniform 2-component vector of uint) -0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 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 (layout(offset=0 ) uniform uint) -0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 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 (layout(offset=36 ) uniform int) -0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 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 (layout(offset=60 ) uniform int) -0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 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 (layout(offset=36 ) uniform int) -0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 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 (layout(offset=36 ) uniform int) -0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 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 (layout(offset=36 ) uniform int) -0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 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 (layout(offset=60 ) uniform int) -0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 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 (layout(offset=36 ) uniform int) -0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 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 (layout(offset=36 ) uniform int) -0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 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 (layout(offset=36 ) uniform int) -0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 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 (layout(offset=60 ) uniform int) -0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 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 (layout(offset=64 ) uniform int) -0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 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 (layout(offset=36 ) uniform int) -0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 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 (layout(offset=36 ) uniform int) -0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 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 (layout(offset=36 ) uniform int) -0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 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 (layout(offset=60 ) uniform int) -0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 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 (layout(offset=36 ) uniform int) -0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 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 (layout(offset=36 ) uniform int) -0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 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 (layout(offset=36 ) uniform int) -0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 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 (layout(offset=60 ) uniform int) -0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 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 (layout(offset=36 ) uniform int) -0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 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 (layout(offset=36 ) uniform int) -0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 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 (layout(offset=36 ) uniform int) -0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 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 (layout(offset=60 ) uniform int) -0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 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 (layout(offset=36 ) uniform int) -0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 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 (layout(offset=36 ) uniform int) -0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 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 (layout(offset=36 ) uniform int) -0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 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 (layout(offset=60 ) uniform int) -0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 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 (layout(offset=36 ) uniform int) -0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 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 (layout(offset=36 ) uniform int) -0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 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 (layout(offset=0 ) uniform uint) -0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 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 (layout(offset=0 ) uniform uint) -0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 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 (layout(offset=0 ) uniform uint) -0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 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 (layout(offset=0 ) uniform uint) -0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 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 (layout(offset=0 ) uniform uint) -0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 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 (layout(offset=0 ) uniform uint) -0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 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 (layout(offset=0 ) uniform uint) -0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 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 (layout(offset=0 ) uniform uint) -0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 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 (layout(offset=0 ) uniform uint) -0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 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 (layout(offset=28 ) uniform uint) -0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 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 (layout(offset=32 ) uniform uint) -0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 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 (layout(offset=0 ) uniform uint) -0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 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 (layout(offset=0 ) uniform uint) -0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 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 (layout(offset=0 ) uniform uint) -0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 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 (layout(offset=0 ) uniform uint) -0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 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 (layout(offset=0 ) uniform uint) -0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 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 (layout(offset=0 ) uniform uint) -0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 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 (layout(offset=0 ) uniform uint) -0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 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 (layout(offset=0 ) uniform uint) -0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 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 (layout(offset=0 ) uniform uint) -0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 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 (layout(offset=0 ) uniform uint) -0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 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 (layout(offset=0 ) uniform uint) -0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 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 (layout(offset=0 ) uniform uint) -0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 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 (layout(offset=0 ) uniform uint) -0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 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 (layout(offset=0 ) uniform uint) -0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 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 (layout(offset=0 ) uniform uint) -0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 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 (layout(offset=0 ) uniform uint) -0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 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 (layout(offset=0 ) uniform uint) -0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 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 (layout(offset=0 ) uniform uint) -0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 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 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: @@ -3907,1355 +3910,1366 @@ gl_FragCoord origin is upper left 0:242 1.000000 0:242 1.000000 0:242 1.000000 -0:243 Sequence -0:243 Sequence -0:243 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:243 Color: direct index for structure (temp 4-component vector of float) -0:243 'psout' (temp structure{temp 4-component vector of float Color}) -0:243 Constant: -0:243 0 (const int) -0:243 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) -0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) -0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) -0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) -0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) -0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) -0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) -0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) -0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) -0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) -0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) -0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) -0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +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): 80001 -// Id's are bound by 1142 +// Generated by (magic number): 80007 +// Id's are bound by 1147 Capability Shader - Capability Sampled1D - Capability SampledBuffer + Capability Image1D + Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 1111 + EntryPoint Fragment 4 "main" 1117 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 9 "g_tTex1di1" - Name 15 "$Global" - MemberName 15($Global) 0 "u1" - MemberName 15($Global) 1 "u2" - MemberName 15($Global) 2 "u3" - MemberName 15($Global) 3 "u1b" - MemberName 15($Global) 4 "u1c" - MemberName 15($Global) 5 "i1" - MemberName 15($Global) 6 "i2" - MemberName 15($Global) 7 "i3" - MemberName 15($Global) 8 "i1b" - MemberName 15($Global) 9 "i1c" - Name 17 "" - Name 31 "out_i1" - Name 115 "g_tTex1du1" - Name 126 "out_u1" - Name 211 "g_tTex2di1" - Name 302 "g_tTex2du1" - Name 393 "g_tTex3di1" - Name 484 "g_tTex3du1" - Name 575 "g_tTex1di1a" - Name 664 "g_tTex1du1a" - Name 925 "g_tBuffI" - Name 1014 "g_tBuffU" - Name 1103 "PS_OUTPUT" - MemberName 1103(PS_OUTPUT) 0 "Color" - Name 1105 "psout" - Name 1111 "Color" - Name 1117 "g_sSamp" - Name 1120 "g_tTex1df1" - Name 1123 "g_tTex2df1" - Name 1126 "g_tTex3df1" - Name 1129 "g_tTex1df1a" - Name 1132 "g_tTex2df1a" - Name 1135 "g_tTex2di1a" - Name 1138 "g_tTex2du1a" - Name 1141 "g_tBuffF" - Decorate 9(g_tTex1di1) DescriptorSet 0 - MemberDecorate 15($Global) 0 Offset 0 - MemberDecorate 15($Global) 1 Offset 8 - MemberDecorate 15($Global) 2 Offset 16 - MemberDecorate 15($Global) 3 Offset 28 - MemberDecorate 15($Global) 4 Offset 32 - MemberDecorate 15($Global) 5 Offset 36 - MemberDecorate 15($Global) 6 Offset 40 - MemberDecorate 15($Global) 7 Offset 48 - MemberDecorate 15($Global) 8 Offset 60 - MemberDecorate 15($Global) 9 Offset 64 - Decorate 15($Global) Block - Decorate 17 DescriptorSet 0 - Decorate 115(g_tTex1du1) DescriptorSet 0 - Decorate 211(g_tTex2di1) DescriptorSet 0 - Decorate 302(g_tTex2du1) DescriptorSet 0 - Decorate 393(g_tTex3di1) DescriptorSet 0 - Decorate 484(g_tTex3du1) DescriptorSet 0 - Decorate 575(g_tTex1di1a) DescriptorSet 0 - Decorate 664(g_tTex1du1a) DescriptorSet 0 - Decorate 925(g_tBuffI) DescriptorSet 0 - Decorate 1014(g_tBuffU) DescriptorSet 0 - Decorate 1111(Color) Location 0 - Decorate 1117(g_sSamp) DescriptorSet 0 - Decorate 1120(g_tTex1df1) DescriptorSet 0 - Decorate 1123(g_tTex2df1) DescriptorSet 0 - Decorate 1126(g_tTex3df1) DescriptorSet 0 - Decorate 1129(g_tTex1df1a) DescriptorSet 0 - Decorate 1132(g_tTex2df1a) DescriptorSet 0 - Decorate 1135(g_tTex2di1a) DescriptorSet 0 - Decorate 1138(g_tTex2du1a) DescriptorSet 0 - Decorate 1141(g_tBuffF) DescriptorSet 0 + 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: TypeInt 32 1 - 7: TypeImage 6(int) 1D nonsampled format:R32i - 8: TypePointer UniformConstant 7 - 9(g_tTex1di1): 8(ptr) Variable UniformConstant - 10: TypeInt 32 0 - 11: TypeVector 10(int) 2 - 12: TypeVector 10(int) 3 - 13: TypeVector 6(int) 2 - 14: TypeVector 6(int) 3 - 15($Global): TypeStruct 10(int) 11(ivec2) 12(ivec3) 10(int) 10(int) 6(int) 13(ivec2) 14(ivec3) 6(int) 6(int) - 16: TypePointer Uniform 15($Global) - 17: 16(ptr) Variable Uniform - 18: 6(int) Constant 5 - 19: TypePointer Uniform 6(int) - 22: 6(int) Constant 8 - 25: 10(int) Constant 0 - 26: TypePointer Image 6(int) - 28: 10(int) Constant 1 - 30: TypePointer Function 6(int) - 54: 6(int) Constant 9 - 113: TypeImage 10(int) 1D nonsampled format:R32ui - 114: TypePointer UniformConstant 113 - 115(g_tTex1du1): 114(ptr) Variable UniformConstant - 116: 6(int) Constant 0 - 117: TypePointer Uniform 10(int) - 122: TypePointer Image 10(int) - 125: TypePointer Function 10(int) - 147: 6(int) Constant 3 - 150: 6(int) Constant 4 - 209: TypeImage 6(int) 2D nonsampled format:R32i - 210: TypePointer UniformConstant 209 - 211(g_tTex2di1): 210(ptr) Variable UniformConstant - 212: 6(int) Constant 6 - 213: TypePointer Uniform 13(ivec2) - 300: TypeImage 10(int) 2D nonsampled format:R32ui - 301: TypePointer UniformConstant 300 - 302(g_tTex2du1): 301(ptr) Variable UniformConstant - 303: 6(int) Constant 1 - 304: TypePointer Uniform 11(ivec2) - 391: TypeImage 6(int) 3D nonsampled format:R32i - 392: TypePointer UniformConstant 391 - 393(g_tTex3di1): 392(ptr) Variable UniformConstant - 394: 6(int) Constant 7 - 395: TypePointer Uniform 14(ivec3) - 482: TypeImage 10(int) 3D nonsampled format:R32ui - 483: TypePointer UniformConstant 482 - 484(g_tTex3du1): 483(ptr) Variable UniformConstant - 485: 6(int) Constant 2 - 486: TypePointer Uniform 12(ivec3) - 573: TypeImage 6(int) 1D array nonsampled format:R32i - 574: TypePointer UniformConstant 573 -575(g_tTex1di1a): 574(ptr) Variable UniformConstant - 662: TypeImage 10(int) 1D array nonsampled format:R32ui - 663: TypePointer UniformConstant 662 -664(g_tTex1du1a): 663(ptr) Variable UniformConstant - 923: TypeImage 6(int) Buffer nonsampled format:R32i - 924: TypePointer UniformConstant 923 - 925(g_tBuffI): 924(ptr) Variable UniformConstant - 1012: TypeImage 10(int) Buffer nonsampled format:R32ui - 1013: TypePointer UniformConstant 1012 - 1014(g_tBuffU): 1013(ptr) Variable UniformConstant - 1101: TypeFloat 32 - 1102: TypeVector 1101(float) 4 - 1103(PS_OUTPUT): TypeStruct 1102(fvec4) - 1104: TypePointer Function 1103(PS_OUTPUT) - 1106: 1101(float) Constant 1065353216 - 1107: 1102(fvec4) ConstantComposite 1106 1106 1106 1106 - 1108: TypePointer Function 1102(fvec4) - 1110: TypePointer Output 1102(fvec4) - 1111(Color): 1110(ptr) Variable Output - 1115: TypeSampler - 1116: TypePointer UniformConstant 1115 - 1117(g_sSamp): 1116(ptr) Variable UniformConstant - 1118: TypeImage 1101(float) 1D nonsampled format:R32f - 1119: TypePointer UniformConstant 1118 -1120(g_tTex1df1): 1119(ptr) Variable UniformConstant - 1121: TypeImage 1101(float) 2D nonsampled format:R32f - 1122: TypePointer UniformConstant 1121 -1123(g_tTex2df1): 1122(ptr) Variable UniformConstant - 1124: TypeImage 1101(float) 3D nonsampled format:R32f - 1125: TypePointer UniformConstant 1124 -1126(g_tTex3df1): 1125(ptr) Variable UniformConstant - 1127: TypeImage 1101(float) 1D array nonsampled format:R32f - 1128: TypePointer UniformConstant 1127 -1129(g_tTex1df1a): 1128(ptr) Variable UniformConstant - 1130: TypeImage 1101(float) 2D array nonsampled format:R32f - 1131: TypePointer UniformConstant 1130 -1132(g_tTex2df1a): 1131(ptr) Variable UniformConstant - 1133: TypeImage 6(int) 2D array nonsampled format:R32i - 1134: TypePointer UniformConstant 1133 -1135(g_tTex2di1a): 1134(ptr) Variable UniformConstant - 1136: TypeImage 10(int) 2D array nonsampled format:R32ui - 1137: TypePointer UniformConstant 1136 -1138(g_tTex2du1a): 1137(ptr) Variable UniformConstant - 1139: TypeImage 1101(float) Buffer nonsampled format:R32f - 1140: TypePointer UniformConstant 1139 - 1141(g_tBuffF): 1140(ptr) Variable UniformConstant + 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 - 31(out_i1): 30(ptr) Variable Function - 126(out_u1): 125(ptr) Variable Function - 1105(psout): 1104(ptr) Variable Function - 20: 19(ptr) AccessChain 17 18 - 21: 6(int) Load 20 - 23: 19(ptr) AccessChain 17 22 - 24: 6(int) Load 23 - 27: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 21 25 - 29: 6(int) AtomicIAdd 27 28 25 24 - 32: 19(ptr) AccessChain 17 18 - 33: 6(int) Load 32 - 34: 19(ptr) AccessChain 17 18 - 35: 6(int) Load 34 - 36: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 33 25 - 37: 6(int) AtomicIAdd 36 28 25 35 - Store 31(out_i1) 37 - 38: 19(ptr) AccessChain 17 18 - 39: 6(int) Load 38 - 40: 19(ptr) AccessChain 17 22 - 41: 6(int) Load 40 - 42: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 39 25 - 43: 6(int) AtomicAnd 42 28 25 41 - 44: 19(ptr) AccessChain 17 18 - 45: 6(int) Load 44 - 46: 19(ptr) AccessChain 17 18 - 47: 6(int) Load 46 - 48: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 45 25 - 49: 6(int) AtomicAnd 48 28 25 47 - Store 31(out_i1) 49 - 50: 19(ptr) AccessChain 17 18 - 51: 6(int) Load 50 - 52: 19(ptr) AccessChain 17 22 - 53: 6(int) Load 52 - 55: 19(ptr) AccessChain 17 54 - 56: 6(int) Load 55 - 57: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 51 25 - 58: 6(int) AtomicCompareExchange 57 28 25 25 56 53 - Store 31(out_i1) 58 - 59: 19(ptr) AccessChain 17 18 - 60: 6(int) Load 59 - 61: 19(ptr) AccessChain 17 18 - 62: 6(int) Load 61 - 63: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 60 25 - 64: 6(int) AtomicExchange 63 28 25 62 - Store 31(out_i1) 64 - 65: 19(ptr) AccessChain 17 18 - 66: 6(int) Load 65 - 67: 19(ptr) AccessChain 17 22 - 68: 6(int) Load 67 - 69: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 66 25 - 70: 6(int) AtomicSMax 69 28 25 68 - 71: 19(ptr) AccessChain 17 18 - 72: 6(int) Load 71 - 73: 19(ptr) AccessChain 17 18 - 74: 6(int) Load 73 - 75: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 72 25 - 76: 6(int) AtomicSMax 75 28 25 74 - Store 31(out_i1) 76 - 77: 19(ptr) AccessChain 17 18 - 78: 6(int) Load 77 - 79: 19(ptr) AccessChain 17 22 - 80: 6(int) Load 79 - 81: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 78 25 - 82: 6(int) AtomicSMin 81 28 25 80 - 83: 19(ptr) AccessChain 17 18 - 84: 6(int) Load 83 - 85: 19(ptr) AccessChain 17 18 - 86: 6(int) Load 85 - 87: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 84 25 - 88: 6(int) AtomicSMin 87 28 25 86 - Store 31(out_i1) 88 - 89: 19(ptr) AccessChain 17 18 - 90: 6(int) Load 89 - 91: 19(ptr) AccessChain 17 22 - 92: 6(int) Load 91 - 93: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 90 25 - 94: 6(int) AtomicOr 93 28 25 92 - 95: 19(ptr) AccessChain 17 18 - 96: 6(int) Load 95 - 97: 19(ptr) AccessChain 17 18 - 98: 6(int) Load 97 - 99: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 96 25 - 100: 6(int) AtomicOr 99 28 25 98 - Store 31(out_i1) 100 - 101: 19(ptr) AccessChain 17 18 - 102: 6(int) Load 101 - 103: 19(ptr) AccessChain 17 22 - 104: 6(int) Load 103 - 105: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 102 25 - 106: 6(int) AtomicXor 105 28 25 104 - 107: 19(ptr) AccessChain 17 18 - 108: 6(int) Load 107 - 109: 19(ptr) AccessChain 17 18 - 110: 6(int) Load 109 - 111: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 108 25 - 112: 6(int) AtomicXor 111 28 25 110 - Store 31(out_i1) 112 - 118: 117(ptr) AccessChain 17 116 - 119: 10(int) Load 118 - 120: 117(ptr) AccessChain 17 116 - 121: 10(int) Load 120 - 123: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 119 25 - 124: 10(int) AtomicIAdd 123 28 25 121 - 127: 117(ptr) AccessChain 17 116 - 128: 10(int) Load 127 - 129: 117(ptr) AccessChain 17 116 - 130: 10(int) Load 129 - 131: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 128 25 - 132: 10(int) AtomicIAdd 131 28 25 130 - Store 126(out_u1) 132 - 133: 117(ptr) AccessChain 17 116 - 134: 10(int) Load 133 - 135: 117(ptr) AccessChain 17 116 - 136: 10(int) Load 135 - 137: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 134 25 - 138: 10(int) AtomicAnd 137 28 25 136 - 139: 117(ptr) AccessChain 17 116 - 140: 10(int) Load 139 - 141: 117(ptr) AccessChain 17 116 - 142: 10(int) Load 141 - 143: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 140 25 - 144: 10(int) AtomicAnd 143 28 25 142 - Store 126(out_u1) 144 - 145: 117(ptr) AccessChain 17 116 - 146: 10(int) Load 145 - 148: 117(ptr) AccessChain 17 147 - 149: 10(int) Load 148 - 151: 117(ptr) AccessChain 17 150 - 152: 10(int) Load 151 - 153: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 146 25 - 154: 10(int) AtomicCompareExchange 153 28 25 25 152 149 - Store 126(out_u1) 154 - 155: 117(ptr) AccessChain 17 116 - 156: 10(int) Load 155 - 157: 117(ptr) AccessChain 17 116 - 158: 10(int) Load 157 - 159: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 156 25 - 160: 10(int) AtomicExchange 159 28 25 158 - Store 126(out_u1) 160 - 161: 117(ptr) AccessChain 17 116 - 162: 10(int) Load 161 - 163: 117(ptr) AccessChain 17 116 - 164: 10(int) Load 163 - 165: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 162 25 - 166: 10(int) AtomicUMax 165 28 25 164 - 167: 117(ptr) AccessChain 17 116 - 168: 10(int) Load 167 - 169: 117(ptr) AccessChain 17 116 - 170: 10(int) Load 169 - 171: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 168 25 - 172: 10(int) AtomicUMax 171 28 25 170 - Store 126(out_u1) 172 - 173: 117(ptr) AccessChain 17 116 - 174: 10(int) Load 173 - 175: 117(ptr) AccessChain 17 116 - 176: 10(int) Load 175 - 177: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 174 25 - 178: 10(int) AtomicUMin 177 28 25 176 - 179: 117(ptr) AccessChain 17 116 - 180: 10(int) Load 179 - 181: 117(ptr) AccessChain 17 116 - 182: 10(int) Load 181 - 183: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 180 25 - 184: 10(int) AtomicUMin 183 28 25 182 - Store 126(out_u1) 184 - 185: 117(ptr) AccessChain 17 116 - 186: 10(int) Load 185 - 187: 117(ptr) AccessChain 17 116 - 188: 10(int) Load 187 - 189: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 186 25 - 190: 10(int) AtomicOr 189 28 25 188 - 191: 117(ptr) AccessChain 17 116 - 192: 10(int) Load 191 - 193: 117(ptr) AccessChain 17 116 - 194: 10(int) Load 193 - 195: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 192 25 - 196: 10(int) AtomicOr 195 28 25 194 - Store 126(out_u1) 196 - 197: 117(ptr) AccessChain 17 116 - 198: 10(int) Load 197 - 199: 117(ptr) AccessChain 17 116 - 200: 10(int) Load 199 - 201: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 198 25 - 202: 10(int) AtomicXor 201 28 25 200 - 203: 117(ptr) AccessChain 17 116 - 204: 10(int) Load 203 - 205: 117(ptr) AccessChain 17 116 - 206: 10(int) Load 205 - 207: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 204 25 - 208: 10(int) AtomicXor 207 28 25 206 - Store 126(out_u1) 208 - 214: 213(ptr) AccessChain 17 212 - 215: 13(ivec2) Load 214 - 216: 19(ptr) AccessChain 17 22 - 217: 6(int) Load 216 - 218: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 215 25 - 219: 6(int) AtomicIAdd 218 28 25 217 - 220: 213(ptr) AccessChain 17 212 - 221: 13(ivec2) Load 220 - 222: 19(ptr) AccessChain 17 18 - 223: 6(int) Load 222 - 224: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 221 25 - 225: 6(int) AtomicIAdd 224 28 25 223 - Store 31(out_i1) 225 - 226: 213(ptr) AccessChain 17 212 - 227: 13(ivec2) Load 226 - 228: 19(ptr) AccessChain 17 22 - 229: 6(int) Load 228 - 230: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 227 25 - 231: 6(int) AtomicAnd 230 28 25 229 - 232: 213(ptr) AccessChain 17 212 - 233: 13(ivec2) Load 232 - 234: 19(ptr) AccessChain 17 18 - 235: 6(int) Load 234 - 236: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 233 25 - 237: 6(int) AtomicAnd 236 28 25 235 - Store 31(out_i1) 237 - 238: 213(ptr) AccessChain 17 212 - 239: 13(ivec2) Load 238 - 240: 19(ptr) AccessChain 17 22 - 241: 6(int) Load 240 - 242: 19(ptr) AccessChain 17 54 - 243: 6(int) Load 242 - 244: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 239 25 - 245: 6(int) AtomicCompareExchange 244 28 25 25 243 241 - Store 31(out_i1) 245 - 246: 213(ptr) AccessChain 17 212 - 247: 13(ivec2) Load 246 - 248: 19(ptr) AccessChain 17 18 - 249: 6(int) Load 248 - 250: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 247 25 - 251: 6(int) AtomicExchange 250 28 25 249 - Store 31(out_i1) 251 - 252: 213(ptr) AccessChain 17 212 - 253: 13(ivec2) Load 252 - 254: 19(ptr) AccessChain 17 22 - 255: 6(int) Load 254 - 256: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 253 25 - 257: 6(int) AtomicSMax 256 28 25 255 - 258: 213(ptr) AccessChain 17 212 - 259: 13(ivec2) Load 258 - 260: 19(ptr) AccessChain 17 18 - 261: 6(int) Load 260 - 262: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 259 25 - 263: 6(int) AtomicSMax 262 28 25 261 - Store 31(out_i1) 263 - 264: 213(ptr) AccessChain 17 212 - 265: 13(ivec2) Load 264 - 266: 19(ptr) AccessChain 17 22 - 267: 6(int) Load 266 - 268: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 265 25 - 269: 6(int) AtomicSMin 268 28 25 267 - 270: 213(ptr) AccessChain 17 212 - 271: 13(ivec2) Load 270 - 272: 19(ptr) AccessChain 17 18 - 273: 6(int) Load 272 - 274: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 271 25 - 275: 6(int) AtomicSMin 274 28 25 273 - Store 31(out_i1) 275 - 276: 213(ptr) AccessChain 17 212 - 277: 13(ivec2) Load 276 - 278: 19(ptr) AccessChain 17 22 - 279: 6(int) Load 278 - 280: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 277 25 - 281: 6(int) AtomicOr 280 28 25 279 - 282: 213(ptr) AccessChain 17 212 - 283: 13(ivec2) Load 282 - 284: 19(ptr) AccessChain 17 18 - 285: 6(int) Load 284 - 286: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 283 25 - 287: 6(int) AtomicOr 286 28 25 285 - Store 31(out_i1) 287 - 288: 213(ptr) AccessChain 17 212 - 289: 13(ivec2) Load 288 - 290: 19(ptr) AccessChain 17 22 - 291: 6(int) Load 290 - 292: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 289 25 - 293: 6(int) AtomicXor 292 28 25 291 - 294: 213(ptr) AccessChain 17 212 - 295: 13(ivec2) Load 294 - 296: 19(ptr) AccessChain 17 18 - 297: 6(int) Load 296 - 298: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 295 25 - 299: 6(int) AtomicXor 298 28 25 297 - Store 31(out_i1) 299 - 305: 304(ptr) AccessChain 17 303 - 306: 11(ivec2) Load 305 - 307: 117(ptr) AccessChain 17 116 - 308: 10(int) Load 307 - 309: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 306 25 - 310: 10(int) AtomicIAdd 309 28 25 308 - 311: 304(ptr) AccessChain 17 303 - 312: 11(ivec2) Load 311 - 313: 117(ptr) AccessChain 17 116 - 314: 10(int) Load 313 - 315: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 312 25 - 316: 10(int) AtomicIAdd 315 28 25 314 - Store 126(out_u1) 316 - 317: 304(ptr) AccessChain 17 303 - 318: 11(ivec2) Load 317 - 319: 117(ptr) AccessChain 17 116 - 320: 10(int) Load 319 - 321: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 318 25 - 322: 10(int) AtomicAnd 321 28 25 320 - 323: 304(ptr) AccessChain 17 303 - 324: 11(ivec2) Load 323 - 325: 117(ptr) AccessChain 17 116 - 326: 10(int) Load 325 - 327: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 324 25 - 328: 10(int) AtomicAnd 327 28 25 326 - Store 126(out_u1) 328 - 329: 304(ptr) AccessChain 17 303 - 330: 11(ivec2) Load 329 - 331: 117(ptr) AccessChain 17 147 - 332: 10(int) Load 331 - 333: 117(ptr) AccessChain 17 150 - 334: 10(int) Load 333 - 335: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 330 25 - 336: 10(int) AtomicCompareExchange 335 28 25 25 334 332 - Store 126(out_u1) 336 - 337: 304(ptr) AccessChain 17 303 - 338: 11(ivec2) Load 337 - 339: 117(ptr) AccessChain 17 116 - 340: 10(int) Load 339 - 341: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 338 25 - 342: 10(int) AtomicExchange 341 28 25 340 - Store 126(out_u1) 342 - 343: 304(ptr) AccessChain 17 303 - 344: 11(ivec2) Load 343 - 345: 117(ptr) AccessChain 17 116 - 346: 10(int) Load 345 - 347: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 344 25 - 348: 10(int) AtomicUMax 347 28 25 346 - 349: 304(ptr) AccessChain 17 303 - 350: 11(ivec2) Load 349 - 351: 117(ptr) AccessChain 17 116 - 352: 10(int) Load 351 - 353: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 350 25 - 354: 10(int) AtomicUMax 353 28 25 352 - Store 126(out_u1) 354 - 355: 304(ptr) AccessChain 17 303 - 356: 11(ivec2) Load 355 - 357: 117(ptr) AccessChain 17 116 - 358: 10(int) Load 357 - 359: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 356 25 - 360: 10(int) AtomicUMin 359 28 25 358 - 361: 304(ptr) AccessChain 17 303 - 362: 11(ivec2) Load 361 - 363: 117(ptr) AccessChain 17 116 - 364: 10(int) Load 363 - 365: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 362 25 - 366: 10(int) AtomicUMin 365 28 25 364 - Store 126(out_u1) 366 - 367: 304(ptr) AccessChain 17 303 - 368: 11(ivec2) Load 367 - 369: 117(ptr) AccessChain 17 116 - 370: 10(int) Load 369 - 371: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 368 25 - 372: 10(int) AtomicOr 371 28 25 370 - 373: 304(ptr) AccessChain 17 303 - 374: 11(ivec2) Load 373 - 375: 117(ptr) AccessChain 17 116 - 376: 10(int) Load 375 - 377: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 374 25 - 378: 10(int) AtomicOr 377 28 25 376 - Store 126(out_u1) 378 - 379: 304(ptr) AccessChain 17 303 - 380: 11(ivec2) Load 379 - 381: 117(ptr) AccessChain 17 116 - 382: 10(int) Load 381 - 383: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 380 25 - 384: 10(int) AtomicXor 383 28 25 382 - 385: 304(ptr) AccessChain 17 303 - 386: 11(ivec2) Load 385 - 387: 117(ptr) AccessChain 17 116 - 388: 10(int) Load 387 - 389: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 386 25 - 390: 10(int) AtomicXor 389 28 25 388 - Store 126(out_u1) 390 - 396: 395(ptr) AccessChain 17 394 - 397: 14(ivec3) Load 396 - 398: 19(ptr) AccessChain 17 22 - 399: 6(int) Load 398 - 400: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 397 25 - 401: 6(int) AtomicIAdd 400 28 25 399 - 402: 395(ptr) AccessChain 17 394 - 403: 14(ivec3) Load 402 - 404: 19(ptr) AccessChain 17 18 - 405: 6(int) Load 404 - 406: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 403 25 - 407: 6(int) AtomicIAdd 406 28 25 405 - Store 31(out_i1) 407 - 408: 395(ptr) AccessChain 17 394 - 409: 14(ivec3) Load 408 - 410: 19(ptr) AccessChain 17 22 - 411: 6(int) Load 410 - 412: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 409 25 - 413: 6(int) AtomicAnd 412 28 25 411 - 414: 395(ptr) AccessChain 17 394 - 415: 14(ivec3) Load 414 - 416: 19(ptr) AccessChain 17 18 - 417: 6(int) Load 416 - 418: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 415 25 - 419: 6(int) AtomicAnd 418 28 25 417 - Store 31(out_i1) 419 - 420: 395(ptr) AccessChain 17 394 - 421: 14(ivec3) Load 420 - 422: 19(ptr) AccessChain 17 22 - 423: 6(int) Load 422 - 424: 19(ptr) AccessChain 17 54 - 425: 6(int) Load 424 - 426: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 421 25 - 427: 6(int) AtomicCompareExchange 426 28 25 25 425 423 - Store 31(out_i1) 427 - 428: 395(ptr) AccessChain 17 394 - 429: 14(ivec3) Load 428 - 430: 19(ptr) AccessChain 17 18 - 431: 6(int) Load 430 - 432: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 429 25 - 433: 6(int) AtomicExchange 432 28 25 431 - Store 31(out_i1) 433 - 434: 395(ptr) AccessChain 17 394 - 435: 14(ivec3) Load 434 - 436: 19(ptr) AccessChain 17 22 - 437: 6(int) Load 436 - 438: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 435 25 - 439: 6(int) AtomicSMax 438 28 25 437 - 440: 395(ptr) AccessChain 17 394 - 441: 14(ivec3) Load 440 - 442: 19(ptr) AccessChain 17 18 - 443: 6(int) Load 442 - 444: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 441 25 - 445: 6(int) AtomicSMax 444 28 25 443 - Store 31(out_i1) 445 - 446: 395(ptr) AccessChain 17 394 - 447: 14(ivec3) Load 446 - 448: 19(ptr) AccessChain 17 22 - 449: 6(int) Load 448 - 450: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 447 25 - 451: 6(int) AtomicSMin 450 28 25 449 - 452: 395(ptr) AccessChain 17 394 - 453: 14(ivec3) Load 452 - 454: 19(ptr) AccessChain 17 18 - 455: 6(int) Load 454 - 456: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 453 25 - 457: 6(int) AtomicSMin 456 28 25 455 - Store 31(out_i1) 457 - 458: 395(ptr) AccessChain 17 394 - 459: 14(ivec3) Load 458 - 460: 19(ptr) AccessChain 17 22 - 461: 6(int) Load 460 - 462: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 459 25 - 463: 6(int) AtomicOr 462 28 25 461 - 464: 395(ptr) AccessChain 17 394 - 465: 14(ivec3) Load 464 - 466: 19(ptr) AccessChain 17 18 - 467: 6(int) Load 466 - 468: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 465 25 - 469: 6(int) AtomicOr 468 28 25 467 - Store 31(out_i1) 469 - 470: 395(ptr) AccessChain 17 394 - 471: 14(ivec3) Load 470 - 472: 19(ptr) AccessChain 17 22 - 473: 6(int) Load 472 - 474: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 471 25 - 475: 6(int) AtomicXor 474 28 25 473 - 476: 395(ptr) AccessChain 17 394 - 477: 14(ivec3) Load 476 - 478: 19(ptr) AccessChain 17 18 - 479: 6(int) Load 478 - 480: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 477 25 - 481: 6(int) AtomicXor 480 28 25 479 - Store 31(out_i1) 481 - 487: 486(ptr) AccessChain 17 485 - 488: 12(ivec3) Load 487 - 489: 117(ptr) AccessChain 17 116 - 490: 10(int) Load 489 - 491: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 488 25 - 492: 10(int) AtomicIAdd 491 28 25 490 - 493: 486(ptr) AccessChain 17 485 - 494: 12(ivec3) Load 493 - 495: 117(ptr) AccessChain 17 116 - 496: 10(int) Load 495 - 497: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 494 25 - 498: 10(int) AtomicIAdd 497 28 25 496 - Store 126(out_u1) 498 - 499: 486(ptr) AccessChain 17 485 - 500: 12(ivec3) Load 499 - 501: 117(ptr) AccessChain 17 116 - 502: 10(int) Load 501 - 503: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 500 25 - 504: 10(int) AtomicAnd 503 28 25 502 - 505: 486(ptr) AccessChain 17 485 - 506: 12(ivec3) Load 505 - 507: 117(ptr) AccessChain 17 116 - 508: 10(int) Load 507 - 509: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 506 25 - 510: 10(int) AtomicAnd 509 28 25 508 - Store 126(out_u1) 510 - 511: 486(ptr) AccessChain 17 485 - 512: 12(ivec3) Load 511 - 513: 117(ptr) AccessChain 17 147 - 514: 10(int) Load 513 - 515: 117(ptr) AccessChain 17 150 - 516: 10(int) Load 515 - 517: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 512 25 - 518: 10(int) AtomicCompareExchange 517 28 25 25 516 514 - Store 126(out_u1) 518 - 519: 486(ptr) AccessChain 17 485 - 520: 12(ivec3) Load 519 - 521: 117(ptr) AccessChain 17 116 - 522: 10(int) Load 521 - 523: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 520 25 - 524: 10(int) AtomicExchange 523 28 25 522 - Store 126(out_u1) 524 - 525: 486(ptr) AccessChain 17 485 - 526: 12(ivec3) Load 525 - 527: 117(ptr) AccessChain 17 116 - 528: 10(int) Load 527 - 529: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 526 25 - 530: 10(int) AtomicUMax 529 28 25 528 - 531: 486(ptr) AccessChain 17 485 - 532: 12(ivec3) Load 531 - 533: 117(ptr) AccessChain 17 116 - 534: 10(int) Load 533 - 535: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 532 25 - 536: 10(int) AtomicUMax 535 28 25 534 - Store 126(out_u1) 536 - 537: 486(ptr) AccessChain 17 485 - 538: 12(ivec3) Load 537 - 539: 117(ptr) AccessChain 17 116 - 540: 10(int) Load 539 - 541: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 538 25 - 542: 10(int) AtomicUMin 541 28 25 540 - 543: 486(ptr) AccessChain 17 485 - 544: 12(ivec3) Load 543 - 545: 117(ptr) AccessChain 17 116 - 546: 10(int) Load 545 - 547: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 544 25 - 548: 10(int) AtomicUMin 547 28 25 546 - Store 126(out_u1) 548 - 549: 486(ptr) AccessChain 17 485 - 550: 12(ivec3) Load 549 - 551: 117(ptr) AccessChain 17 116 - 552: 10(int) Load 551 - 553: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 550 25 - 554: 10(int) AtomicOr 553 28 25 552 - 555: 486(ptr) AccessChain 17 485 - 556: 12(ivec3) Load 555 - 557: 117(ptr) AccessChain 17 116 - 558: 10(int) Load 557 - 559: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 556 25 - 560: 10(int) AtomicOr 559 28 25 558 - Store 126(out_u1) 560 - 561: 486(ptr) AccessChain 17 485 - 562: 12(ivec3) Load 561 - 563: 117(ptr) AccessChain 17 116 - 564: 10(int) Load 563 - 565: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 562 25 - 566: 10(int) AtomicXor 565 28 25 564 - 567: 486(ptr) AccessChain 17 485 - 568: 12(ivec3) Load 567 - 569: 117(ptr) AccessChain 17 116 - 570: 10(int) Load 569 - 571: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 568 25 - 572: 10(int) AtomicXor 571 28 25 570 - Store 126(out_u1) 572 - 576: 213(ptr) AccessChain 17 212 - 577: 13(ivec2) Load 576 - 578: 19(ptr) AccessChain 17 22 - 579: 6(int) Load 578 - 580: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 577 25 - 581: 6(int) AtomicIAdd 580 28 25 579 - 582: 213(ptr) AccessChain 17 212 - 583: 13(ivec2) Load 582 - 584: 19(ptr) AccessChain 17 18 - 585: 6(int) Load 584 - 586: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 583 25 - 587: 6(int) AtomicIAdd 586 28 25 585 - Store 31(out_i1) 587 - 588: 213(ptr) AccessChain 17 212 - 589: 13(ivec2) Load 588 - 590: 19(ptr) AccessChain 17 22 - 591: 6(int) Load 590 - 592: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 589 25 - 593: 6(int) AtomicAnd 592 28 25 591 - 594: 213(ptr) AccessChain 17 212 - 595: 13(ivec2) Load 594 - 596: 19(ptr) AccessChain 17 18 - 597: 6(int) Load 596 - 598: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 595 25 - 599: 6(int) AtomicAnd 598 28 25 597 - Store 31(out_i1) 599 - 600: 213(ptr) AccessChain 17 212 - 601: 13(ivec2) Load 600 - 602: 19(ptr) AccessChain 17 22 - 603: 6(int) Load 602 - 604: 19(ptr) AccessChain 17 54 - 605: 6(int) Load 604 - 606: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 601 25 - 607: 6(int) AtomicCompareExchange 606 28 25 25 605 603 - Store 31(out_i1) 607 - 608: 213(ptr) AccessChain 17 212 - 609: 13(ivec2) Load 608 - 610: 19(ptr) AccessChain 17 18 - 611: 6(int) Load 610 - 612: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 609 25 - 613: 6(int) AtomicExchange 612 28 25 611 - Store 31(out_i1) 613 - 614: 213(ptr) AccessChain 17 212 - 615: 13(ivec2) Load 614 - 616: 19(ptr) AccessChain 17 22 - 617: 6(int) Load 616 - 618: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 615 25 - 619: 6(int) AtomicSMax 618 28 25 617 - 620: 213(ptr) AccessChain 17 212 - 621: 13(ivec2) Load 620 - 622: 19(ptr) AccessChain 17 18 - 623: 6(int) Load 622 - 624: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 621 25 - 625: 6(int) AtomicSMax 624 28 25 623 - Store 31(out_i1) 625 - 626: 213(ptr) AccessChain 17 212 - 627: 13(ivec2) Load 626 - 628: 19(ptr) AccessChain 17 22 - 629: 6(int) Load 628 - 630: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 627 25 - 631: 6(int) AtomicSMin 630 28 25 629 - 632: 213(ptr) AccessChain 17 212 - 633: 13(ivec2) Load 632 - 634: 19(ptr) AccessChain 17 18 - 635: 6(int) Load 634 - 636: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 633 25 - 637: 6(int) AtomicSMin 636 28 25 635 - Store 31(out_i1) 637 - 638: 213(ptr) AccessChain 17 212 - 639: 13(ivec2) Load 638 - 640: 19(ptr) AccessChain 17 22 - 641: 6(int) Load 640 - 642: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 639 25 - 643: 6(int) AtomicOr 642 28 25 641 - 644: 213(ptr) AccessChain 17 212 - 645: 13(ivec2) Load 644 - 646: 19(ptr) AccessChain 17 18 - 647: 6(int) Load 646 - 648: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 645 25 - 649: 6(int) AtomicOr 648 28 25 647 - Store 31(out_i1) 649 - 650: 213(ptr) AccessChain 17 212 - 651: 13(ivec2) Load 650 - 652: 19(ptr) AccessChain 17 22 - 653: 6(int) Load 652 - 654: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 651 25 - 655: 6(int) AtomicXor 654 28 25 653 - 656: 213(ptr) AccessChain 17 212 - 657: 13(ivec2) Load 656 - 658: 19(ptr) AccessChain 17 18 - 659: 6(int) Load 658 - 660: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 657 25 - 661: 6(int) AtomicXor 660 28 25 659 - Store 31(out_i1) 661 - 665: 304(ptr) AccessChain 17 303 - 666: 11(ivec2) Load 665 - 667: 117(ptr) AccessChain 17 116 - 668: 10(int) Load 667 - 669: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 666 25 - 670: 10(int) AtomicIAdd 669 28 25 668 - 671: 304(ptr) AccessChain 17 303 - 672: 11(ivec2) Load 671 - 673: 117(ptr) AccessChain 17 116 - 674: 10(int) Load 673 - 675: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 672 25 - 676: 10(int) AtomicIAdd 675 28 25 674 - Store 126(out_u1) 676 - 677: 304(ptr) AccessChain 17 303 - 678: 11(ivec2) Load 677 - 679: 117(ptr) AccessChain 17 116 - 680: 10(int) Load 679 - 681: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 678 25 - 682: 10(int) AtomicAnd 681 28 25 680 - 683: 304(ptr) AccessChain 17 303 - 684: 11(ivec2) Load 683 - 685: 117(ptr) AccessChain 17 116 - 686: 10(int) Load 685 - 687: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 684 25 - 688: 10(int) AtomicAnd 687 28 25 686 - Store 126(out_u1) 688 - 689: 304(ptr) AccessChain 17 303 - 690: 11(ivec2) Load 689 - 691: 117(ptr) AccessChain 17 147 - 692: 10(int) Load 691 - 693: 117(ptr) AccessChain 17 150 - 694: 10(int) Load 693 - 695: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 690 25 - 696: 10(int) AtomicCompareExchange 695 28 25 25 694 692 - Store 126(out_u1) 696 - 697: 304(ptr) AccessChain 17 303 - 698: 11(ivec2) Load 697 - 699: 117(ptr) AccessChain 17 116 - 700: 10(int) Load 699 - 701: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 698 25 - 702: 10(int) AtomicExchange 701 28 25 700 - Store 126(out_u1) 702 - 703: 304(ptr) AccessChain 17 303 - 704: 11(ivec2) Load 703 - 705: 117(ptr) AccessChain 17 116 - 706: 10(int) Load 705 - 707: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 704 25 - 708: 10(int) AtomicUMax 707 28 25 706 - 709: 304(ptr) AccessChain 17 303 - 710: 11(ivec2) Load 709 - 711: 117(ptr) AccessChain 17 116 - 712: 10(int) Load 711 - 713: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 710 25 - 714: 10(int) AtomicUMax 713 28 25 712 - Store 126(out_u1) 714 - 715: 304(ptr) AccessChain 17 303 - 716: 11(ivec2) Load 715 - 717: 117(ptr) AccessChain 17 116 - 718: 10(int) Load 717 - 719: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 716 25 - 720: 10(int) AtomicUMin 719 28 25 718 - 721: 304(ptr) AccessChain 17 303 - 722: 11(ivec2) Load 721 - 723: 117(ptr) AccessChain 17 116 - 724: 10(int) Load 723 - 725: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 722 25 - 726: 10(int) AtomicUMin 725 28 25 724 - Store 126(out_u1) 726 - 727: 304(ptr) AccessChain 17 303 - 728: 11(ivec2) Load 727 - 729: 117(ptr) AccessChain 17 116 - 730: 10(int) Load 729 - 731: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 728 25 - 732: 10(int) AtomicOr 731 28 25 730 - 733: 304(ptr) AccessChain 17 303 - 734: 11(ivec2) Load 733 - 735: 117(ptr) AccessChain 17 116 - 736: 10(int) Load 735 - 737: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 734 25 - 738: 10(int) AtomicOr 737 28 25 736 - Store 126(out_u1) 738 - 739: 304(ptr) AccessChain 17 303 - 740: 11(ivec2) Load 739 - 741: 117(ptr) AccessChain 17 116 - 742: 10(int) Load 741 - 743: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 740 25 - 744: 10(int) AtomicXor 743 28 25 742 - 745: 304(ptr) AccessChain 17 303 - 746: 11(ivec2) Load 745 - 747: 117(ptr) AccessChain 17 116 - 748: 10(int) Load 747 - 749: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 746 25 - 750: 10(int) AtomicXor 749 28 25 748 - Store 126(out_u1) 750 - 751: 213(ptr) AccessChain 17 212 - 752: 13(ivec2) Load 751 - 753: 19(ptr) AccessChain 17 22 - 754: 6(int) Load 753 - 755: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 752 25 - 756: 6(int) AtomicIAdd 755 28 25 754 - 757: 213(ptr) AccessChain 17 212 - 758: 13(ivec2) Load 757 - 759: 19(ptr) AccessChain 17 18 - 760: 6(int) Load 759 - 761: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 758 25 - 762: 6(int) AtomicIAdd 761 28 25 760 - Store 31(out_i1) 762 - 763: 213(ptr) AccessChain 17 212 - 764: 13(ivec2) Load 763 - 765: 19(ptr) AccessChain 17 22 - 766: 6(int) Load 765 - 767: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 764 25 - 768: 6(int) AtomicAnd 767 28 25 766 - 769: 213(ptr) AccessChain 17 212 - 770: 13(ivec2) Load 769 - 771: 19(ptr) AccessChain 17 18 - 772: 6(int) Load 771 - 773: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 770 25 - 774: 6(int) AtomicAnd 773 28 25 772 - Store 31(out_i1) 774 - 775: 213(ptr) AccessChain 17 212 - 776: 13(ivec2) Load 775 - 777: 19(ptr) AccessChain 17 22 - 778: 6(int) Load 777 - 779: 19(ptr) AccessChain 17 54 - 780: 6(int) Load 779 - 781: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 776 25 - 782: 6(int) AtomicCompareExchange 781 28 25 25 780 778 - Store 31(out_i1) 782 - 783: 213(ptr) AccessChain 17 212 - 784: 13(ivec2) Load 783 - 785: 19(ptr) AccessChain 17 18 - 786: 6(int) Load 785 - 787: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 784 25 - 788: 6(int) AtomicExchange 787 28 25 786 - Store 31(out_i1) 788 - 789: 213(ptr) AccessChain 17 212 - 790: 13(ivec2) Load 789 - 791: 19(ptr) AccessChain 17 22 - 792: 6(int) Load 791 - 793: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 790 25 - 794: 6(int) AtomicSMax 793 28 25 792 - 795: 213(ptr) AccessChain 17 212 - 796: 13(ivec2) Load 795 - 797: 19(ptr) AccessChain 17 18 - 798: 6(int) Load 797 - 799: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 796 25 - 800: 6(int) AtomicSMax 799 28 25 798 - Store 31(out_i1) 800 - 801: 213(ptr) AccessChain 17 212 - 802: 13(ivec2) Load 801 - 803: 19(ptr) AccessChain 17 22 - 804: 6(int) Load 803 - 805: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 802 25 - 806: 6(int) AtomicSMin 805 28 25 804 - 807: 213(ptr) AccessChain 17 212 - 808: 13(ivec2) Load 807 - 809: 19(ptr) AccessChain 17 18 - 810: 6(int) Load 809 - 811: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 808 25 - 812: 6(int) AtomicSMin 811 28 25 810 - Store 31(out_i1) 812 - 813: 213(ptr) AccessChain 17 212 - 814: 13(ivec2) Load 813 - 815: 19(ptr) AccessChain 17 22 - 816: 6(int) Load 815 - 817: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 814 25 - 818: 6(int) AtomicOr 817 28 25 816 - 819: 213(ptr) AccessChain 17 212 - 820: 13(ivec2) Load 819 - 821: 19(ptr) AccessChain 17 18 - 822: 6(int) Load 821 - 823: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 820 25 - 824: 6(int) AtomicOr 823 28 25 822 - Store 31(out_i1) 824 - 825: 213(ptr) AccessChain 17 212 - 826: 13(ivec2) Load 825 - 827: 19(ptr) AccessChain 17 22 - 828: 6(int) Load 827 - 829: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 826 25 - 830: 6(int) AtomicXor 829 28 25 828 - 831: 213(ptr) AccessChain 17 212 - 832: 13(ivec2) Load 831 - 833: 19(ptr) AccessChain 17 18 - 834: 6(int) Load 833 - 835: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 832 25 - 836: 6(int) AtomicXor 835 28 25 834 - Store 31(out_i1) 836 - 837: 304(ptr) AccessChain 17 303 - 838: 11(ivec2) Load 837 - 839: 117(ptr) AccessChain 17 116 - 840: 10(int) Load 839 - 841: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 838 25 - 842: 10(int) AtomicIAdd 841 28 25 840 - 843: 304(ptr) AccessChain 17 303 - 844: 11(ivec2) Load 843 - 845: 117(ptr) AccessChain 17 116 - 846: 10(int) Load 845 - 847: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 844 25 - 848: 10(int) AtomicIAdd 847 28 25 846 - Store 126(out_u1) 848 - 849: 304(ptr) AccessChain 17 303 - 850: 11(ivec2) Load 849 - 851: 117(ptr) AccessChain 17 116 - 852: 10(int) Load 851 - 853: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 850 25 - 854: 10(int) AtomicAnd 853 28 25 852 - 855: 304(ptr) AccessChain 17 303 - 856: 11(ivec2) Load 855 - 857: 117(ptr) AccessChain 17 116 - 858: 10(int) Load 857 - 859: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 856 25 - 860: 10(int) AtomicAnd 859 28 25 858 - Store 126(out_u1) 860 - 861: 304(ptr) AccessChain 17 303 - 862: 11(ivec2) Load 861 - 863: 117(ptr) AccessChain 17 147 - 864: 10(int) Load 863 - 865: 117(ptr) AccessChain 17 150 - 866: 10(int) Load 865 - 867: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 862 25 - 868: 10(int) AtomicCompareExchange 867 28 25 25 866 864 - Store 126(out_u1) 868 - 869: 304(ptr) AccessChain 17 303 - 870: 11(ivec2) Load 869 - 871: 117(ptr) AccessChain 17 116 - 872: 10(int) Load 871 - 873: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 870 25 - 874: 10(int) AtomicExchange 873 28 25 872 - Store 126(out_u1) 874 - 875: 304(ptr) AccessChain 17 303 - 876: 11(ivec2) Load 875 - 877: 117(ptr) AccessChain 17 116 - 878: 10(int) Load 877 - 879: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 876 25 - 880: 10(int) AtomicUMax 879 28 25 878 - 881: 304(ptr) AccessChain 17 303 - 882: 11(ivec2) Load 881 - 883: 117(ptr) AccessChain 17 116 - 884: 10(int) Load 883 - 885: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 882 25 - 886: 10(int) AtomicUMax 885 28 25 884 - Store 126(out_u1) 886 - 887: 304(ptr) AccessChain 17 303 - 888: 11(ivec2) Load 887 - 889: 117(ptr) AccessChain 17 116 - 890: 10(int) Load 889 - 891: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 888 25 - 892: 10(int) AtomicUMin 891 28 25 890 - 893: 304(ptr) AccessChain 17 303 - 894: 11(ivec2) Load 893 - 895: 117(ptr) AccessChain 17 116 - 896: 10(int) Load 895 - 897: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 894 25 - 898: 10(int) AtomicUMin 897 28 25 896 - Store 126(out_u1) 898 - 899: 304(ptr) AccessChain 17 303 - 900: 11(ivec2) Load 899 - 901: 117(ptr) AccessChain 17 116 - 902: 10(int) Load 901 - 903: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 900 25 - 904: 10(int) AtomicOr 903 28 25 902 - 905: 304(ptr) AccessChain 17 303 - 906: 11(ivec2) Load 905 - 907: 117(ptr) AccessChain 17 116 - 908: 10(int) Load 907 - 909: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 906 25 - 910: 10(int) AtomicOr 909 28 25 908 - Store 126(out_u1) 910 - 911: 304(ptr) AccessChain 17 303 - 912: 11(ivec2) Load 911 - 913: 117(ptr) AccessChain 17 116 - 914: 10(int) Load 913 - 915: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 912 25 - 916: 10(int) AtomicXor 915 28 25 914 - 917: 304(ptr) AccessChain 17 303 - 918: 11(ivec2) Load 917 - 919: 117(ptr) AccessChain 17 116 - 920: 10(int) Load 919 - 921: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 918 25 - 922: 10(int) AtomicXor 921 28 25 920 - Store 126(out_u1) 922 - 926: 19(ptr) AccessChain 17 18 - 927: 6(int) Load 926 - 928: 19(ptr) AccessChain 17 22 - 929: 6(int) Load 928 - 930: 26(ptr) ImageTexelPointer 925(g_tBuffI) 927 25 - 931: 6(int) AtomicIAdd 930 28 25 929 - 932: 19(ptr) AccessChain 17 18 - 933: 6(int) Load 932 - 934: 19(ptr) AccessChain 17 18 - 935: 6(int) Load 934 - 936: 26(ptr) ImageTexelPointer 925(g_tBuffI) 933 25 - 937: 6(int) AtomicIAdd 936 28 25 935 - Store 31(out_i1) 937 - 938: 19(ptr) AccessChain 17 18 - 939: 6(int) Load 938 - 940: 19(ptr) AccessChain 17 22 - 941: 6(int) Load 940 - 942: 26(ptr) ImageTexelPointer 925(g_tBuffI) 939 25 - 943: 6(int) AtomicAnd 942 28 25 941 - 944: 19(ptr) AccessChain 17 18 - 945: 6(int) Load 944 - 946: 19(ptr) AccessChain 17 18 - 947: 6(int) Load 946 - 948: 26(ptr) ImageTexelPointer 925(g_tBuffI) 945 25 - 949: 6(int) AtomicAnd 948 28 25 947 - Store 31(out_i1) 949 - 950: 19(ptr) AccessChain 17 18 - 951: 6(int) Load 950 - 952: 19(ptr) AccessChain 17 22 - 953: 6(int) Load 952 - 954: 19(ptr) AccessChain 17 54 - 955: 6(int) Load 954 - 956: 26(ptr) ImageTexelPointer 925(g_tBuffI) 951 25 - 957: 6(int) AtomicCompareExchange 956 28 25 25 955 953 - Store 31(out_i1) 957 - 958: 19(ptr) AccessChain 17 18 - 959: 6(int) Load 958 - 960: 19(ptr) AccessChain 17 18 - 961: 6(int) Load 960 - 962: 26(ptr) ImageTexelPointer 925(g_tBuffI) 959 25 - 963: 6(int) AtomicExchange 962 28 25 961 - Store 31(out_i1) 963 - 964: 19(ptr) AccessChain 17 18 - 965: 6(int) Load 964 - 966: 19(ptr) AccessChain 17 22 - 967: 6(int) Load 966 - 968: 26(ptr) ImageTexelPointer 925(g_tBuffI) 965 25 - 969: 6(int) AtomicSMax 968 28 25 967 - 970: 19(ptr) AccessChain 17 18 - 971: 6(int) Load 970 - 972: 19(ptr) AccessChain 17 18 - 973: 6(int) Load 972 - 974: 26(ptr) ImageTexelPointer 925(g_tBuffI) 971 25 - 975: 6(int) AtomicSMax 974 28 25 973 - Store 31(out_i1) 975 - 976: 19(ptr) AccessChain 17 18 - 977: 6(int) Load 976 - 978: 19(ptr) AccessChain 17 22 - 979: 6(int) Load 978 - 980: 26(ptr) ImageTexelPointer 925(g_tBuffI) 977 25 - 981: 6(int) AtomicSMin 980 28 25 979 - 982: 19(ptr) AccessChain 17 18 - 983: 6(int) Load 982 - 984: 19(ptr) AccessChain 17 18 - 985: 6(int) Load 984 - 986: 26(ptr) ImageTexelPointer 925(g_tBuffI) 983 25 - 987: 6(int) AtomicSMin 986 28 25 985 - Store 31(out_i1) 987 - 988: 19(ptr) AccessChain 17 18 - 989: 6(int) Load 988 - 990: 19(ptr) AccessChain 17 22 - 991: 6(int) Load 990 - 992: 26(ptr) ImageTexelPointer 925(g_tBuffI) 989 25 - 993: 6(int) AtomicOr 992 28 25 991 - 994: 19(ptr) AccessChain 17 18 - 995: 6(int) Load 994 - 996: 19(ptr) AccessChain 17 18 - 997: 6(int) Load 996 - 998: 26(ptr) ImageTexelPointer 925(g_tBuffI) 995 25 - 999: 6(int) AtomicOr 998 28 25 997 - Store 31(out_i1) 999 - 1000: 19(ptr) AccessChain 17 18 - 1001: 6(int) Load 1000 - 1002: 19(ptr) AccessChain 17 22 - 1003: 6(int) Load 1002 - 1004: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1001 25 - 1005: 6(int) AtomicXor 1004 28 25 1003 - 1006: 19(ptr) AccessChain 17 18 - 1007: 6(int) Load 1006 - 1008: 19(ptr) AccessChain 17 18 - 1009: 6(int) Load 1008 - 1010: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1007 25 - 1011: 6(int) AtomicXor 1010 28 25 1009 - Store 31(out_i1) 1011 - 1015: 117(ptr) AccessChain 17 116 - 1016: 10(int) Load 1015 - 1017: 117(ptr) AccessChain 17 116 - 1018: 10(int) Load 1017 - 1019: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1016 25 - 1020: 10(int) AtomicIAdd 1019 28 25 1018 - 1021: 117(ptr) AccessChain 17 116 - 1022: 10(int) Load 1021 - 1023: 117(ptr) AccessChain 17 116 - 1024: 10(int) Load 1023 - 1025: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1022 25 - 1026: 10(int) AtomicIAdd 1025 28 25 1024 - Store 126(out_u1) 1026 - 1027: 117(ptr) AccessChain 17 116 - 1028: 10(int) Load 1027 - 1029: 117(ptr) AccessChain 17 116 - 1030: 10(int) Load 1029 - 1031: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1028 25 - 1032: 10(int) AtomicAnd 1031 28 25 1030 - 1033: 117(ptr) AccessChain 17 116 - 1034: 10(int) Load 1033 - 1035: 117(ptr) AccessChain 17 116 - 1036: 10(int) Load 1035 - 1037: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1034 25 - 1038: 10(int) AtomicAnd 1037 28 25 1036 - Store 126(out_u1) 1038 - 1039: 117(ptr) AccessChain 17 116 - 1040: 10(int) Load 1039 - 1041: 117(ptr) AccessChain 17 147 - 1042: 10(int) Load 1041 - 1043: 117(ptr) AccessChain 17 150 - 1044: 10(int) Load 1043 - 1045: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1040 25 - 1046: 10(int) AtomicCompareExchange 1045 28 25 25 1044 1042 - Store 126(out_u1) 1046 - 1047: 117(ptr) AccessChain 17 116 - 1048: 10(int) Load 1047 - 1049: 117(ptr) AccessChain 17 116 - 1050: 10(int) Load 1049 - 1051: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1048 25 - 1052: 10(int) AtomicExchange 1051 28 25 1050 - Store 126(out_u1) 1052 - 1053: 117(ptr) AccessChain 17 116 - 1054: 10(int) Load 1053 - 1055: 117(ptr) AccessChain 17 116 - 1056: 10(int) Load 1055 - 1057: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1054 25 - 1058: 10(int) AtomicUMax 1057 28 25 1056 - 1059: 117(ptr) AccessChain 17 116 - 1060: 10(int) Load 1059 - 1061: 117(ptr) AccessChain 17 116 - 1062: 10(int) Load 1061 - 1063: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1060 25 - 1064: 10(int) AtomicUMax 1063 28 25 1062 - Store 126(out_u1) 1064 - 1065: 117(ptr) AccessChain 17 116 - 1066: 10(int) Load 1065 - 1067: 117(ptr) AccessChain 17 116 - 1068: 10(int) Load 1067 - 1069: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1066 25 - 1070: 10(int) AtomicUMin 1069 28 25 1068 - 1071: 117(ptr) AccessChain 17 116 - 1072: 10(int) Load 1071 - 1073: 117(ptr) AccessChain 17 116 - 1074: 10(int) Load 1073 - 1075: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1072 25 - 1076: 10(int) AtomicUMin 1075 28 25 1074 - Store 126(out_u1) 1076 - 1077: 117(ptr) AccessChain 17 116 - 1078: 10(int) Load 1077 - 1079: 117(ptr) AccessChain 17 116 - 1080: 10(int) Load 1079 - 1081: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1078 25 - 1082: 10(int) AtomicOr 1081 28 25 1080 - 1083: 117(ptr) AccessChain 17 116 - 1084: 10(int) Load 1083 - 1085: 117(ptr) AccessChain 17 116 - 1086: 10(int) Load 1085 - 1087: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1084 25 - 1088: 10(int) AtomicOr 1087 28 25 1086 - Store 126(out_u1) 1088 - 1089: 117(ptr) AccessChain 17 116 - 1090: 10(int) Load 1089 - 1091: 117(ptr) AccessChain 17 116 - 1092: 10(int) Load 1091 - 1093: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1090 25 - 1094: 10(int) AtomicXor 1093 28 25 1092 - 1095: 117(ptr) AccessChain 17 116 - 1096: 10(int) Load 1095 - 1097: 117(ptr) AccessChain 17 116 - 1098: 10(int) Load 1097 - 1099: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1096 25 - 1100: 10(int) AtomicXor 1099 28 25 1098 - Store 126(out_u1) 1100 - 1109: 1108(ptr) AccessChain 1105(psout) 116 - Store 1109 1107 - 1112: 1108(ptr) AccessChain 1105(psout) 116 - 1113: 1102(fvec4) Load 1112 - Store 1111(Color) 1113 + 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 index 31ed4a9826..d829a7bcd7 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.rw.bracket.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.bracket.frag.out @@ -1,835 +1,835 @@ hlsl.rw.bracket.frag -Shader version: 450 +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 Definition: Fn1(vi4; ( temp 4-component vector of int) 0:42 Function Parameters: -0:42 'x' (in 4-component vector of int) +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: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: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: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: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: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: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 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 Definition: Fn2(vu4; ( temp void) 0:47 Function Parameters: -0:47 'x' (out 4-component vector of uint) +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 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 Definition: Fn2(vf4; ( temp void) 0:48 Function Parameters: -0:48 'x' (out 4-component vector of float) +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 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 Definition: SomeValue( ( temp 4-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression -0:50 Convert int to float (temp 4-component vector of float) -0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence -0:57 imageLoad (temp 4-component vector of float) -0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 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 (layout(offset=0 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 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 (layout(offset=0 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:60 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 (layout(offset=0 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:61 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 (layout(offset=8 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:65 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 (layout(offset=8 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of int) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of int) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 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 (layout(offset=96 ) uniform 4-component vector of float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 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 (layout(offset=0 ) uniform int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 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:77 'storeTemp' ( temp 4-component vector of float) +0:77 'storeTemp' ( temp 4-component vector of float) 0:78 Sequence -0:78 imageStore (temp void) -0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:78 c1: direct index for structure (layout(offset=0 ) uniform int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 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: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:79 move second child to first child ( temp 4-component vector of int) +0:79 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) -0:79 imageStore (temp void) -0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:79 c1: direct index for structure (layout(offset=0 ) uniform int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 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: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:80 move second child to first child ( temp 4-component vector of uint) +0:80 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:80 imageStore (temp void) -0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:80 c1: direct index for structure (layout(offset=0 ) uniform int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 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: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 move second child to first child ( temp 4-component vector of float) +0:83 'val1' ( temp 4-component vector of float) 0:83 Sequence -0:83 move second child to first child (temp int) -0:83 'coordTemp' (temp int) -0:83 c1: direct index for structure (layout(offset=0 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 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 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:83 imageStore ( temp void) +0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) 0:84 Sequence -0:84 move second child to first child (temp int) -0:84 'coordTemp' (temp int) -0:84 c1: direct index for structure (layout(offset=0 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 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 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:84 imageStore ( temp void) +0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) 0:85 Sequence -0:85 move second child to first child (temp int) -0:85 'coordTemp' (temp int) -0:85 c1: direct index for structure (layout(offset=0 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 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 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:85 imageStore ( temp void) +0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) 0:87 Sequence -0:87 move second child to first child (temp int) -0:87 'coordTemp' (temp int) -0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:87 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 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:87 imageStore ( temp void) +0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) 0:88 Sequence -0:88 move second child to first child (temp int) -0:88 'coordTemp' (temp int) -0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:88 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 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:88 imageStore ( temp void) +0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) 0:89 Sequence -0:89 move second child to first child (temp int) -0:89 'coordTemp' (temp int) -0:89 c1: direct index for structure (layout(offset=0 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 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 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:89 imageStore ( temp void) +0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) 0:90 Sequence -0:90 move second child to first child (temp int) -0:90 'coordTemp' (temp int) -0:90 c1: direct index for structure (layout(offset=0 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 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 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:90 imageStore ( temp void) +0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) 0:91 Sequence -0:91 move second child to first child (temp int) -0:91 'coordTemp' (temp int) -0:91 c1: direct index for structure (layout(offset=0 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 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 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:91 imageStore ( temp void) +0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) 0:92 Sequence -0:92 move second child to first child (temp int) -0:92 'coordTemp' (temp int) -0:92 c1: direct index for structure (layout(offset=0 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 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 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:92 imageStore ( temp void) +0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) 0:95 Sequence -0:95 move second child to first child (temp 4-component vector of float) -0:95 'storeTemp' (temp 4-component vector of float) -0:95 Function Call: SomeValue( (temp 4-component vector of float) -0:95 imageStore (temp void) -0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 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:95 'storeTemp' ( temp 4-component vector of float) +0:95 'storeTemp' ( temp 4-component vector of float) 0:96 Sequence -0:96 imageStore (temp void) -0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 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: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:97 move second child to first child ( temp 4-component vector of int) +0:97 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) -0:97 imageStore (temp void) -0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 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: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:98 move second child to first child ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:98 imageStore (temp void) -0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 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:98 'storeTemp' ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) 0:101 Sequence -0:101 move second child to first child (temp 4-component vector of float) -0:101 'storeTemp' (temp 4-component vector of float) -0:101 Function Call: SomeValue( (temp 4-component vector of float) -0:101 imageStore (temp void) -0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 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:101 'storeTemp' ( temp 4-component vector of float) +0:101 'storeTemp' ( temp 4-component vector of float) 0:102 Sequence -0:102 imageStore (temp void) -0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 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: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:103 move second child to first child ( temp 4-component vector of int) +0:103 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) 0:? 7 (const int) 0:? 8 (const int) -0:103 imageStore (temp void) -0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 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: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:104 move second child to first child ( temp 4-component vector of uint) +0:104 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:104 imageStore (temp void) -0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 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 (layout(offset=0 ) uniform int) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0: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 (layout(offset=0 ) uniform int) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 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 (layout(offset=0 ) uniform int) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 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 Comma ( temp void) +0:111 Function Call: Fn2(vf4; ( temp void) +0:111 'tempArg' ( temp 4-component vector of float) 0:111 Sequence -0:111 imageStore (temp void) -0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:111 c1: direct index for structure (layout(offset=0 ) uniform int) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 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:111 'tempArg' ( temp 4-component vector of float) +0:111 'tempArg' ( temp 4-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi4; ( temp void) +0:112 'tempArg' ( temp 4-component vector of int) 0:112 Sequence -0:112 imageStore (temp void) -0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:112 c1: direct index for structure (layout(offset=0 ) uniform int) -0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 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:112 'tempArg' ( temp 4-component vector of int) +0:112 'tempArg' ( temp 4-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu4; ( temp void) +0:113 'tempArg' ( temp 4-component vector of uint) 0:113 Sequence -0:113 imageStore (temp void) -0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:113 c1: direct index for structure (layout(offset=0 ) uniform int) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:113 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:113 'tempArg' ( temp 4-component vector of uint) +0:113 'tempArg' ( temp 4-component vector of uint) 0:117 Sequence -0:117 move second child to first child (temp int) -0:117 'coordTemp' (temp int) -0:117 c1: direct index for structure (layout(offset=0 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 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:117 move second child to first child ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageLoad ( temp 4-component vector of float) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) 0:118 Sequence -0:118 move second child to first child (temp int) -0:118 'coordTemp' (temp int) -0:118 c1: direct index for structure (layout(offset=0 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 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:118 move second child to first child ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageLoad ( temp 4-component vector of int) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) 0:119 Sequence -0:119 move second child to first child (temp int) -0:119 'coordTemp' (temp int) -0:119 c1: direct index for structure (layout(offset=0 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 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:119 move second child to first child ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageLoad ( temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) 0:121 Sequence -0:121 move second child to first child (temp int) -0:121 'coordTemp' (temp int) -0:121 c1: direct index for structure (layout(offset=0 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 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:121 move second child to first child ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageLoad ( temp 4-component vector of float) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) 0:122 Sequence -0:122 move second child to first child (temp int) -0:122 'coordTemp' (temp int) -0:122 c1: direct index for structure (layout(offset=0 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 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:122 move second child to first child ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageLoad ( temp 4-component vector of int) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) 0:123 Sequence -0:123 move second child to first child (temp int) -0:123 'coordTemp' (temp int) -0:123 c1: direct index for structure (layout(offset=0 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 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:123 move second child to first child ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageLoad ( temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) 0:126 Sequence -0:126 move second child to first child (temp int) -0:126 'coordTemp' (temp int) -0:126 c1: direct index for structure (layout(offset=0 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 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:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 imageLoad ( temp 4-component vector of float) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 Post-Increment ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) 0:127 Sequence -0:127 move second child to first child (temp int) -0:127 'coordTemp' (temp int) -0:127 c1: direct index for structure (layout(offset=0 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 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:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 imageLoad ( temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 Post-Decrement ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) 0:128 Sequence -0:128 move second child to first child (temp int) -0:128 'coordTemp' (temp int) -0:128 c1: direct index for structure (layout(offset=0 ) uniform int) -0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 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:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 imageLoad ( temp 4-component vector of int) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 Post-Increment ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) 0:130 Sequence -0:130 move second child to first child (temp int) -0:130 'coordTemp' (temp int) -0:130 c1: direct index for structure (layout(offset=0 ) uniform int) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 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:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 imageLoad ( temp 4-component vector of float) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 Post-Decrement ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) 0:131 Sequence -0:131 move second child to first child (temp int) -0:131 'coordTemp' (temp int) -0:131 c1: direct index for structure (layout(offset=0 ) uniform int) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 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:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 imageLoad ( temp 4-component vector of int) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 Post-Increment ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) 0:132 Sequence -0:132 move second child to first child (temp int) -0:132 'coordTemp' (temp int) -0:132 c1: direct index for structure (layout(offset=0 ) uniform int) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 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: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: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 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: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: @@ -837,870 +837,873 @@ gl_FragCoord origin is upper left 0:137 1.000000 0:137 1.000000 0:137 1.000000 -0:139 Sequence -0:139 Sequence -0:139 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:139 Color: direct index for structure (temp 4-component vector of float) -0:139 'psout' (temp structure{temp 4-component vector of float Color}) -0:139 Constant: -0:139 0 (const int) -0:139 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +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: 450 +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 Definition: Fn1(vi4; ( temp 4-component vector of int) 0:42 Function Parameters: -0:42 'x' (in 4-component vector of int) +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: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: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: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: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: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: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 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 Definition: Fn2(vu4; ( temp void) 0:47 Function Parameters: -0:47 'x' (out 4-component vector of uint) +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 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 Definition: Fn2(vf4; ( temp void) 0:48 Function Parameters: -0:48 'x' (out 4-component vector of float) +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 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 Definition: SomeValue( ( temp 4-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression -0:50 Convert int to float (temp 4-component vector of float) -0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence -0:57 imageLoad (temp 4-component vector of float) -0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 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 (layout(offset=0 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 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 (layout(offset=0 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:60 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 (layout(offset=0 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:61 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 (layout(offset=8 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:65 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 (layout(offset=8 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of int) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of int) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 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 (layout(offset=96 ) uniform 4-component vector of float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 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 (layout(offset=0 ) uniform int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 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:77 'storeTemp' ( temp 4-component vector of float) +0:77 'storeTemp' ( temp 4-component vector of float) 0:78 Sequence -0:78 imageStore (temp void) -0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:78 c1: direct index for structure (layout(offset=0 ) uniform int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 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: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:79 move second child to first child ( temp 4-component vector of int) +0:79 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) -0:79 imageStore (temp void) -0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:79 c1: direct index for structure (layout(offset=0 ) uniform int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 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: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:80 move second child to first child ( temp 4-component vector of uint) +0:80 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:80 imageStore (temp void) -0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:80 c1: direct index for structure (layout(offset=0 ) uniform int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 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: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 move second child to first child ( temp 4-component vector of float) +0:83 'val1' ( temp 4-component vector of float) 0:83 Sequence -0:83 move second child to first child (temp int) -0:83 'coordTemp' (temp int) -0:83 c1: direct index for structure (layout(offset=0 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 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 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:83 imageStore ( temp void) +0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) 0:84 Sequence -0:84 move second child to first child (temp int) -0:84 'coordTemp' (temp int) -0:84 c1: direct index for structure (layout(offset=0 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 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 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:84 imageStore ( temp void) +0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) 0:85 Sequence -0:85 move second child to first child (temp int) -0:85 'coordTemp' (temp int) -0:85 c1: direct index for structure (layout(offset=0 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 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 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:85 imageStore ( temp void) +0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) 0:87 Sequence -0:87 move second child to first child (temp int) -0:87 'coordTemp' (temp int) -0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:87 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 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:87 imageStore ( temp void) +0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) 0:88 Sequence -0:88 move second child to first child (temp int) -0:88 'coordTemp' (temp int) -0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:88 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 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:88 imageStore ( temp void) +0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) 0:89 Sequence -0:89 move second child to first child (temp int) -0:89 'coordTemp' (temp int) -0:89 c1: direct index for structure (layout(offset=0 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 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 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:89 imageStore ( temp void) +0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) 0:90 Sequence -0:90 move second child to first child (temp int) -0:90 'coordTemp' (temp int) -0:90 c1: direct index for structure (layout(offset=0 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 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 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:90 imageStore ( temp void) +0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) 0:91 Sequence -0:91 move second child to first child (temp int) -0:91 'coordTemp' (temp int) -0:91 c1: direct index for structure (layout(offset=0 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 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 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:91 imageStore ( temp void) +0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) 0:92 Sequence -0:92 move second child to first child (temp int) -0:92 'coordTemp' (temp int) -0:92 c1: direct index for structure (layout(offset=0 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 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 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:92 imageStore ( temp void) +0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) 0:95 Sequence -0:95 move second child to first child (temp 4-component vector of float) -0:95 'storeTemp' (temp 4-component vector of float) -0:95 Function Call: SomeValue( (temp 4-component vector of float) -0:95 imageStore (temp void) -0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 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:95 'storeTemp' ( temp 4-component vector of float) +0:95 'storeTemp' ( temp 4-component vector of float) 0:96 Sequence -0:96 imageStore (temp void) -0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 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: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:97 move second child to first child ( temp 4-component vector of int) +0:97 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) -0:97 imageStore (temp void) -0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 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: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:98 move second child to first child ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:98 imageStore (temp void) -0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 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:98 'storeTemp' ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) 0:101 Sequence -0:101 move second child to first child (temp 4-component vector of float) -0:101 'storeTemp' (temp 4-component vector of float) -0:101 Function Call: SomeValue( (temp 4-component vector of float) -0:101 imageStore (temp void) -0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 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:101 'storeTemp' ( temp 4-component vector of float) +0:101 'storeTemp' ( temp 4-component vector of float) 0:102 Sequence -0:102 imageStore (temp void) -0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 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: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:103 move second child to first child ( temp 4-component vector of int) +0:103 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) 0:? 7 (const int) 0:? 8 (const int) -0:103 imageStore (temp void) -0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 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: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:104 move second child to first child ( temp 4-component vector of uint) +0:104 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:104 imageStore (temp void) -0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 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 (layout(offset=0 ) uniform int) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0: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 (layout(offset=0 ) uniform int) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 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 (layout(offset=0 ) uniform int) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 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 Comma ( temp void) +0:111 Function Call: Fn2(vf4; ( temp void) +0:111 'tempArg' ( temp 4-component vector of float) 0:111 Sequence -0:111 imageStore (temp void) -0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:111 c1: direct index for structure (layout(offset=0 ) uniform int) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 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:111 'tempArg' ( temp 4-component vector of float) +0:111 'tempArg' ( temp 4-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi4; ( temp void) +0:112 'tempArg' ( temp 4-component vector of int) 0:112 Sequence -0:112 imageStore (temp void) -0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:112 c1: direct index for structure (layout(offset=0 ) uniform int) -0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 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:112 'tempArg' ( temp 4-component vector of int) +0:112 'tempArg' ( temp 4-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu4; ( temp void) +0:113 'tempArg' ( temp 4-component vector of uint) 0:113 Sequence -0:113 imageStore (temp void) -0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:113 c1: direct index for structure (layout(offset=0 ) uniform int) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:113 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:113 'tempArg' ( temp 4-component vector of uint) +0:113 'tempArg' ( temp 4-component vector of uint) 0:117 Sequence -0:117 move second child to first child (temp int) -0:117 'coordTemp' (temp int) -0:117 c1: direct index for structure (layout(offset=0 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 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:117 move second child to first child ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageLoad ( temp 4-component vector of float) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) 0:118 Sequence -0:118 move second child to first child (temp int) -0:118 'coordTemp' (temp int) -0:118 c1: direct index for structure (layout(offset=0 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 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:118 move second child to first child ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageLoad ( temp 4-component vector of int) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) 0:119 Sequence -0:119 move second child to first child (temp int) -0:119 'coordTemp' (temp int) -0:119 c1: direct index for structure (layout(offset=0 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 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:119 move second child to first child ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageLoad ( temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) 0:121 Sequence -0:121 move second child to first child (temp int) -0:121 'coordTemp' (temp int) -0:121 c1: direct index for structure (layout(offset=0 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 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:121 move second child to first child ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageLoad ( temp 4-component vector of float) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) 0:122 Sequence -0:122 move second child to first child (temp int) -0:122 'coordTemp' (temp int) -0:122 c1: direct index for structure (layout(offset=0 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 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:122 move second child to first child ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageLoad ( temp 4-component vector of int) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) 0:123 Sequence -0:123 move second child to first child (temp int) -0:123 'coordTemp' (temp int) -0:123 c1: direct index for structure (layout(offset=0 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 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:123 move second child to first child ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageLoad ( temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) 0:126 Sequence -0:126 move second child to first child (temp int) -0:126 'coordTemp' (temp int) -0:126 c1: direct index for structure (layout(offset=0 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 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:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 imageLoad ( temp 4-component vector of float) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 Post-Increment ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) 0:127 Sequence -0:127 move second child to first child (temp int) -0:127 'coordTemp' (temp int) -0:127 c1: direct index for structure (layout(offset=0 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 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:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 imageLoad ( temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 Post-Decrement ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) 0:128 Sequence -0:128 move second child to first child (temp int) -0:128 'coordTemp' (temp int) -0:128 c1: direct index for structure (layout(offset=0 ) uniform int) -0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 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:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 imageLoad ( temp 4-component vector of int) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 Post-Increment ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) 0:130 Sequence -0:130 move second child to first child (temp int) -0:130 'coordTemp' (temp int) -0:130 c1: direct index for structure (layout(offset=0 ) uniform int) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 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:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 imageLoad ( temp 4-component vector of float) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 Post-Decrement ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) 0:131 Sequence -0:131 move second child to first child (temp int) -0:131 'coordTemp' (temp int) -0:131 c1: direct index for structure (layout(offset=0 ) uniform int) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 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:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 imageLoad ( temp 4-component vector of int) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 Post-Increment ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) 0:132 Sequence -0:132 move second child to first child (temp int) -0:132 'coordTemp' (temp int) -0:132 c1: direct index for structure (layout(offset=0 ) uniform int) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 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: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: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 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: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: @@ -1708,45 +1711,49 @@ gl_FragCoord origin is upper left 0:137 1.000000 0:137 1.000000 0:137 1.000000 -0:139 Sequence -0:139 Sequence -0:139 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:139 Color: direct index for structure (temp 4-component vector of float) -0:139 'psout' (temp structure{temp 4-component vector of float Color}) -0:139 Constant: -0:139 0 (const int) -0:139 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) -0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) -0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) -0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) -0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) -0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +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): 80001 -// Id's are bound by 602 +// Generated by (magic number): 80007 +// Id's are bound by 607 Capability Shader - Capability Sampled1D + Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 577 + EntryPoint Fragment 4 "main" 583 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 11 "Fn1(vi4;" Name 10 "x" @@ -1761,149 +1768,150 @@ gl_FragCoord origin is upper left Name 37 "Fn2(vf4;" Name 36 "x" Name 40 "SomeValue(" - Name 59 "$Global" - MemberName 59($Global) 0 "c1" - MemberName 59($Global) 1 "c2" - MemberName 59($Global) 2 "c3" - MemberName 59($Global) 3 "c4" - MemberName 59($Global) 4 "o1" - MemberName 59($Global) 5 "o2" - MemberName 59($Global) 6 "o3" - MemberName 59($Global) 7 "o4" - MemberName 59($Global) 8 "uf4" - MemberName 59($Global) 9 "ui4" - MemberName 59($Global) 10 "uu4" - Name 61 "" - Name 71 "g_tTex1df4" - Name 77 "r00" - Name 82 "r01" - Name 85 "g_tTex1di4" - Name 90 "r02" - Name 93 "g_tTex1du4" - Name 98 "r10" - Name 101 "g_tTex2df4" - Name 108 "r11" - Name 111 "g_tTex2di4" - Name 116 "r12" - Name 119 "g_tTex2du4" - Name 124 "r20" - Name 127 "g_tTex3df4" - Name 134 "r21" - Name 137 "g_tTex3di4" - Name 142 "r22" - Name 145 "g_tTex3du4" - Name 150 "lf4" - Name 155 "storeTemp" - Name 165 "storeTemp" - Name 172 "storeTemp" - Name 181 "val1" - Name 183 "coordTemp" - Name 186 "storeTemp" - Name 197 "coordTemp" - Name 200 "storeTemp" - Name 211 "coordTemp" - Name 214 "storeTemp" - Name 225 "coordTemp" - Name 228 "storeTemp" - Name 238 "coordTemp" - Name 241 "storeTemp" - Name 251 "coordTemp" - Name 254 "storeTemp" - Name 265 "coordTemp" - Name 268 "storeTemp" - Name 279 "coordTemp" - Name 282 "storeTemp" - Name 292 "coordTemp" - Name 295 "storeTemp" - Name 305 "storeTemp" - Name 315 "storeTemp" - Name 322 "storeTemp" - Name 329 "storeTemp" - Name 339 "storeTemp" - Name 347 "storeTemp" - Name 358 "param" - Name 364 "param" - Name 370 "param" - Name 372 "tempArg" - Name 373 "param" - Name 380 "tempArg" - Name 381 "param" - Name 388 "tempArg" - Name 389 "param" - Name 396 "coordTemp" - Name 399 "storeTemp" - Name 410 "coordTemp" - Name 413 "storeTemp" - Name 423 "coordTemp" - Name 426 "storeTemp" - Name 436 "coordTemp" - Name 439 "storeTemp" - Name 449 "coordTemp" - Name 452 "storeTemp" - Name 462 "coordTemp" - Name 465 "storeTemp" - Name 475 "coordTemp" - Name 478 "storeTempPre" - Name 482 "storeTempPost" - Name 490 "coordTemp" - Name 493 "storeTempPre" - Name 497 "storeTempPost" - Name 505 "coordTemp" - Name 508 "storeTempPre" - Name 512 "storeTempPost" - Name 520 "coordTemp" - Name 523 "storeTempPre" - Name 527 "storeTempPost" - Name 535 "coordTemp" - Name 538 "storeTempPre" - Name 542 "storeTempPost" - Name 550 "coordTemp" - Name 553 "storeTempPre" - Name 557 "storeTempPost" - Name 565 "storeTemp" - Name 571 "PS_OUTPUT" - MemberName 571(PS_OUTPUT) 0 "Color" - Name 573 "psout" - Name 577 "Color" - Name 583 "g_sSamp" - Name 586 "g_tTex1df4a" - Name 589 "g_tTex1di4a" - Name 592 "g_tTex1du4a" - Name 595 "g_tTex2df4a" - Name 598 "g_tTex2di4a" - Name 601 "g_tTex2du4a" - MemberDecorate 59($Global) 0 Offset 0 - MemberDecorate 59($Global) 1 Offset 8 - MemberDecorate 59($Global) 2 Offset 16 - MemberDecorate 59($Global) 3 Offset 32 - MemberDecorate 59($Global) 4 Offset 48 - MemberDecorate 59($Global) 5 Offset 56 - MemberDecorate 59($Global) 6 Offset 64 - MemberDecorate 59($Global) 7 Offset 80 - MemberDecorate 59($Global) 8 Offset 96 - MemberDecorate 59($Global) 9 Offset 112 - MemberDecorate 59($Global) 10 Offset 128 - Decorate 59($Global) Block - Decorate 61 DescriptorSet 0 - Decorate 71(g_tTex1df4) DescriptorSet 0 - Decorate 71(g_tTex1df4) Binding 0 - Decorate 85(g_tTex1di4) DescriptorSet 0 - Decorate 93(g_tTex1du4) DescriptorSet 0 - Decorate 101(g_tTex2df4) DescriptorSet 0 - Decorate 111(g_tTex2di4) DescriptorSet 0 - Decorate 119(g_tTex2du4) DescriptorSet 0 - Decorate 127(g_tTex3df4) DescriptorSet 0 - Decorate 137(g_tTex3di4) DescriptorSet 0 - Decorate 145(g_tTex3du4) DescriptorSet 0 - Decorate 577(Color) Location 0 - Decorate 583(g_sSamp) DescriptorSet 0 - Decorate 583(g_sSamp) Binding 0 - Decorate 586(g_tTex1df4a) DescriptorSet 0 - Decorate 589(g_tTex1di4a) DescriptorSet 0 - Decorate 592(g_tTex1du4a) DescriptorSet 0 - Decorate 595(g_tTex2df4a) DescriptorSet 0 - Decorate 598(g_tTex2di4a) DescriptorSet 0 - Decorate 601(g_tTex2du4a) DescriptorSet 0 + 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 @@ -1922,730 +1930,736 @@ gl_FragCoord origin is upper left 31: TypeFunction 2 15(ptr) 35: TypeFunction 2 22(ptr) 39: TypeFunction 21(fvec4) - 51: 6(int) Constant 0 - 52: 7(ivec4) ConstantComposite 51 51 51 51 - 53: 13(int) Constant 0 - 54: 14(ivec4) ConstantComposite 53 53 53 53 - 55: 20(float) Constant 0 - 56: 21(fvec4) ConstantComposite 55 55 55 55 - 57: TypeVector 6(int) 2 - 58: TypeVector 6(int) 3 - 59($Global): TypeStruct 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 21(fvec4) 7(ivec4) 14(ivec4) - 60: TypePointer Uniform 59($Global) - 61: 60(ptr) Variable Uniform - 62: 6(int) Constant 3 - 63: TypePointer Uniform 7(ivec4) - 69: TypeImage 20(float) 1D nonsampled format:Rgba32f - 70: TypePointer UniformConstant 69 - 71(g_tTex1df4): 70(ptr) Variable UniformConstant - 73: TypePointer Uniform 6(int) - 83: TypeImage 6(int) 1D nonsampled format:Rgba32i - 84: TypePointer UniformConstant 83 - 85(g_tTex1di4): 84(ptr) Variable UniformConstant - 91: TypeImage 13(int) 1D nonsampled format:Rgba32ui - 92: TypePointer UniformConstant 91 - 93(g_tTex1du4): 92(ptr) Variable UniformConstant - 99: TypeImage 20(float) 2D nonsampled format:Rgba32f - 100: TypePointer UniformConstant 99 - 101(g_tTex2df4): 100(ptr) Variable UniformConstant - 103: 6(int) Constant 1 - 104: TypePointer Uniform 57(ivec2) - 109: TypeImage 6(int) 2D nonsampled format:Rgba32i - 110: TypePointer UniformConstant 109 - 111(g_tTex2di4): 110(ptr) Variable UniformConstant - 117: TypeImage 13(int) 2D nonsampled format:Rgba32ui - 118: TypePointer UniformConstant 117 - 119(g_tTex2du4): 118(ptr) Variable UniformConstant - 125: TypeImage 20(float) 3D nonsampled format:Rgba32f - 126: TypePointer UniformConstant 125 - 127(g_tTex3df4): 126(ptr) Variable UniformConstant - 129: 6(int) Constant 2 - 130: TypePointer Uniform 58(ivec3) - 135: TypeImage 6(int) 3D nonsampled format:Rgba32i - 136: TypePointer UniformConstant 135 - 137(g_tTex3di4): 136(ptr) Variable UniformConstant - 143: TypeImage 13(int) 3D nonsampled format:Rgba32ui - 144: TypePointer UniformConstant 143 - 145(g_tTex3du4): 144(ptr) Variable UniformConstant - 151: 6(int) Constant 8 - 152: TypePointer Uniform 21(fvec4) - 166: 6(int) Constant 4 - 167: 7(ivec4) ConstantComposite 129 129 62 166 - 173: 13(int) Constant 3 - 174: 13(int) Constant 2 - 175: 13(int) Constant 4 - 176: 14(ivec4) ConstantComposite 173 174 173 175 - 182: TypePointer Function 6(int) - 190: 20(float) Constant 1073741824 - 204: 20(float) Constant 1077936128 - 218: 20(float) Constant 1082130432 - 258: 6(int) Constant 65535 - 272: 6(int) Constant 61680 - 316: 6(int) Constant 5 - 317: 7(ivec4) ConstantComposite 316 129 62 166 - 323: 13(int) Constant 6 - 324: 14(ivec4) ConstantComposite 323 174 173 175 - 340: 6(int) Constant 6 - 341: 6(int) Constant 7 - 342: 7(ivec4) ConstantComposite 151 340 341 151 - 348: 13(int) Constant 9 - 349: 14(ivec4) ConstantComposite 348 174 173 175 - 404: 20(float) Constant 1065353216 - 567: 57(ivec2) ConstantComposite 129 62 - 571(PS_OUTPUT): TypeStruct 21(fvec4) - 572: TypePointer Function 571(PS_OUTPUT) - 574: 21(fvec4) ConstantComposite 404 404 404 404 - 576: TypePointer Output 21(fvec4) - 577(Color): 576(ptr) Variable Output - 581: TypeSampler - 582: TypePointer UniformConstant 581 - 583(g_sSamp): 582(ptr) Variable UniformConstant - 584: TypeImage 20(float) 1D array nonsampled format:Rgba32f - 585: TypePointer UniformConstant 584 -586(g_tTex1df4a): 585(ptr) Variable UniformConstant - 587: TypeImage 6(int) 1D array nonsampled format:Rgba32i - 588: TypePointer UniformConstant 587 -589(g_tTex1di4a): 588(ptr) Variable UniformConstant - 590: TypeImage 13(int) 1D array nonsampled format:Rgba32ui - 591: TypePointer UniformConstant 590 -592(g_tTex1du4a): 591(ptr) Variable UniformConstant - 593: TypeImage 20(float) 2D array nonsampled format:Rgba32f - 594: TypePointer UniformConstant 593 -595(g_tTex2df4a): 594(ptr) Variable UniformConstant - 596: TypeImage 6(int) 2D array nonsampled format:Rgba32i - 597: TypePointer UniformConstant 596 -598(g_tTex2di4a): 597(ptr) Variable UniformConstant - 599: TypeImage 13(int) 2D array nonsampled format:Rgba32ui - 600: TypePointer UniformConstant 599 -601(g_tTex2du4a): 600(ptr) Variable UniformConstant + 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 - 77(r00): 22(ptr) Variable Function - 82(r01): 8(ptr) Variable Function - 90(r02): 15(ptr) Variable Function - 98(r10): 22(ptr) Variable Function - 108(r11): 8(ptr) Variable Function - 116(r12): 15(ptr) Variable Function - 124(r20): 22(ptr) Variable Function - 134(r21): 8(ptr) Variable Function - 142(r22): 15(ptr) Variable Function - 150(lf4): 22(ptr) Variable Function - 155(storeTemp): 22(ptr) Variable Function - 165(storeTemp): 8(ptr) Variable Function - 172(storeTemp): 15(ptr) Variable Function - 181(val1): 22(ptr) Variable Function - 183(coordTemp): 182(ptr) Variable Function - 186(storeTemp): 22(ptr) Variable Function - 197(coordTemp): 182(ptr) Variable Function - 200(storeTemp): 22(ptr) Variable Function - 211(coordTemp): 182(ptr) Variable Function - 214(storeTemp): 22(ptr) Variable Function - 225(coordTemp): 182(ptr) Variable Function - 228(storeTemp): 8(ptr) Variable Function - 238(coordTemp): 182(ptr) Variable Function - 241(storeTemp): 8(ptr) Variable Function - 251(coordTemp): 182(ptr) Variable Function - 254(storeTemp): 8(ptr) Variable Function - 265(coordTemp): 182(ptr) Variable Function - 268(storeTemp): 8(ptr) Variable Function - 279(coordTemp): 182(ptr) Variable Function - 282(storeTemp): 8(ptr) Variable Function - 292(coordTemp): 182(ptr) Variable Function - 295(storeTemp): 8(ptr) Variable Function - 305(storeTemp): 22(ptr) Variable Function - 315(storeTemp): 8(ptr) Variable Function - 322(storeTemp): 15(ptr) Variable Function - 329(storeTemp): 22(ptr) Variable Function - 339(storeTemp): 8(ptr) Variable Function - 347(storeTemp): 15(ptr) Variable Function - 358(param): 22(ptr) Variable Function - 364(param): 8(ptr) Variable Function - 370(param): 15(ptr) Variable Function - 372(tempArg): 22(ptr) Variable Function - 373(param): 22(ptr) Variable Function - 380(tempArg): 8(ptr) Variable Function - 381(param): 8(ptr) Variable Function - 388(tempArg): 15(ptr) Variable Function - 389(param): 15(ptr) Variable Function - 396(coordTemp): 182(ptr) Variable Function - 399(storeTemp): 22(ptr) Variable Function - 410(coordTemp): 182(ptr) Variable Function - 413(storeTemp): 8(ptr) Variable Function - 423(coordTemp): 182(ptr) Variable Function - 426(storeTemp): 15(ptr) Variable Function - 436(coordTemp): 182(ptr) Variable Function - 439(storeTemp): 22(ptr) Variable Function - 449(coordTemp): 182(ptr) Variable Function - 452(storeTemp): 8(ptr) Variable Function - 462(coordTemp): 182(ptr) Variable Function - 465(storeTemp): 15(ptr) Variable Function - 475(coordTemp): 182(ptr) Variable Function -478(storeTempPre): 22(ptr) Variable Function -482(storeTempPost): 22(ptr) Variable Function - 490(coordTemp): 182(ptr) Variable Function -493(storeTempPre): 15(ptr) Variable Function -497(storeTempPost): 15(ptr) Variable Function - 505(coordTemp): 182(ptr) Variable Function -508(storeTempPre): 8(ptr) Variable Function -512(storeTempPost): 8(ptr) Variable Function - 520(coordTemp): 182(ptr) Variable Function -523(storeTempPre): 22(ptr) Variable Function -527(storeTempPost): 22(ptr) Variable Function - 535(coordTemp): 182(ptr) Variable Function -538(storeTempPre): 8(ptr) Variable Function -542(storeTempPost): 8(ptr) Variable Function - 550(coordTemp): 182(ptr) Variable Function -553(storeTempPre): 15(ptr) Variable Function -557(storeTempPost): 15(ptr) Variable Function - 565(storeTemp): 22(ptr) Variable Function - 573(psout): 572(ptr) Variable Function - 72: 69 Load 71(g_tTex1df4) - 74: 73(ptr) AccessChain 61 51 - 75: 6(int) Load 74 - 76: 21(fvec4) ImageRead 72 75 - 78: 69 Load 71(g_tTex1df4) - 79: 73(ptr) AccessChain 61 51 - 80: 6(int) Load 79 - 81: 21(fvec4) ImageRead 78 80 - Store 77(r00) 81 - 86: 83 Load 85(g_tTex1di4) - 87: 73(ptr) AccessChain 61 51 - 88: 6(int) Load 87 - 89: 7(ivec4) ImageRead 86 88 - Store 82(r01) 89 - 94: 91 Load 93(g_tTex1du4) - 95: 73(ptr) AccessChain 61 51 - 96: 6(int) Load 95 - 97: 14(ivec4) ImageRead 94 96 - Store 90(r02) 97 - 102: 99 Load 101(g_tTex2df4) - 105: 104(ptr) AccessChain 61 103 - 106: 57(ivec2) Load 105 - 107: 21(fvec4) ImageRead 102 106 - Store 98(r10) 107 - 112: 109 Load 111(g_tTex2di4) - 113: 104(ptr) AccessChain 61 103 - 114: 57(ivec2) Load 113 - 115: 7(ivec4) ImageRead 112 114 - Store 108(r11) 115 - 120: 117 Load 119(g_tTex2du4) - 121: 104(ptr) AccessChain 61 103 - 122: 57(ivec2) Load 121 - 123: 14(ivec4) ImageRead 120 122 - Store 116(r12) 123 - 128: 125 Load 127(g_tTex3df4) - 131: 130(ptr) AccessChain 61 129 - 132: 58(ivec3) Load 131 - 133: 21(fvec4) ImageRead 128 132 - Store 124(r20) 133 - 138: 135 Load 137(g_tTex3di4) - 139: 130(ptr) AccessChain 61 129 - 140: 58(ivec3) Load 139 - 141: 7(ivec4) ImageRead 138 140 - Store 134(r21) 141 - 146: 143 Load 145(g_tTex3du4) - 147: 130(ptr) AccessChain 61 129 - 148: 58(ivec3) Load 147 - 149: 14(ivec4) ImageRead 146 148 - Store 142(r22) 149 - 153: 152(ptr) AccessChain 61 151 - 154: 21(fvec4) Load 153 - Store 150(lf4) 154 - 156: 21(fvec4) FunctionCall 40(SomeValue() - Store 155(storeTemp) 156 - 157: 69 Load 71(g_tTex1df4) - 158: 73(ptr) AccessChain 61 51 - 159: 6(int) Load 158 - 160: 21(fvec4) Load 155(storeTemp) - ImageWrite 157 159 160 - 161: 69 Load 71(g_tTex1df4) - 162: 73(ptr) AccessChain 61 51 - 163: 6(int) Load 162 - 164: 21(fvec4) Load 150(lf4) - ImageWrite 161 163 164 - Store 165(storeTemp) 167 - 168: 83 Load 85(g_tTex1di4) - 169: 73(ptr) AccessChain 61 51 - 170: 6(int) Load 169 - 171: 7(ivec4) Load 165(storeTemp) - ImageWrite 168 170 171 - Store 172(storeTemp) 176 - 177: 91 Load 93(g_tTex1du4) - 178: 73(ptr) AccessChain 61 51 - 179: 6(int) Load 178 - 180: 14(ivec4) Load 172(storeTemp) - ImageWrite 177 179 180 - 184: 73(ptr) AccessChain 61 51 - 185: 6(int) Load 184 - Store 183(coordTemp) 185 - 187: 69 Load 71(g_tTex1df4) - 188: 6(int) Load 183(coordTemp) - 189: 21(fvec4) ImageRead 187 188 - Store 186(storeTemp) 189 - 191: 21(fvec4) Load 186(storeTemp) - 192: 21(fvec4) VectorTimesScalar 191 190 - Store 186(storeTemp) 192 - 193: 69 Load 71(g_tTex1df4) - 194: 6(int) Load 183(coordTemp) - 195: 21(fvec4) Load 186(storeTemp) - ImageWrite 193 194 195 - 196: 21(fvec4) Load 186(storeTemp) - Store 181(val1) 196 - 198: 73(ptr) AccessChain 61 51 - 199: 6(int) Load 198 - Store 197(coordTemp) 199 - 201: 69 Load 71(g_tTex1df4) - 202: 6(int) Load 197(coordTemp) - 203: 21(fvec4) ImageRead 201 202 - Store 200(storeTemp) 203 - 205: 21(fvec4) Load 200(storeTemp) - 206: 21(fvec4) CompositeConstruct 204 204 204 204 - 207: 21(fvec4) FSub 205 206 - Store 200(storeTemp) 207 - 208: 69 Load 71(g_tTex1df4) - 209: 6(int) Load 197(coordTemp) - 210: 21(fvec4) Load 200(storeTemp) - ImageWrite 208 209 210 - 212: 73(ptr) AccessChain 61 51 - 213: 6(int) Load 212 - Store 211(coordTemp) 213 - 215: 69 Load 71(g_tTex1df4) - 216: 6(int) Load 211(coordTemp) - 217: 21(fvec4) ImageRead 215 216 - Store 214(storeTemp) 217 - 219: 21(fvec4) Load 214(storeTemp) - 220: 21(fvec4) CompositeConstruct 218 218 218 218 - 221: 21(fvec4) FAdd 219 220 - Store 214(storeTemp) 221 - 222: 69 Load 71(g_tTex1df4) - 223: 6(int) Load 211(coordTemp) - 224: 21(fvec4) Load 214(storeTemp) - ImageWrite 222 223 224 - 226: 73(ptr) AccessChain 61 51 - 227: 6(int) Load 226 - Store 225(coordTemp) 227 - 229: 83 Load 85(g_tTex1di4) - 230: 6(int) Load 225(coordTemp) - 231: 7(ivec4) ImageRead 229 230 - Store 228(storeTemp) 231 - 232: 7(ivec4) Load 228(storeTemp) - 233: 7(ivec4) CompositeConstruct 129 129 129 129 - 234: 7(ivec4) SDiv 232 233 - Store 228(storeTemp) 234 - 235: 83 Load 85(g_tTex1di4) - 236: 6(int) Load 225(coordTemp) - 237: 7(ivec4) Load 228(storeTemp) - ImageWrite 235 236 237 - 239: 73(ptr) AccessChain 61 51 - 240: 6(int) Load 239 - Store 238(coordTemp) 240 - 242: 83 Load 85(g_tTex1di4) - 243: 6(int) Load 238(coordTemp) - 244: 7(ivec4) ImageRead 242 243 - Store 241(storeTemp) 244 - 245: 7(ivec4) Load 241(storeTemp) - 246: 7(ivec4) CompositeConstruct 129 129 129 129 - 247: 7(ivec4) SMod 245 246 - Store 241(storeTemp) 247 - 248: 83 Load 85(g_tTex1di4) - 249: 6(int) Load 238(coordTemp) - 250: 7(ivec4) Load 241(storeTemp) - ImageWrite 248 249 250 - 252: 73(ptr) AccessChain 61 51 - 253: 6(int) Load 252 - Store 251(coordTemp) 253 - 255: 83 Load 85(g_tTex1di4) - 256: 6(int) Load 251(coordTemp) - 257: 7(ivec4) ImageRead 255 256 - Store 254(storeTemp) 257 - 259: 7(ivec4) Load 254(storeTemp) - 260: 7(ivec4) CompositeConstruct 258 258 258 258 - 261: 7(ivec4) BitwiseAnd 259 260 - Store 254(storeTemp) 261 - 262: 83 Load 85(g_tTex1di4) - 263: 6(int) Load 251(coordTemp) - 264: 7(ivec4) Load 254(storeTemp) - ImageWrite 262 263 264 - 266: 73(ptr) AccessChain 61 51 - 267: 6(int) Load 266 - Store 265(coordTemp) 267 - 269: 83 Load 85(g_tTex1di4) - 270: 6(int) Load 265(coordTemp) - 271: 7(ivec4) ImageRead 269 270 - Store 268(storeTemp) 271 - 273: 7(ivec4) Load 268(storeTemp) - 274: 7(ivec4) CompositeConstruct 272 272 272 272 - 275: 7(ivec4) BitwiseOr 273 274 - Store 268(storeTemp) 275 - 276: 83 Load 85(g_tTex1di4) - 277: 6(int) Load 265(coordTemp) - 278: 7(ivec4) Load 268(storeTemp) - ImageWrite 276 277 278 - 280: 73(ptr) AccessChain 61 51 - 281: 6(int) Load 280 - Store 279(coordTemp) 281 - 283: 83 Load 85(g_tTex1di4) - 284: 6(int) Load 279(coordTemp) - 285: 7(ivec4) ImageRead 283 284 - Store 282(storeTemp) 285 - 286: 7(ivec4) Load 282(storeTemp) - 287: 7(ivec4) CompositeConstruct 129 129 129 129 - 288: 7(ivec4) ShiftLeftLogical 286 287 - Store 282(storeTemp) 288 - 289: 83 Load 85(g_tTex1di4) - 290: 6(int) Load 279(coordTemp) - 291: 7(ivec4) Load 282(storeTemp) - ImageWrite 289 290 291 - 293: 73(ptr) AccessChain 61 51 - 294: 6(int) Load 293 - Store 292(coordTemp) 294 - 296: 83 Load 85(g_tTex1di4) - 297: 6(int) Load 292(coordTemp) - 298: 7(ivec4) ImageRead 296 297 - Store 295(storeTemp) 298 - 299: 7(ivec4) Load 295(storeTemp) - 300: 7(ivec4) CompositeConstruct 129 129 129 129 - 301: 7(ivec4) ShiftRightArithmetic 299 300 - Store 295(storeTemp) 301 - 302: 83 Load 85(g_tTex1di4) - 303: 6(int) Load 292(coordTemp) - 304: 7(ivec4) Load 295(storeTemp) - ImageWrite 302 303 304 - 306: 21(fvec4) FunctionCall 40(SomeValue() - Store 305(storeTemp) 306 - 307: 99 Load 101(g_tTex2df4) - 308: 104(ptr) AccessChain 61 103 - 309: 57(ivec2) Load 308 - 310: 21(fvec4) Load 305(storeTemp) - ImageWrite 307 309 310 - 311: 99 Load 101(g_tTex2df4) - 312: 104(ptr) AccessChain 61 103 - 313: 57(ivec2) Load 312 - 314: 21(fvec4) Load 150(lf4) - ImageWrite 311 313 314 - Store 315(storeTemp) 317 - 318: 109 Load 111(g_tTex2di4) - 319: 104(ptr) AccessChain 61 103 - 320: 57(ivec2) Load 319 - 321: 7(ivec4) Load 315(storeTemp) - ImageWrite 318 320 321 - Store 322(storeTemp) 324 - 325: 117 Load 119(g_tTex2du4) - 326: 104(ptr) AccessChain 61 103 - 327: 57(ivec2) Load 326 - 328: 14(ivec4) Load 322(storeTemp) - ImageWrite 325 327 328 - 330: 21(fvec4) FunctionCall 40(SomeValue() - Store 329(storeTemp) 330 - 331: 125 Load 127(g_tTex3df4) - 332: 130(ptr) AccessChain 61 129 - 333: 58(ivec3) Load 332 - 334: 21(fvec4) Load 329(storeTemp) - ImageWrite 331 333 334 - 335: 125 Load 127(g_tTex3df4) - 336: 130(ptr) AccessChain 61 129 - 337: 58(ivec3) Load 336 - 338: 21(fvec4) Load 150(lf4) - ImageWrite 335 337 338 - Store 339(storeTemp) 342 - 343: 135 Load 137(g_tTex3di4) - 344: 130(ptr) AccessChain 61 129 - 345: 58(ivec3) Load 344 - 346: 7(ivec4) Load 339(storeTemp) - ImageWrite 343 345 346 - Store 347(storeTemp) 349 - 350: 143 Load 145(g_tTex3du4) - 351: 130(ptr) AccessChain 61 129 - 352: 58(ivec3) Load 351 - 353: 14(ivec4) Load 347(storeTemp) - ImageWrite 350 352 353 - 354: 69 Load 71(g_tTex1df4) - 355: 73(ptr) AccessChain 61 51 - 356: 6(int) Load 355 - 357: 21(fvec4) ImageRead 354 356 - Store 358(param) 357 - 359: 21(fvec4) FunctionCall 25(Fn1(vf4;) 358(param) - 360: 83 Load 85(g_tTex1di4) - 361: 73(ptr) AccessChain 61 51 - 362: 6(int) Load 361 - 363: 7(ivec4) ImageRead 360 362 - Store 364(param) 363 - 365: 7(ivec4) FunctionCall 11(Fn1(vi4;) 364(param) - 366: 91 Load 93(g_tTex1du4) - 367: 73(ptr) AccessChain 61 51 - 368: 6(int) Load 367 - 369: 14(ivec4) ImageRead 366 368 - Store 370(param) 369 - 371: 14(ivec4) FunctionCall 18(Fn1(vu4;) 370(param) - 374: 2 FunctionCall 37(Fn2(vf4;) 373(param) - 375: 21(fvec4) Load 373(param) - Store 372(tempArg) 375 - 376: 69 Load 71(g_tTex1df4) - 377: 73(ptr) AccessChain 61 51 - 378: 6(int) Load 377 - 379: 21(fvec4) Load 372(tempArg) - ImageWrite 376 378 379 - 382: 2 FunctionCall 29(Fn2(vi4;) 381(param) - 383: 7(ivec4) Load 381(param) - Store 380(tempArg) 383 - 384: 83 Load 85(g_tTex1di4) - 385: 73(ptr) AccessChain 61 51 - 386: 6(int) Load 385 - 387: 7(ivec4) Load 380(tempArg) - ImageWrite 384 386 387 - 390: 2 FunctionCall 33(Fn2(vu4;) 389(param) - 391: 14(ivec4) Load 389(param) - Store 388(tempArg) 391 - 392: 91 Load 93(g_tTex1du4) - 393: 73(ptr) AccessChain 61 51 - 394: 6(int) Load 393 - 395: 14(ivec4) Load 388(tempArg) - ImageWrite 392 394 395 - 397: 73(ptr) AccessChain 61 51 - 398: 6(int) Load 397 - Store 396(coordTemp) 398 - 400: 69 Load 71(g_tTex1df4) - 401: 6(int) Load 396(coordTemp) - 402: 21(fvec4) ImageRead 400 401 - Store 399(storeTemp) 402 - 403: 21(fvec4) Load 399(storeTemp) - 405: 21(fvec4) CompositeConstruct 404 404 404 404 - 406: 21(fvec4) FAdd 403 405 - Store 399(storeTemp) 406 - 407: 69 Load 71(g_tTex1df4) - 408: 6(int) Load 396(coordTemp) - 409: 21(fvec4) Load 399(storeTemp) - ImageWrite 407 408 409 - 411: 73(ptr) AccessChain 61 51 - 412: 6(int) Load 411 - Store 410(coordTemp) 412 - 414: 83 Load 85(g_tTex1di4) - 415: 6(int) Load 410(coordTemp) - 416: 7(ivec4) ImageRead 414 415 - Store 413(storeTemp) 416 - 417: 7(ivec4) Load 413(storeTemp) - 418: 7(ivec4) CompositeConstruct 103 103 103 103 - 419: 7(ivec4) IAdd 417 418 - Store 413(storeTemp) 419 - 420: 83 Load 85(g_tTex1di4) - 421: 6(int) Load 410(coordTemp) - 422: 7(ivec4) Load 413(storeTemp) - ImageWrite 420 421 422 - 424: 73(ptr) AccessChain 61 51 - 425: 6(int) Load 424 - Store 423(coordTemp) 425 - 427: 91 Load 93(g_tTex1du4) - 428: 6(int) Load 423(coordTemp) - 429: 14(ivec4) ImageRead 427 428 - Store 426(storeTemp) 429 - 430: 14(ivec4) Load 426(storeTemp) - 431: 7(ivec4) CompositeConstruct 103 103 103 103 - 432: 14(ivec4) IAdd 430 431 - Store 426(storeTemp) 432 - 433: 91 Load 93(g_tTex1du4) - 434: 6(int) Load 423(coordTemp) - 435: 14(ivec4) Load 426(storeTemp) - ImageWrite 433 434 435 - 437: 73(ptr) AccessChain 61 51 - 438: 6(int) Load 437 - Store 436(coordTemp) 438 - 440: 69 Load 71(g_tTex1df4) - 441: 6(int) Load 436(coordTemp) - 442: 21(fvec4) ImageRead 440 441 - Store 439(storeTemp) 442 - 443: 21(fvec4) Load 439(storeTemp) - 444: 21(fvec4) CompositeConstruct 404 404 404 404 - 445: 21(fvec4) FSub 443 444 - Store 439(storeTemp) 445 - 446: 69 Load 71(g_tTex1df4) - 447: 6(int) Load 436(coordTemp) - 448: 21(fvec4) Load 439(storeTemp) - ImageWrite 446 447 448 - 450: 73(ptr) AccessChain 61 51 - 451: 6(int) Load 450 - Store 449(coordTemp) 451 - 453: 83 Load 85(g_tTex1di4) - 454: 6(int) Load 449(coordTemp) - 455: 7(ivec4) ImageRead 453 454 - Store 452(storeTemp) 455 - 456: 7(ivec4) Load 452(storeTemp) - 457: 7(ivec4) CompositeConstruct 103 103 103 103 - 458: 7(ivec4) ISub 456 457 - Store 452(storeTemp) 458 - 459: 83 Load 85(g_tTex1di4) - 460: 6(int) Load 449(coordTemp) - 461: 7(ivec4) Load 452(storeTemp) - ImageWrite 459 460 461 - 463: 73(ptr) AccessChain 61 51 - 464: 6(int) Load 463 - Store 462(coordTemp) 464 - 466: 91 Load 93(g_tTex1du4) - 467: 6(int) Load 462(coordTemp) - 468: 14(ivec4) ImageRead 466 467 - Store 465(storeTemp) 468 - 469: 14(ivec4) Load 465(storeTemp) - 470: 7(ivec4) CompositeConstruct 103 103 103 103 - 471: 14(ivec4) ISub 469 470 - Store 465(storeTemp) 471 - 472: 91 Load 93(g_tTex1du4) - 473: 6(int) Load 462(coordTemp) - 474: 14(ivec4) Load 465(storeTemp) - ImageWrite 472 473 474 - 476: 73(ptr) AccessChain 61 51 - 477: 6(int) Load 476 - Store 475(coordTemp) 477 - 479: 69 Load 71(g_tTex1df4) - 480: 6(int) Load 475(coordTemp) - 481: 21(fvec4) ImageRead 479 480 - Store 478(storeTempPre) 481 - 483: 21(fvec4) Load 478(storeTempPre) - Store 482(storeTempPost) 483 - 484: 21(fvec4) Load 482(storeTempPost) - 485: 21(fvec4) CompositeConstruct 404 404 404 404 - 486: 21(fvec4) FAdd 484 485 - Store 482(storeTempPost) 486 - 487: 69 Load 71(g_tTex1df4) - 488: 6(int) Load 475(coordTemp) - 489: 21(fvec4) Load 482(storeTempPost) - ImageWrite 487 488 489 - 491: 73(ptr) AccessChain 61 51 - 492: 6(int) Load 491 - Store 490(coordTemp) 492 - 494: 91 Load 93(g_tTex1du4) - 495: 6(int) Load 490(coordTemp) - 496: 14(ivec4) ImageRead 494 495 - Store 493(storeTempPre) 496 - 498: 14(ivec4) Load 493(storeTempPre) - Store 497(storeTempPost) 498 - 499: 14(ivec4) Load 497(storeTempPost) - 500: 7(ivec4) CompositeConstruct 103 103 103 103 - 501: 14(ivec4) ISub 499 500 - Store 497(storeTempPost) 501 - 502: 91 Load 93(g_tTex1du4) - 503: 6(int) Load 490(coordTemp) - 504: 14(ivec4) Load 497(storeTempPost) - ImageWrite 502 503 504 - 506: 73(ptr) AccessChain 61 51 - 507: 6(int) Load 506 - Store 505(coordTemp) 507 - 509: 83 Load 85(g_tTex1di4) - 510: 6(int) Load 505(coordTemp) - 511: 7(ivec4) ImageRead 509 510 - Store 508(storeTempPre) 511 - 513: 7(ivec4) Load 508(storeTempPre) - Store 512(storeTempPost) 513 - 514: 7(ivec4) Load 512(storeTempPost) - 515: 7(ivec4) CompositeConstruct 103 103 103 103 - 516: 7(ivec4) IAdd 514 515 - Store 512(storeTempPost) 516 - 517: 83 Load 85(g_tTex1di4) - 518: 6(int) Load 505(coordTemp) - 519: 7(ivec4) Load 512(storeTempPost) - ImageWrite 517 518 519 - 521: 73(ptr) AccessChain 61 51 - 522: 6(int) Load 521 - Store 520(coordTemp) 522 - 524: 69 Load 71(g_tTex1df4) - 525: 6(int) Load 520(coordTemp) - 526: 21(fvec4) ImageRead 524 525 - Store 523(storeTempPre) 526 - 528: 21(fvec4) Load 523(storeTempPre) - Store 527(storeTempPost) 528 - 529: 21(fvec4) Load 527(storeTempPost) - 530: 21(fvec4) CompositeConstruct 404 404 404 404 - 531: 21(fvec4) FSub 529 530 - Store 527(storeTempPost) 531 - 532: 69 Load 71(g_tTex1df4) - 533: 6(int) Load 520(coordTemp) - 534: 21(fvec4) Load 527(storeTempPost) - ImageWrite 532 533 534 - 536: 73(ptr) AccessChain 61 51 - 537: 6(int) Load 536 - Store 535(coordTemp) 537 - 539: 83 Load 85(g_tTex1di4) - 540: 6(int) Load 535(coordTemp) - 541: 7(ivec4) ImageRead 539 540 - Store 538(storeTempPre) 541 - 543: 7(ivec4) Load 538(storeTempPre) - Store 542(storeTempPost) 543 - 544: 7(ivec4) Load 542(storeTempPost) - 545: 7(ivec4) CompositeConstruct 103 103 103 103 - 546: 7(ivec4) IAdd 544 545 - Store 542(storeTempPost) 546 - 547: 83 Load 85(g_tTex1di4) - 548: 6(int) Load 535(coordTemp) - 549: 7(ivec4) Load 542(storeTempPost) - ImageWrite 547 548 549 - 551: 73(ptr) AccessChain 61 51 - 552: 6(int) Load 551 - Store 550(coordTemp) 552 - 554: 91 Load 93(g_tTex1du4) - 555: 6(int) Load 550(coordTemp) - 556: 14(ivec4) ImageRead 554 555 - Store 553(storeTempPre) 556 - 558: 14(ivec4) Load 553(storeTempPre) - Store 557(storeTempPost) 558 - 559: 14(ivec4) Load 557(storeTempPost) - 560: 7(ivec4) CompositeConstruct 103 103 103 103 - 561: 14(ivec4) ISub 559 560 - Store 557(storeTempPost) 561 - 562: 91 Load 93(g_tTex1du4) - 563: 6(int) Load 550(coordTemp) - 564: 14(ivec4) Load 557(storeTempPost) - ImageWrite 562 563 564 - 566: 99 Load 101(g_tTex2df4) - 568: 21(fvec4) ImageRead 566 567 - Store 565(storeTemp) 568 - 569: 69 Load 71(g_tTex1df4) - 570: 21(fvec4) Load 565(storeTemp) - ImageWrite 569 103 570 - 575: 22(ptr) AccessChain 573(psout) 51 - Store 575 574 - 578: 22(ptr) AccessChain 573(psout) 51 - 579: 21(fvec4) Load 578 - Store 577(Color) 579 + 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 - 42: 7(ivec4) Load 10(x) - ReturnValue 42 + 46: 7(ivec4) Load 10(x) + ReturnValue 46 FunctionEnd 18(Fn1(vu4;): 14(ivec4) Function None 16 17(x): 15(ptr) FunctionParameter 19: Label - 45: 14(ivec4) Load 17(x) - ReturnValue 45 + 49: 14(ivec4) Load 17(x) + ReturnValue 49 FunctionEnd 25(Fn1(vf4;): 21(fvec4) Function None 23 24(x): 22(ptr) FunctionParameter 26: Label - 48: 21(fvec4) Load 24(x) - ReturnValue 48 + 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) 52 + Store 28(x) 56 Return FunctionEnd 33(Fn2(vu4;): 2 Function None 31 32(x): 15(ptr) FunctionParameter 34: Label - Store 32(x) 54 + Store 32(x) 58 Return FunctionEnd 37(Fn2(vf4;): 2 Function None 35 36(x): 22(ptr) FunctionParameter 38: Label - Store 36(x) 56 + Store 36(x) 60 Return FunctionEnd 40(SomeValue(): 21(fvec4) Function None 39 41: Label - 64: 63(ptr) AccessChain 61 62 - 65: 7(ivec4) Load 64 - 66: 21(fvec4) ConvertSToF 65 - ReturnValue 66 + 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 index f369cac79f..01f6c89c45 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.rw.register.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.register.frag.out @@ -1,27 +1,27 @@ hlsl.rw.register.frag -Shader version: 450 +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 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 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 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 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: @@ -29,47 +29,50 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Sequence -0:17 Sequence -0:17 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:17 Color: direct index for structure (temp 4-component vector of float) -0:17 'psout' (temp structure{temp 4-component vector of float Color}) -0:17 Constant: -0:17 0 (const int) -0:17 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) -0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +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: 450 +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 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 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 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 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: @@ -77,82 +80,93 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Sequence -0:17 Sequence -0:17 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:17 Color: direct index for structure (temp 4-component vector of float) -0:17 'psout' (temp structure{temp 4-component vector of float Color}) -0:17 Constant: -0:17 0 (const int) -0:17 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) -0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +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): 80001 -// Id's are bound by 37 +// Generated by (magic number): 80007 +// Id's are bound by 42 Capability Shader - Capability Sampled1D - Capability SampledBuffer + Capability Image1D + Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 + EntryPoint Fragment 4 "main" 39 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 11 "g_tTex1df1" - Name 18 "r01" - Name 21 "g_tBuf1du1" - Name 25 "PS_OUTPUT" - MemberName 25(PS_OUTPUT) 0 "Color" - Name 27 "psout" - Name 33 "Color" - Decorate 11(g_tTex1df1) DescriptorSet 0 - Decorate 11(g_tTex1df1) Binding 2 - Decorate 21(g_tBuf1du1) DescriptorSet 0 - Decorate 21(g_tBuf1du1) Binding 3 - Decorate 33(Color) Location 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D nonsampled format:R32f - 10: TypePointer UniformConstant 9 - 11(g_tTex1df1): 10(ptr) Variable UniformConstant - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 16: TypeInt 32 0 - 17: TypePointer Function 16(int) - 19: TypeImage 16(int) Buffer nonsampled format:R32ui - 20: TypePointer UniformConstant 19 - 21(g_tBuf1du1): 20(ptr) Variable UniformConstant - 24: TypeVector 6(float) 4 - 25(PS_OUTPUT): TypeStruct 24(fvec4) - 26: TypePointer Function 25(PS_OUTPUT) - 28: 6(float) Constant 1065353216 - 29: 24(fvec4) ConstantComposite 28 28 28 28 - 30: TypePointer Function 24(fvec4) - 32: TypePointer Output 24(fvec4) - 33(Color): 32(ptr) Variable Output + 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 - 8(r00): 7(ptr) Variable Function - 18(r01): 17(ptr) Variable Function - 27(psout): 26(ptr) Variable Function - 12: 9 Load 11(g_tTex1df1) - 15: 6(float) ImageRead 12 14 - Store 8(r00) 15 - 22: 19 Load 21(g_tBuf1du1) - 23: 16(int) ImageRead 22 14 - Store 18(r01) 23 - 31: 30(ptr) AccessChain 27(psout) 14 - Store 31 29 - 34: 30(ptr) AccessChain 27(psout) 14 - 35: 24(fvec4) Load 34 - Store 33(Color) 35 + 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 index 8e40fd2e35..7fc26cc7cb 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -1,808 +1,808 @@ hlsl.rw.scalar.bracket.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Definition: Fn1(i1; ( temp int) 0:42 Function Parameters: -0:42 'x' (in int) +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:42 'x' ( in int) +0:43 Function Definition: Fn1(u1; ( temp uint) 0:43 Function Parameters: -0:43 'x' (in uint) +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:43 'x' ( in uint) +0:44 Function Definition: Fn1(f1; ( temp float) 0:44 Function Parameters: -0:44 'x' (in float) +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:44 'x' ( in float) +0:46 Function Definition: Fn2(i1; ( temp void) 0:46 Function Parameters: -0:46 'x' (out int) +0:46 'x' ( out int) 0:? Sequence -0:46 move second child to first child (temp int) -0:46 'x' (out int) +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 Definition: Fn2(u1; ( temp void) 0:47 Function Parameters: -0:47 'x' (out uint) +0:47 'x' ( out uint) 0:? Sequence -0:47 move second child to first child (temp uint) -0:47 'x' (out uint) +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 Definition: Fn2(f1; ( temp void) 0:48 Function Parameters: -0:48 'x' (out float) +0:48 'x' ( out float) 0:? Sequence -0:48 move second child to first child (temp float) -0:48 'x' (out float) +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 Definition: SomeValue( ( temp float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression -0:50 Convert int to float (temp float) -0:50 c1: direct index for structure (layout(offset=0 ) uniform int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence -0:57 imageLoad (temp float) -0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 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 (layout(offset=0 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 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 (layout(offset=0 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 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 (layout(offset=0 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 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 (layout(offset=8 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 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 (layout(offset=8 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of int) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of int) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 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 (layout(offset=96 ) uniform float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 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 (layout(offset=0 ) uniform int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 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:77 'storeTemp' ( temp float) +0:77 'storeTemp' ( temp float) 0:78 Sequence -0:78 imageStore (temp void) -0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:78 c1: direct index for structure (layout(offset=0 ) uniform int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 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: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 move second child to first child ( temp int) +0:79 'storeTemp' ( temp int) 0:79 Constant: 0:79 2 (const int) -0:79 imageStore (temp void) -0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:79 c1: direct index for structure (layout(offset=0 ) uniform int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 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: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 move second child to first child ( temp uint) +0:80 'storeTemp' ( temp uint) 0:80 Constant: 0:80 3 (const uint) -0:80 imageStore (temp void) -0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:80 c1: direct index for structure (layout(offset=0 ) uniform int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 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: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 move second child to first child ( temp float) +0:83 'val1' ( temp float) 0:83 Sequence -0:83 move second child to first child (temp int) -0:83 'coordTemp' (temp int) -0:83 c1: direct index for structure (layout(offset=0 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 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 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:83 imageStore ( temp void) +0:83 'g_tTex1df1' (layout( r32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp float) +0:83 'storeTemp' ( temp float) 0:84 Sequence -0:84 move second child to first child (temp int) -0:84 'coordTemp' (temp int) -0:84 c1: direct index for structure (layout(offset=0 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 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 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:84 imageStore ( temp void) +0:84 'g_tTex1df1' (layout( r32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp float) +0:84 'storeTemp' ( temp float) 0:85 Sequence -0:85 move second child to first child (temp int) -0:85 'coordTemp' (temp int) -0:85 c1: direct index for structure (layout(offset=0 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 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 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:85 imageStore ( temp void) +0:85 'g_tTex1df1' (layout( r32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp float) +0:85 'storeTemp' ( temp float) 0:87 Sequence -0:87 move second child to first child (temp int) -0:87 'coordTemp' (temp int) -0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 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 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:87 imageStore ( temp void) +0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp int) +0:87 'storeTemp' ( temp int) 0:88 Sequence -0:88 move second child to first child (temp int) -0:88 'coordTemp' (temp int) -0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 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 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:88 imageStore ( temp void) +0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp int) +0:88 'storeTemp' ( temp int) 0:89 Sequence -0:89 move second child to first child (temp int) -0:89 'coordTemp' (temp int) -0:89 c1: direct index for structure (layout(offset=0 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 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 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:89 imageStore ( temp void) +0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp int) +0:89 'storeTemp' ( temp int) 0:90 Sequence -0:90 move second child to first child (temp int) -0:90 'coordTemp' (temp int) -0:90 c1: direct index for structure (layout(offset=0 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 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 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:90 imageStore ( temp void) +0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp int) +0:90 'storeTemp' ( temp int) 0:91 Sequence -0:91 move second child to first child (temp int) -0:91 'coordTemp' (temp int) -0:91 c1: direct index for structure (layout(offset=0 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 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 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:91 imageStore ( temp void) +0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp int) +0:91 'storeTemp' ( temp int) 0:92 Sequence -0:92 move second child to first child (temp int) -0:92 'coordTemp' (temp int) -0:92 c1: direct index for structure (layout(offset=0 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 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 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:92 imageStore ( temp void) +0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp int) +0:92 'storeTemp' ( temp int) 0:95 Sequence -0:95 move second child to first child (temp float) -0:95 'storeTemp' (temp float) -0:95 Function Call: SomeValue( (temp float) -0:95 imageStore (temp void) -0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 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:95 'storeTemp' ( temp float) +0:95 'storeTemp' ( temp float) 0:96 Sequence -0:96 imageStore (temp void) -0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 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: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 move second child to first child ( temp int) +0:97 'storeTemp' ( temp int) 0:97 Constant: 0:97 5 (const int) -0:97 imageStore (temp void) -0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) -0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 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: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 move second child to first child ( temp uint) +0:98 'storeTemp' ( temp uint) 0:98 Constant: 0:98 6 (const uint) -0:98 imageStore (temp void) -0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) -0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 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:98 'storeTemp' ( temp uint) +0:98 'storeTemp' ( temp uint) 0:101 Sequence -0:101 move second child to first child (temp float) -0:101 'storeTemp' (temp float) -0:101 Function Call: SomeValue( (temp float) -0:101 imageStore (temp void) -0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 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:101 'storeTemp' ( temp float) +0:101 'storeTemp' ( temp float) 0:102 Sequence -0:102 imageStore (temp void) -0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 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: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 move second child to first child ( temp int) +0:103 'storeTemp' ( temp int) 0:103 Constant: 0:103 8 (const int) -0:103 imageStore (temp void) -0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) -0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 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: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 move second child to first child ( temp uint) +0:104 'storeTemp' ( temp uint) 0:104 Constant: 0:104 9 (const uint) -0:104 imageStore (temp void) -0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) -0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 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 (layout(offset=0 ) uniform int) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0: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 (layout(offset=0 ) uniform int) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 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 (layout(offset=0 ) uniform int) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 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 Comma ( temp void) +0:111 Function Call: Fn2(f1; ( temp void) +0:111 'tempArg' ( temp float) 0:111 Sequence -0:111 imageStore (temp void) -0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:111 c1: direct index for structure (layout(offset=0 ) uniform int) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 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:111 'tempArg' ( temp float) +0:111 'tempArg' ( temp float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(i1; ( temp void) +0:112 'tempArg' ( temp int) 0:112 Sequence -0:112 imageStore (temp void) -0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:112 c1: direct index for structure (layout(offset=0 ) uniform int) -0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 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:112 'tempArg' ( temp int) +0:112 'tempArg' ( temp int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(u1; ( temp void) +0:113 'tempArg' ( temp uint) 0:113 Sequence -0:113 imageStore (temp void) -0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:113 c1: direct index for structure (layout(offset=0 ) uniform int) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 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:113 'tempArg' ( temp uint) +0:113 'tempArg' ( temp uint) 0:117 Sequence -0:117 move second child to first child (temp int) -0:117 'coordTemp' (temp int) -0:117 c1: direct index for structure (layout(offset=0 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 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:117 move second child to first child ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageLoad ( temp float) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp float) +0:117 'storeTemp' ( temp float) 0:118 Sequence -0:118 move second child to first child (temp int) -0:118 'coordTemp' (temp int) -0:118 c1: direct index for structure (layout(offset=0 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 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:118 move second child to first child ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageLoad ( temp int) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp int) +0:118 'storeTemp' ( temp int) 0:119 Sequence -0:119 move second child to first child (temp int) -0:119 'coordTemp' (temp int) -0:119 c1: direct index for structure (layout(offset=0 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 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:119 move second child to first child ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageLoad ( temp uint) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp uint) +0:119 'storeTemp' ( temp uint) 0:121 Sequence -0:121 move second child to first child (temp int) -0:121 'coordTemp' (temp int) -0:121 c1: direct index for structure (layout(offset=0 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 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:121 move second child to first child ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageLoad ( temp float) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp float) +0:121 'storeTemp' ( temp float) 0:122 Sequence -0:122 move second child to first child (temp int) -0:122 'coordTemp' (temp int) -0:122 c1: direct index for structure (layout(offset=0 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 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:122 move second child to first child ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageLoad ( temp int) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp int) +0:122 'storeTemp' ( temp int) 0:123 Sequence -0:123 move second child to first child (temp int) -0:123 'coordTemp' (temp int) -0:123 c1: direct index for structure (layout(offset=0 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 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:123 move second child to first child ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageLoad ( temp uint) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp uint) +0:123 'storeTemp' ( temp uint) 0:126 Sequence -0:126 move second child to first child (temp int) -0:126 'coordTemp' (temp int) -0:126 c1: direct index for structure (layout(offset=0 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 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:126 move second child to first child ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 imageLoad ( temp float) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 Post-Increment ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) 0:127 Sequence -0:127 move second child to first child (temp int) -0:127 'coordTemp' (temp int) -0:127 c1: direct index for structure (layout(offset=0 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 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:127 move second child to first child ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 imageLoad ( temp uint) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 Post-Decrement ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) 0:128 Sequence -0:128 move second child to first child (temp int) -0:128 'coordTemp' (temp int) -0:128 c1: direct index for structure (layout(offset=0 ) uniform int) -0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 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:128 move second child to first child ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 imageLoad ( temp int) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 Post-Increment ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) 0:130 Sequence -0:130 move second child to first child (temp int) -0:130 'coordTemp' (temp int) -0:130 c1: direct index for structure (layout(offset=0 ) uniform int) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 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:130 move second child to first child ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 imageLoad ( temp float) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 Post-Decrement ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) 0:131 Sequence -0:131 move second child to first child (temp int) -0:131 'coordTemp' (temp int) -0:131 c1: direct index for structure (layout(offset=0 ) uniform int) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 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:131 move second child to first child ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 imageLoad ( temp int) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 Post-Increment ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) 0:132 Sequence -0:132 move second child to first child (temp int) -0:132 'coordTemp' (temp int) -0:132 c1: direct index for structure (layout(offset=0 ) uniform int) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 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: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: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 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: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: @@ -810,843 +810,846 @@ gl_FragCoord origin is upper left 0:137 1.000000 0:137 1.000000 0:137 1.000000 -0:139 Sequence -0:139 Sequence -0:139 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:139 Color: direct index for structure (temp 4-component vector of float) -0:139 'psout' (temp structure{temp 4-component vector of float Color}) -0:139 Constant: -0:139 0 (const int) -0:139 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) -0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) -0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) -0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) -0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) -0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) -0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) -0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) -0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) -0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Definition: Fn1(i1; ( temp int) 0:42 Function Parameters: -0:42 'x' (in int) +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:42 'x' ( in int) +0:43 Function Definition: Fn1(u1; ( temp uint) 0:43 Function Parameters: -0:43 'x' (in uint) +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:43 'x' ( in uint) +0:44 Function Definition: Fn1(f1; ( temp float) 0:44 Function Parameters: -0:44 'x' (in float) +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:44 'x' ( in float) +0:46 Function Definition: Fn2(i1; ( temp void) 0:46 Function Parameters: -0:46 'x' (out int) +0:46 'x' ( out int) 0:? Sequence -0:46 move second child to first child (temp int) -0:46 'x' (out int) +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 Definition: Fn2(u1; ( temp void) 0:47 Function Parameters: -0:47 'x' (out uint) +0:47 'x' ( out uint) 0:? Sequence -0:47 move second child to first child (temp uint) -0:47 'x' (out uint) +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 Definition: Fn2(f1; ( temp void) 0:48 Function Parameters: -0:48 'x' (out float) +0:48 'x' ( out float) 0:? Sequence -0:48 move second child to first child (temp float) -0:48 'x' (out float) +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 Definition: SomeValue( ( temp float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression -0:50 Convert int to float (temp float) -0:50 c1: direct index for structure (layout(offset=0 ) uniform int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence -0:57 imageLoad (temp float) -0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 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 (layout(offset=0 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 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 (layout(offset=0 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 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 (layout(offset=0 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 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 (layout(offset=8 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 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 (layout(offset=8 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of int) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of int) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 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 (layout(offset=96 ) uniform float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 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 (layout(offset=0 ) uniform int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 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:77 'storeTemp' ( temp float) +0:77 'storeTemp' ( temp float) 0:78 Sequence -0:78 imageStore (temp void) -0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:78 c1: direct index for structure (layout(offset=0 ) uniform int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 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: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 move second child to first child ( temp int) +0:79 'storeTemp' ( temp int) 0:79 Constant: 0:79 2 (const int) -0:79 imageStore (temp void) -0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:79 c1: direct index for structure (layout(offset=0 ) uniform int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 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: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 move second child to first child ( temp uint) +0:80 'storeTemp' ( temp uint) 0:80 Constant: 0:80 3 (const uint) -0:80 imageStore (temp void) -0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:80 c1: direct index for structure (layout(offset=0 ) uniform int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 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: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 move second child to first child ( temp float) +0:83 'val1' ( temp float) 0:83 Sequence -0:83 move second child to first child (temp int) -0:83 'coordTemp' (temp int) -0:83 c1: direct index for structure (layout(offset=0 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 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 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:83 imageStore ( temp void) +0:83 'g_tTex1df1' (layout( r32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp float) +0:83 'storeTemp' ( temp float) 0:84 Sequence -0:84 move second child to first child (temp int) -0:84 'coordTemp' (temp int) -0:84 c1: direct index for structure (layout(offset=0 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 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 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:84 imageStore ( temp void) +0:84 'g_tTex1df1' (layout( r32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp float) +0:84 'storeTemp' ( temp float) 0:85 Sequence -0:85 move second child to first child (temp int) -0:85 'coordTemp' (temp int) -0:85 c1: direct index for structure (layout(offset=0 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 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 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:85 imageStore ( temp void) +0:85 'g_tTex1df1' (layout( r32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp float) +0:85 'storeTemp' ( temp float) 0:87 Sequence -0:87 move second child to first child (temp int) -0:87 'coordTemp' (temp int) -0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 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 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:87 imageStore ( temp void) +0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp int) +0:87 'storeTemp' ( temp int) 0:88 Sequence -0:88 move second child to first child (temp int) -0:88 'coordTemp' (temp int) -0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 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 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:88 imageStore ( temp void) +0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp int) +0:88 'storeTemp' ( temp int) 0:89 Sequence -0:89 move second child to first child (temp int) -0:89 'coordTemp' (temp int) -0:89 c1: direct index for structure (layout(offset=0 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 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 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:89 imageStore ( temp void) +0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp int) +0:89 'storeTemp' ( temp int) 0:90 Sequence -0:90 move second child to first child (temp int) -0:90 'coordTemp' (temp int) -0:90 c1: direct index for structure (layout(offset=0 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 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 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:90 imageStore ( temp void) +0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp int) +0:90 'storeTemp' ( temp int) 0:91 Sequence -0:91 move second child to first child (temp int) -0:91 'coordTemp' (temp int) -0:91 c1: direct index for structure (layout(offset=0 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 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 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:91 imageStore ( temp void) +0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp int) +0:91 'storeTemp' ( temp int) 0:92 Sequence -0:92 move second child to first child (temp int) -0:92 'coordTemp' (temp int) -0:92 c1: direct index for structure (layout(offset=0 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 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 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:92 imageStore ( temp void) +0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp int) +0:92 'storeTemp' ( temp int) 0:95 Sequence -0:95 move second child to first child (temp float) -0:95 'storeTemp' (temp float) -0:95 Function Call: SomeValue( (temp float) -0:95 imageStore (temp void) -0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 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:95 'storeTemp' ( temp float) +0:95 'storeTemp' ( temp float) 0:96 Sequence -0:96 imageStore (temp void) -0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 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: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 move second child to first child ( temp int) +0:97 'storeTemp' ( temp int) 0:97 Constant: 0:97 5 (const int) -0:97 imageStore (temp void) -0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) -0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 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: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 move second child to first child ( temp uint) +0:98 'storeTemp' ( temp uint) 0:98 Constant: 0:98 6 (const uint) -0:98 imageStore (temp void) -0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) -0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 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:98 'storeTemp' ( temp uint) +0:98 'storeTemp' ( temp uint) 0:101 Sequence -0:101 move second child to first child (temp float) -0:101 'storeTemp' (temp float) -0:101 Function Call: SomeValue( (temp float) -0:101 imageStore (temp void) -0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 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:101 'storeTemp' ( temp float) +0:101 'storeTemp' ( temp float) 0:102 Sequence -0:102 imageStore (temp void) -0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 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: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 move second child to first child ( temp int) +0:103 'storeTemp' ( temp int) 0:103 Constant: 0:103 8 (const int) -0:103 imageStore (temp void) -0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) -0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 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: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 move second child to first child ( temp uint) +0:104 'storeTemp' ( temp uint) 0:104 Constant: 0:104 9 (const uint) -0:104 imageStore (temp void) -0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) -0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 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 (layout(offset=0 ) uniform int) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0: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 (layout(offset=0 ) uniform int) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 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 (layout(offset=0 ) uniform int) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 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 Comma ( temp void) +0:111 Function Call: Fn2(f1; ( temp void) +0:111 'tempArg' ( temp float) 0:111 Sequence -0:111 imageStore (temp void) -0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:111 c1: direct index for structure (layout(offset=0 ) uniform int) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 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:111 'tempArg' ( temp float) +0:111 'tempArg' ( temp float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(i1; ( temp void) +0:112 'tempArg' ( temp int) 0:112 Sequence -0:112 imageStore (temp void) -0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:112 c1: direct index for structure (layout(offset=0 ) uniform int) -0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 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:112 'tempArg' ( temp int) +0:112 'tempArg' ( temp int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(u1; ( temp void) +0:113 'tempArg' ( temp uint) 0:113 Sequence -0:113 imageStore (temp void) -0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:113 c1: direct index for structure (layout(offset=0 ) uniform int) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 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:113 'tempArg' ( temp uint) +0:113 'tempArg' ( temp uint) 0:117 Sequence -0:117 move second child to first child (temp int) -0:117 'coordTemp' (temp int) -0:117 c1: direct index for structure (layout(offset=0 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 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:117 move second child to first child ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageLoad ( temp float) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp float) +0:117 'storeTemp' ( temp float) 0:118 Sequence -0:118 move second child to first child (temp int) -0:118 'coordTemp' (temp int) -0:118 c1: direct index for structure (layout(offset=0 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 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:118 move second child to first child ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageLoad ( temp int) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp int) +0:118 'storeTemp' ( temp int) 0:119 Sequence -0:119 move second child to first child (temp int) -0:119 'coordTemp' (temp int) -0:119 c1: direct index for structure (layout(offset=0 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 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:119 move second child to first child ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageLoad ( temp uint) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp uint) +0:119 'storeTemp' ( temp uint) 0:121 Sequence -0:121 move second child to first child (temp int) -0:121 'coordTemp' (temp int) -0:121 c1: direct index for structure (layout(offset=0 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 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:121 move second child to first child ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageLoad ( temp float) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp float) +0:121 'storeTemp' ( temp float) 0:122 Sequence -0:122 move second child to first child (temp int) -0:122 'coordTemp' (temp int) -0:122 c1: direct index for structure (layout(offset=0 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 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:122 move second child to first child ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageLoad ( temp int) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp int) +0:122 'storeTemp' ( temp int) 0:123 Sequence -0:123 move second child to first child (temp int) -0:123 'coordTemp' (temp int) -0:123 c1: direct index for structure (layout(offset=0 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 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:123 move second child to first child ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageLoad ( temp uint) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp uint) +0:123 'storeTemp' ( temp uint) 0:126 Sequence -0:126 move second child to first child (temp int) -0:126 'coordTemp' (temp int) -0:126 c1: direct index for structure (layout(offset=0 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 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:126 move second child to first child ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 imageLoad ( temp float) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 Post-Increment ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) 0:127 Sequence -0:127 move second child to first child (temp int) -0:127 'coordTemp' (temp int) -0:127 c1: direct index for structure (layout(offset=0 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 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:127 move second child to first child ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 imageLoad ( temp uint) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 Post-Decrement ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) 0:128 Sequence -0:128 move second child to first child (temp int) -0:128 'coordTemp' (temp int) -0:128 c1: direct index for structure (layout(offset=0 ) uniform int) -0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 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:128 move second child to first child ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 imageLoad ( temp int) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 Post-Increment ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) 0:130 Sequence -0:130 move second child to first child (temp int) -0:130 'coordTemp' (temp int) -0:130 c1: direct index for structure (layout(offset=0 ) uniform int) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 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:130 move second child to first child ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 imageLoad ( temp float) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 Post-Decrement ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) 0:131 Sequence -0:131 move second child to first child (temp int) -0:131 'coordTemp' (temp int) -0:131 c1: direct index for structure (layout(offset=0 ) uniform int) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 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:131 move second child to first child ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 imageLoad ( temp int) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 Post-Increment ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) 0:132 Sequence -0:132 move second child to first child (temp int) -0:132 'coordTemp' (temp int) -0:132 c1: direct index for structure (layout(offset=0 ) uniform int) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 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: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: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 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: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: @@ -1654,45 +1657,49 @@ gl_FragCoord origin is upper left 0:137 1.000000 0:137 1.000000 0:137 1.000000 -0:139 Sequence -0:139 Sequence -0:139 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:139 Color: direct index for structure (temp 4-component vector of float) -0:139 'psout' (temp structure{temp 4-component vector of float Color}) -0:139 Constant: -0:139 0 (const int) -0:139 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) -0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) -0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) -0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) -0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) -0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) -0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) -0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) -0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) -0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) -0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) -0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) -0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) -0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) -0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +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): 80001 -// Id's are bound by 566 +// Generated by (magic number): 80007 +// Id's are bound by 571 Capability Shader - Capability Sampled1D + Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 541 + EntryPoint Fragment 4 "main" 547 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 10 "Fn1(i1;" Name 9 "x" @@ -1707,148 +1714,149 @@ gl_FragCoord origin is upper left Name 34 "Fn2(f1;" Name 33 "x" Name 37 "SomeValue(" - Name 54 "$Global" - MemberName 54($Global) 0 "c1" - MemberName 54($Global) 1 "c2" - MemberName 54($Global) 2 "c3" - MemberName 54($Global) 3 "c4" - MemberName 54($Global) 4 "o1" - MemberName 54($Global) 5 "o2" - MemberName 54($Global) 6 "o3" - MemberName 54($Global) 7 "o4" - MemberName 54($Global) 8 "uf1" - MemberName 54($Global) 9 "ui1" - MemberName 54($Global) 10 "uu1" - Name 56 "" - Name 65 "g_tTex1df1" - Name 70 "r00" - Name 75 "r01" - Name 78 "g_tTex1di1" - Name 83 "r02" - Name 86 "g_tTex1du1" - Name 91 "r10" - Name 94 "g_tTex2df1" - Name 101 "r11" - Name 104 "g_tTex2di1" - Name 109 "r12" - Name 112 "g_tTex2du1" - Name 117 "r20" - Name 120 "g_tTex3df1" - Name 127 "r21" - Name 130 "g_tTex3di1" - Name 135 "r22" - Name 138 "g_tTex3du1" - Name 143 "lf1" - Name 148 "storeTemp" - Name 158 "storeTemp" + Name 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 169 "val1" - Name 170 "coordTemp" - Name 173 "storeTemp" - Name 184 "coordTemp" - Name 187 "storeTemp" - Name 197 "coordTemp" - Name 200 "storeTemp" - Name 210 "coordTemp" - Name 213 "storeTemp" - Name 222 "coordTemp" - Name 225 "storeTemp" - Name 234 "coordTemp" - Name 237 "storeTemp" - Name 247 "coordTemp" - Name 250 "storeTemp" - Name 260 "coordTemp" - Name 263 "storeTemp" - Name 272 "coordTemp" - Name 275 "storeTemp" - Name 284 "storeTemp" - Name 294 "storeTemp" - Name 300 "storeTemp" - Name 306 "storeTemp" - Name 316 "storeTemp" + Name 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 331 "param" - Name 337 "param" - Name 343 "param" - Name 345 "tempArg" - Name 346 "param" - Name 353 "tempArg" - Name 354 "param" - Name 361 "tempArg" - Name 362 "param" - Name 369 "coordTemp" - Name 372 "storeTemp" - Name 382 "coordTemp" - Name 385 "storeTemp" - Name 394 "coordTemp" - Name 397 "storeTemp" - Name 406 "coordTemp" - Name 409 "storeTemp" - Name 418 "coordTemp" - Name 421 "storeTemp" - Name 430 "coordTemp" - Name 433 "storeTemp" - Name 442 "coordTemp" - Name 445 "storeTempPre" - Name 449 "storeTempPost" - Name 456 "coordTemp" - Name 459 "storeTempPre" - Name 463 "storeTempPost" - Name 470 "coordTemp" - Name 473 "storeTempPre" - Name 477 "storeTempPost" - Name 484 "coordTemp" - Name 487 "storeTempPre" - Name 491 "storeTempPost" - Name 498 "coordTemp" - Name 501 "storeTempPre" - Name 505 "storeTempPost" - Name 512 "coordTemp" - Name 515 "storeTempPre" - Name 519 "storeTempPost" - Name 526 "storeTemp" - Name 534 "PS_OUTPUT" - MemberName 534(PS_OUTPUT) 0 "Color" - Name 536 "psout" - Name 541 "Color" - Name 547 "g_sSamp" - Name 550 "g_tTex1df1a" - Name 553 "g_tTex1di1a" - Name 556 "g_tTex1du1a" - Name 559 "g_tTex2df1a" - Name 562 "g_tTex2di1a" - Name 565 "g_tTex2du1a" - MemberDecorate 54($Global) 0 Offset 0 - MemberDecorate 54($Global) 1 Offset 8 - MemberDecorate 54($Global) 2 Offset 16 - MemberDecorate 54($Global) 3 Offset 32 - MemberDecorate 54($Global) 4 Offset 48 - MemberDecorate 54($Global) 5 Offset 56 - MemberDecorate 54($Global) 6 Offset 64 - MemberDecorate 54($Global) 7 Offset 80 - MemberDecorate 54($Global) 8 Offset 96 - MemberDecorate 54($Global) 9 Offset 100 - MemberDecorate 54($Global) 10 Offset 104 - Decorate 54($Global) Block - Decorate 56 DescriptorSet 0 - Decorate 65(g_tTex1df1) DescriptorSet 0 - Decorate 78(g_tTex1di1) DescriptorSet 0 - Decorate 86(g_tTex1du1) DescriptorSet 0 - Decorate 94(g_tTex2df1) DescriptorSet 0 - Decorate 104(g_tTex2di1) DescriptorSet 0 - Decorate 112(g_tTex2du1) DescriptorSet 0 - Decorate 120(g_tTex3df1) DescriptorSet 0 - Decorate 130(g_tTex3di1) DescriptorSet 0 - Decorate 138(g_tTex3du1) DescriptorSet 0 - Decorate 541(Color) Location 0 - Decorate 547(g_sSamp) DescriptorSet 0 - Decorate 547(g_sSamp) Binding 0 - Decorate 550(g_tTex1df1a) DescriptorSet 0 - Decorate 553(g_tTex1di1a) DescriptorSet 0 - Decorate 556(g_tTex1du1a) DescriptorSet 0 - Decorate 559(g_tTex2df1a) DescriptorSet 0 - Decorate 562(g_tTex2di1a) DescriptorSet 0 - Decorate 565(g_tTex2du1a) DescriptorSet 0 + 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 @@ -1864,697 +1872,703 @@ gl_FragCoord origin is upper left 28: TypeFunction 2 13(ptr) 32: TypeFunction 2 19(ptr) 36: TypeFunction 18(float) - 48: 6(int) Constant 0 - 49: 12(int) Constant 0 - 50: 18(float) Constant 0 - 51: TypeVector 6(int) 2 - 52: TypeVector 6(int) 3 - 53: TypeVector 6(int) 4 - 54($Global): TypeStruct 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 18(float) 6(int) 12(int) - 55: TypePointer Uniform 54($Global) - 56: 55(ptr) Variable Uniform - 57: TypePointer Uniform 6(int) - 63: TypeImage 18(float) 1D nonsampled format:R32f - 64: TypePointer UniformConstant 63 - 65(g_tTex1df1): 64(ptr) Variable UniformConstant - 76: TypeImage 6(int) 1D nonsampled format:R32i - 77: TypePointer UniformConstant 76 - 78(g_tTex1di1): 77(ptr) Variable UniformConstant - 84: TypeImage 12(int) 1D nonsampled format:R32ui - 85: TypePointer UniformConstant 84 - 86(g_tTex1du1): 85(ptr) Variable UniformConstant - 92: TypeImage 18(float) 2D nonsampled format:R32f - 93: TypePointer UniformConstant 92 - 94(g_tTex2df1): 93(ptr) Variable UniformConstant - 96: 6(int) Constant 1 - 97: TypePointer Uniform 51(ivec2) - 102: TypeImage 6(int) 2D nonsampled format:R32i - 103: TypePointer UniformConstant 102 - 104(g_tTex2di1): 103(ptr) Variable UniformConstant - 110: TypeImage 12(int) 2D nonsampled format:R32ui - 111: TypePointer UniformConstant 110 - 112(g_tTex2du1): 111(ptr) Variable UniformConstant - 118: TypeImage 18(float) 3D nonsampled format:R32f - 119: TypePointer UniformConstant 118 - 120(g_tTex3df1): 119(ptr) Variable UniformConstant - 122: 6(int) Constant 2 - 123: TypePointer Uniform 52(ivec3) - 128: TypeImage 6(int) 3D nonsampled format:R32i - 129: TypePointer UniformConstant 128 - 130(g_tTex3di1): 129(ptr) Variable UniformConstant - 136: TypeImage 12(int) 3D nonsampled format:R32ui - 137: TypePointer UniformConstant 136 - 138(g_tTex3du1): 137(ptr) Variable UniformConstant - 144: 6(int) Constant 8 - 145: TypePointer Uniform 18(float) - 164: 12(int) Constant 3 - 177: 18(float) Constant 1073741824 - 191: 18(float) Constant 1077936128 - 204: 18(float) Constant 1082130432 - 241: 6(int) Constant 65535 - 254: 6(int) Constant 61680 - 295: 6(int) Constant 5 - 301: 12(int) Constant 6 - 322: 12(int) Constant 9 - 377: 18(float) Constant 1065353216 - 528: 6(int) Constant 3 - 529: 51(ivec2) ConstantComposite 122 528 - 533: TypeVector 18(float) 4 - 534(PS_OUTPUT): TypeStruct 533(fvec4) - 535: TypePointer Function 534(PS_OUTPUT) - 537: 533(fvec4) ConstantComposite 377 377 377 377 - 538: TypePointer Function 533(fvec4) - 540: TypePointer Output 533(fvec4) - 541(Color): 540(ptr) Variable Output - 545: TypeSampler - 546: TypePointer UniformConstant 545 - 547(g_sSamp): 546(ptr) Variable UniformConstant - 548: TypeImage 18(float) 1D array nonsampled format:R32f - 549: TypePointer UniformConstant 548 -550(g_tTex1df1a): 549(ptr) Variable UniformConstant - 551: TypeImage 6(int) 1D array nonsampled format:R32i - 552: TypePointer UniformConstant 551 -553(g_tTex1di1a): 552(ptr) Variable UniformConstant - 554: TypeImage 12(int) 1D array nonsampled format:R32ui - 555: TypePointer UniformConstant 554 -556(g_tTex1du1a): 555(ptr) Variable UniformConstant - 557: TypeImage 18(float) 2D array nonsampled format:R32f - 558: TypePointer UniformConstant 557 -559(g_tTex2df1a): 558(ptr) Variable UniformConstant - 560: TypeImage 6(int) 2D array nonsampled format:R32i - 561: TypePointer UniformConstant 560 -562(g_tTex2di1a): 561(ptr) Variable UniformConstant - 563: TypeImage 12(int) 2D array nonsampled format:R32ui - 564: TypePointer UniformConstant 563 -565(g_tTex2du1a): 564(ptr) Variable UniformConstant + 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 - 70(r00): 19(ptr) Variable Function - 75(r01): 7(ptr) Variable Function - 83(r02): 13(ptr) Variable Function - 91(r10): 19(ptr) Variable Function - 101(r11): 7(ptr) Variable Function - 109(r12): 13(ptr) Variable Function - 117(r20): 19(ptr) Variable Function - 127(r21): 7(ptr) Variable Function - 135(r22): 13(ptr) Variable Function - 143(lf1): 19(ptr) Variable Function - 148(storeTemp): 19(ptr) Variable Function - 158(storeTemp): 7(ptr) Variable Function - 163(storeTemp): 13(ptr) Variable Function - 169(val1): 19(ptr) Variable Function - 170(coordTemp): 7(ptr) Variable Function - 173(storeTemp): 19(ptr) Variable Function - 184(coordTemp): 7(ptr) Variable Function - 187(storeTemp): 19(ptr) Variable Function - 197(coordTemp): 7(ptr) Variable Function - 200(storeTemp): 19(ptr) Variable Function - 210(coordTemp): 7(ptr) Variable Function - 213(storeTemp): 7(ptr) Variable Function - 222(coordTemp): 7(ptr) Variable Function - 225(storeTemp): 7(ptr) Variable Function - 234(coordTemp): 7(ptr) Variable Function - 237(storeTemp): 7(ptr) Variable Function - 247(coordTemp): 7(ptr) Variable Function - 250(storeTemp): 7(ptr) Variable Function - 260(coordTemp): 7(ptr) Variable Function - 263(storeTemp): 7(ptr) Variable Function - 272(coordTemp): 7(ptr) Variable Function - 275(storeTemp): 7(ptr) Variable Function - 284(storeTemp): 19(ptr) Variable Function - 294(storeTemp): 7(ptr) Variable Function - 300(storeTemp): 13(ptr) Variable Function - 306(storeTemp): 19(ptr) Variable Function - 316(storeTemp): 7(ptr) Variable Function - 321(storeTemp): 13(ptr) Variable Function - 331(param): 19(ptr) Variable Function - 337(param): 7(ptr) Variable Function - 343(param): 13(ptr) Variable Function - 345(tempArg): 19(ptr) Variable Function - 346(param): 19(ptr) Variable Function - 353(tempArg): 7(ptr) Variable Function - 354(param): 7(ptr) Variable Function - 361(tempArg): 13(ptr) Variable Function - 362(param): 13(ptr) Variable Function - 369(coordTemp): 7(ptr) Variable Function - 372(storeTemp): 19(ptr) Variable Function - 382(coordTemp): 7(ptr) Variable Function - 385(storeTemp): 7(ptr) Variable Function - 394(coordTemp): 7(ptr) Variable Function - 397(storeTemp): 13(ptr) Variable Function - 406(coordTemp): 7(ptr) Variable Function - 409(storeTemp): 19(ptr) Variable Function - 418(coordTemp): 7(ptr) Variable Function - 421(storeTemp): 7(ptr) Variable Function - 430(coordTemp): 7(ptr) Variable Function - 433(storeTemp): 13(ptr) Variable Function - 442(coordTemp): 7(ptr) Variable Function -445(storeTempPre): 19(ptr) Variable Function -449(storeTempPost): 19(ptr) Variable Function - 456(coordTemp): 7(ptr) Variable Function -459(storeTempPre): 13(ptr) Variable Function -463(storeTempPost): 13(ptr) Variable Function - 470(coordTemp): 7(ptr) Variable Function -473(storeTempPre): 7(ptr) Variable Function -477(storeTempPost): 7(ptr) Variable Function - 484(coordTemp): 7(ptr) Variable Function -487(storeTempPre): 19(ptr) Variable Function -491(storeTempPost): 19(ptr) Variable Function - 498(coordTemp): 7(ptr) Variable Function -501(storeTempPre): 7(ptr) Variable Function -505(storeTempPost): 7(ptr) Variable Function - 512(coordTemp): 7(ptr) Variable Function -515(storeTempPre): 13(ptr) Variable Function -519(storeTempPost): 13(ptr) Variable Function - 526(storeTemp): 19(ptr) Variable Function - 536(psout): 535(ptr) Variable Function - 66: 63 Load 65(g_tTex1df1) - 67: 57(ptr) AccessChain 56 48 - 68: 6(int) Load 67 - 69: 18(float) ImageRead 66 68 - 71: 63 Load 65(g_tTex1df1) - 72: 57(ptr) AccessChain 56 48 - 73: 6(int) Load 72 - 74: 18(float) ImageRead 71 73 - Store 70(r00) 74 - 79: 76 Load 78(g_tTex1di1) - 80: 57(ptr) AccessChain 56 48 - 81: 6(int) Load 80 - 82: 6(int) ImageRead 79 81 - Store 75(r01) 82 - 87: 84 Load 86(g_tTex1du1) - 88: 57(ptr) AccessChain 56 48 - 89: 6(int) Load 88 - 90: 12(int) ImageRead 87 89 - Store 83(r02) 90 - 95: 92 Load 94(g_tTex2df1) - 98: 97(ptr) AccessChain 56 96 - 99: 51(ivec2) Load 98 - 100: 18(float) ImageRead 95 99 - Store 91(r10) 100 - 105: 102 Load 104(g_tTex2di1) - 106: 97(ptr) AccessChain 56 96 - 107: 51(ivec2) Load 106 - 108: 6(int) ImageRead 105 107 - Store 101(r11) 108 - 113: 110 Load 112(g_tTex2du1) - 114: 97(ptr) AccessChain 56 96 - 115: 51(ivec2) Load 114 - 116: 12(int) ImageRead 113 115 - Store 109(r12) 116 - 121: 118 Load 120(g_tTex3df1) - 124: 123(ptr) AccessChain 56 122 - 125: 52(ivec3) Load 124 - 126: 18(float) ImageRead 121 125 - Store 117(r20) 126 - 131: 128 Load 130(g_tTex3di1) - 132: 123(ptr) AccessChain 56 122 - 133: 52(ivec3) Load 132 - 134: 6(int) ImageRead 131 133 - Store 127(r21) 134 - 139: 136 Load 138(g_tTex3du1) - 140: 123(ptr) AccessChain 56 122 - 141: 52(ivec3) Load 140 - 142: 12(int) ImageRead 139 141 - Store 135(r22) 142 - 146: 145(ptr) AccessChain 56 144 - 147: 18(float) Load 146 - Store 143(lf1) 147 - 149: 18(float) FunctionCall 37(SomeValue() - Store 148(storeTemp) 149 - 150: 63 Load 65(g_tTex1df1) - 151: 57(ptr) AccessChain 56 48 - 152: 6(int) Load 151 - 153: 18(float) Load 148(storeTemp) - ImageWrite 150 152 153 - 154: 63 Load 65(g_tTex1df1) - 155: 57(ptr) AccessChain 56 48 - 156: 6(int) Load 155 - 157: 18(float) Load 143(lf1) - ImageWrite 154 156 157 - Store 158(storeTemp) 122 - 159: 76 Load 78(g_tTex1di1) - 160: 57(ptr) AccessChain 56 48 - 161: 6(int) Load 160 - 162: 6(int) Load 158(storeTemp) - ImageWrite 159 161 162 - Store 163(storeTemp) 164 - 165: 84 Load 86(g_tTex1du1) - 166: 57(ptr) AccessChain 56 48 - 167: 6(int) Load 166 - 168: 12(int) Load 163(storeTemp) - ImageWrite 165 167 168 - 171: 57(ptr) AccessChain 56 48 - 172: 6(int) Load 171 - Store 170(coordTemp) 172 - 174: 63 Load 65(g_tTex1df1) - 175: 6(int) Load 170(coordTemp) - 176: 18(float) ImageRead 174 175 - Store 173(storeTemp) 176 - 178: 18(float) Load 173(storeTemp) - 179: 18(float) FMul 178 177 - Store 173(storeTemp) 179 - 180: 63 Load 65(g_tTex1df1) - 181: 6(int) Load 170(coordTemp) - 182: 18(float) Load 173(storeTemp) - ImageWrite 180 181 182 - 183: 18(float) Load 173(storeTemp) - Store 169(val1) 183 - 185: 57(ptr) AccessChain 56 48 - 186: 6(int) Load 185 - Store 184(coordTemp) 186 - 188: 63 Load 65(g_tTex1df1) - 189: 6(int) Load 184(coordTemp) - 190: 18(float) ImageRead 188 189 - Store 187(storeTemp) 190 - 192: 18(float) Load 187(storeTemp) - 193: 18(float) FSub 192 191 - Store 187(storeTemp) 193 - 194: 63 Load 65(g_tTex1df1) - 195: 6(int) Load 184(coordTemp) - 196: 18(float) Load 187(storeTemp) - ImageWrite 194 195 196 - 198: 57(ptr) AccessChain 56 48 - 199: 6(int) Load 198 - Store 197(coordTemp) 199 - 201: 63 Load 65(g_tTex1df1) - 202: 6(int) Load 197(coordTemp) - 203: 18(float) ImageRead 201 202 - Store 200(storeTemp) 203 - 205: 18(float) Load 200(storeTemp) - 206: 18(float) FAdd 205 204 - Store 200(storeTemp) 206 - 207: 63 Load 65(g_tTex1df1) - 208: 6(int) Load 197(coordTemp) - 209: 18(float) Load 200(storeTemp) - ImageWrite 207 208 209 - 211: 57(ptr) AccessChain 56 48 - 212: 6(int) Load 211 - Store 210(coordTemp) 212 - 214: 76 Load 78(g_tTex1di1) - 215: 6(int) Load 210(coordTemp) - 216: 6(int) ImageRead 214 215 - Store 213(storeTemp) 216 - 217: 6(int) Load 213(storeTemp) - 218: 6(int) SDiv 217 122 - Store 213(storeTemp) 218 - 219: 76 Load 78(g_tTex1di1) - 220: 6(int) Load 210(coordTemp) - 221: 6(int) Load 213(storeTemp) - ImageWrite 219 220 221 - 223: 57(ptr) AccessChain 56 48 - 224: 6(int) Load 223 - Store 222(coordTemp) 224 - 226: 76 Load 78(g_tTex1di1) - 227: 6(int) Load 222(coordTemp) - 228: 6(int) ImageRead 226 227 - Store 225(storeTemp) 228 - 229: 6(int) Load 225(storeTemp) - 230: 6(int) SMod 229 122 - Store 225(storeTemp) 230 - 231: 76 Load 78(g_tTex1di1) - 232: 6(int) Load 222(coordTemp) - 233: 6(int) Load 225(storeTemp) - ImageWrite 231 232 233 - 235: 57(ptr) AccessChain 56 48 - 236: 6(int) Load 235 - Store 234(coordTemp) 236 - 238: 76 Load 78(g_tTex1di1) - 239: 6(int) Load 234(coordTemp) - 240: 6(int) ImageRead 238 239 - Store 237(storeTemp) 240 - 242: 6(int) Load 237(storeTemp) - 243: 6(int) BitwiseAnd 242 241 - Store 237(storeTemp) 243 - 244: 76 Load 78(g_tTex1di1) - 245: 6(int) Load 234(coordTemp) - 246: 6(int) Load 237(storeTemp) - ImageWrite 244 245 246 - 248: 57(ptr) AccessChain 56 48 - 249: 6(int) Load 248 - Store 247(coordTemp) 249 - 251: 76 Load 78(g_tTex1di1) - 252: 6(int) Load 247(coordTemp) - 253: 6(int) ImageRead 251 252 - Store 250(storeTemp) 253 - 255: 6(int) Load 250(storeTemp) - 256: 6(int) BitwiseOr 255 254 - Store 250(storeTemp) 256 - 257: 76 Load 78(g_tTex1di1) - 258: 6(int) Load 247(coordTemp) - 259: 6(int) Load 250(storeTemp) - ImageWrite 257 258 259 - 261: 57(ptr) AccessChain 56 48 - 262: 6(int) Load 261 - Store 260(coordTemp) 262 - 264: 76 Load 78(g_tTex1di1) - 265: 6(int) Load 260(coordTemp) - 266: 6(int) ImageRead 264 265 - Store 263(storeTemp) 266 - 267: 6(int) Load 263(storeTemp) - 268: 6(int) ShiftLeftLogical 267 122 - Store 263(storeTemp) 268 - 269: 76 Load 78(g_tTex1di1) - 270: 6(int) Load 260(coordTemp) - 271: 6(int) Load 263(storeTemp) - ImageWrite 269 270 271 - 273: 57(ptr) AccessChain 56 48 - 274: 6(int) Load 273 - Store 272(coordTemp) 274 - 276: 76 Load 78(g_tTex1di1) - 277: 6(int) Load 272(coordTemp) - 278: 6(int) ImageRead 276 277 - Store 275(storeTemp) 278 - 279: 6(int) Load 275(storeTemp) - 280: 6(int) ShiftRightArithmetic 279 122 - Store 275(storeTemp) 280 - 281: 76 Load 78(g_tTex1di1) - 282: 6(int) Load 272(coordTemp) - 283: 6(int) Load 275(storeTemp) - ImageWrite 281 282 283 - 285: 18(float) FunctionCall 37(SomeValue() - Store 284(storeTemp) 285 - 286: 92 Load 94(g_tTex2df1) - 287: 97(ptr) AccessChain 56 96 - 288: 51(ivec2) Load 287 - 289: 18(float) Load 284(storeTemp) - ImageWrite 286 288 289 - 290: 92 Load 94(g_tTex2df1) - 291: 97(ptr) AccessChain 56 96 - 292: 51(ivec2) Load 291 - 293: 18(float) Load 143(lf1) - ImageWrite 290 292 293 - Store 294(storeTemp) 295 - 296: 102 Load 104(g_tTex2di1) - 297: 97(ptr) AccessChain 56 96 - 298: 51(ivec2) Load 297 - 299: 6(int) Load 294(storeTemp) - ImageWrite 296 298 299 - Store 300(storeTemp) 301 - 302: 110 Load 112(g_tTex2du1) - 303: 97(ptr) AccessChain 56 96 - 304: 51(ivec2) Load 303 - 305: 12(int) Load 300(storeTemp) - ImageWrite 302 304 305 - 307: 18(float) FunctionCall 37(SomeValue() - Store 306(storeTemp) 307 - 308: 118 Load 120(g_tTex3df1) - 309: 123(ptr) AccessChain 56 122 - 310: 52(ivec3) Load 309 - 311: 18(float) Load 306(storeTemp) - ImageWrite 308 310 311 - 312: 118 Load 120(g_tTex3df1) - 313: 123(ptr) AccessChain 56 122 - 314: 52(ivec3) Load 313 - 315: 18(float) Load 143(lf1) - ImageWrite 312 314 315 - Store 316(storeTemp) 144 - 317: 128 Load 130(g_tTex3di1) - 318: 123(ptr) AccessChain 56 122 - 319: 52(ivec3) Load 318 - 320: 6(int) Load 316(storeTemp) - ImageWrite 317 319 320 - Store 321(storeTemp) 322 - 323: 136 Load 138(g_tTex3du1) - 324: 123(ptr) AccessChain 56 122 - 325: 52(ivec3) Load 324 - 326: 12(int) Load 321(storeTemp) - ImageWrite 323 325 326 - 327: 63 Load 65(g_tTex1df1) - 328: 57(ptr) AccessChain 56 48 - 329: 6(int) Load 328 - 330: 18(float) ImageRead 327 329 - Store 331(param) 330 - 332: 18(float) FunctionCall 22(Fn1(f1;) 331(param) - 333: 76 Load 78(g_tTex1di1) - 334: 57(ptr) AccessChain 56 48 - 335: 6(int) Load 334 - 336: 6(int) ImageRead 333 335 - Store 337(param) 336 - 338: 6(int) FunctionCall 10(Fn1(i1;) 337(param) - 339: 84 Load 86(g_tTex1du1) - 340: 57(ptr) AccessChain 56 48 - 341: 6(int) Load 340 - 342: 12(int) ImageRead 339 341 - Store 343(param) 342 - 344: 12(int) FunctionCall 16(Fn1(u1;) 343(param) - 347: 2 FunctionCall 34(Fn2(f1;) 346(param) - 348: 18(float) Load 346(param) - Store 345(tempArg) 348 - 349: 63 Load 65(g_tTex1df1) - 350: 57(ptr) AccessChain 56 48 - 351: 6(int) Load 350 - 352: 18(float) Load 345(tempArg) - ImageWrite 349 351 352 - 355: 2 FunctionCall 26(Fn2(i1;) 354(param) - 356: 6(int) Load 354(param) - Store 353(tempArg) 356 - 357: 76 Load 78(g_tTex1di1) - 358: 57(ptr) AccessChain 56 48 - 359: 6(int) Load 358 - 360: 6(int) Load 353(tempArg) - ImageWrite 357 359 360 - 363: 2 FunctionCall 30(Fn2(u1;) 362(param) - 364: 12(int) Load 362(param) - Store 361(tempArg) 364 - 365: 84 Load 86(g_tTex1du1) - 366: 57(ptr) AccessChain 56 48 - 367: 6(int) Load 366 - 368: 12(int) Load 361(tempArg) - ImageWrite 365 367 368 - 370: 57(ptr) AccessChain 56 48 - 371: 6(int) Load 370 - Store 369(coordTemp) 371 - 373: 63 Load 65(g_tTex1df1) - 374: 6(int) Load 369(coordTemp) - 375: 18(float) ImageRead 373 374 - Store 372(storeTemp) 375 - 376: 18(float) Load 372(storeTemp) - 378: 18(float) FAdd 376 377 - Store 372(storeTemp) 378 - 379: 63 Load 65(g_tTex1df1) - 380: 6(int) Load 369(coordTemp) - 381: 18(float) Load 372(storeTemp) - ImageWrite 379 380 381 - 383: 57(ptr) AccessChain 56 48 - 384: 6(int) Load 383 - Store 382(coordTemp) 384 - 386: 76 Load 78(g_tTex1di1) - 387: 6(int) Load 382(coordTemp) - 388: 6(int) ImageRead 386 387 - Store 385(storeTemp) 388 - 389: 6(int) Load 385(storeTemp) - 390: 6(int) IAdd 389 96 - Store 385(storeTemp) 390 - 391: 76 Load 78(g_tTex1di1) - 392: 6(int) Load 382(coordTemp) - 393: 6(int) Load 385(storeTemp) - ImageWrite 391 392 393 - 395: 57(ptr) AccessChain 56 48 - 396: 6(int) Load 395 - Store 394(coordTemp) 396 - 398: 84 Load 86(g_tTex1du1) - 399: 6(int) Load 394(coordTemp) - 400: 12(int) ImageRead 398 399 - Store 397(storeTemp) 400 - 401: 12(int) Load 397(storeTemp) - 402: 12(int) IAdd 401 96 - Store 397(storeTemp) 402 - 403: 84 Load 86(g_tTex1du1) - 404: 6(int) Load 394(coordTemp) - 405: 12(int) Load 397(storeTemp) - ImageWrite 403 404 405 - 407: 57(ptr) AccessChain 56 48 - 408: 6(int) Load 407 - Store 406(coordTemp) 408 - 410: 63 Load 65(g_tTex1df1) - 411: 6(int) Load 406(coordTemp) - 412: 18(float) ImageRead 410 411 - Store 409(storeTemp) 412 - 413: 18(float) Load 409(storeTemp) - 414: 18(float) FSub 413 377 - Store 409(storeTemp) 414 - 415: 63 Load 65(g_tTex1df1) - 416: 6(int) Load 406(coordTemp) - 417: 18(float) Load 409(storeTemp) - ImageWrite 415 416 417 - 419: 57(ptr) AccessChain 56 48 - 420: 6(int) Load 419 - Store 418(coordTemp) 420 - 422: 76 Load 78(g_tTex1di1) - 423: 6(int) Load 418(coordTemp) - 424: 6(int) ImageRead 422 423 - Store 421(storeTemp) 424 - 425: 6(int) Load 421(storeTemp) - 426: 6(int) ISub 425 96 - Store 421(storeTemp) 426 - 427: 76 Load 78(g_tTex1di1) - 428: 6(int) Load 418(coordTemp) - 429: 6(int) Load 421(storeTemp) - ImageWrite 427 428 429 - 431: 57(ptr) AccessChain 56 48 - 432: 6(int) Load 431 - Store 430(coordTemp) 432 - 434: 84 Load 86(g_tTex1du1) - 435: 6(int) Load 430(coordTemp) - 436: 12(int) ImageRead 434 435 - Store 433(storeTemp) 436 - 437: 12(int) Load 433(storeTemp) - 438: 12(int) ISub 437 96 - Store 433(storeTemp) 438 - 439: 84 Load 86(g_tTex1du1) - 440: 6(int) Load 430(coordTemp) - 441: 12(int) Load 433(storeTemp) - ImageWrite 439 440 441 - 443: 57(ptr) AccessChain 56 48 - 444: 6(int) Load 443 - Store 442(coordTemp) 444 - 446: 63 Load 65(g_tTex1df1) - 447: 6(int) Load 442(coordTemp) - 448: 18(float) ImageRead 446 447 - Store 445(storeTempPre) 448 - 450: 18(float) Load 445(storeTempPre) - Store 449(storeTempPost) 450 - 451: 18(float) Load 449(storeTempPost) - 452: 18(float) FAdd 451 377 - Store 449(storeTempPost) 452 - 453: 63 Load 65(g_tTex1df1) - 454: 6(int) Load 442(coordTemp) - 455: 18(float) Load 449(storeTempPost) - ImageWrite 453 454 455 - 457: 57(ptr) AccessChain 56 48 - 458: 6(int) Load 457 - Store 456(coordTemp) 458 - 460: 84 Load 86(g_tTex1du1) - 461: 6(int) Load 456(coordTemp) - 462: 12(int) ImageRead 460 461 - Store 459(storeTempPre) 462 - 464: 12(int) Load 459(storeTempPre) - Store 463(storeTempPost) 464 - 465: 12(int) Load 463(storeTempPost) - 466: 12(int) ISub 465 96 - Store 463(storeTempPost) 466 - 467: 84 Load 86(g_tTex1du1) - 468: 6(int) Load 456(coordTemp) - 469: 12(int) Load 463(storeTempPost) - ImageWrite 467 468 469 - 471: 57(ptr) AccessChain 56 48 - 472: 6(int) Load 471 - Store 470(coordTemp) 472 - 474: 76 Load 78(g_tTex1di1) - 475: 6(int) Load 470(coordTemp) - 476: 6(int) ImageRead 474 475 - Store 473(storeTempPre) 476 - 478: 6(int) Load 473(storeTempPre) - Store 477(storeTempPost) 478 - 479: 6(int) Load 477(storeTempPost) - 480: 6(int) IAdd 479 96 - Store 477(storeTempPost) 480 - 481: 76 Load 78(g_tTex1di1) - 482: 6(int) Load 470(coordTemp) - 483: 6(int) Load 477(storeTempPost) - ImageWrite 481 482 483 - 485: 57(ptr) AccessChain 56 48 - 486: 6(int) Load 485 - Store 484(coordTemp) 486 - 488: 63 Load 65(g_tTex1df1) - 489: 6(int) Load 484(coordTemp) - 490: 18(float) ImageRead 488 489 - Store 487(storeTempPre) 490 - 492: 18(float) Load 487(storeTempPre) - Store 491(storeTempPost) 492 - 493: 18(float) Load 491(storeTempPost) - 494: 18(float) FSub 493 377 - Store 491(storeTempPost) 494 - 495: 63 Load 65(g_tTex1df1) - 496: 6(int) Load 484(coordTemp) - 497: 18(float) Load 491(storeTempPost) - ImageWrite 495 496 497 - 499: 57(ptr) AccessChain 56 48 - 500: 6(int) Load 499 - Store 498(coordTemp) 500 - 502: 76 Load 78(g_tTex1di1) - 503: 6(int) Load 498(coordTemp) - 504: 6(int) ImageRead 502 503 - Store 501(storeTempPre) 504 - 506: 6(int) Load 501(storeTempPre) - Store 505(storeTempPost) 506 - 507: 6(int) Load 505(storeTempPost) - 508: 6(int) IAdd 507 96 - Store 505(storeTempPost) 508 - 509: 76 Load 78(g_tTex1di1) - 510: 6(int) Load 498(coordTemp) - 511: 6(int) Load 505(storeTempPost) - ImageWrite 509 510 511 - 513: 57(ptr) AccessChain 56 48 - 514: 6(int) Load 513 - Store 512(coordTemp) 514 - 516: 84 Load 86(g_tTex1du1) - 517: 6(int) Load 512(coordTemp) - 518: 12(int) ImageRead 516 517 - Store 515(storeTempPre) 518 - 520: 12(int) Load 515(storeTempPre) - Store 519(storeTempPost) 520 - 521: 12(int) Load 519(storeTempPost) - 522: 12(int) ISub 521 96 - Store 519(storeTempPost) 522 - 523: 84 Load 86(g_tTex1du1) - 524: 6(int) Load 512(coordTemp) - 525: 12(int) Load 519(storeTempPost) - ImageWrite 523 524 525 - 527: 92 Load 94(g_tTex2df1) - 530: 18(float) ImageRead 527 529 - Store 526(storeTemp) 530 - 531: 63 Load 65(g_tTex1df1) - 532: 18(float) Load 526(storeTemp) - ImageWrite 531 96 532 - 539: 538(ptr) AccessChain 536(psout) 48 - Store 539 537 - 542: 538(ptr) AccessChain 536(psout) 48 - 543: 533(fvec4) Load 542 - Store 541(Color) 543 + 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 - 39: 6(int) Load 9(x) - ReturnValue 39 + 44: 6(int) Load 9(x) + ReturnValue 44 FunctionEnd 16(Fn1(u1;): 12(int) Function None 14 15(x): 13(ptr) FunctionParameter 17: Label - 42: 12(int) Load 15(x) - ReturnValue 42 + 47: 12(int) Load 15(x) + ReturnValue 47 FunctionEnd 22(Fn1(f1;): 18(float) Function None 20 21(x): 19(ptr) FunctionParameter 23: Label - 45: 18(float) Load 21(x) - ReturnValue 45 + 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) 48 + Store 25(x) 53 Return FunctionEnd 30(Fn2(u1;): 2 Function None 28 29(x): 13(ptr) FunctionParameter 31: Label - Store 29(x) 49 + Store 29(x) 54 Return FunctionEnd 34(Fn2(f1;): 2 Function None 32 33(x): 19(ptr) FunctionParameter 35: Label - Store 33(x) 50 + Store 33(x) 55 Return FunctionEnd 37(SomeValue(): 18(float) Function None 36 38: Label - 58: 57(ptr) AccessChain 56 48 - 59: 6(int) Load 58 - 60: 18(float) ConvertSToF 59 - ReturnValue 60 + 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-new/Test/baseResults/hlsl.rw.swizzle.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.rw.swizzle.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out 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 index 7ca7e3e4bc..bf1fe0889b 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -1,817 +1,817 @@ hlsl.rw.vec2.bracket.frag -Shader version: 450 +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 Definition: Fn1(vi2; ( temp 2-component vector of int) 0:42 Function Parameters: -0:42 'x' (in 2-component vector of int) +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: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: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: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: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: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: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: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 Definition: Fn2(vu2; ( temp void) 0:47 Function Parameters: -0:47 'x' (out 2-component vector of uint) +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: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 Definition: Fn2(vf2; ( temp void) 0:48 Function Parameters: -0:48 'x' (out 2-component vector of float) +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: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 Definition: SomeValue( ( temp 2-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression -0:50 Convert int to float (temp 2-component vector of float) -0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence -0:57 imageLoad (temp 2-component vector of float) -0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 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 (layout(offset=0 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 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 (layout(offset=0 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 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 (layout(offset=0 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 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 (layout(offset=8 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 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 (layout(offset=8 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of int) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of int) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 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 (layout(offset=96 ) uniform 2-component vector of float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 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 (layout(offset=0 ) uniform int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 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:77 'storeTemp' ( temp 2-component vector of float) +0:77 'storeTemp' ( temp 2-component vector of float) 0:78 Sequence -0:78 imageStore (temp void) -0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:78 c1: direct index for structure (layout(offset=0 ) uniform int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 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: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:79 move second child to first child ( temp 2-component vector of int) +0:79 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) -0:79 imageStore (temp void) -0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) -0:79 c1: direct index for structure (layout(offset=0 ) uniform int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 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: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:80 move second child to first child ( temp 2-component vector of uint) +0:80 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) -0:80 imageStore (temp void) -0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) -0:80 c1: direct index for structure (layout(offset=0 ) uniform int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 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: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 move second child to first child ( temp 2-component vector of float) +0:83 'val1' ( temp 2-component vector of float) 0:83 Sequence -0:83 move second child to first child (temp int) -0:83 'coordTemp' (temp int) -0:83 c1: direct index for structure (layout(offset=0 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 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 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:83 imageStore ( temp void) +0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) 0:84 Sequence -0:84 move second child to first child (temp int) -0:84 'coordTemp' (temp int) -0:84 c1: direct index for structure (layout(offset=0 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 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 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:84 imageStore ( temp void) +0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) 0:85 Sequence -0:85 move second child to first child (temp int) -0:85 'coordTemp' (temp int) -0:85 c1: direct index for structure (layout(offset=0 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 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 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:85 imageStore ( temp void) +0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) 0:87 Sequence -0:87 move second child to first child (temp int) -0:87 'coordTemp' (temp int) -0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 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 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:87 imageStore ( temp void) +0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) 0:88 Sequence -0:88 move second child to first child (temp int) -0:88 'coordTemp' (temp int) -0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 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 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:88 imageStore ( temp void) +0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) 0:89 Sequence -0:89 move second child to first child (temp int) -0:89 'coordTemp' (temp int) -0:89 c1: direct index for structure (layout(offset=0 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 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 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:89 imageStore ( temp void) +0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) 0:90 Sequence -0:90 move second child to first child (temp int) -0:90 'coordTemp' (temp int) -0:90 c1: direct index for structure (layout(offset=0 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 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 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:90 imageStore ( temp void) +0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) 0:91 Sequence -0:91 move second child to first child (temp int) -0:91 'coordTemp' (temp int) -0:91 c1: direct index for structure (layout(offset=0 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 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 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:91 imageStore ( temp void) +0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) 0:92 Sequence -0:92 move second child to first child (temp int) -0:92 'coordTemp' (temp int) -0:92 c1: direct index for structure (layout(offset=0 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 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 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:92 imageStore ( temp void) +0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) 0:95 Sequence -0:95 move second child to first child (temp 2-component vector of float) -0:95 'storeTemp' (temp 2-component vector of float) -0:95 Function Call: SomeValue( (temp 2-component vector of float) -0:95 imageStore (temp void) -0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) -0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 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:95 'storeTemp' ( temp 2-component vector of float) +0:95 'storeTemp' ( temp 2-component vector of float) 0:96 Sequence -0:96 imageStore (temp void) -0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) -0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 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: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:97 move second child to first child ( temp 2-component vector of int) +0:97 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) -0:97 imageStore (temp void) -0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) -0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 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: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:98 move second child to first child ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) -0:98 imageStore (temp void) -0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) -0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 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:98 'storeTemp' ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) 0:101 Sequence -0:101 move second child to first child (temp 2-component vector of float) -0:101 'storeTemp' (temp 2-component vector of float) -0:101 Function Call: SomeValue( (temp 2-component vector of float) -0:101 imageStore (temp void) -0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) -0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 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:101 'storeTemp' ( temp 2-component vector of float) +0:101 'storeTemp' ( temp 2-component vector of float) 0:102 Sequence -0:102 imageStore (temp void) -0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) -0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 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: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:103 move second child to first child ( temp 2-component vector of int) +0:103 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) -0:103 imageStore (temp void) -0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) -0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 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: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:104 move second child to first child ( temp 2-component vector of uint) +0:104 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) -0:104 imageStore (temp void) -0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) -0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 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 (layout(offset=0 ) uniform int) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0: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 (layout(offset=0 ) uniform int) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 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 (layout(offset=0 ) uniform int) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 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 Comma ( temp void) +0:111 Function Call: Fn2(vf2; ( temp void) +0:111 'tempArg' ( temp 2-component vector of float) 0:111 Sequence -0:111 imageStore (temp void) -0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:111 c1: direct index for structure (layout(offset=0 ) uniform int) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 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:111 'tempArg' ( temp 2-component vector of float) +0:111 'tempArg' ( temp 2-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi2; ( temp void) +0:112 'tempArg' ( temp 2-component vector of int) 0:112 Sequence -0:112 imageStore (temp void) -0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) -0:112 c1: direct index for structure (layout(offset=0 ) uniform int) -0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 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:112 'tempArg' ( temp 2-component vector of int) +0:112 'tempArg' ( temp 2-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu2; ( temp void) +0:113 'tempArg' ( temp 2-component vector of uint) 0:113 Sequence -0:113 imageStore (temp void) -0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) -0:113 c1: direct index for structure (layout(offset=0 ) uniform int) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 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:113 'tempArg' ( temp 2-component vector of uint) +0:113 'tempArg' ( temp 2-component vector of uint) 0:117 Sequence -0:117 move second child to first child (temp int) -0:117 'coordTemp' (temp int) -0:117 c1: direct index for structure (layout(offset=0 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 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:117 move second child to first child ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageLoad ( temp 2-component vector of float) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) 0:118 Sequence -0:118 move second child to first child (temp int) -0:118 'coordTemp' (temp int) -0:118 c1: direct index for structure (layout(offset=0 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 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:118 move second child to first child ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageLoad ( temp 2-component vector of int) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) 0:119 Sequence -0:119 move second child to first child (temp int) -0:119 'coordTemp' (temp int) -0:119 c1: direct index for structure (layout(offset=0 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 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:119 move second child to first child ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageLoad ( temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) 0:121 Sequence -0:121 move second child to first child (temp int) -0:121 'coordTemp' (temp int) -0:121 c1: direct index for structure (layout(offset=0 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 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:121 move second child to first child ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageLoad ( temp 2-component vector of float) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) 0:122 Sequence -0:122 move second child to first child (temp int) -0:122 'coordTemp' (temp int) -0:122 c1: direct index for structure (layout(offset=0 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 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:122 move second child to first child ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageLoad ( temp 2-component vector of int) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) 0:123 Sequence -0:123 move second child to first child (temp int) -0:123 'coordTemp' (temp int) -0:123 c1: direct index for structure (layout(offset=0 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 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:123 move second child to first child ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageLoad ( temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) 0:126 Sequence -0:126 move second child to first child (temp int) -0:126 'coordTemp' (temp int) -0:126 c1: direct index for structure (layout(offset=0 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 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:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 imageLoad ( temp 2-component vector of float) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 Post-Increment ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) 0:127 Sequence -0:127 move second child to first child (temp int) -0:127 'coordTemp' (temp int) -0:127 c1: direct index for structure (layout(offset=0 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 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:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 imageLoad ( temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 Post-Decrement ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) 0:128 Sequence -0:128 move second child to first child (temp int) -0:128 'coordTemp' (temp int) -0:128 c1: direct index for structure (layout(offset=0 ) uniform int) -0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 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:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 imageLoad ( temp 2-component vector of int) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 Post-Increment ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) 0:130 Sequence -0:130 move second child to first child (temp int) -0:130 'coordTemp' (temp int) -0:130 c1: direct index for structure (layout(offset=0 ) uniform int) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 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:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 imageLoad ( temp 2-component vector of float) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 Post-Decrement ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) 0:131 Sequence -0:131 move second child to first child (temp int) -0:131 'coordTemp' (temp int) -0:131 c1: direct index for structure (layout(offset=0 ) uniform int) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 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:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 imageLoad ( temp 2-component vector of int) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 Post-Increment ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) 0:132 Sequence -0:132 move second child to first child (temp int) -0:132 'coordTemp' (temp int) -0:132 c1: direct index for structure (layout(offset=0 ) uniform int) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 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: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: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 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: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: @@ -819,852 +819,855 @@ gl_FragCoord origin is upper left 0:137 1.000000 0:137 1.000000 0:137 1.000000 -0:139 Sequence -0:139 Sequence -0:139 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:139 Color: direct index for structure (temp 4-component vector of float) -0:139 'psout' (temp structure{temp 4-component vector of float Color}) -0:139 Constant: -0:139 0 (const int) -0:139 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) -0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) -0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) -0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) -0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) -0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) -0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) -0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) -0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) -0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) -0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) -0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) -0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) -0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +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: 450 +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 Definition: Fn1(vi2; ( temp 2-component vector of int) 0:42 Function Parameters: -0:42 'x' (in 2-component vector of int) +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: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: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: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: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: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: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: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 Definition: Fn2(vu2; ( temp void) 0:47 Function Parameters: -0:47 'x' (out 2-component vector of uint) +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: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 Definition: Fn2(vf2; ( temp void) 0:48 Function Parameters: -0:48 'x' (out 2-component vector of float) +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: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 Definition: SomeValue( ( temp 2-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression -0:50 Convert int to float (temp 2-component vector of float) -0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence -0:57 imageLoad (temp 2-component vector of float) -0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 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 (layout(offset=0 ) uniform int) -0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 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 (layout(offset=0 ) uniform int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 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 (layout(offset=0 ) uniform int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 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 (layout(offset=8 ) uniform 2-component vector of int) -0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 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 (layout(offset=8 ) uniform 2-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 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 (layout(offset=8 ) uniform 2-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 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 (layout(offset=16 ) uniform 3-component vector of int) -0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 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 (layout(offset=16 ) uniform 3-component vector of int) -0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 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 (layout(offset=16 ) uniform 3-component vector of int) -0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 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 (layout(offset=96 ) uniform 2-component vector of float) -0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 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 (layout(offset=0 ) uniform int) -0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 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:77 'storeTemp' ( temp 2-component vector of float) +0:77 'storeTemp' ( temp 2-component vector of float) 0:78 Sequence -0:78 imageStore (temp void) -0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:78 c1: direct index for structure (layout(offset=0 ) uniform int) -0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 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: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:79 move second child to first child ( temp 2-component vector of int) +0:79 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) -0:79 imageStore (temp void) -0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) -0:79 c1: direct index for structure (layout(offset=0 ) uniform int) -0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 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: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:80 move second child to first child ( temp 2-component vector of uint) +0:80 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) -0:80 imageStore (temp void) -0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) -0:80 c1: direct index for structure (layout(offset=0 ) uniform int) -0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 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: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 move second child to first child ( temp 2-component vector of float) +0:83 'val1' ( temp 2-component vector of float) 0:83 Sequence -0:83 move second child to first child (temp int) -0:83 'coordTemp' (temp int) -0:83 c1: direct index for structure (layout(offset=0 ) uniform int) -0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 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 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:83 imageStore ( temp void) +0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) 0:84 Sequence -0:84 move second child to first child (temp int) -0:84 'coordTemp' (temp int) -0:84 c1: direct index for structure (layout(offset=0 ) uniform int) -0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 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 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:84 imageStore ( temp void) +0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) 0:85 Sequence -0:85 move second child to first child (temp int) -0:85 'coordTemp' (temp int) -0:85 c1: direct index for structure (layout(offset=0 ) uniform int) -0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 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 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:85 imageStore ( temp void) +0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) 0:87 Sequence -0:87 move second child to first child (temp int) -0:87 'coordTemp' (temp int) -0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 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 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:87 imageStore ( temp void) +0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) 0:88 Sequence -0:88 move second child to first child (temp int) -0:88 'coordTemp' (temp int) -0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 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 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:88 imageStore ( temp void) +0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) 0:89 Sequence -0:89 move second child to first child (temp int) -0:89 'coordTemp' (temp int) -0:89 c1: direct index for structure (layout(offset=0 ) uniform int) -0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 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 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:89 imageStore ( temp void) +0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) 0:90 Sequence -0:90 move second child to first child (temp int) -0:90 'coordTemp' (temp int) -0:90 c1: direct index for structure (layout(offset=0 ) uniform int) -0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 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 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:90 imageStore ( temp void) +0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) 0:91 Sequence -0:91 move second child to first child (temp int) -0:91 'coordTemp' (temp int) -0:91 c1: direct index for structure (layout(offset=0 ) uniform int) -0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 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 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:91 imageStore ( temp void) +0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) 0:92 Sequence -0:92 move second child to first child (temp int) -0:92 'coordTemp' (temp int) -0:92 c1: direct index for structure (layout(offset=0 ) uniform int) -0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 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 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:92 imageStore ( temp void) +0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) 0:95 Sequence -0:95 move second child to first child (temp 2-component vector of float) -0:95 'storeTemp' (temp 2-component vector of float) -0:95 Function Call: SomeValue( (temp 2-component vector of float) -0:95 imageStore (temp void) -0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) -0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 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:95 'storeTemp' ( temp 2-component vector of float) +0:95 'storeTemp' ( temp 2-component vector of float) 0:96 Sequence -0:96 imageStore (temp void) -0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) -0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 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: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:97 move second child to first child ( temp 2-component vector of int) +0:97 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) -0:97 imageStore (temp void) -0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) -0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 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: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:98 move second child to first child ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) -0:98 imageStore (temp void) -0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) -0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 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:98 'storeTemp' ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) 0:101 Sequence -0:101 move second child to first child (temp 2-component vector of float) -0:101 'storeTemp' (temp 2-component vector of float) -0:101 Function Call: SomeValue( (temp 2-component vector of float) -0:101 imageStore (temp void) -0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) -0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 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:101 'storeTemp' ( temp 2-component vector of float) +0:101 'storeTemp' ( temp 2-component vector of float) 0:102 Sequence -0:102 imageStore (temp void) -0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) -0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 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: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:103 move second child to first child ( temp 2-component vector of int) +0:103 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) -0:103 imageStore (temp void) -0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) -0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 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: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:104 move second child to first child ( temp 2-component vector of uint) +0:104 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) -0:104 imageStore (temp void) -0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) -0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 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 (layout(offset=0 ) uniform int) -0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0: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 (layout(offset=0 ) uniform int) -0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 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 (layout(offset=0 ) uniform int) -0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 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 Comma ( temp void) +0:111 Function Call: Fn2(vf2; ( temp void) +0:111 'tempArg' ( temp 2-component vector of float) 0:111 Sequence -0:111 imageStore (temp void) -0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:111 c1: direct index for structure (layout(offset=0 ) uniform int) -0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 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:111 'tempArg' ( temp 2-component vector of float) +0:111 'tempArg' ( temp 2-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi2; ( temp void) +0:112 'tempArg' ( temp 2-component vector of int) 0:112 Sequence -0:112 imageStore (temp void) -0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) -0:112 c1: direct index for structure (layout(offset=0 ) uniform int) -0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 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:112 'tempArg' ( temp 2-component vector of int) +0:112 'tempArg' ( temp 2-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu2; ( temp void) +0:113 'tempArg' ( temp 2-component vector of uint) 0:113 Sequence -0:113 imageStore (temp void) -0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) -0:113 c1: direct index for structure (layout(offset=0 ) uniform int) -0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 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:113 'tempArg' ( temp 2-component vector of uint) +0:113 'tempArg' ( temp 2-component vector of uint) 0:117 Sequence -0:117 move second child to first child (temp int) -0:117 'coordTemp' (temp int) -0:117 c1: direct index for structure (layout(offset=0 ) uniform int) -0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 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:117 move second child to first child ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageLoad ( temp 2-component vector of float) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) 0:118 Sequence -0:118 move second child to first child (temp int) -0:118 'coordTemp' (temp int) -0:118 c1: direct index for structure (layout(offset=0 ) uniform int) -0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 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:118 move second child to first child ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageLoad ( temp 2-component vector of int) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) 0:119 Sequence -0:119 move second child to first child (temp int) -0:119 'coordTemp' (temp int) -0:119 c1: direct index for structure (layout(offset=0 ) uniform int) -0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 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:119 move second child to first child ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageLoad ( temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) 0:121 Sequence -0:121 move second child to first child (temp int) -0:121 'coordTemp' (temp int) -0:121 c1: direct index for structure (layout(offset=0 ) uniform int) -0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 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:121 move second child to first child ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageLoad ( temp 2-component vector of float) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) 0:122 Sequence -0:122 move second child to first child (temp int) -0:122 'coordTemp' (temp int) -0:122 c1: direct index for structure (layout(offset=0 ) uniform int) -0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 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:122 move second child to first child ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageLoad ( temp 2-component vector of int) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) 0:123 Sequence -0:123 move second child to first child (temp int) -0:123 'coordTemp' (temp int) -0:123 c1: direct index for structure (layout(offset=0 ) uniform int) -0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 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:123 move second child to first child ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageLoad ( temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) 0:126 Sequence -0:126 move second child to first child (temp int) -0:126 'coordTemp' (temp int) -0:126 c1: direct index for structure (layout(offset=0 ) uniform int) -0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 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:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 imageLoad ( temp 2-component vector of float) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 Post-Increment ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) 0:127 Sequence -0:127 move second child to first child (temp int) -0:127 'coordTemp' (temp int) -0:127 c1: direct index for structure (layout(offset=0 ) uniform int) -0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 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:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 imageLoad ( temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 Post-Decrement ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) 0:128 Sequence -0:128 move second child to first child (temp int) -0:128 'coordTemp' (temp int) -0:128 c1: direct index for structure (layout(offset=0 ) uniform int) -0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 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:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 imageLoad ( temp 2-component vector of int) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 Post-Increment ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) 0:130 Sequence -0:130 move second child to first child (temp int) -0:130 'coordTemp' (temp int) -0:130 c1: direct index for structure (layout(offset=0 ) uniform int) -0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 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:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 imageLoad ( temp 2-component vector of float) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 Post-Decrement ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) 0:131 Sequence -0:131 move second child to first child (temp int) -0:131 'coordTemp' (temp int) -0:131 c1: direct index for structure (layout(offset=0 ) uniform int) -0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 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:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 imageLoad ( temp 2-component vector of int) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 Post-Increment ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) 0:132 Sequence -0:132 move second child to first child (temp int) -0:132 'coordTemp' (temp int) -0:132 c1: direct index for structure (layout(offset=0 ) uniform int) -0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 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: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: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 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: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: @@ -1672,46 +1675,50 @@ gl_FragCoord origin is upper left 0:137 1.000000 0:137 1.000000 0:137 1.000000 -0:139 Sequence -0:139 Sequence -0:139 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:139 Color: direct index for structure (temp 4-component vector of float) -0:139 'psout' (temp structure{temp 4-component vector of float Color}) -0:139 Constant: -0:139 0 (const int) -0:139 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) -0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) -0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) -0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) -0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) -0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) -0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) -0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) -0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) -0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) -0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) -0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) -0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) -0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) -0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +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): 80001 -// Id's are bound by 600 +// Generated by (magic number): 80007 +// Id's are bound by 605 Capability Shader - Capability Sampled1D + Capability Image1D Capability StorageImageExtendedFormats 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 575 + EntryPoint Fragment 4 "main" 581 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 11 "Fn1(vi2;" Name 10 "x" @@ -1726,148 +1733,149 @@ gl_FragCoord origin is upper left Name 37 "Fn2(vf2;" Name 36 "x" Name 40 "SomeValue(" - Name 59 "$Global" - MemberName 59($Global) 0 "c1" - MemberName 59($Global) 1 "c2" - MemberName 59($Global) 2 "c3" - MemberName 59($Global) 3 "c4" - MemberName 59($Global) 4 "o1" - MemberName 59($Global) 5 "o2" - MemberName 59($Global) 6 "o3" - MemberName 59($Global) 7 "o4" - MemberName 59($Global) 8 "uf2" - MemberName 59($Global) 9 "ui2" - MemberName 59($Global) 10 "uu2" - Name 61 "" - Name 71 "g_tTex1df2" - Name 77 "r00" - Name 82 "r01" - Name 85 "g_tTex1di2" - Name 90 "r02" - Name 93 "g_tTex1du2" - Name 98 "r10" - Name 101 "g_tTex2df2" - Name 106 "r11" - Name 109 "g_tTex2di2" - Name 114 "r12" - Name 117 "g_tTex2du2" - Name 122 "r20" - Name 125 "g_tTex3df2" - Name 132 "r21" - Name 135 "g_tTex3di2" - Name 140 "r22" - Name 143 "g_tTex3du2" - Name 148 "lf2" - Name 153 "storeTemp" - Name 163 "storeTemp" - Name 169 "storeTemp" - Name 177 "val1" - Name 179 "coordTemp" - Name 182 "storeTemp" - Name 193 "coordTemp" - Name 196 "storeTemp" - Name 207 "coordTemp" - Name 210 "storeTemp" - Name 221 "coordTemp" - Name 224 "storeTemp" - Name 234 "coordTemp" - Name 237 "storeTemp" - Name 247 "coordTemp" - Name 250 "storeTemp" - Name 261 "coordTemp" - Name 264 "storeTemp" - Name 275 "coordTemp" - Name 278 "storeTemp" - Name 288 "coordTemp" - Name 291 "storeTemp" - Name 301 "storeTemp" - Name 311 "storeTemp" - Name 318 "storeTemp" - Name 325 "storeTemp" - Name 335 "storeTemp" - Name 342 "storeTemp" - Name 353 "param" - Name 359 "param" - Name 365 "param" - Name 367 "tempArg" - Name 368 "param" - Name 375 "tempArg" - Name 376 "param" - Name 383 "tempArg" - Name 384 "param" - Name 391 "coordTemp" - Name 394 "storeTemp" - Name 405 "coordTemp" - Name 408 "storeTemp" - Name 418 "coordTemp" - Name 421 "storeTemp" - Name 431 "coordTemp" - Name 434 "storeTemp" - Name 444 "coordTemp" - Name 447 "storeTemp" - Name 457 "coordTemp" - Name 460 "storeTemp" - Name 470 "coordTemp" - Name 473 "storeTempPre" - Name 477 "storeTempPost" - Name 485 "coordTemp" - Name 488 "storeTempPre" - Name 492 "storeTempPost" - Name 500 "coordTemp" - Name 503 "storeTempPre" - Name 507 "storeTempPost" - Name 515 "coordTemp" - Name 518 "storeTempPre" - Name 522 "storeTempPost" - Name 530 "coordTemp" - Name 533 "storeTempPre" - Name 537 "storeTempPost" - Name 545 "coordTemp" - Name 548 "storeTempPre" - Name 552 "storeTempPost" - Name 560 "storeTemp" - Name 568 "PS_OUTPUT" - MemberName 568(PS_OUTPUT) 0 "Color" - Name 570 "psout" - Name 575 "Color" - Name 581 "g_sSamp" - Name 584 "g_tTex1df2a" - Name 587 "g_tTex1di2a" - Name 590 "g_tTex1du2a" - Name 593 "g_tTex2df2a" - Name 596 "g_tTex2di2a" - Name 599 "g_tTex2du2a" - MemberDecorate 59($Global) 0 Offset 0 - MemberDecorate 59($Global) 1 Offset 8 - MemberDecorate 59($Global) 2 Offset 16 - MemberDecorate 59($Global) 3 Offset 32 - MemberDecorate 59($Global) 4 Offset 48 - MemberDecorate 59($Global) 5 Offset 56 - MemberDecorate 59($Global) 6 Offset 64 - MemberDecorate 59($Global) 7 Offset 80 - MemberDecorate 59($Global) 8 Offset 96 - MemberDecorate 59($Global) 9 Offset 104 - MemberDecorate 59($Global) 10 Offset 112 - Decorate 59($Global) Block - Decorate 61 DescriptorSet 0 - Decorate 71(g_tTex1df2) DescriptorSet 0 - Decorate 85(g_tTex1di2) DescriptorSet 0 - Decorate 93(g_tTex1du2) DescriptorSet 0 - Decorate 101(g_tTex2df2) DescriptorSet 0 - Decorate 109(g_tTex2di2) DescriptorSet 0 - Decorate 117(g_tTex2du2) DescriptorSet 0 - Decorate 125(g_tTex3df2) DescriptorSet 0 - Decorate 135(g_tTex3di2) DescriptorSet 0 - Decorate 143(g_tTex3du2) DescriptorSet 0 - Decorate 575(Color) Location 0 - Decorate 581(g_sSamp) DescriptorSet 0 - Decorate 581(g_sSamp) Binding 0 - Decorate 584(g_tTex1df2a) DescriptorSet 0 - Decorate 587(g_tTex1di2a) DescriptorSet 0 - Decorate 590(g_tTex1du2a) DescriptorSet 0 - Decorate 593(g_tTex2df2a) DescriptorSet 0 - Decorate 596(g_tTex2di2a) DescriptorSet 0 - Decorate 599(g_tTex2du2a) DescriptorSet 0 + 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 @@ -1886,728 +1894,734 @@ gl_FragCoord origin is upper left 31: TypeFunction 2 15(ptr) 35: TypeFunction 2 22(ptr) 39: TypeFunction 21(fvec2) - 51: 6(int) Constant 0 - 52: 7(ivec2) ConstantComposite 51 51 - 53: 13(int) Constant 0 - 54: 14(ivec2) ConstantComposite 53 53 - 55: 20(float) Constant 0 - 56: 21(fvec2) ConstantComposite 55 55 - 57: TypeVector 6(int) 3 - 58: TypeVector 6(int) 4 - 59($Global): TypeStruct 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 21(fvec2) 7(ivec2) 14(ivec2) - 60: TypePointer Uniform 59($Global) - 61: 60(ptr) Variable Uniform - 62: 6(int) Constant 1 - 63: TypePointer Uniform 7(ivec2) - 69: TypeImage 20(float) 1D nonsampled format:Rg32f - 70: TypePointer UniformConstant 69 - 71(g_tTex1df2): 70(ptr) Variable UniformConstant - 73: TypePointer Uniform 6(int) - 83: TypeImage 6(int) 1D nonsampled format:Rg32i - 84: TypePointer UniformConstant 83 - 85(g_tTex1di2): 84(ptr) Variable UniformConstant - 91: TypeImage 13(int) 1D nonsampled format:Rg32ui - 92: TypePointer UniformConstant 91 - 93(g_tTex1du2): 92(ptr) Variable UniformConstant - 99: TypeImage 20(float) 2D nonsampled format:Rg32f - 100: TypePointer UniformConstant 99 - 101(g_tTex2df2): 100(ptr) Variable UniformConstant - 107: TypeImage 6(int) 2D nonsampled format:Rg32i - 108: TypePointer UniformConstant 107 - 109(g_tTex2di2): 108(ptr) Variable UniformConstant - 115: TypeImage 13(int) 2D nonsampled format:Rg32ui - 116: TypePointer UniformConstant 115 - 117(g_tTex2du2): 116(ptr) Variable UniformConstant - 123: TypeImage 20(float) 3D nonsampled format:Rg32f - 124: TypePointer UniformConstant 123 - 125(g_tTex3df2): 124(ptr) Variable UniformConstant - 127: 6(int) Constant 2 - 128: TypePointer Uniform 57(ivec3) - 133: TypeImage 6(int) 3D nonsampled format:Rg32i - 134: TypePointer UniformConstant 133 - 135(g_tTex3di2): 134(ptr) Variable UniformConstant - 141: TypeImage 13(int) 3D nonsampled format:Rg32ui - 142: TypePointer UniformConstant 141 - 143(g_tTex3du2): 142(ptr) Variable UniformConstant - 149: 6(int) Constant 8 - 150: TypePointer Uniform 21(fvec2) - 164: 7(ivec2) ConstantComposite 127 127 - 170: 13(int) Constant 3 - 171: 13(int) Constant 2 - 172: 14(ivec2) ConstantComposite 170 171 - 178: TypePointer Function 6(int) - 186: 20(float) Constant 1073741824 - 200: 20(float) Constant 1077936128 - 214: 20(float) Constant 1082130432 - 254: 6(int) Constant 65535 - 268: 6(int) Constant 61680 - 312: 6(int) Constant 5 - 313: 7(ivec2) ConstantComposite 312 127 - 319: 13(int) Constant 6 - 320: 14(ivec2) ConstantComposite 319 171 - 336: 6(int) Constant 6 - 337: 7(ivec2) ConstantComposite 149 336 - 343: 13(int) Constant 9 - 344: 14(ivec2) ConstantComposite 343 171 - 399: 20(float) Constant 1065353216 - 562: 6(int) Constant 3 - 563: 7(ivec2) ConstantComposite 127 562 - 567: TypeVector 20(float) 4 - 568(PS_OUTPUT): TypeStruct 567(fvec4) - 569: TypePointer Function 568(PS_OUTPUT) - 571: 567(fvec4) ConstantComposite 399 399 399 399 - 572: TypePointer Function 567(fvec4) - 574: TypePointer Output 567(fvec4) - 575(Color): 574(ptr) Variable Output - 579: TypeSampler - 580: TypePointer UniformConstant 579 - 581(g_sSamp): 580(ptr) Variable UniformConstant - 582: TypeImage 20(float) 1D array nonsampled format:Rg32f - 583: TypePointer UniformConstant 582 -584(g_tTex1df2a): 583(ptr) Variable UniformConstant - 585: TypeImage 6(int) 1D array nonsampled format:Rg32i - 586: TypePointer UniformConstant 585 -587(g_tTex1di2a): 586(ptr) Variable UniformConstant - 588: TypeImage 13(int) 1D array nonsampled format:Rg32ui - 589: TypePointer UniformConstant 588 -590(g_tTex1du2a): 589(ptr) Variable UniformConstant - 591: TypeImage 20(float) 2D array nonsampled format:Rg32f - 592: TypePointer UniformConstant 591 -593(g_tTex2df2a): 592(ptr) Variable UniformConstant - 594: TypeImage 6(int) 2D array nonsampled format:Rg32i - 595: TypePointer UniformConstant 594 -596(g_tTex2di2a): 595(ptr) Variable UniformConstant - 597: TypeImage 13(int) 2D array nonsampled format:Rg32ui - 598: TypePointer UniformConstant 597 -599(g_tTex2du2a): 598(ptr) Variable UniformConstant + 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 - 77(r00): 22(ptr) Variable Function - 82(r01): 8(ptr) Variable Function - 90(r02): 15(ptr) Variable Function - 98(r10): 22(ptr) Variable Function - 106(r11): 8(ptr) Variable Function - 114(r12): 15(ptr) Variable Function - 122(r20): 22(ptr) Variable Function - 132(r21): 8(ptr) Variable Function - 140(r22): 15(ptr) Variable Function - 148(lf2): 22(ptr) Variable Function - 153(storeTemp): 22(ptr) Variable Function - 163(storeTemp): 8(ptr) Variable Function - 169(storeTemp): 15(ptr) Variable Function - 177(val1): 22(ptr) Variable Function - 179(coordTemp): 178(ptr) Variable Function - 182(storeTemp): 22(ptr) Variable Function - 193(coordTemp): 178(ptr) Variable Function - 196(storeTemp): 22(ptr) Variable Function - 207(coordTemp): 178(ptr) Variable Function - 210(storeTemp): 22(ptr) Variable Function - 221(coordTemp): 178(ptr) Variable Function - 224(storeTemp): 8(ptr) Variable Function - 234(coordTemp): 178(ptr) Variable Function - 237(storeTemp): 8(ptr) Variable Function - 247(coordTemp): 178(ptr) Variable Function - 250(storeTemp): 8(ptr) Variable Function - 261(coordTemp): 178(ptr) Variable Function - 264(storeTemp): 8(ptr) Variable Function - 275(coordTemp): 178(ptr) Variable Function - 278(storeTemp): 8(ptr) Variable Function - 288(coordTemp): 178(ptr) Variable Function - 291(storeTemp): 8(ptr) Variable Function - 301(storeTemp): 22(ptr) Variable Function - 311(storeTemp): 8(ptr) Variable Function - 318(storeTemp): 15(ptr) Variable Function - 325(storeTemp): 22(ptr) Variable Function - 335(storeTemp): 8(ptr) Variable Function - 342(storeTemp): 15(ptr) Variable Function - 353(param): 22(ptr) Variable Function - 359(param): 8(ptr) Variable Function - 365(param): 15(ptr) Variable Function - 367(tempArg): 22(ptr) Variable Function - 368(param): 22(ptr) Variable Function - 375(tempArg): 8(ptr) Variable Function - 376(param): 8(ptr) Variable Function - 383(tempArg): 15(ptr) Variable Function - 384(param): 15(ptr) Variable Function - 391(coordTemp): 178(ptr) Variable Function - 394(storeTemp): 22(ptr) Variable Function - 405(coordTemp): 178(ptr) Variable Function - 408(storeTemp): 8(ptr) Variable Function - 418(coordTemp): 178(ptr) Variable Function - 421(storeTemp): 15(ptr) Variable Function - 431(coordTemp): 178(ptr) Variable Function - 434(storeTemp): 22(ptr) Variable Function - 444(coordTemp): 178(ptr) Variable Function - 447(storeTemp): 8(ptr) Variable Function - 457(coordTemp): 178(ptr) Variable Function - 460(storeTemp): 15(ptr) Variable Function - 470(coordTemp): 178(ptr) Variable Function -473(storeTempPre): 22(ptr) Variable Function -477(storeTempPost): 22(ptr) Variable Function - 485(coordTemp): 178(ptr) Variable Function -488(storeTempPre): 15(ptr) Variable Function -492(storeTempPost): 15(ptr) Variable Function - 500(coordTemp): 178(ptr) Variable Function -503(storeTempPre): 8(ptr) Variable Function -507(storeTempPost): 8(ptr) Variable Function - 515(coordTemp): 178(ptr) Variable Function -518(storeTempPre): 22(ptr) Variable Function -522(storeTempPost): 22(ptr) Variable Function - 530(coordTemp): 178(ptr) Variable Function -533(storeTempPre): 8(ptr) Variable Function -537(storeTempPost): 8(ptr) Variable Function - 545(coordTemp): 178(ptr) Variable Function -548(storeTempPre): 15(ptr) Variable Function -552(storeTempPost): 15(ptr) Variable Function - 560(storeTemp): 22(ptr) Variable Function - 570(psout): 569(ptr) Variable Function - 72: 69 Load 71(g_tTex1df2) - 74: 73(ptr) AccessChain 61 51 - 75: 6(int) Load 74 - 76: 21(fvec2) ImageRead 72 75 - 78: 69 Load 71(g_tTex1df2) - 79: 73(ptr) AccessChain 61 51 - 80: 6(int) Load 79 - 81: 21(fvec2) ImageRead 78 80 - Store 77(r00) 81 - 86: 83 Load 85(g_tTex1di2) - 87: 73(ptr) AccessChain 61 51 - 88: 6(int) Load 87 - 89: 7(ivec2) ImageRead 86 88 - Store 82(r01) 89 - 94: 91 Load 93(g_tTex1du2) - 95: 73(ptr) AccessChain 61 51 - 96: 6(int) Load 95 - 97: 14(ivec2) ImageRead 94 96 - Store 90(r02) 97 - 102: 99 Load 101(g_tTex2df2) - 103: 63(ptr) AccessChain 61 62 - 104: 7(ivec2) Load 103 - 105: 21(fvec2) ImageRead 102 104 - Store 98(r10) 105 - 110: 107 Load 109(g_tTex2di2) - 111: 63(ptr) AccessChain 61 62 - 112: 7(ivec2) Load 111 - 113: 7(ivec2) ImageRead 110 112 - Store 106(r11) 113 - 118: 115 Load 117(g_tTex2du2) - 119: 63(ptr) AccessChain 61 62 - 120: 7(ivec2) Load 119 - 121: 14(ivec2) ImageRead 118 120 - Store 114(r12) 121 - 126: 123 Load 125(g_tTex3df2) - 129: 128(ptr) AccessChain 61 127 - 130: 57(ivec3) Load 129 - 131: 21(fvec2) ImageRead 126 130 - Store 122(r20) 131 - 136: 133 Load 135(g_tTex3di2) - 137: 128(ptr) AccessChain 61 127 - 138: 57(ivec3) Load 137 - 139: 7(ivec2) ImageRead 136 138 - Store 132(r21) 139 - 144: 141 Load 143(g_tTex3du2) - 145: 128(ptr) AccessChain 61 127 - 146: 57(ivec3) Load 145 - 147: 14(ivec2) ImageRead 144 146 - Store 140(r22) 147 - 151: 150(ptr) AccessChain 61 149 - 152: 21(fvec2) Load 151 - Store 148(lf2) 152 - 154: 21(fvec2) FunctionCall 40(SomeValue() - Store 153(storeTemp) 154 - 155: 69 Load 71(g_tTex1df2) - 156: 73(ptr) AccessChain 61 51 - 157: 6(int) Load 156 - 158: 21(fvec2) Load 153(storeTemp) - ImageWrite 155 157 158 - 159: 69 Load 71(g_tTex1df2) - 160: 73(ptr) AccessChain 61 51 - 161: 6(int) Load 160 - 162: 21(fvec2) Load 148(lf2) - ImageWrite 159 161 162 - Store 163(storeTemp) 164 - 165: 83 Load 85(g_tTex1di2) - 166: 73(ptr) AccessChain 61 51 - 167: 6(int) Load 166 - 168: 7(ivec2) Load 163(storeTemp) - ImageWrite 165 167 168 - Store 169(storeTemp) 172 - 173: 91 Load 93(g_tTex1du2) - 174: 73(ptr) AccessChain 61 51 - 175: 6(int) Load 174 - 176: 14(ivec2) Load 169(storeTemp) - ImageWrite 173 175 176 - 180: 73(ptr) AccessChain 61 51 - 181: 6(int) Load 180 - Store 179(coordTemp) 181 - 183: 69 Load 71(g_tTex1df2) - 184: 6(int) Load 179(coordTemp) - 185: 21(fvec2) ImageRead 183 184 - Store 182(storeTemp) 185 - 187: 21(fvec2) Load 182(storeTemp) - 188: 21(fvec2) VectorTimesScalar 187 186 - Store 182(storeTemp) 188 - 189: 69 Load 71(g_tTex1df2) - 190: 6(int) Load 179(coordTemp) - 191: 21(fvec2) Load 182(storeTemp) - ImageWrite 189 190 191 - 192: 21(fvec2) Load 182(storeTemp) - Store 177(val1) 192 - 194: 73(ptr) AccessChain 61 51 - 195: 6(int) Load 194 - Store 193(coordTemp) 195 - 197: 69 Load 71(g_tTex1df2) - 198: 6(int) Load 193(coordTemp) - 199: 21(fvec2) ImageRead 197 198 - Store 196(storeTemp) 199 - 201: 21(fvec2) Load 196(storeTemp) - 202: 21(fvec2) CompositeConstruct 200 200 - 203: 21(fvec2) FSub 201 202 - Store 196(storeTemp) 203 - 204: 69 Load 71(g_tTex1df2) - 205: 6(int) Load 193(coordTemp) - 206: 21(fvec2) Load 196(storeTemp) - ImageWrite 204 205 206 - 208: 73(ptr) AccessChain 61 51 - 209: 6(int) Load 208 - Store 207(coordTemp) 209 - 211: 69 Load 71(g_tTex1df2) - 212: 6(int) Load 207(coordTemp) - 213: 21(fvec2) ImageRead 211 212 - Store 210(storeTemp) 213 - 215: 21(fvec2) Load 210(storeTemp) - 216: 21(fvec2) CompositeConstruct 214 214 - 217: 21(fvec2) FAdd 215 216 - Store 210(storeTemp) 217 - 218: 69 Load 71(g_tTex1df2) - 219: 6(int) Load 207(coordTemp) - 220: 21(fvec2) Load 210(storeTemp) - ImageWrite 218 219 220 - 222: 73(ptr) AccessChain 61 51 - 223: 6(int) Load 222 - Store 221(coordTemp) 223 - 225: 83 Load 85(g_tTex1di2) - 226: 6(int) Load 221(coordTemp) - 227: 7(ivec2) ImageRead 225 226 - Store 224(storeTemp) 227 - 228: 7(ivec2) Load 224(storeTemp) - 229: 7(ivec2) CompositeConstruct 127 127 - 230: 7(ivec2) SDiv 228 229 - Store 224(storeTemp) 230 - 231: 83 Load 85(g_tTex1di2) - 232: 6(int) Load 221(coordTemp) - 233: 7(ivec2) Load 224(storeTemp) - ImageWrite 231 232 233 - 235: 73(ptr) AccessChain 61 51 - 236: 6(int) Load 235 - Store 234(coordTemp) 236 - 238: 83 Load 85(g_tTex1di2) - 239: 6(int) Load 234(coordTemp) - 240: 7(ivec2) ImageRead 238 239 - Store 237(storeTemp) 240 - 241: 7(ivec2) Load 237(storeTemp) - 242: 7(ivec2) CompositeConstruct 127 127 - 243: 7(ivec2) SMod 241 242 - Store 237(storeTemp) 243 - 244: 83 Load 85(g_tTex1di2) - 245: 6(int) Load 234(coordTemp) - 246: 7(ivec2) Load 237(storeTemp) - ImageWrite 244 245 246 - 248: 73(ptr) AccessChain 61 51 - 249: 6(int) Load 248 - Store 247(coordTemp) 249 - 251: 83 Load 85(g_tTex1di2) - 252: 6(int) Load 247(coordTemp) - 253: 7(ivec2) ImageRead 251 252 - Store 250(storeTemp) 253 - 255: 7(ivec2) Load 250(storeTemp) - 256: 7(ivec2) CompositeConstruct 254 254 - 257: 7(ivec2) BitwiseAnd 255 256 - Store 250(storeTemp) 257 - 258: 83 Load 85(g_tTex1di2) - 259: 6(int) Load 247(coordTemp) - 260: 7(ivec2) Load 250(storeTemp) - ImageWrite 258 259 260 - 262: 73(ptr) AccessChain 61 51 - 263: 6(int) Load 262 - Store 261(coordTemp) 263 - 265: 83 Load 85(g_tTex1di2) - 266: 6(int) Load 261(coordTemp) - 267: 7(ivec2) ImageRead 265 266 - Store 264(storeTemp) 267 - 269: 7(ivec2) Load 264(storeTemp) - 270: 7(ivec2) CompositeConstruct 268 268 - 271: 7(ivec2) BitwiseOr 269 270 - Store 264(storeTemp) 271 - 272: 83 Load 85(g_tTex1di2) - 273: 6(int) Load 261(coordTemp) - 274: 7(ivec2) Load 264(storeTemp) - ImageWrite 272 273 274 - 276: 73(ptr) AccessChain 61 51 - 277: 6(int) Load 276 - Store 275(coordTemp) 277 - 279: 83 Load 85(g_tTex1di2) - 280: 6(int) Load 275(coordTemp) - 281: 7(ivec2) ImageRead 279 280 - Store 278(storeTemp) 281 - 282: 7(ivec2) Load 278(storeTemp) - 283: 7(ivec2) CompositeConstruct 127 127 - 284: 7(ivec2) ShiftLeftLogical 282 283 - Store 278(storeTemp) 284 - 285: 83 Load 85(g_tTex1di2) - 286: 6(int) Load 275(coordTemp) - 287: 7(ivec2) Load 278(storeTemp) - ImageWrite 285 286 287 - 289: 73(ptr) AccessChain 61 51 - 290: 6(int) Load 289 - Store 288(coordTemp) 290 - 292: 83 Load 85(g_tTex1di2) - 293: 6(int) Load 288(coordTemp) - 294: 7(ivec2) ImageRead 292 293 - Store 291(storeTemp) 294 - 295: 7(ivec2) Load 291(storeTemp) - 296: 7(ivec2) CompositeConstruct 127 127 - 297: 7(ivec2) ShiftRightArithmetic 295 296 - Store 291(storeTemp) 297 - 298: 83 Load 85(g_tTex1di2) - 299: 6(int) Load 288(coordTemp) - 300: 7(ivec2) Load 291(storeTemp) - ImageWrite 298 299 300 - 302: 21(fvec2) FunctionCall 40(SomeValue() - Store 301(storeTemp) 302 - 303: 99 Load 101(g_tTex2df2) - 304: 63(ptr) AccessChain 61 62 - 305: 7(ivec2) Load 304 - 306: 21(fvec2) Load 301(storeTemp) - ImageWrite 303 305 306 - 307: 99 Load 101(g_tTex2df2) - 308: 63(ptr) AccessChain 61 62 - 309: 7(ivec2) Load 308 - 310: 21(fvec2) Load 148(lf2) - ImageWrite 307 309 310 - Store 311(storeTemp) 313 - 314: 107 Load 109(g_tTex2di2) - 315: 63(ptr) AccessChain 61 62 - 316: 7(ivec2) Load 315 - 317: 7(ivec2) Load 311(storeTemp) - ImageWrite 314 316 317 - Store 318(storeTemp) 320 - 321: 115 Load 117(g_tTex2du2) - 322: 63(ptr) AccessChain 61 62 - 323: 7(ivec2) Load 322 - 324: 14(ivec2) Load 318(storeTemp) - ImageWrite 321 323 324 - 326: 21(fvec2) FunctionCall 40(SomeValue() - Store 325(storeTemp) 326 - 327: 123 Load 125(g_tTex3df2) - 328: 128(ptr) AccessChain 61 127 - 329: 57(ivec3) Load 328 - 330: 21(fvec2) Load 325(storeTemp) - ImageWrite 327 329 330 - 331: 123 Load 125(g_tTex3df2) - 332: 128(ptr) AccessChain 61 127 - 333: 57(ivec3) Load 332 - 334: 21(fvec2) Load 148(lf2) - ImageWrite 331 333 334 - Store 335(storeTemp) 337 - 338: 133 Load 135(g_tTex3di2) - 339: 128(ptr) AccessChain 61 127 - 340: 57(ivec3) Load 339 - 341: 7(ivec2) Load 335(storeTemp) - ImageWrite 338 340 341 - Store 342(storeTemp) 344 - 345: 141 Load 143(g_tTex3du2) - 346: 128(ptr) AccessChain 61 127 - 347: 57(ivec3) Load 346 - 348: 14(ivec2) Load 342(storeTemp) - ImageWrite 345 347 348 - 349: 69 Load 71(g_tTex1df2) - 350: 73(ptr) AccessChain 61 51 - 351: 6(int) Load 350 - 352: 21(fvec2) ImageRead 349 351 - Store 353(param) 352 - 354: 21(fvec2) FunctionCall 25(Fn1(vf2;) 353(param) - 355: 83 Load 85(g_tTex1di2) - 356: 73(ptr) AccessChain 61 51 - 357: 6(int) Load 356 - 358: 7(ivec2) ImageRead 355 357 - Store 359(param) 358 - 360: 7(ivec2) FunctionCall 11(Fn1(vi2;) 359(param) - 361: 91 Load 93(g_tTex1du2) - 362: 73(ptr) AccessChain 61 51 - 363: 6(int) Load 362 - 364: 14(ivec2) ImageRead 361 363 - Store 365(param) 364 - 366: 14(ivec2) FunctionCall 18(Fn1(vu2;) 365(param) - 369: 2 FunctionCall 37(Fn2(vf2;) 368(param) - 370: 21(fvec2) Load 368(param) - Store 367(tempArg) 370 - 371: 69 Load 71(g_tTex1df2) - 372: 73(ptr) AccessChain 61 51 - 373: 6(int) Load 372 - 374: 21(fvec2) Load 367(tempArg) - ImageWrite 371 373 374 - 377: 2 FunctionCall 29(Fn2(vi2;) 376(param) - 378: 7(ivec2) Load 376(param) - Store 375(tempArg) 378 - 379: 83 Load 85(g_tTex1di2) - 380: 73(ptr) AccessChain 61 51 - 381: 6(int) Load 380 - 382: 7(ivec2) Load 375(tempArg) - ImageWrite 379 381 382 - 385: 2 FunctionCall 33(Fn2(vu2;) 384(param) - 386: 14(ivec2) Load 384(param) - Store 383(tempArg) 386 - 387: 91 Load 93(g_tTex1du2) - 388: 73(ptr) AccessChain 61 51 - 389: 6(int) Load 388 - 390: 14(ivec2) Load 383(tempArg) - ImageWrite 387 389 390 - 392: 73(ptr) AccessChain 61 51 - 393: 6(int) Load 392 - Store 391(coordTemp) 393 - 395: 69 Load 71(g_tTex1df2) - 396: 6(int) Load 391(coordTemp) - 397: 21(fvec2) ImageRead 395 396 - Store 394(storeTemp) 397 - 398: 21(fvec2) Load 394(storeTemp) - 400: 21(fvec2) CompositeConstruct 399 399 - 401: 21(fvec2) FAdd 398 400 - Store 394(storeTemp) 401 - 402: 69 Load 71(g_tTex1df2) - 403: 6(int) Load 391(coordTemp) - 404: 21(fvec2) Load 394(storeTemp) - ImageWrite 402 403 404 - 406: 73(ptr) AccessChain 61 51 - 407: 6(int) Load 406 - Store 405(coordTemp) 407 - 409: 83 Load 85(g_tTex1di2) - 410: 6(int) Load 405(coordTemp) - 411: 7(ivec2) ImageRead 409 410 - Store 408(storeTemp) 411 - 412: 7(ivec2) Load 408(storeTemp) - 413: 7(ivec2) CompositeConstruct 62 62 - 414: 7(ivec2) IAdd 412 413 - Store 408(storeTemp) 414 - 415: 83 Load 85(g_tTex1di2) - 416: 6(int) Load 405(coordTemp) - 417: 7(ivec2) Load 408(storeTemp) - ImageWrite 415 416 417 - 419: 73(ptr) AccessChain 61 51 - 420: 6(int) Load 419 - Store 418(coordTemp) 420 - 422: 91 Load 93(g_tTex1du2) - 423: 6(int) Load 418(coordTemp) - 424: 14(ivec2) ImageRead 422 423 - Store 421(storeTemp) 424 - 425: 14(ivec2) Load 421(storeTemp) - 426: 7(ivec2) CompositeConstruct 62 62 - 427: 14(ivec2) IAdd 425 426 - Store 421(storeTemp) 427 - 428: 91 Load 93(g_tTex1du2) - 429: 6(int) Load 418(coordTemp) - 430: 14(ivec2) Load 421(storeTemp) - ImageWrite 428 429 430 - 432: 73(ptr) AccessChain 61 51 - 433: 6(int) Load 432 - Store 431(coordTemp) 433 - 435: 69 Load 71(g_tTex1df2) - 436: 6(int) Load 431(coordTemp) - 437: 21(fvec2) ImageRead 435 436 - Store 434(storeTemp) 437 - 438: 21(fvec2) Load 434(storeTemp) - 439: 21(fvec2) CompositeConstruct 399 399 - 440: 21(fvec2) FSub 438 439 - Store 434(storeTemp) 440 - 441: 69 Load 71(g_tTex1df2) - 442: 6(int) Load 431(coordTemp) - 443: 21(fvec2) Load 434(storeTemp) - ImageWrite 441 442 443 - 445: 73(ptr) AccessChain 61 51 - 446: 6(int) Load 445 - Store 444(coordTemp) 446 - 448: 83 Load 85(g_tTex1di2) - 449: 6(int) Load 444(coordTemp) - 450: 7(ivec2) ImageRead 448 449 - Store 447(storeTemp) 450 - 451: 7(ivec2) Load 447(storeTemp) - 452: 7(ivec2) CompositeConstruct 62 62 - 453: 7(ivec2) ISub 451 452 - Store 447(storeTemp) 453 - 454: 83 Load 85(g_tTex1di2) - 455: 6(int) Load 444(coordTemp) - 456: 7(ivec2) Load 447(storeTemp) - ImageWrite 454 455 456 - 458: 73(ptr) AccessChain 61 51 - 459: 6(int) Load 458 - Store 457(coordTemp) 459 - 461: 91 Load 93(g_tTex1du2) - 462: 6(int) Load 457(coordTemp) - 463: 14(ivec2) ImageRead 461 462 - Store 460(storeTemp) 463 - 464: 14(ivec2) Load 460(storeTemp) - 465: 7(ivec2) CompositeConstruct 62 62 - 466: 14(ivec2) ISub 464 465 - Store 460(storeTemp) 466 - 467: 91 Load 93(g_tTex1du2) - 468: 6(int) Load 457(coordTemp) - 469: 14(ivec2) Load 460(storeTemp) - ImageWrite 467 468 469 - 471: 73(ptr) AccessChain 61 51 - 472: 6(int) Load 471 - Store 470(coordTemp) 472 - 474: 69 Load 71(g_tTex1df2) - 475: 6(int) Load 470(coordTemp) - 476: 21(fvec2) ImageRead 474 475 - Store 473(storeTempPre) 476 - 478: 21(fvec2) Load 473(storeTempPre) - Store 477(storeTempPost) 478 - 479: 21(fvec2) Load 477(storeTempPost) - 480: 21(fvec2) CompositeConstruct 399 399 - 481: 21(fvec2) FAdd 479 480 - Store 477(storeTempPost) 481 - 482: 69 Load 71(g_tTex1df2) - 483: 6(int) Load 470(coordTemp) - 484: 21(fvec2) Load 477(storeTempPost) - ImageWrite 482 483 484 - 486: 73(ptr) AccessChain 61 51 - 487: 6(int) Load 486 - Store 485(coordTemp) 487 - 489: 91 Load 93(g_tTex1du2) - 490: 6(int) Load 485(coordTemp) - 491: 14(ivec2) ImageRead 489 490 - Store 488(storeTempPre) 491 - 493: 14(ivec2) Load 488(storeTempPre) - Store 492(storeTempPost) 493 - 494: 14(ivec2) Load 492(storeTempPost) - 495: 7(ivec2) CompositeConstruct 62 62 - 496: 14(ivec2) ISub 494 495 - Store 492(storeTempPost) 496 - 497: 91 Load 93(g_tTex1du2) - 498: 6(int) Load 485(coordTemp) - 499: 14(ivec2) Load 492(storeTempPost) - ImageWrite 497 498 499 - 501: 73(ptr) AccessChain 61 51 - 502: 6(int) Load 501 - Store 500(coordTemp) 502 - 504: 83 Load 85(g_tTex1di2) - 505: 6(int) Load 500(coordTemp) - 506: 7(ivec2) ImageRead 504 505 - Store 503(storeTempPre) 506 - 508: 7(ivec2) Load 503(storeTempPre) - Store 507(storeTempPost) 508 - 509: 7(ivec2) Load 507(storeTempPost) - 510: 7(ivec2) CompositeConstruct 62 62 - 511: 7(ivec2) IAdd 509 510 - Store 507(storeTempPost) 511 - 512: 83 Load 85(g_tTex1di2) - 513: 6(int) Load 500(coordTemp) - 514: 7(ivec2) Load 507(storeTempPost) - ImageWrite 512 513 514 - 516: 73(ptr) AccessChain 61 51 - 517: 6(int) Load 516 - Store 515(coordTemp) 517 - 519: 69 Load 71(g_tTex1df2) - 520: 6(int) Load 515(coordTemp) - 521: 21(fvec2) ImageRead 519 520 - Store 518(storeTempPre) 521 - 523: 21(fvec2) Load 518(storeTempPre) - Store 522(storeTempPost) 523 - 524: 21(fvec2) Load 522(storeTempPost) - 525: 21(fvec2) CompositeConstruct 399 399 - 526: 21(fvec2) FSub 524 525 - Store 522(storeTempPost) 526 - 527: 69 Load 71(g_tTex1df2) - 528: 6(int) Load 515(coordTemp) - 529: 21(fvec2) Load 522(storeTempPost) - ImageWrite 527 528 529 - 531: 73(ptr) AccessChain 61 51 - 532: 6(int) Load 531 - Store 530(coordTemp) 532 - 534: 83 Load 85(g_tTex1di2) - 535: 6(int) Load 530(coordTemp) - 536: 7(ivec2) ImageRead 534 535 - Store 533(storeTempPre) 536 - 538: 7(ivec2) Load 533(storeTempPre) - Store 537(storeTempPost) 538 - 539: 7(ivec2) Load 537(storeTempPost) - 540: 7(ivec2) CompositeConstruct 62 62 - 541: 7(ivec2) IAdd 539 540 - Store 537(storeTempPost) 541 - 542: 83 Load 85(g_tTex1di2) - 543: 6(int) Load 530(coordTemp) - 544: 7(ivec2) Load 537(storeTempPost) - ImageWrite 542 543 544 - 546: 73(ptr) AccessChain 61 51 - 547: 6(int) Load 546 - Store 545(coordTemp) 547 - 549: 91 Load 93(g_tTex1du2) - 550: 6(int) Load 545(coordTemp) - 551: 14(ivec2) ImageRead 549 550 - Store 548(storeTempPre) 551 - 553: 14(ivec2) Load 548(storeTempPre) - Store 552(storeTempPost) 553 - 554: 14(ivec2) Load 552(storeTempPost) - 555: 7(ivec2) CompositeConstruct 62 62 - 556: 14(ivec2) ISub 554 555 - Store 552(storeTempPost) 556 - 557: 91 Load 93(g_tTex1du2) - 558: 6(int) Load 545(coordTemp) - 559: 14(ivec2) Load 552(storeTempPost) - ImageWrite 557 558 559 - 561: 99 Load 101(g_tTex2df2) - 564: 21(fvec2) ImageRead 561 563 - Store 560(storeTemp) 564 - 565: 69 Load 71(g_tTex1df2) - 566: 21(fvec2) Load 560(storeTemp) - ImageWrite 565 62 566 - 573: 572(ptr) AccessChain 570(psout) 51 - Store 573 571 - 576: 572(ptr) AccessChain 570(psout) 51 - 577: 567(fvec4) Load 576 - Store 575(Color) 577 + 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 - 42: 7(ivec2) Load 10(x) - ReturnValue 42 + 47: 7(ivec2) Load 10(x) + ReturnValue 47 FunctionEnd 18(Fn1(vu2;): 14(ivec2) Function None 16 17(x): 15(ptr) FunctionParameter 19: Label - 45: 14(ivec2) Load 17(x) - ReturnValue 45 + 50: 14(ivec2) Load 17(x) + ReturnValue 50 FunctionEnd 25(Fn1(vf2;): 21(fvec2) Function None 23 24(x): 22(ptr) FunctionParameter 26: Label - 48: 21(fvec2) Load 24(x) - ReturnValue 48 + 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) 52 + Store 28(x) 57 Return FunctionEnd 33(Fn2(vu2;): 2 Function None 31 32(x): 15(ptr) FunctionParameter 34: Label - Store 32(x) 54 + Store 32(x) 59 Return FunctionEnd 37(Fn2(vf2;): 2 Function None 35 36(x): 22(ptr) FunctionParameter 38: Label - Store 36(x) 56 + Store 36(x) 61 Return FunctionEnd 40(SomeValue(): 21(fvec2) Function None 39 41: Label - 64: 63(ptr) AccessChain 61 62 - 65: 7(ivec2) Load 64 - 66: 21(fvec2) ConvertSToF 65 - ReturnValue 66 + 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 index f223e4bf6b..92e3dd84e7 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -1,112 +1,113 @@ hlsl.sample.array.dx10.frag -Shader version: 450 +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 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: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: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: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: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: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: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: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: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: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 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: @@ -114,155 +115,162 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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: 450 +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 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: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: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: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: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: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: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: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: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: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 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: @@ -270,245 +278,264 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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): 80001 -// Id's are bound by 139 +// 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" 130 134 + EntryPoint Fragment 4 "main" 138 142 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 28 "txval11" - Name 31 "g_tTex1di4" - Name 42 "txval12" - Name 45 "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 "txval40" - Name 90 "g_tTexcdf4" - Name 97 "txval41" - Name 100 "g_tTexcdi4" - Name 107 "txval42" - Name 110 "g_tTexcdu4" - Name 120 "PS_OUTPUT" - MemberName 120(PS_OUTPUT) 0 "Color" - MemberName 120(PS_OUTPUT) 1 "Depth" - Name 122 "psout" - Name 130 "Color" - Name 134 "Depth" - Name 138 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 31(g_tTex1di4) DescriptorSet 0 - Decorate 45(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_tTexcdf4) DescriptorSet 0 - Decorate 100(g_tTexcdi4) DescriptorSet 0 - Decorate 110(g_tTexcdu4) DescriptorSet 0 - Decorate 130(Color) Location 0 - Decorate 134(Depth) BuiltIn FragDepth - Decorate 138(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 25: TypeInt 32 1 - 26: TypeVector 25(int) 4 - 27: TypePointer Function 26(ivec4) - 29: TypeImage 25(int) 1D array sampled format:Unknown - 30: TypePointer UniformConstant 29 - 31(g_tTex1di4): 30(ptr) Variable UniformConstant - 34: TypeSampledImage 29 - 36: 6(float) Constant 1050253722 - 37: 20(fvec2) ConstantComposite 22 36 - 39: TypeInt 32 0 - 40: TypeVector 39(int) 4 - 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) 1D array sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex1du4): 44(ptr) Variable UniformConstant - 48: TypeSampledImage 43 - 50: 6(float) Constant 1053609165 - 51: 20(fvec2) ConstantComposite 36 50 - 54: TypeImage 6(float) 2D array sampled format:Unknown - 55: TypePointer UniformConstant 54 - 56(g_tTex2df4): 55(ptr) Variable UniformConstant - 59: TypeSampledImage 54 - 61: TypeVector 6(float) 3 - 62: 61(fvec3) ConstantComposite 21 22 36 - 65: TypeImage 25(int) 2D array sampled format:Unknown - 66: TypePointer UniformConstant 65 - 67(g_tTex2di4): 66(ptr) Variable UniformConstant - 70: TypeSampledImage 65 - 72: 6(float) Constant 1056964608 - 73: 61(fvec3) ConstantComposite 36 50 72 - 76: TypeImage 39(int) 2D array sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex2du4): 77(ptr) Variable UniformConstant - 81: TypeSampledImage 76 - 83: 6(float) Constant 1058642330 - 84: 6(float) Constant 1060320051 - 85: 61(fvec3) ConstantComposite 72 83 84 - 88: TypeImage 6(float) Cube array sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTexcdf4): 89(ptr) Variable UniformConstant - 93: TypeSampledImage 88 - 95: 7(fvec4) ConstantComposite 21 22 36 50 - 98: TypeImage 25(int) Cube array sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTexcdi4): 99(ptr) Variable UniformConstant - 103: TypeSampledImage 98 - 105: 7(fvec4) ConstantComposite 50 72 83 84 - 108: TypeImage 39(int) Cube array sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTexcdu4): 109(ptr) Variable UniformConstant - 113: TypeSampledImage 108 - 115: 6(float) Constant 1061997773 - 116: 6(float) Constant 1063675494 - 117: 6(float) Constant 1065353216 - 118: 7(fvec4) ConstantComposite 84 115 116 117 - 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 121: TypePointer Function 120(PS_OUTPUT) - 123: 25(int) Constant 0 - 124: 7(fvec4) ConstantComposite 117 117 117 117 - 126: 25(int) Constant 1 - 127: TypePointer Function 6(float) - 129: TypePointer Output 7(fvec4) - 130(Color): 129(ptr) Variable Output - 133: TypePointer Output 6(float) - 134(Depth): 133(ptr) Variable Output -138(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 28(txval11): 27(ptr) Variable Function - 42(txval12): 41(ptr) Variable Function - 53(txval20): 8(ptr) Variable Function - 64(txval21): 27(ptr) Variable Function - 75(txval22): 41(ptr) Variable Function - 87(txval40): 8(ptr) Variable Function - 97(txval41): 27(ptr) Variable Function - 107(txval42): 41(ptr) Variable Function - 122(psout): 121(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 24: 7(fvec4) ImageSampleImplicitLod 19 23 - Store 9(txval10) 24 - 32: 29 Load 31(g_tTex1di4) - 33: 14 Load 16(g_sSamp) - 35: 34 SampledImage 32 33 - 38: 26(ivec4) ImageSampleImplicitLod 35 37 - Store 28(txval11) 38 - 46: 43 Load 45(g_tTex1du4) - 47: 14 Load 16(g_sSamp) - 49: 48 SampledImage 46 47 - 52: 40(ivec4) ImageSampleImplicitLod 49 51 - Store 42(txval12) 52 - 57: 54 Load 56(g_tTex2df4) - 58: 14 Load 16(g_sSamp) - 60: 59 SampledImage 57 58 - 63: 7(fvec4) ImageSampleImplicitLod 60 62 - Store 53(txval20) 63 - 68: 65 Load 67(g_tTex2di4) - 69: 14 Load 16(g_sSamp) - 71: 70 SampledImage 68 69 - 74: 26(ivec4) ImageSampleImplicitLod 71 73 - Store 64(txval21) 74 - 79: 76 Load 78(g_tTex2du4) - 80: 14 Load 16(g_sSamp) - 82: 81 SampledImage 79 80 - 86: 40(ivec4) ImageSampleImplicitLod 82 85 - Store 75(txval22) 86 - 91: 88 Load 90(g_tTexcdf4) - 92: 14 Load 16(g_sSamp) - 94: 93 SampledImage 91 92 - 96: 7(fvec4) ImageSampleImplicitLod 94 95 - Store 87(txval40) 96 - 101: 98 Load 100(g_tTexcdi4) - 102: 14 Load 16(g_sSamp) - 104: 103 SampledImage 101 102 - 106: 26(ivec4) ImageSampleImplicitLod 104 105 - Store 97(txval41) 106 - 111: 108 Load 110(g_tTexcdu4) - 112: 14 Load 16(g_sSamp) - 114: 113 SampledImage 111 112 - 119: 40(ivec4) ImageSampleImplicitLod 114 118 - Store 107(txval42) 119 - 125: 8(ptr) AccessChain 122(psout) 123 - Store 125 124 - 128: 127(ptr) AccessChain 122(psout) 126 - Store 128 117 - 131: 8(ptr) AccessChain 122(psout) 123 - 132: 7(fvec4) Load 131 - Store 130(Color) 132 - 135: 127(ptr) AccessChain 122(psout) 126 - 136: 6(float) Load 135 - Store 134(Depth) 136 +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 index a222125a82..b6915b6aa3 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -1,222 +1,223 @@ hlsl.sample.basic.dx10.frag WARNING: 0:4: 'immediate sampler state' : unimplemented -Shader version: 450 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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: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: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: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: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: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: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: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: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 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: @@ -224,268 +225,275 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:89 Sequence -0:89 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:89 Color: direct index for structure (temp 4-component vector of float) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:89 Constant: -0:89 0 (const int) -0:89 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:89 Depth: direct index for structure (temp float) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:89 Constant: -0:89 1 (const int) -0:89 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_sSamp2D_b' (uniform sampler) -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:? '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: 450 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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: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: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: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: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: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: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: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: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 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: @@ -493,343 +501,362 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:89 Sequence -0:89 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:89 Color: direct index for structure (temp 4-component vector of float) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:89 Constant: -0:89 0 (const int) -0:89 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:89 Depth: direct index for structure (temp float) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:89 Constant: -0:89 1 (const int) -0:89 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_sSamp2D_b' (uniform sampler) -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:? '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): 80001 -// Id's are bound by 191 +// 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" 180 184 + EntryPoint Fragment 4 "main" 188 192 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 7 "MemberTest" - MemberName 7(MemberTest) 0 "Sample" - MemberName 7(MemberTest) 1 "CalculateLevelOfDetail" - MemberName 7(MemberTest) 2 "CalculateLevelOfDetailUnclamped" - MemberName 7(MemberTest) 3 "Gather" - MemberName 7(MemberTest) 4 "GetDimensions" - MemberName 7(MemberTest) 5 "GetSamplePosition" - MemberName 7(MemberTest) 6 "Load" - MemberName 7(MemberTest) 7 "SampleBias" - MemberName 7(MemberTest) 8 "SampleCmp" - MemberName 7(MemberTest) 9 "SampleCmpLevelZero" - MemberName 7(MemberTest) 10 "SampleGrad" - MemberName 7(MemberTest) 11 "SampleLevel" - Name 9 "mtest" - Name 38 "txval10" - Name 41 "g_tTex1df4" - Name 45 "g_sSamp" - Name 53 "txval11" - Name 56 "g_tTex1di4" - Name 66 "txval12" - Name 69 "g_tTex1du4" - Name 76 "txval20" - Name 79 "g_tTex2df4" - Name 87 "txval21" - Name 90 "g_tTex2di4" - Name 98 "txval22" - Name 101 "g_tTex2du4" - Name 110 "txval30" - Name 113 "g_tTex3df4" - Name 121 "txval31" - Name 124 "g_tTex3di4" - Name 131 "txval32" - Name 134 "g_tTex3du4" - Name 144 "txval40" - Name 147 "g_tTexcdf4" - Name 153 "txval41" - Name 156 "g_tTexcdi4" - Name 162 "txval42" - Name 165 "g_tTexcdu4" - Name 171 "PS_OUTPUT" - MemberName 171(PS_OUTPUT) 0 "Color" - MemberName 171(PS_OUTPUT) 1 "Depth" - Name 173 "psout" - Name 180 "Color" - Name 184 "Depth" - Name 188 "g_sSamp2d" - Name 189 "g_sSamp2D_b" - Name 190 "g_tTex1df4a" - Decorate 41(g_tTex1df4) DescriptorSet 0 - Decorate 41(g_tTex1df4) Binding 0 - Decorate 45(g_sSamp) DescriptorSet 0 - Decorate 45(g_sSamp) Binding 0 - Decorate 56(g_tTex1di4) DescriptorSet 0 - Decorate 69(g_tTex1du4) DescriptorSet 0 - Decorate 79(g_tTex2df4) DescriptorSet 0 - Decorate 90(g_tTex2di4) DescriptorSet 0 - Decorate 101(g_tTex2du4) DescriptorSet 0 - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 124(g_tTex3di4) DescriptorSet 0 - Decorate 134(g_tTex3du4) DescriptorSet 0 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 156(g_tTexcdi4) DescriptorSet 0 - Decorate 165(g_tTexcdu4) DescriptorSet 0 - Decorate 180(Color) Location 0 - Decorate 184(Depth) BuiltIn FragDepth - Decorate 188(g_sSamp2d) DescriptorSet 0 - Decorate 189(g_sSamp2D_b) DescriptorSet 0 - Decorate 190(g_tTex1df4a) DescriptorSet 0 - Decorate 190(g_tTex1df4a) Binding 1 + 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: TypeInt 32 1 - 7(MemberTest): TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) - 8: TypePointer Function 7(MemberTest) - 10: 6(int) Constant 1 - 11: TypePointer Function 6(int) - 13: 6(int) Constant 2 - 15: 6(int) Constant 3 - 17: 6(int) Constant 4 - 19: 6(int) Constant 5 - 21: 6(int) Constant 6 - 23: 6(int) Constant 0 - 25: 6(int) Constant 7 - 27: 6(int) Constant 8 - 29: 6(int) Constant 9 - 31: 6(int) Constant 10 - 33: 6(int) Constant 11 - 35: TypeFloat 32 - 36: TypeVector 35(float) 4 - 37: TypePointer Function 36(fvec4) - 39: TypeImage 35(float) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1df4): 40(ptr) Variable UniformConstant - 43: TypeSampler + 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_sSamp): 44(ptr) Variable UniformConstant - 47: TypeSampledImage 39 - 49: 35(float) Constant 1036831949 - 51: TypeVector 6(int) 4 - 52: TypePointer Function 51(ivec4) - 54: TypeImage 6(int) 1D sampled format:Unknown - 55: TypePointer UniformConstant 54 - 56(g_tTex1di4): 55(ptr) Variable UniformConstant - 59: TypeSampledImage 54 - 61: 35(float) Constant 1045220557 - 63: TypeInt 32 0 - 64: TypeVector 63(int) 4 - 65: TypePointer Function 64(ivec4) - 67: TypeImage 63(int) 1D sampled format:Unknown - 68: TypePointer UniformConstant 67 - 69(g_tTex1du4): 68(ptr) Variable UniformConstant - 72: TypeSampledImage 67 - 74: 35(float) Constant 1050253722 - 77: TypeImage 35(float) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2df4): 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: TypeVector 35(float) 2 - 85: 84(fvec2) ConstantComposite 49 61 - 88: TypeImage 6(int) 2D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex2di4): 89(ptr) Variable UniformConstant - 93: TypeSampledImage 88 - 95: 35(float) Constant 1053609165 - 96: 84(fvec2) ConstantComposite 74 95 - 99: TypeImage 63(int) 2D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex2du4): 100(ptr) Variable UniformConstant - 104: TypeSampledImage 99 - 106: 35(float) Constant 1056964608 - 107: 35(float) Constant 1058642330 - 108: 84(fvec2) ConstantComposite 106 107 - 111: TypeImage 35(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 116: TypeSampledImage 111 - 118: TypeVector 35(float) 3 - 119: 118(fvec3) ConstantComposite 49 61 74 - 122: TypeImage 6(int) 3D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex3di4): 123(ptr) Variable UniformConstant - 127: TypeSampledImage 122 - 129: 118(fvec3) ConstantComposite 95 106 107 - 132: TypeImage 63(int) 3D sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTex3du4): 133(ptr) Variable UniformConstant - 137: TypeSampledImage 132 - 139: 35(float) Constant 1060320051 - 140: 35(float) Constant 1061997773 - 141: 35(float) Constant 1063675494 - 142: 118(fvec3) ConstantComposite 139 140 141 - 145: TypeImage 35(float) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 150: TypeSampledImage 145 - 154: TypeImage 6(int) Cube sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTexcdi4): 155(ptr) Variable UniformConstant - 159: TypeSampledImage 154 - 163: TypeImage 63(int) Cube sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTexcdu4): 164(ptr) Variable UniformConstant - 168: TypeSampledImage 163 - 171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) - 172: TypePointer Function 171(PS_OUTPUT) - 174: 35(float) Constant 1065353216 - 175: 36(fvec4) ConstantComposite 174 174 174 174 - 177: TypePointer Function 35(float) - 179: TypePointer Output 36(fvec4) - 180(Color): 179(ptr) Variable Output - 183: TypePointer Output 35(float) - 184(Depth): 183(ptr) Variable Output - 188(g_sSamp2d): 44(ptr) Variable UniformConstant -189(g_sSamp2D_b): 44(ptr) Variable UniformConstant -190(g_tTex1df4a): 40(ptr) Variable UniformConstant + 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 - 9(mtest): 8(ptr) Variable Function - 38(txval10): 37(ptr) Variable Function - 53(txval11): 52(ptr) Variable Function - 66(txval12): 65(ptr) Variable Function - 76(txval20): 37(ptr) Variable Function - 87(txval21): 52(ptr) Variable Function - 98(txval22): 65(ptr) Variable Function - 110(txval30): 37(ptr) Variable Function - 121(txval31): 52(ptr) Variable Function - 131(txval32): 65(ptr) Variable Function - 144(txval40): 37(ptr) Variable Function - 153(txval41): 52(ptr) Variable Function - 162(txval42): 65(ptr) Variable Function - 173(psout): 172(ptr) Variable Function - 12: 11(ptr) AccessChain 9(mtest) 10 - Store 12 10 - 14: 11(ptr) AccessChain 9(mtest) 13 - Store 14 10 - 16: 11(ptr) AccessChain 9(mtest) 15 - Store 16 10 - 18: 11(ptr) AccessChain 9(mtest) 17 - Store 18 10 - 20: 11(ptr) AccessChain 9(mtest) 19 - Store 20 10 - 22: 11(ptr) AccessChain 9(mtest) 21 - Store 22 10 - 24: 11(ptr) AccessChain 9(mtest) 23 - Store 24 10 - 26: 11(ptr) AccessChain 9(mtest) 25 - Store 26 10 - 28: 11(ptr) AccessChain 9(mtest) 27 - Store 28 10 - 30: 11(ptr) AccessChain 9(mtest) 29 - Store 30 10 - 32: 11(ptr) AccessChain 9(mtest) 31 - Store 32 10 - 34: 11(ptr) AccessChain 9(mtest) 33 - Store 34 10 - 42: 39 Load 41(g_tTex1df4) - 46: 43 Load 45(g_sSamp) - 48: 47 SampledImage 42 46 - 50: 36(fvec4) ImageSampleImplicitLod 48 49 - Store 38(txval10) 50 - 57: 54 Load 56(g_tTex1di4) - 58: 43 Load 45(g_sSamp) - 60: 59 SampledImage 57 58 - 62: 51(ivec4) ImageSampleImplicitLod 60 61 - Store 53(txval11) 62 - 70: 67 Load 69(g_tTex1du4) - 71: 43 Load 45(g_sSamp) - 73: 72 SampledImage 70 71 - 75: 64(ivec4) ImageSampleImplicitLod 73 74 - Store 66(txval12) 75 - 80: 77 Load 79(g_tTex2df4) - 81: 43 Load 45(g_sSamp) - 83: 82 SampledImage 80 81 - 86: 36(fvec4) ImageSampleImplicitLod 83 85 - Store 76(txval20) 86 - 91: 88 Load 90(g_tTex2di4) - 92: 43 Load 45(g_sSamp) - 94: 93 SampledImage 91 92 - 97: 51(ivec4) ImageSampleImplicitLod 94 96 - Store 87(txval21) 97 - 102: 99 Load 101(g_tTex2du4) - 103: 43 Load 45(g_sSamp) - 105: 104 SampledImage 102 103 - 109: 64(ivec4) ImageSampleImplicitLod 105 108 - Store 98(txval22) 109 - 114: 111 Load 113(g_tTex3df4) - 115: 43 Load 45(g_sSamp) - 117: 116 SampledImage 114 115 - 120: 36(fvec4) ImageSampleImplicitLod 117 119 - Store 110(txval30) 120 - 125: 122 Load 124(g_tTex3di4) - 126: 43 Load 45(g_sSamp) - 128: 127 SampledImage 125 126 - 130: 51(ivec4) ImageSampleImplicitLod 128 129 - Store 121(txval31) 130 - 135: 132 Load 134(g_tTex3du4) - 136: 43 Load 45(g_sSamp) - 138: 137 SampledImage 135 136 - 143: 64(ivec4) ImageSampleImplicitLod 138 142 - Store 131(txval32) 143 - 148: 145 Load 147(g_tTexcdf4) - 149: 43 Load 45(g_sSamp) - 151: 150 SampledImage 148 149 - 152: 36(fvec4) ImageSampleImplicitLod 151 119 - Store 144(txval40) 152 - 157: 154 Load 156(g_tTexcdi4) - 158: 43 Load 45(g_sSamp) - 160: 159 SampledImage 157 158 - 161: 51(ivec4) ImageSampleImplicitLod 160 129 - Store 153(txval41) 161 - 166: 163 Load 165(g_tTexcdu4) - 167: 43 Load 45(g_sSamp) - 169: 168 SampledImage 166 167 - 170: 64(ivec4) ImageSampleImplicitLod 169 142 - Store 162(txval42) 170 - 176: 37(ptr) AccessChain 173(psout) 23 - Store 176 175 - 178: 177(ptr) AccessChain 173(psout) 10 - Store 178 174 - 181: 37(ptr) AccessChain 173(psout) 23 - 182: 36(fvec4) Load 181 - Store 180(Color) 182 - 185: 177(ptr) AccessChain 173(psout) 10 - 186: 35(float) Load 185 - Store 184(Depth) 186 +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 index a148a86ed7..bd199a3957 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -1,50 +1,51 @@ hlsl.sample.offset.dx10.frag -Shader version: 450 +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 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 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 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 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: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 @@ -52,12 +53,12 @@ gl_FragCoord origin is upper left 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: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 @@ -65,12 +66,12 @@ gl_FragCoord origin is upper left 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: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 @@ -78,12 +79,12 @@ gl_FragCoord origin is upper left 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: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 @@ -93,12 +94,12 @@ gl_FragCoord origin is upper left 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: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 @@ -108,12 +109,12 @@ gl_FragCoord origin is upper left 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: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 @@ -122,9 +123,9 @@ gl_FragCoord origin is upper left 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 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: @@ -132,96 +133,103 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +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 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 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 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 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: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 @@ -229,12 +237,12 @@ gl_FragCoord origin is upper left 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: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 @@ -242,12 +250,12 @@ gl_FragCoord origin is upper left 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: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 @@ -255,12 +263,12 @@ gl_FragCoord origin is upper left 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: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 @@ -270,12 +278,12 @@ gl_FragCoord origin is upper left 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: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 @@ -285,12 +293,12 @@ gl_FragCoord origin is upper left 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: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 @@ -299,9 +307,9 @@ gl_FragCoord origin is upper left 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 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: @@ -309,268 +317,287 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 154 +// 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" 136 140 + EntryPoint Fragment 4 "main" 144 148 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 26 "txval11" - Name 29 "g_tTex1di4" - Name 39 "txval12" - Name 42 "g_tTex1du4" - Name 49 "txval20" - Name 52 "g_tTex2df4" - Name 63 "txval21" - Name 66 "g_tTex2di4" - Name 75 "txval22" - Name 78 "g_tTex2du4" - Name 89 "txval30" - Name 92 "g_tTex3df4" - Name 102 "txval31" - Name 105 "g_tTex3di4" - Name 113 "txval32" - Name 116 "g_tTex3du4" - Name 127 "PS_OUTPUT" - MemberName 127(PS_OUTPUT) 0 "Color" - MemberName 127(PS_OUTPUT) 1 "Depth" - Name 129 "psout" - Name 136 "Color" - Name 140 "Depth" - Name 144 "g_tTex1df4a" - Name 147 "g_tTexcdf4" - Name 150 "g_tTexcdi4" - Name 153 "g_tTexcdu4" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 66(g_tTex2di4) DescriptorSet 0 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 92(g_tTex3df4) DescriptorSet 0 - Decorate 105(g_tTex3di4) DescriptorSet 0 - Decorate 116(g_tTex3du4) DescriptorSet 0 - Decorate 136(Color) Location 0 - Decorate 140(Depth) BuiltIn FragDepth - Decorate 144(g_tTex1df4a) DescriptorSet 0 - Decorate 144(g_tTex1df4a) Binding 1 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 150(g_tTexcdi4) DescriptorSet 0 - Decorate 153(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: TypeInt 32 1 - 22: 21(int) Constant 1 - 24: TypeVector 21(int) 4 - 25: TypePointer Function 24(ivec4) - 27: TypeImage 21(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeSampledImage 27 - 34: 6(float) Constant 1045220557 - 36: TypeInt 32 0 - 37: TypeVector 36(int) 4 - 38: TypePointer Function 37(ivec4) - 40: TypeImage 36(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 45: TypeSampledImage 40 - 47: 6(float) Constant 1050253722 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeSampledImage 50 - 57: TypeVector 6(float) 2 - 58: 57(fvec2) ConstantComposite 20 34 - 59: TypeVector 21(int) 2 - 60: 21(int) Constant 0 - 61: 59(ivec2) ConstantComposite 22 60 - 64: TypeImage 21(int) 2D sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4): 65(ptr) Variable UniformConstant - 69: TypeSampledImage 64 - 71: 6(float) Constant 1053609165 - 72: 57(fvec2) ConstantComposite 47 71 - 73: 59(ivec2) ConstantComposite 22 22 - 76: TypeImage 36(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: 57(fvec2) ConstantComposite 83 84 - 86: 21(int) Constant 4294967295 - 87: 59(ivec2) ConstantComposite 22 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 20 34 47 - 99: TypeVector 21(int) 3 - 100: 99(ivec3) ConstantComposite 22 60 22 - 103: TypeImage 21(int) 3D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex3di4): 104(ptr) Variable UniformConstant - 108: TypeSampledImage 103 - 110: 97(fvec3) ConstantComposite 71 83 84 - 111: 99(ivec3) ConstantComposite 22 22 22 - 114: TypeImage 36(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3du4): 115(ptr) Variable UniformConstant - 119: TypeSampledImage 114 - 121: 6(float) Constant 1060320051 - 122: 6(float) Constant 1061997773 - 123: 6(float) Constant 1063675494 - 124: 97(fvec3) ConstantComposite 121 122 123 - 125: 99(ivec3) ConstantComposite 22 60 86 - 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 128: TypePointer Function 127(PS_OUTPUT) - 130: 6(float) Constant 1065353216 - 131: 7(fvec4) ConstantComposite 130 130 130 130 - 133: TypePointer Function 6(float) - 135: TypePointer Output 7(fvec4) - 136(Color): 135(ptr) Variable Output - 139: TypePointer Output 6(float) - 140(Depth): 139(ptr) Variable Output -144(g_tTex1df4a): 11(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 148: TypeImage 21(int) Cube sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTexcdi4): 149(ptr) Variable UniformConstant - 151: TypeImage 36(int) Cube sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTexcdu4): 152(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 26(txval11): 25(ptr) Variable Function - 39(txval12): 38(ptr) Variable Function - 49(txval20): 8(ptr) Variable Function - 63(txval21): 25(ptr) Variable Function - 75(txval22): 38(ptr) Variable Function - 89(txval30): 8(ptr) Variable Function - 102(txval31): 25(ptr) Variable Function - 113(txval32): 38(ptr) Variable Function - 129(psout): 128(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 23: 7(fvec4) ImageSampleImplicitLod 19 20 ConstOffset 22 - Store 9(txval10) 23 - 30: 27 Load 29(g_tTex1di4) - 31: 14 Load 16(g_sSamp) - 33: 32 SampledImage 30 31 - 35: 24(ivec4) ImageSampleImplicitLod 33 34 ConstOffset 22 - Store 26(txval11) 35 - 43: 40 Load 42(g_tTex1du4) - 44: 14 Load 16(g_sSamp) - 46: 45 SampledImage 43 44 - 48: 37(ivec4) ImageSampleImplicitLod 46 47 ConstOffset 22 - Store 39(txval12) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 14 Load 16(g_sSamp) - 56: 55 SampledImage 53 54 - 62: 7(fvec4) ImageSampleImplicitLod 56 58 ConstOffset 61 - Store 49(txval20) 62 - 67: 64 Load 66(g_tTex2di4) - 68: 14 Load 16(g_sSamp) - 70: 69 SampledImage 67 68 - 74: 24(ivec4) ImageSampleImplicitLod 70 72 ConstOffset 73 - Store 63(txval21) 74 - 79: 76 Load 78(g_tTex2du4) - 80: 14 Load 16(g_sSamp) - 82: 81 SampledImage 79 80 - 88: 37(ivec4) ImageSampleImplicitLod 82 85 ConstOffset 87 - Store 75(txval22) 88 - 93: 90 Load 92(g_tTex3df4) - 94: 14 Load 16(g_sSamp) - 96: 95 SampledImage 93 94 - 101: 7(fvec4) ImageSampleImplicitLod 96 98 ConstOffset 100 - Store 89(txval30) 101 - 106: 103 Load 105(g_tTex3di4) - 107: 14 Load 16(g_sSamp) - 109: 108 SampledImage 106 107 - 112: 24(ivec4) ImageSampleImplicitLod 109 110 ConstOffset 111 - Store 102(txval31) 112 - 117: 114 Load 116(g_tTex3du4) - 118: 14 Load 16(g_sSamp) - 120: 119 SampledImage 117 118 - 126: 37(ivec4) ImageSampleImplicitLod 120 124 ConstOffset 125 - Store 113(txval32) 126 - 132: 8(ptr) AccessChain 129(psout) 60 - Store 132 131 - 134: 133(ptr) AccessChain 129(psout) 22 - Store 134 130 - 137: 8(ptr) AccessChain 129(psout) 60 - 138: 7(fvec4) Load 137 - Store 136(Color) 138 - 141: 133(ptr) AccessChain 129(psout) 22 - 142: 6(float) Load 141 - Store 140(Depth) 142 +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 index abdf03270f..065cef0585 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -1,53 +1,54 @@ hlsl.sample.offsetarray.dx10.frag -Shader version: 450 +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 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: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: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: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: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 @@ -56,12 +57,12 @@ gl_FragCoord origin is upper left 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: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 @@ -70,12 +71,12 @@ gl_FragCoord origin is upper left 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: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 @@ -83,9 +84,9 @@ gl_FragCoord origin is upper left 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 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: @@ -93,93 +94,100 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:36 Sequence -0:36 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:36 Constant: -0:36 0 (const int) -0:36 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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: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: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: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: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 @@ -188,12 +196,12 @@ gl_FragCoord origin is upper left 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: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 @@ -202,12 +210,12 @@ gl_FragCoord origin is upper left 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: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 @@ -215,9 +223,9 @@ gl_FragCoord origin is upper left 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 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: @@ -225,201 +233,220 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:36 Sequence -0:36 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:36 Constant: -0:36 0 (const int) -0:36 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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): 80001 -// Id's are bound by 111 +// 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" 102 106 + EntryPoint Fragment 4 "main" 110 114 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 29 "txval11" - Name 32 "g_tTex1di4" - Name 44 "txval12" - Name 47 "g_tTex1du4" - Name 56 "txval20" - Name 59 "g_tTex2df4" - Name 69 "txval21" - Name 72 "g_tTex2di4" - Name 80 "txval22" - Name 83 "g_tTex2du4" - Name 93 "PS_OUTPUT" - MemberName 93(PS_OUTPUT) 0 "Color" - MemberName 93(PS_OUTPUT) 1 "Depth" - Name 95 "psout" - Name 102 "Color" - Name 106 "Depth" - Name 110 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex1di4) DescriptorSet 0 - Decorate 47(g_tTex1du4) DescriptorSet 0 - Decorate 59(g_tTex2df4) DescriptorSet 0 - Decorate 72(g_tTex2di4) DescriptorSet 0 - Decorate 83(g_tTex2du4) DescriptorSet 0 - Decorate 102(Color) Location 0 - Decorate 106(Depth) BuiltIn FragDepth - Decorate 110(g_tTex1df4a) DescriptorSet 0 - Decorate 110(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypeVector 24(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 24(int) 1D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 37: 6(float) Constant 1050253722 - 38: 20(fvec2) ConstantComposite 22 37 - 39: 24(int) Constant 1 - 41: TypeInt 32 0 - 42: TypeVector 41(int) 4 - 43: TypePointer Function 42(ivec4) - 45: TypeImage 41(int) 1D array sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex1du4): 46(ptr) Variable UniformConstant - 50: TypeSampledImage 45 - 52: 6(float) Constant 1053609165 - 53: 20(fvec2) ConstantComposite 37 52 - 54: 24(int) Constant 2 - 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: 64(fvec3) ConstantComposite 21 22 37 - 66: TypeVector 24(int) 2 - 67: 66(ivec2) ConstantComposite 25 25 - 70: TypeImage 24(int) 2D array sampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(g_tTex2di4): 71(ptr) Variable UniformConstant - 75: TypeSampledImage 70 - 77: 6(float) Constant 1056964608 - 78: 64(fvec3) ConstantComposite 37 52 77 - 81: TypeImage 41(int) 2D array sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex2du4): 82(ptr) Variable UniformConstant - 86: TypeSampledImage 81 - 88: 6(float) Constant 1058642330 - 89: 6(float) Constant 1060320051 - 90: 64(fvec3) ConstantComposite 77 88 89 - 91: 66(ivec2) ConstantComposite 25 39 - 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 94: TypePointer Function 93(PS_OUTPUT) - 96: 6(float) Constant 1065353216 - 97: 7(fvec4) ConstantComposite 96 96 96 96 - 99: TypePointer Function 6(float) - 101: TypePointer Output 7(fvec4) - 102(Color): 101(ptr) Variable Output - 105: TypePointer Output 6(float) - 106(Depth): 105(ptr) Variable Output -110(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 29(txval11): 28(ptr) Variable Function - 44(txval12): 43(ptr) Variable Function - 56(txval20): 8(ptr) Variable Function - 69(txval21): 28(ptr) Variable Function - 80(txval22): 43(ptr) Variable Function - 95(psout): 94(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 26: 7(fvec4) ImageSampleImplicitLod 19 23 ConstOffset 25 - Store 9(txval10) 26 - 33: 30 Load 32(g_tTex1di4) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 40: 27(ivec4) ImageSampleImplicitLod 36 38 ConstOffset 39 - Store 29(txval11) 40 - 48: 45 Load 47(g_tTex1du4) - 49: 14 Load 16(g_sSamp) - 51: 50 SampledImage 48 49 - 55: 42(ivec4) ImageSampleImplicitLod 51 53 ConstOffset 54 - Store 44(txval12) 55 - 60: 57 Load 59(g_tTex2df4) - 61: 14 Load 16(g_sSamp) - 63: 62 SampledImage 60 61 - 68: 7(fvec4) ImageSampleImplicitLod 63 65 ConstOffset 67 - Store 56(txval20) 68 - 73: 70 Load 72(g_tTex2di4) - 74: 14 Load 16(g_sSamp) - 76: 75 SampledImage 73 74 - 79: 27(ivec4) ImageSampleImplicitLod 76 78 ConstOffset 67 - Store 69(txval21) 79 - 84: 81 Load 83(g_tTex2du4) - 85: 14 Load 16(g_sSamp) - 87: 86 SampledImage 84 85 - 92: 42(ivec4) ImageSampleImplicitLod 87 90 ConstOffset 91 - Store 80(txval22) 92 - 98: 8(ptr) AccessChain 95(psout) 25 - Store 98 97 - 100: 99(ptr) AccessChain 95(psout) 39 - Store 100 96 - 103: 8(ptr) AccessChain 95(psout) 25 - 104: 7(fvec4) Load 103 - Store 102(Color) 104 - 107: 99(ptr) AccessChain 95(psout) 39 - 108: 6(float) Load 107 - Store 106(Depth) 108 +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 index bfbad5c207..f24415a982 100644 --- 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 @@ -1,52 +1,52 @@ hlsl.sample.sub-vec4.dx10.frag -Shader version: 450 +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 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 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 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 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 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 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: @@ -54,75 +54,78 @@ gl_FragCoord origin is upper left 0:22 1.000000 0:22 1.000000 0:22 1.000000 -0:23 Sequence -0:23 Sequence -0:23 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:23 Color: direct index for structure (temp 4-component vector of float) -0:23 'psout' (temp structure{temp 4-component vector of float Color}) -0:23 Constant: -0:23 0 (const int) -0:23 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df1' (uniform texture1D) -0:? 'g_tTex1df2' (uniform texture1D) -0:? 'g_tTex1df3' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +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: 450 +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 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 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 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 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 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 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: @@ -130,123 +133,134 @@ gl_FragCoord origin is upper left 0:22 1.000000 0:22 1.000000 0:22 1.000000 -0:23 Sequence -0:23 Sequence -0:23 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:23 Color: direct index for structure (temp 4-component vector of float) -0:23 'psout' (temp structure{temp 4-component vector of float Color}) -0:23 Constant: -0:23 0 (const int) -0:23 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df1' (uniform texture1D) -0:? 'g_tTex1df2' (uniform texture1D) -0:? 'g_tTex1df3' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +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): 80001 -// Id's are bound by 67 +// 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" 63 + EntryPoint Fragment 4 "main" 69 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "txval10" - Name 11 "g_tTex1df1" - Name 15 "g_sSamp" - Name 25 "txval11" - Name 26 "g_tTex1df2" - Name 37 "txval12" - Name 38 "g_tTex1df3" - Name 48 "txval13" - Name 49 "g_tTex1df4" - Name 54 "PS_OUTPUT" - MemberName 54(PS_OUTPUT) 0 "Color" - Name 56 "psout" - Name 63 "Color" - Decorate 11(g_tTex1df1) DescriptorSet 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 26(g_tTex1df2) DescriptorSet 0 - Decorate 38(g_tTex1df3) DescriptorSet 0 - Decorate 49(g_tTex1df4) DescriptorSet 0 - Decorate 63(Color) Location 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df1): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeSampledImage 9 - 19: 6(float) Constant 1036831949 - 20: TypeVector 6(float) 4 - 23: TypeVector 6(float) 2 - 24: TypePointer Function 23(fvec2) - 26(g_tTex1df2): 10(ptr) Variable UniformConstant - 30: 6(float) Constant 1045220557 - 35: TypeVector 6(float) 3 - 36: TypePointer Function 35(fvec3) - 38(g_tTex1df3): 10(ptr) Variable UniformConstant - 47: TypePointer Function 20(fvec4) - 49(g_tTex1df4): 10(ptr) Variable UniformConstant - 54(PS_OUTPUT): TypeStruct 20(fvec4) - 55: TypePointer Function 54(PS_OUTPUT) - 57: TypeInt 32 1 - 58: 57(int) Constant 0 - 59: 6(float) Constant 1065353216 - 60: 20(fvec4) ConstantComposite 59 59 59 59 - 62: TypePointer Output 20(fvec4) - 63(Color): 62(ptr) Variable Output + 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 - 8(txval10): 7(ptr) Variable Function - 25(txval11): 24(ptr) Variable Function - 37(txval12): 36(ptr) Variable Function - 48(txval13): 47(ptr) Variable Function - 56(psout): 55(ptr) Variable Function - 12: 9 Load 11(g_tTex1df1) - 16: 13 Load 15(g_sSamp) - 18: 17 SampledImage 12 16 - 21: 20(fvec4) ImageSampleImplicitLod 18 19 - 22: 6(float) CompositeExtract 21 0 - Store 8(txval10) 22 - 27: 9 Load 26(g_tTex1df2) - 28: 13 Load 15(g_sSamp) - 29: 17 SampledImage 27 28 - 31: 20(fvec4) ImageSampleImplicitLod 29 30 - 32: 6(float) CompositeExtract 31 0 - 33: 6(float) CompositeExtract 31 1 - 34: 23(fvec2) CompositeConstruct 32 33 - Store 25(txval11) 34 - 39: 9 Load 38(g_tTex1df3) - 40: 13 Load 15(g_sSamp) - 41: 17 SampledImage 39 40 - 42: 20(fvec4) ImageSampleImplicitLod 41 30 - 43: 6(float) CompositeExtract 42 0 - 44: 6(float) CompositeExtract 42 1 - 45: 6(float) CompositeExtract 42 2 - 46: 35(fvec3) CompositeConstruct 43 44 45 - Store 37(txval12) 46 - 50: 9 Load 49(g_tTex1df4) - 51: 13 Load 15(g_sSamp) - 52: 17 SampledImage 50 51 - 53: 20(fvec4) ImageSampleImplicitLod 52 30 - Store 48(txval13) 53 - 61: 47(ptr) AccessChain 56(psout) 58 - Store 61 60 - 64: 47(ptr) AccessChain 56(psout) 58 - 65: 20(fvec4) Load 64 - Store 63(Color) 65 + 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 index 05ac32a507..a6fc0a5a2b 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -1,53 +1,54 @@ hlsl.samplebias.array.dx10.frag -Shader version: 450 +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 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: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: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: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: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 @@ -55,12 +56,12 @@ gl_FragCoord origin is upper left 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: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 @@ -68,12 +69,12 @@ gl_FragCoord origin is upper left 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: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 @@ -81,12 +82,12 @@ gl_FragCoord origin is upper left 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: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 @@ -95,12 +96,12 @@ gl_FragCoord origin is upper left 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: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 @@ -109,12 +110,12 @@ gl_FragCoord origin is upper left 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: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 @@ -122,9 +123,9 @@ gl_FragCoord origin is upper left 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 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: @@ -132,96 +133,103 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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: 450 +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 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: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: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: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: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 @@ -229,12 +237,12 @@ gl_FragCoord origin is upper left 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: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 @@ -242,12 +250,12 @@ gl_FragCoord origin is upper left 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: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 @@ -255,12 +263,12 @@ gl_FragCoord origin is upper left 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: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 @@ -269,12 +277,12 @@ gl_FragCoord origin is upper left 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: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 @@ -283,12 +291,12 @@ gl_FragCoord origin is upper left 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: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 @@ -296,9 +304,9 @@ gl_FragCoord origin is upper left 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 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: @@ -306,245 +314,264 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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): 80001 -// Id's are bound by 139 +// 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" 130 134 + EntryPoint Fragment 4 "main" 138 142 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 29 "txval11" - Name 32 "g_tTex1di4" - Name 43 "txval12" - Name 46 "g_tTex1du4" - Name 54 "txval20" - Name 57 "g_tTex2df4" - Name 65 "txval21" - Name 68 "g_tTex2di4" - Name 75 "txval22" - Name 78 "g_tTex2du4" - Name 87 "txval40" - Name 90 "g_tTexcdf4" - Name 97 "txval41" - Name 100 "g_tTexcdi4" - Name 107 "txval42" - Name 110 "g_tTexcdu4" - Name 120 "PS_OUTPUT" - MemberName 120(PS_OUTPUT) 0 "Color" - MemberName 120(PS_OUTPUT) 1 "Depth" - Name 122 "psout" - Name 130 "Color" - Name 134 "Depth" - Name 138 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex1di4) DescriptorSet 0 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 68(g_tTex2di4) DescriptorSet 0 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 90(g_tTexcdf4) DescriptorSet 0 - Decorate 100(g_tTexcdi4) DescriptorSet 0 - Decorate 110(g_tTexcdu4) DescriptorSet 0 - Decorate 130(Color) Location 0 - Decorate 134(Depth) BuiltIn FragDepth - Decorate 138(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1056964608 - 26: TypeInt 32 1 - 27: TypeVector 26(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 26(int) 1D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 37: 6(float) Constant 1050253722 - 38: 20(fvec2) ConstantComposite 22 37 - 40: TypeInt 32 0 - 41: TypeVector 40(int) 4 - 42: TypePointer Function 41(ivec4) - 44: TypeImage 40(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4): 45(ptr) Variable UniformConstant - 49: TypeSampledImage 44 - 51: 6(float) Constant 1053609165 - 52: 20(fvec2) ConstantComposite 37 51 - 55: TypeImage 6(float) 2D array sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex2df4): 56(ptr) Variable UniformConstant - 60: TypeSampledImage 55 - 62: TypeVector 6(float) 3 - 63: 62(fvec3) ConstantComposite 21 22 37 - 66: TypeImage 26(int) 2D array sampled format:Unknown - 67: TypePointer UniformConstant 66 - 68(g_tTex2di4): 67(ptr) Variable UniformConstant - 71: TypeSampledImage 66 - 73: 62(fvec3) ConstantComposite 37 51 24 - 76: TypeImage 40(int) 2D array sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex2du4): 77(ptr) Variable UniformConstant - 81: TypeSampledImage 76 - 83: 6(float) Constant 1058642330 - 84: 6(float) Constant 1060320051 - 85: 62(fvec3) ConstantComposite 24 83 84 - 88: TypeImage 6(float) Cube array sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTexcdf4): 89(ptr) Variable UniformConstant - 93: TypeSampledImage 88 - 95: 7(fvec4) ConstantComposite 21 22 37 51 - 98: TypeImage 26(int) Cube array sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTexcdi4): 99(ptr) Variable UniformConstant - 103: TypeSampledImage 98 - 105: 7(fvec4) ConstantComposite 51 24 83 84 - 108: TypeImage 40(int) Cube array sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTexcdu4): 109(ptr) Variable UniformConstant - 113: TypeSampledImage 108 - 115: 6(float) Constant 1061997773 - 116: 6(float) Constant 1063675494 - 117: 6(float) Constant 1065353216 - 118: 7(fvec4) ConstantComposite 84 115 116 117 - 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 121: TypePointer Function 120(PS_OUTPUT) - 123: 26(int) Constant 0 - 124: 7(fvec4) ConstantComposite 117 117 117 117 - 126: 26(int) Constant 1 - 127: TypePointer Function 6(float) - 129: TypePointer Output 7(fvec4) - 130(Color): 129(ptr) Variable Output - 133: TypePointer Output 6(float) - 134(Depth): 133(ptr) Variable Output -138(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 29(txval11): 28(ptr) Variable Function - 43(txval12): 42(ptr) Variable Function - 54(txval20): 8(ptr) Variable Function - 65(txval21): 28(ptr) Variable Function - 75(txval22): 42(ptr) Variable Function - 87(txval40): 8(ptr) Variable Function - 97(txval41): 28(ptr) Variable Function - 107(txval42): 42(ptr) Variable Function - 122(psout): 121(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 25: 7(fvec4) ImageSampleImplicitLod 19 23 Bias 24 - Store 9(txval10) 25 - 33: 30 Load 32(g_tTex1di4) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 39: 27(ivec4) ImageSampleImplicitLod 36 38 Bias 24 - Store 29(txval11) 39 - 47: 44 Load 46(g_tTex1du4) - 48: 14 Load 16(g_sSamp) - 50: 49 SampledImage 47 48 - 53: 41(ivec4) ImageSampleImplicitLod 50 52 Bias 24 - Store 43(txval12) 53 - 58: 55 Load 57(g_tTex2df4) - 59: 14 Load 16(g_sSamp) - 61: 60 SampledImage 58 59 - 64: 7(fvec4) ImageSampleImplicitLod 61 63 Bias 24 - Store 54(txval20) 64 - 69: 66 Load 68(g_tTex2di4) - 70: 14 Load 16(g_sSamp) - 72: 71 SampledImage 69 70 - 74: 27(ivec4) ImageSampleImplicitLod 72 73 Bias 24 - Store 65(txval21) 74 - 79: 76 Load 78(g_tTex2du4) - 80: 14 Load 16(g_sSamp) - 82: 81 SampledImage 79 80 - 86: 41(ivec4) ImageSampleImplicitLod 82 85 Bias 24 - Store 75(txval22) 86 - 91: 88 Load 90(g_tTexcdf4) - 92: 14 Load 16(g_sSamp) - 94: 93 SampledImage 91 92 - 96: 7(fvec4) ImageSampleImplicitLod 94 95 Bias 24 - Store 87(txval40) 96 - 101: 98 Load 100(g_tTexcdi4) - 102: 14 Load 16(g_sSamp) - 104: 103 SampledImage 101 102 - 106: 27(ivec4) ImageSampleImplicitLod 104 105 Bias 24 - Store 97(txval41) 106 - 111: 108 Load 110(g_tTexcdu4) - 112: 14 Load 16(g_sSamp) - 114: 113 SampledImage 111 112 - 119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 24 - Store 107(txval42) 119 - 125: 8(ptr) AccessChain 122(psout) 123 - Store 125 124 - 128: 127(ptr) AccessChain 122(psout) 126 - Store 128 117 - 131: 8(ptr) AccessChain 122(psout) 123 - 132: 7(fvec4) Load 131 - Store 130(Color) 132 - 135: 127(ptr) AccessChain 122(psout) 126 - 136: 6(float) Load 135 - Store 134(Depth) 136 +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 index 1442fc3c78..21794f9ff6 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -1,86 +1,87 @@ hlsl.samplebias.basic.dx10.frag -Shader version: 450 +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 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 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 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 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: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: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: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: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 @@ -88,12 +89,12 @@ gl_FragCoord origin is upper left 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: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 @@ -101,12 +102,12 @@ gl_FragCoord origin is upper left 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: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 @@ -114,12 +115,12 @@ gl_FragCoord origin is upper left 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: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 @@ -127,12 +128,12 @@ gl_FragCoord origin is upper left 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: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 @@ -140,21 +141,21 @@ gl_FragCoord origin is upper left 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: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 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: @@ -162,132 +163,139 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:50 Sequence -0:50 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 0 (const int) -0:50 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 1 (const int) -0:50 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +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 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 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 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 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: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: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: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: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 @@ -295,12 +303,12 @@ gl_FragCoord origin is upper left 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: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 @@ -308,12 +316,12 @@ gl_FragCoord origin is upper left 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: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 @@ -321,12 +329,12 @@ gl_FragCoord origin is upper left 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: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 @@ -334,12 +342,12 @@ gl_FragCoord origin is upper left 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: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 @@ -347,21 +355,21 @@ gl_FragCoord origin is upper left 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: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 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: @@ -369,283 +377,302 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:50 Sequence -0:50 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 0 (const int) -0:50 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 1 (const int) -0:50 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 163 +// 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" 154 158 + EntryPoint Fragment 4 "main" 162 166 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 26 "txval11" - Name 29 "g_tTex1di4" - Name 39 "txval12" - Name 42 "g_tTex1du4" - Name 49 "txval20" - Name 52 "g_tTex2df4" - Name 60 "txval21" - Name 63 "g_tTex2di4" - Name 71 "txval22" - Name 74 "g_tTex2du4" - Name 82 "txval30" - Name 85 "g_tTex3df4" - Name 93 "txval31" - Name 96 "g_tTex3di4" - Name 103 "txval32" - Name 106 "g_tTex3du4" - Name 116 "txval40" - Name 119 "g_tTexcdf4" - Name 125 "txval41" - Name 128 "g_tTexcdi4" - Name 134 "txval42" - Name 137 "g_tTexcdu4" - Name 143 "PS_OUTPUT" - MemberName 143(PS_OUTPUT) 0 "Color" - MemberName 143(PS_OUTPUT) 1 "Depth" - Name 145 "psout" - Name 154 "Color" - Name 158 "Depth" - Name 162 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 63(g_tTex2di4) DescriptorSet 0 - Decorate 74(g_tTex2du4) DescriptorSet 0 - Decorate 85(g_tTex3df4) DescriptorSet 0 - Decorate 96(g_tTex3di4) DescriptorSet 0 - Decorate 106(g_tTex3du4) DescriptorSet 0 - Decorate 119(g_tTexcdf4) DescriptorSet 0 - Decorate 128(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdu4) DescriptorSet 0 - Decorate 154(Color) Location 0 - Decorate 158(Depth) BuiltIn FragDepth - Decorate 162(g_tTex1df4a) DescriptorSet 0 - Decorate 162(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1056964608 - 23: TypeInt 32 1 - 24: TypeVector 23(int) 4 - 25: TypePointer Function 24(ivec4) - 27: TypeImage 23(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeSampledImage 27 - 34: 6(float) Constant 1045220557 - 36: TypeInt 32 0 - 37: TypeVector 36(int) 4 - 38: TypePointer Function 37(ivec4) - 40: TypeImage 36(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 45: TypeSampledImage 40 - 47: 6(float) Constant 1050253722 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeSampledImage 50 - 57: TypeVector 6(float) 2 - 58: 57(fvec2) ConstantComposite 20 34 - 61: TypeImage 23(int) 2D sampled format:Unknown - 62: TypePointer UniformConstant 61 - 63(g_tTex2di4): 62(ptr) Variable UniformConstant - 66: TypeSampledImage 61 - 68: 6(float) Constant 1053609165 - 69: 57(fvec2) ConstantComposite 47 68 - 72: TypeImage 36(int) 2D sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex2du4): 73(ptr) Variable UniformConstant - 77: TypeSampledImage 72 - 79: 6(float) Constant 1058642330 - 80: 57(fvec2) ConstantComposite 21 79 - 83: TypeImage 6(float) 3D sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTex3df4): 84(ptr) Variable UniformConstant - 88: TypeSampledImage 83 - 90: TypeVector 6(float) 3 - 91: 90(fvec3) ConstantComposite 20 34 47 - 94: TypeImage 23(int) 3D sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTex3di4): 95(ptr) Variable UniformConstant - 99: TypeSampledImage 94 - 101: 90(fvec3) ConstantComposite 68 21 79 - 104: TypeImage 36(int) 3D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex3du4): 105(ptr) Variable UniformConstant - 109: TypeSampledImage 104 - 111: 6(float) Constant 1060320051 - 112: 6(float) Constant 1061997773 - 113: 6(float) Constant 1063675494 - 114: 90(fvec3) ConstantComposite 111 112 113 - 117: TypeImage 6(float) Cube sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTexcdf4): 118(ptr) Variable UniformConstant - 122: TypeSampledImage 117 - 126: TypeImage 23(int) Cube sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTexcdi4): 127(ptr) Variable UniformConstant - 131: TypeSampledImage 126 - 135: TypeImage 36(int) Cube sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTexcdu4): 136(ptr) Variable UniformConstant - 140: TypeSampledImage 135 - 143(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 144: TypePointer Function 143(PS_OUTPUT) - 146: 23(int) Constant 0 - 147: 6(float) Constant 1065353216 - 148: 7(fvec4) ConstantComposite 147 147 147 147 - 150: 23(int) Constant 1 - 151: TypePointer Function 6(float) - 153: TypePointer Output 7(fvec4) - 154(Color): 153(ptr) Variable Output - 157: TypePointer Output 6(float) - 158(Depth): 157(ptr) Variable Output -162(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 26(txval11): 25(ptr) Variable Function - 39(txval12): 38(ptr) Variable Function - 49(txval20): 8(ptr) Variable Function - 60(txval21): 25(ptr) Variable Function - 71(txval22): 38(ptr) Variable Function - 82(txval30): 8(ptr) Variable Function - 93(txval31): 25(ptr) Variable Function - 103(txval32): 38(ptr) Variable Function - 116(txval40): 8(ptr) Variable Function - 125(txval41): 25(ptr) Variable Function - 134(txval42): 38(ptr) Variable Function - 145(psout): 144(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 22: 7(fvec4) ImageSampleImplicitLod 19 20 Bias 21 - Store 9(txval10) 22 - 30: 27 Load 29(g_tTex1di4) - 31: 14 Load 16(g_sSamp) - 33: 32 SampledImage 30 31 - 35: 24(ivec4) ImageSampleImplicitLod 33 34 Bias 21 - Store 26(txval11) 35 - 43: 40 Load 42(g_tTex1du4) - 44: 14 Load 16(g_sSamp) - 46: 45 SampledImage 43 44 - 48: 37(ivec4) ImageSampleImplicitLod 46 47 Bias 21 - Store 39(txval12) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 14 Load 16(g_sSamp) - 56: 55 SampledImage 53 54 - 59: 7(fvec4) ImageSampleImplicitLod 56 58 Bias 21 - Store 49(txval20) 59 - 64: 61 Load 63(g_tTex2di4) - 65: 14 Load 16(g_sSamp) - 67: 66 SampledImage 64 65 - 70: 24(ivec4) ImageSampleImplicitLod 67 69 Bias 21 - Store 60(txval21) 70 - 75: 72 Load 74(g_tTex2du4) - 76: 14 Load 16(g_sSamp) - 78: 77 SampledImage 75 76 - 81: 37(ivec4) ImageSampleImplicitLod 78 80 Bias 21 - Store 71(txval22) 81 - 86: 83 Load 85(g_tTex3df4) - 87: 14 Load 16(g_sSamp) - 89: 88 SampledImage 86 87 - 92: 7(fvec4) ImageSampleImplicitLod 89 91 Bias 21 - Store 82(txval30) 92 - 97: 94 Load 96(g_tTex3di4) - 98: 14 Load 16(g_sSamp) - 100: 99 SampledImage 97 98 - 102: 24(ivec4) ImageSampleImplicitLod 100 101 Bias 21 - Store 93(txval31) 102 - 107: 104 Load 106(g_tTex3du4) - 108: 14 Load 16(g_sSamp) - 110: 109 SampledImage 107 108 - 115: 37(ivec4) ImageSampleImplicitLod 110 114 Bias 21 - Store 103(txval32) 115 - 120: 117 Load 119(g_tTexcdf4) - 121: 14 Load 16(g_sSamp) - 123: 122 SampledImage 120 121 - 124: 7(fvec4) ImageSampleImplicitLod 123 91 Bias 21 - Store 116(txval40) 124 - 129: 126 Load 128(g_tTexcdi4) - 130: 14 Load 16(g_sSamp) - 132: 131 SampledImage 129 130 - 133: 24(ivec4) ImageSampleImplicitLod 132 101 Bias 21 - Store 125(txval41) 133 - 138: 135 Load 137(g_tTexcdu4) - 139: 14 Load 16(g_sSamp) - 141: 140 SampledImage 138 139 - 142: 37(ivec4) ImageSampleImplicitLod 141 114 Bias 21 - Store 134(txval42) 142 - 149: 8(ptr) AccessChain 145(psout) 146 - Store 149 148 - 152: 151(ptr) AccessChain 145(psout) 150 - Store 152 147 - 155: 8(ptr) AccessChain 145(psout) 146 - 156: 7(fvec4) Load 155 - Store 154(Color) 156 - 159: 151(ptr) AccessChain 145(psout) 150 - 160: 6(float) Load 159 - Store 158(Depth) 160 +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 index 01facb65d7..73d69dcb3d 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplebias.offset.dx10.frag -Shader version: 450 +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 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 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: @@ -19,12 +20,12 @@ gl_FragCoord origin is upper left 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 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: @@ -32,12 +33,12 @@ gl_FragCoord origin is upper left 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 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: @@ -45,12 +46,12 @@ gl_FragCoord origin is upper left 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: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 @@ -60,12 +61,12 @@ gl_FragCoord origin is upper left 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: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 @@ -75,12 +76,12 @@ gl_FragCoord origin is upper left 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: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 @@ -90,12 +91,12 @@ gl_FragCoord origin is upper left 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: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 @@ -107,12 +108,12 @@ gl_FragCoord origin is upper left 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: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 @@ -124,12 +125,12 @@ gl_FragCoord origin is upper left 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: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 @@ -140,9 +141,9 @@ gl_FragCoord origin is upper left 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 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: @@ -150,63 +151,70 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +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 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 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: @@ -214,12 +222,12 @@ gl_FragCoord origin is upper left 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 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: @@ -227,12 +235,12 @@ gl_FragCoord origin is upper left 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 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: @@ -240,12 +248,12 @@ gl_FragCoord origin is upper left 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: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 @@ -255,12 +263,12 @@ gl_FragCoord origin is upper left 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: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 @@ -270,12 +278,12 @@ gl_FragCoord origin is upper left 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: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 @@ -285,12 +293,12 @@ gl_FragCoord origin is upper left 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: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 @@ -302,12 +310,12 @@ gl_FragCoord origin is upper left 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: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 @@ -319,12 +327,12 @@ gl_FragCoord origin is upper left 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: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 @@ -335,9 +343,9 @@ gl_FragCoord origin is upper left 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 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: @@ -345,268 +353,287 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 154 +// 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" 136 140 + EntryPoint Fragment 4 "main" 144 148 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 27 "txval11" - Name 30 "g_tTex1di4" - Name 40 "txval12" - Name 43 "g_tTex1du4" - Name 50 "txval20" - Name 53 "g_tTex2df4" - Name 64 "txval21" - Name 67 "g_tTex2di4" - Name 76 "txval22" - Name 79 "g_tTex2du4" - Name 89 "txval30" - Name 92 "g_tTex3df4" - Name 102 "txval31" - Name 105 "g_tTex3di4" - Name 113 "txval32" - Name 116 "g_tTex3du4" - Name 127 "PS_OUTPUT" - MemberName 127(PS_OUTPUT) 0 "Color" - MemberName 127(PS_OUTPUT) 1 "Depth" - Name 129 "psout" - Name 136 "Color" - Name 140 "Depth" - Name 144 "g_tTex1df4a" - Name 147 "g_tTexcdf4" - Name 150 "g_tTexcdi4" - Name 153 "g_tTexcdu4" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 43(g_tTex1du4) DescriptorSet 0 - Decorate 53(g_tTex2df4) DescriptorSet 0 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 79(g_tTex2du4) DescriptorSet 0 - Decorate 92(g_tTex3df4) DescriptorSet 0 - Decorate 105(g_tTex3di4) DescriptorSet 0 - Decorate 116(g_tTex3du4) DescriptorSet 0 - Decorate 136(Color) Location 0 - Decorate 140(Depth) BuiltIn FragDepth - Decorate 144(g_tTex1df4a) DescriptorSet 0 - Decorate 144(g_tTex1df4a) Binding 1 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 150(g_tTexcdi4) DescriptorSet 0 - Decorate 153(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1056964608 - 22: TypeInt 32 1 - 23: 22(int) Constant 1 - 25: TypeVector 22(int) 4 - 26: TypePointer Function 25(ivec4) - 28: TypeImage 22(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeSampledImage 28 - 35: 6(float) Constant 1045220557 - 37: TypeInt 32 0 - 38: TypeVector 37(int) 4 - 39: TypePointer Function 38(ivec4) - 41: TypeImage 37(int) 1D sampled format:Unknown - 42: TypePointer UniformConstant 41 - 43(g_tTex1du4): 42(ptr) Variable UniformConstant - 46: TypeSampledImage 41 - 48: 6(float) Constant 1050253722 - 51: TypeImage 6(float) 2D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4): 52(ptr) Variable UniformConstant - 56: TypeSampledImage 51 - 58: TypeVector 6(float) 2 - 59: 58(fvec2) ConstantComposite 20 35 - 60: TypeVector 22(int) 2 - 61: 22(int) Constant 0 - 62: 60(ivec2) ConstantComposite 23 61 - 65: TypeImage 22(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: 58(fvec2) ConstantComposite 48 72 - 74: 60(ivec2) ConstantComposite 23 23 - 77: TypeImage 37(int) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4): 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: 6(float) Constant 1058642330 - 85: 58(fvec2) ConstantComposite 21 84 - 86: 22(int) Constant 4294967295 - 87: 60(ivec2) ConstantComposite 23 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 20 35 48 - 99: TypeVector 22(int) 3 - 100: 99(ivec3) ConstantComposite 23 61 23 - 103: TypeImage 22(int) 3D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex3di4): 104(ptr) Variable UniformConstant - 108: TypeSampledImage 103 - 110: 97(fvec3) ConstantComposite 72 21 84 - 111: 99(ivec3) ConstantComposite 23 23 23 - 114: TypeImage 37(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3du4): 115(ptr) Variable UniformConstant - 119: TypeSampledImage 114 - 121: 6(float) Constant 1060320051 - 122: 6(float) Constant 1061997773 - 123: 6(float) Constant 1063675494 - 124: 97(fvec3) ConstantComposite 121 122 123 - 125: 99(ivec3) ConstantComposite 23 61 86 - 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 128: TypePointer Function 127(PS_OUTPUT) - 130: 6(float) Constant 1065353216 - 131: 7(fvec4) ConstantComposite 130 130 130 130 - 133: TypePointer Function 6(float) - 135: TypePointer Output 7(fvec4) - 136(Color): 135(ptr) Variable Output - 139: TypePointer Output 6(float) - 140(Depth): 139(ptr) Variable Output -144(g_tTex1df4a): 11(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 148: TypeImage 22(int) Cube sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTexcdi4): 149(ptr) Variable UniformConstant - 151: TypeImage 37(int) Cube sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTexcdu4): 152(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 27(txval11): 26(ptr) Variable Function - 40(txval12): 39(ptr) Variable Function - 50(txval20): 8(ptr) Variable Function - 64(txval21): 26(ptr) Variable Function - 76(txval22): 39(ptr) Variable Function - 89(txval30): 8(ptr) Variable Function - 102(txval31): 26(ptr) Variable Function - 113(txval32): 39(ptr) Variable Function - 129(psout): 128(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 24: 7(fvec4) ImageSampleImplicitLod 19 20 Bias ConstOffset 23 21 - Store 9(txval10) 24 - 31: 28 Load 30(g_tTex1di4) - 32: 14 Load 16(g_sSamp) - 34: 33 SampledImage 31 32 - 36: 25(ivec4) ImageSampleImplicitLod 34 35 Bias ConstOffset 23 21 - Store 27(txval11) 36 - 44: 41 Load 43(g_tTex1du4) - 45: 14 Load 16(g_sSamp) - 47: 46 SampledImage 44 45 - 49: 38(ivec4) ImageSampleImplicitLod 47 48 Bias ConstOffset 23 21 - Store 40(txval12) 49 - 54: 51 Load 53(g_tTex2df4) - 55: 14 Load 16(g_sSamp) - 57: 56 SampledImage 54 55 - 63: 7(fvec4) ImageSampleImplicitLod 57 59 Bias ConstOffset 62 21 - Store 50(txval20) 63 - 68: 65 Load 67(g_tTex2di4) - 69: 14 Load 16(g_sSamp) - 71: 70 SampledImage 68 69 - 75: 25(ivec4) ImageSampleImplicitLod 71 73 Bias ConstOffset 74 21 - Store 64(txval21) 75 - 80: 77 Load 79(g_tTex2du4) - 81: 14 Load 16(g_sSamp) - 83: 82 SampledImage 80 81 - 88: 38(ivec4) ImageSampleImplicitLod 83 85 Bias ConstOffset 87 21 - Store 76(txval22) 88 - 93: 90 Load 92(g_tTex3df4) - 94: 14 Load 16(g_sSamp) - 96: 95 SampledImage 93 94 - 101: 7(fvec4) ImageSampleImplicitLod 96 98 Bias ConstOffset 100 21 - Store 89(txval30) 101 - 106: 103 Load 105(g_tTex3di4) - 107: 14 Load 16(g_sSamp) - 109: 108 SampledImage 106 107 - 112: 25(ivec4) ImageSampleImplicitLod 109 110 Bias ConstOffset 111 21 - Store 102(txval31) 112 - 117: 114 Load 116(g_tTex3du4) - 118: 14 Load 16(g_sSamp) - 120: 119 SampledImage 117 118 - 126: 38(ivec4) ImageSampleImplicitLod 120 124 Bias ConstOffset 125 21 - Store 113(txval32) 126 - 132: 8(ptr) AccessChain 129(psout) 61 - Store 132 131 - 134: 133(ptr) AccessChain 129(psout) 23 - Store 134 130 - 137: 8(ptr) AccessChain 129(psout) 61 - 138: 7(fvec4) Load 137 - Store 136(Color) 138 - 141: 133(ptr) AccessChain 129(psout) 23 - 142: 6(float) Load 141 - Store 140(Depth) 142 +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 index 17aef7aec8..0a7a66b2e5 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplebias.offsetarray.dx10.frag -Shader version: 450 +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 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: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 @@ -20,12 +21,12 @@ gl_FragCoord origin is upper left 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: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 @@ -34,12 +35,12 @@ gl_FragCoord origin is upper left 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: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 @@ -48,12 +49,12 @@ gl_FragCoord origin is upper left 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: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 @@ -64,12 +65,12 @@ gl_FragCoord origin is upper left 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: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 @@ -80,12 +81,12 @@ gl_FragCoord origin is upper left 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: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 @@ -95,9 +96,9 @@ gl_FragCoord origin is upper left 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 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: @@ -105,57 +106,64 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:36 Sequence -0:36 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:36 Constant: -0:36 0 (const int) -0:36 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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: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 @@ -164,12 +172,12 @@ gl_FragCoord origin is upper left 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: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 @@ -178,12 +186,12 @@ gl_FragCoord origin is upper left 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: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 @@ -192,12 +200,12 @@ gl_FragCoord origin is upper left 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: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 @@ -208,12 +216,12 @@ gl_FragCoord origin is upper left 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: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 @@ -224,12 +232,12 @@ gl_FragCoord origin is upper left 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: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 @@ -239,9 +247,9 @@ gl_FragCoord origin is upper left 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 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: @@ -249,201 +257,220 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:36 Sequence -0:36 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:36 Constant: -0:36 0 (const int) -0:36 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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): 80001 -// Id's are bound by 111 +// 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" 102 106 + EntryPoint Fragment 4 "main" 110 114 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 30 "txval11" - Name 33 "g_tTex1di4" - Name 45 "txval12" - Name 48 "g_tTex1du4" - Name 57 "txval20" - Name 60 "g_tTex2df4" - Name 70 "txval21" - Name 73 "g_tTex2di4" - Name 80 "txval22" - Name 83 "g_tTex2du4" - Name 93 "PS_OUTPUT" - MemberName 93(PS_OUTPUT) 0 "Color" - MemberName 93(PS_OUTPUT) 1 "Depth" - Name 95 "psout" - Name 102 "Color" - Name 106 "Depth" - Name 110 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4) DescriptorSet 0 - Decorate 48(g_tTex1du4) DescriptorSet 0 - Decorate 60(g_tTex2df4) DescriptorSet 0 - Decorate 73(g_tTex2di4) DescriptorSet 0 - Decorate 83(g_tTex2du4) DescriptorSet 0 - Decorate 102(Color) Location 0 - Decorate 106(Depth) BuiltIn FragDepth - Decorate 110(g_tTex1df4a) DescriptorSet 0 - Decorate 110(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1056964608 - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 28: TypeVector 25(int) 4 - 29: TypePointer Function 28(ivec4) - 31: TypeImage 25(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4): 32(ptr) Variable UniformConstant - 36: TypeSampledImage 31 - 38: 6(float) Constant 1050253722 - 39: 20(fvec2) ConstantComposite 22 38 - 40: 25(int) Constant 1 - 42: TypeInt 32 0 - 43: TypeVector 42(int) 4 - 44: TypePointer Function 43(ivec4) - 46: TypeImage 42(int) 1D array sampled format:Unknown - 47: TypePointer UniformConstant 46 - 48(g_tTex1du4): 47(ptr) Variable UniformConstant - 51: TypeSampledImage 46 - 53: 6(float) Constant 1053609165 - 54: 20(fvec2) ConstantComposite 38 53 - 55: 25(int) Constant 2 - 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 21 22 38 - 67: TypeVector 25(int) 2 - 68: 67(ivec2) ConstantComposite 26 26 - 71: TypeImage 25(int) 2D array sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2di4): 72(ptr) Variable UniformConstant - 76: TypeSampledImage 71 - 78: 65(fvec3) ConstantComposite 38 53 24 - 81: TypeImage 42(int) 2D array sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex2du4): 82(ptr) Variable UniformConstant - 86: TypeSampledImage 81 - 88: 6(float) Constant 1058642330 - 89: 6(float) Constant 1060320051 - 90: 65(fvec3) ConstantComposite 24 88 89 - 91: 67(ivec2) ConstantComposite 26 40 - 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 94: TypePointer Function 93(PS_OUTPUT) - 96: 6(float) Constant 1065353216 - 97: 7(fvec4) ConstantComposite 96 96 96 96 - 99: TypePointer Function 6(float) - 101: TypePointer Output 7(fvec4) - 102(Color): 101(ptr) Variable Output - 105: TypePointer Output 6(float) - 106(Depth): 105(ptr) Variable Output -110(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 30(txval11): 29(ptr) Variable Function - 45(txval12): 44(ptr) Variable Function - 57(txval20): 8(ptr) Variable Function - 70(txval21): 29(ptr) Variable Function - 80(txval22): 44(ptr) Variable Function - 95(psout): 94(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 27: 7(fvec4) ImageSampleImplicitLod 19 23 Bias ConstOffset 26 24 - Store 9(txval10) 27 - 34: 31 Load 33(g_tTex1di4) - 35: 14 Load 16(g_sSamp) - 37: 36 SampledImage 34 35 - 41: 28(ivec4) ImageSampleImplicitLod 37 39 Bias ConstOffset 40 24 - Store 30(txval11) 41 - 49: 46 Load 48(g_tTex1du4) - 50: 14 Load 16(g_sSamp) - 52: 51 SampledImage 49 50 - 56: 43(ivec4) ImageSampleImplicitLod 52 54 Bias ConstOffset 55 24 - Store 45(txval12) 56 - 61: 58 Load 60(g_tTex2df4) - 62: 14 Load 16(g_sSamp) - 64: 63 SampledImage 61 62 - 69: 7(fvec4) ImageSampleImplicitLod 64 66 Bias ConstOffset 68 24 - Store 57(txval20) 69 - 74: 71 Load 73(g_tTex2di4) - 75: 14 Load 16(g_sSamp) - 77: 76 SampledImage 74 75 - 79: 28(ivec4) ImageSampleImplicitLod 77 78 Bias ConstOffset 68 24 - Store 70(txval21) 79 - 84: 81 Load 83(g_tTex2du4) - 85: 14 Load 16(g_sSamp) - 87: 86 SampledImage 84 85 - 92: 43(ivec4) ImageSampleImplicitLod 87 90 Bias ConstOffset 91 24 - Store 80(txval22) 92 - 98: 8(ptr) AccessChain 95(psout) 26 - Store 98 97 - 100: 99(ptr) AccessChain 95(psout) 40 - Store 100 96 - 103: 8(ptr) AccessChain 95(psout) 26 - 104: 7(fvec4) Load 103 - Store 102(Color) 104 - 107: 99(ptr) AccessChain 95(psout) 40 - 108: 6(float) Load 107 - Store 106(Depth) 108 +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 index c4f5d11c8c..f8f20ca250 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -1,57 +1,58 @@ hlsl.samplecmp.array.dx10.frag -Shader version: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -59,13 +60,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -73,13 +74,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -87,13 +88,13 @@ gl_FragCoord origin is upper left 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 textureCubeArray) -0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp 4-component vector of float) +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 @@ -102,13 +103,13 @@ gl_FragCoord origin is upper left 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 itextureCubeArray) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -117,13 +118,13 @@ gl_FragCoord origin is upper left 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 utextureCubeArray) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -131,9 +132,9 @@ gl_FragCoord origin is upper left 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 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: @@ -141,111 +142,118 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:59 Sequence -0:59 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:59 Constant: -0:59 0 (const int) -0:59 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -253,13 +261,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -267,13 +275,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -281,13 +289,13 @@ gl_FragCoord origin is upper left 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 textureCubeArray) -0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp 4-component vector of float) +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 @@ -296,13 +304,13 @@ gl_FragCoord origin is upper left 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 itextureCubeArray) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -311,13 +319,13 @@ gl_FragCoord origin is upper left 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 utextureCubeArray) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -325,9 +333,9 @@ gl_FragCoord origin is upper left 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 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: @@ -335,349 +343,359 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:59 Sequence -0:59 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:59 Constant: -0:59 0 (const int) -0:59 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 211 +// 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" 167 171 + EntryPoint Fragment 4 "main" 166 170 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r10" - Name 11 "g_tTex1df4a" - Name 15 "g_sSamp" - Name 31 "r12" - Name 35 "g_tTex1di4a" - Name 46 "r14" - Name 50 "g_tTex1du4a" - Name 61 "r30" - Name 64 "g_tTex2df4a" + 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 94 "r34" - Name 97 "g_tTex2du4a" - Name 109 "r60" - Name 112 "g_tTexcdf4a" - Name 126 "r62" - Name 129 "g_tTexcdi4a" - Name 141 "r64" - Name 144 "g_tTexcdu4a" - Name 156 "PS_OUTPUT" - MemberName 156(PS_OUTPUT) 0 "Color" - MemberName 156(PS_OUTPUT) 1 "Depth" - Name 158 "psout" - Name 167 "Color" - Name 171 "Depth" - Name 177 "g_tTex1df4" - Name 180 "g_tTex1di4" - Name 183 "g_tTex1du4" - Name 186 "g_tTex2df4" - Name 189 "g_tTex2di4" - Name 192 "g_tTex2du4" - Name 195 "g_tTex3df4" - Name 198 "g_tTex3di4" - Name 201 "g_tTex3du4" - Name 204 "g_tTexcdf4" - Name 207 "g_tTexcdi4" - Name 210 "g_tTexcdu4" - Decorate 11(g_tTex1df4a) DescriptorSet 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 35(g_tTex1di4a) DescriptorSet 0 - Decorate 50(g_tTex1du4a) DescriptorSet 0 - Decorate 64(g_tTex2df4a) DescriptorSet 0 + 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 97(g_tTex2du4a) DescriptorSet 0 - Decorate 112(g_tTexcdf4a) DescriptorSet 0 - Decorate 129(g_tTexcdi4a) DescriptorSet 0 - Decorate 144(g_tTexcdu4a) DescriptorSet 0 - Decorate 167(Color) Location 0 - Decorate 171(Depth) BuiltIn FragDepth - Decorate 177(g_tTex1df4) DescriptorSet 0 - Decorate 177(g_tTex1df4) Binding 0 - Decorate 180(g_tTex1di4) DescriptorSet 0 - Decorate 183(g_tTex1du4) DescriptorSet 0 - Decorate 186(g_tTex2df4) DescriptorSet 0 - Decorate 189(g_tTex2di4) DescriptorSet 0 - Decorate 192(g_tTex2du4) DescriptorSet 0 - Decorate 195(g_tTex3df4) DescriptorSet 0 - Decorate 198(g_tTex3di4) DescriptorSet 0 - Decorate 201(g_tTex3du4) DescriptorSet 0 - Decorate 204(g_tTexcdf4) DescriptorSet 0 - Decorate 207(g_tTexcdi4) DescriptorSet 0 - Decorate 210(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D array sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4a): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth array sampled format:Unknown - 18: TypeSampledImage 17 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1061158912 - 25: TypeVector 6(float) 3 - 32: TypeInt 32 1 - 33: TypeImage 32(int) 1D array sampled format:Unknown - 34: TypePointer UniformConstant 33 - 35(g_tTex1di4a): 34(ptr) Variable UniformConstant - 38: TypeImage 32(int) 1D depth array sampled format:Unknown - 39: TypeSampledImage 38 - 47: TypeInt 32 0 - 48: TypeImage 47(int) 1D array sampled format:Unknown - 49: TypePointer UniformConstant 48 - 50(g_tTex1du4a): 49(ptr) Variable UniformConstant - 53: TypeImage 47(int) 1D depth array sampled format:Unknown - 54: TypeSampledImage 53 - 62: TypeImage 6(float) 2D array sampled format:Unknown - 63: TypePointer UniformConstant 62 - 64(g_tTex2df4a): 63(ptr) Variable UniformConstant - 67: TypeImage 6(float) 2D depth array sampled format:Unknown - 68: TypeSampledImage 67 - 70: 6(float) Constant 1050253722 - 71: 25(fvec3) ConstantComposite 21 22 70 - 72: TypeVector 6(float) 4 - 80: TypeImage 32(int) 2D array sampled format:Unknown + 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: TypeImage 32(int) 2D depth array sampled format:Unknown - 86: TypeSampledImage 85 - 95: TypeImage 47(int) 2D array sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTex2du4a): 96(ptr) Variable UniformConstant - 100: TypeImage 47(int) 2D depth array sampled format:Unknown - 101: TypeSampledImage 100 - 110: TypeImage 6(float) Cube array sampled format:Unknown - 111: TypePointer UniformConstant 110 -112(g_tTexcdf4a): 111(ptr) Variable UniformConstant - 115: TypeImage 6(float) Cube depth array sampled format:Unknown - 116: TypeSampledImage 115 - 118: 6(float) Constant 1053609165 - 119: 72(fvec4) ConstantComposite 21 22 70 118 - 127: TypeImage 32(int) Cube array sampled format:Unknown - 128: TypePointer UniformConstant 127 -129(g_tTexcdi4a): 128(ptr) Variable UniformConstant - 132: TypeImage 32(int) Cube depth array sampled format:Unknown - 133: TypeSampledImage 132 - 142: TypeImage 47(int) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdu4a): 143(ptr) Variable UniformConstant - 147: TypeImage 47(int) Cube depth array sampled format:Unknown - 148: TypeSampledImage 147 - 156(PS_OUTPUT): TypeStruct 72(fvec4) 6(float) - 157: TypePointer Function 156(PS_OUTPUT) - 159: 32(int) Constant 0 - 160: 6(float) Constant 1065353216 - 161: 72(fvec4) ConstantComposite 160 160 160 160 - 162: TypePointer Function 72(fvec4) - 164: 32(int) Constant 1 - 166: TypePointer Output 72(fvec4) - 167(Color): 166(ptr) Variable Output - 170: TypePointer Output 6(float) - 171(Depth): 170(ptr) Variable Output - 175: TypeImage 6(float) 1D sampled format:Unknown - 176: TypePointer UniformConstant 175 - 177(g_tTex1df4): 176(ptr) Variable UniformConstant - 178: TypeImage 32(int) 1D sampled format:Unknown - 179: TypePointer UniformConstant 178 - 180(g_tTex1di4): 179(ptr) Variable UniformConstant - 181: TypeImage 47(int) 1D sampled format:Unknown - 182: TypePointer UniformConstant 181 - 183(g_tTex1du4): 182(ptr) Variable UniformConstant - 184: TypeImage 6(float) 2D sampled format:Unknown - 185: TypePointer UniformConstant 184 - 186(g_tTex2df4): 185(ptr) Variable UniformConstant - 187: TypeImage 32(int) 2D sampled format:Unknown - 188: TypePointer UniformConstant 187 - 189(g_tTex2di4): 188(ptr) Variable UniformConstant - 190: TypeImage 47(int) 2D sampled format:Unknown - 191: TypePointer UniformConstant 190 - 192(g_tTex2du4): 191(ptr) Variable UniformConstant - 193: TypeImage 6(float) 3D sampled format:Unknown - 194: TypePointer UniformConstant 193 - 195(g_tTex3df4): 194(ptr) Variable UniformConstant - 196: TypeImage 32(int) 3D sampled format:Unknown - 197: TypePointer UniformConstant 196 - 198(g_tTex3di4): 197(ptr) Variable UniformConstant - 199: TypeImage 47(int) 3D sampled format:Unknown - 200: TypePointer UniformConstant 199 - 201(g_tTex3du4): 200(ptr) Variable UniformConstant - 202: TypeImage 6(float) Cube sampled format:Unknown - 203: TypePointer UniformConstant 202 - 204(g_tTexcdf4): 203(ptr) Variable UniformConstant - 205: TypeImage 32(int) Cube sampled format:Unknown - 206: TypePointer UniformConstant 205 - 207(g_tTexcdi4): 206(ptr) Variable UniformConstant - 208: TypeImage 47(int) Cube sampled format:Unknown - 209: TypePointer UniformConstant 208 - 210(g_tTexcdu4): 209(ptr) Variable UniformConstant + 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 - 8(r10): 7(ptr) Variable Function - 31(r12): 7(ptr) Variable Function - 46(r14): 7(ptr) Variable Function - 61(r30): 7(ptr) Variable Function - 79(r32): 7(ptr) Variable Function - 94(r34): 7(ptr) Variable Function - 109(r60): 7(ptr) Variable Function - 126(r62): 7(ptr) Variable Function - 141(r64): 7(ptr) Variable Function - 158(psout): 157(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4a) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 26: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 23 1 - 28: 25(fvec3) CompositeConstruct 26 27 24 - 29: 6(float) CompositeExtract 28 2 - 30: 6(float) ImageSampleDrefImplicitLod 19 28 29 - Store 8(r10) 30 - 36: 33 Load 35(g_tTex1di4a) - 37: 13 Load 15(g_sSamp) - 40: 39 SampledImage 36 37 - 41: 6(float) CompositeExtract 23 0 - 42: 6(float) CompositeExtract 23 1 - 43: 25(fvec3) CompositeConstruct 41 42 24 - 44: 6(float) CompositeExtract 43 2 - 45: 6(float) ImageSampleDrefImplicitLod 40 43 44 - Store 31(r12) 45 - 51: 48 Load 50(g_tTex1du4a) - 52: 13 Load 15(g_sSamp) - 55: 54 SampledImage 51 52 - 56: 6(float) CompositeExtract 23 0 - 57: 6(float) CompositeExtract 23 1 - 58: 25(fvec3) CompositeConstruct 56 57 24 - 59: 6(float) CompositeExtract 58 2 - 60: 6(float) ImageSampleDrefImplicitLod 55 58 59 - Store 46(r14) 60 - 65: 62 Load 64(g_tTex2df4a) - 66: 13 Load 15(g_sSamp) - 69: 68 SampledImage 65 66 - 73: 6(float) CompositeExtract 71 0 - 74: 6(float) CompositeExtract 71 1 - 75: 6(float) CompositeExtract 71 2 - 76: 72(fvec4) CompositeConstruct 73 74 75 24 - 77: 6(float) CompositeExtract 76 3 - 78: 6(float) ImageSampleDrefImplicitLod 69 76 77 - Store 61(r30) 78 - 83: 80 Load 82(g_tTex2di4a) - 84: 13 Load 15(g_sSamp) - 87: 86 SampledImage 83 84 - 88: 6(float) CompositeExtract 71 0 - 89: 6(float) CompositeExtract 71 1 - 90: 6(float) CompositeExtract 71 2 - 91: 72(fvec4) CompositeConstruct 88 89 90 24 - 92: 6(float) CompositeExtract 91 3 - 93: 6(float) ImageSampleDrefImplicitLod 87 91 92 - Store 79(r32) 93 - 98: 95 Load 97(g_tTex2du4a) - 99: 13 Load 15(g_sSamp) - 102: 101 SampledImage 98 99 - 103: 6(float) CompositeExtract 71 0 - 104: 6(float) CompositeExtract 71 1 - 105: 6(float) CompositeExtract 71 2 - 106: 72(fvec4) CompositeConstruct 103 104 105 24 - 107: 6(float) CompositeExtract 106 3 - 108: 6(float) ImageSampleDrefImplicitLod 102 106 107 - Store 94(r34) 108 - 113: 110 Load 112(g_tTexcdf4a) - 114: 13 Load 15(g_sSamp) - 117: 116 SampledImage 113 114 - 120: 6(float) CompositeExtract 119 0 - 121: 6(float) CompositeExtract 119 1 - 122: 6(float) CompositeExtract 119 2 - 123: 6(float) CompositeExtract 119 3 - 124: 72(fvec4) CompositeConstruct 120 121 122 123 - 125: 6(float) ImageSampleDrefImplicitLod 117 124 24 - Store 109(r60) 125 - 130: 127 Load 129(g_tTexcdi4a) - 131: 13 Load 15(g_sSamp) - 134: 133 SampledImage 130 131 - 135: 6(float) CompositeExtract 119 0 - 136: 6(float) CompositeExtract 119 1 - 137: 6(float) CompositeExtract 119 2 - 138: 6(float) CompositeExtract 119 3 - 139: 72(fvec4) CompositeConstruct 135 136 137 138 - 140: 6(float) ImageSampleDrefImplicitLod 134 139 24 - Store 126(r62) 140 - 145: 142 Load 144(g_tTexcdu4a) - 146: 13 Load 15(g_sSamp) - 149: 148 SampledImage 145 146 - 150: 6(float) CompositeExtract 119 0 - 151: 6(float) CompositeExtract 119 1 - 152: 6(float) CompositeExtract 119 2 - 153: 6(float) CompositeExtract 119 3 - 154: 72(fvec4) CompositeConstruct 150 151 152 153 - 155: 6(float) ImageSampleDrefImplicitLod 149 154 24 - Store 141(r64) 155 - 163: 162(ptr) AccessChain 158(psout) 159 - Store 163 161 - 165: 7(ptr) AccessChain 158(psout) 164 - Store 165 160 - 168: 162(ptr) AccessChain 158(psout) 159 - 169: 72(fvec4) Load 168 - Store 167(Color) 169 - 172: 7(ptr) AccessChain 158(psout) 164 - 173: 6(float) Load 172 - Store 171(Depth) 173 +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 index acd24b8bb4..9862297fbd 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -1,93 +1,94 @@ hlsl.samplecmp.basic.dx10.frag -Shader version: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 textureCube) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -95,13 +96,13 @@ gl_FragCoord origin is upper left 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 itextureCube) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -109,22 +110,22 @@ gl_FragCoord origin is upper left 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 utextureCube) -0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp 4-component vector of float) +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 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: @@ -132,147 +133,154 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:60 Sequence -0:60 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 0 (const int) -0:60 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 1 (const int) -0:60 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 textureCube) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -280,13 +288,13 @@ gl_FragCoord origin is upper left 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 itextureCube) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -294,22 +302,22 @@ gl_FragCoord origin is upper left 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 utextureCube) -0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp 4-component vector of float) +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 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: @@ -317,338 +325,348 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:60 Sequence -0:60 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 0 (const int) -0:60 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 1 (const int) -0:60 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 200 +// 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" 156 160 + EntryPoint Fragment 4 "main" 155 159 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 11 "g_tTex1df4" - Name 15 "g_sSamp" - Name 26 "r02" - Name 30 "g_tTex1di4" - Name 39 "r04" - Name 43 "g_tTex1du4" - Name 52 "r20" - Name 55 "g_tTex2df4" - Name 69 "r22" - Name 72 "g_tTex2di4" + Name 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 97 "r50" - Name 100 "g_tTexcdf4" - Name 115 "r52" - Name 118 "g_tTexcdi4" - Name 130 "r54" - Name 133 "g_tTexcdu4" - Name 145 "PS_OUTPUT" - MemberName 145(PS_OUTPUT) 0 "Color" - MemberName 145(PS_OUTPUT) 1 "Depth" - Name 147 "psout" - Name 156 "Color" - Name 160 "Depth" - Name 166 "g_tTex3df4" - Name 169 "g_tTex3di4" - Name 172 "g_tTex3du4" - Name 175 "g_tTex1df4a" - Name 178 "g_tTex1di4a" - Name 181 "g_tTex1du4a" - Name 184 "g_tTex2df4a" - Name 187 "g_tTex2di4a" - Name 190 "g_tTex2du4a" - Name 193 "g_tTexcdf4a" - Name 196 "g_tTexcdi4a" - Name 199 "g_tTexcdu4a" - Decorate 11(g_tTex1df4) DescriptorSet 0 - Decorate 11(g_tTex1df4) Binding 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 43(g_tTex1du4) DescriptorSet 0 - Decorate 55(g_tTex2df4) DescriptorSet 0 - Decorate 72(g_tTex2di4) DescriptorSet 0 + 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 100(g_tTexcdf4) DescriptorSet 0 - Decorate 118(g_tTexcdi4) DescriptorSet 0 - Decorate 133(g_tTexcdu4) DescriptorSet 0 - Decorate 156(Color) Location 0 - Decorate 160(Depth) BuiltIn FragDepth - Decorate 166(g_tTex3df4) DescriptorSet 0 - Decorate 169(g_tTex3di4) DescriptorSet 0 - Decorate 172(g_tTex3du4) DescriptorSet 0 - Decorate 175(g_tTex1df4a) DescriptorSet 0 - Decorate 178(g_tTex1di4a) DescriptorSet 0 - Decorate 181(g_tTex1du4a) DescriptorSet 0 - Decorate 184(g_tTex2df4a) DescriptorSet 0 - Decorate 187(g_tTex2di4a) DescriptorSet 0 - Decorate 190(g_tTex2du4a) DescriptorSet 0 - Decorate 193(g_tTexcdf4a) DescriptorSet 0 - Decorate 196(g_tTexcdi4a) DescriptorSet 0 - Decorate 199(g_tTexcdu4a) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth sampled format:Unknown - 18: TypeSampledImage 17 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1061158912 - 22: TypeVector 6(float) 2 - 27: TypeInt 32 1 - 28: TypeImage 27(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeImage 27(int) 1D depth sampled format:Unknown - 34: TypeSampledImage 33 - 40: TypeInt 32 0 - 41: TypeImage 40(int) 1D sampled format:Unknown - 42: TypePointer UniformConstant 41 - 43(g_tTex1du4): 42(ptr) Variable UniformConstant - 46: TypeImage 40(int) 1D depth sampled format:Unknown - 47: TypeSampledImage 46 - 53: TypeImage 6(float) 2D sampled format:Unknown - 54: TypePointer UniformConstant 53 - 55(g_tTex2df4): 54(ptr) Variable UniformConstant - 58: TypeImage 6(float) 2D depth sampled format:Unknown - 59: TypeSampledImage 58 - 61: 6(float) Constant 1045220557 - 62: 22(fvec2) ConstantComposite 20 61 - 63: TypeVector 6(float) 3 - 70: TypeImage 27(int) 2D sampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(g_tTex2di4): 71(ptr) Variable UniformConstant - 75: TypeImage 27(int) 2D depth sampled format:Unknown - 76: TypeSampledImage 75 - 84: TypeImage 40(int) 2D sampled format:Unknown + 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: TypeImage 40(int) 2D depth sampled format:Unknown - 90: TypeSampledImage 89 - 98: TypeImage 6(float) Cube sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTexcdf4): 99(ptr) Variable UniformConstant - 103: TypeImage 6(float) Cube depth sampled format:Unknown - 104: TypeSampledImage 103 - 106: 6(float) Constant 1050253722 - 107: 63(fvec3) ConstantComposite 20 61 106 - 108: TypeVector 6(float) 4 - 116: TypeImage 27(int) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdi4): 117(ptr) Variable UniformConstant - 121: TypeImage 27(int) Cube depth sampled format:Unknown - 122: TypeSampledImage 121 - 131: TypeImage 40(int) Cube sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTexcdu4): 132(ptr) Variable UniformConstant - 136: TypeImage 40(int) Cube depth sampled format:Unknown - 137: TypeSampledImage 136 - 145(PS_OUTPUT): TypeStruct 108(fvec4) 6(float) - 146: TypePointer Function 145(PS_OUTPUT) - 148: 27(int) Constant 0 - 149: 6(float) Constant 1065353216 - 150: 108(fvec4) ConstantComposite 149 149 149 149 - 151: TypePointer Function 108(fvec4) - 153: 27(int) Constant 1 - 155: TypePointer Output 108(fvec4) - 156(Color): 155(ptr) Variable Output - 159: TypePointer Output 6(float) - 160(Depth): 159(ptr) Variable Output - 164: TypeImage 6(float) 3D sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTex3df4): 165(ptr) Variable UniformConstant - 167: TypeImage 27(int) 3D sampled format:Unknown - 168: TypePointer UniformConstant 167 - 169(g_tTex3di4): 168(ptr) Variable UniformConstant - 170: TypeImage 40(int) 3D sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(g_tTex3du4): 171(ptr) Variable UniformConstant - 173: TypeImage 6(float) 1D array sampled format:Unknown - 174: TypePointer UniformConstant 173 -175(g_tTex1df4a): 174(ptr) Variable UniformConstant - 176: TypeImage 27(int) 1D array sampled format:Unknown - 177: TypePointer UniformConstant 176 -178(g_tTex1di4a): 177(ptr) Variable UniformConstant - 179: TypeImage 40(int) 1D array sampled format:Unknown - 180: TypePointer UniformConstant 179 -181(g_tTex1du4a): 180(ptr) Variable UniformConstant - 182: TypeImage 6(float) 2D array sampled format:Unknown - 183: TypePointer UniformConstant 182 -184(g_tTex2df4a): 183(ptr) Variable UniformConstant - 185: TypeImage 27(int) 2D array sampled format:Unknown - 186: TypePointer UniformConstant 185 -187(g_tTex2di4a): 186(ptr) Variable UniformConstant - 188: TypeImage 40(int) 2D array sampled format:Unknown - 189: TypePointer UniformConstant 188 -190(g_tTex2du4a): 189(ptr) Variable UniformConstant - 191: TypeImage 6(float) Cube array sampled format:Unknown - 192: TypePointer UniformConstant 191 -193(g_tTexcdf4a): 192(ptr) Variable UniformConstant - 194: TypeImage 27(int) Cube array sampled format:Unknown - 195: TypePointer UniformConstant 194 -196(g_tTexcdi4a): 195(ptr) Variable UniformConstant - 197: TypeImage 40(int) Cube array sampled format:Unknown - 198: TypePointer UniformConstant 197 -199(g_tTexcdu4a): 198(ptr) Variable UniformConstant + 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 - 8(r00): 7(ptr) Variable Function - 26(r02): 7(ptr) Variable Function - 39(r04): 7(ptr) Variable Function - 52(r20): 7(ptr) Variable Function - 69(r22): 7(ptr) Variable Function - 83(r24): 7(ptr) Variable Function - 97(r50): 7(ptr) Variable Function - 115(r52): 7(ptr) Variable Function - 130(r54): 7(ptr) Variable Function - 147(psout): 146(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 23: 22(fvec2) CompositeConstruct 20 21 - 24: 6(float) CompositeExtract 23 1 - 25: 6(float) ImageSampleDrefImplicitLod 19 23 24 - Store 8(r00) 25 - 31: 28 Load 30(g_tTex1di4) - 32: 13 Load 15(g_sSamp) - 35: 34 SampledImage 31 32 - 36: 22(fvec2) CompositeConstruct 20 21 - 37: 6(float) CompositeExtract 36 1 - 38: 6(float) ImageSampleDrefImplicitLod 35 36 37 - Store 26(r02) 38 - 44: 41 Load 43(g_tTex1du4) - 45: 13 Load 15(g_sSamp) - 48: 47 SampledImage 44 45 - 49: 22(fvec2) CompositeConstruct 20 21 - 50: 6(float) CompositeExtract 49 1 - 51: 6(float) ImageSampleDrefImplicitLod 48 49 50 - Store 39(r04) 51 - 56: 53 Load 55(g_tTex2df4) - 57: 13 Load 15(g_sSamp) - 60: 59 SampledImage 56 57 - 64: 6(float) CompositeExtract 62 0 - 65: 6(float) CompositeExtract 62 1 - 66: 63(fvec3) CompositeConstruct 64 65 21 - 67: 6(float) CompositeExtract 66 2 - 68: 6(float) ImageSampleDrefImplicitLod 60 66 67 - Store 52(r20) 68 - 73: 70 Load 72(g_tTex2di4) - 74: 13 Load 15(g_sSamp) - 77: 76 SampledImage 73 74 - 78: 6(float) CompositeExtract 62 0 - 79: 6(float) CompositeExtract 62 1 - 80: 63(fvec3) CompositeConstruct 78 79 21 - 81: 6(float) CompositeExtract 80 2 - 82: 6(float) ImageSampleDrefImplicitLod 77 80 81 - Store 69(r22) 82 - 87: 84 Load 86(g_tTex2du4) - 88: 13 Load 15(g_sSamp) - 91: 90 SampledImage 87 88 - 92: 6(float) CompositeExtract 62 0 - 93: 6(float) CompositeExtract 62 1 - 94: 63(fvec3) CompositeConstruct 92 93 21 - 95: 6(float) CompositeExtract 94 2 - 96: 6(float) ImageSampleDrefImplicitLod 91 94 95 - Store 83(r24) 96 - 101: 98 Load 100(g_tTexcdf4) - 102: 13 Load 15(g_sSamp) - 105: 104 SampledImage 101 102 - 109: 6(float) CompositeExtract 107 0 - 110: 6(float) CompositeExtract 107 1 - 111: 6(float) CompositeExtract 107 2 - 112: 108(fvec4) CompositeConstruct 109 110 111 21 - 113: 6(float) CompositeExtract 112 3 - 114: 6(float) ImageSampleDrefImplicitLod 105 112 113 - Store 97(r50) 114 - 119: 116 Load 118(g_tTexcdi4) - 120: 13 Load 15(g_sSamp) - 123: 122 SampledImage 119 120 - 124: 6(float) CompositeExtract 107 0 - 125: 6(float) CompositeExtract 107 1 - 126: 6(float) CompositeExtract 107 2 - 127: 108(fvec4) CompositeConstruct 124 125 126 21 - 128: 6(float) CompositeExtract 127 3 - 129: 6(float) ImageSampleDrefImplicitLod 123 127 128 - Store 115(r52) 129 - 134: 131 Load 133(g_tTexcdu4) - 135: 13 Load 15(g_sSamp) - 138: 137 SampledImage 134 135 - 139: 6(float) CompositeExtract 107 0 - 140: 6(float) CompositeExtract 107 1 - 141: 6(float) CompositeExtract 107 2 - 142: 108(fvec4) CompositeConstruct 139 140 141 21 - 143: 6(float) CompositeExtract 142 3 - 144: 6(float) ImageSampleDrefImplicitLod 138 142 143 - Store 130(r54) 144 - 152: 151(ptr) AccessChain 147(psout) 148 - Store 152 150 - 154: 7(ptr) AccessChain 147(psout) 153 - Store 154 149 - 157: 151(ptr) AccessChain 147(psout) 148 - 158: 108(fvec4) Load 157 - Store 156(Color) 158 - 161: 7(ptr) AccessChain 147(psout) 153 - 162: 6(float) Load 161 - Store 160(Depth) 162 +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-new/Test/baseResults/hlsl.samplecmp.dualmode.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.samplecmp.dualmode.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.samplecmp.negative.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.samplecmp.negative.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.samplecmp.negative2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.samplecmp.negative2.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out 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 index fe2c74f569..f0ba44492e 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -1,18 +1,19 @@ hlsl.samplecmp.offset.dx10.frag -Shader version: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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: @@ -20,13 +21,13 @@ gl_FragCoord origin is upper left 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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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: @@ -34,13 +35,13 @@ gl_FragCoord origin is upper left 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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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: @@ -48,13 +49,13 @@ gl_FragCoord origin is upper left 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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 @@ -64,13 +65,13 @@ gl_FragCoord origin is upper left 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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 @@ -80,13 +81,13 @@ gl_FragCoord origin is upper left 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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 @@ -95,9 +96,9 @@ gl_FragCoord origin is upper left 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 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: @@ -105,72 +106,79 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:65 Sequence -0:65 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:65 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:65 Constant: -0:65 1 (const int) -0:65 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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: @@ -178,13 +186,13 @@ gl_FragCoord origin is upper left 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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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: @@ -192,13 +200,13 @@ gl_FragCoord origin is upper left 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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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: @@ -206,13 +214,13 @@ gl_FragCoord origin is upper left 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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 @@ -222,13 +230,13 @@ gl_FragCoord origin is upper left 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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 @@ -238,13 +246,13 @@ gl_FragCoord origin is upper left 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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 @@ -253,9 +261,9 @@ gl_FragCoord origin is upper left 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 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: @@ -263,298 +271,311 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:65 Sequence -0:65 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:65 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:65 Constant: -0:65 1 (const int) -0:65 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 166 +// 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" 113 117 + EntryPoint Fragment 4 "main" 115 119 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r01" - Name 11 "g_tTex1df4" - Name 15 "g_sSamp" - Name 28 "r03" - Name 31 "g_tTex1di4" - Name 40 "r05" - Name 44 "g_tTex1du4" - Name 53 "r21" - Name 56 "g_tTex2df4" - Name 73 "r23" - Name 76 "g_tTex2di4" + Name 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 102 "PS_OUTPUT" - MemberName 102(PS_OUTPUT) 0 "Color" - MemberName 102(PS_OUTPUT) 1 "Depth" - Name 104 "psout" - Name 113 "Color" - Name 117 "Depth" - Name 123 "g_tTex3df4" - Name 126 "g_tTex3di4" - Name 129 "g_tTex3du4" - Name 132 "g_tTexcdf4" - Name 135 "g_tTexcdi4" - Name 138 "g_tTexcdu4" - Name 141 "g_tTex1df4a" - Name 144 "g_tTex1di4a" - Name 147 "g_tTex1du4a" - Name 150 "g_tTex2df4a" - Name 153 "g_tTex2di4a" - Name 156 "g_tTex2du4a" - Name 159 "g_tTexcdf4a" - Name 162 "g_tTexcdi4a" - Name 165 "g_tTexcdu4a" - Decorate 11(g_tTex1df4) DescriptorSet 0 - Decorate 11(g_tTex1df4) Binding 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 31(g_tTex1di4) DescriptorSet 0 - Decorate 44(g_tTex1du4) DescriptorSet 0 - Decorate 56(g_tTex2df4) DescriptorSet 0 - Decorate 76(g_tTex2di4) DescriptorSet 0 + 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 113(Color) Location 0 - Decorate 117(Depth) BuiltIn FragDepth - Decorate 123(g_tTex3df4) DescriptorSet 0 - Decorate 126(g_tTex3di4) DescriptorSet 0 - Decorate 129(g_tTex3du4) DescriptorSet 0 - Decorate 132(g_tTexcdf4) DescriptorSet 0 - Decorate 135(g_tTexcdi4) DescriptorSet 0 - Decorate 138(g_tTexcdu4) DescriptorSet 0 - Decorate 141(g_tTex1df4a) DescriptorSet 0 - Decorate 144(g_tTex1di4a) DescriptorSet 0 - Decorate 147(g_tTex1du4a) DescriptorSet 0 - Decorate 150(g_tTex2df4a) DescriptorSet 0 - Decorate 153(g_tTex2di4a) DescriptorSet 0 - Decorate 156(g_tTex2du4a) DescriptorSet 0 - Decorate 159(g_tTexcdf4a) DescriptorSet 0 - Decorate 162(g_tTexcdi4a) DescriptorSet 0 - Decorate 165(g_tTexcdu4a) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth sampled format:Unknown - 18: TypeSampledImage 17 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1061158912 - 22: TypeVector 6(float) 2 - 24: TypeInt 32 1 - 25: 24(int) Constant 2 - 29: TypeImage 24(int) 1D sampled format:Unknown - 30: TypePointer UniformConstant 29 - 31(g_tTex1di4): 30(ptr) Variable UniformConstant - 34: TypeImage 24(int) 1D depth sampled format:Unknown - 35: TypeSampledImage 34 - 41: TypeInt 32 0 - 42: TypeImage 41(int) 1D sampled format:Unknown - 43: TypePointer UniformConstant 42 - 44(g_tTex1du4): 43(ptr) Variable UniformConstant - 47: TypeImage 41(int) 1D depth sampled format:Unknown - 48: TypeSampledImage 47 - 54: TypeImage 6(float) 2D sampled format:Unknown - 55: TypePointer UniformConstant 54 - 56(g_tTex2df4): 55(ptr) Variable UniformConstant - 59: TypeImage 6(float) 2D depth sampled format:Unknown - 60: TypeSampledImage 59 - 62: 6(float) Constant 1045220557 - 63: 22(fvec2) ConstantComposite 20 62 - 64: TypeVector 6(float) 3 - 68: TypeVector 24(int) 2 - 69: 24(int) Constant 3 - 70: 68(ivec2) ConstantComposite 25 69 - 74: TypeImage 24(int) 2D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2di4): 75(ptr) Variable UniformConstant - 79: TypeImage 24(int) 2D depth sampled format:Unknown - 80: TypeSampledImage 79 - 88: TypeImage 41(int) 2D sampled format:Unknown + 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: TypeImage 41(int) 2D depth sampled format:Unknown - 94: TypeSampledImage 93 - 101: TypeVector 6(float) 4 - 102(PS_OUTPUT): TypeStruct 101(fvec4) 6(float) - 103: TypePointer Function 102(PS_OUTPUT) - 105: 24(int) Constant 0 - 106: 6(float) Constant 1065353216 - 107: 101(fvec4) ConstantComposite 106 106 106 106 - 108: TypePointer Function 101(fvec4) - 110: 24(int) Constant 1 - 112: TypePointer Output 101(fvec4) - 113(Color): 112(ptr) Variable Output - 116: TypePointer Output 6(float) - 117(Depth): 116(ptr) Variable Output - 121: TypeImage 6(float) 3D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex3df4): 122(ptr) Variable UniformConstant - 124: TypeImage 24(int) 3D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex3di4): 125(ptr) Variable UniformConstant - 127: TypeImage 41(int) 3D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex3du4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdf4): 131(ptr) Variable UniformConstant - 133: TypeImage 24(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdi4): 134(ptr) Variable UniformConstant - 136: TypeImage 41(int) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdu4): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 1D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex1df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 24(int) 1D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex1di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 41(int) 1D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex1du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) 2D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex2df4a): 149(ptr) Variable UniformConstant - 151: TypeImage 24(int) 2D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex2di4a): 152(ptr) Variable UniformConstant - 154: TypeImage 41(int) 2D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex2du4a): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) Cube array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTexcdf4a): 158(ptr) Variable UniformConstant - 160: TypeImage 24(int) Cube array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTexcdi4a): 161(ptr) Variable UniformConstant - 163: TypeImage 41(int) Cube array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTexcdu4a): 164(ptr) Variable UniformConstant + 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 - 8(r01): 7(ptr) Variable Function - 28(r03): 7(ptr) Variable Function - 40(r05): 7(ptr) Variable Function - 53(r21): 7(ptr) Variable Function - 73(r23): 7(ptr) Variable Function - 87(r25): 7(ptr) Variable Function - 104(psout): 103(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 23: 22(fvec2) CompositeConstruct 20 21 - 26: 6(float) CompositeExtract 23 1 - 27: 6(float) ImageSampleDrefImplicitLod 19 23 26 ConstOffset 25 - Store 8(r01) 27 - 32: 29 Load 31(g_tTex1di4) - 33: 13 Load 15(g_sSamp) - 36: 35 SampledImage 32 33 - 37: 22(fvec2) CompositeConstruct 20 21 - 38: 6(float) CompositeExtract 37 1 - 39: 6(float) ImageSampleDrefImplicitLod 36 37 38 ConstOffset 25 - Store 28(r03) 39 - 45: 42 Load 44(g_tTex1du4) - 46: 13 Load 15(g_sSamp) - 49: 48 SampledImage 45 46 - 50: 22(fvec2) CompositeConstruct 20 21 - 51: 6(float) CompositeExtract 50 1 - 52: 6(float) ImageSampleDrefImplicitLod 49 50 51 ConstOffset 25 - Store 40(r05) 52 - 57: 54 Load 56(g_tTex2df4) - 58: 13 Load 15(g_sSamp) - 61: 60 SampledImage 57 58 - 65: 6(float) CompositeExtract 63 0 - 66: 6(float) CompositeExtract 63 1 - 67: 64(fvec3) CompositeConstruct 65 66 21 - 71: 6(float) CompositeExtract 67 2 - 72: 6(float) ImageSampleDrefImplicitLod 61 67 71 ConstOffset 70 - Store 53(r21) 72 - 77: 74 Load 76(g_tTex2di4) - 78: 13 Load 15(g_sSamp) - 81: 80 SampledImage 77 78 - 82: 6(float) CompositeExtract 63 0 - 83: 6(float) CompositeExtract 63 1 - 84: 64(fvec3) CompositeConstruct 82 83 21 - 85: 6(float) CompositeExtract 84 2 - 86: 6(float) ImageSampleDrefImplicitLod 81 84 85 ConstOffset 70 - Store 73(r23) 86 - 91: 88 Load 90(g_tTex2du4) - 92: 13 Load 15(g_sSamp) - 95: 94 SampledImage 91 92 - 96: 6(float) CompositeExtract 63 0 - 97: 6(float) CompositeExtract 63 1 - 98: 64(fvec3) CompositeConstruct 96 97 21 - 99: 6(float) CompositeExtract 98 2 - 100: 6(float) ImageSampleDrefImplicitLod 95 98 99 ConstOffset 70 - Store 87(r25) 100 - 109: 108(ptr) AccessChain 104(psout) 105 - Store 109 107 - 111: 7(ptr) AccessChain 104(psout) 110 - Store 111 106 - 114: 108(ptr) AccessChain 104(psout) 105 - 115: 101(fvec4) Load 114 - Store 113(Color) 115 - 118: 7(ptr) AccessChain 104(psout) 110 - 119: 6(float) Load 118 - Store 117(Depth) 119 +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 index 013a645c49..ae6078cac7 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -1,18 +1,19 @@ hlsl.samplecmp.offsetarray.dx10.frag -Shader version: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 @@ -21,13 +22,13 @@ gl_FragCoord origin is upper left 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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 @@ -36,13 +37,13 @@ gl_FragCoord origin is upper left 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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 @@ -51,13 +52,13 @@ gl_FragCoord origin is upper left 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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -68,13 +69,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -85,13 +86,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -101,9 +102,9 @@ gl_FragCoord origin is upper left 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 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: @@ -111,72 +112,79 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:66 Sequence -0:66 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:66 Constant: -0:66 0 (const int) -0:66 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 @@ -185,13 +193,13 @@ gl_FragCoord origin is upper left 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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 @@ -200,13 +208,13 @@ gl_FragCoord origin is upper left 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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 @@ -215,13 +223,13 @@ gl_FragCoord origin is upper left 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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -232,13 +240,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -249,13 +257,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -265,9 +273,9 @@ gl_FragCoord origin is upper left 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 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: @@ -275,309 +283,322 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:66 Sequence -0:66 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:66 Constant: -0:66 0 (const int) -0:66 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 177 +// 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" 124 128 + EntryPoint Fragment 4 "main" 126 130 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r11" - Name 11 "g_tTex1df4a" - Name 15 "g_sSamp" - Name 33 "r13" - Name 36 "g_tTex1di4a" - Name 47 "r15" - Name 51 "g_tTex1du4a" - Name 62 "r31" - Name 65 "g_tTex2df4a" + 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 98 "r35" - Name 101 "g_tTex2du4a" - Name 113 "PS_OUTPUT" - MemberName 113(PS_OUTPUT) 0 "Color" - MemberName 113(PS_OUTPUT) 1 "Depth" - Name 115 "psout" - Name 124 "Color" - Name 128 "Depth" - Name 134 "g_tTex1df4" - Name 137 "g_tTex1di4" - Name 140 "g_tTex1du4" - Name 143 "g_tTex2df4" - Name 146 "g_tTex2di4" - Name 149 "g_tTex2du4" - Name 152 "g_tTex3df4" - Name 155 "g_tTex3di4" - Name 158 "g_tTex3du4" - Name 161 "g_tTexcdf4" - Name 164 "g_tTexcdi4" - Name 167 "g_tTexcdu4" - Name 170 "g_tTexcdf4a" - Name 173 "g_tTexcdi4a" - Name 176 "g_tTexcdu4a" - Decorate 11(g_tTex1df4a) DescriptorSet 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 36(g_tTex1di4a) DescriptorSet 0 - Decorate 51(g_tTex1du4a) DescriptorSet 0 - Decorate 65(g_tTex2df4a) DescriptorSet 0 + 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 101(g_tTex2du4a) DescriptorSet 0 - Decorate 124(Color) Location 0 - Decorate 128(Depth) BuiltIn FragDepth - Decorate 134(g_tTex1df4) DescriptorSet 0 - Decorate 134(g_tTex1df4) Binding 0 - Decorate 137(g_tTex1di4) DescriptorSet 0 - Decorate 140(g_tTex1du4) DescriptorSet 0 - Decorate 143(g_tTex2df4) DescriptorSet 0 - Decorate 146(g_tTex2di4) DescriptorSet 0 - Decorate 149(g_tTex2du4) DescriptorSet 0 - Decorate 152(g_tTex3df4) DescriptorSet 0 - Decorate 155(g_tTex3di4) DescriptorSet 0 - Decorate 158(g_tTex3du4) DescriptorSet 0 - Decorate 161(g_tTexcdf4) DescriptorSet 0 - Decorate 164(g_tTexcdi4) DescriptorSet 0 - Decorate 167(g_tTexcdu4) DescriptorSet 0 - Decorate 170(g_tTexcdf4a) DescriptorSet 0 - Decorate 173(g_tTexcdi4a) DescriptorSet 0 - Decorate 176(g_tTexcdu4a) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D array sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4a): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth array sampled format:Unknown - 18: TypeSampledImage 17 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1061158912 - 25: TypeVector 6(float) 3 - 29: TypeInt 32 1 - 30: 29(int) Constant 2 - 34: TypeImage 29(int) 1D array sampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(g_tTex1di4a): 35(ptr) Variable UniformConstant - 39: TypeImage 29(int) 1D depth array sampled format:Unknown - 40: TypeSampledImage 39 - 48: TypeInt 32 0 - 49: TypeImage 48(int) 1D array sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex1du4a): 50(ptr) Variable UniformConstant - 54: TypeImage 48(int) 1D depth array sampled format:Unknown - 55: TypeSampledImage 54 - 63: TypeImage 6(float) 2D array sampled format:Unknown - 64: TypePointer UniformConstant 63 - 65(g_tTex2df4a): 64(ptr) Variable UniformConstant - 68: TypeImage 6(float) 2D depth array sampled format:Unknown - 69: TypeSampledImage 68 - 71: 6(float) Constant 1050253722 - 72: 25(fvec3) ConstantComposite 21 22 71 - 73: TypeVector 6(float) 4 - 78: TypeVector 29(int) 2 - 79: 29(int) Constant 3 - 80: 78(ivec2) ConstantComposite 30 79 - 84: TypeImage 29(int) 2D array sampled format:Unknown + 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: TypeImage 29(int) 2D depth array sampled format:Unknown - 90: TypeSampledImage 89 - 99: TypeImage 48(int) 2D array sampled format:Unknown - 100: TypePointer UniformConstant 99 -101(g_tTex2du4a): 100(ptr) Variable UniformConstant - 104: TypeImage 48(int) 2D depth array sampled format:Unknown - 105: TypeSampledImage 104 - 113(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) - 114: TypePointer Function 113(PS_OUTPUT) - 116: 29(int) Constant 0 - 117: 6(float) Constant 1065353216 - 118: 73(fvec4) ConstantComposite 117 117 117 117 - 119: TypePointer Function 73(fvec4) - 121: 29(int) Constant 1 - 123: TypePointer Output 73(fvec4) - 124(Color): 123(ptr) Variable Output - 127: TypePointer Output 6(float) - 128(Depth): 127(ptr) Variable Output - 132: TypeImage 6(float) 1D sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTex1df4): 133(ptr) Variable UniformConstant - 135: TypeImage 29(int) 1D sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTex1di4): 136(ptr) Variable UniformConstant - 138: TypeImage 48(int) 1D sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTex1du4): 139(ptr) Variable UniformConstant - 141: TypeImage 6(float) 2D sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTex2df4): 142(ptr) Variable UniformConstant - 144: TypeImage 29(int) 2D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex2di4): 145(ptr) Variable UniformConstant - 147: TypeImage 48(int) 2D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex2du4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) 3D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex3df4): 151(ptr) Variable UniformConstant - 153: TypeImage 29(int) 3D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex3di4): 154(ptr) Variable UniformConstant - 156: TypeImage 48(int) 3D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTex3du4): 157(ptr) Variable UniformConstant - 159: TypeImage 6(float) Cube sampled format:Unknown - 160: TypePointer UniformConstant 159 - 161(g_tTexcdf4): 160(ptr) Variable UniformConstant - 162: TypeImage 29(int) Cube sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(g_tTexcdi4): 163(ptr) Variable UniformConstant - 165: TypeImage 48(int) Cube sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTexcdu4): 166(ptr) Variable UniformConstant - 168: TypeImage 6(float) Cube array sampled format:Unknown - 169: TypePointer UniformConstant 168 -170(g_tTexcdf4a): 169(ptr) Variable UniformConstant - 171: TypeImage 29(int) Cube array sampled format:Unknown - 172: TypePointer UniformConstant 171 -173(g_tTexcdi4a): 172(ptr) Variable UniformConstant - 174: TypeImage 48(int) Cube array sampled format:Unknown - 175: TypePointer UniformConstant 174 -176(g_tTexcdu4a): 175(ptr) Variable UniformConstant + 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 - 8(r11): 7(ptr) Variable Function - 33(r13): 7(ptr) Variable Function - 47(r15): 7(ptr) Variable Function - 62(r31): 7(ptr) Variable Function - 83(r33): 7(ptr) Variable Function - 98(r35): 7(ptr) Variable Function - 115(psout): 114(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4a) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 26: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 23 1 - 28: 25(fvec3) CompositeConstruct 26 27 24 - 31: 6(float) CompositeExtract 28 2 - 32: 6(float) ImageSampleDrefImplicitLod 19 28 31 ConstOffset 30 - Store 8(r11) 32 - 37: 34 Load 36(g_tTex1di4a) - 38: 13 Load 15(g_sSamp) - 41: 40 SampledImage 37 38 - 42: 6(float) CompositeExtract 23 0 - 43: 6(float) CompositeExtract 23 1 - 44: 25(fvec3) CompositeConstruct 42 43 24 - 45: 6(float) CompositeExtract 44 2 - 46: 6(float) ImageSampleDrefImplicitLod 41 44 45 ConstOffset 30 - Store 33(r13) 46 - 52: 49 Load 51(g_tTex1du4a) - 53: 13 Load 15(g_sSamp) - 56: 55 SampledImage 52 53 - 57: 6(float) CompositeExtract 23 0 - 58: 6(float) CompositeExtract 23 1 - 59: 25(fvec3) CompositeConstruct 57 58 24 - 60: 6(float) CompositeExtract 59 2 - 61: 6(float) ImageSampleDrefImplicitLod 56 59 60 ConstOffset 30 - Store 47(r15) 61 - 66: 63 Load 65(g_tTex2df4a) - 67: 13 Load 15(g_sSamp) - 70: 69 SampledImage 66 67 - 74: 6(float) CompositeExtract 72 0 - 75: 6(float) CompositeExtract 72 1 - 76: 6(float) CompositeExtract 72 2 - 77: 73(fvec4) CompositeConstruct 74 75 76 24 - 81: 6(float) CompositeExtract 77 3 - 82: 6(float) ImageSampleDrefImplicitLod 70 77 81 ConstOffset 80 - Store 62(r31) 82 - 87: 84 Load 86(g_tTex2di4a) - 88: 13 Load 15(g_sSamp) - 91: 90 SampledImage 87 88 - 92: 6(float) CompositeExtract 72 0 - 93: 6(float) CompositeExtract 72 1 - 94: 6(float) CompositeExtract 72 2 - 95: 73(fvec4) CompositeConstruct 92 93 94 24 - 96: 6(float) CompositeExtract 95 3 - 97: 6(float) ImageSampleDrefImplicitLod 91 95 96 ConstOffset 80 - Store 83(r33) 97 - 102: 99 Load 101(g_tTex2du4a) - 103: 13 Load 15(g_sSamp) - 106: 105 SampledImage 102 103 - 107: 6(float) CompositeExtract 72 0 - 108: 6(float) CompositeExtract 72 1 - 109: 6(float) CompositeExtract 72 2 - 110: 73(fvec4) CompositeConstruct 107 108 109 24 - 111: 6(float) CompositeExtract 110 3 - 112: 6(float) ImageSampleDrefImplicitLod 106 110 111 ConstOffset 80 - Store 98(r35) 112 - 120: 119(ptr) AccessChain 115(psout) 116 - Store 120 118 - 122: 7(ptr) AccessChain 115(psout) 121 - Store 122 117 - 125: 119(ptr) AccessChain 115(psout) 116 - 126: 73(fvec4) Load 125 - Store 124(Color) 126 - 129: 7(ptr) AccessChain 115(psout) 121 - 130: 6(float) Load 129 - Store 128(Depth) 130 +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 index 29e02cd908..ae5b118963 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -1,18 +1,19 @@ hlsl.samplecmplevelzero.array.dx10.frag -Shader version: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 @@ -21,13 +22,13 @@ gl_FragCoord origin is upper left 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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 @@ -36,13 +37,13 @@ gl_FragCoord origin is upper left 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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 @@ -51,13 +52,13 @@ gl_FragCoord origin is upper left 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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -67,13 +68,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -83,13 +84,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -99,13 +100,13 @@ gl_FragCoord origin is upper left 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 textureCubeArray) -0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp 4-component vector of float) +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 @@ -116,13 +117,13 @@ gl_FragCoord origin is upper left 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 itextureCubeArray) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -133,13 +134,13 @@ gl_FragCoord origin is upper left 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 utextureCubeArray) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -149,9 +150,9 @@ gl_FragCoord origin is upper left 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 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: @@ -159,72 +160,79 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:59 Sequence -0:59 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:59 Constant: -0:59 0 (const int) -0:59 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 @@ -233,13 +241,13 @@ gl_FragCoord origin is upper left 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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 @@ -248,13 +256,13 @@ gl_FragCoord origin is upper left 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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 @@ -263,13 +271,13 @@ gl_FragCoord origin is upper left 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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -279,13 +287,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -295,13 +303,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -311,13 +319,13 @@ gl_FragCoord origin is upper left 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 textureCubeArray) -0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp 4-component vector of float) +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 @@ -328,13 +336,13 @@ gl_FragCoord origin is upper left 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 itextureCubeArray) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -345,13 +353,13 @@ gl_FragCoord origin is upper left 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 utextureCubeArray) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -361,9 +369,9 @@ gl_FragCoord origin is upper left 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 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: @@ -371,350 +379,360 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:59 Sequence -0:59 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:59 Constant: -0:59 0 (const int) -0:59 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 212 +// 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" 168 172 + EntryPoint Fragment 4 "main" 167 171 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r10" - Name 11 "g_tTex1df4a" - Name 15 "g_sSamp" - Name 32 "r12" - Name 36 "g_tTex1di4a" - Name 47 "r14" - Name 51 "g_tTex1du4a" - Name 62 "r30" - Name 65 "g_tTex2df4a" + 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 95 "r34" - Name 98 "g_tTex2du4a" - Name 110 "r60" - Name 113 "g_tTexcdf4a" - Name 127 "r62" - Name 130 "g_tTexcdi4a" - Name 142 "r64" - Name 145 "g_tTexcdu4a" - Name 157 "PS_OUTPUT" - MemberName 157(PS_OUTPUT) 0 "Color" - MemberName 157(PS_OUTPUT) 1 "Depth" - Name 159 "psout" - Name 168 "Color" - Name 172 "Depth" - Name 178 "g_tTex1df4" - Name 181 "g_tTex1di4" - Name 184 "g_tTex1du4" - Name 187 "g_tTex2df4" - Name 190 "g_tTex2di4" - Name 193 "g_tTex2du4" - Name 196 "g_tTex3df4" - Name 199 "g_tTex3di4" - Name 202 "g_tTex3du4" - Name 205 "g_tTexcdf4" - Name 208 "g_tTexcdi4" - Name 211 "g_tTexcdu4" - Decorate 11(g_tTex1df4a) DescriptorSet 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 36(g_tTex1di4a) DescriptorSet 0 - Decorate 51(g_tTex1du4a) DescriptorSet 0 - Decorate 65(g_tTex2df4a) DescriptorSet 0 + 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 98(g_tTex2du4a) DescriptorSet 0 - Decorate 113(g_tTexcdf4a) DescriptorSet 0 - Decorate 130(g_tTexcdi4a) DescriptorSet 0 - Decorate 145(g_tTexcdu4a) DescriptorSet 0 - Decorate 168(Color) Location 0 - Decorate 172(Depth) BuiltIn FragDepth - Decorate 178(g_tTex1df4) DescriptorSet 0 - Decorate 178(g_tTex1df4) Binding 0 - Decorate 181(g_tTex1di4) DescriptorSet 0 - Decorate 184(g_tTex1du4) DescriptorSet 0 - Decorate 187(g_tTex2df4) DescriptorSet 0 - Decorate 190(g_tTex2di4) DescriptorSet 0 - Decorate 193(g_tTex2du4) DescriptorSet 0 - Decorate 196(g_tTex3df4) DescriptorSet 0 - Decorate 199(g_tTex3di4) DescriptorSet 0 - Decorate 202(g_tTex3du4) DescriptorSet 0 - Decorate 205(g_tTexcdf4) DescriptorSet 0 - Decorate 208(g_tTexcdi4) DescriptorSet 0 - Decorate 211(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D array sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4a): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth array sampled format:Unknown - 18: TypeSampledImage 17 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1061158912 - 25: TypeVector 6(float) 3 - 29: 6(float) Constant 0 - 33: TypeInt 32 1 - 34: TypeImage 33(int) 1D array sampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(g_tTex1di4a): 35(ptr) Variable UniformConstant - 39: TypeImage 33(int) 1D depth array sampled format:Unknown - 40: TypeSampledImage 39 - 48: TypeInt 32 0 - 49: TypeImage 48(int) 1D array sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex1du4a): 50(ptr) Variable UniformConstant - 54: TypeImage 48(int) 1D depth array sampled format:Unknown - 55: TypeSampledImage 54 - 63: TypeImage 6(float) 2D array sampled format:Unknown - 64: TypePointer UniformConstant 63 - 65(g_tTex2df4a): 64(ptr) Variable UniformConstant - 68: TypeImage 6(float) 2D depth array sampled format:Unknown - 69: TypeSampledImage 68 - 71: 6(float) Constant 1050253722 - 72: 25(fvec3) ConstantComposite 21 22 71 - 73: TypeVector 6(float) 4 - 81: TypeImage 33(int) 2D array sampled format:Unknown + 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: TypeImage 33(int) 2D depth array sampled format:Unknown - 87: TypeSampledImage 86 - 96: TypeImage 48(int) 2D array sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTex2du4a): 97(ptr) Variable UniformConstant - 101: TypeImage 48(int) 2D depth array sampled format:Unknown - 102: TypeSampledImage 101 - 111: TypeImage 6(float) Cube array sampled format:Unknown - 112: TypePointer UniformConstant 111 -113(g_tTexcdf4a): 112(ptr) Variable UniformConstant - 116: TypeImage 6(float) Cube depth array sampled format:Unknown - 117: TypeSampledImage 116 - 119: 6(float) Constant 1053609165 - 120: 73(fvec4) ConstantComposite 21 22 71 119 - 128: TypeImage 33(int) Cube array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTexcdi4a): 129(ptr) Variable UniformConstant - 133: TypeImage 33(int) Cube depth array sampled format:Unknown - 134: TypeSampledImage 133 - 143: TypeImage 48(int) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdu4a): 144(ptr) Variable UniformConstant - 148: TypeImage 48(int) Cube depth array sampled format:Unknown - 149: TypeSampledImage 148 - 157(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) - 158: TypePointer Function 157(PS_OUTPUT) - 160: 33(int) Constant 0 - 161: 6(float) Constant 1065353216 - 162: 73(fvec4) ConstantComposite 161 161 161 161 - 163: TypePointer Function 73(fvec4) - 165: 33(int) Constant 1 - 167: TypePointer Output 73(fvec4) - 168(Color): 167(ptr) Variable Output - 171: TypePointer Output 6(float) - 172(Depth): 171(ptr) Variable Output - 176: TypeImage 6(float) 1D sampled format:Unknown - 177: TypePointer UniformConstant 176 - 178(g_tTex1df4): 177(ptr) Variable UniformConstant - 179: TypeImage 33(int) 1D sampled format:Unknown - 180: TypePointer UniformConstant 179 - 181(g_tTex1di4): 180(ptr) Variable UniformConstant - 182: TypeImage 48(int) 1D sampled format:Unknown - 183: TypePointer UniformConstant 182 - 184(g_tTex1du4): 183(ptr) Variable UniformConstant - 185: TypeImage 6(float) 2D sampled format:Unknown - 186: TypePointer UniformConstant 185 - 187(g_tTex2df4): 186(ptr) Variable UniformConstant - 188: TypeImage 33(int) 2D sampled format:Unknown - 189: TypePointer UniformConstant 188 - 190(g_tTex2di4): 189(ptr) Variable UniformConstant - 191: TypeImage 48(int) 2D sampled format:Unknown - 192: TypePointer UniformConstant 191 - 193(g_tTex2du4): 192(ptr) Variable UniformConstant - 194: TypeImage 6(float) 3D sampled format:Unknown - 195: TypePointer UniformConstant 194 - 196(g_tTex3df4): 195(ptr) Variable UniformConstant - 197: TypeImage 33(int) 3D sampled format:Unknown - 198: TypePointer UniformConstant 197 - 199(g_tTex3di4): 198(ptr) Variable UniformConstant - 200: TypeImage 48(int) 3D sampled format:Unknown - 201: TypePointer UniformConstant 200 - 202(g_tTex3du4): 201(ptr) Variable UniformConstant - 203: TypeImage 6(float) Cube sampled format:Unknown - 204: TypePointer UniformConstant 203 - 205(g_tTexcdf4): 204(ptr) Variable UniformConstant - 206: TypeImage 33(int) Cube sampled format:Unknown - 207: TypePointer UniformConstant 206 - 208(g_tTexcdi4): 207(ptr) Variable UniformConstant - 209: TypeImage 48(int) Cube sampled format:Unknown - 210: TypePointer UniformConstant 209 - 211(g_tTexcdu4): 210(ptr) Variable UniformConstant + 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 - 8(r10): 7(ptr) Variable Function - 32(r12): 7(ptr) Variable Function - 47(r14): 7(ptr) Variable Function - 62(r30): 7(ptr) Variable Function - 80(r32): 7(ptr) Variable Function - 95(r34): 7(ptr) Variable Function - 110(r60): 7(ptr) Variable Function - 127(r62): 7(ptr) Variable Function - 142(r64): 7(ptr) Variable Function - 159(psout): 158(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4a) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 26: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 23 1 - 28: 25(fvec3) CompositeConstruct 26 27 24 - 30: 6(float) CompositeExtract 28 2 - 31: 6(float) ImageSampleDrefExplicitLod 19 28 30 Lod 29 - Store 8(r10) 31 - 37: 34 Load 36(g_tTex1di4a) - 38: 13 Load 15(g_sSamp) - 41: 40 SampledImage 37 38 - 42: 6(float) CompositeExtract 23 0 - 43: 6(float) CompositeExtract 23 1 - 44: 25(fvec3) CompositeConstruct 42 43 24 - 45: 6(float) CompositeExtract 44 2 - 46: 6(float) ImageSampleDrefExplicitLod 41 44 45 Lod 29 - Store 32(r12) 46 - 52: 49 Load 51(g_tTex1du4a) - 53: 13 Load 15(g_sSamp) - 56: 55 SampledImage 52 53 - 57: 6(float) CompositeExtract 23 0 - 58: 6(float) CompositeExtract 23 1 - 59: 25(fvec3) CompositeConstruct 57 58 24 - 60: 6(float) CompositeExtract 59 2 - 61: 6(float) ImageSampleDrefExplicitLod 56 59 60 Lod 29 - Store 47(r14) 61 - 66: 63 Load 65(g_tTex2df4a) - 67: 13 Load 15(g_sSamp) - 70: 69 SampledImage 66 67 - 74: 6(float) CompositeExtract 72 0 - 75: 6(float) CompositeExtract 72 1 - 76: 6(float) CompositeExtract 72 2 - 77: 73(fvec4) CompositeConstruct 74 75 76 24 - 78: 6(float) CompositeExtract 77 3 - 79: 6(float) ImageSampleDrefExplicitLod 70 77 78 Lod 29 - Store 62(r30) 79 - 84: 81 Load 83(g_tTex2di4a) - 85: 13 Load 15(g_sSamp) - 88: 87 SampledImage 84 85 - 89: 6(float) CompositeExtract 72 0 - 90: 6(float) CompositeExtract 72 1 - 91: 6(float) CompositeExtract 72 2 - 92: 73(fvec4) CompositeConstruct 89 90 91 24 - 93: 6(float) CompositeExtract 92 3 - 94: 6(float) ImageSampleDrefExplicitLod 88 92 93 Lod 29 - Store 80(r32) 94 - 99: 96 Load 98(g_tTex2du4a) - 100: 13 Load 15(g_sSamp) - 103: 102 SampledImage 99 100 - 104: 6(float) CompositeExtract 72 0 - 105: 6(float) CompositeExtract 72 1 - 106: 6(float) CompositeExtract 72 2 - 107: 73(fvec4) CompositeConstruct 104 105 106 24 - 108: 6(float) CompositeExtract 107 3 - 109: 6(float) ImageSampleDrefExplicitLod 103 107 108 Lod 29 - Store 95(r34) 109 - 114: 111 Load 113(g_tTexcdf4a) - 115: 13 Load 15(g_sSamp) - 118: 117 SampledImage 114 115 - 121: 6(float) CompositeExtract 120 0 - 122: 6(float) CompositeExtract 120 1 - 123: 6(float) CompositeExtract 120 2 - 124: 6(float) CompositeExtract 120 3 - 125: 73(fvec4) CompositeConstruct 121 122 123 124 - 126: 6(float) ImageSampleDrefExplicitLod 118 125 24 Lod 24 - Store 110(r60) 126 - 131: 128 Load 130(g_tTexcdi4a) - 132: 13 Load 15(g_sSamp) - 135: 134 SampledImage 131 132 - 136: 6(float) CompositeExtract 120 0 - 137: 6(float) CompositeExtract 120 1 - 138: 6(float) CompositeExtract 120 2 - 139: 6(float) CompositeExtract 120 3 - 140: 73(fvec4) CompositeConstruct 136 137 138 139 - 141: 6(float) ImageSampleDrefExplicitLod 135 140 24 Lod 24 - Store 127(r62) 141 - 146: 143 Load 145(g_tTexcdu4a) - 147: 13 Load 15(g_sSamp) - 150: 149 SampledImage 146 147 - 151: 6(float) CompositeExtract 120 0 - 152: 6(float) CompositeExtract 120 1 - 153: 6(float) CompositeExtract 120 2 - 154: 6(float) CompositeExtract 120 3 - 155: 73(fvec4) CompositeConstruct 151 152 153 154 - 156: 6(float) ImageSampleDrefExplicitLod 150 155 24 Lod 24 - Store 142(r64) 156 - 164: 163(ptr) AccessChain 159(psout) 160 - Store 164 162 - 166: 7(ptr) AccessChain 159(psout) 165 - Store 166 161 - 169: 163(ptr) AccessChain 159(psout) 160 - 170: 73(fvec4) Load 169 - Store 168(Color) 170 - 173: 7(ptr) AccessChain 159(psout) 165 - 174: 6(float) Load 173 - Store 172(Depth) 174 +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 index de8227649a..53ecbf2e06 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -1,18 +1,19 @@ hlsl.samplecmplevelzero.basic.dx10.frag -Shader version: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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: @@ -20,13 +21,13 @@ gl_FragCoord origin is upper left 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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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: @@ -34,13 +35,13 @@ gl_FragCoord origin is upper left 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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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: @@ -48,13 +49,13 @@ gl_FragCoord origin is upper left 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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 @@ -63,13 +64,13 @@ gl_FragCoord origin is upper left 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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 @@ -78,13 +79,13 @@ gl_FragCoord origin is upper left 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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 @@ -93,13 +94,13 @@ gl_FragCoord origin is upper left 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 textureCube) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -109,13 +110,13 @@ gl_FragCoord origin is upper left 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 itextureCube) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -125,13 +126,13 @@ gl_FragCoord origin is upper left 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 utextureCube) -0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp 4-component vector of float) +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 @@ -140,9 +141,9 @@ gl_FragCoord origin is upper left 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 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: @@ -150,72 +151,79 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:60 Sequence -0:60 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 0 (const int) -0:60 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 1 (const int) -0:60 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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: @@ -223,13 +231,13 @@ gl_FragCoord origin is upper left 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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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: @@ -237,13 +245,13 @@ gl_FragCoord origin is upper left 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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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: @@ -251,13 +259,13 @@ gl_FragCoord origin is upper left 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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 @@ -266,13 +274,13 @@ gl_FragCoord origin is upper left 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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 @@ -281,13 +289,13 @@ gl_FragCoord origin is upper left 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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 @@ -296,13 +304,13 @@ gl_FragCoord origin is upper left 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 textureCube) -0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp 4-component vector of float) +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 @@ -312,13 +320,13 @@ gl_FragCoord origin is upper left 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 itextureCube) -0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp 4-component vector of float) +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 @@ -328,13 +336,13 @@ gl_FragCoord origin is upper left 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 utextureCube) -0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp 4-component vector of float) +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 @@ -343,9 +351,9 @@ gl_FragCoord origin is upper left 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 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: @@ -353,339 +361,349 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:60 Sequence -0:60 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 0 (const int) -0:60 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:60 Constant: -0:60 1 (const int) -0:60 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 201 +// 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" 157 161 + EntryPoint Fragment 4 "main" 156 160 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 11 "g_tTex1df4" - Name 15 "g_sSamp" - Name 27 "r02" - Name 31 "g_tTex1di4" - Name 40 "r04" - Name 44 "g_tTex1du4" - Name 53 "r20" - Name 56 "g_tTex2df4" - Name 70 "r22" - Name 73 "g_tTex2di4" + Name 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 98 "r50" - Name 101 "g_tTexcdf4" - Name 116 "r52" - Name 119 "g_tTexcdi4" - Name 131 "r54" - Name 134 "g_tTexcdu4" - Name 146 "PS_OUTPUT" - MemberName 146(PS_OUTPUT) 0 "Color" - MemberName 146(PS_OUTPUT) 1 "Depth" - Name 148 "psout" - Name 157 "Color" - Name 161 "Depth" - Name 167 "g_tTex3df4" - Name 170 "g_tTex3di4" - Name 173 "g_tTex3du4" - Name 176 "g_tTex1df4a" - Name 179 "g_tTex1di4a" - Name 182 "g_tTex1du4a" - Name 185 "g_tTex2df4a" - Name 188 "g_tTex2di4a" - Name 191 "g_tTex2du4a" - Name 194 "g_tTexcdf4a" - Name 197 "g_tTexcdi4a" - Name 200 "g_tTexcdu4a" - Decorate 11(g_tTex1df4) DescriptorSet 0 - Decorate 11(g_tTex1df4) Binding 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 31(g_tTex1di4) DescriptorSet 0 - Decorate 44(g_tTex1du4) DescriptorSet 0 - Decorate 56(g_tTex2df4) DescriptorSet 0 - Decorate 73(g_tTex2di4) DescriptorSet 0 + 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 101(g_tTexcdf4) DescriptorSet 0 - Decorate 119(g_tTexcdi4) DescriptorSet 0 - Decorate 134(g_tTexcdu4) DescriptorSet 0 - Decorate 157(Color) Location 0 - Decorate 161(Depth) BuiltIn FragDepth - Decorate 167(g_tTex3df4) DescriptorSet 0 - Decorate 170(g_tTex3di4) DescriptorSet 0 - Decorate 173(g_tTex3du4) DescriptorSet 0 - Decorate 176(g_tTex1df4a) DescriptorSet 0 - Decorate 179(g_tTex1di4a) DescriptorSet 0 - Decorate 182(g_tTex1du4a) DescriptorSet 0 - Decorate 185(g_tTex2df4a) DescriptorSet 0 - Decorate 188(g_tTex2di4a) DescriptorSet 0 - Decorate 191(g_tTex2du4a) DescriptorSet 0 - Decorate 194(g_tTexcdf4a) DescriptorSet 0 - Decorate 197(g_tTexcdi4a) DescriptorSet 0 - Decorate 200(g_tTexcdu4a) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth sampled format:Unknown - 18: TypeSampledImage 17 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1061158912 - 22: TypeVector 6(float) 2 - 24: 6(float) Constant 0 - 28: TypeInt 32 1 - 29: TypeImage 28(int) 1D sampled format:Unknown - 30: TypePointer UniformConstant 29 - 31(g_tTex1di4): 30(ptr) Variable UniformConstant - 34: TypeImage 28(int) 1D depth sampled format:Unknown - 35: TypeSampledImage 34 - 41: TypeInt 32 0 - 42: TypeImage 41(int) 1D sampled format:Unknown - 43: TypePointer UniformConstant 42 - 44(g_tTex1du4): 43(ptr) Variable UniformConstant - 47: TypeImage 41(int) 1D depth sampled format:Unknown - 48: TypeSampledImage 47 - 54: TypeImage 6(float) 2D sampled format:Unknown - 55: TypePointer UniformConstant 54 - 56(g_tTex2df4): 55(ptr) Variable UniformConstant - 59: TypeImage 6(float) 2D depth sampled format:Unknown - 60: TypeSampledImage 59 - 62: 6(float) Constant 1045220557 - 63: 22(fvec2) ConstantComposite 20 62 - 64: TypeVector 6(float) 3 - 71: TypeImage 28(int) 2D sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2di4): 72(ptr) Variable UniformConstant - 76: TypeImage 28(int) 2D depth sampled format:Unknown - 77: TypeSampledImage 76 - 85: TypeImage 41(int) 2D sampled format:Unknown + 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: TypeImage 41(int) 2D depth sampled format:Unknown - 91: TypeSampledImage 90 - 99: TypeImage 6(float) Cube sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTexcdf4): 100(ptr) Variable UniformConstant - 104: TypeImage 6(float) Cube depth sampled format:Unknown - 105: TypeSampledImage 104 - 107: 6(float) Constant 1050253722 - 108: 64(fvec3) ConstantComposite 20 62 107 - 109: TypeVector 6(float) 4 - 117: TypeImage 28(int) Cube sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTexcdi4): 118(ptr) Variable UniformConstant - 122: TypeImage 28(int) Cube depth sampled format:Unknown - 123: TypeSampledImage 122 - 132: TypeImage 41(int) Cube sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTexcdu4): 133(ptr) Variable UniformConstant - 137: TypeImage 41(int) Cube depth sampled format:Unknown - 138: TypeSampledImage 137 - 146(PS_OUTPUT): TypeStruct 109(fvec4) 6(float) - 147: TypePointer Function 146(PS_OUTPUT) - 149: 28(int) Constant 0 - 150: 6(float) Constant 1065353216 - 151: 109(fvec4) ConstantComposite 150 150 150 150 - 152: TypePointer Function 109(fvec4) - 154: 28(int) Constant 1 - 156: TypePointer Output 109(fvec4) - 157(Color): 156(ptr) Variable Output - 160: TypePointer Output 6(float) - 161(Depth): 160(ptr) Variable Output - 165: TypeImage 6(float) 3D sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTex3df4): 166(ptr) Variable UniformConstant - 168: TypeImage 28(int) 3D sampled format:Unknown - 169: TypePointer UniformConstant 168 - 170(g_tTex3di4): 169(ptr) Variable UniformConstant - 171: TypeImage 41(int) 3D sampled format:Unknown - 172: TypePointer UniformConstant 171 - 173(g_tTex3du4): 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 28(int) 1D array sampled format:Unknown - 178: TypePointer UniformConstant 177 -179(g_tTex1di4a): 178(ptr) Variable UniformConstant - 180: TypeImage 41(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 28(int) 2D array sampled format:Unknown - 187: TypePointer UniformConstant 186 -188(g_tTex2di4a): 187(ptr) Variable UniformConstant - 189: TypeImage 41(int) 2D array sampled format:Unknown - 190: TypePointer UniformConstant 189 -191(g_tTex2du4a): 190(ptr) Variable UniformConstant - 192: TypeImage 6(float) Cube array sampled format:Unknown - 193: TypePointer UniformConstant 192 -194(g_tTexcdf4a): 193(ptr) Variable UniformConstant - 195: TypeImage 28(int) Cube array sampled format:Unknown - 196: TypePointer UniformConstant 195 -197(g_tTexcdi4a): 196(ptr) Variable UniformConstant - 198: TypeImage 41(int) Cube array sampled format:Unknown - 199: TypePointer UniformConstant 198 -200(g_tTexcdu4a): 199(ptr) Variable UniformConstant + 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 - 8(r00): 7(ptr) Variable Function - 27(r02): 7(ptr) Variable Function - 40(r04): 7(ptr) Variable Function - 53(r20): 7(ptr) Variable Function - 70(r22): 7(ptr) Variable Function - 84(r24): 7(ptr) Variable Function - 98(r50): 7(ptr) Variable Function - 116(r52): 7(ptr) Variable Function - 131(r54): 7(ptr) Variable Function - 148(psout): 147(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 23: 22(fvec2) CompositeConstruct 20 21 - 25: 6(float) CompositeExtract 23 1 - 26: 6(float) ImageSampleDrefExplicitLod 19 23 25 Lod 24 - Store 8(r00) 26 - 32: 29 Load 31(g_tTex1di4) - 33: 13 Load 15(g_sSamp) - 36: 35 SampledImage 32 33 - 37: 22(fvec2) CompositeConstruct 20 21 - 38: 6(float) CompositeExtract 37 1 - 39: 6(float) ImageSampleDrefExplicitLod 36 37 38 Lod 24 - Store 27(r02) 39 - 45: 42 Load 44(g_tTex1du4) - 46: 13 Load 15(g_sSamp) - 49: 48 SampledImage 45 46 - 50: 22(fvec2) CompositeConstruct 20 21 - 51: 6(float) CompositeExtract 50 1 - 52: 6(float) ImageSampleDrefExplicitLod 49 50 51 Lod 24 - Store 40(r04) 52 - 57: 54 Load 56(g_tTex2df4) - 58: 13 Load 15(g_sSamp) - 61: 60 SampledImage 57 58 - 65: 6(float) CompositeExtract 63 0 - 66: 6(float) CompositeExtract 63 1 - 67: 64(fvec3) CompositeConstruct 65 66 21 - 68: 6(float) CompositeExtract 67 2 - 69: 6(float) ImageSampleDrefExplicitLod 61 67 68 Lod 24 - Store 53(r20) 69 - 74: 71 Load 73(g_tTex2di4) - 75: 13 Load 15(g_sSamp) - 78: 77 SampledImage 74 75 - 79: 6(float) CompositeExtract 63 0 - 80: 6(float) CompositeExtract 63 1 - 81: 64(fvec3) CompositeConstruct 79 80 21 - 82: 6(float) CompositeExtract 81 2 - 83: 6(float) ImageSampleDrefExplicitLod 78 81 82 Lod 24 - Store 70(r22) 83 - 88: 85 Load 87(g_tTex2du4) - 89: 13 Load 15(g_sSamp) - 92: 91 SampledImage 88 89 - 93: 6(float) CompositeExtract 63 0 - 94: 6(float) CompositeExtract 63 1 - 95: 64(fvec3) CompositeConstruct 93 94 21 - 96: 6(float) CompositeExtract 95 2 - 97: 6(float) ImageSampleDrefExplicitLod 92 95 96 Lod 24 - Store 84(r24) 97 - 102: 99 Load 101(g_tTexcdf4) - 103: 13 Load 15(g_sSamp) - 106: 105 SampledImage 102 103 - 110: 6(float) CompositeExtract 108 0 - 111: 6(float) CompositeExtract 108 1 - 112: 6(float) CompositeExtract 108 2 - 113: 109(fvec4) CompositeConstruct 110 111 112 21 - 114: 6(float) CompositeExtract 113 3 - 115: 6(float) ImageSampleDrefExplicitLod 106 113 114 Lod 24 - Store 98(r50) 115 - 120: 117 Load 119(g_tTexcdi4) - 121: 13 Load 15(g_sSamp) - 124: 123 SampledImage 120 121 - 125: 6(float) CompositeExtract 108 0 - 126: 6(float) CompositeExtract 108 1 - 127: 6(float) CompositeExtract 108 2 - 128: 109(fvec4) CompositeConstruct 125 126 127 21 - 129: 6(float) CompositeExtract 128 3 - 130: 6(float) ImageSampleDrefExplicitLod 124 128 129 Lod 24 - Store 116(r52) 130 - 135: 132 Load 134(g_tTexcdu4) - 136: 13 Load 15(g_sSamp) - 139: 138 SampledImage 135 136 - 140: 6(float) CompositeExtract 108 0 - 141: 6(float) CompositeExtract 108 1 - 142: 6(float) CompositeExtract 108 2 - 143: 109(fvec4) CompositeConstruct 140 141 142 21 - 144: 6(float) CompositeExtract 143 3 - 145: 6(float) ImageSampleDrefExplicitLod 139 143 144 Lod 24 - Store 131(r54) 145 - 153: 152(ptr) AccessChain 148(psout) 149 - Store 153 151 - 155: 7(ptr) AccessChain 148(psout) 154 - Store 155 150 - 158: 152(ptr) AccessChain 148(psout) 149 - 159: 109(fvec4) Load 158 - Store 157(Color) 159 - 162: 7(ptr) AccessChain 148(psout) 154 - 163: 6(float) Load 162 - Store 161(Depth) 163 +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 index 216ed41917..1d4f2cdec4 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -1,18 +1,19 @@ hlsl.samplecmplevelzero.offset.dx10.frag -Shader version: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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: @@ -22,13 +23,13 @@ gl_FragCoord origin is upper left 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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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: @@ -38,13 +39,13 @@ gl_FragCoord origin is upper left 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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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: @@ -54,13 +55,13 @@ gl_FragCoord origin is upper left 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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 @@ -72,13 +73,13 @@ gl_FragCoord origin is upper left 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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 @@ -90,13 +91,13 @@ gl_FragCoord origin is upper left 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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 @@ -107,9 +108,9 @@ gl_FragCoord origin is upper left 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 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: @@ -117,72 +118,79 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:65 Sequence -0:65 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:65 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:65 Constant: -0:65 1 (const int) -0:65 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1D) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp 2-component vector of float) +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: @@ -192,13 +200,13 @@ gl_FragCoord origin is upper left 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 itexture1D) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp 2-component vector of float) +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: @@ -208,13 +216,13 @@ gl_FragCoord origin is upper left 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 utexture1D) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp 2-component vector of float) +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: @@ -224,13 +232,13 @@ gl_FragCoord origin is upper left 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 texture2D) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp 3-component vector of float) +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 @@ -242,13 +250,13 @@ gl_FragCoord origin is upper left 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 itexture2D) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp 3-component vector of float) +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 @@ -260,13 +268,13 @@ gl_FragCoord origin is upper left 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 utexture2D) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp 3-component vector of float) +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 @@ -277,9 +285,9 @@ gl_FragCoord origin is upper left 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 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: @@ -287,299 +295,312 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:65 Sequence -0:65 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:65 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:65 Constant: -0:65 1 (const int) -0:65 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 167 +// 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" 114 118 + EntryPoint Fragment 4 "main" 116 120 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r01" - Name 11 "g_tTex1df4" - Name 15 "g_sSamp" - Name 29 "r03" - Name 32 "g_tTex1di4" - Name 41 "r05" - Name 45 "g_tTex1du4" - Name 54 "r21" - Name 57 "g_tTex2df4" - Name 74 "r23" - Name 77 "g_tTex2di4" + Name 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 103 "PS_OUTPUT" - MemberName 103(PS_OUTPUT) 0 "Color" - MemberName 103(PS_OUTPUT) 1 "Depth" - Name 105 "psout" - Name 114 "Color" - Name 118 "Depth" - Name 124 "g_tTex3df4" - Name 127 "g_tTex3di4" - Name 130 "g_tTex3du4" - Name 133 "g_tTexcdf4" - Name 136 "g_tTexcdi4" - Name 139 "g_tTexcdu4" - Name 142 "g_tTex1df4a" - Name 145 "g_tTex1di4a" - Name 148 "g_tTex1du4a" - Name 151 "g_tTex2df4a" - Name 154 "g_tTex2di4a" - Name 157 "g_tTex2du4a" - Name 160 "g_tTexcdf4a" - Name 163 "g_tTexcdi4a" - Name 166 "g_tTexcdu4a" - Decorate 11(g_tTex1df4) DescriptorSet 0 - Decorate 11(g_tTex1df4) Binding 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 32(g_tTex1di4) DescriptorSet 0 - Decorate 45(g_tTex1du4) DescriptorSet 0 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 77(g_tTex2di4) DescriptorSet 0 + 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 114(Color) Location 0 - Decorate 118(Depth) BuiltIn FragDepth - Decorate 124(g_tTex3df4) DescriptorSet 0 - Decorate 127(g_tTex3di4) DescriptorSet 0 - Decorate 130(g_tTex3du4) DescriptorSet 0 - Decorate 133(g_tTexcdf4) DescriptorSet 0 - Decorate 136(g_tTexcdi4) DescriptorSet 0 - Decorate 139(g_tTexcdu4) DescriptorSet 0 - Decorate 142(g_tTex1df4a) DescriptorSet 0 - Decorate 145(g_tTex1di4a) DescriptorSet 0 - Decorate 148(g_tTex1du4a) DescriptorSet 0 - Decorate 151(g_tTex2df4a) DescriptorSet 0 - Decorate 154(g_tTex2di4a) DescriptorSet 0 - Decorate 157(g_tTex2du4a) DescriptorSet 0 - Decorate 160(g_tTexcdf4a) DescriptorSet 0 - Decorate 163(g_tTexcdi4a) DescriptorSet 0 - Decorate 166(g_tTexcdu4a) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth sampled format:Unknown - 18: TypeSampledImage 17 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1061158912 - 22: TypeVector 6(float) 2 - 24: 6(float) Constant 0 - 25: TypeInt 32 1 - 26: 25(int) Constant 2 - 30: TypeImage 25(int) 1D sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4): 31(ptr) Variable UniformConstant - 35: TypeImage 25(int) 1D depth sampled format:Unknown - 36: TypeSampledImage 35 - 42: TypeInt 32 0 - 43: TypeImage 42(int) 1D sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex1du4): 44(ptr) Variable UniformConstant - 48: TypeImage 42(int) 1D depth sampled format:Unknown - 49: TypeSampledImage 48 - 55: TypeImage 6(float) 2D sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex2df4): 56(ptr) Variable UniformConstant - 60: TypeImage 6(float) 2D depth sampled format:Unknown - 61: TypeSampledImage 60 - 63: 6(float) Constant 1045220557 - 64: 22(fvec2) ConstantComposite 20 63 - 65: TypeVector 6(float) 3 - 69: TypeVector 25(int) 2 - 70: 25(int) Constant 3 - 71: 69(ivec2) ConstantComposite 26 70 - 75: TypeImage 25(int) 2D sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex2di4): 76(ptr) Variable UniformConstant - 80: TypeImage 25(int) 2D depth sampled format:Unknown - 81: TypeSampledImage 80 - 89: TypeImage 42(int) 2D sampled format:Unknown + 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: TypeImage 42(int) 2D depth sampled format:Unknown - 95: TypeSampledImage 94 - 102: TypeVector 6(float) 4 - 103(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) - 104: TypePointer Function 103(PS_OUTPUT) - 106: 25(int) Constant 0 - 107: 6(float) Constant 1065353216 - 108: 102(fvec4) ConstantComposite 107 107 107 107 - 109: TypePointer Function 102(fvec4) - 111: 25(int) Constant 1 - 113: TypePointer Output 102(fvec4) - 114(Color): 113(ptr) Variable Output - 117: TypePointer Output 6(float) - 118(Depth): 117(ptr) Variable Output - 122: TypeImage 6(float) 3D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex3df4): 123(ptr) Variable UniformConstant - 125: TypeImage 25(int) 3D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex3di4): 126(ptr) Variable UniformConstant - 128: TypeImage 42(int) 3D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex3du4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) Cube sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTexcdf4): 132(ptr) Variable UniformConstant - 134: TypeImage 25(int) Cube sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTexcdi4): 135(ptr) Variable UniformConstant - 137: TypeImage 42(int) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdu4): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) 1D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex1df4a): 141(ptr) Variable UniformConstant - 143: TypeImage 25(int) 1D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex1di4a): 144(ptr) Variable UniformConstant - 146: TypeImage 42(int) 1D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex1du4a): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) 2D array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTex2df4a): 150(ptr) Variable UniformConstant - 152: TypeImage 25(int) 2D array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTex2di4a): 153(ptr) Variable UniformConstant - 155: TypeImage 42(int) 2D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex2du4a): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) Cube array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTexcdf4a): 159(ptr) Variable UniformConstant - 161: TypeImage 25(int) Cube array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTexcdi4a): 162(ptr) Variable UniformConstant - 164: TypeImage 42(int) Cube array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTexcdu4a): 165(ptr) Variable UniformConstant + 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 - 8(r01): 7(ptr) Variable Function - 29(r03): 7(ptr) Variable Function - 41(r05): 7(ptr) Variable Function - 54(r21): 7(ptr) Variable Function - 74(r23): 7(ptr) Variable Function - 88(r25): 7(ptr) Variable Function - 105(psout): 104(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 23: 22(fvec2) CompositeConstruct 20 21 - 27: 6(float) CompositeExtract 23 1 - 28: 6(float) ImageSampleDrefExplicitLod 19 23 27 Lod ConstOffset 24 26 - Store 8(r01) 28 - 33: 30 Load 32(g_tTex1di4) - 34: 13 Load 15(g_sSamp) - 37: 36 SampledImage 33 34 - 38: 22(fvec2) CompositeConstruct 20 21 - 39: 6(float) CompositeExtract 38 1 - 40: 6(float) ImageSampleDrefExplicitLod 37 38 39 Lod ConstOffset 24 26 - Store 29(r03) 40 - 46: 43 Load 45(g_tTex1du4) - 47: 13 Load 15(g_sSamp) - 50: 49 SampledImage 46 47 - 51: 22(fvec2) CompositeConstruct 20 21 - 52: 6(float) CompositeExtract 51 1 - 53: 6(float) ImageSampleDrefExplicitLod 50 51 52 Lod ConstOffset 24 26 - Store 41(r05) 53 - 58: 55 Load 57(g_tTex2df4) - 59: 13 Load 15(g_sSamp) - 62: 61 SampledImage 58 59 - 66: 6(float) CompositeExtract 64 0 - 67: 6(float) CompositeExtract 64 1 - 68: 65(fvec3) CompositeConstruct 66 67 21 - 72: 6(float) CompositeExtract 68 2 - 73: 6(float) ImageSampleDrefExplicitLod 62 68 72 Lod ConstOffset 24 71 - Store 54(r21) 73 - 78: 75 Load 77(g_tTex2di4) - 79: 13 Load 15(g_sSamp) - 82: 81 SampledImage 78 79 - 83: 6(float) CompositeExtract 64 0 - 84: 6(float) CompositeExtract 64 1 - 85: 65(fvec3) CompositeConstruct 83 84 21 - 86: 6(float) CompositeExtract 85 2 - 87: 6(float) ImageSampleDrefExplicitLod 82 85 86 Lod ConstOffset 24 71 - Store 74(r23) 87 - 92: 89 Load 91(g_tTex2du4) - 93: 13 Load 15(g_sSamp) - 96: 95 SampledImage 92 93 - 97: 6(float) CompositeExtract 64 0 - 98: 6(float) CompositeExtract 64 1 - 99: 65(fvec3) CompositeConstruct 97 98 21 - 100: 6(float) CompositeExtract 99 2 - 101: 6(float) ImageSampleDrefExplicitLod 96 99 100 Lod ConstOffset 24 71 - Store 88(r25) 101 - 110: 109(ptr) AccessChain 105(psout) 106 - Store 110 108 - 112: 7(ptr) AccessChain 105(psout) 111 - Store 112 107 - 115: 109(ptr) AccessChain 105(psout) 106 - 116: 102(fvec4) Load 115 - Store 114(Color) 116 - 119: 7(ptr) AccessChain 105(psout) 111 - 120: 6(float) Load 119 - Store 118(Depth) 120 +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 index 2e5f3cda46..dea6663377 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -1,18 +1,19 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag -Shader version: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 @@ -23,13 +24,13 @@ gl_FragCoord origin is upper left 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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 @@ -40,13 +41,13 @@ gl_FragCoord origin is upper left 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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 @@ -57,13 +58,13 @@ gl_FragCoord origin is upper left 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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -76,13 +77,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -95,13 +96,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -113,9 +114,9 @@ gl_FragCoord origin is upper left 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 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: @@ -123,72 +124,79 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:66 Sequence -0:66 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:66 Constant: -0:66 0 (const int) -0:66 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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: 450 +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 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 texture1DArray) -0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp 3-component vector of float) +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 @@ -199,13 +207,13 @@ gl_FragCoord origin is upper left 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 itexture1DArray) -0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp 3-component vector of float) +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 @@ -216,13 +224,13 @@ gl_FragCoord origin is upper left 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 utexture1DArray) -0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp 3-component vector of float) +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 @@ -233,13 +241,13 @@ gl_FragCoord origin is upper left 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 texture2DArray) -0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp 4-component vector of float) +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 @@ -252,13 +260,13 @@ gl_FragCoord origin is upper left 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 itexture2DArray) -0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp 4-component vector of float) +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 @@ -271,13 +279,13 @@ gl_FragCoord origin is upper left 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 utexture2DArray) -0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp 4-component vector of float) +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 @@ -289,9 +297,9 @@ gl_FragCoord origin is upper left 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 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: @@ -299,310 +307,323 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:66 Sequence -0:66 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:66 Constant: -0:66 0 (const int) -0:66 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -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_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): 80001 -// Id's are bound by 178 +// 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" 125 129 + EntryPoint Fragment 4 "main" 127 131 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 8 "r11" - Name 11 "g_tTex1df4a" - Name 15 "g_sSamp" - Name 34 "r13" - Name 37 "g_tTex1di4a" - Name 48 "r15" - Name 52 "g_tTex1du4a" - Name 63 "r31" - Name 66 "g_tTex2df4a" + 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 99 "r35" - Name 102 "g_tTex2du4a" - Name 114 "PS_OUTPUT" - MemberName 114(PS_OUTPUT) 0 "Color" - MemberName 114(PS_OUTPUT) 1 "Depth" - Name 116 "psout" - Name 125 "Color" - Name 129 "Depth" - Name 135 "g_tTex1df4" - Name 138 "g_tTex1di4" - Name 141 "g_tTex1du4" - Name 144 "g_tTex2df4" - Name 147 "g_tTex2di4" - Name 150 "g_tTex2du4" - Name 153 "g_tTex3df4" - Name 156 "g_tTex3di4" - Name 159 "g_tTex3du4" - Name 162 "g_tTexcdf4" - Name 165 "g_tTexcdi4" - Name 168 "g_tTexcdu4" - Name 171 "g_tTexcdf4a" - Name 174 "g_tTexcdi4a" - Name 177 "g_tTexcdu4a" - Decorate 11(g_tTex1df4a) DescriptorSet 0 - Decorate 15(g_sSamp) DescriptorSet 0 - Decorate 15(g_sSamp) Binding 0 - Decorate 37(g_tTex1di4a) DescriptorSet 0 - Decorate 52(g_tTex1du4a) DescriptorSet 0 - Decorate 66(g_tTex2df4a) DescriptorSet 0 + 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 102(g_tTex2du4a) DescriptorSet 0 - Decorate 125(Color) Location 0 - Decorate 129(Depth) BuiltIn FragDepth - Decorate 135(g_tTex1df4) DescriptorSet 0 - Decorate 135(g_tTex1df4) Binding 0 - Decorate 138(g_tTex1di4) DescriptorSet 0 - Decorate 141(g_tTex1du4) DescriptorSet 0 - Decorate 144(g_tTex2df4) DescriptorSet 0 - Decorate 147(g_tTex2di4) DescriptorSet 0 - Decorate 150(g_tTex2du4) DescriptorSet 0 - Decorate 153(g_tTex3df4) DescriptorSet 0 - Decorate 156(g_tTex3di4) DescriptorSet 0 - Decorate 159(g_tTex3du4) DescriptorSet 0 - Decorate 162(g_tTexcdf4) DescriptorSet 0 - Decorate 165(g_tTexcdi4) DescriptorSet 0 - Decorate 168(g_tTexcdu4) DescriptorSet 0 - Decorate 171(g_tTexcdf4a) DescriptorSet 0 - Decorate 174(g_tTexcdi4a) DescriptorSet 0 - Decorate 177(g_tTexcdu4a) DescriptorSet 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D array sampled format:Unknown - 10: TypePointer UniformConstant 9 - 11(g_tTex1df4a): 10(ptr) Variable UniformConstant - 13: TypeSampler - 14: TypePointer UniformConstant 13 - 15(g_sSamp): 14(ptr) Variable UniformConstant - 17: TypeImage 6(float) 1D depth array sampled format:Unknown - 18: TypeSampledImage 17 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1061158912 - 25: TypeVector 6(float) 3 - 29: 6(float) Constant 0 - 30: TypeInt 32 1 - 31: 30(int) Constant 2 - 35: TypeImage 30(int) 1D array sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex1di4a): 36(ptr) Variable UniformConstant - 40: TypeImage 30(int) 1D depth array sampled format:Unknown - 41: TypeSampledImage 40 - 49: TypeInt 32 0 - 50: TypeImage 49(int) 1D array sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex1du4a): 51(ptr) Variable UniformConstant - 55: TypeImage 49(int) 1D depth array sampled format:Unknown - 56: TypeSampledImage 55 - 64: TypeImage 6(float) 2D array sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2df4a): 65(ptr) Variable UniformConstant - 69: TypeImage 6(float) 2D depth array sampled format:Unknown - 70: TypeSampledImage 69 - 72: 6(float) Constant 1050253722 - 73: 25(fvec3) ConstantComposite 21 22 72 - 74: TypeVector 6(float) 4 - 79: TypeVector 30(int) 2 - 80: 30(int) Constant 3 - 81: 79(ivec2) ConstantComposite 31 80 - 85: TypeImage 30(int) 2D array sampled format:Unknown + 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: TypeImage 30(int) 2D depth array sampled format:Unknown - 91: TypeSampledImage 90 - 100: TypeImage 49(int) 2D array sampled format:Unknown - 101: TypePointer UniformConstant 100 -102(g_tTex2du4a): 101(ptr) Variable UniformConstant - 105: TypeImage 49(int) 2D depth array sampled format:Unknown - 106: TypeSampledImage 105 - 114(PS_OUTPUT): TypeStruct 74(fvec4) 6(float) - 115: TypePointer Function 114(PS_OUTPUT) - 117: 30(int) Constant 0 - 118: 6(float) Constant 1065353216 - 119: 74(fvec4) ConstantComposite 118 118 118 118 - 120: TypePointer Function 74(fvec4) - 122: 30(int) Constant 1 - 124: TypePointer Output 74(fvec4) - 125(Color): 124(ptr) Variable Output - 128: TypePointer Output 6(float) - 129(Depth): 128(ptr) Variable Output - 133: TypeImage 6(float) 1D sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTex1df4): 134(ptr) Variable UniformConstant - 136: TypeImage 30(int) 1D sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTex1di4): 137(ptr) Variable UniformConstant - 139: TypeImage 49(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 30(int) 2D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex2di4): 146(ptr) Variable UniformConstant - 148: TypeImage 49(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 30(int) 3D sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTex3di4): 155(ptr) Variable UniformConstant - 157: TypeImage 49(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 30(int) Cube sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTexcdi4): 164(ptr) Variable UniformConstant - 166: TypeImage 49(int) Cube sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTexcdu4): 167(ptr) Variable UniformConstant - 169: TypeImage 6(float) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdf4a): 170(ptr) Variable UniformConstant - 172: TypeImage 30(int) Cube array sampled format:Unknown - 173: TypePointer UniformConstant 172 -174(g_tTexcdi4a): 173(ptr) Variable UniformConstant - 175: TypeImage 49(int) Cube array sampled format:Unknown - 176: TypePointer UniformConstant 175 -177(g_tTexcdu4a): 176(ptr) Variable UniformConstant + 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 - 8(r11): 7(ptr) Variable Function - 34(r13): 7(ptr) Variable Function - 48(r15): 7(ptr) Variable Function - 63(r31): 7(ptr) Variable Function - 84(r33): 7(ptr) Variable Function - 99(r35): 7(ptr) Variable Function - 116(psout): 115(ptr) Variable Function - 12: 9 Load 11(g_tTex1df4a) - 16: 13 Load 15(g_sSamp) - 19: 18 SampledImage 12 16 - 26: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 23 1 - 28: 25(fvec3) CompositeConstruct 26 27 24 - 32: 6(float) CompositeExtract 28 2 - 33: 6(float) ImageSampleDrefExplicitLod 19 28 32 Lod ConstOffset 29 31 - Store 8(r11) 33 - 38: 35 Load 37(g_tTex1di4a) - 39: 13 Load 15(g_sSamp) - 42: 41 SampledImage 38 39 - 43: 6(float) CompositeExtract 23 0 - 44: 6(float) CompositeExtract 23 1 - 45: 25(fvec3) CompositeConstruct 43 44 24 - 46: 6(float) CompositeExtract 45 2 - 47: 6(float) ImageSampleDrefExplicitLod 42 45 46 Lod ConstOffset 29 31 - Store 34(r13) 47 - 53: 50 Load 52(g_tTex1du4a) - 54: 13 Load 15(g_sSamp) - 57: 56 SampledImage 53 54 - 58: 6(float) CompositeExtract 23 0 - 59: 6(float) CompositeExtract 23 1 - 60: 25(fvec3) CompositeConstruct 58 59 24 - 61: 6(float) CompositeExtract 60 2 - 62: 6(float) ImageSampleDrefExplicitLod 57 60 61 Lod ConstOffset 29 31 - Store 48(r15) 62 - 67: 64 Load 66(g_tTex2df4a) - 68: 13 Load 15(g_sSamp) - 71: 70 SampledImage 67 68 - 75: 6(float) CompositeExtract 73 0 - 76: 6(float) CompositeExtract 73 1 - 77: 6(float) CompositeExtract 73 2 - 78: 74(fvec4) CompositeConstruct 75 76 77 24 - 82: 6(float) CompositeExtract 78 3 - 83: 6(float) ImageSampleDrefExplicitLod 71 78 82 Lod ConstOffset 29 81 - Store 63(r31) 83 - 88: 85 Load 87(g_tTex2di4a) - 89: 13 Load 15(g_sSamp) - 92: 91 SampledImage 88 89 - 93: 6(float) CompositeExtract 73 0 - 94: 6(float) CompositeExtract 73 1 - 95: 6(float) CompositeExtract 73 2 - 96: 74(fvec4) CompositeConstruct 93 94 95 24 - 97: 6(float) CompositeExtract 96 3 - 98: 6(float) ImageSampleDrefExplicitLod 92 96 97 Lod ConstOffset 29 81 - Store 84(r33) 98 - 103: 100 Load 102(g_tTex2du4a) - 104: 13 Load 15(g_sSamp) - 107: 106 SampledImage 103 104 - 108: 6(float) CompositeExtract 73 0 - 109: 6(float) CompositeExtract 73 1 - 110: 6(float) CompositeExtract 73 2 - 111: 74(fvec4) CompositeConstruct 108 109 110 24 - 112: 6(float) CompositeExtract 111 3 - 113: 6(float) ImageSampleDrefExplicitLod 107 111 112 Lod ConstOffset 29 81 - Store 99(r35) 113 - 121: 120(ptr) AccessChain 116(psout) 117 - Store 121 119 - 123: 7(ptr) AccessChain 116(psout) 122 - Store 123 118 - 126: 120(ptr) AccessChain 116(psout) 117 - 127: 74(fvec4) Load 126 - Store 125(Color) 127 - 130: 7(ptr) AccessChain 116(psout) 122 - 131: 6(float) Load 130 - Store 129(Depth) 131 +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 index 2a0d77a0c3..81a92a230a 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplegrad.array.dx10.frag -Shader version: 450 +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 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: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 @@ -20,12 +21,12 @@ gl_FragCoord origin is upper left 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: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 @@ -34,12 +35,12 @@ gl_FragCoord origin is upper left 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: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 @@ -48,12 +49,12 @@ gl_FragCoord origin is upper left 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: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 @@ -65,12 +66,12 @@ gl_FragCoord origin is upper left 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: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 @@ -82,12 +83,12 @@ gl_FragCoord origin is upper left 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: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 @@ -99,12 +100,12 @@ gl_FragCoord origin is upper left 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: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 @@ -119,12 +120,12 @@ gl_FragCoord origin is upper left 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: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 @@ -139,12 +140,12 @@ gl_FragCoord origin is upper left 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: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 @@ -158,9 +159,9 @@ gl_FragCoord origin is upper left 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 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: @@ -168,60 +169,67 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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: 450 +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 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: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 @@ -230,12 +238,12 @@ gl_FragCoord origin is upper left 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: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 @@ -244,12 +252,12 @@ gl_FragCoord origin is upper left 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: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 @@ -258,12 +266,12 @@ gl_FragCoord origin is upper left 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: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 @@ -275,12 +283,12 @@ gl_FragCoord origin is upper left 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: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 @@ -292,12 +300,12 @@ gl_FragCoord origin is upper left 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: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 @@ -309,12 +317,12 @@ gl_FragCoord origin is upper left 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: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 @@ -329,12 +337,12 @@ gl_FragCoord origin is upper left 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: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 @@ -349,12 +357,12 @@ gl_FragCoord origin is upper left 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: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 @@ -368,9 +376,9 @@ gl_FragCoord origin is upper left 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 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: @@ -378,239 +386,258 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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): 80001 -// Id's are bound by 133 +// 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" 124 128 + EntryPoint Fragment 4 "main" 132 136 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 30 "txval11" - Name 33 "g_tTex1di4" - Name 42 "txval12" - Name 45 "g_tTex1du4" - Name 51 "txval20" - Name 54 "g_tTex2df4" - Name 64 "txval21" - Name 67 "g_tTex2di4" - Name 73 "txval22" - Name 76 "g_tTex2du4" - Name 82 "txval40" - Name 85 "g_tTexcdf4" - Name 95 "txval41" - Name 98 "g_tTexcdi4" - Name 104 "txval42" - Name 107 "g_tTexcdu4" - Name 113 "PS_OUTPUT" - MemberName 113(PS_OUTPUT) 0 "Color" - MemberName 113(PS_OUTPUT) 1 "Depth" - Name 115 "psout" - Name 124 "Color" - Name 128 "Depth" - Name 132 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4) DescriptorSet 0 - Decorate 45(g_tTex1du4) DescriptorSet 0 - Decorate 54(g_tTex2df4) DescriptorSet 0 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 76(g_tTex2du4) DescriptorSet 0 - Decorate 85(g_tTexcdf4) DescriptorSet 0 - Decorate 98(g_tTexcdi4) DescriptorSet 0 - Decorate 107(g_tTexcdu4) DescriptorSet 0 - Decorate 124(Color) Location 0 - Decorate 128(Depth) BuiltIn FragDepth - Decorate 132(g_tTex1df4a) DescriptorSet 0 - Decorate 132(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1066192077 - 25: 6(float) Constant 1067030938 - 27: TypeInt 32 1 - 28: TypeVector 27(int) 4 - 29: TypePointer Function 28(ivec4) - 31: TypeImage 27(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4): 32(ptr) Variable UniformConstant - 36: TypeSampledImage 31 - 39: TypeInt 32 0 - 40: TypeVector 39(int) 4 - 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) 1D array sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex1du4): 44(ptr) Variable UniformConstant - 48: TypeSampledImage 43 - 52: TypeImage 6(float) 2D array sampled format:Unknown - 53: TypePointer UniformConstant 52 - 54(g_tTex2df4): 53(ptr) Variable UniformConstant - 57: TypeSampledImage 52 - 59: TypeVector 6(float) 3 - 60: 6(float) Constant 1050253722 - 61: 59(fvec3) ConstantComposite 21 22 60 - 62: 20(fvec2) ConstantComposite 24 25 - 65: TypeImage 27(int) 2D array sampled format:Unknown - 66: TypePointer UniformConstant 65 - 67(g_tTex2di4): 66(ptr) Variable UniformConstant - 70: TypeSampledImage 65 - 74: TypeImage 39(int) 2D array sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4): 75(ptr) Variable UniformConstant - 79: TypeSampledImage 74 - 83: TypeImage 6(float) Cube array sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTexcdf4): 84(ptr) Variable UniformConstant - 88: TypeSampledImage 83 - 90: 6(float) Constant 1053609165 - 91: 7(fvec4) ConstantComposite 21 22 60 90 - 92: 6(float) Constant 1067869798 - 93: 59(fvec3) ConstantComposite 24 25 92 - 96: TypeImage 27(int) Cube array sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTexcdi4): 97(ptr) Variable UniformConstant - 101: TypeSampledImage 96 - 105: TypeImage 39(int) Cube array sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTexcdu4): 106(ptr) Variable UniformConstant - 110: TypeSampledImage 105 - 113(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 114: TypePointer Function 113(PS_OUTPUT) - 116: 27(int) Constant 0 - 117: 6(float) Constant 1065353216 - 118: 7(fvec4) ConstantComposite 117 117 117 117 - 120: 27(int) Constant 1 - 121: TypePointer Function 6(float) - 123: TypePointer Output 7(fvec4) - 124(Color): 123(ptr) Variable Output - 127: TypePointer Output 6(float) - 128(Depth): 127(ptr) Variable Output -132(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 30(txval11): 29(ptr) Variable Function - 42(txval12): 41(ptr) Variable Function - 51(txval20): 8(ptr) Variable Function - 64(txval21): 29(ptr) Variable Function - 73(txval22): 41(ptr) Variable Function - 82(txval40): 8(ptr) Variable Function - 95(txval41): 29(ptr) Variable Function - 104(txval42): 41(ptr) Variable Function - 115(psout): 114(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 26: 7(fvec4) ImageSampleExplicitLod 19 23 Grad 24 25 - Store 9(txval10) 26 - 34: 31 Load 33(g_tTex1di4) - 35: 14 Load 16(g_sSamp) - 37: 36 SampledImage 34 35 - 38: 28(ivec4) ImageSampleExplicitLod 37 23 Grad 24 25 - Store 30(txval11) 38 - 46: 43 Load 45(g_tTex1du4) - 47: 14 Load 16(g_sSamp) - 49: 48 SampledImage 46 47 - 50: 40(ivec4) ImageSampleExplicitLod 49 23 Grad 24 25 - Store 42(txval12) 50 - 55: 52 Load 54(g_tTex2df4) - 56: 14 Load 16(g_sSamp) - 58: 57 SampledImage 55 56 - 63: 7(fvec4) ImageSampleExplicitLod 58 61 Grad 62 62 - Store 51(txval20) 63 - 68: 65 Load 67(g_tTex2di4) - 69: 14 Load 16(g_sSamp) - 71: 70 SampledImage 68 69 - 72: 28(ivec4) ImageSampleExplicitLod 71 61 Grad 62 62 - Store 64(txval21) 72 - 77: 74 Load 76(g_tTex2du4) - 78: 14 Load 16(g_sSamp) - 80: 79 SampledImage 77 78 - 81: 40(ivec4) ImageSampleExplicitLod 80 61 Grad 62 62 - Store 73(txval22) 81 - 86: 83 Load 85(g_tTexcdf4) - 87: 14 Load 16(g_sSamp) - 89: 88 SampledImage 86 87 - 94: 7(fvec4) ImageSampleExplicitLod 89 91 Grad 93 93 - Store 82(txval40) 94 - 99: 96 Load 98(g_tTexcdi4) - 100: 14 Load 16(g_sSamp) - 102: 101 SampledImage 99 100 - 103: 28(ivec4) ImageSampleExplicitLod 102 91 Grad 93 93 - Store 95(txval41) 103 - 108: 105 Load 107(g_tTexcdu4) - 109: 14 Load 16(g_sSamp) - 111: 110 SampledImage 108 109 - 112: 40(ivec4) ImageSampleExplicitLod 111 91 Grad 93 93 - Store 104(txval42) 112 - 119: 8(ptr) AccessChain 115(psout) 116 - Store 119 118 - 122: 121(ptr) AccessChain 115(psout) 120 - Store 122 117 - 125: 8(ptr) AccessChain 115(psout) 116 - 126: 7(fvec4) Load 125 - Store 124(Color) 126 - 129: 121(ptr) AccessChain 115(psout) 120 - 130: 6(float) Load 129 - Store 128(Depth) 130 +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 index feaba77021..3acd9afe10 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplegrad.basic.dx10.frag -Shader version: 450 +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 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 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: @@ -19,12 +20,12 @@ gl_FragCoord origin is upper left 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 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: @@ -32,12 +33,12 @@ gl_FragCoord origin is upper left 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 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: @@ -45,12 +46,12 @@ gl_FragCoord origin is upper left 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: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 @@ -61,12 +62,12 @@ gl_FragCoord origin is upper left 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: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 @@ -77,12 +78,12 @@ gl_FragCoord origin is upper left 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: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 @@ -93,12 +94,12 @@ gl_FragCoord origin is upper left 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: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 @@ -112,12 +113,12 @@ gl_FragCoord origin is upper left 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: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 @@ -131,12 +132,12 @@ gl_FragCoord origin is upper left 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: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 @@ -150,12 +151,12 @@ gl_FragCoord origin is upper left 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: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 @@ -169,12 +170,12 @@ gl_FragCoord origin is upper left 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: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 @@ -188,12 +189,12 @@ gl_FragCoord origin is upper left 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: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 @@ -206,9 +207,9 @@ gl_FragCoord origin is upper left 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 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: @@ -216,63 +217,70 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:50 Sequence -0:50 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 0 (const int) -0:50 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 1 (const int) -0:50 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +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 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 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: @@ -280,12 +288,12 @@ gl_FragCoord origin is upper left 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 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: @@ -293,12 +301,12 @@ gl_FragCoord origin is upper left 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 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: @@ -306,12 +314,12 @@ gl_FragCoord origin is upper left 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: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 @@ -322,12 +330,12 @@ gl_FragCoord origin is upper left 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: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 @@ -338,12 +346,12 @@ gl_FragCoord origin is upper left 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: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 @@ -354,12 +362,12 @@ gl_FragCoord origin is upper left 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: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 @@ -373,12 +381,12 @@ gl_FragCoord origin is upper left 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: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 @@ -392,12 +400,12 @@ gl_FragCoord origin is upper left 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: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 @@ -411,12 +419,12 @@ gl_FragCoord origin is upper left 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: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 @@ -430,12 +438,12 @@ gl_FragCoord origin is upper left 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: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 @@ -449,12 +457,12 @@ gl_FragCoord origin is upper left 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: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 @@ -467,9 +475,9 @@ gl_FragCoord origin is upper left 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 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: @@ -477,288 +485,307 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:50 Sequence -0:50 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 0 (const int) -0:50 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:50 Constant: -0:50 1 (const int) -0:50 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 168 +// 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" 159 163 + EntryPoint Fragment 4 "main" 167 171 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 27 "txval11" - Name 30 "g_tTex1di4" - Name 40 "txval12" - Name 43 "g_tTex1du4" - Name 50 "txval20" - Name 53 "g_tTex2df4" - Name 62 "txval21" - Name 65 "g_tTex2di4" - Name 73 "txval22" - Name 76 "g_tTex2du4" - Name 85 "txval30" - Name 88 "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 148 "PS_OUTPUT" - MemberName 148(PS_OUTPUT) 0 "Color" - MemberName 148(PS_OUTPUT) 1 "Depth" - Name 150 "psout" - Name 159 "Color" - Name 163 "Depth" - Name 167 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 43(g_tTex1du4) DescriptorSet 0 - Decorate 53(g_tTex2df4) DescriptorSet 0 - Decorate 65(g_tTex2di4) DescriptorSet 0 - Decorate 76(g_tTex2du4) DescriptorSet 0 - Decorate 88(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 159(Color) Location 0 - Decorate 163(Depth) BuiltIn FragDepth - Decorate 167(g_tTex1df4a) DescriptorSet 0 - Decorate 167(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1066192077 - 22: 6(float) Constant 1067030938 - 24: TypeInt 32 1 - 25: TypeVector 24(int) 4 - 26: TypePointer Function 25(ivec4) - 28: TypeImage 24(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeSampledImage 28 - 35: 6(float) Constant 1045220557 - 37: TypeInt 32 0 - 38: TypeVector 37(int) 4 - 39: TypePointer Function 38(ivec4) - 41: TypeImage 37(int) 1D sampled format:Unknown - 42: TypePointer UniformConstant 41 - 43(g_tTex1du4): 42(ptr) Variable UniformConstant - 46: TypeSampledImage 41 - 48: 6(float) Constant 1050253722 - 51: TypeImage 6(float) 2D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4): 52(ptr) Variable UniformConstant - 56: TypeSampledImage 51 - 58: TypeVector 6(float) 2 - 59: 58(fvec2) ConstantComposite 20 35 - 60: 58(fvec2) ConstantComposite 21 22 - 63: TypeImage 24(int) 2D sampled format:Unknown - 64: TypePointer UniformConstant 63 - 65(g_tTex2di4): 64(ptr) Variable UniformConstant - 68: TypeSampledImage 63 - 70: 6(float) Constant 1053609165 - 71: 58(fvec2) ConstantComposite 48 70 - 74: TypeImage 37(int) 2D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4): 75(ptr) Variable UniformConstant - 79: TypeSampledImage 74 - 81: 6(float) Constant 1056964608 - 82: 6(float) Constant 1058642330 - 83: 58(fvec2) ConstantComposite 81 82 - 86: TypeImage 6(float) 3D sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex3df4): 87(ptr) Variable UniformConstant - 91: TypeSampledImage 86 - 93: TypeVector 6(float) 3 - 94: 93(fvec3) ConstantComposite 20 35 48 - 95: 6(float) Constant 1067869798 - 96: 93(fvec3) ConstantComposite 21 22 95 - 99: TypeImage 24(int) 3D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex3di4): 100(ptr) Variable UniformConstant - 104: TypeSampledImage 99 - 106: 93(fvec3) ConstantComposite 70 81 82 - 109: TypeImage 37(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: 93(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 24(int) Cube sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTexcdi4): 132(ptr) Variable UniformConstant - 136: TypeSampledImage 131 - 140: TypeImage 37(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 145: TypeSampledImage 140 - 148(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 149: TypePointer Function 148(PS_OUTPUT) - 151: 24(int) Constant 0 - 152: 6(float) Constant 1065353216 - 153: 7(fvec4) ConstantComposite 152 152 152 152 - 155: 24(int) Constant 1 - 156: TypePointer Function 6(float) - 158: TypePointer Output 7(fvec4) - 159(Color): 158(ptr) Variable Output - 162: TypePointer Output 6(float) - 163(Depth): 162(ptr) Variable Output -167(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 27(txval11): 26(ptr) Variable Function - 40(txval12): 39(ptr) Variable Function - 50(txval20): 8(ptr) Variable Function - 62(txval21): 26(ptr) Variable Function - 73(txval22): 39(ptr) Variable Function - 85(txval30): 8(ptr) Variable Function - 98(txval31): 26(ptr) Variable Function - 108(txval32): 39(ptr) Variable Function - 121(txval40): 8(ptr) Variable Function - 130(txval41): 26(ptr) Variable Function - 139(txval42): 39(ptr) Variable Function - 150(psout): 149(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 - Store 9(txval10) 23 - 31: 28 Load 30(g_tTex1di4) - 32: 14 Load 16(g_sSamp) - 34: 33 SampledImage 31 32 - 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 - Store 27(txval11) 36 - 44: 41 Load 43(g_tTex1du4) - 45: 14 Load 16(g_sSamp) - 47: 46 SampledImage 44 45 - 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 - Store 40(txval12) 49 - 54: 51 Load 53(g_tTex2df4) - 55: 14 Load 16(g_sSamp) - 57: 56 SampledImage 54 55 - 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 - Store 50(txval20) 61 - 66: 63 Load 65(g_tTex2di4) - 67: 14 Load 16(g_sSamp) - 69: 68 SampledImage 66 67 - 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 - Store 62(txval21) 72 - 77: 74 Load 76(g_tTex2du4) - 78: 14 Load 16(g_sSamp) - 80: 79 SampledImage 77 78 - 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 - Store 73(txval22) 84 - 89: 86 Load 88(g_tTex3df4) - 90: 14 Load 16(g_sSamp) - 92: 91 SampledImage 89 90 - 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 - Store 85(txval30) 97 - 102: 99 Load 101(g_tTex3di4) - 103: 14 Load 16(g_sSamp) - 105: 104 SampledImage 102 103 - 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 - Store 98(txval31) 107 - 112: 109 Load 111(g_tTex3du4) - 113: 14 Load 16(g_sSamp) - 115: 114 SampledImage 112 113 - 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 - Store 108(txval32) 120 - 125: 122 Load 124(g_tTexcdf4) - 126: 14 Load 16(g_sSamp) - 128: 127 SampledImage 125 126 - 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 - Store 121(txval40) 129 - 134: 131 Load 133(g_tTexcdi4) - 135: 14 Load 16(g_sSamp) - 137: 136 SampledImage 134 135 - 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 - Store 130(txval41) 138 - 143: 140 Load 142(g_tTexcdu4) - 144: 14 Load 16(g_sSamp) - 146: 145 SampledImage 143 144 - 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 - Store 139(txval42) 147 - 154: 8(ptr) AccessChain 150(psout) 151 - Store 154 153 - 157: 156(ptr) AccessChain 150(psout) 155 - Store 157 152 - 160: 8(ptr) AccessChain 150(psout) 151 - 161: 7(fvec4) Load 160 - Store 159(Color) 161 - 164: 156(ptr) AccessChain 150(psout) 155 - 165: 6(float) Load 164 - Store 163(Depth) 165 +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 index f6d37c3be2..d787939b75 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -1,16 +1,16 @@ hlsl.samplegrad.basic.dx10.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence -0:30 move second child to first child (temp 4-component vector of float) -0:30 'txval10' (temp 4-component vector of float) -0:30 textureGrad (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 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: @@ -18,12 +18,12 @@ Shader version: 450 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 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: @@ -31,12 +31,12 @@ Shader version: 450 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 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: @@ -44,12 +44,12 @@ Shader version: 450 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: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 @@ -60,12 +60,12 @@ Shader version: 450 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: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 @@ -76,12 +76,12 @@ Shader version: 450 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: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 @@ -92,12 +92,12 @@ Shader version: 450 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: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 @@ -111,12 +111,12 @@ Shader version: 450 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: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 @@ -130,12 +130,12 @@ Shader version: 450 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: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 @@ -149,12 +149,12 @@ Shader version: 450 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: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 @@ -168,12 +168,12 @@ Shader version: 450 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: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 @@ -187,12 +187,12 @@ Shader version: 450 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: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 @@ -205,9 +205,9 @@ Shader version: 450 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 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: @@ -215,48 +215,51 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float) -0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +Shader version: 500 0:? Sequence -0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence -0:30 move second child to first child (temp 4-component vector of float) -0:30 'txval10' (temp 4-component vector of float) -0:30 textureGrad (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 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: @@ -264,12 +267,12 @@ Shader version: 450 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 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: @@ -277,12 +280,12 @@ Shader version: 450 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 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: @@ -290,12 +293,12 @@ Shader version: 450 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: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 @@ -306,12 +309,12 @@ Shader version: 450 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: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 @@ -322,12 +325,12 @@ Shader version: 450 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: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 @@ -338,12 +341,12 @@ Shader version: 450 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: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 @@ -357,12 +360,12 @@ Shader version: 450 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: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 @@ -376,12 +379,12 @@ Shader version: 450 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: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 @@ -395,12 +398,12 @@ Shader version: 450 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: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 @@ -414,12 +417,12 @@ Shader version: 450 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: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 @@ -433,12 +436,12 @@ Shader version: 450 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: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 @@ -451,9 +454,9 @@ Shader version: 450 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 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: @@ -461,261 +464,272 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float) -0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 161 +// 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" 156 + EntryPoint Vertex 4 "main" 162 + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 27 "txval11" - Name 30 "g_tTex1di4" - Name 40 "txval12" - Name 43 "g_tTex1du4" - Name 50 "txval20" - Name 53 "g_tTex2df4" - Name 62 "txval21" - Name 65 "g_tTex2di4" - Name 73 "txval22" - Name 76 "g_tTex2du4" - Name 85 "txval30" - Name 88 "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 148 "VS_OUTPUT" - MemberName 148(VS_OUTPUT) 0 "Pos" - Name 150 "vsout" - Name 156 "Pos" - Name 160 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 43(g_tTex1du4) DescriptorSet 0 - Decorate 53(g_tTex2df4) DescriptorSet 0 - Decorate 65(g_tTex2di4) DescriptorSet 0 - Decorate 76(g_tTex2du4) DescriptorSet 0 - Decorate 88(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 156(Pos) BuiltIn Position - Decorate 160(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1066192077 - 22: 6(float) Constant 1067030938 - 24: TypeInt 32 1 - 25: TypeVector 24(int) 4 - 26: TypePointer Function 25(ivec4) - 28: TypeImage 24(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeSampledImage 28 - 35: 6(float) Constant 1045220557 - 37: TypeInt 32 0 - 38: TypeVector 37(int) 4 - 39: TypePointer Function 38(ivec4) - 41: TypeImage 37(int) 1D sampled format:Unknown - 42: TypePointer UniformConstant 41 - 43(g_tTex1du4): 42(ptr) Variable UniformConstant - 46: TypeSampledImage 41 - 48: 6(float) Constant 1050253722 - 51: TypeImage 6(float) 2D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4): 52(ptr) Variable UniformConstant - 56: TypeSampledImage 51 - 58: TypeVector 6(float) 2 - 59: 58(fvec2) ConstantComposite 20 35 - 60: 58(fvec2) ConstantComposite 21 22 - 63: TypeImage 24(int) 2D sampled format:Unknown - 64: TypePointer UniformConstant 63 - 65(g_tTex2di4): 64(ptr) Variable UniformConstant - 68: TypeSampledImage 63 - 70: 6(float) Constant 1053609165 - 71: 58(fvec2) ConstantComposite 48 70 - 74: TypeImage 37(int) 2D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4): 75(ptr) Variable UniformConstant - 79: TypeSampledImage 74 - 81: 6(float) Constant 1056964608 - 82: 6(float) Constant 1058642330 - 83: 58(fvec2) ConstantComposite 81 82 - 86: TypeImage 6(float) 3D sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex3df4): 87(ptr) Variable UniformConstant - 91: TypeSampledImage 86 - 93: TypeVector 6(float) 3 - 94: 93(fvec3) ConstantComposite 20 35 48 - 95: 6(float) Constant 1067869798 - 96: 93(fvec3) ConstantComposite 21 22 95 - 99: TypeImage 24(int) 3D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex3di4): 100(ptr) Variable UniformConstant - 104: TypeSampledImage 99 - 106: 93(fvec3) ConstantComposite 70 81 82 - 109: TypeImage 37(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: 93(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 24(int) Cube sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTexcdi4): 132(ptr) Variable UniformConstant - 136: TypeSampledImage 131 - 140: TypeImage 37(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 145: TypeSampledImage 140 - 148(VS_OUTPUT): TypeStruct 7(fvec4) - 149: TypePointer Function 148(VS_OUTPUT) - 151: 24(int) Constant 0 - 152: 6(float) Constant 0 - 153: 7(fvec4) ConstantComposite 152 152 152 152 - 155: TypePointer Output 7(fvec4) - 156(Pos): 155(ptr) Variable Output -160(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 27(txval11): 26(ptr) Variable Function - 40(txval12): 39(ptr) Variable Function - 50(txval20): 8(ptr) Variable Function - 62(txval21): 26(ptr) Variable Function - 73(txval22): 39(ptr) Variable Function - 85(txval30): 8(ptr) Variable Function - 98(txval31): 26(ptr) Variable Function - 108(txval32): 39(ptr) Variable Function - 121(txval40): 8(ptr) Variable Function - 130(txval41): 26(ptr) Variable Function - 139(txval42): 39(ptr) Variable Function - 150(vsout): 149(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 - Store 9(txval10) 23 - 31: 28 Load 30(g_tTex1di4) - 32: 14 Load 16(g_sSamp) - 34: 33 SampledImage 31 32 - 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 - Store 27(txval11) 36 - 44: 41 Load 43(g_tTex1du4) - 45: 14 Load 16(g_sSamp) - 47: 46 SampledImage 44 45 - 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 - Store 40(txval12) 49 - 54: 51 Load 53(g_tTex2df4) - 55: 14 Load 16(g_sSamp) - 57: 56 SampledImage 54 55 - 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 - Store 50(txval20) 61 - 66: 63 Load 65(g_tTex2di4) - 67: 14 Load 16(g_sSamp) - 69: 68 SampledImage 66 67 - 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 - Store 62(txval21) 72 - 77: 74 Load 76(g_tTex2du4) - 78: 14 Load 16(g_sSamp) - 80: 79 SampledImage 77 78 - 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 - Store 73(txval22) 84 - 89: 86 Load 88(g_tTex3df4) - 90: 14 Load 16(g_sSamp) - 92: 91 SampledImage 89 90 - 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 - Store 85(txval30) 97 - 102: 99 Load 101(g_tTex3di4) - 103: 14 Load 16(g_sSamp) - 105: 104 SampledImage 102 103 - 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 - Store 98(txval31) 107 - 112: 109 Load 111(g_tTex3du4) - 113: 14 Load 16(g_sSamp) - 115: 114 SampledImage 112 113 - 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 - Store 108(txval32) 120 - 125: 122 Load 124(g_tTexcdf4) - 126: 14 Load 16(g_sSamp) - 128: 127 SampledImage 125 126 - 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 - Store 121(txval40) 129 - 134: 131 Load 133(g_tTexcdi4) - 135: 14 Load 16(g_sSamp) - 137: 136 SampledImage 134 135 - 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 - Store 130(txval41) 138 - 143: 140 Load 142(g_tTexcdu4) - 144: 14 Load 16(g_sSamp) - 146: 145 SampledImage 143 144 - 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 - Store 139(txval42) 147 - 154: 8(ptr) AccessChain 150(vsout) 151 - Store 154 153 - 157: 8(ptr) AccessChain 150(vsout) 151 - 158: 7(fvec4) Load 157 - Store 156(Pos) 158 + 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 index 7938e52756..b5a8549334 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplegrad.offset.dx10.frag -Shader version: 450 +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 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 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: @@ -21,12 +22,12 @@ gl_FragCoord origin is upper left 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 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: @@ -36,12 +37,12 @@ gl_FragCoord origin is upper left 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 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: @@ -51,12 +52,12 @@ gl_FragCoord origin is upper left 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: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 @@ -70,12 +71,12 @@ gl_FragCoord origin is upper left 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: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 @@ -89,12 +90,12 @@ gl_FragCoord origin is upper left 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: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 @@ -108,12 +109,12 @@ gl_FragCoord origin is upper left 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: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 @@ -131,12 +132,12 @@ gl_FragCoord origin is upper left 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: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 @@ -154,12 +155,12 @@ gl_FragCoord origin is upper left 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: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 @@ -176,9 +177,9 @@ gl_FragCoord origin is upper left 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 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: @@ -186,63 +187,70 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +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 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 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: @@ -252,12 +260,12 @@ gl_FragCoord origin is upper left 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 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: @@ -267,12 +275,12 @@ gl_FragCoord origin is upper left 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 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: @@ -282,12 +290,12 @@ gl_FragCoord origin is upper left 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: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 @@ -301,12 +309,12 @@ gl_FragCoord origin is upper left 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: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 @@ -320,12 +328,12 @@ gl_FragCoord origin is upper left 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: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 @@ -339,12 +347,12 @@ gl_FragCoord origin is upper left 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: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 @@ -362,12 +370,12 @@ gl_FragCoord origin is upper left 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: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 @@ -385,12 +393,12 @@ gl_FragCoord origin is upper left 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: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 @@ -407,9 +415,9 @@ gl_FragCoord origin is upper left 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 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: @@ -417,273 +425,292 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 159 +// 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" 141 145 + EntryPoint Fragment 4 "main" 149 153 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 28 "txval11" - Name 31 "g_tTex1di4" - Name 41 "txval12" - Name 44 "g_tTex1du4" - Name 51 "txval20" - Name 54 "g_tTex2df4" - Name 66 "txval21" - Name 69 "g_tTex2di4" - Name 78 "txval22" - Name 81 "g_tTex2du4" - Name 92 "txval30" - Name 95 "g_tTex3df4" - Name 107 "txval31" - Name 110 "g_tTex3di4" - Name 118 "txval32" - Name 121 "g_tTex3du4" - Name 132 "PS_OUTPUT" - MemberName 132(PS_OUTPUT) 0 "Color" - MemberName 132(PS_OUTPUT) 1 "Depth" - Name 134 "psout" - Name 141 "Color" - Name 145 "Depth" - Name 149 "g_tTex1df4a" - Name 152 "g_tTexcdf4" - Name 155 "g_tTexcdi4" - Name 158 "g_tTexcdu4" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 31(g_tTex1di4) DescriptorSet 0 - Decorate 44(g_tTex1du4) DescriptorSet 0 - Decorate 54(g_tTex2df4) DescriptorSet 0 - Decorate 69(g_tTex2di4) DescriptorSet 0 - Decorate 81(g_tTex2du4) DescriptorSet 0 - Decorate 95(g_tTex3df4) DescriptorSet 0 - Decorate 110(g_tTex3di4) DescriptorSet 0 - Decorate 121(g_tTex3du4) DescriptorSet 0 - Decorate 141(Color) Location 0 - Decorate 145(Depth) BuiltIn FragDepth - Decorate 149(g_tTex1df4a) DescriptorSet 0 - Decorate 149(g_tTex1df4a) Binding 1 - Decorate 152(g_tTexcdf4) DescriptorSet 0 - Decorate 155(g_tTexcdi4) DescriptorSet 0 - Decorate 158(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1066192077 - 22: 6(float) Constant 1067030938 - 23: TypeInt 32 1 - 24: 23(int) Constant 1 - 26: TypeVector 23(int) 4 - 27: TypePointer Function 26(ivec4) - 29: TypeImage 23(int) 1D sampled format:Unknown - 30: TypePointer UniformConstant 29 - 31(g_tTex1di4): 30(ptr) Variable UniformConstant - 34: TypeSampledImage 29 - 36: 6(float) Constant 1045220557 - 38: TypeInt 32 0 - 39: TypeVector 38(int) 4 - 40: TypePointer Function 39(ivec4) - 42: TypeImage 38(int) 1D sampled format:Unknown - 43: TypePointer UniformConstant 42 - 44(g_tTex1du4): 43(ptr) Variable UniformConstant - 47: TypeSampledImage 42 - 49: 6(float) Constant 1050253722 - 52: TypeImage 6(float) 2D sampled format:Unknown - 53: TypePointer UniformConstant 52 - 54(g_tTex2df4): 53(ptr) Variable UniformConstant - 57: TypeSampledImage 52 - 59: TypeVector 6(float) 2 - 60: 59(fvec2) ConstantComposite 20 36 - 61: 59(fvec2) ConstantComposite 21 22 - 62: TypeVector 23(int) 2 - 63: 23(int) Constant 0 - 64: 62(ivec2) ConstantComposite 24 63 - 67: TypeImage 23(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: 59(fvec2) ConstantComposite 49 74 - 76: 62(ivec2) ConstantComposite 24 24 - 79: TypeImage 38(int) 2D sampled format:Unknown - 80: TypePointer UniformConstant 79 - 81(g_tTex2du4): 80(ptr) Variable UniformConstant - 84: TypeSampledImage 79 - 86: 6(float) Constant 1056964608 - 87: 6(float) Constant 1058642330 - 88: 59(fvec2) ConstantComposite 86 87 - 89: 23(int) Constant 4294967295 - 90: 62(ivec2) ConstantComposite 24 89 - 93: TypeImage 6(float) 3D sampled format:Unknown - 94: TypePointer UniformConstant 93 - 95(g_tTex3df4): 94(ptr) Variable UniformConstant - 98: TypeSampledImage 93 - 100: TypeVector 6(float) 3 - 101: 100(fvec3) ConstantComposite 20 36 49 - 102: 6(float) Constant 1067869798 - 103: 100(fvec3) ConstantComposite 21 22 102 - 104: TypeVector 23(int) 3 - 105: 104(ivec3) ConstantComposite 24 63 24 - 108: TypeImage 23(int) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3di4): 109(ptr) Variable UniformConstant - 113: TypeSampledImage 108 - 115: 100(fvec3) ConstantComposite 74 86 87 - 116: 104(ivec3) ConstantComposite 24 24 24 - 119: TypeImage 38(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: 100(fvec3) ConstantComposite 126 127 128 - 130: 104(ivec3) ConstantComposite 24 63 89 - 132(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 133: TypePointer Function 132(PS_OUTPUT) - 135: 6(float) Constant 1065353216 - 136: 7(fvec4) ConstantComposite 135 135 135 135 - 138: TypePointer Function 6(float) - 140: TypePointer Output 7(fvec4) - 141(Color): 140(ptr) Variable Output - 144: TypePointer Output 6(float) - 145(Depth): 144(ptr) Variable Output -149(g_tTex1df4a): 11(ptr) Variable UniformConstant - 150: TypeImage 6(float) Cube sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTexcdf4): 151(ptr) Variable UniformConstant - 153: TypeImage 23(int) Cube sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTexcdi4): 154(ptr) Variable UniformConstant - 156: TypeImage 38(int) Cube sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTexcdu4): 157(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 28(txval11): 27(ptr) Variable Function - 41(txval12): 40(ptr) Variable Function - 51(txval20): 8(ptr) Variable Function - 66(txval21): 27(ptr) Variable Function - 78(txval22): 40(ptr) Variable Function - 92(txval30): 8(ptr) Variable Function - 107(txval31): 27(ptr) Variable Function - 118(txval32): 40(ptr) Variable Function - 134(psout): 133(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 25: 7(fvec4) ImageSampleExplicitLod 19 20 Grad ConstOffset 21 22 24 - Store 9(txval10) 25 - 32: 29 Load 31(g_tTex1di4) - 33: 14 Load 16(g_sSamp) - 35: 34 SampledImage 32 33 - 37: 26(ivec4) ImageSampleExplicitLod 35 36 Grad ConstOffset 21 22 24 - Store 28(txval11) 37 - 45: 42 Load 44(g_tTex1du4) - 46: 14 Load 16(g_sSamp) - 48: 47 SampledImage 45 46 - 50: 39(ivec4) ImageSampleExplicitLod 48 49 Grad ConstOffset 21 22 24 - Store 41(txval12) 50 - 55: 52 Load 54(g_tTex2df4) - 56: 14 Load 16(g_sSamp) - 58: 57 SampledImage 55 56 - 65: 7(fvec4) ImageSampleExplicitLod 58 60 Grad ConstOffset 60 61 64 - Store 51(txval20) 65 - 70: 67 Load 69(g_tTex2di4) - 71: 14 Load 16(g_sSamp) - 73: 72 SampledImage 70 71 - 77: 26(ivec4) ImageSampleExplicitLod 73 75 Grad ConstOffset 60 61 76 - Store 66(txval21) 77 - 82: 79 Load 81(g_tTex2du4) - 83: 14 Load 16(g_sSamp) - 85: 84 SampledImage 82 83 - 91: 39(ivec4) ImageSampleExplicitLod 85 88 Grad ConstOffset 60 61 90 - Store 78(txval22) 91 - 96: 93 Load 95(g_tTex3df4) - 97: 14 Load 16(g_sSamp) - 99: 98 SampledImage 96 97 - 106: 7(fvec4) ImageSampleExplicitLod 99 101 Grad ConstOffset 103 103 105 - Store 92(txval30) 106 - 111: 108 Load 110(g_tTex3di4) - 112: 14 Load 16(g_sSamp) - 114: 113 SampledImage 111 112 - 117: 26(ivec4) ImageSampleExplicitLod 114 115 Grad ConstOffset 103 103 116 - Store 107(txval31) 117 - 122: 119 Load 121(g_tTex3du4) - 123: 14 Load 16(g_sSamp) - 125: 124 SampledImage 122 123 - 131: 39(ivec4) ImageSampleExplicitLod 125 129 Grad ConstOffset 103 103 130 - Store 118(txval32) 131 - 137: 8(ptr) AccessChain 134(psout) 63 - Store 137 136 - 139: 138(ptr) AccessChain 134(psout) 24 - Store 139 135 - 142: 8(ptr) AccessChain 134(psout) 63 - 143: 7(fvec4) Load 142 - Store 141(Color) 143 - 146: 138(ptr) AccessChain 134(psout) 24 - 147: 6(float) Load 146 - Store 145(Depth) 147 +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 index dee78bc48a..39a28389ed 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplegrad.offsetarray.dx10.frag -Shader version: 450 +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 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: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 @@ -22,12 +23,12 @@ gl_FragCoord origin is upper left 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: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 @@ -38,12 +39,12 @@ gl_FragCoord origin is upper left 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: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 @@ -54,12 +55,12 @@ gl_FragCoord origin is upper left 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: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 @@ -74,12 +75,12 @@ gl_FragCoord origin is upper left 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: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 @@ -94,12 +95,12 @@ gl_FragCoord origin is upper left 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: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 @@ -113,9 +114,9 @@ gl_FragCoord origin is upper left 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 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: @@ -123,60 +124,67 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:38 Sequence -0:38 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:38 Color: direct index for structure (temp 4-component vector of float) -0:38 'psout' (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:? 'Depth' (out float FragDepth) -0:38 Depth: direct index for structure (temp float) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:38 Constant: -0:38 1 (const int) -0:38 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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: 450 +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 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: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 @@ -187,12 +195,12 @@ gl_FragCoord origin is upper left 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: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 @@ -203,12 +211,12 @@ gl_FragCoord origin is upper left 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: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 @@ -219,12 +227,12 @@ gl_FragCoord origin is upper left 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: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 @@ -239,12 +247,12 @@ gl_FragCoord origin is upper left 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: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 @@ -259,12 +267,12 @@ gl_FragCoord origin is upper left 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: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 @@ -278,9 +286,9 @@ gl_FragCoord origin is upper left 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 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: @@ -288,213 +296,232 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:38 Sequence -0:38 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:38 Color: direct index for structure (temp 4-component vector of float) -0:38 'psout' (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:? 'Depth' (out float FragDepth) -0:38 Depth: direct index for structure (temp float) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:38 Constant: -0:38 1 (const int) -0:38 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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:? '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): 80001 -// Id's are bound by 113 +// 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" 95 99 + EntryPoint Fragment 4 "main" 103 107 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 31 "txval11" - Name 34 "g_tTex1di4" - Name 43 "txval12" - Name 46 "g_tTex1du4" - Name 52 "txval20" - Name 55 "g_tTex2df4" - Name 68 "txval21" - Name 71 "g_tTex2di4" - Name 77 "txval22" - Name 80 "g_tTex2du4" - Name 86 "PS_OUTPUT" - MemberName 86(PS_OUTPUT) 0 "Color" - MemberName 86(PS_OUTPUT) 1 "Depth" - Name 88 "psout" - Name 95 "Color" - Name 99 "Depth" - Name 103 "g_tTex1df4a" - Name 106 "g_tTexcdf4" - Name 109 "g_tTexcdi4" - Name 112 "g_tTexcdu4" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 34(g_tTex1di4) DescriptorSet 0 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 55(g_tTex2df4) DescriptorSet 0 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 80(g_tTex2du4) DescriptorSet 0 - Decorate 95(Color) Location 0 - Decorate 99(Depth) BuiltIn FragDepth - Decorate 103(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4a) Binding 1 - Decorate 106(g_tTexcdf4) DescriptorSet 0 - Decorate 109(g_tTexcdi4) DescriptorSet 0 - Decorate 112(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1066192077 - 25: 6(float) Constant 1067030938 - 26: TypeInt 32 1 - 27: 26(int) Constant 1 - 29: TypeVector 26(int) 4 - 30: TypePointer Function 29(ivec4) - 32: TypeImage 26(int) 1D array sampled format:Unknown - 33: TypePointer UniformConstant 32 - 34(g_tTex1di4): 33(ptr) Variable UniformConstant - 37: TypeSampledImage 32 - 40: TypeInt 32 0 - 41: TypeVector 40(int) 4 - 42: TypePointer Function 41(ivec4) - 44: TypeImage 40(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4): 45(ptr) Variable UniformConstant - 49: TypeSampledImage 44 - 53: TypeImage 6(float) 2D array sampled format:Unknown - 54: TypePointer UniformConstant 53 - 55(g_tTex2df4): 54(ptr) Variable UniformConstant - 58: TypeSampledImage 53 - 60: TypeVector 6(float) 3 - 61: 6(float) Constant 1050253722 - 62: 60(fvec3) ConstantComposite 21 22 61 - 63: 20(fvec2) ConstantComposite 24 25 - 64: TypeVector 26(int) 2 - 65: 26(int) Constant 0 - 66: 64(ivec2) ConstantComposite 27 65 - 69: TypeImage 26(int) 2D array sampled format:Unknown - 70: TypePointer UniformConstant 69 - 71(g_tTex2di4): 70(ptr) Variable UniformConstant - 74: TypeSampledImage 69 - 78: TypeImage 40(int) 2D array sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTex2du4): 79(ptr) Variable UniformConstant - 83: TypeSampledImage 78 - 86(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 87: TypePointer Function 86(PS_OUTPUT) - 89: 6(float) Constant 1065353216 - 90: 7(fvec4) ConstantComposite 89 89 89 89 - 92: TypePointer Function 6(float) - 94: TypePointer Output 7(fvec4) - 95(Color): 94(ptr) Variable Output - 98: TypePointer Output 6(float) - 99(Depth): 98(ptr) Variable Output -103(g_tTex1df4a): 11(ptr) Variable UniformConstant - 104: TypeImage 6(float) Cube array sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTexcdf4): 105(ptr) Variable UniformConstant - 107: TypeImage 26(int) Cube array sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTexcdi4): 108(ptr) Variable UniformConstant - 110: TypeImage 40(int) Cube array sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTexcdu4): 111(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 31(txval11): 30(ptr) Variable Function - 43(txval12): 42(ptr) Variable Function - 52(txval20): 8(ptr) Variable Function - 68(txval21): 30(ptr) Variable Function - 77(txval22): 42(ptr) Variable Function - 88(psout): 87(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 28: 7(fvec4) ImageSampleExplicitLod 19 23 Grad ConstOffset 24 25 27 - Store 9(txval10) 28 - 35: 32 Load 34(g_tTex1di4) - 36: 14 Load 16(g_sSamp) - 38: 37 SampledImage 35 36 - 39: 29(ivec4) ImageSampleExplicitLod 38 23 Grad ConstOffset 24 25 27 - Store 31(txval11) 39 - 47: 44 Load 46(g_tTex1du4) - 48: 14 Load 16(g_sSamp) - 50: 49 SampledImage 47 48 - 51: 41(ivec4) ImageSampleExplicitLod 50 23 Grad ConstOffset 24 25 27 - Store 43(txval12) 51 - 56: 53 Load 55(g_tTex2df4) - 57: 14 Load 16(g_sSamp) - 59: 58 SampledImage 56 57 - 67: 7(fvec4) ImageSampleExplicitLod 59 62 Grad ConstOffset 63 63 66 - Store 52(txval20) 67 - 72: 69 Load 71(g_tTex2di4) - 73: 14 Load 16(g_sSamp) - 75: 74 SampledImage 72 73 - 76: 29(ivec4) ImageSampleExplicitLod 75 62 Grad ConstOffset 63 63 66 - Store 68(txval21) 76 - 81: 78 Load 80(g_tTex2du4) - 82: 14 Load 16(g_sSamp) - 84: 83 SampledImage 81 82 - 85: 41(ivec4) ImageSampleExplicitLod 84 62 Grad ConstOffset 63 63 66 - Store 77(txval22) 85 - 91: 8(ptr) AccessChain 88(psout) 65 - Store 91 90 - 93: 92(ptr) AccessChain 88(psout) 27 - Store 93 89 - 96: 8(ptr) AccessChain 88(psout) 65 - 97: 7(fvec4) Load 96 - Store 95(Color) 97 - 100: 92(ptr) AccessChain 88(psout) 27 - 101: 6(float) Load 100 - Store 99(Depth) 101 +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 index afdedb7dad..0151cdd378 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -1,53 +1,54 @@ hlsl.samplelevel.array.dx10.frag -Shader version: 450 +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 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: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: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: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: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 @@ -55,12 +56,12 @@ gl_FragCoord origin is upper left 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: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 @@ -68,12 +69,12 @@ gl_FragCoord origin is upper left 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: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 @@ -81,12 +82,12 @@ gl_FragCoord origin is upper left 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: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 @@ -95,12 +96,12 @@ gl_FragCoord origin is upper left 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: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 @@ -109,12 +110,12 @@ gl_FragCoord origin is upper left 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: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 @@ -122,9 +123,9 @@ gl_FragCoord origin is upper left 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 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: @@ -132,96 +133,103 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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: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: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: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: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 @@ -229,12 +237,12 @@ gl_FragCoord origin is upper left 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: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 @@ -242,12 +250,12 @@ gl_FragCoord origin is upper left 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: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 @@ -255,12 +263,12 @@ gl_FragCoord origin is upper left 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: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 @@ -269,12 +277,12 @@ gl_FragCoord origin is upper left 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: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 @@ -283,12 +291,12 @@ gl_FragCoord origin is upper left 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: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 @@ -296,9 +304,9 @@ gl_FragCoord origin is upper left 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 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: @@ -306,246 +314,265 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 0 (const int) -0:42 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:42 Constant: -0:42 1 (const int) -0:42 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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): 80001 -// Id's are bound by 140 +// 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" 131 135 + EntryPoint Fragment 4 "main" 139 143 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4a" - Name 16 "g_sSamp" - Name 29 "txval11" - Name 32 "g_tTex1di4a" - Name 43 "txval12" - Name 46 "g_tTex1du4a" - Name 54 "txval20" - Name 57 "g_tTex2df4a" - Name 65 "txval21" - Name 68 "g_tTex2di4a" - Name 76 "txval22" - Name 79 "g_tTex2du4a" - Name 88 "txval40" - Name 91 "g_tTexcdf4a" - Name 98 "txval41" - Name 101 "g_tTexcdi4a" - Name 108 "txval42" - Name 111 "g_tTexcdu4a" - Name 121 "PS_OUTPUT" - MemberName 121(PS_OUTPUT) 0 "Color" - MemberName 121(PS_OUTPUT) 1 "Depth" - Name 123 "psout" - Name 131 "Color" - Name 135 "Depth" - Name 139 "g_tTex1df4" - Decorate 12(g_tTex1df4a) DescriptorSet 0 - Decorate 12(g_tTex1df4a) Binding 1 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex1di4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 57(g_tTex2df4a) DescriptorSet 0 - Decorate 68(g_tTex2di4a) DescriptorSet 0 - Decorate 79(g_tTex2du4a) DescriptorSet 0 - Decorate 91(g_tTexcdf4a) DescriptorSet 0 - Decorate 101(g_tTexcdi4a) DescriptorSet 0 - Decorate 111(g_tTexcdu4a) DescriptorSet 0 - Decorate 131(Color) Location 0 - Decorate 135(Depth) BuiltIn FragDepth - Decorate 139(g_tTex1df4) DescriptorSet 0 - Decorate 139(g_tTex1df4) Binding 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4a): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1061158912 - 26: TypeInt 32 1 - 27: TypeVector 26(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 26(int) 1D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4a): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 37: 6(float) Constant 1050253722 - 38: 20(fvec2) ConstantComposite 22 37 - 40: TypeInt 32 0 - 41: TypeVector 40(int) 4 - 42: TypePointer Function 41(ivec4) - 44: TypeImage 40(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4a): 45(ptr) Variable UniformConstant - 49: TypeSampledImage 44 - 51: 6(float) Constant 1053609165 - 52: 20(fvec2) ConstantComposite 37 51 - 55: TypeImage 6(float) 2D array sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex2df4a): 56(ptr) Variable UniformConstant - 60: TypeSampledImage 55 - 62: TypeVector 6(float) 3 - 63: 62(fvec3) ConstantComposite 21 22 37 - 66: TypeImage 26(int) 2D array sampled format:Unknown - 67: TypePointer UniformConstant 66 - 68(g_tTex2di4a): 67(ptr) Variable UniformConstant - 71: TypeSampledImage 66 - 73: 6(float) Constant 1056964608 - 74: 62(fvec3) ConstantComposite 37 51 73 - 77: TypeImage 40(int) 2D array sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4a): 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: 6(float) Constant 1058642330 - 85: 6(float) Constant 1060320051 - 86: 62(fvec3) ConstantComposite 73 84 85 - 89: TypeImage 6(float) Cube array sampled format:Unknown - 90: TypePointer UniformConstant 89 - 91(g_tTexcdf4a): 90(ptr) Variable UniformConstant - 94: TypeSampledImage 89 - 96: 7(fvec4) ConstantComposite 21 22 37 51 - 99: TypeImage 26(int) Cube array sampled format:Unknown - 100: TypePointer UniformConstant 99 -101(g_tTexcdi4a): 100(ptr) Variable UniformConstant - 104: TypeSampledImage 99 - 106: 7(fvec4) ConstantComposite 51 73 84 85 - 109: TypeImage 40(int) Cube array sampled format:Unknown - 110: TypePointer UniformConstant 109 -111(g_tTexcdu4a): 110(ptr) Variable UniformConstant - 114: TypeSampledImage 109 - 116: 6(float) Constant 1061997773 - 117: 6(float) Constant 1063675494 - 118: 6(float) Constant 1065353216 - 119: 7(fvec4) ConstantComposite 85 116 117 118 - 121(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 122: TypePointer Function 121(PS_OUTPUT) - 124: 26(int) Constant 0 - 125: 7(fvec4) ConstantComposite 118 118 118 118 - 127: 26(int) Constant 1 - 128: TypePointer Function 6(float) - 130: TypePointer Output 7(fvec4) - 131(Color): 130(ptr) Variable Output - 134: TypePointer Output 6(float) - 135(Depth): 134(ptr) Variable Output - 139(g_tTex1df4): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 29(txval11): 28(ptr) Variable Function - 43(txval12): 42(ptr) Variable Function - 54(txval20): 8(ptr) Variable Function - 65(txval21): 28(ptr) Variable Function - 76(txval22): 42(ptr) Variable Function - 88(txval40): 8(ptr) Variable Function - 98(txval41): 28(ptr) Variable Function - 108(txval42): 42(ptr) Variable Function - 123(psout): 122(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4a) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24 - Store 9(txval10) 25 - 33: 30 Load 32(g_tTex1di4a) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24 - Store 29(txval11) 39 - 47: 44 Load 46(g_tTex1du4a) - 48: 14 Load 16(g_sSamp) - 50: 49 SampledImage 47 48 - 53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24 - Store 43(txval12) 53 - 58: 55 Load 57(g_tTex2df4a) - 59: 14 Load 16(g_sSamp) - 61: 60 SampledImage 58 59 - 64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24 - Store 54(txval20) 64 - 69: 66 Load 68(g_tTex2di4a) - 70: 14 Load 16(g_sSamp) - 72: 71 SampledImage 69 70 - 75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24 - Store 65(txval21) 75 - 80: 77 Load 79(g_tTex2du4a) - 81: 14 Load 16(g_sSamp) - 83: 82 SampledImage 80 81 - 87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24 - Store 76(txval22) 87 - 92: 89 Load 91(g_tTexcdf4a) - 93: 14 Load 16(g_sSamp) - 95: 94 SampledImage 92 93 - 97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24 - Store 88(txval40) 97 - 102: 99 Load 101(g_tTexcdi4a) - 103: 14 Load 16(g_sSamp) - 105: 104 SampledImage 102 103 - 107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24 - Store 98(txval41) 107 - 112: 109 Load 111(g_tTexcdu4a) - 113: 14 Load 16(g_sSamp) - 115: 114 SampledImage 112 113 - 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24 - Store 108(txval42) 120 - 126: 8(ptr) AccessChain 123(psout) 124 - Store 126 125 - 129: 128(ptr) AccessChain 123(psout) 127 - Store 129 118 - 132: 8(ptr) AccessChain 123(psout) 124 - 133: 7(fvec4) Load 132 - Store 131(Color) 133 - 136: 128(ptr) AccessChain 123(psout) 127 - 137: 6(float) Load 136 - Store 135(Depth) 137 +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 index 34a6597883..9327b844af 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -1,86 +1,87 @@ hlsl.samplelevel.basic.dx10.frag -Shader version: 450 +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 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 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 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 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: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: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: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: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 @@ -88,12 +89,12 @@ gl_FragCoord origin is upper left 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: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 @@ -101,12 +102,12 @@ gl_FragCoord origin is upper left 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: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 @@ -114,12 +115,12 @@ gl_FragCoord origin is upper left 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: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 @@ -127,12 +128,12 @@ gl_FragCoord origin is upper left 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: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 @@ -140,21 +141,21 @@ gl_FragCoord origin is upper left 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: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 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: @@ -162,133 +163,140 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:51 Sequence -0:51 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:51 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:51 Depth: direct index for structure (temp float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:51 Constant: -0:51 1 (const int) -0:51 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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_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: 450 +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 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 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 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 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: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: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: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: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 @@ -296,12 +304,12 @@ gl_FragCoord origin is upper left 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: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 @@ -309,12 +317,12 @@ gl_FragCoord origin is upper left 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: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 @@ -322,12 +330,12 @@ gl_FragCoord origin is upper left 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: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 @@ -335,12 +343,12 @@ gl_FragCoord origin is upper left 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: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 @@ -348,21 +356,21 @@ gl_FragCoord origin is upper left 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: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 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: @@ -370,288 +378,307 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:51 Sequence -0:51 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:51 Color: direct index for structure (temp 4-component vector of float) -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 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -0:51 Depth: direct index for structure (temp float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:51 Constant: -0:51 1 (const int) -0:51 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 165 +// 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" 155 159 + EntryPoint Fragment 4 "main" 163 167 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 26 "txval11" - Name 29 "g_tTex1di4" - Name 39 "txval12" - Name 42 "g_tTex1du4" - Name 49 "txval20" - Name 52 "g_tTex2df4" - Name 60 "txval21" - Name 63 "g_tTex2di4" - Name 71 "txval22" - Name 74 "g_tTex2du4" - Name 83 "txval30" - Name 86 "g_tTex3df4" - Name 94 "txval31" - Name 97 "g_tTex3di4" - Name 104 "txval32" - Name 107 "g_tTex3du4" - Name 117 "txval40" - Name 120 "g_tTexcdf4" - Name 126 "txval41" - Name 129 "g_tTexcdi4" - Name 135 "txval42" - Name 138 "g_tTexcdu4" - Name 144 "PS_OUTPUT" - MemberName 144(PS_OUTPUT) 0 "Color" - MemberName 144(PS_OUTPUT) 1 "Depth" - Name 146 "psout" - Name 155 "Color" - Name 159 "Depth" - Name 163 "g_sSamp2d" - Name 164 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 63(g_tTex2di4) DescriptorSet 0 - Decorate 74(g_tTex2du4) DescriptorSet 0 - Decorate 86(g_tTex3df4) DescriptorSet 0 - Decorate 97(g_tTex3di4) DescriptorSet 0 - Decorate 107(g_tTex3du4) DescriptorSet 0 - Decorate 120(g_tTexcdf4) DescriptorSet 0 - Decorate 129(g_tTexcdi4) DescriptorSet 0 - Decorate 138(g_tTexcdu4) DescriptorSet 0 - Decorate 155(Color) Location 0 - Decorate 159(Depth) BuiltIn FragDepth - Decorate 163(g_sSamp2d) DescriptorSet 0 - Decorate 164(g_tTex1df4a) DescriptorSet 0 - Decorate 164(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1061158912 - 23: TypeInt 32 1 - 24: TypeVector 23(int) 4 - 25: TypePointer Function 24(ivec4) - 27: TypeImage 23(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeSampledImage 27 - 34: 6(float) Constant 1045220557 - 36: TypeInt 32 0 - 37: TypeVector 36(int) 4 - 38: TypePointer Function 37(ivec4) - 40: TypeImage 36(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 45: TypeSampledImage 40 - 47: 6(float) Constant 1050253722 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeSampledImage 50 - 57: TypeVector 6(float) 2 - 58: 57(fvec2) ConstantComposite 20 34 - 61: TypeImage 23(int) 2D sampled format:Unknown - 62: TypePointer UniformConstant 61 - 63(g_tTex2di4): 62(ptr) Variable UniformConstant - 66: TypeSampledImage 61 - 68: 6(float) Constant 1053609165 - 69: 57(fvec2) ConstantComposite 47 68 - 72: TypeImage 36(int) 2D sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex2du4): 73(ptr) Variable UniformConstant - 77: TypeSampledImage 72 - 79: 6(float) Constant 1056964608 - 80: 6(float) Constant 1058642330 - 81: 57(fvec2) ConstantComposite 79 80 - 84: TypeImage 6(float) 3D sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(g_tTex3df4): 85(ptr) Variable UniformConstant - 89: TypeSampledImage 84 - 91: TypeVector 6(float) 3 - 92: 91(fvec3) ConstantComposite 20 34 47 - 95: TypeImage 23(int) 3D sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTex3di4): 96(ptr) Variable UniformConstant - 100: TypeSampledImage 95 - 102: 91(fvec3) ConstantComposite 68 79 80 - 105: TypeImage 36(int) 3D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex3du4): 106(ptr) Variable UniformConstant - 110: TypeSampledImage 105 - 112: 6(float) Constant 1060320051 - 113: 6(float) Constant 1061997773 - 114: 6(float) Constant 1063675494 - 115: 91(fvec3) ConstantComposite 112 113 114 - 118: TypeImage 6(float) Cube sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTexcdf4): 119(ptr) Variable UniformConstant - 123: TypeSampledImage 118 - 127: TypeImage 23(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdi4): 128(ptr) Variable UniformConstant - 132: TypeSampledImage 127 - 136: TypeImage 36(int) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdu4): 137(ptr) Variable UniformConstant - 141: TypeSampledImage 136 - 144(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 145: TypePointer Function 144(PS_OUTPUT) - 147: 23(int) Constant 0 - 148: 6(float) Constant 1065353216 - 149: 7(fvec4) ConstantComposite 148 148 148 148 - 151: 23(int) Constant 1 - 152: TypePointer Function 6(float) - 154: TypePointer Output 7(fvec4) - 155(Color): 154(ptr) Variable Output - 158: TypePointer Output 6(float) - 159(Depth): 158(ptr) Variable Output - 163(g_sSamp2d): 15(ptr) Variable UniformConstant -164(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 26(txval11): 25(ptr) Variable Function - 39(txval12): 38(ptr) Variable Function - 49(txval20): 8(ptr) Variable Function - 60(txval21): 25(ptr) Variable Function - 71(txval22): 38(ptr) Variable Function - 83(txval30): 8(ptr) Variable Function - 94(txval31): 25(ptr) Variable Function - 104(txval32): 38(ptr) Variable Function - 117(txval40): 8(ptr) Variable Function - 126(txval41): 25(ptr) Variable Function - 135(txval42): 38(ptr) Variable Function - 146(psout): 145(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 - Store 9(txval10) 22 - 30: 27 Load 29(g_tTex1di4) - 31: 14 Load 16(g_sSamp) - 33: 32 SampledImage 30 31 - 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 - Store 26(txval11) 35 - 43: 40 Load 42(g_tTex1du4) - 44: 14 Load 16(g_sSamp) - 46: 45 SampledImage 43 44 - 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 - Store 39(txval12) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 14 Load 16(g_sSamp) - 56: 55 SampledImage 53 54 - 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 - Store 49(txval20) 59 - 64: 61 Load 63(g_tTex2di4) - 65: 14 Load 16(g_sSamp) - 67: 66 SampledImage 64 65 - 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 - Store 60(txval21) 70 - 75: 72 Load 74(g_tTex2du4) - 76: 14 Load 16(g_sSamp) - 78: 77 SampledImage 75 76 - 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 - Store 71(txval22) 82 - 87: 84 Load 86(g_tTex3df4) - 88: 14 Load 16(g_sSamp) - 90: 89 SampledImage 87 88 - 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 - Store 83(txval30) 93 - 98: 95 Load 97(g_tTex3di4) - 99: 14 Load 16(g_sSamp) - 101: 100 SampledImage 98 99 - 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 - Store 94(txval31) 103 - 108: 105 Load 107(g_tTex3du4) - 109: 14 Load 16(g_sSamp) - 111: 110 SampledImage 108 109 - 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 - Store 104(txval32) 116 - 121: 118 Load 120(g_tTexcdf4) - 122: 14 Load 16(g_sSamp) - 124: 123 SampledImage 121 122 - 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 - Store 117(txval40) 125 - 130: 127 Load 129(g_tTexcdi4) - 131: 14 Load 16(g_sSamp) - 133: 132 SampledImage 130 131 - 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 - Store 126(txval41) 134 - 139: 136 Load 138(g_tTexcdu4) - 140: 14 Load 16(g_sSamp) - 142: 141 SampledImage 139 140 - 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 - Store 135(txval42) 143 - 150: 8(ptr) AccessChain 146(psout) 147 - Store 150 149 - 153: 152(ptr) AccessChain 146(psout) 151 - Store 153 148 - 156: 8(ptr) AccessChain 146(psout) 147 - 157: 7(fvec4) Load 156 - Store 155(Color) 157 - 160: 152(ptr) AccessChain 146(psout) 151 - 161: 6(float) Load 160 - Store 159(Depth) 161 +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 index 04d0870e27..d2bd1b8754 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -1,85 +1,85 @@ hlsl.samplelevel.basic.dx10.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence -0:30 move second child to first child (temp 4-component vector of float) -0:30 'txval10' (temp 4-component vector of float) -0:30 textureLod (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 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 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 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: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: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: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: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 @@ -87,12 +87,12 @@ Shader version: 450 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: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 @@ -100,12 +100,12 @@ Shader version: 450 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: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 @@ -113,12 +113,12 @@ Shader version: 450 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: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 @@ -126,12 +126,12 @@ Shader version: 450 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: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 @@ -139,21 +139,21 @@ Shader version: 450 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: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 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: @@ -161,117 +161,120 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float) -0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +Shader version: 500 0:? Sequence -0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence -0:30 move second child to first child (temp 4-component vector of float) -0:30 'txval10' (temp 4-component vector of float) -0:30 textureLod (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 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 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 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: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: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: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: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 @@ -279,12 +282,12 @@ Shader version: 450 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: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 @@ -292,12 +295,12 @@ Shader version: 450 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: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 @@ -305,12 +308,12 @@ Shader version: 450 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: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 @@ -318,12 +321,12 @@ Shader version: 450 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: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 @@ -331,21 +334,21 @@ Shader version: 450 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: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 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: @@ -353,257 +356,268 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float) -0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) -0:48 Constant: -0:48 0 (const int) -0:48 Branch: Return +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:? 'Pos' (out 4-component vector of float Position) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 157 +// 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" 152 + EntryPoint Vertex 4 "main" 158 + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 26 "txval11" - Name 29 "g_tTex1di4" - Name 39 "txval12" - Name 42 "g_tTex1du4" - Name 49 "txval20" - Name 52 "g_tTex2df4" - Name 60 "txval21" - Name 63 "g_tTex2di4" - Name 71 "txval22" - Name 74 "g_tTex2du4" - Name 83 "txval30" - Name 86 "g_tTex3df4" - Name 94 "txval31" - Name 97 "g_tTex3di4" - Name 104 "txval32" - Name 107 "g_tTex3du4" - Name 117 "txval40" - Name 120 "g_tTexcdf4" - Name 126 "txval41" - Name 129 "g_tTexcdi4" - Name 135 "txval42" - Name 138 "g_tTexcdu4" - Name 144 "VS_OUTPUT" - MemberName 144(VS_OUTPUT) 0 "Pos" - Name 146 "vsout" - Name 152 "Pos" - Name 156 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 63(g_tTex2di4) DescriptorSet 0 - Decorate 74(g_tTex2du4) DescriptorSet 0 - Decorate 86(g_tTex3df4) DescriptorSet 0 - Decorate 97(g_tTex3di4) DescriptorSet 0 - Decorate 107(g_tTex3du4) DescriptorSet 0 - Decorate 120(g_tTexcdf4) DescriptorSet 0 - Decorate 129(g_tTexcdi4) DescriptorSet 0 - Decorate 138(g_tTexcdu4) DescriptorSet 0 - Decorate 152(Pos) BuiltIn Position - Decorate 156(g_tTex1df4a) DescriptorSet 0 - Decorate 156(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1061158912 - 23: TypeInt 32 1 - 24: TypeVector 23(int) 4 - 25: TypePointer Function 24(ivec4) - 27: TypeImage 23(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeSampledImage 27 - 34: 6(float) Constant 1045220557 - 36: TypeInt 32 0 - 37: TypeVector 36(int) 4 - 38: TypePointer Function 37(ivec4) - 40: TypeImage 36(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 45: TypeSampledImage 40 - 47: 6(float) Constant 1050253722 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeSampledImage 50 - 57: TypeVector 6(float) 2 - 58: 57(fvec2) ConstantComposite 20 34 - 61: TypeImage 23(int) 2D sampled format:Unknown - 62: TypePointer UniformConstant 61 - 63(g_tTex2di4): 62(ptr) Variable UniformConstant - 66: TypeSampledImage 61 - 68: 6(float) Constant 1053609165 - 69: 57(fvec2) ConstantComposite 47 68 - 72: TypeImage 36(int) 2D sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex2du4): 73(ptr) Variable UniformConstant - 77: TypeSampledImage 72 - 79: 6(float) Constant 1056964608 - 80: 6(float) Constant 1058642330 - 81: 57(fvec2) ConstantComposite 79 80 - 84: TypeImage 6(float) 3D sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(g_tTex3df4): 85(ptr) Variable UniformConstant - 89: TypeSampledImage 84 - 91: TypeVector 6(float) 3 - 92: 91(fvec3) ConstantComposite 20 34 47 - 95: TypeImage 23(int) 3D sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTex3di4): 96(ptr) Variable UniformConstant - 100: TypeSampledImage 95 - 102: 91(fvec3) ConstantComposite 68 79 80 - 105: TypeImage 36(int) 3D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex3du4): 106(ptr) Variable UniformConstant - 110: TypeSampledImage 105 - 112: 6(float) Constant 1060320051 - 113: 6(float) Constant 1061997773 - 114: 6(float) Constant 1063675494 - 115: 91(fvec3) ConstantComposite 112 113 114 - 118: TypeImage 6(float) Cube sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTexcdf4): 119(ptr) Variable UniformConstant - 123: TypeSampledImage 118 - 127: TypeImage 23(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdi4): 128(ptr) Variable UniformConstant - 132: TypeSampledImage 127 - 136: TypeImage 36(int) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdu4): 137(ptr) Variable UniformConstant - 141: TypeSampledImage 136 - 144(VS_OUTPUT): TypeStruct 7(fvec4) - 145: TypePointer Function 144(VS_OUTPUT) - 147: 23(int) Constant 0 - 148: 6(float) Constant 0 - 149: 7(fvec4) ConstantComposite 148 148 148 148 - 151: TypePointer Output 7(fvec4) - 152(Pos): 151(ptr) Variable Output -156(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 26(txval11): 25(ptr) Variable Function - 39(txval12): 38(ptr) Variable Function - 49(txval20): 8(ptr) Variable Function - 60(txval21): 25(ptr) Variable Function - 71(txval22): 38(ptr) Variable Function - 83(txval30): 8(ptr) Variable Function - 94(txval31): 25(ptr) Variable Function - 104(txval32): 38(ptr) Variable Function - 117(txval40): 8(ptr) Variable Function - 126(txval41): 25(ptr) Variable Function - 135(txval42): 38(ptr) Variable Function - 146(vsout): 145(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 - Store 9(txval10) 22 - 30: 27 Load 29(g_tTex1di4) - 31: 14 Load 16(g_sSamp) - 33: 32 SampledImage 30 31 - 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 - Store 26(txval11) 35 - 43: 40 Load 42(g_tTex1du4) - 44: 14 Load 16(g_sSamp) - 46: 45 SampledImage 43 44 - 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 - Store 39(txval12) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 14 Load 16(g_sSamp) - 56: 55 SampledImage 53 54 - 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 - Store 49(txval20) 59 - 64: 61 Load 63(g_tTex2di4) - 65: 14 Load 16(g_sSamp) - 67: 66 SampledImage 64 65 - 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 - Store 60(txval21) 70 - 75: 72 Load 74(g_tTex2du4) - 76: 14 Load 16(g_sSamp) - 78: 77 SampledImage 75 76 - 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 - Store 71(txval22) 82 - 87: 84 Load 86(g_tTex3df4) - 88: 14 Load 16(g_sSamp) - 90: 89 SampledImage 87 88 - 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 - Store 83(txval30) 93 - 98: 95 Load 97(g_tTex3di4) - 99: 14 Load 16(g_sSamp) - 101: 100 SampledImage 98 99 - 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 - Store 94(txval31) 103 - 108: 105 Load 107(g_tTex3du4) - 109: 14 Load 16(g_sSamp) - 111: 110 SampledImage 108 109 - 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 - Store 104(txval32) 116 - 121: 118 Load 120(g_tTexcdf4) - 122: 14 Load 16(g_sSamp) - 124: 123 SampledImage 121 122 - 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 - Store 117(txval40) 125 - 130: 127 Load 129(g_tTexcdi4) - 131: 14 Load 16(g_sSamp) - 133: 132 SampledImage 130 131 - 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 - Store 126(txval41) 134 - 139: 136 Load 138(g_tTexcdu4) - 140: 14 Load 16(g_sSamp) - 142: 141 SampledImage 139 140 - 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 - Store 135(txval42) 143 - 150: 8(ptr) AccessChain 146(vsout) 147 - Store 150 149 - 153: 8(ptr) AccessChain 146(vsout) 147 - 154: 7(fvec4) Load 153 - Store 152(Pos) 154 + 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 index aa77961067..36c932c838 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplelevel.offset.dx10.frag -Shader version: 450 +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 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 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: @@ -19,12 +20,12 @@ gl_FragCoord origin is upper left 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 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: @@ -32,12 +33,12 @@ gl_FragCoord origin is upper left 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 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: @@ -45,12 +46,12 @@ gl_FragCoord origin is upper left 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: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 @@ -60,12 +61,12 @@ gl_FragCoord origin is upper left 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: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 @@ -75,12 +76,12 @@ gl_FragCoord origin is upper left 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: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 @@ -90,12 +91,12 @@ gl_FragCoord origin is upper left 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: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 @@ -107,12 +108,12 @@ gl_FragCoord origin is upper left 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: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 @@ -124,12 +125,12 @@ gl_FragCoord origin is upper left 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: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 @@ -140,9 +141,9 @@ gl_FragCoord origin is upper left 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 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: @@ -150,63 +151,70 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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: 450 +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 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 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: @@ -214,12 +222,12 @@ gl_FragCoord origin is upper left 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 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: @@ -227,12 +235,12 @@ gl_FragCoord origin is upper left 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 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: @@ -240,12 +248,12 @@ gl_FragCoord origin is upper left 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: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 @@ -255,12 +263,12 @@ gl_FragCoord origin is upper left 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: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 @@ -270,12 +278,12 @@ gl_FragCoord origin is upper left 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: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 @@ -285,12 +293,12 @@ gl_FragCoord origin is upper left 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: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 @@ -302,12 +310,12 @@ gl_FragCoord origin is upper left 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: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 @@ -319,12 +327,12 @@ gl_FragCoord origin is upper left 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: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 @@ -335,9 +343,9 @@ gl_FragCoord origin is upper left 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 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: @@ -345,269 +353,288 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:48 Sequence -0:48 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:48 Constant: -0:48 0 (const int) -0:48 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -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_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): 80001 -// Id's are bound by 155 +// 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" 137 141 + EntryPoint Fragment 4 "main" 145 149 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 27 "txval11" - Name 30 "g_tTex1di4" - Name 40 "txval12" - Name 43 "g_tTex1du4" - Name 50 "txval20" - Name 53 "g_tTex2df4" - Name 64 "txval21" - Name 67 "g_tTex2di4" - Name 76 "txval22" - Name 79 "g_tTex2du4" - Name 90 "txval30" - Name 93 "g_tTex3df4" - Name 103 "txval31" - Name 106 "g_tTex3di4" - Name 114 "txval32" - Name 117 "g_tTex3du4" - Name 128 "PS_OUTPUT" - MemberName 128(PS_OUTPUT) 0 "Color" - MemberName 128(PS_OUTPUT) 1 "Depth" - Name 130 "psout" - Name 137 "Color" - Name 141 "Depth" - Name 145 "g_tTex1df4a" - Name 148 "g_tTexcdf4" - Name 151 "g_tTexcdi4" - Name 154 "g_tTexcdu4" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 43(g_tTex1du4) DescriptorSet 0 - Decorate 53(g_tTex2df4) DescriptorSet 0 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 79(g_tTex2du4) DescriptorSet 0 - Decorate 93(g_tTex3df4) DescriptorSet 0 - Decorate 106(g_tTex3di4) DescriptorSet 0 - Decorate 117(g_tTex3du4) DescriptorSet 0 - Decorate 137(Color) Location 0 - Decorate 141(Depth) BuiltIn FragDepth - Decorate 145(g_tTex1df4a) DescriptorSet 0 - Decorate 145(g_tTex1df4a) Binding 1 - Decorate 148(g_tTexcdf4) DescriptorSet 0 - Decorate 151(g_tTexcdi4) DescriptorSet 0 - Decorate 154(g_tTexcdu4) DescriptorSet 0 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1036831949 - 21: 6(float) Constant 1061158912 - 22: TypeInt 32 1 - 23: 22(int) Constant 1 - 25: TypeVector 22(int) 4 - 26: TypePointer Function 25(ivec4) - 28: TypeImage 22(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeSampledImage 28 - 35: 6(float) Constant 1045220557 - 37: TypeInt 32 0 - 38: TypeVector 37(int) 4 - 39: TypePointer Function 38(ivec4) - 41: TypeImage 37(int) 1D sampled format:Unknown - 42: TypePointer UniformConstant 41 - 43(g_tTex1du4): 42(ptr) Variable UniformConstant - 46: TypeSampledImage 41 - 48: 6(float) Constant 1050253722 - 51: TypeImage 6(float) 2D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4): 52(ptr) Variable UniformConstant - 56: TypeSampledImage 51 - 58: TypeVector 6(float) 2 - 59: 58(fvec2) ConstantComposite 20 35 - 60: TypeVector 22(int) 2 - 61: 22(int) Constant 0 - 62: 60(ivec2) ConstantComposite 23 61 - 65: TypeImage 22(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: 58(fvec2) ConstantComposite 48 72 - 74: 60(ivec2) ConstantComposite 23 23 - 77: TypeImage 37(int) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4): 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: 6(float) Constant 1056964608 - 85: 6(float) Constant 1058642330 - 86: 58(fvec2) ConstantComposite 84 85 - 87: 22(int) Constant 4294967295 - 88: 60(ivec2) ConstantComposite 23 87 - 91: TypeImage 6(float) 3D sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTex3df4): 92(ptr) Variable UniformConstant - 96: TypeSampledImage 91 - 98: TypeVector 6(float) 3 - 99: 98(fvec3) ConstantComposite 20 35 48 - 100: TypeVector 22(int) 3 - 101: 100(ivec3) ConstantComposite 23 61 23 - 104: TypeImage 22(int) 3D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex3di4): 105(ptr) Variable UniformConstant - 109: TypeSampledImage 104 - 111: 98(fvec3) ConstantComposite 72 84 85 - 112: 100(ivec3) ConstantComposite 23 23 23 - 115: TypeImage 37(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3du4): 116(ptr) Variable UniformConstant - 120: TypeSampledImage 115 - 122: 6(float) Constant 1060320051 - 123: 6(float) Constant 1061997773 - 124: 6(float) Constant 1063675494 - 125: 98(fvec3) ConstantComposite 122 123 124 - 126: 100(ivec3) ConstantComposite 23 61 87 - 128(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 129: TypePointer Function 128(PS_OUTPUT) - 131: 6(float) Constant 1065353216 - 132: 7(fvec4) ConstantComposite 131 131 131 131 - 134: TypePointer Function 6(float) - 136: TypePointer Output 7(fvec4) - 137(Color): 136(ptr) Variable Output - 140: TypePointer Output 6(float) - 141(Depth): 140(ptr) Variable Output -145(g_tTex1df4a): 11(ptr) Variable UniformConstant - 146: TypeImage 6(float) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdf4): 147(ptr) Variable UniformConstant - 149: TypeImage 22(int) Cube sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTexcdi4): 150(ptr) Variable UniformConstant - 152: TypeImage 37(int) Cube sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTexcdu4): 153(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 27(txval11): 26(ptr) Variable Function - 40(txval12): 39(ptr) Variable Function - 50(txval20): 8(ptr) Variable Function - 64(txval21): 26(ptr) Variable Function - 76(txval22): 39(ptr) Variable Function - 90(txval30): 8(ptr) Variable Function - 103(txval31): 26(ptr) Variable Function - 114(txval32): 39(ptr) Variable Function - 130(psout): 129(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 24: 7(fvec4) ImageSampleExplicitLod 19 20 Lod ConstOffset 21 23 - Store 9(txval10) 24 - 31: 28 Load 30(g_tTex1di4) - 32: 14 Load 16(g_sSamp) - 34: 33 SampledImage 31 32 - 36: 25(ivec4) ImageSampleExplicitLod 34 35 Lod ConstOffset 21 23 - Store 27(txval11) 36 - 44: 41 Load 43(g_tTex1du4) - 45: 14 Load 16(g_sSamp) - 47: 46 SampledImage 44 45 - 49: 38(ivec4) ImageSampleExplicitLod 47 48 Lod ConstOffset 21 23 - Store 40(txval12) 49 - 54: 51 Load 53(g_tTex2df4) - 55: 14 Load 16(g_sSamp) - 57: 56 SampledImage 54 55 - 63: 7(fvec4) ImageSampleExplicitLod 57 59 Lod ConstOffset 21 62 - Store 50(txval20) 63 - 68: 65 Load 67(g_tTex2di4) - 69: 14 Load 16(g_sSamp) - 71: 70 SampledImage 68 69 - 75: 25(ivec4) ImageSampleExplicitLod 71 73 Lod ConstOffset 21 74 - Store 64(txval21) 75 - 80: 77 Load 79(g_tTex2du4) - 81: 14 Load 16(g_sSamp) - 83: 82 SampledImage 80 81 - 89: 38(ivec4) ImageSampleExplicitLod 83 86 Lod ConstOffset 21 88 - Store 76(txval22) 89 - 94: 91 Load 93(g_tTex3df4) - 95: 14 Load 16(g_sSamp) - 97: 96 SampledImage 94 95 - 102: 7(fvec4) ImageSampleExplicitLod 97 99 Lod ConstOffset 21 101 - Store 90(txval30) 102 - 107: 104 Load 106(g_tTex3di4) - 108: 14 Load 16(g_sSamp) - 110: 109 SampledImage 107 108 - 113: 25(ivec4) ImageSampleExplicitLod 110 111 Lod ConstOffset 21 112 - Store 103(txval31) 113 - 118: 115 Load 117(g_tTex3du4) - 119: 14 Load 16(g_sSamp) - 121: 120 SampledImage 118 119 - 127: 38(ivec4) ImageSampleExplicitLod 121 125 Lod ConstOffset 21 126 - Store 114(txval32) 127 - 133: 8(ptr) AccessChain 130(psout) 61 - Store 133 132 - 135: 134(ptr) AccessChain 130(psout) 23 - Store 135 131 - 138: 8(ptr) AccessChain 130(psout) 61 - 139: 7(fvec4) Load 138 - Store 137(Color) 139 - 142: 134(ptr) AccessChain 130(psout) 23 - 143: 6(float) Load 142 - Store 141(Depth) 143 +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 index 056a4f13c8..bc6fd6b410 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -1,17 +1,18 @@ hlsl.samplelevel.offsetarray.dx10.frag -Shader version: 450 +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 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: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 @@ -20,12 +21,12 @@ gl_FragCoord origin is upper left 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: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 @@ -34,12 +35,12 @@ gl_FragCoord origin is upper left 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: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 @@ -48,12 +49,12 @@ gl_FragCoord origin is upper left 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: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 @@ -64,12 +65,12 @@ gl_FragCoord origin is upper left 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: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 @@ -80,12 +81,12 @@ gl_FragCoord origin is upper left 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: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 @@ -95,9 +96,9 @@ gl_FragCoord origin is upper left 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 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: @@ -105,57 +106,64 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:36 Sequence -0:36 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:36 Constant: -0:36 0 (const int) -0:36 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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: 450 +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 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: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 @@ -164,12 +172,12 @@ gl_FragCoord origin is upper left 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: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 @@ -178,12 +186,12 @@ gl_FragCoord origin is upper left 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: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 @@ -192,12 +200,12 @@ gl_FragCoord origin is upper left 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: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 @@ -208,12 +216,12 @@ gl_FragCoord origin is upper left 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: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 @@ -224,12 +232,12 @@ gl_FragCoord origin is upper left 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: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 @@ -239,9 +247,9 @@ gl_FragCoord origin is upper left 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 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: @@ -249,202 +257,221 @@ gl_FragCoord origin is upper left 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 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 Sequence -0:36 Sequence -0:36 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) -0:36 Constant: -0:36 0 (const int) -0:36 move second child to first child (temp float) -0:? 'Depth' (out float FragDepth) -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 Branch: Return +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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) -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_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): 80001 -// Id's are bound by 112 +// 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" 103 107 + EntryPoint Fragment 4 "main" 111 115 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 9 "txval10" - Name 12 "g_tTex1df4" - Name 16 "g_sSamp" - Name 30 "txval11" - Name 33 "g_tTex1di4" - Name 45 "txval12" - Name 48 "g_tTex1du4" - Name 57 "txval20" - Name 60 "g_tTex2df4" - Name 70 "txval21" - Name 73 "g_tTex2di4" - Name 81 "txval22" - Name 84 "g_tTex2du4" - Name 94 "PS_OUTPUT" - MemberName 94(PS_OUTPUT) 0 "Color" - MemberName 94(PS_OUTPUT) 1 "Depth" - Name 96 "psout" - Name 103 "Color" - Name 107 "Depth" - Name 111 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 - Decorate 12(g_tTex1df4) Binding 0 - Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 16(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4) DescriptorSet 0 - Decorate 48(g_tTex1du4) DescriptorSet 0 - Decorate 60(g_tTex2df4) DescriptorSet 0 - Decorate 73(g_tTex2di4) DescriptorSet 0 - Decorate 84(g_tTex2du4) DescriptorSet 0 - Decorate 103(Color) Location 0 - Decorate 107(Depth) BuiltIn FragDepth - Decorate 111(g_tTex1df4a) DescriptorSet 0 - Decorate 111(g_tTex1df4a) Binding 1 + 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: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) 1D array sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant - 14: TypeSampler + 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_sSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1036831949 - 22: 6(float) Constant 1045220557 - 23: 20(fvec2) ConstantComposite 21 22 - 24: 6(float) Constant 1061158912 - 25: TypeInt 32 1 - 26: 25(int) Constant 0 - 28: TypeVector 25(int) 4 - 29: TypePointer Function 28(ivec4) - 31: TypeImage 25(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4): 32(ptr) Variable UniformConstant - 36: TypeSampledImage 31 - 38: 6(float) Constant 1050253722 - 39: 20(fvec2) ConstantComposite 22 38 - 40: 25(int) Constant 1 - 42: TypeInt 32 0 - 43: TypeVector 42(int) 4 - 44: TypePointer Function 43(ivec4) - 46: TypeImage 42(int) 1D array sampled format:Unknown - 47: TypePointer UniformConstant 46 - 48(g_tTex1du4): 47(ptr) Variable UniformConstant - 51: TypeSampledImage 46 - 53: 6(float) Constant 1053609165 - 54: 20(fvec2) ConstantComposite 38 53 - 55: 25(int) Constant 2 - 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 21 22 38 - 67: TypeVector 25(int) 2 - 68: 67(ivec2) ConstantComposite 26 26 - 71: TypeImage 25(int) 2D array sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2di4): 72(ptr) Variable UniformConstant - 76: TypeSampledImage 71 - 78: 6(float) Constant 1056964608 - 79: 65(fvec3) ConstantComposite 38 53 78 - 82: TypeImage 42(int) 2D array sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex2du4): 83(ptr) Variable UniformConstant - 87: TypeSampledImage 82 - 89: 6(float) Constant 1058642330 - 90: 6(float) Constant 1060320051 - 91: 65(fvec3) ConstantComposite 78 89 90 - 92: 67(ivec2) ConstantComposite 26 40 - 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 95: TypePointer Function 94(PS_OUTPUT) - 97: 6(float) Constant 1065353216 - 98: 7(fvec4) ConstantComposite 97 97 97 97 - 100: TypePointer Function 6(float) - 102: TypePointer Output 7(fvec4) - 103(Color): 102(ptr) Variable Output - 106: TypePointer Output 6(float) - 107(Depth): 106(ptr) Variable Output -111(g_tTex1df4a): 11(ptr) Variable UniformConstant + 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 - 9(txval10): 8(ptr) Variable Function - 30(txval11): 29(ptr) Variable Function - 45(txval12): 44(ptr) Variable Function - 57(txval20): 8(ptr) Variable Function - 70(txval21): 29(ptr) Variable Function - 81(txval22): 44(ptr) Variable Function - 96(psout): 95(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) - 17: 14 Load 16(g_sSamp) - 19: 18 SampledImage 13 17 - 27: 7(fvec4) ImageSampleExplicitLod 19 23 Lod ConstOffset 24 26 - Store 9(txval10) 27 - 34: 31 Load 33(g_tTex1di4) - 35: 14 Load 16(g_sSamp) - 37: 36 SampledImage 34 35 - 41: 28(ivec4) ImageSampleExplicitLod 37 39 Lod ConstOffset 24 40 - Store 30(txval11) 41 - 49: 46 Load 48(g_tTex1du4) - 50: 14 Load 16(g_sSamp) - 52: 51 SampledImage 49 50 - 56: 43(ivec4) ImageSampleExplicitLod 52 54 Lod ConstOffset 24 55 - Store 45(txval12) 56 - 61: 58 Load 60(g_tTex2df4) - 62: 14 Load 16(g_sSamp) - 64: 63 SampledImage 61 62 - 69: 7(fvec4) ImageSampleExplicitLod 64 66 Lod ConstOffset 24 68 - Store 57(txval20) 69 - 74: 71 Load 73(g_tTex2di4) - 75: 14 Load 16(g_sSamp) - 77: 76 SampledImage 74 75 - 80: 28(ivec4) ImageSampleExplicitLod 77 79 Lod ConstOffset 24 68 - Store 70(txval21) 80 - 85: 82 Load 84(g_tTex2du4) - 86: 14 Load 16(g_sSamp) - 88: 87 SampledImage 85 86 - 93: 43(ivec4) ImageSampleExplicitLod 88 91 Lod ConstOffset 24 92 - Store 81(txval22) 93 - 99: 8(ptr) AccessChain 96(psout) 26 - Store 99 98 - 101: 100(ptr) AccessChain 96(psout) 40 - Store 101 97 - 104: 8(ptr) AccessChain 96(psout) 26 - 105: 7(fvec4) Load 104 - Store 103(Color) 105 - 108: 100(ptr) AccessChain 96(psout) 40 - 109: 6(float) Load 108 - Store 107(Depth) 109 +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-new/Test/baseResults/hlsl.scalar-length.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.scalar-length.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.scalar-length.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.scalar-length.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.scalar2matrix.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.scalar2matrix.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.scalarCast.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.scalarCast.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.scalarCast.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.scalarCast.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.scope.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.scope.frag.out index 81c1a8442f..b563380e17 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.scope.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.scope.frag.out @@ -1,156 +1,191 @@ hlsl.scope.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:4 'x' (temp int) +0:4 'x' ( temp int) 0:? Sequence -0:7 'x' (temp float) +0:7 'x' ( temp float) 0:? Sequence -0:10 'x' (temp bool) +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: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 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 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 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) +0:? 'input' (layout( location=0) in 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (temp void) +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:4 'x' (temp int) +0:4 'x' ( temp int) 0:? Sequence -0:7 'x' (temp float) +0:7 'x' ( temp float) 0:? Sequence -0:10 'x' (temp bool) +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: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 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 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 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) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 39 +// 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" 38 + EntryPoint Fragment 4 "PixelShaderFunction" 44 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "x" - Name 11 "x" - Name 14 "x" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 15 "x" Name 17 "x" - Name 38 "input" - Decorate 38(input) Location 0 + 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: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: TypeFloat 32 - 10: TypePointer Function 9(float) - 12: TypeBool - 13: TypePointer Function 12(bool) - 15: TypeVector 9(float) 3 - 16: TypePointer Function 15(fvec3) - 19: 6(int) Constant 0 - 36: TypeVector 9(float) 4 - 37: TypePointer Input 36(fvec4) - 38(input): 37(ptr) Variable Input + 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 - 8(x): 7(ptr) Variable Function - 11(x): 10(ptr) Variable Function - 14(x): 13(ptr) Variable Function - 17(x): 16(ptr) Variable Function - 18: 6(int) Load 8(x) - 20: 12(bool) SGreaterThan 18 19 - SelectionMerge 22 None - BranchConditional 20 21 22 - 21: Label - Branch 22 - 22: Label - Branch 23 - 23: Label - LoopMerge 25 26 None - Branch 27 - 27: Label - 28: 6(int) Load 8(x) - 29: 12(bool) SGreaterThan 28 19 - BranchConditional 29 24 25 - 24: Label - Branch 26 - 26: Label - Branch 23 - 25: Label - Branch 30 - 30: Label - LoopMerge 32 33 None - Branch 31 - 31: Label - Branch 33 - 33: Label - 34: 6(int) Load 8(x) - 35: 12(bool) SGreaterThan 34 19 - BranchConditional 35 30 32 - 32: Label + 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-new/Test/baseResults/hlsl.self_cast.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.self_cast.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.self_cast.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.self_cast.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.semantic-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.semantic-1.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.semantic-1.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.semantic-1.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.semantic.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.semantic.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.semantic.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.semantic.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.semantic.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.semantic.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.semantic.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.semantic.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.semicolons.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.semicolons.frag.out index a9f927687c..94307a6a61 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.semicolons.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.semicolons.frag.out @@ -1,17 +1,17 @@ hlsl.semicolons.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: MyFunc( (temp void) +0:2 Function Definition: MyFunc( ( temp void) 0:2 Function Parameters: -0:8 Function Definition: MyFunc2( (temp void) +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 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 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: @@ -19,35 +19,38 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Sequence -0:17 Sequence -0:17 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:17 color: direct index for structure (temp 4-component vector of float) -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) -0:17 Constant: -0:17 0 (const int) -0:17 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: MyFunc( (temp void) +0:2 Function Definition: MyFunc( ( temp void) 0:2 Function Parameters: -0:8 Function Definition: MyFunc2( (temp void) +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 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 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: @@ -55,56 +58,59 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Sequence -0:17 Sequence -0:17 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:17 color: direct index for structure (temp 4-component vector of float) -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) -0:17 Constant: -0:17 0 (const int) -0:17 Branch: Return +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:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 26 +// 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" 22 + 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 "ps_output" - Name 22 "color" - Decorate 22(color) Location 0 + 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: TypePointer Function 12(PS_OUTPUT) - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: 10(float) Constant 1065353216 - 18: 11(fvec4) ConstantComposite 17 17 17 17 - 19: TypePointer Function 11(fvec4) - 21: TypePointer Output 11(fvec4) - 22(color): 21(ptr) Variable Output + 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 - 14(ps_output): 13(ptr) Variable Function - 20: 19(ptr) AccessChain 14(ps_output) 16 - Store 20 18 - 23: 19(ptr) AccessChain 14(ps_output) 16 - 24: 11(fvec4) Load 23 - Store 22(color) 24 + 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 @@ -115,3 +121,11 @@ gl_FragCoord origin is upper left 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 index a15caac5b3..d283809925 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.shapeConv.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.shapeConv.frag.out @@ -1,115 +1,159 @@ hlsl.shapeConv.frag -Shader version: 450 +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 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: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 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 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: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 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 Construct float (temp float) -0:10 'f' (in float) +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 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 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: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 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 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: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: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 Compare Equal (temp bool) -0:26 'f1' (temp 1-component vector of float) -0:26 Construct float (temp 1-component vector of float) -0:26 'v' (temp 4-component vector of float) -0:27 Compare Less Than (temp bool) -0:27 Construct float (temp 1-component vector of float) -0:27 'v' (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:31 Branch: Return with expression -0:31 'input' (in 4-component vector of float) +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 @@ -117,128 +161,173 @@ Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 450 +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 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: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 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 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: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 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 Construct float (temp float) -0:10 'f' (in float) +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 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 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: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 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 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: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: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 Compare Equal (temp bool) -0:26 'f1' (temp 1-component vector of float) -0:26 Construct float (temp 1-component vector of float) -0:26 'v' (temp 4-component vector of float) -0:27 Compare Less Than (temp bool) -0:27 Construct float (temp 1-component vector of float) -0:27 'v' (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:31 Branch: Return with expression -0:31 'input' (in 4-component vector of float) +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): 80001 -// Id's are bound by 85 +// 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" @@ -250,6 +339,11 @@ gl_FragCoord origin is upper left 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 @@ -281,6 +375,11 @@ gl_FragCoord origin is upper left 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 @@ -296,6 +395,11 @@ gl_FragCoord origin is upper left 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) @@ -331,16 +435,55 @@ gl_FragCoord origin is upper left 68: 62(bvec4) FOrdNotEqual 66 67 69: 41(bool) Any 68 71: 6(float) Load 70(f1) - 72: 7(fvec4) Load 15(v) - 73: 6(float) CompositeExtract 72 0 - 74: 41(bool) FOrdEqual 71 73 + 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) CompositeExtract 75 0 - 77: 6(float) Load 70(f1) - 78: 41(bool) FOrdLessThan 76 77 + 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 - 82: 7(fvec4) Load 11(input) - ReturnValue 82 + 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 index c21378703c..fc12f7f076 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out @@ -1,8 +1,8 @@ hlsl.shapeConvRet.frag -Shader version: 450 +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 Definition: foo( ( temp 3-component vector of int) 0:2 Function Parameters: 0:? Sequence 0:3 Branch: Return with expression @@ -10,28 +10,35 @@ gl_FragCoord origin is upper left 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 Definition: @main(f1; ( temp 4-component vector of float) 0:7 Function Parameters: -0:7 'f' (layout(location=0 ) in float) +0:7 'f' ( in float) 0:? Sequence -0:8 Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:8 Construct vec4 (temp 4-component vector of float) -0:8 'f' (layout(location=0 ) in float) -0:8 Branch: Return +0: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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'f' (layout( location=0) in float) Linked fragment stage: -Shader version: 450 +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 Definition: foo( ( temp 3-component vector of int) 0:2 Function Parameters: 0:? Sequence 0:3 Branch: Return with expression @@ -39,56 +46,82 @@ gl_FragCoord origin is upper left 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 Definition: @main(f1; ( temp 4-component vector of float) 0:7 Function Parameters: -0:7 'f' (layout(location=0 ) in float) +0:7 'f' ( in float) 0:? Sequence -0:8 Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:8 Construct vec4 (temp 4-component vector of float) -0:8 'f' (layout(location=0 ) in float) -0:8 Branch: Return +0: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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'f' (layout( location=0) in float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 24 +// 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" 18 20 + EntryPoint Fragment 4 "main" 28 31 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 9 "foo(" - Name 18 "@entryPointOutput" - Name 20 "f" - Decorate 18(@entryPointOutput) Location 0 - Decorate 20(f) Location 0 + 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: 6(int) Constant 13 - 12: 7(ivec3) ConstantComposite 11 11 11 - 15: TypeFloat 32 - 16: TypeVector 15(float) 4 - 17: TypePointer Output 16(fvec4) -18(@entryPointOutput): 17(ptr) Variable Output - 19: TypePointer Input 15(float) - 20(f): 19(ptr) Variable Input + 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 - 21: 15(float) Load 20(f) - 22: 16(fvec4) CompositeConstruct 21 21 21 21 - Store 18(@entryPointOutput) 22 + 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 12 + 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-new/Test/baseResults/hlsl.shift.per-set.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.shift.per-set.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.shift.per-set.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.shift.per-set.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.sin.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.sin.frag.out index 629668ac78..b92085e41d 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.sin.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sin.frag.out @@ -1,68 +1,101 @@ hlsl.sin.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 sine (temp 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 Branch: Return +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) +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: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'input' ( in 4-component vector of float) 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 sine (temp 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 15 +// 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" 9 11 + EntryPoint Fragment 4 "PixelShaderFunction" 19 22 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "@entryPointOutput" - Name 11 "input" - Decorate 9(@entryPointOutput) Location 0 - Decorate 11(input) Location 0 + 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 Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(input): 10(ptr) Variable Input + 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 - 12: 7(fvec4) Load 11(input) - 13: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 12 - Store 9(@entryPointOutput) 13 + 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-new/Test/baseResults/hlsl.snorm.uav.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.snorm.uav.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.snorm.uav.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.snorm.uav.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.staticMemberFunction.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.staticMemberFunction.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.string.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.string.frag.out index 3d80ce5354..9181b933aa 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.string.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.string.frag.out @@ -1,64 +1,97 @@ hlsl.string.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main(f1; (temp float) +0:10 Function Definition: @main(f1; ( temp float) 0:10 Function Parameters: -0:10 'f' (layout(location=0 ) in float) +0:10 'f' ( in float) 0:? Sequence -0:11 Sequence -0:11 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:11 'f' (layout(location=0 ) in float) -0:11 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'f' (layout( location=0) in float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main(f1; (temp float) +0:10 Function Definition: @main(f1; ( temp float) 0:10 Function Parameters: -0:10 'f' (layout(location=0 ) in float) +0:10 'f' ( in float) 0:? Sequence -0:11 Sequence -0:11 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:11 'f' (layout(location=0 ) in float) -0:11 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'f' (layout( location=0) in float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 13 +// 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" 8 10 + EntryPoint Fragment 4 "main" 17 20 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "@entryPointOutput" - Name 10 "f" - Decorate 8(@entryPointOutput) Location 0 - Decorate 10(f) Location 0 + 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 Output 6(float) -8(@entryPointOutput): 7(ptr) Variable Output - 9: TypePointer Input 6(float) - 10(f): 9(ptr) Variable Input + 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 - 11: 6(float) Load 10(f) - Store 8(@entryPointOutput) 11 + 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 index 94c1b2ad34..82033cf365 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.stringtoken.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.stringtoken.frag.out @@ -1,13 +1,13 @@ hlsl.stringtoken.frag -Shader version: 450 +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 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 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: @@ -15,33 +15,36 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Sequence -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) -0:19 Constant: -0:19 0 (const int) -0:19 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'TestTexture' (uniform texture2D) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) +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: 450 +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 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 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: @@ -49,70 +52,81 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Sequence -0:19 Sequence -0:19 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) -0:19 Constant: -0:19 0 (const int) -0:19 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'TestTexture' (uniform texture2D) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) +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): 80001 -// Id's are bound by 29 +// 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" 19 + 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 "psout" - Name 19 "Color" - Name 25 "TestTexture" - Name 26 "$Global" - MemberName 26($Global) 0 "TestUF" - Name 28 "" - Decorate 19(Color) Location 0 - Decorate 25(TestTexture) DescriptorSet 0 - MemberDecorate 26($Global) 0 Offset 0 - Decorate 26($Global) Block - Decorate 28 DescriptorSet 0 + 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: TypePointer Function 8(PS_OUTPUT) - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13: 6(float) Constant 0 - 14: 6(float) Constant 1065353216 - 15: 7(fvec4) ConstantComposite 13 13 13 14 - 16: TypePointer Function 7(fvec4) - 18: TypePointer Output 7(fvec4) - 19(Color): 18(ptr) Variable Output - 23: TypeImage 6(float) 2D sampled format:Unknown - 24: TypePointer UniformConstant 23 - 25(TestTexture): 24(ptr) Variable UniformConstant - 26($Global): TypeStruct 7(fvec4) - 27: TypePointer Uniform 26($Global) - 28: 27(ptr) Variable Uniform + 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 - 10(psout): 9(ptr) Variable Function - 17: 16(ptr) AccessChain 10(psout) 12 - Store 17 15 - 20: 16(ptr) AccessChain 10(psout) 12 - 21: 7(fvec4) Load 20 - Store 19(Color) 21 + 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 index c14018ea23..bd216c8e31 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.struct.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.frag.out @@ -3,194 +3,411 @@ WARNING: 0:26: 'register' : ignoring shader_profile WARNING: 0:27: 'register' : ignoring shader_profile WARNING: 0:30: 'register' : ignoring shader_profile -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) -0:34 Function Parameters: -0:34 'input' (layout(location=0 ) in 4-component vector of float) -0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +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:39 Compare Equal (temp bool) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 move second child to first child (temp 4-component vector of float) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 's2' (global structure{temp 4-component vector of float i}) -0:40 Constant: -0:40 0 (const int) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) -0:42 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 'input' (layout(location=0 ) in 4-component vector of float) -0:42 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) -0:? 'b' (layout(location=2 ) flat in bool) -0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float) -0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float) -0:? 'ff1' (in bool Face) -0:? 'ff2' (layout(location=5 offset=4 ) in bool) -0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) -0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +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: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) -0:34 Function Parameters: -0:34 'input' (layout(location=0 ) in 4-component vector of float) -0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +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:39 Compare Equal (temp bool) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 move second child to first child (temp 4-component vector of float) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 's2' (global structure{temp 4-component vector of float i}) -0:40 Constant: -0:40 0 (const int) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) -0:42 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 'input' (layout(location=0 ) in 4-component vector of float) -0:42 Branch: Return +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:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) -0:? 'b' (layout(location=2 ) flat in bool) -0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float) -0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float) -0:? 'ff1' (in bool Face) -0:? 'ff2' (layout(location=5 offset=4 ) in bool) -0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) -0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +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): 80001 -// Id's are bound by 50 +// 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" 25 30 31 34 36 38 41 42 43 44 + EntryPoint Fragment 4 "PixelShaderFunction" 51 54 59 65 71 76 80 84 87 91 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "FS" - MemberName 8(FS) 0 "b3" - Name 10 "s3" - Name 19 "" - MemberName 19 0 "i" - Name 21 "s2" - Name 25 "ff4" - Name 30 "@entryPointOutput" - Name 31 "input" - Name 34 "a" - Name 36 "b" - Name 38 "c" - Name 41 "d" - Name 42 "ff1" - Name 43 "ff2" - Name 44 "ff3" - Name 46 "myS" - MemberName 46(myS) 0 "b" - MemberName 46(myS) 1 "c" - MemberName 46(myS) 2 "a" - MemberName 46(myS) 3 "d" - Name 47 "$Global" - MemberName 47($Global) 0 "s1" - MemberName 47($Global) 1 "ff5" - MemberName 47($Global) 2 "ff6" - Name 49 "" - Decorate 25(ff4) Offset 4 - Decorate 25(ff4) Location 7 - Decorate 25(ff4) Binding 0 - Decorate 30(@entryPointOutput) Location 0 - Decorate 31(input) Location 0 - Decorate 34(a) Location 1 - Decorate 36(b) Flat - Decorate 36(b) Location 2 - Decorate 38(c) NoPerspective - Decorate 38(c) Centroid - Decorate 38(c) Location 3 - Decorate 41(d) Centroid - Decorate 41(d) Location 4 - Decorate 42(ff1) BuiltIn FrontFacing - Decorate 43(ff2) Offset 4 - Decorate 43(ff2) Location 5 - Decorate 44(ff3) Offset 4 - Decorate 44(ff3) Location 6 - Decorate 44(ff3) Binding 0 - MemberDecorate 46(myS) 0 Offset 0 - MemberDecorate 46(myS) 1 Offset 4 - MemberDecorate 46(myS) 2 Offset 16 - MemberDecorate 46(myS) 3 Offset 32 - MemberDecorate 47($Global) 0 Offset 0 - MemberDecorate 47($Global) 1 Offset 1620 - MemberDecorate 47($Global) 2 Offset 1636 - Decorate 47($Global) Block - Decorate 49 DescriptorSet 0 + 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: TypeBool - 7: TypeVector 6(bool) 3 - 8(FS): TypeStruct 7(bvec3) - 9: TypePointer Function 8(FS) - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeStruct 18(fvec4) - 20: TypePointer Private 19(struct) - 21(s2): 20(ptr) Variable Private - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 24: TypePointer Input 18(fvec4) - 25(ff4): 24(ptr) Variable Input - 27: TypePointer Private 18(fvec4) - 29: TypePointer Output 18(fvec4) -30(@entryPointOutput): 29(ptr) Variable Output - 31(input): 24(ptr) Variable Input - 34(a): 24(ptr) Variable Input - 35: TypePointer Input 6(bool) - 36(b): 35(ptr) Variable Input - 37: TypePointer Input 17(float) - 38(c): 37(ptr) Variable Input - 39: TypeVector 17(float) 2 - 40: TypePointer Input 39(fvec2) - 41(d): 40(ptr) Variable Input - 42(ff1): 35(ptr) Variable Input - 43(ff2): 35(ptr) Variable Input - 44(ff3): 35(ptr) Variable Input - 45: TypeInt 32 0 - 46(myS): TypeStruct 45(int) 45(int) 18(fvec4) 18(fvec4) - 47($Global): TypeStruct 46(myS) 17(float) 17(float) - 48: TypePointer Uniform 47($Global) - 49: 48(ptr) Variable Uniform + 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 - 10(s3): 9(ptr) Variable Function - 11: 8(FS) Load 10(s3) - 12: 8(FS) Load 10(s3) - 13: 7(bvec3) CompositeExtract 11 0 - 14: 7(bvec3) CompositeExtract 12 0 - 15: 7(bvec3) LogicalEqual 13 14 - 16: 6(bool) All 15 - 26: 18(fvec4) Load 25(ff4) - 28: 27(ptr) AccessChain 21(s2) 23 - Store 28 26 - 32: 18(fvec4) Load 31(input) - Store 30(@entryPointOutput) 32 + 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-new/Test/baseResults/hlsl.struct.split-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split-1.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.struct.split-1.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.struct.split-1.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.struct.split.array.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.array.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.struct.split.array.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.struct.split.array.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.struct.split.assign.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.struct.split.assign.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.struct.split.call.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.call.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.struct.split.call.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.struct.split.call.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.struct.split.nested.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.struct.split.nested.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.struct.split.trivial.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.struct.split.trivial.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.struct.split.trivial.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.struct.split.trivial.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structIoFourWay.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structIoFourWay.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structStructName.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structStructName.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structStructName.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structStructName.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out index 6b22d6638a..411f155876 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out @@ -1,197 +1,301 @@ hlsl.structarray.flatten.frag -Shader version: 450 +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 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:23 'ps_output' ( out structure{ temp 4-component vector of float color}) 0:? Sequence -0:24 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:26 add (temp 4-component vector of float) -0:25 add (temp 4-component vector of float) -0:25 texture (temp 4-component vector of float) -0:25 Construct combined texture-sampler (temp sampler1D) -0:? 'tex' (uniform texture1D) -0:? 'samp' (uniform sampler) +0: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 texture ( temp 4-component vector of float) +0:26 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_texdata_array[1].tex' ( uniform texture1D) +0:? 'g_texdata_array[1].samp' ( uniform sampler) 0:26 Constant: 0:26 0.400000 -0:27 texture (temp 4-component vector of float) -0:27 Construct combined texture-sampler (temp sampler1D) -0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:27 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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_samp' (uniform sampler) -0:? 'g_tex' (uniform texture1D) -0:? 'g_texdata_array2[0].samp[0]' (uniform sampler) -0:? 'g_texdata_array2[0].samp[1]' (uniform sampler) -0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D) -0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) -0:? 'g_texdata_array2[1].samp[1]' (uniform sampler) -0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D) -0:? 'g_texdata_array2[2].samp[0]' (uniform sampler) -0:? 'g_texdata_array2[2].samp[1]' (uniform sampler) -0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D) +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: 450 +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 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:23 'ps_output' ( out structure{ temp 4-component vector of float color}) 0:? Sequence -0:24 move second child to first child (temp 4-component vector of float) -0:? 'color' (layout(location=0 ) out 4-component vector of float) -0:26 add (temp 4-component vector of float) -0:25 add (temp 4-component vector of float) -0:25 texture (temp 4-component vector of float) -0:25 Construct combined texture-sampler (temp sampler1D) -0:? 'tex' (uniform texture1D) -0:? 'samp' (uniform sampler) +0: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 texture ( temp 4-component vector of float) +0:26 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_texdata_array[1].tex' ( uniform texture1D) +0:? 'g_texdata_array[1].samp' ( uniform sampler) 0:26 Constant: 0:26 0.400000 -0:27 texture (temp 4-component vector of float) -0:27 Construct combined texture-sampler (temp sampler1D) -0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:27 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:? 'color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_samp' (uniform sampler) -0:? 'g_tex' (uniform texture1D) -0:? 'g_texdata_array2[0].samp[0]' (uniform sampler) -0:? 'g_texdata_array2[0].samp[1]' (uniform sampler) -0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D) -0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) -0:? 'g_texdata_array2[1].samp[1]' (uniform sampler) -0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D) -0:? 'g_texdata_array2[2].samp[0]' (uniform sampler) -0:? 'g_texdata_array2[2].samp[1]' (uniform sampler) -0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D) -0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D) +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): 80001 -// Id's are bound by 50 +// 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" 9 + EntryPoint Fragment 4 "main" 59 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 9 "color" - Name 12 "tex" - Name 16 "samp" - Name 22 "g_texdata_array[1].tex" - Name 24 "g_texdata_array[1].samp" - Name 30 "g_texdata_array2[1].tex[0]" - Name 32 "g_texdata_array2[1].samp[0]" - Name 38 "g_samp" - Name 39 "g_tex" - Name 40 "g_texdata_array2[0].samp[0]" - Name 41 "g_texdata_array2[0].samp[1]" - Name 42 "g_texdata_array2[0].tex[0]" - Name 43 "g_texdata_array2[0].tex[1]" - Name 44 "g_texdata_array2[1].samp[1]" - Name 45 "g_texdata_array2[1].tex[1]" - Name 46 "g_texdata_array2[2].samp[0]" - Name 47 "g_texdata_array2[2].samp[1]" - Name 48 "g_texdata_array2[2].tex[0]" - Name 49 "g_texdata_array2[2].tex[1]" - Decorate 9(color) Location 0 - Decorate 12(tex) DescriptorSet 0 - Decorate 16(samp) DescriptorSet 0 - Decorate 22(g_texdata_array[1].tex) DescriptorSet 0 - Decorate 24(g_texdata_array[1].samp) DescriptorSet 0 - Decorate 30(g_texdata_array2[1].tex[0]) DescriptorSet 0 - Decorate 32(g_texdata_array2[1].samp[0]) DescriptorSet 0 - Decorate 38(g_samp) DescriptorSet 0 - Decorate 39(g_tex) DescriptorSet 0 - Decorate 40(g_texdata_array2[0].samp[0]) DescriptorSet 0 - Decorate 41(g_texdata_array2[0].samp[1]) DescriptorSet 0 - Decorate 42(g_texdata_array2[0].tex[0]) DescriptorSet 0 - Decorate 43(g_texdata_array2[0].tex[1]) DescriptorSet 0 - Decorate 44(g_texdata_array2[1].samp[1]) DescriptorSet 0 - Decorate 45(g_texdata_array2[1].tex[1]) DescriptorSet 0 - Decorate 46(g_texdata_array2[2].samp[0]) DescriptorSet 0 - Decorate 47(g_texdata_array2[2].samp[1]) DescriptorSet 0 - Decorate 48(g_texdata_array2[2].tex[0]) DescriptorSet 0 - Decorate 49(g_texdata_array2[2].tex[1]) DescriptorSet 0 + 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: TypePointer Output 7(fvec4) - 9(color): 8(ptr) Variable Output - 10: TypeImage 6(float) 1D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(tex): 11(ptr) Variable UniformConstant - 14: TypeSampler - 15: TypePointer UniformConstant 14 - 16(samp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: 6(float) Constant 1056964608 -22(g_texdata_array[1].tex): 11(ptr) Variable UniformConstant -24(g_texdata_array[1].samp): 15(ptr) Variable UniformConstant - 27: 6(float) Constant 1053609165 -30(g_texdata_array2[1].tex[0]): 11(ptr) Variable UniformConstant -32(g_texdata_array2[1].samp[0]): 15(ptr) Variable UniformConstant - 35: 6(float) Constant 1050253722 - 38(g_samp): 15(ptr) Variable UniformConstant - 39(g_tex): 11(ptr) Variable UniformConstant -40(g_texdata_array2[0].samp[0]): 15(ptr) Variable UniformConstant -41(g_texdata_array2[0].samp[1]): 15(ptr) Variable UniformConstant -42(g_texdata_array2[0].tex[0]): 11(ptr) Variable UniformConstant -43(g_texdata_array2[0].tex[1]): 11(ptr) Variable UniformConstant -44(g_texdata_array2[1].samp[1]): 15(ptr) Variable UniformConstant -45(g_texdata_array2[1].tex[1]): 11(ptr) Variable UniformConstant -46(g_texdata_array2[2].samp[0]): 15(ptr) Variable UniformConstant -47(g_texdata_array2[2].samp[1]): 15(ptr) Variable UniformConstant -48(g_texdata_array2[2].tex[0]): 11(ptr) Variable UniformConstant -49(g_texdata_array2[2].tex[1]): 11(ptr) Variable UniformConstant + 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 - 13: 10 Load 12(tex) - 17: 14 Load 16(samp) - 19: 18 SampledImage 13 17 - 21: 7(fvec4) ImageSampleImplicitLod 19 20 - 23: 10 Load 22(g_texdata_array[1].tex) - 25: 14 Load 24(g_texdata_array[1].samp) - 26: 18 SampledImage 23 25 - 28: 7(fvec4) ImageSampleImplicitLod 26 27 - 29: 7(fvec4) FAdd 21 28 - 31: 10 Load 30(g_texdata_array2[1].tex[0]) - 33: 14 Load 32(g_texdata_array2[1].samp[0]) - 34: 18 SampledImage 31 33 - 36: 7(fvec4) ImageSampleImplicitLod 34 35 - 37: 7(fvec4) FAdd 29 36 - Store 9(color) 37 + 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 index 0994af84f6..f88118d624 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out @@ -1,100 +1,279 @@ hlsl.structarray.flatten.geom -ERROR: 0:10: 'vin' : recursive type not yet supported in GS input -ERROR: 1 compilation errors. No code generated. - - -Shader version: 450 +Shader version: 500 invocations = -1 max_vertices = 4 input primitive = lines output primitive = triangle_strip -ERROR: node is still EOpNull! -0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void) -0:10 Function Parameters: -0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0: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:13 move second child to first child (temp 4-component vector of float) -0:13 color: direct index for structure (temp 4-component vector of float) -0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:13 Constant: -0:13 1 (const int) -0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) -0:14 move second child to first child (temp 2-component vector of float) -0:14 uv: direct index for structure (temp 2-component vector of float) -0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:14 Constant: -0:14 2 (const int) -0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) -0:15 move second child to first child (temp 4-component vector of float) -0:15 position: direct index for structure (temp 4-component vector of float) -0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:15 Constant: -0:15 0 (const int) -0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) -0:16 Sequence -0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:16 EmitVertex (temp void) +0: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[0].position' (layout(location=0 ) in 4-component vector of float) -0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) -0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) -0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float) -0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float) -0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float) -0:? 'position' (layout(location=0 ) out 4-component vector of float) -0:? 'color' (layout(location=1 ) out 4-component vector of float) -0:? 'uv' (layout(location=2 ) out 2-component vector of float) +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: 450 +Shader version: 500 invocations = 1 max_vertices = 4 input primitive = lines output primitive = triangle_strip -ERROR: node is still EOpNull! -0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void) -0:10 Function Parameters: -0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0: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:13 move second child to first child (temp 4-component vector of float) -0:13 color: direct index for structure (temp 4-component vector of float) -0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:13 Constant: -0:13 1 (const int) -0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) -0:14 move second child to first child (temp 2-component vector of float) -0:14 uv: direct index for structure (temp 2-component vector of float) -0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:14 Constant: -0:14 2 (const int) -0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) -0:15 move second child to first child (temp 4-component vector of float) -0:15 position: direct index for structure (temp 4-component vector of float) -0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:15 Constant: -0:15 0 (const int) -0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) -0:16 Sequence -0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) -0:16 EmitVertex (temp void) +0: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[0].position' (layout(location=0 ) in 4-component vector of float) -0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) -0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) -0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float) -0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float) -0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float) -0:? 'position' (layout(location=0 ) out 4-component vector of float) -0:? 'color' (layout(location=1 ) out 4-component vector of float) -0:? 'uv' (layout(location=2 ) out 2-component vector of float) +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) -SPIR-V is not generated for failed compile or link +// 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-new/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.append.fn.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.append.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.append.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.atomics.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.atomics.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.byte.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.byte.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.coherent.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.coherent.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.floatidx.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.floatidx.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.fn.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.fn.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.fn2.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.fn2.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.incdec.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.incdec.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.rw.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.rw.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structin.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.structin.vert.out index a5feea8aa9..d7f539d0c4 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.structin.vert.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structin.vert.out @@ -1,254 +1,499 @@ hlsl.structin.vert -Shader version: 450 +Shader version: 500 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function 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' (layout(location=0 ) in 4-component vector of float) -0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 'e' (layout(location=5 ) in 4-component vector of float) +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 2-component vector of uint coord, temp 4-component vector of float b}) +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:? 'm[1]' (layout(location=2 ) in 4-component vector of float) -0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) -0:11 Construct vec4 (temp 4-component vector of float) -0:11 Convert uint to float (temp float) -0:11 direct index (temp uint) -0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +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 'd' (layout(location=0 ) in 4-component vector of float) -0:11 'e' (layout(location=5 ) in 4-component vector of float) -0:13 Sequence -0:13 Sequence -0:13 move second child to first child (temp 4-component vector of float) -0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) -0:13 direct index (temp 4-component vector of float) -0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child (temp 4-component vector of float) -0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) -0:13 direct index (temp 4-component vector of float) -0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 move second child to first child (temp 2-component vector of uint) -0:? 'coord' (layout(location=2 ) out 2-component vector of uint) -0:13 coord: direct index for structure (temp 2-component vector of uint) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 1 (const int) -0:13 move second child to first child (temp 4-component vector of float) -0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) -0:13 b: direct index for structure (temp 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 2 (const int) -0:13 Branch: Return +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:? 'm[0]' (layout(location=0 ) out 4-component vector of float) -0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) -0:? 'coord' (layout(location=2 ) out 2-component vector of uint) -0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) -0:? 'd' (layout(location=0 ) in 4-component vector of float) -0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) -0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) -0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:? 'b' (layout(location=4 ) in 4-component vector of float) -0:? 'e' (layout(location=5 ) in 4-component vector of float) -0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) -0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) -0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) -0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +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: 450 +Shader version: 500 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function 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' (layout(location=0 ) in 4-component vector of float) -0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 'e' (layout(location=5 ) in 4-component vector of float) +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 2-component vector of uint coord, temp 4-component vector of float b}) +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:? 'm[1]' (layout(location=2 ) in 4-component vector of float) -0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) -0:11 Construct vec4 (temp 4-component vector of float) -0:11 Convert uint to float (temp float) -0:11 direct index (temp uint) -0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +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 'd' (layout(location=0 ) in 4-component vector of float) -0:11 'e' (layout(location=5 ) in 4-component vector of float) -0:13 Sequence -0:13 Sequence -0:13 move second child to first child (temp 4-component vector of float) -0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) -0:13 direct index (temp 4-component vector of float) -0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 0 (const int) -0:13 move second child to first child (temp 4-component vector of float) -0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) -0:13 direct index (temp 4-component vector of float) -0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 0 (const int) -0:13 Constant: -0:13 1 (const int) -0:13 move second child to first child (temp 2-component vector of uint) -0:? 'coord' (layout(location=2 ) out 2-component vector of uint) -0:13 coord: direct index for structure (temp 2-component vector of uint) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 1 (const int) -0:13 move second child to first child (temp 4-component vector of float) -0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) -0:13 b: direct index for structure (temp 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:13 Constant: -0:13 2 (const int) -0:13 Branch: Return +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:? 'm[0]' (layout(location=0 ) out 4-component vector of float) -0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) -0:? 'coord' (layout(location=2 ) out 2-component vector of uint) -0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) -0:? 'd' (layout(location=0 ) in 4-component vector of float) -0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) -0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) -0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:? 'b' (layout(location=4 ) in 4-component vector of float) -0:? 'e' (layout(location=5 ) in 4-component vector of float) -0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) -0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) -0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) -0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +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): 80001 -// Id's are bound by 59 +// 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" 18 20 24 32 35 41 45 50 54 58 + 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 14 "local" - Name 18 "m[1]" - Name 20 "m[0]" - Name 24 "coord" - Name 32 "d" - Name 35 "e" - Name 41 "m[0]" - Name 45 "m[1]" - Name 50 "coord" - Name 54 "b" - Name 58 "b" - Decorate 18(m[1]) Location 2 - Decorate 20(m[0]) Location 1 - Decorate 24(coord) Location 3 - Decorate 32(d) Location 0 - Decorate 35(e) Location 5 - Decorate 41(m[0]) Location 0 - Decorate 45(m[1]) Location 1 - Decorate 50(coord) Location 2 - Decorate 54(b) Location 3 - Decorate 58(b) Location 4 + 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: TypeInt 32 0 - 9: 8(int) Constant 2 - 10: TypeArray 7(fvec4) 9 - 11: TypeVector 8(int) 2 - 12(VI): TypeStruct 10 11(ivec2) 7(fvec4) + 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) - 15: TypeInt 32 1 - 16: 15(int) Constant 2 - 17: TypePointer Input 7(fvec4) - 18(m[1]): 17(ptr) Variable Input - 20(m[0]): 17(ptr) Variable Input - 23: TypePointer Input 11(ivec2) - 24(coord): 23(ptr) Variable Input - 25: 8(int) Constant 0 - 26: TypePointer Input 8(int) - 32(d): 17(ptr) Variable Input - 35(e): 17(ptr) Variable Input - 38: TypePointer Function 7(fvec4) - 40: TypePointer Output 7(fvec4) - 41(m[0]): 40(ptr) Variable Output - 42: 15(int) Constant 0 - 45(m[1]): 40(ptr) Variable Output - 46: 15(int) Constant 1 - 49: TypePointer Output 11(ivec2) - 50(coord): 49(ptr) Variable Output - 51: TypePointer Function 11(ivec2) - 54(b): 40(ptr) Variable Output - 58(b): 17(ptr) Variable Input + 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 - 14(local): 13(ptr) Variable Function - 19: 7(fvec4) Load 18(m[1]) - 21: 7(fvec4) Load 20(m[0]) - 22: 7(fvec4) FAdd 19 21 - 27: 26(ptr) AccessChain 24(coord) 25 - 28: 8(int) Load 27 - 29: 6(float) ConvertUToF 28 - 30: 7(fvec4) CompositeConstruct 29 29 29 29 - 31: 7(fvec4) FAdd 22 30 - 33: 7(fvec4) Load 32(d) - 34: 7(fvec4) FAdd 31 33 - 36: 7(fvec4) Load 35(e) - 37: 7(fvec4) FAdd 34 36 - 39: 38(ptr) AccessChain 14(local) 16 - Store 39 37 - 43: 38(ptr) AccessChain 14(local) 42 42 - 44: 7(fvec4) Load 43 - Store 41(m[0]) 44 - 47: 38(ptr) AccessChain 14(local) 42 46 - 48: 7(fvec4) Load 47 - Store 45(m[1]) 48 - 52: 51(ptr) AccessChain 14(local) 46 - 53: 11(ivec2) Load 52 - Store 50(coord) 53 - 55: 38(ptr) AccessChain 14(local) 16 - 56: 7(fvec4) Load 55 - Store 54(b) 56 + 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-new/Test/baseResults/hlsl.subpass.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.subpass.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.subpass.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.subpass.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.switch.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.switch.frag.out index af516e2c92..b72891ea5a 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.switch.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.switch.frag.out @@ -1,17 +1,17 @@ hlsl.switch.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4;i1;i1; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) -0:2 'c' (layout(location=1 ) in int) -0:2 'd' (layout(location=2 ) in int) +0:2 'input' ( in 4-component vector of float) +0:2 'c' ( in int) +0:2 'd' ( in int) 0:? Sequence -0:3 'c' (layout(location=1 ) in int) +0:3 'c' ( in int) 0:7 switch 0:7 condition -0:7 'c' (layout(location=1 ) in int) +0:7 'c' ( in int) 0:7 body 0:7 Sequence 0:9 default: @@ -19,34 +19,34 @@ gl_FragCoord origin is upper left 0:7 Branch: Break 0:12 switch 0:12 condition -0:12 'c' (layout(location=1 ) in int) +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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) +0:17 Pre-Decrement ( temp 4-component vector of float) +0:17 'input' ( in 4-component vector of float) 0:18 Branch: Break -0:21 switch +0:21 switch: DontFlatten 0:21 condition -0:21 'c' (layout(location=1 ) in int) +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' (layout(location=0 ) in 4-component vector of float) +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: @@ -54,15 +54,15 @@ gl_FragCoord origin is upper left 0:? Sequence 0:26 switch 0:26 condition -0:26 'd' (layout(location=2 ) in int) +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' (layout(location=0 ) in 4-component vector of float) +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 @@ -70,21 +70,21 @@ gl_FragCoord origin is upper left 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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=1 ) in int) +0:39 'c' ( in int) 0:39 body 0:39 Sequence 0:40 case: with expression @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:39 Branch: Break 0:43 switch 0:43 condition -0:43 'c' (layout(location=1 ) in int) +0:43 'c' ( in int) 0:43 body 0:43 Sequence 0:44 case: with expression @@ -107,8 +107,8 @@ gl_FragCoord origin is upper left 0:46 Constant: 0:46 3 (const int) 0:? Sequence -0:47 Pre-Increment (temp 4-component vector of float) -0:47 'input' (layout(location=0 ) in 4-component vector of float) +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: @@ -117,36 +117,51 @@ gl_FragCoord origin is upper left 0:50 Constant: 0:50 5 (const int) 0:? Sequence -0:51 Pre-Decrement (temp 4-component vector of float) -0:51 'input' (layout(location=0 ) in 4-component vector of float) -0:54 Sequence -0:54 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:54 'input' (layout(location=0 ) in 4-component vector of float) -0:54 Branch: Return +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 ) in int) -0:? 'd' (layout(location=2 ) in int) +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: 450 +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 Definition: @PixelShaderFunction(vf4;i1;i1; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) -0:2 'c' (layout(location=1 ) in int) -0:2 'd' (layout(location=2 ) in int) +0:2 'input' ( in 4-component vector of float) +0:2 'c' ( in int) +0:2 'd' ( in int) 0:? Sequence -0:3 'c' (layout(location=1 ) in int) +0:3 'c' ( in int) 0:7 switch 0:7 condition -0:7 'c' (layout(location=1 ) in int) +0:7 'c' ( in int) 0:7 body 0:7 Sequence 0:9 default: @@ -154,34 +169,34 @@ gl_FragCoord origin is upper left 0:7 Branch: Break 0:12 switch 0:12 condition -0:12 'c' (layout(location=1 ) in int) +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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) +0:17 Pre-Decrement ( temp 4-component vector of float) +0:17 'input' ( in 4-component vector of float) 0:18 Branch: Break -0:21 switch +0:21 switch: DontFlatten 0:21 condition -0:21 'c' (layout(location=1 ) in int) +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' (layout(location=0 ) in 4-component vector of float) +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: @@ -189,15 +204,15 @@ gl_FragCoord origin is upper left 0:? Sequence 0:26 switch 0:26 condition -0:26 'd' (layout(location=2 ) in int) +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' (layout(location=0 ) in 4-component vector of float) +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 @@ -205,21 +220,21 @@ gl_FragCoord origin is upper left 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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=0 ) in 4-component vector of float) +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' (layout(location=1 ) in int) +0:39 'c' ( in int) 0:39 body 0:39 Sequence 0:40 case: with expression @@ -229,7 +244,7 @@ gl_FragCoord origin is upper left 0:39 Branch: Break 0:43 switch 0:43 condition -0:43 'c' (layout(location=1 ) in int) +0:43 'c' ( in int) 0:43 body 0:43 Sequence 0:44 case: with expression @@ -242,8 +257,8 @@ gl_FragCoord origin is upper left 0:46 Constant: 0:46 3 (const int) 0:? Sequence -0:47 Pre-Increment (temp 4-component vector of float) -0:47 'input' (layout(location=0 ) in 4-component vector of float) +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: @@ -252,146 +267,203 @@ gl_FragCoord origin is upper left 0:50 Constant: 0:50 5 (const int) 0:? Sequence -0:51 Pre-Decrement (temp 4-component vector of float) -0:51 'input' (layout(location=0 ) in 4-component vector of float) -0:54 Sequence -0:54 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:54 'input' (layout(location=0 ) in 4-component vector of float) -0:54 Branch: Return +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 ) in int) -0:? 'd' (layout(location=2 ) in int) +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): 80001 -// Id's are bound by 84 +// 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" 8 21 41 81 + EntryPoint Fragment 4 "PixelShaderFunction" 88 92 95 98 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 8 "c" - Name 21 "input" - Name 41 "d" - Name 81 "@entryPointOutput" - Decorate 8(c) Location 1 - Decorate 21(input) Location 0 - Decorate 41(d) Location 2 - Decorate 81(@entryPointOutput) Location 0 + 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: TypeInt 32 1 - 7: TypePointer Input 6(int) - 8(c): 7(ptr) Variable Input - 18: TypeFloat 32 - 19: TypeVector 18(float) 4 - 20: TypePointer Input 19(fvec4) - 21(input): 20(ptr) Variable Input - 23: 18(float) Constant 1065353216 - 41(d): 7(ptr) Variable Input - 46: 18(float) Constant 1073741824 - 51: 18(float) Constant 1077936128 - 58: 18(float) Constant 1082130432 - 80: TypePointer Output 19(fvec4) -81(@entryPointOutput): 80(ptr) Variable Output + 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 - 9: 6(int) Load 8(c) - SelectionMerge 11 None - Switch 9 10 - 10: Label - Branch 11 - 11: Label - 14: 6(int) Load 8(c) - SelectionMerge 17 None - Switch 14 17 - case 1: 15 - case 2: 16 - 15: Label - 22: 19(fvec4) Load 21(input) - 24: 19(fvec4) CompositeConstruct 23 23 23 23 - 25: 19(fvec4) FAdd 22 24 - Store 21(input) 25 - Branch 17 - 16: Label - 27: 19(fvec4) Load 21(input) - 28: 19(fvec4) CompositeConstruct 23 23 23 23 - 29: 19(fvec4) FSub 27 28 - Store 21(input) 29 - Branch 17 - 17: Label - 32: 6(int) Load 8(c) - SelectionMerge 36 None - Switch 32 35 - case 1: 33 - case 2: 34 - 35: Label - 59: 19(fvec4) Load 21(input) - 60: 19(fvec4) CompositeConstruct 58 58 58 58 - 61: 19(fvec4) FAdd 59 60 - Store 21(input) 61 - Branch 36 - 33: Label - 37: 19(fvec4) Load 21(input) - 38: 19(fvec4) CompositeConstruct 23 23 23 23 - 39: 19(fvec4) FAdd 37 38 - Store 21(input) 39 - Branch 36 - 34: Label - 42: 6(int) Load 41(d) - SelectionMerge 45 None - Switch 42 45 - case 2: 43 - case 3: 44 - 43: Label - 47: 19(fvec4) Load 21(input) - 48: 19(fvec4) CompositeConstruct 46 46 46 46 - 49: 19(fvec4) FAdd 47 48 - Store 21(input) 49 - Branch 45 - 44: Label - 52: 19(fvec4) Load 21(input) - 53: 19(fvec4) CompositeConstruct 51 51 51 51 - 54: 19(fvec4) FAdd 52 53 - Store 21(input) 54 - Branch 45 - 45: Label - Branch 36 - 36: Label - 63: 6(int) Load 8(c) - SelectionMerge 65 None - Switch 63 65 - case 1: 64 - 64: Label - Branch 65 - 65: Label - 68: 6(int) Load 8(c) - SelectionMerge 71 None - Switch 68 71 - case 1: 69 - case 2: 69 - case 3: 69 - case 4: 70 - case 5: 70 - 69: Label - 72: 19(fvec4) Load 21(input) - 73: 19(fvec4) CompositeConstruct 23 23 23 23 - 74: 19(fvec4) FAdd 72 73 - Store 21(input) 74 - Branch 71 - 70: Label - 76: 19(fvec4) Load 21(input) - 77: 19(fvec4) CompositeConstruct 23 23 23 23 - 78: 19(fvec4) FSub 76 77 - Store 21(input) 78 - Branch 71 - 71: Label - 82: 19(fvec4) Load 21(input) - Store 81(@entryPointOutput) 82 + 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 index 54fc662e04..c734d50983 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.swizzle.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.swizzle.frag.out @@ -1,23 +1,23 @@ hlsl.swizzle.frag -Shader version: 450 +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: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 Definition: ShaderFunction(vf4; ( temp 4-component vector of float) 0:4 Function Parameters: -0:4 'input' (in 4-component vector of float) +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 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) @@ -27,38 +27,38 @@ gl_FragCoord origin is upper left 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 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) +0:? 'AmbientColor' ( global 4-component vector of float) Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 450 +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: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 Definition: ShaderFunction(vf4; ( temp 4-component vector of float) 0:4 Function Parameters: -0:4 'input' (in 4-component vector of float) +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 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) @@ -68,16 +68,16 @@ gl_FragCoord origin is upper left 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 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) +0:? 'AmbientColor' ( global 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 30 Capability Shader @@ -85,6 +85,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" diff --git a/deps/glslang-new/Test/baseResults/hlsl.synthesizeInput.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.synthesizeInput.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.target.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.target.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.target.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.target.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.targetStruct1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct1.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.targetStruct1.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.targetStruct1.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.targetStruct2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct2.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.targetStruct2.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.targetStruct2.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.templatetypes.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.templatetypes.frag.out index c5c73ecb45..3fc5846aeb 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.templatetypes.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.templatetypes.frag.out @@ -1,159 +1,159 @@ hlsl.templatetypes.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: PixelShaderFunction( (temp float) +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: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: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 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 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 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 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 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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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 @@ -172,8 +172,8 @@ gl_FragCoord origin is upper left 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: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 @@ -192,8 +192,8 @@ gl_FragCoord origin is upper left 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: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 @@ -202,8 +202,8 @@ gl_FragCoord origin is upper left 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: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 @@ -212,8 +212,8 @@ gl_FragCoord origin is upper left 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: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 @@ -224,8 +224,8 @@ gl_FragCoord origin is upper left 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: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 @@ -239,174 +239,177 @@ gl_FragCoord origin is upper left 0:? 10.000000 0:? 11.000000 0:? 12.000000 -0:45 Sequence -0:45 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:45 Constant: -0:45 0.000000 -0:45 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: PixelShaderFunction( (temp float) +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: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: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 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 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 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 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 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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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 @@ -425,8 +428,8 @@ gl_FragCoord origin is upper left 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: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 @@ -445,8 +448,8 @@ gl_FragCoord origin is upper left 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: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 @@ -455,8 +458,8 @@ gl_FragCoord origin is upper left 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: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 @@ -465,8 +468,8 @@ gl_FragCoord origin is upper left 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: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 @@ -477,8 +480,8 @@ gl_FragCoord origin is upper left 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: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 @@ -492,229 +495,240 @@ gl_FragCoord origin is upper left 0:? 10.000000 0:? 11.000000 0:? 12.000000 -0:45 Sequence -0:45 move second child to first child (temp float) -0:? '@entryPointOutput' (layout(location=0 ) out float) -0:45 Constant: -0:45 0.000000 -0:45 Branch: Return +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) +0:? '@entryPointOutput' (layout( location=0) out float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 148 +// 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" 146 + EntryPoint Fragment 4 "PixelShaderFunction" 151 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 9 "r00" - Name 15 "r01" - Name 20 "r12" - Name 24 "r13" - Name 27 "r14" - Name 30 "r15" - Name 34 "r16" - Name 38 "r20" - Name 43 "r21" - Name 48 "r22" - Name 52 "r23" - Name 57 "r24" - Name 62 "r30" - Name 66 "r31" - Name 71 "r32" - Name 75 "r33" - Name 80 "r34" - Name 85 "r40" - Name 89 "r41" - Name 92 "r42" - Name 95 "r43" - Name 100 "r44" - Name 105 "r50" - Name 122 "r51" - Name 125 "r61" - Name 130 "r62" - Name 136 "r65" - Name 141 "r66" - Name 146 "@entryPointOutput" - Decorate 146(@entryPointOutput) Location 0 + 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: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: 6(float) Constant 1065353216 - 11: 6(float) Constant 1073741824 - 12: 6(float) Constant 1077936128 - 13: 6(float) Constant 1082130432 - 14: 7(fvec4) ConstantComposite 10 11 12 13 - 16: 6(float) Constant 1084227584 - 17: 7(fvec4) ConstantComposite 11 12 13 16 - 18: TypeBool - 19: TypePointer Function 18(bool) - 21: 18(bool) ConstantFalse - 22: TypeInt 32 1 - 23: TypePointer Function 22(int) - 25: 22(int) Constant 1 - 26: TypePointer Function 6(float) - 28: TypeFloat 64 - 29: TypePointer Function 28(float) - 31: 28(float) Constant 0 1072693248 - 32: TypeInt 32 0 - 33: TypePointer Function 32(int) - 35: 32(int) Constant 1 - 36: TypeVector 18(bool) 2 - 37: TypePointer Function 36(bvec2) - 39: 18(bool) ConstantTrue - 40: 36(bvec2) ConstantComposite 21 39 - 41: TypeVector 22(int) 2 - 42: TypePointer Function 41(ivec2) - 44: 22(int) Constant 2 - 45: 41(ivec2) ConstantComposite 25 44 - 46: TypeVector 6(float) 2 - 47: TypePointer Function 46(fvec2) - 49: 46(fvec2) ConstantComposite 10 11 - 50: TypeVector 28(float) 2 - 51: TypePointer Function 50(fvec2) - 53: 28(float) Constant 0 1073741824 - 54: 50(fvec2) ConstantComposite 31 53 - 55: TypeVector 32(int) 2 - 56: TypePointer Function 55(ivec2) - 58: 32(int) Constant 2 - 59: 55(ivec2) ConstantComposite 35 58 - 60: TypeVector 18(bool) 3 - 61: TypePointer Function 60(bvec3) - 63: 60(bvec3) ConstantComposite 21 39 39 - 64: TypeVector 22(int) 3 - 65: TypePointer Function 64(ivec3) - 67: 22(int) Constant 3 - 68: 64(ivec3) ConstantComposite 25 44 67 - 69: TypeVector 6(float) 3 - 70: TypePointer Function 69(fvec3) - 72: 69(fvec3) ConstantComposite 10 11 12 - 73: TypeVector 28(float) 3 - 74: TypePointer Function 73(fvec3) - 76: 28(float) Constant 0 1074266112 - 77: 73(fvec3) ConstantComposite 31 53 76 - 78: TypeVector 32(int) 3 - 79: TypePointer Function 78(ivec3) - 81: 32(int) Constant 3 - 82: 78(ivec3) ConstantComposite 35 58 81 - 83: TypeVector 18(bool) 4 - 84: TypePointer Function 83(bvec4) - 86: 83(bvec4) ConstantComposite 21 39 39 21 - 87: TypeVector 22(int) 4 - 88: TypePointer Function 87(ivec4) - 90: 22(int) Constant 4 - 91: 87(ivec4) ConstantComposite 25 44 67 90 - 93: TypeVector 28(float) 4 - 94: TypePointer Function 93(fvec4) - 96: 28(float) Constant 0 1074790400 - 97: 93(fvec4) ConstantComposite 31 53 76 96 - 98: TypeVector 32(int) 4 - 99: TypePointer Function 98(ivec4) - 101: 32(int) Constant 4 - 102: 98(ivec4) ConstantComposite 35 58 81 101 - 103: TypeMatrix 7(fvec4) 4 - 104: TypePointer Function 103 - 106: 6(float) Constant 0 - 107: 7(fvec4) ConstantComposite 106 10 11 12 - 108: 6(float) Constant 1086324736 - 109: 6(float) Constant 1088421888 - 110: 7(fvec4) ConstantComposite 13 16 108 109 - 111: 6(float) Constant 1090519040 - 112: 6(float) Constant 1091567616 - 113: 6(float) Constant 1092616192 - 114: 6(float) Constant 1093664768 - 115: 7(fvec4) ConstantComposite 111 112 113 114 - 116: 6(float) Constant 1094713344 - 117: 6(float) Constant 1095761920 - 118: 6(float) Constant 1096810496 - 119: 6(float) Constant 1097859072 - 120: 7(fvec4) ConstantComposite 116 117 118 119 - 121: 103 ConstantComposite 107 110 115 120 - 123: TypeMatrix 69(fvec3) 2 - 124: TypePointer Function 123 - 126: 69(fvec3) ConstantComposite 13 16 108 - 127: 123 ConstantComposite 72 126 - 128: TypeMatrix 46(fvec2) 3 - 129: TypePointer Function 128 - 131: 46(fvec2) ConstantComposite 12 13 - 132: 46(fvec2) ConstantComposite 16 108 - 133: 128 ConstantComposite 49 131 132 - 134: TypeMatrix 46(fvec2) 4 - 135: TypePointer Function 134 - 137: 46(fvec2) ConstantComposite 109 111 - 138: 134 ConstantComposite 49 131 132 137 - 139: TypeMatrix 69(fvec3) 4 - 140: TypePointer Function 139 - 142: 69(fvec3) ConstantComposite 109 111 112 - 143: 69(fvec3) ConstantComposite 113 114 116 - 144: 139 ConstantComposite 72 126 142 143 - 145: TypePointer Output 6(float) -146(@entryPointOutput): 145(ptr) Variable Output + 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 - 9(r00): 8(ptr) Variable Function - 15(r01): 8(ptr) Variable Function - 20(r12): 19(ptr) Variable Function - 24(r13): 23(ptr) Variable Function - 27(r14): 26(ptr) Variable Function - 30(r15): 29(ptr) Variable Function - 34(r16): 33(ptr) Variable Function - 38(r20): 37(ptr) Variable Function - 43(r21): 42(ptr) Variable Function - 48(r22): 47(ptr) Variable Function - 52(r23): 51(ptr) Variable Function - 57(r24): 56(ptr) Variable Function - 62(r30): 61(ptr) Variable Function - 66(r31): 65(ptr) Variable Function - 71(r32): 70(ptr) Variable Function - 75(r33): 74(ptr) Variable Function - 80(r34): 79(ptr) Variable Function - 85(r40): 84(ptr) Variable Function - 89(r41): 88(ptr) Variable Function - 92(r42): 8(ptr) Variable Function - 95(r43): 94(ptr) Variable Function - 100(r44): 99(ptr) Variable Function - 105(r50): 104(ptr) Variable Function - 122(r51): 104(ptr) Variable Function - 125(r61): 124(ptr) Variable Function - 130(r62): 129(ptr) Variable Function - 136(r65): 135(ptr) Variable Function - 141(r66): 140(ptr) Variable Function - Store 9(r00) 14 - Store 15(r01) 17 - Store 20(r12) 21 - Store 24(r13) 25 - Store 27(r14) 10 - Store 30(r15) 31 - Store 34(r16) 35 - Store 38(r20) 40 - Store 43(r21) 45 - Store 48(r22) 49 - Store 52(r23) 54 - Store 57(r24) 59 - Store 62(r30) 63 - Store 66(r31) 68 - Store 71(r32) 72 - Store 75(r33) 77 - Store 80(r34) 82 - Store 85(r40) 86 - Store 89(r41) 91 - Store 92(r42) 14 - Store 95(r43) 97 - Store 100(r44) 102 - Store 105(r50) 121 - Store 122(r51) 121 - Store 125(r61) 127 - Store 130(r62) 133 - Store 136(r65) 138 - Store 141(r66) 144 - Store 146(@entryPointOutput) 106 + 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-new/Test/baseResults/hlsl.texture.struct.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.texture.struct.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.texture.struct.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.texture.struct.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.texture.subvec4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.texture.subvec4.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.texturebuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.texturebuffer.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.texturebuffer.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.texturebuffer.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.this.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.this.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.this.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.this.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.tristream-append.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.tristream-append.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.tristream-append.geom.out rename to deps/glslang/glslang/Test/baseResults/hlsl.tristream-append.geom.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.tx.bracket.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.tx.bracket.frag.out index d000257e16..400beb611c 100644 --- a/deps/glslang/glslang/Test/baseResults/hlsl.tx.bracket.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.tx.bracket.frag.out @@ -1,174 +1,174 @@ hlsl.tx.bracket.frag -Shader version: 450 +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 Definition: Fn1(vi4; ( temp 4-component vector of int) 0:38 Function Parameters: -0:38 'x' (in 4-component vector of int) +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: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: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: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: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:40 'x' ( in 4-component vector of float) +0:42 Function Definition: SomeValue( ( temp 4-component vector of float) 0:42 Function Parameters: 0:? Sequence 0:42 Branch: Return with expression -0:42 Convert int to float (temp 4-component vector of float) -0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:45 Function Parameters: 0:? Sequence -0:49 textureFetch (temp 4-component vector of float) -0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:49 c1: direct index for structure (layout(offset=0 ) uniform int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=0 ) uniform int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=0 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=0 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=8 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=8 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=16 ) uniform 3-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=0 ) uniform int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=0 ) uniform int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=0 ) uniform int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 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: @@ -176,209 +176,212 @@ gl_FragCoord origin is upper left 0:70 1.000000 0:70 1.000000 0:70 1.000000 -0:72 Sequence -0:72 Sequence -0:72 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color}) -0:72 Constant: -0:72 0 (const int) -0:72 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -0:? 'g_tTex1du4' (uniform utexture1D) -0:? 'g_tTex2df4' (uniform texture2D) -0:? 'g_tTex2di4' (uniform itexture2D) -0:? 'g_tTex2du4' (uniform utexture2D) -0:? 'g_tTex3df4' (uniform texture3D) -0:? 'g_tTex3di4' (uniform itexture3D) -0:? 'g_tTex3du4' (uniform utexture3D) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1di4a' (uniform itexture1DArray) -0:? 'g_tTex1du4a' (uniform utexture1DArray) -0:? 'g_tTex2df4a' (uniform texture2DArray) -0:? 'g_tTex2di4a' (uniform itexture2DArray) -0:? 'g_tTex2du4a' (uniform utexture2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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: 450 +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 Definition: Fn1(vi4; ( temp 4-component vector of int) 0:38 Function Parameters: -0:38 'x' (in 4-component vector of int) +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: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: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: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: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:40 'x' ( in 4-component vector of float) +0:42 Function Definition: SomeValue( ( temp 4-component vector of float) 0:42 Function Parameters: 0:? Sequence 0:42 Branch: Return with expression -0:42 Convert int to float (temp 4-component vector of float) -0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) -0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 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 Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:45 Function Parameters: 0:? Sequence -0:49 textureFetch (temp 4-component vector of float) -0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:49 c1: direct index for structure (layout(offset=0 ) uniform int) -0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 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 (layout(offset=0 ) uniform int) -0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 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 (layout(offset=0 ) uniform int) -0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 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 (layout(offset=0 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 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 (layout(offset=8 ) uniform 2-component vector of int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 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 (layout(offset=8 ) uniform 2-component vector of int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 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 (layout(offset=8 ) uniform 2-component vector of int) -0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 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 (layout(offset=16 ) uniform 3-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 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 (layout(offset=16 ) uniform 3-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 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 (layout(offset=16 ) uniform 3-component vector of int) -0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 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 (layout(offset=0 ) uniform int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 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 (layout(offset=0 ) uniform int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 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 (layout(offset=0 ) uniform int) -0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 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 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: @@ -386,45 +389,49 @@ gl_FragCoord origin is upper left 0:70 1.000000 0:70 1.000000 0:70 1.000000 -0:72 Sequence -0:72 Sequence -0:72 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color}) -0:72 Constant: -0:72 0 (const int) -0:72 Branch: Return +0: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:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'g_tTex1di4' (uniform itexture1D) -0:? 'g_tTex1du4' (uniform utexture1D) -0:? 'g_tTex2df4' (uniform texture2D) -0:? 'g_tTex2di4' (uniform itexture2D) -0:? 'g_tTex2du4' (uniform utexture2D) -0:? 'g_tTex3df4' (uniform texture3D) -0:? 'g_tTex3di4' (uniform itexture3D) -0:? 'g_tTex3du4' (uniform utexture3D) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1di4a' (uniform itexture1DArray) -0:? 'g_tTex1du4a' (uniform utexture1DArray) -0:? 'g_tTex2df4a' (uniform texture2DArray) -0:? 'g_tTex2di4a' (uniform itexture2DArray) -0:? 'g_tTex2du4a' (uniform utexture2DArray) -0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +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): 80001 -// Id's are bound by 183 +// 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" 158 + EntryPoint Fragment 4 "main" 164 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" Name 11 "Fn1(vi4;" Name 10 "x" @@ -433,77 +440,78 @@ gl_FragCoord origin is upper left Name 25 "Fn1(vf4;" Name 24 "x" Name 28 "SomeValue(" - Name 41 "$Global" - MemberName 41($Global) 0 "c1" - MemberName 41($Global) 1 "c2" - MemberName 41($Global) 2 "c3" - MemberName 41($Global) 3 "c4" - MemberName 41($Global) 4 "o1" - MemberName 41($Global) 5 "o2" - MemberName 41($Global) 6 "o3" - MemberName 41($Global) 7 "o4" - Name 43 "" - Name 53 "g_tTex1df4" - Name 60 "r00" - Name 65 "r01" - Name 68 "g_tTex1di4" - Name 73 "r02" - Name 76 "g_tTex1du4" - Name 81 "r10" - Name 84 "g_tTex2df4" - Name 91 "r11" - Name 94 "g_tTex2di4" - Name 99 "r12" - Name 102 "g_tTex2du4" - Name 107 "r20" - Name 110 "g_tTex3df4" - Name 117 "r21" - Name 120 "g_tTex3di4" - Name 125 "r22" - Name 128 "g_tTex3du4" - Name 137 "param" - Name 143 "param" - Name 149 "param" - Name 151 "PS_OUTPUT" - MemberName 151(PS_OUTPUT) 0 "Color" - Name 153 "psout" - Name 158 "Color" - Name 164 "g_sSamp" - Name 167 "g_tTex1df4a" - Name 170 "g_tTex1di4a" - Name 173 "g_tTex1du4a" - Name 176 "g_tTex2df4a" - Name 179 "g_tTex2di4a" - Name 182 "g_tTex2du4a" - MemberDecorate 41($Global) 0 Offset 0 - MemberDecorate 41($Global) 1 Offset 8 - MemberDecorate 41($Global) 2 Offset 16 - MemberDecorate 41($Global) 3 Offset 32 - MemberDecorate 41($Global) 4 Offset 48 - MemberDecorate 41($Global) 5 Offset 56 - MemberDecorate 41($Global) 6 Offset 64 - MemberDecorate 41($Global) 7 Offset 80 - Decorate 41($Global) Block - Decorate 43 DescriptorSet 0 - Decorate 53(g_tTex1df4) DescriptorSet 0 - Decorate 53(g_tTex1df4) Binding 0 - Decorate 68(g_tTex1di4) DescriptorSet 0 - Decorate 76(g_tTex1du4) DescriptorSet 0 - Decorate 84(g_tTex2df4) DescriptorSet 0 - Decorate 94(g_tTex2di4) DescriptorSet 0 - Decorate 102(g_tTex2du4) DescriptorSet 0 - Decorate 110(g_tTex3df4) DescriptorSet 0 - Decorate 120(g_tTex3di4) DescriptorSet 0 - Decorate 128(g_tTex3du4) DescriptorSet 0 - Decorate 158(Color) Location 0 - Decorate 164(g_sSamp) DescriptorSet 0 - Decorate 164(g_sSamp) Binding 0 - Decorate 167(g_tTex1df4a) DescriptorSet 0 - Decorate 170(g_tTex1di4a) DescriptorSet 0 - Decorate 173(g_tTex1du4a) DescriptorSet 0 - Decorate 176(g_tTex2df4a) DescriptorSet 0 - Decorate 179(g_tTex2di4a) DescriptorSet 0 - Decorate 182(g_tTex2du4a) DescriptorSet 0 + 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 @@ -519,184 +527,190 @@ gl_FragCoord origin is upper left 22: TypePointer Function 21(fvec4) 23: TypeFunction 21(fvec4) 22(ptr) 27: TypeFunction 21(fvec4) - 39: TypeVector 6(int) 2 - 40: TypeVector 6(int) 3 - 41($Global): TypeStruct 6(int) 39(ivec2) 40(ivec3) 7(ivec4) 6(int) 39(ivec2) 40(ivec3) 7(ivec4) - 42: TypePointer Uniform 41($Global) - 43: 42(ptr) Variable Uniform - 44: 6(int) Constant 3 - 45: TypePointer Uniform 7(ivec4) - 51: TypeImage 20(float) 1D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex1df4): 52(ptr) Variable UniformConstant - 55: 6(int) Constant 0 - 56: TypePointer Uniform 6(int) - 66: TypeImage 6(int) 1D sampled format:Unknown - 67: TypePointer UniformConstant 66 - 68(g_tTex1di4): 67(ptr) Variable UniformConstant - 74: TypeImage 13(int) 1D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex1du4): 75(ptr) Variable UniformConstant - 82: TypeImage 20(float) 2D sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex2df4): 83(ptr) Variable UniformConstant - 86: 6(int) Constant 1 - 87: TypePointer Uniform 39(ivec2) - 92: TypeImage 6(int) 2D sampled format:Unknown - 93: TypePointer UniformConstant 92 - 94(g_tTex2di4): 93(ptr) Variable UniformConstant - 100: TypeImage 13(int) 2D sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTex2du4): 101(ptr) Variable UniformConstant - 108: TypeImage 20(float) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3df4): 109(ptr) Variable UniformConstant - 112: 6(int) Constant 2 - 113: TypePointer Uniform 40(ivec3) - 118: TypeImage 6(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3di4): 119(ptr) Variable UniformConstant - 126: TypeImage 13(int) 3D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex3du4): 127(ptr) Variable UniformConstant - 151(PS_OUTPUT): TypeStruct 21(fvec4) - 152: TypePointer Function 151(PS_OUTPUT) - 154: 20(float) Constant 1065353216 - 155: 21(fvec4) ConstantComposite 154 154 154 154 - 157: TypePointer Output 21(fvec4) - 158(Color): 157(ptr) Variable Output - 162: TypeSampler - 163: TypePointer UniformConstant 162 - 164(g_sSamp): 163(ptr) Variable UniformConstant - 165: TypeImage 20(float) 1D array sampled format:Unknown - 166: TypePointer UniformConstant 165 -167(g_tTex1df4a): 166(ptr) Variable UniformConstant - 168: TypeImage 6(int) 1D array sampled format:Unknown - 169: TypePointer UniformConstant 168 -170(g_tTex1di4a): 169(ptr) Variable UniformConstant - 171: TypeImage 13(int) 1D array sampled format:Unknown - 172: TypePointer UniformConstant 171 -173(g_tTex1du4a): 172(ptr) Variable UniformConstant - 174: TypeImage 20(float) 2D array sampled format:Unknown - 175: TypePointer UniformConstant 174 -176(g_tTex2df4a): 175(ptr) Variable UniformConstant - 177: TypeImage 6(int) 2D array sampled format:Unknown - 178: TypePointer UniformConstant 177 -179(g_tTex2di4a): 178(ptr) Variable UniformConstant - 180: TypeImage 13(int) 2D array sampled format:Unknown - 181: TypePointer UniformConstant 180 -182(g_tTex2du4a): 181(ptr) Variable UniformConstant + 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 - 60(r00): 22(ptr) Variable Function - 65(r01): 8(ptr) Variable Function - 73(r02): 15(ptr) Variable Function - 81(r10): 22(ptr) Variable Function - 91(r11): 8(ptr) Variable Function - 99(r12): 15(ptr) Variable Function - 107(r20): 22(ptr) Variable Function - 117(r21): 8(ptr) Variable Function - 125(r22): 15(ptr) Variable Function - 137(param): 22(ptr) Variable Function - 143(param): 8(ptr) Variable Function - 149(param): 15(ptr) Variable Function - 153(psout): 152(ptr) Variable Function - 54: 51 Load 53(g_tTex1df4) - 57: 56(ptr) AccessChain 43 55 - 58: 6(int) Load 57 - 59: 21(fvec4) ImageFetch 54 58 Lod 55 - 61: 51 Load 53(g_tTex1df4) - 62: 56(ptr) AccessChain 43 55 - 63: 6(int) Load 62 - 64: 21(fvec4) ImageFetch 61 63 Lod 55 - Store 60(r00) 64 - 69: 66 Load 68(g_tTex1di4) - 70: 56(ptr) AccessChain 43 55 - 71: 6(int) Load 70 - 72: 7(ivec4) ImageFetch 69 71 Lod 55 - Store 65(r01) 72 - 77: 74 Load 76(g_tTex1du4) - 78: 56(ptr) AccessChain 43 55 - 79: 6(int) Load 78 - 80: 14(ivec4) ImageFetch 77 79 Lod 55 - Store 73(r02) 80 - 85: 82 Load 84(g_tTex2df4) - 88: 87(ptr) AccessChain 43 86 - 89: 39(ivec2) Load 88 - 90: 21(fvec4) ImageFetch 85 89 Lod 55 - Store 81(r10) 90 - 95: 92 Load 94(g_tTex2di4) - 96: 87(ptr) AccessChain 43 86 - 97: 39(ivec2) Load 96 - 98: 7(ivec4) ImageFetch 95 97 Lod 55 - Store 91(r11) 98 - 103: 100 Load 102(g_tTex2du4) - 104: 87(ptr) AccessChain 43 86 - 105: 39(ivec2) Load 104 - 106: 14(ivec4) ImageFetch 103 105 Lod 55 - Store 99(r12) 106 - 111: 108 Load 110(g_tTex3df4) - 114: 113(ptr) AccessChain 43 112 - 115: 40(ivec3) Load 114 - 116: 21(fvec4) ImageFetch 111 115 Lod 55 - Store 107(r20) 116 - 121: 118 Load 120(g_tTex3di4) - 122: 113(ptr) AccessChain 43 112 - 123: 40(ivec3) Load 122 - 124: 7(ivec4) ImageFetch 121 123 Lod 55 - Store 117(r21) 124 - 129: 126 Load 128(g_tTex3du4) - 130: 113(ptr) AccessChain 43 112 - 131: 40(ivec3) Load 130 - 132: 14(ivec4) ImageFetch 129 131 Lod 55 - Store 125(r22) 132 - 133: 51 Load 53(g_tTex1df4) - 134: 56(ptr) AccessChain 43 55 - 135: 6(int) Load 134 - 136: 21(fvec4) ImageFetch 133 135 Lod 55 - Store 137(param) 136 - 138: 21(fvec4) FunctionCall 25(Fn1(vf4;) 137(param) - 139: 66 Load 68(g_tTex1di4) - 140: 56(ptr) AccessChain 43 55 - 141: 6(int) Load 140 - 142: 7(ivec4) ImageFetch 139 141 Lod 55 - Store 143(param) 142 - 144: 7(ivec4) FunctionCall 11(Fn1(vi4;) 143(param) - 145: 74 Load 76(g_tTex1du4) - 146: 56(ptr) AccessChain 43 55 - 147: 6(int) Load 146 - 148: 14(ivec4) ImageFetch 145 147 Lod 55 - Store 149(param) 148 - 150: 14(ivec4) FunctionCall 18(Fn1(vu4;) 149(param) - 156: 22(ptr) AccessChain 153(psout) 55 - Store 156 155 - 159: 22(ptr) AccessChain 153(psout) 55 - 160: 21(fvec4) Load 159 - Store 158(Color) 160 + 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 - 30: 7(ivec4) Load 10(x) - ReturnValue 30 + 34: 7(ivec4) Load 10(x) + ReturnValue 34 FunctionEnd 18(Fn1(vu4;): 14(ivec4) Function None 16 17(x): 15(ptr) FunctionParameter 19: Label - 33: 14(ivec4) Load 17(x) - ReturnValue 33 + 37: 14(ivec4) Load 17(x) + ReturnValue 37 FunctionEnd 25(Fn1(vf4;): 21(fvec4) Function None 23 24(x): 22(ptr) FunctionParameter 26: Label - 36: 21(fvec4) Load 24(x) - ReturnValue 36 + 40: 21(fvec4) Load 24(x) + ReturnValue 40 FunctionEnd 28(SomeValue(): 21(fvec4) Function None 27 29: Label - 46: 45(ptr) AccessChain 43 44 - 47: 7(ivec4) Load 46 - 48: 21(fvec4) ConvertSToF 47 - ReturnValue 48 + 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-new/Test/baseResults/hlsl.tx.overload.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.tx.overload.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.tx.overload.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.tx.overload.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.type.half.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.type.half.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.type.half.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.type.half.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.type.identifier.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.type.identifier.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.type.identifier.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.type.identifier.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.typeGraphCopy.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.typeGraphCopy.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.typedef.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.typedef.frag.out index 565f45fd5b..11fd10741a 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.typedef.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.typedef.frag.out @@ -1,39 +1,39 @@ hlsl.typedef.frag -Shader version: 450 +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 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: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 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 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: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: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 @@ -41,45 +41,45 @@ Linked fragment stage: WARNING: Linking fragment stage: Entry point not found -Shader version: 450 +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 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: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 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 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: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: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): 80001 +// Generated by (magic number): 80007 // Id's are bound by 34 Capability Shader @@ -87,6 +87,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 14 "ShaderFunction(vf4;i1;" Name 12 "input" diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.void.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.void.frag.out index 6faa388a3a..30edd633c8 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.void.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.void.frag.out @@ -1,66 +1,94 @@ hlsl.void.frag -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:1 Function Definition: foo1( (temp void) +0:1 Function Definition: foo1( ( temp void) 0:1 Function Parameters: -0:2 Function Definition: foo2( (temp void) +0:2 Function Definition: foo2( ( temp void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (temp void) +0:5 Function Definition: @PixelShaderFunction(vf4; ( temp void) 0:5 Function Parameters: -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' ( in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (temp void) -0:7 Function Call: foo2( (temp void) +0:6 Function Call: foo1( ( 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) +0:? 'input' (layout( location=0) in 4-component vector of float) Linked fragment stage: -Shader version: 450 +Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence -0:1 Function Definition: foo1( (temp void) +0:1 Function Definition: foo1( ( temp void) 0:1 Function Parameters: -0:2 Function Definition: foo2( (temp void) +0:2 Function Definition: foo2( ( temp void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (temp void) +0:5 Function Definition: @PixelShaderFunction(vf4; ( temp void) 0:5 Function Parameters: -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' ( in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (temp void) -0:7 Function Call: foo2( (temp void) +0:6 Function Call: foo1( ( 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) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 17 +// 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" 16 + EntryPoint Fragment 4 "PixelShaderFunction" 22 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" Name 6 "foo1(" Name 8 "foo2(" - Name 16 "input" - Decorate 16(input) Location 0 + 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 - 13: TypeFloat 32 - 14: TypeVector 13(float) 4 - 15: TypePointer Input 14(fvec4) - 16(input): 15(ptr) Variable Input + 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 - 10: 2 FunctionCall 6(foo1() - 11: 2 FunctionCall 8(foo2() + 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 @@ -71,3 +99,10 @@ gl_FragCoord origin is upper left 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-new/Test/baseResults/hlsl.wavebroadcast.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.wavebroadcast.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.waveprefix.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.waveprefix.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.waveprefix.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.waveprefix.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.wavequad.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavequad.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.wavequad.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.wavequad.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.wavequery.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.wavequery.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.wavequery.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.wavequery.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.wavequery.frag.out rename to deps/glslang/glslang/Test/baseResults/hlsl.wavequery.frag.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.wavereduction.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavereduction.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.wavereduction.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.wavereduction.comp.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.wavevote.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavevote.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.wavevote.comp.out rename to deps/glslang/glslang/Test/baseResults/hlsl.wavevote.comp.out diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.whileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.whileLoop.frag.out index 699364ff0d..babc77dfd7 100755 --- a/deps/glslang/glslang/Test/baseResults/hlsl.whileLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/hlsl.whileLoop.frag.out @@ -1,30 +1,27 @@ hlsl.whileLoop.frag -Shader version: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0: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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 any ( temp bool) +0:3 NotEqual ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) 0:3 Loop Body 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 Branch: Return +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 +0:5 Loop with condition tested first: Unroll 0:5 Loop Condition 0:5 Constant: 0:5 false (const bool) @@ -34,40 +31,47 @@ gl_FragCoord origin is upper left 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) +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: 450 +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 Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (layout(location=0 ) in 4-component vector of float) +0: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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 any ( temp bool) +0:3 NotEqual ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) 0:3 Loop Body 0:? Sequence -0:3 Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 Branch: Return +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 +0:5 Loop with condition tested first: Unroll 0:5 Loop Condition 0:5 Constant: 0:5 false (const bool) @@ -77,86 +81,116 @@ gl_FragCoord origin is upper left 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) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 41 +// 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" 14 22 + EntryPoint Fragment 4 "PixelShaderFunction" 45 48 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "PixelShaderFunction" - Name 14 "input" - Name 22 "@entryPointOutput" - Decorate 14(input) Location 0 - Decorate 22(@entryPointOutput) Location 0 + 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 - 11: TypeFloat 32 - 12: TypeVector 11(float) 4 - 13: TypePointer Input 12(fvec4) - 14(input): 13(ptr) Variable Input - 17: TypeBool - 18: TypeVector 17(bool) 4 - 21: TypePointer Output 12(fvec4) -22(@entryPointOutput): 21(ptr) Variable Output - 30: 17(bool) ConstantFalse + 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 - Branch 6 - 6: Label - LoopMerge 8 9 None - Branch 10 - 10: Label - 15: 12(fvec4) Load 14(input) - 16: 12(fvec4) Load 14(input) - 19: 18(bvec4) FOrdNotEqual 15 16 - 20: 17(bool) Any 19 - BranchConditional 20 7 8 - 7: Label - 23: 12(fvec4) Load 14(input) - Store 22(@entryPointOutput) 23 - Return - 9: Label - Branch 6 - 8: Label - Branch 25 - 25: Label - LoopMerge 27 28 None - Branch 29 - 29: Label - BranchConditional 30 26 27 - 26: Label - Branch 28 - 28: Label - Branch 25 - 27: Label - Branch 31 - 31: Label - LoopMerge 33 34 None - Branch 35 - 35: Label - BranchConditional 30 32 33 - 32: Label - Branch 34 - 34: Label - Branch 31 - 33: Label - Branch 36 - 36: Label - LoopMerge 38 39 None - Branch 40 - 40: Label - BranchConditional 30 37 38 - 37: Label - Branch 39 - 39: Label - Branch 36 - 38: 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-new/Test/baseResults/hlsl.y-negate-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-1.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.y-negate-1.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.y-negate-1.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.y-negate-2.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-2.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.y-negate-2.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.y-negate-2.vert.out diff --git a/deps/glslang-new/Test/baseResults/hlsl.y-negate-3.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-3.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/hlsl.y-negate-3.vert.out rename to deps/glslang/glslang/Test/baseResults/hlsl.y-negate-3.vert.out diff --git a/deps/glslang-new/Test/baseResults/implicitInnerAtomicUint.frag.out b/deps/glslang/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/implicitInnerAtomicUint.frag.out rename to deps/glslang/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out diff --git a/deps/glslang-new/Test/baseResults/include.vert.out b/deps/glslang/glslang/Test/baseResults/include.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/include.vert.out rename to deps/glslang/glslang/Test/baseResults/include.vert.out diff --git a/deps/glslang-new/Test/baseResults/invalidSwizzle.vert.out b/deps/glslang/glslang/Test/baseResults/invalidSwizzle.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/invalidSwizzle.vert.out rename to deps/glslang/glslang/Test/baseResults/invalidSwizzle.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/length.frag.out b/deps/glslang/glslang/Test/baseResults/length.frag.out index 1c42560711..bfd5bf0ef1 100644 --- a/deps/glslang/glslang/Test/baseResults/length.frag.out +++ b/deps/glslang/glslang/Test/baseResults/length.frag.out @@ -1,31 +1,31 @@ length.frag Shader version: 120 0:? Sequence -0:11 Function Definition: main( (global void) +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 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 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 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) +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: @@ -33,29 +33,29 @@ Linked fragment stage: Shader version: 120 0:? Sequence -0:11 Function Definition: main( (global void) +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 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 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 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) +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 index d91ffa31ac..9faa420b36 100644 --- a/deps/glslang/glslang/Test/baseResults/lineContinuation.vert.out +++ b/deps/glslang/glslang/Test/baseResults/lineContinuation.vert.out @@ -19,149 +19,149 @@ 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 +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 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: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: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: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: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 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 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 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 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:74 move second child to first child ( temp highp float) +0:74 'funkyf' ( global highp float) 0:75 Constant: -0:75 12300000000000000.000000 +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: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: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: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 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 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 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 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 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: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 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 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: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: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: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:? 'foo' ( global highp float) +0:? 'goodDecl' ( global highp int) +0:? 'a1' ( const highp int) 0:? 4 (const int) -0:? 'a2' (const highp int) +0:? 'a2' ( const highp int) 0:? 3 (const int) -0:? 'a3' (const highp int) +0:? 'a3' ( const highp int) 0:? 4 (const int) -0:? 'a4' (const highp 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:? '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:? '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) +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: @@ -169,112 +169,112 @@ Linked vertex stage: Shader version: 300 ERROR: node is still EOpNull! -0:20 Function Definition: main( (global void) +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: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 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 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 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 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:74 move second child to first child ( temp highp float) +0:74 'funkyf' ( global highp float) 0:75 Constant: -0:75 12300000000000000.000000 +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: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: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: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 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 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 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 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 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: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:? 'foo' ( global highp float) +0:? 'goodDecl' ( global highp int) +0:? 'a1' ( const highp int) 0:? 4 (const int) -0:? 'a2' (const highp int) +0:? 'a2' ( const highp int) 0:? 3 (const int) -0:? 'a3' (const highp int) +0:? 'a3' ( const highp int) 0:? 4 (const int) -0:? 'a4' (const highp 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:? '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:? '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) +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 index 1fb309b3c9..c86b52bf91 100644 --- a/deps/glslang/glslang/Test/baseResults/lineContinuation100.vert.out +++ b/deps/glslang/glslang/Test/baseResults/lineContinuation100.vert.out @@ -25,57 +25,57 @@ 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 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: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: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: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: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 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 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 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 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:? 'foo' ( global highp float) +0:? 'a1' ( const highp int) 0:? 4 (const int) -0:? 'a2' (const highp int) +0:? 'a2' ( const highp int) 0:? 3 (const int) -0:? 'a3' (const highp int) +0:? 'a3' ( const highp int) 0:? 4 (const int) -0:? 'a4' (const highp 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:? 'q1' ( global highp int) +0:? 'q2' ( global highp int) +0:? 'q3' ( global highp int) +0:? 'q4' ( global highp int) Linked vertex stage: @@ -83,45 +83,45 @@ Linked vertex stage: Shader version: 100 ERROR: node is still EOpNull! -0:20 Function Definition: main( (global void) +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: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 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 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 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 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:? 'foo' ( global highp float) +0:? 'a1' ( const highp int) 0:? 4 (const int) -0:? 'a2' (const highp int) +0:? 'a2' ( const highp int) 0:? 3 (const int) -0:? 'a3' (const highp int) +0:? 'a3' ( const highp int) 0:? 4 (const int) -0:? 'a4' (const highp 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:? '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 index 51d7475a5b..2ea63ad5fb 100644 --- a/deps/glslang/glslang/Test/baseResults/link1.frag.out +++ b/deps/glslang/glslang/Test/baseResults/link1.frag.out @@ -2,79 +2,79 @@ 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 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: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 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: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: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 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: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:? '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:? '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:? '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:? 'cv3e' ( const 3-component vector of float) 0:? 43.000000 0:? 0.340000 0:? 9.900000 -0:? 'um2' (uniform 2X2 matrix of float) +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:? '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:? '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:? '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:? '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 @@ -84,20 +84,20 @@ 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 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: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 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: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 @@ -105,47 +105,47 @@ Requested GL_OES_texture_3D 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: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:? '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:? '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:? 'cv3e' ( const 3-component vector of float) 0:? 43.000000 0:? 0.340000 0:? 2.900000 -0:? 'um2' (uniform 2X2 matrix of float) +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:? '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:? '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:? '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:? 'se' ( uniform structure{ global int a, global float b}) 0:? 81 (const int) 0:? 3.900000 @@ -156,7 +156,7 @@ 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) +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-new/Test/baseResults/link1.vk.frag.out b/deps/glslang/glslang/Test/baseResults/link1.vk.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/link1.vk.frag.out rename to deps/glslang/glslang/Test/baseResults/link1.vk.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/localAggregates.frag.out b/deps/glslang/glslang/Test/baseResults/localAggregates.frag.out index 2e8ae76c0b..ca445bccd3 100644 --- a/deps/glslang/glslang/Test/baseResults/localAggregates.frag.out +++ b/deps/glslang/glslang/Test/baseResults/localAggregates.frag.out @@ -4,21 +4,21 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:34 Function Definition: main( (global void) +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 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 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 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: @@ -27,183 +27,183 @@ Shader version: 130 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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: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: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 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 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 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 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: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) +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: @@ -211,21 +211,21 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:34 Function Definition: main( (global void) +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 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 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 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: @@ -234,181 +234,181 @@ Shader version: 130 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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: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: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 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 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 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 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: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) +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 index b592dbd845..cf382995d1 100644 --- a/deps/glslang/glslang/Test/baseResults/loops.frag.out +++ b/deps/glslang/glslang/Test/baseResults/loops.frag.out @@ -3,59 +3,59 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea Shader version: 130 0:? Sequence -0:53 Function Definition: main( (global void) +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: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 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 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 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 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 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 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 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 @@ -64,475 +64,475 @@ Shader version: 130 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 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 '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: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 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 '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: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 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 '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: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 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: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 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 '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 '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: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 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 '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: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 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 '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: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 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 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: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: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 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 '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: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 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 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 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:116 'd3' ( uniform float) 0:115 Loop Terminal Expression -0:115 Pre-Increment (temp int) -0:115 'i' (temp int) +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 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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: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 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 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 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: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 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 '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 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: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 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 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 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: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 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 '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 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: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 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 '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: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 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 'd4' ( uniform float) 0:157 true case 0:158 Branch: Continue -0:159 Test condition and select (temp void) +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 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 '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 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: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 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: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 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 '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: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 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 '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 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: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 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 '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 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 '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: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 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 '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 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 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 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 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 '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 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 '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: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 Compare Less Than ( temp bool) +0:185 'd7' ( uniform float) 0:185 Constant: 0:185 1.000000 0:185 true case @@ -541,20 +541,20 @@ Shader version: 130 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 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 '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 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 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 @@ -563,407 +563,407 @@ Shader version: 130 0:209 true (const bool) 0:209 Loop Body 0:197 Sequence -0:197 Test condition and select (temp void) +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 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: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 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 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: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 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 'd8' ( uniform float) 0:234 Loop Body 0:217 Sequence -0:217 Test condition and select (temp void) +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 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: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 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 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 Test condition and select ( temp void) 0:224 Condition -0:224 Compare Less Than (temp bool) -0:224 'd8' (uniform float) +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 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 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: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 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 'd9' ( uniform float) 0:237 Loop Body 0:238 Sequence -0:238 Test condition and select (temp void) +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 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 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 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 'd7' ( uniform float) 0:239 true case 0:240 Sequence -0:240 Test condition and select (temp void) +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 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 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 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 '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 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 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 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 '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 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 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 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 '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 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 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: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 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: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 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 'd8' ( uniform float) 0:269 true case -0:270 Test condition and select (temp void) +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 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 '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 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 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: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 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 'd14' ( uniform float) 0:280 Loop Body 0:281 Sequence -0:281 Test condition and select (temp void) +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 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 '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: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 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 '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 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 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 '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 '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: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 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 '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 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 'd17' ( uniform float) 0:307 Loop Body 0:304 Sequence -0:304 Test condition and select (temp void) +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 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 '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: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 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 'd16' ( uniform float) 0:310 Loop Body 0:311 Sequence -0:311 Test condition and select (temp void) +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 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 '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: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) +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: @@ -971,59 +971,59 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:53 Function Definition: main( (global void) +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: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 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 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 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 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 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 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 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 @@ -1032,475 +1032,475 @@ Shader version: 130 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 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 '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: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 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 '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: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 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 '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: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 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: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 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 '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 '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: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 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 '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: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 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 '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: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 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 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: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: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 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 '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: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 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 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 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:116 'd3' ( uniform float) 0:115 Loop Terminal Expression -0:115 Pre-Increment (temp int) -0:115 'i' (temp int) +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 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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: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 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 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 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: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 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 '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 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: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 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 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 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: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 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 '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 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: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 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 '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: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 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 'd4' ( uniform float) 0:157 true case 0:158 Branch: Continue -0:159 Test condition and select (temp void) +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 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 '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 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: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 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: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 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 '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: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 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 '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 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: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 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 '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 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 '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: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 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 '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 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 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 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 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 '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 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 '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: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 Compare Less Than ( temp bool) +0:185 'd7' ( uniform float) 0:185 Constant: 0:185 1.000000 0:185 true case @@ -1509,20 +1509,20 @@ Shader version: 130 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 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 '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 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 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 @@ -1531,405 +1531,405 @@ Shader version: 130 0:209 true (const bool) 0:209 Loop Body 0:197 Sequence -0:197 Test condition and select (temp void) +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 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: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 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 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: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 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 'd8' ( uniform float) 0:234 Loop Body 0:217 Sequence -0:217 Test condition and select (temp void) +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 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: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 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 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 Test condition and select ( temp void) 0:224 Condition -0:224 Compare Less Than (temp bool) -0:224 'd8' (uniform float) +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 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 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: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 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 'd9' ( uniform float) 0:237 Loop Body 0:238 Sequence -0:238 Test condition and select (temp void) +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 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 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 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 'd7' ( uniform float) 0:239 true case 0:240 Sequence -0:240 Test condition and select (temp void) +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 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 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 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 '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 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 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 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 '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 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 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 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 '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 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 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: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 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: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 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 'd8' ( uniform float) 0:269 true case -0:270 Test condition and select (temp void) +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 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 '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 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 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: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 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 'd14' ( uniform float) 0:280 Loop Body 0:281 Sequence -0:281 Test condition and select (temp void) +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 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 '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: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 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 '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 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 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 '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 '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: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 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 '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 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 'd17' ( uniform float) 0:307 Loop Body 0:304 Sequence -0:304 Test condition and select (temp void) +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 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 '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: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 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 'd16' ( uniform float) 0:310 Loop Body 0:311 Sequence -0:311 Test condition and select (temp void) +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 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 '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: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) +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 index 39fae13d4d..0bb61c9a4b 100644 --- a/deps/glslang/glslang/Test/baseResults/loopsArtificial.frag.out +++ b/deps/glslang/glslang/Test/baseResults/loopsArtificial.frag.out @@ -3,216 +3,216 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea Shader version: 130 0:? Sequence -0:53 Function Definition: main( (global void) +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: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 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 '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: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 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 '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 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 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 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 '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 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 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 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 '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 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: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 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: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 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 'd13' ( uniform float) 0:74 Loop Body 0:75 Sequence -0:75 Test condition and select (temp void) +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 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 '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: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: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 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 '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 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 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 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 '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 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 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 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 '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 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: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 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: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) +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: @@ -220,214 +220,214 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:53 Function Definition: main( (global void) +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: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 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 '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: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 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 '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 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 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 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 '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 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 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 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 '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 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: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 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: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 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 'd13' ( uniform float) 0:74 Loop Body 0:75 Sequence -0:75 Test condition and select (temp void) +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 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 '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: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: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 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 '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 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 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 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 '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 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 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 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 '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 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: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 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: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) +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 index 95e98e40ba..3b318b6260 100644 --- a/deps/glslang/glslang/Test/baseResults/mains1.frag.out +++ b/deps/glslang/glslang/Test/baseResults/mains1.frag.out @@ -1,14 +1,14 @@ mains1.frag Shader version: 110 0:? Sequence -0:3 Function Definition: main( (global void) +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 Definition: main( ( global void) 0:3 Function Parameters: 0:? Linker Objects @@ -23,7 +23,7 @@ max_vertices = -1 input primitive = none output primitive = points ERROR: node is still EOpNull! -0:3 Function Definition: foo( (global void) +0:3 Function Definition: foo( ( global void) 0:3 Function Parameters: 0:? Linker Objects @@ -34,7 +34,7 @@ max_vertices = -1 input primitive = none output primitive = line_strip 0:? Sequence -0:3 Function Definition: bar( (global void) +0:3 Function Definition: bar( ( global void) 0:3 Function Parameters: 0:? Linker Objects @@ -61,9 +61,9 @@ ERROR: node is still EOpNull! 0:? Linker Objects Shader version: 110 0:? Sequence -0:3 Function Definition: main( (global void) +0:3 Function Definition: main( ( global void) 0:3 Function Parameters: -0:3 Function Definition: main( (global void) +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 index 14c3548b14..f3bea4b226 100644 --- a/deps/glslang/glslang/Test/baseResults/matrix.frag.out +++ b/deps/glslang/glslang/Test/baseResults/matrix.frag.out @@ -5,252 +5,252 @@ WARNING: 0:22: varying deprecated in version 130; may be removed in future relea Shader version: 130 0:? Sequence -0:25 Function Definition: main( (global void) +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 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 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 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 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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '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 '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 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 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 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: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: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) +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: @@ -258,250 +258,250 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:25 Function Definition: main( (global void) +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 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 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 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 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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '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 '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 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 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 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: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: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) +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 index d09dec0bf1..3e3b3f06a3 100644 --- a/deps/glslang/glslang/Test/baseResults/matrix2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/matrix2.frag.out @@ -5,17 +5,17 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea Shader version: 150 0:? Sequence -0:19 Function Definition: main( (global void) +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: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 @@ -29,148 +29,151 @@ Shader version: 150 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 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 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 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: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: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: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 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 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 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: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: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) +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: @@ -178,17 +181,17 @@ Linked fragment stage: Shader version: 150 0:? Sequence -0:19 Function Definition: main( (global void) +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: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 @@ -202,146 +205,149 @@ Shader version: 150 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 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 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 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: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: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: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 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 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 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: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: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) +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 index ee0646ea0c..0a0d1e4022 100644 --- a/deps/glslang/glslang/Test/baseResults/matrixError.vert.out +++ b/deps/glslang/glslang/Test/baseResults/matrixError.vert.out @@ -1,41 +1,45 @@ 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: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: 7 compilation errors. No code generated. +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 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: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) +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: @@ -43,29 +47,31 @@ Linked vertex stage: Shader version: 120 ERROR: node is still EOpNull! -0:12 Function Definition: main( (global void) +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: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) +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 index 4ad4ef15b8..8086d52475 100644 --- a/deps/glslang/glslang/Test/baseResults/maxClipDistances.vert.out +++ b/deps/glslang/glslang/Test/baseResults/maxClipDistances.vert.out @@ -1,11 +1,11 @@ maxClipDistances.vert Shader version: 130 0:? Sequence -0:5 Function Definition: main( (global void) +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) +0:? 'gl_ClipDistance' ( smooth out 8-element array of float ClipDistance) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) Linked vertex stage: @@ -13,9 +13,9 @@ Linked vertex stage: Shader version: 130 0:? Sequence -0:5 Function Definition: main( (global void) +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) +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 index 94890bc891..d3bb4eee4b 100644 --- a/deps/glslang/glslang/Test/baseResults/max_vertices_0.geom.out +++ b/deps/glslang/glslang/Test/baseResults/max_vertices_0.geom.out @@ -5,14 +5,14 @@ max_vertices = 0 input primitive = points output primitive = triangle_strip 0:? Sequence -0:8 Function Definition: main( (global void) +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: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) +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: @@ -24,12 +24,12 @@ max_vertices = 0 input primitive = points output primitive = triangle_strip 0:? Sequence -0:8 Function Definition: main( (global void) +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: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) +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 index 6d77e0933e..3a9a99f6c2 100755 --- a/deps/glslang/glslang/Test/baseResults/missingBodies.vert.out +++ b/deps/glslang/glslang/Test/baseResults/missingBodies.vert.out @@ -1,57 +1,55 @@ missingBodies.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - Shader version: 450 0:? Sequence -0:4 Function Definition: foo( (global void) +0:4 Function 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: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: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 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 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 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 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: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: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: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) +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: @@ -65,34 +63,34 @@ ERROR: Linking vertex stage: No function definition (body) found: Shader version: 450 0:? Sequence -0:4 Function Definition: foo( (global void) +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: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: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: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: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) +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-new/Test/baseResults/mixedArrayDecls.frag.out b/deps/glslang/glslang/Test/baseResults/mixedArrayDecls.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/mixedArrayDecls.frag.out rename to deps/glslang/glslang/Test/baseResults/mixedArrayDecls.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/negativeArraySize.comp.out b/deps/glslang/glslang/Test/baseResults/negativeArraySize.comp.out index ccbabf5f15..0a5ba310fb 100644 --- a/deps/glslang/glslang/Test/baseResults/negativeArraySize.comp.out +++ b/deps/glslang/glslang/Test/baseResults/negativeArraySize.comp.out @@ -1,5 +1,4 @@ negativeArraySize.comp -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:9: '' : array size must be a positive integer ERROR: 1 compilation errors. No code generated. @@ -7,7 +6,7 @@ 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 Definition: main( ( global void) 0:7 Function Parameters: 0:? Linker Objects @@ -18,7 +17,7 @@ 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 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 index f63d79f12d..52921e8fc1 100644 --- a/deps/glslang/glslang/Test/baseResults/newTexture.frag.out +++ b/deps/glslang/glslang/Test/baseResults/newTexture.frag.out @@ -1,263 +1,261 @@ newTexture.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - Shader version: 430 0:? Sequence -0:36 Function Definition: main( (global void) +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: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 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 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: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 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 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 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 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: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 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: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: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: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: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 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 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) +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: @@ -265,259 +263,259 @@ Linked fragment stage: Shader version: 430 0:? Sequence -0:36 Function Definition: main( (global void) +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: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 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 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: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 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 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 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 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: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 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: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: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: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: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 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 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) +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 index 60ac3a3a5b..dd26243856 100644 --- a/deps/glslang/glslang/Test/baseResults/noMain.vert.out +++ b/deps/glslang/glslang/Test/baseResults/noMain.vert.out @@ -1,11 +1,11 @@ noMain.vert Shader version: 300 0:? Sequence -0:3 Function Definition: foo( (global void) +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) +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 @@ -14,9 +14,9 @@ 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 Definition: main( ( global void) 0:3 Function Parameters: -0:7 Function Definition: main( (global void) +0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:? Linker Objects @@ -31,13 +31,13 @@ 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) +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 Definition: main( ( global void) 0:3 Function Parameters: -0:7 Function Definition: main( (global void) +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 index c0753696a2..aa8a8273ba 100644 --- a/deps/glslang/glslang/Test/baseResults/nonSquare.vert.out +++ b/deps/glslang/glslang/Test/baseResults/nonSquare.vert.out @@ -1,34 +1,34 @@ nonSquare.vert Shader version: 120 0:? Sequence -0:15 Function Definition: main( (global void) +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: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 matrix-times-vector ( temp 4-component vector of float) 0:24 Constant: 0:24 3.000000 0:24 6.000000 @@ -46,7 +46,7 @@ Shader version: 120 0:24 24.000000 0:24 0.000000 0:24 0.000000 -0:24 'v4' (in 4-component vector of float) +0:24 'v4' ( in 4-component vector of float) 0:24 Constant: 0:24 50.000000 0:24 110.000000 @@ -63,13 +63,13 @@ Shader version: 120 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:? '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:? 'm24' ( const 2X4 matrix of float) 0:? 3.000000 0:? 0.000000 0:? 0.000000 @@ -78,7 +78,7 @@ Shader version: 120 0:? 3.000000 0:? 0.000000 0:? 0.000000 -0:? 'm42' (const 4X2 matrix of float) +0:? 'm42' ( const 4X2 matrix of float) 0:? 1.000000 0:? 2.000000 0:? 3.000000 @@ -94,34 +94,34 @@ Linked vertex stage: Shader version: 120 0:? Sequence -0:15 Function Definition: main( (global void) +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: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 matrix-times-vector ( temp 4-component vector of float) 0:24 Constant: 0:24 3.000000 0:24 6.000000 @@ -139,7 +139,7 @@ Shader version: 120 0:24 24.000000 0:24 0.000000 0:24 0.000000 -0:24 'v4' (in 4-component vector of float) +0:24 'v4' ( in 4-component vector of float) 0:24 Constant: 0:24 50.000000 0:24 110.000000 @@ -156,13 +156,13 @@ Shader version: 120 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:? '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:? 'm24' ( const 2X4 matrix of float) 0:? 3.000000 0:? 0.000000 0:? 0.000000 @@ -171,7 +171,7 @@ Shader version: 120 0:? 3.000000 0:? 0.000000 0:? 0.000000 -0:? 'm42' (const 4X2 matrix of float) +0:? 'm42' ( const 4X2 matrix of float) 0:? 1.000000 0:? 2.000000 0:? 3.000000 diff --git a/deps/glslang/glslang/Test/baseResults/nonVulkan.frag.out b/deps/glslang/glslang/Test/baseResults/nonVulkan.frag.out index 8e03610e0d..2b8b6a0ce3 100644 --- a/deps/glslang/glslang/Test/baseResults/nonVulkan.frag.out +++ b/deps/glslang/glslang/Test/baseResults/nonVulkan.frag.out @@ -1,5 +1,4 @@ nonVulkan.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -10,10 +9,10 @@ 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:? '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}) +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: @@ -23,8 +22,8 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr Shader version: 450 ERROR: node is still EOpNull! 0:? Linker Objects -0:? 'arraySize' (specialization-constant const int) +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}) +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-new/Test/baseResults/nonuniform.frag.out b/deps/glslang/glslang/Test/baseResults/nonuniform.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/nonuniform.frag.out rename to deps/glslang/glslang/Test/baseResults/nonuniform.frag.out diff --git a/deps/glslang-new/Test/baseResults/nosuffix.out b/deps/glslang/glslang/Test/baseResults/nosuffix.out similarity index 100% rename from deps/glslang-new/Test/baseResults/nosuffix.out rename to deps/glslang/glslang/Test/baseResults/nosuffix.out diff --git a/deps/glslang/glslang/Test/baseResults/numeral.frag.out b/deps/glslang/glslang/Test/baseResults/numeral.frag.out index e5b2041056..b7c0a78b72 100644 --- a/deps/glslang/glslang/Test/baseResults/numeral.frag.out +++ b/deps/glslang/glslang/Test/baseResults/numeral.frag.out @@ -1,5 +1,4 @@ numeral.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:14: '' : octal literal digit too large ERROR: 0:15: '' : octal literal digit too large ERROR: 0:16: '' : octal literal digit too large @@ -12,412 +11,415 @@ 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: 12 compilation errors. No code generated. +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 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 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 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 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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp int) +0:17 'obig' ( temp int) 0:17 Constant: -0:17 995208915 (const int) +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 move second child to first child ( temp int) +0:18 'omax1' ( temp int) 0:18 Constant: -0:18 536870912 (const int) +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp int) +0:50 'hbig' ( temp int) 0:50 Constant: -0:50 -1 (const int) +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp float) +0:73 'g6' ( temp float) 0:73 Constant: -0:73 0.000005 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:? '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: @@ -425,405 +427,406 @@ Linked fragment stage: Shader version: 400 ERROR: node is still EOpNull! -0:3 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp int) +0:17 'obig' ( temp int) 0:17 Constant: -0:17 995208915 (const int) +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 move second child to first child ( temp int) +0:18 'omax1' ( temp int) 0:18 Constant: -0:18 536870912 (const int) +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp int) +0:50 'hbig' ( temp int) 0:50 Constant: -0:50 -1 (const int) +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 move second child to first child ( temp float) +0:73 'g6' ( temp float) 0:73 Constant: -0:73 0.000005 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:? '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-new/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out b/deps/glslang/glslang/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out rename to deps/glslang/glslang/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out diff --git a/deps/glslang-new/Test/baseResults/overlongLiteral.frag.out b/deps/glslang/glslang/Test/baseResults/overlongLiteral.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/overlongLiteral.frag.out rename to deps/glslang/glslang/Test/baseResults/overlongLiteral.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/pointCoord.frag.out b/deps/glslang/glslang/Test/baseResults/pointCoord.frag.out index 5d53aea180..f55f9bc44c 100644 --- a/deps/glslang/glslang/Test/baseResults/pointCoord.frag.out +++ b/deps/glslang/glslang/Test/baseResults/pointCoord.frag.out @@ -1,35 +1,35 @@ pointCoord.frag Shader version: 100 0:? Sequence -0:5 Function Definition: main( (global void) +0:5 Function Definition: main( ( global void) 0:5 Function Parameters: 0:? Sequence -0:9 Test condition and select (temp void) +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 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: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 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: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) +0:? 'sampler' ( uniform lowp sampler2D) Linked fragment stage: @@ -37,33 +37,33 @@ Linked fragment stage: Shader version: 100 0:? Sequence -0:5 Function Definition: main( (global void) +0:5 Function Definition: main( ( global void) 0:5 Function Parameters: 0:? Sequence -0:9 Test condition and select (temp void) +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 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: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 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: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) +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 index 17c7d53f70..abe56f7509 100644 --- a/deps/glslang/glslang/Test/baseResults/precise.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/precise.tesc.out @@ -1,366 +1,364 @@ precise.tesc -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - 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 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 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 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 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 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 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: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: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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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: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: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: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: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 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 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: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 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 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 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 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: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: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 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 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 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 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 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: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 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 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 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 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 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: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: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 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 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: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 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 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: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: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: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 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: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: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: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 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 @@ -368,16 +366,16 @@ vertices = -1 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: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:106 'result' ( noContraction temp 3X3 matrix of float) +0:109 Function Definition: main( ( global void) 0:109 Function Parameters: 0:? Linker Objects @@ -392,7 +390,7 @@ 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 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 index e40fd0cd60..a239e95de2 100644 --- a/deps/glslang/glslang/Test/baseResults/precise_struct_block.vert.out +++ b/deps/glslang/glslang/Test/baseResults/precise_struct_block.vert.out @@ -1,383 +1,381 @@ precise_struct_block.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - Shader version: 450 0:? Sequence -0:11 Function Definition: struct_member( (global float) +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 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 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 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 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 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 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 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 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 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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 '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: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: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 '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 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: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: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 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 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 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 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 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 '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: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: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 '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 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: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: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 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 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 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 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 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 '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: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: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 '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 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: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: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: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 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 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: @@ -390,12 +388,12 @@ Shader version: 450 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 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: @@ -406,13 +404,13 @@ Shader version: 450 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 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: @@ -425,100 +423,100 @@ Shader version: 450 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: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 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 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 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: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: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: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 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 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 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 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 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: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) +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: @@ -526,11 +524,11 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:89 Function Definition: main( (global void) +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) +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 index 5ab99e99a3..7174049fca 100644 --- a/deps/glslang/glslang/Test/baseResults/precision.frag.out +++ b/deps/glslang/glslang/Test/baseResults/precision.frag.out @@ -11,118 +11,118 @@ 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 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: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 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 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: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: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: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: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 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: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 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 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 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 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) +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: @@ -130,104 +130,104 @@ Linked fragment stage: Shader version: 100 ERROR: node is still EOpNull! -0:25 Function Definition: main( (global void) +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: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: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: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: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 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: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 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 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 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 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) +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 index f433ba5257..04ceb3a63f 100644 --- a/deps/glslang/glslang/Test/baseResults/precision.vert.out +++ b/deps/glslang/glslang/Test/baseResults/precision.vert.out @@ -7,47 +7,47 @@ 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 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 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 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 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: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) +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: @@ -55,45 +55,45 @@ Linked vertex stage: Shader version: 300 ERROR: node is still EOpNull! -0:18 Function Definition: main( (global void) +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 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 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 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: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) +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 index ac24229597..d5f73b6d7a 100644 --- a/deps/glslang/glslang/Test/baseResults/prepost.frag.out +++ b/deps/glslang/glslang/Test/baseResults/prepost.frag.out @@ -1,135 +1,135 @@ prepost.frag Shader version: 140 0:? Sequence -0:3 Function Definition: main( (global void) +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 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 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 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: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: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 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: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: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 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: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: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: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 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 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 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 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 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: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 @@ -138,134 +138,134 @@ Linked fragment stage: Shader version: 140 0:? Sequence -0:3 Function Definition: main( (global void) +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 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 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 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: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: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 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: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: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 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: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: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: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 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 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 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 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 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: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.edge_cases.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.err index 5f177e6cc1..e69de29bb2 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.err @@ -1,2 +0,0 @@ -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.err index cfde4041e9..bc588958fe 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.err @@ -1,4 +1,3 @@ -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.err index 925cc0ca05..35db303419 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.err @@ -1,3 +1,2 @@ -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.err index 5f177e6cc1..e69de29bb2 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.err @@ -1,2 +0,0 @@ -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.err index 7d1f0a0058..14192046a8 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.err @@ -1,13 +1,13 @@ ERROR: 0:8000: '#include' : required extension not requested: GL_GOOGLE_include_directive -ERROR: 0:8000: '#include' : must be followed by a file designation +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 file designation +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' : unexpected 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 file designation +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' : unexpected 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.enabled.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.err index be8c5cf3a1..252e661f09 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.err @@ -1,8 +1,20 @@ -ERROR: 0:8000: '#include' : must be followed by a file designation -ERROR: 0:8001: '#include' : must be followed by a file designation -ERROR: 0:8002: '#include' : unexpected include directive -ERROR: 0:8003: '#include' : extra content after file designation -ERROR: 0:8004: '#include' : unexpected include directive -ERROR: 5 compilation errors. No code generated. +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.line.frag.err b/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.err index 5f177e6cc1..e69de29bb2 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.err @@ -1,2 +0,0 @@ -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.err index 5f177e6cc1..da435dbd9a 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.err @@ -1,2 +1,2 @@ -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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 index 8c52814468..ebe1e4a749 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.out +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.out @@ -7,6 +7,8 @@ #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 index 5f177e6cc1..e69de29bb2 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.err +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.err @@ -1,2 +0,0 @@ -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.out index 8cbabdad89..56bfe010f9 100644 --- a/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.out +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.out @@ -25,6 +25,6 @@ int main(){ == != & ^ | && ^^ || ? : += -= *= /= %= <<= >>= &= |= ^= - 1.2 2E10 5u - 5 lf + 1.2 2E10 5u - 5l f } diff --git a/deps/glslang/glslang/Test/baseResults/recurse1.vert.out b/deps/glslang/glslang/Test/baseResults/recurse1.vert.out index 4274eb3849..7d09b7c1b3 100644 --- a/deps/glslang/glslang/Test/baseResults/recurse1.vert.out +++ b/deps/glslang/glslang/Test/baseResults/recurse1.vert.out @@ -1,190 +1,190 @@ recurse1.vert Shader version: 330 0:? Sequence -0:3 Function Definition: main( (global void) +0:3 Function Definition: main( ( global void) 0:3 Function Parameters: -0:9 Function Definition: self( (global void) +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:11 Function Call: self( ( global void) +0:16 Function Definition: foo(f1; ( global void) 0:16 Function Parameters: -0:16 '' (in float) +0:16 '' ( in float) 0:18 Sequence -0:18 Function Call: bar(i1; (global float) +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 Definition: bar(i1; ( global float) 0:21 Function Parameters: -0:21 '' (in int) +0:21 '' ( in int) 0:23 Sequence -0:23 Function Call: foo(f1; (global void) +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 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: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: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: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: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: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: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: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:44 Function Call: AT( ( global void) 0:? Linker Objects -0:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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 Definition: main( ( global void) 0:5 Function Parameters: -0:11 Function Definition: cfoo(f1; (global void) +0:11 Function Definition: cfoo(f1; ( global void) 0:11 Function Parameters: -0:11 '' (in float) +0:11 '' ( in float) 0:13 Sequence -0:13 Function Call: cbar(i1; (global float) +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 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: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: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: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: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 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: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: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: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: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: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: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: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: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 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: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: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: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: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 Definition: cbar(i1; ( global float) 0:9 Function Parameters: -0:9 '' (in int) +0:9 '' ( in int) 0:11 Sequence -0:11 Function Call: cfoo(f1; (global void) +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 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: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: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: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:28 Function Call: CAT( ( global void) 0:? Linker Objects @@ -216,14 +216,14 @@ ERROR: Linking fragment stage: Recursion detected: Shader version: 330 0:? Sequence -0:3 Function Definition: main( (global void) +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) +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 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 index ba3e0e698a..422c049be6 100644 --- a/deps/glslang/glslang/Test/baseResults/reflection.vert.out +++ b/deps/glslang/glslang/Test/baseResults/reflection.vert.out @@ -1,6 +1,4 @@ reflection.vert -Warning, version 440 is not yet complete; most version-specific features are present, but some are missing. - 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 @@ -72,6 +70,10 @@ 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 @@ -90,6 +92,10 @@ 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 @@ -97,4 +103,5 @@ 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 index 99b4d55194..33ec069dbe 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.basic.dcefunc.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.dcefunc.frag.out @@ -1,36 +1,33 @@ remap.basic.dcefunc.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 19 +// 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" 14 16 + EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" - Name 9 "dead_fn(" - Name 14 "outf4" - Name 16 "inf" + Name 17 "outf4" + Name 19 "inf" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypeFunction 7(fvec3) - 10: 6(float) Constant 0 - 11: 7(fvec3) ConstantComposite 10 10 10 - 12: TypeVector 6(float) 4 - 13: TypePointer Output 12(fvec4) - 14(outf4): 13(ptr) Variable Output - 15: TypePointer Input 6(float) - 16(inf): 15(ptr) Variable Input + 11: 6(float) Constant 0 + 12: 7(fvec3) ConstantComposite 11 11 11 + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19(inf): 18(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 17: 6(float) Load 16(inf) - 18: 12(fvec4) CompositeConstruct 17 17 17 17 - Store 14(outf4) 18 + 20: 6(float) Load 19(inf) + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17(outf4) 21 Return FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.everything.frag.out index 357a8d2be5..858d629e46 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.basic.everything.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.everything.frag.out @@ -1,8 +1,6 @@ remap.basic.everything.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 +// Generated by (magic number): 80007 // Id's are bound by 24969 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.none.frag.out index 39e56b2e01..1ad1d74c78 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.basic.none.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.none.frag.out @@ -1,20 +1,18 @@ remap.basic.none.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 20 +// 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" 15 17 + EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "dead_fn(" - Name 15 "outf4" - Name 17 "inf" + Name 17 "outf4" + Name 19 "inf" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -22,16 +20,16 @@ Warning, version 450 is not yet complete; most version-specific features are pre 8: TypeFunction 7(fvec3) 11: 6(float) Constant 0 12: 7(fvec3) ConstantComposite 11 11 11 - 13: TypeVector 6(float) 4 - 14: TypePointer Output 13(fvec4) - 15(outf4): 14(ptr) Variable Output - 16: TypePointer Input 6(float) - 17(inf): 16(ptr) Variable Input + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19(inf): 18(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 18: 6(float) Load 17(inf) - 19: 13(fvec4) CompositeConstruct 18 18 18 18 - Store 15(outf4) 19 + 20: 6(float) Load 19(inf) + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17(outf4) 21 Return FunctionEnd 9(dead_fn(): 7(fvec3) Function None 8 diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.strip.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.strip.frag.out index 27c0874b7d..3d876d0d68 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.basic.strip.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.strip.frag.out @@ -1,14 +1,12 @@ remap.basic.strip.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 20 +// 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" 15 17 + EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft 2: TypeVoid 3: TypeFunction 2 @@ -17,16 +15,16 @@ Warning, version 450 is not yet complete; most version-specific features are pre 8: TypeFunction 7(fvec3) 11: 6(float) Constant 0 12: 7(fvec3) ConstantComposite 11 11 11 - 13: TypeVector 6(float) 4 - 14: TypePointer Output 13(fvec4) - 15: 14(ptr) Variable Output - 16: TypePointer Input 6(float) - 17: 16(ptr) Variable Input + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17: 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19: 18(ptr) Variable Input 4: 2 Function None 3 5: Label - 18: 6(float) Load 17 - 19: 13(fvec4) CompositeConstruct 18 18 18 18 - Store 15 19 + 20: 6(float) Load 19 + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17 21 Return FunctionEnd 9: 7(fvec3) Function None 8 diff --git a/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 index b49a10ba61..211daba25b 100644 --- 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 @@ -2,15 +2,16 @@ remap.hlsl.sample.basic.everything.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 24916 +// 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" 4656 4112 + EntryPoint Fragment 5663 "main" 4253 3709 ExecutionMode 5663 OriginUpperLeft + ExecutionMode 5663 DepthReplacing Decorate 4727 DescriptorSet 0 Decorate 4727 Binding 0 Decorate 3305 DescriptorSet 0 @@ -26,10 +27,14 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Decorate 3789 DescriptorSet 0 Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 - Decorate 4656 Location 0 - Decorate 4112 BuiltIn FragDepth + 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) @@ -46,8 +51,6 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented 2598: 12(int) Constant 9 2601: 12(int) Constant 10 2604: 12(int) Constant 11 - 13: TypeFloat 32 - 29: TypeVector 13(float) 4 666: TypePointer Function 29(fvec4) 149: TypeImage 13(float) 1D sampled format:Unknown 786: TypePointer UniformConstant 149 @@ -120,100 +123,107 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented 795: TypePointer UniformConstant 158 3869: 795(ptr) Variable UniformConstant 521: TypeSampledImage 158 - 1032: TypeStruct 29(fvec4) 13(float) 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) - 4656: 667(ptr) Variable Output + 4253: 667(ptr) Variable Output 651: TypePointer Output 13(float) - 4112: 651(ptr) Variable Output + 3709: 651(ptr) Variable Output 5663: 8 Function None 1282 - 24915: Label - 5830: 1972(ptr) Variable Function - 5072: 1669(ptr) Variable Function - 22097: 649(ptr) AccessChain 5830 2574 - Store 22097 2574 - 19732: 649(ptr) AccessChain 5830 2577 - Store 19732 2574 - 19733: 649(ptr) AccessChain 5830 2580 - Store 19733 2574 - 19734: 649(ptr) AccessChain 5830 2583 - Store 19734 2574 - 19735: 649(ptr) AccessChain 5830 2586 - Store 19735 2574 - 19736: 649(ptr) AccessChain 5830 2589 - Store 19736 2574 - 19737: 649(ptr) AccessChain 5830 2571 - Store 19737 2574 - 19738: 649(ptr) AccessChain 5830 2592 - Store 19738 2574 - 19739: 649(ptr) AccessChain 5830 2595 - Store 19739 2574 - 19740: 649(ptr) AccessChain 5830 2598 - Store 19740 2574 - 19741: 649(ptr) AccessChain 5830 2601 - Store 19741 2574 - 19656: 649(ptr) AccessChain 5830 2604 - Store 19656 2574 - 14934: 149 Load 4727 - 11686: 508 Load 3305 - 11940: 510 SampledImage 14934 11686 - 7877: 29(fvec4) ImageSampleImplicitLod 11940 2935 - 15360: 148 Load 4743 - 15706: 508 Load 3305 - 11941: 511 SampledImage 15360 15706 - 7878: 26(ivec4) ImageSampleImplicitLod 11941 2821 - 15361: 147 Load 4807 - 15707: 508 Load 3305 - 11942: 512 SampledImage 15361 15707 - 7879: 23(ivec4) ImageSampleImplicitLod 11942 2151 - 15362: 150 Load 5042 - 15708: 508 Load 3305 - 11943: 513 SampledImage 15362 15708 - 7880: 29(fvec4) ImageSampleImplicitLod 11943 1825 - 15363: 151 Load 5058 - 15709: 508 Load 3305 - 11944: 514 SampledImage 15363 15709 - 7881: 26(ivec4) ImageSampleImplicitLod 11944 2028 - 15364: 152 Load 5122 - 15710: 508 Load 3305 - 11945: 515 SampledImage 15364 15710 - 7882: 23(ivec4) ImageSampleImplicitLod 11945 2684 - 15365: 153 Load 3967 - 15711: 508 Load 3305 - 11946: 516 SampledImage 15365 15711 - 7883: 29(fvec4) ImageSampleImplicitLod 11946 1660 - 15366: 154 Load 3983 - 15712: 508 Load 3305 - 11947: 517 SampledImage 15366 15712 - 7884: 26(ivec4) ImageSampleImplicitLod 11947 2174 - 15367: 155 Load 4047 - 15713: 508 Load 3305 - 11948: 518 SampledImage 15367 15713 - 7885: 23(ivec4) ImageSampleImplicitLod 11948 2476 - 15368: 156 Load 3789 - 15714: 508 Load 3305 - 11949: 519 SampledImage 15368 15714 - 7886: 29(fvec4) ImageSampleImplicitLod 11949 1660 - 15369: 157 Load 3805 - 15715: 508 Load 3305 - 11950: 520 SampledImage 15369 15715 - 7887: 26(ivec4) ImageSampleImplicitLod 11950 2174 - 15370: 158 Load 3869 - 15716: 508 Load 3305 - 12016: 521 SampledImage 15370 15716 - 7204: 23(ivec4) ImageSampleImplicitLod 12016 2476 - 20158: 666(ptr) AccessChain 5072 2571 - Store 20158 1284 - 19742: 650(ptr) AccessChain 5072 2574 - Store 19742 138 - 19848: 666(ptr) AccessChain 5072 2571 - 7967: 29(fvec4) Load 19848 - Store 4656 7967 - 16622: 650(ptr) AccessChain 5072 2574 + 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 4112 11539 + 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 index 28c384cee4..24a1adec13 100644 --- 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 @@ -2,300 +2,313 @@ remap.hlsl.sample.basic.none.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 190 +// 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" 180 184 + EntryPoint Fragment 4 "main" 188 192 ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 Name 4 "main" - Name 7 "MemberTest" - MemberName 7(MemberTest) 0 "Sample" - MemberName 7(MemberTest) 1 "CalculateLevelOfDetail" - MemberName 7(MemberTest) 2 "CalculateLevelOfDetailUnclamped" - MemberName 7(MemberTest) 3 "Gather" - MemberName 7(MemberTest) 4 "GetDimensions" - MemberName 7(MemberTest) 5 "GetSamplePosition" - MemberName 7(MemberTest) 6 "Load" - MemberName 7(MemberTest) 7 "SampleBias" - MemberName 7(MemberTest) 8 "SampleCmp" - MemberName 7(MemberTest) 9 "SampleCmpLevelZero" - MemberName 7(MemberTest) 10 "SampleGrad" - MemberName 7(MemberTest) 11 "SampleLevel" - Name 9 "mtest" - Name 38 "txval10" - Name 41 "g_tTex1df4" - Name 45 "g_sSamp" - Name 53 "txval11" - Name 56 "g_tTex1di4" - Name 66 "txval12" - Name 69 "g_tTex1du4" - Name 76 "txval20" - Name 79 "g_tTex2df4" - Name 87 "txval21" - Name 90 "g_tTex2di4" - Name 98 "txval22" - Name 101 "g_tTex2du4" - Name 110 "txval30" - Name 113 "g_tTex3df4" - Name 121 "txval31" - Name 124 "g_tTex3di4" - Name 131 "txval32" - Name 134 "g_tTex3du4" - Name 144 "txval40" - Name 147 "g_tTexcdf4" - Name 153 "txval41" - Name 156 "g_tTexcdi4" - Name 162 "txval42" - Name 165 "g_tTexcdu4" - Name 171 "PS_OUTPUT" - MemberName 171(PS_OUTPUT) 0 "Color" - MemberName 171(PS_OUTPUT) 1 "Depth" - Name 173 "psout" - Name 180 "Color" - Name 184 "Depth" - Name 187 "g_sSamp2d" - Name 188 "g_sSamp2D_b" - Name 189 "g_tTex1df4a" - Decorate 41(g_tTex1df4) DescriptorSet 0 - Decorate 41(g_tTex1df4) Binding 0 - Decorate 45(g_sSamp) DescriptorSet 0 - Decorate 45(g_sSamp) Binding 0 - Decorate 56(g_tTex1di4) DescriptorSet 0 - Decorate 69(g_tTex1du4) DescriptorSet 0 - Decorate 79(g_tTex2df4) DescriptorSet 0 - Decorate 90(g_tTex2di4) DescriptorSet 0 - Decorate 101(g_tTex2du4) DescriptorSet 0 - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 124(g_tTex3di4) DescriptorSet 0 - Decorate 134(g_tTex3du4) DescriptorSet 0 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 156(g_tTexcdi4) DescriptorSet 0 - Decorate 165(g_tTexcdu4) DescriptorSet 0 - Decorate 180(Color) Location 0 - Decorate 184(Depth) BuiltIn FragDepth - Decorate 187(g_sSamp2d) DescriptorSet 0 - Decorate 188(g_sSamp2D_b) DescriptorSet 0 - Decorate 189(g_tTex1df4a) DescriptorSet 0 - Decorate 189(g_tTex1df4a) Binding 1 + 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: TypeInt 32 1 - 7(MemberTest): TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) - 8: TypePointer Function 7(MemberTest) - 10: 6(int) Constant 1 - 11: TypePointer Function 6(int) - 13: 6(int) Constant 2 - 15: 6(int) Constant 3 - 17: 6(int) Constant 4 - 19: 6(int) Constant 5 - 21: 6(int) Constant 6 - 23: 6(int) Constant 0 - 25: 6(int) Constant 7 - 27: 6(int) Constant 8 - 29: 6(int) Constant 9 - 31: 6(int) Constant 10 - 33: 6(int) Constant 11 - 35: TypeFloat 32 - 36: TypeVector 35(float) 4 - 37: TypePointer Function 36(fvec4) - 39: TypeImage 35(float) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1df4): 40(ptr) Variable UniformConstant - 43: TypeSampler + 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_sSamp): 44(ptr) Variable UniformConstant - 47: TypeSampledImage 39 - 49: 35(float) Constant 1036831949 - 51: TypeVector 6(int) 4 - 52: TypePointer Function 51(ivec4) - 54: TypeImage 6(int) 1D sampled format:Unknown - 55: TypePointer UniformConstant 54 - 56(g_tTex1di4): 55(ptr) Variable UniformConstant - 59: TypeSampledImage 54 - 61: 35(float) Constant 1045220557 - 63: TypeInt 32 0 - 64: TypeVector 63(int) 4 - 65: TypePointer Function 64(ivec4) - 67: TypeImage 63(int) 1D sampled format:Unknown - 68: TypePointer UniformConstant 67 - 69(g_tTex1du4): 68(ptr) Variable UniformConstant - 72: TypeSampledImage 67 - 74: 35(float) Constant 1050253722 - 77: TypeImage 35(float) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2df4): 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: TypeVector 35(float) 2 - 85: 84(fvec2) ConstantComposite 49 61 - 88: TypeImage 6(int) 2D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex2di4): 89(ptr) Variable UniformConstant - 93: TypeSampledImage 88 - 95: 35(float) Constant 1053609165 - 96: 84(fvec2) ConstantComposite 74 95 - 99: TypeImage 63(int) 2D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex2du4): 100(ptr) Variable UniformConstant - 104: TypeSampledImage 99 - 106: 35(float) Constant 1056964608 - 107: 35(float) Constant 1058642330 - 108: 84(fvec2) ConstantComposite 106 107 - 111: TypeImage 35(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 116: TypeSampledImage 111 - 118: TypeVector 35(float) 3 - 119: 118(fvec3) ConstantComposite 49 61 74 - 122: TypeImage 6(int) 3D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex3di4): 123(ptr) Variable UniformConstant - 127: TypeSampledImage 122 - 129: 118(fvec3) ConstantComposite 95 106 107 - 132: TypeImage 63(int) 3D sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTex3du4): 133(ptr) Variable UniformConstant - 137: TypeSampledImage 132 - 139: 35(float) Constant 1060320051 - 140: 35(float) Constant 1061997773 - 141: 35(float) Constant 1063675494 - 142: 118(fvec3) ConstantComposite 139 140 141 - 145: TypeImage 35(float) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 150: TypeSampledImage 145 - 154: TypeImage 6(int) Cube sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTexcdi4): 155(ptr) Variable UniformConstant - 159: TypeSampledImage 154 - 163: TypeImage 63(int) Cube sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTexcdu4): 164(ptr) Variable UniformConstant - 168: TypeSampledImage 163 - 171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) - 172: TypePointer Function 171(PS_OUTPUT) - 174: 35(float) Constant 1065353216 - 175: 36(fvec4) ConstantComposite 174 174 174 174 - 177: TypePointer Function 35(float) - 179: TypePointer Output 36(fvec4) - 180(Color): 179(ptr) Variable Output - 183: TypePointer Output 35(float) - 184(Depth): 183(ptr) Variable Output - 187(g_sSamp2d): 44(ptr) Variable UniformConstant -188(g_sSamp2D_b): 44(ptr) Variable UniformConstant -189(g_tTex1df4a): 40(ptr) Variable UniformConstant + 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 - 9(mtest): 8(ptr) Variable Function - 38(txval10): 37(ptr) Variable Function - 53(txval11): 52(ptr) Variable Function - 66(txval12): 65(ptr) Variable Function - 76(txval20): 37(ptr) Variable Function - 87(txval21): 52(ptr) Variable Function - 98(txval22): 65(ptr) Variable Function - 110(txval30): 37(ptr) Variable Function - 121(txval31): 52(ptr) Variable Function - 131(txval32): 65(ptr) Variable Function - 144(txval40): 37(ptr) Variable Function - 153(txval41): 52(ptr) Variable Function - 162(txval42): 65(ptr) Variable Function - 173(psout): 172(ptr) Variable Function - 12: 11(ptr) AccessChain 9(mtest) 10 - Store 12 10 - 14: 11(ptr) AccessChain 9(mtest) 13 - Store 14 10 - 16: 11(ptr) AccessChain 9(mtest) 15 - Store 16 10 - 18: 11(ptr) AccessChain 9(mtest) 17 - Store 18 10 - 20: 11(ptr) AccessChain 9(mtest) 19 - Store 20 10 - 22: 11(ptr) AccessChain 9(mtest) 21 - Store 22 10 - 24: 11(ptr) AccessChain 9(mtest) 23 - Store 24 10 - 26: 11(ptr) AccessChain 9(mtest) 25 - Store 26 10 - 28: 11(ptr) AccessChain 9(mtest) 27 - Store 28 10 - 30: 11(ptr) AccessChain 9(mtest) 29 - Store 30 10 - 32: 11(ptr) AccessChain 9(mtest) 31 - Store 32 10 - 34: 11(ptr) AccessChain 9(mtest) 33 - Store 34 10 - 42: 39 Load 41(g_tTex1df4) - 46: 43 Load 45(g_sSamp) - 48: 47 SampledImage 42 46 - 50: 36(fvec4) ImageSampleImplicitLod 48 49 - Store 38(txval10) 50 - 57: 54 Load 56(g_tTex1di4) - 58: 43 Load 45(g_sSamp) - 60: 59 SampledImage 57 58 - 62: 51(ivec4) ImageSampleImplicitLod 60 61 - Store 53(txval11) 62 - 70: 67 Load 69(g_tTex1du4) - 71: 43 Load 45(g_sSamp) - 73: 72 SampledImage 70 71 - 75: 64(ivec4) ImageSampleImplicitLod 73 74 - Store 66(txval12) 75 - 80: 77 Load 79(g_tTex2df4) - 81: 43 Load 45(g_sSamp) - 83: 82 SampledImage 80 81 - 86: 36(fvec4) ImageSampleImplicitLod 83 85 - Store 76(txval20) 86 - 91: 88 Load 90(g_tTex2di4) - 92: 43 Load 45(g_sSamp) - 94: 93 SampledImage 91 92 - 97: 51(ivec4) ImageSampleImplicitLod 94 96 - Store 87(txval21) 97 - 102: 99 Load 101(g_tTex2du4) - 103: 43 Load 45(g_sSamp) - 105: 104 SampledImage 102 103 - 109: 64(ivec4) ImageSampleImplicitLod 105 108 - Store 98(txval22) 109 - 114: 111 Load 113(g_tTex3df4) - 115: 43 Load 45(g_sSamp) - 117: 116 SampledImage 114 115 - 120: 36(fvec4) ImageSampleImplicitLod 117 119 - Store 110(txval30) 120 - 125: 122 Load 124(g_tTex3di4) - 126: 43 Load 45(g_sSamp) - 128: 127 SampledImage 125 126 - 130: 51(ivec4) ImageSampleImplicitLod 128 129 - Store 121(txval31) 130 - 135: 132 Load 134(g_tTex3du4) - 136: 43 Load 45(g_sSamp) - 138: 137 SampledImage 135 136 - 143: 64(ivec4) ImageSampleImplicitLod 138 142 - Store 131(txval32) 143 - 148: 145 Load 147(g_tTexcdf4) - 149: 43 Load 45(g_sSamp) - 151: 150 SampledImage 148 149 - 152: 36(fvec4) ImageSampleImplicitLod 151 119 - Store 144(txval40) 152 - 157: 154 Load 156(g_tTexcdi4) - 158: 43 Load 45(g_sSamp) - 160: 159 SampledImage 157 158 - 161: 51(ivec4) ImageSampleImplicitLod 160 129 - Store 153(txval41) 161 - 166: 163 Load 165(g_tTexcdu4) - 167: 43 Load 45(g_sSamp) - 169: 168 SampledImage 166 167 - 170: 64(ivec4) ImageSampleImplicitLod 169 142 - Store 162(txval42) 170 - 176: 37(ptr) AccessChain 173(psout) 23 - Store 176 175 - 178: 177(ptr) AccessChain 173(psout) 10 - Store 178 174 - 181: 37(ptr) AccessChain 173(psout) 23 - 182: 36(fvec4) Load 181 - Store 180(Color) 182 - 185: 177(ptr) AccessChain 173(psout) 10 - 186: 35(float) Load 185 - Store 184(Depth) 186 +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 index 10a8938df3..2108108d4e 100644 --- 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 @@ -2,251 +2,261 @@ remap.hlsl.sample.basic.strip.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 190 +// 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" 180 184 + EntryPoint Fragment 4 "main" 188 192 ExecutionMode 4 OriginUpperLeft - Decorate 41 DescriptorSet 0 - Decorate 41 Binding 0 + ExecutionMode 4 DepthReplacing Decorate 45 DescriptorSet 0 Decorate 45 Binding 0 - Decorate 56 DescriptorSet 0 - Decorate 69 DescriptorSet 0 - Decorate 79 DescriptorSet 0 - Decorate 90 DescriptorSet 0 - Decorate 101 DescriptorSet 0 - Decorate 113 DescriptorSet 0 - Decorate 124 DescriptorSet 0 - Decorate 134 DescriptorSet 0 - Decorate 147 DescriptorSet 0 - Decorate 156 DescriptorSet 0 - Decorate 165 DescriptorSet 0 - Decorate 180 Location 0 - Decorate 184 BuiltIn FragDepth - Decorate 187 DescriptorSet 0 - Decorate 188 DescriptorSet 0 - Decorate 189 DescriptorSet 0 - Decorate 189 Binding 1 + Decorate 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: TypeInt 32 1 - 7: TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) - 8: TypePointer Function 7(struct) - 10: 6(int) Constant 1 - 11: TypePointer Function 6(int) - 13: 6(int) Constant 2 - 15: 6(int) Constant 3 - 17: 6(int) Constant 4 - 19: 6(int) Constant 5 - 21: 6(int) Constant 6 - 23: 6(int) Constant 0 - 25: 6(int) Constant 7 - 27: 6(int) Constant 8 - 29: 6(int) Constant 9 - 31: 6(int) Constant 10 - 33: 6(int) Constant 11 - 35: TypeFloat 32 - 36: TypeVector 35(float) 4 - 37: TypePointer Function 36(fvec4) - 39: TypeImage 35(float) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41: 40(ptr) Variable UniformConstant - 43: TypeSampler + 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: TypeSampledImage 39 - 49: 35(float) Constant 1036831949 - 51: TypeVector 6(int) 4 - 52: TypePointer Function 51(ivec4) - 54: TypeImage 6(int) 1D sampled format:Unknown - 55: TypePointer UniformConstant 54 - 56: 55(ptr) Variable UniformConstant - 59: TypeSampledImage 54 - 61: 35(float) Constant 1045220557 - 63: TypeInt 32 0 - 64: TypeVector 63(int) 4 - 65: TypePointer Function 64(ivec4) - 67: TypeImage 63(int) 1D sampled format:Unknown - 68: TypePointer UniformConstant 67 - 69: 68(ptr) Variable UniformConstant - 72: TypeSampledImage 67 - 74: 35(float) Constant 1050253722 - 77: TypeImage 35(float) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79: 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: TypeVector 35(float) 2 - 85: 84(fvec2) ConstantComposite 49 61 - 88: TypeImage 6(int) 2D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90: 89(ptr) Variable UniformConstant - 93: TypeSampledImage 88 - 95: 35(float) Constant 1053609165 - 96: 84(fvec2) ConstantComposite 74 95 - 99: TypeImage 63(int) 2D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101: 100(ptr) Variable UniformConstant - 104: TypeSampledImage 99 - 106: 35(float) Constant 1056964608 - 107: 35(float) Constant 1058642330 - 108: 84(fvec2) ConstantComposite 106 107 - 111: TypeImage 35(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113: 112(ptr) Variable UniformConstant - 116: TypeSampledImage 111 - 118: TypeVector 35(float) 3 - 119: 118(fvec3) ConstantComposite 49 61 74 - 122: TypeImage 6(int) 3D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124: 123(ptr) Variable UniformConstant - 127: TypeSampledImage 122 - 129: 118(fvec3) ConstantComposite 95 106 107 - 132: TypeImage 63(int) 3D sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134: 133(ptr) Variable UniformConstant - 137: TypeSampledImage 132 - 139: 35(float) Constant 1060320051 - 140: 35(float) Constant 1061997773 - 141: 35(float) Constant 1063675494 - 142: 118(fvec3) ConstantComposite 139 140 141 - 145: TypeImage 35(float) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147: 146(ptr) Variable UniformConstant - 150: TypeSampledImage 145 - 154: TypeImage 6(int) Cube sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156: 155(ptr) Variable UniformConstant - 159: TypeSampledImage 154 - 163: TypeImage 63(int) Cube sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165: 164(ptr) Variable UniformConstant - 168: TypeSampledImage 163 - 171: TypeStruct 36(fvec4) 35(float) - 172: TypePointer Function 171(struct) - 174: 35(float) Constant 1065353216 - 175: 36(fvec4) ConstantComposite 174 174 174 174 - 177: TypePointer Function 35(float) - 179: TypePointer Output 36(fvec4) - 180: 179(ptr) Variable Output - 183: TypePointer Output 35(float) - 184: 183(ptr) Variable Output - 187: 44(ptr) Variable UniformConstant - 188: 44(ptr) Variable UniformConstant - 189: 40(ptr) Variable UniformConstant + 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 - 9: 8(ptr) Variable Function - 38: 37(ptr) Variable Function - 53: 52(ptr) Variable Function - 66: 65(ptr) Variable Function - 76: 37(ptr) Variable Function - 87: 52(ptr) Variable Function - 98: 65(ptr) Variable Function - 110: 37(ptr) Variable Function - 121: 52(ptr) Variable Function - 131: 65(ptr) Variable Function - 144: 37(ptr) Variable Function - 153: 52(ptr) Variable Function - 162: 65(ptr) Variable Function - 173: 172(ptr) Variable Function - 12: 11(ptr) AccessChain 9 10 - Store 12 10 - 14: 11(ptr) AccessChain 9 13 - Store 14 10 - 16: 11(ptr) AccessChain 9 15 - Store 16 10 - 18: 11(ptr) AccessChain 9 17 - Store 18 10 - 20: 11(ptr) AccessChain 9 19 - Store 20 10 - 22: 11(ptr) AccessChain 9 21 - Store 22 10 - 24: 11(ptr) AccessChain 9 23 - Store 24 10 - 26: 11(ptr) AccessChain 9 25 - Store 26 10 - 28: 11(ptr) AccessChain 9 27 - Store 28 10 - 30: 11(ptr) AccessChain 9 29 - Store 30 10 - 32: 11(ptr) AccessChain 9 31 - Store 32 10 - 34: 11(ptr) AccessChain 9 33 - Store 34 10 - 42: 39 Load 41 - 46: 43 Load 45 - 48: 47 SampledImage 42 46 - 50: 36(fvec4) ImageSampleImplicitLod 48 49 - Store 38 50 - 57: 54 Load 56 - 58: 43 Load 45 - 60: 59 SampledImage 57 58 - 62: 51(ivec4) ImageSampleImplicitLod 60 61 - Store 53 62 - 70: 67 Load 69 - 71: 43 Load 45 - 73: 72 SampledImage 70 71 - 75: 64(ivec4) ImageSampleImplicitLod 73 74 - Store 66 75 - 80: 77 Load 79 - 81: 43 Load 45 - 83: 82 SampledImage 80 81 - 86: 36(fvec4) ImageSampleImplicitLod 83 85 - Store 76 86 - 91: 88 Load 90 - 92: 43 Load 45 - 94: 93 SampledImage 91 92 - 97: 51(ivec4) ImageSampleImplicitLod 94 96 - Store 87 97 - 102: 99 Load 101 - 103: 43 Load 45 - 105: 104 SampledImage 102 103 - 109: 64(ivec4) ImageSampleImplicitLod 105 108 - Store 98 109 - 114: 111 Load 113 - 115: 43 Load 45 - 117: 116 SampledImage 114 115 - 120: 36(fvec4) ImageSampleImplicitLod 117 119 - Store 110 120 - 125: 122 Load 124 - 126: 43 Load 45 - 128: 127 SampledImage 125 126 - 130: 51(ivec4) ImageSampleImplicitLod 128 129 - Store 121 130 - 135: 132 Load 134 - 136: 43 Load 45 - 138: 137 SampledImage 135 136 - 143: 64(ivec4) ImageSampleImplicitLod 138 142 - Store 131 143 - 148: 145 Load 147 - 149: 43 Load 45 - 151: 150 SampledImage 148 149 - 152: 36(fvec4) ImageSampleImplicitLod 151 119 - Store 144 152 - 157: 154 Load 156 - 158: 43 Load 45 - 160: 159 SampledImage 157 158 - 161: 51(ivec4) ImageSampleImplicitLod 160 129 - Store 153 161 - 166: 163 Load 165 - 167: 43 Load 45 - 169: 168 SampledImage 166 167 - 170: 64(ivec4) ImageSampleImplicitLod 169 142 - Store 162 170 - 176: 37(ptr) AccessChain 173 23 - Store 176 175 - 178: 177(ptr) AccessChain 173 10 - Store 178 174 - 181: 37(ptr) AccessChain 173 23 - 182: 36(fvec4) Load 181 - Store 180 182 - 185: 177(ptr) AccessChain 173 10 - 186: 35(float) Load 185 - Store 184 186 + 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 index c42a037bb3..aff0998cd0 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -1,27 +1,38 @@ remap.hlsl.templatetypes.everything.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 9012 +// 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" 4045 4872 + EntryPoint Fragment 5663 "main" 4872 4045 ExecutionMode 5663 OriginUpperLeft - Decorate 4045 Location 0 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 - 666: TypePointer Input 29(fvec4) - 4872: 666(ptr) Variable Input 5663: 8 Function None 1282 - 9011: Label - Store 4045 2572 + 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 index c3fab1a29a..282fd2a24a 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -1,222 +1,240 @@ remap.hlsl.templatetypes.none.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 149 +// 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" 146 148 + EntryPoint Fragment 4 "main" 153 156 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 9 "r00" - Name 15 "r01" - Name 20 "r12" - Name 24 "r13" - Name 27 "r14" - Name 30 "r15" - Name 34 "r16" - Name 38 "r20" - Name 43 "r21" - Name 48 "r22" - Name 52 "r23" - Name 57 "r24" - Name 62 "r30" - Name 66 "r31" - Name 71 "r32" - Name 75 "r33" - Name 80 "r34" - Name 85 "r40" - Name 89 "r41" - Name 92 "r42" - Name 95 "r43" - Name 100 "r44" - Name 105 "r50" - Name 122 "r51" - Name 125 "r61" - Name 130 "r62" - Name 136 "r65" - Name 141 "r66" - Name 146 "@entryPointOutput" - Name 148 "input" - Decorate 146(@entryPointOutput) Location 0 - Decorate 148(input) Location 0 + 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) - 10: 6(float) Constant 1065353216 - 11: 6(float) Constant 1073741824 - 12: 6(float) Constant 1077936128 - 13: 6(float) Constant 1082130432 - 14: 7(fvec4) ConstantComposite 10 11 12 13 - 16: 6(float) Constant 1084227584 - 17: 7(fvec4) ConstantComposite 11 12 13 16 - 18: TypeBool - 19: TypePointer Function 18(bool) - 21: 18(bool) ConstantFalse - 22: TypeInt 32 1 - 23: TypePointer Function 22(int) - 25: 22(int) Constant 1 - 26: TypePointer Function 6(float) - 28: TypeFloat 64 - 29: TypePointer Function 28(float) - 31: 28(float) Constant 0 1072693248 - 32: TypeInt 32 0 - 33: TypePointer Function 32(int) - 35: 32(int) Constant 1 - 36: TypeVector 18(bool) 2 - 37: TypePointer Function 36(bvec2) - 39: 18(bool) ConstantTrue - 40: 36(bvec2) ConstantComposite 21 39 - 41: TypeVector 22(int) 2 - 42: TypePointer Function 41(ivec2) - 44: 22(int) Constant 2 - 45: 41(ivec2) ConstantComposite 25 44 - 46: TypeVector 6(float) 2 - 47: TypePointer Function 46(fvec2) - 49: 46(fvec2) ConstantComposite 10 11 - 50: TypeVector 28(float) 2 + 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: 28(float) Constant 0 1073741824 - 54: 50(fvec2) ConstantComposite 31 53 - 55: TypeVector 32(int) 2 - 56: TypePointer Function 55(ivec2) - 58: 32(int) Constant 2 - 59: 55(ivec2) ConstantComposite 35 58 - 60: TypeVector 18(bool) 3 - 61: TypePointer Function 60(bvec3) - 63: 60(bvec3) ConstantComposite 21 39 39 - 64: TypeVector 22(int) 3 - 65: TypePointer Function 64(ivec3) - 67: 22(int) Constant 3 - 68: 64(ivec3) ConstantComposite 25 44 67 - 69: TypeVector 6(float) 3 - 70: TypePointer Function 69(fvec3) - 72: 69(fvec3) ConstantComposite 10 11 12 - 73: TypeVector 28(float) 3 + 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: 28(float) Constant 0 1074266112 - 77: 73(fvec3) ConstantComposite 31 53 76 - 78: TypeVector 32(int) 3 - 79: TypePointer Function 78(ivec3) - 81: 32(int) Constant 3 - 82: 78(ivec3) ConstantComposite 35 58 81 - 83: TypeVector 18(bool) 4 - 84: TypePointer Function 83(bvec4) - 86: 83(bvec4) ConstantComposite 21 39 39 21 - 87: TypeVector 22(int) 4 - 88: TypePointer Function 87(ivec4) - 90: 22(int) Constant 4 - 91: 87(ivec4) ConstantComposite 25 44 67 90 - 93: TypeVector 28(float) 4 - 94: TypePointer Function 93(fvec4) - 96: 28(float) Constant 0 1074790400 - 97: 93(fvec4) ConstantComposite 31 53 76 96 - 98: TypeVector 32(int) 4 - 99: TypePointer Function 98(ivec4) - 101: 32(int) Constant 4 - 102: 98(ivec4) ConstantComposite 35 58 81 101 - 103: TypeMatrix 7(fvec4) 4 - 104: TypePointer Function 103 - 106: 6(float) Constant 0 - 107: 7(fvec4) ConstantComposite 106 10 11 12 - 108: 6(float) Constant 1086324736 - 109: 6(float) Constant 1088421888 - 110: 7(fvec4) ConstantComposite 13 16 108 109 - 111: 6(float) Constant 1090519040 - 112: 6(float) Constant 1091567616 - 113: 6(float) Constant 1092616192 - 114: 6(float) Constant 1093664768 - 115: 7(fvec4) ConstantComposite 111 112 113 114 - 116: 6(float) Constant 1094713344 - 117: 6(float) Constant 1095761920 - 118: 6(float) Constant 1096810496 - 119: 6(float) Constant 1097859072 - 120: 7(fvec4) ConstantComposite 116 117 118 119 - 121: 103 ConstantComposite 107 110 115 120 - 123: TypeMatrix 69(fvec3) 2 - 124: TypePointer Function 123 - 126: 69(fvec3) ConstantComposite 13 16 108 - 127: 123 ConstantComposite 72 126 - 128: TypeMatrix 46(fvec2) 3 - 129: TypePointer Function 128 - 131: 46(fvec2) ConstantComposite 12 13 - 132: 46(fvec2) ConstantComposite 16 108 - 133: 128 ConstantComposite 49 131 132 - 134: TypeMatrix 46(fvec2) 4 - 135: TypePointer Function 134 - 137: 46(fvec2) ConstantComposite 109 111 - 138: 134 ConstantComposite 49 131 132 137 - 139: TypeMatrix 69(fvec3) 4 - 140: TypePointer Function 139 - 142: 69(fvec3) ConstantComposite 109 111 112 - 143: 69(fvec3) ConstantComposite 113 114 116 - 144: 139 ConstantComposite 72 126 142 143 - 145: TypePointer Output 6(float) -146(@entryPointOutput): 145(ptr) Variable Output - 147: TypePointer Input 7(fvec4) - 148(input): 147(ptr) Variable Input + 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 - 9(r00): 8(ptr) Variable Function - 15(r01): 8(ptr) Variable Function - 20(r12): 19(ptr) Variable Function - 24(r13): 23(ptr) Variable Function - 27(r14): 26(ptr) Variable Function - 30(r15): 29(ptr) Variable Function - 34(r16): 33(ptr) Variable Function - 38(r20): 37(ptr) Variable Function - 43(r21): 42(ptr) Variable Function - 48(r22): 47(ptr) Variable Function - 52(r23): 51(ptr) Variable Function - 57(r24): 56(ptr) Variable Function - 62(r30): 61(ptr) Variable Function - 66(r31): 65(ptr) Variable Function - 71(r32): 70(ptr) Variable Function - 75(r33): 74(ptr) Variable Function - 80(r34): 79(ptr) Variable Function - 85(r40): 84(ptr) Variable Function - 89(r41): 88(ptr) Variable Function - 92(r42): 8(ptr) Variable Function - 95(r43): 94(ptr) Variable Function - 100(r44): 99(ptr) Variable Function - 105(r50): 104(ptr) Variable Function - 122(r51): 104(ptr) Variable Function - 125(r61): 124(ptr) Variable Function - 130(r62): 129(ptr) Variable Function - 136(r65): 135(ptr) Variable Function - 141(r66): 140(ptr) Variable Function - Store 9(r00) 14 - Store 15(r01) 17 - Store 20(r12) 21 - Store 24(r13) 25 - Store 27(r14) 10 - Store 30(r15) 31 - Store 34(r16) 35 - Store 38(r20) 40 - Store 43(r21) 45 - Store 48(r22) 49 - Store 52(r23) 54 - Store 57(r24) 59 - Store 62(r30) 63 - Store 66(r31) 68 - Store 71(r32) 72 - Store 75(r33) 77 - Store 80(r34) 82 - Store 85(r40) 86 - Store 89(r41) 91 - Store 92(r42) 14 - Store 95(r43) 97 - Store 100(r44) 102 - Store 105(r50) 121 - Store 122(r51) 121 - Store 125(r61) 127 - Store 130(r62) 133 - Store 136(r65) 138 - Store 141(r66) 144 - Store 146(@entryPointOutput) 106 + 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 index d20564c5dd..cdb007b317 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.if.everything.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.if.everything.frag.out @@ -1,8 +1,6 @@ remap.if.everything.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 +// Generated by (magic number): 80007 // Id's are bound by 22855 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/remap.if.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.if.none.frag.out index 081d5cdd69..0c8d27836d 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.if.none.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.if.none.frag.out @@ -1,8 +1,6 @@ remap.if.none.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 +// Generated by (magic number): 80007 // Id's are bound by 25 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/remap.invalid-spirv-1.out b/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-1.out similarity index 100% rename from deps/glslang-new/Test/baseResults/remap.invalid-spirv-1.out rename to deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-1.out diff --git a/deps/glslang-new/Test/baseResults/remap.invalid-spirv-2.out b/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-2.out similarity index 100% rename from deps/glslang-new/Test/baseResults/remap.invalid-spirv-2.out rename to deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-2.out diff --git a/deps/glslang/glslang/Test/baseResults/remap.literal64.none.spv.out b/deps/glslang/glslang/Test/baseResults/remap.literal64.none.spv.out index 792b13a612..d88992fc11 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.literal64.none.spv.out +++ b/deps/glslang/glslang/Test/baseResults/remap.literal64.none.spv.out @@ -8,7 +8,7 @@ remap.literal64.none.spv 1: TypeVoid 2: TypeInt 64 1 3: TypeFunction 1 - 4: 2(int) Constant 0 0 + 4: 2(int64_t) Constant 0 0 5: 1 Function None 3 6: Label SelectionMerge 7 None 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 index 384b8e8619..2f8f1c737d 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.similar_1a.everything.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1a.everything.frag.out @@ -1,8 +1,6 @@ remap.similar_1a.everything.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 +// Generated by (magic number): 80007 // Id's are bound by 24916 Capability Shader 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 index ad1273aec3..80d35c3fa1 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.similar_1a.none.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1a.none.frag.out @@ -1,14 +1,12 @@ remap.similar_1a.none.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 82 +// 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" 50 69 71 + EntryPoint Fragment 4 "main" 53 73 75 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -18,13 +16,13 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 13 "bound" Name 17 "r" Name 19 "x" - Name 42 "param" - Name 50 "ini4" - Name 69 "outf4" - Name 71 "inf" - Name 74 "param" + Name 44 "param" + Name 53 "ini4" + Name 73 "outf4" + Name 75 "inf" Name 78 "param" - Decorate 50(ini4) Flat + Name 82 "param" + Decorate 53(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -37,35 +35,35 @@ Warning, version 450 is not yet complete; most version-specific features are pre 28: TypeBool 30: 8(float) Constant 1056964608 34: 6(int) Constant 1 - 38: 6(int) Constant 2 - 48: TypeVector 6(int) 4 - 49: TypePointer Input 48(ivec4) - 50(ini4): 49(ptr) Variable Input - 51: TypeInt 32 0 - 52: 51(int) Constant 1 - 53: TypePointer Input 6(int) - 56: 51(int) Constant 2 - 61: 51(int) Constant 0 - 67: TypeVector 8(float) 4 - 68: TypePointer Output 67(fvec4) - 69(outf4): 68(ptr) Variable Output - 70: TypePointer Input 8(float) - 71(inf): 70(ptr) Variable Input + 40: 6(int) Constant 2 + 51: TypeVector 6(int) 4 + 52: TypePointer Input 51(ivec4) + 53(ini4): 52(ptr) Variable Input + 54: TypeInt 32 0 + 55: 54(int) Constant 1 + 56: TypePointer Input 6(int) + 59: 54(int) Constant 2 + 64: 54(int) Constant 0 + 71: TypeVector 8(float) 4 + 72: TypePointer Output 71(fvec4) + 73(outf4): 72(ptr) Variable Output + 74: TypePointer Input 8(float) + 75(inf): 74(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 74(param): 7(ptr) Variable Function 78(param): 7(ptr) Variable Function - 72: 8(float) Load 71(inf) - 73: 6(int) ConvertFToS 72 - Store 74(param) 73 - 75: 8(float) FunctionCall 11(Test1(i1;) 74(param) - 76: 8(float) Load 71(inf) + 82(param): 7(ptr) Variable Function + 76: 8(float) Load 75(inf) 77: 6(int) ConvertFToS 76 Store 78(param) 77 - 79: 8(float) FunctionCall 14(Test2(i1;) 78(param) - 80: 8(float) FAdd 75 79 - 81: 67(fvec4) CompositeConstruct 80 80 80 80 - Store 69(outf4) 81 + 79: 8(float) FunctionCall 11(Test1(i1;) 78(param) + 80: 8(float) Load 75(inf) + 81: 6(int) ConvertFToS 80 + Store 82(param) 81 + 83: 8(float) FunctionCall 14(Test2(i1;) 82(param) + 84: 8(float) FAdd 79 83 + 85: 71(fvec4) CompositeConstruct 84 84 84 84 + Store 73(outf4) 85 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 @@ -101,31 +99,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre 14(Test2(i1;): 8(float) Function None 9 13(bound): 7(ptr) FunctionParameter 15: Label - 42(param): 7(ptr) Variable Function - 37: 6(int) Load 13(bound) - 39: 28(bool) SGreaterThan 37 38 - SelectionMerge 41 None - BranchConditional 39 40 45 - 40: Label - 43: 6(int) Load 13(bound) - Store 42(param) 43 - 44: 8(float) FunctionCall 11(Test1(i1;) 42(param) - ReturnValue 44 - 45: Label - 46: 6(int) Load 13(bound) - 47: 6(int) IMul 46 38 - 54: 53(ptr) AccessChain 50(ini4) 52 - 55: 6(int) Load 54 - 57: 53(ptr) AccessChain 50(ini4) 56 + 44(param): 7(ptr) Variable Function + 39: 6(int) Load 13(bound) + 41: 28(bool) SGreaterThan 39 40 + SelectionMerge 43 None + BranchConditional 41 42 48 + 42: Label + 45: 6(int) Load 13(bound) + Store 44(param) 45 + 46: 8(float) FunctionCall 11(Test1(i1;) 44(param) + ReturnValue 46 + 48: Label + 49: 6(int) Load 13(bound) + 50: 6(int) IMul 49 40 + 57: 56(ptr) AccessChain 53(ini4) 55 58: 6(int) Load 57 - 59: 6(int) IMul 55 58 - 60: 6(int) IAdd 47 59 - 62: 53(ptr) AccessChain 50(ini4) 61 - 63: 6(int) Load 62 - 64: 6(int) IAdd 60 63 - 65: 8(float) ConvertSToF 64 - ReturnValue 65 - 41: Label - 66: 8(float) Undef - ReturnValue 66 + 60: 56(ptr) AccessChain 53(ini4) 59 + 61: 6(int) Load 60 + 62: 6(int) IMul 58 61 + 63: 6(int) IAdd 50 62 + 65: 56(ptr) AccessChain 53(ini4) 64 + 66: 6(int) Load 65 + 67: 6(int) IAdd 63 66 + 68: 8(float) ConvertSToF 67 + ReturnValue 68 + 43: Label + 70: 8(float) Undef + ReturnValue 70 FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.similar_1b.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.similar_1b.everything.frag.out index 0ce4544c96..c76c4bfa06 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.similar_1b.everything.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1b.everything.frag.out @@ -1,8 +1,6 @@ remap.similar_1b.everything.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 +// Generated by (magic number): 80007 // Id's are bound by 24916 Capability Shader 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 index b86fd4b61b..0a854d6ea2 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.similar_1b.none.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1b.none.frag.out @@ -1,14 +1,12 @@ remap.similar_1b.none.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 87 +// 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" 55 74 76 + EntryPoint Fragment 4 "main" 58 78 80 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -18,13 +16,13 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 13 "bound" Name 17 "r" Name 19 "x" - Name 47 "param" - Name 55 "ini4" - Name 74 "outf4" - Name 76 "inf" - Name 79 "param" + Name 49 "param" + Name 58 "ini4" + Name 78 "outf4" + Name 80 "inf" Name 83 "param" - Decorate 55(ini4) Flat + Name 87 "param" + Decorate 58(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -38,36 +36,36 @@ Warning, version 450 is not yet complete; most version-specific features are pre 30: 8(float) Constant 1056964608 34: 6(int) Constant 1 36: 8(float) Constant 1045220557 - 41: 6(int) Constant 2 - 51: 6(int) Constant 4 - 53: TypeVector 6(int) 4 - 54: TypePointer Input 53(ivec4) - 55(ini4): 54(ptr) Variable Input - 56: TypeInt 32 0 - 57: 56(int) Constant 1 - 58: TypePointer Input 6(int) - 61: 56(int) Constant 2 - 66: 56(int) Constant 0 - 72: TypeVector 8(float) 4 - 73: TypePointer Output 72(fvec4) - 74(outf4): 73(ptr) Variable Output - 75: TypePointer Input 8(float) - 76(inf): 75(ptr) Variable Input + 43: 6(int) Constant 2 + 54: 6(int) Constant 4 + 56: TypeVector 6(int) 4 + 57: TypePointer Input 56(ivec4) + 58(ini4): 57(ptr) Variable Input + 59: TypeInt 32 0 + 60: 59(int) Constant 1 + 61: TypePointer Input 6(int) + 64: 59(int) Constant 2 + 69: 59(int) Constant 0 + 76: TypeVector 8(float) 4 + 77: TypePointer Output 76(fvec4) + 78(outf4): 77(ptr) Variable Output + 79: TypePointer Input 8(float) + 80(inf): 79(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 79(param): 7(ptr) Variable Function 83(param): 7(ptr) Variable Function - 77: 8(float) Load 76(inf) - 78: 6(int) ConvertFToS 77 - Store 79(param) 78 - 80: 8(float) FunctionCall 11(Test1(i1;) 79(param) - 81: 8(float) Load 76(inf) + 87(param): 7(ptr) Variable Function + 81: 8(float) Load 80(inf) 82: 6(int) ConvertFToS 81 Store 83(param) 82 - 84: 8(float) FunctionCall 14(Test2(i1;) 83(param) - 85: 8(float) FAdd 80 84 - 86: 72(fvec4) CompositeConstruct 85 85 85 85 - Store 74(outf4) 86 + 84: 8(float) FunctionCall 11(Test1(i1;) 83(param) + 85: 8(float) Load 80(inf) + 86: 6(int) ConvertFToS 85 + Store 87(param) 86 + 88: 8(float) FunctionCall 14(Test2(i1;) 87(param) + 89: 8(float) FAdd 84 88 + 90: 76(fvec4) CompositeConstruct 89 89 89 89 + Store 78(outf4) 90 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 @@ -106,32 +104,32 @@ Warning, version 450 is not yet complete; most version-specific features are pre 14(Test2(i1;): 8(float) Function None 9 13(bound): 7(ptr) FunctionParameter 15: Label - 47(param): 7(ptr) Variable Function - 40: 6(int) Load 13(bound) - 42: 28(bool) SGreaterThan 40 41 - SelectionMerge 44 None - BranchConditional 42 43 49 - 43: Label - 45: 6(int) Load 13(bound) - 46: 6(int) IMul 45 41 - Store 47(param) 46 - 48: 8(float) FunctionCall 11(Test1(i1;) 47(param) - ReturnValue 48 - 49: Label - 50: 6(int) Load 13(bound) - 52: 6(int) IMul 50 51 - 59: 58(ptr) AccessChain 55(ini4) 57 - 60: 6(int) Load 59 - 62: 58(ptr) AccessChain 55(ini4) 61 + 49(param): 7(ptr) Variable Function + 42: 6(int) Load 13(bound) + 44: 28(bool) SGreaterThan 42 43 + SelectionMerge 46 None + BranchConditional 44 45 52 + 45: Label + 47: 6(int) Load 13(bound) + 48: 6(int) IMul 47 43 + Store 49(param) 48 + 50: 8(float) FunctionCall 11(Test1(i1;) 49(param) + ReturnValue 50 + 52: Label + 53: 6(int) Load 13(bound) + 55: 6(int) IMul 53 54 + 62: 61(ptr) AccessChain 58(ini4) 60 63: 6(int) Load 62 - 64: 6(int) IMul 60 63 - 65: 6(int) IAdd 52 64 - 67: 58(ptr) AccessChain 55(ini4) 66 - 68: 6(int) Load 67 - 69: 6(int) IAdd 65 68 - 70: 8(float) ConvertSToF 69 - ReturnValue 70 - 44: Label - 71: 8(float) Undef - ReturnValue 71 + 65: 61(ptr) AccessChain 58(ini4) 64 + 66: 6(int) Load 65 + 67: 6(int) IMul 63 66 + 68: 6(int) IAdd 55 67 + 70: 61(ptr) AccessChain 58(ini4) 69 + 71: 6(int) Load 70 + 72: 6(int) IAdd 68 71 + 73: 8(float) ConvertSToF 72 + ReturnValue 73 + 46: Label + 75: 8(float) Undef + ReturnValue 75 FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/remap.specconst.comp.out b/deps/glslang/glslang/Test/baseResults/remap.specconst.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/remap.specconst.comp.out rename to deps/glslang/glslang/Test/baseResults/remap.specconst.comp.out diff --git a/deps/glslang/glslang/Test/baseResults/remap.switch.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.switch.everything.frag.out index e5a7ef7597..ffd64d4f6a 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.switch.everything.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.switch.everything.frag.out @@ -1,10 +1,9 @@ remap.switch.everything.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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): 80001 +// Generated by (magic number): 80007 // Id's are bound by 23990 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/remap.switch.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.switch.none.frag.out index 5d373ccf9c..4dd78977a4 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.switch.none.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.switch.none.frag.out @@ -1,11 +1,10 @@ remap.switch.none.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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): 80001 -// Id's are bound by 44 +// Generated by (magic number): 80007 +// Id's are bound by 48 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -20,8 +19,8 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to Decorate 23(FragColor) RelaxedPrecision Decorate 23(FragColor) Location 0 Decorate 29 RelaxedPrecision - Decorate 35 RelaxedPrecision - Decorate 41 RelaxedPrecision + Decorate 36 RelaxedPrecision + Decorate 43 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -36,12 +35,12 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to 23(FragColor): 22(ptr) Variable Output 24: 10(int) Constant 0 27: 6(float) Constant 0 - 30: 10(int) Constant 1 - 33: 6(float) Constant 1065353216 - 36: 10(int) Constant 2 - 39: 6(float) Constant 1073741824 - 42: 6(float) Constant 3212836864 - 43: 7(fvec4) ConstantComposite 42 42 42 42 + 31: 10(int) Constant 1 + 34: 6(float) Constant 1065353216 + 38: 10(int) Constant 2 + 41: 6(float) Constant 1073741824 + 45: 6(float) Constant 3212836864 + 46: 7(fvec4) ConstantComposite 45 45 45 45 4(main): 2 Function None 3 5: Label 13: 12(ptr) AccessChain 9(in0) 11 @@ -53,7 +52,7 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to case 1: 18 case 2: 19 20: Label - Store 23(FragColor) 43 + Store 23(FragColor) 46 Branch 21 17: Label 25: 12(ptr) AccessChain 9(in0) 24 @@ -63,18 +62,18 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to Store 23(FragColor) 29 Branch 21 18: Label - 31: 12(ptr) AccessChain 9(in0) 30 - 32: 6(float) Load 31 - 34: 6(float) FAdd 32 33 - 35: 7(fvec4) CompositeConstruct 34 34 34 34 - Store 23(FragColor) 35 + 32: 12(ptr) AccessChain 9(in0) 31 + 33: 6(float) Load 32 + 35: 6(float) FAdd 33 34 + 36: 7(fvec4) CompositeConstruct 35 35 35 35 + Store 23(FragColor) 36 Branch 21 19: Label - 37: 12(ptr) AccessChain 9(in0) 36 - 38: 6(float) Load 37 - 40: 6(float) FAdd 38 39 - 41: 7(fvec4) CompositeConstruct 40 40 40 40 - Store 23(FragColor) 41 + 39: 12(ptr) AccessChain 9(in0) 38 + 40: 6(float) Load 39 + 42: 6(float) FAdd 40 41 + 43: 7(fvec4) CompositeConstruct 42 42 42 42 + Store 23(FragColor) 43 Branch 21 21: Label Return diff --git a/deps/glslang/glslang/Test/baseResults/remap.uniformarray.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.everything.frag.out index ed906d535a..c1f306e109 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.uniformarray.everything.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.everything.frag.out @@ -1,6 +1,6 @@ remap.uniformarray.everything.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 25030 Capability Shader @@ -8,6 +8,7 @@ remap.uniformarray.everything.frag 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 diff --git a/deps/glslang/glslang/Test/baseResults/remap.uniformarray.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.none.frag.out index 526b9e4969..6ed2d45e09 100644 --- a/deps/glslang/glslang/Test/baseResults/remap.uniformarray.none.frag.out +++ b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.none.frag.out @@ -1,6 +1,6 @@ remap.uniformarray.none.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 53 Capability Shader @@ -16,6 +16,7 @@ remap.uniformarray.none.frag 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 diff --git a/deps/glslang-new/Test/baseResults/runtimeArray.vert.out b/deps/glslang/glslang/Test/baseResults/runtimeArray.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/runtimeArray.vert.out rename to deps/glslang/glslang/Test/baseResults/runtimeArray.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/sample.frag.out b/deps/glslang/glslang/Test/baseResults/sample.frag.out index 7ad929554c..780789a74a 100644 --- a/deps/glslang/glslang/Test/baseResults/sample.frag.out +++ b/deps/glslang/glslang/Test/baseResults/sample.frag.out @@ -1,17 +1,17 @@ sample.frag Shader version: 110 0:? Sequence -0:38 Function Definition: main( (global void) +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 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) +0:? 'color' ( smooth in 3-component vector of float) Linked fragment stage: @@ -19,15 +19,15 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:38 Function Definition: main( (global void) +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 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) +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 index e67db5748f..848598eb70 100644 --- a/deps/glslang/glslang/Test/baseResults/sample.vert.out +++ b/deps/glslang/glslang/Test/baseResults/sample.vert.out @@ -1,22 +1,22 @@ sample.vert Shader version: 110 0:? Sequence -0:38 Function Definition: main( (global void) +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 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: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) +0:? 'color' ( smooth out 3-component vector of float) Linked vertex stage: @@ -24,20 +24,20 @@ Linked vertex stage: Shader version: 110 0:? Sequence -0:38 Function Definition: main( (global void) +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 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: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) +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 index 2cc42a3be1..5ccd54d2a5 100644 --- a/deps/glslang/glslang/Test/baseResults/simpleFunctionCall.frag.out +++ b/deps/glslang/glslang/Test/baseResults/simpleFunctionCall.frag.out @@ -3,21 +3,21 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas Shader version: 150 0:? Sequence -0:7 Function Definition: foo( (global 4-component vector of float) +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: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: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) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) Linked fragment stage: @@ -25,19 +25,19 @@ Linked fragment stage: Shader version: 150 0:? Sequence -0:7 Function Definition: foo( (global 4-component vector of float) +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: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: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) +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 index a66144a7c5..5eec3cbf44 100644 --- a/deps/glslang/glslang/Test/baseResults/specExamples.frag.out +++ b/deps/glslang/glslang/Test/baseResults/specExamples.frag.out @@ -1,6 +1,5 @@ specExamples.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. -ERROR: 0:6: '=' : cannot convert from 'const uint' to 'global int' +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 @@ -22,15 +21,15 @@ 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 field selection out of range -ERROR: 0:175: 'length' : does not operate on this type: const float +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 field selection out of range -ERROR: 0:178: 'length' : does not operate on this type: const float +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 @@ -49,73 +48,73 @@ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Definition: foo(f1[5]; ( global 5-element array of float) 0:127 Function Parameters: -0:127 '' (in 5-element array of float) +0:127 '' ( in 5-element array of float) 0:129 Sequence 0:129 Branch: Return with expression 0:129 Constant: @@ -124,13 +123,13 @@ ERROR: node is still EOpNull! 0:129 5.000000 0:129 5.200000 0:129 1.100000 -0:137 Function Definition: main( (global void) +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 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 @@ -139,8 +138,8 @@ ERROR: node is still EOpNull! 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 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 @@ -149,8 +148,8 @@ ERROR: node is still EOpNull! 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 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 @@ -161,15 +160,15 @@ ERROR: node is still EOpNull! 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: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 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 @@ -198,18 +197,18 @@ ERROR: node is still EOpNull! 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: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: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 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 @@ -228,15 +227,15 @@ ERROR: node is still EOpNull! 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 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 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 @@ -244,8 +243,8 @@ ERROR: node is still EOpNull! 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 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 @@ -253,75 +252,75 @@ ERROR: node is still EOpNull! 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: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: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: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:? '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:? '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 implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) +0:? 'anon@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: @@ -335,77 +334,77 @@ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 @@ -414,8 +413,8 @@ ERROR: node is still EOpNull! 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 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 @@ -424,8 +423,8 @@ ERROR: node is still EOpNull! 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 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 @@ -436,15 +435,15 @@ ERROR: node is still EOpNull! 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: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 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 @@ -473,18 +472,18 @@ ERROR: node is still EOpNull! 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: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: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 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 @@ -503,15 +502,15 @@ ERROR: node is still EOpNull! 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 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 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 @@ -519,8 +518,8 @@ ERROR: node is still EOpNull! 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 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 @@ -528,73 +527,73 @@ ERROR: node is still EOpNull! 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: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: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: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:? '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:? '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}) +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 index d7de758c18..5c8ca391b5 100644 --- a/deps/glslang/glslang/Test/baseResults/specExamples.vert.out +++ b/deps/glslang/glslang/Test/baseResults/specExamples.vert.out @@ -1,5 +1,4 @@ specExamples.vert -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -20,7 +19,6 @@ ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCount 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 @@ -33,85 +31,85 @@ 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. +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 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: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: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: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: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: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: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: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: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: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: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: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) @@ -119,108 +117,108 @@ ERROR: node is still EOpNull! 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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 @@ -228,32 +226,32 @@ ERROR: node is still EOpNull! 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 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 '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: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 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 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 @@ -263,57 +261,57 @@ ERROR: node is still EOpNull! 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: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 implicitly-sized 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) -0:? 'ColorInv' (smooth out 3-component vector of float) -0:? 'Color4' (invariant centroid smooth out 3-component vector of float) -0:? 'position' (noContraction smooth out 4-component vector of float) -0:? 'Color5' (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) +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: @@ -322,79 +320,79 @@ 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 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: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: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: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: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: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: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: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: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: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: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: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) @@ -402,108 +400,108 @@ ERROR: node is still EOpNull! 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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 @@ -511,32 +509,32 @@ ERROR: node is still EOpNull! 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 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 '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: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 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 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 @@ -546,55 +544,55 @@ ERROR: node is still EOpNull! 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: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) +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-new/Test/baseResults/specExamplesConf.vert.out b/deps/glslang/glslang/Test/baseResults/specExamplesConf.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/specExamplesConf.vert.out rename to deps/glslang/glslang/Test/baseResults/specExamplesConf.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.100ops.frag.out b/deps/glslang/glslang/Test/baseResults/spv.100ops.frag.out index efd82012b0..8f656ebb5c 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.100ops.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.100ops.frag.out @@ -1,8 +1,6 @@ spv.100ops.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 49 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.130.frag.out b/deps/glslang/glslang/Test/baseResults/spv.130.frag.out index 19c6db0df2..d1a626d8dc 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.130.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.130.frag.out @@ -2,7 +2,7 @@ spv.130.frag WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 205 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.140.frag.out b/deps/glslang/glslang/Test/baseResults/spv.140.frag.out index f8e75ebdac..89bf4899b1 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.140.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.140.frag.out @@ -1,7 +1,7 @@ spv.140.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 101 +// Generated by (magic number): 80007 +// Id's are bound by 96 Capability Shader Capability ClipDistance @@ -10,168 +10,157 @@ spv.140.frag Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 16 28 33 43 + EntryPoint Fragment 4 "main" 14 23 28 38 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 8 "foo(" Name 11 "i1" - Name 16 "gl_FrontFacing" - Name 24 "i2" - Name 28 "o" - Name 33 "gl_ClipDistance" - Name 43 "k" - Name 55 "sampR" - Name 63 "sampB" - Name 87 "samp2Da" - Name 92 "bn" - MemberName 92(bn) 0 "matra" - MemberName 92(bn) 1 "matca" - MemberName 92(bn) 2 "matr" - MemberName 92(bn) 3 "matc" - MemberName 92(bn) 4 "matrdef" - Name 94 "" - Name 97 "bi" - MemberName 97(bi) 0 "v" - Name 100 "bname" - Decorate 16(gl_FrontFacing) BuiltIn FrontFacing - Decorate 33(gl_ClipDistance) BuiltIn ClipDistance - Decorate 55(sampR) DescriptorSet 0 - Decorate 63(sampB) DescriptorSet 0 - Decorate 87(samp2Da) DescriptorSet 0 - Decorate 90 ArrayStride 64 - Decorate 91 ArrayStride 64 - MemberDecorate 92(bn) 0 RowMajor - MemberDecorate 92(bn) 0 Offset 0 - MemberDecorate 92(bn) 0 MatrixStride 16 - MemberDecorate 92(bn) 1 ColMajor - MemberDecorate 92(bn) 1 Offset 256 - MemberDecorate 92(bn) 1 MatrixStride 16 - MemberDecorate 92(bn) 2 RowMajor - MemberDecorate 92(bn) 2 Offset 512 - MemberDecorate 92(bn) 2 MatrixStride 16 - MemberDecorate 92(bn) 3 ColMajor - MemberDecorate 92(bn) 3 Offset 576 - MemberDecorate 92(bn) 3 MatrixStride 16 - MemberDecorate 92(bn) 4 RowMajor - MemberDecorate 92(bn) 4 Offset 640 - MemberDecorate 92(bn) 4 MatrixStride 16 - Decorate 92(bn) Block - Decorate 94 DescriptorSet 0 - Decorate 96 ArrayStride 16 - MemberDecorate 97(bi) 0 Offset 0 - Decorate 97(bi) Block - Decorate 100(bname) DescriptorSet 0 + 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: TypePointer Function 6(float) - 14: TypeBool - 15: TypePointer Input 14(bool) -16(gl_FrontFacing): 15(ptr) Variable Input - 20: 6(float) Constant 3221225472 - 22: 6(float) Constant 1073741824 - 24(i2): 10(ptr) Variable Private - 25: 6(float) Constant 1120665600 - 26: TypeVector 6(float) 4 - 27: TypePointer Output 26(fvec4) - 28(o): 27(ptr) Variable Output - 29: TypeInt 32 0 - 30: 29(int) Constant 5 - 31: TypeArray 6(float) 30 - 32: TypePointer Input 31 -33(gl_ClipDistance): 32(ptr) Variable Input - 34: TypeInt 32 1 - 35: 34(int) Constant 2 - 36: TypePointer Input 6(float) - 39: 29(int) Constant 1 - 40: TypePointer Output 6(float) - 42: TypePointer Input 26(fvec4) - 43(k): 42(ptr) Variable Input - 45: TypeVector 34(int) 4 - 50: 29(int) Constant 2 - 52: TypeImage 6(float) Rect sampled format:Unknown - 53: TypeSampledImage 52 - 54: TypePointer UniformConstant 53 - 55(sampR): 54(ptr) Variable UniformConstant - 58: TypeVector 34(int) 2 - 60: TypeImage 34(int) Buffer sampled format:Unknown - 61: TypeSampledImage 60 - 62: TypePointer UniformConstant 61 - 63(sampB): 62(ptr) Variable UniformConstant - 69: TypeVector 6(float) 2 - 72: 6(float) Constant 1120403456 - 74: 29(int) Constant 3 - 83: TypeImage 6(float) 2D sampled format:Unknown - 84: TypeSampledImage 83 - 85: TypeArray 84 74 - 86: TypePointer UniformConstant 85 - 87(samp2Da): 86(ptr) Variable UniformConstant - 88: TypeMatrix 26(fvec4) 4 - 89: 29(int) Constant 4 - 90: TypeArray 88 89 - 91: TypeArray 88 89 - 92(bn): TypeStruct 90 91 88 88 88 - 93: TypePointer Uniform 92(bn) - 94: 93(ptr) Variable Uniform - 95: TypeVector 6(float) 3 - 96: TypeArray 95(fvec3) 50 - 97(bi): TypeStruct 96 - 98: TypeArray 97(bi) 89 - 99: TypePointer Uniform 98 - 100(bname): 99(ptr) Variable Uniform + 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 - 13: 12(ptr) Variable Function - 17: 14(bool) Load 16(gl_FrontFacing) - SelectionMerge 19 None - BranchConditional 17 18 21 - 18: Label - Store 13 20 - Branch 19 - 21: Label - Store 13 22 - Branch 19 - 19: Label - 23: 6(float) Load 13 - Store 11(i1) 23 - Store 24(i2) 25 - 37: 36(ptr) AccessChain 33(gl_ClipDistance) 35 - 38: 6(float) Load 37 - 41: 40(ptr) AccessChain 28(o) 39 - Store 41 38 - 44: 26(fvec4) Load 43(k) - 46: 45(ivec4) ConvertFToS 44 - 47: 34(int) CompositeExtract 46 0 - 48: 36(ptr) AccessChain 33(gl_ClipDistance) 47 - 49: 6(float) Load 48 - 51: 40(ptr) AccessChain 28(o) 50 - Store 51 49 - 56: 53 Load 55(sampR) - 57: 52 Image 56 - 59: 58(ivec2) ImageQuerySize 57 - 64: 61 Load 63(sampB) - 65: 60 Image 64 - 66: 34(int) ImageQuerySize 65 - 67: 58(ivec2) CompositeConstruct 66 66 - 68: 58(ivec2) IAdd 59 67 - 70: 69(fvec2) ConvertSToF 68 - 71: 6(float) CompositeExtract 70 0 - 73: 6(float) FDiv 71 72 - 75: 40(ptr) AccessChain 28(o) 74 - Store 75 73 - 76: 6(float) FunctionCall 8(foo() - 77: 40(ptr) AccessChain 28(o) 50 - Store 77 76 + 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 - 78: 6(float) Load 11(i1) - 79: 6(float) Load 24(i2) - 80: 6(float) FAdd 78 79 - ReturnValue 80 + 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 index 1c98c70e72..f759793839 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.150.geom.out +++ b/deps/glslang/glslang/Test/baseResults/spv.150.geom.out @@ -1,6 +1,6 @@ spv.150.geom // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 71 Capability Geometry diff --git a/deps/glslang/glslang/Test/baseResults/spv.150.vert.out b/deps/glslang/glslang/Test/baseResults/spv.150.vert.out index 2843139721..282f5f9c0f 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.150.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.150.vert.out @@ -1,6 +1,6 @@ spv.150.vert // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 63 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.300BuiltIns.vert.out b/deps/glslang/glslang/Test/baseResults/spv.300BuiltIns.vert.out index 7dc949dcaf..ee2c236e78 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.300BuiltIns.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.300BuiltIns.vert.out @@ -1,8 +1,6 @@ spv.300BuiltIns.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 42 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.300layout.frag.out b/deps/glslang/glslang/Test/baseResults/spv.300layout.frag.out index 7ce08d8689..10a6d00eb1 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.300layout.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.300layout.frag.out @@ -1,8 +1,6 @@ spv.300layout.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 37 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.300layout.vert.out b/deps/glslang/glslang/Test/baseResults/spv.300layout.vert.out index 20eb8e7d57..0c0663e817 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.300layout.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.300layout.vert.out @@ -1,8 +1,6 @@ spv.300layout.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 163 Capability Shader @@ -61,7 +59,7 @@ Warning, version 310 is not yet complete; most version-specific features are pre MemberDecorate 45(T3) 2 ColMajor MemberDecorate 45(T3) 2 Offset 128 MemberDecorate 45(T3) 2 MatrixStride 16 - MemberDecorate 45(T3) 3 Offset 160 + MemberDecorate 45(T3) 3 Offset 2048 Decorate 45(T3) Block Decorate 47 DescriptorSet 0 MemberDecorate 78(T2) 0 Offset 0 diff --git a/deps/glslang/glslang/Test/baseResults/spv.300layoutp.vert.out b/deps/glslang/glslang/Test/baseResults/spv.300layoutp.vert.out index 5924137cdc..9c4201de50 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.300layoutp.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.300layoutp.vert.out @@ -1,8 +1,6 @@ spv.300layoutp.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 115 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.310.bitcast.frag.out b/deps/glslang/glslang/Test/baseResults/spv.310.bitcast.frag.out index 14e184a47d..d7a244f862 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.310.bitcast.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.310.bitcast.frag.out @@ -1,8 +1,6 @@ spv.310.bitcast.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 153 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.310.comp.out b/deps/glslang/glslang/Test/baseResults/spv.310.comp.out index 095bf39fc9..fd1309dbdc 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.310.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.310.comp.out @@ -1,124 +1,133 @@ spv.310.comp -Warning, version 310 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 67 +// 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 + EntryPoint GLCompute 4 "main" 53 64 ExecutionMode 4 LocalSize 16 32 4 Source ESSL 310 + SourceExtension "GL_EXT_device_group" Name 4 "main" - Name 13 "outb" - MemberName 13(outb) 0 "f" - MemberName 13(outb) 1 "g" - MemberName 13(outb) 2 "h" - MemberName 13(outb) 3 "uns" - Name 15 "outbname" - Name 19 "s" - Name 24 "outbna" - MemberName 24(outbna) 0 "k" - MemberName 24(outbna) 1 "na" - Name 26 "outbnamena" + Name 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" - Decorate 12 ArrayStride 16 - MemberDecorate 13(outb) 0 Offset 0 - MemberDecorate 13(outb) 1 Offset 4 - MemberDecorate 13(outb) 2 Offset 8 - MemberDecorate 13(outb) 3 Offset 16 - Decorate 13(outb) BufferBlock - Decorate 15(outbname) DescriptorSet 0 - MemberDecorate 24(outbna) 0 Offset 0 - MemberDecorate 24(outbna) 1 Offset 16 - Decorate 24(outbna) BufferBlock - Decorate 26(outbnamena) DescriptorSet 0 + 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 66 BuiltIn WorkgroupSize + 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 1 - 9: 6(int) Constant 0 - 10: TypeFloat 32 - 11: TypeVector 10(float) 3 - 12: TypeRuntimeArray 11(fvec3) - 13(outb): TypeStruct 10(float) 10(float) 10(float) 12 - 14: TypePointer Uniform 13(outb) - 15(outbname): 14(ptr) Variable Uniform - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: TypePointer Workgroup 10(float) - 19(s): 18(ptr) Variable Workgroup - 21: TypePointer Uniform 10(float) - 23: TypeVector 10(float) 4 - 24(outbna): TypeStruct 16(int) 23(fvec4) - 25: TypePointer Uniform 24(outbna) - 26(outbnamena): 25(ptr) Variable Uniform - 27: 16(int) Constant 1 - 30: TypePointer Uniform 23(fvec4) - 32: 16(int) Constant 3 - 33: 16(int) Constant 18 - 36: 16(int) Constant 17 - 37: 10(float) Constant 1077936128 - 38: 11(fvec3) ConstantComposite 37 37 37 - 39: TypePointer Uniform 11(fvec3) - 41: TypePointer Workgroup 16(int) + 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 23(fvec4) - 48(outs): TypeStruct 16(int) 47 + 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 16(int) - 63: 6(int) Constant 16 - 64: 6(int) Constant 32 - 65: 6(int) Constant 4 - 66: 51(ivec3) ConstantComposite 63 64 65 + 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 8 9 - 20: 10(float) Load 19(s) - 22: 21(ptr) AccessChain 15(outbname) 17 - Store 22 20 - 28: 10(float) Load 19(s) - 29: 23(fvec4) CompositeConstruct 28 28 28 28 - 31: 30(ptr) AccessChain 26(outbnamena) 27 - Store 31 29 - 34: 21(ptr) AccessChain 15(outbname) 32 33 9 - 35: 10(float) Load 34 - Store 19(s) 35 - 40: 39(ptr) AccessChain 15(outbname) 32 36 + 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: 16(int) Load 42(i) - 44: 10(float) Load 19(s) - 45: 11(fvec3) CompositeConstruct 44 44 44 - 46: 39(ptr) AccessChain 15(outbname) 32 43 + 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) 9 + 55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 33 56: 6(int) Load 55 - 57: 10(float) Load 19(s) - 58: 23(fvec4) CompositeConstruct 57 57 57 57 - 59: 30(ptr) AccessChain 50(outnames) 27 56 + 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: 16(int) ArrayLength 15(outbname) 3 - 62: 61(ptr) AccessChain 50(outnames) 17 + 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 index 3e81dcbc79..1ccbfb6c4c 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.330.geom.out +++ b/deps/glslang/glslang/Test/baseResults/spv.330.geom.out @@ -1,6 +1,6 @@ spv.330.geom // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 32 Capability Geometry diff --git a/deps/glslang/glslang/Test/baseResults/spv.400.frag.out b/deps/glslang/glslang/Test/baseResults/spv.400.frag.out index cb2de96871..9cb2c63a1e 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.400.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.400.frag.out @@ -1,8 +1,6 @@ spv.400.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 1118 Capability Shader @@ -87,18 +85,18 @@ Warning, version 400 is not yet complete; most version-specific features are pre 33: 32(int) Constant 0 34: TypePointer Output 10(float) 39: TypeFloat 64 - 40: TypePointer Function 39(float) - 42: 39(float) Constant 2507418074 1073430332 - 43: TypeVector 39(float) 2 - 44: TypePointer Function 43(fvec2) - 46: 39(float) Constant 796182188 1073367658 - 47: 43(fvec2) ConstantComposite 46 46 - 48: TypeVector 39(float) 3 - 49: TypePointer Function 48(fvec3) - 51: 39(float) Constant 1719614413 1073127582 - 52: 48(fvec3) ConstantComposite 51 51 51 - 53: TypeVector 39(float) 4 - 54: TypePointer Function 53(fvec4) + 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 @@ -111,23 +109,23 @@ Warning, version 400 is not yet complete; most version-specific features are pre 572: 437(bvec2) ConstantComposite 563 563 581: 446(bvec3) ConstantComposite 563 563 563 590: 455(bvec4) ConstantComposite 563 563 563 563 - 737: TypeMatrix 43(fvec2) 2 + 737: TypeMatrix 43(f64vec2) 2 738: TypePointer Function 737 - 743: TypeMatrix 48(fvec3) 3 + 743: TypeMatrix 48(f64vec3) 3 744: TypePointer Function 743 - 749: TypeMatrix 53(fvec4) 4 + 749: TypeMatrix 53(f64vec4) 4 750: TypePointer Function 749 - 755: TypeMatrix 48(fvec3) 2 + 755: TypeMatrix 48(f64vec3) 2 756: TypePointer Function 755 - 761: TypeMatrix 43(fvec2) 3 + 761: TypeMatrix 43(f64vec2) 3 762: TypePointer Function 761 - 767: TypeMatrix 53(fvec4) 2 + 767: TypeMatrix 53(f64vec4) 2 768: TypePointer Function 767 - 773: TypeMatrix 43(fvec2) 4 + 773: TypeMatrix 43(f64vec2) 4 774: TypePointer Function 773 - 779: TypeMatrix 53(fvec4) 3 + 779: TypeMatrix 53(f64vec4) 3 780: TypePointer Function 779 - 785: TypeMatrix 48(fvec3) 4 + 785: TypeMatrix 48(f64vec3) 4 786: TypePointer Function 785 954: 32(int) Constant 1 958: 32(int) Constant 2 @@ -275,10 +273,10 @@ Warning, version 400 is not yet complete; most version-specific features are pre 439(bvec2v): 438(ptr) Variable Function 448(bvec3v): 447(ptr) Variable Function 457(bvec4v): 456(ptr) Variable Function - 556: 429(ptr) Variable Function - 565: 438(ptr) Variable Function - 574: 447(ptr) Variable Function - 583: 456(ptr) Variable Function + 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 @@ -291,979 +289,979 @@ Warning, version 400 is not yet complete; most version-specific features are pre Store 41(doublev) 42 Store 45(dvec2v) 47 Store 50(dvec3v) 52 - 56: 39(float) Load 41(doublev) - 57: 53(fvec4) CompositeConstruct 56 56 56 56 - 58: 53(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 57 + 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(float) Load 41(doublev) - 60: 39(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 59 - 61: 39(float) Load 41(doublev) - 62: 39(float) FAdd 61 60 + 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(fvec2) Load 45(dvec2v) - 64: 43(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 63 - 65: 43(fvec2) Load 45(dvec2v) - 66: 43(fvec2) FAdd 65 64 + 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(fvec3) Load 50(dvec3v) - 68: 48(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 67 - 69: 48(fvec3) Load 50(dvec3v) - 70: 48(fvec3) FAdd 69 68 + 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(fvec4) Load 55(dvec4v) - 72: 53(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 71 - 73: 53(fvec4) Load 55(dvec4v) - 74: 53(fvec4) FAdd 73 72 + 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(float) Load 41(doublev) - 76: 39(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75 - 77: 39(float) Load 41(doublev) - 78: 39(float) FAdd 77 76 + 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(fvec2) Load 45(dvec2v) - 80: 43(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 79 - 81: 43(fvec2) Load 45(dvec2v) - 82: 43(fvec2) FAdd 81 80 + 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(fvec3) Load 50(dvec3v) - 84: 48(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 83 - 85: 48(fvec3) Load 50(dvec3v) - 86: 48(fvec3) FAdd 85 84 + 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(fvec4) Load 55(dvec4v) - 88: 53(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 87 - 89: 53(fvec4) Load 55(dvec4v) - 90: 53(fvec4) FAdd 89 88 + 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(float) Load 41(doublev) - 92: 39(float) ExtInst 1(GLSL.std.450) 6(FSign) 91 - 93: 39(float) Load 41(doublev) - 94: 39(float) FAdd 93 92 + 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(fvec2) Load 45(dvec2v) - 96: 43(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 95 - 97: 43(fvec2) Load 45(dvec2v) - 98: 43(fvec2) FAdd 97 96 + 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(fvec3) Load 50(dvec3v) - 100: 48(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 99 - 101: 48(fvec3) Load 50(dvec3v) - 102: 48(fvec3) FAdd 101 100 + 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(fvec4) Load 55(dvec4v) - 104: 53(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 103 - 105: 53(fvec4) Load 55(dvec4v) - 106: 53(fvec4) FAdd 105 104 + 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(float) Load 41(doublev) - 108: 39(float) ExtInst 1(GLSL.std.450) 8(Floor) 107 - 109: 39(float) Load 41(doublev) - 110: 39(float) FAdd 109 108 + 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(fvec2) Load 45(dvec2v) - 112: 43(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 111 - 113: 43(fvec2) Load 45(dvec2v) - 114: 43(fvec2) FAdd 113 112 + 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(fvec3) Load 50(dvec3v) - 116: 48(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 115 - 117: 48(fvec3) Load 50(dvec3v) - 118: 48(fvec3) FAdd 117 116 + 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(fvec4) Load 55(dvec4v) - 120: 53(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 119 - 121: 53(fvec4) Load 55(dvec4v) - 122: 53(fvec4) FAdd 121 120 + 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(float) Load 41(doublev) - 124: 39(float) ExtInst 1(GLSL.std.450) 3(Trunc) 123 - 125: 39(float) Load 41(doublev) - 126: 39(float) FAdd 125 124 + 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(fvec2) Load 45(dvec2v) - 128: 43(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 127 - 129: 43(fvec2) Load 45(dvec2v) - 130: 43(fvec2) FAdd 129 128 + 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(fvec3) Load 50(dvec3v) - 132: 48(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 131 - 133: 48(fvec3) Load 50(dvec3v) - 134: 48(fvec3) FAdd 133 132 + 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(fvec4) Load 55(dvec4v) - 136: 53(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 135 - 137: 53(fvec4) Load 55(dvec4v) - 138: 53(fvec4) FAdd 137 136 + 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(float) Load 41(doublev) - 140: 39(float) ExtInst 1(GLSL.std.450) 1(Round) 139 - 141: 39(float) Load 41(doublev) - 142: 39(float) FAdd 141 140 + 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(fvec2) Load 45(dvec2v) - 144: 43(fvec2) ExtInst 1(GLSL.std.450) 1(Round) 143 - 145: 43(fvec2) Load 45(dvec2v) - 146: 43(fvec2) FAdd 145 144 + 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(fvec3) Load 50(dvec3v) - 148: 48(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 147 - 149: 48(fvec3) Load 50(dvec3v) - 150: 48(fvec3) FAdd 149 148 + 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(fvec4) Load 55(dvec4v) - 152: 53(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 151 - 153: 53(fvec4) Load 55(dvec4v) - 154: 53(fvec4) FAdd 153 152 + 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(float) Load 41(doublev) - 156: 39(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 155 - 157: 39(float) Load 41(doublev) - 158: 39(float) FAdd 157 156 + 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(fvec2) Load 45(dvec2v) - 160: 43(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 159 - 161: 43(fvec2) Load 45(dvec2v) - 162: 43(fvec2) FAdd 161 160 + 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(fvec3) Load 50(dvec3v) - 164: 48(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 163 - 165: 48(fvec3) Load 50(dvec3v) - 166: 48(fvec3) FAdd 165 164 + 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(fvec4) Load 55(dvec4v) - 168: 53(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 167 - 169: 53(fvec4) Load 55(dvec4v) - 170: 53(fvec4) FAdd 169 168 + 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(float) Load 41(doublev) - 172: 39(float) ExtInst 1(GLSL.std.450) 9(Ceil) 171 - 173: 39(float) Load 41(doublev) - 174: 39(float) FAdd 173 172 + 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(fvec2) Load 45(dvec2v) - 176: 43(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 175 - 177: 43(fvec2) Load 45(dvec2v) - 178: 43(fvec2) FAdd 177 176 + 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(fvec3) Load 50(dvec3v) - 180: 48(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 179 - 181: 48(fvec3) Load 50(dvec3v) - 182: 48(fvec3) FAdd 181 180 + 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(fvec4) Load 55(dvec4v) - 184: 53(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 183 - 185: 53(fvec4) Load 55(dvec4v) - 186: 53(fvec4) FAdd 185 184 + 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(float) Load 41(doublev) - 188: 39(float) ExtInst 1(GLSL.std.450) 10(Fract) 187 - 189: 39(float) Load 41(doublev) - 190: 39(float) FAdd 189 188 + 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(fvec2) Load 45(dvec2v) - 192: 43(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 191 - 193: 43(fvec2) Load 45(dvec2v) - 194: 43(fvec2) FAdd 193 192 + 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(fvec3) Load 50(dvec3v) - 196: 48(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 195 - 197: 48(fvec3) Load 50(dvec3v) - 198: 48(fvec3) FAdd 197 196 + 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(fvec4) Load 55(dvec4v) - 200: 53(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 199 - 201: 53(fvec4) Load 55(dvec4v) - 202: 53(fvec4) FAdd 201 200 + 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(float) Load 41(doublev) - 204: 39(float) Load 41(doublev) - 205: 39(float) FMod 203 204 - 206: 39(float) Load 41(doublev) - 207: 39(float) FAdd 206 205 + 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(fvec2) Load 45(dvec2v) - 209: 39(float) Load 41(doublev) - 210: 43(fvec2) CompositeConstruct 209 209 - 211: 43(fvec2) FMod 208 210 - 212: 43(fvec2) Load 45(dvec2v) - 213: 43(fvec2) FAdd 212 211 + 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(fvec3) Load 50(dvec3v) - 215: 39(float) Load 41(doublev) - 216: 48(fvec3) CompositeConstruct 215 215 215 - 217: 48(fvec3) FMod 214 216 - 218: 48(fvec3) Load 50(dvec3v) - 219: 48(fvec3) FAdd 218 217 + 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(fvec4) Load 55(dvec4v) - 221: 39(float) Load 41(doublev) - 222: 53(fvec4) CompositeConstruct 221 221 221 221 - 223: 53(fvec4) FMod 220 222 - 224: 53(fvec4) Load 55(dvec4v) - 225: 53(fvec4) FAdd 224 223 + 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(fvec2) Load 45(dvec2v) - 227: 43(fvec2) Load 45(dvec2v) - 228: 43(fvec2) FMod 226 227 - 229: 43(fvec2) Load 45(dvec2v) - 230: 43(fvec2) FAdd 229 228 + 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(fvec3) Load 50(dvec3v) - 232: 48(fvec3) Load 50(dvec3v) - 233: 48(fvec3) FMod 231 232 - 234: 48(fvec3) Load 50(dvec3v) - 235: 48(fvec3) FAdd 234 233 + 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(fvec4) Load 55(dvec4v) - 237: 53(fvec4) Load 55(dvec4v) - 238: 53(fvec4) FMod 236 237 - 239: 53(fvec4) Load 55(dvec4v) - 240: 53(fvec4) FAdd 239 238 + 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(float) Load 41(doublev) - 242: 39(float) ExtInst 1(GLSL.std.450) 35(Modf) 241 41(doublev) - 243: 39(float) Load 41(doublev) - 244: 39(float) FAdd 243 242 + 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(fvec2) Load 45(dvec2v) - 246: 43(fvec2) ExtInst 1(GLSL.std.450) 35(Modf) 245 45(dvec2v) - 247: 43(fvec2) Load 45(dvec2v) - 248: 43(fvec2) FAdd 247 246 + 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(fvec3) Load 50(dvec3v) - 250: 48(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 249 50(dvec3v) - 251: 48(fvec3) Load 50(dvec3v) - 252: 48(fvec3) FAdd 251 250 + 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(fvec4) Load 55(dvec4v) - 254: 53(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 253 55(dvec4v) - 255: 53(fvec4) Load 55(dvec4v) - 256: 53(fvec4) FAdd 255 254 + 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(float) Load 41(doublev) - 258: 39(float) Load 41(doublev) - 259: 39(float) ExtInst 1(GLSL.std.450) 37(FMin) 257 258 - 260: 39(float) Load 41(doublev) - 261: 39(float) FAdd 260 259 + 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(fvec2) Load 45(dvec2v) - 263: 39(float) Load 41(doublev) - 264: 43(fvec2) CompositeConstruct 263 263 - 265: 43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 262 264 - 266: 43(fvec2) Load 45(dvec2v) - 267: 43(fvec2) FAdd 266 265 + 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(fvec3) Load 50(dvec3v) - 269: 39(float) Load 41(doublev) - 270: 48(fvec3) CompositeConstruct 269 269 269 - 271: 48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 268 270 - 272: 48(fvec3) Load 50(dvec3v) - 273: 48(fvec3) FAdd 272 271 + 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(fvec4) Load 55(dvec4v) - 275: 39(float) Load 41(doublev) - 276: 53(fvec4) CompositeConstruct 275 275 275 275 - 277: 53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 274 276 - 278: 53(fvec4) Load 55(dvec4v) - 279: 53(fvec4) FAdd 278 277 + 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(fvec2) Load 45(dvec2v) - 281: 43(fvec2) Load 45(dvec2v) - 282: 43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 280 281 - 283: 43(fvec2) Load 45(dvec2v) - 284: 43(fvec2) FAdd 283 282 + 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(fvec3) Load 50(dvec3v) - 286: 48(fvec3) Load 50(dvec3v) - 287: 48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 285 286 - 288: 48(fvec3) Load 50(dvec3v) - 289: 48(fvec3) FAdd 288 287 + 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(fvec4) Load 55(dvec4v) - 291: 53(fvec4) Load 55(dvec4v) - 292: 53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 290 291 - 293: 53(fvec4) Load 55(dvec4v) - 294: 53(fvec4) FAdd 293 292 + 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(float) Load 41(doublev) - 296: 39(float) Load 41(doublev) - 297: 39(float) ExtInst 1(GLSL.std.450) 40(FMax) 295 296 - 298: 39(float) Load 41(doublev) - 299: 39(float) FAdd 298 297 + 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(fvec2) Load 45(dvec2v) - 301: 39(float) Load 41(doublev) - 302: 43(fvec2) CompositeConstruct 301 301 - 303: 43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 300 302 - 304: 43(fvec2) Load 45(dvec2v) - 305: 43(fvec2) FAdd 304 303 + 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(fvec3) Load 50(dvec3v) - 307: 39(float) Load 41(doublev) - 308: 48(fvec3) CompositeConstruct 307 307 307 - 309: 48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 306 308 - 310: 48(fvec3) Load 50(dvec3v) - 311: 48(fvec3) FAdd 310 309 + 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(fvec4) Load 55(dvec4v) - 313: 39(float) Load 41(doublev) - 314: 53(fvec4) CompositeConstruct 313 313 313 313 - 315: 53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 312 314 - 316: 53(fvec4) Load 55(dvec4v) - 317: 53(fvec4) FAdd 316 315 + 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(fvec2) Load 45(dvec2v) - 319: 43(fvec2) Load 45(dvec2v) - 320: 43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 318 319 - 321: 43(fvec2) Load 45(dvec2v) - 322: 43(fvec2) FAdd 321 320 + 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(fvec3) Load 50(dvec3v) - 324: 48(fvec3) Load 50(dvec3v) - 325: 48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 323 324 - 326: 48(fvec3) Load 50(dvec3v) - 327: 48(fvec3) FAdd 326 325 + 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(fvec4) Load 55(dvec4v) - 329: 53(fvec4) Load 55(dvec4v) - 330: 53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 328 329 - 331: 53(fvec4) Load 55(dvec4v) - 332: 53(fvec4) FAdd 331 330 + 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(float) Load 41(doublev) - 334: 39(float) Load 41(doublev) - 335: 39(float) Load 41(doublev) - 336: 39(float) ExtInst 1(GLSL.std.450) 43(FClamp) 333 334 335 - 337: 39(float) Load 41(doublev) - 338: 39(float) FAdd 337 336 + 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(fvec2) Load 45(dvec2v) - 340: 39(float) Load 41(doublev) - 341: 39(float) Load 41(doublev) - 342: 43(fvec2) CompositeConstruct 340 340 - 343: 43(fvec2) CompositeConstruct 341 341 - 344: 43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 339 342 343 - 345: 43(fvec2) Load 45(dvec2v) - 346: 43(fvec2) FAdd 345 344 + 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(fvec3) Load 50(dvec3v) - 348: 39(float) Load 41(doublev) - 349: 39(float) Load 41(doublev) - 350: 48(fvec3) CompositeConstruct 348 348 348 - 351: 48(fvec3) CompositeConstruct 349 349 349 - 352: 48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 347 350 351 - 353: 48(fvec3) Load 50(dvec3v) - 354: 48(fvec3) FAdd 353 352 + 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(fvec4) Load 55(dvec4v) - 356: 39(float) Load 41(doublev) - 357: 39(float) Load 41(doublev) - 358: 53(fvec4) CompositeConstruct 356 356 356 356 - 359: 53(fvec4) CompositeConstruct 357 357 357 357 - 360: 53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 355 358 359 - 361: 53(fvec4) Load 55(dvec4v) - 362: 53(fvec4) FAdd 361 360 + 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(fvec2) Load 45(dvec2v) - 364: 43(fvec2) Load 45(dvec2v) - 365: 43(fvec2) Load 45(dvec2v) - 366: 43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365 - 367: 43(fvec2) Load 45(dvec2v) - 368: 43(fvec2) FAdd 367 366 + 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(fvec3) Load 50(dvec3v) - 370: 48(fvec3) Load 50(dvec3v) - 371: 48(fvec3) Load 50(dvec3v) - 372: 48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371 - 373: 48(fvec3) Load 50(dvec3v) - 374: 48(fvec3) FAdd 373 372 + 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(fvec4) Load 55(dvec4v) - 376: 53(fvec4) Load 55(dvec4v) - 377: 53(fvec4) Load 55(dvec4v) - 378: 53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 375 376 377 - 379: 53(fvec4) Load 55(dvec4v) - 380: 53(fvec4) FAdd 379 378 + 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(float) Load 41(doublev) - 382: 39(float) Load 41(doublev) - 383: 39(float) Load 41(doublev) - 384: 39(float) ExtInst 1(GLSL.std.450) 46(FMix) 381 382 383 - 385: 39(float) Load 41(doublev) - 386: 39(float) FAdd 385 384 + 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(fvec2) Load 45(dvec2v) - 388: 43(fvec2) Load 45(dvec2v) - 389: 39(float) Load 41(doublev) - 390: 43(fvec2) CompositeConstruct 389 389 - 391: 43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 387 388 390 - 392: 43(fvec2) Load 45(dvec2v) - 393: 43(fvec2) FAdd 392 391 + 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(fvec3) Load 50(dvec3v) - 395: 48(fvec3) Load 50(dvec3v) - 396: 39(float) Load 41(doublev) - 397: 48(fvec3) CompositeConstruct 396 396 396 - 398: 48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 394 395 397 - 399: 48(fvec3) Load 50(dvec3v) - 400: 48(fvec3) FAdd 399 398 + 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(fvec4) Load 55(dvec4v) - 402: 53(fvec4) Load 55(dvec4v) - 403: 39(float) Load 41(doublev) - 404: 53(fvec4) CompositeConstruct 403 403 403 403 - 405: 53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 401 402 404 - 406: 53(fvec4) Load 55(dvec4v) - 407: 53(fvec4) FAdd 406 405 + 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(fvec2) Load 45(dvec2v) - 409: 43(fvec2) Load 45(dvec2v) - 410: 43(fvec2) Load 45(dvec2v) - 411: 43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 408 409 410 - 412: 43(fvec2) Load 45(dvec2v) - 413: 43(fvec2) FAdd 412 411 + 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(fvec3) Load 50(dvec3v) - 415: 48(fvec3) Load 50(dvec3v) - 416: 48(fvec3) Load 50(dvec3v) - 417: 48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 414 415 416 - 418: 48(fvec3) Load 50(dvec3v) - 419: 48(fvec3) FAdd 418 417 + 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(fvec4) Load 55(dvec4v) - 421: 53(fvec4) Load 55(dvec4v) - 422: 53(fvec4) Load 55(dvec4v) - 423: 53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 420 421 422 - 424: 53(fvec4) Load 55(dvec4v) - 425: 53(fvec4) FAdd 424 423 + 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(float) Load 41(doublev) - 427: 39(float) Load 41(doublev) + 426:39(float64_t) Load 41(doublev) + 427:39(float64_t) Load 41(doublev) 431: 428(bool) Load 430(boolv) - 432: 39(float) Select 431 427 426 - 433: 39(float) Load 41(doublev) - 434: 39(float) FAdd 433 432 + 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(fvec2) Load 45(dvec2v) - 436: 43(fvec2) Load 45(dvec2v) + 435: 43(f64vec2) Load 45(dvec2v) + 436: 43(f64vec2) Load 45(dvec2v) 440: 437(bvec2) Load 439(bvec2v) - 441: 43(fvec2) Select 440 436 435 - 442: 43(fvec2) Load 45(dvec2v) - 443: 43(fvec2) FAdd 442 441 + 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(fvec3) Load 50(dvec3v) - 445: 48(fvec3) Load 50(dvec3v) + 444: 48(f64vec3) Load 50(dvec3v) + 445: 48(f64vec3) Load 50(dvec3v) 449: 446(bvec3) Load 448(bvec3v) - 450: 48(fvec3) Select 449 445 444 - 451: 48(fvec3) Load 50(dvec3v) - 452: 48(fvec3) FAdd 451 450 + 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(fvec4) Load 55(dvec4v) - 454: 53(fvec4) Load 55(dvec4v) + 453: 53(f64vec4) Load 55(dvec4v) + 454: 53(f64vec4) Load 55(dvec4v) 458: 455(bvec4) Load 457(bvec4v) - 459: 53(fvec4) Select 458 454 453 - 460: 53(fvec4) Load 55(dvec4v) - 461: 53(fvec4) FAdd 460 459 + 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(float) Load 41(doublev) - 463: 39(float) Load 41(doublev) - 464: 39(float) ExtInst 1(GLSL.std.450) 48(Step) 462 463 - 465: 39(float) Load 41(doublev) - 466: 39(float) FAdd 465 464 + 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(fvec2) Load 45(dvec2v) - 468: 43(fvec2) Load 45(dvec2v) - 469: 43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 467 468 - 470: 43(fvec2) Load 45(dvec2v) - 471: 43(fvec2) FAdd 470 469 + 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(fvec3) Load 50(dvec3v) - 473: 48(fvec3) Load 50(dvec3v) - 474: 48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 472 473 - 475: 48(fvec3) Load 50(dvec3v) - 476: 48(fvec3) FAdd 475 474 + 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(fvec4) Load 55(dvec4v) - 478: 53(fvec4) Load 55(dvec4v) - 479: 53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 477 478 - 480: 53(fvec4) Load 55(dvec4v) - 481: 53(fvec4) FAdd 480 479 + 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(float) Load 41(doublev) - 483: 43(fvec2) Load 45(dvec2v) - 484: 43(fvec2) CompositeConstruct 482 482 - 485: 43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 484 483 - 486: 43(fvec2) Load 45(dvec2v) - 487: 43(fvec2) FAdd 486 485 + 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(float) Load 41(doublev) - 489: 48(fvec3) Load 50(dvec3v) - 490: 48(fvec3) CompositeConstruct 488 488 488 - 491: 48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 490 489 - 492: 48(fvec3) Load 50(dvec3v) - 493: 48(fvec3) FAdd 492 491 + 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(float) Load 41(doublev) - 495: 53(fvec4) Load 55(dvec4v) - 496: 53(fvec4) CompositeConstruct 494 494 494 494 - 497: 53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 496 495 - 498: 53(fvec4) Load 55(dvec4v) - 499: 53(fvec4) FAdd 498 497 + 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(float) Load 41(doublev) - 501: 39(float) Load 41(doublev) - 502: 39(float) Load 41(doublev) - 503: 39(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 500 501 502 - 504: 39(float) Load 41(doublev) - 505: 39(float) FAdd 504 503 + 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(fvec2) Load 45(dvec2v) - 507: 43(fvec2) Load 45(dvec2v) - 508: 43(fvec2) Load 45(dvec2v) - 509: 43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 506 507 508 - 510: 43(fvec2) Load 45(dvec2v) - 511: 43(fvec2) FAdd 510 509 + 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(fvec3) Load 50(dvec3v) - 513: 48(fvec3) Load 50(dvec3v) - 514: 48(fvec3) Load 50(dvec3v) - 515: 48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 512 513 514 - 516: 48(fvec3) Load 50(dvec3v) - 517: 48(fvec3) FAdd 516 515 + 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(fvec4) Load 55(dvec4v) - 519: 53(fvec4) Load 55(dvec4v) - 520: 53(fvec4) Load 55(dvec4v) - 521: 53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 518 519 520 - 522: 53(fvec4) Load 55(dvec4v) - 523: 53(fvec4) FAdd 522 521 + 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(float) Load 41(doublev) - 525: 39(float) Load 41(doublev) - 526: 43(fvec2) Load 45(dvec2v) - 527: 43(fvec2) CompositeConstruct 524 524 - 528: 43(fvec2) CompositeConstruct 525 525 - 529: 43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 527 528 526 - 530: 43(fvec2) Load 45(dvec2v) - 531: 43(fvec2) FAdd 530 529 + 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(float) Load 41(doublev) - 533: 39(float) Load 41(doublev) - 534: 48(fvec3) Load 50(dvec3v) - 535: 48(fvec3) CompositeConstruct 532 532 532 - 536: 48(fvec3) CompositeConstruct 533 533 533 - 537: 48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 535 536 534 - 538: 48(fvec3) Load 50(dvec3v) - 539: 48(fvec3) FAdd 538 537 + 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(float) Load 41(doublev) - 541: 39(float) Load 41(doublev) - 542: 53(fvec4) Load 55(dvec4v) - 543: 53(fvec4) CompositeConstruct 540 540 540 540 - 544: 53(fvec4) CompositeConstruct 541 541 541 541 - 545: 53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 543 544 542 - 546: 53(fvec4) Load 55(dvec4v) - 547: 53(fvec4) FAdd 546 545 + 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(float) Load 41(doublev) + 548:39(float64_t) Load 41(doublev) 549: 428(bool) IsNan 548 Store 430(boolv) 549 - 550: 43(fvec2) Load 45(dvec2v) + 550: 43(f64vec2) Load 45(dvec2v) 551: 437(bvec2) IsNan 550 Store 439(bvec2v) 551 - 552: 48(fvec3) Load 50(dvec3v) + 552: 48(f64vec3) Load 50(dvec3v) 553: 446(bvec3) IsNan 552 Store 448(bvec3v) 553 - 554: 53(fvec4) Load 55(dvec4v) + 554: 53(f64vec4) Load 55(dvec4v) 555: 455(bvec4) IsNan 554 Store 457(bvec4v) 555 - 557: 428(bool) Load 430(boolv) + 556: 428(bool) Load 430(boolv) SelectionMerge 559 None - BranchConditional 557 558 562 + BranchConditional 556 558 562 558: Label - 560: 39(float) Load 41(doublev) + 560:39(float64_t) Load 41(doublev) 561: 428(bool) IsInf 560 - Store 556 561 + Store 557 561 Branch 559 562: Label - Store 556 563 + Store 557 563 Branch 559 559: Label - 564: 428(bool) Load 556 + 564: 428(bool) Load 557 Store 430(boolv) 564 - 566: 428(bool) Load 430(boolv) + 565: 428(bool) Load 430(boolv) SelectionMerge 568 None - BranchConditional 566 567 571 + BranchConditional 565 567 571 567: Label - 569: 43(fvec2) Load 45(dvec2v) + 569: 43(f64vec2) Load 45(dvec2v) 570: 437(bvec2) IsInf 569 - Store 565 570 + Store 566 570 Branch 568 571: Label - Store 565 572 + Store 566 572 Branch 568 568: Label - 573: 437(bvec2) Load 565 + 573: 437(bvec2) Load 566 Store 439(bvec2v) 573 - 575: 428(bool) Load 430(boolv) + 574: 428(bool) Load 430(boolv) SelectionMerge 577 None - BranchConditional 575 576 580 + BranchConditional 574 576 580 576: Label - 578: 48(fvec3) Load 50(dvec3v) + 578: 48(f64vec3) Load 50(dvec3v) 579: 446(bvec3) IsInf 578 - Store 574 579 + Store 575 579 Branch 577 580: Label - Store 574 581 + Store 575 581 Branch 577 577: Label - 582: 446(bvec3) Load 574 + 582: 446(bvec3) Load 575 Store 448(bvec3v) 582 - 584: 428(bool) Load 430(boolv) + 583: 428(bool) Load 430(boolv) SelectionMerge 586 None - BranchConditional 584 585 589 + BranchConditional 583 585 589 585: Label - 587: 53(fvec4) Load 55(dvec4v) + 587: 53(f64vec4) Load 55(dvec4v) 588: 455(bvec4) IsInf 587 - Store 583 588 + Store 584 588 Branch 586 589: Label - Store 583 590 + Store 584 590 Branch 586 586: Label - 591: 455(bvec4) Load 583 + 591: 455(bvec4) Load 584 Store 457(bvec4v) 591 - 592: 39(float) Load 41(doublev) - 593: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 592 - 594: 39(float) Load 41(doublev) - 595: 39(float) FAdd 594 593 + 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(fvec2) Load 45(dvec2v) - 597: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 596 - 598: 39(float) Load 41(doublev) - 599: 39(float) FAdd 598 597 + 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(fvec3) Load 50(dvec3v) - 601: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 600 - 602: 39(float) Load 41(doublev) - 603: 39(float) FAdd 602 601 + 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(fvec4) Load 55(dvec4v) - 605: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 604 - 606: 39(float) Load 41(doublev) - 607: 39(float) FAdd 606 605 + 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(float) Load 41(doublev) - 609: 39(float) Load 41(doublev) - 610: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 608 609 - 611: 39(float) Load 41(doublev) - 612: 39(float) FAdd 611 610 + 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(fvec2) Load 45(dvec2v) - 614: 43(fvec2) Load 45(dvec2v) - 615: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 613 614 - 616: 39(float) Load 41(doublev) - 617: 39(float) FAdd 616 615 + 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(fvec3) Load 50(dvec3v) - 619: 48(fvec3) Load 50(dvec3v) - 620: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 618 619 - 621: 39(float) Load 41(doublev) - 622: 39(float) FAdd 621 620 + 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(fvec4) Load 55(dvec4v) - 624: 53(fvec4) Load 55(dvec4v) - 625: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 623 624 - 626: 39(float) Load 41(doublev) - 627: 39(float) FAdd 626 625 + 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(float) Load 41(doublev) - 629: 39(float) Load 41(doublev) - 630: 39(float) FMul 628 629 - 631: 39(float) Load 41(doublev) - 632: 39(float) FAdd 631 630 + 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(fvec2) Load 45(dvec2v) - 634: 43(fvec2) Load 45(dvec2v) - 635: 39(float) Dot 633 634 - 636: 39(float) Load 41(doublev) - 637: 39(float) FAdd 636 635 + 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(fvec3) Load 50(dvec3v) - 639: 48(fvec3) Load 50(dvec3v) - 640: 39(float) Dot 638 639 - 641: 39(float) Load 41(doublev) - 642: 39(float) FAdd 641 640 + 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(fvec4) Load 55(dvec4v) - 644: 53(fvec4) Load 55(dvec4v) - 645: 39(float) Dot 643 644 - 646: 39(float) Load 41(doublev) - 647: 39(float) FAdd 646 645 + 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(fvec3) Load 50(dvec3v) - 649: 48(fvec3) Load 50(dvec3v) - 650: 48(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 648 649 - 651: 48(fvec3) Load 50(dvec3v) - 652: 48(fvec3) FAdd 651 650 + 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(float) Load 41(doublev) - 654: 39(float) ExtInst 1(GLSL.std.450) 69(Normalize) 653 - 655: 39(float) Load 41(doublev) - 656: 39(float) FAdd 655 654 + 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(fvec2) Load 45(dvec2v) - 658: 43(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 657 - 659: 43(fvec2) Load 45(dvec2v) - 660: 43(fvec2) FAdd 659 658 + 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(fvec3) Load 50(dvec3v) - 662: 48(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 661 - 663: 48(fvec3) Load 50(dvec3v) - 664: 48(fvec3) FAdd 663 662 + 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(fvec4) Load 55(dvec4v) - 666: 53(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 665 - 667: 53(fvec4) Load 55(dvec4v) - 668: 53(fvec4) FAdd 667 666 + 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(float) Load 41(doublev) - 670: 39(float) Load 41(doublev) - 671: 39(float) Load 41(doublev) - 672: 39(float) ExtInst 1(GLSL.std.450) 70(FaceForward) 669 670 671 - 673: 39(float) Load 41(doublev) - 674: 39(float) FAdd 673 672 + 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(fvec2) Load 45(dvec2v) - 676: 43(fvec2) Load 45(dvec2v) - 677: 43(fvec2) Load 45(dvec2v) - 678: 43(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 - 679: 43(fvec2) Load 45(dvec2v) - 680: 43(fvec2) FAdd 679 678 + 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(fvec3) Load 50(dvec3v) - 682: 48(fvec3) Load 50(dvec3v) - 683: 48(fvec3) Load 50(dvec3v) - 684: 48(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 681 682 683 - 685: 48(fvec3) Load 50(dvec3v) - 686: 48(fvec3) FAdd 685 684 + 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(fvec4) Load 55(dvec4v) - 688: 53(fvec4) Load 55(dvec4v) - 689: 53(fvec4) Load 55(dvec4v) - 690: 53(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 687 688 689 - 691: 53(fvec4) Load 55(dvec4v) - 692: 53(fvec4) FAdd 691 690 + 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(float) Load 41(doublev) - 694: 39(float) Load 41(doublev) - 695: 39(float) ExtInst 1(GLSL.std.450) 71(Reflect) 693 694 - 696: 39(float) Load 41(doublev) - 697: 39(float) FAdd 696 695 + 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(fvec2) Load 45(dvec2v) - 699: 43(fvec2) Load 45(dvec2v) - 700: 43(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 698 699 - 701: 43(fvec2) Load 45(dvec2v) - 702: 43(fvec2) FAdd 701 700 + 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(fvec3) Load 50(dvec3v) - 704: 48(fvec3) Load 50(dvec3v) - 705: 48(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 703 704 - 706: 48(fvec3) Load 50(dvec3v) - 707: 48(fvec3) FAdd 706 705 + 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(fvec4) Load 55(dvec4v) - 709: 53(fvec4) Load 55(dvec4v) - 710: 53(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 708 709 - 711: 53(fvec4) Load 55(dvec4v) - 712: 53(fvec4) FAdd 711 710 + 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(float) Load 41(doublev) - 714: 39(float) Load 41(doublev) - 715: 39(float) Load 41(doublev) - 716: 39(float) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715 - 717: 39(float) Load 41(doublev) - 718: 39(float) FAdd 717 716 + 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(fvec2) Load 45(dvec2v) - 720: 43(fvec2) Load 45(dvec2v) - 721: 39(float) Load 41(doublev) - 722: 43(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721 - 723: 43(fvec2) Load 45(dvec2v) - 724: 43(fvec2) FAdd 723 722 + 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(fvec3) Load 50(dvec3v) - 726: 48(fvec3) Load 50(dvec3v) - 727: 39(float) Load 41(doublev) - 728: 48(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727 - 729: 48(fvec3) Load 50(dvec3v) - 730: 48(fvec3) FAdd 729 728 + 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(fvec4) Load 55(dvec4v) - 732: 53(fvec4) Load 55(dvec4v) - 733: 39(float) Load 41(doublev) - 734: 53(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733 - 735: 53(fvec4) Load 55(dvec4v) - 736: 53(fvec4) FAdd 735 734 + 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(fvec2) Load 45(dvec2v) - 741: 43(fvec2) Load 45(dvec2v) + 740: 43(f64vec2) Load 45(dvec2v) + 741: 43(f64vec2) Load 45(dvec2v) 742: 737 OuterProduct 740 741 Store 739(dmat2v) 742 - 746: 48(fvec3) Load 50(dvec3v) - 747: 48(fvec3) Load 50(dvec3v) + 746: 48(f64vec3) Load 50(dvec3v) + 747: 48(f64vec3) Load 50(dvec3v) 748: 743 OuterProduct 746 747 Store 745(dmat3v) 748 - 752: 53(fvec4) Load 55(dvec4v) - 753: 53(fvec4) Load 55(dvec4v) + 752: 53(f64vec4) Load 55(dvec4v) + 753: 53(f64vec4) Load 55(dvec4v) 754: 749 OuterProduct 752 753 Store 751(dmat4v) 754 - 758: 48(fvec3) Load 50(dvec3v) - 759: 43(fvec2) Load 45(dvec2v) + 758: 48(f64vec3) Load 50(dvec3v) + 759: 43(f64vec2) Load 45(dvec2v) 760: 755 OuterProduct 758 759 Store 757(dmat2x3v) 760 - 764: 43(fvec2) Load 45(dvec2v) - 765: 48(fvec3) Load 50(dvec3v) + 764: 43(f64vec2) Load 45(dvec2v) + 765: 48(f64vec3) Load 50(dvec3v) 766: 761 OuterProduct 764 765 Store 763(dmat3x2v) 766 - 770: 53(fvec4) Load 55(dvec4v) - 771: 43(fvec2) Load 45(dvec2v) + 770: 53(f64vec4) Load 55(dvec4v) + 771: 43(f64vec2) Load 45(dvec2v) 772: 767 OuterProduct 770 771 Store 769(dmat2x4v) 772 - 776: 43(fvec2) Load 45(dvec2v) - 777: 53(fvec4) Load 55(dvec4v) + 776: 43(f64vec2) Load 45(dvec2v) + 777: 53(f64vec4) Load 55(dvec4v) 778: 773 OuterProduct 776 777 Store 775(dmat4x2v) 778 - 782: 53(fvec4) Load 55(dvec4v) - 783: 48(fvec3) Load 50(dvec3v) + 782: 53(f64vec4) Load 55(dvec4v) + 783: 48(f64vec3) Load 50(dvec3v) 784: 779 OuterProduct 782 783 Store 781(dmat3x4v) 784 - 788: 48(fvec3) Load 50(dvec3v) - 789: 53(fvec4) Load 55(dvec4v) + 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(fvec2) CompositeExtract 791 0 - 794: 43(fvec2) CompositeExtract 792 0 - 795: 43(fvec2) FMul 793 794 - 796: 43(fvec2) CompositeExtract 791 1 - 797: 43(fvec2) CompositeExtract 792 1 - 798: 43(fvec2) FMul 796 797 + 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(fvec3) CompositeExtract 802 0 - 805: 48(fvec3) CompositeExtract 803 0 - 806: 48(fvec3) FMul 804 805 - 807: 48(fvec3) CompositeExtract 802 1 - 808: 48(fvec3) CompositeExtract 803 1 - 809: 48(fvec3) FMul 807 808 - 810: 48(fvec3) CompositeExtract 802 2 - 811: 48(fvec3) CompositeExtract 803 2 - 812: 48(fvec3) FMul 810 811 + 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(fvec4) CompositeExtract 816 0 - 819: 53(fvec4) CompositeExtract 817 0 - 820: 53(fvec4) FMul 818 819 - 821: 53(fvec4) CompositeExtract 816 1 - 822: 53(fvec4) CompositeExtract 817 1 - 823: 53(fvec4) FMul 821 822 - 824: 53(fvec4) CompositeExtract 816 2 - 825: 53(fvec4) CompositeExtract 817 2 - 826: 53(fvec4) FMul 824 825 - 827: 53(fvec4) CompositeExtract 816 3 - 828: 53(fvec4) CompositeExtract 817 3 - 829: 53(fvec4) FMul 827 828 + 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(fvec3) CompositeExtract 833 0 - 836: 48(fvec3) CompositeExtract 834 0 - 837: 48(fvec3) FMul 835 836 - 838: 48(fvec3) CompositeExtract 833 1 - 839: 48(fvec3) CompositeExtract 834 1 - 840: 48(fvec3) FMul 838 839 + 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(fvec4) CompositeExtract 842 0 - 845: 53(fvec4) CompositeExtract 843 0 - 846: 53(fvec4) FMul 844 845 - 847: 53(fvec4) CompositeExtract 842 1 - 848: 53(fvec4) CompositeExtract 843 1 - 849: 53(fvec4) FMul 847 848 + 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(fvec2) CompositeExtract 851 0 - 854: 43(fvec2) CompositeExtract 852 0 - 855: 43(fvec2) FMul 853 854 - 856: 43(fvec2) CompositeExtract 851 1 - 857: 43(fvec2) CompositeExtract 852 1 - 858: 43(fvec2) FMul 856 857 - 859: 43(fvec2) CompositeExtract 851 2 - 860: 43(fvec2) CompositeExtract 852 2 - 861: 43(fvec2) FMul 859 860 + 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(fvec4) CompositeExtract 863 0 - 866: 53(fvec4) CompositeExtract 864 0 - 867: 53(fvec4) FMul 865 866 - 868: 53(fvec4) CompositeExtract 863 1 - 869: 53(fvec4) CompositeExtract 864 1 - 870: 53(fvec4) FMul 868 869 - 871: 53(fvec4) CompositeExtract 863 2 - 872: 53(fvec4) CompositeExtract 864 2 - 873: 53(fvec4) FMul 871 872 + 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(fvec2) CompositeExtract 875 0 - 878: 43(fvec2) CompositeExtract 876 0 - 879: 43(fvec2) FMul 877 878 - 880: 43(fvec2) CompositeExtract 875 1 - 881: 43(fvec2) CompositeExtract 876 1 - 882: 43(fvec2) FMul 880 881 - 883: 43(fvec2) CompositeExtract 875 2 - 884: 43(fvec2) CompositeExtract 876 2 - 885: 43(fvec2) FMul 883 884 - 886: 43(fvec2) CompositeExtract 875 3 - 887: 43(fvec2) CompositeExtract 876 3 - 888: 43(fvec2) FMul 886 887 + 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(fvec3) CompositeExtract 890 0 - 893: 48(fvec3) CompositeExtract 891 0 - 894: 48(fvec3) FMul 892 893 - 895: 48(fvec3) CompositeExtract 890 1 - 896: 48(fvec3) CompositeExtract 891 1 - 897: 48(fvec3) FMul 895 896 - 898: 48(fvec3) CompositeExtract 890 2 - 899: 48(fvec3) CompositeExtract 891 2 - 900: 48(fvec3) FMul 898 899 - 901: 48(fvec3) CompositeExtract 890 3 - 902: 48(fvec3) CompositeExtract 891 3 - 903: 48(fvec3) FMul 901 902 + 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) @@ -1300,19 +1298,19 @@ Warning, version 400 is not yet complete; most version-specific features are pre 928: 785 Transpose 927 Store 787(dmat4x3v) 928 929: 737 Load 739(dmat2v) - 930: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 929 - 931: 39(float) Load 41(doublev) - 932: 39(float) FAdd 931 930 + 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(float) ExtInst 1(GLSL.std.450) 33(Determinant) 933 - 935: 39(float) Load 41(doublev) - 936: 39(float) FAdd 935 934 + 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(float) ExtInst 1(GLSL.std.450) 33(Determinant) 937 - 939: 39(float) Load 41(doublev) - 940: 39(float) FAdd 939 938 + 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 @@ -1329,62 +1327,62 @@ Warning, version 400 is not yet complete; most version-specific features are pre 951: 749 Load 751(dmat4v) 952: 749 MatrixTimesMatrix 951 950 Store 751(dmat4v) 952 - 953: 39(float) Load 41(doublev) + 953:39(float64_t) Load 41(doublev) 955: 40(ptr) AccessChain 45(dvec2v) 954 - 956: 39(float) Load 955 - 957: 39(float) FAdd 953 956 + 956:39(float64_t) Load 955 + 957:39(float64_t) FAdd 953 956 959: 40(ptr) AccessChain 50(dvec3v) 958 - 960: 39(float) Load 959 - 961: 39(float) FAdd 957 960 + 960:39(float64_t) Load 959 + 961:39(float64_t) FAdd 957 960 963: 40(ptr) AccessChain 55(dvec4v) 962 - 964: 39(float) Load 963 - 965: 39(float) FAdd 961 964 + 964:39(float64_t) Load 963 + 965:39(float64_t) FAdd 961 964 967: 40(ptr) AccessChain 739(dmat2v) 966 954 - 968: 39(float) Load 967 - 969: 39(float) FAdd 965 968 + 968:39(float64_t) Load 967 + 969:39(float64_t) FAdd 965 968 971: 40(ptr) AccessChain 745(dmat3v) 970 958 - 972: 39(float) Load 971 - 973: 39(float) FAdd 969 972 + 972:39(float64_t) Load 971 + 973:39(float64_t) FAdd 969 972 974: 40(ptr) AccessChain 751(dmat4v) 25 962 - 975: 39(float) Load 974 - 976: 39(float) FAdd 973 975 + 975:39(float64_t) Load 974 + 976:39(float64_t) FAdd 973 975 977: 40(ptr) AccessChain 757(dmat2x3v) 966 954 - 978: 39(float) Load 977 - 979: 39(float) FAdd 976 978 + 978:39(float64_t) Load 977 + 979:39(float64_t) FAdd 976 978 980: 40(ptr) AccessChain 763(dmat3x2v) 966 954 - 981: 39(float) Load 980 - 982: 39(float) FAdd 979 981 + 981:39(float64_t) Load 980 + 982:39(float64_t) FAdd 979 981 983: 40(ptr) AccessChain 781(dmat3x4v) 970 958 - 984: 39(float) Load 983 - 985: 39(float) FAdd 982 984 + 984:39(float64_t) Load 983 + 985:39(float64_t) FAdd 982 984 986: 40(ptr) AccessChain 787(dmat4x3v) 970 958 - 987: 39(float) Load 986 - 988: 39(float) FAdd 985 987 + 987:39(float64_t) Load 986 + 988:39(float64_t) FAdd 985 987 989: 40(ptr) AccessChain 769(dmat2x4v) 966 954 - 990: 39(float) Load 989 - 991: 39(float) FAdd 988 990 + 990:39(float64_t) Load 989 + 991:39(float64_t) FAdd 988 990 992: 40(ptr) AccessChain 775(dmat4x2v) 966 954 - 993: 39(float) Load 992 - 994: 39(float) FAdd 991 993 + 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(float) FConvert 997 - 999: 39(float) FAdd 994 998 - 1000: 437(bvec2) Load 439(bvec2v) - 1001: 428(bool) CompositeExtract 1000 0 + 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(float) FConvert 1002 - 1004: 39(float) FAdd 999 1003 - 1005: 446(bvec3) Load 448(bvec3v) - 1006: 428(bool) CompositeExtract 1005 0 + 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(float) FConvert 1007 - 1009: 39(float) FAdd 1004 1008 - 1010: 455(bvec4) Load 457(bvec4v) - 1011: 428(bool) CompositeExtract 1010 0 + 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(float) FConvert 1012 - 1014: 39(float) FAdd 1009 1013 + 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.400.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.400.tesc.out index 68b142e5af..ce7c3afa4b 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.400.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/spv.400.tesc.out @@ -1,16 +1,14 @@ spv.400.tesc -Warning, version 400 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 93 +// 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 54 68 73 79 83 84 87 88 91 92 + 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" @@ -34,17 +32,17 @@ Warning, version 400 is not yet complete; most version-specific features are pre MemberName 50(gl_PerVertex) 0 "gl_Position" MemberName 50(gl_PerVertex) 1 "gl_PointSize" MemberName 50(gl_PerVertex) 2 "gl_ClipDistance" - Name 54 "gl_out" - Name 68 "gl_TessLevelOuter" - Name 73 "gl_TessLevelInner" - Name 78 "outa" - Name 79 "patchOut" - Name 83 "inb" - Name 84 "ind" - Name 87 "ivla" - Name 88 "ivlb" - Name 91 "ovla" - Name 92 "ovlb" + 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 @@ -56,20 +54,20 @@ Warning, version 400 is not yet complete; most version-specific features are pre MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance Decorate 50(gl_PerVertex) Block - Decorate 68(gl_TessLevelOuter) Patch - Decorate 68(gl_TessLevelOuter) BuiltIn TessLevelOuter - Decorate 73(gl_TessLevelInner) Patch - Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner - Decorate 79(patchOut) Patch - Decorate 87(ivla) Location 3 - Decorate 88(ivlb) Location 4 - Decorate 91(ovla) Location 3 - Decorate 92(ovlb) Location 4 + 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 1 + 8: 6(int) Constant 4 9: 6(int) Constant 0 10: TypeInt 32 1 11: TypePointer Function 10(int) @@ -96,37 +94,36 @@ Warning, version 400 is not yet complete; most version-specific features are pre 47(gl_InvocationID): 40(ptr) Variable Input 49: TypeArray 14(float) 7 50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49 - 51: 6(int) Constant 4 - 52: TypeArray 50(gl_PerVertex) 51 - 53: TypePointer Output 52 - 54(gl_out): 53(ptr) Variable Output - 57: TypePointer Output 15(fvec4) - 61: TypePointer Output 14(float) - 66: TypeArray 14(float) 51 - 67: TypePointer Output 66 -68(gl_TessLevelOuter): 67(ptr) Variable Output - 69: 10(int) Constant 3 - 70: 14(float) Constant 1078774989 - 72: TypePointer Output 49 -73(gl_TessLevelInner): 72(ptr) Variable Output - 74: 14(float) Constant 1067869798 - 76: TypeArray 10(int) 51 - 77: TypePointer Private 76 - 78(outa): 77(ptr) Variable Private - 79(patchOut): 57(ptr) Variable Output - 80: TypeVector 14(float) 2 - 81: TypeArray 80(fvec2) 21 - 82: TypePointer Input 81 - 83(inb): 82(ptr) Variable Input - 84(ind): 82(ptr) Variable Input - 85: TypeArray 15(fvec4) 21 - 86: TypePointer Input 85 - 87(ivla): 86(ptr) Variable Input - 88(ivlb): 86(ptr) Variable Input - 89: TypeArray 15(fvec4) 51 - 90: TypePointer Output 89 - 91(ovla): 90(ptr) Variable Output - 92(ovlb): 90(ptr) Variable Output + 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 @@ -153,21 +150,21 @@ Warning, version 400 is not yet complete; most version-specific features are pre Store 43(pid) 45 48: 10(int) Load 47(gl_InvocationID) Store 46(iid) 48 - 55: 10(int) Load 47(gl_InvocationID) - 56: 15(fvec4) Load 17(p) - 58: 57(ptr) AccessChain 54(gl_out) 55 26 - Store 58 56 - 59: 10(int) Load 47(gl_InvocationID) - 60: 14(float) Load 31(ps) - 62: 61(ptr) AccessChain 54(gl_out) 59 25 - Store 62 60 - 63: 10(int) Load 47(gl_InvocationID) - 64: 14(float) Load 35(cd) - 65: 61(ptr) AccessChain 54(gl_out) 63 36 25 - Store 65 64 - 71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69 - Store 71 70 - 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 25 - Store 75 74 + 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 index 0c62bed6d2..43b6a9159a 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.400.tese.out +++ b/deps/glslang/glslang/Test/baseResults/spv.400.tese.out @@ -1,8 +1,6 @@ spv.400.tese -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 96 Capability Tessellation diff --git a/deps/glslang/glslang/Test/baseResults/spv.420.geom.out b/deps/glslang/glslang/Test/baseResults/spv.420.geom.out index 6413d5a452..74a4f0b31f 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.420.geom.out +++ b/deps/glslang/glslang/Test/baseResults/spv.420.geom.out @@ -1,8 +1,6 @@ spv.420.geom -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 72 Capability Geometry diff --git a/deps/glslang/glslang/Test/baseResults/spv.430.frag.out b/deps/glslang/glslang/Test/baseResults/spv.430.frag.out index abe2a58a0e..330489f2df 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.430.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.430.frag.out @@ -1,8 +1,6 @@ spv.430.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 24 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.430.vert.out b/deps/glslang/glslang/Test/baseResults/spv.430.vert.out index 8ea95d1a73..1cd9e619e7 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.430.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.430.vert.out @@ -1,8 +1,6 @@ spv.430.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 66 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.450.geom.out b/deps/glslang/glslang/Test/baseResults/spv.450.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.450.geom.out rename to deps/glslang/glslang/Test/baseResults/spv.450.geom.out diff --git a/deps/glslang-new/Test/baseResults/spv.450.noRedecl.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.450.noRedecl.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.450.noRedecl.tesc.out rename to deps/glslang/glslang/Test/baseResults/spv.450.noRedecl.tesc.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.450.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.450.tesc.out index a0bf3dd3ba..35653fdef7 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.450.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/spv.450.tesc.out @@ -1,79 +1,120 @@ spv.450.tesc -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 23 +// 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" 9 16 19 22 + EntryPoint TessellationControl 4 "main" 15 18 25 32 38 41 44 ExecutionMode 4 OutputVertices 4 Source GLSL 450 Name 4 "main" - Name 9 "patchOut" - Name 10 "S" - MemberName 10(S) 0 "sMem1" - MemberName 10(S) 1 "sMem2" - Name 11 "TheBlock" - MemberName 11(TheBlock) 0 "bMem1" - MemberName 11(TheBlock) 1 "bMem2" - MemberName 11(TheBlock) 2 "s" - Name 16 "tcBlock" - Name 17 "SingleBlock" - MemberName 17(SingleBlock) 0 "bMem1" - MemberName 17(SingleBlock) 1 "bMem2" - MemberName 17(SingleBlock) 2 "s" - Name 19 "singleBlock" - Name 20 "bn" - MemberName 20(bn) 0 "v1" - MemberName 20(bn) 1 "v2" - MemberName 20(bn) 2 "v3" - Name 22 "" - Decorate 9(patchOut) Patch - MemberDecorate 11(TheBlock) 0 Patch - MemberDecorate 11(TheBlock) 1 Patch - MemberDecorate 11(TheBlock) 2 Patch - Decorate 11(TheBlock) Block - Decorate 16(tcBlock) Location 12 - MemberDecorate 17(SingleBlock) 0 Patch - MemberDecorate 17(SingleBlock) 0 Location 2 - MemberDecorate 17(SingleBlock) 1 Patch - MemberDecorate 17(SingleBlock) 1 Location 3 - MemberDecorate 17(SingleBlock) 2 Patch - MemberDecorate 17(SingleBlock) 2 Location 4 - Decorate 17(SingleBlock) Block - Decorate 19(singleBlock) Location 2 - MemberDecorate 20(bn) 0 Patch - MemberDecorate 20(bn) 0 Location 20 - MemberDecorate 20(bn) 0 Component 0 - MemberDecorate 20(bn) 1 Patch - MemberDecorate 20(bn) 1 Location 24 - MemberDecorate 20(bn) 2 Patch - MemberDecorate 20(bn) 2 Location 25 - MemberDecorate 20(bn) 2 Component 0 - Decorate 20(bn) Block + 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: TypePointer Output 7(fvec4) - 9(patchOut): 8(ptr) Variable Output - 10(S): TypeStruct 6(float) 6(float) - 11(TheBlock): TypeStruct 6(float) 6(float) 10(S) - 12: TypeInt 32 0 - 13: 12(int) Constant 2 - 14: TypeArray 11(TheBlock) 13 - 15: TypePointer Output 14 - 16(tcBlock): 15(ptr) Variable Output - 17(SingleBlock): TypeStruct 6(float) 6(float) 10(S) - 18: TypePointer Output 17(SingleBlock) - 19(singleBlock): 18(ptr) Variable Output - 20(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) - 21: TypePointer Output 20(bn) - 22: 21(ptr) Variable Output + 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-new/Test/baseResults/spv.460.comp.out b/deps/glslang/glslang/Test/baseResults/spv.460.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.460.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.460.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.460.frag.out b/deps/glslang/glslang/Test/baseResults/spv.460.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.460.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.460.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.460.vert.out b/deps/glslang/glslang/Test/baseResults/spv.460.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.460.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.460.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.AofA.frag.out b/deps/glslang/glslang/Test/baseResults/spv.AofA.frag.out index 4eb756301b..a19fae9218 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.AofA.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.AofA.frag.out @@ -1,8 +1,8 @@ spv.AofA.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. +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): 80001 +// Generated by (magic number): 80007 // Id's are bound by 104 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.GeometryShaderPassthrough.geom.out b/deps/glslang/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.GeometryShaderPassthrough.geom.out rename to deps/glslang/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out diff --git a/deps/glslang-new/Test/baseResults/spv.OVR_multiview.vert.out b/deps/glslang/glslang/Test/baseResults/spv.OVR_multiview.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.OVR_multiview.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.OVR_multiview.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.Operations.frag.out b/deps/glslang/glslang/Test/baseResults/spv.Operations.frag.out index 1a74192ee5..4113ddf119 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.Operations.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.Operations.frag.out @@ -1,14 +1,12 @@ spv.Operations.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 509 +// 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 503 508 + EntryPoint Fragment 4 "main" 11 22 212 288 485 526 531 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -24,13 +22,15 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 305 "b" Name 342 "ub42" Name 485 "FragColor" - Name 503 "uiv4" - Name 505 "ub" - Name 508 "uuv4" + Name 503 "m1" + Name 510 "m2" + Name 526 "uiv4" + Name 528 "ub" + Name 531 "uuv4" Decorate 22(ui) Flat Decorate 288(uui) Flat - Decorate 503(uiv4) Flat - Decorate 508(uuv4) Flat + Decorate 526(uiv4) Flat + Decorate 531(uuv4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -65,14 +65,24 @@ Warning, version 450 is not yet complete; most version-specific features are pre 472: 18(int) Constant 17 484: TypePointer Output 7(fvec4) 485(FragColor): 484(ptr) Variable Output - 501: TypeVector 18(int) 4 - 502: TypePointer Input 501(ivec4) - 503(uiv4): 502(ptr) Variable Input - 504: TypePointer Private 178(bool) - 505(ub): 504(ptr) Variable Private - 506: TypeVector 141(int) 4 - 507: TypePointer Input 506(ivec4) - 508(uuv4): 507(ptr) Variable Input + 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 @@ -80,7 +90,10 @@ Warning, version 450 is not yet complete; most version-specific features are pre 188(f): 143(ptr) Variable Function 285(u): 284(ptr) Variable Function 305(b): 304(ptr) Variable Function - 486: 8(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 @@ -645,9 +658,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre 482: 178(bool) Load 305(b) 483: 178(bool) LogicalNot 482 Store 305(b) 483 - 487: 178(bool) Load 305(b) + 486: 178(bool) Load 305(b) SelectionMerge 489 None - BranchConditional 487 488 498 + BranchConditional 486 488 498 488: Label 490: 18(int) Load 20(i) 491: 6(float) ConvertSToF 490 @@ -657,14 +670,33 @@ Warning, version 450 is not yet complete; most version-specific features are pre 495: 7(fvec4) FAdd 492 494 496: 7(fvec4) Load 9(v) 497: 7(fvec4) FAdd 495 496 - Store 486 497 + Store 487 497 Branch 489 498: Label 499: 7(fvec4) Load 9(v) - Store 486 499 + Store 487 499 Branch 489 489: Label - 500: 7(fvec4) Load 486 + 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 index b319cfd13d..bf878292fa 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.accessChain.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.accessChain.frag.out @@ -1,14 +1,12 @@ spv.accessChain.frag -Warning, version 420 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 206 +// 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" 65 158 + EntryPoint Fragment 4 "main" 69 170 ExecutionMode 4 OriginUpperLeft Source GLSL 420 Name 4 "main" @@ -52,12 +50,12 @@ Warning, version 420 is not yet complete; most version-specific features are pre Name 62 "GetColor13(struct-S-vf31;i1;" Name 60 "i" Name 61 "comp" - Name 65 "OutColor" - Name 153 "s" - Name 158 "u" - Name 159 "param" - Name 163 "param" - Name 167 "param" + 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" @@ -67,8 +65,12 @@ Warning, version 420 is not yet complete; most version-specific features are pre Name 195 "param" Name 199 "param" Name 203 "param" - Decorate 65(OutColor) Location 0 - Decorate 158(u) Flat + 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 @@ -78,25 +80,27 @@ Warning, version 420 is not yet complete; most version-specific features are pre 13: TypeInt 32 1 14: TypePointer Function 13(int) 15: TypeFunction 2 8(S) 14(ptr) - 64: TypePointer Output 7(fvec3) - 65(OutColor): 64(ptr) Variable Output - 66: 13(int) Constant 0 - 67: TypeInt 32 0 - 68: 67(int) Constant 0 - 95: TypeVector 6(float) 2 - 109: 67(int) Constant 2 - 136: TypePointer Output 6(float) - 150: 6(float) Constant 0 - 151: 7(fvec3) ConstantComposite 150 150 150 - 152: TypePointer Function 8(S) - 157: TypePointer Input 13(int) - 158(u): 157(ptr) Variable Input + 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 - 153(s): 152(ptr) Variable Function - 159(param): 14(ptr) Variable Function - 163(param): 14(ptr) Variable Function - 167(param): 14(ptr) Variable Function + 165(s): 164(ptr) Variable Function 171(param): 14(ptr) Variable Function 175(param): 14(ptr) Variable Function 179(param): 14(ptr) Variable Function @@ -106,224 +110,242 @@ Warning, version 420 is not yet complete; most version-specific features are pre 195(param): 14(ptr) Variable Function 199(param): 14(ptr) Variable Function 203(param): 14(ptr) Variable Function - Store 65(OutColor) 151 - 154: 8(S) Load 153(s) - 155: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 154 - 156: 8(S) Load 153(s) - 160: 13(int) Load 158(u) - Store 159(param) 160 - 161: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 156 159(param) - 162: 8(S) Load 153(s) - 164: 13(int) Load 158(u) - Store 163(param) 164 - 165: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 162 163(param) - 166: 8(S) Load 153(s) - 168: 13(int) Load 158(u) - Store 167(param) 168 - 169: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 166 167(param) - 170: 8(S) Load 153(s) - 172: 13(int) Load 158(u) + 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 30(GetColor5(struct-S-vf31;i1;) 170 171(param) - 174: 8(S) Load 153(s) - 176: 13(int) Load 158(u) + 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 34(GetColor6(struct-S-vf31;i1;) 174 175(param) - 178: 8(S) Load 153(s) - 180: 13(int) Load 158(u) + 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 38(GetColor7(struct-S-vf31;i1;) 178 179(param) - 182: 8(S) Load 153(s) - 184: 13(int) Load 158(u) + 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 42(GetColor8(struct-S-vf31;i1;) 182 183(param) - 186: 8(S) Load 153(s) - 188: 13(int) Load 158(u) + 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 46(GetColor9(struct-S-vf31;i1;) 186 187(param) - 190: 8(S) Load 153(s) - 192: 13(int) Load 158(u) + 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 50(GetColor10(struct-S-vf31;i1;) 190 191(param) - 194: 8(S) Load 153(s) - 196: 13(int) Load 158(u) + 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 54(GetColor11(struct-S-vf31;i1;) 194 195(param) - 198: 8(S) Load 153(s) - 200: 13(int) Load 158(u) + 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 58(GetColor12(struct-S-vf31;i1;) 198 199(param) - 202: 8(S) Load 153(s) - 204: 13(int) Load 158(u) + 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 62(GetColor13(struct-S-vf31;i1;) 202 203(param) + 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 - 69: 6(float) CompositeExtract 10(i) 0 0 - 70: 7(fvec3) Load 65(OutColor) - 71: 7(fvec3) CompositeConstruct 69 69 69 - 72: 7(fvec3) FAdd 70 71 - Store 65(OutColor) 72 + 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 - 73: 13(int) Load 17(comp) - 74: 7(fvec3) CompositeExtract 16(i) 0 - 75: 6(float) VectorExtractDynamic 74 73 - 76: 7(fvec3) Load 65(OutColor) - 77: 7(fvec3) CompositeConstruct 75 75 75 - 78: 7(fvec3) FAdd 76 77 - Store 65(OutColor) 78 + 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 - 79: 13(int) Load 21(comp) - 80: 7(fvec3) CompositeExtract 20(i) 0 - 81: 6(float) VectorExtractDynamic 80 79 - 82: 7(fvec3) Load 65(OutColor) - 83: 7(fvec3) CompositeConstruct 81 81 81 - 84: 7(fvec3) FAdd 82 83 - Store 65(OutColor) 84 + 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 - 85: 13(int) Load 25(comp) - 86: 7(fvec3) CompositeExtract 24(i) 0 - 87: 6(float) VectorExtractDynamic 86 85 - 88: 7(fvec3) Load 65(OutColor) - 89: 7(fvec3) CompositeConstruct 87 87 87 - 90: 7(fvec3) FAdd 88 89 - Store 65(OutColor) 90 + 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 - 91: 7(fvec3) CompositeExtract 28(i) 0 - 92: 7(fvec3) Load 65(OutColor) - 93: 7(fvec3) FAdd 92 91 - Store 65(OutColor) 93 + 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 - 94: 13(int) Load 33(comp) - 96: 7(fvec3) CompositeExtract 32(i) 0 - 97: 95(fvec2) VectorShuffle 96 96 1 0 - 98: 6(float) VectorExtractDynamic 97 94 - 99: 7(fvec3) Load 65(OutColor) - 100: 7(fvec3) CompositeConstruct 98 98 98 - 101: 7(fvec3) FAdd 99 100 - Store 65(OutColor) 101 + 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 - 102: 7(fvec3) CompositeExtract 36(i) 0 - 103: 95(fvec2) VectorShuffle 102 102 0 1 - 104: 7(fvec3) Load 65(OutColor) - 105: 95(fvec2) VectorShuffle 104 104 0 1 - 106: 95(fvec2) FAdd 105 103 - 107: 7(fvec3) Load 65(OutColor) - 108: 7(fvec3) VectorShuffle 107 106 3 4 2 - Store 65(OutColor) 108 + 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 - 110: 6(float) CompositeExtract 40(i) 0 2 - 111: 7(fvec3) Load 65(OutColor) - 112: 7(fvec3) CompositeConstruct 110 110 110 - 113: 7(fvec3) FAdd 111 112 - Store 65(OutColor) 113 + 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 - 114: 7(fvec3) CompositeExtract 44(i) 0 - 115: 7(fvec3) Load 65(OutColor) - 116: 7(fvec3) VectorShuffle 115 115 2 0 1 - 117: 7(fvec3) FAdd 116 114 - 118: 7(fvec3) Load 65(OutColor) - 119: 7(fvec3) VectorShuffle 118 117 4 5 3 - Store 65(OutColor) 119 + 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 - 120: 7(fvec3) CompositeExtract 48(i) 0 - 121: 95(fvec2) VectorShuffle 120 120 0 1 - 122: 7(fvec3) Load 65(OutColor) - 123: 95(fvec2) VectorShuffle 122 122 2 1 - 124: 95(fvec2) FAdd 123 121 - 125: 7(fvec3) Load 65(OutColor) - 126: 7(fvec3) VectorShuffle 125 124 0 4 3 - Store 65(OutColor) 126 + 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 - 127: 7(fvec3) CompositeExtract 52(i) 0 - 128: 95(fvec2) VectorShuffle 127 127 0 1 - 129: 7(fvec3) Load 65(OutColor) - 130: 95(fvec2) VectorShuffle 129 129 0 2 - 131: 95(fvec2) FAdd 130 128 - 132: 7(fvec3) Load 65(OutColor) - 133: 7(fvec3) VectorShuffle 132 131 3 1 4 - Store 65(OutColor) 133 + 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 - 134: 13(int) Load 57(comp) - 135: 6(float) CompositeExtract 56(i) 0 0 - 137: 136(ptr) AccessChain 65(OutColor) 134 - 138: 6(float) Load 137 - 139: 6(float) FAdd 138 135 - 140: 136(ptr) AccessChain 65(OutColor) 134 - Store 140 139 + 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 - 141: 13(int) Load 61(comp) - 142: 6(float) CompositeExtract 60(i) 0 0 - 143: 7(fvec3) Load 65(OutColor) - 144: 95(fvec2) VectorShuffle 143 143 2 1 - 145: 6(float) VectorExtractDynamic 144 141 - 146: 6(float) FAdd 145 142 - 147: 7(fvec3) Load 65(OutColor) - 148: 7(fvec3) VectorShuffle 147 147 2 1 2 - 149: 7(fvec3) VectorInsertDynamic 148 146 141 - Store 65(OutColor) 149 + 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 index c3ceb9a67b..1c0c7e91c4 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.aggOps.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.aggOps.frag.out @@ -1,10 +1,9 @@ spv.aggOps.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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): 80001 +// Generated by (magic number): 80007 // Id's are bound by 215 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.always-discard.frag.out b/deps/glslang/glslang/Test/baseResults/spv.always-discard.frag.out index 652d45c846..8074cf8264 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.always-discard.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.always-discard.frag.out @@ -1,6 +1,6 @@ spv.always-discard.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 84 Capability Shader @@ -18,6 +18,7 @@ spv.always-discard.frag Name 30 "y" Name 36 "radius" Name 59 "gl_FragColor" + Decorate 59(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang/Test/baseResults/spv.always-discard2.frag.out b/deps/glslang/glslang/Test/baseResults/spv.always-discard2.frag.out index 0bbb9eee89..e3fa43a394 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.always-discard2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.always-discard2.frag.out @@ -1,6 +1,6 @@ spv.always-discard2.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 40 Capability Shader @@ -17,6 +17,7 @@ spv.always-discard2.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.arbPostDepthCoverage.frag.out b/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.arbPostDepthCoverage.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out b/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.atomic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.atomic.comp.out index 97c7f6e3ab..3dd88f398a 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.atomic.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.atomic.comp.out @@ -1,9 +1,7 @@ spv.atomic.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 73 +// Generated by (magic number): 80007 +// Id's are bound by 74 Capability Shader Capability AtomicStorage @@ -19,29 +17,29 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 20 "counter" Name 23 "val" Name 27 "countArr" - Name 35 "origi" - Name 37 "atomi" - Name 40 "origu" - Name 42 "atomu" - Name 43 "value" - Name 60 "dataSSB" - MemberName 60(dataSSB) 0 "f" - MemberName 60(dataSSB) 1 "n_frames_rendered" - Name 62 "result" - Name 70 "arrX" - Name 71 "arrY" - Name 72 "arrZ" + 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 60(dataSSB) 0 Restrict - MemberDecorate 60(dataSSB) 0 Offset 0 - MemberDecorate 60(dataSSB) 1 Restrict - MemberDecorate 60(dataSSB) 1 Offset 16 - Decorate 60(dataSSB) BufferBlock - Decorate 62(result) DescriptorSet 0 - Decorate 62(result) Binding 0 + 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 @@ -49,7 +47,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre 8: TypeFunction 6(int) 7(ptr) 14: 6(int) Constant 1 15: 6(int) Constant 0 - 19: 6(int) Constant 1024 + 19: 6(int) Constant 1032 20(counter): 7(ptr) Variable AtomicCounter 22: TypePointer Function 6(int) 24: 6(int) Constant 4 @@ -58,29 +56,29 @@ Warning, version 450 is not yet complete; most version-specific features are pre 27(countArr): 26(ptr) Variable AtomicCounter 28: TypeInt 32 1 29: 28(int) Constant 2 - 34: TypePointer Function 28(int) - 36: TypePointer Workgroup 28(int) - 37(atomi): 36(ptr) Variable Workgroup - 38: 28(int) Constant 3 - 41: TypePointer Workgroup 6(int) - 42(atomu): 41(ptr) Variable Workgroup - 43(value): 41(ptr) Variable Workgroup - 46: 6(int) Constant 7 - 51: 28(int) Constant 7 - 55: 6(int) Constant 10 - 58: TypeFloat 32 - 59: TypeVector 28(int) 4 - 60(dataSSB): TypeStruct 58(float) 59(ivec4) - 61: TypePointer Uniform 60(dataSSB) - 62(result): 61(ptr) Variable Uniform - 63: 28(int) Constant 1 - 64: 6(int) Constant 2 - 65: TypePointer Uniform 28(int) - 68: TypeArray 28(int) 14 - 69: TypePointer Private 68 - 70(arrX): 69(ptr) Variable Private - 71(arrY): 69(ptr) Variable Private - 72(arrZ): 69(ptr) Variable Private + 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 @@ -90,7 +88,8 @@ Warning, version 450 is not yet complete; most version-specific features are pre 31: 6(int) AtomicLoad 30 14 15 Store 23(val) 31 32: 6(int) AtomicIDecrement 20(counter) 14 15 - 33: 6(int) AtomicIIncrement 20(counter) 14 15 + 34: 6(int) ISub 32 33 + 35: 6(int) AtomicIIncrement 20(counter) 14 15 Return FunctionEnd 10(func(au1;): 6(int) Function None 8 @@ -101,29 +100,29 @@ Warning, version 450 is not yet complete; most version-specific features are pre FunctionEnd 12(atoms(): 2 Function None 3 13: Label - 35(origi): 34(ptr) Variable Function - 40(origu): 22(ptr) Variable Function - 39: 28(int) AtomicIAdd 37(atomi) 14 15 38 - Store 35(origi) 39 - 44: 6(int) Load 43(value) - 45: 6(int) AtomicAnd 42(atomu) 14 15 44 - Store 40(origu) 45 - 47: 6(int) AtomicOr 42(atomu) 14 15 46 - Store 40(origu) 47 - 48: 6(int) AtomicXor 42(atomu) 14 15 46 - Store 40(origu) 48 - 49: 6(int) Load 43(value) - 50: 6(int) AtomicUMin 42(atomu) 14 15 49 - Store 40(origu) 50 - 52: 28(int) AtomicSMax 37(atomi) 14 15 51 - Store 35(origi) 52 - 53: 28(int) Load 35(origi) - 54: 28(int) AtomicExchange 37(atomi) 14 15 53 - Store 35(origi) 54 - 56: 6(int) Load 43(value) - 57: 6(int) AtomicCompareExchange 42(atomu) 14 15 15 56 55 - Store 40(origu) 57 - 66: 65(ptr) AccessChain 62(result) 63 64 - 67: 28(int) AtomicIAdd 66 14 15 63 + 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-new/Test/baseResults/spv.atomicInt64.comp.out b/deps/glslang/glslang/Test/baseResults/spv.atomicInt64.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.atomicInt64.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.atomicInt64.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.barrier.vert.out b/deps/glslang/glslang/Test/baseResults/spv.barrier.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.barrier.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.barrier.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.bitCast.frag.out b/deps/glslang/glslang/Test/baseResults/spv.bitCast.frag.out index 07dd729e6d..a687b8da2e 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.bitCast.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.bitCast.frag.out @@ -1,8 +1,6 @@ spv.bitCast.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 +// Generated by (magic number): 80007 // Id's are bound by 172 Capability Shader @@ -88,8 +86,8 @@ Warning, version 450 is not yet complete; most version-specific features are pre 148(u4): 147(ptr) Variable Input 153: TypePointer Output 46(fvec4) 154(fragColor): 153(ptr) Variable Output - 159: TypeBool - 160: TypeVector 159(bool) 4 + 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 @@ -97,7 +95,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre 9(idata): 8(ptr) Variable Function 55(udata): 54(ptr) Variable Function 85(fdata): 84(ptr) Variable Function - 155: 84(ptr) Variable Function + 162: 84(ptr) Variable Function Store 9(idata) 11 15: 12(float) Load 14(f1) 16: 6(int) Bitcast 15 @@ -213,24 +211,24 @@ Warning, version 450 is not yet complete; most version-specific features are pre 151: 46(fvec4) Load 85(fdata) 152: 46(fvec4) FAdd 151 150 Store 85(fdata) 152 - 156: 7(ivec4) Load 9(idata) - 157: 53(ivec4) Bitcast 156 - 158: 53(ivec4) Load 55(udata) - 161: 160(bvec4) IEqual 157 158 - 162: 159(bool) All 161 + 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 162 163 166 + BranchConditional 161 163 166 163: Label 165: 46(fvec4) Load 85(fdata) - Store 155 165 + Store 162 165 Branch 164 166: Label 167: 46(fvec4) Load 85(fdata) 170: 46(fvec4) FAdd 167 169 - Store 155 170 + Store 162 170 Branch 164 164: Label - 171: 46(fvec4) Load 155 + 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 index f84687a5bc..becd707a0c 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.bool.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.bool.vert.out @@ -1,9 +1,7 @@ spv.bool.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 49 +// Generated by (magic number): 80007 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -19,18 +17,18 @@ Warning, version 450 is not yet complete; most version-specific features are pre MemberName 22(gl_PerVertex) 2 "gl_ClipDistance" MemberName 22(gl_PerVertex) 3 "gl_CullDistance" Name 24 "" - Name 29 "ubname" - MemberName 29(ubname) 0 "b" - Name 31 "ubinst" - Name 32 "param" + 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 29(ubname) 0 Offset 0 - Decorate 29(ubname) Block - Decorate 31(ubinst) DescriptorSet 0 + MemberDecorate 27(ubname) 0 Offset 0 + Decorate 27(ubname) Block + Decorate 29(ubinst) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -47,38 +45,29 @@ Warning, version 450 is not yet complete; most version-specific features are pre 24: 23(ptr) Variable Output 25: TypeInt 32 1 26: 25(int) Constant 0 - 27: TypePointer Function 18(fvec4) - 29(ubname): TypeStruct 19(int) - 30: TypePointer Uniform 29(ubname) - 31(ubinst): 30(ptr) Variable Uniform - 33: TypePointer Uniform 19(int) - 36: 19(int) Constant 0 - 41: 17(float) Constant 0 - 42: 18(fvec4) ConstantComposite 41 41 41 41 - 44: 17(float) Constant 1065353216 - 45: 18(fvec4) ConstantComposite 44 44 44 44 - 47: TypePointer Output 18(fvec4) + 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 - 28: 27(ptr) Variable Function - 32(param): 7(ptr) Variable Function - 34: 33(ptr) AccessChain 31(ubinst) 26 - 35: 19(int) Load 34 - 37: 6(bool) INotEqual 35 36 - Store 32(param) 37 - 38: 6(bool) FunctionCall 10(foo(b1;) 32(param) - SelectionMerge 40 None - BranchConditional 38 39 43 - 39: Label - Store 28 42 - Branch 40 - 43: Label - Store 28 45 - Branch 40 - 40: Label - 46: 18(fvec4) Load 28 - 48: 47(ptr) AccessChain 24 26 - Store 48 46 + 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.boolInBlock.frag.out b/deps/glslang/glslang/Test/baseResults/spv.boolInBlock.frag.out index 2181f26d68..e86ca6b3f7 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.boolInBlock.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.boolInBlock.frag.out @@ -1,14 +1,12 @@ spv.boolInBlock.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 107 +// 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" 75 + EntryPoint Fragment 4 "main" 74 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -16,24 +14,24 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 12 "paramb4" Name 13 "paramb2" Name 17 "b1" - Name 24 "Buffer" - MemberName 24(Buffer) 0 "b2" - Name 26 "" - Name 39 "Uniform" - MemberName 39(Uniform) 0 "b4" - Name 41 "" - Name 62 "param" - Name 67 "param" - Name 75 "fragColor" - MemberDecorate 24(Buffer) 0 Offset 0 - Decorate 24(Buffer) BufferBlock - Decorate 26 DescriptorSet 0 - Decorate 26 Binding 1 - MemberDecorate 39(Uniform) 0 Offset 0 - Decorate 39(Uniform) Block - Decorate 41 DescriptorSet 0 - Decorate 41 Binding 0 - Decorate 75(fragColor) Location 0 + 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 @@ -43,111 +41,106 @@ Warning, version 450 is not yet complete; most version-specific features are pre 10: TypePointer Function 9(bvec2) 11: TypeFunction 2 8(ptr) 10(ptr) 16: TypePointer Function 6(bool) - 22: TypeInt 32 0 - 23: TypeVector 22(int) 2 - 24(Buffer): TypeStruct 23(ivec2) - 25: TypePointer Uniform 24(Buffer) - 26: 25(ptr) Variable Uniform - 27: TypeInt 32 1 - 28: 27(int) Constant 0 - 29: 6(bool) ConstantFalse - 30: 9(bvec2) ConstantComposite 29 29 - 31: 22(int) Constant 0 - 32: 23(ivec2) ConstantComposite 31 31 - 33: 22(int) Constant 1 - 34: 23(ivec2) ConstantComposite 33 33 - 36: TypePointer Uniform 23(ivec2) - 38: TypeVector 22(int) 4 - 39(Uniform): TypeStruct 38(ivec4) - 40: TypePointer Uniform 39(Uniform) - 41: 40(ptr) Variable Uniform - 42: TypePointer Uniform 38(ivec4) - 65: 38(ivec4) ConstantComposite 31 31 31 31 - 72: TypeFloat 32 - 73: TypeVector 72(float) 4 - 74: TypePointer Output 73(fvec4) - 75(fragColor): 74(ptr) Variable Output - 87: 72(float) Constant 0 - 88: 72(float) Constant 1065353216 + 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 - 62(param): 8(ptr) Variable Function - 67(param): 10(ptr) Variable Function - 35: 23(ivec2) Select 30 34 32 - 37: 36(ptr) AccessChain 26 28 - Store 37 35 - 43: 42(ptr) AccessChain 41 28 - 44: 38(ivec4) Load 43 - 45: 22(int) CompositeExtract 44 2 - 46: 6(bool) INotEqual 45 31 + 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: 42(ptr) AccessChain 41 28 - 50: 38(ivec4) Load 49 - 51: 22(int) CompositeExtract 50 0 - 52: 6(bool) INotEqual 51 31 - 53: 9(bvec2) CompositeConstruct 52 52 - 54: 23(ivec2) Select 53 34 32 - 55: 36(ptr) AccessChain 26 28 - Store 55 54 + 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 - 56: 36(ptr) AccessChain 26 28 - 57: 23(ivec2) Load 56 - 58: 22(int) CompositeExtract 57 0 - 59: 6(bool) INotEqual 58 31 - SelectionMerge 61 None - BranchConditional 59 60 61 - 60: Label - 63: 42(ptr) AccessChain 41 28 - 64: 38(ivec4) Load 63 - 66: 7(bvec4) INotEqual 64 65 - Store 62(param) 66 - 68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param) - 69: 9(bvec2) Load 67(param) - 70: 23(ivec2) Select 69 34 32 - 71: 36(ptr) AccessChain 26 28 - Store 71 70 - Branch 61 - 61: Label - 76: 42(ptr) AccessChain 41 28 - 77: 38(ivec4) Load 76 - 78: 22(int) CompositeExtract 77 0 - 79: 6(bool) INotEqual 78 31 - SelectionMerge 81 None - BranchConditional 79 80 81 - 80: Label - 82: 42(ptr) AccessChain 41 28 - 83: 38(ivec4) Load 82 - 84: 22(int) CompositeExtract 83 1 - 85: 6(bool) INotEqual 84 31 - Branch 81 - 81: Label - 86: 6(bool) Phi 79 61 85 80 - 89: 72(float) Select 86 88 87 - 90: 73(fvec4) CompositeConstruct 89 89 89 89 - Store 75(fragColor) 90 - 91: 42(ptr) AccessChain 41 28 - 92: 38(ivec4) Load 91 - 93: 22(int) CompositeExtract 92 0 - 94: 6(bool) INotEqual 93 31 - 95: 6(bool) LogicalNot 94 - SelectionMerge 97 None - BranchConditional 95 96 97 - 96: Label - 98: 42(ptr) AccessChain 41 28 - 99: 38(ivec4) Load 98 - 100: 22(int) CompositeExtract 99 1 - 101: 6(bool) INotEqual 100 31 - Branch 97 - 97: Label - 102: 6(bool) Phi 94 81 101 96 - 103: 72(float) Select 102 88 87 - 104: 73(fvec4) CompositeConstruct 103 103 103 103 - 105: 73(fvec4) Load 75(fragColor) - 106: 73(fvec4) FSub 105 104 - Store 75(fragColor) 106 + 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 @@ -155,11 +148,11 @@ Warning, version 450 is not yet complete; most version-specific features are pre 13(paramb2): 10(ptr) FunctionParameter 15: Label 17(b1): 16(ptr) Variable Function - 18: 7(bvec4) Load 12(paramb4) - 19: 6(bool) CompositeExtract 18 2 - Store 17(b1) 19 - 20: 6(bool) Load 17(b1) - 21: 9(bvec2) CompositeConstruct 20 20 - Store 13(paramb2) 21 + 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 index 9093135b95..ca44724587 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.branch-return.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.branch-return.vert.out @@ -1,8 +1,6 @@ spv.branch-return.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 38 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.buffer.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.buffer.autoassign.frag.out index f2c8d6d923..507318f7a6 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.buffer.autoassign.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.buffer.autoassign.frag.out @@ -1,85 +1,93 @@ spv.buffer.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 45 +// 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 + 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 "psout" - Name 13 "MyUB1" - MemberName 13(MyUB1) 0 "g_a" - MemberName 13(MyUB1) 1 "g_b" - Name 15 "" - Name 25 "MyUB2" - MemberName 25(MyUB2) 0 "g_c" - Name 27 "" - Name 31 "MyUB3" - MemberName 31(MyUB3) 0 "g_d" - Name 33 "" - Name 41 "Color" - MemberDecorate 13(MyUB1) 0 Offset 0 - MemberDecorate 13(MyUB1) 1 Offset 4 - Decorate 13(MyUB1) Block - Decorate 15 DescriptorSet 0 - Decorate 15 Binding 20 - MemberDecorate 25(MyUB2) 0 Offset 0 - Decorate 25(MyUB2) Block - Decorate 27 DescriptorSet 0 - Decorate 27 Binding 15 - MemberDecorate 31(MyUB3) 0 Offset 0 - Decorate 31(MyUB3) Block - Decorate 33 DescriptorSet 0 - Decorate 33 Binding 16 - Decorate 41(Color) Location 0 + 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: TypePointer Function 8(PS_OUTPUT) - 11: TypeInt 32 1 - 12: 11(int) Constant 0 - 13(MyUB1): TypeStruct 6(float) 11(int) - 14: TypePointer Uniform 13(MyUB1) - 15: 14(ptr) Variable Uniform - 16: TypePointer Uniform 6(float) - 19: 11(int) Constant 1 - 20: TypePointer Uniform 11(int) - 25(MyUB2): TypeStruct 6(float) - 26: TypePointer Uniform 25(MyUB2) - 27: 26(ptr) Variable Uniform - 31(MyUB3): TypeStruct 6(float) - 32: TypePointer Uniform 31(MyUB3) - 33: 32(ptr) Variable Uniform - 38: TypePointer Function 7(fvec4) - 40: TypePointer Output 7(fvec4) - 41(Color): 40(ptr) Variable Output + 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 - 10(psout): 9(ptr) Variable Function - 17: 16(ptr) AccessChain 15 12 - 18: 6(float) Load 17 - 21: 20(ptr) AccessChain 15 19 - 22: 11(int) Load 21 - 23: 6(float) ConvertSToF 22 - 24: 6(float) FAdd 18 23 - 28: 16(ptr) AccessChain 27 12 - 29: 6(float) Load 28 - 30: 6(float) FAdd 24 29 - 34: 16(ptr) AccessChain 33 12 - 35: 6(float) Load 34 - 36: 6(float) FAdd 30 35 - 37: 7(fvec4) CompositeConstruct 36 36 36 36 - 39: 38(ptr) AccessChain 10(psout) 12 - Store 39 37 - 42: 38(ptr) AccessChain 10(psout) 12 - 43: 7(fvec4) Load 42 - Store 41(Color) 43 + 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-new/Test/baseResults/spv.builtInXFB.vert.out b/deps/glslang/glslang/Test/baseResults/spv.builtInXFB.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.builtInXFB.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.builtInXFB.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.conditionalDiscard.frag.out b/deps/glslang/glslang/Test/baseResults/spv.conditionalDiscard.frag.out index b3cb8e866a..f5e9e6fa00 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.conditionalDiscard.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.conditionalDiscard.frag.out @@ -1,8 +1,6 @@ spv.conditionalDiscard.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 36 Capability Shader @@ -17,6 +15,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre 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 diff --git a/deps/glslang-new/Test/baseResults/spv.constStruct.vert.out b/deps/glslang/glslang/Test/baseResults/spv.constStruct.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.constStruct.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.constStruct.vert.out diff --git a/deps/glslang-new/Test/baseResults/spv.controlFlowAttributes.frag.out b/deps/glslang/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.controlFlowAttributes.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.conversion.frag.out b/deps/glslang/glslang/Test/baseResults/spv.conversion.frag.out index b38d84e826..a3215324ba 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.conversion.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.conversion.frag.out @@ -1,6 +1,6 @@ spv.conversion.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 455 Capability Shader @@ -51,6 +51,7 @@ spv.conversion.frag 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 @@ -118,8 +119,8 @@ spv.conversion.frag 315: 13(int) Constant 1 321: TypePointer Output 95(fvec4) 322(gl_FragColor): 321(ptr) Variable Output - 367: 13(int) Constant 2 - 380: 13(int) Constant 3 + 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) @@ -162,9 +163,9 @@ spv.conversion.frag 110(f2): 109(ptr) Variable Function 114(f3): 113(ptr) Variable Function 118(f4): 117(ptr) Variable Function - 297: 105(ptr) Variable Function - 307: 105(ptr) Variable Function - 323: 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) @@ -424,101 +425,101 @@ spv.conversion.frag SelectionMerge 296 None BranchConditional 294 295 296 295: Label - 298: 6(bool) Load 8(b) + 297: 6(bool) Load 8(b) SelectionMerge 300 None - BranchConditional 298 299 303 + BranchConditional 297 299 303 299: Label 301: 9(int) Load 58(i) 302: 16(float) ConvertSToF 301 - Store 297 302 + Store 298 302 Branch 300 303: Label 304: 105(ptr) AccessChain 110(f2) 14 305: 16(float) Load 304 - Store 297 305 + Store 298 305 Branch 300 300: Label - 306: 16(float) Load 297 - 308: 23(bvec2) Load 25(b2) - 309: 6(bool) CompositeExtract 308 0 + 306: 16(float) Load 298 + 307: 7(ptr) AccessChain 25(b2) 14 + 308: 6(bool) Load 307 SelectionMerge 311 None - BranchConditional 309 310 314 + BranchConditional 308 310 314 310: Label 312: 105(ptr) AccessChain 114(f3) 14 313: 16(float) Load 312 - Store 307 313 + 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 307 318 + Store 309 318 Branch 311 311: Label - 319: 16(float) Load 307 + 319: 16(float) Load 309 320: 16(float) FAdd 306 319 Store 106(f) 320 Branch 296 296: Label - 324: 6(bool) Load 8(b) - 325: 23(bvec2) Load 25(b2) - 326: 6(bool) CompositeExtract 325 0 - 327: 6(bool) LogicalOr 324 326 - 328: 23(bvec2) Load 25(b2) - 329: 6(bool) CompositeExtract 328 1 - 330: 6(bool) LogicalOr 327 329 - 331: 31(bvec3) Load 33(b3) - 332: 6(bool) CompositeExtract 331 0 - 333: 6(bool) LogicalOr 330 332 - 334: 31(bvec3) Load 33(b3) - 335: 6(bool) CompositeExtract 334 1 - 336: 6(bool) LogicalOr 333 335 - 337: 31(bvec3) Load 33(b3) - 338: 6(bool) CompositeExtract 337 2 - 339: 6(bool) LogicalOr 336 338 - 340: 43(bvec4) Load 45(b4) - 341: 6(bool) CompositeExtract 340 0 + 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: 43(bvec4) Load 45(b4) - 344: 6(bool) CompositeExtract 343 1 + 343: 7(ptr) AccessChain 45(b4) 315 + 344: 6(bool) Load 343 345: 6(bool) LogicalOr 342 344 - 346: 43(bvec4) Load 45(b4) - 347: 6(bool) CompositeExtract 346 2 + 346: 7(ptr) AccessChain 45(b4) 336 + 347: 6(bool) Load 346 348: 6(bool) LogicalOr 345 347 - 349: 43(bvec4) Load 45(b4) - 350: 6(bool) CompositeExtract 349 3 - 351: 6(bool) LogicalOr 348 350 - SelectionMerge 353 None - BranchConditional 351 352 415 - 352: Label - 354: 9(int) Load 58(i) - 355: 57(ptr) AccessChain 68(i2) 14 - 356: 9(int) Load 355 - 357: 9(int) IAdd 354 356 - 358: 57(ptr) AccessChain 68(i2) 315 - 359: 9(int) Load 358 - 360: 9(int) IAdd 357 359 - 361: 57(ptr) AccessChain 81(i3) 14 - 362: 9(int) Load 361 - 363: 9(int) IAdd 360 362 - 364: 57(ptr) AccessChain 81(i3) 315 - 365: 9(int) Load 364 - 366: 9(int) IAdd 363 365 - 368: 57(ptr) AccessChain 81(i3) 367 - 369: 9(int) Load 368 - 370: 9(int) IAdd 366 369 - 371: 57(ptr) AccessChain 94(i4) 14 - 372: 9(int) Load 371 - 373: 9(int) IAdd 370 372 - 374: 57(ptr) AccessChain 94(i4) 315 - 375: 9(int) Load 374 - 376: 9(int) IAdd 373 375 - 377: 57(ptr) AccessChain 94(i4) 367 - 378: 9(int) Load 377 - 379: 9(int) IAdd 376 378 - 381: 57(ptr) AccessChain 94(i4) 380 + 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 379 382 + 383: 9(int) IAdd 380 382 384: 16(float) ConvertSToF 383 385: 16(float) Load 106(f) 386: 16(float) FAdd 384 385 @@ -534,7 +535,7 @@ spv.conversion.frag 396: 105(ptr) AccessChain 114(f3) 315 397: 16(float) Load 396 398: 16(float) FAdd 395 397 - 399: 105(ptr) AccessChain 114(f3) 367 + 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 @@ -543,20 +544,20 @@ spv.conversion.frag 405: 105(ptr) AccessChain 118(f4) 315 406: 16(float) Load 405 407: 16(float) FAdd 404 406 - 408: 105(ptr) AccessChain 118(f4) 367 + 408: 105(ptr) AccessChain 118(f4) 336 409: 16(float) Load 408 410: 16(float) FAdd 407 409 - 411: 105(ptr) AccessChain 118(f4) 380 + 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 323 414 - Branch 353 + Store 353 414 + Branch 355 415: Label - Store 323 151 - Branch 353 - 353: Label - 416: 95(fvec4) Load 323 + 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) diff --git a/deps/glslang/glslang/Test/baseResults/spv.dataOut.frag.out b/deps/glslang/glslang/Test/baseResults/spv.dataOut.frag.out index 9dbe5d124b..f3847213f2 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.dataOut.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.dataOut.frag.out @@ -1,6 +1,6 @@ spv.dataOut.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 20 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.frag.out b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.frag.out index 663092fd32..c0b52ae3c6 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.frag.out @@ -1,6 +1,6 @@ spv.dataOutIndirect.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 26 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.vert.out b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.vert.out index 1523fab59e..9ba988c653 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.vert.out @@ -2,7 +2,7 @@ spv.dataOutIndirect.vert WARNING: 0:3: attribute deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 38 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.debugInfo.1.1.frag.out b/deps/glslang/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.debugInfo.1.1.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.debugInfo.frag.out b/deps/glslang/glslang/Test/baseResults/spv.debugInfo.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.debugInfo.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.debugInfo.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.deepRvalue.frag.out b/deps/glslang/glslang/Test/baseResults/spv.deepRvalue.frag.out index 29cf848873..a0e4eabc34 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.deepRvalue.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.deepRvalue.frag.out @@ -1,12 +1,12 @@ spv.deepRvalue.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 155 +// 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" 149 + EntryPoint Fragment 4 "main" 146 ExecutionMode 4 OriginUpperLeft Source GLSL 330 Name 4 "main" @@ -21,13 +21,14 @@ spv.deepRvalue.frag Name 106 "h" Name 107 "i" Name 111 "samp2D" - Name 134 "str" - MemberName 134(str) 0 "a" - MemberName 134(str) 1 "b" - MemberName 134(str) 2 "c" - Name 136 "t" - Name 149 "gl_FragColor" + 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 @@ -75,22 +76,22 @@ spv.deepRvalue.frag 113: TypeVector 6(float) 2 114: 6(float) Constant 1056964608 115: 113(fvec2) ConstantComposite 114 114 - 118: TypePointer Function 7(fvec4) - 121: 6(float) Constant 1036831949 - 122: TypeBool - 133: TypeArray 113(fvec2) 84 - 134(str): TypeStruct 81(int) 133 122(bool) - 135: TypePointer Function 134(str) - 137: 113(fvec2) ConstantComposite 10 11 - 138: 6(float) Constant 1082130432 - 139: 113(fvec2) ConstantComposite 138 12 - 140: 6(float) Constant 1086324736 - 141: 113(fvec2) ConstantComposite 140 13 - 142: 133 ConstantComposite 137 139 141 - 143: 122(bool) ConstantTrue - 144: 134(str) ConstantComposite 82 142 143 - 148: TypePointer Output 7(fvec4) -149(gl_FragColor): 148(ptr) Variable Output + 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 @@ -99,8 +100,7 @@ spv.deepRvalue.frag 87(g): 79(ptr) Variable Function 106(h): 79(ptr) Variable Function 107(i): 79(ptr) Variable Function - 119: 118(ptr) Variable Function - 136(t): 135(ptr) Variable Function + 133(t): 132(ptr) Variable Function Store 9(v1) 14 Store 15(v2) 20 Store 21(v3) 26 @@ -172,34 +172,26 @@ spv.deepRvalue.frag 116: 7(fvec4) ImageSampleImplicitLod 112 115 117: 6(float) CompositeExtract 116 1 Store 107(i) 117 - 120: 6(float) Load 107(i) - 123: 122(bool) FOrdGreaterThan 120 121 - SelectionMerge 125 None - BranchConditional 123 124 127 - 124: Label - 126: 7(fvec4) Load 9(v1) - Store 119 126 - Branch 125 - 127: Label - 128: 7(fvec4) Load 15(v2) - Store 119 128 - Branch 125 - 125: Label - 129: 79(ptr) AccessChain 119 84 - 130: 6(float) Load 129 - 131: 6(float) Load 107(i) - 132: 6(float) FAdd 131 130 - Store 107(i) 132 - Store 136(t) 144 - 145: 6(float) CompositeExtract 144 1 2 1 - 146: 6(float) Load 107(i) - 147: 6(float) FAdd 146 145 - Store 107(i) 147 - 150: 6(float) Load 80(f) - 151: 6(float) Load 87(g) - 152: 6(float) Load 106(h) - 153: 6(float) Load 107(i) - 154: 7(fvec4) CompositeConstruct 150 151 152 153 - Store 149(gl_FragColor) 154 + 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 index 247b2f3d08..5da0df07da 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.depthOut.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.depthOut.frag.out @@ -1,8 +1,6 @@ spv.depthOut.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 +// Generated by (magic number): 80007 // Id's are bound by 15 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.deviceGroup.frag.out b/deps/glslang/glslang/Test/baseResults/spv.deviceGroup.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.deviceGroup.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.deviceGroup.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.discard-dce.frag.out b/deps/glslang/glslang/Test/baseResults/spv.discard-dce.frag.out index 173ea260ae..9d138f294b 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.discard-dce.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.discard-dce.frag.out @@ -1,6 +1,6 @@ spv.discard-dce.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 84 Capability Shader @@ -18,6 +18,7 @@ spv.discard-dce.frag Name 30 "y" Name 36 "radius" Name 59 "gl_FragColor" + Decorate 59(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang/Test/baseResults/spv.do-simple.vert.out b/deps/glslang/glslang/Test/baseResults/spv.do-simple.vert.out index d6d4c28f33..6014dfec80 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.do-simple.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.do-simple.vert.out @@ -1,8 +1,6 @@ spv.do-simple.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 21 Capability Shader 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 index d1d0c85c98..2838880015 100644 --- 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 @@ -1,8 +1,6 @@ spv.do-while-continue-break.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 43 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.doWhileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/spv.doWhileLoop.frag.out index 9b8cee7013..808466eb00 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.doWhileLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.doWhileLoop.frag.out @@ -1,6 +1,6 @@ spv.doWhileLoop.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 34 Capability Shader @@ -15,6 +15,7 @@ spv.doWhileLoop.frag Name 17 "bigColor" Name 27 "d" Name 32 "gl_FragColor" + Decorate 32(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang/Test/baseResults/spv.double.comp.out b/deps/glslang/glslang/Test/baseResults/spv.double.comp.out index 3b1bdc89ca..eb8e1226d0 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.double.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.double.comp.out @@ -1,8 +1,6 @@ spv.double.comp -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 60 Capability Shader @@ -36,13 +34,13 @@ Warning, version 430 is not yet complete; most version-specific features are pre 3: TypeFunction 2 6: TypeFloat 32 7: TypeFloat 64 - 8(bufName): TypeStruct 6(float) 7(float) + 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(float) Constant 1413754136 1074340347 - 14: TypePointer Uniform 7(float) + 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) @@ -53,19 +51,19 @@ Warning, version 430 is not yet complete; most version-specific features are pre 25: TypePointer Input 24(ivec3) 26(gl_GlobalInvocationID): 25(ptr) Variable Input 27: TypeVector 23(int) 2 - 31: TypePointer Function 7(float) + 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(float) 4 - 48: TypePointer Function 47(fvec4) - 50: 7(float) Constant 2576980378 1071225241 - 51: 7(float) Constant 2576980378 1070176665 - 52: 7(float) Constant 858993459 1070805811 - 53: 47(fvec4) ConstantComposite 50 51 52 50 - 55: 7(float) Constant 0 1072693248 - 56: 7(float) Constant 3229815407 1074340298 + 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 @@ -92,7 +90,7 @@ Warning, version 430 is not yet complete; most version-specific features are pre 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(float) FConvert 45 + 46:7(float64_t) FConvert 45 Store 32(localCoef) 46 Store 49(aa) 53 Store 54(globalCoef) 55 diff --git a/deps/glslang-new/Test/baseResults/spv.drawParams.vert.out b/deps/glslang/glslang/Test/baseResults/spv.drawParams.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.drawParams.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.drawParams.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out b/deps/glslang/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out index 41441b7f6f..c44b722f0f 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out @@ -1,6 +1,6 @@ spv.earlyReturnDiscard.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 110 Capability Shader @@ -24,6 +24,7 @@ spv.earlyReturnDiscard.frag Name 77 "b" Name 105 "gl_FragColor" Name 109 "threshhold3" + Decorate 105(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.explicittypes.frag.out b/deps/glslang/glslang/Test/baseResults/spv.explicittypes.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.explicittypes.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.explicittypes.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.extPostDepthCoverage.frag.out b/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.extPostDepthCoverage.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out b/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.float16.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float16.frag.out index 5499b7e8e8..b6d37f4555 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.float16.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.float16.frag.out @@ -1,8 +1,6 @@ spv.float16.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 534 Capability Shader @@ -11,7 +9,11 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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 @@ -105,6 +107,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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 @@ -145,92 +150,92 @@ Warning, version 450 is not yet complete; most version-specific features are pre MemberDecorate 523(B2) 7 Offset 72 Decorate 523(B2) BufferBlock Decorate 525 DescriptorSet 0 - Decorate 526 SpecId 100 - Decorate 527 SpecId 101 - Decorate 528 SpecId 102 + 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(float) 2 - 30: TypePointer Function 29(fvec2) - 32: 28(float) Constant 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(float) - 37: 28(float) Constant 46080 - 38: 28(float) Constant 10158 - 39: 29(fvec2) ConstantComposite 37 38 - 56: 28(float) Constant 15360 - 62: TypeMatrix 29(fvec2) 2 + 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(float) 3 - 152: TypePointer Function 151(fvec3) + 151: TypeVector 28(float16_t) 3 + 152: TypePointer Function 151(f16vec3) 154: TypeVector 109(bool) 3 155: TypePointer Function 154(bvec3) - 158: 28(float) Constant 0 - 159: 151(fvec3) ConstantComposite 158 158 158 - 160: 151(fvec3) ConstantComposite 56 56 56 + 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(float) 3 - 174: TypePointer Function 173(fvec3) + 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(int) 3 - 200: TypePointer Function 199(ivec3) + 199: TypeVector 198(int64_t) 3 + 200: TypePointer Function 199(i64vec3) 206: TypeInt 64 0 - 207: TypeVector 206(int) 3 - 208: TypePointer Function 207(ivec3) - 214: TypeVector 28(float) 4 - 215: TypePointer Function 214(fvec4) - 364(ResType): TypeStruct 151(fvec3) 184(ivec3) + 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(fvec3) 2 + 406: TypeMatrix 151(f16vec3) 2 407: TypePointer Function 406 - 425: TypeMatrix 29(fvec2) 3 + 425: TypeMatrix 29(f16vec2) 3 426: TypePointer Function 425 - 431: TypeMatrix 151(fvec3) 3 + 431: TypeMatrix 151(f16vec3) 3 432: TypePointer Function 431 - 436: TypeMatrix 214(fvec4) 4 + 436: TypeMatrix 214(f16vec4) 4 437: TypePointer Function 436 - 464: TypePointer Input 151(fvec3) + 464: TypePointer Input 151(f16vec3) 465(if16v): 464(ptr) Variable Input - 466: TypePointer Input 28(float) + 466: TypePointer Input 28(float16_t) 503: 183(int) Constant 1 - 508: 28(float) Constant 14336 - 509: 29(fvec2) ConstantComposite 508 508 + 508:28(float16_t) Constant 14336 + 509: 29(f16vec2) ConstantComposite 508 508 511: 33(int) Constant 2 - 512: TypeArray 28(float) 511 + 512: TypeArray 28(float16_t) 511 513: TypeArray 406 511 - 514(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 514(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 515: TypeArray 514(S) 511 - 516(B1): TypeStruct 28(float) 29(fvec2) 151(fvec3) 512 406 513 514(S) 515 + 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(float) 511 + 519: TypeArray 28(float16_t) 511 520: TypeArray 406 511 - 521(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 521(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 522: TypeArray 521(S) 511 - 523(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 519 406 520 521(S) 522 + 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: 28(float) SpecConstant 12288 - 527: 164(float) SpecConstant 1048576000 - 528: 172(float) SpecConstant 0 1071644672 - 529: 164(float) SpecConstantOp 115 526 - 530: 164(float) SpecConstantOp 115 526 - 531: 172(float) SpecConstantOp 115 530 - 532: 28(float) SpecConstantOp 115 527 - 533: 28(float) SpecConstantOp 115 528 + 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 @@ -240,8 +245,8 @@ Warning, version 450 is not yet complete; most version-specific features are pre 31(f16v): 30(ptr) Variable Function 36: 35(ptr) AccessChain 31(f16v) 34 Store 36 32 - 40: 29(fvec2) Load 31(f16v) - 41: 29(fvec2) FAdd 40 39 + 40: 29(f16vec2) Load 31(f16v) + 41: 29(f16vec2) FAdd 40 39 Store 31(f16v) 41 Return FunctionEnd @@ -251,125 +256,125 @@ Warning, version 450 is not yet complete; most version-specific features are pre 64(f16m): 63(ptr) Variable Function 87(f16): 35(ptr) Variable Function 111(b): 110(ptr) Variable Function - 43: 29(fvec2) Load 42(f16v) - 44: 29(fvec2) Load 42(f16v) - 45: 29(fvec2) FAdd 44 43 + 43: 29(f16vec2) Load 42(f16v) + 44: 29(f16vec2) Load 42(f16v) + 45: 29(f16vec2) FAdd 44 43 Store 42(f16v) 45 - 46: 29(fvec2) Load 42(f16v) - 47: 29(fvec2) Load 42(f16v) - 48: 29(fvec2) FSub 47 46 + 46: 29(f16vec2) Load 42(f16v) + 47: 29(f16vec2) Load 42(f16v) + 48: 29(f16vec2) FSub 47 46 Store 42(f16v) 48 - 49: 29(fvec2) Load 42(f16v) - 50: 29(fvec2) Load 42(f16v) - 51: 29(fvec2) FMul 50 49 + 49: 29(f16vec2) Load 42(f16v) + 50: 29(f16vec2) Load 42(f16v) + 51: 29(f16vec2) FMul 50 49 Store 42(f16v) 51 - 52: 29(fvec2) Load 42(f16v) - 53: 29(fvec2) Load 42(f16v) - 54: 29(fvec2) FDiv 53 52 + 52: 29(f16vec2) Load 42(f16v) + 53: 29(f16vec2) Load 42(f16v) + 54: 29(f16vec2) FDiv 53 52 Store 42(f16v) 54 - 55: 29(fvec2) Load 42(f16v) - 57: 29(fvec2) CompositeConstruct 56 56 - 58: 29(fvec2) FAdd 55 57 + 55: 29(f16vec2) Load 42(f16v) + 57: 29(f16vec2) CompositeConstruct 56 56 + 58: 29(f16vec2) FAdd 55 57 Store 42(f16v) 58 - 59: 29(fvec2) Load 42(f16v) - 60: 29(fvec2) CompositeConstruct 56 56 - 61: 29(fvec2) FSub 59 60 + 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(fvec2) CompositeConstruct 56 56 - 67: 29(fvec2) CompositeExtract 65 0 - 68: 29(fvec2) FAdd 67 66 - 69: 29(fvec2) CompositeExtract 65 1 - 70: 29(fvec2) FAdd 69 66 + 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(fvec2) CompositeConstruct 56 56 - 74: 29(fvec2) CompositeExtract 72 0 - 75: 29(fvec2) FSub 74 73 - 76: 29(fvec2) CompositeExtract 72 1 - 77: 29(fvec2) FSub 76 73 + 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(fvec2) Load 42(f16v) - 80: 29(fvec2) FNegate 79 + 79: 29(f16vec2) Load 42(f16v) + 80: 29(f16vec2) FNegate 79 Store 42(f16v) 80 81: 62 Load 64(f16m) - 82: 29(fvec2) CompositeExtract 81 0 - 83: 29(fvec2) FNegate 82 - 84: 29(fvec2) CompositeExtract 81 1 - 85: 29(fvec2) FNegate 84 + 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(float) Load 88 + 89:28(float16_t) Load 88 91: 35(ptr) AccessChain 42(f16v) 90 - 92: 28(float) Load 91 - 93: 28(float) FAdd 89 92 + 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(float) Load 94 + 95:28(float16_t) Load 94 96: 35(ptr) AccessChain 42(f16v) 90 - 97: 28(float) Load 96 - 98: 28(float) FSub 95 97 + 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(float) Load 99 + 100:28(float16_t) Load 99 101: 35(ptr) AccessChain 42(f16v) 90 - 102: 28(float) Load 101 - 103: 28(float) FMul 100 102 + 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(float) Load 104 + 105:28(float16_t) Load 104 106: 35(ptr) AccessChain 42(f16v) 90 - 107: 28(float) Load 106 - 108: 28(float) FDiv 105 107 + 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(float) Load 112 - 114: 28(float) Load 87(f16) + 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(float) Load 116 - 118: 28(float) Load 87(f16) + 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(float) Load 120 - 122: 28(float) Load 87(f16) + 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(float) Load 124 - 126: 28(float) Load 87(f16) + 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(float) Load 128 - 130: 28(float) Load 87(f16) + 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(float) Load 132 - 134: 28(float) Load 87(f16) + 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(fvec2) Load 42(f16v) - 137: 28(float) Load 87(f16) - 138: 29(fvec2) VectorTimesScalar 136 137 + 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(float) Load 87(f16) + 140:28(float16_t) Load 87(f16) 141: 62 MatrixTimesScalar 139 140 Store 64(f16m) 141 142: 62 Load 64(f16m) - 143: 29(fvec2) Load 42(f16v) - 144: 29(fvec2) MatrixTimesVector 142 143 + 143: 29(f16vec2) Load 42(f16v) + 144: 29(f16vec2) MatrixTimesVector 142 143 Store 42(f16v) 144 - 145: 29(fvec2) Load 42(f16v) + 145: 29(f16vec2) Load 42(f16v) 146: 62 Load 64(f16m) - 147: 29(fvec2) VectorTimesMatrix 145 146 + 147: 29(f16vec2) VectorTimesMatrix 145 146 Store 42(f16v) 147 148: 62 Load 64(f16m) 149: 62 Load 64(f16m) @@ -388,49 +393,49 @@ Warning, version 450 is not yet complete; most version-specific features are pre 201(i64v): 200(ptr) Variable Function 209(u64v): 208(ptr) Variable Function 157: 154(bvec3) Load 156(bv) - 161: 151(fvec3) Select 157 160 159 + 161:151(f16vec3) Select 157 160 159 Store 153(f16v) 161 - 162: 151(fvec3) Load 153(f16v) + 162:151(f16vec3) Load 153(f16v) 163: 154(bvec3) FOrdNotEqual 162 159 Store 156(bv) 163 168: 165(fvec3) Load 167(fv) - 169: 151(fvec3) FConvert 168 + 169:151(f16vec3) FConvert 168 Store 153(f16v) 169 - 170: 151(fvec3) Load 153(f16v) + 170:151(f16vec3) Load 153(f16v) 171: 165(fvec3) FConvert 170 Store 167(fv) 171 - 176: 173(fvec3) Load 175(dv) - 177: 151(fvec3) FConvert 176 + 176:173(f64vec3) Load 175(dv) + 177:151(f16vec3) FConvert 176 Store 153(f16v) 177 - 178: 173(fvec3) Load 175(dv) - 179: 172(float) CompositeExtract 178 0 - 180: 172(float) CompositeExtract 178 1 - 181: 172(float) CompositeExtract 178 2 - 182: 173(fvec3) CompositeConstruct 179 180 181 + 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(fvec3) ConvertSToF 187 + 188:151(f16vec3) ConvertSToF 187 Store 153(f16v) 188 - 189: 151(fvec3) Load 153(f16v) + 189:151(f16vec3) Load 153(f16v) 190: 184(ivec3) ConvertFToS 189 Store 186(iv) 190 194: 191(ivec3) Load 193(uv) - 195: 151(fvec3) ConvertUToF 194 + 195:151(f16vec3) ConvertUToF 194 Store 153(f16v) 195 - 196: 151(fvec3) Load 153(f16v) + 196:151(f16vec3) Load 153(f16v) 197: 191(ivec3) ConvertFToU 196 Store 193(uv) 197 - 202: 199(ivec3) Load 201(i64v) - 203: 151(fvec3) ConvertSToF 202 + 202:199(i64vec3) Load 201(i64v) + 203:151(f16vec3) ConvertSToF 202 Store 153(f16v) 203 - 204: 151(fvec3) Load 153(f16v) - 205: 199(ivec3) ConvertFToS 204 + 204:151(f16vec3) Load 153(f16v) + 205:199(i64vec3) ConvertFToS 204 Store 201(i64v) 205 - 210: 207(ivec3) Load 209(u64v) - 211: 151(fvec3) ConvertUToF 210 + 210:207(i64vec3) Load 209(u64v) + 211:151(f16vec3) ConvertUToF 210 Store 153(f16v) 211 - 212: 151(fvec3) Load 153(f16v) - 213: 207(ivec3) ConvertFToU 212 + 212:151(f16vec3) Load 153(f16v) + 213:207(i64vec3) ConvertFToU 212 Store 209(u64v) 213 Return FunctionEnd @@ -438,51 +443,51 @@ Warning, version 450 is not yet complete; most version-specific features are pre 13: Label 216(f16v2): 215(ptr) Variable Function 217(f16v1): 215(ptr) Variable Function - 218: 214(fvec4) Load 217(f16v1) - 219: 214(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 + 218:214(f16vec4) Load 217(f16v1) + 219:214(f16vec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 Store 216(f16v2) 219 - 220: 214(fvec4) Load 217(f16v1) - 221: 214(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 + 220:214(f16vec4) Load 217(f16v1) + 221:214(f16vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 Store 216(f16v2) 221 - 222: 214(fvec4) Load 217(f16v1) - 223: 214(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 + 222:214(f16vec4) Load 217(f16v1) + 223:214(f16vec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 Store 216(f16v2) 223 - 224: 214(fvec4) Load 217(f16v1) - 225: 214(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 + 224:214(f16vec4) Load 217(f16v1) + 225:214(f16vec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 Store 216(f16v2) 225 - 226: 214(fvec4) Load 217(f16v1) - 227: 214(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 + 226:214(f16vec4) Load 217(f16v1) + 227:214(f16vec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 Store 216(f16v2) 227 - 228: 214(fvec4) Load 217(f16v1) - 229: 214(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 + 228:214(f16vec4) Load 217(f16v1) + 229:214(f16vec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 Store 216(f16v2) 229 - 230: 214(fvec4) Load 217(f16v1) - 231: 214(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 + 230:214(f16vec4) Load 217(f16v1) + 231:214(f16vec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 Store 216(f16v2) 231 - 232: 214(fvec4) Load 217(f16v1) - 233: 214(fvec4) Load 216(f16v2) - 234: 214(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 + 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(fvec4) Load 217(f16v1) - 236: 214(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 + 235:214(f16vec4) Load 217(f16v1) + 236:214(f16vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 Store 216(f16v2) 236 - 237: 214(fvec4) Load 217(f16v1) - 238: 214(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 + 237:214(f16vec4) Load 217(f16v1) + 238:214(f16vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 Store 216(f16v2) 238 - 239: 214(fvec4) Load 217(f16v1) - 240: 214(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 + 239:214(f16vec4) Load 217(f16v1) + 240:214(f16vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 Store 216(f16v2) 240 - 241: 214(fvec4) Load 217(f16v1) - 242: 214(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 + 241:214(f16vec4) Load 217(f16v1) + 242:214(f16vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 Store 216(f16v2) 242 - 243: 214(fvec4) Load 217(f16v1) - 244: 214(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 + 243:214(f16vec4) Load 217(f16v1) + 244:214(f16vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 Store 216(f16v2) 244 - 245: 214(fvec4) Load 217(f16v1) - 246: 214(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 + 245:214(f16vec4) Load 217(f16v1) + 246:214(f16vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 Store 216(f16v2) 246 - 247: 214(fvec4) Load 217(f16v1) - 248: 214(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 + 247:214(f16vec4) Load 217(f16v1) + 248:214(f16vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 Store 216(f16v2) 248 Return FunctionEnd @@ -490,27 +495,27 @@ Warning, version 450 is not yet complete; most version-specific features are pre 15: Label 249(f16v2): 30(ptr) Variable Function 250(f16v1): 30(ptr) Variable Function - 251: 29(fvec2) Load 250(f16v1) - 252: 29(fvec2) Load 249(f16v2) - 253: 29(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 + 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(fvec2) Load 250(f16v1) - 255: 29(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 + 254: 29(f16vec2) Load 250(f16v1) + 255: 29(f16vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 Store 249(f16v2) 255 - 256: 29(fvec2) Load 250(f16v1) - 257: 29(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 256 + 256: 29(f16vec2) Load 250(f16v1) + 257: 29(f16vec2) ExtInst 1(GLSL.std.450) 28(Log) 256 Store 249(f16v2) 257 - 258: 29(fvec2) Load 250(f16v1) - 259: 29(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 + 258: 29(f16vec2) Load 250(f16v1) + 259: 29(f16vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 Store 249(f16v2) 259 - 260: 29(fvec2) Load 250(f16v1) - 261: 29(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 + 260: 29(f16vec2) Load 250(f16v1) + 261: 29(f16vec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 Store 249(f16v2) 261 - 262: 29(fvec2) Load 250(f16v1) - 263: 29(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 + 262: 29(f16vec2) Load 250(f16v1) + 263: 29(f16vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 Store 249(f16v2) 263 - 264: 29(fvec2) Load 250(f16v1) - 265: 29(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 + 264: 29(f16vec2) Load 250(f16v1) + 265: 29(f16vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 Store 249(f16v2) 265 Return FunctionEnd @@ -523,132 +528,132 @@ Warning, version 450 is not yet complete; most version-specific features are pre 332(bv): 155(ptr) Variable Function 353(b): 110(ptr) Variable Function 363(iv): 185(ptr) Variable Function - 268: 151(fvec3) Load 267(f16v1) - 269: 151(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 + 268:151(f16vec3) Load 267(f16v1) + 269:151(f16vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 Store 266(f16v2) 269 - 270: 151(fvec3) Load 267(f16v1) - 271: 151(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 + 270:151(f16vec3) Load 267(f16v1) + 271:151(f16vec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 Store 266(f16v2) 271 - 272: 151(fvec3) Load 267(f16v1) - 273: 151(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 + 272:151(f16vec3) Load 267(f16v1) + 273:151(f16vec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 Store 266(f16v2) 273 - 274: 151(fvec3) Load 267(f16v1) - 275: 151(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 + 274:151(f16vec3) Load 267(f16v1) + 275:151(f16vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 Store 266(f16v2) 275 - 276: 151(fvec3) Load 267(f16v1) - 277: 151(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 276 + 276:151(f16vec3) Load 267(f16v1) + 277:151(f16vec3) ExtInst 1(GLSL.std.450) 1(Round) 276 Store 266(f16v2) 277 - 278: 151(fvec3) Load 267(f16v1) - 279: 151(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 + 278:151(f16vec3) Load 267(f16v1) + 279:151(f16vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 Store 266(f16v2) 279 - 280: 151(fvec3) Load 267(f16v1) - 281: 151(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 + 280:151(f16vec3) Load 267(f16v1) + 281:151(f16vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 Store 266(f16v2) 281 - 282: 151(fvec3) Load 267(f16v1) - 283: 151(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 + 282:151(f16vec3) Load 267(f16v1) + 283:151(f16vec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 Store 266(f16v2) 283 - 284: 151(fvec3) Load 267(f16v1) - 285: 151(fvec3) Load 266(f16v2) - 286: 151(fvec3) FMod 284 285 + 284:151(f16vec3) Load 267(f16v1) + 285:151(f16vec3) Load 266(f16v2) + 286:151(f16vec3) FMod 284 285 Store 266(f16v2) 286 - 287: 151(fvec3) Load 267(f16v1) - 289: 28(float) Load 288(f16) - 290: 151(fvec3) CompositeConstruct 289 289 289 - 291: 151(fvec3) FMod 287 290 + 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(fvec3) Load 267(f16v1) - 294: 151(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) + 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(fvec3) Load 267(f16v1) - 296: 151(fvec3) Load 266(f16v2) - 297: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 + 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(fvec3) Load 267(f16v1) - 299: 28(float) Load 288(f16) - 300: 151(fvec3) CompositeConstruct 299 299 299 - 301: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 + 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(fvec3) Load 267(f16v1) - 303: 151(fvec3) Load 266(f16v2) - 304: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 + 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(fvec3) Load 267(f16v1) - 306: 28(float) Load 288(f16) - 307: 151(fvec3) CompositeConstruct 306 306 306 - 308: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 + 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(fvec3) Load 267(f16v1) - 310: 28(float) Load 288(f16) + 309:151(f16vec3) Load 267(f16v1) + 310:28(float16_t) Load 288(f16) 311: 35(ptr) AccessChain 266(f16v2) 34 - 312: 28(float) Load 311 - 313: 151(fvec3) CompositeConstruct 310 310 310 - 314: 151(fvec3) CompositeConstruct 312 312 312 - 315: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 + 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(fvec3) Load 267(f16v1) - 317: 151(fvec3) Load 266(f16v2) - 318: 28(float) Load 288(f16) - 319: 151(fvec3) CompositeConstruct 318 318 318 - 320: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 + 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(fvec3) Load 267(f16v1) - 322: 151(fvec3) Load 266(f16v2) - 323: 28(float) Load 288(f16) - 324: 151(fvec3) CompositeConstruct 323 323 323 - 325: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 + 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(fvec3) Load 267(f16v1) - 327: 151(fvec3) Load 266(f16v2) - 328: 151(fvec3) Load 292(f16v3) - 329: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 + 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(fvec3) Load 267(f16v1) - 331: 151(fvec3) Load 266(f16v2) + 330:151(f16vec3) Load 267(f16v1) + 331:151(f16vec3) Load 266(f16v2) 333: 154(bvec3) Load 332(bv) - 334: 151(fvec3) Select 333 331 330 + 334:151(f16vec3) Select 333 331 330 Store 292(f16v3) 334 - 335: 151(fvec3) Load 267(f16v1) - 336: 151(fvec3) Load 266(f16v2) - 337: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 + 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(float) Load 288(f16) - 339: 151(fvec3) Load 292(f16v3) - 340: 151(fvec3) CompositeConstruct 338 338 338 - 341: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 + 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(fvec3) Load 267(f16v1) - 343: 151(fvec3) Load 266(f16v2) - 344: 151(fvec3) Load 292(f16v3) - 345: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 + 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(float) Load 288(f16) + 346:28(float16_t) Load 288(f16) 347: 35(ptr) AccessChain 267(f16v1) 34 - 348: 28(float) Load 347 - 349: 151(fvec3) Load 266(f16v2) - 350: 151(fvec3) CompositeConstruct 346 346 346 - 351: 151(fvec3) CompositeConstruct 348 348 348 - 352: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 + 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(float) Load 288(f16) + 354:28(float16_t) Load 288(f16) 355: 109(bool) IsNan 354 Store 353(b) 355 - 356: 151(fvec3) Load 267(f16v1) + 356:151(f16vec3) Load 267(f16v1) 357: 154(bvec3) IsInf 356 Store 332(bv) 357 - 358: 151(fvec3) Load 267(f16v1) - 359: 151(fvec3) Load 266(f16v2) - 360: 151(fvec3) Load 292(f16v3) - 361: 151(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 + 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(fvec3) Load 267(f16v1) + 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(fvec3) CompositeExtract 365 0 + 367:151(f16vec3) CompositeExtract 365 0 Store 266(f16v2) 367 - 368: 151(fvec3) Load 267(f16v1) + 368:151(f16vec3) Load 267(f16v1) 369: 184(ivec3) Load 363(iv) - 370: 151(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 + 370:151(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 Store 266(f16v2) 370 Return FunctionEnd @@ -656,11 +661,11 @@ Warning, version 450 is not yet complete; most version-specific features are pre 19: Label 372(u): 371(ptr) Variable Function 373(f16v): 30(ptr) Variable Function - 374: 29(fvec2) Load 373(f16v) + 374: 29(f16vec2) Load 373(f16v) 375: 33(int) Bitcast 374 Store 372(u) 375 376: 33(int) Load 372(u) - 377: 29(fvec2) Bitcast 376 + 377: 29(f16vec2) Bitcast 376 Store 373(f16v) 377 Return FunctionEnd @@ -670,37 +675,37 @@ Warning, version 450 is not yet complete; most version-specific features are pre 379(f16v1): 152(ptr) Variable Function 383(f16v2): 152(ptr) Variable Function 389(f16v3): 152(ptr) Variable Function - 380: 151(fvec3) Load 379(f16v1) - 381: 28(float) ExtInst 1(GLSL.std.450) 66(Length) 380 + 380:151(f16vec3) Load 379(f16v1) + 381:28(float16_t) ExtInst 1(GLSL.std.450) 66(Length) 380 Store 378(f16) 381 - 382: 151(fvec3) Load 379(f16v1) - 384: 151(fvec3) Load 383(f16v2) - 385: 28(float) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 + 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(fvec3) Load 379(f16v1) - 387: 151(fvec3) Load 383(f16v2) - 388: 28(float) Dot 386 387 + 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(fvec3) Load 379(f16v1) - 391: 151(fvec3) Load 383(f16v2) - 392: 151(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 + 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(fvec3) Load 379(f16v1) - 394: 151(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 + 393:151(f16vec3) Load 379(f16v1) + 394:151(f16vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 Store 383(f16v2) 394 - 395: 151(fvec3) Load 379(f16v1) - 396: 151(fvec3) Load 383(f16v2) - 397: 151(fvec3) Load 389(f16v3) - 398: 151(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 + 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(fvec3) Load 379(f16v1) - 400: 151(fvec3) Load 383(f16v2) - 401: 151(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 + 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(fvec3) Load 379(f16v1) - 403: 151(fvec3) Load 383(f16v2) - 404: 28(float) Load 378(f16) - 405: 151(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 + 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 @@ -718,23 +723,23 @@ Warning, version 450 is not yet complete; most version-specific features are pre 439(f16m7): 437(ptr) Variable Function 410: 406 Load 409(f16m1) 412: 406 Load 411(f16m2) - 413: 151(fvec3) CompositeExtract 410 0 - 414: 151(fvec3) CompositeExtract 412 0 - 415: 151(fvec3) FMul 413 414 - 416: 151(fvec3) CompositeExtract 410 1 - 417: 151(fvec3) CompositeExtract 412 1 - 418: 151(fvec3) FMul 416 417 + 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(fvec3) Load 420(f16v1) - 423: 29(fvec2) Load 422(f16v2) + 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(float) ExtInst 1(GLSL.std.450) 33(Determinant) 434 + 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 @@ -746,28 +751,28 @@ Warning, version 450 is not yet complete; most version-specific features are pre 442(bv): 155(ptr) Variable Function 443(f16v1): 152(ptr) Variable Function 445(f16v2): 152(ptr) Variable Function - 444: 151(fvec3) Load 443(f16v1) - 446: 151(fvec3) Load 445(f16v2) + 444:151(f16vec3) Load 443(f16v1) + 446:151(f16vec3) Load 445(f16v2) 447: 154(bvec3) FOrdLessThan 444 446 Store 442(bv) 447 - 448: 151(fvec3) Load 443(f16v1) - 449: 151(fvec3) Load 445(f16v2) + 448:151(f16vec3) Load 443(f16v1) + 449:151(f16vec3) Load 445(f16v2) 450: 154(bvec3) FOrdLessThanEqual 448 449 Store 442(bv) 450 - 451: 151(fvec3) Load 443(f16v1) - 452: 151(fvec3) Load 445(f16v2) + 451:151(f16vec3) Load 443(f16v1) + 452:151(f16vec3) Load 445(f16v2) 453: 154(bvec3) FOrdGreaterThan 451 452 Store 442(bv) 453 - 454: 151(fvec3) Load 443(f16v1) - 455: 151(fvec3) Load 445(f16v2) + 454:151(f16vec3) Load 443(f16v1) + 455:151(f16vec3) Load 445(f16v2) 456: 154(bvec3) FOrdGreaterThanEqual 454 455 Store 442(bv) 456 - 457: 151(fvec3) Load 443(f16v1) - 458: 151(fvec3) Load 445(f16v2) + 457:151(f16vec3) Load 443(f16v1) + 458:151(f16vec3) Load 445(f16v2) 459: 154(bvec3) FOrdEqual 457 458 Store 442(bv) 459 - 460: 151(fvec3) Load 443(f16v1) - 461: 151(fvec3) Load 445(f16v2) + 460:151(f16vec3) Load 443(f16v1) + 461:151(f16vec3) Load 445(f16v2) 462: 154(bvec3) FOrdNotEqual 460 461 Store 442(bv) 462 Return @@ -776,57 +781,57 @@ Warning, version 450 is not yet complete; most version-specific features are pre 27: Label 463(f16v): 152(ptr) Variable Function 467: 466(ptr) AccessChain 465(if16v) 34 - 468: 28(float) Load 467 - 469: 28(float) DPdx 468 + 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(float) Load 471 - 473: 28(float) DPdy 472 + 472:28(float16_t) Load 471 + 473:28(float16_t) DPdy 472 474: 35(ptr) AccessChain 463(f16v) 90 Store 474 473 - 475: 151(fvec3) Load 465(if16v) - 476: 29(fvec2) VectorShuffle 475 475 0 1 - 477: 29(fvec2) DPdxFine 476 - 478: 151(fvec3) Load 463(f16v) - 479: 151(fvec3) VectorShuffle 478 477 3 4 2 + 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(fvec3) Load 465(if16v) - 481: 29(fvec2) VectorShuffle 480 480 0 1 - 482: 29(fvec2) DPdyFine 481 - 483: 151(fvec3) Load 463(f16v) - 484: 151(fvec3) VectorShuffle 483 482 3 4 2 + 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(fvec3) Load 465(if16v) - 486: 151(fvec3) DPdxCoarse 485 + 485:151(f16vec3) Load 465(if16v) + 486:151(f16vec3) DPdxCoarse 485 Store 463(f16v) 486 - 487: 151(fvec3) Load 465(if16v) - 488: 151(fvec3) DPdxCoarse 487 + 487:151(f16vec3) Load 465(if16v) + 488:151(f16vec3) DPdxCoarse 487 Store 463(f16v) 488 489: 466(ptr) AccessChain 465(if16v) 34 - 490: 28(float) Load 489 - 491: 28(float) Fwidth 490 + 490:28(float16_t) Load 489 + 491:28(float16_t) Fwidth 490 492: 35(ptr) AccessChain 463(f16v) 34 Store 492 491 - 493: 151(fvec3) Load 465(if16v) - 494: 29(fvec2) VectorShuffle 493 493 0 1 - 495: 29(fvec2) FwidthFine 494 - 496: 151(fvec3) Load 463(f16v) - 497: 151(fvec3) VectorShuffle 496 495 3 4 2 + 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(fvec3) Load 465(if16v) - 499: 151(fvec3) FwidthCoarse 498 + 498:151(f16vec3) Load 465(if16v) + 499:151(f16vec3) FwidthCoarse 498 Store 463(f16v) 499 500: 466(ptr) AccessChain 465(if16v) 34 - 501: 28(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500 + 501:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500 502: 35(ptr) AccessChain 463(f16v) 34 Store 502 501 - 504: 151(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503 - 505: 29(fvec2) VectorShuffle 504 504 0 1 - 506: 151(fvec3) Load 463(f16v) - 507: 151(fvec3) VectorShuffle 506 505 3 4 2 + 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(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 + 510:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 Store 463(f16v) 510 Return FunctionEnd diff --git a/deps/glslang-new/Test/baseResults/spv.float16Fetch.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float16Fetch.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.float16Fetch.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.float16Fetch.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.float32.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float32.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.float32.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.float32.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.float64.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float64.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.float64.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.float64.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.flowControl.frag.out b/deps/glslang/glslang/Test/baseResults/spv.flowControl.frag.out index 274cb74612..30c2a4b6ec 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.flowControl.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.flowControl.frag.out @@ -1,6 +1,6 @@ spv.flowControl.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 39 Capability Shader @@ -19,6 +19,7 @@ spv.flowControl.frag Name 25 "bigColor" Name 30 "smallColor" Name 35 "gl_FragColor" + Decorate 35(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 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 index bb3bc2a1cc..41275a45ce 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.for-complex-condition.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.for-complex-condition.vert.out @@ -1,40 +1,37 @@ spv.for-complex-condition.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 35 +// 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" 18 31 + EntryPoint Vertex 4 "main" 17 27 Source GLSL 450 Name 4 "main" Name 8 "i" - Name 18 "flag" - Name 31 "r" - Decorate 18(flag) RelaxedPrecision - Decorate 18(flag) Location 0 - Decorate 19 RelaxedPrecision - Decorate 31(r) Location 0 + 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 - 17: TypePointer Input 6(int) - 18(flag): 17(ptr) Variable Input - 20: 6(int) Constant 1 - 21: TypeBool - 25: 6(int) Constant 10 - 27: 6(int) Constant 15 - 30: TypePointer Output 6(int) - 31(r): 30(ptr) Variable Output + 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 - 16: 7(ptr) Variable Function Store 8(i) 9 Branch 10 10: Label @@ -42,29 +39,20 @@ Warning, version 450 is not yet complete; most version-specific features are pre Branch 14 14: Label 15: 6(int) Load 8(i) - 19: 6(int) Load 18(flag) - 22: 21(bool) IEqual 19 20 - SelectionMerge 24 None - BranchConditional 22 23 26 - 23: Label - Store 16 25 - Branch 24 - 26: Label - Store 16 27 - Branch 24 - 24: Label - 28: 6(int) Load 16 - 29: 21(bool) SLessThan 15 28 - BranchConditional 29 11 12 - 11: Label - 32: 6(int) Load 8(i) - Store 31(r) 32 - Branch 13 - 13: Label - 33: 6(int) Load 8(i) - 34: 6(int) IAdd 33 20 - Store 8(i) 34 - Branch 10 + 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 index 764001dbe3..ff94a93136 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.for-continue-break.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.for-continue-break.vert.out @@ -1,8 +1,6 @@ spv.for-continue-break.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 45 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-nobody.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-nobody.vert.out index 0ec3584da8..2a3bcf40ee 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.for-nobody.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.for-nobody.vert.out @@ -1,8 +1,6 @@ spv.for-nobody.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 25 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-notest.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-notest.vert.out index c7346f9df8..36c4a96a3a 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.for-notest.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.for-notest.vert.out @@ -1,8 +1,6 @@ spv.for-notest.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 20 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-simple.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-simple.vert.out index 996b65a4af..ecb539f902 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.for-simple.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.for-simple.vert.out @@ -1,8 +1,6 @@ spv.for-simple.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 24 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.forLoop.frag.out b/deps/glslang/glslang/Test/baseResults/spv.forLoop.frag.out index 628c791f67..a07921ce77 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.forLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.forLoop.frag.out @@ -1,6 +1,6 @@ spv.forLoop.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 131 Capability Shader @@ -26,6 +26,7 @@ spv.forLoop.frag 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.forwardFun.frag.out b/deps/glslang/glslang/Test/baseResults/spv.forwardFun.frag.out index 65759531ed..32875b2ce3 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.forwardFun.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.forwardFun.frag.out @@ -1,6 +1,6 @@ spv.forwardFun.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 60 Capability Shader @@ -32,6 +32,7 @@ spv.forwardFun.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.fullyCovered.frag.out b/deps/glslang/glslang/Test/baseResults/spv.fullyCovered.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.fullyCovered.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.fullyCovered.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.functionCall.frag.out b/deps/glslang/glslang/Test/baseResults/spv.functionCall.frag.out index 69a525f791..269b74e64e 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.functionCall.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.functionCall.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas WARNING: 0:5: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 76 Capability Shader @@ -28,6 +28,7 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas Name 66 "g" Name 69 "gl_FragColor" Name 75 "bigColor" + Decorate 69(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.functionNestedOpaque.vert.out b/deps/glslang/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.functionNestedOpaque.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.functionSemantics.frag.out b/deps/glslang/glslang/Test/baseResults/spv.functionSemantics.frag.out index 005a315bb1..49bdf7cdb7 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.functionSemantics.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.functionSemantics.frag.out @@ -1,8 +1,6 @@ spv.functionSemantics.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 156 Capability Shader @@ -44,6 +42,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.glFragColor.frag.out b/deps/glslang/glslang/Test/baseResults/spv.glFragColor.frag.out index febbdf4698..55fb24f125 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.glFragColor.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.glFragColor.frag.out @@ -1,6 +1,6 @@ spv.glFragColor.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 12 Capability Shader @@ -11,6 +11,7 @@ spv.glFragColor.frag Source GLSL 330 Name 4 "main" Name 9 "gl_FragColor" + Decorate 9(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 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 index 11818f6473..079e8d5233 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out @@ -1,8 +1,6 @@ spv.glsl.register.autoassign.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 142 Capability Shader @@ -78,6 +76,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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 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 index 327ac04aea..44d63ed1d7 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out @@ -1,8 +1,6 @@ spv.glsl.register.noautoassign.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 142 Capability Shader @@ -43,19 +41,25 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 137 "FragColor" Name 141 "g_tTex_unused3" Decorate 17(g_tTex1) DescriptorSet 0 - Decorate 17(g_tTex1) Binding 11 + 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 13 + 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 @@ -67,12 +71,16 @@ Warning, version 450 is not yet complete; most version-specific features are pre Decorate 97 DescriptorSet 0 Decorate 97 Binding 19 Decorate 119(g_tTex_unused1) DescriptorSet 0 - Decorate 119(g_tTex_unused1) Binding 10 + 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 12 + 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 diff --git a/deps/glslang-new/Test/baseResults/spv.hlslDebugInfo.frag.out b/deps/glslang/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.hlslDebugInfo.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.hlslOffsets.vert.out b/deps/glslang/glslang/Test/baseResults/spv.hlslOffsets.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.hlslOffsets.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.hlslOffsets.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.image.frag.out b/deps/glslang/glslang/Test/baseResults/spv.image.frag.out index 2dd7d4b3f4..2c35a0c2f8 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.image.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.image.frag.out @@ -1,22 +1,21 @@ spv.image.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 378 +// Generated by (magic number): 80007 +// Id's are bound by 376 Capability Shader - Capability SampledRect - Capability Sampled1D - Capability SampledCubeArray - Capability SampledBuffer + 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 377 + EntryPoint Fragment 4 "main" 132 142 152 248 362 375 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -42,7 +41,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 248 "value" Name 357 "wo2D" Name 362 "fragData" - Name 377 "ic4D" + Name 375 "ic4D" Decorate 15(i1D) DescriptorSet 0 Decorate 15(i1D) Binding 0 Decorate 27(i2D) DescriptorSet 0 @@ -76,7 +75,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre Decorate 357(wo2D) DescriptorSet 0 Decorate 357(wo2D) Binding 1 Decorate 357(wo2D) NonReadable - Decorate 377(ic4D) Flat + Decorate 375(ic4D) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -163,16 +162,16 @@ Warning, version 450 is not yet complete; most version-specific features are pre 357(wo2D): 356(ptr) Variable UniformConstant 361: TypePointer Output 125(fvec4) 362(fragData): 361(ptr) Variable Output - 368: TypeBool - 375: TypeVector 6(int) 4 - 376: TypePointer Input 375(ivec4) - 377(ic4D): 376(ptr) Variable Input + 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 - 363: 126(ptr) Variable Function Store 9(iv) 11 16: 13 Load 15(i1D) 17: 6(int) ImageQuerySize 16 @@ -498,22 +497,14 @@ Warning, version 450 is not yet complete; most version-specific features are pre 359: 29(ivec2) Load 142(ic2D) 360: 125(fvec4) Load 127(v) ImageWrite 358 359 360 - 364: 18(int) Load 229(ui) - 365: 20(ptr) AccessChain 9(iv) 237 - 366: 6(int) Load 365 - 367: 18(int) Bitcast 366 - 369: 368(bool) INotEqual 364 367 - SelectionMerge 371 None - BranchConditional 369 370 373 - 370: Label - 372: 125(fvec4) Load 127(v) - Store 363 372 - Branch 371 - 373: Label - Store 363 129 - Branch 371 - 371: Label - 374: 125(fvec4) Load 363 - Store 362(fragData) 374 + 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-new/Test/baseResults/spv.image.load-formatted.frag.out b/deps/glslang/glslang/Test/baseResults/spv.image.load-formatted.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.image.load-formatted.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.image.load-formatted.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.imageLoadStoreLod.frag.out b/deps/glslang/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.imageLoadStoreLod.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.int16.amd.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int16.amd.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.int16.amd.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.int16.amd.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.int16.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int16.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.int16.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.int16.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.int32.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int32.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.int32.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.int32.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.int64.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int64.frag.out index cb5433ec6a..b82cfa3212 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.int64.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.int64.frag.out @@ -1,9 +1,7 @@ spv.int64.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 480 +// Generated by (magic number): 80007 +// Id's are bound by 488 Capability Shader Capability Float64 @@ -14,6 +12,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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(" @@ -38,47 +37,52 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 139 "i64" Name 159 "i" Name 166 "uv" - Name 218 "b" - Name 278 "i64v" - Name 281 "i64" - Name 291 "u64v" - Name 293 "u64" - Name 365 "dv" - Name 384 "iv" - Name 389 "uv" - Name 393 "bv" - Name 454 "Block" - MemberName 454(Block) 0 "i64v" - MemberName 454(Block) 1 "u64" - Name 456 "block" + 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 454(Block) 0 Offset 0 - MemberDecorate 454(Block) 1 Offset 24 - Decorate 454(Block) Block - Decorate 456(block) DescriptorSet 0 - Decorate 456(block) Binding 1 - Decorate 457 SpecId 100 - Decorate 458 SpecId 101 - Decorate 459 SpecId 102 - Decorate 460 SpecId 103 - Decorate 461 SpecId 104 + 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(int) + 15: TypePointer Private 14(int64_t) 16(u64Max): 15(ptr) Variable Private - 17: 14(int) Constant 4294967295 4294967295 + 17: 14(int64_t) Constant 4294967295 4294967295 18: TypeInt 64 1 - 19: TypePointer Function 18(int) + 19: TypePointer Function 18(int64_t) 21: TypeInt 32 0 22: 21(int) Constant 3 - 23: TypeArray 18(int) 22 - 24: 18(int) Constant 4008636143 4008636142 - 25: 18(int) Constant 4294967295 4294967295 - 26: 18(int) Constant 0 1 + 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) @@ -87,27 +91,27 @@ Warning, version 450 is not yet complete; most version-specific features are pre 32: 31(int) Constant 0 33: TypePointer Uniform 21(int) 36: TypePointer Function 23 - 40: TypePointer Function 14(int) - 42: TypeArray 14(int) 22 - 43: 14(int) Constant 0 1 - 44: 14(int) Constant 4294967295 1 + 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(int) 2 - 53: TypePointer Function 52(ivec2) + 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(int) Constant 0 0 - 61: 18(int) Constant 1 0 - 62: 52(ivec2) ConstantComposite 60 60 - 63: 52(ivec2) ConstantComposite 61 61 - 65: TypeVector 14(int) 2 - 66: TypePointer Function 65(ivec2) - 69: 14(int) Constant 0 0 - 70: 14(int) Constant 1 0 - 71: 65(ivec2) ConstantComposite 69 69 - 72: 65(ivec2) ConstantComposite 70 70 + 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 @@ -116,61 +120,61 @@ Warning, version 450 is not yet complete; most version-specific features are pre 89: TypeVector 88(float) 2 90: TypePointer Function 89(fvec2) 94: TypeFloat 64 - 95: TypeVector 94(float) 2 - 96: TypePointer Function 95(fvec2) - 132: TypeVector 14(int) 3 - 133: TypePointer Function 132(ivec3) - 136: TypeVector 18(int) 3 + 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 - 202: 21(int) Constant 1 - 203: TypePointer Function 21(int) - 209: 21(int) Constant 2 - 217: TypePointer Function 55(bool) - 219: 21(int) Constant 0 - 289: 52(ivec2) ConstantComposite 25 25 - 298: 132(ivec3) ConstantComposite 69 69 69 - 340: 55(bool) ConstantTrue - 347: 55(bool) ConstantFalse - 348: 56(bvec2) ConstantComposite 347 347 - 360: TypeVector 55(bool) 3 - 361: 360(bvec3) ConstantComposite 347 347 347 - 363: TypeVector 94(float) 3 - 364: TypePointer Function 363(fvec3) - 369: TypePointer Function 94(float) - 380: 31(int) Constant 1 - 381: 31(int) Constant 2 - 382: 74(ivec2) ConstantComposite 380 381 - 387: 81(ivec2) ConstantComposite 209 22 - 392: TypePointer Function 360(bvec3) - 454(Block): TypeStruct 136(ivec3) 14(int) - 455: TypePointer Uniform 454(Block) - 456(block): 455(ptr) Variable Uniform - 457: 18(int) SpecConstant 4294967286 4294967295 - 458: 14(int) SpecConstant 20 0 - 459: 31(int) SpecConstant 4294967291 - 460: 21(int) SpecConstant 4 - 461: 55(bool) SpecConstantTrue - 462: 55(bool) SpecConstantOp 171 457 69 - 463: 55(bool) SpecConstantOp 171 458 69 - 464: 18(int) SpecConstantOp 169 461 61 60 - 465: 14(int) SpecConstantOp 169 461 70 69 - 466: 31(int) SpecConstantOp 114 457 - 467: 18(int) SpecConstantOp 114 459 - 468: 21(int) SpecConstantOp 113 458 - 469: 14(int) SpecConstantOp 113 460 - 470: 18(int) SpecConstantOp 128 458 69 - 471: 14(int) SpecConstantOp 128 457 69 - 472: 21(int) SpecConstantOp 113 458 - 473: 31(int) SpecConstantOp 128 472 219 - 474: 18(int) SpecConstantOp 114 459 - 475: 14(int) SpecConstantOp 128 474 69 - 476: 31(int) SpecConstantOp 114 457 - 477: 21(int) SpecConstantOp 128 476 219 - 478: 14(int) SpecConstantOp 113 460 - 479: 18(int) SpecConstantOp 128 478 69 + 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 @@ -186,13 +190,13 @@ Warning, version 450 is not yet complete; most version-specific features are pre 35: 21(int) Load 34 Store 37(indexable) 27 38: 19(ptr) AccessChain 37(indexable) 35 - 39: 18(int) Load 38 + 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(int) Load 50 + 51: 14(int64_t) Load 50 Store 41(u64) 51 Return FunctionEnd @@ -206,74 +210,74 @@ Warning, version 450 is not yet complete; most version-specific features are pre 91(fv): 90(ptr) Variable Function 97(dv): 96(ptr) Variable Function 59: 56(bvec2) Load 58(bv) - 64: 52(ivec2) Select 59 63 62 + 64: 52(i64vec2) Select 59 63 62 Store 54(i64v) 64 68: 56(bvec2) Load 58(bv) - 73: 65(ivec2) Select 68 72 71 + 73: 65(i64vec2) Select 68 72 71 Store 67(u64v) 73 77: 74(ivec2) Load 76(iv) - 78: 52(ivec2) SConvert 77 + 78: 52(i64vec2) SConvert 77 Store 54(i64v) 78 - 79: 52(ivec2) Load 54(i64v) + 79: 52(i64vec2) Load 54(i64v) 80: 74(ivec2) SConvert 79 Store 76(iv) 80 84: 81(ivec2) Load 83(uv) - 85: 65(ivec2) UConvert 84 + 85: 65(i64vec2) UConvert 84 Store 67(u64v) 85 - 86: 65(ivec2) Load 67(u64v) + 86: 65(i64vec2) Load 67(u64v) 87: 81(ivec2) UConvert 86 Store 83(uv) 87 - 92: 52(ivec2) Load 54(i64v) + 92: 52(i64vec2) Load 54(i64v) 93: 89(fvec2) ConvertSToF 92 Store 91(fv) 93 - 98: 52(ivec2) Load 54(i64v) - 99: 95(fvec2) ConvertSToF 98 + 98: 52(i64vec2) Load 54(i64v) + 99: 95(f64vec2) ConvertSToF 98 Store 97(dv) 99 - 100: 65(ivec2) Load 67(u64v) + 100: 65(i64vec2) Load 67(u64v) 101: 89(fvec2) ConvertUToF 100 Store 91(fv) 101 - 102: 65(ivec2) Load 67(u64v) - 103: 95(fvec2) ConvertUToF 102 + 102: 65(i64vec2) Load 67(u64v) + 103: 95(f64vec2) ConvertUToF 102 Store 97(dv) 103 104: 89(fvec2) Load 91(fv) - 105: 52(ivec2) ConvertFToS 104 + 105: 52(i64vec2) ConvertFToS 104 Store 54(i64v) 105 - 106: 95(fvec2) Load 97(dv) - 107: 52(ivec2) ConvertFToS 106 + 106: 95(f64vec2) Load 97(dv) + 107: 52(i64vec2) ConvertFToS 106 Store 54(i64v) 107 108: 89(fvec2) Load 91(fv) - 109: 65(ivec2) ConvertFToU 108 + 109: 65(i64vec2) ConvertFToU 108 Store 67(u64v) 109 - 110: 95(fvec2) Load 97(dv) - 111: 65(ivec2) ConvertFToU 110 + 110: 95(f64vec2) Load 97(dv) + 111: 65(i64vec2) ConvertFToU 110 Store 67(u64v) 111 - 112: 52(ivec2) Load 54(i64v) + 112: 52(i64vec2) Load 54(i64v) 113: 56(bvec2) INotEqual 112 71 Store 58(bv) 113 - 114: 65(ivec2) Load 67(u64v) + 114: 65(i64vec2) Load 67(u64v) 115: 56(bvec2) INotEqual 114 71 Store 58(bv) 115 - 116: 52(ivec2) Load 54(i64v) - 117: 65(ivec2) Bitcast 116 + 116: 52(i64vec2) Load 54(i64v) + 117: 65(i64vec2) Bitcast 116 Store 67(u64v) 117 - 118: 65(ivec2) Load 67(u64v) - 119: 52(ivec2) Bitcast 118 + 118: 65(i64vec2) Load 67(u64v) + 119: 52(i64vec2) Bitcast 118 Store 54(i64v) 119 - 120: 52(ivec2) Load 54(i64v) + 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(ivec2) UConvert 123 - 125: 52(ivec2) Bitcast 124 + 124: 65(i64vec2) UConvert 123 + 125: 52(i64vec2) Bitcast 124 Store 54(i64v) 125 - 126: 65(ivec2) Load 67(u64v) + 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(ivec2) SConvert 129 - 131: 65(ivec2) Bitcast 130 + 130: 52(i64vec2) SConvert 129 + 131: 65(i64vec2) Bitcast 130 Store 67(u64v) 131 Return FunctionEnd @@ -283,371 +287,381 @@ Warning, version 450 is not yet complete; most version-specific features are pre 139(i64): 19(ptr) Variable Function 159(i): 158(ptr) Variable Function 166(uv): 165(ptr) Variable Function - 218(b): 217(ptr) Variable Function - 135: 132(ivec3) Load 134(u64v) - 137: 136(ivec3) CompositeConstruct 61 61 61 - 138: 132(ivec3) IAdd 135 137 + 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(int) Load 139(i64) - 141: 18(int) ISub 140 61 + 140: 18(int64_t) Load 139(i64) + 141: 18(int64_t) ISub 140 61 Store 139(i64) 141 - 142: 18(int) Load 139(i64) - 143: 18(int) IAdd 142 61 + 142: 18(int64_t) Load 139(i64) + 143: 18(int64_t) IAdd 142 61 Store 139(i64) 143 - 144: 132(ivec3) Load 134(u64v) - 145: 136(ivec3) CompositeConstruct 61 61 61 - 146: 132(ivec3) ISub 144 145 + 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(ivec3) Load 134(u64v) - 148: 132(ivec3) Not 147 + 147:132(i64vec3) Load 134(u64v) + 148:132(i64vec3) Not 147 Store 134(u64v) 148 - 149: 18(int) Load 139(i64) + 149: 18(int64_t) Load 139(i64) Store 139(i64) 149 - 150: 132(ivec3) Load 134(u64v) - 151: 132(ivec3) SNegate 150 + 150:132(i64vec3) Load 134(u64v) + 151:132(i64vec3) SNegate 150 Store 134(u64v) 151 - 152: 18(int) Load 139(i64) - 153: 18(int) Load 139(i64) - 154: 18(int) IAdd 153 152 + 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(ivec3) Load 134(u64v) - 156: 132(ivec3) Load 134(u64v) - 157: 132(ivec3) ISub 156 155 + 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(int) SConvert 160 - 162: 18(int) Load 139(i64) - 163: 18(int) IMul 162 161 + 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(ivec3) UConvert 167 - 169: 132(ivec3) Load 134(u64v) - 170: 132(ivec3) UDiv 169 168 + 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(int) SConvert 171 - 173: 14(int) Bitcast 172 - 174: 132(ivec3) Load 134(u64v) - 175: 132(ivec3) CompositeConstruct 173 173 173 - 176: 132(ivec3) UMod 174 175 + 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(ivec3) Load 134(u64v) + 177:132(i64vec3) Load 134(u64v) 178: 164(ivec3) Load 166(uv) - 179: 132(ivec3) UConvert 178 - 180: 132(ivec3) IAdd 177 179 + 179:132(i64vec3) UConvert 178 + 180:132(i64vec3) IAdd 177 179 Store 134(u64v) 180 - 181: 18(int) Load 139(i64) + 181: 18(int64_t) Load 139(i64) 182: 31(int) Load 159(i) - 183: 18(int) SConvert 182 - 184: 18(int) ISub 181 183 + 183: 18(int64_t) SConvert 182 + 184: 18(int64_t) ISub 181 183 Store 139(i64) 184 - 185: 132(ivec3) Load 134(u64v) + 185:132(i64vec3) Load 134(u64v) 186: 164(ivec3) Load 166(uv) - 187: 132(ivec3) UConvert 186 - 188: 132(ivec3) IMul 185 187 + 187:132(i64vec3) UConvert 186 + 188:132(i64vec3) IMul 185 187 Store 134(u64v) 188 - 189: 18(int) Load 139(i64) + 189: 18(int64_t) Load 139(i64) 190: 31(int) Load 159(i) - 191: 18(int) SConvert 190 - 192: 18(int) IMul 189 191 + 191: 18(int64_t) SConvert 190 + 192: 18(int64_t) IMul 189 191 Store 139(i64) 192 - 193: 18(int) Load 139(i64) + 193: 18(int64_t) Load 139(i64) 194: 31(int) Load 159(i) - 195: 18(int) SConvert 194 - 196: 18(int) SMod 193 195 + 195: 18(int64_t) SConvert 194 + 196: 18(int64_t) SMod 193 195 Store 139(i64) 196 - 197: 31(int) Load 159(i) - 198: 132(ivec3) Load 134(u64v) - 200: 199(ivec3) CompositeConstruct 197 197 197 - 201: 132(ivec3) ShiftLeftLogical 198 200 + 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 - 204: 203(ptr) AccessChain 166(uv) 202 - 205: 21(int) Load 204 - 206: 18(int) Load 139(i64) - 207: 18(int) ShiftRightArithmetic 206 205 + 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: 18(int) Load 139(i64) - 210: 40(ptr) AccessChain 134(u64v) 209 - 211: 14(int) Load 210 - 212: 18(int) ShiftLeftLogical 208 211 - Store 139(i64) 212 - 213: 132(ivec3) Load 134(u64v) - 214: 18(int) Load 139(i64) - 215: 136(ivec3) CompositeConstruct 214 214 214 - 216: 132(ivec3) ShiftLeftLogical 213 215 - Store 134(u64v) 216 - 220: 40(ptr) AccessChain 134(u64v) 219 - 221: 14(int) Load 220 - 222: 18(int) Load 139(i64) - 223: 14(int) Bitcast 222 - 224: 55(bool) INotEqual 221 223 - Store 218(b) 224 - 225: 18(int) Load 139(i64) - 226: 14(int) Bitcast 225 - 227: 40(ptr) AccessChain 134(u64v) 219 - 228: 14(int) Load 227 - 229: 55(bool) IEqual 226 228 - Store 218(b) 229 - 230: 40(ptr) AccessChain 134(u64v) 219 - 231: 14(int) Load 230 - 232: 203(ptr) AccessChain 166(uv) 202 - 233: 21(int) Load 232 - 234: 14(int) UConvert 233 - 235: 55(bool) UGreaterThan 231 234 - Store 218(b) 235 - 236: 18(int) Load 139(i64) - 237: 31(int) Load 159(i) - 238: 18(int) SConvert 237 - 239: 55(bool) SLessThan 236 238 - Store 218(b) 239 - 240: 40(ptr) AccessChain 134(u64v) 202 - 241: 14(int) Load 240 - 242: 203(ptr) AccessChain 166(uv) 219 - 243: 21(int) Load 242 - 244: 14(int) UConvert 243 - 245: 55(bool) UGreaterThanEqual 241 244 - Store 218(b) 245 - 246: 18(int) Load 139(i64) - 247: 31(int) Load 159(i) - 248: 18(int) SConvert 247 - 249: 55(bool) SLessThanEqual 246 248 - Store 218(b) 249 - 250: 31(int) Load 159(i) - 251: 18(int) SConvert 250 - 252: 14(int) Bitcast 251 - 253: 132(ivec3) Load 134(u64v) - 254: 132(ivec3) CompositeConstruct 252 252 252 - 255: 132(ivec3) BitwiseOr 253 254 - Store 134(u64v) 255 - 256: 18(int) Load 139(i64) - 257: 31(int) Load 159(i) - 258: 18(int) SConvert 257 - 259: 18(int) BitwiseOr 256 258 - Store 139(i64) 259 - 260: 31(int) Load 159(i) - 261: 18(int) SConvert 260 - 262: 18(int) Load 139(i64) - 263: 18(int) BitwiseAnd 262 261 - Store 139(i64) 263 - 264: 132(ivec3) Load 134(u64v) - 265: 164(ivec3) Load 166(uv) - 266: 132(ivec3) UConvert 265 - 267: 132(ivec3) BitwiseAnd 264 266 - Store 134(u64v) 267 - 268: 18(int) Load 139(i64) - 269: 14(int) Bitcast 268 - 270: 132(ivec3) Load 134(u64v) - 271: 132(ivec3) CompositeConstruct 269 269 269 - 272: 132(ivec3) BitwiseXor 270 271 - Store 134(u64v) 272 - 273: 132(ivec3) Load 134(u64v) - 274: 18(int) Load 139(i64) - 275: 14(int) Bitcast 274 - 276: 132(ivec3) CompositeConstruct 275 275 275 - 277: 132(ivec3) BitwiseXor 273 276 - Store 134(u64v) 277 + 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 - 278(i64v): 53(ptr) Variable Function - 281(i64): 19(ptr) Variable Function - 291(u64v): 133(ptr) Variable Function - 293(u64): 40(ptr) Variable Function - 365(dv): 364(ptr) Variable Function - 384(iv): 75(ptr) Variable Function - 389(uv): 82(ptr) Variable Function - 393(bv): 392(ptr) Variable Function - 279: 52(ivec2) Load 278(i64v) - 280: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 279 - Store 278(i64v) 280 - 282: 18(int) Load 281(i64) - 283: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 282 - Store 281(i64) 283 - 284: 52(ivec2) Load 278(i64v) - 285: 18(int) Load 281(i64) - 286: 52(ivec2) CompositeConstruct 285 285 - 287: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 284 286 - Store 278(i64v) 287 - 288: 52(ivec2) Load 278(i64v) - 290: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 288 289 - Store 278(i64v) 290 - 292: 132(ivec3) Load 291(u64v) - 294: 14(int) Load 293(u64) - 295: 132(ivec3) CompositeConstruct 294 294 294 - 296: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 292 295 - Store 291(u64v) 296 - 297: 132(ivec3) Load 291(u64v) - 299: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 297 298 - Store 291(u64v) 299 - 300: 52(ivec2) Load 278(i64v) - 301: 18(int) Load 281(i64) - 302: 52(ivec2) CompositeConstruct 301 301 - 303: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 300 302 - Store 278(i64v) 303 - 304: 52(ivec2) Load 278(i64v) - 305: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 304 289 - Store 278(i64v) 305 - 306: 132(ivec3) Load 291(u64v) - 307: 14(int) Load 293(u64) - 308: 132(ivec3) CompositeConstruct 307 307 307 - 309: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 306 308 - Store 291(u64v) 309 - 310: 132(ivec3) Load 291(u64v) - 311: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 310 298 - Store 291(u64v) 311 - 312: 52(ivec2) Load 278(i64v) - 313: 18(int) Load 281(i64) - 314: 18(int) SNegate 313 - 315: 18(int) Load 281(i64) - 316: 52(ivec2) CompositeConstruct 314 314 - 317: 52(ivec2) CompositeConstruct 315 315 - 318: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 312 316 317 - Store 278(i64v) 318 - 319: 52(ivec2) Load 278(i64v) - 320: 52(ivec2) Load 278(i64v) - 321: 52(ivec2) SNegate 320 - 322: 52(ivec2) Load 278(i64v) - 323: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 319 321 322 - Store 278(i64v) 323 - 324: 132(ivec3) Load 291(u64v) - 325: 14(int) Load 293(u64) - 326: 14(int) SNegate 325 - 327: 14(int) Load 293(u64) - 328: 132(ivec3) CompositeConstruct 326 326 326 - 329: 132(ivec3) CompositeConstruct 327 327 327 - 330: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 324 328 329 - Store 291(u64v) 330 - 331: 132(ivec3) Load 291(u64v) - 332: 132(ivec3) Load 291(u64v) - 333: 132(ivec3) SNegate 332 - 334: 132(ivec3) Load 291(u64v) - 335: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 331 333 334 - Store 291(u64v) 335 - 336: 19(ptr) AccessChain 278(i64v) 219 - 337: 18(int) Load 336 - 338: 19(ptr) AccessChain 278(i64v) 202 - 339: 18(int) Load 338 - 341: 18(int) Select 340 339 337 - Store 281(i64) 341 - 342: 18(int) Load 281(i64) - 343: 52(ivec2) CompositeConstruct 342 342 - 344: 18(int) Load 281(i64) - 345: 18(int) SNegate 344 - 346: 52(ivec2) CompositeConstruct 345 345 - 349: 52(ivec2) Select 348 346 343 - Store 278(i64v) 349 - 350: 40(ptr) AccessChain 291(u64v) 219 - 351: 14(int) Load 350 - 352: 40(ptr) AccessChain 291(u64v) 202 - 353: 14(int) Load 352 - 354: 14(int) Select 340 353 351 - Store 293(u64) 354 - 355: 14(int) Load 293(u64) - 356: 132(ivec3) CompositeConstruct 355 355 355 - 357: 14(int) Load 293(u64) - 358: 14(int) SNegate 357 - 359: 132(ivec3) CompositeConstruct 358 358 358 - 362: 132(ivec3) Select 361 359 356 - Store 291(u64v) 362 - 366: 363(fvec3) Load 365(dv) - 367: 95(fvec2) VectorShuffle 366 366 0 1 - 368: 52(ivec2) Bitcast 367 - Store 278(i64v) 368 - 370: 369(ptr) AccessChain 365(dv) 209 - 371: 94(float) Load 370 - 372: 14(int) Bitcast 371 - 373: 40(ptr) AccessChain 291(u64v) 219 - Store 373 372 - 374: 52(ivec2) Load 278(i64v) - 375: 95(fvec2) Bitcast 374 - 376: 363(fvec3) Load 365(dv) - 377: 363(fvec3) VectorShuffle 376 375 3 4 2 - Store 365(dv) 377 - 378: 132(ivec3) Load 291(u64v) - 379: 363(fvec3) Bitcast 378 - Store 365(dv) 379 - 383: 18(int) Bitcast 382 - Store 281(i64) 383 - 385: 18(int) Load 281(i64) - 386: 74(ivec2) Bitcast 385 - Store 384(iv) 386 - 388: 14(int) Bitcast 387 - Store 293(u64) 388 - 390: 14(int) Load 293(u64) - 391: 81(ivec2) Bitcast 390 - Store 389(uv) 391 - 394: 132(ivec3) Load 291(u64v) - 395: 14(int) Load 293(u64) - 396: 132(ivec3) CompositeConstruct 395 395 395 - 397: 360(bvec3) ULessThan 394 396 - Store 393(bv) 397 - 398: 52(ivec2) Load 278(i64v) - 399: 18(int) Load 281(i64) - 400: 52(ivec2) CompositeConstruct 399 399 - 401: 56(bvec2) SLessThan 398 400 - 402: 360(bvec3) Load 393(bv) - 403: 360(bvec3) VectorShuffle 402 401 3 4 2 - Store 393(bv) 403 - 404: 132(ivec3) Load 291(u64v) - 405: 14(int) Load 293(u64) - 406: 132(ivec3) CompositeConstruct 405 405 405 - 407: 360(bvec3) ULessThanEqual 404 406 - Store 393(bv) 407 - 408: 52(ivec2) Load 278(i64v) - 409: 18(int) Load 281(i64) - 410: 52(ivec2) CompositeConstruct 409 409 - 411: 56(bvec2) SLessThanEqual 408 410 - 412: 360(bvec3) Load 393(bv) - 413: 360(bvec3) VectorShuffle 412 411 3 4 2 - Store 393(bv) 413 - 414: 132(ivec3) Load 291(u64v) - 415: 14(int) Load 293(u64) - 416: 132(ivec3) CompositeConstruct 415 415 415 - 417: 360(bvec3) UGreaterThan 414 416 - Store 393(bv) 417 - 418: 52(ivec2) Load 278(i64v) - 419: 18(int) Load 281(i64) - 420: 52(ivec2) CompositeConstruct 419 419 - 421: 56(bvec2) SGreaterThan 418 420 - 422: 360(bvec3) Load 393(bv) - 423: 360(bvec3) VectorShuffle 422 421 3 4 2 - Store 393(bv) 423 - 424: 132(ivec3) Load 291(u64v) - 425: 14(int) Load 293(u64) - 426: 132(ivec3) CompositeConstruct 425 425 425 - 427: 360(bvec3) UGreaterThanEqual 424 426 - Store 393(bv) 427 - 428: 52(ivec2) Load 278(i64v) - 429: 18(int) Load 281(i64) - 430: 52(ivec2) CompositeConstruct 429 429 - 431: 56(bvec2) SGreaterThanEqual 428 430 - 432: 360(bvec3) Load 393(bv) - 433: 360(bvec3) VectorShuffle 432 431 3 4 2 - Store 393(bv) 433 - 434: 132(ivec3) Load 291(u64v) - 435: 14(int) Load 293(u64) - 436: 132(ivec3) CompositeConstruct 435 435 435 - 437: 360(bvec3) IEqual 434 436 - Store 393(bv) 437 - 438: 52(ivec2) Load 278(i64v) - 439: 18(int) Load 281(i64) - 440: 52(ivec2) CompositeConstruct 439 439 - 441: 56(bvec2) IEqual 438 440 - 442: 360(bvec3) Load 393(bv) - 443: 360(bvec3) VectorShuffle 442 441 3 4 2 - Store 393(bv) 443 - 444: 132(ivec3) Load 291(u64v) - 445: 14(int) Load 293(u64) - 446: 132(ivec3) CompositeConstruct 445 445 445 - 447: 360(bvec3) INotEqual 444 446 - Store 393(bv) 447 - 448: 52(ivec2) Load 278(i64v) - 449: 18(int) Load 281(i64) - 450: 52(ivec2) CompositeConstruct 449 449 - 451: 56(bvec2) INotEqual 448 450 - 452: 360(bvec3) Load 393(bv) - 453: 360(bvec3) VectorShuffle 452 451 3 4 2 - Store 393(bv) 453 + 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-new/Test/baseResults/spv.int8.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int8.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.int8.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.int8.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.intOps.vert.out b/deps/glslang/glslang/Test/baseResults/spv.intOps.vert.out index 93d2dfdae1..2a63783207 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.intOps.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.intOps.vert.out @@ -1,8 +1,6 @@ spv.intOps.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 268 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.interpOps.frag.out b/deps/glslang/glslang/Test/baseResults/spv.interpOps.frag.out index 88d8e53cfd..699524dd95 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.interpOps.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.interpOps.frag.out @@ -1,8 +1,6 @@ spv.interpOps.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 +// Generated by (magic number): 80007 // Id's are bound by 100 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.layoutNested.vert.out b/deps/glslang/glslang/Test/baseResults/spv.layoutNested.vert.out index 0d0b28bbec..b5ef883454 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.layoutNested.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.layoutNested.vert.out @@ -1,8 +1,6 @@ spv.layoutNested.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 66 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.length.frag.out b/deps/glslang/glslang/Test/baseResults/spv.length.frag.out index 76f6ca63d6..8e799fbb42 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.length.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.length.frag.out @@ -1,6 +1,6 @@ spv.length.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 33 Capability Shader @@ -14,6 +14,7 @@ spv.length.frag Name 14 "v" Name 26 "gl_FragColor" Name 32 "u" + Decorate 26(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang/Test/baseResults/spv.localAggregates.frag.out b/deps/glslang/glslang/Test/baseResults/spv.localAggregates.frag.out index 7ffa874171..5f89611e6f 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.localAggregates.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.localAggregates.frag.out @@ -1,8 +1,6 @@ spv.localAggregates.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 136 Capability Shader @@ -42,6 +40,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.loops.frag.out b/deps/glslang/glslang/Test/baseResults/spv.loops.frag.out index 8b1b48076d..046360f609 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.loops.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.loops.frag.out @@ -1,6 +1,6 @@ spv.loops.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 725 Capability Shader @@ -49,6 +49,7 @@ spv.loops.frag Name 687 "d18" Name 698 "d17" Decorate 157(Count) Flat + Decorate 615(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang/Test/baseResults/spv.loopsArtificial.frag.out b/deps/glslang/glslang/Test/baseResults/spv.loopsArtificial.frag.out index 707a78df0e..d0d60542f8 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.loopsArtificial.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.loopsArtificial.frag.out @@ -1,6 +1,6 @@ spv.loopsArtificial.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 158 Capability Shader @@ -30,6 +30,7 @@ spv.loopsArtificial.frag Name 153 "d2" Name 154 "d3" Name 157 "Count" + Decorate 140(gl_FragColor) Location 0 Decorate 157(Count) Flat 2: TypeVoid 3: TypeFunction 2 diff --git a/deps/glslang-new/Test/baseResults/spv.looseUniformNoLoc.vert.out b/deps/glslang/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.looseUniformNoLoc.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.matFun.vert.out b/deps/glslang/glslang/Test/baseResults/spv.matFun.vert.out index 38d9d2cf1f..47b692f725 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.matFun.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.matFun.vert.out @@ -1,8 +1,6 @@ spv.matFun.vert -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 103 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.matrix.frag.out b/deps/glslang/glslang/Test/baseResults/spv.matrix.frag.out index 700e90ebcd..c2b4a1f6c8 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.matrix.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.matrix.frag.out @@ -1,9 +1,7 @@ spv.matrix.frag -Warning, version 420 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 261 +// Generated by (magic number): 80007 +// Id's are bound by 286 Capability Shader Capability Float64 @@ -38,8 +36,8 @@ Warning, version 420 is not yet complete; most version-specific features are pre 28(f): 27(ptr) Variable Input 81: 6(float) Constant 1065353216 136: TypeFloat 64 - 137: TypeVector 136(float) 4 - 138: TypeMatrix 137(fvec4) 3 + 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) @@ -55,6 +53,9 @@ Warning, version 420 is not yet complete; most version-specific features are pre 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 @@ -192,19 +193,19 @@ Warning, version 420 is not yet complete; most version-specific features are pre Store 10(sum34) 135 141: 8 Load 10(sum34) 142: 7(fvec4) CompositeExtract 141 0 - 143: 137(fvec4) FConvert 142 + 143:137(f64vec4) FConvert 142 144: 7(fvec4) CompositeExtract 141 1 - 145: 137(fvec4) FConvert 144 + 145:137(f64vec4) FConvert 144 146: 7(fvec4) CompositeExtract 141 2 - 147: 137(fvec4) FConvert 146 + 147:137(f64vec4) FConvert 146 148: 138 CompositeConstruct 143 145 147 Store 140(dm) 148 149: 138 Load 140(dm) - 150: 137(fvec4) CompositeExtract 149 0 + 150:137(f64vec4) CompositeExtract 149 0 151: 7(fvec4) FConvert 150 - 152: 137(fvec4) CompositeExtract 149 1 + 152:137(f64vec4) CompositeExtract 149 1 153: 7(fvec4) FConvert 152 - 154: 137(fvec4) CompositeExtract 149 2 + 154:137(f64vec4) CompositeExtract 149 2 155: 7(fvec4) FConvert 154 156: 8 CompositeConstruct 151 153 155 Store 10(sum34) 156 @@ -305,5 +306,29 @@ Warning, version 420 is not yet complete; most version-specific features are pre 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 index 78facff346..dc574a40d8 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.matrix2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.matrix2.frag.out @@ -1,6 +1,6 @@ spv.matrix2.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 221 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.memoryQualifier.frag.out b/deps/glslang/glslang/Test/baseResults/spv.memoryQualifier.frag.out index a990e47594..02783b9835 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.memoryQualifier.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.memoryQualifier.frag.out @@ -1,13 +1,11 @@ spv.memoryQualifier.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 +// Generated by (magic number): 80007 // Id's are bound by 97 Capability Shader - Capability SampledRect - Capability Sampled1D + Capability ImageRect + Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" @@ -37,6 +35,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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 @@ -46,12 +45,11 @@ Warning, version 450 is not yet complete; most version-specific features are pre Decorate 44(iCube) DescriptorSet 0 Decorate 44(iCube) Binding 3 Decorate 44(iCube) NonReadable - MemberDecorate 49(Data) 0 Coherent MemberDecorate 49(Data) 0 Offset 0 - MemberDecorate 49(Data) 1 Coherent 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.merge-unreachable.frag.out b/deps/glslang/glslang/Test/baseResults/spv.merge-unreachable.frag.out index 58bbb0627a..7ec0f33dfc 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.merge-unreachable.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.merge-unreachable.frag.out @@ -1,8 +1,6 @@ spv.merge-unreachable.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 +// Generated by (magic number): 80007 // Id's are bound by 25 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.multiStruct.comp.out b/deps/glslang/glslang/Test/baseResults/spv.multiStruct.comp.out index f8c0eead85..7e88a59065 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.multiStruct.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.multiStruct.comp.out @@ -1,9 +1,7 @@ spv.multiStruct.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 157 +// Generated by (magic number): 80007 +// Id's are bound by 161 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -22,31 +20,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 17 "SSBO0" MemberName 17(SSBO0) 0 "a" Name 19 "inBuf" - Name 37 "SSBO1" - MemberName 37(SSBO1) 0 "b" - Name 39 "outBuf" - Name 57 "MyStruct" - MemberName 57(MyStruct) 0 "foo" - MemberName 57(MyStruct) 1 "sb" - Name 58 "UBO" - MemberName 58(UBO) 0 "c" - Name 60 "uBuf" - Name 84 "Nested" - MemberName 84(Nested) 0 "f" - MemberName 84(Nested) 1 "S" - Name 86 "n" - Name 88 "Nested" - MemberName 88(Nested) 0 "f" - MemberName 88(Nested) 1 "S" - Name 89 "UBON" - MemberName 89(UBON) 0 "N1" - Name 91 "uBufN" - Name 122 "Nested" - MemberName 122(Nested) 0 "f" - MemberName 122(Nested) 1 "S" - Name 123 "SSBO1N" - MemberName 123(SSBO1N) 0 "N2" - Name 125 "outBufN" + 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 @@ -54,31 +52,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre Decorate 17(SSBO0) BufferBlock Decorate 19(inBuf) DescriptorSet 0 Decorate 19(inBuf) Binding 0 - MemberDecorate 37(SSBO1) 0 Offset 0 - Decorate 37(SSBO1) BufferBlock - Decorate 39(outBuf) DescriptorSet 0 - Decorate 39(outBuf) Binding 1 - Decorate 56 ArrayStride 16 - MemberDecorate 57(MyStruct) 0 Offset 0 - MemberDecorate 57(MyStruct) 1 Offset 32 - MemberDecorate 58(UBO) 0 Offset 0 - Decorate 58(UBO) Block - Decorate 60(uBuf) DescriptorSet 0 - Decorate 60(uBuf) Binding 2 - Decorate 87 ArrayStride 48 - MemberDecorate 88(Nested) 0 Offset 0 - MemberDecorate 88(Nested) 1 Offset 16 - MemberDecorate 89(UBON) 0 Offset 0 - Decorate 89(UBON) Block - Decorate 91(uBufN) DescriptorSet 0 - Decorate 91(uBufN) Binding 2 - Decorate 121 ArrayStride 24 - MemberDecorate 122(Nested) 0 Offset 0 - MemberDecorate 122(Nested) 1 Offset 8 - MemberDecorate 123(SSBO1N) 0 Offset 0 - Decorate 123(SSBO1N) BufferBlock - Decorate 125(outBufN) DescriptorSet 0 - Decorate 125(outBufN) Binding 1 + 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 @@ -100,44 +98,44 @@ Warning, version 450 is not yet complete; most version-specific features are pre 26: TypePointer Function 10 29: TypePointer Function 7(fvec2) 32: 20(int) Constant 1 - 35: TypePointer Function 11(bool) - 37(SSBO1): TypeStruct 16(MyStruct) - 38: TypePointer Uniform 37(SSBO1) - 39(outBuf): 38(ptr) Variable Uniform - 43: TypePointer Uniform 15 - 46: TypePointer Uniform 7(fvec2) - 51: 8(int) Constant 0 - 52: 8(int) Constant 1 - 54: TypePointer Uniform 8(int) - 56: TypeArray 7(fvec2) 9 - 57(MyStruct): TypeStruct 56 8(int) - 58(UBO): TypeStruct 57(MyStruct) - 59: TypePointer Uniform 58(UBO) - 60(uBuf): 59(ptr) Variable Uniform - 61: TypePointer Uniform 57(MyStruct) - 83: TypeArray 12(MyStruct) 9 - 84(Nested): TypeStruct 6(float) 83 - 85: TypePointer Function 84(Nested) - 87: TypeArray 57(MyStruct) 9 - 88(Nested): TypeStruct 6(float) 87 - 89(UBON): TypeStruct 88(Nested) - 90: TypePointer Uniform 89(UBON) - 91(uBufN): 90(ptr) Variable Uniform - 92: TypePointer Uniform 88(Nested) - 96: TypePointer Function 6(float) - 99: TypePointer Function 83 - 121: TypeArray 16(MyStruct) 9 - 122(Nested): TypeStruct 6(float) 121 - 123(SSBO1N): TypeStruct 122(Nested) - 124: TypePointer Uniform 123(SSBO1N) - 125(outBufN): 124(ptr) Variable Uniform - 127: TypePointer Uniform 122(Nested) - 130: TypePointer Uniform 6(float) - 133: TypePointer Uniform 121 + 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 - 86(n): 85(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 @@ -149,116 +147,120 @@ Warning, version 450 is not yet complete; most version-specific features are pre 33: 29(ptr) AccessChain 27 32 Store 33 31 34: 8(int) CompositeExtract 24 1 - 36: 35(ptr) AccessChain 14(t) 32 - Store 36 34 - 40:12(MyStruct) Load 14(t) - 41: 22(ptr) AccessChain 39(outBuf) 21 - 42: 10 CompositeExtract 40 0 - 44: 43(ptr) AccessChain 41 21 - 45: 7(fvec2) CompositeExtract 42 0 - 47: 46(ptr) AccessChain 44 21 - Store 47 45 - 48: 7(fvec2) CompositeExtract 42 1 - 49: 46(ptr) AccessChain 44 32 - Store 49 48 - 50: 11(bool) CompositeExtract 40 1 - 53: 8(int) Select 50 52 51 - 55: 54(ptr) AccessChain 41 32 - Store 55 53 - 62: 61(ptr) AccessChain 60(uBuf) 21 - 63:57(MyStruct) Load 62 - 64: 56 CompositeExtract 63 0 - 65: 26(ptr) AccessChain 14(t) 21 - 66: 7(fvec2) CompositeExtract 64 0 - 67: 29(ptr) AccessChain 65 21 - Store 67 66 - 68: 7(fvec2) CompositeExtract 64 1 - 69: 29(ptr) AccessChain 65 32 - Store 69 68 - 70: 8(int) CompositeExtract 63 1 - 71: 35(ptr) AccessChain 14(t) 32 - Store 71 70 - 72:12(MyStruct) Load 14(t) - 73: 22(ptr) AccessChain 39(outBuf) 21 - 74: 10 CompositeExtract 72 0 - 75: 43(ptr) AccessChain 73 21 - 76: 7(fvec2) CompositeExtract 74 0 - 77: 46(ptr) AccessChain 75 21 - Store 77 76 - 78: 7(fvec2) CompositeExtract 74 1 - 79: 46(ptr) AccessChain 75 32 + 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: 11(bool) CompositeExtract 72 1 - 81: 8(int) Select 80 52 51 - 82: 54(ptr) AccessChain 73 32 - Store 82 81 - 93: 92(ptr) AccessChain 91(uBufN) 21 - 94: 88(Nested) Load 93 - 95: 6(float) CompositeExtract 94 0 - 97: 96(ptr) AccessChain 86(n) 21 - Store 97 95 - 98: 87 CompositeExtract 94 1 - 100: 99(ptr) AccessChain 86(n) 32 - 101:57(MyStruct) CompositeExtract 98 0 - 102: 13(ptr) AccessChain 100 21 - 103: 56 CompositeExtract 101 0 - 104: 26(ptr) AccessChain 102 21 - 105: 7(fvec2) CompositeExtract 103 0 - 106: 29(ptr) AccessChain 104 21 - Store 106 105 - 107: 7(fvec2) CompositeExtract 103 1 - 108: 29(ptr) AccessChain 104 32 + 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: 8(int) CompositeExtract 101 1 - 110: 35(ptr) AccessChain 102 32 + 109: 7(fvec2) CompositeExtract 105 1 + 110: 29(ptr) AccessChain 106 32 Store 110 109 - 111:57(MyStruct) CompositeExtract 98 1 - 112: 13(ptr) AccessChain 100 32 - 113: 56 CompositeExtract 111 0 - 114: 26(ptr) AccessChain 112 21 - 115: 7(fvec2) CompositeExtract 113 0 - 116: 29(ptr) AccessChain 114 21 - Store 116 115 - 117: 7(fvec2) CompositeExtract 113 1 - 118: 29(ptr) AccessChain 114 32 - Store 118 117 - 119: 8(int) CompositeExtract 111 1 - 120: 35(ptr) AccessChain 112 32 - Store 120 119 - 126: 84(Nested) Load 86(n) - 128: 127(ptr) AccessChain 125(outBufN) 21 - 129: 6(float) CompositeExtract 126 0 - 131: 130(ptr) AccessChain 128 21 - Store 131 129 - 132: 83 CompositeExtract 126 1 - 134: 133(ptr) AccessChain 128 32 - 135:12(MyStruct) CompositeExtract 132 0 - 136: 22(ptr) AccessChain 134 21 - 137: 10 CompositeExtract 135 0 - 138: 43(ptr) AccessChain 136 21 - 139: 7(fvec2) CompositeExtract 137 0 - 140: 46(ptr) AccessChain 138 21 - Store 140 139 - 141: 7(fvec2) CompositeExtract 137 1 - 142: 46(ptr) AccessChain 138 32 - Store 142 141 - 143: 11(bool) CompositeExtract 135 1 - 144: 8(int) Select 143 52 51 - 145: 54(ptr) AccessChain 136 32 - Store 145 144 - 146:12(MyStruct) CompositeExtract 132 1 - 147: 22(ptr) AccessChain 134 32 - 148: 10 CompositeExtract 146 0 - 149: 43(ptr) AccessChain 147 21 - 150: 7(fvec2) CompositeExtract 148 0 - 151: 46(ptr) AccessChain 149 21 - Store 151 150 - 152: 7(fvec2) CompositeExtract 148 1 - 153: 46(ptr) AccessChain 149 32 - Store 153 152 - 154: 11(bool) CompositeExtract 146 1 - 155: 8(int) Select 154 52 51 - 156: 54(ptr) AccessChain 147 32 - Store 156 155 + 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 index b9b0cb2cb6..14c851cac1 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.multiStructFuncall.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.multiStructFuncall.frag.out @@ -1,9 +1,7 @@ spv.multiStructFuncall.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 63 +// Generated by (magic number): 80007 +// Id's are bound by 66 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -25,20 +23,21 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 23 "blockName" MemberName 23(blockName) 0 "s1" Name 25 "" - Name 33 "s2" - Name 36 "S" - MemberName 36(S) 0 "m" - Name 38 "param" - Name 45 "param" + Name 31 "S" + MemberName 31(S) 0 "m" + Name 32 "arg" + Name 39 "s2" + Name 42 "param" Name 48 "param" - Name 59 "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 36(S) 0 ColMajor + MemberDecorate 31(S) 0 ColMajor 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -55,48 +54,52 @@ Warning, version 450 is not yet complete; most version-specific features are pre 26: TypeInt 32 1 27: 26(int) Constant 0 28: TypePointer Uniform 22(S) - 32: TypePointer Private 9(S) - 33(s2): 32(ptr) Variable Private - 36(S): TypeStruct 8 - 37: TypePointer Function 36(S) - 42: TypePointer Function 8 - 57: TypePointer Uniform 8 + 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 - 38(param): 37(ptr) Variable Function - 45(param): 14(ptr) Variable Function - 48(param): 37(ptr) Variable Function - 59(param): 14(ptr) Variable Function + 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 - 31: 2 FunctionCall 12(fooConst(struct-S-mf441;) 30 - 34: 9(S) Load 33(s2) - 35: 2 FunctionCall 12(fooConst(struct-S-mf441;) 34 - 39: 28(ptr) AccessChain 25 27 - 40: 22(S) Load 39 - 41: 8 CompositeExtract 40 0 - 43: 42(ptr) AccessChain 38(param) 27 - Store 43 41 - 44: 2 FunctionCall 17(foo(struct-S-mf441;) 38(param) - 46: 9(S) Load 33(s2) - Store 45(param) 46 - 47: 2 FunctionCall 17(foo(struct-S-mf441;) 45(param) - 49: 28(ptr) AccessChain 25 27 - 50: 22(S) Load 49 - 51: 8 CompositeExtract 50 0 - 52: 42(ptr) AccessChain 48(param) 27 - Store 52 51 - 53: 2 FunctionCall 20(fooOut(struct-S-mf441;) 48(param) - 54: 36(S) Load 48(param) - 55: 28(ptr) AccessChain 25 27 - 56: 8 CompositeExtract 54 0 - 58: 57(ptr) AccessChain 55 27 - Store 58 56 - 60: 9(S) Load 33(s2) - Store 59(param) 60 - 61: 2 FunctionCall 20(fooOut(struct-S-mf441;) 59(param) - 62: 9(S) Load 59(param) - Store 33(s2) 62 + 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 diff --git a/deps/glslang-new/Test/baseResults/spv.multiView.frag.out b/deps/glslang/glslang/Test/baseResults/spv.multiView.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.multiView.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.multiView.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out rename to deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out diff --git a/deps/glslang-new/Test/baseResults/spv.multiviewPerViewAttributes.vert.out b/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.multiviewPerViewAttributes.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.newTexture.frag.out b/deps/glslang/glslang/Test/baseResults/spv.newTexture.frag.out index ea694eeafb..5ddd8a545f 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.newTexture.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.newTexture.frag.out @@ -1,8 +1,6 @@ spv.newTexture.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 284 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.noBuiltInLoc.vert.out b/deps/glslang/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.noBuiltInLoc.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.noDeadDecorations.vert.out b/deps/glslang/glslang/Test/baseResults/spv.noDeadDecorations.vert.out index 41d2a43147..d7e3702718 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.noDeadDecorations.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.noDeadDecorations.vert.out @@ -1,8 +1,6 @@ spv.noDeadDecorations.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 32 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.noLocation.vert.out b/deps/glslang/glslang/Test/baseResults/spv.noLocation.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.noLocation.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.noLocation.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.noWorkgroup.comp.out b/deps/glslang/glslang/Test/baseResults/spv.noWorkgroup.comp.out index 0f88436c5a..2624fdcdbd 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.noWorkgroup.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.noWorkgroup.comp.out @@ -1,8 +1,6 @@ spv.noWorkgroup.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 12 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.nonSquare.vert.out b/deps/glslang/glslang/Test/baseResults/spv.nonSquare.vert.out index 684d4f16b3..679a5f0f96 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.nonSquare.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.nonSquare.vert.out @@ -1,6 +1,6 @@ spv.nonSquare.vert // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 90 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.nonuniform.frag.out b/deps/glslang/glslang/Test/baseResults/spv.nonuniform.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.nonuniform.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.nonuniform.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.offsets.frag.out b/deps/glslang/glslang/Test/baseResults/spv.offsets.frag.out index ea4be8f4c6..17d7b86e11 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.offsets.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.offsets.frag.out @@ -1,8 +1,6 @@ spv.offsets.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 15 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.paramMemory.frag.out b/deps/glslang/glslang/Test/baseResults/spv.paramMemory.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.paramMemory.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.paramMemory.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.precise.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.precise.tesc.out index 4bae395a8a..95a048fc75 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.precise.tesc.out +++ b/deps/glslang/glslang/Test/baseResults/spv.precise.tesc.out @@ -1,8 +1,6 @@ spv.precise.tesc -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 72 Capability Tessellation diff --git a/deps/glslang/glslang/Test/baseResults/spv.precise.tese.out b/deps/glslang/glslang/Test/baseResults/spv.precise.tese.out index 4f1839c775..a73cbd8327 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.precise.tese.out +++ b/deps/glslang/glslang/Test/baseResults/spv.precise.tese.out @@ -1,8 +1,6 @@ spv.precise.tese -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 119 Capability Tessellation diff --git a/deps/glslang/glslang/Test/baseResults/spv.precision.frag.out b/deps/glslang/glslang/Test/baseResults/spv.precision.frag.out index f49b356638..5ddb492724 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.precision.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.precision.frag.out @@ -1,8 +1,6 @@ spv.precision.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 127 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.precisionNonESSamp.frag.out b/deps/glslang/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.precisionNonESSamp.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.prepost.frag.out b/deps/glslang/glslang/Test/baseResults/spv.prepost.frag.out index 410286cad0..3b4bfd8aca 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.prepost.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.prepost.frag.out @@ -1,6 +1,6 @@ spv.prepost.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 94 Capability Shader @@ -20,6 +20,7 @@ spv.prepost.frag 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.pushConstant.vert.out b/deps/glslang/glslang/Test/baseResults/spv.pushConstant.vert.out index bdefd63de6..40ee328461 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.pushConstant.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.pushConstant.vert.out @@ -1,8 +1,6 @@ spv.pushConstant.vert -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 35 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.pushConstantAnon.vert.out b/deps/glslang/glslang/Test/baseResults/spv.pushConstantAnon.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.pushConstantAnon.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.pushConstantAnon.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.qualifiers.vert.out b/deps/glslang/glslang/Test/baseResults/spv.qualifiers.vert.out index 37f474cca5..ffdc6f8056 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.qualifiers.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.qualifiers.vert.out @@ -1,8 +1,6 @@ spv.qualifiers.vert -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 21 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.queryL.frag.out b/deps/glslang/glslang/Test/baseResults/spv.queryL.frag.out index fbdcbc8130..33f0d95cde 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.queryL.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.queryL.frag.out @@ -1,8 +1,6 @@ spv.queryL.frag -Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 224 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.rankShift.comp.out b/deps/glslang/glslang/Test/baseResults/spv.rankShift.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.rankShift.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.rankShift.comp.out 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 index 6d2ad36e83..533e388036 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.register.autoassign-2.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign-2.frag.out @@ -1,54 +1,81 @@ spv.register.autoassign-2.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 31 +// 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 + EntryPoint Fragment 4 "main" 44 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 9 "Color" - Name 12 "g_tScene[0]" - Name 16 "g_tSamp" - Name 25 "g_tScene[1]" - Decorate 9(Color) Location 0 - Decorate 12(g_tScene[0]) DescriptorSet 0 - Decorate 12(g_tScene[0]) Binding 10 - Decorate 16(g_tSamp) DescriptorSet 0 - Decorate 16(g_tSamp) Binding 5 - Decorate 25(g_tScene[1]) DescriptorSet 0 - Decorate 25(g_tScene[1]) Binding 11 + 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: TypePointer Output 7(fvec4) - 9(Color): 8(ptr) Variable Output - 10: TypeImage 6(float) 2D sampled format:Unknown - 11: TypePointer UniformConstant 10 - 12(g_tScene[0]): 11(ptr) Variable UniformConstant - 14: TypeSampler - 15: TypePointer UniformConstant 14 - 16(g_tSamp): 15(ptr) Variable UniformConstant - 18: TypeSampledImage 10 - 20: TypeVector 6(float) 2 - 21: 6(float) Constant 1050253722 - 22: 6(float) Constant 1053609165 - 23: 20(fvec2) ConstantComposite 21 22 - 25(g_tScene[1]): 11(ptr) Variable UniformConstant + 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 - 13: 10 Load 12(g_tScene[0]) - 17: 14 Load 16(g_tSamp) - 19: 18 SampledImage 13 17 - 24: 7(fvec4) ImageSampleImplicitLod 19 23 - 26: 10 Load 25(g_tScene[1]) - 27: 14 Load 16(g_tSamp) - 28: 18 SampledImage 26 27 - 29: 7(fvec4) ImageSampleImplicitLod 28 23 - 30: 7(fvec4) FAdd 24 29 - Store 9(Color) 30 + 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 index 4b4655e3bb..683ae08d48 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.frag.out @@ -1,233 +1,241 @@ spv.register.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 150 +// 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" 145 + 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 17 "g_tTex1" - Name 21 "g_sSamp1" - Name 27 "g_tTex2" - Name 29 "g_sSamp2" - Name 39 "g_tTex3" - Name 46 "g_sSamp3" - Name 64 "g_tTex4" - Name 69 "g_sSamp4" - Name 84 "g_tTex5" - Name 86 "g_sSamp5" - Name 93 "MyStruct_t" - MemberName 93(MyStruct_t) 0 "a" - MemberName 93(MyStruct_t) 1 "b" - MemberName 93(MyStruct_t) 2 "c" - Name 95 "$Global" - MemberName 95($Global) 0 "mystruct" - MemberName 95($Global) 1 "myfloat4_a" - MemberName 95($Global) 2 "myfloat4_b" - MemberName 95($Global) 3 "myint4_a" - Name 97 "" - Name 119 "g_tTex_unused1" - Name 121 "g_sSamp_unused1" - Name 126 "g_tTex_unused2" - Name 128 "g_sSamp_unused2" - Name 136 "PS_OUTPUT" - MemberName 136(PS_OUTPUT) 0 "Color" - Name 138 "psout" - Name 145 "Color" - Name 149 "g_tTex_unused3" - Decorate 17(g_tTex1) DescriptorSet 0 - Decorate 17(g_tTex1) Binding 11 - Decorate 21(g_sSamp1) DescriptorSet 0 - Decorate 21(g_sSamp1) Binding 5 - Decorate 27(g_tTex2) DescriptorSet 0 - Decorate 27(g_tTex2) Binding 14 - Decorate 29(g_sSamp2) DescriptorSet 0 - Decorate 29(g_sSamp2) Binding 6 - Decorate 39(g_tTex3) DescriptorSet 0 - Decorate 39(g_tTex3) Binding 13 - Decorate 46(g_sSamp3) DescriptorSet 0 - Decorate 46(g_sSamp3) Binding 7 - Decorate 64(g_tTex4) DescriptorSet 0 - Decorate 64(g_tTex4) Binding 15 - Decorate 69(g_sSamp4) DescriptorSet 0 - Decorate 69(g_sSamp4) Binding 8 - Decorate 84(g_tTex5) DescriptorSet 0 - Decorate 84(g_tTex5) Binding 16 - Decorate 86(g_sSamp5) DescriptorSet 0 - Decorate 86(g_sSamp5) Binding 9 - MemberDecorate 93(MyStruct_t) 0 Offset 0 - MemberDecorate 93(MyStruct_t) 1 Offset 4 - MemberDecorate 93(MyStruct_t) 2 Offset 16 - MemberDecorate 95($Global) 0 Offset 0 - MemberDecorate 95($Global) 1 Offset 32 - MemberDecorate 95($Global) 2 Offset 48 - MemberDecorate 95($Global) 3 Offset 64 - Decorate 95($Global) Block - Decorate 97 DescriptorSet 0 - Decorate 97 Binding 20 - Decorate 119(g_tTex_unused1) DescriptorSet 0 - Decorate 119(g_tTex_unused1) Binding 10 - Decorate 121(g_sSamp_unused1) DescriptorSet 0 - Decorate 126(g_tTex_unused2) DescriptorSet 0 - Decorate 126(g_tTex_unused2) Binding 12 - Decorate 128(g_sSamp_unused2) DescriptorSet 0 - Decorate 145(Color) Location 0 - Decorate 149(g_tTex_unused3) DescriptorSet 0 + 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: TypeImage 6(float) 1D sampled format:Unknown - 16: TypePointer UniformConstant 15 - 17(g_tTex1): 16(ptr) Variable UniformConstant - 19: TypeSampler + 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_sSamp1): 20(ptr) Variable UniformConstant - 23: TypeSampledImage 15 - 25: 6(float) Constant 1036831949 - 27(g_tTex2): 16(ptr) Variable UniformConstant - 29(g_sSamp2): 20(ptr) Variable UniformConstant - 32: 6(float) Constant 1045220557 - 35: TypeInt 32 0 - 36: 35(int) Constant 2 - 37: TypeArray 15 36 - 38: TypePointer UniformConstant 37 - 39(g_tTex3): 38(ptr) Variable UniformConstant - 40: TypeInt 32 1 - 41: 40(int) Constant 0 - 44: TypeArray 19 36 - 45: TypePointer UniformConstant 44 - 46(g_sSamp3): 45(ptr) Variable UniformConstant - 50: 6(float) Constant 1050253722 - 53: 40(int) Constant 1 - 61: 35(int) Constant 3 - 62: TypeArray 15 61 - 63: TypePointer UniformConstant 62 - 64(g_tTex4): 63(ptr) Variable UniformConstant - 67: TypeArray 19 61 - 68: TypePointer UniformConstant 67 - 69(g_sSamp4): 68(ptr) Variable UniformConstant - 73: 6(float) Constant 1053609165 - 76: 40(int) Constant 2 - 84(g_tTex5): 16(ptr) Variable UniformConstant - 86(g_sSamp5): 20(ptr) Variable UniformConstant - 89: 6(float) Constant 1056964608 - 92: TypeVector 6(float) 3 - 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) - 94: TypeVector 40(int) 4 - 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) - 96: TypePointer Uniform 95($Global) - 97: 96(ptr) Variable Uniform - 98: 35(int) Constant 1 - 99: TypePointer Uniform 6(float) -119(g_tTex_unused1): 16(ptr) Variable UniformConstant -121(g_sSamp_unused1): 20(ptr) Variable UniformConstant - 124: 6(float) Constant 1066192077 -126(g_tTex_unused2): 16(ptr) Variable UniformConstant -128(g_sSamp_unused2): 20(ptr) Variable UniformConstant - 131: 6(float) Constant 1067030938 - 136(PS_OUTPUT): TypeStruct 7(fvec4) - 137: TypePointer Function 136(PS_OUTPUT) - 142: TypePointer Function 7(fvec4) - 144: TypePointer Output 7(fvec4) - 145(Color): 144(ptr) Variable Output -149(g_tTex_unused3): 16(ptr) Variable UniformConstant + 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 - 138(psout): 137(ptr) Variable Function - 139: 7(fvec4) FunctionCall 9(Func1() - 140: 7(fvec4) FunctionCall 11(Func2() - 141: 7(fvec4) FAdd 139 140 - 143: 142(ptr) AccessChain 138(psout) 41 - Store 143 141 - 146: 142(ptr) AccessChain 138(psout) 41 - 147: 7(fvec4) Load 146 - Store 145(Color) 147 + 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 - 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 + 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 - 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 + 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 - 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 + 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.noautoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.register.noautoassign.frag.out index 71140dcd96..166d92d920 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.register.noautoassign.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.register.noautoassign.frag.out @@ -1,226 +1,234 @@ spv.register.noautoassign.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 150 +// 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" 145 + 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 17 "g_tTex1" - Name 21 "g_sSamp1" - Name 27 "g_tTex2" - Name 29 "g_sSamp2" - Name 39 "g_tTex3" - Name 46 "g_sSamp3" - Name 64 "g_tTex4" - Name 69 "g_sSamp4" - Name 84 "g_tTex5" - Name 86 "g_sSamp5" - Name 93 "MyStruct_t" - MemberName 93(MyStruct_t) 0 "a" - MemberName 93(MyStruct_t) 1 "b" - MemberName 93(MyStruct_t) 2 "c" - Name 95 "$Global" - MemberName 95($Global) 0 "mystruct" - MemberName 95($Global) 1 "myfloat4_a" - MemberName 95($Global) 2 "myfloat4_b" - MemberName 95($Global) 3 "myint4_a" - Name 97 "" - Name 119 "g_tTex_unused1" - Name 121 "g_sSamp_unused1" - Name 126 "g_tTex_unused2" - Name 128 "g_sSamp_unused2" - Name 136 "PS_OUTPUT" - MemberName 136(PS_OUTPUT) 0 "Color" - Name 138 "psout" - Name 145 "Color" - Name 149 "g_tTex_unused3" - Decorate 17(g_tTex1) DescriptorSet 0 - Decorate 17(g_tTex1) Binding 11 - Decorate 21(g_sSamp1) DescriptorSet 0 - Decorate 21(g_sSamp1) Binding 5 - Decorate 27(g_tTex2) DescriptorSet 0 - Decorate 29(g_sSamp2) DescriptorSet 0 - Decorate 39(g_tTex3) DescriptorSet 0 - Decorate 39(g_tTex3) Binding 13 - Decorate 46(g_sSamp3) DescriptorSet 0 - Decorate 46(g_sSamp3) Binding 7 - Decorate 64(g_tTex4) DescriptorSet 0 - Decorate 69(g_sSamp4) DescriptorSet 0 - Decorate 84(g_tTex5) DescriptorSet 0 - Decorate 86(g_sSamp5) DescriptorSet 0 - MemberDecorate 93(MyStruct_t) 0 Offset 0 - MemberDecorate 93(MyStruct_t) 1 Offset 4 - MemberDecorate 93(MyStruct_t) 2 Offset 16 - MemberDecorate 95($Global) 0 Offset 0 - MemberDecorate 95($Global) 1 Offset 32 - MemberDecorate 95($Global) 2 Offset 48 - MemberDecorate 95($Global) 3 Offset 64 - Decorate 95($Global) Block - Decorate 97 DescriptorSet 0 - Decorate 119(g_tTex_unused1) DescriptorSet 0 - Decorate 119(g_tTex_unused1) Binding 10 - Decorate 121(g_sSamp_unused1) DescriptorSet 0 - Decorate 126(g_tTex_unused2) DescriptorSet 0 - Decorate 126(g_tTex_unused2) Binding 12 - Decorate 128(g_sSamp_unused2) DescriptorSet 0 - Decorate 145(Color) Location 0 - Decorate 149(g_tTex_unused3) DescriptorSet 0 + 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: TypeImage 6(float) 1D sampled format:Unknown - 16: TypePointer UniformConstant 15 - 17(g_tTex1): 16(ptr) Variable UniformConstant - 19: TypeSampler + 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_sSamp1): 20(ptr) Variable UniformConstant - 23: TypeSampledImage 15 - 25: 6(float) Constant 1036831949 - 27(g_tTex2): 16(ptr) Variable UniformConstant - 29(g_sSamp2): 20(ptr) Variable UniformConstant - 32: 6(float) Constant 1045220557 - 35: TypeInt 32 0 - 36: 35(int) Constant 2 - 37: TypeArray 15 36 - 38: TypePointer UniformConstant 37 - 39(g_tTex3): 38(ptr) Variable UniformConstant - 40: TypeInt 32 1 - 41: 40(int) Constant 0 - 44: TypeArray 19 36 - 45: TypePointer UniformConstant 44 - 46(g_sSamp3): 45(ptr) Variable UniformConstant - 50: 6(float) Constant 1050253722 - 53: 40(int) Constant 1 - 61: 35(int) Constant 3 - 62: TypeArray 15 61 - 63: TypePointer UniformConstant 62 - 64(g_tTex4): 63(ptr) Variable UniformConstant - 67: TypeArray 19 61 - 68: TypePointer UniformConstant 67 - 69(g_sSamp4): 68(ptr) Variable UniformConstant - 73: 6(float) Constant 1053609165 - 76: 40(int) Constant 2 - 84(g_tTex5): 16(ptr) Variable UniformConstant - 86(g_sSamp5): 20(ptr) Variable UniformConstant - 89: 6(float) Constant 1056964608 - 92: TypeVector 6(float) 3 - 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) - 94: TypeVector 40(int) 4 - 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) - 96: TypePointer Uniform 95($Global) - 97: 96(ptr) Variable Uniform - 98: 35(int) Constant 1 - 99: TypePointer Uniform 6(float) -119(g_tTex_unused1): 16(ptr) Variable UniformConstant -121(g_sSamp_unused1): 20(ptr) Variable UniformConstant - 124: 6(float) Constant 1066192077 -126(g_tTex_unused2): 16(ptr) Variable UniformConstant -128(g_sSamp_unused2): 20(ptr) Variable UniformConstant - 131: 6(float) Constant 1067030938 - 136(PS_OUTPUT): TypeStruct 7(fvec4) - 137: TypePointer Function 136(PS_OUTPUT) - 142: TypePointer Function 7(fvec4) - 144: TypePointer Output 7(fvec4) - 145(Color): 144(ptr) Variable Output -149(g_tTex_unused3): 16(ptr) Variable UniformConstant + 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 - 138(psout): 137(ptr) Variable Function - 139: 7(fvec4) FunctionCall 9(Func1() - 140: 7(fvec4) FunctionCall 11(Func2() - 141: 7(fvec4) FAdd 139 140 - 143: 142(ptr) AccessChain 138(psout) 41 - Store 143 141 - 146: 142(ptr) AccessChain 138(psout) 41 - 147: 7(fvec4) Load 146 - Store 145(Color) 147 + 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 - 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 + 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 - 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 + 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 - 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 + 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-new/Test/baseResults/spv.register.subpass.frag.out b/deps/glslang/glslang/Test/baseResults/spv.register.subpass.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.register.subpass.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.register.subpass.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.rw.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.rw.autoassign.frag.out index d6b75ba3c7..2ee30bc5cb 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.rw.autoassign.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.rw.autoassign.frag.out @@ -1,66 +1,74 @@ spv.rw.autoassign.frag // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 37 +// Generated by (magic number): 80007 +// Id's are bound by 42 Capability Shader - Capability Sampled1D - Capability SampledBuffer + Capability Image1D + Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 + EntryPoint Fragment 4 "main" 39 ExecutionMode 4 OriginUpperLeft + Source HLSL 500 Name 4 "main" - Name 8 "r00" - Name 11 "g_tTex1df1" - Name 18 "r01" - Name 21 "g_tBuf1du1" - Name 25 "PS_OUTPUT" - MemberName 25(PS_OUTPUT) 0 "Color" - Name 27 "psout" - Name 33 "Color" - Decorate 11(g_tTex1df1) DescriptorSet 0 - Decorate 11(g_tTex1df1) Binding 20 - Decorate 21(g_tBuf1du1) DescriptorSet 0 - Decorate 21(g_tBuf1du1) Binding 21 - Decorate 33(Color) Location 0 + 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: TypePointer Function 6(float) - 9: TypeImage 6(float) 1D nonsampled format:R32f - 10: TypePointer UniformConstant 9 - 11(g_tTex1df1): 10(ptr) Variable UniformConstant - 13: TypeInt 32 1 - 14: 13(int) Constant 0 - 16: TypeInt 32 0 - 17: TypePointer Function 16(int) - 19: TypeImage 16(int) Buffer nonsampled format:R32ui - 20: TypePointer UniformConstant 19 - 21(g_tBuf1du1): 20(ptr) Variable UniformConstant - 24: TypeVector 6(float) 4 - 25(PS_OUTPUT): TypeStruct 24(fvec4) - 26: TypePointer Function 25(PS_OUTPUT) - 28: 6(float) Constant 0 - 29: 24(fvec4) ConstantComposite 28 28 28 28 - 30: TypePointer Function 24(fvec4) - 32: TypePointer Output 24(fvec4) - 33(Color): 32(ptr) Variable Output + 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 - 8(r00): 7(ptr) Variable Function - 18(r01): 17(ptr) Variable Function - 27(psout): 26(ptr) Variable Function - 12: 9 Load 11(g_tTex1df1) - 15: 6(float) ImageRead 12 14 - Store 8(r00) 15 - 22: 19 Load 21(g_tBuf1du1) - 23: 16(int) ImageRead 22 14 - Store 18(r01) 23 - 31: 30(ptr) AccessChain 27(psout) 14 - Store 31 29 - 34: 30(ptr) AccessChain 27(psout) 14 - 35: 24(fvec4) Load 34 - Store 33(Color) 35 + 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-new/Test/baseResults/spv.sample.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sample.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.sample.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.sample.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.sampleId.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sampleId.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.sampleId.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.sampleId.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.samplePosition.frag.out b/deps/glslang/glslang/Test/baseResults/spv.samplePosition.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.samplePosition.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.samplePosition.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.separate.frag.out b/deps/glslang/glslang/Test/baseResults/spv.separate.frag.out index c654117f7f..a834efdc8e 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.separate.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.separate.frag.out @@ -1,8 +1,6 @@ spv.separate.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 319 Capability Shader @@ -10,7 +8,6 @@ Warning, version 400 is not yet complete; most version-specific features are pre Capability Sampled1D Capability SampledCubeArray Capability SampledBuffer - Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 34 diff --git a/deps/glslang/glslang/Test/baseResults/spv.set.vert.out b/deps/glslang/glslang/Test/baseResults/spv.set.vert.out index 38cb669c6a..16d771fce6 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.set.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.set.vert.out @@ -1,8 +1,6 @@ spv.set.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 22 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderBallot.comp.out b/deps/glslang/glslang/Test/baseResults/spv.shaderBallot.comp.out index 4f03312848..2f0e5a0b78 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.shaderBallot.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderBallot.comp.out @@ -1,13 +1,10 @@ spv.shaderBallot.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 299 +// Generated by (magic number): 80007 +// Id's are bound by 298 Capability Shader Capability Int64 - Capability Groups Capability SubgroupBallotKHR Extension "SPV_KHR_shader_ballot" 1: ExtInstImport "GLSL.std.450" @@ -45,7 +42,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre Decorate 52(Buffers) BufferBlock Decorate 55(data) DescriptorSet 0 Decorate 55(data) Binding 0 - Decorate 298 BuiltIn WorkgroupSize + Decorate 297 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -55,8 +52,8 @@ Warning, version 450 is not yet complete; most version-specific features are pre 12(gl_SubGroupSizeARB): 9(ptr) Variable Input 15: 6(int) Constant 4 17: TypeInt 64 0 - 18: TypePointer Function 17(int) - 20: TypePointer Input 17(int) + 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 @@ -77,23 +74,22 @@ Warning, version 450 is not yet complete; most version-specific features are pre 57: 50(int) Constant 0 58: 6(int) Constant 0 59: TypePointer Uniform 48(float) - 63: 6(int) Constant 3 - 67: 50(int) Constant 1 - 68: TypeVector 48(float) 2 - 69: TypePointer Uniform 49(fvec4) - 83: 50(int) Constant 2 - 84: TypeVector 48(float) 3 - 100: 50(int) Constant 3 - 115: TypePointer Uniform 50(int) - 122: TypeVector 50(int) 2 - 123: TypePointer Uniform 51(ivec4) - 137: TypeVector 50(int) 3 - 167: TypePointer Uniform 6(int) - 174: TypePointer Uniform 38(ivec4) - 188: TypeVector 6(int) 3 - 296: 6(int) Constant 8 - 297: 6(int) Constant 1 - 298: 188(ivec3) ConstantComposite 296 296 297 + 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 @@ -103,274 +99,274 @@ Warning, version 450 is not yet complete; most version-specific features are pre 14: 6(int) IAdd 11 13 16: 6(int) UMod 14 15 Store 8(invocation) 16 - 22: 17(int) Load 21(gl_SubGroupEqMaskARB) - 24: 17(int) Load 23(gl_SubGroupGeMaskARB) - 25: 17(int) IAdd 22 24 - 27: 17(int) Load 26(gl_SubGroupGtMaskARB) - 28: 17(int) IAdd 25 27 - 30: 17(int) Load 29(gl_SubGroupLeMaskARB) - 31: 17(int) IAdd 28 30 - 33: 17(int) Load 32(gl_SubGroupLtMaskARB) - 34: 17(int) IAdd 31 33 + 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(int) Load 19(relMask) + 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(int) Bitcast 43 + 44: 17(int64_t) Bitcast 43 45: 36(bool) IEqual 35 44 SelectionMerge 47 None - BranchConditional 45 46 217 + 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) - 64: 48(float) GroupBroadcast 63 61 62 - 65: 59(ptr) AccessChain 55(data) 56 57 58 - Store 65 64 - 66: 6(int) Load 8(invocation) - 70: 69(ptr) AccessChain 55(data) 67 57 - 71: 49(fvec4) Load 70 - 72: 68(fvec2) VectorShuffle 71 71 0 1 - 73: 6(int) Load 8(invocation) - 74: 48(float) CompositeExtract 72 0 - 75: 48(float) GroupBroadcast 63 74 73 - 76: 48(float) CompositeExtract 72 1 - 77: 48(float) GroupBroadcast 63 76 73 - 78: 68(fvec2) CompositeConstruct 75 77 - 79: 69(ptr) AccessChain 55(data) 66 57 - 80: 49(fvec4) Load 79 - 81: 49(fvec4) VectorShuffle 80 78 4 5 2 3 - Store 79 81 - 82: 6(int) Load 8(invocation) - 85: 69(ptr) AccessChain 55(data) 83 57 - 86: 49(fvec4) Load 85 - 87: 84(fvec3) VectorShuffle 86 86 0 1 2 - 88: 6(int) Load 8(invocation) - 89: 48(float) CompositeExtract 87 0 - 90: 48(float) GroupBroadcast 63 89 88 - 91: 48(float) CompositeExtract 87 1 - 92: 48(float) GroupBroadcast 63 91 88 - 93: 48(float) CompositeExtract 87 2 - 94: 48(float) GroupBroadcast 63 93 88 - 95: 84(fvec3) CompositeConstruct 90 92 94 - 96: 69(ptr) AccessChain 55(data) 82 57 - 97: 49(fvec4) Load 96 - 98: 49(fvec4) VectorShuffle 97 95 4 5 6 3 - Store 96 98 - 99: 6(int) Load 8(invocation) - 101: 69(ptr) AccessChain 55(data) 100 57 - 102: 49(fvec4) Load 101 - 103: 6(int) Load 8(invocation) - 104: 48(float) CompositeExtract 102 0 - 105: 48(float) GroupBroadcast 63 104 103 - 106: 48(float) CompositeExtract 102 1 - 107: 48(float) GroupBroadcast 63 106 103 - 108: 48(float) CompositeExtract 102 2 - 109: 48(float) GroupBroadcast 63 108 103 - 110: 48(float) CompositeExtract 102 3 - 111: 48(float) GroupBroadcast 63 110 103 - 112: 49(fvec4) CompositeConstruct 105 107 109 111 - 113: 69(ptr) AccessChain 55(data) 99 57 - Store 113 112 - 114: 6(int) Load 8(invocation) - 116: 115(ptr) AccessChain 55(data) 57 67 58 - 117: 50(int) Load 116 - 118: 6(int) Load 8(invocation) - 119: 50(int) GroupBroadcast 63 117 118 - 120: 115(ptr) AccessChain 55(data) 114 67 58 - Store 120 119 - 121: 6(int) Load 8(invocation) - 124: 123(ptr) AccessChain 55(data) 67 67 - 125: 51(ivec4) Load 124 - 126: 122(ivec2) VectorShuffle 125 125 0 1 - 127: 6(int) Load 8(invocation) - 128: 50(int) CompositeExtract 126 0 - 129: 50(int) GroupBroadcast 63 128 127 - 130: 50(int) CompositeExtract 126 1 - 131: 50(int) GroupBroadcast 63 130 127 - 132: 122(ivec2) CompositeConstruct 129 131 - 133: 123(ptr) AccessChain 55(data) 121 67 - 134: 51(ivec4) Load 133 - 135: 51(ivec4) VectorShuffle 134 132 4 5 2 3 - Store 133 135 - 136: 6(int) Load 8(invocation) - 138: 123(ptr) AccessChain 55(data) 83 67 - 139: 51(ivec4) Load 138 - 140: 137(ivec3) VectorShuffle 139 139 0 1 2 - 141: 6(int) Load 8(invocation) - 142: 50(int) CompositeExtract 140 0 - 143: 50(int) GroupBroadcast 63 142 141 - 144: 50(int) CompositeExtract 140 1 - 145: 50(int) GroupBroadcast 63 144 141 - 146: 50(int) CompositeExtract 140 2 - 147: 50(int) GroupBroadcast 63 146 141 - 148: 137(ivec3) CompositeConstruct 143 145 147 - 149: 123(ptr) AccessChain 55(data) 136 67 - 150: 51(ivec4) Load 149 - 151: 51(ivec4) VectorShuffle 150 148 4 5 6 3 - Store 149 151 - 152: 6(int) Load 8(invocation) - 153: 123(ptr) AccessChain 55(data) 100 67 - 154: 51(ivec4) Load 153 - 155: 6(int) Load 8(invocation) - 156: 50(int) CompositeExtract 154 0 - 157: 50(int) GroupBroadcast 63 156 155 - 158: 50(int) CompositeExtract 154 1 - 159: 50(int) GroupBroadcast 63 158 155 - 160: 50(int) CompositeExtract 154 2 - 161: 50(int) GroupBroadcast 63 160 155 - 162: 50(int) CompositeExtract 154 3 - 163: 50(int) GroupBroadcast 63 162 155 - 164: 51(ivec4) CompositeConstruct 157 159 161 163 - 165: 123(ptr) AccessChain 55(data) 152 67 - Store 165 164 - 166: 6(int) Load 8(invocation) - 168: 167(ptr) AccessChain 55(data) 57 83 58 - 169: 6(int) Load 168 - 170: 6(int) Load 8(invocation) - 171: 6(int) GroupBroadcast 63 169 170 - 172: 167(ptr) AccessChain 55(data) 166 83 58 - Store 172 171 - 173: 6(int) Load 8(invocation) - 175: 174(ptr) AccessChain 55(data) 67 83 - 176: 38(ivec4) Load 175 - 177: 42(ivec2) VectorShuffle 176 176 0 1 - 178: 6(int) Load 8(invocation) - 179: 6(int) CompositeExtract 177 0 - 180: 6(int) GroupBroadcast 63 179 178 - 181: 6(int) CompositeExtract 177 1 - 182: 6(int) GroupBroadcast 63 181 178 - 183: 42(ivec2) CompositeConstruct 180 182 - 184: 174(ptr) AccessChain 55(data) 173 83 - 185: 38(ivec4) Load 184 - 186: 38(ivec4) VectorShuffle 185 183 4 5 2 3 - Store 184 186 - 187: 6(int) Load 8(invocation) - 189: 174(ptr) AccessChain 55(data) 83 83 - 190: 38(ivec4) Load 189 - 191: 188(ivec3) VectorShuffle 190 190 0 1 2 - 192: 6(int) Load 8(invocation) - 193: 6(int) CompositeExtract 191 0 - 194: 6(int) GroupBroadcast 63 193 192 - 195: 6(int) CompositeExtract 191 1 - 196: 6(int) GroupBroadcast 63 195 192 - 197: 6(int) CompositeExtract 191 2 - 198: 6(int) GroupBroadcast 63 197 192 - 199: 188(ivec3) CompositeConstruct 194 196 198 - 200: 174(ptr) AccessChain 55(data) 187 83 - 201: 38(ivec4) Load 200 - 202: 38(ivec4) VectorShuffle 201 199 4 5 6 3 - Store 200 202 - 203: 6(int) Load 8(invocation) - 204: 174(ptr) AccessChain 55(data) 100 83 - 205: 38(ivec4) Load 204 - 206: 6(int) Load 8(invocation) - 207: 6(int) CompositeExtract 205 0 - 208: 6(int) GroupBroadcast 63 207 206 - 209: 6(int) CompositeExtract 205 1 - 210: 6(int) GroupBroadcast 63 209 206 - 211: 6(int) CompositeExtract 205 2 - 212: 6(int) GroupBroadcast 63 211 206 - 213: 6(int) CompositeExtract 205 3 - 214: 6(int) GroupBroadcast 63 213 206 - 215: 38(ivec4) CompositeConstruct 208 210 212 214 - 216: 174(ptr) AccessChain 55(data) 203 83 - Store 216 215 + 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 - 217: Label - 218: 6(int) Load 8(invocation) - 219: 59(ptr) AccessChain 55(data) 57 57 58 - 220: 48(float) Load 219 - 221: 48(float) SubgroupFirstInvocationKHR 220 - 222: 59(ptr) AccessChain 55(data) 218 57 58 - Store 222 221 - 223: 6(int) Load 8(invocation) - 224: 69(ptr) AccessChain 55(data) 67 57 - 225: 49(fvec4) Load 224 - 226: 68(fvec2) VectorShuffle 225 225 0 1 - 227: 68(fvec2) SubgroupFirstInvocationKHR 226 - 228: 69(ptr) AccessChain 55(data) 223 57 - 229: 49(fvec4) Load 228 - 230: 49(fvec4) VectorShuffle 229 227 4 5 2 3 - Store 228 230 - 231: 6(int) Load 8(invocation) - 232: 69(ptr) AccessChain 55(data) 83 57 - 233: 49(fvec4) Load 232 - 234: 84(fvec3) VectorShuffle 233 233 0 1 2 - 235: 84(fvec3) SubgroupFirstInvocationKHR 234 - 236: 69(ptr) AccessChain 55(data) 231 57 - 237: 49(fvec4) Load 236 - 238: 49(fvec4) VectorShuffle 237 235 4 5 6 3 - Store 236 238 - 239: 6(int) Load 8(invocation) - 240: 69(ptr) AccessChain 55(data) 100 57 - 241: 49(fvec4) Load 240 - 242: 49(fvec4) SubgroupFirstInvocationKHR 241 - 243: 69(ptr) AccessChain 55(data) 239 57 - Store 243 242 - 244: 6(int) Load 8(invocation) - 245: 115(ptr) AccessChain 55(data) 57 67 58 - 246: 50(int) Load 245 - 247: 50(int) SubgroupFirstInvocationKHR 246 - 248: 115(ptr) AccessChain 55(data) 244 67 58 - Store 248 247 - 249: 6(int) Load 8(invocation) - 250: 123(ptr) AccessChain 55(data) 67 67 - 251: 51(ivec4) Load 250 - 252: 122(ivec2) VectorShuffle 251 251 0 1 - 253: 122(ivec2) SubgroupFirstInvocationKHR 252 - 254: 123(ptr) AccessChain 55(data) 249 67 - 255: 51(ivec4) Load 254 - 256: 51(ivec4) VectorShuffle 255 253 4 5 2 3 - Store 254 256 - 257: 6(int) Load 8(invocation) - 258: 123(ptr) AccessChain 55(data) 83 67 - 259: 51(ivec4) Load 258 - 260: 137(ivec3) VectorShuffle 259 259 0 1 2 - 261: 137(ivec3) SubgroupFirstInvocationKHR 260 - 262: 123(ptr) AccessChain 55(data) 257 67 - 263: 51(ivec4) Load 262 - 264: 51(ivec4) VectorShuffle 263 261 4 5 6 3 - Store 262 264 - 265: 6(int) Load 8(invocation) - 266: 123(ptr) AccessChain 55(data) 100 67 - 267: 51(ivec4) Load 266 - 268: 51(ivec4) SubgroupFirstInvocationKHR 267 - 269: 123(ptr) AccessChain 55(data) 265 67 - Store 269 268 - 270: 6(int) Load 8(invocation) - 271: 167(ptr) AccessChain 55(data) 57 83 58 - 272: 6(int) Load 271 - 273: 6(int) SubgroupFirstInvocationKHR 272 - 274: 167(ptr) AccessChain 55(data) 270 83 58 - Store 274 273 - 275: 6(int) Load 8(invocation) - 276: 174(ptr) AccessChain 55(data) 67 83 - 277: 38(ivec4) Load 276 - 278: 42(ivec2) VectorShuffle 277 277 0 1 - 279: 42(ivec2) SubgroupFirstInvocationKHR 278 - 280: 174(ptr) AccessChain 55(data) 275 83 - 281: 38(ivec4) Load 280 - 282: 38(ivec4) VectorShuffle 281 279 4 5 2 3 - Store 280 282 - 283: 6(int) Load 8(invocation) - 284: 174(ptr) AccessChain 55(data) 83 83 - 285: 38(ivec4) Load 284 - 286: 188(ivec3) VectorShuffle 285 285 0 1 2 - 287: 188(ivec3) SubgroupFirstInvocationKHR 286 - 288: 174(ptr) AccessChain 55(data) 283 83 - 289: 38(ivec4) Load 288 - 290: 38(ivec4) VectorShuffle 289 287 4 5 6 3 - Store 288 290 - 291: 6(int) Load 8(invocation) - 292: 174(ptr) AccessChain 55(data) 100 83 - 293: 38(ivec4) Load 292 - 294: 38(ivec4) SubgroupFirstInvocationKHR 293 - 295: 174(ptr) AccessChain 55(data) 291 83 - Store 295 294 + 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 diff --git a/deps/glslang-new/Test/baseResults/spv.shaderBallotAMD.comp.out b/deps/glslang/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.shaderBallotAMD.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderDrawParams.vert.out b/deps/glslang/glslang/Test/baseResults/spv.shaderDrawParams.vert.out index 41ad78d480..d6b43e8fe9 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.shaderDrawParams.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderDrawParams.vert.out @@ -1,8 +1,6 @@ spv.shaderDrawParams.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 53 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.shaderFragMaskAMD.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.shaderFragMaskAMD.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderGroupVote.comp.out b/deps/glslang/glslang/Test/baseResults/spv.shaderGroupVote.comp.out index f8bfae804a..e45f585837 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.shaderGroupVote.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderGroupVote.comp.out @@ -1,12 +1,11 @@ spv.shaderGroupVote.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 37 +// Generated by (magic number): 80007 +// Id's are bound by 33 Capability Shader - Capability Groups + Capability SubgroupVoteKHR + Extension "SPV_KHR_subgroup_vote" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" @@ -22,7 +21,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre Decorate 10(Buffers) BufferBlock Decorate 12 DescriptorSet 0 Decorate 12 Binding 0 - Decorate 36 BuiltIn WorkgroupSize + Decorate 32 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -35,11 +34,10 @@ Warning, version 450 is not yet complete; most version-specific features are pre 14: 13(int) Constant 0 15: TypePointer Uniform 9(int) 18: 9(int) Constant 0 - 21: 9(int) Constant 3 - 31: 9(int) Constant 1 - 34: TypeVector 9(int) 3 - 35: 9(int) Constant 4 - 36: 34(ivec3) ConstantComposite 35 35 31 + 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 @@ -48,20 +46,17 @@ Warning, version 450 is not yet complete; most version-specific features are pre 19: 6(bool) INotEqual 17 18 Store 8(b1) 19 20: 6(bool) Load 8(b1) - 22: 6(bool) GroupAny 21 20 - Store 8(b1) 22 - 23: 6(bool) Load 8(b1) - 24: 6(bool) GroupAll 21 23 - Store 8(b1) 24 - 25: 6(bool) Load 8(b1) - 26: 6(bool) GroupAll 21 25 - 27: 6(bool) GroupAny 21 25 - 28: 6(bool) LogicalNot 27 - 29: 6(bool) LogicalOr 26 28 - Store 8(b1) 29 - 30: 6(bool) Load 8(b1) - 32: 9(int) Select 30 31 18 - 33: 15(ptr) AccessChain 12 14 - Store 33 32 + 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-new/Test/baseResults/spv.shaderStencilExport.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shaderStencilExport.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.shaderStencilExport.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.shaderStencilExport.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.shiftOps.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shiftOps.frag.out index 498c287784..3085a55d45 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.shiftOps.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.shiftOps.frag.out @@ -1,8 +1,6 @@ spv.shiftOps.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 +// Generated by (magic number): 80007 // Id's are bound by 38 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.shortCircuit.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shortCircuit.frag.out index 7d5189a251..d651824597 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.shortCircuit.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.shortCircuit.frag.out @@ -1,8 +1,6 @@ spv.shortCircuit.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 147 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out b/deps/glslang/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out index 2e6b671f46..627b31c1a8 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out @@ -1,6 +1,6 @@ spv.simpleFunctionCall.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 19 Capability Shader @@ -13,6 +13,7 @@ spv.simpleFunctionCall.frag Name 9 "foo(" Name 12 "BaseColor" Name 17 "gl_FragColor" + Decorate 17(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang/Test/baseResults/spv.simpleMat.vert.out b/deps/glslang/glslang/Test/baseResults/spv.simpleMat.vert.out index 2cad63137f..8557458545 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.simpleMat.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.simpleMat.vert.out @@ -2,7 +2,7 @@ spv.simpleMat.vert WARNING: 0:3: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 39 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.sparseTexture.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sparseTexture.frag.out index 431ef15284..d94f643861 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.sparseTexture.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.sparseTexture.frag.out @@ -1,11 +1,11 @@ spv.sparseTexture.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 +// Generated by (magic number): 80007 // Id's are bound by 438 Capability Shader + Capability ImageGatherExtended + Capability StorageImageMultisample Capability SampledRect Capability SparseResidency Capability SampledCubeArray @@ -183,14 +183,14 @@ Warning, version 450 is not yet complete; most version-specific features are pre 414(i2DMS): 413(ptr) Variable UniformConstant 422: TypePointer Output 11(fvec4) 423(outColor): 422(ptr) Variable Output - 426: TypeBool + 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 - 424: 12(ptr) Variable Function + 427: 12(ptr) Variable Function Store 8(resident) 9 Store 13(texel) 15 Store 18(itexel) 19 @@ -566,13 +566,13 @@ Warning, version 450 is not yet complete; most version-specific features are pre 420: 6(int) Load 8(resident) 421: 6(int) BitwiseOr 420 419 Store 8(resident) 421 - 425: 6(int) Load 8(resident) - 427: 426(bool) ImageSparseTexelsResident 425 + 424: 6(int) Load 8(resident) + 426: 425(bool) ImageSparseTexelsResident 424 SelectionMerge 429 None - BranchConditional 427 428 431 + BranchConditional 426 428 431 428: Label 430: 11(fvec4) Load 13(texel) - Store 424 430 + Store 427 430 Branch 429 431: Label 432: 16(ivec4) Load 18(itexel) @@ -580,10 +580,10 @@ Warning, version 450 is not yet complete; most version-specific features are pre 434: 21(ivec4) Load 23(utexel) 435: 11(fvec4) ConvertUToF 434 436: 11(fvec4) FAdd 433 435 - Store 424 436 + Store 427 436 Branch 429 429: Label - 437: 11(fvec4) Load 424 + 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 index 175dc35c8a..f63fd2f5c0 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out @@ -1,8 +1,6 @@ spv.sparseTextureClamp.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 +// Generated by (magic number): 80007 // Id's are bound by 360 Capability Shader @@ -147,14 +145,14 @@ Warning, version 450 is not yet complete; most version-specific features are pre 310: 157(ivec2) ConstantComposite 143 143 344: TypePointer Output 11(fvec4) 345(outColor): 344(ptr) Variable Output - 348: TypeBool + 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 - 346: 12(ptr) Variable Function + 349: 12(ptr) Variable Function Store 8(resident) 9 Store 13(texel) 15 Store 18(itexel) 19 @@ -444,13 +442,13 @@ Warning, version 450 is not yet complete; most version-specific features are pre 342: 16(ivec4) Load 18(itexel) 343: 16(ivec4) IAdd 342 341 Store 18(itexel) 343 - 347: 6(int) Load 8(resident) - 349: 348(bool) ImageSparseTexelsResident 347 + 346: 6(int) Load 8(resident) + 348: 347(bool) ImageSparseTexelsResident 346 SelectionMerge 351 None - BranchConditional 349 350 353 + BranchConditional 348 350 353 350: Label 352: 11(fvec4) Load 13(texel) - Store 346 352 + Store 349 352 Branch 351 353: Label 354: 16(ivec4) Load 18(itexel) @@ -458,10 +456,10 @@ Warning, version 450 is not yet complete; most version-specific features are pre 356: 21(ivec4) Load 23(utexel) 357: 11(fvec4) ConvertUToF 356 358: 11(fvec4) FAdd 355 357 - Store 346 358 + Store 349 358 Branch 351 351: Label - 359: 11(fvec4) Load 346 + 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 index 5a7de46fee..70fbd09e2e 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.specConst.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.specConst.vert.out @@ -1,8 +1,6 @@ spv.specConst.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 27 Capability Shader @@ -17,6 +15,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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 @@ -24,7 +23,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance Decorate 11(gl_PerVertex) Block - Decorate 18 SpecId 11 + Decorate 18(a) SpecId 11 Decorate 25(gl_VertexID) BuiltIn VertexId Decorate 26(gl_InstanceID) BuiltIn InstanceId 2: TypeVoid @@ -41,14 +40,14 @@ Warning, version 450 is not yet complete; most version-specific features are pre 15: 14(int) Constant 0 16: 6(float) Constant 1065353216 17: 7(fvec4) ConstantComposite 16 16 16 16 - 18: 14(int) SpecConstant 8 + 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 + 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.specConstant.comp.out b/deps/glslang/glslang/Test/baseResults/spv.specConstant.comp.out index 481ed68c3a..b8aa3ddfb2 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.specConstant.comp.out +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstant.comp.out @@ -1,8 +1,6 @@ spv.specConstant.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 27 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.specConstant.vert.out b/deps/glslang/glslang/Test/baseResults/spv.specConstant.vert.out index dc10e23879..ab70471e82 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.specConstant.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstant.vert.out @@ -1,8 +1,6 @@ spv.specConstant.vert -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 81 Capability Shader @@ -12,33 +10,44 @@ Warning, version 400 is not yet complete; most version-specific features are pre EntryPoint Vertex 4 "main" 20 22 28 53 Source GLSL 400 Name 4 "main" - Name 14 "foo(vf4[s1516];" + 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" - Decorate 9 SpecId 16 - Decorate 30 SpecId 17 - Decorate 34 SpecId 22 - Decorate 39 SpecId 19 - Decorate 40 SpecId 18 - Decorate 50 SpecId 116 - Decorate 60 SpecId 117 - Decorate 63 SpecId 122 - Decorate 67 SpecId 119 - Decorate 68 SpecId 118 - Decorate 77 SpecId 24 + 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: 8(int) SpecConstant 5 - 10: TypeArray 7(fvec4) 9 + 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) @@ -51,41 +60,41 @@ Warning, version 400 is not yet complete; most version-specific features are pre 27: TypePointer Output 8(int) 28(size): 27(ptr) Variable Output 29: TypeBool - 30: 29(bool) SpecConstantTrue + 30(spBool): 29(bool) SpecConstantTrue 33: TypeInt 32 0 - 34: 33(int) SpecConstant 2 + 34(scale): 33(int) SpecConstant 2 38: TypeFloat 64 - 39: 38(float) SpecConstant 1413754136 1074340347 - 40: 6(float) SpecConstant 1078523331 - 41: 38(float) SpecConstantOp 115 40 - 50: 8(int) SpecConstant 12 - 51: TypeArray 7(fvec4) 50 + 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: 29(bool) SpecConstantTrue - 63: 33(int) SpecConstant 2 - 67: 38(float) SpecConstant 1413754136 1074340347 - 68: 6(float) SpecConstant 1078523331 - 69: 38(float) SpecConstantOp 115 68 + 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: 8(int) SpecConstant 8 +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 + Store 28(size) 9(arraySize) SelectionMerge 32 None - BranchConditional 30 31 32 + BranchConditional 30(spBool) 31 32 31: Label - 35: 6(float) ConvertUToF 34 + 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(float) FDiv 39 41 + 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 @@ -93,10 +102,10 @@ Warning, version 400 is not yet complete; most version-specific features are pre Store 20(color) 46 48: 10 Load 22(ucol) Store 47(param) 48 - 49: 2 FunctionCall 14(foo(vf4[s1516];) 47(param) + 49: 2 FunctionCall 14(foo(vf4[s2468];) 47(param) Return FunctionEnd -14(foo(vf4[s1516];): 2 Function None 12 +14(foo(vf4[s2468];): 2 Function None 12 13(p): 11(ptr) FunctionParameter 15: Label 54: 24(ptr) AccessChain 53(dupUcol) 23 @@ -105,18 +114,18 @@ Warning, version 400 is not yet complete; most version-specific features are pre 57: 7(fvec4) FAdd 56 55 Store 20(color) 57 58: 8(int) Load 28(size) - 59: 8(int) IAdd 58 50 + 59: 8(int) IAdd 58 50(dupArraySize) Store 28(size) 59 SelectionMerge 62 None - BranchConditional 60 61 62 + BranchConditional 60(spDupBool) 61 62 61: Label - 64: 6(float) ConvertUToF 63 + 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(float) FDiv 67 69 + 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 @@ -127,7 +136,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre 17(builtin_spec_constant(): 8(int) Function None 16 18: Label 76(result): 75(ptr) Variable Function - Store 76(result) 77 + 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 index f8c556edca..58d4b6a3fd 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.specConstantComposite.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstantComposite.vert.out @@ -1,8 +1,6 @@ spv.specConstantComposite.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 43 Capability Shader @@ -18,29 +16,33 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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 SpecId 203 - Decorate 28 SpecId 200 - Decorate 37 SpecId 201 - Decorate 39 SpecId 202 + 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: 20(bool) SpecConstantTrue + 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: 14(int) SpecConstant 3 + 28(spec_int): 14(int) SpecConstant 3 32: TypePointer Function 14(int) - 37: 24(float) SpecConstant 1078523331 + 37(spec_float): 24(float) SpecConstant 1078523331 38: TypeFloat 64 - 39: 38(float) SpecConstant 1413754136 1074340347 - 40: TypeArray 25(fvec4) 28 + 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 @@ -50,9 +52,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre 6(refer_primary_spec_const(): 2 Function None 3 7: Label SelectionMerge 23 None - BranchConditional 21 22 23 + BranchConditional 21(spec_bool) 22 23 22: Label - 29: 24(float) ConvertSToF 28 + 29: 24(float) ConvertSToF 28(spec_int) 30: 25(fvec4) Load 27(color) 31: 25(fvec4) VectorTimesScalar 30 29 Store 27(color) 31 @@ -75,7 +77,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre 16(refer_spec_const_array_length(): 14(int) Function None 15 17: Label 33(len): 32(ptr) Variable Function - Store 33(len) 28 + Store 33(len) 28(spec_int) 34: 14(int) Load 33(len) ReturnValue 34 FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.specConstantOperations.vert.out b/deps/glslang/glslang/Test/baseResults/spv.specConstantOperations.vert.out index e2395c82b8..4bc948b189 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.specConstantOperations.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstantOperations.vert.out @@ -1,9 +1,7 @@ spv.specConstantOperations.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 135 +// Generated by (magic number): 80007 +// Id's are bound by 162 Capability Shader Capability Float64 @@ -14,85 +12,97 @@ Warning, version 450 is not yet complete; most version-specific features are pre Name 4 "main" Name 8 "non_const_array_size_from_spec_const(" Name 11 "i" + Name 19 "sp_int" Name 27 "array" - Decorate 19 SpecId 201 - Decorate 40 SpecId 200 - Decorate 42 SpecId 202 - Decorate 43 SpecId 203 - Decorate 45 SpecId 204 + 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: 6(int) SpecConstant 10 + 19(sp_int): 6(int) SpecConstant 10 20: 6(int) Constant 2 - 21: 6(int) SpecConstantOp 128 19 20 + 21: 6(int) SpecConstantOp 128 19(sp_int) 20 22: TypeBool - 24: 6(int) SpecConstantOp 128 19 20 + 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 32 + 34: 6(int) SpecConstantOp 128 19(sp_int) 32 39: TypeFloat 32 - 40: 39(float) SpecConstant 1078530010 + 40(sp_float): 39(float) SpecConstant 1078530010 41: TypeInt 32 0 - 42: 41(int) SpecConstant 100 - 43: 6(int) SpecConstant 4294967286 + 42(sp_uint): 41(int) SpecConstant 100 + 43(sp_sint): 6(int) SpecConstant 4294967286 44: TypeFloat 64 - 45: 44(float) SpecConstant 2333366019 1074118410 - 46: 39(float) SpecConstantOp 115 45 - 47: 44(float) SpecConstantOp 115 40 + 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 48 - 50: 22(bool) SpecConstantOp 171 42 48 + 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 48 - 55: 6(int) SpecConstantOp 128 42 48 - 56: 6(int) SpecConstantOp 126 19 - 57: 6(int) SpecConstantOp 200 19 - 58: 6(int) SpecConstantOp 128 19 20 - 59: 6(int) SpecConstantOp 128 19 20 + 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 20 + 64: 6(int) SpecConstantOp 132 43(sp_sint) 20 65: 41(int) Constant 2 - 66: 41(int) SpecConstantOp 132 42 65 + 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 62 + 71: 6(int) SpecConstantOp 139 43(sp_sint) 62 72: 41(int) Constant 4 - 73: 41(int) SpecConstantOp 137 42 72 - 74: 6(int) SpecConstantOp 132 43 60 + 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 76 + 77: 6(int) SpecConstantOp 195 43(sp_sint) 76 78: 6(int) Constant 20 - 79: 41(int) SpecConstantOp 194 42 78 - 80: 6(int) SpecConstantOp 196 43 32 - 81: 41(int) SpecConstantOp 196 42 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 82 + 83: 6(int) SpecConstantOp 197 43(sp_sint) 82 84: 41(int) Constant 512 - 85: 41(int) SpecConstantOp 198 42 84 - 86: 22(bool) SpecConstantOp 177 19 43 - 87: 22(bool) SpecConstantOp 170 42 42 - 88: 22(bool) SpecConstantOp 173 19 43 + 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 19 + 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 42 92 93 + 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 @@ -132,6 +142,33 @@ Warning, version 450 is not yet complete; most version-specific features are pre 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 diff --git a/deps/glslang-new/Test/baseResults/spv.ssbo.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.ssbo.autoassign.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.ssboAlias.frag.out b/deps/glslang/glslang/Test/baseResults/spv.ssboAlias.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.ssboAlias.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.ssboAlias.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.stereoViewRendering.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.stereoViewRendering.tesc.out rename to deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out diff --git a/deps/glslang-new/Test/baseResults/spv.stereoViewRendering.vert.out b/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.stereoViewRendering.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.vert.out diff --git a/deps/glslang-new/Test/baseResults/spv.storageBuffer.vert.out b/deps/glslang/glslang/Test/baseResults/spv.storageBuffer.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.storageBuffer.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.storageBuffer.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.structAssignment.frag.out b/deps/glslang/glslang/Test/baseResults/spv.structAssignment.frag.out index eb796f7c89..ec771cc367 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.structAssignment.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.structAssignment.frag.out @@ -3,7 +3,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to "precision mediump int; precision highp float;" // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 50 Capability Shader @@ -36,6 +36,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.structDeref.frag.out b/deps/glslang/glslang/Test/baseResults/spv.structDeref.frag.out index e60159f995..a7915b4029 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.structDeref.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.structDeref.frag.out @@ -1,6 +1,6 @@ spv.structDeref.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 123 Capability Shader @@ -40,6 +40,7 @@ spv.structDeref.frag 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.structure.frag.out b/deps/glslang/glslang/Test/baseResults/spv.structure.frag.out index f7cb2d2a25..0592084b90 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.structure.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.structure.frag.out @@ -1,6 +1,6 @@ spv.structure.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 60 Capability Shader @@ -24,6 +24,7 @@ spv.structure.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.subgroup.frag.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroup.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroup.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroup.geom.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.geom.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroup.geom.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroup.geom.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroup.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroup.tesc.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroup.tesc.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroup.tese.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.tese.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroup.tese.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroup.tese.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroup.vert.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroup.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroup.vert.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupArithmetic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupArithmetic.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupBallot.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupBallot.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupBallot.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupBallot.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupBasic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupBasic.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupBasic.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupBasic.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupClustered.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupClustered.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupClustered.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupClustered.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupClusteredNeg.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupClusteredNeg.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupPartitioned.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupPartitioned.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupQuad.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupQuad.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupQuad.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupQuad.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupShuffle.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffle.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupShuffle.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupShuffle.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupShuffleRelative.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupShuffleRelative.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.subgroupVote.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupVote.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.subgroupVote.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.subgroupVote.comp.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.subpass.frag.out b/deps/glslang/glslang/Test/baseResults/spv.subpass.frag.out index c242111388..044243e21f 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.subpass.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.subpass.frag.out @@ -1,8 +1,6 @@ spv.subpass.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 67 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.switch.frag.out b/deps/glslang/glslang/Test/baseResults/spv.switch.frag.out index 86acb6c8ee..47cc5d4c12 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.switch.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.switch.frag.out @@ -1,11 +1,10 @@ spv.switch.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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): 80001 +// Generated by (magic number): 80007 // Id's are bound by 269 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.swizzle.frag.out b/deps/glslang/glslang/Test/baseResults/spv.swizzle.frag.out index 46978f8c60..2a132d5824 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.swizzle.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.swizzle.frag.out @@ -1,6 +1,6 @@ spv.swizzle.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 108 Capability Shader @@ -24,6 +24,7 @@ spv.swizzle.frag Name 81 "c" Name 83 "rep" Name 107 "blend" + Decorate 69(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang/glslang/Test/baseResults/spv.swizzleInversion.frag.out b/deps/glslang/glslang/Test/baseResults/spv.swizzleInversion.frag.out index bf0699a3cf..0aee7ae729 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.swizzleInversion.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.swizzleInversion.frag.out @@ -1,8 +1,6 @@ spv.swizzleInversion.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 +// Generated by (magic number): 80007 // Id's are bound by 46 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.test.frag.out b/deps/glslang/glslang/Test/baseResults/spv.test.frag.out index bf0135aebe..b5fccc32a5 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.test.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.test.frag.out @@ -1,8 +1,6 @@ spv.test.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 55 Capability Shader @@ -25,6 +23,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.test.vert.out b/deps/glslang/glslang/Test/baseResults/spv.test.vert.out index 623d16ba67..3303c88b54 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.test.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.test.vert.out @@ -2,7 +2,7 @@ spv.test.vert WARNING: 0:5: attribute deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 24 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.texture.frag.out b/deps/glslang/glslang/Test/baseResults/spv.texture.frag.out index 467f254589..e685018f09 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.texture.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.texture.frag.out @@ -4,7 +4,7 @@ WARNING: 0:11: varying deprecated in version 130; may be removed in future relea WARNING: 0:12: varying deprecated in version 130; may be removed in future release // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 305 Capability Shader @@ -45,6 +45,7 @@ WARNING: 0:12: varying deprecated in version 130; may be removed in future relea 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 diff --git a/deps/glslang-new/Test/baseResults/spv.texture.sampler.transform.frag.out b/deps/glslang/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.texture.sampler.transform.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.texture.vert.out b/deps/glslang/glslang/Test/baseResults/spv.texture.vert.out index c361549952..0c1b7a14bc 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.texture.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.texture.vert.out @@ -1,6 +1,6 @@ spv.texture.vert // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 150 Capability Shader diff --git a/deps/glslang-new/Test/baseResults/spv.textureBuffer.vert.out b/deps/glslang/glslang/Test/baseResults/spv.textureBuffer.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.textureBuffer.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.textureBuffer.vert.out diff --git a/deps/glslang-new/Test/baseResults/spv.textureGatherBiasLod.frag.out b/deps/glslang/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.textureGatherBiasLod.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.types.frag.out b/deps/glslang/glslang/Test/baseResults/spv.types.frag.out index 9a2d8e35f9..e6fd3e0c20 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.types.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.types.frag.out @@ -1,12 +1,12 @@ spv.types.frag // Module Version 10000 -// Generated by (magic number): 80001 +// 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" 91 93 100 102 109 111 118 120 127 129 136 138 145 147 154 156 160 + 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" @@ -15,46 +15,47 @@ spv.types.frag Name 12 "i_b" Name 17 "b2" Name 19 "u_b2" - Name 22 "i_b2" - Name 35 "b3" - Name 37 "u_b3" - Name 40 "i_b3" - Name 59 "b4" - Name 61 "u_b4" - Name 64 "i_b4" - Name 89 "i" - Name 91 "u_i" - Name 93 "i_i" - Name 98 "i2" - Name 100 "u_i2" - Name 102 "i_i2" - Name 107 "i3" - Name 109 "u_i3" - Name 111 "i_i3" - Name 116 "i4" - Name 118 "u_i4" - Name 120 "i_i4" - Name 125 "f" - Name 127 "u_f" - Name 129 "i_f" - Name 134 "f2" - Name 136 "u_f2" - Name 138 "i_f2" - Name 143 "f3" - Name 145 "u_f3" - Name 147 "i_f3" - Name 152 "f4" - Name 154 "u_f4" - Name 156 "i_f4" - Name 160 "gl_FragColor" - Decorate 91(u_i) Flat - Decorate 93(i_i) Flat - Decorate 100(u_i2) Flat - Decorate 102(i_i2) Flat - Decorate 109(u_i3) Flat - Decorate 111(i_i3) Flat - Decorate 118(u_i4) Flat - Decorate 120(i_i4) Flat + 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 @@ -66,271 +67,271 @@ spv.types.frag 16: TypePointer Function 15(bvec2) 18: TypePointer Private 15(bvec2) 19(u_b2): 18(ptr) Variable Private - 22(i_b2): 18(ptr) Variable Private - 33: TypeVector 6(bool) 3 - 34: TypePointer Function 33(bvec3) - 36: TypePointer Private 33(bvec3) - 37(u_b3): 36(ptr) Variable Private - 40(i_b3): 36(ptr) Variable Private - 57: TypeVector 6(bool) 4 - 58: TypePointer Function 57(bvec4) - 60: TypePointer Private 57(bvec4) - 61(u_b4): 60(ptr) Variable Private - 64(i_b4): 60(ptr) Variable Private - 87: TypeInt 32 1 - 88: TypePointer Function 87(int) - 90: TypePointer Input 87(int) - 91(u_i): 90(ptr) Variable Input - 93(i_i): 90(ptr) Variable Input - 96: TypeVector 87(int) 2 - 97: TypePointer Function 96(ivec2) - 99: TypePointer Input 96(ivec2) - 100(u_i2): 99(ptr) Variable Input - 102(i_i2): 99(ptr) Variable Input - 105: TypeVector 87(int) 3 - 106: TypePointer Function 105(ivec3) - 108: TypePointer Input 105(ivec3) - 109(u_i3): 108(ptr) Variable Input - 111(i_i3): 108(ptr) Variable Input - 114: TypeVector 87(int) 4 - 115: TypePointer Function 114(ivec4) - 117: TypePointer Input 114(ivec4) - 118(u_i4): 117(ptr) Variable Input - 120(i_i4): 117(ptr) Variable Input - 123: TypeFloat 32 - 124: TypePointer Function 123(float) - 126: TypePointer Input 123(float) - 127(u_f): 126(ptr) Variable Input - 129(i_f): 126(ptr) Variable Input - 132: TypeVector 123(float) 2 - 133: TypePointer Function 132(fvec2) - 135: TypePointer Input 132(fvec2) - 136(u_f2): 135(ptr) Variable Input - 138(i_f2): 135(ptr) Variable Input - 141: TypeVector 123(float) 3 - 142: TypePointer Function 141(fvec3) - 144: TypePointer Input 141(fvec3) - 145(u_f3): 144(ptr) Variable Input - 147(i_f3): 144(ptr) Variable Input - 150: TypeVector 123(float) 4 - 151: TypePointer Function 150(fvec4) - 153: TypePointer Input 150(fvec4) - 154(u_f4): 153(ptr) Variable Input - 156(i_f4): 153(ptr) Variable Input - 159: TypePointer Output 150(fvec4) -160(gl_FragColor): 159(ptr) Variable Output - 193: TypeInt 32 0 - 194: 193(int) Constant 0 - 198: 193(int) Constant 1 - 208: 193(int) Constant 2 - 221: 193(int) Constant 3 - 257: 123(float) Constant 1065353216 - 258: 150(fvec4) ConstantComposite 257 257 257 257 + 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 - 35(b3): 34(ptr) Variable Function - 59(b4): 58(ptr) Variable Function - 89(i): 88(ptr) Variable Function - 98(i2): 97(ptr) Variable Function - 107(i3): 106(ptr) Variable Function - 116(i4): 115(ptr) Variable Function - 125(f): 124(ptr) Variable Function - 134(f2): 133(ptr) Variable Function - 143(f3): 142(ptr) Variable Function - 152(f4): 151(ptr) Variable Function - 161: 151(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 - 20: 15(bvec2) Load 19(u_b2) - 21: 6(bool) CompositeExtract 20 0 - 23: 15(bvec2) Load 22(i_b2) - 24: 6(bool) CompositeExtract 23 0 - 25: 6(bool) LogicalAnd 21 24 - 26: 15(bvec2) Load 19(u_b2) - 27: 6(bool) CompositeExtract 26 1 - 28: 6(bool) LogicalAnd 25 27 - 29: 15(bvec2) Load 22(i_b2) - 30: 6(bool) CompositeExtract 29 1 - 31: 6(bool) LogicalAnd 28 30 - 32: 15(bvec2) CompositeConstruct 31 31 - Store 17(b2) 32 - 38: 33(bvec3) Load 37(u_b3) - 39: 6(bool) CompositeExtract 38 0 - 41: 33(bvec3) Load 40(i_b3) - 42: 6(bool) CompositeExtract 41 0 - 43: 6(bool) LogicalAnd 39 42 - 44: 33(bvec3) Load 37(u_b3) - 45: 6(bool) CompositeExtract 44 1 - 46: 6(bool) LogicalAnd 43 45 - 47: 33(bvec3) Load 40(i_b3) - 48: 6(bool) CompositeExtract 47 1 + 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: 33(bvec3) Load 37(u_b3) - 51: 6(bool) CompositeExtract 50 2 + 50: 9(ptr) AccessChain 43(i_b3) 28 + 51: 6(bool) Load 50 52: 6(bool) LogicalAnd 49 51 - 53: 33(bvec3) Load 40(i_b3) - 54: 6(bool) CompositeExtract 53 2 - 55: 6(bool) LogicalAnd 52 54 - 56: 33(bvec3) CompositeConstruct 55 55 55 - Store 35(b3) 56 - 62: 57(bvec4) Load 61(u_b4) - 63: 6(bool) CompositeExtract 62 0 - 65: 57(bvec4) Load 64(i_b4) - 66: 6(bool) CompositeExtract 65 0 - 67: 6(bool) LogicalAnd 63 66 - 68: 57(bvec4) Load 61(u_b4) - 69: 6(bool) CompositeExtract 68 1 - 70: 6(bool) LogicalAnd 67 69 - 71: 57(bvec4) Load 64(i_b4) - 72: 6(bool) CompositeExtract 71 1 - 73: 6(bool) LogicalAnd 70 72 - 74: 57(bvec4) Load 61(u_b4) - 75: 6(bool) CompositeExtract 74 2 - 76: 6(bool) LogicalAnd 73 75 - 77: 57(bvec4) Load 64(i_b4) - 78: 6(bool) CompositeExtract 77 2 - 79: 6(bool) LogicalAnd 76 78 - 80: 57(bvec4) Load 61(u_b4) - 81: 6(bool) CompositeExtract 80 3 - 82: 6(bool) LogicalAnd 79 81 - 83: 57(bvec4) Load 64(i_b4) - 84: 6(bool) CompositeExtract 83 3 - 85: 6(bool) LogicalAnd 82 84 - 86: 57(bvec4) CompositeConstruct 85 85 85 85 - Store 59(b4) 86 - 92: 87(int) Load 91(u_i) - 94: 87(int) Load 93(i_i) - 95: 87(int) IAdd 92 94 - Store 89(i) 95 - 101: 96(ivec2) Load 100(u_i2) - 103: 96(ivec2) Load 102(i_i2) - 104: 96(ivec2) IAdd 101 103 - Store 98(i2) 104 - 110: 105(ivec3) Load 109(u_i3) - 112: 105(ivec3) Load 111(i_i3) - 113: 105(ivec3) IAdd 110 112 - Store 107(i3) 113 - 119: 114(ivec4) Load 118(u_i4) - 121: 114(ivec4) Load 120(i_i4) - 122: 114(ivec4) IAdd 119 121 - Store 116(i4) 122 - 128: 123(float) Load 127(u_f) - 130: 123(float) Load 129(i_f) - 131: 123(float) FAdd 128 130 - Store 125(f) 131 - 137: 132(fvec2) Load 136(u_f2) - 139: 132(fvec2) Load 138(i_f2) - 140: 132(fvec2) FAdd 137 139 - Store 134(f2) 140 - 146: 141(fvec3) Load 145(u_f3) - 148: 141(fvec3) Load 147(i_f3) - 149: 141(fvec3) FAdd 146 148 - Store 143(f3) 149 - 155: 150(fvec4) Load 154(u_f4) - 157: 150(fvec4) Load 156(i_f4) - 158: 150(fvec4) FAdd 155 157 - Store 152(f4) 158 - 162: 6(bool) Load 8(b) - 163: 15(bvec2) Load 17(b2) - 164: 6(bool) CompositeExtract 163 0 - 165: 6(bool) LogicalOr 162 164 - 166: 15(bvec2) Load 17(b2) - 167: 6(bool) CompositeExtract 166 1 - 168: 6(bool) LogicalOr 165 167 - 169: 33(bvec3) Load 35(b3) - 170: 6(bool) CompositeExtract 169 0 - 171: 6(bool) LogicalOr 168 170 - 172: 33(bvec3) Load 35(b3) - 173: 6(bool) CompositeExtract 172 1 - 174: 6(bool) LogicalOr 171 173 - 175: 33(bvec3) Load 35(b3) - 176: 6(bool) CompositeExtract 175 2 - 177: 6(bool) LogicalOr 174 176 - 178: 57(bvec4) Load 59(b4) - 179: 6(bool) CompositeExtract 178 0 - 180: 6(bool) LogicalOr 177 179 - 181: 57(bvec4) Load 59(b4) - 182: 6(bool) CompositeExtract 181 1 - 183: 6(bool) LogicalOr 180 182 - 184: 57(bvec4) Load 59(b4) - 185: 6(bool) CompositeExtract 184 2 - 186: 6(bool) LogicalOr 183 185 - 187: 57(bvec4) Load 59(b4) - 188: 6(bool) CompositeExtract 187 3 - 189: 6(bool) LogicalOr 186 188 - SelectionMerge 191 None - BranchConditional 189 190 256 - 190: Label - 192: 87(int) Load 89(i) - 195: 88(ptr) AccessChain 98(i2) 194 - 196: 87(int) Load 195 - 197: 87(int) IAdd 192 196 - 199: 88(ptr) AccessChain 98(i2) 198 - 200: 87(int) Load 199 - 201: 87(int) IAdd 197 200 - 202: 88(ptr) AccessChain 107(i3) 194 - 203: 87(int) Load 202 - 204: 87(int) IAdd 201 203 - 205: 88(ptr) AccessChain 107(i3) 198 - 206: 87(int) Load 205 - 207: 87(int) IAdd 204 206 - 209: 88(ptr) AccessChain 107(i3) 208 - 210: 87(int) Load 209 - 211: 87(int) IAdd 207 210 - 212: 88(ptr) AccessChain 116(i4) 194 - 213: 87(int) Load 212 - 214: 87(int) IAdd 211 213 - 215: 88(ptr) AccessChain 116(i4) 198 - 216: 87(int) Load 215 - 217: 87(int) IAdd 214 216 - 218: 88(ptr) AccessChain 116(i4) 208 - 219: 87(int) Load 218 - 220: 87(int) IAdd 217 219 - 222: 88(ptr) AccessChain 116(i4) 221 - 223: 87(int) Load 222 - 224: 87(int) IAdd 220 223 - 225: 123(float) ConvertSToF 224 - 226: 123(float) Load 125(f) - 227: 123(float) FAdd 225 226 - 228: 124(ptr) AccessChain 134(f2) 194 - 229: 123(float) Load 228 - 230: 123(float) FAdd 227 229 - 231: 124(ptr) AccessChain 134(f2) 198 - 232: 123(float) Load 231 - 233: 123(float) FAdd 230 232 - 234: 124(ptr) AccessChain 143(f3) 194 - 235: 123(float) Load 234 - 236: 123(float) FAdd 233 235 - 237: 124(ptr) AccessChain 143(f3) 198 - 238: 123(float) Load 237 - 239: 123(float) FAdd 236 238 - 240: 124(ptr) AccessChain 143(f3) 208 - 241: 123(float) Load 240 - 242: 123(float) FAdd 239 241 - 243: 124(ptr) AccessChain 152(f4) 194 - 244: 123(float) Load 243 - 245: 123(float) FAdd 242 244 - 246: 124(ptr) AccessChain 152(f4) 198 - 247: 123(float) Load 246 - 248: 123(float) FAdd 245 247 - 249: 124(ptr) AccessChain 152(f4) 208 - 250: 123(float) Load 249 - 251: 123(float) FAdd 248 250 - 252: 124(ptr) AccessChain 152(f4) 221 - 253: 123(float) Load 252 - 254: 123(float) FAdd 251 253 - 255: 150(fvec4) CompositeConstruct 254 254 254 254 - Store 161 255 - Branch 191 + 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 161 258 - Branch 191 - 191: Label - 259: 150(fvec4) Load 161 - Store 160(gl_FragColor) 259 + 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 index e9ba0ce263..af0ad85a37 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.uint.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.uint.frag.out @@ -1,8 +1,6 @@ spv.uint.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 213 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.uniformArray.frag.out b/deps/glslang/glslang/Test/baseResults/spv.uniformArray.frag.out index 447ad4fd4e..ff5855c106 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.uniformArray.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.uniformArray.frag.out @@ -1,6 +1,6 @@ spv.uniformArray.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 53 Capability Shader @@ -16,6 +16,7 @@ spv.uniformArray.frag 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.variableArrayIndex.frag.out b/deps/glslang/glslang/Test/baseResults/spv.variableArrayIndex.frag.out index b4d3fe01a4..e0010dfcde 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.variableArrayIndex.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.variableArrayIndex.frag.out @@ -1,8 +1,6 @@ spv.variableArrayIndex.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 93 Capability Shader @@ -38,6 +36,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.varyingArray.frag.out b/deps/glslang/glslang/Test/baseResults/spv.varyingArray.frag.out index 58833ea1b6..0acfdd9276 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.varyingArray.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.varyingArray.frag.out @@ -1,6 +1,6 @@ spv.varyingArray.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 61 Capability Shader @@ -18,6 +18,7 @@ spv.varyingArray.frag 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 diff --git a/deps/glslang/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out b/deps/glslang/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out index 9c018406ab..ffe785914c 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out @@ -1,6 +1,6 @@ spv.varyingArrayIndirect.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 70 Capability Shader @@ -22,6 +22,7 @@ spv.varyingArrayIndirect.frag 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 diff --git a/deps/glslang-new/Test/baseResults/spv.vecMatConstruct.frag.out b/deps/glslang/glslang/Test/baseResults/spv.vecMatConstruct.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.vecMatConstruct.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.vecMatConstruct.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.viewportArray2.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.tesc.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.viewportArray2.tesc.out rename to deps/glslang/glslang/Test/baseResults/spv.viewportArray2.tesc.out diff --git a/deps/glslang-new/Test/baseResults/spv.viewportArray2.vert.out b/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.viewportArray2.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.viewportArray2.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/spv.voidFunction.frag.out b/deps/glslang/glslang/Test/baseResults/spv.voidFunction.frag.out index 44348616e8..fbaee8784f 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.voidFunction.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.voidFunction.frag.out @@ -1,8 +1,6 @@ spv.voidFunction.frag -Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 43 Capability Shader @@ -20,6 +18,7 @@ Warning, version 400 is not yet complete; most version-specific features are pre Name 37 "gl_FragColor" Name 40 "BaseColor" Name 42 "d" + Decorate 37(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out rename to deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out diff --git a/deps/glslang-new/Test/baseResults/spv.vulkan110.int16.frag.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan110.int16.frag.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.vulkan110.int16.frag.out rename to deps/glslang/glslang/Test/baseResults/spv.vulkan110.int16.frag.out diff --git a/deps/glslang-new/Test/baseResults/spv.vulkan110.storageBuffer.vert.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.vulkan110.storageBuffer.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out 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 index 73dc35ced3..d49bca09b1 100644 --- a/deps/glslang/glslang/Test/baseResults/spv.while-continue-break.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.while-continue-break.vert.out @@ -1,8 +1,6 @@ spv.while-continue-break.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 41 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.while-simple.vert.out b/deps/glslang/glslang/Test/baseResults/spv.while-simple.vert.out index 82121dd00c..b507da3ed0 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.while-simple.vert.out +++ b/deps/glslang/glslang/Test/baseResults/spv.while-simple.vert.out @@ -1,8 +1,6 @@ spv.while-simple.vert -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 22 Capability Shader diff --git a/deps/glslang/glslang/Test/baseResults/spv.whileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/spv.whileLoop.frag.out index ce1e195d0d..e29497235e 100755 --- a/deps/glslang/glslang/Test/baseResults/spv.whileLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/spv.whileLoop.frag.out @@ -1,6 +1,6 @@ spv.whileLoop.frag // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 35 Capability Shader @@ -15,6 +15,7 @@ spv.whileLoop.frag Name 24 "d" Name 28 "bigColor" Name 33 "gl_FragColor" + Decorate 33(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/deps/glslang-new/Test/baseResults/spv.xfb.vert.out b/deps/glslang/glslang/Test/baseResults/spv.xfb.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.xfb.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.xfb.vert.out diff --git a/deps/glslang-new/Test/baseResults/spv.xfb2.vert.out b/deps/glslang/glslang/Test/baseResults/spv.xfb2.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.xfb2.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.xfb2.vert.out diff --git a/deps/glslang-new/Test/baseResults/spv.xfb3.vert.out b/deps/glslang/glslang/Test/baseResults/spv.xfb3.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/spv.xfb3.vert.out rename to deps/glslang/glslang/Test/baseResults/spv.xfb3.vert.out diff --git a/deps/glslang-new/Test/baseResults/stringToDouble.vert.out b/deps/glslang/glslang/Test/baseResults/stringToDouble.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/stringToDouble.vert.out rename to deps/glslang/glslang/Test/baseResults/stringToDouble.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/structAssignment.frag.out b/deps/glslang/glslang/Test/baseResults/structAssignment.frag.out index 75cc44c2b6..5bd2ca89a7 100644 --- a/deps/glslang/glslang/Test/baseResults/structAssignment.frag.out +++ b/deps/glslang/glslang/Test/baseResults/structAssignment.frag.out @@ -3,15 +3,15 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:29 Function Definition: main( (global void) +0:29 Function Definition: main( ( global void) 0:29 Function Parameters: 0:? Sequence -0:33 Test condition and select (temp void) +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 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: @@ -19,35 +19,35 @@ Shader version: 130 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 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: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: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}) +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: @@ -55,15 +55,15 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:29 Function Definition: main( (global void) +0:29 Function Definition: main( ( global void) 0:29 Function Parameters: 0:? Sequence -0:33 Test condition and select (temp void) +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 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: @@ -71,33 +71,33 @@ Shader version: 130 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 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: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: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}) +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 index fc9d3778e5..c3f964c759 100644 --- a/deps/glslang/glslang/Test/baseResults/structDeref.frag.out +++ b/deps/glslang/glslang/Test/baseResults/structDeref.frag.out @@ -3,16 +3,16 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:41 Function Definition: main( (global void) +0:41 Function Definition: main( ( global void) 0:41 Function Parameters: 0:? Sequence -0:51 Test condition and select (temp void) +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 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: @@ -23,24 +23,24 @@ Shader version: 130 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 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 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 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 @@ -48,46 +48,46 @@ Shader version: 130 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 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: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 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 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 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 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 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 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: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 @@ -95,80 +95,80 @@ Shader version: 130 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 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 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 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: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 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 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 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 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 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 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: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}) +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: @@ -176,16 +176,16 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:41 Function Definition: main( (global void) +0:41 Function Definition: main( ( global void) 0:41 Function Parameters: 0:? Sequence -0:51 Test condition and select (temp void) +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 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: @@ -196,24 +196,24 @@ Shader version: 130 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 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 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 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 @@ -221,46 +221,46 @@ Shader version: 130 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 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: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 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 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 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 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 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 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: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 @@ -268,78 +268,78 @@ Shader version: 130 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 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 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 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: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 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 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 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 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 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 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: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}) +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 index 666b140724..d12dceb4fa 100644 --- a/deps/glslang/glslang/Test/baseResults/structure.frag.out +++ b/deps/glslang/glslang/Test/baseResults/structure.frag.out @@ -3,21 +3,21 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:20 Function Definition: main( (global void) +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 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 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 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: @@ -27,15 +27,15 @@ Shader version: 130 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 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: @@ -49,14 +49,14 @@ Shader version: 130 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 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: @@ -67,18 +67,18 @@ Shader version: 130 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: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}) +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: @@ -86,21 +86,21 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:20 Function Definition: main( (global void) +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 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 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 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: @@ -110,15 +110,15 @@ Shader version: 130 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 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: @@ -132,14 +132,14 @@ Shader version: 130 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 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: @@ -150,16 +150,16 @@ Shader version: 130 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: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}) +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 index f8b179c091..9649c9bb73 100644 --- a/deps/glslang/glslang/Test/baseResults/switch.frag.out +++ b/deps/glslang/glslang/Test/baseResults/switch.frag.out @@ -23,15 +23,15 @@ 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 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: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 'c' ( uniform mediump int) 0:21 body 0:21 Sequence 0:23 case: with expression @@ -41,26 +41,26 @@ ERROR: node is still EOpNull! 0:21 Branch: Break 0:26 switch 0:26 condition -0:26 'c' (uniform mediump int) +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: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: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 'c' ( uniform mediump int) 0:34 body 0:34 Sequence 0:35 default: @@ -70,39 +70,39 @@ ERROR: node is still EOpNull! 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: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: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: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 '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: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: @@ -110,38 +110,38 @@ ERROR: node is still EOpNull! 0:? Sequence 0:52 switch 0:52 condition -0:52 'd' (uniform mediump int) +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: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: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: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) @@ -153,22 +153,22 @@ ERROR: node is still EOpNull! 0:? Sequence 0:66 Branch: Break 0:67 case: with expression -0:67 'c' (uniform mediump int) +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 '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: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: @@ -176,52 +176,52 @@ ERROR: node is still EOpNull! 0:? Sequence 0:76 switch 0:76 condition -0:76 'd' (uniform mediump int) +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: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: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: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 '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: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: @@ -229,7 +229,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:96 switch 0:96 condition -0:96 'd' (uniform mediump int) +0:96 'd' ( uniform mediump int) 0:96 body 0:96 Sequence 0:97 case: with expression @@ -238,30 +238,30 @@ ERROR: node is still EOpNull! 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: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 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: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 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 @@ -269,14 +269,14 @@ ERROR: node is still EOpNull! 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: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 Compare Less Than ( temp bool) +0:114 'f' ( temp highp float) 0:114 Constant: 0:114 0.000000 0:114 true case is null @@ -290,11 +290,11 @@ ERROR: node is still EOpNull! 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 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:126 'onlyInSwitch' ( temp float) 0:128 switch 0:128 condition 0:128 Constant: @@ -306,7 +306,7 @@ ERROR: node is still EOpNull! 0:128 Branch: Break 0:133 switch 0:133 condition -0:133 'c' (uniform mediump int) +0:133 'c' ( uniform mediump int) 0:133 body 0:133 Sequence 0:134 case: with expression @@ -319,7 +319,7 @@ ERROR: node is still EOpNull! 0:139 Constant: 0:139 2 (const int) 0:? Sequence -0:140 'nestedX' (temp float) +0:140 'nestedX' ( temp float) 0:143 Branch: Break 0:144 case: with expression 0:144 Constant: @@ -332,9 +332,9 @@ ERROR: node is still EOpNull! 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: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: @@ -347,11 +347,11 @@ ERROR: node is still EOpNull! 0:? Sequence 0:155 Constant: 0:155 4 (const int) -0:157 'nestedZ' (temp float) +0:157 'nestedZ' ( temp float) 0:? Linker Objects -0:? 'c' (uniform mediump int) -0:? 'd' (uniform mediump int) -0:? 'x' (smooth in highp float) +0:? 'c' ( uniform mediump int) +0:? 'd' ( uniform mediump int) +0:? 'x' ( smooth in highp float) Linked fragment stage: @@ -359,15 +359,15 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:6 Function Definition: main( (global void) +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: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 'c' ( uniform mediump int) 0:21 body 0:21 Sequence 0:23 case: with expression @@ -377,26 +377,26 @@ ERROR: node is still EOpNull! 0:21 Branch: Break 0:26 switch 0:26 condition -0:26 'c' (uniform mediump int) +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: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: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 'c' ( uniform mediump int) 0:34 body 0:34 Sequence 0:35 default: @@ -406,39 +406,39 @@ ERROR: node is still EOpNull! 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: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: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: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 '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: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: @@ -446,38 +446,38 @@ ERROR: node is still EOpNull! 0:? Sequence 0:52 switch 0:52 condition -0:52 'd' (uniform mediump int) +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: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: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: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) @@ -489,22 +489,22 @@ ERROR: node is still EOpNull! 0:? Sequence 0:66 Branch: Break 0:67 case: with expression -0:67 'c' (uniform mediump int) +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 '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: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: @@ -512,52 +512,52 @@ ERROR: node is still EOpNull! 0:? Sequence 0:76 switch 0:76 condition -0:76 'd' (uniform mediump int) +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: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: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: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 '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: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: @@ -565,7 +565,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:96 switch 0:96 condition -0:96 'd' (uniform mediump int) +0:96 'd' ( uniform mediump int) 0:96 body 0:96 Sequence 0:97 case: with expression @@ -574,30 +574,30 @@ ERROR: node is still EOpNull! 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: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 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: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 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 @@ -605,14 +605,14 @@ ERROR: node is still EOpNull! 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: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 Compare Less Than ( temp bool) +0:114 'f' ( temp highp float) 0:114 Constant: 0:114 0.000000 0:114 true case is null @@ -626,11 +626,11 @@ ERROR: node is still EOpNull! 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 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:126 'onlyInSwitch' ( temp float) 0:128 switch 0:128 condition 0:128 Constant: @@ -642,7 +642,7 @@ ERROR: node is still EOpNull! 0:128 Branch: Break 0:133 switch 0:133 condition -0:133 'c' (uniform mediump int) +0:133 'c' ( uniform mediump int) 0:133 body 0:133 Sequence 0:134 case: with expression @@ -655,7 +655,7 @@ ERROR: node is still EOpNull! 0:139 Constant: 0:139 2 (const int) 0:? Sequence -0:140 'nestedX' (temp float) +0:140 'nestedX' ( temp float) 0:143 Branch: Break 0:144 case: with expression 0:144 Constant: @@ -668,9 +668,9 @@ ERROR: node is still EOpNull! 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: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: @@ -683,9 +683,9 @@ ERROR: node is still EOpNull! 0:? Sequence 0:155 Constant: 0:155 4 (const int) -0:157 'nestedZ' (temp float) +0:157 'nestedZ' ( temp float) 0:? Linker Objects -0:? 'c' (uniform mediump int) -0:? 'd' (uniform mediump int) -0:? 'x' (smooth in highp float) +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 index 8e1b759c0b..b66a945dc4 100644 --- a/deps/glslang/glslang/Test/baseResults/swizzle.frag.out +++ b/deps/glslang/glslang/Test/baseResults/swizzle.frag.out @@ -1,58 +1,58 @@ swizzle.frag Shader version: 110 0:? Sequence -0:9 Function Definition: main( (global void) +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 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: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: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: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: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: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: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: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: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) @@ -62,8 +62,8 @@ Shader version: 110 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 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) @@ -73,140 +73,140 @@ Shader version: 110 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 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: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 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 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: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 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 Test condition and select ( temp void) 0:35 Condition -0:35 'p' (uniform bool) +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 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 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 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 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: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: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 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 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 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 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 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 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 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: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) +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: @@ -214,58 +214,58 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:9 Function Definition: main( (global void) +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 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: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: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: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: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: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: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: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: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) @@ -275,8 +275,8 @@ Shader version: 110 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 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) @@ -286,138 +286,138 @@ Shader version: 110 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 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: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 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 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: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 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 Test condition and select ( temp void) 0:35 Condition -0:35 'p' (uniform bool) +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 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 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 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 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: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: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 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 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 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 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 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 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 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: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) +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 index af0e732353..b6ebea3ea4 100644 --- a/deps/glslang/glslang/Test/baseResults/syntaxError.frag.out +++ b/deps/glslang/glslang/Test/baseResults/syntaxError.frag.out @@ -1,15 +1,15 @@ syntaxError.frag ERROR: 0:9: 'vec5' : undeclared identifier -ERROR: 0:9: '' : syntax error +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) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) Linked fragment stage: @@ -18,7 +18,7 @@ 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) +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.frag.out b/deps/glslang/glslang/Test/baseResults/test.frag.out index e6b98766f3..4f6faaf9a5 100644 --- a/deps/glslang/glslang/Test/baseResults/test.frag.out +++ b/deps/glslang/glslang/Test/baseResults/test.frag.out @@ -1,25 +1,25 @@ test.frag Shader version: 110 0:? Sequence -0:13 Function Definition: main( (global void) +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 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 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) @@ -30,29 +30,29 @@ Shader version: 110 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: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) +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: @@ -60,25 +60,25 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:13 Function Definition: main( (global void) +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 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 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) @@ -89,27 +89,27 @@ Shader version: 110 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: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) +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 index 5e886095d1..8e9a7105ea 100644 --- a/deps/glslang/glslang/Test/baseResults/texture.frag.out +++ b/deps/glslang/glslang/Test/baseResults/texture.frag.out @@ -4,281 +4,281 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea Shader version: 130 0:? Sequence -0:17 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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: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 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 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: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: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: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 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: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) +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: @@ -286,279 +286,279 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:17 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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: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 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 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: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: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: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 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: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) +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 index 11bdd4b591..8c31da9212 100644 --- a/deps/glslang/glslang/Test/baseResults/tokenLength.vert.out +++ b/deps/glslang/glslang/Test/baseResults/tokenLength.vert.out @@ -11,8 +11,6 @@ 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 -ERROR: 0:36: '' : float literal too long -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 @@ -29,100 +27,100 @@ ERROR: 0:62: 'preprocessor evaluation' : undefined macro in expression not allow 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: 28 compilation errors. No code generated. +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 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 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 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 move second child to first child ( temp highp int) +0:13 'OE' ( global highp int) 0:13 Constant: -0:13 1073741823 (const int) +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 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 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 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 move second child to first child ( temp highp float) +0:23 'E3' ( global highp float) 0:23 Constant: -0:23 12.000000 -0:25 Function Definition: main( (global void) +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: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 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 move second child to first child ( temp highp int) +0:34 'superO' ( global highp int) 0:34 Constant: -0:34 1073741823 (const int) +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 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 move second child to first child ( temp highp float) +0:36 'superF' ( global highp float) 0:36 Constant: -0:36 inf +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) +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: @@ -131,92 +129,92 @@ 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 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 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 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 move second child to first child ( temp highp int) +0:13 'OE' ( global highp int) 0:13 Constant: -0:13 1073741823 (const int) +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 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 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 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 move second child to first child ( temp highp float) +0:23 'E3' ( global highp float) 0:23 Constant: -0:23 12.000000 -0:25 Function Definition: main( (global void) +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: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 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 move second child to first child ( temp highp int) +0:34 'superO' ( global highp int) 0:34 Constant: -0:34 1073741823 (const int) +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 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 move second child to first child ( temp highp float) +0:36 'superF' ( global highp float) 0:36 Constant: -0:36 inf +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) +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-new/Test/baseResults/tokenPaste.vert.out b/deps/glslang/glslang/Test/baseResults/tokenPaste.vert.out similarity index 100% rename from deps/glslang-new/Test/baseResults/tokenPaste.vert.out rename to deps/glslang/glslang/Test/baseResults/tokenPaste.vert.out diff --git a/deps/glslang/glslang/Test/baseResults/types.frag.out b/deps/glslang/glslang/Test/baseResults/types.frag.out index 475a989c7e..94815b66ec 100644 --- a/deps/glslang/glslang/Test/baseResults/types.frag.out +++ b/deps/glslang/glslang/Test/baseResults/types.frag.out @@ -1,306 +1,306 @@ types.frag Shader version: 130 0:? Sequence -0:33 Function Definition: main( (global void) +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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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: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: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: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: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: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: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: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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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 @@ -310,30 +310,30 @@ Shader version: 130 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) +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: @@ -341,306 +341,306 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:33 Function Definition: main( (global void) +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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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: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: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: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: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: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: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: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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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 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 @@ -650,28 +650,28 @@ Shader version: 130 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) +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 index 1ee2825416..3a12d6b7cb 100644 --- a/deps/glslang/glslang/Test/baseResults/uint.frag.out +++ b/deps/glslang/glslang/Test/baseResults/uint.frag.out @@ -5,152 +5,152 @@ ERROR: 0:20: 'const' : non-matching or non-convertible constant type for const i 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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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: @@ -158,153 +158,153 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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) +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: @@ -312,144 +312,144 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:15 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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 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 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 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 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 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 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: @@ -457,151 +457,151 @@ ERROR: node is still EOpNull! 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: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: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: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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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) +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 index 4e8ace841e..51b9ff034d 100644 --- a/deps/glslang/glslang/Test/baseResults/uniformArray.frag.out +++ b/deps/glslang/glslang/Test/baseResults/uniformArray.frag.out @@ -1,24 +1,24 @@ uniformArray.frag Shader version: 130 0:? Sequence -0:7 Function Definition: main( (global void) +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 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 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 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) @@ -26,24 +26,24 @@ Shader version: 130 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: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 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: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) +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: @@ -51,24 +51,24 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:7 Function Definition: main( (global void) +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 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 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 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) @@ -76,22 +76,22 @@ Shader version: 130 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: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 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: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) +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 index 2a63d115b1..ddfb25bfbf 100644 --- a/deps/glslang/glslang/Test/baseResults/variableArrayIndex.frag.out +++ b/deps/glslang/glslang/Test/baseResults/variableArrayIndex.frag.out @@ -3,20 +3,20 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:29 Function Definition: main( (global void) +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: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 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: @@ -26,42 +26,42 @@ Shader version: 130 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 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 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 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 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: @@ -70,45 +70,45 @@ Shader version: 130 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: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 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 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 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) +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: @@ -116,20 +116,20 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:29 Function Definition: main( (global void) +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: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 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: @@ -139,42 +139,42 @@ Shader version: 130 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 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 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 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 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: @@ -183,43 +183,43 @@ Shader version: 130 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: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 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 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 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) +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 index 1fd59b4667..a7b9d23d7d 100644 --- a/deps/glslang/glslang/Test/baseResults/varyingArray.frag.out +++ b/deps/glslang/glslang/Test/baseResults/varyingArray.frag.out @@ -6,57 +6,57 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:10 Function Definition: main( (global void) +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 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 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: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: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 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 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: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) +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: @@ -64,55 +64,55 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:10 Function Definition: main( (global void) +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 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 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: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: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 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 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: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) +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 index 7349812947..23872b4174 100644 --- a/deps/glslang/glslang/Test/baseResults/varyingArrayIndirect.frag.out +++ b/deps/glslang/glslang/Test/baseResults/varyingArrayIndirect.frag.out @@ -6,60 +6,60 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas Shader version: 130 0:? Sequence -0:12 Function Definition: main( (global void) +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 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: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: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: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) +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: @@ -67,58 +67,58 @@ Linked fragment stage: Shader version: 130 0:? Sequence -0:12 Function Definition: main( (global void) +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 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: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: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: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) +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 index 44f04f6aa0..721d73c039 100644 --- a/deps/glslang/glslang/Test/baseResults/versionsClean.frag.out +++ b/deps/glslang/glslang/Test/baseResults/versionsClean.frag.out @@ -6,20 +6,20 @@ 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 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 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) +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: @@ -27,18 +27,18 @@ Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! -0:41 Function Definition: main( (global void) +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 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) +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 index c5d05a71a6..4b098be72d 100644 --- a/deps/glslang/glslang/Test/baseResults/versionsClean.vert.out +++ b/deps/glslang/glslang/Test/baseResults/versionsClean.vert.out @@ -1,26 +1,24 @@ versionsClean.vert -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. - Shader version: 420 0:? Sequence -0:40 Function Definition: main( (global void) +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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0: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 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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: @@ -28,22 +26,22 @@ Linked vertex stage: Shader version: 420 0:? Sequence -0:40 Function Definition: main( (global void) +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 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 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) +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 index 34182d015c..dbeb941ab7 100644 --- a/deps/glslang/glslang/Test/baseResults/versionsErrors.frag.out +++ b/deps/glslang/glslang/Test/baseResults/versionsErrors.frag.out @@ -8,19 +8,19 @@ 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 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 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) +0:? 'color' ( smooth in 3-component vector of float) +0:? 'foo' ( uniform sampler2DRect) Linked fragment stage: @@ -28,17 +28,17 @@ Linked fragment stage: Shader version: 110 ERROR: node is still EOpNull! -0:42 Function Definition: main( (global void) +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 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) +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 index 0aeaea8cc3..6551364e9a 100644 --- a/deps/glslang/glslang/Test/baseResults/versionsErrors.vert.out +++ b/deps/glslang/glslang/Test/baseResults/versionsErrors.vert.out @@ -1,5 +1,4 @@ versionsErrors.vert -Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -9,25 +8,25 @@ 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 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0: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 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 implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:? 'gl_VertexID' (gl_VertexId int VertexId) -0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) +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: @@ -36,23 +35,23 @@ 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 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 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 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) +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 index 638cfbdd3d..a38509f85c 100644 --- a/deps/glslang/glslang/Test/baseResults/voidFunction.frag.out +++ b/deps/glslang/glslang/Test/baseResults/voidFunction.frag.out @@ -2,45 +2,45 @@ 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 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 Definition: foo( ( global void) 0:9 Function Parameters: 0:11 Sequence -0:11 Post-Increment (temp float) -0:11 'bar' (global float) +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 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: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: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: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) +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: @@ -49,43 +49,43 @@ 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 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 Definition: foo( ( global void) 0:9 Function Parameters: 0:11 Sequence -0:11 Post-Increment (temp float) -0:11 'bar' (global float) +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 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: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: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: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) +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 index f245585a41..72a45705ee 100755 --- a/deps/glslang/glslang/Test/baseResults/vulkan.ast.vert.out +++ b/deps/glslang/glslang/Test/baseResults/vulkan.ast.vert.out @@ -1,131 +1,129 @@ vulkan.ast.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - Shader version: 450 0:? Sequence -0:7 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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 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 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 '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 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 '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 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 '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 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 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 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 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 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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:? Linker Objects -0:? 'scf1' (specialization-constant const highp float) +0:? 'scf1' ( specialization-constant const highp float) 0:? 1.000000 -0:? 'scbt' (specialization-constant const bool) +0:? 'scbt' ( specialization-constant const bool) 0:? true (const bool) -0:? 'sci2' (specialization-constant const highp int) +0:? 'sci2' ( specialization-constant const highp int) 0:? 2 (const int) @@ -134,133 +132,133 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:7 Function Definition: main( (global void) +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 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 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 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 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 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 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 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 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 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 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 '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 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 '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 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 '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 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 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 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 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 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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 '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 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 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:? Linker Objects -0:? 'scf1' (specialization-constant const highp float) +0:? 'scf1' ( specialization-constant const highp float) 0:? 1.000000 -0:? 'scbt' (specialization-constant const bool) +0:? 'scbt' ( specialization-constant const bool) 0:? true (const bool) -0:? 'sci2' (specialization-constant const highp int) +0:? 'sci2' ( specialization-constant const highp int) 0:? 2 (const int) // Module Version 10000 -// Generated by (magic number): 80001 +// Generated by (magic number): 80007 // Id's are bound by 50 Capability Shader @@ -269,56 +267,59 @@ Shader version: 450 EntryPoint Vertex 4 "main" Source GLSL 450 Name 4 "main" - Decorate 7 SpecId 200 - Decorate 11 SpecId 201 - Decorate 13 SpecId 202 + 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: 6(float) SpecConstant 1065353216 + 7(scf1): 6(float) SpecConstant 1065353216 8: TypeBool 9: 6(float) Constant 0 - 11: 8(bool) SpecConstantTrue + 11(scbt): 8(bool) SpecConstantTrue 12: TypeInt 32 1 - 13: 12(int) SpecConstant 2 + 13(sci2): 12(int) SpecConstant 2 14: TypeInt 32 0 15: 14(int) Constant 0 - 16: 8(bool) SpecConstantOp 171 13 15 + 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 22 21 - 25: 8(bool) SpecConstantOp 166 11 11 - 26: 12(int) SpecConstantOp 132 13 13 - 30: 8(bool) SpecConstantOp 168 11 - 31: 12(int) SpecConstantOp 126 13 - 33: 8(bool) SpecConstantOp 173 13 13 - 35: 8(bool) SpecConstantOp 165 11 11 - 36: 8(bool) SpecConstantOp 171 13 13 + 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 13 - 39: 37(ivec2) SpecConstantComposite 13 13 - 40: 37(ivec2) SpecConstantComposite 13 13 + 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 9 - 18: 6(float) Select 11 17 9 - 19: 6(float) ConvertSToF 13 - 20: 12(int) ConvertFToS 7 - 24: 6(float) FMul 7 7 - 27: 6(float) ConvertSToF 13 - 28: 6(float) FAdd 7 27 - 29: 6(float) FNegate 7 - 32: 8(bool) FOrdGreaterThan 7 7 - 34: 8(bool) FOrdNotEqual 7 7 + 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 7 - 46: 44(fvec2) CompositeConstruct 7 7 - 47: 44(fvec2) CompositeConstruct 7 7 + 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 index 5eb4c5b484..e56dca48e9 100644 --- a/deps/glslang/glslang/Test/baseResults/vulkan.comp.out +++ b/deps/glslang/glslang/Test/baseResults/vulkan.comp.out @@ -1,5 +1,4 @@ vulkan.comp -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:5: 'local_size' : cannot change previously set size ERROR: 1 compilation errors. No code generated. diff --git a/deps/glslang/glslang/Test/baseResults/vulkan.frag.out b/deps/glslang/glslang/Test/baseResults/vulkan.frag.out index 1df2c3eb53..e46345ce95 100644 --- a/deps/glslang/glslang/Test/baseResults/vulkan.frag.out +++ b/deps/glslang/glslang/Test/baseResults/vulkan.frag.out @@ -1,5 +1,11 @@ vulkan.frag -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +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 @@ -14,22 +20,27 @@ ERROR: 0:25: 'sampler2DShadow' : sampler-constructor second argument presence of 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: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:47: 'push_constant' : requires an instance name +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: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan +ERROR: 0:66: 'subroutine' : feature not yet implemented ERROR: 0:67: 'subroutine' : not allowed when generating SPIR-V -ERROR: 0:67: 'uniform' : no qualifiers allowed for function return +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 @@ -38,9 +49,14 @@ WARNING: 0:82: '' : all default precisions are highp; use precision statements t 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: ':' : 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: 38 compilation errors. No code generated. +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 diff --git a/deps/glslang/glslang/Test/baseResults/vulkan.vert.out b/deps/glslang/glslang/Test/baseResults/vulkan.vert.out index 7111a2dc2b..19fdade554 100644 --- a/deps/glslang/glslang/Test/baseResults/vulkan.vert.out +++ b/deps/glslang/glslang/Test/baseResults/vulkan.vert.out @@ -1,13 +1,20 @@ vulkan.vert -Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. 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 @@ -15,7 +22,7 @@ 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: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 @@ -23,7 +30,14 @@ ERROR: 0:32: 'initializer' : can't use with types containing arrays sized with a 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: 23 compilation errors. No code generated. +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 index ad30b361f1..cfe972da93 100644 --- a/deps/glslang/glslang/Test/baseResults/whileLoop.frag.out +++ b/deps/glslang/glslang/Test/baseResults/whileLoop.frag.out @@ -1,33 +1,33 @@ whileLoop.frag Shader version: 110 0:? Sequence -0:7 Function Definition: main( (global void) +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: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 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 '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: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) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) Linked fragment stage: @@ -35,31 +35,31 @@ Linked fragment stage: Shader version: 110 0:? Sequence -0:7 Function Definition: main( (global void) +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: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 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 '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: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) +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-new/Test/compoundsuffix.frag.hlsl b/deps/glslang/glslang/Test/compoundsuffix.frag.hlsl similarity index 100% rename from deps/glslang-new/Test/compoundsuffix.frag.hlsl rename to deps/glslang/glslang/Test/compoundsuffix.frag.hlsl diff --git a/deps/glslang-new/Test/compoundsuffix.vert.glsl b/deps/glslang/glslang/Test/compoundsuffix.vert.glsl similarity index 100% rename from deps/glslang-new/Test/compoundsuffix.vert.glsl rename to deps/glslang/glslang/Test/compoundsuffix.vert.glsl diff --git a/deps/glslang-new/Test/constFoldIntMin.frag b/deps/glslang/glslang/Test/constFoldIntMin.frag similarity index 100% rename from deps/glslang-new/Test/constFoldIntMin.frag rename to deps/glslang/glslang/Test/constFoldIntMin.frag diff --git a/deps/glslang/glslang/Test/cppBad.vert b/deps/glslang/glslang/Test/cppBad.vert index 49600f9167..0044c44fce 100644 --- a/deps/glslang/glslang/Test/cppBad.vert +++ b/deps/glslang/glslang/Test/cppBad.vert @@ -1,5 +1,5 @@ #define m#0# #if m - +#endif #define n() int n" \ No newline at end of file diff --git a/deps/glslang-new/Test/cppBad2.vert b/deps/glslang/glslang/Test/cppBad2.vert similarity index 100% rename from deps/glslang-new/Test/cppBad2.vert rename to deps/glslang/glslang/Test/cppBad2.vert diff --git a/deps/glslang-new/Test/cppDeepNest.frag b/deps/glslang/glslang/Test/cppDeepNest.frag similarity index 100% rename from deps/glslang-new/Test/cppDeepNest.frag rename to deps/glslang/glslang/Test/cppDeepNest.frag diff --git a/deps/glslang-new/Test/cppIntMinOverNegativeOne.frag b/deps/glslang/glslang/Test/cppIntMinOverNegativeOne.frag similarity index 100% rename from deps/glslang-new/Test/cppIntMinOverNegativeOne.frag rename to deps/glslang/glslang/Test/cppIntMinOverNegativeOne.frag diff --git a/deps/glslang-new/Test/cppPassMacroName.frag b/deps/glslang/glslang/Test/cppPassMacroName.frag similarity index 100% rename from deps/glslang-new/Test/cppPassMacroName.frag rename to deps/glslang/glslang/Test/cppPassMacroName.frag diff --git a/deps/glslang-new/Test/cppRelaxSkipTokensErrors.vert b/deps/glslang/glslang/Test/cppRelaxSkipTokensErrors.vert similarity index 100% rename from deps/glslang-new/Test/cppRelaxSkipTokensErrors.vert rename to deps/glslang/glslang/Test/cppRelaxSkipTokensErrors.vert diff --git a/deps/glslang/glslang/Test/cppSimple.vert b/deps/glslang/glslang/Test/cppSimple.vert index 198203a69d..fdd14221b6 100644 --- a/deps/glslang/glslang/Test/cppSimple.vert +++ b/deps/glslang/glslang/Test/cppSimple.vert @@ -337,6 +337,16 @@ int aoeua = FOOOM; #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 diff --git a/deps/glslang-new/Test/findFunction.frag b/deps/glslang/glslang/Test/findFunction.frag similarity index 100% rename from deps/glslang-new/Test/findFunction.frag rename to deps/glslang/glslang/Test/findFunction.frag diff --git a/deps/glslang-new/Test/foo.h b/deps/glslang/glslang/Test/foo.h similarity index 100% rename from deps/glslang-new/Test/foo.h rename to deps/glslang/glslang/Test/foo.h diff --git a/deps/glslang-new/Test/glsl.-D-U.frag b/deps/glslang/glslang/Test/glsl.-D-U.frag similarity index 100% rename from deps/glslang-new/Test/glsl.-D-U.frag rename to deps/glslang/glslang/Test/glsl.-D-U.frag diff --git a/deps/glslang-new/Test/glsl.entryPointRename.vert b/deps/glslang/glslang/Test/glsl.entryPointRename.vert similarity index 100% rename from deps/glslang-new/Test/glsl.entryPointRename.vert rename to deps/glslang/glslang/Test/glsl.entryPointRename.vert diff --git a/deps/glslang-new/Test/glsl.entryPointRename2.vert b/deps/glslang/glslang/Test/glsl.entryPointRename2.vert similarity index 100% rename from deps/glslang-new/Test/glsl.entryPointRename2.vert rename to deps/glslang/glslang/Test/glsl.entryPointRename2.vert diff --git a/deps/glslang/glslang/Test/glspv.frag b/deps/glslang/glslang/Test/glspv.frag index cea8e135b2..7a73cb8d9a 100644 --- a/deps/glslang/glslang/Test/glspv.frag +++ b/deps/glslang/glslang/Test/glspv.frag @@ -1,4 +1,4 @@ -#version 330 +#version 450 #ifdef GL_SPIRV #error GL_SPIRV is set ( correct, not an error ) @@ -11,4 +11,18 @@ 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.vert b/deps/glslang/glslang/Test/glspv.vert index d2724ca283..b44814653a 100644 --- a/deps/glslang/glslang/Test/glspv.vert +++ b/deps/glslang/glslang/Test/glspv.vert @@ -5,8 +5,8 @@ layout(push_constant) uniform Material { int a; } mat; // ERROR, can' layout(set = 0, binding = 0, std140) uniform Bt1 { int a; } bt1; layout(set = 1, binding = 0, std140) uniform Bt2 { int a; } bt2; // ERROR, set has to be 0 -layout(shared) uniform Bt3 { int a; } bt3; // ERROR, no shared -layout(packed) uniform Bt4 { int a; } bt4; // ERROR, no shared +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() { diff --git a/deps/glslang-new/Test/hlsl.-D-U.frag b/deps/glslang/glslang/Test/hlsl.-D-U.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.-D-U.frag rename to deps/glslang/glslang/Test/hlsl.-D-U.frag diff --git a/deps/glslang-new/Test/hlsl.PointSize.geom b/deps/glslang/glslang/Test/hlsl.PointSize.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.PointSize.geom rename to deps/glslang/glslang/Test/hlsl.PointSize.geom diff --git a/deps/glslang-new/Test/hlsl.PointSize.vert b/deps/glslang/glslang/Test/hlsl.PointSize.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.PointSize.vert rename to deps/glslang/glslang/Test/hlsl.PointSize.vert diff --git a/deps/glslang-new/Test/hlsl.aliasOpaque.frag b/deps/glslang/glslang/Test/hlsl.aliasOpaque.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.aliasOpaque.frag rename to deps/glslang/glslang/Test/hlsl.aliasOpaque.frag diff --git a/deps/glslang/glslang/Test/hlsl.amend.frag b/deps/glslang/glslang/Test/hlsl.amend.frag index c9fd69bd3e..7c182739cd 100755 --- a/deps/glslang/glslang/Test/hlsl.amend.frag +++ b/deps/glslang/glslang/Test/hlsl.amend.frag @@ -1,6 +1,6 @@ float4 a; float b; - +static float4 m = a * b; void f1() { a * b; diff --git a/deps/glslang/glslang/Test/hlsl.array.frag b/deps/glslang/glslang/Test/hlsl.array.frag index 1abba89fce..ff0004fd83 100644 --- a/deps/glslang/glslang/Test/hlsl.array.frag +++ b/deps/glslang/glslang/Test/hlsl.array.frag @@ -4,8 +4,15 @@ struct { float4 m[7]; } s[11]; -float4 PixelShaderFunction(int i, float4 input[3]) : COLOR0 +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]; - return a[1] + a[i] + input[2] + input[i] + b[5] + b[i] + s[i].m[i]; -} \ No newline at end of file + 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 index 78a9283daa..e7a54f4662 100644 --- a/deps/glslang/glslang/Test/hlsl.array.implicit-size.frag +++ b/deps/glslang/glslang/Test/hlsl.array.implicit-size.frag @@ -26,6 +26,7 @@ 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-new/Test/hlsl.attributeC11.frag b/deps/glslang/glslang/Test/hlsl.attributeC11.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.attributeC11.frag rename to deps/glslang/glslang/Test/hlsl.attributeC11.frag diff --git a/deps/glslang-new/Test/hlsl.attributeGlobalBuffer.frag b/deps/glslang/glslang/Test/hlsl.attributeGlobalBuffer.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.attributeGlobalBuffer.frag rename to deps/glslang/glslang/Test/hlsl.attributeGlobalBuffer.frag diff --git a/deps/glslang-new/Test/hlsl.automap.frag b/deps/glslang/glslang/Test/hlsl.automap.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.automap.frag rename to deps/glslang/glslang/Test/hlsl.automap.frag diff --git a/deps/glslang/glslang/Test/hlsl.basic.comp b/deps/glslang/glslang/Test/hlsl.basic.comp index 8a65a59616..1d95239ed8 100644 --- a/deps/glslang/glslang/Test/hlsl.basic.comp +++ b/deps/glslang/glslang/Test/hlsl.basic.comp @@ -1,6 +1,6 @@ groupshared float4 a[100]; -void main(int dti : SV_DispatchThreadID) +void main(int dti : SV_DispatchThreadID, int gti : SV_GroupThreadID) { - dti; + dti - gti; } diff --git a/deps/glslang-new/Test/hlsl.boolConv.vert b/deps/glslang/glslang/Test/hlsl.boolConv.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.boolConv.vert rename to deps/glslang/glslang/Test/hlsl.boolConv.vert diff --git a/deps/glslang/glslang/Test/hlsl.buffer.frag b/deps/glslang/glslang/Test/hlsl.buffer.frag index b93dcd3124..73f42e8f01 100644 --- a/deps/glslang/glslang/Test/hlsl.buffer.frag +++ b/deps/glslang/glslang/Test/hlsl.buffer.frag @@ -1,17 +1,17 @@ -cbuffer { +cbuffer buf1 { float4 v1; -}; +}; // extraneous ; -tbuffer { +tbuffer buf2 { float4 v2; -}; +}; // extraneous ; -cbuffer cbufName : register(b2, space10) { - float4 v3; - int i3 : packoffset(c1.y); -}; +cbuffer cbufName { + float4 v3 : packoffset(c0); + int i3 : packoffset(c1.y); +} -tbuffer tbufName : register(b8) { +tbuffer tbufName : register(t8) { float4 v4 : packoffset(c1); int i4 : packoffset(c3); float f1 : packoffset(c3.w); @@ -19,14 +19,29 @@ tbuffer tbufName : register(b8) { float f4 : packoffset(c4.y); float f5 : packoffset(c4.z); float f6 : packoffset(c); - float f7; - float3x4 m1; - row_major float3x4 m2; - column_major float3x4 m3; - float3x4 m4; + 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; }; -float4 PixelShaderFunction(float4 input) : COLOR0 -{ - return input + v1 + v2 + v3 + v4; +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-new/Test/hlsl.cbuffer-identifier.vert b/deps/glslang/glslang/Test/hlsl.cbuffer-identifier.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.cbuffer-identifier.vert rename to deps/glslang/glslang/Test/hlsl.cbuffer-identifier.vert diff --git a/deps/glslang-new/Test/hlsl.charLit.vert b/deps/glslang/glslang/Test/hlsl.charLit.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.charLit.vert rename to deps/glslang/glslang/Test/hlsl.charLit.vert diff --git a/deps/glslang-new/Test/hlsl.clip.frag b/deps/glslang/glslang/Test/hlsl.clip.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clip.frag rename to deps/glslang/glslang/Test/hlsl.clip.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-1.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-1.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-1.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-1.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-1.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-1.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-1.geom rename to deps/glslang/glslang/Test/hlsl.clipdistance-1.geom diff --git a/deps/glslang-new/Test/hlsl.clipdistance-1.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-1.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-1.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-1.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-2.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-2.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-2.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-2.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-2.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-2.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-2.geom rename to deps/glslang/glslang/Test/hlsl.clipdistance-2.geom diff --git a/deps/glslang-new/Test/hlsl.clipdistance-2.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-2.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-2.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-2.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-3.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-3.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-3.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-3.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-3.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-3.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-3.geom rename to deps/glslang/glslang/Test/hlsl.clipdistance-3.geom diff --git a/deps/glslang-new/Test/hlsl.clipdistance-3.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-3.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-3.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-3.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-4.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-4.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-4.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-4.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-4.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-4.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-4.geom rename to deps/glslang/glslang/Test/hlsl.clipdistance-4.geom diff --git a/deps/glslang-new/Test/hlsl.clipdistance-4.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-4.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-4.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-4.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-5.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-5.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-5.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-5.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-5.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-5.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-5.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-5.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-6.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-6.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-6.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-6.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-6.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-6.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-6.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-6.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-7.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-7.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-7.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-7.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-7.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-7.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-7.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-7.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-8.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-8.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-8.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-8.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-8.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-8.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-8.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-8.vert diff --git a/deps/glslang-new/Test/hlsl.clipdistance-9.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-9.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-9.frag rename to deps/glslang/glslang/Test/hlsl.clipdistance-9.frag diff --git a/deps/glslang-new/Test/hlsl.clipdistance-9.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-9.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.clipdistance-9.vert rename to deps/glslang/glslang/Test/hlsl.clipdistance-9.vert diff --git a/deps/glslang-new/Test/hlsl.color.hull.tesc b/deps/glslang/glslang/Test/hlsl.color.hull.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.color.hull.tesc rename to deps/glslang/glslang/Test/hlsl.color.hull.tesc diff --git a/deps/glslang/glslang/Test/hlsl.conditional.frag b/deps/glslang/glslang/Test/hlsl.conditional.frag index 128c5931a6..91f75eec7f 100644 --- a/deps/glslang/glslang/Test/hlsl.conditional.frag +++ b/deps/glslang/glslang/Test/hlsl.conditional.frag @@ -1,3 +1,28 @@ +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; @@ -12,5 +37,6 @@ float4 PixelShaderFunction(float4 input) : COLOR0 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; + 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-new/Test/hlsl.constantbuffer.frag b/deps/glslang/glslang/Test/hlsl.constantbuffer.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.constantbuffer.frag rename to deps/glslang/glslang/Test/hlsl.constantbuffer.frag diff --git a/deps/glslang-new/Test/hlsl.constructArray.vert b/deps/glslang/glslang/Test/hlsl.constructArray.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.constructArray.vert rename to deps/glslang/glslang/Test/hlsl.constructArray.vert diff --git a/deps/glslang-new/Test/hlsl.constructimat.frag b/deps/glslang/glslang/Test/hlsl.constructimat.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.constructimat.frag rename to deps/glslang/glslang/Test/hlsl.constructimat.frag diff --git a/deps/glslang-new/Test/hlsl.coverage.frag b/deps/glslang/glslang/Test/hlsl.coverage.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.coverage.frag rename to deps/glslang/glslang/Test/hlsl.coverage.frag diff --git a/deps/glslang-new/Test/hlsl.dashI.vert b/deps/glslang/glslang/Test/hlsl.dashI.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.dashI.vert rename to deps/glslang/glslang/Test/hlsl.dashI.vert diff --git a/deps/glslang/glslang/Test/hlsl.doLoop.frag b/deps/glslang/glslang/Test/hlsl.doLoop.frag index 251a8c1206..0318dc8f39 100644 --- a/deps/glslang/glslang/Test/hlsl.doLoop.frag +++ b/deps/glslang/glslang/Test/hlsl.doLoop.frag @@ -1,6 +1,9 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 +float4 PixelShaderFunction(float input) : COLOR0 { [unroll] do {} while (false); [unroll] do {;} while (false); - do { return input; } while (all(input == input)); + 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-new/Test/hlsl.domain.1.tese b/deps/glslang/glslang/Test/hlsl.domain.1.tese similarity index 100% rename from deps/glslang-new/Test/hlsl.domain.1.tese rename to deps/glslang/glslang/Test/hlsl.domain.1.tese diff --git a/deps/glslang-new/Test/hlsl.domain.2.tese b/deps/glslang/glslang/Test/hlsl.domain.2.tese similarity index 100% rename from deps/glslang-new/Test/hlsl.domain.2.tese rename to deps/glslang/glslang/Test/hlsl.domain.2.tese diff --git a/deps/glslang-new/Test/hlsl.domain.3.tese b/deps/glslang/glslang/Test/hlsl.domain.3.tese similarity index 100% rename from deps/glslang-new/Test/hlsl.domain.3.tese rename to deps/glslang/glslang/Test/hlsl.domain.3.tese diff --git a/deps/glslang-new/Test/hlsl.emptystruct.init.vert b/deps/glslang/glslang/Test/hlsl.emptystruct.init.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.emptystruct.init.vert rename to deps/glslang/glslang/Test/hlsl.emptystruct.init.vert diff --git a/deps/glslang-new/Test/hlsl.emptystructreturn.frag b/deps/glslang/glslang/Test/hlsl.emptystructreturn.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.emptystructreturn.frag rename to deps/glslang/glslang/Test/hlsl.emptystructreturn.frag diff --git a/deps/glslang-new/Test/hlsl.emptystructreturn.vert b/deps/glslang/glslang/Test/hlsl.emptystructreturn.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.emptystructreturn.vert rename to deps/glslang/glslang/Test/hlsl.emptystructreturn.vert diff --git a/deps/glslang-new/Test/hlsl.explicitDescriptorSet.frag b/deps/glslang/glslang/Test/hlsl.explicitDescriptorSet.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.explicitDescriptorSet.frag rename to deps/glslang/glslang/Test/hlsl.explicitDescriptorSet.frag diff --git a/deps/glslang/glslang/Test/hlsl.flatten.return.frag b/deps/glslang/glslang/Test/hlsl.flatten.return.frag index c633e67988..4aa3f50192 100644 --- a/deps/glslang/glslang/Test/hlsl.flatten.return.frag +++ b/deps/glslang/glslang/Test/hlsl.flatten.return.frag @@ -9,7 +9,7 @@ struct PS_OUTPUT PS_OUTPUT Func1() { - return PS_OUTPUT(float4(1), 2, 3, 4); + return PS_OUTPUT(float4(1,1,1,1), 2, 3, 4); } PS_OUTPUT main() diff --git a/deps/glslang-new/Test/hlsl.flattenOpaque.frag b/deps/glslang/glslang/Test/hlsl.flattenOpaque.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.flattenOpaque.frag rename to deps/glslang/glslang/Test/hlsl.flattenOpaque.frag diff --git a/deps/glslang-new/Test/hlsl.flattenOpaqueInit.vert b/deps/glslang/glslang/Test/hlsl.flattenOpaqueInit.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.flattenOpaqueInit.vert rename to deps/glslang/glslang/Test/hlsl.flattenOpaqueInit.vert diff --git a/deps/glslang-new/Test/hlsl.flattenOpaqueInitMix.vert b/deps/glslang/glslang/Test/hlsl.flattenOpaqueInitMix.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.flattenOpaqueInitMix.vert rename to deps/glslang/glslang/Test/hlsl.flattenOpaqueInitMix.vert diff --git a/deps/glslang-new/Test/hlsl.flattenSubset.frag b/deps/glslang/glslang/Test/hlsl.flattenSubset.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.flattenSubset.frag rename to deps/glslang/glslang/Test/hlsl.flattenSubset.frag diff --git a/deps/glslang-new/Test/hlsl.flattenSubset2.frag b/deps/glslang/glslang/Test/hlsl.flattenSubset2.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.flattenSubset2.frag rename to deps/glslang/glslang/Test/hlsl.flattenSubset2.frag diff --git a/deps/glslang/glslang/Test/hlsl.forLoop.frag b/deps/glslang/glslang/Test/hlsl.forLoop.frag index 937899670d..9cf60ee460 100644 --- a/deps/glslang/glslang/Test/hlsl.forLoop.frag +++ b/deps/glslang/glslang/Test/hlsl.forLoop.frag @@ -5,9 +5,13 @@ float4 PixelShaderFunction(float4 input) : COLOR0 [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 (;;) 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-new/Test/hlsl.fraggeom.frag b/deps/glslang/glslang/Test/hlsl.fraggeom.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.fraggeom.frag rename to deps/glslang/glslang/Test/hlsl.fraggeom.frag diff --git a/deps/glslang-new/Test/hlsl.function.frag b/deps/glslang/glslang/Test/hlsl.function.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.function.frag rename to deps/glslang/glslang/Test/hlsl.function.frag diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag index 4ed7f4b4cd..b6310acb64 100644 --- a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag @@ -29,6 +29,10 @@ PS_OUTPUT main() // 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); diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag index 9dc163150a..94ef576dd0 100644 --- a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag @@ -51,6 +51,10 @@ PS_OUTPUT main() 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); @@ -69,6 +73,10 @@ PS_OUTPUT main() 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; diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag index 3a6fbb7460..7287fe48e6 100644 --- a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag @@ -29,10 +29,10 @@ uniform float2 c2; uniform float3 c3; uniform float4 c4; -uniform int o1; -uniform int2 o2; -uniform int3 o3; -uniform int4 o4; + + + + PS_OUTPUT main() { @@ -42,69 +42,68 @@ PS_OUTPUT main() // no 1D gathers - float4 txval001 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); - int4 txval011 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); - uint4 txval021 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); + 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, o2, o2, o2, o2); - int4 txval014 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); - uint4 txval024 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + 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 txval00s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); - // int4 txval01s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); - // uint4 txval02s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); + 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)); - // float4 txval004s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // int4 txval014s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // uint4 txval024s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // 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 txval101 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); - int4 txval111 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); - uint4 txval121 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); + // 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 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); - int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); - uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + // 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 txval10s = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); - // int4 txval11s = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); - // uint4 txval12s = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, 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); - // float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, 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 txval201 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); - int4 txval211 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); - uint4 txval221 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); + // 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 txval204 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); - int4 txval214 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); - uint4 txval224 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + // 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 txval204s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // int4 txval214s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // uint4 txval224s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, 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); - // float4 txval20s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); - // int4 txval21s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); - // uint4 txval22s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, 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 txval301 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); - int4 txval311 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); - uint4 txval321 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); + // 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 txval304 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); - int4 txval314 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); - uint4 txval324 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + // 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 txval304s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // int4 txval314s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - // uint4 txval324s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); - - // float4 txval30s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); - // int4 txval31s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); - // uint4 txval32s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, 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 diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag index 11131bcb7b..7f381bb1e7 100644 --- a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag @@ -36,6 +36,10 @@ PS_OUTPUT main() // 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); diff --git a/deps/glslang/glslang/Test/hlsl.getsampleposition.dx10.frag b/deps/glslang/glslang/Test/hlsl.getsampleposition.dx10.frag index a7a93b3784..a1182fb6b0 100644 --- a/deps/glslang/glslang/Test/hlsl.getsampleposition.dx10.frag +++ b/deps/glslang/glslang/Test/hlsl.getsampleposition.dx10.frag @@ -9,12 +9,12 @@ struct PS_OUTPUT float Depth : SV_Depth; }; -PS_OUTPUT main() +PS_OUTPUT main(int sample : SAMPLE) { PS_OUTPUT psout; - float2 r00 = g_tTex2dmsf4.GetSamplePosition(1); - float2 r01 = g_tTex2dmsf4a.GetSamplePosition(2); + float2 r00 = g_tTex2dmsf4.GetSamplePosition(sample); + float2 r01 = g_tTex2dmsf4a.GetSamplePosition(sample); psout.Color = 1.0; psout.Depth = 1.0; diff --git a/deps/glslang-new/Test/hlsl.global-const-init.frag b/deps/glslang/glslang/Test/hlsl.global-const-init.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.global-const-init.frag rename to deps/glslang/glslang/Test/hlsl.global-const-init.frag diff --git a/deps/glslang-new/Test/hlsl.groupid.comp b/deps/glslang/glslang/Test/hlsl.groupid.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.groupid.comp rename to deps/glslang/glslang/Test/hlsl.groupid.comp diff --git a/deps/glslang-new/Test/hlsl.gs-hs-mix.tesc b/deps/glslang/glslang/Test/hlsl.gs-hs-mix.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.gs-hs-mix.tesc rename to deps/glslang/glslang/Test/hlsl.gs-hs-mix.tesc diff --git a/deps/glslang-new/Test/hlsl.hlslOffset.vert b/deps/glslang/glslang/Test/hlsl.hlslOffset.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.hlslOffset.vert rename to deps/glslang/glslang/Test/hlsl.hlslOffset.vert diff --git a/deps/glslang-new/Test/hlsl.hull.1.tesc b/deps/glslang/glslang/Test/hlsl.hull.1.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.1.tesc rename to deps/glslang/glslang/Test/hlsl.hull.1.tesc diff --git a/deps/glslang-new/Test/hlsl.hull.2.tesc b/deps/glslang/glslang/Test/hlsl.hull.2.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.2.tesc rename to deps/glslang/glslang/Test/hlsl.hull.2.tesc diff --git a/deps/glslang-new/Test/hlsl.hull.3.tesc b/deps/glslang/glslang/Test/hlsl.hull.3.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.3.tesc rename to deps/glslang/glslang/Test/hlsl.hull.3.tesc diff --git a/deps/glslang-new/Test/hlsl.hull.4.tesc b/deps/glslang/glslang/Test/hlsl.hull.4.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.4.tesc rename to deps/glslang/glslang/Test/hlsl.hull.4.tesc diff --git a/deps/glslang-new/Test/hlsl.hull.5.tesc b/deps/glslang/glslang/Test/hlsl.hull.5.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.5.tesc rename to deps/glslang/glslang/Test/hlsl.hull.5.tesc diff --git a/deps/glslang-new/Test/hlsl.hull.ctrlpt-1.tesc b/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-1.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.ctrlpt-1.tesc rename to deps/glslang/glslang/Test/hlsl.hull.ctrlpt-1.tesc diff --git a/deps/glslang-new/Test/hlsl.hull.ctrlpt-2.tesc b/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-2.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.ctrlpt-2.tesc rename to deps/glslang/glslang/Test/hlsl.hull.ctrlpt-2.tesc diff --git a/deps/glslang-new/Test/hlsl.hull.void.tesc b/deps/glslang/glslang/Test/hlsl.hull.void.tesc similarity index 100% rename from deps/glslang-new/Test/hlsl.hull.void.tesc rename to deps/glslang/glslang/Test/hlsl.hull.void.tesc diff --git a/deps/glslang/glslang/Test/hlsl.identifier.sample.frag b/deps/glslang/glslang/Test/hlsl.identifier.sample.frag index 3281a9ac66..d3f824272f 100644 --- a/deps/glslang/glslang/Test/hlsl.identifier.sample.frag +++ b/deps/glslang/glslang/Test/hlsl.identifier.sample.frag @@ -12,7 +12,7 @@ float4 main() : SV_Target0 { // HLSL allows this as an identifier as well. // However, this is not true of other qualifier keywords such as "linear". - int sample = 3; + float4 sample = float4(3,4,5,6); - return float4(0,0,0,0); + 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 index ba659e6d15..b62eda1518 100644 --- a/deps/glslang/glslang/Test/hlsl.if.frag +++ b/deps/glslang/glslang/Test/hlsl.if.frag @@ -30,4 +30,6 @@ float4 PixelShaderFunction(float4 input) : COLOR0 if (float ii = input.z) ++ii; ++ii; + if (float(ii) == 1.0) + ++ii; } diff --git a/deps/glslang-new/Test/hlsl.imagefetch-subvec4.comp b/deps/glslang/glslang/Test/hlsl.imagefetch-subvec4.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.imagefetch-subvec4.comp rename to deps/glslang/glslang/Test/hlsl.imagefetch-subvec4.comp diff --git a/deps/glslang-new/Test/hlsl.implicitBool.frag b/deps/glslang/glslang/Test/hlsl.implicitBool.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.implicitBool.frag rename to deps/glslang/glslang/Test/hlsl.implicitBool.frag diff --git a/deps/glslang-new/Test/hlsl.include.vert b/deps/glslang/glslang/Test/hlsl.include.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.include.vert rename to deps/glslang/glslang/Test/hlsl.include.vert diff --git a/deps/glslang-new/Test/hlsl.includeNegative.vert b/deps/glslang/glslang/Test/hlsl.includeNegative.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.includeNegative.vert rename to deps/glslang/glslang/Test/hlsl.includeNegative.vert diff --git a/deps/glslang-new/Test/hlsl.inf.vert b/deps/glslang/glslang/Test/hlsl.inf.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.inf.vert rename to deps/glslang/glslang/Test/hlsl.inf.vert diff --git a/deps/glslang/glslang/Test/hlsl.init.frag b/deps/glslang/glslang/Test/hlsl.init.frag index a3f6f0e79d..8caf3c7d94 100644 --- a/deps/glslang/glslang/Test/hlsl.init.frag +++ b/deps/glslang/glslang/Test/hlsl.init.frag @@ -34,3 +34,8 @@ float4 ShaderFunction(float4 input) : COLOR0 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 index 789f1a0655..2b9b7e688c 100644 --- a/deps/glslang/glslang/Test/hlsl.init2.frag +++ b/deps/glslang/glslang/Test/hlsl.init2.frag @@ -18,6 +18,25 @@ void Test1() 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; }; diff --git a/deps/glslang/glslang/Test/hlsl.inoutquals.frag b/deps/glslang/glslang/Test/hlsl.inoutquals.frag index 3234688268..6a124f8dd0 100644 --- a/deps/glslang/glslang/Test/hlsl.inoutquals.frag +++ b/deps/glslang/glslang/Test/hlsl.inoutquals.frag @@ -4,11 +4,12 @@ struct PS_OUTPUT float Depth : SV_Depth; }; -void MyFunc(in float x, out float y, inout float z) +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) @@ -16,7 +17,7 @@ PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : PS_OUTPUT psout; float x = 7, y, z = 3; - MyFunc(x, y, z); + MyFunc(x, y, z, inpos.w); psout.Color = float4(x, y, z, 1); psout.Depth = inpos.w; diff --git a/deps/glslang-new/Test/hlsl.intrinsic.frexp.frag b/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsic.frexp.frag rename to deps/glslang/glslang/Test/hlsl.intrinsic.frexp.frag diff --git a/deps/glslang-new/Test/hlsl.intrinsic.frexp.vert b/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsic.frexp.vert rename to deps/glslang/glslang/Test/hlsl.intrinsic.frexp.vert diff --git a/deps/glslang-new/Test/hlsl.intrinsics.d3dcolortoubyte4.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.d3dcolortoubyte4.frag rename to deps/glslang/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.f1632.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.f1632.frag index 91ff33eb7d..f406860ebd 100644 --- a/deps/glslang/glslang/Test/hlsl.intrinsics.f1632.frag +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.f1632.frag @@ -1,34 +1,29 @@ -float PixelShaderFunctionS(float inF0) +float PixelShaderFunctionS(uint inF0) { - f32tof16(inF0); - - return 0.0; + return f16tof32(inF0); } -float1 PixelShaderFunction1(float1 inF0) +float1 PixelShaderFunction1(uint1 inF0) { - // TODO: ... add when float1 prototypes are generated - return 0.0; + return f16tof32(inF0); } -float2 PixelShaderFunction2(float2 inF0) +float2 PixelShaderFunction2(uint2 inF0) { - f32tof16(inF0); - - return float2(1,2); + return f16tof32(inF0); } -float3 PixelShaderFunction3(float3 inF0) +float3 PixelShaderFunction3(uint3 inF0) { - f32tof16(inF0); - - return float3(1,2,3); + return f16tof32(inF0); } -float4 PixelShaderFunction(float4 inF0) +float4 PixelShaderFunction(uint4 inF0) { - f32tof16(inF0); - - return float4(1,2,3,4); + return f16tof32(inF0); } +float4 main() : SV_Target0 +{ + return 0; +} diff --git a/deps/glslang-new/Test/hlsl.intrinsics.f3216.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.f3216.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.intrinsics.f3216.frag rename to deps/glslang/glslang/Test/hlsl.intrinsics.f3216.frag diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.frag index 15db6376ca..41b5f54cbd 100644 --- a/deps/glslang/glslang/Test/hlsl.intrinsics.frag +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.frag @@ -13,7 +13,7 @@ groupshared uint4 gs_ua4; groupshared uint4 gs_ub4; groupshared uint4 gs_uc4; -float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) +float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int inU1) { uint out_u1; @@ -23,7 +23,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint i bool r003 = any(inF0); float r004 = asin(inF0); int r005 = asint(inF0); - uint r006 = asuint(inF0); + uint r006 = asuint(inU1); float r007 = asfloat(inU0); // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics float r009 = atan(inF0); @@ -31,6 +31,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint i 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); @@ -52,7 +53,6 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint i // TODO: fma(inD0, inD1, inD2); float r033 = fmod(inF0, inF1); float r034 = frac(inF0); - float r035 = frexp(inF0, inF1); float r036 = fwidth(inF0); bool r037 = isinf(inF0); bool r038 = isnan(inF0); @@ -109,6 +109,7 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u 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)); @@ -136,7 +137,6 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u // TODO: fma(inD0, inD1, inD2); float2 r035 = fmod(inF0, inF1); float2 r036 = frac(inF0); - float2 r037 = frexp(inF0, inF1); float2 r038 = fwidth(inF0); bool2 r039 = isinf(inF0); bool2 r040 = isnan(inF0); @@ -192,6 +192,7 @@ float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u 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)); @@ -217,7 +218,6 @@ float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u // TODO: fma(inD0, inD1, inD2); float3 r036 = fmod(inF0, inF1); float3 r037 = frac(inF0); - float3 r038 = frexp(inF0, inF1); float3 r039 = fwidth(inF0); bool3 r040 = isinf(inF0); bool3 r041 = isnan(inF0); @@ -274,6 +274,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui 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)); @@ -299,7 +300,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui // TODO: fma(inD0, inD1, inD2); float4 r036 = fmod(inF0, inF1); float4 r037 = frac(inF0); - float4 r038 = frexp(inF0, inF1); float4 r039 = fwidth(inF0); bool4 r040 = isinf(inF0); bool4 r041 = isnan(inF0); @@ -369,7 +369,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui MT r021 = floor(inF0); \ MT r022 = fmod(inF0, inF1); \ MT r023 = frac(inF0); \ - MT r024 = frexp(inF0, inF1); \ MT r025 = fwidth(inF0); \ MT r026 = ldexp(inF0, inF1); \ MT r026a = lerp(inF0, inF1, inF2); \ diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.vert b/deps/glslang/glslang/Test/hlsl.intrinsics.vert index de9476cbd0..c442f16a50 100644 --- a/deps/glslang/glslang/Test/hlsl.intrinsics.vert +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.vert @@ -28,7 +28,6 @@ float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); - frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -99,7 +98,6 @@ float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); - frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -170,7 +168,6 @@ float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); - frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -241,7 +238,6 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, // TODO: fma(inD0, inD1, inD2); fmod(inF0, inF1); frac(inF0); - frexp(inF0, inF1); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -305,7 +301,6 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, floor(inF0); \ fmod(inF0, inF1); \ frac(inF0); \ - frexp(inF0, inF1); \ ldexp(inF0, inF1); \ lerp(inF0, inF1, inF2); \ log(inF0); \ diff --git a/deps/glslang-new/Test/hlsl.isfinite.frag b/deps/glslang/glslang/Test/hlsl.isfinite.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.isfinite.frag rename to deps/glslang/glslang/Test/hlsl.isfinite.frag diff --git a/deps/glslang/glslang/Test/hlsl.layout.frag b/deps/glslang/glslang/Test/hlsl.layout.frag index 4c2f7cef85..a4fa5af258 100644 --- a/deps/glslang/glslang/Test/hlsl.layout.frag +++ b/deps/glslang/glslang/Test/hlsl.layout.frag @@ -14,5 +14,6 @@ tbuffer tbufName2 : layout(set=4,binding=7) { float4 PixelShaderFunction(float4 input) : COLOR0 { - return input + v1 + v5 + v1PostLayout; + float4 layout = 2.0; + return input + v1 + v5 + v1PostLayout * layout; } diff --git a/deps/glslang-new/Test/hlsl.layoutOverride.vert b/deps/glslang/glslang/Test/hlsl.layoutOverride.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.layoutOverride.vert rename to deps/glslang/glslang/Test/hlsl.layoutOverride.vert diff --git a/deps/glslang-new/Test/hlsl.localStructuredBuffer.comp b/deps/glslang/glslang/Test/hlsl.localStructuredBuffer.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.localStructuredBuffer.comp rename to deps/glslang/glslang/Test/hlsl.localStructuredBuffer.comp diff --git a/deps/glslang-new/Test/hlsl.logicalConvert.frag b/deps/glslang/glslang/Test/hlsl.logicalConvert.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.logicalConvert.frag rename to deps/glslang/glslang/Test/hlsl.logicalConvert.frag diff --git a/deps/glslang-new/Test/hlsl.loopattr.frag b/deps/glslang/glslang/Test/hlsl.loopattr.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.loopattr.frag rename to deps/glslang/glslang/Test/hlsl.loopattr.frag diff --git a/deps/glslang-new/Test/hlsl.matpack-1.frag b/deps/glslang/glslang/Test/hlsl.matpack-1.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.matpack-1.frag rename to deps/glslang/glslang/Test/hlsl.matpack-1.frag diff --git a/deps/glslang-new/Test/hlsl.matpack-pragma.frag b/deps/glslang/glslang/Test/hlsl.matpack-pragma.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.matpack-pragma.frag rename to deps/glslang/glslang/Test/hlsl.matpack-pragma.frag diff --git a/deps/glslang-new/Test/hlsl.matrixSwizzle.vert b/deps/glslang/glslang/Test/hlsl.matrixSwizzle.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.matrixSwizzle.vert rename to deps/glslang/glslang/Test/hlsl.matrixSwizzle.vert diff --git a/deps/glslang-new/Test/hlsl.memberFunCall.frag b/deps/glslang/glslang/Test/hlsl.memberFunCall.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.memberFunCall.frag rename to deps/glslang/glslang/Test/hlsl.memberFunCall.frag diff --git a/deps/glslang-new/Test/hlsl.mip.negative.frag b/deps/glslang/glslang/Test/hlsl.mip.negative.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.mip.negative.frag rename to deps/glslang/glslang/Test/hlsl.mip.negative.frag diff --git a/deps/glslang-new/Test/hlsl.mip.negative2.frag b/deps/glslang/glslang/Test/hlsl.mip.negative2.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.mip.negative2.frag rename to deps/glslang/glslang/Test/hlsl.mip.negative2.frag diff --git a/deps/glslang-new/Test/hlsl.mip.operator.frag b/deps/glslang/glslang/Test/hlsl.mip.operator.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.mip.operator.frag rename to deps/glslang/glslang/Test/hlsl.mip.operator.frag diff --git a/deps/glslang-new/Test/hlsl.mul-truncate.frag b/deps/glslang/glslang/Test/hlsl.mul-truncate.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.mul-truncate.frag rename to deps/glslang/glslang/Test/hlsl.mul-truncate.frag diff --git a/deps/glslang-new/Test/hlsl.multiDescriptorSet.frag b/deps/glslang/glslang/Test/hlsl.multiDescriptorSet.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.multiDescriptorSet.frag rename to deps/glslang/glslang/Test/hlsl.multiDescriptorSet.frag diff --git a/deps/glslang-new/Test/hlsl.namespace.frag b/deps/glslang/glslang/Test/hlsl.namespace.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.namespace.frag rename to deps/glslang/glslang/Test/hlsl.namespace.frag diff --git a/deps/glslang-new/Test/hlsl.noSemantic.functionality1.comp b/deps/glslang/glslang/Test/hlsl.noSemantic.functionality1.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.noSemantic.functionality1.comp rename to deps/glslang/glslang/Test/hlsl.noSemantic.functionality1.comp diff --git a/deps/glslang-new/Test/hlsl.nonint-index.frag b/deps/glslang/glslang/Test/hlsl.nonint-index.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.nonint-index.frag rename to deps/glslang/glslang/Test/hlsl.nonint-index.frag diff --git a/deps/glslang-new/Test/hlsl.nonstaticMemberFunction.frag b/deps/glslang/glslang/Test/hlsl.nonstaticMemberFunction.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.nonstaticMemberFunction.frag rename to deps/glslang/glslang/Test/hlsl.nonstaticMemberFunction.frag diff --git a/deps/glslang/glslang/Test/hlsl.numericsuffixes.frag b/deps/glslang/glslang/Test/hlsl.numericsuffixes.frag index 60b2572f3d..bccb786da0 100644 --- a/deps/glslang/glslang/Test/hlsl.numericsuffixes.frag +++ b/deps/glslang/glslang/Test/hlsl.numericsuffixes.frag @@ -13,6 +13,10 @@ PS_OUTPUT main() 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 diff --git a/deps/glslang/glslang/Test/hlsl.numthreads.comp b/deps/glslang/glslang/Test/hlsl.numthreads.comp index fcc97f3798..0871d3f746 100644 --- a/deps/glslang/glslang/Test/hlsl.numthreads.comp +++ b/deps/glslang/glslang/Test/hlsl.numthreads.comp @@ -4,11 +4,8 @@ void main(uint3 tid : SV_DispatchThreadID ) { } -[numTHreaDs(4,4,2)] // case insensitive -void main_aux1(uint3 tid : SV_DispatchThreadID ) +[numthreads(1,4,8)] +void main_aux2(uint3 tid : SV_DispatchThreadID ) { } -[numthreads(1,4,8)] -void main_aux2(uint3 tid : SV_DispatchThreadID ); - diff --git a/deps/glslang-new/Test/hlsl.opaque-type-bug.frag b/deps/glslang/glslang/Test/hlsl.opaque-type-bug.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.opaque-type-bug.frag rename to deps/glslang/glslang/Test/hlsl.opaque-type-bug.frag diff --git a/deps/glslang-new/Test/hlsl.params.default.frag b/deps/glslang/glslang/Test/hlsl.params.default.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.params.default.frag rename to deps/glslang/glslang/Test/hlsl.params.default.frag diff --git a/deps/glslang-new/Test/hlsl.params.default.negative.frag b/deps/glslang/glslang/Test/hlsl.params.default.negative.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.params.default.negative.frag rename to deps/glslang/glslang/Test/hlsl.params.default.negative.frag diff --git a/deps/glslang-new/Test/hlsl.partialFlattenLocal.vert b/deps/glslang/glslang/Test/hlsl.partialFlattenLocal.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.partialFlattenLocal.vert rename to deps/glslang/glslang/Test/hlsl.partialFlattenLocal.vert diff --git a/deps/glslang-new/Test/hlsl.partialFlattenMixed.vert b/deps/glslang/glslang/Test/hlsl.partialFlattenMixed.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.partialFlattenMixed.vert rename to deps/glslang/glslang/Test/hlsl.partialFlattenMixed.vert diff --git a/deps/glslang/glslang/Test/hlsl.partialInit.frag b/deps/glslang/glslang/Test/hlsl.partialInit.frag index 59e8a529ca..01aee8e60b 100755 --- a/deps/glslang/glslang/Test/hlsl.partialInit.frag +++ b/deps/glslang/glslang/Test/hlsl.partialInit.frag @@ -25,5 +25,12 @@ outs PixelShaderFunction(float4 input) : COLOR0 o4.c = o1.c; Nest nest = (Nest)0; + float2 gf2a[4] = { }; + int cgi = { }; + o4.b = gf2a[2].y * cgi; + return o4; -} \ No newline at end of file +} + +static const float2 cgf2a[3]; +static const int ci; diff --git a/deps/glslang-new/Test/hlsl.pp.tokenpasting.frag b/deps/glslang/glslang/Test/hlsl.pp.tokenpasting.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.pp.tokenpasting.frag rename to deps/glslang/glslang/Test/hlsl.pp.tokenpasting.frag diff --git a/deps/glslang-new/Test/hlsl.pp.vert b/deps/glslang/glslang/Test/hlsl.pp.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.pp.vert rename to deps/glslang/glslang/Test/hlsl.pp.vert diff --git a/deps/glslang-new/Test/hlsl.preprocessor.frag b/deps/glslang/glslang/Test/hlsl.preprocessor.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.preprocessor.frag rename to deps/glslang/glslang/Test/hlsl.preprocessor.frag diff --git a/deps/glslang/glslang/Test/hlsl.reflection.vert b/deps/glslang/glslang/Test/hlsl.reflection.vert index 21cc81092e..06207c74f8 100644 --- a/deps/glslang/glslang/Test/hlsl.reflection.vert +++ b/deps/glslang/glslang/Test/hlsl.reflection.vert @@ -19,27 +19,10 @@ cbuffer c_nameless { float4 c_anonMember3; }; -cbuffer named { - float3 deadMember1; - int scalar; - float4 member2; - float4 member3; - float2 memfloat2; - float memf1; - bool memf2; - int memf3; - float2 memfloat2a; - float2x2 m22[7]; -} ablock; - cbuffer namelessdead { int a; }; -cbuffer namedDead { - int b; -} bblock; - struct N1 { float a; }; @@ -57,7 +40,7 @@ struct N3 { cbuffer nested { N3 foo; -} nest; +} struct TS { int a; @@ -89,16 +72,12 @@ struct deep3 { int3 v3; }; - - - uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; const bool control = true; void deadFunction() { - float3 v3 = ablock.deadMember1; float4 v = anonDeadMember2; float f = ufDead4; } @@ -110,12 +89,12 @@ void liveFunction2() } tbuffer abl { - float foo; -} arrBl; + float foo1; +} tbuffer abl2 { - float foo; -} arrBl2; + float foo2; +} void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attributeFloat3, in float4 attributeFloat4, in float4x4 attributeMat4) { @@ -130,22 +109,16 @@ void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attribu 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.memfloat2.x; - f += ablock.memf1; - f += float(ablock.memf2); - f += ablock.memf3; - f += ablock.memfloat2a.y; - f += ablock.m22[i][1][0]; + f += 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 += 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; @@ -154,8 +127,8 @@ void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attribu } else f = ufDead3; - f += arrBl.foo + arrBl.foo; - f += arrBl2.foo; + f += foo1 + foo2; + f += foo2; f += attributeFloat; f += attributeFloat2.x; diff --git a/deps/glslang-new/Test/hlsl.rw.swizzle.frag b/deps/glslang/glslang/Test/hlsl.rw.swizzle.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.rw.swizzle.frag rename to deps/glslang/glslang/Test/hlsl.rw.swizzle.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmp.dualmode.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.dualmode.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmp.dualmode.frag rename to deps/glslang/glslang/Test/hlsl.samplecmp.dualmode.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmp.negative.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.negative.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmp.negative.frag rename to deps/glslang/glslang/Test/hlsl.samplecmp.negative.frag diff --git a/deps/glslang-new/Test/hlsl.samplecmp.negative2.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.negative2.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.samplecmp.negative2.frag rename to deps/glslang/glslang/Test/hlsl.samplecmp.negative2.frag diff --git a/deps/glslang-new/Test/hlsl.scalar-length.frag b/deps/glslang/glslang/Test/hlsl.scalar-length.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.scalar-length.frag rename to deps/glslang/glslang/Test/hlsl.scalar-length.frag diff --git a/deps/glslang-new/Test/hlsl.scalar2matrix.frag b/deps/glslang/glslang/Test/hlsl.scalar2matrix.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.scalar2matrix.frag rename to deps/glslang/glslang/Test/hlsl.scalar2matrix.frag diff --git a/deps/glslang-new/Test/hlsl.scalarCast.vert b/deps/glslang/glslang/Test/hlsl.scalarCast.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.scalarCast.vert rename to deps/glslang/glslang/Test/hlsl.scalarCast.vert diff --git a/deps/glslang-new/Test/hlsl.self_cast.frag b/deps/glslang/glslang/Test/hlsl.self_cast.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.self_cast.frag rename to deps/glslang/glslang/Test/hlsl.self_cast.frag diff --git a/deps/glslang-new/Test/hlsl.semantic-1.vert b/deps/glslang/glslang/Test/hlsl.semantic-1.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.semantic-1.vert rename to deps/glslang/glslang/Test/hlsl.semantic-1.vert diff --git a/deps/glslang-new/Test/hlsl.semantic.geom b/deps/glslang/glslang/Test/hlsl.semantic.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.semantic.geom rename to deps/glslang/glslang/Test/hlsl.semantic.geom diff --git a/deps/glslang-new/Test/hlsl.semantic.vert b/deps/glslang/glslang/Test/hlsl.semantic.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.semantic.vert rename to deps/glslang/glslang/Test/hlsl.semantic.vert diff --git a/deps/glslang/glslang/Test/hlsl.shapeConv.frag b/deps/glslang/glslang/Test/hlsl.shapeConv.frag index adb170eab3..bc09d80a35 100644 --- a/deps/glslang/glslang/Test/hlsl.shapeConv.frag +++ b/deps/glslang/glslang/Test/hlsl.shapeConv.frag @@ -28,5 +28,22 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0 f1.x; f1.xxx; - return input; + 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-new/Test/hlsl.shift.per-set.frag b/deps/glslang/glslang/Test/hlsl.shift.per-set.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.shift.per-set.frag rename to deps/glslang/glslang/Test/hlsl.shift.per-set.frag diff --git a/deps/glslang-new/Test/hlsl.snorm.uav.comp b/deps/glslang/glslang/Test/hlsl.snorm.uav.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.snorm.uav.comp rename to deps/glslang/glslang/Test/hlsl.snorm.uav.comp diff --git a/deps/glslang-new/Test/hlsl.staticMemberFunction.frag b/deps/glslang/glslang/Test/hlsl.staticMemberFunction.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.staticMemberFunction.frag rename to deps/glslang/glslang/Test/hlsl.staticMemberFunction.frag diff --git a/deps/glslang-new/Test/hlsl.store.rwbyteaddressbuffer.type.comp b/deps/glslang/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.store.rwbyteaddressbuffer.type.comp rename to deps/glslang/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp diff --git a/deps/glslang/glslang/Test/hlsl.struct.frag b/deps/glslang/glslang/Test/hlsl.struct.frag index e602c9ed51..33199e0674 100644 --- a/deps/glslang/glslang/Test/hlsl.struct.frag +++ b/deps/glslang/glslang/Test/hlsl.struct.frag @@ -12,7 +12,7 @@ struct myS { myS s1; -static struct { +static class { float4 i; } s2; @@ -30,14 +30,24 @@ struct IN_S { 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 { - struct FS { + 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-new/Test/hlsl.struct.split-1.vert b/deps/glslang/glslang/Test/hlsl.struct.split-1.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.struct.split-1.vert rename to deps/glslang/glslang/Test/hlsl.struct.split-1.vert diff --git a/deps/glslang-new/Test/hlsl.struct.split.array.geom b/deps/glslang/glslang/Test/hlsl.struct.split.array.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.struct.split.array.geom rename to deps/glslang/glslang/Test/hlsl.struct.split.array.geom diff --git a/deps/glslang-new/Test/hlsl.struct.split.assign.frag b/deps/glslang/glslang/Test/hlsl.struct.split.assign.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.struct.split.assign.frag rename to deps/glslang/glslang/Test/hlsl.struct.split.assign.frag diff --git a/deps/glslang-new/Test/hlsl.struct.split.call.vert b/deps/glslang/glslang/Test/hlsl.struct.split.call.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.struct.split.call.vert rename to deps/glslang/glslang/Test/hlsl.struct.split.call.vert diff --git a/deps/glslang-new/Test/hlsl.struct.split.nested.geom b/deps/glslang/glslang/Test/hlsl.struct.split.nested.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.struct.split.nested.geom rename to deps/glslang/glslang/Test/hlsl.struct.split.nested.geom diff --git a/deps/glslang-new/Test/hlsl.struct.split.trivial.geom b/deps/glslang/glslang/Test/hlsl.struct.split.trivial.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.struct.split.trivial.geom rename to deps/glslang/glslang/Test/hlsl.struct.split.trivial.geom diff --git a/deps/glslang-new/Test/hlsl.struct.split.trivial.vert b/deps/glslang/glslang/Test/hlsl.struct.split.trivial.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.struct.split.trivial.vert rename to deps/glslang/glslang/Test/hlsl.struct.split.trivial.vert diff --git a/deps/glslang-new/Test/hlsl.structIoFourWay.frag b/deps/glslang/glslang/Test/hlsl.structIoFourWay.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structIoFourWay.frag rename to deps/glslang/glslang/Test/hlsl.structIoFourWay.frag diff --git a/deps/glslang-new/Test/hlsl.structStructName.frag b/deps/glslang/glslang/Test/hlsl.structStructName.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structStructName.frag rename to deps/glslang/glslang/Test/hlsl.structStructName.frag diff --git a/deps/glslang/glslang/Test/hlsl.structarray.flatten.geom b/deps/glslang/glslang/Test/hlsl.structarray.flatten.geom index 1b05dc11d2..990532d32e 100644 --- a/deps/glslang/glslang/Test/hlsl.structarray.flatten.geom +++ b/deps/glslang/glslang/Test/hlsl.structarray.flatten.geom @@ -1,17 +1,23 @@ struct VertexData { - float4 position : POSITION; - float4 color : COLOR0; - float2 uv : TEXCOORD0; + 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) +void main(line VertexData vin[2], inout TriangleStream outStream) { - VertexData vout; + PS_IN vout; - vout.color = vin[0].color; - vout.uv = vin[0].uv; - vout.position = vin[0].position; + vout.color = vin[1].color; + vout.uv = vin[1].uv; + vout.position = vin[1].position; outStream.Append(vout); } diff --git a/deps/glslang-new/Test/hlsl.structbuffer.append.fn.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.append.fn.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.append.fn.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.append.fn.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.append.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.append.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.append.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.append.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.atomics.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.atomics.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.atomics.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.atomics.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.byte.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.byte.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.byte.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.byte.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.coherent.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.coherent.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.coherent.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.coherent.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.floatidx.comp b/deps/glslang/glslang/Test/hlsl.structbuffer.floatidx.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.floatidx.comp rename to deps/glslang/glslang/Test/hlsl.structbuffer.floatidx.comp diff --git a/deps/glslang-new/Test/hlsl.structbuffer.fn.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.fn.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.fn.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.fn.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.fn2.comp b/deps/glslang/glslang/Test/hlsl.structbuffer.fn2.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.fn2.comp rename to deps/glslang/glslang/Test/hlsl.structbuffer.fn2.comp diff --git a/deps/glslang-new/Test/hlsl.structbuffer.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.incdec.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.incdec.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.incdec.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.incdec.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.rw.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.rw.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.rw.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.rw.frag diff --git a/deps/glslang-new/Test/hlsl.structbuffer.rwbyte.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.rwbyte.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.structbuffer.rwbyte.frag rename to deps/glslang/glslang/Test/hlsl.structbuffer.rwbyte.frag diff --git a/deps/glslang/glslang/Test/hlsl.structin.vert b/deps/glslang/glslang/Test/hlsl.structin.vert index 43d0cfd0bb..20a26dd9eb 100644 --- a/deps/glslang/glslang/Test/hlsl.structin.vert +++ b/deps/glslang/glslang/Test/hlsl.structin.vert @@ -1,14 +1,17 @@ struct VI { - float4 m[2]; - uint2 coord; - linear float4 b; + float4 m[2] : mysemA; + float4 coord : SV_POSITION; + linear float4 b : mysemB; }; -VI main(float4 d, VI vi, float4 e) : SV_POSITION +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.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-new/Test/hlsl.subpass.frag b/deps/glslang/glslang/Test/hlsl.subpass.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.subpass.frag rename to deps/glslang/glslang/Test/hlsl.subpass.frag diff --git a/deps/glslang/glslang/Test/hlsl.switch.frag b/deps/glslang/glslang/Test/hlsl.switch.frag index 88239c2bec..78ebfef343 100644 --- a/deps/glslang/glslang/Test/hlsl.switch.frag +++ b/deps/glslang/glslang/Test/hlsl.switch.frag @@ -18,7 +18,7 @@ float4 PixelShaderFunction(float4 input, int c, int d) : COLOR0 break; } - switch (c) { + [branch] switch (c) { case 1: ++input; break; diff --git a/deps/glslang-new/Test/hlsl.synthesizeInput.frag b/deps/glslang/glslang/Test/hlsl.synthesizeInput.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.synthesizeInput.frag rename to deps/glslang/glslang/Test/hlsl.synthesizeInput.frag diff --git a/deps/glslang-new/Test/hlsl.target.frag b/deps/glslang/glslang/Test/hlsl.target.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.target.frag rename to deps/glslang/glslang/Test/hlsl.target.frag diff --git a/deps/glslang-new/Test/hlsl.targetStruct1.frag b/deps/glslang/glslang/Test/hlsl.targetStruct1.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.targetStruct1.frag rename to deps/glslang/glslang/Test/hlsl.targetStruct1.frag diff --git a/deps/glslang-new/Test/hlsl.targetStruct2.frag b/deps/glslang/glslang/Test/hlsl.targetStruct2.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.targetStruct2.frag rename to deps/glslang/glslang/Test/hlsl.targetStruct2.frag diff --git a/deps/glslang-new/Test/hlsl.texture.struct.frag b/deps/glslang/glslang/Test/hlsl.texture.struct.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.texture.struct.frag rename to deps/glslang/glslang/Test/hlsl.texture.struct.frag diff --git a/deps/glslang-new/Test/hlsl.texture.subvec4.frag b/deps/glslang/glslang/Test/hlsl.texture.subvec4.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.texture.subvec4.frag rename to deps/glslang/glslang/Test/hlsl.texture.subvec4.frag diff --git a/deps/glslang-new/Test/hlsl.texturebuffer.frag b/deps/glslang/glslang/Test/hlsl.texturebuffer.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.texturebuffer.frag rename to deps/glslang/glslang/Test/hlsl.texturebuffer.frag diff --git a/deps/glslang-new/Test/hlsl.this.frag b/deps/glslang/glslang/Test/hlsl.this.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.this.frag rename to deps/glslang/glslang/Test/hlsl.this.frag diff --git a/deps/glslang-new/Test/hlsl.tristream-append.geom b/deps/glslang/glslang/Test/hlsl.tristream-append.geom similarity index 100% rename from deps/glslang-new/Test/hlsl.tristream-append.geom rename to deps/glslang/glslang/Test/hlsl.tristream-append.geom diff --git a/deps/glslang-new/Test/hlsl.tx.overload.frag b/deps/glslang/glslang/Test/hlsl.tx.overload.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.tx.overload.frag rename to deps/glslang/glslang/Test/hlsl.tx.overload.frag diff --git a/deps/glslang-new/Test/hlsl.type.half.frag b/deps/glslang/glslang/Test/hlsl.type.half.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.type.half.frag rename to deps/glslang/glslang/Test/hlsl.type.half.frag diff --git a/deps/glslang-new/Test/hlsl.type.identifier.frag b/deps/glslang/glslang/Test/hlsl.type.identifier.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.type.identifier.frag rename to deps/glslang/glslang/Test/hlsl.type.identifier.frag diff --git a/deps/glslang-new/Test/hlsl.typeGraphCopy.vert b/deps/glslang/glslang/Test/hlsl.typeGraphCopy.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.typeGraphCopy.vert rename to deps/glslang/glslang/Test/hlsl.typeGraphCopy.vert diff --git a/deps/glslang-new/Test/hlsl.wavebroadcast.comp b/deps/glslang/glslang/Test/hlsl.wavebroadcast.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.wavebroadcast.comp rename to deps/glslang/glslang/Test/hlsl.wavebroadcast.comp diff --git a/deps/glslang-new/Test/hlsl.waveprefix.comp b/deps/glslang/glslang/Test/hlsl.waveprefix.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.waveprefix.comp rename to deps/glslang/glslang/Test/hlsl.waveprefix.comp diff --git a/deps/glslang-new/Test/hlsl.wavequad.comp b/deps/glslang/glslang/Test/hlsl.wavequad.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.wavequad.comp rename to deps/glslang/glslang/Test/hlsl.wavequad.comp diff --git a/deps/glslang-new/Test/hlsl.wavequery.comp b/deps/glslang/glslang/Test/hlsl.wavequery.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.wavequery.comp rename to deps/glslang/glslang/Test/hlsl.wavequery.comp diff --git a/deps/glslang-new/Test/hlsl.wavequery.frag b/deps/glslang/glslang/Test/hlsl.wavequery.frag similarity index 100% rename from deps/glslang-new/Test/hlsl.wavequery.frag rename to deps/glslang/glslang/Test/hlsl.wavequery.frag diff --git a/deps/glslang-new/Test/hlsl.wavereduction.comp b/deps/glslang/glslang/Test/hlsl.wavereduction.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.wavereduction.comp rename to deps/glslang/glslang/Test/hlsl.wavereduction.comp diff --git a/deps/glslang-new/Test/hlsl.wavevote.comp b/deps/glslang/glslang/Test/hlsl.wavevote.comp similarity index 100% rename from deps/glslang-new/Test/hlsl.wavevote.comp rename to deps/glslang/glslang/Test/hlsl.wavevote.comp diff --git a/deps/glslang-new/Test/hlsl.y-negate-1.vert b/deps/glslang/glslang/Test/hlsl.y-negate-1.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.y-negate-1.vert rename to deps/glslang/glslang/Test/hlsl.y-negate-1.vert diff --git a/deps/glslang-new/Test/hlsl.y-negate-2.vert b/deps/glslang/glslang/Test/hlsl.y-negate-2.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.y-negate-2.vert rename to deps/glslang/glslang/Test/hlsl.y-negate-2.vert diff --git a/deps/glslang-new/Test/hlsl.y-negate-3.vert b/deps/glslang/glslang/Test/hlsl.y-negate-3.vert similarity index 100% rename from deps/glslang-new/Test/hlsl.y-negate-3.vert rename to deps/glslang/glslang/Test/hlsl.y-negate-3.vert diff --git a/deps/glslang-new/Test/implicitInnerAtomicUint.frag b/deps/glslang/glslang/Test/implicitInnerAtomicUint.frag similarity index 100% rename from deps/glslang-new/Test/implicitInnerAtomicUint.frag rename to deps/glslang/glslang/Test/implicitInnerAtomicUint.frag diff --git a/deps/glslang-new/Test/inc1/badInc.h b/deps/glslang/glslang/Test/inc1/badInc.h similarity index 100% rename from deps/glslang-new/Test/inc1/badInc.h rename to deps/glslang/glslang/Test/inc1/badInc.h diff --git a/deps/glslang-new/Test/inc1/bar.h b/deps/glslang/glslang/Test/inc1/bar.h similarity index 100% rename from deps/glslang-new/Test/inc1/bar.h rename to deps/glslang/glslang/Test/inc1/bar.h diff --git a/deps/glslang-new/Test/inc1/foo.h b/deps/glslang/glslang/Test/inc1/foo.h similarity index 100% rename from deps/glslang-new/Test/inc1/foo.h rename to deps/glslang/glslang/Test/inc1/foo.h diff --git a/deps/glslang-new/Test/inc1/path1/bar.h b/deps/glslang/glslang/Test/inc1/path1/bar.h similarity index 100% rename from deps/glslang-new/Test/inc1/path1/bar.h rename to deps/glslang/glslang/Test/inc1/path1/bar.h diff --git a/deps/glslang-new/Test/inc1/path1/local.h b/deps/glslang/glslang/Test/inc1/path1/local.h similarity index 100% rename from deps/glslang-new/Test/inc1/path1/local.h rename to deps/glslang/glslang/Test/inc1/path1/local.h diff --git a/deps/glslang-new/Test/inc1/path1/notHere.h b/deps/glslang/glslang/Test/inc1/path1/notHere.h similarity index 100% rename from deps/glslang-new/Test/inc1/path1/notHere.h rename to deps/glslang/glslang/Test/inc1/path1/notHere.h diff --git a/deps/glslang-new/Test/inc1/path2/bar.h b/deps/glslang/glslang/Test/inc1/path2/bar.h similarity index 100% rename from deps/glslang-new/Test/inc1/path2/bar.h rename to deps/glslang/glslang/Test/inc1/path2/bar.h diff --git a/deps/glslang-new/Test/inc1/path2/notHere.h b/deps/glslang/glslang/Test/inc1/path2/notHere.h similarity index 100% rename from deps/glslang-new/Test/inc1/path2/notHere.h rename to deps/glslang/glslang/Test/inc1/path2/notHere.h diff --git a/deps/glslang-new/Test/inc1/path2/remote.h b/deps/glslang/glslang/Test/inc1/path2/remote.h similarity index 100% rename from deps/glslang-new/Test/inc1/path2/remote.h rename to deps/glslang/glslang/Test/inc1/path2/remote.h diff --git a/deps/glslang-new/Test/inc2/bar.h b/deps/glslang/glslang/Test/inc2/bar.h similarity index 100% rename from deps/glslang-new/Test/inc2/bar.h rename to deps/glslang/glslang/Test/inc2/bar.h diff --git a/deps/glslang-new/Test/inc2/foo.h b/deps/glslang/glslang/Test/inc2/foo.h similarity index 100% rename from deps/glslang-new/Test/inc2/foo.h rename to deps/glslang/glslang/Test/inc2/foo.h diff --git a/deps/glslang-new/Test/include.vert b/deps/glslang/glslang/Test/include.vert similarity index 100% rename from deps/glslang-new/Test/include.vert rename to deps/glslang/glslang/Test/include.vert diff --git a/deps/glslang-new/Test/invalidSwizzle.vert b/deps/glslang/glslang/Test/invalidSwizzle.vert similarity index 100% rename from deps/glslang-new/Test/invalidSwizzle.vert rename to deps/glslang/glslang/Test/invalidSwizzle.vert diff --git a/deps/glslang-new/Test/link1.vk.frag b/deps/glslang/glslang/Test/link1.vk.frag similarity index 100% rename from deps/glslang-new/Test/link1.vk.frag rename to deps/glslang/glslang/Test/link1.vk.frag diff --git a/deps/glslang-new/Test/link2.vk.frag b/deps/glslang/glslang/Test/link2.vk.frag similarity index 100% rename from deps/glslang-new/Test/link2.vk.frag rename to deps/glslang/glslang/Test/link2.vk.frag diff --git a/deps/glslang/glslang/Test/matrix2.frag b/deps/glslang/glslang/Test/matrix2.frag index eb2c53c2ec..df65804401 100644 --- a/deps/glslang/glslang/Test/matrix2.frag +++ b/deps/glslang/glslang/Test/matrix2.frag @@ -47,4 +47,5 @@ void main() 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 index 3c8cc11fec..0ad145b255 100644 --- a/deps/glslang/glslang/Test/matrixError.vert +++ b/deps/glslang/glslang/Test/matrixError.vert @@ -19,4 +19,6 @@ void main() 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-new/Test/mixedArrayDecls.frag b/deps/glslang/glslang/Test/mixedArrayDecls.frag similarity index 100% rename from deps/glslang-new/Test/mixedArrayDecls.frag rename to deps/glslang/glslang/Test/mixedArrayDecls.frag diff --git a/deps/glslang-new/Test/nonuniform.frag b/deps/glslang/glslang/Test/nonuniform.frag similarity index 100% rename from deps/glslang-new/Test/nonuniform.frag rename to deps/glslang/glslang/Test/nonuniform.frag diff --git a/deps/glslang-new/Test/nosuffix b/deps/glslang/glslang/Test/nosuffix similarity index 100% rename from deps/glslang-new/Test/nosuffix rename to deps/glslang/glslang/Test/nosuffix diff --git a/deps/glslang/glslang/Test/numeral.frag b/deps/glslang/glslang/Test/numeral.frag index cc0862ccd1..39814f4edd 100644 --- a/deps/glslang/glslang/Test/numeral.frag +++ b/deps/glslang/glslang/Test/numeral.frag @@ -101,3 +101,6 @@ 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-new/Test/nvShaderNoperspectiveInterpolation.frag b/deps/glslang/glslang/Test/nvShaderNoperspectiveInterpolation.frag similarity index 100% rename from deps/glslang-new/Test/nvShaderNoperspectiveInterpolation.frag rename to deps/glslang/glslang/Test/nvShaderNoperspectiveInterpolation.frag diff --git a/deps/glslang-new/Test/overlongLiteral.frag b/deps/glslang/glslang/Test/overlongLiteral.frag similarity index 100% rename from deps/glslang-new/Test/overlongLiteral.frag rename to deps/glslang/glslang/Test/overlongLiteral.frag diff --git a/deps/glslang-new/Test/parent.h b/deps/glslang/glslang/Test/parent.h similarity index 100% rename from deps/glslang-new/Test/parent.h rename to deps/glslang/glslang/Test/parent.h diff --git a/deps/glslang-new/Test/parentBad b/deps/glslang/glslang/Test/parentBad similarity index 100% rename from deps/glslang-new/Test/parentBad rename to deps/glslang/glslang/Test/parentBad diff --git a/deps/glslang/glslang/Test/preprocessor.include.disabled.vert b/deps/glslang/glslang/Test/preprocessor.include.disabled.vert index 130d928e52..865baa189d 100644 --- a/deps/glslang/glslang/Test/preprocessor.include.disabled.vert +++ b/deps/glslang/glslang/Test/preprocessor.include.disabled.vert @@ -3,5 +3,4 @@ #include 123 #include "foo" #include "foo" garbage -#include "no-eol" - +#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 index ecdf466e1b..985eae2ce5 100644 --- a/deps/glslang/glslang/Test/preprocessor.include.enabled.vert +++ b/deps/glslang/glslang/Test/preprocessor.include.enabled.vert @@ -2,6 +2,19 @@ #line 8000 #include #include 123 -#include "foo" -#include "foo" garbage -#include "no-eol" +#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.pragma.vert b/deps/glslang/glslang/Test/preprocessor.pragma.vert index 79f5600a8d..0ae7ee2124 100644 --- a/deps/glslang/glslang/Test/preprocessor.pragma.vert +++ b/deps/glslang/glslang/Test/preprocessor.pragma.vert @@ -7,5 +7,7 @@ #pragma undefined_pragma(x, 4) +#pragma once + int main() { } diff --git a/deps/glslang/glslang/Test/reflection.vert b/deps/glslang/glslang/Test/reflection.vert index be49822523..7549f0816d 100644 --- a/deps/glslang/glslang/Test/reflection.vert +++ b/deps/glslang/glslang/Test/reflection.vert @@ -133,6 +133,26 @@ 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); @@ -179,4 +199,8 @@ void main() 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-new/Test/remap.invalid-spirv-1.spv b/deps/glslang/glslang/Test/remap.invalid-spirv-1.spv similarity index 100% rename from deps/glslang-new/Test/remap.invalid-spirv-1.spv rename to deps/glslang/glslang/Test/remap.invalid-spirv-1.spv diff --git a/deps/glslang-new/Test/remap.invalid-spirv-2.spv b/deps/glslang/glslang/Test/remap.invalid-spirv-2.spv similarity index 100% rename from deps/glslang-new/Test/remap.invalid-spirv-2.spv rename to deps/glslang/glslang/Test/remap.invalid-spirv-2.spv diff --git a/deps/glslang-new/Test/remap.specconst.comp b/deps/glslang/glslang/Test/remap.specconst.comp similarity index 100% rename from deps/glslang-new/Test/remap.specconst.comp rename to deps/glslang/glslang/Test/remap.specconst.comp diff --git a/deps/glslang/glslang/Test/runtests b/deps/glslang/glslang/Test/runtests index a17848b74c..a084cb5cd7 100755 --- a/deps/glslang/glslang/Test/runtests +++ b/deps/glslang/glslang/Test/runtests @@ -3,6 +3,7 @@ TARGETDIR=localResults BASEDIR=baseResults EXE=../build/install/bin/glslangValidator +REMAPEXE=../build/install/bin/spirv-remap HASERROR=0 mkdir -p localResults @@ -31,11 +32,12 @@ diff -b $BASEDIR/badMacroArgs.frag.out $TARGETDIR/badMacroArgs.frag.out || HASER 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 -e flizv -l -q -C -V hlsl.reflection.vert > $TARGETDIR/hlsl.reflection.vert.out +$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 -e main -l -q -C -V hlsl.reflection.binding.frag > $TARGETDIR/hlsl.reflection.binding.frag.out +$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 @@ -44,19 +46,24 @@ 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 -e main_in_spv --ku --source-entrypoint main hlsl.entry.rename.frag > $TARGETDIR/hlsl.entry.rename.frag.out +$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 -e main -H hlsl.deadFunctionMissingBody.vert > $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out +$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 ] @@ -66,4 +73,158 @@ 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-new/Test/runtimeArray.vert b/deps/glslang/glslang/Test/runtimeArray.vert similarity index 100% rename from deps/glslang-new/Test/runtimeArray.vert rename to deps/glslang/glslang/Test/runtimeArray.vert diff --git a/deps/glslang/glslang/Test/spv.140.frag b/deps/glslang/glslang/Test/spv.140.frag index 61ad1a6fb0..ceeac47bf0 100644 --- a/deps/glslang/glslang/Test/spv.140.frag +++ b/deps/glslang/glslang/Test/spv.140.frag @@ -14,7 +14,7 @@ layout(std140) uniform bn { layout(column_major) mat4 matca[4]; layout(row_major) mat4 matr; layout(column_major) mat4 matc; - mat4 matrdef; + layout(align=512, offset=1024) mat4 matrdef; }; uniform sampler2DRect sampR; diff --git a/deps/glslang/glslang/Test/spv.300layout.vert b/deps/glslang/glslang/Test/spv.300layout.vert index 81218b5d38..a32a95de78 100644 --- a/deps/glslang/glslang/Test/spv.300layout.vert +++ b/deps/glslang/glslang/Test/spv.300layout.vert @@ -25,7 +25,7 @@ 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]; + layout(align=16, offset=2048) uvec3 uv3a[4]; }; in uint uiuin; diff --git a/deps/glslang/glslang/Test/spv.310.comp b/deps/glslang/glslang/Test/spv.310.comp index bd183e042b..53117dd977 100644 --- a/deps/glslang/glslang/Test/spv.310.comp +++ b/deps/glslang/glslang/Test/spv.310.comp @@ -24,6 +24,8 @@ buffer outs { vec4 va[]; } outnames; +#extension GL_EXT_device_group : enable + void main() { barrier(); @@ -34,4 +36,7 @@ void main() 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-new/Test/spv.450.geom b/deps/glslang/glslang/Test/spv.450.geom similarity index 100% rename from deps/glslang-new/Test/spv.450.geom rename to deps/glslang/glslang/Test/spv.450.geom diff --git a/deps/glslang-new/Test/spv.450.noRedecl.tesc b/deps/glslang/glslang/Test/spv.450.noRedecl.tesc similarity index 100% rename from deps/glslang-new/Test/spv.450.noRedecl.tesc rename to deps/glslang/glslang/Test/spv.450.noRedecl.tesc diff --git a/deps/glslang/glslang/Test/spv.450.tesc b/deps/glslang/glslang/Test/spv.450.tesc index c3719f96d1..47b9a40876 100644 --- a/deps/glslang/glslang/Test/spv.450.tesc +++ b/deps/glslang/glslang/Test/spv.450.tesc @@ -2,7 +2,7 @@ layout(vertices = 4) out; -patch out vec4 patchOut; +layout(location=1) patch out vec4 patchOut; struct S { float sMem1; // should not see a patch decoration @@ -17,6 +17,7 @@ layout(location = 12) patch out TheBlock { void main() { + gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; } layout(location = 2) patch out SingleBlock { diff --git a/deps/glslang-new/Test/spv.460.comp b/deps/glslang/glslang/Test/spv.460.comp similarity index 100% rename from deps/glslang-new/Test/spv.460.comp rename to deps/glslang/glslang/Test/spv.460.comp diff --git a/deps/glslang-new/Test/spv.460.frag b/deps/glslang/glslang/Test/spv.460.frag similarity index 100% rename from deps/glslang-new/Test/spv.460.frag rename to deps/glslang/glslang/Test/spv.460.frag diff --git a/deps/glslang-new/Test/spv.460.vert b/deps/glslang/glslang/Test/spv.460.vert similarity index 100% rename from deps/glslang-new/Test/spv.460.vert rename to deps/glslang/glslang/Test/spv.460.vert diff --git a/deps/glslang-new/Test/spv.GeometryShaderPassthrough.geom b/deps/glslang/glslang/Test/spv.GeometryShaderPassthrough.geom similarity index 100% rename from deps/glslang-new/Test/spv.GeometryShaderPassthrough.geom rename to deps/glslang/glslang/Test/spv.GeometryShaderPassthrough.geom diff --git a/deps/glslang-new/Test/spv.OVR_multiview.vert b/deps/glslang/glslang/Test/spv.OVR_multiview.vert similarity index 100% rename from deps/glslang-new/Test/spv.OVR_multiview.vert rename to deps/glslang/glslang/Test/spv.OVR_multiview.vert diff --git a/deps/glslang/glslang/Test/spv.Operations.frag b/deps/glslang/glslang/Test/spv.Operations.frag index 5c8c8af0e5..52f0a30fb4 100644 --- a/deps/glslang/glslang/Test/spv.Operations.frag +++ b/deps/glslang/glslang/Test/spv.Operations.frag @@ -135,4 +135,7 @@ void main() 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 index c7f805b577..3f4929b652 100644 --- a/deps/glslang/glslang/Test/spv.accessChain.frag +++ b/deps/glslang/glslang/Test/spv.accessChain.frag @@ -74,6 +74,11 @@ 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; @@ -91,4 +96,5 @@ void main() GetColor11(s, u); GetColor12(s, u); GetColor13(s, u); + GetColor14(s, u); } diff --git a/deps/glslang-new/Test/spv.arbPostDepthCoverage.frag b/deps/glslang/glslang/Test/spv.arbPostDepthCoverage.frag similarity index 100% rename from deps/glslang-new/Test/spv.arbPostDepthCoverage.frag rename to deps/glslang/glslang/Test/spv.arbPostDepthCoverage.frag diff --git a/deps/glslang-new/Test/spv.arbPostDepthCoverage_Error.frag b/deps/glslang/glslang/Test/spv.arbPostDepthCoverage_Error.frag similarity index 100% rename from deps/glslang-new/Test/spv.arbPostDepthCoverage_Error.frag rename to deps/glslang/glslang/Test/spv.arbPostDepthCoverage_Error.frag diff --git a/deps/glslang-new/Test/spv.atomicInt64.comp b/deps/glslang/glslang/Test/spv.atomicInt64.comp similarity index 100% rename from deps/glslang-new/Test/spv.atomicInt64.comp rename to deps/glslang/glslang/Test/spv.atomicInt64.comp diff --git a/deps/glslang-new/Test/spv.barrier.vert b/deps/glslang/glslang/Test/spv.barrier.vert similarity index 100% rename from deps/glslang-new/Test/spv.barrier.vert rename to deps/glslang/glslang/Test/spv.barrier.vert diff --git a/deps/glslang-new/Test/spv.builtInXFB.vert b/deps/glslang/glslang/Test/spv.builtInXFB.vert similarity index 100% rename from deps/glslang-new/Test/spv.builtInXFB.vert rename to deps/glslang/glslang/Test/spv.builtInXFB.vert diff --git a/deps/glslang-new/Test/spv.constStruct.vert b/deps/glslang/glslang/Test/spv.constStruct.vert similarity index 100% rename from deps/glslang-new/Test/spv.constStruct.vert rename to deps/glslang/glslang/Test/spv.constStruct.vert diff --git a/deps/glslang-new/Test/spv.controlFlowAttributes.frag b/deps/glslang/glslang/Test/spv.controlFlowAttributes.frag similarity index 100% rename from deps/glslang-new/Test/spv.controlFlowAttributes.frag rename to deps/glslang/glslang/Test/spv.controlFlowAttributes.frag diff --git a/deps/glslang-new/Test/spv.debugInfo.frag b/deps/glslang/glslang/Test/spv.debugInfo.frag similarity index 100% rename from deps/glslang-new/Test/spv.debugInfo.frag rename to deps/glslang/glslang/Test/spv.debugInfo.frag diff --git a/deps/glslang-new/Test/spv.deviceGroup.frag b/deps/glslang/glslang/Test/spv.deviceGroup.frag similarity index 100% rename from deps/glslang-new/Test/spv.deviceGroup.frag rename to deps/glslang/glslang/Test/spv.deviceGroup.frag diff --git a/deps/glslang-new/Test/spv.drawParams.vert b/deps/glslang/glslang/Test/spv.drawParams.vert similarity index 100% rename from deps/glslang-new/Test/spv.drawParams.vert rename to deps/glslang/glslang/Test/spv.drawParams.vert diff --git a/deps/glslang-new/Test/spv.explicittypes.frag b/deps/glslang/glslang/Test/spv.explicittypes.frag similarity index 100% rename from deps/glslang-new/Test/spv.explicittypes.frag rename to deps/glslang/glslang/Test/spv.explicittypes.frag diff --git a/deps/glslang-new/Test/spv.extPostDepthCoverage.frag b/deps/glslang/glslang/Test/spv.extPostDepthCoverage.frag similarity index 100% rename from deps/glslang-new/Test/spv.extPostDepthCoverage.frag rename to deps/glslang/glslang/Test/spv.extPostDepthCoverage.frag diff --git a/deps/glslang-new/Test/spv.extPostDepthCoverage_Error.frag b/deps/glslang/glslang/Test/spv.extPostDepthCoverage_Error.frag similarity index 100% rename from deps/glslang-new/Test/spv.extPostDepthCoverage_Error.frag rename to deps/glslang/glslang/Test/spv.extPostDepthCoverage_Error.frag diff --git a/deps/glslang-new/Test/spv.float16Fetch.frag b/deps/glslang/glslang/Test/spv.float16Fetch.frag similarity index 100% rename from deps/glslang-new/Test/spv.float16Fetch.frag rename to deps/glslang/glslang/Test/spv.float16Fetch.frag diff --git a/deps/glslang-new/Test/spv.float32.frag b/deps/glslang/glslang/Test/spv.float32.frag similarity index 100% rename from deps/glslang-new/Test/spv.float32.frag rename to deps/glslang/glslang/Test/spv.float32.frag diff --git a/deps/glslang-new/Test/spv.float64.frag b/deps/glslang/glslang/Test/spv.float64.frag similarity index 100% rename from deps/glslang-new/Test/spv.float64.frag rename to deps/glslang/glslang/Test/spv.float64.frag diff --git a/deps/glslang-new/Test/spv.fullyCovered.frag b/deps/glslang/glslang/Test/spv.fullyCovered.frag similarity index 100% rename from deps/glslang-new/Test/spv.fullyCovered.frag rename to deps/glslang/glslang/Test/spv.fullyCovered.frag diff --git a/deps/glslang-new/Test/spv.functionNestedOpaque.vert b/deps/glslang/glslang/Test/spv.functionNestedOpaque.vert similarity index 100% rename from deps/glslang-new/Test/spv.functionNestedOpaque.vert rename to deps/glslang/glslang/Test/spv.functionNestedOpaque.vert diff --git a/deps/glslang/glslang/Test/spv.glsl.register.noautoassign.frag b/deps/glslang/glslang/Test/spv.glsl.register.noautoassign.frag index f754d8aad9..c385fbb9a0 100644 --- a/deps/glslang/glslang/Test/spv.glsl.register.noautoassign.frag +++ b/deps/glslang/glslang/Test/spv.glsl.register.noautoassign.frag @@ -1,23 +1,23 @@ #version 450 uniform layout(binding=0) sampler g_sSamp1; -uniform sampler g_sSamp2; +uniform layout(binding=1) sampler g_sSamp2; uniform layout(binding=2) sampler g_sSamp3[2]; -uniform sampler g_sSamp4[3]; -uniform sampler g_sSamp5; +uniform layout(binding=3) sampler g_sSamp4[3]; +uniform layout(binding=4) sampler g_sSamp5; -uniform sampler g_sSamp_unused1; -uniform sampler g_sSamp_unused2; +uniform layout(binding=5) sampler g_sSamp_unused1; +uniform layout(binding=6) 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=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=0) texture1D g_tTex_unused1; -uniform layout(binding=2) texture1D g_tTex_unused2; -uniform texture1D g_tTex_unused3; +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; diff --git a/deps/glslang-new/Test/spv.hlslDebugInfo.vert b/deps/glslang/glslang/Test/spv.hlslDebugInfo.vert similarity index 100% rename from deps/glslang-new/Test/spv.hlslDebugInfo.vert rename to deps/glslang/glslang/Test/spv.hlslDebugInfo.vert diff --git a/deps/glslang-new/Test/spv.hlslOffsets.vert b/deps/glslang/glslang/Test/spv.hlslOffsets.vert similarity index 100% rename from deps/glslang-new/Test/spv.hlslOffsets.vert rename to deps/glslang/glslang/Test/spv.hlslOffsets.vert diff --git a/deps/glslang-new/Test/spv.image.load-formatted.frag b/deps/glslang/glslang/Test/spv.image.load-formatted.frag similarity index 100% rename from deps/glslang-new/Test/spv.image.load-formatted.frag rename to deps/glslang/glslang/Test/spv.image.load-formatted.frag diff --git a/deps/glslang-new/Test/spv.imageLoadStoreLod.frag b/deps/glslang/glslang/Test/spv.imageLoadStoreLod.frag similarity index 100% rename from deps/glslang-new/Test/spv.imageLoadStoreLod.frag rename to deps/glslang/glslang/Test/spv.imageLoadStoreLod.frag diff --git a/deps/glslang-new/Test/spv.int16.amd.frag b/deps/glslang/glslang/Test/spv.int16.amd.frag similarity index 100% rename from deps/glslang-new/Test/spv.int16.amd.frag rename to deps/glslang/glslang/Test/spv.int16.amd.frag diff --git a/deps/glslang-new/Test/spv.int16.frag b/deps/glslang/glslang/Test/spv.int16.frag similarity index 100% rename from deps/glslang-new/Test/spv.int16.frag rename to deps/glslang/glslang/Test/spv.int16.frag diff --git a/deps/glslang-new/Test/spv.int32.frag b/deps/glslang/glslang/Test/spv.int32.frag similarity index 100% rename from deps/glslang-new/Test/spv.int32.frag rename to deps/glslang/glslang/Test/spv.int32.frag diff --git a/deps/glslang/glslang/Test/spv.int64.frag b/deps/glslang/glslang/Test/spv.int64.frag index 8021b7e90f..8fda12b3aa 100644 --- a/deps/glslang/glslang/Test/spv.int64.frag +++ b/deps/glslang/glslang/Test/spv.int64.frag @@ -1,6 +1,7 @@ #version 450 #extension GL_ARB_gpu_shader_int64: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require layout(binding = 0) uniform Uniforms { @@ -115,6 +116,8 @@ void operators() i64 = i64 % i; // Shift + u64v = u64v << i; + i64 = i64 >> uv.y; u64v <<= i; i64 >>= uv.y; diff --git a/deps/glslang-new/Test/spv.int8.frag b/deps/glslang/glslang/Test/spv.int8.frag similarity index 100% rename from deps/glslang-new/Test/spv.int8.frag rename to deps/glslang/glslang/Test/spv.int8.frag diff --git a/deps/glslang-new/Test/spv.looseUniformNoLoc.vert b/deps/glslang/glslang/Test/spv.looseUniformNoLoc.vert similarity index 100% rename from deps/glslang-new/Test/spv.looseUniformNoLoc.vert rename to deps/glslang/glslang/Test/spv.looseUniformNoLoc.vert diff --git a/deps/glslang/glslang/Test/spv.matrix.frag b/deps/glslang/glslang/Test/spv.matrix.frag index 10a52566f9..3157173788 100644 --- a/deps/glslang/glslang/Test/spv.matrix.frag +++ b/deps/glslang/glslang/Test/spv.matrix.frag @@ -43,4 +43,7 @@ void main() 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-new/Test/spv.multiView.frag b/deps/glslang/glslang/Test/spv.multiView.frag similarity index 100% rename from deps/glslang-new/Test/spv.multiView.frag rename to deps/glslang/glslang/Test/spv.multiView.frag diff --git a/deps/glslang-new/Test/spv.multiviewPerViewAttributes.tesc b/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.tesc similarity index 100% rename from deps/glslang-new/Test/spv.multiviewPerViewAttributes.tesc rename to deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.tesc diff --git a/deps/glslang-new/Test/spv.multiviewPerViewAttributes.vert b/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.vert similarity index 100% rename from deps/glslang-new/Test/spv.multiviewPerViewAttributes.vert rename to deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.vert diff --git a/deps/glslang-new/Test/spv.noBuiltInLoc.vert b/deps/glslang/glslang/Test/spv.noBuiltInLoc.vert similarity index 100% rename from deps/glslang-new/Test/spv.noBuiltInLoc.vert rename to deps/glslang/glslang/Test/spv.noBuiltInLoc.vert diff --git a/deps/glslang-new/Test/spv.noLocation.vert b/deps/glslang/glslang/Test/spv.noLocation.vert similarity index 100% rename from deps/glslang-new/Test/spv.noLocation.vert rename to deps/glslang/glslang/Test/spv.noLocation.vert diff --git a/deps/glslang-new/Test/spv.nonuniform.frag b/deps/glslang/glslang/Test/spv.nonuniform.frag similarity index 100% rename from deps/glslang-new/Test/spv.nonuniform.frag rename to deps/glslang/glslang/Test/spv.nonuniform.frag diff --git a/deps/glslang-new/Test/spv.paramMemory.frag b/deps/glslang/glslang/Test/spv.paramMemory.frag similarity index 100% rename from deps/glslang-new/Test/spv.paramMemory.frag rename to deps/glslang/glslang/Test/spv.paramMemory.frag diff --git a/deps/glslang-new/Test/spv.precisionNonESSamp.frag b/deps/glslang/glslang/Test/spv.precisionNonESSamp.frag similarity index 100% rename from deps/glslang-new/Test/spv.precisionNonESSamp.frag rename to deps/glslang/glslang/Test/spv.precisionNonESSamp.frag diff --git a/deps/glslang-new/Test/spv.pushConstantAnon.vert b/deps/glslang/glslang/Test/spv.pushConstantAnon.vert similarity index 100% rename from deps/glslang-new/Test/spv.pushConstantAnon.vert rename to deps/glslang/glslang/Test/spv.pushConstantAnon.vert diff --git a/deps/glslang-new/Test/spv.rankShift.comp b/deps/glslang/glslang/Test/spv.rankShift.comp similarity index 100% rename from deps/glslang-new/Test/spv.rankShift.comp rename to deps/glslang/glslang/Test/spv.rankShift.comp diff --git a/deps/glslang-new/Test/spv.register.subpass.frag b/deps/glslang/glslang/Test/spv.register.subpass.frag similarity index 100% rename from deps/glslang-new/Test/spv.register.subpass.frag rename to deps/glslang/glslang/Test/spv.register.subpass.frag diff --git a/deps/glslang-new/Test/spv.sample.frag b/deps/glslang/glslang/Test/spv.sample.frag similarity index 100% rename from deps/glslang-new/Test/spv.sample.frag rename to deps/glslang/glslang/Test/spv.sample.frag diff --git a/deps/glslang-new/Test/spv.sampleId.frag b/deps/glslang/glslang/Test/spv.sampleId.frag similarity index 100% rename from deps/glslang-new/Test/spv.sampleId.frag rename to deps/glslang/glslang/Test/spv.sampleId.frag diff --git a/deps/glslang-new/Test/spv.sampleMaskOverrideCoverage.frag b/deps/glslang/glslang/Test/spv.sampleMaskOverrideCoverage.frag similarity index 100% rename from deps/glslang-new/Test/spv.sampleMaskOverrideCoverage.frag rename to deps/glslang/glslang/Test/spv.sampleMaskOverrideCoverage.frag diff --git a/deps/glslang-new/Test/spv.samplePosition.frag b/deps/glslang/glslang/Test/spv.samplePosition.frag similarity index 100% rename from deps/glslang-new/Test/spv.samplePosition.frag rename to deps/glslang/glslang/Test/spv.samplePosition.frag diff --git a/deps/glslang-new/Test/spv.shaderBallotAMD.comp b/deps/glslang/glslang/Test/spv.shaderBallotAMD.comp similarity index 100% rename from deps/glslang-new/Test/spv.shaderBallotAMD.comp rename to deps/glslang/glslang/Test/spv.shaderBallotAMD.comp diff --git a/deps/glslang-new/Test/spv.shaderFragMaskAMD.frag b/deps/glslang/glslang/Test/spv.shaderFragMaskAMD.frag similarity index 100% rename from deps/glslang-new/Test/spv.shaderFragMaskAMD.frag rename to deps/glslang/glslang/Test/spv.shaderFragMaskAMD.frag diff --git a/deps/glslang-new/Test/spv.shaderStencilExport.frag b/deps/glslang/glslang/Test/spv.shaderStencilExport.frag similarity index 100% rename from deps/glslang-new/Test/spv.shaderStencilExport.frag rename to deps/glslang/glslang/Test/spv.shaderStencilExport.frag diff --git a/deps/glslang/glslang/Test/spv.specConstantOperations.vert b/deps/glslang/glslang/Test/spv.specConstantOperations.vert index f67561c3a8..93be12c589 100644 --- a/deps/glslang/glslang/Test/spv.specConstantOperations.vert +++ b/deps/glslang/glslang/Test/spv.specConstantOperations.vert @@ -110,5 +110,15 @@ int non_const_array_size_from_spec_const() { return array[sp_int + 1]; } -void main() {} +// 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-new/Test/spv.ssbo.autoassign.frag b/deps/glslang/glslang/Test/spv.ssbo.autoassign.frag similarity index 100% rename from deps/glslang-new/Test/spv.ssbo.autoassign.frag rename to deps/glslang/glslang/Test/spv.ssbo.autoassign.frag diff --git a/deps/glslang-new/Test/spv.ssboAlias.frag b/deps/glslang/glslang/Test/spv.ssboAlias.frag similarity index 100% rename from deps/glslang-new/Test/spv.ssboAlias.frag rename to deps/glslang/glslang/Test/spv.ssboAlias.frag diff --git a/deps/glslang-new/Test/spv.stereoViewRendering.tesc b/deps/glslang/glslang/Test/spv.stereoViewRendering.tesc similarity index 100% rename from deps/glslang-new/Test/spv.stereoViewRendering.tesc rename to deps/glslang/glslang/Test/spv.stereoViewRendering.tesc diff --git a/deps/glslang-new/Test/spv.stereoViewRendering.vert b/deps/glslang/glslang/Test/spv.stereoViewRendering.vert similarity index 100% rename from deps/glslang-new/Test/spv.stereoViewRendering.vert rename to deps/glslang/glslang/Test/spv.stereoViewRendering.vert diff --git a/deps/glslang-new/Test/spv.storageBuffer.vert b/deps/glslang/glslang/Test/spv.storageBuffer.vert similarity index 100% rename from deps/glslang-new/Test/spv.storageBuffer.vert rename to deps/glslang/glslang/Test/spv.storageBuffer.vert diff --git a/deps/glslang-new/Test/spv.subgroup.frag b/deps/glslang/glslang/Test/spv.subgroup.frag similarity index 100% rename from deps/glslang-new/Test/spv.subgroup.frag rename to deps/glslang/glslang/Test/spv.subgroup.frag diff --git a/deps/glslang-new/Test/spv.subgroup.geom b/deps/glslang/glslang/Test/spv.subgroup.geom similarity index 100% rename from deps/glslang-new/Test/spv.subgroup.geom rename to deps/glslang/glslang/Test/spv.subgroup.geom diff --git a/deps/glslang-new/Test/spv.subgroup.tesc b/deps/glslang/glslang/Test/spv.subgroup.tesc similarity index 100% rename from deps/glslang-new/Test/spv.subgroup.tesc rename to deps/glslang/glslang/Test/spv.subgroup.tesc diff --git a/deps/glslang-new/Test/spv.subgroup.tese b/deps/glslang/glslang/Test/spv.subgroup.tese similarity index 100% rename from deps/glslang-new/Test/spv.subgroup.tese rename to deps/glslang/glslang/Test/spv.subgroup.tese diff --git a/deps/glslang-new/Test/spv.subgroup.vert b/deps/glslang/glslang/Test/spv.subgroup.vert similarity index 100% rename from deps/glslang-new/Test/spv.subgroup.vert rename to deps/glslang/glslang/Test/spv.subgroup.vert diff --git a/deps/glslang-new/Test/spv.subgroupArithmetic.comp b/deps/glslang/glslang/Test/spv.subgroupArithmetic.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupArithmetic.comp rename to deps/glslang/glslang/Test/spv.subgroupArithmetic.comp diff --git a/deps/glslang-new/Test/spv.subgroupBallot.comp b/deps/glslang/glslang/Test/spv.subgroupBallot.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupBallot.comp rename to deps/glslang/glslang/Test/spv.subgroupBallot.comp diff --git a/deps/glslang-new/Test/spv.subgroupBasic.comp b/deps/glslang/glslang/Test/spv.subgroupBasic.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupBasic.comp rename to deps/glslang/glslang/Test/spv.subgroupBasic.comp diff --git a/deps/glslang-new/Test/spv.subgroupClustered.comp b/deps/glslang/glslang/Test/spv.subgroupClustered.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupClustered.comp rename to deps/glslang/glslang/Test/spv.subgroupClustered.comp diff --git a/deps/glslang-new/Test/spv.subgroupClusteredNeg.comp b/deps/glslang/glslang/Test/spv.subgroupClusteredNeg.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupClusteredNeg.comp rename to deps/glslang/glslang/Test/spv.subgroupClusteredNeg.comp diff --git a/deps/glslang-new/Test/spv.subgroupPartitioned.comp b/deps/glslang/glslang/Test/spv.subgroupPartitioned.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupPartitioned.comp rename to deps/glslang/glslang/Test/spv.subgroupPartitioned.comp diff --git a/deps/glslang-new/Test/spv.subgroupQuad.comp b/deps/glslang/glslang/Test/spv.subgroupQuad.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupQuad.comp rename to deps/glslang/glslang/Test/spv.subgroupQuad.comp diff --git a/deps/glslang-new/Test/spv.subgroupShuffle.comp b/deps/glslang/glslang/Test/spv.subgroupShuffle.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupShuffle.comp rename to deps/glslang/glslang/Test/spv.subgroupShuffle.comp diff --git a/deps/glslang-new/Test/spv.subgroupShuffleRelative.comp b/deps/glslang/glslang/Test/spv.subgroupShuffleRelative.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupShuffleRelative.comp rename to deps/glslang/glslang/Test/spv.subgroupShuffleRelative.comp diff --git a/deps/glslang-new/Test/spv.subgroupVote.comp b/deps/glslang/glslang/Test/spv.subgroupVote.comp similarity index 100% rename from deps/glslang-new/Test/spv.subgroupVote.comp rename to deps/glslang/glslang/Test/spv.subgroupVote.comp diff --git a/deps/glslang-new/Test/spv.targetOpenGL.vert b/deps/glslang/glslang/Test/spv.targetOpenGL.vert similarity index 100% rename from deps/glslang-new/Test/spv.targetOpenGL.vert rename to deps/glslang/glslang/Test/spv.targetOpenGL.vert diff --git a/deps/glslang-new/Test/spv.targetVulkan.vert b/deps/glslang/glslang/Test/spv.targetVulkan.vert similarity index 100% rename from deps/glslang-new/Test/spv.targetVulkan.vert rename to deps/glslang/glslang/Test/spv.targetVulkan.vert diff --git a/deps/glslang-new/Test/spv.texture.sampler.transform.frag b/deps/glslang/glslang/Test/spv.texture.sampler.transform.frag similarity index 100% rename from deps/glslang-new/Test/spv.texture.sampler.transform.frag rename to deps/glslang/glslang/Test/spv.texture.sampler.transform.frag diff --git a/deps/glslang-new/Test/spv.textureBuffer.vert b/deps/glslang/glslang/Test/spv.textureBuffer.vert similarity index 100% rename from deps/glslang-new/Test/spv.textureBuffer.vert rename to deps/glslang/glslang/Test/spv.textureBuffer.vert diff --git a/deps/glslang-new/Test/spv.textureGatherBiasLod.frag b/deps/glslang/glslang/Test/spv.textureGatherBiasLod.frag similarity index 100% rename from deps/glslang-new/Test/spv.textureGatherBiasLod.frag rename to deps/glslang/glslang/Test/spv.textureGatherBiasLod.frag diff --git a/deps/glslang-new/Test/spv.vecMatConstruct.frag b/deps/glslang/glslang/Test/spv.vecMatConstruct.frag similarity index 100% rename from deps/glslang-new/Test/spv.vecMatConstruct.frag rename to deps/glslang/glslang/Test/spv.vecMatConstruct.frag diff --git a/deps/glslang-new/Test/spv.viewportArray2.tesc b/deps/glslang/glslang/Test/spv.viewportArray2.tesc similarity index 100% rename from deps/glslang-new/Test/spv.viewportArray2.tesc rename to deps/glslang/glslang/Test/spv.viewportArray2.tesc diff --git a/deps/glslang-new/Test/spv.viewportArray2.vert b/deps/glslang/glslang/Test/spv.viewportArray2.vert similarity index 100% rename from deps/glslang-new/Test/spv.viewportArray2.vert rename to deps/glslang/glslang/Test/spv.viewportArray2.vert diff --git a/deps/glslang-new/Test/spv.vulkan100.subgroupArithmetic.comp b/deps/glslang/glslang/Test/spv.vulkan100.subgroupArithmetic.comp similarity index 100% rename from deps/glslang-new/Test/spv.vulkan100.subgroupArithmetic.comp rename to deps/glslang/glslang/Test/spv.vulkan100.subgroupArithmetic.comp diff --git a/deps/glslang-new/Test/spv.vulkan100.subgroupPartitioned.comp b/deps/glslang/glslang/Test/spv.vulkan100.subgroupPartitioned.comp similarity index 100% rename from deps/glslang-new/Test/spv.vulkan100.subgroupPartitioned.comp rename to deps/glslang/glslang/Test/spv.vulkan100.subgroupPartitioned.comp diff --git a/deps/glslang-new/Test/spv.vulkan110.int16.frag b/deps/glslang/glslang/Test/spv.vulkan110.int16.frag similarity index 100% rename from deps/glslang-new/Test/spv.vulkan110.int16.frag rename to deps/glslang/glslang/Test/spv.vulkan110.int16.frag diff --git a/deps/glslang-new/Test/spv.vulkan110.storageBuffer.vert b/deps/glslang/glslang/Test/spv.vulkan110.storageBuffer.vert similarity index 100% rename from deps/glslang-new/Test/spv.vulkan110.storageBuffer.vert rename to deps/glslang/glslang/Test/spv.vulkan110.storageBuffer.vert diff --git a/deps/glslang-new/Test/spv.xfb.vert b/deps/glslang/glslang/Test/spv.xfb.vert similarity index 100% rename from deps/glslang-new/Test/spv.xfb.vert rename to deps/glslang/glslang/Test/spv.xfb.vert diff --git a/deps/glslang-new/Test/spv.xfb2.vert b/deps/glslang/glslang/Test/spv.xfb2.vert similarity index 100% rename from deps/glslang-new/Test/spv.xfb2.vert rename to deps/glslang/glslang/Test/spv.xfb2.vert diff --git a/deps/glslang-new/Test/spv.xfb3.vert b/deps/glslang/glslang/Test/spv.xfb3.vert similarity index 100% rename from deps/glslang-new/Test/spv.xfb3.vert rename to deps/glslang/glslang/Test/spv.xfb3.vert diff --git a/deps/glslang-new/Test/stringToDouble.vert b/deps/glslang/glslang/Test/stringToDouble.vert similarity index 100% rename from deps/glslang-new/Test/stringToDouble.vert rename to deps/glslang/glslang/Test/stringToDouble.vert diff --git a/deps/glslang/glslang/Test/tokenLength.vert b/deps/glslang/glslang/Test/tokenLength.vert old mode 100644 new mode 100755 index 691b104234..21d446fae4 --- a/deps/glslang/glslang/Test/tokenLength.vert +++ b/deps/glslang/glslang/Test/tokenLength.vert @@ -1,5 +1,5 @@ #version 300 es - +//#pragma glslang_binary_double_output // 1023 characters in float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; diff --git a/deps/glslang-new/Test/tokenPaste.vert b/deps/glslang/glslang/Test/tokenPaste.vert similarity index 100% rename from deps/glslang-new/Test/tokenPaste.vert rename to deps/glslang/glslang/Test/tokenPaste.vert diff --git a/deps/glslang-new/Test/validate-shaders.sh b/deps/glslang/glslang/Test/validate-shaders.sh similarity index 100% rename from deps/glslang-new/Test/validate-shaders.sh rename to deps/glslang/glslang/Test/validate-shaders.sh diff --git a/deps/glslang/glslang/Test/vulkan.frag b/deps/glslang/glslang/Test/vulkan.frag index fd9106cda3..74a5aa1af1 100644 --- a/deps/glslang/glslang/Test/vulkan.frag +++ b/deps/glslang/glslang/Test/vulkan.frag @@ -1,9 +1,9 @@ #version 450 -uniform sampler s; -uniform sampler sA[4]; -uniform texture2D t2d; -uniform texture3D t3d[4]; +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]; @@ -28,7 +28,7 @@ void badConst() sampler2D s2D = sampler2D(t2d, s); // ERROR, no sampler constructor sampler3D s3d[4] = sampler3D[4](t3d, sA[2]); // ERROR, no sampler constructor -out vec4 color; +out vec4 color; // ERROR, no location void main() { @@ -43,10 +43,10 @@ layout(push_constant) buffer pcb { // ERROR, not on a buffer 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; -}; // ERROR, no instance name +}; // 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 @@ -92,4 +92,14 @@ void callUserTexture() 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 index b234c75bb4..a6af2d57da 100644 --- a/deps/glslang/glslang/Test/vulkan.vert +++ b/deps/glslang/glslang/Test/vulkan.vert @@ -45,3 +45,21 @@ layout(set = 1, push_constant) uniform badpc { int a; } badpcI; // ERROR, no de #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/glslang/CMakeLists.txt b/deps/glslang/glslang/glslang/CMakeLists.txt old mode 100644 new mode 100755 index 95d4bdd8fc..1efde2edd4 --- a/deps/glslang/glslang/glslang/CMakeLists.txt +++ b/deps/glslang/glslang/glslang/CMakeLists.txt @@ -9,6 +9,7 @@ endif(WIN32) set(SOURCES MachineIndependent/glslang.y MachineIndependent/glslang_tab.cpp + MachineIndependent/attribute.cpp MachineIndependent/Constant.cpp MachineIndependent/iomapper.cpp MachineIndependent/InfoSink.cpp @@ -31,9 +32,7 @@ set(SOURCES MachineIndependent/preprocessor/Pp.cpp MachineIndependent/preprocessor/PpAtom.cpp MachineIndependent/preprocessor/PpContext.cpp - MachineIndependent/preprocessor/PpMemory.cpp MachineIndependent/preprocessor/PpScanner.cpp - MachineIndependent/preprocessor/PpSymbols.cpp MachineIndependent/preprocessor/PpTokens.cpp MachineIndependent/propagateNoContraction.cpp GenericCodeGen/CodeGen.cpp @@ -53,6 +52,7 @@ set(HEADERS Include/revision.h Include/ShHandle.h Include/Types.h + MachineIndependent/attribute.h MachineIndependent/glslang_tab.cpp.h MachineIndependent/gl_types.h MachineIndependent/Initialize.h @@ -80,8 +80,19 @@ set(HEADERS # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) # set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp) -add_library(glslang STATIC ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) +add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) set_property(TARGET glslang PROPERTY FOLDER glslang) +set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON) +target_link_libraries(glslang OGLCompiler OSDependent) +target_include_directories(glslang PUBLIC ..) + +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/*") @@ -91,5 +102,20 @@ if(WIN32) source_group("MachineIndependent\\Preprocessor" REGULAR_EXPRESSION "MachineIndependent/preprocessor/*") endif(WIN32) -install(TARGETS glslang - ARCHIVE DESTINATION lib) +if(ENABLE_GLSLANG_INSTALL) + if(BUILD_SHARED_LIBS) + install(TARGETS glslang + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + else() + install(TARGETS glslang + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() +endif(ENABLE_GLSLANG_INSTALL) + +if(ENABLE_GLSLANG_INSTALL) + foreach(file ${HEADERS}) + get_filename_component(dir ${file} DIRECTORY) + install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir}) + endforeach() +endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/glslang/glslang/GenericCodeGen/CodeGen.cpp b/deps/glslang/glslang/glslang/GenericCodeGen/CodeGen.cpp index dc78342ac9..b3c7226dfa 100644 --- a/deps/glslang/glslang/glslang/GenericCodeGen/CodeGen.cpp +++ b/deps/glslang/glslang/glslang/GenericCodeGen/CodeGen.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // #include "../Include/Common.h" diff --git a/deps/glslang/glslang/glslang/GenericCodeGen/Link.cpp b/deps/glslang/glslang/glslang/GenericCodeGen/Link.cpp index 8da88bda79..c38db0f69f 100644 --- a/deps/glslang/glslang/glslang/GenericCodeGen/Link.cpp +++ b/deps/glslang/glslang/glslang/GenericCodeGen/Link.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // diff --git a/deps/glslang/glslang/glslang/Include/BaseTypes.h b/deps/glslang/glslang/glslang/Include/BaseTypes.h index 38719306d0..46fe159b49 100644 --- a/deps/glslang/glslang/glslang/Include/BaseTypes.h +++ b/deps/glslang/glslang/glslang/Include/BaseTypes.h @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _BASICTYPES_INCLUDED_ @@ -46,9 +47,11 @@ enum TBasicType { EbtVoid, EbtFloat, EbtDouble, -#ifdef AMD_EXTENSIONS EbtFloat16, -#endif + EbtInt8, + EbtUint8, + EbtInt16, + EbtUint16, EbtInt, EbtUint, EbtInt64, @@ -137,6 +140,8 @@ enum TBuiltInVariable { EbvLocalInvocationId, EbvGlobalInvocationId, EbvLocalInvocationIndex, + EbvNumSubgroups, + EbvSubgroupID, EbvSubGroupSize, EbvSubGroupInvocation, EbvSubGroupEqMask, @@ -144,6 +149,13 @@ enum TBuiltInVariable { EbvSubGroupGtMask, EbvSubGroupLeMask, EbvSubGroupLtMask, + EbvSubgroupSize2, + EbvSubgroupInvocation2, + EbvSubgroupEqMask2, + EbvSubgroupGeMask2, + EbvSubgroupGtMask2, + EbvSubgroupLeMask2, + EbvSubgroupLtMask2, EbvVertexId, EbvInstanceId, EbvVertexIndex, @@ -189,10 +201,12 @@ enum TBuiltInVariable { EbvFragColor, EbvFragData, EbvFragDepth, + EbvFragStencilRef, EbvSampleId, EbvSamplePosition, EbvSampleMask, EbvHelperInvocation, + #ifdef AMD_EXTENSIONS EbvBaryCoordNoPersp, EbvBaryCoordNoPerspCentroid, @@ -203,10 +217,32 @@ enum TBuiltInVariable { EbvBaryCoordPullModel, #endif + EbvViewIndex, + EbvDeviceIndex, + +#ifdef NV_EXTENSIONS + EbvViewportMaskNV, + EbvSecondaryPositionNV, + EbvSecondaryViewportMaskNV, + EbvPositionPerViewNV, + EbvViewportMaskPerViewNV, + EbvFragFullyCoveredNV, +#endif + // HLSL built-ins that live only temporarily, until they get remapped // to one of the above. EbvFragDepthGreater, EbvFragDepthLesser, + EbvGsOutputStream, + EbvOutputPatch, + EbvInputPatch, + + // structbuffer types + EbvAppendConsume, // no need to differentiate append and consume + EbvRWStructuredBuffer, + EbvStructuredBuffer, + EbvByteAddressBuffer, + EbvRWByteAddressBuffer, EbvLast }; @@ -303,10 +339,12 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v) case EbvFragColor: return "FragColor"; case EbvFragData: return "FragData"; case EbvFragDepth: return "FragDepth"; + case EbvFragStencilRef: return "FragStencilRef"; case EbvSampleId: return "SampleId"; case EbvSamplePosition: return "SamplePosition"; case EbvSampleMask: return "SampleMaskIn"; case EbvHelperInvocation: return "HelperInvocation"; + #ifdef AMD_EXTENSIONS case EbvBaryCoordNoPersp: return "BaryCoordNoPersp"; case EbvBaryCoordNoPerspCentroid: return "BaryCoordNoPerspCentroid"; @@ -316,6 +354,18 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v) case EbvBaryCoordSmoothSample: return "BaryCoordSmoothSample"; case EbvBaryCoordPullModel: return "BaryCoordPullModel"; #endif + + case EbvViewIndex: return "ViewIndex"; + case EbvDeviceIndex: return "DeviceIndex"; + +#ifdef NV_EXTENSIONS + case EbvViewportMaskNV: return "ViewportMaskNV"; + case EbvSecondaryPositionNV: return "SecondaryPositionNV"; + case EbvSecondaryViewportMaskNV: return "SecondaryViewportMaskNV"; + case EbvPositionPerViewNV: return "PositionPerViewNV"; + case EbvViewportMaskPerViewNV: return "ViewportMaskPerViewNV"; + case EbvFragFullyCoveredNV: return "FragFullyCoveredNV"; +#endif default: return "unknown built-in variable"; } } @@ -331,7 +381,7 @@ enum TPrecisionQualifier { __inline const char* GetPrecisionQualifierString(TPrecisionQualifier p) { - switch(p) { + switch (p) { case EpqNone: return ""; break; case EpqLow: return "lowp"; break; case EpqMedium: return "mediump"; break; @@ -340,6 +390,75 @@ __inline const char* GetPrecisionQualifierString(TPrecisionQualifier p) } } +__inline bool isTypeSignedInt(TBasicType type) +{ + switch (type) { + case EbtInt8: + case EbtInt16: + case EbtInt: + case EbtInt64: + return true; + default: + return false; + } +} + +__inline bool isTypeUnsignedInt(TBasicType type) +{ + switch (type) { + case EbtUint8: + case EbtUint16: + case EbtUint: + case EbtUint64: + return true; + default: + return false; + } +} + +__inline bool isTypeInt(TBasicType type) +{ + return isTypeSignedInt(type) || isTypeUnsignedInt(type); +} + +__inline bool isTypeFloat(TBasicType type) +{ + switch (type) { + case EbtFloat: + case EbtDouble: + case EbtFloat16: + return true; + default: + return false; + } +} + +__inline int getTypeRank(TBasicType type) { + int res = -1; + switch(type) { + case EbtInt8: + case EbtUint8: + res = 0; + break; + case EbtInt16: + case EbtUint16: + res = 1; + break; + case EbtInt: + case EbtUint: + res = 2; + break; + case EbtInt64: + case EbtUint64: + res = 3; + break; + default: + assert(false); + break; + } + return res; +} + } // end namespace glslang #endif // _BASICTYPES_INCLUDED_ diff --git a/deps/glslang/glslang/glslang/Include/Common.h b/deps/glslang/glslang/glslang/Include/Common.h index e0af6b1ff1..35eaa31048 100644 --- a/deps/glslang/glslang/glslang/Include/Common.h +++ b/deps/glslang/glslang/glslang/Include/Common.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,26 +20,23 @@ // 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 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 _COMMON_INCLUDED_ #define _COMMON_INCLUDED_ - #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) - #include - #define UINT_PTR uintptr_t #if defined(__ANDROID__) || _MSC_VER < 1700 #include @@ -53,19 +50,40 @@ std::string to_string(const T& val) { } #endif -#if defined(_MSC_VER) && _MSC_VER < 1700 -inline long long int strtoll (const char* str, char** endptr, int base) -{ - return _strtoi64(str, endptr, base); -} -inline unsigned long long int strtoull (const char* str, char** endptr, int base) -{ - return _strtoui64(str, endptr, base); -} -inline long long int atoll (const char* str) -{ - return strtoll(str, NULL, 10); -} +#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) || defined MINGW_HAS_SECURE_API + #include + #ifndef snprintf + #define snprintf sprintf_s + #endif + #define safe_vsprintf(buf,max,format,args) vsnprintf_s((buf), (max), (max), (format), (args)) +#elif defined (solaris) + #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) + #include + #define UINT_PTR uintptr_t +#else + #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) + #include + #define UINT_PTR uintptr_t +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1800 + #include + inline long long int strtoll (const char* str, char** endptr, int base) + { + return _strtoi64(str, endptr, base); + } + inline unsigned long long int strtoull (const char* str, char** endptr, int base) + { + return _strtoui64(str, endptr, base); + } + inline long long int atoll (const char* str) + { + return strtoll(str, NULL, 10); + } +#endif + +#if defined(_MSC_VER) +#define strdup _strdup #endif /* windows only pragma */ @@ -141,7 +159,7 @@ inline TString* NewPoolTString(const char* s) return new(memory) TString(s); } -template inline T* NewPoolObject(T) +template inline T* NewPoolObject(T*) { return new(GetThreadPoolAllocator().allocate(sizeof(T))) T; } @@ -191,6 +209,14 @@ template T Max(const T a, const T b) { return a > b ? a : b; } // // Create a TString object from an integer. // +#if defined _MSC_VER || defined MINGW_HAS_SECURE_API +inline const TString String(const int i, const int base = 10) +{ + char text[16]; // 32 bit ints are at most 10 digits in base 10 + _itoa_s(i, text, sizeof(text), base); + return text; +} +#else inline const TString String(const int i, const int /*base*/ = 10) { char text[16]; // 32 bit ints are at most 10 digits in base 10 @@ -200,9 +226,11 @@ inline const TString String(const int i, const int /*base*/ = 10) return text; } +#endif struct TSourceLoc { void init() { name = nullptr; string = 0; line = 0; column = 0; } + void init(int stringNum) { init(); string = stringNum; } // Returns the name if it exists. Otherwise, returns the string number. std::string getStringNameOrNum(bool quoteStringName = true) const { @@ -216,7 +244,10 @@ struct TSourceLoc { int column; }; -typedef TMap TPragmaTable; +class TPragmaTable : public TMap { +public: + POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) +}; const int MaxTokenLength = 1024; diff --git a/deps/glslang/glslang/glslang/Include/ConstantUnion.h b/deps/glslang/glslang/glslang/Include/ConstantUnion.h index 18756f5ce0..3e93340151 100644 --- a/deps/glslang/glslang/glslang/Include/ConstantUnion.h +++ b/deps/glslang/glslang/glslang/Include/ConstantUnion.h @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,23 +21,26 @@ // 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 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 _CONSTANT_UNION_INCLUDED_ #define _CONSTANT_UNION_INCLUDED_ +#include "../Include/Common.h" +#include "../Include/BaseTypes.h" + namespace glslang { class TConstUnion { @@ -45,6 +49,30 @@ public: TConstUnion() : iConst(0), type(EbtInt) { } + void setI8Const(signed char i) + { + i8Const = i; + type = EbtInt8; + } + + void setU8Const(unsigned char u) + { + u8Const = u; + type = EbtUint8; + } + + void setI16Const(signed short i) + { + i16Const = i; + type = EbtInt16; + } + + void setU16Const(unsigned short u) + { + u16Const = u; + type = EbtUint16; + } + void setIConst(int i) { iConst = i; @@ -81,12 +109,55 @@ public: type = EbtBool; } + void setSConst(const TString* s) + { + sConst = s; + type = EbtString; + } + + signed char getI8Const() const { return i8Const; } + unsigned char getU8Const() const { return u8Const; } + signed short getI16Const() const { return i16Const; } + unsigned short getU16Const() const { return u16Const; } int getIConst() const { return iConst; } unsigned int getUConst() const { return uConst; } long long getI64Const() const { return i64Const; } unsigned long long getU64Const() const { return u64Const; } double getDConst() const { return dConst; } bool getBConst() const { return bConst; } + const TString* getSConst() const { return sConst; } + + bool operator==(const signed char i) const + { + if (i == i8Const) + return true; + + return false; + } + + bool operator==(const unsigned char u) const + { + if (u == u8Const) + return true; + + return false; + } + + bool operator==(const signed short i) const + { + if (i == i16Const) + return true; + + return false; + } + + bool operator==(const unsigned short u) const + { + if (u == u16Const) + return true; + + return false; + } bool operator==(const int i) const { @@ -142,6 +213,26 @@ public: return false; switch (type) { + case EbtInt16: + if (constant.i16Const == i16Const) + return true; + + break; + case EbtUint16: + if (constant.u16Const == u16Const) + return true; + + break; + case EbtInt8: + if (constant.i8Const == i8Const) + return true; + + break; + case EbtUint8: + if (constant.u8Const == u8Const) + return true; + + break; case EbtInt: if (constant.iConst == iConst) return true; @@ -179,6 +270,26 @@ public: return false; } + bool operator!=(const signed char i) const + { + return !operator==(i); + } + + bool operator!=(const unsigned char u) const + { + return !operator==(u); + } + + bool operator!=(const signed short i) const + { + return !operator==(i); + } + + bool operator!=(const unsigned short u) const + { + return !operator==(u); + } + bool operator!=(const int i) const { return !operator==(i); @@ -218,6 +329,26 @@ public: { assert(type == constant.type); switch (type) { + case EbtInt8: + if (i8Const > constant.i8Const) + return true; + + return false; + case EbtUint8: + if (u8Const > constant.u8Const) + return true; + + return false; + case EbtInt16: + if (i16Const > constant.i16Const) + return true; + + return false; + case EbtUint16: + if (u16Const > constant.u16Const) + return true; + + return false; case EbtInt: if (iConst > constant.iConst) return true; @@ -253,6 +384,26 @@ public: { assert(type == constant.type); switch (type) { + case EbtInt8: + if (i8Const < constant.i8Const) + return true; + + return false; + case EbtUint8: + if (u8Const < constant.u8Const) + return true; + + return false; + case EbtInt16: + if (i16Const < constant.i16Const) + return true; + + return false; + case EbtUint16: + if (u16Const < constant.u16Const) + return true; + + return false; case EbtInt: if (iConst < constant.iConst) return true; @@ -289,9 +440,13 @@ public: TConstUnion returnValue; assert(type == constant.type); switch (type) { - case EbtInt: returnValue.setIConst(iConst + constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const + constant.i64Const); break; - case EbtUint: returnValue.setUConst(uConst + constant.uConst); break; + case EbtInt8: returnValue.setI8Const(i8Const + constant.i8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const + constant.i16Const); break; + case EbtInt: returnValue.setIConst(iConst + constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const + constant.i64Const); break; + case EbtUint8: returnValue.setU8Const(u8Const + constant.u8Const); break; + case EbtUint16: returnValue.setU16Const(u16Const + constant.u16Const); break; + case EbtUint: returnValue.setUConst(uConst + constant.uConst); break; case EbtUint64: returnValue.setU64Const(u64Const + constant.u64Const); break; case EbtDouble: returnValue.setDConst(dConst + constant.dConst); break; default: assert(false && "Default missing"); @@ -305,9 +460,13 @@ public: TConstUnion returnValue; assert(type == constant.type); switch (type) { - case EbtInt: returnValue.setIConst(iConst - constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const - constant.i64Const); break; - case EbtUint: returnValue.setUConst(uConst - constant.uConst); break; + case EbtInt8: returnValue.setI8Const(i8Const - constant.i8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const - constant.i16Const); break; + case EbtInt: returnValue.setIConst(iConst - constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const - constant.i64Const); break; + case EbtUint8: returnValue.setU8Const(u8Const - constant.u8Const); break; + case EbtUint16: returnValue.setU16Const(u16Const - constant.u16Const); break; + case EbtUint: returnValue.setUConst(uConst - constant.uConst); break; case EbtUint64: returnValue.setU64Const(u64Const - constant.u64Const); break; case EbtDouble: returnValue.setDConst(dConst - constant.dConst); break; default: assert(false && "Default missing"); @@ -321,9 +480,13 @@ public: TConstUnion returnValue; assert(type == constant.type); switch (type) { - case EbtInt: returnValue.setIConst(iConst * constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const * constant.i64Const); break; - case EbtUint: returnValue.setUConst(uConst * constant.uConst); break; + case EbtInt8: returnValue.setI8Const(i8Const * constant.i8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const * constant.i16Const); break; + case EbtInt: returnValue.setIConst(iConst * constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const * constant.i64Const); break; + case EbtUint8: returnValue.setU8Const(u8Const * constant.u8Const); break; + case EbtUint16: returnValue.setU16Const(u16Const * constant.u16Const); break; + case EbtUint: returnValue.setUConst(uConst * constant.uConst); break; case EbtUint64: returnValue.setU64Const(u64Const * constant.u64Const); break; case EbtDouble: returnValue.setDConst(dConst * constant.dConst); break; default: assert(false && "Default missing"); @@ -337,9 +500,13 @@ public: TConstUnion returnValue; assert(type == constant.type); switch (type) { - case EbtInt: returnValue.setIConst(iConst % constant.iConst); break; - case EbtInt64: returnValue.setI64Const(i64Const % constant.i64Const); break; - case EbtUint: returnValue.setUConst(uConst % constant.uConst); break; + case EbtInt8: returnValue.setI8Const(i8Const % constant.i8Const); break; + case EbtInt16: returnValue.setI8Const(i8Const % constant.i16Const); break; + case EbtInt: returnValue.setIConst(iConst % constant.iConst); break; + case EbtInt64: returnValue.setI64Const(i64Const % constant.i64Const); break; + case EbtUint8: returnValue.setU8Const(u8Const % constant.u8Const); break; + case EbtUint16: returnValue.setU16Const(u16Const % constant.u16Const); break; + case EbtUint: returnValue.setUConst(uConst % constant.uConst); break; case EbtUint64: returnValue.setU64Const(u64Const % constant.u64Const); break; default: assert(false && "Default missing"); } @@ -351,8 +518,64 @@ public: { TConstUnion returnValue; switch (type) { + case EbtInt8: + switch (constant.type) { + case EbtInt8: returnValue.setI8Const(i8Const >> constant.i8Const); break; + case EbtUint8: returnValue.setI8Const(i8Const >> constant.u8Const); break; + case EbtInt16: returnValue.setI8Const(i8Const >> constant.i16Const); break; + case EbtUint16: returnValue.setI8Const(i8Const >> constant.u16Const); break; + case EbtInt: returnValue.setI8Const(i8Const >> constant.iConst); break; + case EbtUint: returnValue.setI8Const(i8Const >> constant.uConst); break; + case EbtInt64: returnValue.setI8Const(i8Const >> constant.i64Const); break; + case EbtUint64: returnValue.setI8Const(i8Const >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint8: + switch (constant.type) { + case EbtInt8: returnValue.setU8Const(u8Const >> constant.i8Const); break; + case EbtUint8: returnValue.setU8Const(u8Const >> constant.u8Const); break; + case EbtInt16: returnValue.setU8Const(u8Const >> constant.i16Const); break; + case EbtUint16: returnValue.setU8Const(u8Const >> constant.u16Const); break; + case EbtInt: returnValue.setU8Const(u8Const >> constant.iConst); break; + case EbtUint: returnValue.setU8Const(u8Const >> constant.uConst); break; + case EbtInt64: returnValue.setU8Const(u8Const >> constant.i64Const); break; + case EbtUint64: returnValue.setU8Const(u8Const >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtInt16: + switch (constant.type) { + case EbtInt8: returnValue.setI16Const(i16Const >> constant.i8Const); break; + case EbtUint8: returnValue.setI16Const(i16Const >> constant.u8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const >> constant.i16Const); break; + case EbtUint16: returnValue.setI16Const(i16Const >> constant.u16Const); break; + case EbtInt: returnValue.setI16Const(i16Const >> constant.iConst); break; + case EbtUint: returnValue.setI16Const(i16Const >> constant.uConst); break; + case EbtInt64: returnValue.setI16Const(i16Const >> constant.i64Const); break; + case EbtUint64: returnValue.setI16Const(i16Const >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint16: + switch (constant.type) { + case EbtInt8: returnValue.setU16Const(u16Const >> constant.i8Const); break; + case EbtUint8: returnValue.setU16Const(u16Const >> constant.u8Const); break; + case EbtInt16: returnValue.setU16Const(u16Const >> constant.i16Const); break; + case EbtUint16: returnValue.setU16Const(u16Const >> constant.u16Const); break; + case EbtInt: returnValue.setU16Const(u16Const >> constant.iConst); break; + case EbtUint: returnValue.setU16Const(u16Const >> constant.uConst); break; + case EbtInt64: returnValue.setU16Const(u16Const >> constant.i64Const); break; + case EbtUint64: returnValue.setU16Const(u16Const >> constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; case EbtInt: switch (constant.type) { + case EbtInt8: returnValue.setIConst(iConst >> constant.i8Const); break; + case EbtUint8: returnValue.setIConst(iConst >> constant.u8Const); break; + case EbtInt16: returnValue.setIConst(iConst >> constant.i16Const); break; + case EbtUint16: returnValue.setIConst(iConst >> constant.u16Const); break; case EbtInt: returnValue.setIConst(iConst >> constant.iConst); break; case EbtUint: returnValue.setIConst(iConst >> constant.uConst); break; case EbtInt64: returnValue.setIConst(iConst >> constant.i64Const); break; @@ -362,6 +585,10 @@ public: break; case EbtUint: switch (constant.type) { + case EbtInt8: returnValue.setUConst(uConst >> constant.i8Const); break; + case EbtUint8: returnValue.setUConst(uConst >> constant.u8Const); break; + case EbtInt16: returnValue.setUConst(uConst >> constant.i16Const); break; + case EbtUint16: returnValue.setUConst(uConst >> constant.u16Const); break; case EbtInt: returnValue.setUConst(uConst >> constant.iConst); break; case EbtUint: returnValue.setUConst(uConst >> constant.uConst); break; case EbtInt64: returnValue.setUConst(uConst >> constant.i64Const); break; @@ -371,6 +598,10 @@ public: break; case EbtInt64: switch (constant.type) { + case EbtInt8: returnValue.setI64Const(i64Const >> constant.i8Const); break; + case EbtUint8: returnValue.setI64Const(i64Const >> constant.u8Const); break; + case EbtInt16: returnValue.setI64Const(i64Const >> constant.i16Const); break; + case EbtUint16: returnValue.setI64Const(i64Const >> constant.u16Const); break; case EbtInt: returnValue.setI64Const(i64Const >> constant.iConst); break; case EbtUint: returnValue.setI64Const(i64Const >> constant.uConst); break; case EbtInt64: returnValue.setI64Const(i64Const >> constant.i64Const); break; @@ -380,6 +611,10 @@ public: break; case EbtUint64: switch (constant.type) { + case EbtInt8: returnValue.setU64Const(u64Const >> constant.i8Const); break; + case EbtUint8: returnValue.setU64Const(u64Const >> constant.u8Const); break; + case EbtInt16: returnValue.setU64Const(u64Const >> constant.i16Const); break; + case EbtUint16: returnValue.setU64Const(u64Const >> constant.u16Const); break; case EbtInt: returnValue.setU64Const(u64Const >> constant.iConst); break; case EbtUint: returnValue.setU64Const(u64Const >> constant.uConst); break; case EbtInt64: returnValue.setU64Const(u64Const >> constant.i64Const); break; @@ -397,8 +632,64 @@ public: { TConstUnion returnValue; switch (type) { + case EbtInt8: + switch (constant.type) { + case EbtInt8: returnValue.setI8Const(i8Const << constant.i8Const); break; + case EbtUint8: returnValue.setI8Const(i8Const << constant.u8Const); break; + case EbtInt16: returnValue.setI8Const(i8Const << constant.i16Const); break; + case EbtUint16: returnValue.setI8Const(i8Const << constant.u16Const); break; + case EbtInt: returnValue.setI8Const(i8Const << constant.iConst); break; + case EbtUint: returnValue.setI8Const(i8Const << constant.uConst); break; + case EbtInt64: returnValue.setI8Const(i8Const << constant.i64Const); break; + case EbtUint64: returnValue.setI8Const(i8Const << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint8: + switch (constant.type) { + case EbtInt8: returnValue.setU8Const(u8Const << constant.i8Const); break; + case EbtUint8: returnValue.setU8Const(u8Const << constant.u8Const); break; + case EbtInt16: returnValue.setU8Const(u8Const << constant.i16Const); break; + case EbtUint16: returnValue.setU8Const(u8Const << constant.u16Const); break; + case EbtInt: returnValue.setU8Const(u8Const << constant.iConst); break; + case EbtUint: returnValue.setU8Const(u8Const << constant.uConst); break; + case EbtInt64: returnValue.setU8Const(u8Const << constant.i64Const); break; + case EbtUint64: returnValue.setU8Const(u8Const << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtInt16: + switch (constant.type) { + case EbtInt8: returnValue.setI16Const(i16Const << constant.i8Const); break; + case EbtUint8: returnValue.setI16Const(i16Const << constant.u8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const << constant.i16Const); break; + case EbtUint16: returnValue.setI16Const(i16Const << constant.u16Const); break; + case EbtInt: returnValue.setI16Const(i16Const << constant.iConst); break; + case EbtUint: returnValue.setI16Const(i16Const << constant.uConst); break; + case EbtInt64: returnValue.setI16Const(i16Const << constant.i64Const); break; + case EbtUint64: returnValue.setI16Const(i16Const << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; + case EbtUint16: + switch (constant.type) { + case EbtInt8: returnValue.setU16Const(u16Const << constant.i8Const); break; + case EbtUint8: returnValue.setU16Const(u16Const << constant.u8Const); break; + case EbtInt16: returnValue.setU16Const(u16Const << constant.i16Const); break; + case EbtUint16: returnValue.setU16Const(u16Const << constant.u16Const); break; + case EbtInt: returnValue.setU16Const(u16Const << constant.iConst); break; + case EbtUint: returnValue.setU16Const(u16Const << constant.uConst); break; + case EbtInt64: returnValue.setU16Const(u16Const << constant.i64Const); break; + case EbtUint64: returnValue.setU16Const(u16Const << constant.u64Const); break; + default: assert(false && "Default missing"); + } + break; case EbtInt: switch (constant.type) { + case EbtInt8: returnValue.setIConst(iConst << constant.i8Const); break; + case EbtUint8: returnValue.setIConst(iConst << constant.u8Const); break; + case EbtInt16: returnValue.setIConst(iConst << constant.i16Const); break; + case EbtUint16: returnValue.setIConst(iConst << constant.u16Const); break; case EbtInt: returnValue.setIConst(iConst << constant.iConst); break; case EbtUint: returnValue.setIConst(iConst << constant.uConst); break; case EbtInt64: returnValue.setIConst(iConst << constant.i64Const); break; @@ -408,6 +699,10 @@ public: break; case EbtUint: switch (constant.type) { + case EbtInt8: returnValue.setUConst(uConst << constant.i8Const); break; + case EbtUint8: returnValue.setUConst(uConst << constant.u8Const); break; + case EbtInt16: returnValue.setUConst(uConst << constant.i16Const); break; + case EbtUint16: returnValue.setUConst(uConst << constant.u16Const); break; case EbtInt: returnValue.setUConst(uConst << constant.iConst); break; case EbtUint: returnValue.setUConst(uConst << constant.uConst); break; case EbtInt64: returnValue.setUConst(uConst << constant.i64Const); break; @@ -415,8 +710,12 @@ public: default: assert(false && "Default missing"); } break; - case EbtInt64: + case EbtInt64: switch (constant.type) { + case EbtInt8: returnValue.setI64Const(i64Const << constant.i8Const); break; + case EbtUint8: returnValue.setI64Const(i64Const << constant.u8Const); break; + case EbtInt16: returnValue.setI64Const(i64Const << constant.i16Const); break; + case EbtUint16: returnValue.setI64Const(i64Const << constant.u16Const); break; case EbtInt: returnValue.setI64Const(i64Const << constant.iConst); break; case EbtUint: returnValue.setI64Const(i64Const << constant.uConst); break; case EbtInt64: returnValue.setI64Const(i64Const << constant.i64Const); break; @@ -426,6 +725,10 @@ public: break; case EbtUint64: switch (constant.type) { + case EbtInt8: returnValue.setU64Const(u64Const << constant.i8Const); break; + case EbtUint8: returnValue.setU64Const(u64Const << constant.u8Const); break; + case EbtInt16: returnValue.setU64Const(u64Const << constant.i16Const); break; + case EbtUint16: returnValue.setU64Const(u64Const << constant.u16Const); break; case EbtInt: returnValue.setU64Const(u64Const << constant.iConst); break; case EbtUint: returnValue.setU64Const(u64Const << constant.uConst); break; case EbtInt64: returnValue.setU64Const(u64Const << constant.i64Const); break; @@ -444,8 +747,12 @@ public: TConstUnion returnValue; assert(type == constant.type); switch (type) { - case EbtInt: returnValue.setIConst(iConst & constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst & constant.uConst); break; + case EbtInt8: returnValue.setI8Const(i8Const & constant.i8Const); break; + case EbtUint8: returnValue.setU8Const(u8Const & constant.u8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const & constant.i16Const); break; + case EbtUint16: returnValue.setU16Const(u16Const & constant.u16Const); break; + case EbtInt: returnValue.setIConst(iConst & constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst & constant.uConst); break; case EbtInt64: returnValue.setI64Const(i64Const & constant.i64Const); break; case EbtUint64: returnValue.setU64Const(u64Const & constant.u64Const); break; default: assert(false && "Default missing"); @@ -459,8 +766,12 @@ public: TConstUnion returnValue; assert(type == constant.type); switch (type) { - case EbtInt: returnValue.setIConst(iConst | constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst | constant.uConst); break; + case EbtInt8: returnValue.setI8Const(i8Const | constant.i8Const); break; + case EbtUint8: returnValue.setU8Const(u8Const | constant.u8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const | constant.i16Const); break; + case EbtUint16: returnValue.setU16Const(u16Const | constant.u16Const); break; + case EbtInt: returnValue.setIConst(iConst | constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst | constant.uConst); break; case EbtInt64: returnValue.setI64Const(i64Const | constant.i64Const); break; case EbtUint64: returnValue.setU64Const(u64Const | constant.u64Const); break; default: assert(false && "Default missing"); @@ -474,8 +785,12 @@ public: TConstUnion returnValue; assert(type == constant.type); switch (type) { - case EbtInt: returnValue.setIConst(iConst ^ constant.iConst); break; - case EbtUint: returnValue.setUConst(uConst ^ constant.uConst); break; + case EbtInt8: returnValue.setI8Const(i8Const ^ constant.i8Const); break; + case EbtUint8: returnValue.setU8Const(u8Const ^ constant.u8Const); break; + case EbtInt16: returnValue.setI16Const(i16Const ^ constant.i16Const); break; + case EbtUint16: returnValue.setU16Const(u16Const ^ constant.u16Const); break; + case EbtInt: returnValue.setIConst(iConst ^ constant.iConst); break; + case EbtUint: returnValue.setUConst(uConst ^ constant.uConst); break; case EbtInt64: returnValue.setI64Const(i64Const ^ constant.i64Const); break; case EbtUint64: returnValue.setU64Const(u64Const ^ constant.u64Const); break; default: assert(false && "Default missing"); @@ -488,8 +803,12 @@ public: { TConstUnion returnValue; switch (type) { - case EbtInt: returnValue.setIConst(~iConst); break; - case EbtUint: returnValue.setUConst(~uConst); break; + case EbtInt8: returnValue.setI8Const(~i8Const); break; + case EbtUint8: returnValue.setU8Const(~u8Const); break; + case EbtInt16: returnValue.setI16Const(~i16Const); break; + case EbtUint16: returnValue.setU16Const(~u16Const); break; + case EbtInt: returnValue.setIConst(~iConst); break; + case EbtUint: returnValue.setUConst(~uConst); break; case EbtInt64: returnValue.setI64Const(~i64Const); break; case EbtUint64: returnValue.setU64Const(~u64Const); break; default: assert(false && "Default missing"); @@ -526,12 +845,17 @@ public: private: union { + signed char i8Const; // used for i8vec, scalar int8s + unsigned char u8Const; // used for u8vec, scalar uint8s + signed short i16Const; // used for i16vec, scalar int16s + unsigned short u16Const; // used for u16vec, scalar uint16s int iConst; // used for ivec, scalar ints unsigned int uConst; // used for uvec, scalar uints long long i64Const; // used for i64vec, scalar int64s unsigned long long u64Const; // used for u64vec, scalar uint64s bool bConst; // used for bvec, scalar bools double dConst; // used for vec, dvec, mat, dmat, scalar floats and doubles + const TString* sConst; // string constant }; TBasicType type; @@ -587,9 +911,6 @@ public: if (! unionArray || ! rhs.unionArray) return false; - if (! unionArray || ! rhs.unionArray) - return false; - return *unionArray == *rhs.unionArray; } bool operator!=(const TConstUnionArray& rhs) const { return ! operator==(rhs); } diff --git a/deps/glslang/glslang/glslang/Include/InfoSink.h b/deps/glslang/glslang/glslang/Include/InfoSink.h index 54f1f3393c..dceb603cff 100644 --- a/deps/glslang/glslang/glslang/Include/InfoSink.h +++ b/deps/glslang/glslang/glslang/Include/InfoSink.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _INFOSINK_INCLUDED_ diff --git a/deps/glslang/glslang/glslang/Include/InitializeGlobals.h b/deps/glslang/glslang/glslang/Include/InitializeGlobals.h index 6c9f54a03d..95d0a40e99 100644 --- a/deps/glslang/glslang/glslang/Include/InitializeGlobals.h +++ b/deps/glslang/glslang/glslang/Include/InitializeGlobals.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 __INITIALIZE_GLOBALS_INCLUDED_ @@ -37,10 +37,7 @@ namespace glslang { -void InitializeMemoryPools(); -void FreeGlobalPools(); bool InitializePoolIndex(); -void FreePoolIndex(); } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/Include/PoolAlloc.h b/deps/glslang/glslang/glslang/Include/PoolAlloc.h index 0aa2ab2c11..0e237a6a2c 100644 --- a/deps/glslang/glslang/glslang/Include/PoolAlloc.h +++ b/deps/glslang/glslang/glslang/Include/PoolAlloc.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _POOLALLOC_INCLUDED_ @@ -245,21 +245,13 @@ private: TPoolAllocator(const TPoolAllocator&); // don't allow default copy constructor }; - // // There could potentially be many pools with pops happening at // different times. But a simple use is to have a global pop // with everyone using the same global allocator. // -typedef TPoolAllocator* PoolAllocatorPointer; extern TPoolAllocator& GetThreadPoolAllocator(); - -struct TThreadMemoryPools -{ - TPoolAllocator* threadPoolAllocator; -}; - -void SetThreadPoolAllocator(TPoolAllocator& poolAllocator); +void SetThreadPoolAllocator(TPoolAllocator* poolAllocator); // // This STL compatible allocator is intended to be used as the allocator diff --git a/deps/glslang/glslang/glslang/Include/ResourceLimits.h b/deps/glslang/glslang/glslang/Include/ResourceLimits.h index b9cadb9faf..0d07b8c841 100644 --- a/deps/glslang/glslang/glslang/Include/ResourceLimits.h +++ b/deps/glslang/glslang/glslang/Include/ResourceLimits.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _RESOURCE_LIMITS_INCLUDED_ diff --git a/deps/glslang/glslang/glslang/Include/ShHandle.h b/deps/glslang/glslang/glslang/Include/ShHandle.h index 1e24fdd933..df07bd8eda 100644 --- a/deps/glslang/glslang/glslang/Include/ShHandle.h +++ b/deps/glslang/glslang/glslang/Include/ShHandle.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _SHHANDLE_INCLUDED_ @@ -42,7 +42,6 @@ // This should not be included by driver code. // - #define SH_EXPORTING #include "../Public/ShaderLang.h" #include "../MachineIndependent/Versions.h" @@ -57,11 +56,14 @@ class TUniformMap; // class TShHandleBase { public: - TShHandleBase() { } - virtual ~TShHandleBase() { } + TShHandleBase() { pool = new glslang::TPoolAllocator; } + virtual ~TShHandleBase() { delete pool; } virtual TCompiler* getAsCompiler() { return 0; } virtual TLinker* getAsLinker() { return 0; } virtual TUniformMap* getAsUniformMap() { return 0; } + virtual glslang::TPoolAllocator* getPool() const { return pool; } +private: + glslang::TPoolAllocator* pool; }; // diff --git a/deps/glslang/glslang/glslang/Include/Types.h b/deps/glslang/glslang/glslang/Include/Types.h index 7642df9be1..39d6737cfc 100644 --- a/deps/glslang/glslang/glslang/Include/Types.h +++ b/deps/glslang/glslang/glslang/Include/Types.h @@ -1,13 +1,14 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2016 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2016 LunarG, Inc. +// Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +22,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _TYPES_INCLUDED @@ -43,6 +44,8 @@ #include "../Public/ShaderLang.h" #include "arrays.h" +#include + namespace glslang { const int GlslangMaxTypeLength = 200; // TODO: need to print block/struct one member per line, so this can stay bounded @@ -78,7 +81,19 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler bool sampler : 1; // true means a pure sampler, other fields should be clear() bool external : 1; // GL_OES_EGL_image_external - unsigned int vectorSize : 3; // return vector size. TODO: support arbitrary types. + unsigned int vectorSize : 3; // vector return type size. + + // Some languages support structures as sample results. Storing the whole structure in the + // TSampler is too large, so there is an index to a separate table. + static const unsigned structReturnIndexBits = 4; // number of index bits to use. + static const unsigned structReturnSlots = (1<= EpqNone && p <= EpqHigh); + assert(!(isMatrix() && vectorSize != 0)); // prevent vectorSize != 0 on matrices } // for turning a TPublicType into a TType, using a shallow copy explicit TType(const TPublicType& p) : @@ -1179,30 +1295,21 @@ public: typeName = copyOf.typeName; } + // Make complete copy of the whole type graph rooted at 'copyOf'. void deepCopy(const TType& copyOf) { - shallowCopy(copyOf); + TMap copied; // to enable copying a type graph as a graph, not a tree + deepCopy(copyOf, copied); + } - if (copyOf.arraySizes) { - arraySizes = new TArraySizes; - *arraySizes = *copyOf.arraySizes; - } + // Recursively make temporary + void makeTemporary() + { + getQualifier().makeTemporary(); - if (copyOf.structure) { - structure = new TTypeList; - for (unsigned int i = 0; i < copyOf.structure->size(); ++i) { - TTypeLoc typeLoc; - typeLoc.loc = (*copyOf.structure)[i].loc; - typeLoc.type = new TType(); - typeLoc.type->deepCopy(*(*copyOf.structure)[i].type); - structure->push_back(typeLoc); - } - } - - if (copyOf.fieldName) - fieldName = NewPoolTString(copyOf.fieldName->c_str()); - if (copyOf.typeName) - typeName = NewPoolTString(copyOf.typeName->c_str()); + if (isStruct()) + for (unsigned int i = 0; i < structure->size(); ++i) + (*structure)[i].type->makeTemporary(); } TType* clone() const @@ -1215,31 +1322,9 @@ public: void makeVector() { vector1 = true; } - // Merge type from parent, where a parentType is at the beginning of a declaration, - // establishing some characteristics for all subsequent names, while this type - // is on the individual names. - void mergeType(const TPublicType& parentType) - { - // arrayness is currently the only child aspect that has to be preserved - basicType = parentType.basicType; - vectorSize = parentType.vectorSize; - matrixCols = parentType.matrixCols; - matrixRows = parentType.matrixRows; - vector1 = false; // TPublicType is only GLSL which so far has no vec1 - qualifier = parentType.qualifier; - sampler = parentType.sampler; - if (parentType.arraySizes) - newArraySizes(*parentType.arraySizes); - if (parentType.userDef) { - structure = parentType.userDef->getWritableStruct(); - setTypeName(parentType.userDef->getTypeName()); - } - } - virtual void hideMember() { basicType = EbtVoid; vectorSize = 1; } virtual bool hiddenMember() const { return basicType == EbtVoid; } - virtual void setTypeName(const TString& n) { typeName = NewPoolTString(n.c_str()); } virtual void setFieldName(const TString& n) { fieldName = NewPoolTString(n.c_str()); } virtual const TString& getTypeName() const { @@ -1255,6 +1340,7 @@ public: virtual TBasicType getBasicType() const { return basicType; } virtual const TSampler& getSampler() const { return sampler; } + virtual TSampler& getSampler() { return sampler; } virtual TQualifier& getQualifier() { return qualifier; } virtual const TQualifier& getQualifier() const { return qualifier; } @@ -1268,135 +1354,122 @@ public: virtual bool isArrayOfArrays() const { return arraySizes != nullptr && arraySizes->getNumDims() > 1; } virtual int getImplicitArraySize() const { return arraySizes->getImplicitSize(); } virtual const TArraySizes* getArraySizes() const { return arraySizes; } - virtual TArraySizes& getArraySizes() { assert(arraySizes != nullptr); return *arraySizes; } + virtual TArraySizes* getArraySizes() { return arraySizes; } virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); } virtual bool isScalarOrVec1() const { return isScalar() || vector1; } virtual bool isVector() const { return vectorSize > 1 || vector1; } virtual bool isMatrix() const { return matrixCols ? true : false; } virtual bool isArray() const { return arraySizes != nullptr; } - virtual bool isExplicitlySizedArray() const { return isArray() && getOuterArraySize() != UnsizedArraySize; } - virtual bool isImplicitlySizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage != EvqBuffer; } - virtual bool isRuntimeSizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage == EvqBuffer; } + virtual bool isSizedArray() const { return isArray() && arraySizes->isSized(); } + virtual bool isUnsizedArray() const { return isArray() && !arraySizes->isSized(); } + virtual bool isArrayVariablyIndexed() const { assert(isArray()); return arraySizes->isVariablyIndexed(); } + virtual void setArrayVariablyIndexed() { assert(isArray()); arraySizes->setVariablyIndexed(); } + virtual void updateImplicitArraySize(int size) { assert(isArray()); arraySizes->updateImplicitSize(size); } virtual bool isStruct() const { return structure != nullptr; } -#ifdef AMD_EXTENSIONS virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16; } -#else - virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble; } -#endif - + virtual bool isIntegerDomain() const + { + switch (basicType) { + case EbtInt8: + case EbtUint8: + case EbtInt16: + case EbtUint16: + case EbtInt: + case EbtUint: + case EbtInt64: + case EbtUint64: + case EbtAtomicUint: + return true; + default: + break; + } + return false; + } virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint; } + virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; } // "Image" is a superset of "Subpass" - virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); } + virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); } virtual bool isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); } + virtual bool isTexture() const { return basicType == EbtSampler && getSampler().isTexture(); } + + // return true if this type contains any subtype which satisfies the given predicate. + template + bool contains(P predicate) const + { + if (predicate(this)) + return true; + + const auto hasa = [predicate](const TTypeLoc& tl) { return tl.type->contains(predicate); }; + + return structure && std::any_of(structure->begin(), structure->end(), hasa); + } // Recursively checks if the type contains the given basic type virtual bool containsBasicType(TBasicType checkType) const { - if (basicType == checkType) - return true; - if (! structure) - return false; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->containsBasicType(checkType)) - return true; - } - return false; + return contains([checkType](const TType* t) { return t->basicType == checkType; } ); } // Recursively check the structure for any arrays, needed for some error checks virtual bool containsArray() const { - if (isArray()) - return true; - if (structure == nullptr) - return false; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->containsArray()) - return true; - } - return false; + return contains([](const TType* t) { return t->isArray(); } ); } // Check the structure for any structures, needed for some error checks virtual bool containsStructure() const { - if (structure == nullptr) - return false; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->structure) - return true; - } - return false; + return contains([this](const TType* t) { return t != this && t->isStruct(); } ); } - // Recursively check the structure for any implicitly-sized arrays, needed for triggering a copyUp(). - virtual bool containsImplicitlySizedArray() const + // Recursively check the structure for any unsized arrays, needed for triggering a copyUp(). + virtual bool containsUnsizedArray() const { - if (isImplicitlySizedArray()) - return true; - if (structure == nullptr) - return false; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->containsImplicitlySizedArray()) - return true; - } - return false; + return contains([](const TType* t) { return t->isUnsizedArray(); } ); } virtual bool containsOpaque() const { - if (isOpaque()) - return true; - if (! structure) - return false; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->containsOpaque()) - return true; - } - return false; + return contains([](const TType* t) { return t->isOpaque(); } ); + } + + // Recursively checks if the type contains a built-in variable + virtual bool containsBuiltIn() const + { + return contains([](const TType* t) { return t->isBuiltIn(); } ); } virtual bool containsNonOpaque() const { - // list all non-opaque types - switch (basicType) { - case EbtVoid: - case EbtFloat: - case EbtDouble: -#ifdef AMD_EXTENSIONS - case EbtFloat16: -#endif - case EbtInt: - case EbtUint: - case EbtInt64: - case EbtUint64: - case EbtBool: - return true; - default: - break; - } - if (! structure) - return false; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->containsNonOpaque()) + const auto nonOpaque = [](const TType* t) { + switch (t->basicType) { + case EbtVoid: + case EbtFloat: + case EbtDouble: + case EbtFloat16: + case EbtInt8: + case EbtUint8: + case EbtInt16: + case EbtUint16: + case EbtInt: + case EbtUint: + case EbtInt64: + case EbtUint64: + case EbtBool: return true; - } - return false; + default: + return false; + } + }; + + return contains(nonOpaque); } virtual bool containsSpecializationSize() const { - if (isArray() && arraySizes->containsNode()) - return true; - if (! structure) - return false; - for (unsigned int i = 0; i < structure->size(); ++i) { - if ((*structure)[i].type->containsSpecializationSize()) - return true; - } - return false; + return contains([](const TType* t) { return t->isArray() && t->arraySizes->isOuterSpecialization(); } ); } // Array editing methods. Array descriptors can be shared across @@ -1418,34 +1491,51 @@ public: assert(type.arraySizes != nullptr); *arraySizes = *type.arraySizes; } - void newArraySizes(const TArraySizes& s) + void copyArraySizes(const TArraySizes& s) { // For setting a fresh new set of array sizes, not yet worrying about sharing. arraySizes = new TArraySizes; *arraySizes = s; } + void transferArraySizes(TArraySizes* s) + { + // For setting an already allocated set of sizes that this type can use + // (no copy made). + arraySizes = s; + } void clearArraySizes() { - arraySizes = 0; + arraySizes = nullptr; } - void addArrayOuterSizes(const TArraySizes& s) + + // Add inner array sizes, to any existing sizes, via copy; the + // sizes passed in can still be reused for other purposes. + void copyArrayInnerSizes(const TArraySizes* s) { - if (arraySizes == nullptr) - newArraySizes(s); - else - arraySizes->addOuterSizes(s); + if (s != nullptr) { + if (arraySizes == nullptr) + copyArraySizes(*s); + else + arraySizes->addInnerSizes(*s); + } } void changeOuterArraySize(int s) { arraySizes->changeOuterSize(s); } - void setImplicitArraySize(int s) { arraySizes->setImplicitSize(s); } - // Recursively make the implicit array size the explicit array size, through the type tree. - void adoptImplicitArraySizes() + // Recursively make the implicit array size the explicit array size. + // Expicit arrays are compile-time or link-time sized, never run-time sized. + // Sometimes, policy calls for an array to be run-time sized even if it was + // never variably indexed: Don't turn a 'skipNonvariablyIndexed' array into + // an explicit array. + void adoptImplicitArraySizes(bool skipNonvariablyIndexed) { - if (isImplicitlySizedArray()) + if (isUnsizedArray() && !(skipNonvariablyIndexed || isArrayVariablyIndexed())) changeOuterArraySize(getImplicitArraySize()); - if (isStruct()) { - for (int i = 0; i < (int)structure->size(); ++i) - (*structure)[i].type->adoptImplicitArraySizes(); + if (isStruct() && structure->size() > 0) { + int lastMember = (int)structure->size() - 1; + for (int i = 0; i < lastMember; ++i) + (*structure)[i].type->adoptImplicitArraySizes(false); + // implement the "last member of an SSBO" policy + (*structure)[lastMember].type->adoptImplicitArraySizes(getQualifier().storage == EvqBuffer); } } @@ -1460,9 +1550,11 @@ public: case EbtVoid: return "void"; case EbtFloat: return "float"; case EbtDouble: return "double"; -#ifdef AMD_EXTENSIONS case EbtFloat16: return "float16_t"; -#endif + case EbtInt8: return "int8_t"; + case EbtUint8: return "uint8_t"; + case EbtInt16: return "int16_t"; + case EbtUint16: return "uint16_t"; case EbtInt: return "int"; case EbtUint: return "uint"; case EbtInt64: return "int64_t"; @@ -1478,10 +1570,11 @@ public: TString getCompleteString() const { - const int maxSize = GlslangMaxTypeLength; - char buf[maxSize]; - char* p = &buf[0]; - char* end = &buf[maxSize]; + TString typeString; + + const auto appendStr = [&](const char* s) { typeString.append(s); }; + const auto appendUint = [&](unsigned int u) { typeString.append(std::to_string(u).c_str()); }; + const auto appendInt = [&](int i) { typeString.append(std::to_string(i).c_str()); }; if (qualifier.hasLayout()) { // To reduce noise, skip this if the only layout is an xfb_buffer @@ -1489,127 +1582,185 @@ public: TQualifier noXfbBuffer = qualifier; noXfbBuffer.layoutXfbBuffer = TQualifier::layoutXfbBufferEnd; if (noXfbBuffer.hasLayout()) { - p += snprintf(p, end - p, "layout("); + appendStr("layout("); if (qualifier.hasAnyLocation()) { - p += snprintf(p, end - p, "location=%d ", qualifier.layoutLocation); - if (qualifier.hasComponent()) - p += snprintf(p, end - p, "component=%d ", qualifier.layoutComponent); - if (qualifier.hasIndex()) - p += snprintf(p, end - p, "index=%d ", qualifier.layoutIndex); + appendStr(" location="); + appendUint(qualifier.layoutLocation); + if (qualifier.hasComponent()) { + appendStr(" component="); + appendUint(qualifier.layoutComponent); + } + if (qualifier.hasIndex()) { + appendStr(" index="); + appendUint(qualifier.layoutIndex); + } + } + if (qualifier.hasSet()) { + appendStr(" set="); + appendUint(qualifier.layoutSet); + } + if (qualifier.hasBinding()) { + appendStr(" binding="); + appendUint(qualifier.layoutBinding); + } + if (qualifier.hasStream()) { + appendStr(" stream="); + appendUint(qualifier.layoutStream); + } + if (qualifier.hasMatrix()) { + appendStr(" "); + appendStr(TQualifier::getLayoutMatrixString(qualifier.layoutMatrix)); + } + if (qualifier.hasPacking()) { + appendStr(" "); + appendStr(TQualifier::getLayoutPackingString(qualifier.layoutPacking)); + } + if (qualifier.hasOffset()) { + appendStr(" offset="); + appendInt(qualifier.layoutOffset); + } + if (qualifier.hasAlign()) { + appendStr(" align="); + appendInt(qualifier.layoutAlign); + } + if (qualifier.hasFormat()) { + appendStr(" "); + appendStr(TQualifier::getLayoutFormatString(qualifier.layoutFormat)); + } + if (qualifier.hasXfbBuffer() && qualifier.hasXfbOffset()) { + appendStr(" xfb_buffer="); + appendUint(qualifier.layoutXfbBuffer); + } + if (qualifier.hasXfbOffset()) { + appendStr(" xfb_offset="); + appendUint(qualifier.layoutXfbOffset); + } + if (qualifier.hasXfbStride()) { + appendStr(" xfb_stride="); + appendUint(qualifier.layoutXfbStride); + } + if (qualifier.hasAttachment()) { + appendStr(" input_attachment_index="); + appendUint(qualifier.layoutAttachment); + } + if (qualifier.hasSpecConstantId()) { + appendStr(" constant_id="); + appendUint(qualifier.layoutSpecConstantId); } - if (qualifier.hasSet()) - p += snprintf(p, end - p, "set=%d ", qualifier.layoutSet); - if (qualifier.hasBinding()) - p += snprintf(p, end - p, "binding=%d ", qualifier.layoutBinding); - if (qualifier.hasStream()) - p += snprintf(p, end - p, "stream=%d ", qualifier.layoutStream); - if (qualifier.hasMatrix()) - p += snprintf(p, end - p, "%s ", TQualifier::getLayoutMatrixString(qualifier.layoutMatrix)); - if (qualifier.hasPacking()) - p += snprintf(p, end - p, "%s ", TQualifier::getLayoutPackingString(qualifier.layoutPacking)); - if (qualifier.hasOffset()) - p += snprintf(p, end - p, "offset=%d ", qualifier.layoutOffset); - if (qualifier.hasAlign()) - p += snprintf(p, end - p, "align=%d ", qualifier.layoutAlign); - if (qualifier.hasFormat()) - p += snprintf(p, end - p, "%s ", TQualifier::getLayoutFormatString(qualifier.layoutFormat)); - if (qualifier.hasXfbBuffer() && qualifier.hasXfbOffset()) - p += snprintf(p, end - p, "xfb_buffer=%d ", qualifier.layoutXfbBuffer); - if (qualifier.hasXfbOffset()) - p += snprintf(p, end - p, "xfb_offset=%d ", qualifier.layoutXfbOffset); - if (qualifier.hasXfbStride()) - p += snprintf(p, end - p, "xfb_stride=%d ", qualifier.layoutXfbStride); - if (qualifier.hasAttachment()) - p += snprintf(p, end - p, "input_attachment_index=%d ", qualifier.layoutAttachment); - if (qualifier.hasSpecConstantId()) - p += snprintf(p, end - p, "constant_id=%d ", qualifier.layoutSpecConstantId); if (qualifier.layoutPushConstant) - p += snprintf(p, end - p, "push_constant "); - p += snprintf(p, end - p, ") "); + appendStr(" push_constant"); + +#ifdef NV_EXTENSIONS + if (qualifier.layoutPassthrough) + appendStr(" passthrough"); + if (qualifier.layoutViewportRelative) + appendStr(" layoutViewportRelative"); + if (qualifier.layoutSecondaryViewportRelativeOffset != -2048) { + appendStr(" layoutSecondaryViewportRelativeOffset="); + appendInt(qualifier.layoutSecondaryViewportRelativeOffset); + } +#endif + + appendStr(")"); } } if (qualifier.invariant) - p += snprintf(p, end - p, "invariant "); + appendStr(" invariant"); if (qualifier.noContraction) - p += snprintf(p, end - p, "noContraction "); + appendStr(" noContraction"); if (qualifier.centroid) - p += snprintf(p, end - p, "centroid "); + appendStr(" centroid"); if (qualifier.smooth) - p += snprintf(p, end - p, "smooth "); + appendStr(" smooth"); if (qualifier.flat) - p += snprintf(p, end - p, "flat "); + appendStr(" flat"); if (qualifier.nopersp) - p += snprintf(p, end - p, "noperspective "); + appendStr(" noperspective"); #ifdef AMD_EXTENSIONS if (qualifier.explicitInterp) - p += snprintf(p, end - p, "__explicitInterpAMD "); + appendStr(" __explicitInterpAMD"); #endif if (qualifier.patch) - p += snprintf(p, end - p, "patch "); + appendStr(" patch"); if (qualifier.sample) - p += snprintf(p, end - p, "sample "); + appendStr(" sample"); if (qualifier.coherent) - p += snprintf(p, end - p, "coherent "); + appendStr(" coherent"); if (qualifier.volatil) - p += snprintf(p, end - p, "volatile "); + appendStr(" volatile"); if (qualifier.restrict) - p += snprintf(p, end - p, "restrict "); + appendStr(" restrict"); if (qualifier.readonly) - p += snprintf(p, end - p, "readonly "); + appendStr(" readonly"); if (qualifier.writeonly) - p += snprintf(p, end - p, "writeonly "); + appendStr(" writeonly"); if (qualifier.specConstant) - p += snprintf(p, end - p, "specialization-constant "); - p += snprintf(p, end - p, "%s ", getStorageQualifierString()); + appendStr(" specialization-constant"); + if (qualifier.nonUniform) + appendStr(" nonuniform"); + appendStr(" "); + appendStr(getStorageQualifierString()); if (isArray()) { for(int i = 0; i < (int)arraySizes->getNumDims(); ++i) { int size = arraySizes->getDimSize(i); - if (size == 0) - p += snprintf(p, end - p, "implicitly-sized array of "); - else - p += snprintf(p, end - p, "%d-element array of ", arraySizes->getDimSize(i)); + if (size == UnsizedArraySize && i == 0 && arraySizes->isVariablyIndexed()) + appendStr(" runtime-sized array of"); + else { + if (size == UnsizedArraySize) { + appendStr(" unsized"); + if (i == 0) { + appendStr(" "); + appendInt(arraySizes->getImplicitSize()); + } + } else { + appendStr(" "); + appendInt(arraySizes->getDimSize(i)); + } + appendStr("-element array of"); + } } } - if (qualifier.precision != EpqNone) - p += snprintf(p, end - p, "%s ", getPrecisionQualifierString()); - if (isMatrix()) - p += snprintf(p, end - p, "%dX%d matrix of ", matrixCols, matrixRows); - else if (isVector()) - p += snprintf(p, end - p, "%d-component vector of ", vectorSize); + if (qualifier.precision != EpqNone) { + appendStr(" "); + appendStr(getPrecisionQualifierString()); + } + if (isMatrix()) { + appendStr(" "); + appendInt(matrixCols); + appendStr("X"); + appendInt(matrixRows); + appendStr(" matrix of"); + } else if (isVector()) { + appendStr(" "); + appendInt(vectorSize); + appendStr("-component vector of"); + } - *p = 0; - TString s(buf); - s.append(getBasicTypeString()); + appendStr(" "); + typeString.append(getBasicTypeString()); if (qualifier.builtIn != EbvNone) { - s.append(" "); - s.append(getBuiltInVariableString()); + appendStr(" "); + appendStr(getBuiltInVariableString()); } // Add struct/block members if (structure) { - s.append("{"); + appendStr("{"); for (size_t i = 0; i < structure->size(); ++i) { - if (s.size() > 3 * GlslangMaxTypeLength) { - // If we are getting too long, cut it short, - // just need to draw the line somewhere, as there is no limit to - // how large a struct/block type can get. - s.append("..."); - break; - } if (! (*structure)[i].type->hiddenMember()) { - s.append((*structure)[i].type->getCompleteString()); - s.append(" "); - s.append((*structure)[i].type->getFieldName()); + typeString.append((*structure)[i].type->getCompleteString()); + typeString.append(" "); + typeString.append((*structure)[i].type->getFieldName()); if (i < structure->size() - 1) - s.append(", "); + appendStr(", "); } } - s.append("}"); + appendStr("}"); } - return s; + return typeString; } TString getBasicTypeString() const @@ -1624,6 +1775,7 @@ public: const char* getBuiltInVariableString() const { return GetBuiltInVariableString(qualifier.builtIn); } const char* getPrecisionQualifierString() const { return GetPrecisionQualifierString(qualifier.precision); } const TTypeList* getStruct() const { return structure; } + void setStruct(TTypeList* s) { structure = s; } TTypeList* getWritableStruct() const { return structure; } // This should only be used when known to not be sharing with other threads int computeNumComponents() const @@ -1646,7 +1798,7 @@ public: } // append this type's mangled name to the passed in 'name' - void appendMangledName(TString& name) + void appendMangledName(TString& name) const { buildMangledName(name); name += ';' ; @@ -1734,7 +1886,43 @@ protected: TType(const TType& type); TType& operator=(const TType& type); - void buildMangledName(TString&); + // Recursively copy a type graph, while preserving the graph-like + // quality. That is, don't make more than one copy of a structure that + // gets reused multiple times in the type graph. + void deepCopy(const TType& copyOf, TMap& copiedMap) + { + shallowCopy(copyOf); + + if (copyOf.arraySizes) { + arraySizes = new TArraySizes; + *arraySizes = *copyOf.arraySizes; + } + + if (copyOf.structure) { + auto prevCopy = copiedMap.find(copyOf.structure); + if (prevCopy != copiedMap.end()) + structure = prevCopy->second; + else { + structure = new TTypeList; + copiedMap[copyOf.structure] = structure; + for (unsigned int i = 0; i < copyOf.structure->size(); ++i) { + TTypeLoc typeLoc; + typeLoc.loc = (*copyOf.structure)[i].loc; + typeLoc.type = new TType(); + typeLoc.type->deepCopy(*(*copyOf.structure)[i].type, copiedMap); + structure->push_back(typeLoc); + } + } + } + + if (copyOf.fieldName) + fieldName = NewPoolTString(copyOf.fieldName->c_str()); + if (copyOf.typeName) + typeName = NewPoolTString(copyOf.typeName->c_str()); + } + + + void buildMangledName(TString&) const; TBasicType basicType : 8; int vectorSize : 4; // 1 means either scalar or 1-component vector; see vector1 to disambiguate. diff --git a/deps/glslang/glslang/glslang/Include/arrays.h b/deps/glslang/glslang/glslang/Include/arrays.h index a50088d2db..af8f560b3b 100644 --- a/deps/glslang/glslang/glslang/Include/arrays.h +++ b/deps/glslang/glslang/glslang/Include/arrays.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -41,6 +41,8 @@ #ifndef _ARRAYS_INCLUDED #define _ARRAYS_INCLUDED +#include + namespace glslang { // This is used to mean there is no size yet (unsized), it is waiting to get a size from somewhere else. @@ -130,10 +132,10 @@ struct TSmallArrayVector { sizes->push_back(pair); } - void push_front(const TSmallArrayVector& newDims) + void push_back(const TSmallArrayVector& newDims) { alloc(); - sizes->insert(sizes->begin(), newDims.sizes->begin(), newDims.sizes->end()); + sizes->insert(sizes->end(), newDims.sizes->begin(), newDims.sizes->end()); } void pop_front() @@ -220,12 +222,13 @@ protected: struct TArraySizes { POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TArraySizes() : implicitArraySize(1) { } + TArraySizes() : implicitArraySize(1), variablyIndexed(false) { } // For breaking into two non-shared copies, independently modifiable. TArraySizes& operator=(const TArraySizes& from) { implicitArraySize = from.implicitArraySize; + variablyIndexed = from.variablyIndexed; sizes = from.sizes; return *this; @@ -252,10 +255,11 @@ struct TArraySizes { void addInnerSize(int s) { addInnerSize((unsigned)s, nullptr); } void addInnerSize(int s, TIntermTyped* n) { sizes.push_back((unsigned)s, n); } void addInnerSize(TArraySize pair) { sizes.push_back(pair.size, pair.node); } + void addInnerSizes(const TArraySizes& s) { sizes.push_back(s.sizes); } void changeOuterSize(int s) { sizes.changeFront((unsigned)s); } - int getImplicitSize() const { return (int)implicitArraySize; } - void setImplicitSize(int s) { implicitArraySize = s; } - bool isInnerImplicit() const + int getImplicitSize() const { return implicitArraySize; } + void updateImplicitSize(int s) { implicitArraySize = std::max(implicitArraySize, s); } + bool isInnerUnsized() const { for (int d = 1; d < sizes.size(); ++d) { if (sizes.getDimSize(d) == (unsigned)UnsizedArraySize) @@ -264,8 +268,31 @@ struct TArraySizes { return false; } - bool isImplicit() const { return getOuterSize() == UnsizedArraySize || isInnerImplicit(); } - void addOuterSizes(const TArraySizes& s) { sizes.push_front(s.sizes); } + bool clearInnerUnsized() + { + for (int d = 1; d < sizes.size(); ++d) { + if (sizes.getDimSize(d) == (unsigned)UnsizedArraySize) + setDimSize(d, 1); + } + + return false; + } + bool isInnerSpecialization() const + { + for (int d = 1; d < sizes.size(); ++d) { + if (sizes.getDimNode(d) != nullptr) + return true; + } + + return false; + } + bool isOuterSpecialization() + { + return sizes.getDimNode(0) != nullptr; + } + + bool hasUnsized() const { return getOuterSize() == UnsizedArraySize || isInnerUnsized(); } + bool isSized() const { return getOuterSize() != UnsizedArraySize; } void dereference() { sizes.pop_front(); } void copyDereferenced(const TArraySizes& rhs) { @@ -288,17 +315,8 @@ struct TArraySizes { return true; } - // Returns true if any of the dimensions of the array is sized with a node - // instead of a front-end compile-time constant. - bool containsNode() - { - for (int d = 0; d < sizes.size(); ++d) { - if (sizes.getDimNode(d) != nullptr) - return true; - } - - return false; - } + void setVariablyIndexed() { variablyIndexed = true; } + bool isVariablyIndexed() const { return variablyIndexed; } bool operator==(const TArraySizes& rhs) { return sizes == rhs.sizes; } bool operator!=(const TArraySizes& rhs) { return sizes != rhs.sizes; } @@ -308,9 +326,12 @@ protected: TArraySizes(const TArraySizes&); - // for tracking maximum referenced index, before an explicit size is given - // applies only to the outer-most dimension + // For tracking maximum referenced compile-time constant index. + // Applies only to the outer-most dimension. Potentially becomes + // the implicit size of the array, if not variably indexed and + // otherwise legal. int implicitArraySize; + bool variablyIndexed; // true if array is indexed with a non compile-time constant }; } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/Include/intermediate.h b/deps/glslang/glslang/glslang/Include/intermediate.h old mode 100644 new mode 100755 index ffdc82b003..19eb7aa876 --- a/deps/glslang/glslang/glslang/Include/intermediate.h +++ b/deps/glslang/glslang/glslang/Include/intermediate.h @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2016 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2016 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -46,7 +47,7 @@ #ifndef __INTERMEDIATE_H #define __INTERMEDIATE_H -#if _MSC_VER >= 1900 +#if defined(_MSC_VER) && _MSC_VER >= 1900 #pragma warning(disable : 4464) // relative include path contains '..' #pragma warning(disable : 5026) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted #endif @@ -84,64 +85,189 @@ enum TOperator { EOpPreIncrement, EOpPreDecrement, + // (u)int* -> bool + EOpConvInt8ToBool, + EOpConvUint8ToBool, + EOpConvInt16ToBool, + EOpConvUint16ToBool, EOpConvIntToBool, EOpConvUintToBool, - EOpConvFloatToBool, - EOpConvDoubleToBool, EOpConvInt64ToBool, EOpConvUint64ToBool, - EOpConvBoolToFloat, - EOpConvIntToFloat, - EOpConvUintToFloat, - EOpConvDoubleToFloat, - EOpConvInt64ToFloat, - EOpConvUint64ToFloat, - EOpConvUintToInt, - EOpConvFloatToInt, - EOpConvBoolToInt, - EOpConvDoubleToInt, - EOpConvInt64ToInt, - EOpConvUint64ToInt, - EOpConvIntToUint, - EOpConvFloatToUint, - EOpConvBoolToUint, - EOpConvDoubleToUint, - EOpConvInt64ToUint, - EOpConvUint64ToUint, - EOpConvIntToDouble, - EOpConvUintToDouble, - EOpConvFloatToDouble, - EOpConvBoolToDouble, - EOpConvInt64ToDouble, - EOpConvUint64ToDouble, - EOpConvBoolToInt64, - EOpConvIntToInt64, - EOpConvUintToInt64, - EOpConvFloatToInt64, - EOpConvDoubleToInt64, - EOpConvUint64ToInt64, - EOpConvBoolToUint64, - EOpConvIntToUint64, - EOpConvUintToUint64, - EOpConvFloatToUint64, - EOpConvDoubleToUint64, - EOpConvInt64ToUint64, -#ifdef AMD_EXTENSIONS - EOpConvBoolToFloat16, - EOpConvIntToFloat16, - EOpConvUintToFloat16, - EOpConvFloatToFloat16, - EOpConvDoubleToFloat16, - EOpConvInt64ToFloat16, - EOpConvUint64ToFloat16, + + // float* -> bool EOpConvFloat16ToBool, + EOpConvFloatToBool, + EOpConvDoubleToBool, + + // bool -> (u)int* + EOpConvBoolToInt8, + EOpConvBoolToUint8, + EOpConvBoolToInt16, + EOpConvBoolToUint16, + EOpConvBoolToInt, + EOpConvBoolToUint, + EOpConvBoolToInt64, + EOpConvBoolToUint64, + + // bool -> float* + EOpConvBoolToFloat16, + EOpConvBoolToFloat, + EOpConvBoolToDouble, + + // int8_t -> (u)int* + EOpConvInt8ToInt16, + EOpConvInt8ToInt, + EOpConvInt8ToInt64, + EOpConvInt8ToUint8, + EOpConvInt8ToUint16, + EOpConvInt8ToUint, + EOpConvInt8ToUint64, + + // uint8_t -> (u)int* + EOpConvUint8ToInt8, + EOpConvUint8ToInt16, + EOpConvUint8ToInt, + EOpConvUint8ToInt64, + EOpConvUint8ToUint16, + EOpConvUint8ToUint, + EOpConvUint8ToUint64, + + // int8_t -> float* + EOpConvInt8ToFloat16, + EOpConvInt8ToFloat, + EOpConvInt8ToDouble, + + // uint8_t -> float* + EOpConvUint8ToFloat16, + EOpConvUint8ToFloat, + EOpConvUint8ToDouble, + + // int16_t -> (u)int* + EOpConvInt16ToInt8, + EOpConvInt16ToInt, + EOpConvInt16ToInt64, + EOpConvInt16ToUint8, + EOpConvInt16ToUint16, + EOpConvInt16ToUint, + EOpConvInt16ToUint64, + + // uint16_t -> (u)int* + EOpConvUint16ToInt8, + EOpConvUint16ToInt16, + EOpConvUint16ToInt, + EOpConvUint16ToInt64, + EOpConvUint16ToUint8, + EOpConvUint16ToUint, + EOpConvUint16ToUint64, + + // int16_t -> float* + EOpConvInt16ToFloat16, + EOpConvInt16ToFloat, + EOpConvInt16ToDouble, + + // uint16_t -> float* + EOpConvUint16ToFloat16, + EOpConvUint16ToFloat, + EOpConvUint16ToDouble, + + // int32_t -> (u)int* + EOpConvIntToInt8, + EOpConvIntToInt16, + EOpConvIntToInt64, + EOpConvIntToUint8, + EOpConvIntToUint16, + EOpConvIntToUint, + EOpConvIntToUint64, + + // uint32_t -> (u)int* + EOpConvUintToInt8, + EOpConvUintToInt16, + EOpConvUintToInt, + EOpConvUintToInt64, + EOpConvUintToUint8, + EOpConvUintToUint16, + EOpConvUintToUint64, + + // int32_t -> float* + EOpConvIntToFloat16, + EOpConvIntToFloat, + EOpConvIntToDouble, + + // uint32_t -> float* + EOpConvUintToFloat16, + EOpConvUintToFloat, + EOpConvUintToDouble, + + // int64_t -> (u)int* + EOpConvInt64ToInt8, + EOpConvInt64ToInt16, + EOpConvInt64ToInt, + EOpConvInt64ToUint8, + EOpConvInt64ToUint16, + EOpConvInt64ToUint, + EOpConvInt64ToUint64, + + // uint64_t -> (u)int* + EOpConvUint64ToInt8, + EOpConvUint64ToInt16, + EOpConvUint64ToInt, + EOpConvUint64ToInt64, + EOpConvUint64ToUint8, + EOpConvUint64ToUint16, + EOpConvUint64ToUint, + + // int64_t -> float* + EOpConvInt64ToFloat16, + EOpConvInt64ToFloat, + EOpConvInt64ToDouble, + + // uint64_t -> float* + EOpConvUint64ToFloat16, + EOpConvUint64ToFloat, + EOpConvUint64ToDouble, + + // float16_t -> (u)int* + EOpConvFloat16ToInt8, + EOpConvFloat16ToInt16, EOpConvFloat16ToInt, + EOpConvFloat16ToInt64, + EOpConvFloat16ToUint8, + EOpConvFloat16ToUint16, EOpConvFloat16ToUint, + EOpConvFloat16ToUint64, + + // float16_t -> float* EOpConvFloat16ToFloat, EOpConvFloat16ToDouble, - EOpConvFloat16ToInt64, - EOpConvFloat16ToUint64, -#endif + + // float -> (u)int* + EOpConvFloatToInt8, + EOpConvFloatToInt16, + EOpConvFloatToInt, + EOpConvFloatToInt64, + EOpConvFloatToUint8, + EOpConvFloatToUint16, + EOpConvFloatToUint, + EOpConvFloatToUint64, + + // float -> float* + EOpConvFloatToFloat16, + EOpConvFloatToDouble, + + // float64 _t-> (u)int* + EOpConvDoubleToInt8, + EOpConvDoubleToInt16, + EOpConvDoubleToInt, + EOpConvDoubleToInt64, + EOpConvDoubleToUint8, + EOpConvDoubleToUint16, + EOpConvDoubleToUint, + EOpConvDoubleToUint64, + + // float64_t -> float* + EOpConvDoubleToFloat16, + EOpConvDoubleToFloat, // // binary operations @@ -183,6 +309,7 @@ enum TOperator { EOpVectorSwizzle, EOpMethod, + EOpScoping, // // Built-in functions mapped to operators @@ -243,6 +370,10 @@ enum TOperator { EOpDoubleBitsToUint64, EOpInt64BitsToDouble, EOpUint64BitsToDouble, + EOpFloat16BitsToInt16, + EOpFloat16BitsToUint16, + EOpInt16BitsToFloat16, + EOpUint16BitsToFloat16, EOpPackSnorm2x16, EOpUnpackSnorm2x16, EOpPackUnorm2x16, @@ -259,10 +390,22 @@ enum TOperator { EOpUnpackInt2x32, EOpPackUint2x32, EOpUnpackUint2x32, -#ifdef AMD_EXTENSIONS EOpPackFloat2x16, EOpUnpackFloat2x16, -#endif + EOpPackInt2x16, + EOpUnpackInt2x16, + EOpPackUint2x16, + EOpUnpackUint2x16, + EOpPackInt4x16, + EOpUnpackInt4x16, + EOpPackUint4x16, + EOpUnpackUint4x16, + EOpPack16, + EOpPack32, + EOpPack64, + EOpUnpack32, + EOpUnpack16, + EOpUnpack8, EOpLength, EOpDistance, @@ -328,6 +471,90 @@ enum TOperator { EOpAllInvocations, EOpAllInvocationsEqual, + EOpSubgroupGuardStart, + EOpSubgroupBarrier, + EOpSubgroupMemoryBarrier, + EOpSubgroupMemoryBarrierBuffer, + EOpSubgroupMemoryBarrierImage, + EOpSubgroupMemoryBarrierShared, // compute only + EOpSubgroupElect, + EOpSubgroupAll, + EOpSubgroupAny, + EOpSubgroupAllEqual, + EOpSubgroupBroadcast, + EOpSubgroupBroadcastFirst, + EOpSubgroupBallot, + EOpSubgroupInverseBallot, + EOpSubgroupBallotBitExtract, + EOpSubgroupBallotBitCount, + EOpSubgroupBallotInclusiveBitCount, + EOpSubgroupBallotExclusiveBitCount, + EOpSubgroupBallotFindLSB, + EOpSubgroupBallotFindMSB, + EOpSubgroupShuffle, + EOpSubgroupShuffleXor, + EOpSubgroupShuffleUp, + EOpSubgroupShuffleDown, + EOpSubgroupAdd, + EOpSubgroupMul, + EOpSubgroupMin, + EOpSubgroupMax, + EOpSubgroupAnd, + EOpSubgroupOr, + EOpSubgroupXor, + EOpSubgroupInclusiveAdd, + EOpSubgroupInclusiveMul, + EOpSubgroupInclusiveMin, + EOpSubgroupInclusiveMax, + EOpSubgroupInclusiveAnd, + EOpSubgroupInclusiveOr, + EOpSubgroupInclusiveXor, + EOpSubgroupExclusiveAdd, + EOpSubgroupExclusiveMul, + EOpSubgroupExclusiveMin, + EOpSubgroupExclusiveMax, + EOpSubgroupExclusiveAnd, + EOpSubgroupExclusiveOr, + EOpSubgroupExclusiveXor, + EOpSubgroupClusteredAdd, + EOpSubgroupClusteredMul, + EOpSubgroupClusteredMin, + EOpSubgroupClusteredMax, + EOpSubgroupClusteredAnd, + EOpSubgroupClusteredOr, + EOpSubgroupClusteredXor, + EOpSubgroupQuadBroadcast, + EOpSubgroupQuadSwapHorizontal, + EOpSubgroupQuadSwapVertical, + EOpSubgroupQuadSwapDiagonal, + +#ifdef NV_EXTENSIONS + EOpSubgroupPartition, + EOpSubgroupPartitionedAdd, + EOpSubgroupPartitionedMul, + EOpSubgroupPartitionedMin, + EOpSubgroupPartitionedMax, + EOpSubgroupPartitionedAnd, + EOpSubgroupPartitionedOr, + EOpSubgroupPartitionedXor, + EOpSubgroupPartitionedInclusiveAdd, + EOpSubgroupPartitionedInclusiveMul, + EOpSubgroupPartitionedInclusiveMin, + EOpSubgroupPartitionedInclusiveMax, + EOpSubgroupPartitionedInclusiveAnd, + EOpSubgroupPartitionedInclusiveOr, + EOpSubgroupPartitionedInclusiveXor, + EOpSubgroupPartitionedExclusiveAdd, + EOpSubgroupPartitionedExclusiveMul, + EOpSubgroupPartitionedExclusiveMin, + EOpSubgroupPartitionedExclusiveMax, + EOpSubgroupPartitionedExclusiveAnd, + EOpSubgroupPartitionedExclusiveOr, + EOpSubgroupPartitionedExclusiveXor, +#endif + + EOpSubgroupGuardStop, + #ifdef AMD_EXTENSIONS EOpMinInvocations, EOpMaxInvocations, @@ -335,6 +562,18 @@ enum TOperator { EOpMinInvocationsNonUniform, EOpMaxInvocationsNonUniform, EOpAddInvocationsNonUniform, + EOpMinInvocationsInclusiveScan, + EOpMaxInvocationsInclusiveScan, + EOpAddInvocationsInclusiveScan, + EOpMinInvocationsInclusiveScanNonUniform, + EOpMaxInvocationsInclusiveScanNonUniform, + EOpAddInvocationsInclusiveScanNonUniform, + EOpMinInvocationsExclusiveScan, + EOpMaxInvocationsExclusiveScan, + EOpAddInvocationsExclusiveScan, + EOpMinInvocationsExclusiveScanNonUniform, + EOpMaxInvocationsExclusiveScanNonUniform, + EOpAddInvocationsExclusiveScanNonUniform, EOpSwizzleInvocations, EOpSwizzleInvocationsMasked, EOpWriteInvocation, @@ -354,9 +593,18 @@ enum TOperator { EOpAtomicExchange, EOpAtomicCompSwap, - EOpAtomicCounterIncrement, - EOpAtomicCounterDecrement, + EOpAtomicCounterIncrement, // results in pre-increment value + EOpAtomicCounterDecrement, // results in post-decrement value EOpAtomicCounter, + EOpAtomicCounterAdd, + EOpAtomicCounterSubtract, + EOpAtomicCounterMin, + EOpAtomicCounterMax, + EOpAtomicCounterAnd, + EOpAtomicCounterOr, + EOpAtomicCounterXor, + EOpAtomicCounterExchange, + EOpAtomicCounterCompSwap, EOpAny, EOpAll, @@ -379,6 +627,10 @@ enum TOperator { EOpConstructGuardStart, EOpConstructInt, // these first scalar forms also identify what implicit conversion is needed EOpConstructUint, + EOpConstructInt8, + EOpConstructUint8, + EOpConstructInt16, + EOpConstructUint16, EOpConstructInt64, EOpConstructUint64, EOpConstructBool, @@ -393,6 +645,18 @@ enum TOperator { EOpConstructBVec2, EOpConstructBVec3, EOpConstructBVec4, + EOpConstructI8Vec2, + EOpConstructI8Vec3, + EOpConstructI8Vec4, + EOpConstructU8Vec2, + EOpConstructU8Vec3, + EOpConstructU8Vec4, + EOpConstructI16Vec2, + EOpConstructI16Vec3, + EOpConstructI16Vec4, + EOpConstructU16Vec2, + EOpConstructU16Vec3, + EOpConstructU16Vec4, EOpConstructIVec2, EOpConstructIVec3, EOpConstructIVec4, @@ -423,7 +687,33 @@ enum TOperator { EOpConstructDMat4x2, EOpConstructDMat4x3, EOpConstructDMat4x4, -#ifdef AMD_EXTENSIONS + EOpConstructIMat2x2, + EOpConstructIMat2x3, + EOpConstructIMat2x4, + EOpConstructIMat3x2, + EOpConstructIMat3x3, + EOpConstructIMat3x4, + EOpConstructIMat4x2, + EOpConstructIMat4x3, + EOpConstructIMat4x4, + EOpConstructUMat2x2, + EOpConstructUMat2x3, + EOpConstructUMat2x4, + EOpConstructUMat3x2, + EOpConstructUMat3x3, + EOpConstructUMat3x4, + EOpConstructUMat4x2, + EOpConstructUMat4x3, + EOpConstructUMat4x4, + EOpConstructBMat2x2, + EOpConstructBMat2x3, + EOpConstructBMat2x4, + EOpConstructBMat3x2, + EOpConstructBMat3x3, + EOpConstructBMat3x4, + EOpConstructBMat4x2, + EOpConstructBMat4x3, + EOpConstructBMat4x4, EOpConstructFloat16, EOpConstructF16Vec2, EOpConstructF16Vec3, @@ -437,9 +727,9 @@ enum TOperator { EOpConstructF16Mat4x2, EOpConstructF16Mat4x3, EOpConstructF16Mat4x4, -#endif EOpConstructStruct, EOpConstructTextureSampler, + EOpConstructNonuniform, // expected to be transformed away, not present in final AST EOpConstructGuardEnd, // @@ -466,7 +756,11 @@ enum TOperator { // Array operators // - EOpArrayLength, // "Array" distinguishes from length(v) built-in function, but it applies to vectors and matrices as well. + // Can apply to arrays, vectors, or matrices. + // Can be decomposed to a constant at compile time, but this does not always happen, + // due to link-time effects. So, consumer can expect either a link-time sized or + // run-time sized array. + EOpArrayLength, // // Image operations @@ -478,6 +772,10 @@ enum TOperator { EOpImageQuerySamples, EOpImageLoad, EOpImageStore, +#ifdef AMD_EXTENSIONS + EOpImageLoadLod, + EOpImageStoreLod, +#endif EOpImageAtomicAdd, EOpImageAtomicMin, EOpImageAtomicMax, @@ -490,6 +788,9 @@ enum TOperator { EOpSubpassLoad, EOpSubpassLoadMS, EOpSparseImageLoad, +#ifdef AMD_EXTENSIONS + EOpSparseImageLoadLod, +#endif EOpImageGuardEnd, @@ -527,6 +828,13 @@ enum TOperator { EOpTextureOffsetClamp, EOpTextureGradClamp, EOpTextureGradOffsetClamp, +#ifdef AMD_EXTENSIONS + EOpTextureGatherLod, + EOpTextureGatherLodOffset, + EOpTextureGatherLodOffsets, + EOpFragmentMaskFetch, + EOpFragmentFetch, +#endif EOpSparseTextureGuardBegin, @@ -546,6 +854,11 @@ enum TOperator { EOpSparseTextureOffsetClamp, EOpSparseTextureGradClamp, EOpSparseTextureGradOffsetClamp, +#ifdef AMD_EXTENSIONS + EOpSparseTextureGatherLod, + EOpSparseTextureGatherLodOffset, + EOpSparseTextureGatherLodOffsets, +#endif EOpSparseTextureGuardEnd, EOpSamplingGuardEnd, @@ -588,7 +901,8 @@ enum TOperator { EOpInterlockedOr, // ... EOpInterlockedXor, // ... EOpAllMemoryBarrierWithGroupSync, // memory barriers without non-hlsl AST equivalents - EOpGroupMemoryBarrierWithGroupSync, // ... + EOpDeviceMemoryBarrier, // ... + EOpDeviceMemoryBarrierWithGroupSync, // ... EOpWorkgroupMemoryBarrier, // ... EOpWorkgroupMemoryBarrierWithGroupSync, // ... EOpEvaluateAttributeSnapped, // InterpolateAtOffset with int position on 16x16 grid @@ -597,6 +911,7 @@ enum TOperator { EOpLit, // HLSL lighting coefficient vector EOpTextureBias, // HLSL texture bias: will be lowered to EOpTexture EOpAsDouble, // slightly different from EOpUint64BitsToDouble + EOpD3DCOLORtoUBYTE4, // convert and swizzle 4-component color to UBYTE4 range EOpMethodSample, // Texture object methods. These are translated to existing EOpMethodSampleBias, // AST methods, and exist to represent HLSL semantics until that @@ -611,6 +926,19 @@ enum TOperator { EOpMethodCalculateLevelOfDetail, // ... EOpMethodCalculateLevelOfDetailUnclamped, // ... + // Load already defined above for textures + EOpMethodLoad2, // Structure buffer object methods. These are translated to existing + EOpMethodLoad3, // AST methods, and exist to represent HLSL semantics until that + EOpMethodLoad4, // translation is performed. See HlslParseContext::decomposeSampleMethods(). + EOpMethodStore, // ... + EOpMethodStore2, // ... + EOpMethodStore3, // ... + EOpMethodStore4, // ... + EOpMethodIncrementCounter, // ... + EOpMethodDecrementCounter, // ... + // EOpMethodAppend is defined for geo shaders below + EOpMethodConsume, + // SM5 texture methods EOpMethodGatherRed, // These are covered under the above EOpMethodSample comment about EOpMethodGatherGreen, // translation to existing AST opcodes. They exist temporarily @@ -625,6 +953,15 @@ enum TOperator { // geometry methods EOpMethodAppend, // Geometry shader methods EOpMethodRestartStrip, // ... + + // matrix + EOpMatrixSwizzle, // select multiple matrix components (non-column) + + // SM6 wave ops + EOpWaveGetLaneCount, // Will decompose to gl_SubgroupSize. + EOpWaveGetLaneIndex, // Will decompose to gl_SubgroupInvocationID. + EOpWaveActiveCountBits, // Will decompose to subgroupBallotBitCount(subgroupBallot()). + EOpWavePrefixCountBits, // Will decompose to subgroupBallotInclusiveBitCount(subgroupBallot()). }; class TIntermTraverser; @@ -639,6 +976,7 @@ class TIntermBranch; class TIntermTyped; class TIntermMethod; class TIntermSymbol; +class TIntermLoop; } // end namespace glslang @@ -666,6 +1004,7 @@ public: virtual glslang::TIntermMethod* getAsMethodNode() { return 0; } virtual glslang::TIntermSymbol* getAsSymbolNode() { return 0; } virtual glslang::TIntermBranch* getAsBranchNode() { return 0; } + virtual glslang::TIntermLoop* getAsLoopNode() { return 0; } virtual const glslang::TIntermTyped* getAsTyped() const { return 0; } virtual const glslang::TIntermOperator* getAsOperator() const { return 0; } @@ -678,6 +1017,7 @@ public: virtual const glslang::TIntermMethod* getAsMethodNode() const { return 0; } virtual const glslang::TIntermSymbol* getAsSymbolNode() const { return 0; } virtual const glslang::TIntermBranch* getAsBranchNode() const { return 0; } + virtual const glslang::TIntermLoop* getAsLoopNode() const { return 0; } virtual ~TIntermNode() { } protected: @@ -721,6 +1061,8 @@ public: virtual bool isVector() const { return type.isVector(); } virtual bool isScalar() const { return type.isScalar(); } virtual bool isStruct() const { return type.isStruct(); } + virtual bool isFloatingDomain() const { return type.isFloatingDomain(); } + virtual bool isIntegerDomain() const { return type.isIntegerDomain(); } TString getCompleteString() const { return type.getCompleteString(); } protected: @@ -737,17 +1079,37 @@ public: body(aBody), test(aTest), terminal(aTerminal), - first(testFirst) { } + first(testFirst), + unroll(false), + dontUnroll(false), + dependency(0) + { } + + virtual TIntermLoop* getAsLoopNode() { return this; } + virtual const TIntermLoop* getAsLoopNode() const { return this; } virtual void traverse(TIntermTraverser*); TIntermNode* getBody() const { return body; } TIntermTyped* getTest() const { return test; } TIntermTyped* getTerminal() const { return terminal; } bool testFirst() const { return first; } + + void setUnroll() { unroll = true; } + void setDontUnroll() { dontUnroll = true; } + bool getUnroll() const { return unroll; } + bool getDontUnroll() const { return dontUnroll; } + + static const unsigned int dependencyInfinite = 0xFFFFFFFF; + void setLoopDependency(int d) { dependency = d; } + int getLoopDependency() const { return dependency; } + protected: TIntermNode* body; // code to loop over TIntermTyped* test; // exit condition associated with loop, could be 0 for 'for' loops TIntermTyped* terminal; // exists for for-loops bool first; // true for while and for, not for do-while + bool unroll; // true if unroll requested + bool dontUnroll; // true if request to not unroll + unsigned int dependency; // loop dependency hint; 0 means not set or unknown }; // @@ -795,7 +1157,11 @@ public: // per process threadPoolAllocator, then it causes increased memory usage per compile // it is essential to use "symbol = sym" to assign to symbol TIntermSymbol(int i, const TString& n, const TType& t) - : TIntermTyped(t), id(i), constSubtree(nullptr) + : TIntermTyped(t), id(i), +#ifdef ENABLE_HLSL + flattenSubset(-1), +#endif + constSubtree(nullptr) { name = n; } virtual int getId() const { return id; } virtual const TString& getName() const { return name; } @@ -806,9 +1172,20 @@ 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. + virtual void switchId(int newId) { id = newId; } 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; @@ -846,6 +1223,9 @@ struct TCrackedTextureOp { bool grad; bool subpass; bool lodClamp; +#ifdef AMD_EXTENSIONS + bool fragMask; +#endif }; // @@ -893,6 +1273,9 @@ public: cracked.grad = false; cracked.subpass = false; cracked.lodClamp = false; +#ifdef AMD_EXTENSIONS + cracked.fragMask = false; +#endif switch (op) { case EOpImageQuerySize: @@ -1001,6 +1384,38 @@ public: cracked.gather = true; cracked.offsets = true; break; +#ifdef AMD_EXTENSIONS + case EOpTextureGatherLod: + case EOpSparseTextureGatherLod: + cracked.gather = true; + cracked.lod = true; + break; + case EOpTextureGatherLodOffset: + case EOpSparseTextureGatherLodOffset: + cracked.gather = true; + cracked.offset = true; + cracked.lod = true; + break; + case EOpTextureGatherLodOffsets: + case EOpSparseTextureGatherLodOffsets: + cracked.gather = true; + cracked.offsets = true; + cracked.lod = true; + break; + case EOpImageLoadLod: + case EOpImageStoreLod: + case EOpSparseImageLoadLod: + cracked.lod = true; + break; + case EOpFragmentMaskFetch: + cracked.subpass = sampler.dim == EsdSubpass; + cracked.fragMask = true; + break; + case EOpFragmentFetch: + cracked.subpass = sampler.dim == EsdSubpass; + cracked.fragMask = true; + break; +#endif case EOpSubpassLoad: case EOpSubpassLoadMS: cracked.subpass = true; @@ -1060,14 +1475,14 @@ protected: }; typedef TVector TIntermSequence; -typedef TVector TQualifierList; +typedef TVector TQualifierList; // // Nodes that operate on an arbitrary sized set of children. // class TIntermAggregate : public TIntermOperator { public: - TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(0) { } - TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(0) { } + TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(nullptr) { } + TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(nullptr) { } ~TIntermAggregate() { delete pragmaTable; } virtual TIntermAggregate* getAsAggregate() { return this; } virtual const TIntermAggregate* getAsAggregate() const { return this; } @@ -1085,7 +1500,7 @@ public: void setDebug(bool d) { debug = d; } bool getOptimize() const { return optimize; } bool getDebug() const { return debug; } - void addToPragmaTable(const TPragmaTable& pTable); + void setPragmaTable(const TPragmaTable& pTable); const TPragmaTable& getPragmaTable() const { return *pragmaTable; } protected: TIntermAggregate(const TIntermAggregate&); // disallow copy constructor @@ -1105,19 +1520,35 @@ protected: class TIntermSelection : public TIntermTyped { public: TIntermSelection(TIntermTyped* cond, TIntermNode* trueB, TIntermNode* falseB) : - TIntermTyped(EbtVoid), condition(cond), trueBlock(trueB), falseBlock(falseB) {} + TIntermTyped(EbtVoid), condition(cond), trueBlock(trueB), falseBlock(falseB), + shortCircuit(true), + flatten(false), dontFlatten(false) {} TIntermSelection(TIntermTyped* cond, TIntermNode* trueB, TIntermNode* falseB, const TType& type) : - TIntermTyped(type), condition(cond), trueBlock(trueB), falseBlock(falseB) {} + TIntermTyped(type), condition(cond), trueBlock(trueB), falseBlock(falseB), + shortCircuit(true), + flatten(false), dontFlatten(false) {} virtual void traverse(TIntermTraverser*); virtual TIntermTyped* getCondition() const { return condition; } virtual TIntermNode* getTrueBlock() const { return trueBlock; } virtual TIntermNode* getFalseBlock() const { return falseBlock; } virtual TIntermSelection* getAsSelectionNode() { return this; } virtual const TIntermSelection* getAsSelectionNode() const { return this; } + + void setNoShortCircuit() { shortCircuit = false; } + bool getShortCircuit() const { return shortCircuit; } + + void setFlatten() { flatten = true; } + void setDontFlatten() { dontFlatten = true; } + bool getFlatten() const { return flatten; } + bool getDontFlatten() const { return dontFlatten; } + protected: TIntermTyped* condition; TIntermNode* trueBlock; TIntermNode* falseBlock; + bool shortCircuit; // normally all if-then-else and all GLSL ?: short-circuit, but HLSL ?: does not + bool flatten; // true if flatten requested + bool dontFlatten; // true if requested to not flatten }; // @@ -1128,15 +1559,24 @@ protected: // class TIntermSwitch : public TIntermNode { public: - TIntermSwitch(TIntermTyped* cond, TIntermAggregate* b) : condition(cond), body(b) { } + TIntermSwitch(TIntermTyped* cond, TIntermAggregate* b) : condition(cond), body(b), + flatten(false), dontFlatten(false) {} virtual void traverse(TIntermTraverser*); virtual TIntermNode* getCondition() const { return condition; } virtual TIntermAggregate* getBody() const { return body; } virtual TIntermSwitch* getAsSwitchNode() { return this; } virtual const TIntermSwitch* getAsSwitchNode() const { return this; } + + void setFlatten() { flatten = true; } + void setDontFlatten() { dontFlatten = true; } + bool getFlatten() const { return flatten; } + bool getDontFlatten() const { return dontFlatten; } + protected: TIntermTyped* condition; TIntermAggregate* body; + bool flatten; // true if flatten requested + bool dontFlatten; // true if requested to not flatten }; enum TVisit diff --git a/deps/glslang/glslang/glslang/Include/revision.h b/deps/glslang/glslang/glslang/Include/revision.h index 2f391b6954..f163142b9f 100644 --- a/deps/glslang/glslang/glslang/Include/revision.h +++ b/deps/glslang/glslang/glslang/Include/revision.h @@ -1,6 +1,3 @@ // This header is generated by the make-revision script. -// For the version, it uses the latest git tag followed by the number of commits. -// For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1688" -#define GLSLANG_DATE "09-Dec-2016" +#define GLSLANG_PATCH_LEVEL 2776 diff --git a/deps/glslang/glslang/glslang/Include/revision.template b/deps/glslang/glslang/glslang/Include/revision.template index 1dc3392b39..6c13630b27 100644 --- a/deps/glslang/glslang/glslang/Include/revision.template +++ b/deps/glslang/glslang/glslang/Include/revision.template @@ -1,4 +1,4 @@ -// The file revision.h should be updated to the latest version, somehow, on +// The file revision.h should be updated to the latest version, somehow, on // check-in, if glslang has changed. // // revision.template is the source for revision.h when using SubWCRev as the diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Constant.cpp b/deps/glslang/glslang/glslang/MachineIndependent/Constant.cpp index 804626fa78..142492dc33 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/Constant.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/Constant.cpp @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,24 +21,25 @@ // 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 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 "localintermediate.h" #include #include #include +#include namespace { @@ -57,7 +59,7 @@ bool isNan(double x) u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; - return (bitPatternH & 0x7ff80000) == 0x7ff80000 && + return (bitPatternH & 0x7ff80000) == 0x7ff80000 && ((bitPatternH & 0xFFFFF) != 0 || bitPatternL != 0); } @@ -68,7 +70,7 @@ bool isInf(double x) u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; - return (bitPatternH & 0x7ff00000) == 0x7ff00000 && + return (bitPatternH & 0x7ff00000) == 0x7ff00000 && (bitPatternH & 0xFFFFF) == 0 && bitPatternL == 0; } @@ -131,7 +133,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right TConstUnionArray smearedArray(newComps, rightNode->getConstArray()[0]); rightUnionArray = smearedArray; } else if (constComps > 1 && newComps == 1) { - // for a case like vec4 f = 1.2 + vec4(2,3,4,5); + // for a case like vec4 f = 1.2 + vec4(2,3,4,5); newComps = constComps; rightUnionArray = rightNode->getConstArray(); TConstUnionArray smearedArray(newComps, getConstArray()[0]); @@ -176,11 +178,40 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right switch (getType().getBasicType()) { case EbtDouble: case EbtFloat: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif newConstArray[i].setDConst(leftUnionArray[i].getDConst() / rightUnionArray[i].getDConst()); break; + case EbtInt8: + if (rightUnionArray[i] == 0) + newConstArray[i].setI8Const(0x7F); + else if (rightUnionArray[i].getI8Const() == -1 && leftUnionArray[i].getI8Const() == (signed char)0x80) + newConstArray[i].setI8Const((signed char)0x80); + else + newConstArray[i].setI8Const(leftUnionArray[i].getI8Const() / rightUnionArray[i].getI8Const()); + break; + + case EbtUint8: + if (rightUnionArray[i] == 0) { + newConstArray[i].setU8Const(0xFF); + } else + newConstArray[i].setU8Const(leftUnionArray[i].getU8Const() / rightUnionArray[i].getU8Const()); + break; + + case EbtInt16: + if (rightUnionArray[i] == 0) + newConstArray[i].setI16Const(0x7FFF); + else if (rightUnionArray[i].getI16Const() == -1 && leftUnionArray[i].getI16Const() == (signed short)0x8000) + newConstArray[i].setI16Const(short(0x8000)); + else + newConstArray[i].setI16Const(leftUnionArray[i].getI16Const() / rightUnionArray[i].getI16Const()); + break; + + case EbtUint16: + if (rightUnionArray[i] == 0) { + newConstArray[i].setU16Const(0xFFFF); + } else + newConstArray[i].setU16Const(leftUnionArray[i].getU16Const() / rightUnionArray[i].getU16Const()); + break; case EbtInt: if (rightUnionArray[i] == 0) @@ -193,7 +224,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right case EbtUint: if (rightUnionArray[i] == 0) { - newConstArray[i].setUConst(0xFFFFFFFF); + newConstArray[i].setUConst(0xFFFFFFFFu); } else newConstArray[i].setUConst(leftUnionArray[i].getUConst() / rightUnionArray[i].getUConst()); break; @@ -246,8 +277,31 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right for (int i = 0; i < newComps; i++) { if (rightUnionArray[i] == 0) newConstArray[i] = leftUnionArray[i]; - else - newConstArray[i] = leftUnionArray[i] % rightUnionArray[i]; + else { + switch (getType().getBasicType()) { + case EbtInt: + if (rightUnionArray[i].getIConst() == -1 && leftUnionArray[i].getIConst() == INT_MIN) { + newConstArray[i].setIConst(0); + break; + } else goto modulo_default; + + case EbtInt64: + if (rightUnionArray[i].getI64Const() == -1 && leftUnionArray[i].getI64Const() == LLONG_MIN) { + newConstArray[i].setI64Const(0); + break; + } else goto modulo_default; +#ifdef AMD_EXTENSIONS + case EbtInt16: + if (rightUnionArray[i].getIConst() == -1 && leftUnionArray[i].getIConst() == SHRT_MIN) { + newConstArray[i].setIConst(0); + break; + } else goto modulo_default; +#endif + default: + modulo_default: + newConstArray[i] = leftUnionArray[i] % rightUnionArray[i]; + } + } } break; @@ -370,6 +424,12 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) resultSize = 2; break; + case EOpPack16: + case EOpPack32: + case EOpPack64: + case EOpUnpack32: + case EOpUnpack16: + case EOpUnpack8: case EOpNormalize: componentWise = false; resultSize = objectSize; @@ -428,6 +488,12 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpPackSnorm2x16: case EOpPackUnorm2x16: case EOpPackHalf2x16: + case EOpPack16: + case EOpPack32: + case EOpPack64: + case EOpUnpack32: + case EOpUnpack16: + case EOpUnpack8: case EOpUnpackSnorm2x16: case EOpUnpackUnorm2x16: @@ -453,14 +519,16 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpNegative: switch (getType().getBasicType()) { case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif case EbtFloat: newConstArray[i].setDConst(-unionArray[i].getDConst()); break; + case EbtInt8: newConstArray[i].setI8Const(-unionArray[i].getI8Const()); break; + case EbtUint8: newConstArray[i].setU8Const(static_cast(-static_cast(unionArray[i].getU8Const()))); break; + case EbtInt16: newConstArray[i].setI16Const(-unionArray[i].getI16Const()); break; + case EbtUint16:newConstArray[i].setU16Const(static_cast(-static_cast(unionArray[i].getU16Const()))); break; case EbtInt: newConstArray[i].setIConst(-unionArray[i].getIConst()); break; case EbtUint: newConstArray[i].setUConst(static_cast(-static_cast(unionArray[i].getUConst()))); break; case EbtInt64: newConstArray[i].setI64Const(-unionArray[i].getI64Const()); break; - case EbtUint64: newConstArray[i].setU64Const(static_cast(-static_cast(unionArray[i].getU64Const()))); break; + case EbtUint64: newConstArray[i].setU64Const(static_cast(-static_cast(unionArray[i].getU64Const()))); break; default: return 0; } @@ -610,7 +678,12 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpUintBitsToFloat: case EOpDoubleBitsToInt64: case EOpDoubleBitsToUint64: - + case EOpInt64BitsToDouble: + case EOpUint64BitsToDouble: + case EOpFloat16BitsToInt16: + case EOpFloat16BitsToUint16: + case EOpInt16BitsToFloat16: + case EOpUint16BitsToFloat16: default: return 0; } @@ -626,9 +699,12 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) // // Do constant folding for an aggregate node that has all its children // as constants and an operator that requires constant folding. -// +// TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) { + if (aggrNode == nullptr) + return aggrNode; + if (! areAllChildConst(aggrNode)) return aggrNode; @@ -691,17 +767,6 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) for (unsigned int arg = 0; arg < children.size(); ++arg) childConstUnions.push_back(children[arg]->getAsConstantUnion()->getConstArray()); - // Second, do the actual folding - - bool isFloatingPoint = children[0]->getAsTyped()->getBasicType() == EbtFloat || -#ifdef AMD_EXTENSIONS - children[0]->getAsTyped()->getBasicType() == EbtFloat16 || -#endif - children[0]->getAsTyped()->getBasicType() == EbtDouble; - bool isSigned = children[0]->getAsTyped()->getBasicType() == EbtInt || - children[0]->getAsTyped()->getBasicType() == EbtInt64; - bool isInt64 = children[0]->getAsTyped()->getBasicType() == EbtInt64 || - children[0]->getAsTyped()->getBasicType() == EbtUint64; if (componentwise) { for (int comp = 0; comp < objectSize; comp++) { @@ -722,53 +787,114 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) newConstArray[comp].setDConst(pow(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); break; case EOpMin: - if (isFloatingPoint) + switch(children[0]->getAsTyped()->getBasicType()) { + case EbtFloat16: + case EbtFloat: + case EbtDouble: newConstArray[comp].setDConst(std::min(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - else if (isSigned) { - if (isInt64) - newConstArray[comp].setI64Const(std::min(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); - else - newConstArray[comp].setIConst(std::min(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); - } else { - if (isInt64) - newConstArray[comp].setU64Const(std::min(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); - else - newConstArray[comp].setUConst(std::min(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); + break; + case EbtInt8: + newConstArray[comp].setI8Const(std::min(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const())); + break; + case EbtUint8: + newConstArray[comp].setU8Const(std::min(childConstUnions[0][arg0comp].getU8Const(), childConstUnions[1][arg1comp].getU8Const())); + break; + case EbtInt16: + newConstArray[comp].setI16Const(std::min(childConstUnions[0][arg0comp].getI16Const(), childConstUnions[1][arg1comp].getI16Const())); + break; + case EbtUint16: + newConstArray[comp].setU16Const(std::min(childConstUnions[0][arg0comp].getU16Const(), childConstUnions[1][arg1comp].getU16Const())); + break; + case EbtInt: + newConstArray[comp].setIConst(std::min(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); + break; + case EbtUint: + newConstArray[comp].setUConst(std::min(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); + break; + case EbtInt64: + newConstArray[comp].setI64Const(std::min(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); + break; + case EbtUint64: + newConstArray[comp].setU64Const(std::min(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); + break; + default: assert(false && "Default missing"); } break; case EOpMax: - if (isFloatingPoint) + switch(children[0]->getAsTyped()->getBasicType()) { + case EbtFloat16: + case EbtFloat: + case EbtDouble: newConstArray[comp].setDConst(std::max(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst())); - else if (isSigned) { - if (isInt64) - newConstArray[comp].setI64Const(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); - else - newConstArray[comp].setIConst(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); - } else { - if (isInt64) - newConstArray[comp].setU64Const(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); - else - newConstArray[comp].setUConst(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); + break; + case EbtInt8: + newConstArray[comp].setI8Const(std::max(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const())); + break; + case EbtUint8: + newConstArray[comp].setU8Const(std::max(childConstUnions[0][arg0comp].getU8Const(), childConstUnions[1][arg1comp].getU8Const())); + break; + case EbtInt16: + newConstArray[comp].setI16Const(std::max(childConstUnions[0][arg0comp].getI16Const(), childConstUnions[1][arg1comp].getI16Const())); + break; + case EbtUint16: + newConstArray[comp].setU16Const(std::max(childConstUnions[0][arg0comp].getU16Const(), childConstUnions[1][arg1comp].getU16Const())); + break; + case EbtInt: + newConstArray[comp].setIConst(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst())); + break; + case EbtUint: + newConstArray[comp].setUConst(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst())); + break; + case EbtInt64: + newConstArray[comp].setI64Const(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const())); + break; + case EbtUint64: + newConstArray[comp].setU64Const(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const())); + break; + default: assert(false && "Default missing"); } break; case EOpClamp: - if (isFloatingPoint) + switch(children[0]->getAsTyped()->getBasicType()) { + case EbtFloat16: + case EbtFloat: + case EbtDouble: newConstArray[comp].setDConst(std::min(std::max(childConstUnions[0][arg0comp].getDConst(), childConstUnions[1][arg1comp].getDConst()), childConstUnions[2][arg2comp].getDConst())); - else if (isSigned) { - if (isInt64) - newConstArray[comp].setI64Const(std::min(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const()), - childConstUnions[2][arg2comp].getI64Const())); - else - newConstArray[comp].setIConst(std::min(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst()), + break; + case EbtInt8: + newConstArray[comp].setI8Const(std::min(std::max(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const()), + childConstUnions[2][arg2comp].getI8Const())); + break; + case EbtUint8: + newConstArray[comp].setU8Const(std::min(std::max(childConstUnions[0][arg0comp].getU8Const(), childConstUnions[1][arg1comp].getU8Const()), + childConstUnions[2][arg2comp].getU8Const())); + break; + case EbtInt16: + newConstArray[comp].setI16Const(std::min(std::max(childConstUnions[0][arg0comp].getI16Const(), childConstUnions[1][arg1comp].getI16Const()), + childConstUnions[2][arg2comp].getI16Const())); + break; + case EbtUint16: + newConstArray[comp].setU16Const(std::min(std::max(childConstUnions[0][arg0comp].getU16Const(), childConstUnions[1][arg1comp].getU16Const()), + childConstUnions[2][arg2comp].getU16Const())); + break; + case EbtInt: + newConstArray[comp].setIConst(std::min(std::max(childConstUnions[0][arg0comp].getIConst(), childConstUnions[1][arg1comp].getIConst()), childConstUnions[2][arg2comp].getIConst())); - } else { - if (isInt64) - newConstArray[comp].setU64Const(std::min(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const()), - childConstUnions[2][arg2comp].getU64Const())); - else - newConstArray[comp].setUConst(std::min(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()), + break; + case EbtUint: + newConstArray[comp].setUConst(std::min(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()), childConstUnions[2][arg2comp].getUConst())); + break; + case EbtInt64: + newConstArray[comp].setI64Const(std::min(std::max(childConstUnions[0][arg0comp].getI64Const(), childConstUnions[1][arg1comp].getI64Const()), + childConstUnions[2][arg2comp].getI64Const())); + break; + case EbtUint64: + newConstArray[comp].setU64Const(std::min(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const()), + childConstUnions[2][arg2comp].getU64Const())); + break; + default: assert(false && "Default missing"); } break; case EOpLessThan: @@ -802,7 +928,7 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) break; case EOpSmoothStep: { - double t = (childConstUnions[2][arg2comp].getDConst() - childConstUnions[0][arg0comp].getDConst()) / + double t = (childConstUnions[2][arg2comp].getDConst() - childConstUnions[0][arg0comp].getDConst()) / (childConstUnions[1][arg1comp].getDConst() - childConstUnions[0][arg0comp].getDConst()); if (t < 0.0) t = 0.0; @@ -841,7 +967,7 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) newConstArray[2] = childConstUnions[0][0] * childConstUnions[1][1] - childConstUnions[0][1] * childConstUnions[1][0]; break; case EOpFaceForward: - // If dot(Nref, I) < 0 return N, otherwise return –N: Arguments are (N, I, Nref). + // If dot(Nref, I) < 0 return N, otherwise return -N: Arguments are (N, I, Nref). dot = childConstUnions[1].dot(childConstUnions[2]); for (int comp = 0; comp < numComps; ++comp) { if (dot < 0.0) @@ -968,23 +1094,23 @@ TIntermTyped* TIntermediate::foldDereference(TIntermTyped* node, int index, cons } // -// Make a constant vector node or constant scalar node, representing a given +// Make a constant vector node or constant scalar node, representing a given // constant vector and constant swizzle into it. // -TIntermTyped* TIntermediate::foldSwizzle(TIntermTyped* node, TVectorFields& fields, const TSourceLoc& loc) +TIntermTyped* TIntermediate::foldSwizzle(TIntermTyped* node, TSwizzleSelectors& selectors, const TSourceLoc& loc) { const TConstUnionArray& unionArray = node->getAsConstantUnion()->getConstArray(); - TConstUnionArray constArray(fields.num); + TConstUnionArray constArray(selectors.size()); - for (int i = 0; i < fields.num; i++) - constArray[i] = unionArray[fields.offsets[i]]; + for (int i = 0; i < selectors.size(); i++) + constArray[i] = unionArray[selectors[i]]; TIntermTyped* result = addConstantUnion(constArray, node->getType(), loc); if (result == 0) result = node; else - result->setType(TType(node->getBasicType(), EvqConst, fields.num)); + result->setType(TType(node->getBasicType(), EvqConst, selectors.size())); return result; } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/InfoSink.cpp b/deps/glslang/glslang/glslang/MachineIndependent/InfoSink.cpp index 79acba8788..d00c422566 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/InfoSink.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/InfoSink.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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/InfoSink.h" @@ -59,10 +59,10 @@ void TInfoSinkBase::append(const char* s) } void TInfoSinkBase::append(int count, char c) -{ +{ if (outputStream & EString) { checkMem(count); - sink.append(count, c); + sink.append(count, c); } //#ifdef _WIN32 @@ -79,10 +79,10 @@ void TInfoSinkBase::append(int count, char c) } void TInfoSinkBase::append(const TPersistString& t) -{ +{ if (outputStream & EString) { checkMem(t.size()); - sink.append(t); + sink.append(t); } //#ifdef _WIN32 @@ -95,10 +95,10 @@ void TInfoSinkBase::append(const TPersistString& t) } void TInfoSinkBase::append(const TString& t) -{ +{ if (outputStream & EString) { checkMem(t.size()); - sink.append(t.c_str()); + sink.append(t.c_str()); } //#ifdef _WIN32 diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Initialize.cpp b/deps/glslang/glslang/glslang/MachineIndependent/Initialize.cpp old mode 100644 new mode 100755 index c8739535e7..34341b0ea1 --- a/deps/glslang/glslang/glslang/MachineIndependent/Initialize.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/Initialize.cpp @@ -1,13 +1,14 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2016 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2016 LunarG, Inc. +// Copyright (C) 2015-2017 Google, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,22 +22,22 @@ // 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 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 +// 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. // @@ -83,6 +84,13 @@ TBuiltIns::TBuiltIns() // Set up textual representations for making all the permutations // of texturing/imaging functions. prefixes[EbtFloat] = ""; +#ifdef AMD_EXTENSIONS + prefixes[EbtFloat16] = "f16"; +#endif + prefixes[EbtInt8] = "i8"; + prefixes[EbtUint8] = "u8"; + prefixes[EbtInt16] = "i16"; + prefixes[EbtUint16] = "u16"; prefixes[EbtInt] = "i"; prefixes[EbtUint] = "u"; postfixes[2] = "2"; @@ -128,47 +136,47 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 radians(vec2 degrees);" "vec3 radians(vec3 degrees);" "vec4 radians(vec4 degrees);" - + "float degrees(float radians);" "vec2 degrees(vec2 radians);" "vec3 degrees(vec3 radians);" "vec4 degrees(vec4 radians);" - + "float sin(float angle);" "vec2 sin(vec2 angle);" "vec3 sin(vec3 angle);" "vec4 sin(vec4 angle);" - + "float cos(float angle);" "vec2 cos(vec2 angle);" "vec3 cos(vec3 angle);" "vec4 cos(vec4 angle);" - + "float tan(float angle);" "vec2 tan(vec2 angle);" "vec3 tan(vec3 angle);" "vec4 tan(vec4 angle);" - + "float asin(float x);" "vec2 asin(vec2 x);" "vec3 asin(vec3 x);" "vec4 asin(vec4 x);" - + "float acos(float x);" "vec2 acos(vec2 x);" "vec3 acos(vec3 x);" "vec4 acos(vec4 x);" - + "float atan(float y, float x);" "vec2 atan(vec2 y, vec2 x);" "vec3 atan(vec3 y, vec3 x);" "vec4 atan(vec4 y, vec4 x);" - + "float atan(float y_over_x);" "vec2 atan(vec2 y_over_x);" "vec3 atan(vec3 y_over_x);" "vec4 atan(vec4 y_over_x);" - + "\n"); if (version >= 130) { @@ -177,32 +185,32 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 sinh(vec2 angle);" "vec3 sinh(vec3 angle);" "vec4 sinh(vec4 angle);" - + "float cosh(float angle);" "vec2 cosh(vec2 angle);" "vec3 cosh(vec3 angle);" "vec4 cosh(vec4 angle);" - + "float tanh(float angle);" "vec2 tanh(vec2 angle);" "vec3 tanh(vec3 angle);" "vec4 tanh(vec4 angle);" - + "float asinh(float x);" "vec2 asinh(vec2 x);" "vec3 asinh(vec3 x);" "vec4 asinh(vec4 x);" - + "float acosh(float x);" "vec2 acosh(vec2 x);" "vec3 acosh(vec3 x);" "vec4 acosh(vec4 x);" - + "float atanh(float y_over_x);" "vec2 atanh(vec2 y_over_x);" "vec3 atanh(vec3 y_over_x);" "vec4 atanh(vec4 y_over_x);" - + "\n"); } @@ -214,37 +222,37 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 pow(vec2 x, vec2 y);" "vec3 pow(vec3 x, vec3 y);" "vec4 pow(vec4 x, vec4 y);" - + "float exp(float x);" "vec2 exp(vec2 x);" "vec3 exp(vec3 x);" "vec4 exp(vec4 x);" - + "float log(float x);" "vec2 log(vec2 x);" "vec3 log(vec3 x);" "vec4 log(vec4 x);" - + "float exp2(float x);" "vec2 exp2(vec2 x);" "vec3 exp2(vec3 x);" "vec4 exp2(vec4 x);" - + "float log2(float x);" "vec2 log2(vec2 x);" "vec3 log2(vec3 x);" "vec4 log2(vec4 x);" - + "float sqrt(float x);" "vec2 sqrt(vec2 x);" "vec3 sqrt(vec3 x);" "vec4 sqrt(vec4 x);" - + "float inversesqrt(float x);" "vec2 inversesqrt(vec2 x);" "vec3 inversesqrt(vec3 x);" "vec4 inversesqrt(vec4 x);" - + "\n"); // @@ -255,27 +263,27 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 abs(vec2 x);" "vec3 abs(vec3 x);" "vec4 abs(vec4 x);" - + "float sign(float x);" "vec2 sign(vec2 x);" "vec3 sign(vec3 x);" "vec4 sign(vec4 x);" - + "float floor(float x);" "vec2 floor(vec2 x);" "vec3 floor(vec3 x);" "vec4 floor(vec4 x);" - + "float ceil(float x);" "vec2 ceil(vec2 x);" "vec3 ceil(vec3 x);" "vec4 ceil(vec4 x);" - + "float fract(float x);" "vec2 fract(vec2 x);" "vec3 fract(vec3 x);" "vec4 fract(vec4 x);" - + "float mod(float x, float y);" "vec2 mod(vec2 x, float y);" "vec3 mod(vec3 x, float y);" @@ -283,7 +291,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 mod(vec2 x, vec2 y);" "vec3 mod(vec3 x, vec3 y);" "vec4 mod(vec4 x, vec4 y);" - + "float min(float x, float y);" "vec2 min(vec2 x, float y);" "vec3 min(vec3 x, float y);" @@ -291,7 +299,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 min(vec2 x, vec2 y);" "vec3 min(vec3 x, vec3 y);" "vec4 min(vec4 x, vec4 y);" - + "float max(float x, float y);" "vec2 max(vec2 x, float y);" "vec3 max(vec3 x, float y);" @@ -299,7 +307,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 max(vec2 x, vec2 y);" "vec3 max(vec3 x, vec3 y);" "vec4 max(vec4 x, vec4 y);" - + "float clamp(float x, float minVal, float maxVal);" "vec2 clamp(vec2 x, float minVal, float maxVal);" "vec3 clamp(vec3 x, float minVal, float maxVal);" @@ -307,7 +315,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 clamp(vec2 x, vec2 minVal, vec2 maxVal);" "vec3 clamp(vec3 x, vec3 minVal, vec3 maxVal);" "vec4 clamp(vec4 x, vec4 minVal, vec4 maxVal);" - + "float mix(float x, float y, float a);" "vec2 mix(vec2 x, vec2 y, float a);" "vec3 mix(vec3 x, vec3 y, float a);" @@ -323,7 +331,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 step(float edge, vec2 x);" "vec3 step(float edge, vec3 x);" "vec4 step(float edge, vec4 x);" - + "float smoothstep(float edge0, float edge1, float x);" "vec2 smoothstep(vec2 edge0, vec2 edge1, vec2 x);" "vec3 smoothstep(vec3 edge0, vec3 edge1, vec3 x);" @@ -331,7 +339,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 smoothstep(float edge0, float edge1, vec2 x);" "vec3 smoothstep(float edge0, float edge1, vec3 x);" "vec4 smoothstep(float edge0, float edge1, vec4 x);" - + "\n"); if (version >= 130) { @@ -350,22 +358,22 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 trunc(vec2 x);" "vec3 trunc(vec3 x);" "vec4 trunc(vec4 x);" - + "float round(float x);" "vec2 round(vec2 x);" "vec3 round(vec3 x);" "vec4 round(vec4 x);" - + "float roundEven(float x);" "vec2 roundEven(vec2 x);" "vec3 roundEven(vec3 x);" "vec4 roundEven(vec4 x);" - + "float modf(float, out float);" "vec2 modf(vec2, out vec2 );" "vec3 modf(vec3, out vec3 );" "vec4 modf(vec4, out vec4 );" - + " int min(int x, int y);" "ivec2 min(ivec2 x, int y);" "ivec3 min(ivec3 x, int y);" @@ -373,7 +381,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "ivec2 min(ivec2 x, ivec2 y);" "ivec3 min(ivec3 x, ivec3 y);" "ivec4 min(ivec4 x, ivec4 y);" - + " uint min(uint x, uint y);" "uvec2 min(uvec2 x, uint y);" "uvec3 min(uvec3 x, uint y);" @@ -381,7 +389,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec2 min(uvec2 x, uvec2 y);" "uvec3 min(uvec3 x, uvec3 y);" "uvec4 min(uvec4 x, uvec4 y);" - + " int max(int x, int y);" "ivec2 max(ivec2 x, int y);" "ivec3 max(ivec3 x, int y);" @@ -589,12 +597,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "dvec2 faceforward(dvec2, dvec2, dvec2);" "dvec3 faceforward(dvec3, dvec3, dvec3);" "dvec4 faceforward(dvec4, dvec4, dvec4);" - + "double reflect(double, double);" "dvec2 reflect(dvec2 , dvec2 );" "dvec3 reflect(dvec3 , dvec3 );" "dvec4 reflect(dvec4 , dvec4 );" - + "double refract(double, double, double);" "dvec2 refract(dvec2 , dvec2 , double);" "dvec3 refract(dvec3 , dvec3 , double);" @@ -799,7 +807,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec3 notEqual(u64vec3, u64vec3);" "bvec4 notEqual(u64vec4, u64vec4);" -#ifdef AMD_EXTENSIONS "int findLSB(int64_t);" "ivec2 findLSB(i64vec2);" "ivec3 findLSB(i64vec3);" @@ -819,7 +826,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "ivec2 findMSB(u64vec2);" "ivec3 findMSB(u64vec3);" "ivec4 findMSB(u64vec4);" -#endif + "\n" ); } @@ -888,6 +895,36 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "f16vec3 mid3(f16vec3, f16vec3, f16vec3);" "f16vec4 mid3(f16vec4, f16vec4, f16vec4);" + "int16_t min3(int16_t, int16_t, int16_t);" + "i16vec2 min3(i16vec2, i16vec2, i16vec2);" + "i16vec3 min3(i16vec3, i16vec3, i16vec3);" + "i16vec4 min3(i16vec4, i16vec4, i16vec4);" + + "int16_t max3(int16_t, int16_t, int16_t);" + "i16vec2 max3(i16vec2, i16vec2, i16vec2);" + "i16vec3 max3(i16vec3, i16vec3, i16vec3);" + "i16vec4 max3(i16vec4, i16vec4, i16vec4);" + + "int16_t mid3(int16_t, int16_t, int16_t);" + "i16vec2 mid3(i16vec2, i16vec2, i16vec2);" + "i16vec3 mid3(i16vec3, i16vec3, i16vec3);" + "i16vec4 mid3(i16vec4, i16vec4, i16vec4);" + + "uint16_t min3(uint16_t, uint16_t, uint16_t);" + "u16vec2 min3(u16vec2, u16vec2, u16vec2);" + "u16vec3 min3(u16vec3, u16vec3, u16vec3);" + "u16vec4 min3(u16vec4, u16vec4, u16vec4);" + + "uint16_t max3(uint16_t, uint16_t, uint16_t);" + "u16vec2 max3(u16vec2, u16vec2, u16vec2);" + "u16vec3 max3(u16vec3, u16vec3, u16vec3);" + "u16vec4 max3(u16vec4, u16vec4, u16vec4);" + + "uint16_t mid3(uint16_t, uint16_t, uint16_t);" + "u16vec2 mid3(u16vec2, u16vec2, u16vec2);" + "u16vec3 mid3(u16vec3, u16vec3, u16vec3);" + "u16vec4 mid3(u16vec4, u16vec4, u16vec4);" + "\n" ); } @@ -923,6 +960,32 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } +#ifdef NV_EXTENSIONS + if (profile != EEsProfile && version >= 440) { + commonBuiltins.append( + "uint64_t atomicMin(coherent volatile inout uint64_t, uint64_t);" + " int64_t atomicMin(coherent volatile inout int64_t, int64_t);" + + "uint64_t atomicMax(coherent volatile inout uint64_t, uint64_t);" + " int64_t atomicMax(coherent volatile inout int64_t, int64_t);" + + "uint64_t atomicAnd(coherent volatile inout uint64_t, uint64_t);" + " int64_t atomicAnd(coherent volatile inout int64_t, int64_t);" + + "uint64_t atomicOr (coherent volatile inout uint64_t, uint64_t);" + " int64_t atomicOr (coherent volatile inout int64_t, int64_t);" + + "uint64_t atomicXor(coherent volatile inout uint64_t, uint64_t);" + " int64_t atomicXor(coherent volatile inout int64_t, int64_t);" + + " int64_t atomicAdd(coherent volatile inout int64_t, int64_t);" + " int64_t atomicExchange(coherent volatile inout int64_t, int64_t);" + " int64_t atomicCompSwap(coherent volatile inout int64_t, int64_t, int64_t);" + + "\n"); + } +#endif + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 450)) { commonBuiltins.append( @@ -1079,38 +1142,38 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "float length(vec2 x);" "float length(vec3 x);" "float length(vec4 x);" - + "float distance(float p0, float p1);" "float distance(vec2 p0, vec2 p1);" "float distance(vec3 p0, vec3 p1);" "float distance(vec4 p0, vec4 p1);" - + "float dot(float x, float y);" "float dot(vec2 x, vec2 y);" "float dot(vec3 x, vec3 y);" "float dot(vec4 x, vec4 y);" - + "vec3 cross(vec3 x, vec3 y);" "float normalize(float x);" "vec2 normalize(vec2 x);" "vec3 normalize(vec3 x);" "vec4 normalize(vec4 x);" - + "float faceforward(float N, float I, float Nref);" "vec2 faceforward(vec2 N, vec2 I, vec2 Nref);" "vec3 faceforward(vec3 N, vec3 I, vec3 Nref);" "vec4 faceforward(vec4 N, vec4 I, vec4 Nref);" - + "float reflect(float I, float N);" "vec2 reflect(vec2 I, vec2 N);" "vec3 reflect(vec3 I, vec3 N);" "vec4 reflect(vec4 I, vec4 N);" - + "float refract(float I, float N, float eta);" "vec2 refract(vec2 I, vec2 N, float eta);" "vec3 refract(vec3 I, vec3 N, float eta);" "vec4 refract(vec4 I, vec4 N, float eta);" - + "\n"); // @@ -1120,7 +1183,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "mat2 matrixCompMult(mat2 x, mat2 y);" "mat3 matrixCompMult(mat3 x, mat3 y);" "mat4 matrixCompMult(mat4 x, mat4 y);" - + "\n"); // 120 is correct for both ES and desktop @@ -1135,7 +1198,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "mat4x2 outerProduct(vec2 c, vec4 r);" "mat3x4 outerProduct(vec4 c, vec3 r);" "mat4x3 outerProduct(vec3 c, vec4 r);" - + "mat2 transpose(mat2 m);" "mat3 transpose(mat3 m);" "mat4 transpose(mat4 m);" @@ -1151,8 +1214,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "mat3x2 matrixCompMult(mat3x2, mat3x2);" "mat3x4 matrixCompMult(mat3x4, mat3x4);" "mat4x2 matrixCompMult(mat4x2, mat4x2);" - "mat4x3 matrixCompMult(mat4x3, mat4x3);" - + "mat4x3 matrixCompMult(mat4x3, mat4x3);" + "\n"); // 150 is correct for both ES and desktop @@ -1161,11 +1224,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "float determinant(mat2 m);" "float determinant(mat3 m);" "float determinant(mat4 m);" - + "mat2 inverse(mat2 m);" "mat3 inverse(mat3 m);" "mat4 inverse(mat4 m);" - + "\n"); } } @@ -1177,71 +1240,71 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec2 lessThan(vec2 x, vec2 y);" "bvec3 lessThan(vec3 x, vec3 y);" "bvec4 lessThan(vec4 x, vec4 y);" - + "bvec2 lessThan(ivec2 x, ivec2 y);" "bvec3 lessThan(ivec3 x, ivec3 y);" "bvec4 lessThan(ivec4 x, ivec4 y);" - + "bvec2 lessThanEqual(vec2 x, vec2 y);" "bvec3 lessThanEqual(vec3 x, vec3 y);" "bvec4 lessThanEqual(vec4 x, vec4 y);" - + "bvec2 lessThanEqual(ivec2 x, ivec2 y);" "bvec3 lessThanEqual(ivec3 x, ivec3 y);" "bvec4 lessThanEqual(ivec4 x, ivec4 y);" - + "bvec2 greaterThan(vec2 x, vec2 y);" "bvec3 greaterThan(vec3 x, vec3 y);" "bvec4 greaterThan(vec4 x, vec4 y);" - + "bvec2 greaterThan(ivec2 x, ivec2 y);" "bvec3 greaterThan(ivec3 x, ivec3 y);" "bvec4 greaterThan(ivec4 x, ivec4 y);" - + "bvec2 greaterThanEqual(vec2 x, vec2 y);" "bvec3 greaterThanEqual(vec3 x, vec3 y);" "bvec4 greaterThanEqual(vec4 x, vec4 y);" - + "bvec2 greaterThanEqual(ivec2 x, ivec2 y);" "bvec3 greaterThanEqual(ivec3 x, ivec3 y);" "bvec4 greaterThanEqual(ivec4 x, ivec4 y);" - + "bvec2 equal(vec2 x, vec2 y);" "bvec3 equal(vec3 x, vec3 y);" "bvec4 equal(vec4 x, vec4 y);" - + "bvec2 equal(ivec2 x, ivec2 y);" "bvec3 equal(ivec3 x, ivec3 y);" "bvec4 equal(ivec4 x, ivec4 y);" - + "bvec2 equal(bvec2 x, bvec2 y);" "bvec3 equal(bvec3 x, bvec3 y);" "bvec4 equal(bvec4 x, bvec4 y);" - + "bvec2 notEqual(vec2 x, vec2 y);" "bvec3 notEqual(vec3 x, vec3 y);" "bvec4 notEqual(vec4 x, vec4 y);" - + "bvec2 notEqual(ivec2 x, ivec2 y);" "bvec3 notEqual(ivec3 x, ivec3 y);" "bvec4 notEqual(ivec4 x, ivec4 y);" - + "bvec2 notEqual(bvec2 x, bvec2 y);" "bvec3 notEqual(bvec3 x, bvec3 y);" "bvec4 notEqual(bvec4 x, bvec4 y);" - + "bool any(bvec2 x);" "bool any(bvec3 x);" "bool any(bvec4 x);" - + "bool all(bvec2 x);" "bool all(bvec3 x);" "bool all(bvec4 x);" - + "bvec2 not(bvec2 x);" "bvec3 not(bvec3 x);" "bvec4 not(bvec4 x);" - + "\n"); if (version >= 130) { @@ -1249,27 +1312,27 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec2 lessThan(uvec2 x, uvec2 y);" "bvec3 lessThan(uvec3 x, uvec3 y);" "bvec4 lessThan(uvec4 x, uvec4 y);" - + "bvec2 lessThanEqual(uvec2 x, uvec2 y);" "bvec3 lessThanEqual(uvec3 x, uvec3 y);" "bvec4 lessThanEqual(uvec4 x, uvec4 y);" - + "bvec2 greaterThan(uvec2 x, uvec2 y);" "bvec3 greaterThan(uvec3 x, uvec3 y);" "bvec4 greaterThan(uvec4 x, uvec4 y);" - + "bvec2 greaterThanEqual(uvec2 x, uvec2 y);" "bvec3 greaterThanEqual(uvec3 x, uvec3 y);" "bvec4 greaterThanEqual(uvec4 x, uvec4 y);" - + "bvec2 equal(uvec2 x, uvec2 y);" "bvec3 equal(uvec3 x, uvec3 y);" "bvec4 equal(uvec4 x, uvec4 y);" "bvec2 notEqual(uvec2 x, uvec2 y);" "bvec3 notEqual(uvec3 x, uvec3 y);" - "bvec4 notEqual(uvec4 x, uvec4 y);" - + "bvec4 notEqual(uvec4 x, uvec4 y);" + "\n"); } @@ -1292,7 +1355,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec4 texture3DProj(sampler3D, vec4);" // OES_texture_3D, but caught by keyword check "vec4 textureCube(samplerCube, vec3);" - + "\n"); } } @@ -1306,7 +1369,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec4 texture1DProj(sampler1D, vec2);" "vec4 texture1DProj(sampler1D, vec4);" - + "vec4 shadow1D(sampler1DShadow, vec3);" "vec4 shadow2D(sampler2DShadow, vec3);" "vec4 shadow1DProj(sampler1DShadow, vec4);" @@ -1324,15 +1387,33 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (profile == EEsProfile) { if (spvVersion.spv == 0) { + if (version < 300) { + commonBuiltins.append( + "vec4 texture2D(samplerExternalOES, vec2 coord);" // GL_OES_EGL_image_external + "vec4 texture2DProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external + "vec4 texture2DProj(samplerExternalOES, vec4);" // GL_OES_EGL_image_external + "\n"); + } else { + commonBuiltins.append( + "highp ivec2 textureSize(samplerExternalOES, int lod);" // GL_OES_EGL_image_external_essl3 + "vec4 texture(samplerExternalOES, vec2);" // GL_OES_EGL_image_external_essl3 + "vec4 texture(samplerExternalOES, vec2, float bias);" // GL_OES_EGL_image_external_essl3 + "vec4 textureProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external_essl3 + "vec4 textureProj(samplerExternalOES, vec3, float bias);" // GL_OES_EGL_image_external_essl3 + "vec4 textureProj(samplerExternalOES, vec4);" // GL_OES_EGL_image_external_essl3 + "vec4 textureProj(samplerExternalOES, vec4, float bias);" // GL_OES_EGL_image_external_essl3 + "vec4 texelFetch(samplerExternalOES, ivec2, int lod);" // GL_OES_EGL_image_external_essl3 + "\n"); + } commonBuiltins.append( - "vec4 texture2D(samplerExternalOES, vec2 coord);" // GL_OES_EGL_image_external, caught by keyword check - "vec4 texture2DProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external, caught by keyword check - "vec4 texture2DProj(samplerExternalOES, vec4);" // GL_OES_EGL_image_external, caught by keyword check "vec4 texture2DGradEXT(sampler2D, vec2, vec2, vec2);" // GL_EXT_shader_texture_lod "vec4 texture2DProjGradEXT(sampler2D, vec3, vec2, vec2);" // GL_EXT_shader_texture_lod "vec4 texture2DProjGradEXT(sampler2D, vec4, vec2, vec2);" // GL_EXT_shader_texture_lod "vec4 textureCubeGradEXT(samplerCube, vec3, vec3, vec3);" // GL_EXT_shader_texture_lod + "float shadow2DEXT(sampler2DShadow, vec3);" // GL_EXT_shadow_samplers + "float shadow2DProjEXT(sampler2DShadow, vec4);" // GL_EXT_shadow_samplers + "\n"); } } @@ -1340,28 +1421,28 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV // // Noise functions. // - if (profile != EEsProfile) { + if (spvVersion.spv == 0 && profile != EEsProfile) { commonBuiltins.append( "float noise1(float x);" "float noise1(vec2 x);" "float noise1(vec3 x);" "float noise1(vec4 x);" - + "vec2 noise2(float x);" "vec2 noise2(vec2 x);" "vec2 noise2(vec3 x);" "vec2 noise2(vec4 x);" - + "vec3 noise3(float x);" "vec3 noise3(vec2 x);" "vec3 noise3(vec3 x);" "vec3 noise3(vec4 x);" - + "vec4 noise4(float x);" "vec4 noise4(vec2 x);" "vec4 noise4(vec3 x);" "vec4 noise4(vec4 x);" - + "\n"); } @@ -1372,9 +1453,23 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if ((profile != EEsProfile && version >= 300) || (profile == EEsProfile && version >= 310)) { commonBuiltins.append( - "uint atomicCounterIncrement(atomic_uint x);" - "uint atomicCounterDecrement(atomic_uint x);" - "uint atomicCounter(atomic_uint x);" + "uint atomicCounterIncrement(atomic_uint);" + "uint atomicCounterDecrement(atomic_uint);" + "uint atomicCounter(atomic_uint);" + + "\n"); + } + if (profile != EEsProfile && version >= 460) { + commonBuiltins.append( + "uint atomicCounterAdd(atomic_uint, uint);" + "uint atomicCounterSubtract(atomic_uint, uint);" + "uint atomicCounterMin(atomic_uint, uint);" + "uint atomicCounterMax(atomic_uint, uint);" + "uint atomicCounterAnd(atomic_uint, uint);" + "uint atomicCounterOr(atomic_uint, uint);" + "uint atomicCounterXor(atomic_uint, uint);" + "uint atomicCounterExchange(atomic_uint, uint);" + "uint atomicCounterCompSwap(atomic_uint, uint, uint);" "\n"); } @@ -1517,7 +1612,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "lowp ivec2 findMSB(highp uvec2);" "lowp ivec3 findMSB(highp uvec3);" "lowp ivec4 findMSB(highp uvec4);" - + "\n"); } @@ -1559,7 +1654,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - // GL_ARB_shader_group_vote + // GL_ARB_shader_group_vote if (profile != EEsProfile && version >= 430) { commonBuiltins.append( "bool anyInvocationARB(bool);" @@ -1569,6 +1664,1096 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + // GL_KHR_shader_subgroup + if (spvVersion.vulkan > 0) { + commonBuiltins.append( + "void subgroupBarrier();" + "void subgroupMemoryBarrier();" + "void subgroupMemoryBarrierBuffer();" + "void subgroupMemoryBarrierImage();" + "bool subgroupElect();" + + "bool subgroupAll(bool);\n" + "bool subgroupAny(bool);\n" + + "bool subgroupAllEqual(float);\n" + "bool subgroupAllEqual(vec2);\n" + "bool subgroupAllEqual(vec3);\n" + "bool subgroupAllEqual(vec4);\n" + "bool subgroupAllEqual(int);\n" + "bool subgroupAllEqual(ivec2);\n" + "bool subgroupAllEqual(ivec3);\n" + "bool subgroupAllEqual(ivec4);\n" + "bool subgroupAllEqual(uint);\n" + "bool subgroupAllEqual(uvec2);\n" + "bool subgroupAllEqual(uvec3);\n" + "bool subgroupAllEqual(uvec4);\n" + "bool subgroupAllEqual(bool);\n" + "bool subgroupAllEqual(bvec2);\n" + "bool subgroupAllEqual(bvec3);\n" + "bool subgroupAllEqual(bvec4);\n" + + "float subgroupBroadcast(float, uint);\n" + "vec2 subgroupBroadcast(vec2, uint);\n" + "vec3 subgroupBroadcast(vec3, uint);\n" + "vec4 subgroupBroadcast(vec4, uint);\n" + "int subgroupBroadcast(int, uint);\n" + "ivec2 subgroupBroadcast(ivec2, uint);\n" + "ivec3 subgroupBroadcast(ivec3, uint);\n" + "ivec4 subgroupBroadcast(ivec4, uint);\n" + "uint subgroupBroadcast(uint, uint);\n" + "uvec2 subgroupBroadcast(uvec2, uint);\n" + "uvec3 subgroupBroadcast(uvec3, uint);\n" + "uvec4 subgroupBroadcast(uvec4, uint);\n" + "bool subgroupBroadcast(bool, uint);\n" + "bvec2 subgroupBroadcast(bvec2, uint);\n" + "bvec3 subgroupBroadcast(bvec3, uint);\n" + "bvec4 subgroupBroadcast(bvec4, uint);\n" + + "float subgroupBroadcastFirst(float);\n" + "vec2 subgroupBroadcastFirst(vec2);\n" + "vec3 subgroupBroadcastFirst(vec3);\n" + "vec4 subgroupBroadcastFirst(vec4);\n" + "int subgroupBroadcastFirst(int);\n" + "ivec2 subgroupBroadcastFirst(ivec2);\n" + "ivec3 subgroupBroadcastFirst(ivec3);\n" + "ivec4 subgroupBroadcastFirst(ivec4);\n" + "uint subgroupBroadcastFirst(uint);\n" + "uvec2 subgroupBroadcastFirst(uvec2);\n" + "uvec3 subgroupBroadcastFirst(uvec3);\n" + "uvec4 subgroupBroadcastFirst(uvec4);\n" + "bool subgroupBroadcastFirst(bool);\n" + "bvec2 subgroupBroadcastFirst(bvec2);\n" + "bvec3 subgroupBroadcastFirst(bvec3);\n" + "bvec4 subgroupBroadcastFirst(bvec4);\n" + + "uvec4 subgroupBallot(bool);\n" + "bool subgroupInverseBallot(uvec4);\n" + "bool subgroupBallotBitExtract(uvec4, uint);\n" + "uint subgroupBallotBitCount(uvec4);\n" + "uint subgroupBallotInclusiveBitCount(uvec4);\n" + "uint subgroupBallotExclusiveBitCount(uvec4);\n" + "uint subgroupBallotFindLSB(uvec4);\n" + "uint subgroupBallotFindMSB(uvec4);\n" + + "float subgroupShuffle(float, uint);\n" + "vec2 subgroupShuffle(vec2, uint);\n" + "vec3 subgroupShuffle(vec3, uint);\n" + "vec4 subgroupShuffle(vec4, uint);\n" + "int subgroupShuffle(int, uint);\n" + "ivec2 subgroupShuffle(ivec2, uint);\n" + "ivec3 subgroupShuffle(ivec3, uint);\n" + "ivec4 subgroupShuffle(ivec4, uint);\n" + "uint subgroupShuffle(uint, uint);\n" + "uvec2 subgroupShuffle(uvec2, uint);\n" + "uvec3 subgroupShuffle(uvec3, uint);\n" + "uvec4 subgroupShuffle(uvec4, uint);\n" + "bool subgroupShuffle(bool, uint);\n" + "bvec2 subgroupShuffle(bvec2, uint);\n" + "bvec3 subgroupShuffle(bvec3, uint);\n" + "bvec4 subgroupShuffle(bvec4, uint);\n" + + "float subgroupShuffleXor(float, uint);\n" + "vec2 subgroupShuffleXor(vec2, uint);\n" + "vec3 subgroupShuffleXor(vec3, uint);\n" + "vec4 subgroupShuffleXor(vec4, uint);\n" + "int subgroupShuffleXor(int, uint);\n" + "ivec2 subgroupShuffleXor(ivec2, uint);\n" + "ivec3 subgroupShuffleXor(ivec3, uint);\n" + "ivec4 subgroupShuffleXor(ivec4, uint);\n" + "uint subgroupShuffleXor(uint, uint);\n" + "uvec2 subgroupShuffleXor(uvec2, uint);\n" + "uvec3 subgroupShuffleXor(uvec3, uint);\n" + "uvec4 subgroupShuffleXor(uvec4, uint);\n" + "bool subgroupShuffleXor(bool, uint);\n" + "bvec2 subgroupShuffleXor(bvec2, uint);\n" + "bvec3 subgroupShuffleXor(bvec3, uint);\n" + "bvec4 subgroupShuffleXor(bvec4, uint);\n" + + "float subgroupShuffleUp(float, uint delta);\n" + "vec2 subgroupShuffleUp(vec2, uint delta);\n" + "vec3 subgroupShuffleUp(vec3, uint delta);\n" + "vec4 subgroupShuffleUp(vec4, uint delta);\n" + "int subgroupShuffleUp(int, uint delta);\n" + "ivec2 subgroupShuffleUp(ivec2, uint delta);\n" + "ivec3 subgroupShuffleUp(ivec3, uint delta);\n" + "ivec4 subgroupShuffleUp(ivec4, uint delta);\n" + "uint subgroupShuffleUp(uint, uint delta);\n" + "uvec2 subgroupShuffleUp(uvec2, uint delta);\n" + "uvec3 subgroupShuffleUp(uvec3, uint delta);\n" + "uvec4 subgroupShuffleUp(uvec4, uint delta);\n" + "bool subgroupShuffleUp(bool, uint delta);\n" + "bvec2 subgroupShuffleUp(bvec2, uint delta);\n" + "bvec3 subgroupShuffleUp(bvec3, uint delta);\n" + "bvec4 subgroupShuffleUp(bvec4, uint delta);\n" + + "float subgroupShuffleDown(float, uint delta);\n" + "vec2 subgroupShuffleDown(vec2, uint delta);\n" + "vec3 subgroupShuffleDown(vec3, uint delta);\n" + "vec4 subgroupShuffleDown(vec4, uint delta);\n" + "int subgroupShuffleDown(int, uint delta);\n" + "ivec2 subgroupShuffleDown(ivec2, uint delta);\n" + "ivec3 subgroupShuffleDown(ivec3, uint delta);\n" + "ivec4 subgroupShuffleDown(ivec4, uint delta);\n" + "uint subgroupShuffleDown(uint, uint delta);\n" + "uvec2 subgroupShuffleDown(uvec2, uint delta);\n" + "uvec3 subgroupShuffleDown(uvec3, uint delta);\n" + "uvec4 subgroupShuffleDown(uvec4, uint delta);\n" + "bool subgroupShuffleDown(bool, uint delta);\n" + "bvec2 subgroupShuffleDown(bvec2, uint delta);\n" + "bvec3 subgroupShuffleDown(bvec3, uint delta);\n" + "bvec4 subgroupShuffleDown(bvec4, uint delta);\n" + + "float subgroupAdd(float);\n" + "vec2 subgroupAdd(vec2);\n" + "vec3 subgroupAdd(vec3);\n" + "vec4 subgroupAdd(vec4);\n" + "int subgroupAdd(int);\n" + "ivec2 subgroupAdd(ivec2);\n" + "ivec3 subgroupAdd(ivec3);\n" + "ivec4 subgroupAdd(ivec4);\n" + "uint subgroupAdd(uint);\n" + "uvec2 subgroupAdd(uvec2);\n" + "uvec3 subgroupAdd(uvec3);\n" + "uvec4 subgroupAdd(uvec4);\n" + + "float subgroupMul(float);\n" + "vec2 subgroupMul(vec2);\n" + "vec3 subgroupMul(vec3);\n" + "vec4 subgroupMul(vec4);\n" + "int subgroupMul(int);\n" + "ivec2 subgroupMul(ivec2);\n" + "ivec3 subgroupMul(ivec3);\n" + "ivec4 subgroupMul(ivec4);\n" + "uint subgroupMul(uint);\n" + "uvec2 subgroupMul(uvec2);\n" + "uvec3 subgroupMul(uvec3);\n" + "uvec4 subgroupMul(uvec4);\n" + + "float subgroupMin(float);\n" + "vec2 subgroupMin(vec2);\n" + "vec3 subgroupMin(vec3);\n" + "vec4 subgroupMin(vec4);\n" + "int subgroupMin(int);\n" + "ivec2 subgroupMin(ivec2);\n" + "ivec3 subgroupMin(ivec3);\n" + "ivec4 subgroupMin(ivec4);\n" + "uint subgroupMin(uint);\n" + "uvec2 subgroupMin(uvec2);\n" + "uvec3 subgroupMin(uvec3);\n" + "uvec4 subgroupMin(uvec4);\n" + + "float subgroupMax(float);\n" + "vec2 subgroupMax(vec2);\n" + "vec3 subgroupMax(vec3);\n" + "vec4 subgroupMax(vec4);\n" + "int subgroupMax(int);\n" + "ivec2 subgroupMax(ivec2);\n" + "ivec3 subgroupMax(ivec3);\n" + "ivec4 subgroupMax(ivec4);\n" + "uint subgroupMax(uint);\n" + "uvec2 subgroupMax(uvec2);\n" + "uvec3 subgroupMax(uvec3);\n" + "uvec4 subgroupMax(uvec4);\n" + + "int subgroupAnd(int);\n" + "ivec2 subgroupAnd(ivec2);\n" + "ivec3 subgroupAnd(ivec3);\n" + "ivec4 subgroupAnd(ivec4);\n" + "uint subgroupAnd(uint);\n" + "uvec2 subgroupAnd(uvec2);\n" + "uvec3 subgroupAnd(uvec3);\n" + "uvec4 subgroupAnd(uvec4);\n" + "bool subgroupAnd(bool);\n" + "bvec2 subgroupAnd(bvec2);\n" + "bvec3 subgroupAnd(bvec3);\n" + "bvec4 subgroupAnd(bvec4);\n" + + "int subgroupOr(int);\n" + "ivec2 subgroupOr(ivec2);\n" + "ivec3 subgroupOr(ivec3);\n" + "ivec4 subgroupOr(ivec4);\n" + "uint subgroupOr(uint);\n" + "uvec2 subgroupOr(uvec2);\n" + "uvec3 subgroupOr(uvec3);\n" + "uvec4 subgroupOr(uvec4);\n" + "bool subgroupOr(bool);\n" + "bvec2 subgroupOr(bvec2);\n" + "bvec3 subgroupOr(bvec3);\n" + "bvec4 subgroupOr(bvec4);\n" + + "int subgroupXor(int);\n" + "ivec2 subgroupXor(ivec2);\n" + "ivec3 subgroupXor(ivec3);\n" + "ivec4 subgroupXor(ivec4);\n" + "uint subgroupXor(uint);\n" + "uvec2 subgroupXor(uvec2);\n" + "uvec3 subgroupXor(uvec3);\n" + "uvec4 subgroupXor(uvec4);\n" + "bool subgroupXor(bool);\n" + "bvec2 subgroupXor(bvec2);\n" + "bvec3 subgroupXor(bvec3);\n" + "bvec4 subgroupXor(bvec4);\n" + + "float subgroupInclusiveAdd(float);\n" + "vec2 subgroupInclusiveAdd(vec2);\n" + "vec3 subgroupInclusiveAdd(vec3);\n" + "vec4 subgroupInclusiveAdd(vec4);\n" + "int subgroupInclusiveAdd(int);\n" + "ivec2 subgroupInclusiveAdd(ivec2);\n" + "ivec3 subgroupInclusiveAdd(ivec3);\n" + "ivec4 subgroupInclusiveAdd(ivec4);\n" + "uint subgroupInclusiveAdd(uint);\n" + "uvec2 subgroupInclusiveAdd(uvec2);\n" + "uvec3 subgroupInclusiveAdd(uvec3);\n" + "uvec4 subgroupInclusiveAdd(uvec4);\n" + + "float subgroupInclusiveMul(float);\n" + "vec2 subgroupInclusiveMul(vec2);\n" + "vec3 subgroupInclusiveMul(vec3);\n" + "vec4 subgroupInclusiveMul(vec4);\n" + "int subgroupInclusiveMul(int);\n" + "ivec2 subgroupInclusiveMul(ivec2);\n" + "ivec3 subgroupInclusiveMul(ivec3);\n" + "ivec4 subgroupInclusiveMul(ivec4);\n" + "uint subgroupInclusiveMul(uint);\n" + "uvec2 subgroupInclusiveMul(uvec2);\n" + "uvec3 subgroupInclusiveMul(uvec3);\n" + "uvec4 subgroupInclusiveMul(uvec4);\n" + + "float subgroupInclusiveMin(float);\n" + "vec2 subgroupInclusiveMin(vec2);\n" + "vec3 subgroupInclusiveMin(vec3);\n" + "vec4 subgroupInclusiveMin(vec4);\n" + "int subgroupInclusiveMin(int);\n" + "ivec2 subgroupInclusiveMin(ivec2);\n" + "ivec3 subgroupInclusiveMin(ivec3);\n" + "ivec4 subgroupInclusiveMin(ivec4);\n" + "uint subgroupInclusiveMin(uint);\n" + "uvec2 subgroupInclusiveMin(uvec2);\n" + "uvec3 subgroupInclusiveMin(uvec3);\n" + "uvec4 subgroupInclusiveMin(uvec4);\n" + + "float subgroupInclusiveMax(float);\n" + "vec2 subgroupInclusiveMax(vec2);\n" + "vec3 subgroupInclusiveMax(vec3);\n" + "vec4 subgroupInclusiveMax(vec4);\n" + "int subgroupInclusiveMax(int);\n" + "ivec2 subgroupInclusiveMax(ivec2);\n" + "ivec3 subgroupInclusiveMax(ivec3);\n" + "ivec4 subgroupInclusiveMax(ivec4);\n" + "uint subgroupInclusiveMax(uint);\n" + "uvec2 subgroupInclusiveMax(uvec2);\n" + "uvec3 subgroupInclusiveMax(uvec3);\n" + "uvec4 subgroupInclusiveMax(uvec4);\n" + + "int subgroupInclusiveAnd(int);\n" + "ivec2 subgroupInclusiveAnd(ivec2);\n" + "ivec3 subgroupInclusiveAnd(ivec3);\n" + "ivec4 subgroupInclusiveAnd(ivec4);\n" + "uint subgroupInclusiveAnd(uint);\n" + "uvec2 subgroupInclusiveAnd(uvec2);\n" + "uvec3 subgroupInclusiveAnd(uvec3);\n" + "uvec4 subgroupInclusiveAnd(uvec4);\n" + "bool subgroupInclusiveAnd(bool);\n" + "bvec2 subgroupInclusiveAnd(bvec2);\n" + "bvec3 subgroupInclusiveAnd(bvec3);\n" + "bvec4 subgroupInclusiveAnd(bvec4);\n" + + "int subgroupInclusiveOr(int);\n" + "ivec2 subgroupInclusiveOr(ivec2);\n" + "ivec3 subgroupInclusiveOr(ivec3);\n" + "ivec4 subgroupInclusiveOr(ivec4);\n" + "uint subgroupInclusiveOr(uint);\n" + "uvec2 subgroupInclusiveOr(uvec2);\n" + "uvec3 subgroupInclusiveOr(uvec3);\n" + "uvec4 subgroupInclusiveOr(uvec4);\n" + "bool subgroupInclusiveOr(bool);\n" + "bvec2 subgroupInclusiveOr(bvec2);\n" + "bvec3 subgroupInclusiveOr(bvec3);\n" + "bvec4 subgroupInclusiveOr(bvec4);\n" + + "int subgroupInclusiveXor(int);\n" + "ivec2 subgroupInclusiveXor(ivec2);\n" + "ivec3 subgroupInclusiveXor(ivec3);\n" + "ivec4 subgroupInclusiveXor(ivec4);\n" + "uint subgroupInclusiveXor(uint);\n" + "uvec2 subgroupInclusiveXor(uvec2);\n" + "uvec3 subgroupInclusiveXor(uvec3);\n" + "uvec4 subgroupInclusiveXor(uvec4);\n" + "bool subgroupInclusiveXor(bool);\n" + "bvec2 subgroupInclusiveXor(bvec2);\n" + "bvec3 subgroupInclusiveXor(bvec3);\n" + "bvec4 subgroupInclusiveXor(bvec4);\n" + + "float subgroupExclusiveAdd(float);\n" + "vec2 subgroupExclusiveAdd(vec2);\n" + "vec3 subgroupExclusiveAdd(vec3);\n" + "vec4 subgroupExclusiveAdd(vec4);\n" + "int subgroupExclusiveAdd(int);\n" + "ivec2 subgroupExclusiveAdd(ivec2);\n" + "ivec3 subgroupExclusiveAdd(ivec3);\n" + "ivec4 subgroupExclusiveAdd(ivec4);\n" + "uint subgroupExclusiveAdd(uint);\n" + "uvec2 subgroupExclusiveAdd(uvec2);\n" + "uvec3 subgroupExclusiveAdd(uvec3);\n" + "uvec4 subgroupExclusiveAdd(uvec4);\n" + + "float subgroupExclusiveMul(float);\n" + "vec2 subgroupExclusiveMul(vec2);\n" + "vec3 subgroupExclusiveMul(vec3);\n" + "vec4 subgroupExclusiveMul(vec4);\n" + "int subgroupExclusiveMul(int);\n" + "ivec2 subgroupExclusiveMul(ivec2);\n" + "ivec3 subgroupExclusiveMul(ivec3);\n" + "ivec4 subgroupExclusiveMul(ivec4);\n" + "uint subgroupExclusiveMul(uint);\n" + "uvec2 subgroupExclusiveMul(uvec2);\n" + "uvec3 subgroupExclusiveMul(uvec3);\n" + "uvec4 subgroupExclusiveMul(uvec4);\n" + + "float subgroupExclusiveMin(float);\n" + "vec2 subgroupExclusiveMin(vec2);\n" + "vec3 subgroupExclusiveMin(vec3);\n" + "vec4 subgroupExclusiveMin(vec4);\n" + "int subgroupExclusiveMin(int);\n" + "ivec2 subgroupExclusiveMin(ivec2);\n" + "ivec3 subgroupExclusiveMin(ivec3);\n" + "ivec4 subgroupExclusiveMin(ivec4);\n" + "uint subgroupExclusiveMin(uint);\n" + "uvec2 subgroupExclusiveMin(uvec2);\n" + "uvec3 subgroupExclusiveMin(uvec3);\n" + "uvec4 subgroupExclusiveMin(uvec4);\n" + + "float subgroupExclusiveMax(float);\n" + "vec2 subgroupExclusiveMax(vec2);\n" + "vec3 subgroupExclusiveMax(vec3);\n" + "vec4 subgroupExclusiveMax(vec4);\n" + "int subgroupExclusiveMax(int);\n" + "ivec2 subgroupExclusiveMax(ivec2);\n" + "ivec3 subgroupExclusiveMax(ivec3);\n" + "ivec4 subgroupExclusiveMax(ivec4);\n" + "uint subgroupExclusiveMax(uint);\n" + "uvec2 subgroupExclusiveMax(uvec2);\n" + "uvec3 subgroupExclusiveMax(uvec3);\n" + "uvec4 subgroupExclusiveMax(uvec4);\n" + + "int subgroupExclusiveAnd(int);\n" + "ivec2 subgroupExclusiveAnd(ivec2);\n" + "ivec3 subgroupExclusiveAnd(ivec3);\n" + "ivec4 subgroupExclusiveAnd(ivec4);\n" + "uint subgroupExclusiveAnd(uint);\n" + "uvec2 subgroupExclusiveAnd(uvec2);\n" + "uvec3 subgroupExclusiveAnd(uvec3);\n" + "uvec4 subgroupExclusiveAnd(uvec4);\n" + "bool subgroupExclusiveAnd(bool);\n" + "bvec2 subgroupExclusiveAnd(bvec2);\n" + "bvec3 subgroupExclusiveAnd(bvec3);\n" + "bvec4 subgroupExclusiveAnd(bvec4);\n" + + "int subgroupExclusiveOr(int);\n" + "ivec2 subgroupExclusiveOr(ivec2);\n" + "ivec3 subgroupExclusiveOr(ivec3);\n" + "ivec4 subgroupExclusiveOr(ivec4);\n" + "uint subgroupExclusiveOr(uint);\n" + "uvec2 subgroupExclusiveOr(uvec2);\n" + "uvec3 subgroupExclusiveOr(uvec3);\n" + "uvec4 subgroupExclusiveOr(uvec4);\n" + "bool subgroupExclusiveOr(bool);\n" + "bvec2 subgroupExclusiveOr(bvec2);\n" + "bvec3 subgroupExclusiveOr(bvec3);\n" + "bvec4 subgroupExclusiveOr(bvec4);\n" + + "int subgroupExclusiveXor(int);\n" + "ivec2 subgroupExclusiveXor(ivec2);\n" + "ivec3 subgroupExclusiveXor(ivec3);\n" + "ivec4 subgroupExclusiveXor(ivec4);\n" + "uint subgroupExclusiveXor(uint);\n" + "uvec2 subgroupExclusiveXor(uvec2);\n" + "uvec3 subgroupExclusiveXor(uvec3);\n" + "uvec4 subgroupExclusiveXor(uvec4);\n" + "bool subgroupExclusiveXor(bool);\n" + "bvec2 subgroupExclusiveXor(bvec2);\n" + "bvec3 subgroupExclusiveXor(bvec3);\n" + "bvec4 subgroupExclusiveXor(bvec4);\n" + + "float subgroupClusteredAdd(float, uint);\n" + "vec2 subgroupClusteredAdd(vec2, uint);\n" + "vec3 subgroupClusteredAdd(vec3, uint);\n" + "vec4 subgroupClusteredAdd(vec4, uint);\n" + "int subgroupClusteredAdd(int, uint);\n" + "ivec2 subgroupClusteredAdd(ivec2, uint);\n" + "ivec3 subgroupClusteredAdd(ivec3, uint);\n" + "ivec4 subgroupClusteredAdd(ivec4, uint);\n" + "uint subgroupClusteredAdd(uint, uint);\n" + "uvec2 subgroupClusteredAdd(uvec2, uint);\n" + "uvec3 subgroupClusteredAdd(uvec3, uint);\n" + "uvec4 subgroupClusteredAdd(uvec4, uint);\n" + + "float subgroupClusteredMul(float, uint);\n" + "vec2 subgroupClusteredMul(vec2, uint);\n" + "vec3 subgroupClusteredMul(vec3, uint);\n" + "vec4 subgroupClusteredMul(vec4, uint);\n" + "int subgroupClusteredMul(int, uint);\n" + "ivec2 subgroupClusteredMul(ivec2, uint);\n" + "ivec3 subgroupClusteredMul(ivec3, uint);\n" + "ivec4 subgroupClusteredMul(ivec4, uint);\n" + "uint subgroupClusteredMul(uint, uint);\n" + "uvec2 subgroupClusteredMul(uvec2, uint);\n" + "uvec3 subgroupClusteredMul(uvec3, uint);\n" + "uvec4 subgroupClusteredMul(uvec4, uint);\n" + + "float subgroupClusteredMin(float, uint);\n" + "vec2 subgroupClusteredMin(vec2, uint);\n" + "vec3 subgroupClusteredMin(vec3, uint);\n" + "vec4 subgroupClusteredMin(vec4, uint);\n" + "int subgroupClusteredMin(int, uint);\n" + "ivec2 subgroupClusteredMin(ivec2, uint);\n" + "ivec3 subgroupClusteredMin(ivec3, uint);\n" + "ivec4 subgroupClusteredMin(ivec4, uint);\n" + "uint subgroupClusteredMin(uint, uint);\n" + "uvec2 subgroupClusteredMin(uvec2, uint);\n" + "uvec3 subgroupClusteredMin(uvec3, uint);\n" + "uvec4 subgroupClusteredMin(uvec4, uint);\n" + + "float subgroupClusteredMax(float, uint);\n" + "vec2 subgroupClusteredMax(vec2, uint);\n" + "vec3 subgroupClusteredMax(vec3, uint);\n" + "vec4 subgroupClusteredMax(vec4, uint);\n" + "int subgroupClusteredMax(int, uint);\n" + "ivec2 subgroupClusteredMax(ivec2, uint);\n" + "ivec3 subgroupClusteredMax(ivec3, uint);\n" + "ivec4 subgroupClusteredMax(ivec4, uint);\n" + "uint subgroupClusteredMax(uint, uint);\n" + "uvec2 subgroupClusteredMax(uvec2, uint);\n" + "uvec3 subgroupClusteredMax(uvec3, uint);\n" + "uvec4 subgroupClusteredMax(uvec4, uint);\n" + + "int subgroupClusteredAnd(int, uint);\n" + "ivec2 subgroupClusteredAnd(ivec2, uint);\n" + "ivec3 subgroupClusteredAnd(ivec3, uint);\n" + "ivec4 subgroupClusteredAnd(ivec4, uint);\n" + "uint subgroupClusteredAnd(uint, uint);\n" + "uvec2 subgroupClusteredAnd(uvec2, uint);\n" + "uvec3 subgroupClusteredAnd(uvec3, uint);\n" + "uvec4 subgroupClusteredAnd(uvec4, uint);\n" + "bool subgroupClusteredAnd(bool, uint);\n" + "bvec2 subgroupClusteredAnd(bvec2, uint);\n" + "bvec3 subgroupClusteredAnd(bvec3, uint);\n" + "bvec4 subgroupClusteredAnd(bvec4, uint);\n" + + "int subgroupClusteredOr(int, uint);\n" + "ivec2 subgroupClusteredOr(ivec2, uint);\n" + "ivec3 subgroupClusteredOr(ivec3, uint);\n" + "ivec4 subgroupClusteredOr(ivec4, uint);\n" + "uint subgroupClusteredOr(uint, uint);\n" + "uvec2 subgroupClusteredOr(uvec2, uint);\n" + "uvec3 subgroupClusteredOr(uvec3, uint);\n" + "uvec4 subgroupClusteredOr(uvec4, uint);\n" + "bool subgroupClusteredOr(bool, uint);\n" + "bvec2 subgroupClusteredOr(bvec2, uint);\n" + "bvec3 subgroupClusteredOr(bvec3, uint);\n" + "bvec4 subgroupClusteredOr(bvec4, uint);\n" + + "int subgroupClusteredXor(int, uint);\n" + "ivec2 subgroupClusteredXor(ivec2, uint);\n" + "ivec3 subgroupClusteredXor(ivec3, uint);\n" + "ivec4 subgroupClusteredXor(ivec4, uint);\n" + "uint subgroupClusteredXor(uint, uint);\n" + "uvec2 subgroupClusteredXor(uvec2, uint);\n" + "uvec3 subgroupClusteredXor(uvec3, uint);\n" + "uvec4 subgroupClusteredXor(uvec4, uint);\n" + "bool subgroupClusteredXor(bool, uint);\n" + "bvec2 subgroupClusteredXor(bvec2, uint);\n" + "bvec3 subgroupClusteredXor(bvec3, uint);\n" + "bvec4 subgroupClusteredXor(bvec4, uint);\n" + + "float subgroupQuadBroadcast(float, uint);\n" + "vec2 subgroupQuadBroadcast(vec2, uint);\n" + "vec3 subgroupQuadBroadcast(vec3, uint);\n" + "vec4 subgroupQuadBroadcast(vec4, uint);\n" + "int subgroupQuadBroadcast(int, uint);\n" + "ivec2 subgroupQuadBroadcast(ivec2, uint);\n" + "ivec3 subgroupQuadBroadcast(ivec3, uint);\n" + "ivec4 subgroupQuadBroadcast(ivec4, uint);\n" + "uint subgroupQuadBroadcast(uint, uint);\n" + "uvec2 subgroupQuadBroadcast(uvec2, uint);\n" + "uvec3 subgroupQuadBroadcast(uvec3, uint);\n" + "uvec4 subgroupQuadBroadcast(uvec4, uint);\n" + "bool subgroupQuadBroadcast(bool, uint);\n" + "bvec2 subgroupQuadBroadcast(bvec2, uint);\n" + "bvec3 subgroupQuadBroadcast(bvec3, uint);\n" + "bvec4 subgroupQuadBroadcast(bvec4, uint);\n" + + "float subgroupQuadSwapHorizontal(float);\n" + "vec2 subgroupQuadSwapHorizontal(vec2);\n" + "vec3 subgroupQuadSwapHorizontal(vec3);\n" + "vec4 subgroupQuadSwapHorizontal(vec4);\n" + "int subgroupQuadSwapHorizontal(int);\n" + "ivec2 subgroupQuadSwapHorizontal(ivec2);\n" + "ivec3 subgroupQuadSwapHorizontal(ivec3);\n" + "ivec4 subgroupQuadSwapHorizontal(ivec4);\n" + "uint subgroupQuadSwapHorizontal(uint);\n" + "uvec2 subgroupQuadSwapHorizontal(uvec2);\n" + "uvec3 subgroupQuadSwapHorizontal(uvec3);\n" + "uvec4 subgroupQuadSwapHorizontal(uvec4);\n" + "bool subgroupQuadSwapHorizontal(bool);\n" + "bvec2 subgroupQuadSwapHorizontal(bvec2);\n" + "bvec3 subgroupQuadSwapHorizontal(bvec3);\n" + "bvec4 subgroupQuadSwapHorizontal(bvec4);\n" + + "float subgroupQuadSwapVertical(float);\n" + "vec2 subgroupQuadSwapVertical(vec2);\n" + "vec3 subgroupQuadSwapVertical(vec3);\n" + "vec4 subgroupQuadSwapVertical(vec4);\n" + "int subgroupQuadSwapVertical(int);\n" + "ivec2 subgroupQuadSwapVertical(ivec2);\n" + "ivec3 subgroupQuadSwapVertical(ivec3);\n" + "ivec4 subgroupQuadSwapVertical(ivec4);\n" + "uint subgroupQuadSwapVertical(uint);\n" + "uvec2 subgroupQuadSwapVertical(uvec2);\n" + "uvec3 subgroupQuadSwapVertical(uvec3);\n" + "uvec4 subgroupQuadSwapVertical(uvec4);\n" + "bool subgroupQuadSwapVertical(bool);\n" + "bvec2 subgroupQuadSwapVertical(bvec2);\n" + "bvec3 subgroupQuadSwapVertical(bvec3);\n" + "bvec4 subgroupQuadSwapVertical(bvec4);\n" + + "float subgroupQuadSwapDiagonal(float);\n" + "vec2 subgroupQuadSwapDiagonal(vec2);\n" + "vec3 subgroupQuadSwapDiagonal(vec3);\n" + "vec4 subgroupQuadSwapDiagonal(vec4);\n" + "int subgroupQuadSwapDiagonal(int);\n" + "ivec2 subgroupQuadSwapDiagonal(ivec2);\n" + "ivec3 subgroupQuadSwapDiagonal(ivec3);\n" + "ivec4 subgroupQuadSwapDiagonal(ivec4);\n" + "uint subgroupQuadSwapDiagonal(uint);\n" + "uvec2 subgroupQuadSwapDiagonal(uvec2);\n" + "uvec3 subgroupQuadSwapDiagonal(uvec3);\n" + "uvec4 subgroupQuadSwapDiagonal(uvec4);\n" + "bool subgroupQuadSwapDiagonal(bool);\n" + "bvec2 subgroupQuadSwapDiagonal(bvec2);\n" + "bvec3 subgroupQuadSwapDiagonal(bvec3);\n" + "bvec4 subgroupQuadSwapDiagonal(bvec4);\n" + +#ifdef NV_EXTENSIONS + "uvec4 subgroupPartitionNV(float);\n" + "uvec4 subgroupPartitionNV(vec2);\n" + "uvec4 subgroupPartitionNV(vec3);\n" + "uvec4 subgroupPartitionNV(vec4);\n" + "uvec4 subgroupPartitionNV(int);\n" + "uvec4 subgroupPartitionNV(ivec2);\n" + "uvec4 subgroupPartitionNV(ivec3);\n" + "uvec4 subgroupPartitionNV(ivec4);\n" + "uvec4 subgroupPartitionNV(uint);\n" + "uvec4 subgroupPartitionNV(uvec2);\n" + "uvec4 subgroupPartitionNV(uvec3);\n" + "uvec4 subgroupPartitionNV(uvec4);\n" + "uvec4 subgroupPartitionNV(bool);\n" + "uvec4 subgroupPartitionNV(bvec2);\n" + "uvec4 subgroupPartitionNV(bvec3);\n" + "uvec4 subgroupPartitionNV(bvec4);\n" + + "float subgroupPartitionedAddNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedAddNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedAddNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedAddNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedAddNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedAddNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedAddNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedAddNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedAddNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedAddNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedAddNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedAddNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedMulNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedMulNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedMulNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedMulNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedMulNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedMulNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedMulNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedMulNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedMulNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedMulNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedMulNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedMulNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedMinNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedMinNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedMinNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedMinNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedMinNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedMinNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedMinNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedMinNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedMinNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedMinNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedMinNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedMinNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedMaxNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedMaxNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedMaxNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedMaxNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedMaxNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedMaxNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedMaxNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedMaxNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedMaxNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedMaxNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedMaxNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedMaxNV(uvec4, uvec4 ballot);\n" + + "int subgroupPartitionedAndNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedAndNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedAndNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedAndNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedAndNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedAndNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedAndNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedAndNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedAndNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedAndNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedAndNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedAndNV(bvec4, uvec4 ballot);\n" + + "int subgroupPartitionedOrNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedOrNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedOrNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedOrNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedOrNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedOrNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedOrNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedOrNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedOrNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedOrNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedOrNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedOrNV(bvec4, uvec4 ballot);\n" + + "int subgroupPartitionedXorNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedXorNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedXorNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedXorNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedXorNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedXorNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedXorNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedXorNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedXorNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedXorNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedXorNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedXorNV(bvec4, uvec4 ballot);\n" + + "float subgroupPartitionedInclusiveAddNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedInclusiveAddNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedInclusiveAddNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedInclusiveAddNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedInclusiveAddNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedInclusiveAddNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedInclusiveAddNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedInclusiveAddNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedInclusiveAddNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedInclusiveAddNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedInclusiveAddNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedInclusiveAddNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedInclusiveMulNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedInclusiveMulNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedInclusiveMulNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedInclusiveMulNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedInclusiveMulNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedInclusiveMulNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedInclusiveMulNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedInclusiveMulNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedInclusiveMulNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedInclusiveMulNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedInclusiveMulNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedInclusiveMulNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedInclusiveMinNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedInclusiveMinNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedInclusiveMinNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedInclusiveMinNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedInclusiveMinNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedInclusiveMinNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedInclusiveMinNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedInclusiveMinNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedInclusiveMinNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedInclusiveMinNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedInclusiveMinNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedInclusiveMinNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedInclusiveMaxNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedInclusiveMaxNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedInclusiveMaxNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedInclusiveMaxNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedInclusiveMaxNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedInclusiveMaxNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedInclusiveMaxNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedInclusiveMaxNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedInclusiveMaxNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedInclusiveMaxNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedInclusiveMaxNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedInclusiveMaxNV(uvec4, uvec4 ballot);\n" + + "int subgroupPartitionedInclusiveAndNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedInclusiveAndNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedInclusiveAndNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedInclusiveAndNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedInclusiveAndNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedInclusiveAndNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedInclusiveAndNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedInclusiveAndNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedInclusiveAndNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedInclusiveAndNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedInclusiveAndNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedInclusiveAndNV(bvec4, uvec4 ballot);\n" + + "int subgroupPartitionedInclusiveOrNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedInclusiveOrNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedInclusiveOrNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedInclusiveOrNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedInclusiveOrNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedInclusiveOrNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedInclusiveOrNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedInclusiveOrNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedInclusiveOrNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedInclusiveOrNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedInclusiveOrNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedInclusiveOrNV(bvec4, uvec4 ballot);\n" + + "int subgroupPartitionedInclusiveXorNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedInclusiveXorNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedInclusiveXorNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedInclusiveXorNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedInclusiveXorNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedInclusiveXorNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedInclusiveXorNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedInclusiveXorNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedInclusiveXorNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedInclusiveXorNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedInclusiveXorNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedInclusiveXorNV(bvec4, uvec4 ballot);\n" + + "float subgroupPartitionedExclusiveAddNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedExclusiveAddNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedExclusiveAddNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedExclusiveAddNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedExclusiveAddNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedExclusiveAddNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedExclusiveAddNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedExclusiveAddNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedExclusiveAddNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedExclusiveAddNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedExclusiveAddNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedExclusiveAddNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedExclusiveMulNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedExclusiveMulNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedExclusiveMulNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedExclusiveMulNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedExclusiveMulNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedExclusiveMulNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedExclusiveMulNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedExclusiveMulNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedExclusiveMulNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedExclusiveMulNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedExclusiveMulNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedExclusiveMulNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedExclusiveMinNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedExclusiveMinNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedExclusiveMinNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedExclusiveMinNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedExclusiveMinNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedExclusiveMinNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedExclusiveMinNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedExclusiveMinNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedExclusiveMinNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedExclusiveMinNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedExclusiveMinNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedExclusiveMinNV(uvec4, uvec4 ballot);\n" + + "float subgroupPartitionedExclusiveMaxNV(float, uvec4 ballot);\n" + "vec2 subgroupPartitionedExclusiveMaxNV(vec2, uvec4 ballot);\n" + "vec3 subgroupPartitionedExclusiveMaxNV(vec3, uvec4 ballot);\n" + "vec4 subgroupPartitionedExclusiveMaxNV(vec4, uvec4 ballot);\n" + "int subgroupPartitionedExclusiveMaxNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedExclusiveMaxNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedExclusiveMaxNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedExclusiveMaxNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedExclusiveMaxNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedExclusiveMaxNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedExclusiveMaxNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedExclusiveMaxNV(uvec4, uvec4 ballot);\n" + + "int subgroupPartitionedExclusiveAndNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedExclusiveAndNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedExclusiveAndNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedExclusiveAndNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedExclusiveAndNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedExclusiveAndNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedExclusiveAndNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedExclusiveAndNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedExclusiveAndNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedExclusiveAndNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedExclusiveAndNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedExclusiveAndNV(bvec4, uvec4 ballot);\n" + + "int subgroupPartitionedExclusiveOrNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedExclusiveOrNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedExclusiveOrNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedExclusiveOrNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedExclusiveOrNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedExclusiveOrNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedExclusiveOrNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedExclusiveOrNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedExclusiveOrNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedExclusiveOrNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedExclusiveOrNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedExclusiveOrNV(bvec4, uvec4 ballot);\n" + + "int subgroupPartitionedExclusiveXorNV(int, uvec4 ballot);\n" + "ivec2 subgroupPartitionedExclusiveXorNV(ivec2, uvec4 ballot);\n" + "ivec3 subgroupPartitionedExclusiveXorNV(ivec3, uvec4 ballot);\n" + "ivec4 subgroupPartitionedExclusiveXorNV(ivec4, uvec4 ballot);\n" + "uint subgroupPartitionedExclusiveXorNV(uint, uvec4 ballot);\n" + "uvec2 subgroupPartitionedExclusiveXorNV(uvec2, uvec4 ballot);\n" + "uvec3 subgroupPartitionedExclusiveXorNV(uvec3, uvec4 ballot);\n" + "uvec4 subgroupPartitionedExclusiveXorNV(uvec4, uvec4 ballot);\n" + "bool subgroupPartitionedExclusiveXorNV(bool, uvec4 ballot);\n" + "bvec2 subgroupPartitionedExclusiveXorNV(bvec2, uvec4 ballot);\n" + "bvec3 subgroupPartitionedExclusiveXorNV(bvec3, uvec4 ballot);\n" + "bvec4 subgroupPartitionedExclusiveXorNV(bvec4, uvec4 ballot);\n" +#endif + + "\n"); + + if (profile != EEsProfile && version >= 400) { + commonBuiltins.append( + "bool subgroupAllEqual(double);\n" + "bool subgroupAllEqual(dvec2);\n" + "bool subgroupAllEqual(dvec3);\n" + "bool subgroupAllEqual(dvec4);\n" + + "double subgroupBroadcast(double, uint);\n" + "dvec2 subgroupBroadcast(dvec2, uint);\n" + "dvec3 subgroupBroadcast(dvec3, uint);\n" + "dvec4 subgroupBroadcast(dvec4, uint);\n" + + "double subgroupBroadcastFirst(double);\n" + "dvec2 subgroupBroadcastFirst(dvec2);\n" + "dvec3 subgroupBroadcastFirst(dvec3);\n" + "dvec4 subgroupBroadcastFirst(dvec4);\n" + + "double subgroupShuffle(double, uint);\n" + "dvec2 subgroupShuffle(dvec2, uint);\n" + "dvec3 subgroupShuffle(dvec3, uint);\n" + "dvec4 subgroupShuffle(dvec4, uint);\n" + + "double subgroupShuffleXor(double, uint);\n" + "dvec2 subgroupShuffleXor(dvec2, uint);\n" + "dvec3 subgroupShuffleXor(dvec3, uint);\n" + "dvec4 subgroupShuffleXor(dvec4, uint);\n" + + "double subgroupShuffleUp(double, uint delta);\n" + "dvec2 subgroupShuffleUp(dvec2, uint delta);\n" + "dvec3 subgroupShuffleUp(dvec3, uint delta);\n" + "dvec4 subgroupShuffleUp(dvec4, uint delta);\n" + + "double subgroupShuffleDown(double, uint delta);\n" + "dvec2 subgroupShuffleDown(dvec2, uint delta);\n" + "dvec3 subgroupShuffleDown(dvec3, uint delta);\n" + "dvec4 subgroupShuffleDown(dvec4, uint delta);\n" + + "double subgroupAdd(double);\n" + "dvec2 subgroupAdd(dvec2);\n" + "dvec3 subgroupAdd(dvec3);\n" + "dvec4 subgroupAdd(dvec4);\n" + + "double subgroupMul(double);\n" + "dvec2 subgroupMul(dvec2);\n" + "dvec3 subgroupMul(dvec3);\n" + "dvec4 subgroupMul(dvec4);\n" + + "double subgroupMin(double);\n" + "dvec2 subgroupMin(dvec2);\n" + "dvec3 subgroupMin(dvec3);\n" + "dvec4 subgroupMin(dvec4);\n" + + "double subgroupMax(double);\n" + "dvec2 subgroupMax(dvec2);\n" + "dvec3 subgroupMax(dvec3);\n" + "dvec4 subgroupMax(dvec4);\n" + + "double subgroupInclusiveAdd(double);\n" + "dvec2 subgroupInclusiveAdd(dvec2);\n" + "dvec3 subgroupInclusiveAdd(dvec3);\n" + "dvec4 subgroupInclusiveAdd(dvec4);\n" + + "double subgroupInclusiveMul(double);\n" + "dvec2 subgroupInclusiveMul(dvec2);\n" + "dvec3 subgroupInclusiveMul(dvec3);\n" + "dvec4 subgroupInclusiveMul(dvec4);\n" + + "double subgroupInclusiveMin(double);\n" + "dvec2 subgroupInclusiveMin(dvec2);\n" + "dvec3 subgroupInclusiveMin(dvec3);\n" + "dvec4 subgroupInclusiveMin(dvec4);\n" + + "double subgroupInclusiveMax(double);\n" + "dvec2 subgroupInclusiveMax(dvec2);\n" + "dvec3 subgroupInclusiveMax(dvec3);\n" + "dvec4 subgroupInclusiveMax(dvec4);\n" + + "double subgroupExclusiveAdd(double);\n" + "dvec2 subgroupExclusiveAdd(dvec2);\n" + "dvec3 subgroupExclusiveAdd(dvec3);\n" + "dvec4 subgroupExclusiveAdd(dvec4);\n" + + "double subgroupExclusiveMul(double);\n" + "dvec2 subgroupExclusiveMul(dvec2);\n" + "dvec3 subgroupExclusiveMul(dvec3);\n" + "dvec4 subgroupExclusiveMul(dvec4);\n" + + "double subgroupExclusiveMin(double);\n" + "dvec2 subgroupExclusiveMin(dvec2);\n" + "dvec3 subgroupExclusiveMin(dvec3);\n" + "dvec4 subgroupExclusiveMin(dvec4);\n" + + "double subgroupExclusiveMax(double);\n" + "dvec2 subgroupExclusiveMax(dvec2);\n" + "dvec3 subgroupExclusiveMax(dvec3);\n" + "dvec4 subgroupExclusiveMax(dvec4);\n" + + "double subgroupClusteredAdd(double, uint);\n" + "dvec2 subgroupClusteredAdd(dvec2, uint);\n" + "dvec3 subgroupClusteredAdd(dvec3, uint);\n" + "dvec4 subgroupClusteredAdd(dvec4, uint);\n" + + "double subgroupClusteredMul(double, uint);\n" + "dvec2 subgroupClusteredMul(dvec2, uint);\n" + "dvec3 subgroupClusteredMul(dvec3, uint);\n" + "dvec4 subgroupClusteredMul(dvec4, uint);\n" + + "double subgroupClusteredMin(double, uint);\n" + "dvec2 subgroupClusteredMin(dvec2, uint);\n" + "dvec3 subgroupClusteredMin(dvec3, uint);\n" + "dvec4 subgroupClusteredMin(dvec4, uint);\n" + + "double subgroupClusteredMax(double, uint);\n" + "dvec2 subgroupClusteredMax(dvec2, uint);\n" + "dvec3 subgroupClusteredMax(dvec3, uint);\n" + "dvec4 subgroupClusteredMax(dvec4, uint);\n" + + "double subgroupQuadBroadcast(double, uint);\n" + "dvec2 subgroupQuadBroadcast(dvec2, uint);\n" + "dvec3 subgroupQuadBroadcast(dvec3, uint);\n" + "dvec4 subgroupQuadBroadcast(dvec4, uint);\n" + + "double subgroupQuadSwapHorizontal(double);\n" + "dvec2 subgroupQuadSwapHorizontal(dvec2);\n" + "dvec3 subgroupQuadSwapHorizontal(dvec3);\n" + "dvec4 subgroupQuadSwapHorizontal(dvec4);\n" + + "double subgroupQuadSwapVertical(double);\n" + "dvec2 subgroupQuadSwapVertical(dvec2);\n" + "dvec3 subgroupQuadSwapVertical(dvec3);\n" + "dvec4 subgroupQuadSwapVertical(dvec4);\n" + + "double subgroupQuadSwapDiagonal(double);\n" + "dvec2 subgroupQuadSwapDiagonal(dvec2);\n" + "dvec3 subgroupQuadSwapDiagonal(dvec3);\n" + "dvec4 subgroupQuadSwapDiagonal(dvec4);\n" + + +#ifdef NV_EXTENSIONS + "uvec4 subgroupPartitionNV(double);\n" + "uvec4 subgroupPartitionNV(dvec2);\n" + "uvec4 subgroupPartitionNV(dvec3);\n" + "uvec4 subgroupPartitionNV(dvec4);\n" + + "double subgroupPartitionedAddNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedAddNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedAddNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedAddNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedMulNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedMulNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedMulNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedMulNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedMinNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedMinNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedMinNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedMinNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedMaxNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedMaxNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedMaxNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedMaxNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedInclusiveAddNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedInclusiveAddNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedInclusiveAddNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedInclusiveAddNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedInclusiveMulNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedInclusiveMulNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedInclusiveMulNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedInclusiveMulNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedInclusiveMinNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedInclusiveMinNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedInclusiveMinNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedInclusiveMinNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedInclusiveMaxNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedInclusiveMaxNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedInclusiveMaxNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedInclusiveMaxNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedExclusiveAddNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedExclusiveAddNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedExclusiveAddNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedExclusiveAddNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedExclusiveMulNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedExclusiveMulNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedExclusiveMulNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedExclusiveMulNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedExclusiveMinNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedExclusiveMinNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedExclusiveMinNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedExclusiveMinNV(dvec4, uvec4 ballot);\n" + + "double subgroupPartitionedExclusiveMaxNV(double, uvec4 ballot);\n" + "dvec2 subgroupPartitionedExclusiveMaxNV(dvec2, uvec4 ballot);\n" + "dvec3 subgroupPartitionedExclusiveMaxNV(dvec3, uvec4 ballot);\n" + "dvec4 subgroupPartitionedExclusiveMaxNV(dvec4, uvec4 ballot);\n" +#endif + + "\n"); + } + + stageBuiltins[EShLangCompute].append( + "void subgroupMemoryBarrierShared();" + + "\n" + ); + } + + if (profile != EEsProfile && version >= 460) { + commonBuiltins.append( + "bool anyInvocation(bool);" + "bool allInvocations(bool);" + "bool allInvocationsEqual(bool);" + + "\n"); + } + #ifdef AMD_EXTENSIONS // GL_AMD_shader_ballot if (profile != EEsProfile && version >= 450) { @@ -1588,6 +2773,126 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 minInvocationsAMD(uvec3);" "uvec4 minInvocationsAMD(uvec4);" + "double minInvocationsAMD(double);" + "dvec2 minInvocationsAMD(dvec2);" + "dvec3 minInvocationsAMD(dvec3);" + "dvec4 minInvocationsAMD(dvec4);" + + "int64_t minInvocationsAMD(int64_t);" + "i64vec2 minInvocationsAMD(i64vec2);" + "i64vec3 minInvocationsAMD(i64vec3);" + "i64vec4 minInvocationsAMD(i64vec4);" + + "uint64_t minInvocationsAMD(uint64_t);" + "u64vec2 minInvocationsAMD(u64vec2);" + "u64vec3 minInvocationsAMD(u64vec3);" + "u64vec4 minInvocationsAMD(u64vec4);" + + "float16_t minInvocationsAMD(float16_t);" + "f16vec2 minInvocationsAMD(f16vec2);" + "f16vec3 minInvocationsAMD(f16vec3);" + "f16vec4 minInvocationsAMD(f16vec4);" + + "int16_t minInvocationsAMD(int16_t);" + "i16vec2 minInvocationsAMD(i16vec2);" + "i16vec3 minInvocationsAMD(i16vec3);" + "i16vec4 minInvocationsAMD(i16vec4);" + + "uint16_t minInvocationsAMD(uint16_t);" + "u16vec2 minInvocationsAMD(u16vec2);" + "u16vec3 minInvocationsAMD(u16vec3);" + "u16vec4 minInvocationsAMD(u16vec4);" + + "float minInvocationsInclusiveScanAMD(float);" + "vec2 minInvocationsInclusiveScanAMD(vec2);" + "vec3 minInvocationsInclusiveScanAMD(vec3);" + "vec4 minInvocationsInclusiveScanAMD(vec4);" + + "int minInvocationsInclusiveScanAMD(int);" + "ivec2 minInvocationsInclusiveScanAMD(ivec2);" + "ivec3 minInvocationsInclusiveScanAMD(ivec3);" + "ivec4 minInvocationsInclusiveScanAMD(ivec4);" + + "uint minInvocationsInclusiveScanAMD(uint);" + "uvec2 minInvocationsInclusiveScanAMD(uvec2);" + "uvec3 minInvocationsInclusiveScanAMD(uvec3);" + "uvec4 minInvocationsInclusiveScanAMD(uvec4);" + + "double minInvocationsInclusiveScanAMD(double);" + "dvec2 minInvocationsInclusiveScanAMD(dvec2);" + "dvec3 minInvocationsInclusiveScanAMD(dvec3);" + "dvec4 minInvocationsInclusiveScanAMD(dvec4);" + + "int64_t minInvocationsInclusiveScanAMD(int64_t);" + "i64vec2 minInvocationsInclusiveScanAMD(i64vec2);" + "i64vec3 minInvocationsInclusiveScanAMD(i64vec3);" + "i64vec4 minInvocationsInclusiveScanAMD(i64vec4);" + + "uint64_t minInvocationsInclusiveScanAMD(uint64_t);" + "u64vec2 minInvocationsInclusiveScanAMD(u64vec2);" + "u64vec3 minInvocationsInclusiveScanAMD(u64vec3);" + "u64vec4 minInvocationsInclusiveScanAMD(u64vec4);" + + "float16_t minInvocationsInclusiveScanAMD(float16_t);" + "f16vec2 minInvocationsInclusiveScanAMD(f16vec2);" + "f16vec3 minInvocationsInclusiveScanAMD(f16vec3);" + "f16vec4 minInvocationsInclusiveScanAMD(f16vec4);" + + "int16_t minInvocationsInclusiveScanAMD(int16_t);" + "i16vec2 minInvocationsInclusiveScanAMD(i16vec2);" + "i16vec3 minInvocationsInclusiveScanAMD(i16vec3);" + "i16vec4 minInvocationsInclusiveScanAMD(i16vec4);" + + "uint16_t minInvocationsInclusiveScanAMD(uint16_t);" + "u16vec2 minInvocationsInclusiveScanAMD(u16vec2);" + "u16vec3 minInvocationsInclusiveScanAMD(u16vec3);" + "u16vec4 minInvocationsInclusiveScanAMD(u16vec4);" + + "float minInvocationsExclusiveScanAMD(float);" + "vec2 minInvocationsExclusiveScanAMD(vec2);" + "vec3 minInvocationsExclusiveScanAMD(vec3);" + "vec4 minInvocationsExclusiveScanAMD(vec4);" + + "int minInvocationsExclusiveScanAMD(int);" + "ivec2 minInvocationsExclusiveScanAMD(ivec2);" + "ivec3 minInvocationsExclusiveScanAMD(ivec3);" + "ivec4 minInvocationsExclusiveScanAMD(ivec4);" + + "uint minInvocationsExclusiveScanAMD(uint);" + "uvec2 minInvocationsExclusiveScanAMD(uvec2);" + "uvec3 minInvocationsExclusiveScanAMD(uvec3);" + "uvec4 minInvocationsExclusiveScanAMD(uvec4);" + + "double minInvocationsExclusiveScanAMD(double);" + "dvec2 minInvocationsExclusiveScanAMD(dvec2);" + "dvec3 minInvocationsExclusiveScanAMD(dvec3);" + "dvec4 minInvocationsExclusiveScanAMD(dvec4);" + + "int64_t minInvocationsExclusiveScanAMD(int64_t);" + "i64vec2 minInvocationsExclusiveScanAMD(i64vec2);" + "i64vec3 minInvocationsExclusiveScanAMD(i64vec3);" + "i64vec4 minInvocationsExclusiveScanAMD(i64vec4);" + + "uint64_t minInvocationsExclusiveScanAMD(uint64_t);" + "u64vec2 minInvocationsExclusiveScanAMD(u64vec2);" + "u64vec3 minInvocationsExclusiveScanAMD(u64vec3);" + "u64vec4 minInvocationsExclusiveScanAMD(u64vec4);" + + "float16_t minInvocationsExclusiveScanAMD(float16_t);" + "f16vec2 minInvocationsExclusiveScanAMD(f16vec2);" + "f16vec3 minInvocationsExclusiveScanAMD(f16vec3);" + "f16vec4 minInvocationsExclusiveScanAMD(f16vec4);" + + "int16_t minInvocationsExclusiveScanAMD(int16_t);" + "i16vec2 minInvocationsExclusiveScanAMD(i16vec2);" + "i16vec3 minInvocationsExclusiveScanAMD(i16vec3);" + "i16vec4 minInvocationsExclusiveScanAMD(i16vec4);" + + "uint16_t minInvocationsExclusiveScanAMD(uint16_t);" + "u16vec2 minInvocationsExclusiveScanAMD(u16vec2);" + "u16vec3 minInvocationsExclusiveScanAMD(u16vec3);" + "u16vec4 minInvocationsExclusiveScanAMD(u16vec4);" + "float maxInvocationsAMD(float);" "vec2 maxInvocationsAMD(vec2);" "vec3 maxInvocationsAMD(vec3);" @@ -1603,6 +2908,126 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 maxInvocationsAMD(uvec3);" "uvec4 maxInvocationsAMD(uvec4);" + "double maxInvocationsAMD(double);" + "dvec2 maxInvocationsAMD(dvec2);" + "dvec3 maxInvocationsAMD(dvec3);" + "dvec4 maxInvocationsAMD(dvec4);" + + "int64_t maxInvocationsAMD(int64_t);" + "i64vec2 maxInvocationsAMD(i64vec2);" + "i64vec3 maxInvocationsAMD(i64vec3);" + "i64vec4 maxInvocationsAMD(i64vec4);" + + "uint64_t maxInvocationsAMD(uint64_t);" + "u64vec2 maxInvocationsAMD(u64vec2);" + "u64vec3 maxInvocationsAMD(u64vec3);" + "u64vec4 maxInvocationsAMD(u64vec4);" + + "float16_t maxInvocationsAMD(float16_t);" + "f16vec2 maxInvocationsAMD(f16vec2);" + "f16vec3 maxInvocationsAMD(f16vec3);" + "f16vec4 maxInvocationsAMD(f16vec4);" + + "int16_t maxInvocationsAMD(int16_t);" + "i16vec2 maxInvocationsAMD(i16vec2);" + "i16vec3 maxInvocationsAMD(i16vec3);" + "i16vec4 maxInvocationsAMD(i16vec4);" + + "uint16_t maxInvocationsAMD(uint16_t);" + "u16vec2 maxInvocationsAMD(u16vec2);" + "u16vec3 maxInvocationsAMD(u16vec3);" + "u16vec4 maxInvocationsAMD(u16vec4);" + + "float maxInvocationsInclusiveScanAMD(float);" + "vec2 maxInvocationsInclusiveScanAMD(vec2);" + "vec3 maxInvocationsInclusiveScanAMD(vec3);" + "vec4 maxInvocationsInclusiveScanAMD(vec4);" + + "int maxInvocationsInclusiveScanAMD(int);" + "ivec2 maxInvocationsInclusiveScanAMD(ivec2);" + "ivec3 maxInvocationsInclusiveScanAMD(ivec3);" + "ivec4 maxInvocationsInclusiveScanAMD(ivec4);" + + "uint maxInvocationsInclusiveScanAMD(uint);" + "uvec2 maxInvocationsInclusiveScanAMD(uvec2);" + "uvec3 maxInvocationsInclusiveScanAMD(uvec3);" + "uvec4 maxInvocationsInclusiveScanAMD(uvec4);" + + "double maxInvocationsInclusiveScanAMD(double);" + "dvec2 maxInvocationsInclusiveScanAMD(dvec2);" + "dvec3 maxInvocationsInclusiveScanAMD(dvec3);" + "dvec4 maxInvocationsInclusiveScanAMD(dvec4);" + + "int64_t maxInvocationsInclusiveScanAMD(int64_t);" + "i64vec2 maxInvocationsInclusiveScanAMD(i64vec2);" + "i64vec3 maxInvocationsInclusiveScanAMD(i64vec3);" + "i64vec4 maxInvocationsInclusiveScanAMD(i64vec4);" + + "uint64_t maxInvocationsInclusiveScanAMD(uint64_t);" + "u64vec2 maxInvocationsInclusiveScanAMD(u64vec2);" + "u64vec3 maxInvocationsInclusiveScanAMD(u64vec3);" + "u64vec4 maxInvocationsInclusiveScanAMD(u64vec4);" + + "float16_t maxInvocationsInclusiveScanAMD(float16_t);" + "f16vec2 maxInvocationsInclusiveScanAMD(f16vec2);" + "f16vec3 maxInvocationsInclusiveScanAMD(f16vec3);" + "f16vec4 maxInvocationsInclusiveScanAMD(f16vec4);" + + "int16_t maxInvocationsInclusiveScanAMD(int16_t);" + "i16vec2 maxInvocationsInclusiveScanAMD(i16vec2);" + "i16vec3 maxInvocationsInclusiveScanAMD(i16vec3);" + "i16vec4 maxInvocationsInclusiveScanAMD(i16vec4);" + + "uint16_t maxInvocationsInclusiveScanAMD(uint16_t);" + "u16vec2 maxInvocationsInclusiveScanAMD(u16vec2);" + "u16vec3 maxInvocationsInclusiveScanAMD(u16vec3);" + "u16vec4 maxInvocationsInclusiveScanAMD(u16vec4);" + + "float maxInvocationsExclusiveScanAMD(float);" + "vec2 maxInvocationsExclusiveScanAMD(vec2);" + "vec3 maxInvocationsExclusiveScanAMD(vec3);" + "vec4 maxInvocationsExclusiveScanAMD(vec4);" + + "int maxInvocationsExclusiveScanAMD(int);" + "ivec2 maxInvocationsExclusiveScanAMD(ivec2);" + "ivec3 maxInvocationsExclusiveScanAMD(ivec3);" + "ivec4 maxInvocationsExclusiveScanAMD(ivec4);" + + "uint maxInvocationsExclusiveScanAMD(uint);" + "uvec2 maxInvocationsExclusiveScanAMD(uvec2);" + "uvec3 maxInvocationsExclusiveScanAMD(uvec3);" + "uvec4 maxInvocationsExclusiveScanAMD(uvec4);" + + "double maxInvocationsExclusiveScanAMD(double);" + "dvec2 maxInvocationsExclusiveScanAMD(dvec2);" + "dvec3 maxInvocationsExclusiveScanAMD(dvec3);" + "dvec4 maxInvocationsExclusiveScanAMD(dvec4);" + + "int64_t maxInvocationsExclusiveScanAMD(int64_t);" + "i64vec2 maxInvocationsExclusiveScanAMD(i64vec2);" + "i64vec3 maxInvocationsExclusiveScanAMD(i64vec3);" + "i64vec4 maxInvocationsExclusiveScanAMD(i64vec4);" + + "uint64_t maxInvocationsExclusiveScanAMD(uint64_t);" + "u64vec2 maxInvocationsExclusiveScanAMD(u64vec2);" + "u64vec3 maxInvocationsExclusiveScanAMD(u64vec3);" + "u64vec4 maxInvocationsExclusiveScanAMD(u64vec4);" + + "float16_t maxInvocationsExclusiveScanAMD(float16_t);" + "f16vec2 maxInvocationsExclusiveScanAMD(f16vec2);" + "f16vec3 maxInvocationsExclusiveScanAMD(f16vec3);" + "f16vec4 maxInvocationsExclusiveScanAMD(f16vec4);" + + "int16_t maxInvocationsExclusiveScanAMD(int16_t);" + "i16vec2 maxInvocationsExclusiveScanAMD(i16vec2);" + "i16vec3 maxInvocationsExclusiveScanAMD(i16vec3);" + "i16vec4 maxInvocationsExclusiveScanAMD(i16vec4);" + + "uint16_t maxInvocationsExclusiveScanAMD(uint16_t);" + "u16vec2 maxInvocationsExclusiveScanAMD(u16vec2);" + "u16vec3 maxInvocationsExclusiveScanAMD(u16vec3);" + "u16vec4 maxInvocationsExclusiveScanAMD(u16vec4);" + "float addInvocationsAMD(float);" "vec2 addInvocationsAMD(vec2);" "vec3 addInvocationsAMD(vec3);" @@ -1618,6 +3043,126 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 addInvocationsAMD(uvec3);" "uvec4 addInvocationsAMD(uvec4);" + "double addInvocationsAMD(double);" + "dvec2 addInvocationsAMD(dvec2);" + "dvec3 addInvocationsAMD(dvec3);" + "dvec4 addInvocationsAMD(dvec4);" + + "int64_t addInvocationsAMD(int64_t);" + "i64vec2 addInvocationsAMD(i64vec2);" + "i64vec3 addInvocationsAMD(i64vec3);" + "i64vec4 addInvocationsAMD(i64vec4);" + + "uint64_t addInvocationsAMD(uint64_t);" + "u64vec2 addInvocationsAMD(u64vec2);" + "u64vec3 addInvocationsAMD(u64vec3);" + "u64vec4 addInvocationsAMD(u64vec4);" + + "float16_t addInvocationsAMD(float16_t);" + "f16vec2 addInvocationsAMD(f16vec2);" + "f16vec3 addInvocationsAMD(f16vec3);" + "f16vec4 addInvocationsAMD(f16vec4);" + + "int16_t addInvocationsAMD(int16_t);" + "i16vec2 addInvocationsAMD(i16vec2);" + "i16vec3 addInvocationsAMD(i16vec3);" + "i16vec4 addInvocationsAMD(i16vec4);" + + "uint16_t addInvocationsAMD(uint16_t);" + "u16vec2 addInvocationsAMD(u16vec2);" + "u16vec3 addInvocationsAMD(u16vec3);" + "u16vec4 addInvocationsAMD(u16vec4);" + + "float addInvocationsInclusiveScanAMD(float);" + "vec2 addInvocationsInclusiveScanAMD(vec2);" + "vec3 addInvocationsInclusiveScanAMD(vec3);" + "vec4 addInvocationsInclusiveScanAMD(vec4);" + + "int addInvocationsInclusiveScanAMD(int);" + "ivec2 addInvocationsInclusiveScanAMD(ivec2);" + "ivec3 addInvocationsInclusiveScanAMD(ivec3);" + "ivec4 addInvocationsInclusiveScanAMD(ivec4);" + + "uint addInvocationsInclusiveScanAMD(uint);" + "uvec2 addInvocationsInclusiveScanAMD(uvec2);" + "uvec3 addInvocationsInclusiveScanAMD(uvec3);" + "uvec4 addInvocationsInclusiveScanAMD(uvec4);" + + "double addInvocationsInclusiveScanAMD(double);" + "dvec2 addInvocationsInclusiveScanAMD(dvec2);" + "dvec3 addInvocationsInclusiveScanAMD(dvec3);" + "dvec4 addInvocationsInclusiveScanAMD(dvec4);" + + "int64_t addInvocationsInclusiveScanAMD(int64_t);" + "i64vec2 addInvocationsInclusiveScanAMD(i64vec2);" + "i64vec3 addInvocationsInclusiveScanAMD(i64vec3);" + "i64vec4 addInvocationsInclusiveScanAMD(i64vec4);" + + "uint64_t addInvocationsInclusiveScanAMD(uint64_t);" + "u64vec2 addInvocationsInclusiveScanAMD(u64vec2);" + "u64vec3 addInvocationsInclusiveScanAMD(u64vec3);" + "u64vec4 addInvocationsInclusiveScanAMD(u64vec4);" + + "float16_t addInvocationsInclusiveScanAMD(float16_t);" + "f16vec2 addInvocationsInclusiveScanAMD(f16vec2);" + "f16vec3 addInvocationsInclusiveScanAMD(f16vec3);" + "f16vec4 addInvocationsInclusiveScanAMD(f16vec4);" + + "int16_t addInvocationsInclusiveScanAMD(int16_t);" + "i16vec2 addInvocationsInclusiveScanAMD(i16vec2);" + "i16vec3 addInvocationsInclusiveScanAMD(i16vec3);" + "i16vec4 addInvocationsInclusiveScanAMD(i16vec4);" + + "uint16_t addInvocationsInclusiveScanAMD(uint16_t);" + "u16vec2 addInvocationsInclusiveScanAMD(u16vec2);" + "u16vec3 addInvocationsInclusiveScanAMD(u16vec3);" + "u16vec4 addInvocationsInclusiveScanAMD(u16vec4);" + + "float addInvocationsExclusiveScanAMD(float);" + "vec2 addInvocationsExclusiveScanAMD(vec2);" + "vec3 addInvocationsExclusiveScanAMD(vec3);" + "vec4 addInvocationsExclusiveScanAMD(vec4);" + + "int addInvocationsExclusiveScanAMD(int);" + "ivec2 addInvocationsExclusiveScanAMD(ivec2);" + "ivec3 addInvocationsExclusiveScanAMD(ivec3);" + "ivec4 addInvocationsExclusiveScanAMD(ivec4);" + + "uint addInvocationsExclusiveScanAMD(uint);" + "uvec2 addInvocationsExclusiveScanAMD(uvec2);" + "uvec3 addInvocationsExclusiveScanAMD(uvec3);" + "uvec4 addInvocationsExclusiveScanAMD(uvec4);" + + "double addInvocationsExclusiveScanAMD(double);" + "dvec2 addInvocationsExclusiveScanAMD(dvec2);" + "dvec3 addInvocationsExclusiveScanAMD(dvec3);" + "dvec4 addInvocationsExclusiveScanAMD(dvec4);" + + "int64_t addInvocationsExclusiveScanAMD(int64_t);" + "i64vec2 addInvocationsExclusiveScanAMD(i64vec2);" + "i64vec3 addInvocationsExclusiveScanAMD(i64vec3);" + "i64vec4 addInvocationsExclusiveScanAMD(i64vec4);" + + "uint64_t addInvocationsExclusiveScanAMD(uint64_t);" + "u64vec2 addInvocationsExclusiveScanAMD(u64vec2);" + "u64vec3 addInvocationsExclusiveScanAMD(u64vec3);" + "u64vec4 addInvocationsExclusiveScanAMD(u64vec4);" + + "float16_t addInvocationsExclusiveScanAMD(float16_t);" + "f16vec2 addInvocationsExclusiveScanAMD(f16vec2);" + "f16vec3 addInvocationsExclusiveScanAMD(f16vec3);" + "f16vec4 addInvocationsExclusiveScanAMD(f16vec4);" + + "int16_t addInvocationsExclusiveScanAMD(int16_t);" + "i16vec2 addInvocationsExclusiveScanAMD(i16vec2);" + "i16vec3 addInvocationsExclusiveScanAMD(i16vec3);" + "i16vec4 addInvocationsExclusiveScanAMD(i16vec4);" + + "uint16_t addInvocationsExclusiveScanAMD(uint16_t);" + "u16vec2 addInvocationsExclusiveScanAMD(u16vec2);" + "u16vec3 addInvocationsExclusiveScanAMD(u16vec3);" + "u16vec4 addInvocationsExclusiveScanAMD(u16vec4);" + "float minInvocationsNonUniformAMD(float);" "vec2 minInvocationsNonUniformAMD(vec2);" "vec3 minInvocationsNonUniformAMD(vec3);" @@ -1633,6 +3178,126 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 minInvocationsNonUniformAMD(uvec3);" "uvec4 minInvocationsNonUniformAMD(uvec4);" + "double minInvocationsNonUniformAMD(double);" + "dvec2 minInvocationsNonUniformAMD(dvec2);" + "dvec3 minInvocationsNonUniformAMD(dvec3);" + "dvec4 minInvocationsNonUniformAMD(dvec4);" + + "int64_t minInvocationsNonUniformAMD(int64_t);" + "i64vec2 minInvocationsNonUniformAMD(i64vec2);" + "i64vec3 minInvocationsNonUniformAMD(i64vec3);" + "i64vec4 minInvocationsNonUniformAMD(i64vec4);" + + "uint64_t minInvocationsNonUniformAMD(uint64_t);" + "u64vec2 minInvocationsNonUniformAMD(u64vec2);" + "u64vec3 minInvocationsNonUniformAMD(u64vec3);" + "u64vec4 minInvocationsNonUniformAMD(u64vec4);" + + "float16_t minInvocationsNonUniformAMD(float16_t);" + "f16vec2 minInvocationsNonUniformAMD(f16vec2);" + "f16vec3 minInvocationsNonUniformAMD(f16vec3);" + "f16vec4 minInvocationsNonUniformAMD(f16vec4);" + + "int16_t minInvocationsNonUniformAMD(int16_t);" + "i16vec2 minInvocationsNonUniformAMD(i16vec2);" + "i16vec3 minInvocationsNonUniformAMD(i16vec3);" + "i16vec4 minInvocationsNonUniformAMD(i16vec4);" + + "uint16_t minInvocationsNonUniformAMD(uint16_t);" + "u16vec2 minInvocationsNonUniformAMD(u16vec2);" + "u16vec3 minInvocationsNonUniformAMD(u16vec3);" + "u16vec4 minInvocationsNonUniformAMD(u16vec4);" + + "float minInvocationsInclusiveScanNonUniformAMD(float);" + "vec2 minInvocationsInclusiveScanNonUniformAMD(vec2);" + "vec3 minInvocationsInclusiveScanNonUniformAMD(vec3);" + "vec4 minInvocationsInclusiveScanNonUniformAMD(vec4);" + + "int minInvocationsInclusiveScanNonUniformAMD(int);" + "ivec2 minInvocationsInclusiveScanNonUniformAMD(ivec2);" + "ivec3 minInvocationsInclusiveScanNonUniformAMD(ivec3);" + "ivec4 minInvocationsInclusiveScanNonUniformAMD(ivec4);" + + "uint minInvocationsInclusiveScanNonUniformAMD(uint);" + "uvec2 minInvocationsInclusiveScanNonUniformAMD(uvec2);" + "uvec3 minInvocationsInclusiveScanNonUniformAMD(uvec3);" + "uvec4 minInvocationsInclusiveScanNonUniformAMD(uvec4);" + + "double minInvocationsInclusiveScanNonUniformAMD(double);" + "dvec2 minInvocationsInclusiveScanNonUniformAMD(dvec2);" + "dvec3 minInvocationsInclusiveScanNonUniformAMD(dvec3);" + "dvec4 minInvocationsInclusiveScanNonUniformAMD(dvec4);" + + "int64_t minInvocationsInclusiveScanNonUniformAMD(int64_t);" + "i64vec2 minInvocationsInclusiveScanNonUniformAMD(i64vec2);" + "i64vec3 minInvocationsInclusiveScanNonUniformAMD(i64vec3);" + "i64vec4 minInvocationsInclusiveScanNonUniformAMD(i64vec4);" + + "uint64_t minInvocationsInclusiveScanNonUniformAMD(uint64_t);" + "u64vec2 minInvocationsInclusiveScanNonUniformAMD(u64vec2);" + "u64vec3 minInvocationsInclusiveScanNonUniformAMD(u64vec3);" + "u64vec4 minInvocationsInclusiveScanNonUniformAMD(u64vec4);" + + "float16_t minInvocationsInclusiveScanNonUniformAMD(float16_t);" + "f16vec2 minInvocationsInclusiveScanNonUniformAMD(f16vec2);" + "f16vec3 minInvocationsInclusiveScanNonUniformAMD(f16vec3);" + "f16vec4 minInvocationsInclusiveScanNonUniformAMD(f16vec4);" + + "int16_t minInvocationsInclusiveScanNonUniformAMD(int16_t);" + "i16vec2 minInvocationsInclusiveScanNonUniformAMD(i16vec2);" + "i16vec3 minInvocationsInclusiveScanNonUniformAMD(i16vec3);" + "i16vec4 minInvocationsInclusiveScanNonUniformAMD(i16vec4);" + + "uint16_t minInvocationsInclusiveScanNonUniformAMD(uint16_t);" + "u16vec2 minInvocationsInclusiveScanNonUniformAMD(u16vec2);" + "u16vec3 minInvocationsInclusiveScanNonUniformAMD(u16vec3);" + "u16vec4 minInvocationsInclusiveScanNonUniformAMD(u16vec4);" + + "float minInvocationsExclusiveScanNonUniformAMD(float);" + "vec2 minInvocationsExclusiveScanNonUniformAMD(vec2);" + "vec3 minInvocationsExclusiveScanNonUniformAMD(vec3);" + "vec4 minInvocationsExclusiveScanNonUniformAMD(vec4);" + + "int minInvocationsExclusiveScanNonUniformAMD(int);" + "ivec2 minInvocationsExclusiveScanNonUniformAMD(ivec2);" + "ivec3 minInvocationsExclusiveScanNonUniformAMD(ivec3);" + "ivec4 minInvocationsExclusiveScanNonUniformAMD(ivec4);" + + "uint minInvocationsExclusiveScanNonUniformAMD(uint);" + "uvec2 minInvocationsExclusiveScanNonUniformAMD(uvec2);" + "uvec3 minInvocationsExclusiveScanNonUniformAMD(uvec3);" + "uvec4 minInvocationsExclusiveScanNonUniformAMD(uvec4);" + + "double minInvocationsExclusiveScanNonUniformAMD(double);" + "dvec2 minInvocationsExclusiveScanNonUniformAMD(dvec2);" + "dvec3 minInvocationsExclusiveScanNonUniformAMD(dvec3);" + "dvec4 minInvocationsExclusiveScanNonUniformAMD(dvec4);" + + "int64_t minInvocationsExclusiveScanNonUniformAMD(int64_t);" + "i64vec2 minInvocationsExclusiveScanNonUniformAMD(i64vec2);" + "i64vec3 minInvocationsExclusiveScanNonUniformAMD(i64vec3);" + "i64vec4 minInvocationsExclusiveScanNonUniformAMD(i64vec4);" + + "uint64_t minInvocationsExclusiveScanNonUniformAMD(uint64_t);" + "u64vec2 minInvocationsExclusiveScanNonUniformAMD(u64vec2);" + "u64vec3 minInvocationsExclusiveScanNonUniformAMD(u64vec3);" + "u64vec4 minInvocationsExclusiveScanNonUniformAMD(u64vec4);" + + "float16_t minInvocationsExclusiveScanNonUniformAMD(float16_t);" + "f16vec2 minInvocationsExclusiveScanNonUniformAMD(f16vec2);" + "f16vec3 minInvocationsExclusiveScanNonUniformAMD(f16vec3);" + "f16vec4 minInvocationsExclusiveScanNonUniformAMD(f16vec4);" + + "int16_t minInvocationsExclusiveScanNonUniformAMD(int16_t);" + "i16vec2 minInvocationsExclusiveScanNonUniformAMD(i16vec2);" + "i16vec3 minInvocationsExclusiveScanNonUniformAMD(i16vec3);" + "i16vec4 minInvocationsExclusiveScanNonUniformAMD(i16vec4);" + + "uint16_t minInvocationsExclusiveScanNonUniformAMD(uint16_t);" + "u16vec2 minInvocationsExclusiveScanNonUniformAMD(u16vec2);" + "u16vec3 minInvocationsExclusiveScanNonUniformAMD(u16vec3);" + "u16vec4 minInvocationsExclusiveScanNonUniformAMD(u16vec4);" + "float maxInvocationsNonUniformAMD(float);" "vec2 maxInvocationsNonUniformAMD(vec2);" "vec3 maxInvocationsNonUniformAMD(vec3);" @@ -1648,6 +3313,126 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 maxInvocationsNonUniformAMD(uvec3);" "uvec4 maxInvocationsNonUniformAMD(uvec4);" + "double maxInvocationsNonUniformAMD(double);" + "dvec2 maxInvocationsNonUniformAMD(dvec2);" + "dvec3 maxInvocationsNonUniformAMD(dvec3);" + "dvec4 maxInvocationsNonUniformAMD(dvec4);" + + "int64_t maxInvocationsNonUniformAMD(int64_t);" + "i64vec2 maxInvocationsNonUniformAMD(i64vec2);" + "i64vec3 maxInvocationsNonUniformAMD(i64vec3);" + "i64vec4 maxInvocationsNonUniformAMD(i64vec4);" + + "uint64_t maxInvocationsNonUniformAMD(uint64_t);" + "u64vec2 maxInvocationsNonUniformAMD(u64vec2);" + "u64vec3 maxInvocationsNonUniformAMD(u64vec3);" + "u64vec4 maxInvocationsNonUniformAMD(u64vec4);" + + "float16_t maxInvocationsNonUniformAMD(float16_t);" + "f16vec2 maxInvocationsNonUniformAMD(f16vec2);" + "f16vec3 maxInvocationsNonUniformAMD(f16vec3);" + "f16vec4 maxInvocationsNonUniformAMD(f16vec4);" + + "int16_t maxInvocationsNonUniformAMD(int16_t);" + "i16vec2 maxInvocationsNonUniformAMD(i16vec2);" + "i16vec3 maxInvocationsNonUniformAMD(i16vec3);" + "i16vec4 maxInvocationsNonUniformAMD(i16vec4);" + + "uint16_t maxInvocationsNonUniformAMD(uint16_t);" + "u16vec2 maxInvocationsNonUniformAMD(u16vec2);" + "u16vec3 maxInvocationsNonUniformAMD(u16vec3);" + "u16vec4 maxInvocationsNonUniformAMD(u16vec4);" + + "float maxInvocationsInclusiveScanNonUniformAMD(float);" + "vec2 maxInvocationsInclusiveScanNonUniformAMD(vec2);" + "vec3 maxInvocationsInclusiveScanNonUniformAMD(vec3);" + "vec4 maxInvocationsInclusiveScanNonUniformAMD(vec4);" + + "int maxInvocationsInclusiveScanNonUniformAMD(int);" + "ivec2 maxInvocationsInclusiveScanNonUniformAMD(ivec2);" + "ivec3 maxInvocationsInclusiveScanNonUniformAMD(ivec3);" + "ivec4 maxInvocationsInclusiveScanNonUniformAMD(ivec4);" + + "uint maxInvocationsInclusiveScanNonUniformAMD(uint);" + "uvec2 maxInvocationsInclusiveScanNonUniformAMD(uvec2);" + "uvec3 maxInvocationsInclusiveScanNonUniformAMD(uvec3);" + "uvec4 maxInvocationsInclusiveScanNonUniformAMD(uvec4);" + + "double maxInvocationsInclusiveScanNonUniformAMD(double);" + "dvec2 maxInvocationsInclusiveScanNonUniformAMD(dvec2);" + "dvec3 maxInvocationsInclusiveScanNonUniformAMD(dvec3);" + "dvec4 maxInvocationsInclusiveScanNonUniformAMD(dvec4);" + + "int64_t maxInvocationsInclusiveScanNonUniformAMD(int64_t);" + "i64vec2 maxInvocationsInclusiveScanNonUniformAMD(i64vec2);" + "i64vec3 maxInvocationsInclusiveScanNonUniformAMD(i64vec3);" + "i64vec4 maxInvocationsInclusiveScanNonUniformAMD(i64vec4);" + + "uint64_t maxInvocationsInclusiveScanNonUniformAMD(uint64_t);" + "u64vec2 maxInvocationsInclusiveScanNonUniformAMD(u64vec2);" + "u64vec3 maxInvocationsInclusiveScanNonUniformAMD(u64vec3);" + "u64vec4 maxInvocationsInclusiveScanNonUniformAMD(u64vec4);" + + "float16_t maxInvocationsInclusiveScanNonUniformAMD(float16_t);" + "f16vec2 maxInvocationsInclusiveScanNonUniformAMD(f16vec2);" + "f16vec3 maxInvocationsInclusiveScanNonUniformAMD(f16vec3);" + "f16vec4 maxInvocationsInclusiveScanNonUniformAMD(f16vec4);" + + "int16_t maxInvocationsInclusiveScanNonUniformAMD(int16_t);" + "i16vec2 maxInvocationsInclusiveScanNonUniformAMD(i16vec2);" + "i16vec3 maxInvocationsInclusiveScanNonUniformAMD(i16vec3);" + "i16vec4 maxInvocationsInclusiveScanNonUniformAMD(i16vec4);" + + "uint16_t maxInvocationsInclusiveScanNonUniformAMD(uint16_t);" + "u16vec2 maxInvocationsInclusiveScanNonUniformAMD(u16vec2);" + "u16vec3 maxInvocationsInclusiveScanNonUniformAMD(u16vec3);" + "u16vec4 maxInvocationsInclusiveScanNonUniformAMD(u16vec4);" + + "float maxInvocationsExclusiveScanNonUniformAMD(float);" + "vec2 maxInvocationsExclusiveScanNonUniformAMD(vec2);" + "vec3 maxInvocationsExclusiveScanNonUniformAMD(vec3);" + "vec4 maxInvocationsExclusiveScanNonUniformAMD(vec4);" + + "int maxInvocationsExclusiveScanNonUniformAMD(int);" + "ivec2 maxInvocationsExclusiveScanNonUniformAMD(ivec2);" + "ivec3 maxInvocationsExclusiveScanNonUniformAMD(ivec3);" + "ivec4 maxInvocationsExclusiveScanNonUniformAMD(ivec4);" + + "uint maxInvocationsExclusiveScanNonUniformAMD(uint);" + "uvec2 maxInvocationsExclusiveScanNonUniformAMD(uvec2);" + "uvec3 maxInvocationsExclusiveScanNonUniformAMD(uvec3);" + "uvec4 maxInvocationsExclusiveScanNonUniformAMD(uvec4);" + + "double maxInvocationsExclusiveScanNonUniformAMD(double);" + "dvec2 maxInvocationsExclusiveScanNonUniformAMD(dvec2);" + "dvec3 maxInvocationsExclusiveScanNonUniformAMD(dvec3);" + "dvec4 maxInvocationsExclusiveScanNonUniformAMD(dvec4);" + + "int64_t maxInvocationsExclusiveScanNonUniformAMD(int64_t);" + "i64vec2 maxInvocationsExclusiveScanNonUniformAMD(i64vec2);" + "i64vec3 maxInvocationsExclusiveScanNonUniformAMD(i64vec3);" + "i64vec4 maxInvocationsExclusiveScanNonUniformAMD(i64vec4);" + + "uint64_t maxInvocationsExclusiveScanNonUniformAMD(uint64_t);" + "u64vec2 maxInvocationsExclusiveScanNonUniformAMD(u64vec2);" + "u64vec3 maxInvocationsExclusiveScanNonUniformAMD(u64vec3);" + "u64vec4 maxInvocationsExclusiveScanNonUniformAMD(u64vec4);" + + "float16_t maxInvocationsExclusiveScanNonUniformAMD(float16_t);" + "f16vec2 maxInvocationsExclusiveScanNonUniformAMD(f16vec2);" + "f16vec3 maxInvocationsExclusiveScanNonUniformAMD(f16vec3);" + "f16vec4 maxInvocationsExclusiveScanNonUniformAMD(f16vec4);" + + "int16_t maxInvocationsExclusiveScanNonUniformAMD(int16_t);" + "i16vec2 maxInvocationsExclusiveScanNonUniformAMD(i16vec2);" + "i16vec3 maxInvocationsExclusiveScanNonUniformAMD(i16vec3);" + "i16vec4 maxInvocationsExclusiveScanNonUniformAMD(i16vec4);" + + "uint16_t maxInvocationsExclusiveScanNonUniformAMD(uint16_t);" + "u16vec2 maxInvocationsExclusiveScanNonUniformAMD(u16vec2);" + "u16vec3 maxInvocationsExclusiveScanNonUniformAMD(u16vec3);" + "u16vec4 maxInvocationsExclusiveScanNonUniformAMD(u16vec4);" + "float addInvocationsNonUniformAMD(float);" "vec2 addInvocationsNonUniformAMD(vec2);" "vec3 addInvocationsNonUniformAMD(vec3);" @@ -1663,6 +3448,126 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 addInvocationsNonUniformAMD(uvec3);" "uvec4 addInvocationsNonUniformAMD(uvec4);" + "double addInvocationsNonUniformAMD(double);" + "dvec2 addInvocationsNonUniformAMD(dvec2);" + "dvec3 addInvocationsNonUniformAMD(dvec3);" + "dvec4 addInvocationsNonUniformAMD(dvec4);" + + "int64_t addInvocationsNonUniformAMD(int64_t);" + "i64vec2 addInvocationsNonUniformAMD(i64vec2);" + "i64vec3 addInvocationsNonUniformAMD(i64vec3);" + "i64vec4 addInvocationsNonUniformAMD(i64vec4);" + + "uint64_t addInvocationsNonUniformAMD(uint64_t);" + "u64vec2 addInvocationsNonUniformAMD(u64vec2);" + "u64vec3 addInvocationsNonUniformAMD(u64vec3);" + "u64vec4 addInvocationsNonUniformAMD(u64vec4);" + + "float16_t addInvocationsNonUniformAMD(float16_t);" + "f16vec2 addInvocationsNonUniformAMD(f16vec2);" + "f16vec3 addInvocationsNonUniformAMD(f16vec3);" + "f16vec4 addInvocationsNonUniformAMD(f16vec4);" + + "int16_t addInvocationsNonUniformAMD(int16_t);" + "i16vec2 addInvocationsNonUniformAMD(i16vec2);" + "i16vec3 addInvocationsNonUniformAMD(i16vec3);" + "i16vec4 addInvocationsNonUniformAMD(i16vec4);" + + "uint16_t addInvocationsNonUniformAMD(uint16_t);" + "u16vec2 addInvocationsNonUniformAMD(u16vec2);" + "u16vec3 addInvocationsNonUniformAMD(u16vec3);" + "u16vec4 addInvocationsNonUniformAMD(u16vec4);" + + "float addInvocationsInclusiveScanNonUniformAMD(float);" + "vec2 addInvocationsInclusiveScanNonUniformAMD(vec2);" + "vec3 addInvocationsInclusiveScanNonUniformAMD(vec3);" + "vec4 addInvocationsInclusiveScanNonUniformAMD(vec4);" + + "int addInvocationsInclusiveScanNonUniformAMD(int);" + "ivec2 addInvocationsInclusiveScanNonUniformAMD(ivec2);" + "ivec3 addInvocationsInclusiveScanNonUniformAMD(ivec3);" + "ivec4 addInvocationsInclusiveScanNonUniformAMD(ivec4);" + + "uint addInvocationsInclusiveScanNonUniformAMD(uint);" + "uvec2 addInvocationsInclusiveScanNonUniformAMD(uvec2);" + "uvec3 addInvocationsInclusiveScanNonUniformAMD(uvec3);" + "uvec4 addInvocationsInclusiveScanNonUniformAMD(uvec4);" + + "double addInvocationsInclusiveScanNonUniformAMD(double);" + "dvec2 addInvocationsInclusiveScanNonUniformAMD(dvec2);" + "dvec3 addInvocationsInclusiveScanNonUniformAMD(dvec3);" + "dvec4 addInvocationsInclusiveScanNonUniformAMD(dvec4);" + + "int64_t addInvocationsInclusiveScanNonUniformAMD(int64_t);" + "i64vec2 addInvocationsInclusiveScanNonUniformAMD(i64vec2);" + "i64vec3 addInvocationsInclusiveScanNonUniformAMD(i64vec3);" + "i64vec4 addInvocationsInclusiveScanNonUniformAMD(i64vec4);" + + "uint64_t addInvocationsInclusiveScanNonUniformAMD(uint64_t);" + "u64vec2 addInvocationsInclusiveScanNonUniformAMD(u64vec2);" + "u64vec3 addInvocationsInclusiveScanNonUniformAMD(u64vec3);" + "u64vec4 addInvocationsInclusiveScanNonUniformAMD(u64vec4);" + + "float16_t addInvocationsInclusiveScanNonUniformAMD(float16_t);" + "f16vec2 addInvocationsInclusiveScanNonUniformAMD(f16vec2);" + "f16vec3 addInvocationsInclusiveScanNonUniformAMD(f16vec3);" + "f16vec4 addInvocationsInclusiveScanNonUniformAMD(f16vec4);" + + "int16_t addInvocationsInclusiveScanNonUniformAMD(int16_t);" + "i16vec2 addInvocationsInclusiveScanNonUniformAMD(i16vec2);" + "i16vec3 addInvocationsInclusiveScanNonUniformAMD(i16vec3);" + "i16vec4 addInvocationsInclusiveScanNonUniformAMD(i16vec4);" + + "uint16_t addInvocationsInclusiveScanNonUniformAMD(uint16_t);" + "u16vec2 addInvocationsInclusiveScanNonUniformAMD(u16vec2);" + "u16vec3 addInvocationsInclusiveScanNonUniformAMD(u16vec3);" + "u16vec4 addInvocationsInclusiveScanNonUniformAMD(u16vec4);" + + "float addInvocationsExclusiveScanNonUniformAMD(float);" + "vec2 addInvocationsExclusiveScanNonUniformAMD(vec2);" + "vec3 addInvocationsExclusiveScanNonUniformAMD(vec3);" + "vec4 addInvocationsExclusiveScanNonUniformAMD(vec4);" + + "int addInvocationsExclusiveScanNonUniformAMD(int);" + "ivec2 addInvocationsExclusiveScanNonUniformAMD(ivec2);" + "ivec3 addInvocationsExclusiveScanNonUniformAMD(ivec3);" + "ivec4 addInvocationsExclusiveScanNonUniformAMD(ivec4);" + + "uint addInvocationsExclusiveScanNonUniformAMD(uint);" + "uvec2 addInvocationsExclusiveScanNonUniformAMD(uvec2);" + "uvec3 addInvocationsExclusiveScanNonUniformAMD(uvec3);" + "uvec4 addInvocationsExclusiveScanNonUniformAMD(uvec4);" + + "double addInvocationsExclusiveScanNonUniformAMD(double);" + "dvec2 addInvocationsExclusiveScanNonUniformAMD(dvec2);" + "dvec3 addInvocationsExclusiveScanNonUniformAMD(dvec3);" + "dvec4 addInvocationsExclusiveScanNonUniformAMD(dvec4);" + + "int64_t addInvocationsExclusiveScanNonUniformAMD(int64_t);" + "i64vec2 addInvocationsExclusiveScanNonUniformAMD(i64vec2);" + "i64vec3 addInvocationsExclusiveScanNonUniformAMD(i64vec3);" + "i64vec4 addInvocationsExclusiveScanNonUniformAMD(i64vec4);" + + "uint64_t addInvocationsExclusiveScanNonUniformAMD(uint64_t);" + "u64vec2 addInvocationsExclusiveScanNonUniformAMD(u64vec2);" + "u64vec3 addInvocationsExclusiveScanNonUniformAMD(u64vec3);" + "u64vec4 addInvocationsExclusiveScanNonUniformAMD(u64vec4);" + + "float16_t addInvocationsExclusiveScanNonUniformAMD(float16_t);" + "f16vec2 addInvocationsExclusiveScanNonUniformAMD(f16vec2);" + "f16vec3 addInvocationsExclusiveScanNonUniformAMD(f16vec3);" + "f16vec4 addInvocationsExclusiveScanNonUniformAMD(f16vec4);" + + "int16_t addInvocationsExclusiveScanNonUniformAMD(int16_t);" + "i16vec2 addInvocationsExclusiveScanNonUniformAMD(i16vec2);" + "i16vec3 addInvocationsExclusiveScanNonUniformAMD(i16vec3);" + "i16vec4 addInvocationsExclusiveScanNonUniformAMD(i16vec4);" + + "uint16_t addInvocationsExclusiveScanNonUniformAMD(uint16_t);" + "u16vec2 addInvocationsExclusiveScanNonUniformAMD(u16vec2);" + "u16vec3 addInvocationsExclusiveScanNonUniformAMD(u16vec3);" + "u16vec4 addInvocationsExclusiveScanNonUniformAMD(u16vec4);" + "float swizzleInvocationsAMD(float, uvec4);" "vec2 swizzleInvocationsAMD(vec2, uvec4);" "vec3 swizzleInvocationsAMD(vec3, uvec4);" @@ -1717,13 +3622,37 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (profile != EEsProfile && version >= 450) { commonBuiltins.append( "float cubeFaceIndexAMD(vec3);" - "vec2 cubeFaceCoordAMD(vec3);" + "vec2 cubeFaceCoordAMD(vec3);" "uint64_t timeAMD();" "\n"); } - // GL_AMD_gpu_shader_half_float + // GL_AMD_shader_fragment_mask + if (profile != EEsProfile && version >= 450) { + commonBuiltins.append( + "uint fragmentMaskFetchAMD(sampler2DMS, ivec2);" + "uint fragmentMaskFetchAMD(isampler2DMS, ivec2);" + "uint fragmentMaskFetchAMD(usampler2DMS, ivec2);" + + "uint fragmentMaskFetchAMD(sampler2DMSArray, ivec3);" + "uint fragmentMaskFetchAMD(isampler2DMSArray, ivec3);" + "uint fragmentMaskFetchAMD(usampler2DMSArray, ivec3);" + + "vec4 fragmentFetchAMD(sampler2DMS, ivec2, uint);" + "ivec4 fragmentFetchAMD(isampler2DMS, ivec2, uint);" + "uvec4 fragmentFetchAMD(usampler2DMS, ivec2, uint);" + + "vec4 fragmentFetchAMD(sampler2DMSArray, ivec3, uint);" + "ivec4 fragmentFetchAMD(isampler2DMSArray, ivec3, uint);" + "uvec4 fragmentFetchAMD(usampler2DMSArray, ivec3, uint);" + + "\n"); + } + +#endif // AMD_EXTENSIONS + + // GL_AMD_gpu_shader_half_float/Explicit types if (profile != EEsProfile && version >= 450) { commonBuiltins.append( "float16_t radians(float16_t);" @@ -2070,7 +3999,575 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } -#endif + + // Explicit types + if (profile != EEsProfile && version >= 450) { + commonBuiltins.append( + "int8_t abs(int8_t);" + "i8vec2 abs(i8vec2);" + "i8vec3 abs(i8vec3);" + "i8vec4 abs(i8vec4);" + + "int8_t sign(int8_t);" + "i8vec2 sign(i8vec2);" + "i8vec3 sign(i8vec3);" + "i8vec4 sign(i8vec4);" + + "int8_t min(int8_t x, int8_t y);" + "i8vec2 min(i8vec2 x, int8_t y);" + "i8vec3 min(i8vec3 x, int8_t y);" + "i8vec4 min(i8vec4 x, int8_t y);" + "i8vec2 min(i8vec2 x, i8vec2 y);" + "i8vec3 min(i8vec3 x, i8vec3 y);" + "i8vec4 min(i8vec4 x, i8vec4 y);" + + "uint8_t min(uint8_t x, uint8_t y);" + "u8vec2 min(u8vec2 x, uint8_t y);" + "u8vec3 min(u8vec3 x, uint8_t y);" + "u8vec4 min(u8vec4 x, uint8_t y);" + "u8vec2 min(u8vec2 x, u8vec2 y);" + "u8vec3 min(u8vec3 x, u8vec3 y);" + "u8vec4 min(u8vec4 x, u8vec4 y);" + + "int8_t max(int8_t x, int8_t y);" + "i8vec2 max(i8vec2 x, int8_t y);" + "i8vec3 max(i8vec3 x, int8_t y);" + "i8vec4 max(i8vec4 x, int8_t y);" + "i8vec2 max(i8vec2 x, i8vec2 y);" + "i8vec3 max(i8vec3 x, i8vec3 y);" + "i8vec4 max(i8vec4 x, i8vec4 y);" + + "uint8_t max(uint8_t x, uint8_t y);" + "u8vec2 max(u8vec2 x, uint8_t y);" + "u8vec3 max(u8vec3 x, uint8_t y);" + "u8vec4 max(u8vec4 x, uint8_t y);" + "u8vec2 max(u8vec2 x, u8vec2 y);" + "u8vec3 max(u8vec3 x, u8vec3 y);" + "u8vec4 max(u8vec4 x, u8vec4 y);" + + "int8_t clamp(int8_t x, int8_t minVal, int8_t maxVal);" + "i8vec2 clamp(i8vec2 x, int8_t minVal, int8_t maxVal);" + "i8vec3 clamp(i8vec3 x, int8_t minVal, int8_t maxVal);" + "i8vec4 clamp(i8vec4 x, int8_t minVal, int8_t maxVal);" + "i8vec2 clamp(i8vec2 x, i8vec2 minVal, i8vec2 maxVal);" + "i8vec3 clamp(i8vec3 x, i8vec3 minVal, i8vec3 maxVal);" + "i8vec4 clamp(i8vec4 x, i8vec4 minVal, i8vec4 maxVal);" + + "uint8_t clamp(uint8_t x, uint8_t minVal, uint8_t maxVal);" + "u8vec2 clamp(u8vec2 x, uint8_t minVal, uint8_t maxVal);" + "u8vec3 clamp(u8vec3 x, uint8_t minVal, uint8_t maxVal);" + "u8vec4 clamp(u8vec4 x, uint8_t minVal, uint8_t maxVal);" + "u8vec2 clamp(u8vec2 x, u8vec2 minVal, u8vec2 maxVal);" + "u8vec3 clamp(u8vec3 x, u8vec3 minVal, u8vec3 maxVal);" + "u8vec4 clamp(u8vec4 x, u8vec4 minVal, u8vec4 maxVal);" + + "int8_t mix(int8_t, int8_t, bool);" + "i8vec2 mix(i8vec2, i8vec2, bvec2);" + "i8vec3 mix(i8vec3, i8vec3, bvec3);" + "i8vec4 mix(i8vec4, i8vec4, bvec4);" + "uint8_t mix(uint8_t, uint8_t, bool);" + "u8vec2 mix(u8vec2, u8vec2, bvec2);" + "u8vec3 mix(u8vec3, u8vec3, bvec3);" + "u8vec4 mix(u8vec4, u8vec4, bvec4);" + + "bvec2 lessThan(i8vec2, i8vec2);" + "bvec3 lessThan(i8vec3, i8vec3);" + "bvec4 lessThan(i8vec4, i8vec4);" + "bvec2 lessThan(u8vec2, u8vec2);" + "bvec3 lessThan(u8vec3, u8vec3);" + "bvec4 lessThan(u8vec4, u8vec4);" + + "bvec2 lessThanEqual(i8vec2, i8vec2);" + "bvec3 lessThanEqual(i8vec3, i8vec3);" + "bvec4 lessThanEqual(i8vec4, i8vec4);" + "bvec2 lessThanEqual(u8vec2, u8vec2);" + "bvec3 lessThanEqual(u8vec3, u8vec3);" + "bvec4 lessThanEqual(u8vec4, u8vec4);" + + "bvec2 greaterThan(i8vec2, i8vec2);" + "bvec3 greaterThan(i8vec3, i8vec3);" + "bvec4 greaterThan(i8vec4, i8vec4);" + "bvec2 greaterThan(u8vec2, u8vec2);" + "bvec3 greaterThan(u8vec3, u8vec3);" + "bvec4 greaterThan(u8vec4, u8vec4);" + + "bvec2 greaterThanEqual(i8vec2, i8vec2);" + "bvec3 greaterThanEqual(i8vec3, i8vec3);" + "bvec4 greaterThanEqual(i8vec4, i8vec4);" + "bvec2 greaterThanEqual(u8vec2, u8vec2);" + "bvec3 greaterThanEqual(u8vec3, u8vec3);" + "bvec4 greaterThanEqual(u8vec4, u8vec4);" + + "bvec2 equal(i8vec2, i8vec2);" + "bvec3 equal(i8vec3, i8vec3);" + "bvec4 equal(i8vec4, i8vec4);" + "bvec2 equal(u8vec2, u8vec2);" + "bvec3 equal(u8vec3, u8vec3);" + "bvec4 equal(u8vec4, u8vec4);" + + "bvec2 notEqual(i8vec2, i8vec2);" + "bvec3 notEqual(i8vec3, i8vec3);" + "bvec4 notEqual(i8vec4, i8vec4);" + "bvec2 notEqual(u8vec2, u8vec2);" + "bvec3 notEqual(u8vec3, u8vec3);" + "bvec4 notEqual(u8vec4, u8vec4);" + + " int8_t bitfieldExtract( int8_t, int8_t, int8_t);" + "i8vec2 bitfieldExtract(i8vec2, int8_t, int8_t);" + "i8vec3 bitfieldExtract(i8vec3, int8_t, int8_t);" + "i8vec4 bitfieldExtract(i8vec4, int8_t, int8_t);" + + " uint8_t bitfieldExtract( uint8_t, int8_t, int8_t);" + "u8vec2 bitfieldExtract(u8vec2, int8_t, int8_t);" + "u8vec3 bitfieldExtract(u8vec3, int8_t, int8_t);" + "u8vec4 bitfieldExtract(u8vec4, int8_t, int8_t);" + + " int8_t bitfieldInsert( int8_t base, int8_t, int8_t, int8_t);" + "i8vec2 bitfieldInsert(i8vec2 base, i8vec2, int8_t, int8_t);" + "i8vec3 bitfieldInsert(i8vec3 base, i8vec3, int8_t, int8_t);" + "i8vec4 bitfieldInsert(i8vec4 base, i8vec4, int8_t, int8_t);" + + " uint8_t bitfieldInsert( uint8_t base, uint8_t, int8_t, int8_t);" + "u8vec2 bitfieldInsert(u8vec2 base, u8vec2, int8_t, int8_t);" + "u8vec3 bitfieldInsert(u8vec3 base, u8vec3, int8_t, int8_t);" + "u8vec4 bitfieldInsert(u8vec4 base, u8vec4, int8_t, int8_t);" + + " int8_t bitCount( int8_t);" + "i8vec2 bitCount(i8vec2);" + "i8vec3 bitCount(i8vec3);" + "i8vec4 bitCount(i8vec4);" + + " int8_t bitCount( uint8_t);" + "i8vec2 bitCount(u8vec2);" + "i8vec3 bitCount(u8vec3);" + "i8vec4 bitCount(u8vec4);" + + " int8_t findLSB( int8_t);" + "i8vec2 findLSB(i8vec2);" + "i8vec3 findLSB(i8vec3);" + "i8vec4 findLSB(i8vec4);" + + " int8_t findLSB( uint8_t);" + "i8vec2 findLSB(u8vec2);" + "i8vec3 findLSB(u8vec3);" + "i8vec4 findLSB(u8vec4);" + + " int8_t findMSB( int8_t);" + "i8vec2 findMSB(i8vec2);" + "i8vec3 findMSB(i8vec3);" + "i8vec4 findMSB(i8vec4);" + + " int8_t findMSB( uint8_t);" + "i8vec2 findMSB(u8vec2);" + "i8vec3 findMSB(u8vec3);" + "i8vec4 findMSB(u8vec4);" + + "int16_t abs(int16_t);" + "i16vec2 abs(i16vec2);" + "i16vec3 abs(i16vec3);" + "i16vec4 abs(i16vec4);" + + "int16_t sign(int16_t);" + "i16vec2 sign(i16vec2);" + "i16vec3 sign(i16vec3);" + "i16vec4 sign(i16vec4);" + + "int16_t min(int16_t x, int16_t y);" + "i16vec2 min(i16vec2 x, int16_t y);" + "i16vec3 min(i16vec3 x, int16_t y);" + "i16vec4 min(i16vec4 x, int16_t y);" + "i16vec2 min(i16vec2 x, i16vec2 y);" + "i16vec3 min(i16vec3 x, i16vec3 y);" + "i16vec4 min(i16vec4 x, i16vec4 y);" + + "uint16_t min(uint16_t x, uint16_t y);" + "u16vec2 min(u16vec2 x, uint16_t y);" + "u16vec3 min(u16vec3 x, uint16_t y);" + "u16vec4 min(u16vec4 x, uint16_t y);" + "u16vec2 min(u16vec2 x, u16vec2 y);" + "u16vec3 min(u16vec3 x, u16vec3 y);" + "u16vec4 min(u16vec4 x, u16vec4 y);" + + "int16_t max(int16_t x, int16_t y);" + "i16vec2 max(i16vec2 x, int16_t y);" + "i16vec3 max(i16vec3 x, int16_t y);" + "i16vec4 max(i16vec4 x, int16_t y);" + "i16vec2 max(i16vec2 x, i16vec2 y);" + "i16vec3 max(i16vec3 x, i16vec3 y);" + "i16vec4 max(i16vec4 x, i16vec4 y);" + + "uint16_t max(uint16_t x, uint16_t y);" + "u16vec2 max(u16vec2 x, uint16_t y);" + "u16vec3 max(u16vec3 x, uint16_t y);" + "u16vec4 max(u16vec4 x, uint16_t y);" + "u16vec2 max(u16vec2 x, u16vec2 y);" + "u16vec3 max(u16vec3 x, u16vec3 y);" + "u16vec4 max(u16vec4 x, u16vec4 y);" + + "int16_t clamp(int16_t x, int16_t minVal, int16_t maxVal);" + "i16vec2 clamp(i16vec2 x, int16_t minVal, int16_t maxVal);" + "i16vec3 clamp(i16vec3 x, int16_t minVal, int16_t maxVal);" + "i16vec4 clamp(i16vec4 x, int16_t minVal, int16_t maxVal);" + "i16vec2 clamp(i16vec2 x, i16vec2 minVal, i16vec2 maxVal);" + "i16vec3 clamp(i16vec3 x, i16vec3 minVal, i16vec3 maxVal);" + "i16vec4 clamp(i16vec4 x, i16vec4 minVal, i16vec4 maxVal);" + + "uint16_t clamp(uint16_t x, uint16_t minVal, uint16_t maxVal);" + "u16vec2 clamp(u16vec2 x, uint16_t minVal, uint16_t maxVal);" + "u16vec3 clamp(u16vec3 x, uint16_t minVal, uint16_t maxVal);" + "u16vec4 clamp(u16vec4 x, uint16_t minVal, uint16_t maxVal);" + "u16vec2 clamp(u16vec2 x, u16vec2 minVal, u16vec2 maxVal);" + "u16vec3 clamp(u16vec3 x, u16vec3 minVal, u16vec3 maxVal);" + "u16vec4 clamp(u16vec4 x, u16vec4 minVal, u16vec4 maxVal);" + + "int16_t mix(int16_t, int16_t, bool);" + "i16vec2 mix(i16vec2, i16vec2, bvec2);" + "i16vec3 mix(i16vec3, i16vec3, bvec3);" + "i16vec4 mix(i16vec4, i16vec4, bvec4);" + "uint16_t mix(uint16_t, uint16_t, bool);" + "u16vec2 mix(u16vec2, u16vec2, bvec2);" + "u16vec3 mix(u16vec3, u16vec3, bvec3);" + "u16vec4 mix(u16vec4, u16vec4, bvec4);" + + "float16_t frexp(float16_t, out int16_t);" + "f16vec2 frexp(f16vec2, out i16vec2);" + "f16vec3 frexp(f16vec3, out i16vec3);" + "f16vec4 frexp(f16vec4, out i16vec4);" + + "float16_t ldexp(float16_t, int16_t);" + "f16vec2 ldexp(f16vec2, i16vec2);" + "f16vec3 ldexp(f16vec3, i16vec3);" + "f16vec4 ldexp(f16vec4, i16vec4);" + + "int16_t halfBitsToInt16(float16_t);" + "i16vec2 halfBitsToInt16(f16vec2);" + "i16vec3 halhBitsToInt16(f16vec3);" + "i16vec4 halfBitsToInt16(f16vec4);" + + "uint16_t halfBitsToUint16(float16_t);" + "u16vec2 halfBitsToUint16(f16vec2);" + "u16vec3 halfBitsToUint16(f16vec3);" + "u16vec4 halfBitsToUint16(f16vec4);" + + "int16_t float16BitsToInt16(float16_t);" + "i16vec2 float16BitsToInt16(f16vec2);" + "i16vec3 float16BitsToInt16(f16vec3);" + "i16vec4 float16BitsToInt16(f16vec4);" + + "uint16_t float16BitsToUint16(float16_t);" + "u16vec2 float16BitsToUint16(f16vec2);" + "u16vec3 float16BitsToUint16(f16vec3);" + "u16vec4 float16BitsToUint16(f16vec4);" + + "float16_t int16BitsToFloat16(int16_t);" + "f16vec2 int16BitsToFloat16(i16vec2);" + "f16vec3 int16BitsToFloat16(i16vec3);" + "f16vec4 int16BitsToFloat16(i16vec4);" + + "float16_t uint16BitsToFloat16(uint16_t);" + "f16vec2 uint16BitsToFloat16(u16vec2);" + "f16vec3 uint16BitsToFloat16(u16vec3);" + "f16vec4 uint16BitsToFloat16(u16vec4);" + + "float16_t int16BitsToHalf(int16_t);" + "f16vec2 int16BitsToHalf(i16vec2);" + "f16vec3 int16BitsToHalf(i16vec3);" + "f16vec4 int16BitsToHalf(i16vec4);" + + "float16_t uint16BitsToHalf(uint16_t);" + "f16vec2 uint16BitsToHalf(u16vec2);" + "f16vec3 uint16BitsToHalf(u16vec3);" + "f16vec4 uint16BitsToHalf(u16vec4);" + + "int packInt2x16(i16vec2);" + "uint packUint2x16(u16vec2);" + "int64_t packInt4x16(i16vec4);" + "uint64_t packUint4x16(u16vec4);" + "i16vec2 unpackInt2x16(int);" + "u16vec2 unpackUint2x16(uint);" + "i16vec4 unpackInt4x16(int64_t);" + "u16vec4 unpackUint4x16(uint64_t);" + + "bvec2 lessThan(i16vec2, i16vec2);" + "bvec3 lessThan(i16vec3, i16vec3);" + "bvec4 lessThan(i16vec4, i16vec4);" + "bvec2 lessThan(u16vec2, u16vec2);" + "bvec3 lessThan(u16vec3, u16vec3);" + "bvec4 lessThan(u16vec4, u16vec4);" + + "bvec2 lessThanEqual(i16vec2, i16vec2);" + "bvec3 lessThanEqual(i16vec3, i16vec3);" + "bvec4 lessThanEqual(i16vec4, i16vec4);" + "bvec2 lessThanEqual(u16vec2, u16vec2);" + "bvec3 lessThanEqual(u16vec3, u16vec3);" + "bvec4 lessThanEqual(u16vec4, u16vec4);" + + "bvec2 greaterThan(i16vec2, i16vec2);" + "bvec3 greaterThan(i16vec3, i16vec3);" + "bvec4 greaterThan(i16vec4, i16vec4);" + "bvec2 greaterThan(u16vec2, u16vec2);" + "bvec3 greaterThan(u16vec3, u16vec3);" + "bvec4 greaterThan(u16vec4, u16vec4);" + + "bvec2 greaterThanEqual(i16vec2, i16vec2);" + "bvec3 greaterThanEqual(i16vec3, i16vec3);" + "bvec4 greaterThanEqual(i16vec4, i16vec4);" + "bvec2 greaterThanEqual(u16vec2, u16vec2);" + "bvec3 greaterThanEqual(u16vec3, u16vec3);" + "bvec4 greaterThanEqual(u16vec4, u16vec4);" + + "bvec2 equal(i16vec2, i16vec2);" + "bvec3 equal(i16vec3, i16vec3);" + "bvec4 equal(i16vec4, i16vec4);" + "bvec2 equal(u16vec2, u16vec2);" + "bvec3 equal(u16vec3, u16vec3);" + "bvec4 equal(u16vec4, u16vec4);" + + "bvec2 notEqual(i16vec2, i16vec2);" + "bvec3 notEqual(i16vec3, i16vec3);" + "bvec4 notEqual(i16vec4, i16vec4);" + "bvec2 notEqual(u16vec2, u16vec2);" + "bvec3 notEqual(u16vec3, u16vec3);" + "bvec4 notEqual(u16vec4, u16vec4);" + + " int16_t bitfieldExtract( int16_t, int16_t, int16_t);" + "i16vec2 bitfieldExtract(i16vec2, int16_t, int16_t);" + "i16vec3 bitfieldExtract(i16vec3, int16_t, int16_t);" + "i16vec4 bitfieldExtract(i16vec4, int16_t, int16_t);" + + " uint16_t bitfieldExtract( uint16_t, int16_t, int16_t);" + "u16vec2 bitfieldExtract(u16vec2, int16_t, int16_t);" + "u16vec3 bitfieldExtract(u16vec3, int16_t, int16_t);" + "u16vec4 bitfieldExtract(u16vec4, int16_t, int16_t);" + + " int16_t bitfieldInsert( int16_t base, int16_t, int16_t, int16_t);" + "i16vec2 bitfieldInsert(i16vec2 base, i16vec2, int16_t, int16_t);" + "i16vec3 bitfieldInsert(i16vec3 base, i16vec3, int16_t, int16_t);" + "i16vec4 bitfieldInsert(i16vec4 base, i16vec4, int16_t, int16_t);" + + " uint16_t bitfieldInsert( uint16_t base, uint16_t, int16_t, int16_t);" + "u16vec2 bitfieldInsert(u16vec2 base, u16vec2, int16_t, int16_t);" + "u16vec3 bitfieldInsert(u16vec3 base, u16vec3, int16_t, int16_t);" + "u16vec4 bitfieldInsert(u16vec4 base, u16vec4, int16_t, int16_t);" + + " int16_t bitCount( int16_t);" + "i16vec2 bitCount(i16vec2);" + "i16vec3 bitCount(i16vec3);" + "i16vec4 bitCount(i16vec4);" + + " int16_t bitCount( uint16_t);" + "i16vec2 bitCount(u16vec2);" + "i16vec3 bitCount(u16vec3);" + "i16vec4 bitCount(u16vec4);" + + " int16_t findLSB( int16_t);" + "i16vec2 findLSB(i16vec2);" + "i16vec3 findLSB(i16vec3);" + "i16vec4 findLSB(i16vec4);" + + " int16_t findLSB( uint16_t);" + "i16vec2 findLSB(u16vec2);" + "i16vec3 findLSB(u16vec3);" + "i16vec4 findLSB(u16vec4);" + + " int16_t findMSB( int16_t);" + "i16vec2 findMSB(i16vec2);" + "i16vec3 findMSB(i16vec3);" + "i16vec4 findMSB(i16vec4);" + + " int16_t findMSB( uint16_t);" + "i16vec2 findMSB(u16vec2);" + "i16vec3 findMSB(u16vec3);" + "i16vec4 findMSB(u16vec4);" + + "int16_t pack16(i8vec2);" + "uint16_t pack16(u8vec2);" + "int32_t pack32(i8vec4);" + "uint32_t pack32(u8vec4);" + "int32_t pack32(i16vec2);" + "uint32_t pack32(u16vec2);" + "int64_t pack64(i16vec4);" + "uint64_t pack64(u16vec4);" + "int64_t pack64(i32vec2);" + "uint64_t pack64(u32vec2);" + + "i8vec2 unpack8(int16_t);" + "u8vec2 unpack8(uint16_t);" + "i8vec4 unpack8(int32_t);" + "u8vec4 unpack8(uint32_t);" + "i16vec2 unpack16(int32_t);" + "u16vec2 unpack16(uint32_t);" + "i16vec4 unpack16(int64_t);" + "u16vec4 unpack16(uint64_t);" + "i32vec2 unpack32(int64_t);" + "u32vec2 unpack32(uint64_t);" + + "float64_t radians(float64_t);" + "f64vec2 radians(f64vec2);" + "f64vec3 radians(f64vec3);" + "f64vec4 radians(f64vec4);" + + "float64_t degrees(float64_t);" + "f64vec2 degrees(f64vec2);" + "f64vec3 degrees(f64vec3);" + "f64vec4 degrees(f64vec4);" + + "float64_t sin(float64_t);" + "f64vec2 sin(f64vec2);" + "f64vec3 sin(f64vec3);" + "f64vec4 sin(f64vec4);" + + "float64_t cos(float64_t);" + "f64vec2 cos(f64vec2);" + "f64vec3 cos(f64vec3);" + "f64vec4 cos(f64vec4);" + + "float64_t tan(float64_t);" + "f64vec2 tan(f64vec2);" + "f64vec3 tan(f64vec3);" + "f64vec4 tan(f64vec4);" + + "float64_t asin(float64_t);" + "f64vec2 asin(f64vec2);" + "f64vec3 asin(f64vec3);" + "f64vec4 asin(f64vec4);" + + "float64_t acos(float64_t);" + "f64vec2 acos(f64vec2);" + "f64vec3 acos(f64vec3);" + "f64vec4 acos(f64vec4);" + + "float64_t atan(float64_t, float64_t);" + "f64vec2 atan(f64vec2, f64vec2);" + "f64vec3 atan(f64vec3, f64vec3);" + "f64vec4 atan(f64vec4, f64vec4);" + + "float64_t atan(float64_t);" + "f64vec2 atan(f64vec2);" + "f64vec3 atan(f64vec3);" + "f64vec4 atan(f64vec4);" + + "float64_t sinh(float64_t);" + "f64vec2 sinh(f64vec2);" + "f64vec3 sinh(f64vec3);" + "f64vec4 sinh(f64vec4);" + + "float64_t cosh(float64_t);" + "f64vec2 cosh(f64vec2);" + "f64vec3 cosh(f64vec3);" + "f64vec4 cosh(f64vec4);" + + "float64_t tanh(float64_t);" + "f64vec2 tanh(f64vec2);" + "f64vec3 tanh(f64vec3);" + "f64vec4 tanh(f64vec4);" + + "float64_t asinh(float64_t);" + "f64vec2 asinh(f64vec2);" + "f64vec3 asinh(f64vec3);" + "f64vec4 asinh(f64vec4);" + + "float64_t acosh(float64_t);" + "f64vec2 acosh(f64vec2);" + "f64vec3 acosh(f64vec3);" + "f64vec4 acosh(f64vec4);" + + "float64_t atanh(float64_t);" + "f64vec2 atanh(f64vec2);" + "f64vec3 atanh(f64vec3);" + "f64vec4 atanh(f64vec4);" + + "float64_t pow(float64_t, float64_t);" + "f64vec2 pow(f64vec2, f64vec2);" + "f64vec3 pow(f64vec3, f64vec3);" + "f64vec4 pow(f64vec4, f64vec4);" + + "float64_t exp(float64_t);" + "f64vec2 exp(f64vec2);" + "f64vec3 exp(f64vec3);" + "f64vec4 exp(f64vec4);" + + "float64_t log(float64_t);" + "f64vec2 log(f64vec2);" + "f64vec3 log(f64vec3);" + "f64vec4 log(f64vec4);" + + "float64_t exp2(float64_t);" + "f64vec2 exp2(f64vec2);" + "f64vec3 exp2(f64vec3);" + "f64vec4 exp2(f64vec4);" + + "float64_t log2(float64_t);" + "f64vec2 log2(f64vec2);" + "f64vec3 log2(f64vec3);" + "f64vec4 log2(f64vec4);" + "\n"); + } + if (profile != EEsProfile && version >= 450) { + stageBuiltins[EShLangFragment].append( + "float64_t dFdx(float64_t);" + "f64vec2 dFdx(f64vec2);" + "f64vec3 dFdx(f64vec3);" + "f64vec4 dFdx(f64vec4);" + + "float64_t dFdy(float64_t);" + "f64vec2 dFdy(f64vec2);" + "f64vec3 dFdy(f64vec3);" + "f64vec4 dFdy(f64vec4);" + + "float64_t dFdxFine(float64_t);" + "f64vec2 dFdxFine(f64vec2);" + "f64vec3 dFdxFine(f64vec3);" + "f64vec4 dFdxFine(f64vec4);" + + "float64_t dFdyFine(float64_t);" + "f64vec2 dFdyFine(f64vec2);" + "f64vec3 dFdyFine(f64vec3);" + "f64vec4 dFdyFine(f64vec4);" + + "float64_t dFdxCoarse(float64_t);" + "f64vec2 dFdxCoarse(f64vec2);" + "f64vec3 dFdxCoarse(f64vec3);" + "f64vec4 dFdxCoarse(f64vec4);" + + "float64_t dFdyCoarse(float64_t);" + "f64vec2 dFdyCoarse(f64vec2);" + "f64vec3 dFdyCoarse(f64vec3);" + "f64vec4 dFdyCoarse(f64vec4);" + + "float64_t fwidth(float64_t);" + "f64vec2 fwidth(f64vec2);" + "f64vec3 fwidth(f64vec3);" + "f64vec4 fwidth(f64vec4);" + + "float64_t fwidthFine(float64_t);" + "f64vec2 fwidthFine(f64vec2);" + "f64vec3 fwidthFine(f64vec3);" + "f64vec4 fwidthFine(f64vec4);" + + "float64_t fwidthCoarse(float64_t);" + "f64vec2 fwidthCoarse(f64vec2);" + "f64vec3 fwidthCoarse(f64vec3);" + "f64vec4 fwidthCoarse(f64vec4);" + + "float64_t interpolateAtCentroid(float64_t);" + "f64vec2 interpolateAtCentroid(f64vec2);" + "f64vec3 interpolateAtCentroid(f64vec3);" + "f64vec4 interpolateAtCentroid(f64vec4);" + + "float64_t interpolateAtSample(float64_t, int);" + "f64vec2 interpolateAtSample(f64vec2, int);" + "f64vec3 interpolateAtSample(f64vec3, int);" + "f64vec4 interpolateAtSample(f64vec4, int);" + + "float64_t interpolateAtOffset(float64_t, f64vec2);" + "f64vec2 interpolateAtOffset(f64vec2, f64vec2);" + "f64vec3 interpolateAtOffset(f64vec3, f64vec2);" + "f64vec4 interpolateAtOffset(f64vec4, f64vec2);" + + "\n"); + + } //============================================================================ // @@ -2243,7 +4740,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 dFdx(vec2 p);" "vec3 dFdx(vec3 p);" "vec4 dFdx(vec4 p);" - + "float dFdy(float p);" "vec2 dFdy(vec2 p);" "vec3 dFdy(vec3 p);" @@ -2286,12 +4783,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec2 dFdyCoarse(vec2 p);" "vec3 dFdyCoarse(vec3 p);" "vec4 dFdyCoarse(vec4 p);" - + "float fwidthCoarse(float p);" "vec2 fwidthCoarse(vec2 p);" "vec3 fwidthCoarse(vec3 p);" "vec4 fwidthCoarse(vec4 p);" - + "\n"); } @@ -2409,6 +4906,20 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + + // GL_AMD_shader_fragment_mask + if (profile != EEsProfile && version >= 450 && spvVersion.vulkan > 0) { + stageBuiltins[EShLangFragment].append( + "uint fragmentMaskFetchAMD(subpassInputMS);" + "uint fragmentMaskFetchAMD(isubpassInputMS);" + "uint fragmentMaskFetchAMD(usubpassInputMS);" + + "vec4 fragmentFetchAMD(subpassInputMS, uint);" + "ivec4 fragmentFetchAMD(isubpassInputMS, uint);" + "uvec4 fragmentFetchAMD(usubpassInputMS, uint);" + + "\n"); + } #endif //============================================================================ @@ -2462,11 +4973,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uniform mat4 gl_ModelViewMatrixInverse;" "uniform mat4 gl_ProjectionMatrixInverse;" "uniform mat4 gl_ModelViewProjectionMatrixInverse;" - + "uniform mat4 gl_ModelViewMatrixTranspose;" "uniform mat4 gl_ProjectionMatrixTranspose;" "uniform mat4 gl_ModelViewProjectionMatrixTranspose;" - + "uniform mat4 gl_ModelViewMatrixInverseTranspose;" "uniform mat4 gl_ProjectionMatrixInverseTranspose;" "uniform mat4 gl_ModelViewProjectionMatrixInverseTranspose;" @@ -2524,7 +5035,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "float quadraticAttenuation;"// K2 "};" - "struct gl_LightModelParameters {" "vec4 ambient;" // Acs "};" @@ -2559,7 +5069,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "};" "uniform gl_FogParameters gl_Fog;" - + "\n"); } @@ -2584,12 +5094,19 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + stageBuiltins[EShLangCompute].append( + "in highp int gl_DeviceIndex;" // GL_EXT_device_group + "\n"); + } + //============================================================================ // // Define the interface to the vertex shader. // //============================================================================ - + if (profile != EEsProfile) { if (version < 130) { stageBuiltins[EShLangVertex].append( @@ -2621,7 +5138,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in vec4 gl_MultiTexCoord5;" "in vec4 gl_MultiTexCoord6;" "in vec4 gl_MultiTexCoord7;" - "in float gl_FogCoord;" + "in float gl_FogCoord;" "\n"); } @@ -2663,7 +5180,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "vec4 gl_Position;" // needs qualifier fixed later "float gl_PointSize;" // needs qualifier fixed later "float gl_ClipDistance[];" - ); + ); if (IncludeLegacy(version, profile, spvVersion)) stageBuiltins[EShLangVertex].append( "vec4 gl_ClipVertex;" // needs qualifier fixed later @@ -2690,7 +5207,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangVertex].append( "int gl_InstanceID;" // needs qualifier fixed later ); - if (spvVersion.vulkan >= 100 && version >= 140) + if (spvVersion.vulkan > 0 && version >= 140) stageBuiltins[EShLangVertex].append( "in int gl_VertexIndex;" "in int gl_InstanceIndex;" @@ -2702,6 +5219,31 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in int gl_DrawIDARB;" ); } + if (version >= 410) { + stageBuiltins[EShLangVertex].append( + "out int gl_ViewportIndex;" + "out int gl_Layer;" + ); + } + if (version >= 460) { + stageBuiltins[EShLangVertex].append( + "in int gl_BaseVertex;" + "in int gl_BaseInstance;" + "in int gl_DrawID;" + ); + } + +#ifdef NV_EXTENSIONS + if (version >= 450) + stageBuiltins[EShLangVertex].append( + "out int gl_ViewportMask[];" // GL_NV_viewport_array2 + "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering + "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering + "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes + "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes + ); +#endif + } else { // ES profile if (version == 100) { @@ -2715,7 +5257,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in highp int gl_VertexID;" // needs qualifier fixed later "in highp int gl_InstanceID;" // needs qualifier fixed later ); - if (spvVersion.vulkan >= 100) + if (spvVersion.vulkan > 0) stageBuiltins[EShLangVertex].append( "in highp int gl_VertexIndex;" "in highp int gl_InstanceIndex;" @@ -2735,6 +5277,21 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV } } + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + stageBuiltins[EShLangVertex].append( + "in highp int gl_DeviceIndex;" // GL_EXT_device_group + "in highp int gl_ViewIndex;" // GL_EXT_multiview + "\n"); + } + + if (version >= 300 /* both ES and non-ES */) { + stageBuiltins[EShLangVertex].append( + "in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2 + "\n"); + } + + //============================================================================ // // Define the interface to the geometry shader. @@ -2761,6 +5318,10 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (version >= 450) stageBuiltins[EShLangGeometry].append( "float gl_CullDistance[];" +#ifdef NV_EXTENSIONS + "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering + "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes +#endif ); stageBuiltins[EShLangGeometry].append( "} gl_in[];" @@ -2791,6 +5352,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "out int gl_PrimitiveID;" "out int gl_Layer;"); + if (version >= 150) + stageBuiltins[EShLangGeometry].append( + "out int gl_ViewportIndex;" + ); + if (profile == ECompatibilityProfile && version < 400) stageBuiltins[EShLangGeometry].append( "out vec4 gl_ClipVertex;" @@ -2800,11 +5366,18 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangGeometry].append( "in int gl_InvocationID;" ); - // GL_ARB_viewport_array - if (version >= 150) + +#ifdef NV_EXTENSIONS + if (version >= 450) stageBuiltins[EShLangGeometry].append( - "out int gl_ViewportIndex;" + "out int gl_ViewportMask[];" // GL_NV_viewport_array2 + "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering + "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering + "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes + "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes ); +#endif + stageBuiltins[EShLangGeometry].append("\n"); } else if (profile == EEsProfile && version >= 310) { stageBuiltins[EShLangGeometry].append( @@ -2827,6 +5400,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV ); } + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + stageBuiltins[EShLangGeometry].append( + "in highp int gl_DeviceIndex;" // GL_EXT_device_group + "in highp int gl_ViewIndex;" // GL_EXT_multiview + "\n"); + } //============================================================================ // @@ -2861,6 +5441,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if (version >= 450) stageBuiltins[EShLangTessControl].append( "float gl_CullDistance[];" +#ifdef NV_EXTENSIONS + "int gl_ViewportMask[];" // GL_NV_viewport_array2 + "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering + "int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering + "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes + "int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes +#endif ); stageBuiltins[EShLangTessControl].append( "} gl_out[];" @@ -2868,6 +5455,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "patch out float gl_TessLevelOuter[4];" "patch out float gl_TessLevelInner[2];" "\n"); + + if (version >= 410) + stageBuiltins[EShLangTessControl].append( + "out int gl_ViewportIndex;" + "out int gl_Layer;" + "\n"); + } else { // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, // as it depends on the resource sizing of gl_MaxPatchVertices. @@ -2890,6 +5484,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + stageBuiltins[EShLangTessControl].append( + "in highp int gl_DeviceIndex;" // GL_EXT_device_group + "in highp int gl_ViewIndex;" // GL_EXT_multiview + "\n"); + } + //============================================================================ // // Define the interface to the tessellation evaluation shader. @@ -2907,7 +5509,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "patch in float gl_TessLevelOuter[4];" "patch in float gl_TessLevelInner[2];" - + "out gl_PerVertex {" "vec4 gl_Position;" "float gl_PointSize;" @@ -2930,6 +5532,24 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangTessEvaluation].append( "};" "\n"); + + if (version >= 410) + stageBuiltins[EShLangTessEvaluation].append( + "out int gl_ViewportIndex;" + "out int gl_Layer;" + "\n"); + +#ifdef NV_EXTENSIONS + if (version >= 450) + stageBuiltins[EShLangTessEvaluation].append( + "out int gl_ViewportMask[];" // GL_NV_viewport_array2 + "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering + "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering + "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes + "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes + ); +#endif + } else if (profile == EEsProfile && version >= 310) { // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, // as it depends on the resource sizing of gl_MaxPatchVertices. @@ -2941,7 +5561,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "patch in highp float gl_TessLevelOuter[4];" "patch in highp float gl_TessLevelInner[2];" - + "out gl_PerVertex {" "highp vec4 gl_Position;" "highp float gl_PointSize;" @@ -2951,6 +5571,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + stageBuiltins[EShLangTessEvaluation].append( + "in highp int gl_DeviceIndex;" // GL_EXT_device_group + "in highp int gl_ViewIndex;" // GL_EXT_multiview + "\n"); + } + //============================================================================ // // Define the interface to the fragment shader. @@ -2968,6 +5596,10 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV stageBuiltins[EShLangFragment].append( "vec2 gl_PointCoord;" // needs qualifier fixed later ); + if (version >= 140) + stageBuiltins[EShLangFragment].append( + "out int gl_FragStencilRefARB;" + ); if (IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && version < 420)) stageBuiltins[EShLangFragment].append( "vec4 gl_FragColor;" // needs qualifier fixed later @@ -3010,14 +5642,18 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "flat in int gl_PrimitiveID;" ); - if (version >= 400) + if (version >= 400) { stageBuiltins[EShLangFragment].append( "flat in int gl_SampleID;" " in vec2 gl_SamplePosition;" "flat in int gl_SampleMaskIn[];" " out int gl_SampleMask[];" - "uniform int gl_NumSamples;" ); + if (spvVersion.spv == 0) + stageBuiltins[EShLangFragment].append( + "uniform int gl_NumSamples;" + ); + } if (version >= 430) stageBuiltins[EShLangFragment].append( @@ -3043,6 +5679,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in vec3 gl_BaryCoordPullModelAMD;" ); #endif + +#ifdef NV_EXTENSIONS + if (version >= 430) + stageBuiltins[EShLangFragment].append( + "in bool gl_FragFullyCoveredNV;" + ); +#endif } else { // ES profile @@ -3074,8 +5717,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV " in mediump vec2 gl_SamplePosition;" "flat in highp int gl_SampleMaskIn[];" " out highp int gl_SampleMask[];" - "uniform lowp int gl_NumSamples;" ); + if (spvVersion.spv == 0) + stageBuiltins[EShLangFragment].append( // GL_OES_sample_variables + "uniform lowp int gl_NumSamples;" + ); } stageBuiltins[EShLangFragment].append( "highp float gl_FragDepthEXT;" // GL_EXT_frag_depth @@ -3088,25 +5734,85 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV // GL_ARB_shader_ballot if (profile != EEsProfile && version >= 450) { - commonBuiltins.append( + const char* ballotDecls = "uniform uint gl_SubGroupSizeARB;" - "in uint gl_SubGroupInvocationARB;" "in uint64_t gl_SubGroupEqMaskARB;" "in uint64_t gl_SubGroupGeMaskARB;" "in uint64_t gl_SubGroupGtMaskARB;" "in uint64_t gl_SubGroupLeMaskARB;" "in uint64_t gl_SubGroupLtMaskARB;" + "\n"; + const char* fragmentBallotDecls = + "uniform uint gl_SubGroupSizeARB;" + "flat in uint gl_SubGroupInvocationARB;" + "flat in uint64_t gl_SubGroupEqMaskARB;" + "flat in uint64_t gl_SubGroupGeMaskARB;" + "flat in uint64_t gl_SubGroupGtMaskARB;" + "flat in uint64_t gl_SubGroupLeMaskARB;" + "flat in uint64_t gl_SubGroupLtMaskARB;" + "\n"; + stageBuiltins[EShLangVertex] .append(ballotDecls); + stageBuiltins[EShLangTessControl] .append(ballotDecls); + stageBuiltins[EShLangTessEvaluation].append(ballotDecls); + stageBuiltins[EShLangGeometry] .append(ballotDecls); + stageBuiltins[EShLangCompute] .append(ballotDecls); + stageBuiltins[EShLangFragment] .append(fragmentBallotDecls); + } + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + stageBuiltins[EShLangFragment].append( + "flat in highp int gl_DeviceIndex;" // GL_EXT_device_group + "flat in highp int gl_ViewIndex;" // GL_EXT_multiview "\n"); } - //printf("%s\n", commonBuiltins.c_str()); - //printf("%s\n", stageBuiltins[EShLangFragment].c_str()); + // GL_KHR_shader_subgroup + if (spvVersion.vulkan > 0) { + const char* ballotDecls = + "in mediump uint gl_SubgroupSize;" + "in mediump uint gl_SubgroupInvocationID;" + "in highp uvec4 gl_SubgroupEqMask;" + "in highp uvec4 gl_SubgroupGeMask;" + "in highp uvec4 gl_SubgroupGtMask;" + "in highp uvec4 gl_SubgroupLeMask;" + "in highp uvec4 gl_SubgroupLtMask;" + "\n"; + const char* fragmentBallotDecls = + "flat in mediump uint gl_SubgroupSize;" + "flat in mediump uint gl_SubgroupInvocationID;" + "flat in highp uvec4 gl_SubgroupEqMask;" + "flat in highp uvec4 gl_SubgroupGeMask;" + "flat in highp uvec4 gl_SubgroupGtMask;" + "flat in highp uvec4 gl_SubgroupLeMask;" + "flat in highp uvec4 gl_SubgroupLtMask;" + "\n"; + stageBuiltins[EShLangVertex] .append(ballotDecls); + stageBuiltins[EShLangTessControl] .append(ballotDecls); + stageBuiltins[EShLangTessEvaluation].append(ballotDecls); + stageBuiltins[EShLangGeometry] .append(ballotDecls); + stageBuiltins[EShLangCompute] .append(ballotDecls); + stageBuiltins[EShLangFragment] .append(fragmentBallotDecls); + + stageBuiltins[EShLangCompute].append( + "highp in uint gl_NumSubgroups;" + "highp in uint gl_SubgroupID;" + "\n"); + } + + if (version >= 300 /* both ES and non-ES */) { + stageBuiltins[EShLangFragment].append( + "flat in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2 + "\n"); + } + + // printf("%s\n", commonBuiltins.c_str()); + // printf("%s\n", stageBuiltins[EShLangFragment].c_str()); } // -// Helper function for initialize(), to add the second set of names for texturing, +// Helper function for initialize(), to add the second set of names for texturing, // when adding context-independent built-in functions. // void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion) @@ -3115,8 +5821,11 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c // In this function proper, enumerate the types, then calls the next set of functions // to enumerate all the uses for that type. // - +#ifdef AMD_EXTENSIONS + TBasicType bTypes[4] = { EbtFloat, EbtFloat16, EbtInt, EbtUint }; +#else TBasicType bTypes[3] = { EbtFloat, EbtInt, EbtUint }; +#endif bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140); bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130); @@ -3156,12 +5865,20 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c continue; if (ms && arrayed && profile == EEsProfile && version < 310) continue; +#ifdef AMD_EXTENSIONS + for (int bType = 0; bType < 4; ++bType) { // float, float16, int, uint results + if (shadow && bType > 1) + continue; + + if (bTypes[bType] == EbtFloat16 && (profile == EEsProfile ||version < 450)) + continue; +#else for (int bType = 0; bType < 3; ++bType) { // float, int, uint results if (shadow && bType > 0) continue; - +#endif if (dim == EsdRect && version < 140 && bType > 0) continue; @@ -3196,6 +5913,17 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c else { addSamplingFunctions(sampler, typeName, version, profile); addGatherFunctions(sampler, typeName, version, profile); + + if (spvVersion.vulkan > 0 && sampler.dim == EsdBuffer && sampler.isCombined()) { + // Vulkan wants a textureBuffer to allow texelFetch() -- + // a sampled image with no sampler. + // So, add sampling functions for both the + // samplerBuffer and textureBuffer types. + sampler.setTexture(sampler.type, sampler.dim, sampler.arrayed, sampler.shadow, + sampler.ms); + TString textureTypeName = sampler.getString(); + addSamplingFunctions(sampler, textureTypeName, version, profile); + } } } } @@ -3214,12 +5942,12 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c } // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the query functions for the given type. // -void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) +void TBuiltIns::addQueryFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) { if (sampler.image && ((profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 430))) return; @@ -3268,15 +5996,37 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int versi // if (profile != EEsProfile && version >= 400 && ! sampler.image && sampler.dim != EsdRect && ! sampler.ms && sampler.dim != EsdBuffer) { - stageBuiltins[EShLangFragment].append("vec2 textureQueryLod("); - stageBuiltins[EShLangFragment].append(typeName); - if (dimMap[sampler.dim] == 1) - stageBuiltins[EShLangFragment].append(", float"); - else { - stageBuiltins[EShLangFragment].append(", vec"); - stageBuiltins[EShLangFragment].append(postfixes[dimMap[sampler.dim]]); +#ifdef AMD_EXTENSIONS + for (int f16TexAddr = 0; f16TexAddr < 2; ++f16TexAddr) { + if (f16TexAddr && sampler.type != EbtFloat16) + continue; +#endif + stageBuiltins[EShLangFragment].append("vec2 textureQueryLod("); + stageBuiltins[EShLangFragment].append(typeName); + if (dimMap[sampler.dim] == 1) +#ifdef AMD_EXTENSIONS + if (f16TexAddr) + stageBuiltins[EShLangFragment].append(", float16_t"); + else + stageBuiltins[EShLangFragment].append(", float"); +#else + stageBuiltins[EShLangFragment].append(", float"); +#endif + else { +#ifdef AMD_EXTENSIONS + if (f16TexAddr) + stageBuiltins[EShLangFragment].append(", f16vec"); + else + stageBuiltins[EShLangFragment].append(", vec"); +#else + stageBuiltins[EShLangFragment].append(", vec"); +#endif + stageBuiltins[EShLangFragment].append(postfixes[dimMap[sampler.dim]]); + } + stageBuiltins[EShLangFragment].append(");\n"); +#ifdef AMD_EXTENSIONS } - stageBuiltins[EShLangFragment].append(");\n"); +#endif } // @@ -3291,12 +6041,12 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int versi } // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the image access functions for the given type. // -void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) +void TBuiltIns::addImageFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) { int dims = dimMap[sampler.dim]; // most things with an array add a dimension, except for cubemaps @@ -3350,7 +6100,7 @@ void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int versi " imageAtomicOr(volatile coherent ", " imageAtomicXor(volatile coherent ", " imageAtomicExchange(volatile coherent " - }; + }; for (size_t i = 0; i < numBuiltins; ++i) { commonBuiltins.append(dataType); @@ -3381,6 +6131,43 @@ void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int versi } } } + +#ifdef AMD_EXTENSIONS + if (sampler.dim == EsdRect || sampler.dim == EsdBuffer || sampler.shadow || sampler.ms) + return; + + if (profile == EEsProfile || version < 450) + return; + + TString imageLodParams = typeName; + if (dims == 1) + imageLodParams.append(", int"); + else { + imageLodParams.append(", ivec"); + imageLodParams.append(postfixes[dims]); + } + imageLodParams.append(", int"); + + commonBuiltins.append(prefixes[sampler.type]); + commonBuiltins.append("vec4 imageLoadLodAMD(readonly volatile coherent "); + commonBuiltins.append(imageLodParams); + commonBuiltins.append(");\n"); + + commonBuiltins.append("void imageStoreLodAMD(writeonly volatile coherent "); + commonBuiltins.append(imageLodParams); + commonBuiltins.append(", "); + commonBuiltins.append(prefixes[sampler.type]); + commonBuiltins.append("vec4);\n"); + + if (sampler.dim != Esd1D) { + commonBuiltins.append("int sparseImageLoadLodAMD(readonly volatile coherent "); + commonBuiltins.append(imageLodParams); + commonBuiltins.append(", out "); + commonBuiltins.append(prefixes[sampler.type]); + commonBuiltins.append("vec4"); + commonBuiltins.append(");\n"); + } +#endif } // @@ -3389,7 +6176,7 @@ void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int versi // // Add all the subpass access functions for the given type. // -void TBuiltIns::addSubpassSampling(TSampler sampler, TString& typeName, int /*version*/, EProfile /*profile*/) +void TBuiltIns::addSubpassSampling(TSampler sampler, const TString& typeName, int /*version*/, EProfile /*profile*/) { stageBuiltins[EShLangFragment].append(prefixes[sampler.type]); stageBuiltins[EShLangFragment].append("vec4 subpassLoad"); @@ -3401,12 +6188,12 @@ void TBuiltIns::addSubpassSampling(TSampler sampler, TString& typeName, int /*ve } // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the texture lookup functions for the given type. // -void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) +void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) { // // texturing @@ -3429,7 +6216,7 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int ve if (bias && (lod || sampler.ms)) continue; - if (bias && sampler.dim == Esd2D && sampler.shadow && sampler.arrayed) + if (bias && (sampler.dim == Esd2D || sampler.dim == EsdCube) && sampler.shadow && sampler.arrayed) continue; if (bias && (sampler.dim == EsdRect || sampler.dim == EsdBuffer)) continue; @@ -3478,149 +6265,237 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int ve continue; if (extraProj && (sampler.dim == Esd3D || sampler.shadow)) continue; +#ifdef AMD_EXTENSIONS + for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr) { // loop over 16-bit floating-point texel addressing - for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp) { // loop over "bool" lod clamp - - if (lodClamp && (profile == EEsProfile || version < 450)) + if (f16TexAddr && sampler.type != EbtFloat16) continue; - if (lodClamp && (proj || lod || fetch)) - continue; - - for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not - - if (sparse && (profile == EEsProfile || version < 450)) - continue; - // Sparse sampling is not for 1D/1D array texture, buffer texture, and projective texture - if (sparse && (sampler.dim == Esd1D || sampler.dim == EsdBuffer || proj)) - continue; - - TString s; - - // return type - if (sparse) - s.append("int "); - else { - if (sampler.shadow) - s.append("float "); - else { - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } - } - - // name - if (sparse) { - if (fetch) - s.append("sparseTexel"); - else - s.append("sparseTexture"); - } else { - if (fetch) - s.append("texel"); - else - s.append("texture"); - } - if (proj) - s.append("Proj"); - if (lod) - s.append("Lod"); - if (grad) - s.append("Grad"); - if (fetch) - s.append("Fetch"); - if (offset) - s.append("Offset"); - if (lodClamp) - s.append("Clamp"); - if (lodClamp || sparse) - s.append("ARB"); - s.append("("); - - // sampler type - s.append(typeName); - - // P coordinate - if (extraProj) - s.append(",vec4"); - else { - s.append(","); - TBasicType t = fetch ? EbtInt : EbtFloat; - if (totalDims == 1) - s.append(TType::getBasicString(t)); - else { - s.append(prefixes[t]); - s.append("vec"); - s.append(postfixes[totalDims]); - } - } - - if (bias && compare) - continue; - - // non-optional lod argument (lod that's not driven by lod loop) or sample - if ((fetch && sampler.dim != EsdBuffer && sampler.dim != EsdRect && !sampler.ms) || - (sampler.ms && fetch)) - s.append(",int"); - - // non-optional lod - if (lod) - s.append(",float"); - - // gradient arguments - if (grad) { - if (dimMap[sampler.dim] == 1) - s.append(",float,float"); - else { - s.append(",vec"); - s.append(postfixes[dimMap[sampler.dim]]); - s.append(",vec"); - s.append(postfixes[dimMap[sampler.dim]]); - } - } - - // offset - if (offset) { - if (dimMap[sampler.dim] == 1) - s.append(",int"); - else { - s.append(",ivec"); - s.append(postfixes[dimMap[sampler.dim]]); - } - } - - // non-optional compare - if (compare) - s.append(",float"); - - // lod clamp - if (lodClamp) - s.append(",float"); - - // texel out (for sparse texture) - if (sparse) { - s.append(",out "); - if (sampler.shadow) - s.append("float "); - else { - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } - } - - // optional bias - if (bias) - s.append(",float"); - - s.append(");\n"); - - // Add to the per-language set of built-ins - - if (bias) - stageBuiltins[EShLangFragment].append(s); - else - commonBuiltins.append(s); + if (f16TexAddr && sampler.shadow && ! compare) { + compare = true; // compare argument is always present + totalDims--; } +#endif + for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp) { // loop over "bool" lod clamp + + if (lodClamp && (profile == EEsProfile || version < 450)) + continue; + if (lodClamp && (proj || lod || fetch)) + continue; + + for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not + + if (sparse && (profile == EEsProfile || version < 450)) + continue; + // Sparse sampling is not for 1D/1D array texture, buffer texture, and projective texture + if (sparse && (sampler.dim == Esd1D || sampler.dim == EsdBuffer || proj)) + continue; + + TString s; + + // return type + if (sparse) + s.append("int "); + else { + if (sampler.shadow) +#ifdef AMD_EXTENSIONS + if (sampler.type == EbtFloat16) + s.append("float16_t "); + else + s.append("float "); +#else + s.append("float "); +#endif + else { + s.append(prefixes[sampler.type]); + s.append("vec4 "); + } + } + + // name + if (sparse) { + if (fetch) + s.append("sparseTexel"); + else + s.append("sparseTexture"); + } + else { + if (fetch) + s.append("texel"); + else + s.append("texture"); + } + if (proj) + s.append("Proj"); + if (lod) + s.append("Lod"); + if (grad) + s.append("Grad"); + if (fetch) + s.append("Fetch"); + if (offset) + s.append("Offset"); + if (lodClamp) + s.append("Clamp"); + if (lodClamp || sparse) + s.append("ARB"); + s.append("("); + + // sampler type + s.append(typeName); +#ifdef AMD_EXTENSIONS + // P coordinate + if (extraProj) { + if (f16TexAddr) + s.append(",f16vec4"); + else + s.append(",vec4"); + } else { + s.append(","); + TBasicType t = fetch ? EbtInt : (f16TexAddr ? EbtFloat16 : EbtFloat); + if (totalDims == 1) + s.append(TType::getBasicString(t)); + else { + s.append(prefixes[t]); + s.append("vec"); + s.append(postfixes[totalDims]); + } + } +#else + // P coordinate + if (extraProj) + s.append(",vec4"); + else { + s.append(","); + TBasicType t = fetch ? EbtInt : EbtFloat; + if (totalDims == 1) + s.append(TType::getBasicString(t)); + else { + s.append(prefixes[t]); + s.append("vec"); + s.append(postfixes[totalDims]); + } + } +#endif + // non-optional compare + if (compare) + s.append(",float"); + + // non-optional lod argument (lod that's not driven by lod loop) or sample + if ((fetch && sampler.dim != EsdBuffer && sampler.dim != EsdRect && !sampler.ms) || + (sampler.ms && fetch)) + s.append(",int"); +#ifdef AMD_EXTENSIONS + // non-optional lod + if (lod) { + if (f16TexAddr) + s.append(",float16_t"); + else + s.append(",float"); + } + + // gradient arguments + if (grad) { + if (dimMap[sampler.dim] == 1) { + if (f16TexAddr) + s.append(",float16_t,float16_t"); + else + s.append(",float,float"); + } else { + if (f16TexAddr) + s.append(",f16vec"); + else + s.append(",vec"); + s.append(postfixes[dimMap[sampler.dim]]); + if (f16TexAddr) + s.append(",f16vec"); + else + s.append(",vec"); + s.append(postfixes[dimMap[sampler.dim]]); + } + } +#else + // non-optional lod + if (lod) + s.append(",float"); + + // gradient arguments + if (grad) { + if (dimMap[sampler.dim] == 1) + s.append(",float,float"); + else { + s.append(",vec"); + s.append(postfixes[dimMap[sampler.dim]]); + s.append(",vec"); + s.append(postfixes[dimMap[sampler.dim]]); + } + } +#endif + // offset + if (offset) { + if (dimMap[sampler.dim] == 1) + s.append(",int"); + else { + s.append(",ivec"); + s.append(postfixes[dimMap[sampler.dim]]); + } + } + +#ifdef AMD_EXTENSIONS + // lod clamp + if (lodClamp) { + if (f16TexAddr) + s.append(",float16_t"); + else + s.append(",float"); + } +#else + // lod clamp + if (lodClamp) + s.append(",float"); +#endif + // texel out (for sparse texture) + if (sparse) { + s.append(",out "); + if (sampler.shadow) +#ifdef AMD_EXTENSIONS + if (sampler.type == EbtFloat16) + s.append("float16_t"); + else + s.append("float"); +#else + s.append("float"); +#endif + else { + s.append(prefixes[sampler.type]); + s.append("vec4"); + } + } +#ifdef AMD_EXTENSIONS + // optional bias + if (bias) { + if (f16TexAddr) + s.append(",float16_t"); + else + s.append(",float"); + } +#else + // optional bias + if (bias) + s.append(",float"); +#endif + s.append(");\n"); + + // Add to the per-language set of built-ins + if (bias || lodClamp) + stageBuiltins[EShLangFragment].append(s); + else + commonBuiltins.append(s); + + } + } +#ifdef AMD_EXTENSIONS } +#endif } } } @@ -3630,14 +6505,13 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, TString& typeName, int ve } } - // -// Helper function for add2ndGenerationSamplingImaging(), +// Helper function for add2ndGenerationSamplingImaging(), // when adding context-independent built-in functions. // // Add all the texture gather functions for the given type. // -void TBuiltIns::addGatherFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) +void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile) { switch (sampler.dim) { case Esd2D: @@ -3654,83 +6528,228 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, TString& typeName, int vers if (version < 140 && sampler.dim == EsdRect && sampler.type != EbtFloat) return; - for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets +#ifdef AMD_EXTENSIONS + for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr) { // loop over 16-bit floating-point texel addressing - for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument + if (f16TexAddr && sampler.type != EbtFloat16) + continue; +#endif + for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets - if (comp > 0 && sampler.shadow) - continue; + for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument - if (offset > 0 && sampler.dim == EsdCube) - continue; - - for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not - if (sparse && (profile == EEsProfile || version < 450)) + if (comp > 0 && sampler.shadow) continue; - TString s; + if (offset > 0 && sampler.dim == EsdCube) + continue; - // return type - if (sparse) - s.append("int "); - else { - s.append(prefixes[sampler.type]); - s.append("vec4 "); + for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not + if (sparse && (profile == EEsProfile || version < 450)) + continue; + + TString s; + + // return type + if (sparse) + s.append("int "); + else { + s.append(prefixes[sampler.type]); + s.append("vec4 "); + } + + // name + if (sparse) + s.append("sparseTextureGather"); + else + s.append("textureGather"); + switch (offset) { + case 1: + s.append("Offset"); + break; + case 2: + s.append("Offsets"); + break; + default: + break; + } + if (sparse) + s.append("ARB"); + s.append("("); + + // sampler type argument + s.append(typeName); + + // P coordinate argument +#ifdef AMD_EXTENSIONS + if (f16TexAddr) + s.append(",f16vec"); + else + s.append(",vec"); +#else + s.append(",vec"); +#endif + int totalDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0); + s.append(postfixes[totalDims]); + + // refZ argument + if (sampler.shadow) + s.append(",float"); + + // offset argument + if (offset > 0) { + s.append(",ivec2"); + if (offset == 2) + s.append("[4]"); + } + + // texel out (for sparse texture) + if (sparse) { + s.append(",out "); + s.append(prefixes[sampler.type]); + s.append("vec4 "); + } + + // comp argument + if (comp) + s.append(",int"); + + s.append(");\n"); + commonBuiltins.append(s); +#ifdef AMD_EXTENSIONS } - - // name - if (sparse) - s.append("sparseTextureGather"); - else - s.append("textureGather"); - switch (offset) { - case 1: - s.append("Offset"); - break; - case 2: - s.append("Offsets"); - default: - break; - } - if (sparse) - s.append("ARB"); - s.append("("); - - // sampler type argument - s.append(typeName); - - // P coordinate argument - s.append(",vec"); - int totalDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0); - s.append(postfixes[totalDims]); - - // refZ argument - if (sampler.shadow) - s.append(",float"); - - // offset argument - if (offset > 0) { - s.append(",ivec2"); - if (offset == 2) - s.append("[4]"); - } - - // texel out (for sparse texture) - if (sparse) { - s.append(",out "); - s.append(prefixes[sampler.type]); - s.append("vec4 "); - } - - // comp argument - if (comp) - s.append(",int"); - - s.append(");\n"); - commonBuiltins.append(s); +#endif } } } + +#ifdef AMD_EXTENSIONS + if (sampler.dim == EsdRect || sampler.shadow) + return; + + if (profile == EEsProfile || version < 450) + return; + + for (int bias = 0; bias < 2; ++bias) { // loop over presence of bias argument + + for (int lod = 0; lod < 2; ++lod) { // loop over presence of lod argument + + if ((lod && bias) || (lod == 0 && bias == 0)) + continue; + + for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr) { // loop over 16-bit floating-point texel addressing + + if (f16TexAddr && sampler.type != EbtFloat16) + continue; + + for (int offset = 0; offset < 3; ++offset) { // loop over three forms of offset in the call name: none, Offset, and Offsets + + for (int comp = 0; comp < 2; ++comp) { // loop over presence of comp argument + + if (comp == 0 && bias) + continue; + + if (offset > 0 && sampler.dim == EsdCube) + continue; + + for (int sparse = 0; sparse <= 1; ++sparse) { // loop over "bool" sparse or not + if (sparse && (profile == EEsProfile || version < 450)) + continue; + + TString s; + + // return type + if (sparse) + s.append("int "); + else { + s.append(prefixes[sampler.type]); + s.append("vec4 "); + } + + // name + if (sparse) + s.append("sparseTextureGather"); + else + s.append("textureGather"); + + if (lod) + s.append("Lod"); + + switch (offset) { + case 1: + s.append("Offset"); + break; + case 2: + s.append("Offsets"); + break; + default: + break; + } + + if (lod) + s.append("AMD"); + else if (sparse) + s.append("ARB"); + + s.append("("); + + // sampler type argument + s.append(typeName); + + // P coordinate argument + if (f16TexAddr) + s.append(",f16vec"); + else + s.append(",vec"); + int totalDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0); + s.append(postfixes[totalDims]); + + // lod argument + if (lod) { + if (f16TexAddr) + s.append(",float16_t"); + else + s.append(",float"); + } + + // offset argument + if (offset > 0) { + s.append(",ivec2"); + if (offset == 2) + s.append("[4]"); + } + + // texel out (for sparse texture) + if (sparse) { + s.append(",out "); + s.append(prefixes[sampler.type]); + s.append("vec4 "); + } + + // comp argument + if (comp) + s.append(",int"); + + // bias argument + if (bias) { + if (f16TexAddr) + s.append(",float16_t"); + else + s.append(",float"); + } + + s.append(");\n"); + if (bias) + stageBuiltins[EShLangFragment].append(s); + else + commonBuiltins.append(s); + } + } + } + } + } + } +#endif } // @@ -3833,7 +6852,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlTotalOutputComponents = %d;", resources.maxTessControlTotalOutputComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationInputComponents = %d;", resources.maxTessEvaluationInputComponents); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationOutputComponents = %d;", resources.maxTessEvaluationOutputComponents); @@ -3842,7 +6861,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationUniformComponents = %d;", resources.maxTessEvaluationUniformComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessPatchComponents = %d;", resources.maxTessPatchComponents); s.append(builtInConstant); @@ -3857,6 +6876,10 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf "in gl_PerVertex {" "highp vec4 gl_Position;" "highp float gl_PointSize;" +#ifdef NV_EXTENSIONS + "highp vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering + "highp vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes +#endif "} gl_in[gl_MaxPatchVertices];" "\n"); } @@ -4005,7 +7028,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlTotalOutputComponents = %d;", resources.maxTessControlTotalOutputComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationInputComponents = %d;", resources.maxTessEvaluationInputComponents); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationOutputComponents = %d;", resources.maxTessEvaluationOutputComponents); @@ -4014,7 +7037,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessEvaluationUniformComponents = %d;", resources.maxTessEvaluationUniformComponents); s.append(builtInConstant); - + snprintf(builtInConstant, maxSize, "const int gl_MaxTessPatchComponents = %d;", resources.maxTessPatchComponents); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessGenLevel = %d;", resources.maxTessGenLevel); @@ -4043,6 +7066,10 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf if (profile != EEsProfile && version >= 450) s.append( "float gl_CullDistance[];" +#ifdef NV_EXTENSIONS + "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering + "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes +#endif ); s.append( "} gl_in[gl_MaxPatchVertices];" @@ -4079,7 +7106,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf } // images (some in compute below) - if ((profile == EEsProfile && version >= 310) || + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 130)) { snprintf(builtInConstant, maxSize, "const int gl_MaxImageUnits = %d;", resources.maxImageUnits); s.append(builtInConstant); @@ -4094,7 +7121,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf } // atomic counters (some in compute below) - if ((profile == EEsProfile && version >= 310) || + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { snprintf(builtInConstant, maxSize, "const int gl_MaxVertexAtomicCounters = %d;", resources. maxVertexAtomicCounters); s.append(builtInConstant); @@ -4130,12 +7157,11 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append("\n"); } - // compute if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX, resources.maxComputeWorkGroupCountY, - resources.maxComputeWorkGroupCountZ); + resources.maxComputeWorkGroupCountZ); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupSize = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupSizeX, resources.maxComputeWorkGroupSizeY, @@ -4265,23 +7291,26 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion // N.B.: a symbol should only be tagged once, and this function is called multiple times, once // per stage that's used for this profile. So // - generally, stick common ones in the fragment stage to ensure they are tagged exactly once - // - for ES, which has different precisions for different stages, the coarsest-grained tagging + // - for ES, which has different precisions for different stages, the coarsest-grained tagging // for a built-in used in many stages needs to be once for the fragment stage and once for // the vertex stage switch(language) { case EShLangVertex: if (profile != EEsProfile) { - symbolTable.setVariableExtensions("gl_BaseVertexARB", 1, &E_GL_ARB_shader_draw_parameters); - symbolTable.setVariableExtensions("gl_BaseInstanceARB", 1, &E_GL_ARB_shader_draw_parameters); - symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); - - BuiltInVariable("gl_BaseVertexARB", EbvBaseVertex, symbolTable); - BuiltInVariable("gl_BaseInstanceARB", EbvBaseInstance, symbolTable); - BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); - } - - if (profile != EEsProfile) { + if (version >= 440) { + symbolTable.setVariableExtensions("gl_BaseVertexARB", 1, &E_GL_ARB_shader_draw_parameters); + symbolTable.setVariableExtensions("gl_BaseInstanceARB", 1, &E_GL_ARB_shader_draw_parameters); + symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); + BuiltInVariable("gl_BaseVertexARB", EbvBaseVertex, symbolTable); + BuiltInVariable("gl_BaseInstanceARB", EbvBaseInstance, symbolTable); + BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); + } + if (version >= 460) { + BuiltInVariable("gl_BaseVertex", EbvBaseVertex, symbolTable); + BuiltInVariable("gl_BaseInstance", EbvBaseInstance, symbolTable); + BuiltInVariable("gl_DrawID", EbvDrawId, symbolTable); + } symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot); @@ -4301,13 +7330,17 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); - if (spvVersion.vulkan >= 100) + if (spvVersion.vulkan > 0) // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); + else + BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); - symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); - symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); - symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); + if (version >= 430) { + symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); + symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); + symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); + } } #ifdef AMD_EXTENSIONS @@ -4322,6 +7355,19 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("swizzleInvocationsWithPatternAMD", 1, &E_GL_AMD_shader_ballot); symbolTable.setFunctionExtensions("writeInvocationAMD", 1, &E_GL_AMD_shader_ballot); symbolTable.setFunctionExtensions("mbcntAMD", 1, &E_GL_AMD_shader_ballot); + + symbolTable.setFunctionExtensions("minInvocationsInclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("maxInvocationsInclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("addInvocationsInclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("minInvocationsInclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("maxInvocationsInclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("addInvocationsInclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("minInvocationsExclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("maxInvocationsExclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("addInvocationsExclusiveScanAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("minInvocationsExclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("maxInvocationsExclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("addInvocationsExclusiveScanNonUniformAMD", 1, &E_GL_AMD_shader_ballot); } if (profile != EEsProfile) { @@ -4335,6 +7381,11 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("cubeFaceCoordAMD", 1, &E_GL_AMD_gcn_shader); symbolTable.setFunctionExtensions("timeAMD", 1, &E_GL_AMD_gcn_shader); } + + if (profile != EEsProfile) { + symbolTable.setFunctionExtensions("fragmentMaskFetchAMD", 1, &E_GL_AMD_shader_fragment_mask); + symbolTable.setFunctionExtensions("fragmentFetchAMD", 1, &E_GL_AMD_shader_fragment_mask); + } #endif // Compatibility variables, vertex only @@ -4359,13 +7410,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod); - symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); + if (version == 310) + symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); } - if (version >= 310) + if (version == 310) symbolTable.setFunctionExtensions("fma", Num_AEP_gpu_shader5, AEP_gpu_shader5); } - if (profile == EEsProfile) { + if (profile == EEsProfile && version < 320) { symbolTable.setFunctionExtensions("imageAtomicAdd", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMin", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMax", 1, &E_GL_OES_shader_image_atomic); @@ -4381,17 +7433,29 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable); } - if (spvVersion.vulkan >= 100) { + if (spvVersion.vulkan > 0) { BuiltInVariable("gl_VertexIndex", EbvVertexIndex, symbolTable); BuiltInVariable("gl_InstanceIndex", EbvInstanceIndex, symbolTable); } + if (version >= 300 /* both ES and non-ES */) { + symbolTable.setVariableExtensions("gl_ViewID_OVR", Num_OVR_multiview_EXTs, OVR_multiview_EXTs); + BuiltInVariable("gl_ViewID_OVR", EbvViewIndex, symbolTable); + } + + if (profile == EEsProfile) { + symbolTable.setFunctionExtensions("shadow2DEXT", 1, &E_GL_EXT_shadow_samplers); + symbolTable.setFunctionExtensions("shadow2DProjEXT", 1, &E_GL_EXT_shadow_samplers); + } + // Fall through case EShLangTessControl: if (profile == EEsProfile && version >= 310) { - symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box, AEP_primitive_bounding_box); BuiltInVariable("gl_BoundingBoxOES", EbvBoundingBox, symbolTable); + if (version < 320) + symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box, + AEP_primitive_bounding_box); } // Fall through @@ -4419,6 +7483,43 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_InvocationID", EbvInvocationId, symbolTable); BuiltInVariable("gl_Layer", EbvLayer, symbolTable); BuiltInVariable("gl_ViewportIndex", EbvViewportIndex, symbolTable); + +#ifdef NV_EXTENSIONS + if (language != EShLangGeometry) { + symbolTable.setVariableExtensions("gl_Layer", Num_viewportEXTs, viewportEXTs); + symbolTable.setVariableExtensions("gl_ViewportIndex", Num_viewportEXTs, viewportEXTs); + } +#else + if (language != EShLangGeometry && version >= 410) { + symbolTable.setVariableExtensions("gl_Layer", 1, &E_GL_ARB_shader_viewport_layer_array); + symbolTable.setVariableExtensions("gl_ViewportIndex", 1, &E_GL_ARB_shader_viewport_layer_array); + } +#endif + +#ifdef NV_EXTENSIONS + symbolTable.setVariableExtensions("gl_ViewportMask", 1, &E_GL_NV_viewport_array2); + symbolTable.setVariableExtensions("gl_SecondaryPositionNV", 1, &E_GL_NV_stereo_view_rendering); + symbolTable.setVariableExtensions("gl_SecondaryViewportMaskNV", 1, &E_GL_NV_stereo_view_rendering); + symbolTable.setVariableExtensions("gl_PositionPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); + symbolTable.setVariableExtensions("gl_ViewportMaskPerViewNV", 1, &E_GL_NVX_multiview_per_view_attributes); + + BuiltInVariable("gl_ViewportMask", EbvViewportMaskNV, symbolTable); + BuiltInVariable("gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); + BuiltInVariable("gl_SecondaryViewportMaskNV", EbvSecondaryViewportMaskNV, symbolTable); + BuiltInVariable("gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); + BuiltInVariable("gl_ViewportMaskPerViewNV", EbvViewportMaskPerViewNV, symbolTable); + + if (language != EShLangVertex) { + BuiltInVariable("gl_in", "gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); + BuiltInVariable("gl_in", "gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); + } + BuiltInVariable("gl_out", "gl_ViewportMask", EbvViewportMaskNV, symbolTable); + BuiltInVariable("gl_out", "gl_SecondaryPositionNV", EbvSecondaryPositionNV, symbolTable); + BuiltInVariable("gl_out", "gl_SecondaryViewportMaskNV", EbvSecondaryViewportMaskNV, symbolTable); + BuiltInVariable("gl_out", "gl_PositionPerViewNV", EbvPositionPerViewNV, symbolTable); + BuiltInVariable("gl_out", "gl_ViewportMaskPerViewNV", EbvViewportMaskPerViewNV, symbolTable); +#endif + BuiltInVariable("gl_PatchVerticesIn", EbvPatchVertices, symbolTable); BuiltInVariable("gl_TessLevelOuter", EbvTessLevelOuter, symbolTable); BuiltInVariable("gl_TessLevelInner", EbvTessLevelInner, symbolTable); @@ -4458,20 +7559,55 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion // However, the current automatic extension scheme does not work per block member, // so for now check when parsing. // - //if (profile == EEsProfile) { + // if (profile == EEsProfile) { // if (language == EShLangGeometry) // symbolTable.setVariableExtensions("gl_PointSize", Num_AEP_geometry_point_size, AEP_geometry_point_size); // else if (language == EShLangTessEvaluation || language == EShLangTessControl) // symbolTable.setVariableExtensions("gl_PointSize", Num_AEP_tessellation_point_size, AEP_tessellation_point_size); //} + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); + BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); + symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); + BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); + } + + // GL_KHR_shader_subgroup + if (spvVersion.vulkan > 0) { + symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupGeMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupGtMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupLeMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupLtMask", 1, &E_GL_KHR_shader_subgroup_ballot); + + BuiltInVariable("gl_SubgroupSize", EbvSubgroupSize2, symbolTable); + BuiltInVariable("gl_SubgroupInvocationID", EbvSubgroupInvocation2, symbolTable); + BuiltInVariable("gl_SubgroupEqMask", EbvSubgroupEqMask2, symbolTable); + BuiltInVariable("gl_SubgroupGeMask", EbvSubgroupGeMask2, symbolTable); + BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable); + BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable); + BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable); + } + break; case EShLangFragment: SpecialQualifier("gl_FrontFacing", EvqFace, EbvFace, symbolTable); SpecialQualifier("gl_FragCoord", EvqFragCoord, EbvFragCoord, symbolTable); SpecialQualifier("gl_PointCoord", EvqPointCoord, EbvPointCoord, symbolTable); - SpecialQualifier("gl_FragColor", EvqFragColor, EbvFragColor, symbolTable); + if (spvVersion.spv == 0) + SpecialQualifier("gl_FragColor", EvqFragColor, EbvFragColor, symbolTable); + else { + TSymbol* symbol = symbolTable.find("gl_FragColor"); + if (symbol) { + symbol->getWritableType().getQualifier().storage = EvqVaryingOut; + symbol->getWritableType().getQualifier().layoutLocation = 0; + } + } SpecialQualifier("gl_FragDepth", EvqFragDepth, EbvFragDepth, symbolTable); SpecialQualifier("gl_FragDepthEXT", EvqFragDepth, EbvFragDepth, symbolTable); SpecialQualifier("gl_HelperInvocation", EvqVaryingIn, EbvHelperInvocation, symbolTable); @@ -4480,13 +7616,18 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_CullDistance", EbvCullDistance, symbolTable); BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable); + if (profile != EEsProfile && version >= 140) { + symbolTable.setVariableExtensions("gl_FragStencilRefARB", 1, &E_GL_ARB_shader_stencil_export); + BuiltInVariable("gl_FragStencilRefARB", EbvFragStencilRef, symbolTable); + } + if ((profile != EEsProfile && version >= 400) || (profile == EEsProfile && version >= 310)) { BuiltInVariable("gl_SampleID", EbvSampleId, symbolTable); BuiltInVariable("gl_SamplePosition", EbvSamplePosition, symbolTable); BuiltInVariable("gl_SampleMaskIn", EbvSampleMask, symbolTable); BuiltInVariable("gl_SampleMask", EbvSampleMask, symbolTable); - if (profile == EEsProfile) { + if (profile == EEsProfile && version < 320) { symbolTable.setVariableExtensions("gl_SampleID", 1, &E_GL_OES_sample_variables); symbolTable.setVariableExtensions("gl_SamplePosition", 1, &E_GL_OES_sample_variables); symbolTable.setVariableExtensions("gl_SampleMaskIn", 1, &E_GL_OES_sample_variables); @@ -4494,7 +7635,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setVariableExtensions("gl_NumSamples", 1, &E_GL_OES_sample_variables); } } - + BuiltInVariable("gl_Layer", EbvLayer, symbolTable); BuiltInVariable("gl_ViewportIndex", EbvViewportIndex, symbolTable); @@ -4520,14 +7661,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod); - symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); + if (version < 320) + symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5); } if (version == 100) { symbolTable.setFunctionExtensions("dFdx", 1, &E_GL_OES_standard_derivatives); symbolTable.setFunctionExtensions("dFdy", 1, &E_GL_OES_standard_derivatives); symbolTable.setFunctionExtensions("fwidth", 1, &E_GL_OES_standard_derivatives); } - if (version >= 310) { + if (version == 310) { symbolTable.setFunctionExtensions("fma", Num_AEP_gpu_shader5, AEP_gpu_shader5); symbolTable.setFunctionExtensions("interpolateAtCentroid", 1, &E_GL_OES_shader_multisample_interpolation); symbolTable.setFunctionExtensions("interpolateAtSample", 1, &E_GL_OES_shader_multisample_interpolation); @@ -4642,16 +7784,40 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_BaryCoordSmoothSampleAMD", EbvBaryCoordSmoothSample, symbolTable); BuiltInVariable("gl_BaryCoordPullModelAMD", EbvBaryCoordPullModel, symbolTable); } + + // E_GL_AMD_texture_gather_bias_lod + if (profile != EEsProfile) { + symbolTable.setFunctionExtensions("textureGatherLodAMD", 1, &E_GL_AMD_texture_gather_bias_lod); + symbolTable.setFunctionExtensions("textureGatherLodOffsetAMD", 1, &E_GL_AMD_texture_gather_bias_lod); + symbolTable.setFunctionExtensions("textureGatherLodOffsetsAMD", 1, &E_GL_AMD_texture_gather_bias_lod); + symbolTable.setFunctionExtensions("sparseTextureGatherLodAMD", 1, &E_GL_AMD_texture_gather_bias_lod); + symbolTable.setFunctionExtensions("sparseTextureGatherLodOffsetAMD", 1, &E_GL_AMD_texture_gather_bias_lod); + symbolTable.setFunctionExtensions("sparseTextureGatherLodOffsetsAMD", 1, &E_GL_AMD_texture_gather_bias_lod); + } + + // E_GL_AMD_shader_image_load_store_lod + if (profile != EEsProfile) { + symbolTable.setFunctionExtensions("imageLoadLodAMD", 1, &E_GL_AMD_shader_image_load_store_lod); + symbolTable.setFunctionExtensions("imageStoreLodAMD", 1, &E_GL_AMD_shader_image_load_store_lod); + symbolTable.setFunctionExtensions("sparseImageLoadLodAMD", 1, &E_GL_AMD_shader_image_load_store_lod); + } +#endif + +#ifdef NV_EXTENSIONS + if (profile != EEsProfile && version >= 430) { + symbolTable.setVariableExtensions("gl_FragFullyCoveredNV", 1, &E_GL_NV_conservative_raster_underestimation); + BuiltInVariable("gl_FragFullyCoveredNV", EbvFragFullyCoveredNV, symbolTable); + } #endif symbolTable.setVariableExtensions("gl_FragDepthEXT", 1, &E_GL_EXT_frag_depth); - if (profile == EEsProfile) { + if (profile == EEsProfile && version < 320) { symbolTable.setVariableExtensions("gl_PrimitiveID", Num_AEP_geometry_shader, AEP_geometry_shader); symbolTable.setVariableExtensions("gl_Layer", Num_AEP_geometry_shader, AEP_geometry_shader); } - if (profile == EEsProfile) { + if (profile == EEsProfile && version < 320) { symbolTable.setFunctionExtensions("imageAtomicAdd", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMin", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicMax", 1, &E_GL_OES_shader_image_atomic); @@ -4661,6 +7827,144 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("imageAtomicExchange", 1, &E_GL_OES_shader_image_atomic); symbolTable.setFunctionExtensions("imageAtomicCompSwap", 1, &E_GL_OES_shader_image_atomic); } + + symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); + BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); + symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); + BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); + if (version >= 300 /* both ES and non-ES */) { + symbolTable.setVariableExtensions("gl_ViewID_OVR", Num_OVR_multiview_EXTs, OVR_multiview_EXTs); + BuiltInVariable("gl_ViewID_OVR", EbvViewIndex, symbolTable); + } + + // GL_ARB_shader_ballot + if (profile != EEsProfile) { + symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupGeMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupGtMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupLeMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupLtMaskARB", 1, &E_GL_ARB_shader_ballot); + + BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable); + BuiltInVariable("gl_SubGroupEqMaskARB", EbvSubGroupEqMask, symbolTable); + BuiltInVariable("gl_SubGroupGeMaskARB", EbvSubGroupGeMask, symbolTable); + BuiltInVariable("gl_SubGroupGtMaskARB", EbvSubGroupGtMask, symbolTable); + BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); + BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); + + if (spvVersion.vulkan > 0) + // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan + SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); + else + BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); + } + + // GL_KHR_shader_subgroup + if (spvVersion.vulkan > 0) { + symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupGeMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupGtMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupLeMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupLtMask", 1, &E_GL_KHR_shader_subgroup_ballot); + + BuiltInVariable("gl_SubgroupSize", EbvSubgroupSize2, symbolTable); + BuiltInVariable("gl_SubgroupInvocationID", EbvSubgroupInvocation2, symbolTable); + BuiltInVariable("gl_SubgroupEqMask", EbvSubgroupEqMask2, symbolTable); + BuiltInVariable("gl_SubgroupGeMask", EbvSubgroupGeMask2, symbolTable); + BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable); + BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable); + BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable); + + symbolTable.setFunctionExtensions("subgroupBarrier", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setFunctionExtensions("subgroupMemoryBarrier", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setFunctionExtensions("subgroupMemoryBarrierBuffer", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setFunctionExtensions("subgroupMemoryBarrierImage", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setFunctionExtensions("subgroupElect", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setFunctionExtensions("subgroupAll", 1, &E_GL_KHR_shader_subgroup_vote); + symbolTable.setFunctionExtensions("subgroupAny", 1, &E_GL_KHR_shader_subgroup_vote); + symbolTable.setFunctionExtensions("subgroupAllEqual", 1, &E_GL_KHR_shader_subgroup_vote); + symbolTable.setFunctionExtensions("subgroupBroadcast", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBroadcastFirst", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBallot", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupInverseBallot", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBallotBitExtract", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBallotBitCount", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBallotInclusiveBitCount", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBallotExclusiveBitCount", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBallotFindLSB", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupBallotFindMSB", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setFunctionExtensions("subgroupShuffle", 1, &E_GL_KHR_shader_subgroup_shuffle); + symbolTable.setFunctionExtensions("subgroupShuffleXor", 1, &E_GL_KHR_shader_subgroup_shuffle); + symbolTable.setFunctionExtensions("subgroupShuffleUp", 1, &E_GL_KHR_shader_subgroup_shuffle_relative); + symbolTable.setFunctionExtensions("subgroupShuffleDown", 1, &E_GL_KHR_shader_subgroup_shuffle_relative); + symbolTable.setFunctionExtensions("subgroupAdd", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupMul", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupMin", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupMax", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupAnd", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupOr", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupXor", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupInclusiveAdd", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupInclusiveMul", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupInclusiveMin", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupInclusiveMax", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupInclusiveAnd", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupInclusiveOr", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupInclusiveXor", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupExclusiveAdd", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupExclusiveMul", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupExclusiveMin", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupExclusiveMax", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupExclusiveAnd", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupExclusiveOr", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupExclusiveXor", 1, &E_GL_KHR_shader_subgroup_arithmetic); + symbolTable.setFunctionExtensions("subgroupClusteredAdd", 1, &E_GL_KHR_shader_subgroup_clustered); + symbolTable.setFunctionExtensions("subgroupClusteredMul", 1, &E_GL_KHR_shader_subgroup_clustered); + symbolTable.setFunctionExtensions("subgroupClusteredMin", 1, &E_GL_KHR_shader_subgroup_clustered); + symbolTable.setFunctionExtensions("subgroupClusteredMax", 1, &E_GL_KHR_shader_subgroup_clustered); + symbolTable.setFunctionExtensions("subgroupClusteredAnd", 1, &E_GL_KHR_shader_subgroup_clustered); + symbolTable.setFunctionExtensions("subgroupClusteredOr", 1, &E_GL_KHR_shader_subgroup_clustered); + symbolTable.setFunctionExtensions("subgroupClusteredXor", 1, &E_GL_KHR_shader_subgroup_clustered); + symbolTable.setFunctionExtensions("subgroupQuadBroadcast", 1, &E_GL_KHR_shader_subgroup_quad); + symbolTable.setFunctionExtensions("subgroupQuadSwapHorizontal", 1, &E_GL_KHR_shader_subgroup_quad); + symbolTable.setFunctionExtensions("subgroupQuadSwapVertical", 1, &E_GL_KHR_shader_subgroup_quad); + symbolTable.setFunctionExtensions("subgroupQuadSwapDiagonal", 1, &E_GL_KHR_shader_subgroup_quad); + +#ifdef NV_EXTENSIONS + symbolTable.setFunctionExtensions("subgroupPartitionNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedAddNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedMulNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedMinNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedAndNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedOrNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedXorNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveAddNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMulNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMinNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveAndNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveOrNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedInclusiveXorNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveAddNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMulNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMinNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveMaxNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveAndNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveOrNV", 1, &E_GL_NV_shader_subgroup_partitioned); + symbolTable.setFunctionExtensions("subgroupPartitionedExclusiveXorNV", 1, &E_GL_NV_shader_subgroup_partitioned); +#endif + + } + + if (profile == EEsProfile) { + symbolTable.setFunctionExtensions("shadow2DEXT", 1, &E_GL_EXT_shadow_samplers); + symbolTable.setFunctionExtensions("shadow2DProjEXT", 1, &E_GL_EXT_shadow_samplers); + } break; case EShLangCompute: @@ -4694,6 +7998,68 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_ARB_compute_shader); symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_ARB_compute_shader); } + + // GL_ARB_shader_ballot + if (profile != EEsProfile) { + symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupGeMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupGtMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupLeMaskARB", 1, &E_GL_ARB_shader_ballot); + symbolTable.setVariableExtensions("gl_SubGroupLtMaskARB", 1, &E_GL_ARB_shader_ballot); + + BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable); + BuiltInVariable("gl_SubGroupEqMaskARB", EbvSubGroupEqMask, symbolTable); + BuiltInVariable("gl_SubGroupGeMaskARB", EbvSubGroupGeMask, symbolTable); + BuiltInVariable("gl_SubGroupGtMaskARB", EbvSubGroupGtMask, symbolTable); + BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); + BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); + + if (spvVersion.vulkan > 0) + // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan + SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); + else + BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); + } + + // GL_ARB_shader_ballot + if (spvVersion.vulkan > 0) { + symbolTable.setVariableExtensions("gl_SubgroupSize", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setVariableExtensions("gl_SubgroupInvocationID", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setVariableExtensions("gl_SubgroupEqMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupGeMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupGtMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupLeMask", 1, &E_GL_KHR_shader_subgroup_ballot); + symbolTable.setVariableExtensions("gl_SubgroupLtMask", 1, &E_GL_KHR_shader_subgroup_ballot); + + BuiltInVariable("gl_SubgroupSize", EbvSubgroupSize2, symbolTable); + BuiltInVariable("gl_SubgroupInvocationID", EbvSubgroupInvocation2, symbolTable); + BuiltInVariable("gl_SubgroupEqMask", EbvSubgroupEqMask2, symbolTable); + BuiltInVariable("gl_SubgroupGeMask", EbvSubgroupGeMask2, symbolTable); + BuiltInVariable("gl_SubgroupGtMask", EbvSubgroupGtMask2, symbolTable); + BuiltInVariable("gl_SubgroupLeMask", EbvSubgroupLeMask2, symbolTable); + BuiltInVariable("gl_SubgroupLtMask", EbvSubgroupLtMask2, symbolTable); + } + + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); + BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable); + symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview); + BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable); + } + + // GL_KHR_shader_subgroup + if (spvVersion.vulkan > 0) { + symbolTable.setVariableExtensions("gl_NumSubgroups", 1, &E_GL_KHR_shader_subgroup_basic); + symbolTable.setVariableExtensions("gl_SubgroupID", 1, &E_GL_KHR_shader_subgroup_basic); + + BuiltInVariable("gl_NumSubgroups", EbvNumSubgroups, symbolTable); + BuiltInVariable("gl_SubgroupID", EbvSubgroupID, symbolTable); + + symbolTable.setFunctionExtensions("subgroupMemoryBarrierShared", 1, &E_GL_KHR_shader_subgroup_basic); + } break; default: @@ -4779,6 +8145,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("doubleBitsToUint64", EOpDoubleBitsToUint64); symbolTable.relateToOperator("int64BitsToDouble", EOpInt64BitsToDouble); symbolTable.relateToOperator("uint64BitsToDouble", EOpUint64BitsToDouble); + symbolTable.relateToOperator("halfBitsToInt16", EOpFloat16BitsToInt16); + symbolTable.relateToOperator("halfBitsToUint16", EOpFloat16BitsToUint16); + symbolTable.relateToOperator("float16BitsToInt16", EOpFloat16BitsToInt16); + symbolTable.relateToOperator("float16BitsToUint16", EOpFloat16BitsToUint16); + symbolTable.relateToOperator("int16BitsToFloat16", EOpInt16BitsToFloat16); + symbolTable.relateToOperator("uint16BitsToFloat16", EOpUint16BitsToFloat16); + + symbolTable.relateToOperator("int16BitsToHalf", EOpInt16BitsToFloat16); + symbolTable.relateToOperator("uint16BitsToHalf", EOpUint16BitsToFloat16); symbolTable.relateToOperator("packSnorm2x16", EOpPackSnorm2x16); symbolTable.relateToOperator("unpackSnorm2x16", EOpUnpackSnorm2x16); @@ -4801,10 +8176,25 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("packUint2x32", EOpPackUint2x32); symbolTable.relateToOperator("unpackUint2x32", EOpUnpackUint2x32); -#ifdef AMD_EXTENSIONS + symbolTable.relateToOperator("packInt2x16", EOpPackInt2x16); + symbolTable.relateToOperator("unpackInt2x16", EOpUnpackInt2x16); + symbolTable.relateToOperator("packUint2x16", EOpPackUint2x16); + symbolTable.relateToOperator("unpackUint2x16", EOpUnpackUint2x16); + + symbolTable.relateToOperator("packInt4x16", EOpPackInt4x16); + symbolTable.relateToOperator("unpackInt4x16", EOpUnpackInt4x16); + symbolTable.relateToOperator("packUint4x16", EOpPackUint4x16); + symbolTable.relateToOperator("unpackUint4x16", EOpUnpackUint4x16); symbolTable.relateToOperator("packFloat2x16", EOpPackFloat2x16); symbolTable.relateToOperator("unpackFloat2x16", EOpUnpackFloat2x16); -#endif + + symbolTable.relateToOperator("pack16", EOpPack16); + symbolTable.relateToOperator("pack32", EOpPack32); + symbolTable.relateToOperator("pack64", EOpPack64); + + symbolTable.relateToOperator("unpack32", EOpUnpack32); + symbolTable.relateToOperator("unpack16", EOpUnpack16); + symbolTable.relateToOperator("unpack8", EOpUnpack8); symbolTable.relateToOperator("length", EOpLength); symbolTable.relateToOperator("distance", EOpDistance); @@ -4837,6 +8227,18 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("atomicCounterDecrement", EOpAtomicCounterDecrement); symbolTable.relateToOperator("atomicCounter", EOpAtomicCounter); + if (profile != EEsProfile && version >= 460) { + symbolTable.relateToOperator("atomicCounterAdd", EOpAtomicCounterAdd); + symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicCounterSubtract); + symbolTable.relateToOperator("atomicCounterMin", EOpAtomicCounterMin); + symbolTable.relateToOperator("atomicCounterMax", EOpAtomicCounterMax); + symbolTable.relateToOperator("atomicCounterAnd", EOpAtomicCounterAnd); + symbolTable.relateToOperator("atomicCounterOr", EOpAtomicCounterOr); + symbolTable.relateToOperator("atomicCounterXor", EOpAtomicCounterXor); + symbolTable.relateToOperator("atomicCounterExchange", EOpAtomicCounterExchange); + symbolTable.relateToOperator("atomicCounterCompSwap", EOpAtomicCounterCompSwap); + } + symbolTable.relateToOperator("fma", EOpFma); symbolTable.relateToOperator("frexp", EOpFrexp); symbolTable.relateToOperator("ldexp", EOpLdexp); @@ -4979,21 +8381,39 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("readInvocationARB", EOpReadInvocation); symbolTable.relateToOperator("readFirstInvocationARB", EOpReadFirstInvocation); - symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation); - symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations); - symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual); - + if (version >= 430) { + symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation); + symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations); + symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual); + } + if (version >= 460) { + symbolTable.relateToOperator("anyInvocation", EOpAnyInvocation); + symbolTable.relateToOperator("allInvocations", EOpAllInvocations); + symbolTable.relateToOperator("allInvocationsEqual", EOpAllInvocationsEqual); + } #ifdef AMD_EXTENSIONS - symbolTable.relateToOperator("minInvocationsAMD", EOpMinInvocations); - symbolTable.relateToOperator("maxInvocationsAMD", EOpMaxInvocations); - symbolTable.relateToOperator("addInvocationsAMD", EOpAddInvocations); - symbolTable.relateToOperator("minInvocationsNonUniformAMD", EOpMinInvocationsNonUniform); - symbolTable.relateToOperator("maxInvocationsNonUniformAMD", EOpMaxInvocationsNonUniform); - symbolTable.relateToOperator("addInvocationsNonUniformAMD", EOpAddInvocationsNonUniform); - symbolTable.relateToOperator("swizzleInvocationsAMD", EOpSwizzleInvocations); - symbolTable.relateToOperator("swizzleInvocationsMaskedAMD", EOpSwizzleInvocationsMasked); - symbolTable.relateToOperator("writeInvocationAMD", EOpWriteInvocation); - symbolTable.relateToOperator("mbcntAMD", EOpMbcnt); + symbolTable.relateToOperator("minInvocationsAMD", EOpMinInvocations); + symbolTable.relateToOperator("maxInvocationsAMD", EOpMaxInvocations); + symbolTable.relateToOperator("addInvocationsAMD", EOpAddInvocations); + symbolTable.relateToOperator("minInvocationsNonUniformAMD", EOpMinInvocationsNonUniform); + symbolTable.relateToOperator("maxInvocationsNonUniformAMD", EOpMaxInvocationsNonUniform); + symbolTable.relateToOperator("addInvocationsNonUniformAMD", EOpAddInvocationsNonUniform); + symbolTable.relateToOperator("minInvocationsInclusiveScanAMD", EOpMinInvocationsInclusiveScan); + symbolTable.relateToOperator("maxInvocationsInclusiveScanAMD", EOpMaxInvocationsInclusiveScan); + symbolTable.relateToOperator("addInvocationsInclusiveScanAMD", EOpAddInvocationsInclusiveScan); + symbolTable.relateToOperator("minInvocationsInclusiveScanNonUniformAMD", EOpMinInvocationsInclusiveScanNonUniform); + symbolTable.relateToOperator("maxInvocationsInclusiveScanNonUniformAMD", EOpMaxInvocationsInclusiveScanNonUniform); + symbolTable.relateToOperator("addInvocationsInclusiveScanNonUniformAMD", EOpAddInvocationsInclusiveScanNonUniform); + symbolTable.relateToOperator("minInvocationsExclusiveScanAMD", EOpMinInvocationsExclusiveScan); + symbolTable.relateToOperator("maxInvocationsExclusiveScanAMD", EOpMaxInvocationsExclusiveScan); + symbolTable.relateToOperator("addInvocationsExclusiveScanAMD", EOpAddInvocationsExclusiveScan); + symbolTable.relateToOperator("minInvocationsExclusiveScanNonUniformAMD", EOpMinInvocationsExclusiveScanNonUniform); + symbolTable.relateToOperator("maxInvocationsExclusiveScanNonUniformAMD", EOpMaxInvocationsExclusiveScanNonUniform); + symbolTable.relateToOperator("addInvocationsExclusiveScanNonUniformAMD", EOpAddInvocationsExclusiveScanNonUniform); + symbolTable.relateToOperator("swizzleInvocationsAMD", EOpSwizzleInvocations); + symbolTable.relateToOperator("swizzleInvocationsMaskedAMD", EOpSwizzleInvocationsMasked); + symbolTable.relateToOperator("writeInvocationAMD", EOpWriteInvocation); + symbolTable.relateToOperator("mbcntAMD", EOpMbcnt); symbolTable.relateToOperator("min3", EOpMin3); symbolTable.relateToOperator("max3", EOpMax3); @@ -5002,8 +8422,110 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("cubeFaceIndexAMD", EOpCubeFaceIndex); symbolTable.relateToOperator("cubeFaceCoordAMD", EOpCubeFaceCoord); symbolTable.relateToOperator("timeAMD", EOpTime); + + symbolTable.relateToOperator("textureGatherLodAMD", EOpTextureGatherLod); + symbolTable.relateToOperator("textureGatherLodOffsetAMD", EOpTextureGatherLodOffset); + symbolTable.relateToOperator("textureGatherLodOffsetsAMD", EOpTextureGatherLodOffsets); + symbolTable.relateToOperator("sparseTextureGatherLodAMD", EOpSparseTextureGatherLod); + symbolTable.relateToOperator("sparseTextureGatherLodOffsetAMD", EOpSparseTextureGatherLodOffset); + symbolTable.relateToOperator("sparseTextureGatherLodOffsetsAMD", EOpSparseTextureGatherLodOffsets); + + symbolTable.relateToOperator("imageLoadLodAMD", EOpImageLoadLod); + symbolTable.relateToOperator("imageStoreLodAMD", EOpImageStoreLod); + symbolTable.relateToOperator("sparseImageLoadLodAMD", EOpSparseImageLoadLod); + + symbolTable.relateToOperator("fragmentMaskFetchAMD", EOpFragmentMaskFetch); + symbolTable.relateToOperator("fragmentFetchAMD", EOpFragmentFetch); #endif } + + // GL_KHR_shader_subgroup + if (spvVersion.vulkan > 0) { + symbolTable.relateToOperator("subgroupBarrier", EOpSubgroupBarrier); + symbolTable.relateToOperator("subgroupMemoryBarrier", EOpSubgroupMemoryBarrier); + symbolTable.relateToOperator("subgroupMemoryBarrierBuffer", EOpSubgroupMemoryBarrierBuffer); + symbolTable.relateToOperator("subgroupMemoryBarrierImage", EOpSubgroupMemoryBarrierImage); + symbolTable.relateToOperator("subgroupElect", EOpSubgroupElect); + symbolTable.relateToOperator("subgroupAll", EOpSubgroupAll); + symbolTable.relateToOperator("subgroupAny", EOpSubgroupAny); + symbolTable.relateToOperator("subgroupAllEqual", EOpSubgroupAllEqual); + symbolTable.relateToOperator("subgroupBroadcast", EOpSubgroupBroadcast); + symbolTable.relateToOperator("subgroupBroadcastFirst", EOpSubgroupBroadcastFirst); + symbolTable.relateToOperator("subgroupBallot", EOpSubgroupBallot); + symbolTable.relateToOperator("subgroupInverseBallot", EOpSubgroupInverseBallot); + symbolTable.relateToOperator("subgroupBallotBitExtract", EOpSubgroupBallotBitExtract); + symbolTable.relateToOperator("subgroupBallotBitCount", EOpSubgroupBallotBitCount); + symbolTable.relateToOperator("subgroupBallotInclusiveBitCount", EOpSubgroupBallotInclusiveBitCount); + symbolTable.relateToOperator("subgroupBallotExclusiveBitCount", EOpSubgroupBallotExclusiveBitCount); + symbolTable.relateToOperator("subgroupBallotFindLSB", EOpSubgroupBallotFindLSB); + symbolTable.relateToOperator("subgroupBallotFindMSB", EOpSubgroupBallotFindMSB); + symbolTable.relateToOperator("subgroupShuffle", EOpSubgroupShuffle); + symbolTable.relateToOperator("subgroupShuffleXor", EOpSubgroupShuffleXor); + symbolTable.relateToOperator("subgroupShuffleUp", EOpSubgroupShuffleUp); + symbolTable.relateToOperator("subgroupShuffleDown", EOpSubgroupShuffleDown); + symbolTable.relateToOperator("subgroupAdd", EOpSubgroupAdd); + symbolTable.relateToOperator("subgroupMul", EOpSubgroupMul); + symbolTable.relateToOperator("subgroupMin", EOpSubgroupMin); + symbolTable.relateToOperator("subgroupMax", EOpSubgroupMax); + symbolTable.relateToOperator("subgroupAnd", EOpSubgroupAnd); + symbolTable.relateToOperator("subgroupOr", EOpSubgroupOr); + symbolTable.relateToOperator("subgroupXor", EOpSubgroupXor); + symbolTable.relateToOperator("subgroupInclusiveAdd", EOpSubgroupInclusiveAdd); + symbolTable.relateToOperator("subgroupInclusiveMul", EOpSubgroupInclusiveMul); + symbolTable.relateToOperator("subgroupInclusiveMin", EOpSubgroupInclusiveMin); + symbolTable.relateToOperator("subgroupInclusiveMax", EOpSubgroupInclusiveMax); + symbolTable.relateToOperator("subgroupInclusiveAnd", EOpSubgroupInclusiveAnd); + symbolTable.relateToOperator("subgroupInclusiveOr", EOpSubgroupInclusiveOr); + symbolTable.relateToOperator("subgroupInclusiveXor", EOpSubgroupInclusiveXor); + symbolTable.relateToOperator("subgroupExclusiveAdd", EOpSubgroupExclusiveAdd); + symbolTable.relateToOperator("subgroupExclusiveMul", EOpSubgroupExclusiveMul); + symbolTable.relateToOperator("subgroupExclusiveMin", EOpSubgroupExclusiveMin); + symbolTable.relateToOperator("subgroupExclusiveMax", EOpSubgroupExclusiveMax); + symbolTable.relateToOperator("subgroupExclusiveAnd", EOpSubgroupExclusiveAnd); + symbolTable.relateToOperator("subgroupExclusiveOr", EOpSubgroupExclusiveOr); + symbolTable.relateToOperator("subgroupExclusiveXor", EOpSubgroupExclusiveXor); + symbolTable.relateToOperator("subgroupClusteredAdd", EOpSubgroupClusteredAdd); + symbolTable.relateToOperator("subgroupClusteredMul", EOpSubgroupClusteredMul); + symbolTable.relateToOperator("subgroupClusteredMin", EOpSubgroupClusteredMin); + symbolTable.relateToOperator("subgroupClusteredMax", EOpSubgroupClusteredMax); + symbolTable.relateToOperator("subgroupClusteredAnd", EOpSubgroupClusteredAnd); + symbolTable.relateToOperator("subgroupClusteredOr", EOpSubgroupClusteredOr); + symbolTable.relateToOperator("subgroupClusteredXor", EOpSubgroupClusteredXor); + symbolTable.relateToOperator("subgroupQuadBroadcast", EOpSubgroupQuadBroadcast); + symbolTable.relateToOperator("subgroupQuadSwapHorizontal", EOpSubgroupQuadSwapHorizontal); + symbolTable.relateToOperator("subgroupQuadSwapVertical", EOpSubgroupQuadSwapVertical); + symbolTable.relateToOperator("subgroupQuadSwapDiagonal", EOpSubgroupQuadSwapDiagonal); + +#ifdef NV_EXTENSIONS + symbolTable.relateToOperator("subgroupPartitionNV", EOpSubgroupPartition); + symbolTable.relateToOperator("subgroupPartitionedAddNV", EOpSubgroupPartitionedAdd); + symbolTable.relateToOperator("subgroupPartitionedMulNV", EOpSubgroupPartitionedMul); + symbolTable.relateToOperator("subgroupPartitionedMinNV", EOpSubgroupPartitionedMin); + symbolTable.relateToOperator("subgroupPartitionedMaxNV", EOpSubgroupPartitionedMax); + symbolTable.relateToOperator("subgroupPartitionedAndNV", EOpSubgroupPartitionedAnd); + symbolTable.relateToOperator("subgroupPartitionedOrNV", EOpSubgroupPartitionedOr); + symbolTable.relateToOperator("subgroupPartitionedXorNV", EOpSubgroupPartitionedXor); + symbolTable.relateToOperator("subgroupPartitionedInclusiveAddNV", EOpSubgroupPartitionedInclusiveAdd); + symbolTable.relateToOperator("subgroupPartitionedInclusiveMulNV", EOpSubgroupPartitionedInclusiveMul); + symbolTable.relateToOperator("subgroupPartitionedInclusiveMinNV", EOpSubgroupPartitionedInclusiveMin); + symbolTable.relateToOperator("subgroupPartitionedInclusiveMaxNV", EOpSubgroupPartitionedInclusiveMax); + symbolTable.relateToOperator("subgroupPartitionedInclusiveAndNV", EOpSubgroupPartitionedInclusiveAnd); + symbolTable.relateToOperator("subgroupPartitionedInclusiveOrNV", EOpSubgroupPartitionedInclusiveOr); + symbolTable.relateToOperator("subgroupPartitionedInclusiveXorNV", EOpSubgroupPartitionedInclusiveXor); + symbolTable.relateToOperator("subgroupPartitionedExclusiveAddNV", EOpSubgroupPartitionedExclusiveAdd); + symbolTable.relateToOperator("subgroupPartitionedExclusiveMulNV", EOpSubgroupPartitionedExclusiveMul); + symbolTable.relateToOperator("subgroupPartitionedExclusiveMinNV", EOpSubgroupPartitionedExclusiveMin); + symbolTable.relateToOperator("subgroupPartitionedExclusiveMaxNV", EOpSubgroupPartitionedExclusiveMax); + symbolTable.relateToOperator("subgroupPartitionedExclusiveAndNV", EOpSubgroupPartitionedExclusiveAnd); + symbolTable.relateToOperator("subgroupPartitionedExclusiveOrNV", EOpSubgroupPartitionedExclusiveOr); + symbolTable.relateToOperator("subgroupPartitionedExclusiveXorNV", EOpSubgroupPartitionedExclusiveXor); +#endif + } + + if (profile == EEsProfile) { + symbolTable.relateToOperator("shadow2DEXT", EOpTexture); + symbolTable.relateToOperator("shadow2DProjEXT", EOpTextureProj); + } } switch(language) { @@ -5040,12 +8562,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion #ifdef AMD_EXTENSIONS if (profile != EEsProfile) symbolTable.relateToOperator("interpolateAtVertexAMD", EOpInterpolateAtVertex); - break; #endif + break; case EShLangCompute: - symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); - symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); + symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); + symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier); + symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared); break; default: @@ -5055,7 +8578,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion // // 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 +// 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. @@ -5081,9 +8604,9 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion if (version == 100 || IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && profile != EEsProfile && version < 420)) { TPrecisionQualifier pq = profile == EEsProfile ? EpqMedium : EpqNone; TType fragData(EbtFloat, EvqFragColor, pq, 4); - TArraySizes& arraySizes = *new TArraySizes; - arraySizes.addInnerSize(resources.maxDrawBuffers); - fragData.newArraySizes(arraySizes); + TArraySizes* arraySizes = new TArraySizes; + arraySizes->addInnerSize(resources.maxDrawBuffers); + fragData.transferArraySizes(arraySizes); symbolTable.insert(*new TVariable(NewPoolTString("gl_FragData"), fragData)); SpecialQualifier("gl_FragData", EvqFragColor, EbvFragData, symbolTable); } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Initialize.h b/deps/glslang/glslang/glslang/MachineIndependent/Initialize.h index a61c6b408a..b5de324233 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/Initialize.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/Initialize.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013-2016 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013-2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _INITIALIZE_INCLUDED_ @@ -67,7 +67,6 @@ public: virtual const TString& getStageString(EShLanguage language) const { return stageBuiltins[language]; } virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable) = 0; - virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) = 0; protected: @@ -89,16 +88,15 @@ public: 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); protected: void add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion); - void addSubpassSampling(TSampler, TString& typeName, int version, EProfile profile); - void addQueryFunctions(TSampler, TString& typeName, int version, EProfile profile); - void addImageFunctions(TSampler, TString& typeName, int version, EProfile profile); - void addSamplingFunctions(TSampler, TString& typeName, int version, EProfile profile); - void addGatherFunctions(TSampler, TString& typeName, int version, EProfile profile); + void addSubpassSampling(TSampler, const TString& typeName, int version, EProfile profile); + void addQueryFunctions(TSampler, const TString& typeName, int version, EProfile profile); + void addImageFunctions(TSampler, const TString& typeName, int version, EProfile profile); + void addSamplingFunctions(TSampler, const TString& typeName, int version, EProfile profile); + void addGatherFunctions(TSampler, const TString& typeName, int version, EProfile profile); // Helpers for making textual representations of the permutations // of texturing/imaging functions. @@ -107,7 +105,6 @@ protected: int dimMap[EsdNumDims]; }; - } // end namespace glslang #endif // _INITIALIZE_INCLUDED_ diff --git a/deps/glslang/glslang/glslang/MachineIndependent/IntermTraverse.cpp b/deps/glslang/glslang/glslang/MachineIndependent/IntermTraverse.cpp index b910f47388..f46010b712 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/IntermTraverse.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/IntermTraverse.cpp @@ -1,13 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. -//Copyright (c) 2002-2010 The ANGLE Project Authors. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. +// Copyright (c) 2002-2010 The ANGLE Project Authors. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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/intermediate.h" diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Intermediate.cpp b/deps/glslang/glslang/glslang/MachineIndependent/Intermediate.cpp index 9b6d4c627f..de722179c7 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/Intermediate.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/Intermediate.cpp @@ -1,13 +1,14 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2015 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2015 LunarG, Inc. +// Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +22,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -46,6 +47,7 @@ #include #include +#include namespace glslang { @@ -118,20 +120,17 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn return nullptr; // Try converting the children's base types to compatible types. - TIntermTyped* child = addConversion(op, left->getType(), right); - if (child) - right = child; - else { - child = addConversion(op, right->getType(), left); - if (child) - left = child; - else - return nullptr; - } + auto children = addConversion(op, left, right); + left = std::get<0>(children); + right = std::get<1>(children); + + if (left == nullptr || right == nullptr) + return nullptr; // Convert the children's type shape to be compatible. - right = addShapeConversion(op, left->getType(), right); - left = addShapeConversion(op, right->getType(), left); + addBiShapeConversion(op, left, right); + if (left == nullptr || right == nullptr) + return nullptr; // // Need a new node holding things together. Make @@ -147,22 +146,23 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // If they are both (non-specialization) constants, they must be folded. // (Unless it's the sequence (comma) operator, but that's handled in addComma().) // - TIntermConstantUnion *leftTempConstant = left->getAsConstantUnion(); - TIntermConstantUnion *rightTempConstant = right->getAsConstantUnion(); + TIntermConstantUnion *leftTempConstant = node->getLeft()->getAsConstantUnion(); + TIntermConstantUnion *rightTempConstant = node->getRight()->getAsConstantUnion(); if (leftTempConstant && rightTempConstant) { TIntermTyped* folded = leftTempConstant->fold(node->getOp(), rightTempConstant); if (folded) return folded; } - // If either is a specialization constant, while the other is - // a constant (or specialization constant), the result is still - // a specialization constant, if the operation is an allowed - // specialization-constant operation. - if (( left->getType().getQualifier().isSpecConstant() && right->getType().getQualifier().isConstant()) || - (right->getType().getQualifier().isSpecConstant() && left->getType().getQualifier().isConstant())) - if (isSpecializationOperation(*node)) - node->getWritableType().getQualifier().makeSpecConstant(); + // If can propagate spec-constantness and if the operation is an allowed + // specialization-constant operation, make a spec-constant. + if (specConstantPropagates(*node->getLeft(), *node->getRight()) && isSpecializationOperation(*node)) + node->getWritableType().getQualifier().makeSpecConstant(); + + // If must propagate nonuniform, make a nonuniform. + if ((node->getLeft()->getQualifier().nonUniform || node->getRight()->getQualifier().nonUniform) && + isNonuniformPropagating(node->getOp())) + node->getWritableType().getQualifier().nonUniform = true; return node; } @@ -192,7 +192,7 @@ TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TI node->setType(type); return node; } - + // // Low level: add unary node (no promotions or other argument modifications) // @@ -242,7 +242,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm return nullptr; // convert shape - right = addShapeConversion(op, left->getType(), right); + right = addUniShapeConversion(op, left->getType(), right); // build the node TIntermBinary* node = addBinaryNode(op, left, right, loc); @@ -286,7 +286,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo if (source == EShSourceHlsl) { break; // HLSL can promote logical not } - + if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) { return nullptr; } @@ -307,6 +307,10 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TBasicType newType = EbtVoid; switch (op) { + case EOpConstructInt8: newType = EbtInt8; break; + case EOpConstructUint8: newType = EbtUint8; break; + case EOpConstructInt16: newType = EbtInt16; break; + case EOpConstructUint16: newType = EbtUint16; break; case EOpConstructInt: newType = EbtInt; break; case EOpConstructUint: newType = EbtUint; break; case EOpConstructInt64: newType = EbtInt64; break; @@ -314,9 +318,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: newType = EbtBool; break; case EOpConstructFloat: newType = EbtFloat; break; case EOpConstructDouble: newType = EbtDouble; break; -#ifdef AMD_EXTENSIONS case EOpConstructFloat16: newType = EbtFloat16; break; -#endif default: break; // some compilers want this } @@ -335,6 +337,10 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TODO: but, did this bypass constant folding? // switch (op) { + case EOpConstructInt8: + case EOpConstructUint8: + case EOpConstructInt16: + case EOpConstructUint16: case EOpConstructInt: case EOpConstructUint: case EOpConstructInt64: @@ -342,9 +348,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: case EOpConstructFloat: case EOpConstructDouble: -#ifdef AMD_EXTENSIONS case EOpConstructFloat16: -#endif return child; default: break; // some compilers want this } @@ -360,18 +364,23 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo node->updatePrecision(); // If it's a (non-specialization) constant, it must be folded. - if (child->getAsConstantUnion()) - return child->getAsConstantUnion()->fold(op, node->getType()); + if (node->getOperand()->getAsConstantUnion()) + return node->getOperand()->getAsConstantUnion()->fold(op, node->getType()); // If it's a specialization constant, the result is too, // if the operation is allowed for specialization constants. - if (child->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*node)) + if (node->getOperand()->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*node)) node->getWritableType().getQualifier().makeSpecConstant(); + // If must propagate nonuniform, make a nonuniform. + if (node->getOperand()->getQualifier().nonUniform && isNonuniformPropagating(node->getOp())) + node->getWritableType().getQualifier().nonUniform = true; + return node; } -TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOperator op, bool unary, TIntermNode* childNode, const TType& returnType) +TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOperator op, bool unary, + TIntermNode* childNode, const TType& returnType) { if (unary) { // @@ -415,7 +424,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o // // Make sure we have an aggregate. If not turn it into one. // - if (node) { + if (node != nullptr) { aggNode = node->getAsAggregate(); if (aggNode == nullptr || aggNode->getOp() != EOpNull) { // @@ -441,27 +450,14 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o return fold(aggNode); } -// -// Convert the node's type to the given type, as allowed by the operation involved: 'op'. -// For implicit conversions, 'op' is not the requested conversion, it is the explicit -// operation requiring the implicit conversion. -// -// Returns a node representing the conversion, which could be the same -// node passed in if no conversion was needed. -// -// Generally, this is focused on basic type conversion, not shape conversion. -// See addShapeConversion(). -// -// Return nullptr if a conversion can't be done. -// -TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const +bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const { // // Does the base type even allow the operation? // switch (node->getBasicType()) { case EbtVoid: - return nullptr; + return false; case EbtAtomicUint: case EbtSampler: // opaque types can be passed to functions @@ -474,16 +470,401 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // samplers can get assigned via a sampler constructor // (well, not yet, but code in the rest of this function is ready for it) - if (node->getBasicType() == EbtSampler && op == EOpAssign && + if (node->getBasicType() == EbtSampler && op == EOpAssign && node->getAsOperator() != nullptr && node->getAsOperator()->getOp() == EOpConstructTextureSampler) break; // otherwise, opaque types can't even be operated on, let alone converted - return nullptr; + return false; default: break; } + return true; +} + +// This is 'mechanism' here, it does any conversion told. +// It is about basic type, not about shape. +// The policy comes from the shader or the calling code. +TIntermUnary* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const +{ + // + // Add a new newNode for the conversion. + // + TIntermUnary* newNode = nullptr; + + TOperator newOp = EOpNull; + + switch (convertTo) { + case EbtDouble: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToDouble; break; + case EbtUint8: newOp = EOpConvUint8ToDouble; break; + case EbtInt16: newOp = EOpConvInt16ToDouble; break; + case EbtUint16: newOp = EOpConvUint16ToDouble; break; + case EbtInt: newOp = EOpConvIntToDouble; break; + case EbtUint: newOp = EOpConvUintToDouble; break; + case EbtBool: newOp = EOpConvBoolToDouble; break; + case EbtFloat: newOp = EOpConvFloatToDouble; break; + case EbtFloat16: newOp = EOpConvFloat16ToDouble; break; + case EbtInt64: newOp = EOpConvInt64ToDouble; break; + case EbtUint64: newOp = EOpConvUint64ToDouble; break; + default: + return nullptr; + } + break; + case EbtFloat: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToFloat; break; + case EbtUint8: newOp = EOpConvUint8ToFloat; break; + case EbtInt16: newOp = EOpConvInt16ToFloat; break; + case EbtUint16: newOp = EOpConvUint16ToFloat; break; + case EbtInt: newOp = EOpConvIntToFloat; break; + case EbtUint: newOp = EOpConvUintToFloat; break; + case EbtBool: newOp = EOpConvBoolToFloat; break; + case EbtDouble: newOp = EOpConvDoubleToFloat; break; + case EbtFloat16: newOp = EOpConvFloat16ToFloat; break; + case EbtInt64: newOp = EOpConvInt64ToFloat; break; + case EbtUint64: newOp = EOpConvUint64ToFloat; break; + default: + return nullptr; + } + break; + case EbtFloat16: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToFloat16; break; + case EbtUint8: newOp = EOpConvUint8ToFloat16; break; + case EbtInt16: newOp = EOpConvInt16ToFloat16; break; + case EbtUint16: newOp = EOpConvUint16ToFloat16; break; + case EbtInt: newOp = EOpConvIntToFloat16; break; + case EbtUint: newOp = EOpConvUintToFloat16; break; + case EbtBool: newOp = EOpConvBoolToFloat16; break; + case EbtFloat: newOp = EOpConvFloatToFloat16; break; + case EbtDouble: newOp = EOpConvDoubleToFloat16; break; + case EbtInt64: newOp = EOpConvInt64ToFloat16; break; + case EbtUint64: newOp = EOpConvUint64ToFloat16; break; + default: + return nullptr; + } + break; + case EbtBool: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToBool; break; + case EbtUint8: newOp = EOpConvUint8ToBool; break; + case EbtInt16: newOp = EOpConvInt16ToBool; break; + case EbtUint16: newOp = EOpConvUint16ToBool; break; + case EbtInt: newOp = EOpConvIntToBool; break; + case EbtUint: newOp = EOpConvUintToBool; break; + case EbtFloat: newOp = EOpConvFloatToBool; break; + case EbtDouble: newOp = EOpConvDoubleToBool; break; + case EbtFloat16: newOp = EOpConvFloat16ToBool; break; + case EbtInt64: newOp = EOpConvInt64ToBool; break; + case EbtUint64: newOp = EOpConvUint64ToBool; break; + default: + return nullptr; + } + break; + case EbtInt8: + switch (node->getBasicType()) { + case EbtUint8: newOp = EOpConvUint8ToInt8; break; + case EbtInt16: newOp = EOpConvInt16ToInt8; break; + case EbtUint16: newOp = EOpConvUint16ToInt8; break; + case EbtInt: newOp = EOpConvIntToInt8; break; + case EbtUint: newOp = EOpConvUintToInt8; break; + case EbtInt64: newOp = EOpConvInt64ToInt8; break; + case EbtUint64: newOp = EOpConvUint64ToInt8; break; + case EbtBool: newOp = EOpConvBoolToInt8; break; + case EbtFloat: newOp = EOpConvFloatToInt8; break; + case EbtDouble: newOp = EOpConvDoubleToInt8; break; + case EbtFloat16: newOp = EOpConvFloat16ToInt8; break; + default: + return nullptr; + } + break; + case EbtUint8: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToUint8; break; + case EbtInt16: newOp = EOpConvInt16ToUint8; break; + case EbtUint16: newOp = EOpConvUint16ToUint8; break; + case EbtInt: newOp = EOpConvIntToUint8; break; + case EbtUint: newOp = EOpConvUintToUint8; break; + case EbtInt64: newOp = EOpConvInt64ToUint8; break; + case EbtUint64: newOp = EOpConvUint64ToUint8; break; + case EbtBool: newOp = EOpConvBoolToUint8; break; + case EbtFloat: newOp = EOpConvFloatToUint8; break; + case EbtDouble: newOp = EOpConvDoubleToUint8; break; + case EbtFloat16: newOp = EOpConvFloat16ToUint8; break; + default: + return nullptr; + } + break; + + case EbtInt16: + switch (node->getBasicType()) { + case EbtUint8: newOp = EOpConvUint8ToInt16; break; + case EbtInt8: newOp = EOpConvInt8ToInt16; break; + case EbtUint16: newOp = EOpConvUint16ToInt16; break; + case EbtInt: newOp = EOpConvIntToInt16; break; + case EbtUint: newOp = EOpConvUintToInt16; break; + case EbtInt64: newOp = EOpConvInt64ToInt16; break; + case EbtUint64: newOp = EOpConvUint64ToInt16; break; + case EbtBool: newOp = EOpConvBoolToInt16; break; + case EbtFloat: newOp = EOpConvFloatToInt16; break; + case EbtDouble: newOp = EOpConvDoubleToInt16; break; + case EbtFloat16: newOp = EOpConvFloat16ToInt16; break; + default: + return nullptr; + } + break; + case EbtUint16: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToUint16; break; + case EbtUint8: newOp = EOpConvUint8ToUint16; break; + case EbtInt16: newOp = EOpConvInt16ToUint16; break; + case EbtInt: newOp = EOpConvIntToUint16; break; + case EbtUint: newOp = EOpConvUintToUint16; break; + case EbtInt64: newOp = EOpConvInt64ToUint16; break; + case EbtUint64: newOp = EOpConvUint64ToUint16; break; + case EbtBool: newOp = EOpConvBoolToUint16; break; + case EbtFloat: newOp = EOpConvFloatToUint16; break; + case EbtDouble: newOp = EOpConvDoubleToUint16; break; + case EbtFloat16: newOp = EOpConvFloat16ToUint16; break; + default: + return nullptr; + } + break; + + case EbtInt: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToInt; break; + case EbtUint8: newOp = EOpConvUint8ToInt; break; + case EbtInt16: newOp = EOpConvInt16ToInt; break; + case EbtUint16: newOp = EOpConvUint16ToInt; break; + case EbtUint: newOp = EOpConvUintToInt; break; + case EbtBool: newOp = EOpConvBoolToInt; break; + case EbtFloat: newOp = EOpConvFloatToInt; break; + case EbtDouble: newOp = EOpConvDoubleToInt; break; + case EbtFloat16: newOp = EOpConvFloat16ToInt; break; + case EbtInt64: newOp = EOpConvInt64ToInt; break; + case EbtUint64: newOp = EOpConvUint64ToInt; break; + default: + return nullptr; + } + break; + case EbtUint: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToUint; break; + case EbtUint8: newOp = EOpConvUint8ToUint; break; + case EbtInt16: newOp = EOpConvInt16ToUint; break; + case EbtUint16: newOp = EOpConvUint16ToUint; break; + case EbtInt: newOp = EOpConvIntToUint; break; + case EbtBool: newOp = EOpConvBoolToUint; break; + case EbtFloat: newOp = EOpConvFloatToUint; break; + case EbtDouble: newOp = EOpConvDoubleToUint; break; + case EbtFloat16: newOp = EOpConvFloat16ToUint; break; + case EbtInt64: newOp = EOpConvInt64ToUint; break; + case EbtUint64: newOp = EOpConvUint64ToUint; break; + default: + return nullptr; + } + break; + case EbtInt64: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToInt64; break; + case EbtUint8: newOp = EOpConvUint8ToInt64; break; + case EbtInt16: newOp = EOpConvInt16ToInt64; break; + case EbtUint16: newOp = EOpConvUint16ToInt64; break; + case EbtInt: newOp = EOpConvIntToInt64; break; + case EbtUint: newOp = EOpConvUintToInt64; break; + case EbtBool: newOp = EOpConvBoolToInt64; break; + case EbtFloat: newOp = EOpConvFloatToInt64; break; + case EbtDouble: newOp = EOpConvDoubleToInt64; break; + case EbtFloat16: newOp = EOpConvFloat16ToInt64; break; + case EbtUint64: newOp = EOpConvUint64ToInt64; break; + default: + return nullptr; + } + break; + case EbtUint64: + switch (node->getBasicType()) { + case EbtInt8: newOp = EOpConvInt8ToUint64; break; + case EbtUint8: newOp = EOpConvUint8ToUint64; break; + case EbtInt16: newOp = EOpConvInt16ToUint64; break; + case EbtUint16: newOp = EOpConvUint16ToUint64; break; + case EbtInt: newOp = EOpConvIntToUint64; break; + case EbtUint: newOp = EOpConvUintToUint64; break; + case EbtBool: newOp = EOpConvBoolToUint64; break; + case EbtFloat: newOp = EOpConvFloatToUint64; break; + case EbtDouble: newOp = EOpConvDoubleToUint64; break; + case EbtFloat16: newOp = EOpConvFloat16ToUint64; break; + case EbtInt64: newOp = EOpConvInt64ToUint64; break; + default: + return nullptr; + } + break; + default: + return nullptr; + } + + TType newType(convertTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); + newNode = addUnaryNode(newOp, node, node->getLoc(), newType); + + // TODO: it seems that some unary folding operations should occur here, but are not + + // Propagate specialization-constant-ness, if allowed + if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode)) + newNode->getWritableType().getQualifier().makeSpecConstant(); + + return newNode; +} + +// For converting a pair of operands to a binary operation to compatible +// types with each other, relative to the operation in 'op'. +// This does not cover assignment operations, which is asymmetric in that the +// left type is not changeable. +// See addConversion(op, type, node) for assignments and unary operation +// conversions. +// +// Generally, this is focused on basic type conversion, not shape conversion. +// See addShapeConversion() for shape conversions. +// +// Returns the converted pair of nodes. +// Returns when there is no conversion. +std::tuple +TIntermediate::addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* node1) const +{ + if (!isConversionAllowed(op, node0) || !isConversionAllowed(op, node1)) + return std::make_tuple(nullptr, nullptr); + + if (node0->getType() != node1->getType()) { + // If differing structure, then no conversions. + if (node0->isStruct() || node1->isStruct()) + return std::make_tuple(nullptr, nullptr); + + // If differing arrays, then no conversions. + if (node0->getType().isArray() || node1->getType().isArray()) + return std::make_tuple(nullptr, nullptr); + } + + auto promoteTo = std::make_tuple(EbtNumTypes, EbtNumTypes); + + switch (op) { + // + // List all the binary ops that can implicitly convert one operand to the other's type; + // This implements the 'policy' for implicit type conversion. + // + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + case EOpEqual: + case EOpNotEqual: + + case EOpAdd: + case EOpSub: + case EOpMul: + case EOpDiv: + case EOpMod: + + case EOpVectorTimesScalar: + case EOpVectorTimesMatrix: + case EOpMatrixTimesVector: + case EOpMatrixTimesScalar: + + case EOpAnd: + case EOpInclusiveOr: + case EOpExclusiveOr: + + case EOpSequence: // used by ?: + + if (node0->getBasicType() == node1->getBasicType()) + return std::make_tuple(node0, node1); + + promoteTo = getConversionDestinatonType(node0->getBasicType(), node1->getBasicType(), op); + if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes) + return std::make_tuple(nullptr, nullptr); + + break; + + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: + if (source == EShSourceHlsl) + promoteTo = std::make_tuple(EbtBool, EbtBool); + else + return std::make_tuple(node0, node1); + break; + + // There are no conversions needed for GLSL; the shift amount just needs to be an + // integer type, as does the base. + // HLSL can promote bools to ints to make this work. + case EOpLeftShift: + case EOpRightShift: + if (source == EShSourceHlsl) { + TBasicType node0BasicType = node0->getBasicType(); + if (node0BasicType == EbtBool) + node0BasicType = EbtInt; + if (node1->getBasicType() == EbtBool) + promoteTo = std::make_tuple(node0BasicType, EbtInt); + else + promoteTo = std::make_tuple(node0BasicType, node1->getBasicType()); + } else { + if (isTypeInt(node0->getBasicType()) && isTypeInt(node1->getBasicType())) + return std::make_tuple(node0, node1); + else + return std::make_tuple(nullptr, nullptr); + } + break; + + default: + if (node0->getType() == node1->getType()) + return std::make_tuple(node0, node1); + + return std::make_tuple(nullptr, nullptr); + } + + TIntermTyped* newNode0; + TIntermTyped* newNode1; + + if (std::get<0>(promoteTo) != node0->getType().getBasicType()) { + if (node0->getAsConstantUnion()) + newNode0 = promoteConstantUnion(std::get<0>(promoteTo), node0->getAsConstantUnion()); + else + newNode0 = createConversion(std::get<0>(promoteTo), node0); + } else + newNode0 = node0; + + if (std::get<1>(promoteTo) != node1->getType().getBasicType()) { + if (node1->getAsConstantUnion()) + newNode1 = promoteConstantUnion(std::get<1>(promoteTo), node1->getAsConstantUnion()); + else + newNode1 = createConversion(std::get<1>(promoteTo), node1); + } else + newNode1 = node1; + + return std::make_tuple(newNode0, newNode1); +} + +// +// Convert the node's type to the given type, as allowed by the operation involved: 'op'. +// For implicit conversions, 'op' is not the requested conversion, it is the explicit +// operation requiring the implicit conversion. +// +// Binary operation conversions should be handled by addConversion(op, node, node), not here. +// +// Returns a node representing the conversion, which could be the same +// node passed in if no conversion was needed. +// +// Generally, this is focused on basic type conversion, not shape conversion. +// See addShapeConversion() for shape conversions. +// +// Return nullptr if a conversion can't be done. +// +TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const +{ + if (!isConversionAllowed(op, node)) + return nullptr; + // Otherwise, if types are identical, no problem if (type == node->getType()) return node; @@ -514,11 +895,21 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpConstructDouble: promoteTo = EbtDouble; break; -#ifdef AMD_EXTENSIONS case EOpConstructFloat16: promoteTo = EbtFloat16; break; -#endif + case EOpConstructInt8: + promoteTo = EbtInt8; + break; + case EOpConstructUint8: + promoteTo = EbtUint8; + break; + case EOpConstructInt16: + promoteTo = EbtInt16; + break; + case EOpConstructUint16: + promoteTo = EbtUint16; + break; case EOpConstructInt: promoteTo = EbtInt; break; @@ -532,40 +923,10 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt promoteTo = EbtUint64; break; - // - // List all the binary ops that can implicitly convert one operand to the other's type; - // This implements the 'policy' for implicit type conversion. - // - case EOpLessThan: - case EOpGreaterThan: - case EOpLessThanEqual: - case EOpGreaterThanEqual: - case EOpEqual: - case EOpNotEqual: - - case EOpAdd: - case EOpSub: - case EOpMul: - case EOpDiv: - case EOpMod: - - case EOpVectorTimesScalar: - case EOpVectorTimesMatrix: - case EOpMatrixTimesVector: - case EOpMatrixTimesScalar: - - case EOpAnd: - case EOpInclusiveOr: - case EOpExclusiveOr: - case EOpAndAssign: - case EOpInclusiveOrAssign: - case EOpExclusiveOrAssign: case EOpLogicalNot: - case EOpLogicalAnd: - case EOpLogicalOr: - case EOpLogicalXor: case EOpFunctionCall: + case EOpReturn: case EOpAssign: case EOpAddAssign: @@ -575,6 +936,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpMatrixTimesScalarAssign: case EOpDivAssign: case EOpModAssign: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: case EOpAtan: case EOpClamp: @@ -603,32 +967,28 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt if (type.getBasicType() == node->getType().getBasicType()) return node; - if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op)) + if (canImplicitlyPromote(node->getBasicType(), type.getBasicType(), op)) promoteTo = type.getBasicType(); else - return nullptr; - + return nullptr; break; - // Shifts can have mixed types as long as they are integer, without converting. - // It's the left operand's type that determines the resulting type, so no issue - // with assign shift ops either. - case EOpLeftShift: - case EOpRightShift: + // For GLSL, there are no conversions needed; the shift amount just needs to be an + // integer type, as do the base/result. + // HLSL can convert the shift from a bool to an int. case EOpLeftShiftAssign: case EOpRightShiftAssign: - if ((type.getBasicType() == EbtInt || - type.getBasicType() == EbtUint || - type.getBasicType() == EbtInt64 || - type.getBasicType() == EbtUint64) && - (node->getType().getBasicType() == EbtInt || - node->getType().getBasicType() == EbtUint || - node->getType().getBasicType() == EbtInt64 || - node->getType().getBasicType() == EbtUint64)) - - return node; - else - return nullptr; + { + if (source == EShSourceHlsl && node->getType().getBasicType() == EbtBool) + promoteTo = type.getBasicType(); + else { + if (isTypeInt(type.getBasicType()) && isTypeInt(node->getBasicType())) + return node; + else + return nullptr; + } + break; + } default: // default is to require a match; all exceptions should have case statements above @@ -645,151 +1005,16 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // // Add a new newNode for the conversion. // - TIntermUnary* newNode = nullptr; - - TOperator newOp = EOpNull; - - // This is 'mechanism' here, it does any conversion told. The policy comes - // from the shader or the above code. - switch (promoteTo) { - case EbtDouble: - switch (node->getBasicType()) { - case EbtInt: newOp = EOpConvIntToDouble; break; - case EbtUint: newOp = EOpConvUintToDouble; break; - case EbtBool: newOp = EOpConvBoolToDouble; break; - case EbtFloat: newOp = EOpConvFloatToDouble; break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: newOp = EOpConvFloat16ToDouble; break; -#endif - case EbtInt64: newOp = EOpConvInt64ToDouble; break; - case EbtUint64: newOp = EOpConvUint64ToDouble; break; - default: - return nullptr; - } - break; - case EbtFloat: - switch (node->getBasicType()) { - case EbtInt: newOp = EOpConvIntToFloat; break; - case EbtUint: newOp = EOpConvUintToFloat; break; - case EbtBool: newOp = EOpConvBoolToFloat; break; - case EbtDouble: newOp = EOpConvDoubleToFloat; break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: newOp = EOpConvFloat16ToFloat; break; -#endif - case EbtInt64: newOp = EOpConvInt64ToFloat; break; - case EbtUint64: newOp = EOpConvUint64ToFloat; break; - default: - return nullptr; - } - break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: - switch (node->getBasicType()) { - case EbtInt: newOp = EOpConvIntToFloat16; break; - case EbtUint: newOp = EOpConvUintToFloat16; break; - case EbtBool: newOp = EOpConvBoolToFloat16; break; - case EbtFloat: newOp = EOpConvFloatToFloat16; break; - case EbtDouble: newOp = EOpConvDoubleToFloat16; break; - case EbtInt64: newOp = EOpConvInt64ToFloat16; break; - case EbtUint64: newOp = EOpConvUint64ToFloat16; break; - default: - return nullptr; - } - break; -#endif - case EbtBool: - switch (node->getBasicType()) { - case EbtInt: newOp = EOpConvIntToBool; break; - case EbtUint: newOp = EOpConvUintToBool; break; - case EbtFloat: newOp = EOpConvFloatToBool; break; - case EbtDouble: newOp = EOpConvDoubleToBool; break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: newOp = EOpConvFloat16ToBool; break; -#endif - case EbtInt64: newOp = EOpConvInt64ToBool; break; - case EbtUint64: newOp = EOpConvUint64ToBool; break; - default: - return nullptr; - } - break; - case EbtInt: - switch (node->getBasicType()) { - case EbtUint: newOp = EOpConvUintToInt; break; - case EbtBool: newOp = EOpConvBoolToInt; break; - case EbtFloat: newOp = EOpConvFloatToInt; break; - case EbtDouble: newOp = EOpConvDoubleToInt; break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: newOp = EOpConvFloat16ToInt; break; -#endif - case EbtInt64: newOp = EOpConvInt64ToInt; break; - case EbtUint64: newOp = EOpConvUint64ToInt; break; - default: - return nullptr; - } - break; - case EbtUint: - switch (node->getBasicType()) { - case EbtInt: newOp = EOpConvIntToUint; break; - case EbtBool: newOp = EOpConvBoolToUint; break; - case EbtFloat: newOp = EOpConvFloatToUint; break; - case EbtDouble: newOp = EOpConvDoubleToUint; break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: newOp = EOpConvFloat16ToUint; break; -#endif - case EbtInt64: newOp = EOpConvInt64ToUint; break; - case EbtUint64: newOp = EOpConvUint64ToUint; break; - default: - return nullptr; - } - break; - case EbtInt64: - switch (node->getBasicType()) { - case EbtInt: newOp = EOpConvIntToInt64; break; - case EbtUint: newOp = EOpConvUintToInt64; break; - case EbtBool: newOp = EOpConvBoolToInt64; break; - case EbtFloat: newOp = EOpConvFloatToInt64; break; - case EbtDouble: newOp = EOpConvDoubleToInt64; break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: newOp = EOpConvFloat16ToInt64; break; -#endif - case EbtUint64: newOp = EOpConvUint64ToInt64; break; - default: - return nullptr; - } - break; - case EbtUint64: - switch (node->getBasicType()) { - case EbtInt: newOp = EOpConvIntToUint64; break; - case EbtUint: newOp = EOpConvUintToUint64; break; - case EbtBool: newOp = EOpConvBoolToUint64; break; - case EbtFloat: newOp = EOpConvFloatToUint64; break; - case EbtDouble: newOp = EOpConvDoubleToUint64; break; -#ifdef AMD_EXTENSIONS - case EbtFloat16: newOp = EOpConvFloat16ToUint64; break; -#endif - case EbtInt64: newOp = EOpConvInt64ToUint64; break; - default: - return nullptr; - } - break; - default: - return nullptr; - } - - TType newType(promoteTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); - newNode = addUnaryNode(newOp, node, node->getLoc(), newType); - - // TODO: it seems that some unary folding operations should occur here, but are not - - // Propagate specialization-constant-ness, if allowed - if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode)) - newNode->getWritableType().getQualifier().makeSpecConstant(); + TIntermUnary* newNode = createConversion(promoteTo, node); return newNode; } // Convert the node's shape of type for the given type, as allowed by the -// operation involved: 'op'. +// operation involved: 'op'. This is for situations where there is only one +// direction to consider doing the shape conversion. +// +// This implements policy, it call addShapeConversion() for the mechanism. // // Generally, the AST represents allowed GLSL shapes, so this isn't needed // for GLSL. Bad shapes are caught in conversion or promotion. @@ -797,7 +1022,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // Return 'node' if no conversion was done. Promotion handles final shape // checking. // -TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, TIntermTyped* node) +TIntermTyped* TIntermediate::addUniShapeConversion(TOperator op, const TType& type, TIntermTyped* node) { // some source languages don't do this switch (source) { @@ -810,23 +1035,141 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, // some operations don't do this switch (op) { + case EOpFunctionCall: + case EOpReturn: + break; + + case EOpMulAssign: + // want to support vector *= scalar native ops in AST and lower, not smear, similarly for + // matrix *= scalar, etc. + + case EOpAddAssign: + case EOpSubAssign: + case EOpDivAssign: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: + case EOpRightShiftAssign: + case EOpLeftShiftAssign: + if (node->getVectorSize() == 1) + return node; + break; + case EOpAssign: + break; + + case EOpMix: + break; + + default: + return node; + } + + return addShapeConversion(type, node); +} + +// Convert the nodes' shapes to be compatible for the operation 'op'. +// +// This implements policy, it call addShapeConversion() for the mechanism. +// +// Generally, the AST represents allowed GLSL shapes, so this isn't needed +// for GLSL. Bad shapes are caught in conversion or promotion. +// +void TIntermediate::addBiShapeConversion(TOperator op, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode) +{ + // some source languages don't do this + switch (source) { + case EShSourceHlsl: + break; + case EShSourceGlsl: + default: + return; + } + + // some operations don't do this + // 'break' will mean attempt bidirectional conversion + switch (op) { + case EOpMulAssign: + case EOpAssign: + case EOpAddAssign: + case EOpSubAssign: + case EOpDivAssign: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: + case EOpRightShiftAssign: + case EOpLeftShiftAssign: + // switch to unidirectional conversion (the lhs can't change) + rhsNode = addUniShapeConversion(op, lhsNode->getType(), rhsNode); + return; + + case EOpAdd: + case EOpSub: + case EOpMul: + case EOpDiv: + // want to support vector * scalar native ops in AST and lower, not smear, similarly for + // matrix * vector, etc. + if (lhsNode->getVectorSize() == 1 || rhsNode->getVectorSize() == 1) + return; + break; + + case EOpRightShift: + case EOpLeftShift: + // can natively support the right operand being a scalar and the left a vector, + // but not the reverse + if (rhsNode->getVectorSize() == 1) + return; + break; + case EOpLessThan: case EOpGreaterThan: case EOpLessThanEqual: case EOpGreaterThanEqual: + case EOpEqual: case EOpNotEqual: - case EOpFunctionCall: - case EOpReturn: + case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: + + case EOpAnd: + case EOpInclusiveOr: + case EOpExclusiveOr: + + case EOpMix: break; + default: - return node; + return; } + // Do bidirectional conversions + if (lhsNode->getType().isScalarOrVec1() || rhsNode->getType().isScalarOrVec1()) { + if (lhsNode->getType().isScalarOrVec1()) + lhsNode = addShapeConversion(rhsNode->getType(), lhsNode); + else + rhsNode = addShapeConversion(lhsNode->getType(), rhsNode); + } + lhsNode = addShapeConversion(rhsNode->getType(), lhsNode); + rhsNode = addShapeConversion(lhsNode->getType(), rhsNode); +} + +// Convert the node's shape of type for the given type, as allowed by the +// operation involved: 'op'. +// +// Generally, the AST represents allowed GLSL shapes, so this isn't needed +// for GLSL. Bad shapes are caught in conversion or promotion. +// +// Return 'node' if no conversion was done. Promotion handles final shape +// checking. +// +TIntermTyped* TIntermediate::addShapeConversion(const TType& type, TIntermTyped* node) +{ + // no conversion needed + if (node->getType() == type) + return node; + // structures and arrays don't change shape, either to or from if (node->getType().isStruct() || node->getType().isArray() || type.isStruct() || type.isArray()) @@ -835,17 +1178,203 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, // The new node that handles the conversion TOperator constructorOp = mapTypeToConstructorOp(type); - // scalar -> smeared -> vector, or - // vec1 -> scalar, or - // bigger vector -> smaller vector or scalar - if ((type.isVector() && node->getType().isScalar()) || - (node->getType().isVector() && node->getVectorSize() == 1 && type.isScalar()) || - (node->getVectorSize() > type.getVectorSize() && type.isVector())) + // HLSL has custom semantics for scalar->mat shape conversions. + if (source == EShSourceHlsl) { + if (node->getType().isScalarOrVec1() && type.isMatrix()) { + + // HLSL semantics: the scalar (or vec1) is replicated to every component of the matrix. Left to its + // own devices, the constructor from a scalar would populate the diagonal. This forces replication + // to every matrix element. + + // Note that if the node is complex (e.g, a function call), we don't want to duplicate it here + // repeatedly, so we copy it to a temp, then use the temp. + const int matSize = type.getMatrixRows() * type.getMatrixCols(); + TIntermAggregate* rhsAggregate = new TIntermAggregate(); + + const bool isSimple = (node->getAsSymbolNode() != nullptr) || (node->getAsConstantUnion() != nullptr); + + if (!isSimple) { + assert(0); // TODO: use node replicator service when available. + } + + for (int x=0; xgetSequence().push_back(node); + + return setAggregateOperator(rhsAggregate, constructorOp, type, node->getLoc()); + } + } + + // scalar -> vector or vec1 -> vector or + // vector -> scalar or + // bigger vector -> smaller vector + if ((node->getType().isScalarOrVec1() && type.isVector()) || + (node->getType().isVector() && type.isScalar()) || + (node->isVector() && type.isVector() && node->getVectorSize() > type.getVectorSize())) return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); return node; } +bool TIntermediate::isIntegralPromotion(TBasicType from, TBasicType to) const +{ + // integral promotions + if (to == EbtInt) { + switch(from) { + case EbtInt8: + case EbtInt16: + case EbtUint8: + case EbtUint16: + return true; + default: + break; + } + } + return false; +} + +bool TIntermediate::isFPPromotion(TBasicType from, TBasicType to) const +{ + // floating-point promotions + if (to == EbtDouble) { + switch(from) { + case EbtFloat16: + case EbtFloat: + return true; + default: + break; + } + } + return false; +} + +bool TIntermediate::isIntegralConversion(TBasicType from, TBasicType to) const +{ + switch (from) { + case EbtInt8: + switch (to) { + case EbtUint8: + case EbtInt16: + case EbtUint16: + case EbtUint: + case EbtInt64: + case EbtUint64: + return true; + default: + break; + } + break; + case EbtUint8: + switch (to) { + case EbtInt16: + case EbtUint16: + case EbtUint: + case EbtInt64: + case EbtUint64: + return true; + default: + break; + } + break; + case EbtInt16: + switch(to) { + case EbtUint16: + case EbtUint: + case EbtInt64: + case EbtUint64: + return true; + default: + break; + } + break; + case EbtUint16: + switch(to) { + case EbtUint: + case EbtInt64: + case EbtUint64: + return true; + default: + break; + } + break; + case EbtInt: + switch(to) { + case EbtUint: + return version >= 400 || (source == EShSourceHlsl); + case EbtInt64: + case EbtUint64: + return true; + default: + break; + } + break; + case EbtUint: + switch(to) { + case EbtInt64: + case EbtUint64: + return true; + default: + break; + } + break; + case EbtInt64: + if (to == EbtUint64) { + return true; + } + break; + default: + break; + } + return false; +} + +bool TIntermediate::isFPConversion(TBasicType from, TBasicType to) const +{ + if (to == EbtFloat && from == EbtFloat16) { + return true; + } else { + return false; + } +} + +bool TIntermediate::isFPIntegralConversion(TBasicType from, TBasicType to) const +{ + switch (from) { + case EbtInt8: + case EbtUint8: + case EbtInt16: + case EbtUint16: + switch (to) { + case EbtFloat16: + case EbtFloat: + case EbtDouble: + return true; + default: + break; + } + break; + case EbtInt: + case EbtUint: + switch(to) { + case EbtFloat: + case EbtDouble: + return true; + default: + break; + } + break; + case EbtInt64: + case EbtUint64: + if (to == EbtDouble) { + return true; + } + break; + + default: + break; + } + return false; +} + // // See if the 'from' type is allowed to be implicitly converted to the // 'to' type. This is not about vector/array/struct, only about basic type. @@ -867,16 +1396,16 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat if (fromConvertable && toConvertable) { switch (op) { case EOpAndAssign: // assignments can perform arbitrary conversions - case EOpInclusiveOrAssign: // ... - case EOpExclusiveOrAssign: // ... - case EOpAssign: // ... - case EOpAddAssign: // ... - case EOpSubAssign: // ... - case EOpMulAssign: // ... - case EOpVectorTimesScalarAssign: // ... - case EOpMatrixTimesScalarAssign: // ... - case EOpDivAssign: // ... - case EOpModAssign: // ... + case EOpInclusiveOrAssign: // ... + case EOpExclusiveOrAssign: // ... + case EOpAssign: // ... + case EOpAddAssign: // ... + case EOpSubAssign: // ... + case EOpMulAssign: // ... + case EOpVectorTimesScalarAssign: // ... + case EOpMatrixTimesScalarAssign: // ... + case EOpDivAssign: // ... + case EOpModAssign: // ... case EOpReturn: // function returns can also perform arbitrary conversions case EOpFunctionCall: // conversion of a calling parameter case EOpLogicalNot: @@ -891,79 +1420,337 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat } } - switch (to) { - case EbtDouble: - switch (from) { - case EbtInt: - case EbtUint: - case EbtInt64: - case EbtUint64: - case EbtFloat: + bool explicitTypesEnabled = extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int8) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int16) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int32) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_int64) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float16) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float32) || + extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float64); + + if (explicitTypesEnabled) { + // integral promotions + if (isIntegralPromotion(from, to)) { + return true; + } + + // floating-point promotions + if (isFPPromotion(from, to)) { + return true; + } + + // integral conversions + if (isIntegralConversion(from, to)) { + return true; + } + + // floating-point conversions + if (isFPConversion(from, to)) { + return true; + } + + // floating-integral conversions + if (isFPIntegralConversion(from, to)) { + return true; + } + + // hlsl supported conversions + if (source == EShSourceHlsl) { + if (from == EbtBool && (to == EbtInt || to == EbtUint || to == EbtFloat)) + return true; + } + } else { + switch (to) { case EbtDouble: + switch (from) { + case EbtInt: + case EbtUint: + case EbtInt64: + case EbtUint64: #ifdef AMD_EXTENSIONS - case EbtFloat16: + case EbtInt16: + case EbtUint16: #endif - return true; - default: - return false; - } - case EbtFloat: - switch (from) { - case EbtInt: - case EbtUint: + case EbtFloat: + case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif + return true; + default: + return false; + } case EbtFloat: + switch (from) { + case EbtInt: + case EbtUint: +#ifdef AMD_EXTENSIONS + case EbtInt16: + case EbtUint16: +#endif + case EbtFloat: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif + return true; + case EbtBool: + return (source == EShSourceHlsl); + default: + return false; + } + case EbtUint: + switch (from) { + case EbtInt: + return version >= 400 || (source == EShSourceHlsl); + case EbtUint: +#ifdef AMD_EXTENSIONS + case EbtInt16: + case EbtUint16: +#endif + return true; + case EbtBool: + return (source == EShSourceHlsl); + default: + return false; + } + case EbtInt: + switch (from) { + case EbtInt: +#ifdef AMD_EXTENSIONS + case EbtInt16: +#endif + return true; + case EbtBool: + return (source == EShSourceHlsl); + default: + return false; + } + case EbtUint64: + switch (from) { + case EbtInt: + case EbtUint: + case EbtInt64: + case EbtUint64: +#ifdef AMD_EXTENSIONS + case EbtInt16: + case EbtUint16: +#endif + return true; + default: + return false; + } + case EbtInt64: + switch (from) { + case EbtInt: + case EbtInt64: +#ifdef AMD_EXTENSIONS + case EbtInt16: +#endif + return true; + default: + return false; + } #ifdef AMD_EXTENSIONS case EbtFloat16: + switch (from) { + case EbtInt16: + case EbtUint16: + case EbtFloat16: + return true; + default: + return false; + } + case EbtUint16: + switch (from) { + case EbtInt16: + case EbtUint16: + return true; + default: + return false; + } #endif - return true; - case EbtBool: - return (source == EShSourceHlsl); default: return false; } - case EbtUint: - switch (from) { - case EbtInt: - return version >= 400; + } + + return false; +} + +static bool canSignedIntTypeRepresentAllUnsignedValues(TBasicType sintType, TBasicType uintType) { + switch(sintType) { + case EbtInt8: + switch(uintType) { + case EbtUint8: + case EbtUint16: case EbtUint: - return true; - case EbtBool: - return (source == EShSourceHlsl); - default: - return false; - } - case EbtInt: - switch (from) { - case EbtInt: - return true; - case EbtBool: - return (source == EShSourceHlsl); - default: - return false; - } - case EbtUint64: - switch (from) { - case EbtInt: - case EbtUint: - case EbtInt64: case EbtUint64: - return true; + return false; default: + assert(false); return false; } + break; + case EbtInt16: + switch(uintType) { + case EbtUint8: + return true; + case EbtUint16: + case EbtUint: + case EbtUint64: + return false; + default: + assert(false); + return false; + } + break; + case EbtInt: + switch(uintType) { + case EbtUint8: + case EbtUint16: + return true; + case EbtUint: + return false; + default: + assert(false); + return false; + } + break; case EbtInt64: - switch (from) { - case EbtInt: - case EbtInt64: + switch(uintType) { + case EbtUint8: + case EbtUint16: + case EbtUint: return true; + case EbtUint64: + return false; default: + assert(false); return false; } + break; default: + assert(false); return false; } } + +static TBasicType getCorrespondingUnsignedType(TBasicType type) { + switch(type) { + case EbtInt8: + return EbtUint8; + case EbtInt16: + return EbtUint16; + case EbtInt: + return EbtUint; + case EbtInt64: + return EbtUint64; + default: + assert(false); + return EbtNumTypes; + } +} + +// Implements the following rules +// - If either operand has type float64_t or derived from float64_t, +// the other shall be converted to float64_t or derived type. +// - Otherwise, if either operand has type float32_t or derived from +// float32_t, the other shall be converted to float32_t or derived type. +// - Otherwise, if either operand has type float16_t or derived from +// float16_t, the other shall be converted to float16_t or derived type. +// - Otherwise, if both operands have integer types the following rules +// shall be applied to the operands: +// - If both operands have the same type, no further conversion +// is needed. +// - Otherwise, if both operands have signed integer types or both +// have unsigned integer types, the operand with the type of lesser +// integer conversion rank shall be converted to the type of the +// operand with greater rank. +// - Otherwise, if the operand that has unsigned integer type has rank +// greater than or equal to the rank of the type of the other +// operand, the operand with signed integer type shall be converted +// to the type of the operand with unsigned integer type. +// - Otherwise, if the type of the operand with signed integer type can +// represent all of the values of the type of the operand with +// unsigned integer type, the operand with unsigned integer type +// shall be converted to the type of the operand with signed +// integer type. +// - Otherwise, both operands shall be converted to the unsigned +// integer type corresponding to the type of the operand with signed +// integer type. + +std::tuple TIntermediate::getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const +{ + TBasicType res0 = EbtNumTypes; + TBasicType res1 = EbtNumTypes; + + if (profile == EEsProfile || version == 110) + return std::make_tuple(res0, res1);; + + if (source == EShSourceHlsl) { + if (canImplicitlyPromote(type1, type0, op)) { + res0 = type0; + res1 = type0; + } else if (canImplicitlyPromote(type0, type1, op)) { + res0 = type1; + res1 = type1; + } + return std::make_tuple(res0, res1); + } + + if ((type0 == EbtDouble && canImplicitlyPromote(type1, EbtDouble, op)) || + (type1 == EbtDouble && canImplicitlyPromote(type0, EbtDouble, op)) ) { + res0 = EbtDouble; + res1 = EbtDouble; + } else if ((type0 == EbtFloat && canImplicitlyPromote(type1, EbtFloat, op)) || + (type1 == EbtFloat && canImplicitlyPromote(type0, EbtFloat, op)) ) { + res0 = EbtFloat; + res1 = EbtFloat; + } else if ((type0 == EbtFloat16 && canImplicitlyPromote(type1, EbtFloat16, op)) || + (type1 == EbtFloat16 && canImplicitlyPromote(type0, EbtFloat16, op)) ) { + res0 = EbtFloat16; + res1 = EbtFloat16; + } else if (isTypeInt(type0) && isTypeInt(type1) && + (canImplicitlyPromote(type0, type1, op) || canImplicitlyPromote(type1, type0, op))) { + if ((isTypeSignedInt(type0) && isTypeSignedInt(type1)) || + (isTypeUnsignedInt(type0) && isTypeUnsignedInt(type1))) { + if (getTypeRank(type0) < getTypeRank(type1)) { + res0 = type1; + res1 = type1; + } else { + res0 = type0; + res1 = type0; + } + } else if (isTypeUnsignedInt(type0) && (getTypeRank(type0) > getTypeRank(type1))) { + res0 = type0; + res1 = type0; + } else if (isTypeUnsignedInt(type1) && (getTypeRank(type1) > getTypeRank(type0))) { + res0 = type1; + res1 = type1; + } else if (isTypeSignedInt(type0)) { + if (canSignedIntTypeRepresentAllUnsignedValues(type0, type1)) { + res0 = type0; + res1 = type0; + } else { + res0 = getCorrespondingUnsignedType(type0); + res1 = getCorrespondingUnsignedType(type0); + } + } else if (isTypeSignedInt(type1)) { + if (canSignedIntTypeRepresentAllUnsignedValues(type1, type0)) { + res0 = type1; + res1 = type1; + } else { + res0 = getCorrespondingUnsignedType(type1); + res1 = getCorrespondingUnsignedType(type1); + } + } + } + + return std::make_tuple(res0, res1); +} + // // Given a type, find what operation would fully construct it. // @@ -971,6 +1758,9 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const { TOperator op = EOpNull; + if (type.getQualifier().nonUniform) + return EOpConstructNonuniform; + switch (type.getBasicType()) { case EbtStruct: op = EOpConstructStruct; @@ -1056,7 +1846,6 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } } break; -#ifdef AMD_EXTENSIONS case EbtFloat16: if (type.getMatrixCols()) { switch (type.getMatrixCols()) { @@ -1096,25 +1885,118 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } } break; -#endif - case EbtInt: + case EbtInt8: switch(type.getVectorSize()) { - case 1: op = EOpConstructInt; break; - case 2: op = EOpConstructIVec2; break; - case 3: op = EOpConstructIVec3; break; - case 4: op = EOpConstructIVec4; break; + case 1: op = EOpConstructInt8; break; + case 2: op = EOpConstructI8Vec2; break; + case 3: op = EOpConstructI8Vec3; break; + case 4: op = EOpConstructI8Vec4; break; default: break; // some compilers want this } break; - case EbtUint: + case EbtUint8: switch(type.getVectorSize()) { - case 1: op = EOpConstructUint; break; - case 2: op = EOpConstructUVec2; break; - case 3: op = EOpConstructUVec3; break; - case 4: op = EOpConstructUVec4; break; + case 1: op = EOpConstructUint8; break; + case 2: op = EOpConstructU8Vec2; break; + case 3: op = EOpConstructU8Vec3; break; + case 4: op = EOpConstructU8Vec4; break; default: break; // some compilers want this } break; + case EbtInt16: + switch(type.getVectorSize()) { + case 1: op = EOpConstructInt16; break; + case 2: op = EOpConstructI16Vec2; break; + case 3: op = EOpConstructI16Vec3; break; + case 4: op = EOpConstructI16Vec4; break; + default: break; // some compilers want this + } + break; + case EbtUint16: + switch(type.getVectorSize()) { + case 1: op = EOpConstructUint16; break; + case 2: op = EOpConstructU16Vec2; break; + case 3: op = EOpConstructU16Vec3; break; + case 4: op = EOpConstructU16Vec4; break; + default: break; // some compilers want this + } + break; + case EbtInt: + if (type.getMatrixCols()) { + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructIMat2x2; break; + case 3: op = EOpConstructIMat2x3; break; + case 4: op = EOpConstructIMat2x4; break; + default: break; // some compilers want this + } + break; + case 3: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructIMat3x2; break; + case 3: op = EOpConstructIMat3x3; break; + case 4: op = EOpConstructIMat3x4; break; + default: break; // some compilers want this + } + break; + case 4: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructIMat4x2; break; + case 3: op = EOpConstructIMat4x3; break; + case 4: op = EOpConstructIMat4x4; break; + default: break; // some compilers want this + } + break; + } + } else { + switch(type.getVectorSize()) { + case 1: op = EOpConstructInt; break; + case 2: op = EOpConstructIVec2; break; + case 3: op = EOpConstructIVec3; break; + case 4: op = EOpConstructIVec4; break; + default: break; // some compilers want this + } + } + break; + case EbtUint: + if (type.getMatrixCols()) { + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructUMat2x2; break; + case 3: op = EOpConstructUMat2x3; break; + case 4: op = EOpConstructUMat2x4; break; + default: break; // some compilers want this + } + break; + case 3: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructUMat3x2; break; + case 3: op = EOpConstructUMat3x3; break; + case 4: op = EOpConstructUMat3x4; break; + default: break; // some compilers want this + } + break; + case 4: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructUMat4x2; break; + case 3: op = EOpConstructUMat4x3; break; + case 4: op = EOpConstructUMat4x4; break; + default: break; // some compilers want this + } + break; + } + } else { + switch(type.getVectorSize()) { + case 1: op = EOpConstructUint; break; + case 2: op = EOpConstructUVec2; break; + case 3: op = EOpConstructUVec3; break; + case 4: op = EOpConstructUVec4; break; + default: break; // some compilers want this + } + } + break; case EbtInt64: switch(type.getVectorSize()) { case 1: op = EOpConstructInt64; break; @@ -1134,12 +2016,41 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } break; case EbtBool: - switch(type.getVectorSize()) { - case 1: op = EOpConstructBool; break; - case 2: op = EOpConstructBVec2; break; - case 3: op = EOpConstructBVec3; break; - case 4: op = EOpConstructBVec4; break; - default: break; // some compilers want this + if (type.getMatrixCols()) { + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructBMat2x2; break; + case 3: op = EOpConstructBMat2x3; break; + case 4: op = EOpConstructBMat2x4; break; + default: break; // some compilers want this + } + break; + case 3: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructBMat3x2; break; + case 3: op = EOpConstructBMat3x3; break; + case 4: op = EOpConstructBMat3x4; break; + default: break; // some compilers want this + } + break; + case 4: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructBMat4x2; break; + case 3: op = EOpConstructBMat4x3; break; + case 4: op = EOpConstructBMat4x4; break; + default: break; // some compilers want this + } + break; + } + } else { + switch(type.getVectorSize()) { + case 1: op = EOpConstructBool; break; + case 2: op = EOpConstructBVec2; break; + case 3: op = EOpConstructBVec3; break; + case 4: op = EOpConstructBVec4; break; + default: break; // some compilers want this + } } break; default: @@ -1162,15 +2073,15 @@ TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* r return nullptr; TIntermAggregate* aggNode = nullptr; - if (left) + if (left != nullptr) aggNode = left->getAsAggregate(); - if (! aggNode || aggNode->getOp() != EOpNull) { + if (aggNode == nullptr || aggNode->getOp() != EOpNull) { aggNode = new TIntermAggregate; - if (left) + if (left != nullptr) aggNode->getSequence().push_back(left); } - if (right) + if (right != nullptr) aggNode->getSequence().push_back(right); return aggNode; @@ -1232,7 +2143,7 @@ TIntermAggregate* TIntermediate::makeAggregate(const TSourceLoc& loc) // // Returns the selection node created. // -TIntermNode* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePair nodePair, const TSourceLoc& loc) +TIntermSelection* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePair nodePair, const TSourceLoc& loc) { // // Don't prune the false path for compile-time constants; it's needed @@ -1245,13 +2156,12 @@ TIntermNode* TIntermediate::addSelection(TIntermTyped* cond, TIntermNodePair nod return node; } - TIntermTyped* TIntermediate::addComma(TIntermTyped* left, TIntermTyped* right, const TSourceLoc& loc) { // However, the lowest precedence operators of the sequence operator ( , ) and the assignment operators // ... are not included in the operators that can create a constant expression. // - //if (left->getType().getQualifier().storage == EvqConst && + // if (left->getType().getQualifier().storage == EvqConst && // right->getType().getQualifier().storage == EvqConst) { // return right; @@ -1276,34 +2186,70 @@ TIntermTyped* TIntermediate::addMethod(TIntermTyped* object, const TType& type, // // For "?:" test nodes. There are three children; a condition, // a true path, and a false path. The two paths are specified -// as separate parameters. +// as separate parameters. For vector 'cond', the true and false +// are not paths, but vectors to mix. +// +// Specialization constant operations include +// - The ternary operator ( ? : ) // // Returns the selection node created, or nullptr if one could not be. // -TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc& loc) +TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, + const TSourceLoc& loc) { + // If it's void, go to the if-then-else selection() + if (trueBlock->getBasicType() == EbtVoid && falseBlock->getBasicType() == EbtVoid) { + TIntermNodePair pair = { trueBlock, falseBlock }; + TIntermSelection* selection = addSelection(cond, pair, loc); + if (getSource() == EShSourceHlsl) + selection->setNoShortCircuit(); + + return selection; + } + // // Get compatible types. // - TIntermTyped* child = addConversion(EOpSequence, trueBlock->getType(), falseBlock); - if (child) - falseBlock = child; - else { - child = addConversion(EOpSequence, falseBlock->getType(), trueBlock); - if (child) - trueBlock = child; - else + auto children = addConversion(EOpSequence, trueBlock, falseBlock); + trueBlock = std::get<0>(children); + falseBlock = std::get<1>(children); + + if (trueBlock == nullptr || falseBlock == nullptr) + return nullptr; + + // Handle a vector condition as a mix + if (!cond->getType().isScalarOrVec1()) { + TType targetVectorType(trueBlock->getType().getBasicType(), EvqTemporary, + cond->getType().getVectorSize()); + // smear true/false operands as needed + trueBlock = addUniShapeConversion(EOpMix, targetVectorType, trueBlock); + falseBlock = addUniShapeConversion(EOpMix, targetVectorType, falseBlock); + + // After conversion, types have to match. + if (falseBlock->getType() != trueBlock->getType()) return nullptr; + + // make the mix operation + TIntermAggregate* mix = makeAggregate(loc); + mix = growAggregate(mix, falseBlock); + mix = growAggregate(mix, trueBlock); + mix = growAggregate(mix, cond); + mix->setType(targetVectorType); + mix->setOp(EOpMix); + + return mix; } + // Now have a scalar condition... + + // Convert true and false expressions to matching types + addBiShapeConversion(EOpMix, trueBlock, falseBlock); + // After conversion, types have to match. if (falseBlock->getType() != trueBlock->getType()) return nullptr; - // - // See if all the operands are constant, then fold it otherwise not. - // - + // Eliminate the selection when the condition is a scalar and all operands are constant. if (cond->getAsConstantUnion() && trueBlock->getAsConstantUnion() && falseBlock->getAsConstantUnion()) { if (cond->getAsConstantUnion()->getConstArray()[0].getBConst()) return trueBlock; @@ -1315,10 +2261,19 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true // Make a selection node. // TIntermSelection* node = new TIntermSelection(cond, trueBlock, falseBlock, trueBlock->getType()); - node->getQualifier().makeTemporary(); node->setLoc(loc); node->getQualifier().precision = std::max(trueBlock->getQualifier().precision, falseBlock->getQualifier().precision); + if ((cond->getQualifier().isConstant() && specConstantPropagates(*trueBlock, *falseBlock)) || + (cond->getQualifier().isSpecConstant() && trueBlock->getQualifier().isConstant() && + falseBlock->getQualifier().isConstant())) + node->getQualifier().makeSpecConstant(); + else + node->getQualifier().makeTemporary(); + + if (getSource() == EShSourceHlsl) + node->setNoShortCircuit(); + return node; } @@ -1338,6 +2293,37 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(const TConstUnionArray& un return node; } +TIntermConstantUnion* TIntermediate::addConstantUnion(signed char i8, const TSourceLoc& loc, bool literal) const +{ + TConstUnionArray unionArray(1); + unionArray[0].setI8Const(i8); + + return addConstantUnion(unionArray, TType(EbtInt8, EvqConst), loc, literal); +} + +TIntermConstantUnion* TIntermediate::addConstantUnion(unsigned char u8, const TSourceLoc& loc, bool literal) const +{ + TConstUnionArray unionArray(1); + unionArray[0].setUConst(u8); + + return addConstantUnion(unionArray, TType(EbtUint8, EvqConst), loc, literal); +} + +TIntermConstantUnion* TIntermediate::addConstantUnion(signed short i16, const TSourceLoc& loc, bool literal) const +{ + TConstUnionArray unionArray(1); + unionArray[0].setI16Const(i16); + + return addConstantUnion(unionArray, TType(EbtInt16, EvqConst), loc, literal); +} + +TIntermConstantUnion* TIntermediate::addConstantUnion(unsigned short u16, const TSourceLoc& loc, bool literal) const +{ + TConstUnionArray unionArray(1); + unionArray[0].setU16Const(u16); + + return addConstantUnion(unionArray, TType(EbtUint16, EvqConst), loc, literal); +} TIntermConstantUnion* TIntermediate::addConstantUnion(int i, const TSourceLoc& loc, bool literal) const { @@ -1381,11 +2367,7 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(bool b, const TSourceLoc& TIntermConstantUnion* TIntermediate::addConstantUnion(double d, TBasicType baseType, const TSourceLoc& loc, bool literal) const { -#ifdef AMD_EXTENSIONS assert(baseType == EbtFloat || baseType == EbtDouble || baseType == EbtFloat16); -#else - assert(baseType == EbtFloat || baseType == EbtDouble); -#endif TConstUnionArray unionArray(1); unionArray[0].setDConst(d); @@ -1393,18 +2375,43 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(double d, TBasicType baseT return addConstantUnion(unionArray, TType(baseType, EvqConst), loc, literal); } -TIntermTyped* TIntermediate::addSwizzle(TVectorFields& fields, const TSourceLoc& loc) +TIntermConstantUnion* TIntermediate::addConstantUnion(const TString* s, const TSourceLoc& loc, bool literal) const +{ + TConstUnionArray unionArray(1); + unionArray[0].setSConst(s); + + return addConstantUnion(unionArray, TType(EbtString, EvqConst), loc, literal); +} + +// Put vector swizzle selectors onto the given sequence +void TIntermediate::pushSelector(TIntermSequence& sequence, const TVectorSelector& selector, const TSourceLoc& loc) +{ + TIntermConstantUnion* constIntNode = addConstantUnion(selector, loc); + sequence.push_back(constIntNode); +} + +// Put matrix swizzle selectors onto the given sequence +void TIntermediate::pushSelector(TIntermSequence& sequence, const TMatrixSelector& selector, const TSourceLoc& loc) +{ + TIntermConstantUnion* constIntNode = addConstantUnion(selector.coord1, loc); + sequence.push_back(constIntNode); + constIntNode = addConstantUnion(selector.coord2, loc); + sequence.push_back(constIntNode); +} + +// Make an aggregate node that has a sequence of all selectors. +template TIntermTyped* TIntermediate::addSwizzle(TSwizzleSelectors& selector, const TSourceLoc& loc); +template TIntermTyped* TIntermediate::addSwizzle(TSwizzleSelectors& selector, const TSourceLoc& loc); +template +TIntermTyped* TIntermediate::addSwizzle(TSwizzleSelectors& selector, const TSourceLoc& loc) { TIntermAggregate* node = new TIntermAggregate(EOpSequence); node->setLoc(loc); - TIntermConstantUnion* constIntNode; TIntermSequence &sequenceVector = node->getSequence(); - for (int i = 0; i < fields.num; i++) { - constIntNode = addConstantUnion(fields.offsets[i], loc); - sequenceVector.push_back(constIntNode); - } + for (int i = 0; i < selector.size(); i++) + pushSelector(sequenceVector, selector[i], loc); return node; } @@ -1426,10 +2433,10 @@ const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool if (binary == nullptr) return node; TOperator op = binary->getOp(); - if (op != EOpIndexDirect && op != EOpIndexIndirect && op != EOpIndexDirectStruct && op != EOpVectorSwizzle) + if (op != EOpIndexDirect && op != EOpIndexIndirect && op != EOpIndexDirectStruct && op != EOpVectorSwizzle && op != EOpMatrixSwizzle) return nullptr; if (! swizzleOkay) { - if (op == EOpVectorSwizzle) + if (op == EOpVectorSwizzle || op == EOpMatrixSwizzle) return nullptr; if ((op == EOpIndexDirect || op == EOpIndexIndirect) && (binary->getLeft()->getType().isVector() || binary->getLeft()->getType().isScalar()) && @@ -1443,7 +2450,8 @@ const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool // // Create while and do-while loop nodes. // -TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc) +TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, + const TSourceLoc& loc) { TIntermLoop* node = new TIntermLoop(body, test, terminal, testFirst); node->setLoc(loc); @@ -1454,13 +2462,19 @@ TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TInte // // Create a for-loop sequence. // -TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc) +TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermTyped* test, + TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc, TIntermLoop*& node) { - TIntermLoop* node = new TIntermLoop(body, test, terminal, testFirst); + node = new TIntermLoop(body, test, terminal, testFirst); node->setLoc(loc); - // make a sequence of the initializer and statement - TIntermAggregate* loopSequence = makeAggregate(initializer, loc); + // make a sequence of the initializer and statement, but try to reuse the + // aggregate already created for whatever is in the initializer, if there is one + TIntermAggregate* loopSequence = (initializer == nullptr || + initializer->getAsAggregate() == nullptr) ? makeAggregate(initializer, loc) + : initializer->getAsAggregate(); + if (loopSequence != nullptr && loopSequence->getOp() == EOpSequence) + loopSequence->setOp(EOpNull); loopSequence = growAggregate(loopSequence, node); loopSequence->setOperator(EOpSequence); @@ -1500,6 +2514,14 @@ bool TIntermediate::postProcess(TIntermNode* root, EShLanguage /*language*/) // Propagate 'noContraction' label in backward from 'precise' variables. glslang::PropagateNoContraction(*this); + switch (textureSamplerTransformMode) { + case EShTexSampTransKeep: + break; + case EShTexSampTransUpgradeTextureRemoveSampler: + performTextureUpgradeAndSamplerRemovalTransformation(root); + break; + } + return true; } @@ -1520,7 +2542,7 @@ void TIntermediate::addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguag // - ftransform() can make gl_Vertex and gl_ModelViewProjectionMatrix active. // - //if (ftransformUsed) { + // if (ftransformUsed) { // TODO: 1.1 lowering functionality: track ftransform() usage // addSymbolLinkageNode(root, symbolTable, "gl_Vertex"); // addSymbolLinkageNode(root, symbolTable, "gl_ModelViewProjectionMatrix"); @@ -1640,12 +2662,10 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpVectorSwizzle: case EOpConvFloatToDouble: case EOpConvDoubleToFloat: -#ifdef AMD_EXTENSIONS case EOpConvFloat16ToFloat: case EOpConvFloatToFloat16: case EOpConvFloat16ToDouble: case EOpConvDoubleToFloat16: -#endif return true; default: return false; @@ -1669,28 +2689,98 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpIndexDirectStruct: case EOpVectorSwizzle: - // conversion constructors + // (u)int* -> bool + case EOpConvInt8ToBool: + case EOpConvInt16ToBool: case EOpConvIntToBool: - case EOpConvUintToBool: - case EOpConvUintToInt: - case EOpConvBoolToInt: - case EOpConvIntToUint: - case EOpConvBoolToUint: case EOpConvInt64ToBool: - case EOpConvBoolToInt64: + case EOpConvUint8ToBool: + case EOpConvUint16ToBool: + case EOpConvUintToBool: case EOpConvUint64ToBool: + + // bool -> (u)int* + case EOpConvBoolToInt8: + case EOpConvBoolToInt16: + case EOpConvBoolToInt: + case EOpConvBoolToInt64: + case EOpConvBoolToUint8: + case EOpConvBoolToUint16: + case EOpConvBoolToUint: case EOpConvBoolToUint64: - case EOpConvInt64ToInt: + + // int8_t -> (u)int* + case EOpConvInt8ToInt16: + case EOpConvInt8ToInt: + case EOpConvInt8ToInt64: + case EOpConvInt8ToUint8: + case EOpConvInt8ToUint16: + case EOpConvInt8ToUint: + case EOpConvInt8ToUint64: + + // int16_t -> (u)int* + case EOpConvInt16ToInt8: + case EOpConvInt16ToInt: + case EOpConvInt16ToInt64: + case EOpConvInt16ToUint8: + case EOpConvInt16ToUint16: + case EOpConvInt16ToUint: + case EOpConvInt16ToUint64: + + // int32_t -> (u)int* + case EOpConvIntToInt8: + case EOpConvIntToInt16: case EOpConvIntToInt64: - case EOpConvUint64ToUint: - case EOpConvUintToUint64: - case EOpConvInt64ToUint64: - case EOpConvUint64ToInt64: - case EOpConvInt64ToUint: - case EOpConvUintToInt64: - case EOpConvUint64ToInt: + case EOpConvIntToUint8: + case EOpConvIntToUint16: + case EOpConvIntToUint: case EOpConvIntToUint64: + // int64_t -> (u)int* + case EOpConvInt64ToInt8: + case EOpConvInt64ToInt16: + case EOpConvInt64ToInt: + case EOpConvInt64ToUint8: + case EOpConvInt64ToUint16: + case EOpConvInt64ToUint: + case EOpConvInt64ToUint64: + + // uint8_t -> (u)int* + case EOpConvUint8ToInt8: + case EOpConvUint8ToInt16: + case EOpConvUint8ToInt: + case EOpConvUint8ToInt64: + case EOpConvUint8ToUint16: + case EOpConvUint8ToUint: + case EOpConvUint8ToUint64: + + // uint16_t -> (u)int* + case EOpConvUint16ToInt8: + case EOpConvUint16ToInt16: + case EOpConvUint16ToInt: + case EOpConvUint16ToInt64: + case EOpConvUint16ToUint8: + case EOpConvUint16ToUint: + case EOpConvUint16ToUint64: + + // uint32_t -> (u)int* + case EOpConvUintToInt8: + case EOpConvUintToInt16: + case EOpConvUintToInt: + case EOpConvUintToInt64: + case EOpConvUintToUint8: + case EOpConvUintToUint16: + case EOpConvUintToUint64: + + // uint64_t -> (u)int* + case EOpConvUint64ToInt8: + case EOpConvUint64ToInt16: + case EOpConvUint64ToInt: + case EOpConvUint64ToInt64: + case EOpConvUint64ToUint8: + case EOpConvUint64ToUint16: + case EOpConvUint64ToUint: + // unary operations case EOpNegative: case EOpLogicalNot: @@ -1723,6 +2813,64 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const } } +// Is the operation one that must propagate nonuniform? +bool TIntermediate::isNonuniformPropagating(TOperator op) const +{ + // "* All Operators in Section 5.1 (Operators), except for assignment, + // arithmetic assignment, and sequence + // * Component selection in Section 5.5 + // * Matrix components in Section 5.6 + // * Structure and Array Operations in Section 5.7, except for the length + // method." + switch (op) { + case EOpPostIncrement: + case EOpPostDecrement: + case EOpPreIncrement: + case EOpPreDecrement: + + case EOpNegative: + case EOpLogicalNot: + case EOpVectorLogicalNot: + case EOpBitwiseNot: + + case EOpAdd: + case EOpSub: + case EOpMul: + case EOpDiv: + case EOpMod: + case EOpRightShift: + case EOpLeftShift: + case EOpAnd: + case EOpInclusiveOr: + case EOpExclusiveOr: + case EOpEqual: + case EOpNotEqual: + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + case EOpVectorTimesScalar: + case EOpVectorTimesMatrix: + case EOpMatrixTimesVector: + case EOpMatrixTimesScalar: + + case EOpLogicalOr: + case EOpLogicalXor: + case EOpLogicalAnd: + + case EOpIndexDirect: + case EOpIndexIndirect: + case EOpIndexDirectStruct: + case EOpVectorSwizzle: + return true; + + default: + break; + } + + return false; +} + //////////////////////////////////////////////////////////////// // // Member functions of the nodes used for building the tree. @@ -1807,7 +2955,7 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) // Convert operand to a boolean type if (operand->getBasicType() != EbtBool) { // Add constructor to boolean type. If that fails, we can't do it, so return false. - TIntermTyped* converted = convertToBasicType(op, EbtBool, operand); + TIntermTyped* converted = addConversion(op, TType(EbtBool), operand); if (converted == nullptr) return false; @@ -1816,11 +2964,7 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) } break; case EOpBitwiseNot: - if (operand->getBasicType() != EbtInt && - operand->getBasicType() != EbtUint && - operand->getBasicType() != EbtInt64 && - operand->getBasicType() != EbtUint64) - + if (!isTypeInt(operand->getBasicType())) return false; break; case EOpNegative: @@ -1828,14 +2972,9 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) case EOpPostDecrement: case EOpPreIncrement: case EOpPreDecrement: - if (operand->getBasicType() != EbtInt && - operand->getBasicType() != EbtUint && - operand->getBasicType() != EbtInt64 && - operand->getBasicType() != EbtUint64 && + if (!isTypeInt(operand->getBasicType()) && operand->getBasicType() != EbtFloat && -#ifdef AMD_EXTENSIONS operand->getBasicType() != EbtFloat16 && -#endif operand->getBasicType() != EbtDouble) return false; @@ -1855,34 +2994,12 @@ bool TIntermediate::promoteUnary(TIntermUnary& node) void TIntermUnary::updatePrecision() { -#ifdef AMD_EXTENSIONS if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { -#else - if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { -#endif if (operand->getQualifier().precision > getQualifier().precision) getQualifier().precision = operand->getQualifier().precision; } } -// If it is not already, convert this node to the given basic type. -TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const -{ - if (node == nullptr) - return nullptr; - - // It's already this basic type: nothing needs to be done, so use the node directly. - if (node->getBasicType() == basicType) - return node; - - const TType& type = node->getType(); - const TType newType(basicType, type.getQualifier().storage, - type.getVectorSize(), type.getMatrixCols(), type.getMatrixRows(), type.isVector()); - - // Add constructor to the right vectorness of the right type. If that fails, we can't do it, so return nullptr. - return addConversion(op, newType, node); -} - // // See TIntermediate::promote // @@ -1932,6 +3049,49 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) // We now have only scalars, vectors, and matrices to worry about. // + // HLSL implicitly promotes bool -> int for numeric operations. + // (Implicit conversions to make the operands match each other's types were already done.) + if (getSource() == EShSourceHlsl && + (left->getBasicType() == EbtBool || right->getBasicType() == EbtBool)) { + switch (op) { + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + + case EOpRightShift: + case EOpLeftShift: + + case EOpMod: + + case EOpAnd: + case EOpInclusiveOr: + case EOpExclusiveOr: + + case EOpAdd: + case EOpSub: + case EOpDiv: + case EOpMul: + if (left->getBasicType() == EbtBool) + left = createConversion(EbtInt, left); + if (right->getBasicType() == EbtBool) + right = createConversion(EbtInt, right); + if (left == nullptr || right == nullptr) + return false; + node.setLeft(left); + node.setRight(right); + + // Update the original base assumption on result type.. + node.setType(left->getType()); + node.getWritableType().getQualifier().clear(); + + break; + + default: + break; + } + } + // Do general type checks against individual operands (comparing left and right is coming up, checking mixed shapes after that) switch (op) { case EOpLessThan: @@ -1966,21 +3126,17 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: - if (getSource() == EShSourceHlsl) { - TIntermTyped* convertedL = convertToBasicType(op, EbtBool, left); - TIntermTyped* convertedR = convertToBasicType(op, EbtBool, right); - if (convertedL == nullptr || convertedR == nullptr) + // logical ops operate only on Booleans or vectors of Booleans. + if (left->getBasicType() != EbtBool || left->isMatrix()) return false; - node.setLeft(left = convertedL); // also updates stack variable - node.setRight(right = convertedR); // also updates stack variable - } else { + + if (getSource() == EShSourceGlsl) { // logical ops operate only on scalar Booleans and will promote to scalar Boolean. - if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) + if (left->isVector()) return false; } node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); - break; case EOpRightShift: @@ -2001,10 +3157,7 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) break; // Check for integer-only operands. - if ((left->getBasicType() != EbtInt && left->getBasicType() != EbtUint && - left->getBasicType() != EbtInt64 && left->getBasicType() != EbtUint64) || - (right->getBasicType() != EbtInt && right->getBasicType() != EbtUint && - right->getBasicType() != EbtInt64 && right->getBasicType() != EbtUint64)) + if (!isTypeInt(left->getBasicType()) && !isTypeInt(right->getBasicType())) return false; if (left->isMatrix() || right->isMatrix()) return false; @@ -2044,8 +3197,6 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) case EOpLogicalXor: return left->getType() == right->getType(); - // no shifts: they can mix types (scalar int can shift a vector uint, etc.) - case EOpMod: case EOpModAssign: @@ -2059,6 +3210,7 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) case EOpAdd: case EOpSub: case EOpDiv: + case EOpAddAssign: case EOpSubAssign: case EOpDivAssign: @@ -2083,7 +3235,7 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) return true; // Finish handling the case, for all ops, where there are two vectors of different sizes - if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize()) + if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize() && right->getVectorSize() > 1) return false; // @@ -2146,7 +3298,7 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) node.setOp(op = EOpMatrixTimesScalarAssign); } } else if (left->isMatrix() && right->isMatrix()) { - if (left->getMatrixCols() != left->getMatrixRows() || left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) + if (left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) return false; node.setOp(op = EOpMatrixTimesMatrixAssign); } else if (!left->isMatrix() && !right->isMatrix()) { @@ -2241,7 +3393,7 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) { TOperator op = node.getOp(); TIntermSequence& args = node.getSequence(); - const int numArgs = args.size(); + const int numArgs = static_cast(args.size()); // Presently, only hlsl does intrinsic promotions. if (getSource() != EShSourceHlsl) @@ -2256,8 +3408,8 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) case EOpDot: case EOpDst: case EOpFaceForward: - // case EOpFindMSB: TODO: ?? - // case EOpFindLSB: TODO: ?? + // case EOpFindMSB: TODO: + // case EOpFindLSB: TODO: case EOpFma: case EOpMod: case EOpFrexp: @@ -2267,11 +3419,11 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) case EOpMax: case EOpMin: case EOpModf: - // case EOpGenMul: TODO: ?? + // case EOpGenMul: TODO: case EOpPow: case EOpReflect: case EOpRefract: - // case EOpSinCos: TODO: ?? + // case EOpSinCos: TODO: case EOpSmoothStep: case EOpStep: break; @@ -2304,14 +3456,9 @@ bool TIntermediate::promoteAggregate(TIntermAggregate& node) return false; } - void TIntermBinary::updatePrecision() { -#ifdef AMD_EXTENSIONS if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { -#else - if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { -#endif getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision); if (getQualifier().precision != EpqNone) { left->propagatePrecision(getQualifier().precision); @@ -2322,11 +3469,7 @@ void TIntermBinary::updatePrecision() void TIntermTyped::propagatePrecision(TPrecisionQualifier newPrecision) { -#ifdef AMD_EXTENSIONS if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat && getBasicType() != EbtFloat16)) -#else - if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat)) -#endif return; getQualifier().precision = newPrecision; @@ -2401,9 +3544,7 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif leftUnionArray[i] = rightUnionArray[i]; break; default: @@ -2429,16 +3570,13 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif leftUnionArray[i] = rightUnionArray[i]; break; default: return node; } break; -#ifdef AMD_EXTENSIONS case EbtFloat16: switch (node->getType().getBasicType()) { case EbtInt: @@ -2465,7 +3603,6 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC return node; } break; -#endif case EbtInt: switch (node->getType().getBasicType()) { case EbtInt: @@ -2485,9 +3622,7 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif leftUnionArray[i].setIConst(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -2513,9 +3648,7 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif leftUnionArray[i].setUConst(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -2541,9 +3674,7 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif leftUnionArray[i].setBConst(rightUnionArray[i].getDConst() != 0.0); break; default: @@ -2569,9 +3700,7 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif leftUnionArray[i].setI64Const(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -2597,9 +3726,7 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif leftUnionArray[i].setU64Const(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -2617,11 +3744,88 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC node->getLoc()); } -void TIntermAggregate::addToPragmaTable(const TPragmaTable& pTable) +void TIntermAggregate::setPragmaTable(const TPragmaTable& pTable) { - assert(!pragmaTable); - pragmaTable = new TPragmaTable(); + assert(pragmaTable == nullptr); + pragmaTable = new TPragmaTable; *pragmaTable = pTable; } +// If either node is a specialization constant, while the other is +// a constant (or specialization constant), the result is still +// a specialization constant. +bool TIntermediate::specConstantPropagates(const TIntermTyped& node1, const TIntermTyped& node2) +{ + return (node1.getType().getQualifier().isSpecConstant() && node2.getType().getQualifier().isConstant()) || + (node2.getType().getQualifier().isSpecConstant() && node1.getType().getQualifier().isConstant()); +} + +struct TextureUpgradeAndSamplerRemovalTransform : public TIntermTraverser { + void visitSymbol(TIntermSymbol* symbol) override { + if (symbol->getBasicType() == EbtSampler && symbol->getType().getSampler().isTexture()) { + symbol->getWritableType().getSampler().combined = true; + } + } + bool visitAggregate(TVisit, TIntermAggregate* ag) override { + using namespace std; + TIntermSequence& seq = ag->getSequence(); + TQualifierList& qual = ag->getQualifierList(); + + // qual and seq are indexed using the same indices, so we have to modify both in lock-step + assert(seq.size() == qual.size() || qual.empty()); + + size_t write = 0; + for (size_t i = 0; i < seq.size(); ++i) { + TIntermSymbol* symbol = seq[i]->getAsSymbolNode(); + if (symbol && symbol->getBasicType() == EbtSampler && symbol->getType().getSampler().isPureSampler()) { + // remove pure sampler variables + continue; + } + + TIntermNode* result = seq[i]; + + // replace constructors with sampler/textures + TIntermAggregate *constructor = seq[i]->getAsAggregate(); + if (constructor && constructor->getOp() == EOpConstructTextureSampler) { + if (!constructor->getSequence().empty()) + result = constructor->getSequence()[0]; + } + + // write new node & qualifier + seq[write] = result; + if (!qual.empty()) + qual[write] = qual[i]; + write++; + } + + seq.resize(write); + if (!qual.empty()) + qual.resize(write); + + return true; + } +}; + +void TIntermediate::performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root) +{ + TextureUpgradeAndSamplerRemovalTransform transform; + root->traverse(&transform); +} + +const char* TIntermediate::getResourceName(TResourceType res) +{ + switch (res) { + case EResSampler: return "shift-sampler-binding"; + case EResTexture: return "shift-texture-binding"; + case EResImage: return "shift-image-binding"; + case EResUbo: return "shift-UBO-binding"; + case EResSsbo: return "shift-ssbo-binding"; + case EResUav: return "shift-uav-binding"; + default: + assert(0); // internal error: should only be called with valid resource types. + return nullptr; + } +} + + } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/LiveTraverser.h b/deps/glslang/glslang/glslang/MachineIndependent/LiveTraverser.h index af8f7755bc..7333bc964e 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/LiveTraverser.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/LiveTraverser.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,22 +19,21 @@ // 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 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 _MACHINE_INDEPENDENT_LIVE_TRAVERSER_H -#define _MACHINE_INDEPENDENT_LIVE_TRAVERSER_H +#pragma once #include "../Include/Common.h" #include "reflection.h" @@ -137,5 +136,3 @@ private: }; } // namespace glslang - -#endif diff --git a/deps/glslang/glslang/glslang/MachineIndependent/ParseContextBase.cpp b/deps/glslang/glslang/glslang/MachineIndependent/ParseContextBase.cpp index d084af8acf..bfa9de4dff 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/ParseContextBase.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/ParseContextBase.cpp @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // Implement the TParseContextBase class. @@ -129,6 +129,7 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, case EOpIndexIndirect: // fall through case EOpIndexDirectStruct: // fall through case EOpVectorSwizzle: + case EOpMatrixSwizzle: return lValueErrorCheck(loc, op, binaryNode->getLeft()); default: break; @@ -208,6 +209,7 @@ void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, case EOpIndexIndirect: case EOpIndexDirectStruct: case EOpVectorSwizzle: + case EOpMatrixSwizzle: rValueErrorCheck(loc, op, binaryNode->getLeft()); default: break; @@ -221,26 +223,44 @@ void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); } -// Add a linkage symbol node for 'symbol', which -// must have its type fully edited, as this will snapshot the type. -// It is okay if symbol becomes invalid before finish(). -void TParseContextBase::trackLinkage(TSymbol& symbol) -{ - if (!parsingBuiltins) - intermediate.addSymbolLinkageNode(linkage, symbol); -} - // Add 'symbol' to the list of deferred linkage symbols, which // are later processed in finish(), at which point the symbol // must still be valid. -// It is okay if the symbol's type will be subsequently edited. -void TParseContextBase::trackLinkageDeferred(TSymbol& symbol) +// It is okay if the symbol's type will be subsequently edited; +// the modifications will be tracked. +// Order is preserved, to avoid creating novel forward references. +void TParseContextBase::trackLinkage(TSymbol& symbol) { if (!parsingBuiltins) linkageSymbols.push_back(&symbol); } -// Make a shared symbol have a non-shared version that can be edited by the current +// Ensure index is in bounds, correct if necessary. +// Give an error if not. +void TParseContextBase::checkIndex(const TSourceLoc& loc, const TType& type, int& index) +{ + if (index < 0) { + error(loc, "", "[", "index out of range '%d'", index); + index = 0; + } else if (type.isArray()) { + if (type.isSizedArray() && index >= type.getOuterArraySize()) { + error(loc, "", "[", "array index out of range '%d'", index); + index = type.getOuterArraySize() - 1; + } + } else if (type.isVector()) { + if (index >= type.getVectorSize()) { + error(loc, "", "[", "vector index out of range '%d'", index); + index = type.getVectorSize() - 1; + } + } else if (type.isMatrix()) { + if (index >= type.getMatrixCols()) { + error(loc, "", "[", "matrix index out of range '%d'", index); + index = type.getMatrixCols() - 1; + } + } +} + +// Make a shared symbol have a non-shared version that can be edited by the current // compile, such that editing its type will not change the shared version and will // effect all nodes already sharing it (non-shallow type), // or adopting its full type after being edited (shallow type). @@ -251,7 +271,7 @@ void TParseContextBase::makeEditable(TSymbol*& symbol) // Save it (deferred, so it can be edited first) in the AST for linker use. if (symbol) - trackLinkageDeferred(*symbol); + trackLinkage(*symbol); } // Return a writable version of the variable 'name'. @@ -308,20 +328,20 @@ const TFunction* TParseContextBase::selectFunction( std::function better, /* output */ bool& tie) { -// +// // Operation -// +// // 1. Prune the input list of candidates down to a list of viable candidates, // where each viable candidate has -// +// // * at least as many parameters as there are calling arguments, with any // remaining parameters being optional or having default values // * each parameter is true under convertible(A, B), where A is the calling // type for in and B is the formal type, and in addition, for out B is the // calling type and A is the formal type -// +// // 2. If there are no viable candidates, return with no match. -// +// // 3. If there is only one viable candidate, it is the best match. // // 4. If there are multiple viable candidates, select the first viable candidate @@ -329,7 +349,7 @@ const TFunction* TParseContextBase::selectFunction( // that candidate is better (bullets below), make it the incumbent. Repeat, with // a linear walk through the viable candidate list. The final incumbent will be // returned as the best match. A viable candidate is better than the incumbent if -// +// // * it has a function argument with a better(...) conversion than the incumbent, // for all directions needed by in and out // * the incumbent has no argument with a better(...) conversion then the @@ -348,13 +368,18 @@ const TFunction* TParseContextBase::selectFunction( for (auto it = candidateList.begin(); it != candidateList.end(); ++it) { const TFunction& candidate = *(*it); - // to even be a potential match, number of arguments has to match - if (call.getParamCount() != candidate.getParamCount()) + // to even be a potential match, number of arguments must be >= the number of + // fixed (non-default) parameters, and <= the total (including parameter with defaults). + if (call.getParamCount() < candidate.getFixedParamCount() || + call.getParamCount() > candidate.getParamCount()) continue; // see if arguments are convertible bool viable = true; - for (int param = 0; param < candidate.getParamCount(); ++param) { + + // The call can have fewer parameters than the candidate, if some have defaults. + const int paramCount = std::min(call.getParamCount(), candidate.getParamCount()); + for (int param = 0; param < paramCount; ++param) { if (candidate[param].type->getQualifier().isParamInput()) { if (! convertible(*call[param].type, *candidate[param].type, candidate.getBuiltInOp(), param)) { viable = false; @@ -382,7 +407,7 @@ const TFunction* TParseContextBase::selectFunction( return viableCandidates.front(); // 4. find best... - auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { + const auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { // is call -> can2 better than call -> can1 for any parameter bool hasBetterParam = false; for (int param = 0; param < call.getParamCount(); ++param) { @@ -394,6 +419,16 @@ const TFunction* TParseContextBase::selectFunction( return hasBetterParam; }; + const auto equivalentParams = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { + // is call -> can2 equivalent to call -> can1 for all the call parameters? + for (int param = 0; param < call.getParamCount(); ++param) { + if (better(*call[param].type, *can1[param].type, *can2[param].type) || + better(*call[param].type, *can2[param].type, *can1[param].type)) + return false; + } + return true; + }; + const TFunction* incumbent = viableCandidates.front(); for (auto it = viableCandidates.begin() + 1; it != viableCandidates.end(); ++it) { const TFunction& candidate = *(*it); @@ -406,7 +441,10 @@ const TFunction* TParseContextBase::selectFunction( if (incumbent == *it) continue; const TFunction& candidate = *(*it); - if (betterParam(*incumbent, candidate)) + + // In the case of default parameters, it may have an identical initial set, which is + // also ambiguous + if (betterParam(*incumbent, candidate) || equivalentParams(*incumbent, candidate)) tie = true; } @@ -414,69 +452,162 @@ const TFunction* TParseContextBase::selectFunction( } // -// Make the passed-in variable information become a member of the -// global uniform block. If this doesn't exist yet, make it. +// Look at a '.' field selector string and change it into numerical selectors +// for a vector or scalar. // -void TParseContextBase::growGlobalUniformBlock(TSourceLoc& loc, TType& memberType, TString& memberName) +// Always return some form of swizzle, so the result is always usable. +// +void TParseContextBase::parseSwizzleSelector(const TSourceLoc& loc, const TString& compString, int vecSize, + TSwizzleSelectors& selector) { - // make the global block, if not yet made - if (globalUniformBlock == nullptr) { - TString& blockName = *NewPoolTString(getGlobalUniformBlockName()); - TQualifier blockQualifier; - blockQualifier.clear(); - blockQualifier.storage = EvqUniform; - TType blockType(new TTypeList, blockName, blockQualifier); - TString* instanceName = NewPoolTString(""); - globalUniformBlock = new TVariable(instanceName, blockType, true); - firstNewMember = 0; + // Too long? + if (compString.size() > MaxSwizzleSelectors) + error(loc, "vector swizzle too long", compString.c_str(), ""); + + // Use this to test that all swizzle characters are from the same swizzle-namespace-set + enum { + exyzw, + ergba, + estpq, + } fieldSet[MaxSwizzleSelectors]; + + // Decode the swizzle string. + int size = std::min(MaxSwizzleSelectors, (int)compString.size()); + for (int i = 0; i < size; ++i) { + switch (compString[i]) { + case 'x': + selector.push_back(0); + fieldSet[i] = exyzw; + break; + case 'r': + selector.push_back(0); + fieldSet[i] = ergba; + break; + case 's': + selector.push_back(0); + fieldSet[i] = estpq; + break; + + case 'y': + selector.push_back(1); + fieldSet[i] = exyzw; + break; + case 'g': + selector.push_back(1); + fieldSet[i] = ergba; + break; + case 't': + selector.push_back(1); + fieldSet[i] = estpq; + break; + + case 'z': + selector.push_back(2); + fieldSet[i] = exyzw; + break; + case 'b': + selector.push_back(2); + fieldSet[i] = ergba; + break; + case 'p': + selector.push_back(2); + fieldSet[i] = estpq; + break; + + case 'w': + selector.push_back(3); + fieldSet[i] = exyzw; + break; + case 'a': + selector.push_back(3); + fieldSet[i] = ergba; + break; + case 'q': + selector.push_back(3); + fieldSet[i] = estpq; + break; + + default: + error(loc, "unknown swizzle selection", compString.c_str(), ""); + break; + } } - // add the requested member as a member to the block - TType* type = new TType; - type->shallowCopy(memberType); - type->setFieldName(memberName); - TTypeLoc typeLoc = {type, loc}; - globalUniformBlock->getType().getWritableStruct()->push_back(typeLoc); + // Additional error checking. + for (int i = 0; i < selector.size(); ++i) { + if (selector[i] >= vecSize) { + error(loc, "vector swizzle selection out of range", compString.c_str(), ""); + selector.resize(i); + break; + } + + if (i > 0 && fieldSet[i] != fieldSet[i-1]) { + error(loc, "vector swizzle selectors not from the same set", compString.c_str(), ""); + selector.resize(i); + break; + } + } + + // Ensure it is valid. + if (selector.size() == 0) + selector.push_back(0); } // -// Insert into the symbol table the global uniform block created in -// growGlobalUniformBlock(). The variables added as members won't be -// found unless this is done. +// Make the passed-in variable information become a member of the +// global uniform block. If this doesn't exist yet, make it. // -bool TParseContextBase::insertGlobalUniformBlock() +void TParseContextBase::growGlobalUniformBlock(const TSourceLoc& loc, TType& memberType, const TString& memberName, TTypeList* typeList) { - if (globalUniformBlock == nullptr) - return true; + // Make the global block, if not yet made. + if (globalUniformBlock == nullptr) { + TQualifier blockQualifier; + blockQualifier.clear(); + blockQualifier.storage = EvqUniform; + TType blockType(new TTypeList, *NewPoolTString(getGlobalUniformBlockName()), blockQualifier); + setUniformBlockDefaults(blockType); + globalUniformBlock = new TVariable(NewPoolTString(""), blockType, true); + firstNewMember = 0; + } - int numMembers = (int)globalUniformBlock->getType().getStruct()->size(); - bool inserted = false; + // Update with binding and set + globalUniformBlock->getWritableType().getQualifier().layoutBinding = globalUniformBinding; + globalUniformBlock->getWritableType().getQualifier().layoutSet = globalUniformSet; + + // Add the requested member as a member to the global block. + TType* type = new TType; + type->shallowCopy(memberType); + type->setFieldName(memberName); + if (typeList) + type->setStruct(typeList); + TTypeLoc typeLoc = {type, loc}; + globalUniformBlock->getType().getWritableStruct()->push_back(typeLoc); + + // Insert into the symbol table. if (firstNewMember == 0) { // This is the first request; we need a normal symbol table insert - inserted = symbolTable.insert(*globalUniformBlock); - if (inserted) - trackLinkageDeferred(*globalUniformBlock); - } else if (firstNewMember <= numMembers) { + if (symbolTable.insert(*globalUniformBlock)) + trackLinkage(*globalUniformBlock); + else + error(loc, "failed to insert the global constant buffer", "uniform", ""); + } else { // This is a follow-on request; we need to amend the first insert - inserted = symbolTable.amend(*globalUniformBlock, firstNewMember); + symbolTable.amend(*globalUniformBlock, firstNewMember); } - if (inserted) { - finalizeGlobalUniformBlockLayout(*globalUniformBlock); - firstNewMember = numMembers; - } - - return inserted; + ++firstNewMember; } void TParseContextBase::finish() { - if (!parsingBuiltins) { - // Transfer te linkage symbols to AST nodes - for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i) - intermediate.addSymbolLinkageNode(linkage, **i); - intermediate.addSymbolLinkageNodes(linkage, getLanguage(), symbolTable); - } + if (parsingBuiltins) + return; + + // Transfer the linkage symbols to AST nodes, preserving order. + TIntermAggregate* linkage = new TIntermAggregate; + for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i) + intermediate.addSymbolLinkageNode(linkage, **i); + intermediate.addSymbolLinkageNodes(linkage, getLanguage(), symbolTable); } } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.cpp b/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.cpp old mode 100644 new mode 100755 index ed043e0a01..828e49651f --- a/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.cpp @@ -1,13 +1,14 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2015 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2015 LunarG, Inc. +// Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +22,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 "ParseHelper.h" @@ -49,10 +50,12 @@ namespace glslang { TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, - TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : - TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), - contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), statementNestingLevel(0), - inMain(false), postMainReturn(false), currentFunctionType(nullptr), blockName(nullptr), + TInfoSink& infoSink, bool forwardCompatible, EShMessages messages, + const TString* entryPoint) : + TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, + infoSink, forwardCompatible, messages, entryPoint), + inMain(false), + blockName(nullptr), limits(resources.limits), atomicUintOffsets(nullptr), anyIndexLimits(false) { @@ -76,7 +79,7 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b globalInputDefaults.clear(); globalOutputDefaults.clear(); - // "Shaders in the transform + // "Shaders in the transform // feedback capturing mode have an initial global default of // layout(xfb_buffer = 0) out;" if (language == EShLangVertex || @@ -87,6 +90,9 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b if (language == EShLangGeometry) globalOutputDefaults.layoutStream = 0; + + if (entryPoint != nullptr && entryPoint->size() > 0 && *entryPoint != "main") + infoSink.info.message(EPrefixError, "Source entry point must be \"main\""); } TParseContext::~TParseContext() @@ -121,11 +127,6 @@ void TParseContext::setPrecisionDefaults() sampler.set(EbtFloat, Esd2D); sampler.external = true; defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; - } else { - // Non-ES profile - // All default to highp. - for (int type = 0; type < maxSamplerIndex; ++type) - defaultSamplerPrecision[type] = EpqHigh; } // If we are parsing built-in computational variables/functions, it is meaningful to record @@ -141,6 +142,13 @@ void TParseContext::setPrecisionDefaults() defaultPrecision[EbtUint] = EpqHigh; defaultPrecision[EbtFloat] = EpqHigh; } + + if (profile != EEsProfile) { + // Non-ES profile + // All sampler precisions default to highp. + for (int type = 0; type < maxSamplerIndex; ++type) + defaultSamplerPrecision[type] = EpqHigh; + } } defaultPrecision[EbtSampler] = EpqLow; @@ -255,107 +263,14 @@ void TParseContext::handlePragma(const TSourceLoc& loc, const TVector& error(loc, "\")\" expected to end 'debug' pragma", "#pragma", ""); return; } - } -} - -/////////////////////////////////////////////////////////////////////// -// -// Sub- vector and matrix fields -// -//////////////////////////////////////////////////////////////////////// - -// -// Look at a '.' field selector string and change it into offsets -// for a vector or scalar -// -// Returns true if there is no error. -// -bool TParseContext::parseVectorFields(const TSourceLoc& loc, const TString& compString, int vecSize, TVectorFields& fields) -{ - fields.num = (int)compString.size(); - if (fields.num > 4) { - error(loc, "illegal vector field selection", compString.c_str(), ""); - return false; - } - - enum { - exyzw, - ergba, - estpq, - } fieldSet[4]; - - for (int i = 0; i < fields.num; ++i) { - switch (compString[i]) { - case 'x': - fields.offsets[i] = 0; - fieldSet[i] = exyzw; - break; - case 'r': - fields.offsets[i] = 0; - fieldSet[i] = ergba; - break; - case 's': - fields.offsets[i] = 0; - fieldSet[i] = estpq; - break; - case 'y': - fields.offsets[i] = 1; - fieldSet[i] = exyzw; - break; - case 'g': - fields.offsets[i] = 1; - fieldSet[i] = ergba; - break; - case 't': - fields.offsets[i] = 1; - fieldSet[i] = estpq; - break; - case 'z': - fields.offsets[i] = 2; - fieldSet[i] = exyzw; - break; - case 'b': - fields.offsets[i] = 2; - fieldSet[i] = ergba; - break; - case 'p': - fields.offsets[i] = 2; - fieldSet[i] = estpq; - break; - - case 'w': - fields.offsets[i] = 3; - fieldSet[i] = exyzw; - break; - case 'a': - fields.offsets[i] = 3; - fieldSet[i] = ergba; - break; - case 'q': - fields.offsets[i] = 3; - fieldSet[i] = estpq; - break; - default: - error(loc, "illegal vector field selection", compString.c_str(), ""); - return false; - } - } - - for (int i = 0; i < fields.num; ++i) { - if (fields.offsets[i] >= vecSize) { - error(loc, "vector field selection out of range", compString.c_str(), ""); - return false; - } - - if (i > 0) { - if (fieldSet[i] != fieldSet[i-1]) { - error(loc, "illegal - vector component fields not from the same set", compString.c_str(), ""); - return false; - } - } - } - - return true; + } else if (spvVersion.spv > 0 && tokens[0].compare("use_storage_buffer") == 0) { + if (tokens.size() != 1) + error(loc, "extra tokens", "#pragma", ""); + intermediate.setUseStorageBuffer(); + } else if (tokens[0].compare("once") == 0) { + warn(loc, "not implemented", "#pragma once", ""); + } else if (tokens[0].compare("glslang_binary_double_output") == 0) + intermediate.setBinaryDoubleOutput(); } // @@ -370,17 +285,17 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); if (symbol && symbol->isReadOnly()) { - // All shared things containing an implicitly sized array must be copied up + // All shared things containing an unsized array must be copied up // on first use, so that all future references will share its array structure, // so that editing the implicit size will effect all nodes consuming it, // and so that editing the implicit size won't change the shared one. // - // If this is a variable or a block, check it and all it contains, but if this + // If this is a variable or a block, check it and all it contains, but if this // is a member of an anonymous block, check the whole block, as the whole block - // will need to be copied up if it contains an implicitly-sized array. - if (symbol->getType().containsImplicitlySizedArray() || + // will need to be copied up if it contains an unsized array. + if (symbol->getType().containsUnsizedArray() || (symbol->getAsAnonMember() && - symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) + symbol->getAsAnonMember()->getAnonContainer().getType().containsUnsizedArray())) makeEditable(symbol); } @@ -442,10 +357,8 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn TIntermTyped* result = nullptr; int indexValue = 0; - if (index->getQualifier().isFrontEndConstant()) { + if (index->getQualifier().isFrontEndConstant()) indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); - checkIndex(loc, base->getType(), indexValue); - } variableCheck(base); if (! base->isArray() && ! base->isMatrix() && ! base->isVector()) { @@ -453,30 +366,43 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn 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().isFrontEndConstant() && index->getQualifier().isFrontEndConstant()) + } else if (base->getType().getQualifier().isFrontEndConstant() && index->getQualifier().isFrontEndConstant()) { + // 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... + } else { + // at least one of base and index is not a front-end constant variable... + + if (index->getQualifier().isFrontEndConstant()) + checkIndex(loc, base->getType(), indexValue); if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) handleIoResizeArrayAccess(loc, base); if (index->getQualifier().isFrontEndConstant()) { - if (base->getType().isImplicitlySizedArray()) - updateImplicitArraySize(loc, base, indexValue); + if (base->getType().isUnsizedArray()) + base->getWritableType().updateImplicitArraySize(indexValue + 1); + else + checkIndex(loc, base->getType(), indexValue); result = intermediate.addIndex(EOpIndexDirect, base, index, loc); } else { - if (base->getType().isImplicitlySizedArray()) { + if (base->getType().isUnsizedArray()) { + // we have a variable index into an unsized array, which is okay, + // depending on the situation if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) error(loc, "", "[", "array must be sized by a redeclaration or layout qualifier before being indexed with a variable"); - else - error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable"); + else { + // it is okay for a run-time sized array + checkRuntimeSizable(loc, *base); + } + base->getWritableType().setArrayVariablyIndexed(); } if (base->getBasicType() == EbtBlock) { if (base->getQualifier().storage == EvqBuffer) requireProfile(base->getLoc(), ~EEsProfile, "variable indexing buffer block array"); else if (base->getQualifier().storage == EvqUniform) - profileRequires(base->getLoc(), EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "variable indexing uniform block array"); + profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, + "variable indexing uniform block array"); else { // input/output blocks either don't exist or can be variable indexed } @@ -485,7 +411,7 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn else if (base->getBasicType() == EbtSampler && version >= 130) { const char* explanation = "variable indexing sampler array"; requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation); - profileRequires(base->getLoc(), EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation); + profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation); profileRequires(base->getLoc(), ECoreProfile | ECompatibilityProfile, 400, nullptr, explanation); } @@ -510,6 +436,10 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn } result->setType(newType); + // Propagate nonuniform + if (base->getQualifier().isNonUniform() || index->getQualifier().isNonUniform()) + result->getWritableType().getQualifier().nonUniform = true; + if (anyIndexLimits) handleIndexLimits(loc, base, index); } @@ -517,29 +447,6 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn return result; } -void TParseContext::checkIndex(const TSourceLoc& loc, const TType& type, int& index) -{ - if (index < 0) { - error(loc, "", "[", "index out of range '%d'", index); - index = 0; - } else if (type.isArray()) { - if (type.isExplicitlySizedArray() && index >= type.getOuterArraySize()) { - error(loc, "", "[", "array index out of range '%d'", index); - index = type.getOuterArraySize() - 1; - } - } else if (type.isVector()) { - if (index >= type.getVectorSize()) { - error(loc, "", "[", "vector index out of range '%d'", index); - index = type.getVectorSize() - 1; - } - } else if (type.isMatrix()) { - if (index >= type.getMatrixCols()) { - error(loc, "", "[", "matrix index out of range '%d'", index); - index = type.getMatrixCols() - 1; - } - } -} - // for ES 2.0 (version 100) limitations for almost all index operations except vertex-shader uniforms void TParseContext::handleIndexLimits(const TSourceLoc& /*loc*/, TIntermTyped* base, TIntermTyped* index) { @@ -558,7 +465,7 @@ void TParseContext::handleIndexLimits(const TSourceLoc& /*loc*/, TIntermTyped* b } } -// Make a shared symbol have a non-shared version that can be edited by the current +// Make a shared symbol have a non-shared version that can be edited by the current // compile, such that editing its type will not change the shared version and will // effect all nodes sharing it. void TParseContext::makeEditable(TSymbol*& symbol) @@ -591,7 +498,7 @@ void TParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type) if (language == EShLangTessControl || language == EShLangTessEvaluation) { if (type.getOuterArraySize() != resources.maxPatchVertices) { - if (type.isExplicitlySizedArray()) + if (type.isSizedArray()) error(loc, "tessellation input array size must be gl_MaxPatchVertices or implicitly sized", "[]", ""); type.changeOuterArraySize(resources.maxPatchVertices); } @@ -600,11 +507,15 @@ void TParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type) // Issue any errors if the non-array object is missing arrayness WRT // shader I/O that has array requirements. -// All arrayness checking is handled in array paths, this is for +// All arrayness checking is handled in array paths, this is for void TParseContext::ioArrayCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) { if (! type.isArray() && ! symbolTable.atBuiltInLevel()) { - if (type.getQualifier().isArrayedIo(language)) + if (type.getQualifier().isArrayedIo(language) +#ifdef NV_EXTENSIONS + && !type.getQualifier().layoutPassthrough +#endif + ) error(loc, "type must be an array:", type.getStorageQualifierString(), identifier.c_str()); } } @@ -620,7 +531,7 @@ void TParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TInterm return; // fix array size, if it can be fixed and needs to be fixed (will allow variable indexing) - if (symbolNode->getType().isImplicitlySizedArray()) { + if (symbolNode->getType().isUnsizedArray()) { int newSize = getIoArrayImplicitSize(); if (newSize > 0) symbolNode->getWritableType().changeOuterArraySize(newSize); @@ -629,7 +540,7 @@ void TParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TInterm // If there has been an input primitive declaration (geometry shader) or an output // number of vertices declaration(tessellation shader), make sure all input array types -// match it in size. Types come either from nodes in the AST or symbols in the +// match it in size. Types come either from nodes in the AST or symbols in the // symbol table. // // Types without an array size will be given one. @@ -670,7 +581,7 @@ int TParseContext::getIoArrayImplicitSize() const void TParseContext::checkIoArrayConsistency(const TSourceLoc& loc, int requiredSize, const char* feature, TType& type, const TString& name) { - if (type.isImplicitlySizedArray()) + if (type.isUnsizedArray()) type.changeOuterArraySize(requiredSize); else if (type.getOuterArraySize() != requiredSize) { if (language == EShLangGeometry) @@ -725,7 +636,7 @@ TIntermTyped* TParseContext::handleUnaryMath(const TSourceLoc& loc, const char* return result; else unaryOpError(loc, str, childNode->getCompleteString()); - + return childNode; } @@ -738,7 +649,7 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm // // .length() can't be resolved until we later see the function-calling syntax. - // Save away the name in the AST for now. Processing is completed in + // Save away the name in the AST for now. Processing is completed in // handleLengthMethod(). // if (field == "length") { @@ -770,24 +681,22 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm // leaving swizzles and struct/block dereferences. TIntermTyped* result = base; - if (base->isVector() || base->isScalar()) { + if ((base->isVector() || base->isScalar()) && + (base->isFloatingDomain() || base->isIntegerDomain() || base->getBasicType() == EbtBool)) { if (base->isScalar()) { const char* dotFeature = "scalar swizzle"; requireProfile(loc, ~EEsProfile, dotFeature); profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, dotFeature); } - TVectorFields fields; - if (! parseVectorFields(loc, field, base->getVectorSize(), fields)) { - fields.num = 1; - fields.offsets[0] = 0; - } + TSwizzleSelectors selectors; + parseSwizzleSelector(loc, field, base->getVectorSize(), selectors); if (base->isScalar()) { - if (fields.num == 1) + if (selectors.size() == 1) return result; else { - TType type(base->getBasicType(), EvqTemporary, fields.num); + TType type(base->getBasicType(), EvqTemporary, selectors.size()); // Swizzle operations propagate specialization-constantness if (base->getQualifier().isSpecConstant()) type.getQualifier().makeSpecConstant(); @@ -796,17 +705,16 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm } if (base->getType().getQualifier().isFrontEndConstant()) - result = intermediate.foldSwizzle(base, fields, loc); + result = intermediate.foldSwizzle(base, selectors, loc); else { - if (fields.num == 1) { - TIntermTyped* index = intermediate.addConstantUnion(fields.offsets[0], loc); + if (selectors.size() == 1) { + TIntermTyped* index = intermediate.addConstantUnion(selectors[0], loc); result = intermediate.addIndex(EOpIndexDirect, base, index, loc); result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision)); } else { - TString vectorString = field; - TIntermTyped* index = intermediate.addSwizzle(fields, loc); + TIntermTyped* index = intermediate.addSwizzle(selectors, loc); result = intermediate.addIndex(EOpVectorSwizzle, base, index, loc); - result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, (int)vectorString.size())); + result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, selectors.size())); } // Swizzle operations propagate specialization-constantness if (base->getType().getQualifier().isSpecConstant()) @@ -840,6 +748,10 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm if (base->getQualifier().noContraction) result->getWritableType().getQualifier().noContraction = true; + // Propagate nonuniform + if (base->getQualifier().isNonUniform()) + result->getWritableType().getQualifier().nonUniform = true; + return result; } @@ -884,7 +796,7 @@ TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunct if (prevDec->isPrototyped() && prototype) profileRequires(loc, EEsProfile, 300, nullptr, "multiple prototypes for same function"); if (prevDec->getType() != function.getType()) - error(loc, "overloaded functions must have the same return type", function.getType().getBasicTypeString().c_str(), ""); + error(loc, "overloaded functions must have the same return type", function.getName().c_str(), ""); for (int i = 0; i < prevDec->getParamCount(); ++i) { if ((*prevDec)[i].type->getQualifier().storage != function[i].type->getQualifier().storage) error(loc, "overloaded functions must have the same parameter storage qualifiers for argument", function[i].type->getStorageQualifierString(), "%d", i+1); @@ -902,7 +814,7 @@ TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunct if (symbolTable.atBuiltInLevel()) function.setDefined(); else { - if (prevDec && ! builtIn) + if (prevDec && ! builtIn) symbol->getAsFunction()->setPrototyped(); // need a writable one, but like having prevDec as a const function.setPrototyped(); } @@ -922,7 +834,7 @@ TFunction* TParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunct } // -// Handle seeing the function prototype in front of a function definition in the grammar. +// Handle seeing the function prototype in front of a function definition in the grammar. // The body is handled after this function returns. // TIntermAggregate* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function) @@ -1006,7 +918,7 @@ TIntermAggregate* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, loopNestingLevel = 0; statementNestingLevel = 0; controlFlowNestingLevel = 0; - postMainReturn = false; + postEntryPointReturn = false; return paramNodes; } @@ -1058,7 +970,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (builtIn && fnCandidate->getNumExtensions()) requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str()); - if (arguments) { + if (arguments != nullptr) { // Make sure qualifications work for these arguments. TIntermAggregate* aggregate = arguments->getAsAggregate(); for (int i = 0; i < fnCandidate->getParamCount(); ++i) { @@ -1083,10 +995,10 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (argQualifier.writeonly && ! formalQualifier.writeonly) error(arguments->getLoc(), message, "writeonly", ""); } - // TODO 4.5 functionality: A shader will fail to compile + // TODO 4.5 functionality: A shader will fail to compile // if the value passed to the memargument of an atomic memory function does not correspond to a buffer or - // shared variable. It is acceptable to pass an element of an array or a single component of a vector to the - // memargument of an atomic memory function, as long as the underlying array or vector is a buffer or + // shared variable. It is acceptable to pass an element of an array or a single component of a vector to the + // memargument of an atomic memory function, as long as the underlying array or vector is a buffer or // shared variable. } @@ -1096,7 +1008,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (builtIn && fnCandidate->getBuiltInOp() != EOpNull) { // A function call mapped to a built-in operation. - result = handleBuiltInFunctionCall(loc, *arguments, *fnCandidate); + result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate); } 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. @@ -1144,20 +1056,24 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction return result; } -TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNode& arguments, +TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNode* arguments, const TFunction& function) { checkLocation(loc, function.getBuiltInOp()); TIntermTyped *result = intermediate.addBuiltInFunctionCall(loc, function.getBuiltInOp(), function.getParamCount() == 1, - &arguments, function.getType()); + arguments, function.getType()); if (obeyPrecisionQualifiers()) computeBuiltinPrecisions(*result, function); - if (result == nullptr) { - error(arguments.getLoc(), " wrong operand type", "Internal Error", - "built in unary operator function. Type: %s", - static_cast(&arguments)->getCompleteString().c_str()); + if (result == nullptr) { + if (arguments == nullptr) + error(loc, " wrong operand type", "Internal Error", + "built in unary operator function. Type: %s", ""); + else + 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, function, *result->getAsOperator()); @@ -1209,7 +1125,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction operationPrecision = std::max(function[0].type->getQualifier().precision, unaryNode->getOperand()->getType().getQualifier().precision); if (function.getType().getBasicType() != EbtBool) - resultPrecision = function.getType().getQualifier().precision == EpqNone ? + resultPrecision = function.getType().getQualifier().precision == EpqNone ? operationPrecision : function.getType().getQualifier().precision; } else if (TIntermAggregate* agg = node.getAsAggregate()) { @@ -1236,10 +1152,16 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision); } // compute the result precision +#ifdef AMD_EXTENSIONS + if (agg->isSampling() || + agg->getOp() == EOpImageLoad || agg->getOp() == EOpImageStore || + agg->getOp() == EOpImageLoadLod || agg->getOp() == EOpImageStoreLod) +#else if (agg->isSampling() || agg->getOp() == EOpImageLoad || agg->getOp() == EOpImageStore) +#endif resultPrecision = sequence[0]->getAsTyped()->getQualifier().precision; else if (function.getType().getBasicType() != EbtBool) - resultPrecision = function.getType().getQualifier().precision == EpqNone ? + resultPrecision = function.getType().getQualifier().precision == EpqNone ? operationPrecision : function.getType().getQualifier().precision; } @@ -1287,7 +1209,7 @@ void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op) error(loc, "tessellation control barrier() cannot be placed within flow control", "", ""); if (! inMain) error(loc, "tessellation control barrier() must be in main()", "", ""); - else if (postMainReturn) + else if (postEntryPointReturn) error(loc, "tessellation control barrier() cannot be placed after a return from main()", "", ""); } break; @@ -1297,7 +1219,7 @@ void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op) } // Finish processing object.length(). This started earlier in handleDotDereference(), where -// the ".length" part was recognized and semantically checked, and finished here where the +// the ".length" part was recognized and semantically checked, and finished here where the // function syntax "()" is recognized. // // Return resulting tree node. @@ -1310,13 +1232,10 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction else { const TType& type = intermNode->getAsTyped()->getType(); if (type.isArray()) { - if (type.isRuntimeSizedArray()) { - // Create a unary op and let the back end handle it - return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); - } else if (type.isImplicitlySizedArray()) { + if (type.isUnsizedArray()) { if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) { - // We could be between a layout declaration that gives a built-in io array implicit size and - // a user redeclaration of that array, meaning we have to substitute its implicit size here + // We could be between a layout declaration that gives a built-in io array implicit size and + // a user redeclaration of that array, meaning we have to substitute its implicit size here // without actually redeclaring the array. (It is an error to use a member before the // redeclaration, but not an error to use the array name itself.) const TString& name = intermNode->getAsSymbolNode()->getName(); @@ -1326,7 +1245,10 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction if (length == 0) { if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier"); - else + else if (isRuntimeLength(*intermNode->getAsTyped())) { + // Create a unary op and let the back end handle it + return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); + } else error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method"); } } else if (type.getOuterArrayNode()) { @@ -1479,8 +1401,9 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan unaryArg = callNode.getAsUnaryNode()->getOperand(); arg0 = unaryArg; } - const TIntermSequence& aggArgs = *argp; // only valid when unaryArg is nullptr + TString featureString; + const char* feature = nullptr; switch (callNode.getOp()) { case EOpTextureGather: case EOpTextureGatherOffset: @@ -1489,8 +1412,9 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan // 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(); + featureString = fnCandidate.getName(); + featureString += "(...)"; + feature = featureString.c_str(); profileRequires(loc, EEsProfile, 310, nullptr, feature); int compArg = -1; // track which argument, if any, is the constant component argument switch (callNode.getOp()) { @@ -1510,8 +1434,9 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_texture_gather, feature); else profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); - if (! aggArgs[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) - profileRequires(loc, EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "non-constant offset argument"); + if (! (*argp)[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) + profileRequires(loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, + "non-constant offset argument"); if (! fnCandidate[0].type->getSampler().shadow) compArg = 3; break; @@ -1520,7 +1445,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan if (! fnCandidate[0].type->getSampler().shadow) compArg = 3; // check for constant offsets - if (! aggArgs[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) + if (! (*argp)[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion()) error(loc, "must be a compile-time constant:", feature, "offsets argument"); break; default: @@ -1528,17 +1453,99 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan } if (compArg > 0 && compArg < fnCandidate.getParamCount()) { - if (aggArgs[compArg]->getAsConstantUnion()) { - int value = aggArgs[compArg]->getAsConstantUnion()->getConstArray()[0].getIConst(); + if ((*argp)[compArg]->getAsConstantUnion()) { + int value = (*argp)[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"); } +#ifdef AMD_EXTENSIONS + bool bias = false; + if (callNode.getOp() == EOpTextureGather) + bias = fnCandidate.getParamCount() > 3; + else if (callNode.getOp() == EOpTextureGatherOffset || + callNode.getOp() == EOpTextureGatherOffsets) + bias = fnCandidate.getParamCount() > 4; + + if (bias) { + featureString = fnCandidate.getName(); + featureString += "with bias argument"; + feature = featureString.c_str(); + profileRequires(loc, ~EEsProfile, 450, nullptr, feature); + requireExtensions(loc, 1, &E_GL_AMD_texture_gather_bias_lod, feature); + } +#endif + break; } +#ifdef AMD_EXTENSIONS + case EOpSparseTextureGather: + case EOpSparseTextureGatherOffset: + case EOpSparseTextureGatherOffsets: + { + bool bias = false; + if (callNode.getOp() == EOpSparseTextureGather) + bias = fnCandidate.getParamCount() > 4; + else if (callNode.getOp() == EOpSparseTextureGatherOffset || + callNode.getOp() == EOpSparseTextureGatherOffsets) + bias = fnCandidate.getParamCount() > 5; + + if (bias) { + featureString = fnCandidate.getName(); + featureString += "with bias argument"; + feature = featureString.c_str(); + profileRequires(loc, ~EEsProfile, 450, nullptr, feature); + requireExtensions(loc, 1, &E_GL_AMD_texture_gather_bias_lod, feature); + } + + break; + } + + case EOpSparseTextureGatherLod: + case EOpSparseTextureGatherLodOffset: + case EOpSparseTextureGatherLodOffsets: + { + requireExtensions(loc, 1, &E_GL_ARB_sparse_texture2, fnCandidate.getName().c_str()); + break; + } + + case EOpSwizzleInvocations: + { + if (! (*argp)[1]->getAsConstantUnion()) + error(loc, "argument must be compile-time constant", "offset", ""); + else { + unsigned offset[4] = {}; + offset[0] = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getUConst(); + offset[1] = (*argp)[1]->getAsConstantUnion()->getConstArray()[1].getUConst(); + offset[2] = (*argp)[1]->getAsConstantUnion()->getConstArray()[2].getUConst(); + offset[3] = (*argp)[1]->getAsConstantUnion()->getConstArray()[3].getUConst(); + if (offset[0] > 3 || offset[1] > 3 || offset[2] > 3 || offset[3] > 3) + error(loc, "components must be in the range [0, 3]", "offset", ""); + } + + break; + } + + case EOpSwizzleInvocationsMasked: + { + if (! (*argp)[1]->getAsConstantUnion()) + error(loc, "argument must be compile-time constant", "mask", ""); + else { + unsigned mask[3] = {}; + mask[0] = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getUConst(); + mask[1] = (*argp)[1]->getAsConstantUnion()->getConstArray()[1].getUConst(); + mask[2] = (*argp)[1]->getAsConstantUnion()->getConstArray()[2].getUConst(); + if (mask[0] > 31 || mask[1] > 31 || mask[2] > 31) + error(loc, "components must be in the range [0, 31]", "mask", ""); + } + + break; + } +#endif + case EOpTextureOffset: case EOpTextureFetchOffset: case EOpTextureProjOffset: @@ -1564,12 +1571,18 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan } if (arg > 0) { - if (! aggArgs[arg]->getAsConstantUnion()) + +#ifdef AMD_EXTENSIONS + bool f16ShadowCompare = (*argp)[1]->getAsTyped()->getBasicType() == EbtFloat16 && arg0->getType().getSampler().shadow; + if (f16ShadowCompare) + ++arg; +#endif + if (! (*argp)[arg]->getAsConstantUnion()) error(loc, "argument must be compile-time constant", "texel offset", ""); else { - const TType& type = aggArgs[arg]->getAsTyped()->getType(); + const TType& type = (*argp)[arg]->getAsTyped()->getType(); for (int c = 0; c < type.getVectorSize(); ++c) { - int offset = aggArgs[arg]->getAsConstantUnion()->getConstArray()[c].getIConst(); + int offset = (*argp)[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]"); } @@ -1600,7 +1613,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan if (imageType.getQualifier().layoutFormat != ElfR32i && imageType.getQualifier().layoutFormat != ElfR32ui) error(loc, "only supported on image with format r32i or r32ui", fnCandidate.getName().c_str(), ""); } else { - if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) + if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) error(loc, "only supported on integer images", fnCandidate.getName().c_str(), ""); else if (imageType.getQualifier().layoutFormat != ElfR32f && profile == EEsProfile) error(loc, "only supported on image with format r32f", fnCandidate.getName().c_str(), ""); @@ -1609,9 +1622,29 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan break; } +#ifdef NV_EXTENSIONS + case EOpAtomicAdd: + case EOpAtomicMin: + case EOpAtomicMax: + case EOpAtomicAnd: + case EOpAtomicOr: + case EOpAtomicXor: + case EOpAtomicExchange: + case EOpAtomicCompSwap: + { + if (arg0->getType().getBasicType() == EbtInt64 || arg0->getType().getBasicType() == EbtUint64) + requireExtensions(loc, 1, &E_GL_NV_shader_atomic_int64, fnCandidate.getName().c_str()); + + break; + } +#endif + case EOpInterpolateAtCentroid: case EOpInterpolateAtSample: case EOpInterpolateAtOffset: +#ifdef AMD_EXTENSIONS + case EOpInterpolateAtVertex: +#endif // 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. @@ -1626,6 +1659,23 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan if (base == nullptr || base->getType().getQualifier().storage != EvqVaryingIn) error(loc, "first argument must be an interpolant, or interpolant-array element", fnCandidate.getName().c_str(), ""); } + +#ifdef AMD_EXTENSIONS + if (callNode.getOp() == EOpInterpolateAtVertex) { + if (!arg0->getType().getQualifier().isExplicitInterpolation()) + error(loc, "argument must be qualified as __explicitInterpAMD in", "interpolant", ""); + else { + if (! (*argp)[1]->getAsConstantUnion()) + error(loc, "argument must be compile-time constant", "vertex index", ""); + else { + unsigned vertexIdx = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getUConst(); + if (vertexIdx > 2) + error(loc, "must be in the range [0, 2]", "vertex index", ""); + } + } + } +#endif + break; case EOpEmitStreamVertex: @@ -1633,9 +1683,33 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan intermediate.setMultiStream(); break; + case EOpSubgroupClusteredAdd: + case EOpSubgroupClusteredMul: + case EOpSubgroupClusteredMin: + case EOpSubgroupClusteredMax: + case EOpSubgroupClusteredAnd: + case EOpSubgroupClusteredOr: + case EOpSubgroupClusteredXor: + if ((*argp)[1]->getAsConstantUnion() == nullptr) + error(loc, "argument must be compile-time constant", "cluster size", ""); + else { + int size = (*argp)[1]->getAsConstantUnion()->getConstArray()[0].getIConst(); + if (size < 1) + error(loc, "argument must be at least 1", "cluster size", ""); + else if (!IsPow2(size)) + error(loc, "argument must be a power of 2", "cluster size", ""); + } + break; + default: break; } + + if (callNode.getOp() > EOpSubgroupGuardStart && callNode.getOp() < EOpSubgroupGuardStop) { + // these require SPIR-V 1.3 + if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_3) + error(loc, "requires SPIR-V 1.3", "subgroup op", ""); + } } extern bool PureOperatorBuiltins; @@ -1650,7 +1724,7 @@ extern bool PureOperatorBuiltins; // void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fnCandidate, TIntermAggregate& callNode) { - // Further maintenance of this function is deprecated, because the "correct" + // Further maintenance of this function is deprecated, because the "correct" // future-oriented design is to not have to do string compares on function names. // If PureOperatorBuiltins == true, then all built-ins should be mapped @@ -1678,7 +1752,8 @@ void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fn profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature); int offsetArg = fnCandidate[0].type->getSampler().shadow ? 3 : 2; if (! callNode.getSequence()[offsetArg]->getAsConstantUnion()) - profileRequires(loc, EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "non-constant offset argument"); + profileRequires(loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, + "non-constant offset argument"); if (! fnCandidate[0].type->getSampler().shadow) compArg = 3; } else if (fnCandidate.getName().compare("textureGatherOffsets") == 0) { @@ -1755,7 +1830,7 @@ void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fn if (imageType.getQualifier().layoutFormat != ElfR32i && imageType.getQualifier().layoutFormat != ElfR32ui) error(loc, "only supported on image with format r32i or r32ui", fnCandidate.getName().c_str(), ""); } else { - if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) + if (fnCandidate.getName().compare(0, 19, "imageAtomicExchange") != 0) error(loc, "only supported on integer images", fnCandidate.getName().c_str(), ""); else if (imageType.getQualifier().layoutFormat != ElfR32f && profile == EEsProfile) error(loc, "only supported on image with format r32f", fnCandidate.getName().c_str(), ""); @@ -2196,6 +2271,15 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T case EOpConstructDMat4x2: case EOpConstructDMat4x3: case EOpConstructDMat4x4: + case EOpConstructF16Mat2x2: + case EOpConstructF16Mat2x3: + case EOpConstructF16Mat2x4: + case EOpConstructF16Mat3x2: + case EOpConstructF16Mat3x3: + case EOpConstructF16Mat3x4: + case EOpConstructF16Mat4x2: + case EOpConstructF16Mat4x3: + case EOpConstructF16Mat4x4: constructingMatrix = true; break; default: @@ -2216,7 +2300,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T bool floatArgument = false; for (int arg = 0; arg < function.getParamCount(); ++arg) { if (function[arg].type->isArray()) { - if (! function[arg].type->isExplicitlySizedArray()) { + if (function[arg].type->isUnsizedArray()) { // Can't construct from an unsized array. error(loc, "array argument must be sized", "constructor", ""); return true; @@ -2252,6 +2336,10 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T // Finish pinning down spec-const semantics if (specConstType) { switch (op) { + case EOpConstructInt8: + case EOpConstructUint8: + case EOpConstructInt16: + case EOpConstructUint16: case EOpConstructInt: case EOpConstructUint: case EOpConstructInt64: @@ -2260,6 +2348,18 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T case EOpConstructBVec2: case EOpConstructBVec3: case EOpConstructBVec4: + case EOpConstructI8Vec2: + case EOpConstructI8Vec3: + case EOpConstructI8Vec4: + case EOpConstructU8Vec2: + case EOpConstructU8Vec3: + case EOpConstructU8Vec4: + case EOpConstructI16Vec2: + case EOpConstructI16Vec3: + case EOpConstructI16Vec4: + case EOpConstructU16Vec2: + case EOpConstructU16Vec3: + case EOpConstructU16Vec4: case EOpConstructIVec2: case EOpConstructIVec3: case EOpConstructIVec4: @@ -2298,7 +2398,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T return true; } - if (type.isImplicitlySizedArray()) { + if (type.isUnsizedArray()) { // auto adapt the constructor type to the number of arguments type.changeOuterArraySize(function.getParamCount()); } else if (type.getOuterArraySize() != function.getParamCount()) { @@ -2310,20 +2410,21 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T // 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(); + TArraySizes& arraySizes = *type.getArraySizes(); // At least the dimensionalities have to match. - if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) { + 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.isInnerImplicit()) { + 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)); + arraySizes.setDimSize(d, function[0].type->getArraySizes()->getDimSize(d - 1)); } } } @@ -2408,8 +2509,8 @@ bool TParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const // 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() || + 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; @@ -2472,6 +2573,16 @@ void TParseContext::boolCheck(const TSourceLoc& loc, const TPublicType& pType) void TParseContext::samplerCheck(const TSourceLoc& loc, const TType& type, const TString& identifier, TIntermTyped* /*initializer*/) { + // Check that the appropriate extension is enabled if external sampler is used. + // There are two extensions. The correct one must be used based on GLSL version. + if (type.getBasicType() == EbtSampler && type.getSampler().external) { + if (version < 300) { + requireExtensions(loc, 1, &E_GL_OES_EGL_image_external, "samplerExternalOES"); + } else { + requireExtensions(loc, 1, &E_GL_OES_EGL_image_external_essl3, "samplerExternalOES"); + } + } + if (type.getQualifier().storage == EvqUniform) return; @@ -2496,17 +2607,35 @@ void TParseContext::atomicUintCheck(const TSourceLoc& loc, const TType& type, co error(loc, "atomic_uints can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str()); } -void TParseContext::transparentCheck(const TSourceLoc& loc, const TType& type, const TString& /*identifier*/) +void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) { - // double standard due to gl_NumSamples if (parsingBuiltins) return; - // Vulkan doesn't allow transparent uniforms outside of blocks - if (spvVersion.vulkan == 0 || type.getQualifier().storage != EvqUniform) + if (type.getQualifier().storage != EvqUniform) return; - if (type.containsNonOpaque()) - vulkanRemoved(loc, "non-opaque uniforms outside a block"); + + if (type.containsNonOpaque()) { + // Vulkan doesn't allow transparent uniforms outside of blocks + if (spvVersion.vulkan > 0) + vulkanRemoved(loc, "non-opaque uniforms outside a block"); + // OpenGL wants locations on these (unless they are getting automapped) + if (spvVersion.openGl > 0 && !type.getQualifier().hasLocation() && !intermediate.getAutoMapLocations()) + error(loc, "non-opaque uniform variables need a layout(location=L)", identifier.c_str(), ""); + } +} + +// +// Qualifier checks knowing the qualifier and that it is a member of a struct/block. +// +void TParseContext::memberQualifierCheck(glslang::TPublicType& publicType) +{ + globalQualifierFixCheck(publicType.loc, publicType.qualifier); + checkNoShaderLayouts(publicType.loc, publicType.shaderQualifiers); + if (publicType.qualifier.isNonUniform()) { + error(publicType.loc, "not allowed on block or structure members", "nonuniformEXT", ""); + publicType.qualifier.nonUniform = false; + } } // @@ -2514,12 +2643,15 @@ void TParseContext::transparentCheck(const TSourceLoc& loc, const TType& type, c // void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& qualifier) { + bool nonuniformOkay = false; + // move from parameter/unknown qualifiers to pipeline in/out qualifiers switch (qualifier.storage) { case EvqIn: profileRequires(loc, ENoProfile, 130, nullptr, "in for stage inputs"); profileRequires(loc, EEsProfile, 300, nullptr, "in for stage inputs"); qualifier.storage = EvqVaryingIn; + nonuniformOkay = true; break; case EvqOut: profileRequires(loc, ENoProfile, 130, nullptr, "out for stage outputs"); @@ -2530,10 +2662,17 @@ void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& q qualifier.storage = EvqVaryingIn; error(loc, "cannot use 'inout' at global scope", "", ""); break; + case EvqGlobal: + case EvqTemporary: + nonuniformOkay = true; + break; default: break; } + if (!nonuniformOkay && qualifier.nonUniform) + error(loc, "for non-parameter, can only apply to 'in' or no storage qualifier", "nonuniformEXT", ""); + invariantCheck(loc, qualifier); } @@ -2559,14 +2698,12 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali // now, knowing it is a shader in/out, do all the in/out semantic checks - if (publicType.basicType == EbtBool) { + if (publicType.basicType == EbtBool && !parsingBuiltins) { error(loc, "cannot be bool", GetStorageQualifierString(qualifier.storage), ""); return; } - if (publicType.basicType == EbtInt || publicType.basicType == EbtUint || - publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64 || - publicType.basicType == EbtDouble) + if (isTypeInt(publicType.basicType) || publicType.basicType == EbtDouble) profileRequires(loc, EEsProfile, 300, nullptr, "shader input/output"); #ifdef AMD_EXTENSIONS @@ -2574,10 +2711,13 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali #else if (!qualifier.flat) { #endif - if (publicType.basicType == EbtInt || publicType.basicType == EbtUint || - publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64 || + if (isTypeInt(publicType.basicType) || publicType.basicType == EbtDouble || - (publicType.userDef && (publicType.userDef->containsBasicType(EbtInt) || + (publicType.userDef && (publicType.userDef->containsBasicType(EbtInt8) || + publicType.userDef->containsBasicType(EbtUint8) || + publicType.userDef->containsBasicType(EbtInt16) || + publicType.userDef->containsBasicType(EbtUint16) || + publicType.userDef->containsBasicType(EbtInt) || publicType.userDef->containsBasicType(EbtUint) || publicType.userDef->containsBasicType(EbtInt64) || publicType.userDef->containsBasicType(EbtUint64) || @@ -2679,8 +2819,8 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali error(loc, "can't use auxiliary qualifier on a fragment output", "centroid/sample/patch", ""); if (qualifier.isInterpolation()) error(loc, "can't use interpolation qualifier on a fragment output", "flat/smooth/noperspective", ""); - if (publicType.basicType == EbtDouble) - error(loc, "cannot contain a double", GetStorageQualifierString(qualifier.storage), ""); + if (publicType.basicType == EbtDouble || publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64) + error(loc, "cannot contain a double, int64, or uint64", GetStorageQualifierString(qualifier.storage), ""); break; case EShLangCompute: @@ -2717,7 +2857,7 @@ void TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, cons #endif // Ordering - if (! force && ((profile != EEsProfile && version < 420) || + if (! force && ((profile != EEsProfile && version < 420) || (profile == EEsProfile && version < 310)) && ! extensionTurnedOn(E_GL_ARB_shading_language_420pack)) { // non-function parameters @@ -2781,6 +2921,7 @@ void TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, cons MERGE_SINGLETON(readonly); MERGE_SINGLETON(writeonly); MERGE_SINGLETON(specConstant); + MERGE_SINGLETON(nonUniform); if (repeated) error(loc, "replicated qualifiers", "", ""); @@ -2981,7 +3122,7 @@ bool TParseContext::arrayError(const TSourceLoc& loc, const TType& type) // void TParseContext::arraySizeRequiredCheck(const TSourceLoc& loc, const TArraySizes& arraySizes) { - if (arraySizes.isImplicit()) + if (arraySizes.hasUnsized()) error(loc, "array size required", "", ""); } @@ -2995,7 +3136,8 @@ void TParseContext::structArrayCheck(const TSourceLoc& /*loc*/, const TType& typ } } -void TParseContext::arrayUnsizedCheck(const TSourceLoc& loc, const TQualifier& qualifier, const TArraySizes* arraySizes, bool initializer, bool lastMember) +void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qualifier, TArraySizes* arraySizes, + const TIntermTyped* initializer, bool lastMember) { assert(arraySizes); @@ -3003,13 +3145,22 @@ void TParseContext::arrayUnsizedCheck(const TSourceLoc& loc, const TQualifier& q if (parsingBuiltins) return; - // always allow an initializer to set any unknown array sizes - if (initializer) + // initializer must be a sized array, in which case + // allow the initializer to set any unknown array sizes + if (initializer != nullptr) { + if (initializer->getType().isUnsizedArray()) + error(loc, "array initializer must be sized", "[]", ""); return; + } - // No environment lets any non-outer-dimension that's to be implicitly sized - if (arraySizes->isInnerImplicit()) + // No environment allows any non-outer-dimension to be implicitly sized + if (arraySizes->isInnerUnsized()) { error(loc, "only outermost dimension of an array of arrays can be implicitly sized", "[]", ""); + arraySizes->clearInnerUnsized(); + } + + if (arraySizes->isInnerSpecialization()) + error(loc, "only outermost dimension of an array of arrays can be a specialization constant", "[]", ""); // desktop always allows outer-dimension-unsized variable arrays, if (profile != EEsProfile) @@ -3026,19 +3177,22 @@ void TParseContext::arrayUnsizedCheck(const TSourceLoc& loc, const TQualifier& q switch (language) { case EShLangGeometry: if (qualifier.storage == EvqVaryingIn) - if (extensionsTurnedOn(Num_AEP_geometry_shader, AEP_geometry_shader)) + if ((profile == EEsProfile && version >= 320) || + extensionsTurnedOn(Num_AEP_geometry_shader, AEP_geometry_shader)) return; break; case EShLangTessControl: if ( qualifier.storage == EvqVaryingIn || (qualifier.storage == EvqVaryingOut && ! qualifier.patch)) - if (extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) + if ((profile == EEsProfile && version >= 320) || + extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) return; break; case EShLangTessEvaluation: if ((qualifier.storage == EvqVaryingIn && ! qualifier.patch) || qualifier.storage == EvqVaryingOut) - if (extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) + if ((profile == EEsProfile && version >= 320) || + extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) return; break; default: @@ -3048,8 +3202,11 @@ void TParseContext::arrayUnsizedCheck(const TSourceLoc& loc, const TQualifier& q arraySizeRequiredCheck(loc, *arraySizes); } -void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc) +void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc, const TArraySizes* sizes) { + if (sizes == nullptr || sizes->getNumDims() == 1) + return; + const char* feature = "arrays of arrays"; requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); @@ -3057,41 +3214,11 @@ void TParseContext::arrayOfArrayVersionCheck(const TSourceLoc& loc) profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, nullptr, feature); } -void TParseContext::arrayDimCheck(const TSourceLoc& loc, const TArraySizes* sizes1, const TArraySizes* sizes2) -{ - if ((sizes1 && sizes2) || - (sizes1 && sizes1->getNumDims() > 1) || - (sizes2 && sizes2->getNumDims() > 1)) - arrayOfArrayVersionCheck(loc); -} - -void TParseContext::arrayDimCheck(const TSourceLoc& loc, const TType* type, const TArraySizes* sizes2) -{ - // skip checking for multiple dimensions on the type; it was caught earlier - if ((type && type->isArray() && sizes2) || - (sizes2 && sizes2->getNumDims() > 1)) - arrayOfArrayVersionCheck(loc); -} - -// Merge array dimensions listed in 'sizes' onto the type's array dimensions. -// -// From the spec: "vec4[2] a[3]; // size-3 array of size-2 array of vec4" -// -// That means, the 'sizes' go in front of the 'type' as outermost sizes. -// 'type' is the type part of the declaration (to the left) -// 'sizes' is the arrayness tagged on the identifier (to the right) -// -void TParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) -{ - if (sizes) - type.addArrayOuterSizes(*sizes); -} - // // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // -void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol) +void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifier, const TType& type, TSymbol*& symbol) { if (symbol == nullptr) { bool currentScope; @@ -3110,7 +3237,7 @@ void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, con symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); if (symbolTable.atGlobalLevel()) - trackLinkageDeferred(*symbol); + trackLinkage(*symbol); if (! symbolTable.atBuiltInLevel()) { if (isIoResizeArray(type)) { @@ -3156,7 +3283,7 @@ void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, con return; } - if (existingType.isExplicitlySizedArray()) { + if (existingType.isSizedArray()) { // be more leniant for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size if (! (isIoResizeArray(type) && existingType.getOuterArraySize() == type.getOuterArraySize())) error(loc, "redeclaration of array with size", identifier.c_str(), ""); @@ -3171,64 +3298,37 @@ void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, con checkIoArraysConsistency(loc); } -void TParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNode *node, int index) +// Policy and error check for needing a runtime sized array. +void TParseContext::checkRuntimeSizable(const TSourceLoc& loc, const TIntermTyped& base) { - // maybe there is nothing to do... - TIntermTyped* typedNode = node->getAsTyped(); - if (typedNode->getType().getImplicitArraySize() > index) + // runtime length implies runtime sizeable, so no problem + if (isRuntimeLength(base)) return; - // something to do... - - // Figure out what symbol to lookup, as we will use its type to edit for the size change, - // as that type will be shared through shallow copies for future references. - TSymbol* symbol = nullptr; - int blockIndex = -1; - const TString* lookupName = nullptr; - if (node->getAsSymbolNode()) - lookupName = &node->getAsSymbolNode()->getName(); - else if (node->getAsBinaryNode()) { - const TIntermBinary* deref = node->getAsBinaryNode(); - // This has to be the result of a block dereference, unless it's bad shader code - // If it's a uniform block, then an error will be issued elsewhere, but - // return early now to avoid crashing later in this function. - if (deref->getLeft()->getBasicType() != EbtBlock || - deref->getLeft()->getType().getQualifier().storage == EvqUniform || - deref->getRight()->getAsConstantUnion() == nullptr) - return; - - const TIntermTyped* left = deref->getLeft(); - const TIntermTyped* right = deref->getRight(); - - if (left->getAsBinaryNode()) { - left = left->getAsBinaryNode()->getLeft(); // Block array access - assert(left->isArray()); - } - - if (! left->getAsSymbolNode()) - return; - - blockIndex = right->getAsConstantUnion()->getConstArray()[0].getIConst(); - - lookupName = &left->getAsSymbolNode()->getName(); - if (IsAnonymous(*lookupName)) - lookupName = &(*left->getType().getStruct())[blockIndex].type->getFieldName(); - } - - // Lookup the symbol, should only fail if shader code is incorrect - symbol = symbolTable.find(*lookupName); - if (symbol == nullptr) - return; - - if (symbol->getAsFunction()) { - error(loc, "array variable name expected", symbol->getName().c_str(), ""); - return; - } - - if (symbol->getType().isStruct() && blockIndex != -1) - (*symbol->getWritableType().getStruct())[blockIndex].type->setImplicitArraySize(index + 1); + // check for additional things allowed by GL_EXT_nonuniform_qualifier + if (base.getBasicType() == EbtSampler || + (base.getBasicType() == EbtBlock && base.getType().getQualifier().isUniformOrBuffer())) + requireExtensions(loc, 1, &E_GL_EXT_nonuniform_qualifier, "variable index"); else - symbol->getWritableType().setImplicitArraySize(index + 1); + error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable"); +} + +// Policy decision for whether a run-time .length() is allowed. +bool TParseContext::isRuntimeLength(const TIntermTyped& base) const +{ + if (base.getType().getQualifier().storage == EvqBuffer) { + // in a buffer block + const TIntermBinary* binary = base.getAsBinaryNode(); + if (binary != nullptr && binary->getOp() == EOpIndexDirectStruct) { + // is it the last member? + const int index = binary->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); + const int memberCount = (int)binary->getLeft()->getType().getStruct()->size(); + if (index == memberCount - 1) + return true; + } + } + + return false; } // Returns true if the first argument to the #line directive is the line number for the next line. @@ -3251,7 +3351,7 @@ bool TParseContext::lineDirectiveShouldSetNextLine() const void TParseContext::nonInitConstCheck(const TSourceLoc& loc, TString& identifier, TType& type) { // - // Make the qualifier make sense, given that there is an initializer. + // Make the qualifier make sense, given that there is not an initializer. // if (type.getQualifier().storage == EvqConst || type.getQualifier().storage == EvqConstReadOnly) { @@ -3277,7 +3377,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS return nullptr; bool nonEsRedecls = (profile != EEsProfile && (version >= 130 || identifier == "gl_TexCoord")); - bool esRedecls = (profile == EEsProfile && extensionsTurnedOn(Num_AEP_shader_io_blocks, AEP_shader_io_blocks)); + bool esRedecls = (profile == EEsProfile && + (version >= 320 || extensionsTurnedOn(Num_AEP_shader_io_blocks, AEP_shader_io_blocks))); if (! esRedecls && ! nonEsRedecls) return nullptr; @@ -3304,6 +3405,10 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS identifier == "gl_BackSecondaryColor" || identifier == "gl_SecondaryColor" || (identifier == "gl_Color" && language == EShLangFragment) || +#ifdef NV_EXTENSIONS + identifier == "gl_SampleMask" || + identifier == "gl_Layer" || +#endif identifier == "gl_TexCoord") { // Find the existing symbol, if any. @@ -3324,7 +3429,7 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS // Now, modify the type of the copy, as per the type of the current redeclaration. TQualifier& symbolQualifier = symbol->getWritableType().getQualifier(); - if (ssoPre150) { + if (ssoPre150) { if (intermediate.inIoAccessed(identifier)) error(loc, "cannot redeclare after use", identifier.c_str(), ""); if (qualifier.hasLayout()) @@ -3362,7 +3467,7 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS error(loc, "can only change layout qualification of", "redeclaration", symbol->getName().c_str()); if (qualifier.storage != EvqVaryingIn) error(loc, "cannot change input storage qualification of", "redeclaration", symbol->getName().c_str()); - if (! builtIn && (publicType.pixelCenterInteger != intermediate.getPixelCenterInteger() || + if (! builtIn && (publicType.pixelCenterInteger != intermediate.getPixelCenterInteger() || publicType.originUpperLeft != intermediate.getOriginUpperLeft())) error(loc, "cannot redeclare with different qualification:", "redeclaration", symbol->getName().c_str()); if (publicType.pixelCenterInteger) @@ -3381,8 +3486,22 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS if (! intermediate.setDepth(publicType.layoutDepth)) error(loc, "all redeclarations must use the same depth layout on", "redeclaration", symbol->getName().c_str()); } - } +#ifdef NV_EXTENSIONS + else if (identifier == "gl_SampleMask") { + if (!publicType.layoutOverrideCoverage) { + error(loc, "redeclaration only allowed for override_coverage layout", "redeclaration", symbol->getName().c_str()); + } + intermediate.setLayoutOverrideCoverage(); + } + else if (identifier == "gl_Layer") { + if (!qualifier.layoutViewportRelative && qualifier.layoutSecondaryViewportRelativeOffset == -2048) + error(loc, "redeclaration only allowed for viewport_relative or secondary_view_offset layout", "redeclaration", symbol->getName().c_str()); + symbolQualifier.layoutViewportRelative = qualifier.layoutViewportRelative; + symbolQualifier.layoutSecondaryViewportRelativeOffset = qualifier.layoutSecondaryViewportRelativeOffset; + } +#endif + // TODO: semantics quality: separate smooth from nothing declared, then use IsInterpolation for several tests above return symbol; @@ -3395,10 +3514,11 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS // Either redeclare the requested block, or give an error message why it can't be done. // // TODO: functionality: explicitly sizing members of redeclared blocks is not giving them an explicit size -void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes) +void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, + const TString* instanceName, TArraySizes* arraySizes) { const char* feature = "built-in block redeclaration"; - profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); + profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); profileRequires(loc, ~EEsProfile, 410, E_GL_ARB_separate_shader_objects, feature); if (blockName != "gl_PerVertex" && blockName != "gl_PerFragment") { @@ -3444,10 +3564,32 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT return; } + // Fix XFB stuff up, it applies to the order of the redeclaration, not + // the order of the original members. + if (currentBlockQualifier.storage == EvqVaryingOut && globalOutputDefaults.hasXfbBuffer()) { + if (!currentBlockQualifier.hasXfbBuffer()) + currentBlockQualifier.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer; + fixBlockXfbOffsets(currentBlockQualifier, newTypeList); + } + // Edit and error check the container against the redeclaration // - remove unused members // - ensure remaining qualifiers/types match + TType& type = block->getWritableType(); + +#ifdef NV_EXTENSIONS + // if gl_PerVertex is redeclared for the purpose of passing through "gl_Position" + // for passthrough purpose, the redeclared block should have the same qualifers as + // the current one + if (currentBlockQualifier.layoutPassthrough) { + type.getQualifier().layoutPassthrough = currentBlockQualifier.layoutPassthrough; + type.getQualifier().storage = currentBlockQualifier.storage; + type.getQualifier().layoutStream = currentBlockQualifier.layoutStream; + type.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer; + } +#endif + TTypeList::iterator member = type.getWritableStruct()->begin(); size_t numOriginalMembersFound = 0; while (member != type.getStruct()->end()) { @@ -3475,16 +3617,19 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT error(memberLoc, "cannot redeclare block member with a different type", member->type->getFieldName().c_str(), ""); if (oldType.isArray() != newType.isArray()) error(memberLoc, "cannot change arrayness of redeclared block member", member->type->getFieldName().c_str(), ""); - else if (! oldType.sameArrayness(newType) && oldType.isExplicitlySizedArray()) + else if (! oldType.sameArrayness(newType) && oldType.isSizedArray()) error(memberLoc, "cannot change array size of redeclared block member", member->type->getFieldName().c_str(), ""); else if (newType.isArray()) arrayLimitCheck(loc, member->type->getFieldName(), newType.getOuterArraySize()); if (newType.getQualifier().isMemory()) error(memberLoc, "cannot add memory qualifier to redeclared block member", member->type->getFieldName().c_str(), ""); - if (newType.getQualifier().hasLayout()) - error(memberLoc, "cannot add layout to redeclared block member", member->type->getFieldName().c_str(), ""); + if (newType.getQualifier().hasNonXfbLayout()) + error(memberLoc, "cannot add non-XFB layout to redeclared block member", member->type->getFieldName().c_str(), ""); if (newType.getQualifier().patch) error(memberLoc, "cannot add patch to redeclared block member", member->type->getFieldName().c_str(), ""); + if (newType.getQualifier().hasXfbBuffer() && + newType.getQualifier().layoutXfbBuffer != currentBlockQualifier.layoutXfbBuffer) + error(memberLoc, "member cannot contradict block (or what block inherited from global)", "xfb_buffer", ""); oldType.getQualifier().centroid = newType.getQualifier().centroid; oldType.getQualifier().sample = newType.getQualifier().sample; oldType.getQualifier().invariant = newType.getQualifier().invariant; @@ -3492,13 +3637,24 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT oldType.getQualifier().smooth = newType.getQualifier().smooth; oldType.getQualifier().flat = newType.getQualifier().flat; oldType.getQualifier().nopersp = newType.getQualifier().nopersp; - - if (oldType.isImplicitlySizedArray() && newType.isExplicitlySizedArray()) + oldType.getQualifier().layoutXfbOffset = newType.getQualifier().layoutXfbOffset; + oldType.getQualifier().layoutXfbBuffer = newType.getQualifier().layoutXfbBuffer; + oldType.getQualifier().layoutXfbStride = newType.getQualifier().layoutXfbStride; + if (oldType.getQualifier().layoutXfbOffset != TQualifier::layoutXfbBufferEnd) { + // if any member as an xfb_offset, then the block's xfb_buffer inherents current xfb_buffer, + // and for xfb processing, the member needs it as well, along with xfb_stride + type.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer; + oldType.getQualifier().layoutXfbBuffer = currentBlockQualifier.layoutXfbBuffer; + } + if (oldType.isUnsizedArray() && newType.isSizedArray()) oldType.changeOuterArraySize(newType.getOuterArraySize()); + // check and process the member's type, which will include managing xfb information + layoutTypeCheck(loc, oldType); + // go to next member ++member; - } else { + } else { // For missing members of anonymous blocks that have been redeclared, // hide the original (shared) declaration. // Instance-named blocks can just have the member removed. @@ -3513,15 +3669,24 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT if (numOriginalMembersFound < newTypeList.size()) error(loc, "block redeclaration has extra members", blockName.c_str(), ""); - if (type.isArray() != (arraySizes != nullptr)) + if (type.isArray() != (arraySizes != nullptr) || + (type.isArray() && arraySizes != nullptr && type.getArraySizes()->getNumDims() != arraySizes->getNumDims())) error(loc, "cannot change arrayness of redeclared block", blockName.c_str(), ""); else if (type.isArray()) { - if (type.isExplicitlySizedArray() && arraySizes->getOuterSize() == UnsizedArraySize) - error(loc, "block already declared with size, can't redeclare as implicitly-sized", blockName.c_str(), ""); - else if (type.isExplicitlySizedArray() && type.getArraySizes() != *arraySizes) - error(loc, "cannot change array size of redeclared block", blockName.c_str(), ""); - else if (type.isImplicitlySizedArray() && arraySizes->getOuterSize() != UnsizedArraySize) + // At this point, we know both are arrays and both have the same number of dimensions. + + // It is okay for a built-in block redeclaration to be unsized, and keep the size of the + // original block declaration. + if (!arraySizes->isSized() && type.isSizedArray()) + arraySizes->changeOuterSize(type.getOuterArraySize()); + + // And, okay to be giving a size to the array, by the redeclaration + if (!type.isSizedArray() && arraySizes->isSized()) type.changeOuterArraySize(arraySizes->getOuterSize()); + + // Now, they must match in all dimensions. + if (type.isSizedArray() && *type.getArraySizes() != *arraySizes) + error(loc, "cannot change array size of redeclared block", blockName.c_str(), ""); } symbolTable.insert(*block); @@ -3537,10 +3702,10 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT fixIoArraySize(loc, block->getWritableType()); // Save it in the AST for linker use. - trackLinkageDeferred(*block); + trackLinkage(*block); } -void TParseContext::paramCheckFix(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) +void TParseContext::paramCheckFixStorage(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) { switch (qualifier) { case EvqConst: @@ -3586,8 +3751,10 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali else warn(loc, "qualifier has no effect on non-output parameters", "precise", ""); } + if (qualifier.isNonUniform()) + type.getQualifier().nonUniform = qualifier.nonUniform; - paramCheckFix(loc, qualifier.storage, type); + paramCheckFixStorage(loc, qualifier.storage, type); } void TParseContext::nestedBlockCheck(const TSourceLoc& loc) @@ -3631,7 +3798,7 @@ void TParseContext::structTypeCheck(const TSourceLoc& /*loc*/, TPublicType& publ // fix and check for member storage qualifiers and types that don't belong within a structure for (unsigned int member = 0; member < typeList.size(); ++member) { - TQualifier& memberQualifier = typeList[member].type->getQualifier(); + TQualifier& memberQualifier = typeList[member].type->getQualifier(); const TSourceLoc& memberLoc = typeList[member].loc; if (memberQualifier.isAuxiliary() || memberQualifier.isInterpolation() || @@ -3805,7 +3972,7 @@ void TParseContext::finish() // Check for stages that are enabled by extension. // Can't do this at the beginning, it is chicken and egg to add a stage by // extension. - // Stage-specific features were correctly tested for already, this is just + // Stage-specific features were correctly tested for already, this is just // about the stage itself. switch (language) { case EShLangGeometry: @@ -3826,6 +3993,28 @@ void TParseContext::finish() default: break; } + +#ifdef NV_EXTENSIONS + // Set default outputs for GL_NV_geometry_shader_passthrough + if (language == EShLangGeometry && extensionTurnedOn(E_SPV_NV_geometry_shader_passthrough)) { + if (intermediate.getOutputPrimitive() == ElgNone) { + switch (intermediate.getInputPrimitive()) { + case ElgPoints: intermediate.setOutputPrimitive(ElgPoints); break; + case ElgLines: intermediate.setOutputPrimitive(ElgLineStrip); break; + case ElgTriangles: intermediate.setOutputPrimitive(ElgTriangles); break; + default: break; + } + } + if (intermediate.getVertices() == TQualifier::layoutNotSet) { + switch (intermediate.getInputPrimitive()) { + case ElgPoints: intermediate.setVertices(1); break; + case ElgLines: intermediate.setVertices(2); break; + case ElgTriangles: intermediate.setVertices(3); break; + default: break; + } + } + } +#endif } // @@ -3917,6 +4106,14 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.shaderQualifiers.geometry = ElgTriangleStrip; return; } +#ifdef NV_EXTENSIONS + if (id == "passthrough") { + requireExtensions(loc, 1, &E_SPV_NV_geometry_shader_passthrough, "geometry shader passthrough"); + publicType.qualifier.layoutPassthrough = true; + intermediate.setGeoPassthroughEXT(); + return; + } +#endif } else { assert(language == EShLangTessEvaluation); @@ -3982,6 +4179,14 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.shaderQualifiers.earlyFragmentTests = true; return; } + if (id == "post_depth_coverage") { + requireExtensions(loc, Num_post_depth_coverageEXTs, post_depth_coverageEXTs, "post depth coverage"); + if (extensionTurnedOn(E_GL_ARB_post_depth_coverage)) { + publicType.shaderQualifiers.earlyFragmentTests = true; + } + publicType.shaderQualifiers.postDepthCoverage = true; + return; + } for (TLayoutDepth depth = (TLayoutDepth)(EldNone + 1); depth < EldCount; depth = (TLayoutDepth)(depth+1)) { if (id == TQualifier::getLayoutDepthString(depth)) { requireProfile(loc, ECoreProfile | ECompatibilityProfile, "depth layout qualifier"); @@ -3994,7 +4199,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi 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"); + profileRequires(loc, EEsProfile, 320, E_GL_KHR_blend_equation_advanced, "blend equation"); + profileRequires(loc, ~EEsProfile, 0, E_GL_KHR_blend_equation_advanced, "blend equation"); intermediate.addBlendEquation(be); publicType.shaderQualifiers.blendEquation = true; found = true; @@ -4005,7 +4211,26 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi error(loc, "unknown blend equation", "blend_support", ""); return; } +#ifdef NV_EXTENSIONS + if (id == "override_coverage") { + requireExtensions(loc, 1, &E_GL_NV_sample_mask_override_coverage, "sample mask override coverage"); + publicType.shaderQualifiers.layoutOverrideCoverage = true; + return; + } } + if (language == EShLangVertex || + language == EShLangTessControl || + language == EShLangTessEvaluation || + language == EShLangGeometry ) { + if (id == "viewport_relative") { + requireExtensions(loc, 1, &E_GL_NV_viewport_array2, "view port array2"); + publicType.qualifier.layoutViewportRelative = true; + return; + } + } +#else + } +#endif error(loc, "unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)", id.c_str(), ""); } @@ -4036,22 +4261,26 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } std::transform(id.begin(), id.end(), id.begin(), ::tolower); - + if (id == "offset") { // "offset" can be for either // - uniform offsets // - atomic_uint offsets const char* feature = "offset"; - requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); - const char* exts[2] = { E_GL_ARB_enhanced_layouts, E_GL_ARB_shader_atomic_counters }; - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, 2, exts, feature); - profileRequires(loc, EEsProfile, 310, nullptr, feature); + if (spvVersion.spv == 0) { + requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); + const char* exts[2] = { E_GL_ARB_enhanced_layouts, E_GL_ARB_shader_atomic_counters }; + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, 2, exts, feature); + profileRequires(loc, EEsProfile, 310, nullptr, feature); + } publicType.qualifier.layoutOffset = value; return; } else if (id == "align") { const char* feature = "uniform buffer-member align"; - requireProfile(loc, ECoreProfile | ECompatibilityProfile, feature); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature); + if (spvVersion.spv == 0) { + requireProfile(loc, ECoreProfile | ECompatibilityProfile, feature); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature); + } // "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", ""); @@ -4092,9 +4321,9 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.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 + // "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(); const char* feature = "transform feedback qualifier"; @@ -4105,7 +4334,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi // "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); + 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 @@ -4118,7 +4347,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.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 + // "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); @@ -4150,6 +4379,24 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } return; } + if (id == "num_views") { + requireExtensions(loc, Num_OVR_multiview_EXTs, OVR_multiview_EXTs, "num_views"); + publicType.shaderQualifiers.numViews = value; + return; + } + +#if NV_EXTENSIONS + if (language == EShLangVertex || + language == EShLangTessControl || + language == EShLangTessEvaluation || + language == EShLangGeometry) { + if (id == "secondary_view_offset") { + requireExtensions(loc, 1, &E_GL_NV_stereo_view_rendering, "stereo view rendering"); + publicType.qualifier.layoutSecondaryViewportRelativeOffset = value; + return; + } + } +#endif switch (language) { case EShLangVertex: @@ -4213,6 +4460,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi if (id.compare(0, 11, "local_size_") == 0) { profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize"); profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize"); + if (id.size() == 12 && value == 0) { + error(loc, "must be at least 1", id.c_str(), ""); + return; + } if (id == "local_size_x") { publicType.shaderQualifiers.localSize[0] = value; return; @@ -4252,18 +4503,17 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi // 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." -// +// 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 TParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifier& src, bool inheritOnly) { if (src.hasMatrix()) @@ -4310,6 +4560,15 @@ void TParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifie if (src.layoutPushConstant) dst.layoutPushConstant = true; + +#ifdef NV_EXTENSIONS + if (src.layoutPassthrough) + dst.layoutPassthrough = true; + if (src.layoutViewportRelative) + dst.layoutViewportRelative = true; + if (src.layoutSecondaryViewportRelativeOffset != -2048) + dst.layoutSecondaryViewportRelativeOffset = src.layoutSecondaryViewportRelativeOffset; +#endif } } @@ -4336,7 +4595,26 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb } } - // Check packing and matrix + // user-variable location check, which are required for SPIR-V in/out: + // - variables have it directly, + // - blocks have it on each member (already enforced), so check first one + if (spvVersion.spv > 0 && !parsingBuiltins && qualifier.builtIn == EbvNone && + !qualifier.hasLocation() && !intermediate.getAutoMapLocations()) { + + switch (qualifier.storage) { + case EvqVaryingIn: + case EvqVaryingOut: + if (type.getBasicType() != EbtBlock || + (!(*type.getStruct())[0].type->getQualifier().hasLocation() && + (*type.getStruct())[0].type->getQualifier().builtIn == EbvNone)) + error(loc, "SPIR-V requires location for user input/output", "location", ""); + break; + default: + break; + } + } + + // Check packing and matrix if (qualifier.hasUniformLayout()) { switch (qualifier.storage) { case EvqUniform: @@ -4363,6 +4641,23 @@ void TParseContext::layoutObjectCheck(const TSourceLoc& loc, const TSymbol& symb } } +// "For some blocks declared as arrays, the location can only be applied at the block level: +// When a block is declared as an array where additional locations are needed for each member +// for each block array element, it is a compile-time error to specify locations on the block +// members. That is, when locations would be under specified by applying them on block members, +// they are not allowed on block members. For arrayed interfaces (those generally having an +// extra level of arrayness due to interface expansion), the outer array is stripped before +// applying this rule." +void TParseContext::layoutMemberLocationArrayCheck(const TSourceLoc& loc, bool memberWithLocation, + TArraySizes* arraySizes) +{ + if (memberWithLocation && arraySizes != nullptr) { + if (arraySizes->getNumDims() > (currentBlockQualifier.isArrayedIo(language) ? 1 : 0)) + error(loc, "cannot use in a block array where new locations are needed for each block element", + "location", ""); + } +} + // Do layout error checking with respect to a type. void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) { @@ -4403,6 +4698,8 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) break; case EvqUniform: case EvqBuffer: + if (type.getBasicType() == EbtBlock) + error(loc, "cannot apply to uniform or buffer block", "location", ""); break; default: error(loc, "can only apply to uniform, buffer, in, or out storage qualifiers", "location", ""); @@ -4424,16 +4721,14 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) if (repeated >= 0) error(loc, "overlapping offsets at", "xfb_offset", "offset %d in buffer %d", repeated, qualifier.layoutXfbBuffer); - // "The offset must be a multiple of the size of the first component of the first - // qualified variable or block member, or a compile-time error results. Further, if applied to an aggregate + // "The offset must be a multiple of the size of the first component of the first + // qualified variable or block member, or a compile-time error results. Further, if applied to an aggregate // containing a double, the offset must also be a multiple of 8..." if (type.containsBasicType(EbtDouble) && ! IsMultipleOfPow2(qualifier.layoutXfbOffset, 8)) error(loc, "type contains double; xfb_offset must be a multiple of 8", "xfb_offset", ""); -#ifdef AMD_EXTENSIONS // ..., if applied to an aggregate containing a float16_t, the offset must also be a multiple of 2..." else if (type.containsBasicType(EbtFloat16) && !IsMultipleOfPow2(qualifier.layoutXfbOffset, 2)) error(loc, "type contains half float; xfb_offset must be a multiple of 2", "xfb_offset", ""); -#endif else if (! IsMultipleOfPow2(qualifier.layoutXfbOffset, 4)) error(loc, "must be a multiple of size of first component", "xfb_offset", ""); } @@ -4457,13 +4752,19 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) if (type.getBasicType() == EbtSampler) { int lastBinding = qualifier.layoutBinding; if (type.isArray()) { - if (type.isImplicitlySizedArray()) { + if (spvVersion.vulkan > 0) lastBinding += 1; - warn(loc, "assuming array size of one for compile-time checking of binding numbers for implicitly-sized array", "[]", ""); - } else - lastBinding += type.getCumulativeArraySize(); + else { + if (type.isSizedArray()) + lastBinding += type.getCumulativeArraySize(); + else { + lastBinding += 1; + if (spvVersion.vulkan == 0) + warn(loc, "assuming binding count of one for compile-time checking of binding numbers for unsized array", "[]", ""); + } + } } - if (lastBinding >= resources.maxCombinedTextureImageUnits) + if (spvVersion.vulkan == 0 && lastBinding >= resources.maxCombinedTextureImageUnits) error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : ""); } if (type.getBasicType() == EbtAtomicUint) { @@ -4472,12 +4773,31 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) return; } } + } else if (!intermediate.getAutoMapBindings()) { + // some types require bindings + + // atomic_uint + if (type.getBasicType() == EbtAtomicUint) + error(loc, "layout(binding=X) is required", "atomic_uint", ""); + + // SPIR-V + if (spvVersion.spv > 0) { + if (qualifier.isUniformOrBuffer()) { + if (type.getBasicType() == EbtBlock && !qualifier.layoutPushConstant && + !qualifier.layoutAttachment) + error(loc, "uniform/buffer blocks require layout(binding=X)", "binding", ""); + else if (spvVersion.vulkan > 0 && type.getBasicType() == EbtSampler) + error(loc, "sampler/texture/image requires layout(binding=X)", "binding", ""); + } + } } - // atomic_uint - if (type.getBasicType() == EbtAtomicUint) { - if (! type.getQualifier().hasBinding()) - error(loc, "layout(binding=X) is required", "atomic_uint", ""); + // some things can't have arrays of arrays + if (type.isArrayOfArrays()) { + if (spvVersion.vulkan > 0) { + if (type.isOpaque() || (type.getQualifier().isUniformOrBuffer() && type.getBasicType() == EbtBlock)) + warn(loc, "Generating SPIR-V array-of-arrays, but Vulkan only supports single array level for this resource", "[][]", ""); + } } // "The offset qualifier can only be used on block members of blocks..." @@ -4499,7 +4819,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) error(loc, "does not apply to unsigned integer images", TQualifier::getLayoutFormatString(qualifier.layoutFormat), ""); if (profile == EEsProfile) { - // "Except for image variables qualified with the format qualifiers r32f, r32i, and r32ui, image variables must + // "Except for image variables qualified with the format qualifiers r32f, r32i, and r32ui, image variables must // specify either memory qualifier readonly or the memory qualifier writeonly." if (! (qualifier.layoutFormat == ElfR32f || qualifier.layoutFormat == ElfR32i || qualifier.layoutFormat == ElfR32ui)) { if (! qualifier.readonly && ! qualifier.writeonly) @@ -4507,8 +4827,11 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) } } } - } else if (type.isImage() && ! qualifier.writeonly) - error(loc, "image variables not declared 'writeonly' must have a format layout qualifier", "", ""); + } else if (type.isImage() && ! qualifier.writeonly) { + const char *explanation = "image variables not declared 'writeonly' and without a format layout qualifier"; + requireProfile(loc, ECoreProfile | ECompatibilityProfile, explanation); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shader_image_load_formatted, explanation); + } if (qualifier.layoutPushConstant && type.getBasicType() != EbtBlock) error(loc, "can only be used with a block", "push_constant", ""); @@ -4530,6 +4853,10 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) error(loc, "can only be applied to a scalar", "constant_id", ""); switch (type.getBasicType()) { + case EbtInt8: + case EbtUint8: + case EbtInt16: + case EbtUint16: case EbtInt: case EbtUint: case EbtInt64: @@ -4537,9 +4864,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) case EbtBool: case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif break; default: error(loc, "cannot be applied to this type", "constant_id", ""); @@ -4561,8 +4886,8 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier if (qualifier.hasAnyLocation()) { - // "As with input layout qualifiers, all shaders except compute shaders - // allow *location* layout qualifiers on output variable declarations, + // "As with input layout qualifiers, all shaders except compute shaders + // allow *location* layout qualifiers on output variable declarations, // output block declarations, and output block member declarations." switch (qualifier.storage) { @@ -4625,11 +4950,11 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier error(loc, "requires uniform or buffer storage qualifier", "binding", ""); } if (qualifier.hasStream()) { - if (qualifier.storage != EvqVaryingOut) + if (!qualifier.isPipeOutput()) error(loc, "can only be used on an output", "stream", ""); } if (qualifier.hasXfb()) { - if (qualifier.storage != EvqVaryingOut) + if (!qualifier.isPipeOutput()) error(loc, "can only be used on an output", "xfb layout qualifier", ""); } if (qualifier.hasUniformLayout()) { @@ -4655,8 +4980,24 @@ void TParseContext::checkNoShaderLayouts(const TSourceLoc& loc, const TShaderQua if (shaderQualifiers.geometry != ElgNone) error(loc, message, TQualifier::getGeometryString(shaderQualifiers.geometry), ""); + if (shaderQualifiers.spacing != EvsNone) + error(loc, message, TQualifier::getVertexSpacingString(shaderQualifiers.spacing), ""); + if (shaderQualifiers.order != EvoNone) + error(loc, message, TQualifier::getVertexOrderString(shaderQualifiers.order), ""); + if (shaderQualifiers.pointMode) + error(loc, message, "point_mode", ""); if (shaderQualifiers.invocations != TQualifier::layoutNotSet) error(loc, message, "invocations", ""); + if (shaderQualifiers.earlyFragmentTests) + error(loc, message, "early_fragment_tests", ""); + if (shaderQualifiers.postDepthCoverage) + error(loc, message, "post_depth_coverage", ""); + for (int i = 0; i < 3; ++i) { + if (shaderQualifiers.localSize[i] > 1) + error(loc, message, "local_size", ""); + if (shaderQualifiers.localSizeSpecId[i] != TQualifier::layoutNotSet) + error(loc, message, "local_size id", ""); + } if (shaderQualifiers.vertices != TQualifier::layoutNotSet) { if (language == EShLangGeometry) error(loc, message, "max_vertices", ""); @@ -4665,15 +5006,10 @@ void TParseContext::checkNoShaderLayouts(const TSourceLoc& loc, const TShaderQua else assert(0); } - for (int i = 0; i < 3; ++i) { - if (shaderQualifiers.localSize[i] > 1) - error(loc, message, "local_size", ""); - if (shaderQualifiers.localSizeSpecId[i] != TQualifier::layoutNotSet) - error(loc, message, "local_size id", ""); - } if (shaderQualifiers.blendEquation) error(loc, message, "blend equation", ""); - // TBD: correctness: are any of these missing? pixelCenterInteger, originUpperLeft, spacing, order, pointmode, earlyfragment, depth + if (shaderQualifiers.numViews != TQualifier::layoutNotSet) + error(loc, message, "num_views", ""); } // Correct and/or advance an object's offset layout qualifier. @@ -4694,15 +5030,11 @@ void TParseContext::fixOffset(const TSourceLoc& loc, TSymbol& symbol) // Check for overlap int numOffsets = 4; if (symbol.getType().isArray()) { - if (symbol.getType().isExplicitlySizedArray()) + if (symbol.getType().isSizedArray() && !symbol.getType().getArraySizes()->isInnerUnsized()) numOffsets *= symbol.getType().getCumulativeArraySize(); else { - // TODO: functionality: implicitly-sized atomic_uint arrays. - // We don't know the full size until later. This might - // be a specification problem, will report to Khronos. For the - // cases that is not true, the rest of the checking would need - // to be done at link time instead of compile time. - warn(loc, "implicitly sized atomic_uint array treated as having one element for tracking the default offset", "atomic_uint", ""); + // "It is a compile-time error to declare an unsized array of atomic_uint." + error(loc, "array must be explicitly sized", "atomic_uint", ""); } } int repeated = intermediate.addUsedOffsets(qualifier.layoutBinding, offset, numOffsets); @@ -4729,10 +5061,21 @@ const TFunction* TParseContext::findFunction(const TSourceLoc& loc, const TFunct return nullptr; } + bool explicitTypesEnabled = extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int8) || + extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int16) || + extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int32) || + extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int64) || + extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float16) || + extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float32) || + extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float64); + if (profile == EEsProfile || version < 120) function = findFunctionExact(loc, call, builtIn); else if (version < 400) function = findFunction120(loc, call, builtIn); + else if (explicitTypesEnabled) + function = findFunctionExplicitTypes(loc, call, builtIn); else function = findFunction400(loc, call, builtIn); @@ -4873,7 +5216,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // create list of candidates to send TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); - + // can 'from' convert to 'to'? const auto convertible = [this](const TType& from, const TType& to, TOperator, int) -> bool { if (from == to) @@ -4905,7 +5248,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // for ambiguity reporting bool tie = false; - + // send to the generic selector const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); @@ -4917,7 +5260,86 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu return bestMatch; } -// When a declaration includes a type, but not a variable name, it can be +// "To determine whether the conversion for a single argument in one match +// is better than that for another match, the conversion is assigned of the +// three ranks ordered from best to worst: +// 1. Exact match: no conversion. +// 2. Promotion: integral or floating-point promotion. +// 3. Conversion: integral conversion, floating-point conversion, +// floating-integral conversion. +// A conversion C1 is better than a conversion C2 if the rank of C1 is +// better than the rank of C2." +const TFunction* TParseContext::findFunctionExplicitTypes(const TSourceLoc& loc, const TFunction& call, bool& builtIn) +{ + // first, look for an exact match + TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn); + 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); + + // can 'from' convert to 'to'? + const auto convertible = [this](const TType& from, const TType& to, TOperator, int) -> bool { + if (from == to) + return true; + if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) + return false; + return intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType()); + }; + + // Is 'to2' a better conversion than 'to1'? + // Ties should not be considered as better. + // Assumes 'convertible' already said true. + const auto better = [this](const TType& from, const TType& to1, const TType& to2) -> bool { + // 1. exact match + if (from == to2) + return from != to1; + if (from == to1) + return false; + + // 2. Promotion (integral, floating-point) is better + TBasicType from_type = from.getBasicType(); + TBasicType to1_type = to1.getBasicType(); + TBasicType to2_type = to2.getBasicType(); + bool isPromotion1 = (intermediate.isIntegralPromotion(from_type, to1_type) || + intermediate.isFPPromotion(from_type, to1_type)); + bool isPromotion2 = (intermediate.isIntegralPromotion(from_type, to2_type) || + intermediate.isFPPromotion(from_type, to2_type)); + if (isPromotion2) + return !isPromotion1; + if(isPromotion1) + return false; + + // 3. Conversion (integral, floating-point , floating-integral) + bool isConversion1 = (intermediate.isIntegralConversion(from_type, to1_type) || + intermediate.isFPConversion(from_type, to1_type) || + intermediate.isFPIntegralConversion(from_type, to1_type)); + bool isConversion2 = (intermediate.isIntegralConversion(from_type, to2_type) || + intermediate.isFPConversion(from_type, to2_type) || + intermediate.isFPIntegralConversion(from_type, to2_type)); + + return isConversion2 && !isConversion1; + }; + + // for ambiguity reporting + bool tie = false; + + // send to the generic selector + const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); + + if (bestMatch == nullptr) + error(loc, "no matching overloaded function found", call.getName().c_str(), ""); + else if (tie) + error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); + + return bestMatch; +} + +// When a declaration includes a type, but not a variable name, it can be // to establish defaults. void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType& publicType) { @@ -4945,27 +5367,27 @@ void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType // 'publicType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // -TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TPublicType& publicType, TArraySizes* arraySizes, TIntermTyped* initializer) +TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TPublicType& publicType, + TArraySizes* arraySizes, TIntermTyped* initializer) { - TType type(publicType); // shallow copy; 'type' shares the arrayness and structure definition with 'publicType' - if (type.isImplicitlySizedArray()) { - // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b - // of different sizes, for this case sharing the shallow copy of arrayness - // with the publicType oversubscribes it, so get a deep copy of the arrayness. - type.newArraySizes(*publicType.arraySizes); - } + // Make a fresh type that combines the characteristics from the individual + // identifier syntax and the declaration-type syntax. + TType type(publicType); + type.transferArraySizes(arraySizes); + type.copyArrayInnerSizes(publicType.arraySizes); + arrayOfArrayVersionCheck(loc, type.getArraySizes()); if (voidErrorCheck(loc, identifier, type.getBasicType())) return nullptr; - if (initializer) + if (initializer) rValueErrorCheck(loc, "initializer", initializer); else nonInitConstCheck(loc, identifier, type); samplerCheck(loc, type, identifier, initializer); atomicUintCheck(loc, type, identifier); - transparentCheck(loc, type, identifier); + transparentOpaqueCheck(loc, type, identifier); if (identifier != "gl_FragCoord" && (publicType.shaderQualifiers.originUpperLeft || publicType.shaderQualifiers.pixelCenterInteger)) error(loc, "can only apply origin_upper_left and pixel_center_origin to gl_FragCoord", "layout qualifier", ""); @@ -4980,15 +5402,9 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden inheritGlobalDefaults(type.getQualifier()); // Declare the variable - if (arraySizes || type.isArray()) { - // Arrayness is potentially coming both from the type and from the - // variable: "int[] a[];" or just one or the other. - // Merge it all to the type, so all arrayness is part of the type. - arrayDimCheck(loc, &type, arraySizes); - arrayDimMerge(type, arraySizes); - + if (type.isArray()) { // Check that implicit sizing is only where allowed. - arrayUnsizedCheck(loc, type.getQualifier(), &type.getArraySizes(), initializer != nullptr, false); + arraySizesCheck(loc, type.getQualifier(), type.getArraySizes(), initializer, false); if (! arrayQualifierError(loc, type.getQualifier()) && ! arrayError(loc, type)) declareArray(loc, identifier, type, symbol); @@ -5021,6 +5437,8 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden // look for errors in layout qualifier use layoutObjectCheck(loc, *symbol); + + // fix up fixOffset(loc, *symbol); return initNode; @@ -5045,7 +5463,7 @@ void TParseContext::inheritGlobalDefaults(TQualifier& dst) const // TVariable* TParseContext::makeInternalVariable(const char* name, const TType& type) const { - TString* nameString = new TString(name); + TString* nameString = NewPoolTString(name); TVariable* variable = new TVariable(nameString, type); symbolTable.makeInternalVariable(*variable); @@ -5058,7 +5476,7 @@ TVariable* TParseContext::makeInternalVariable(const char* name, const TType& ty // // Return the successfully declared variable. // -TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type) +TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, const TString& identifier, const TType& type) { // make a new variable TVariable* variable = new TVariable(&identifier, type); @@ -5068,7 +5486,7 @@ TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identi // add variable to symbol table if (symbolTable.insert(*variable)) { if (symbolTable.atGlobalLevel()) - trackLinkageDeferred(*variable); + trackLinkage(*variable); return variable; } @@ -5117,8 +5535,7 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp } // Fix outer arrayness if variable is unsized, getting size from the initializer - if (initializer->getType().isExplicitlySizedArray() && - variable->getType().isImplicitlySizedArray()) + if (initializer->getType().isSizedArray() && variable->getType().isUnsizedArray()) variable->getWritableType().changeOuterArraySize(initializer->getType().getOuterArraySize()); // Inner arrayness can also get set by an initializer @@ -5127,8 +5544,10 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp 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)); + if (variable->getType().getArraySizes()->getDimSize(d) == UnsizedArraySize) { + variable->getWritableType().getArraySizes()->setDimSize(d, + initializer->getType().getArraySizes()->getDimSize(d)); + } } } @@ -5239,16 +5658,16 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const // Later on, initializer execution code will deal with array size logic. TType arrayType; arrayType.shallowCopy(type); // sharing struct stuff is fine - arrayType.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below + arrayType.copyArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below // edit array sizes to fill in unsized dimensions arrayType.changeOuterArraySize((int)initList->getSequence().size()); TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped(); if (arrayType.isArrayOfArrays() && 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)); + 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)); } } @@ -5305,6 +5724,9 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const // 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. // +// 'node' is what to construct from. +// 'type' is what type to construct. +// // Returns nullptr for an error or the constructed node (aggregate or typed) for no error. // TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type) @@ -5334,7 +5756,7 @@ TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* bool singleArg; if (aggrNode) { - if (aggrNode->getOp() != EOpNull || aggrNode->getSequence().size() == 1) + if (aggrNode->getOp() != EOpNull) singleArg = true; else singleArg = false; @@ -5395,8 +5817,22 @@ TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* // // Returns nullptr for an error or the constructed node. // -TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, TIntermTyped* node, const TSourceLoc& loc, bool subset) +TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, TIntermTyped* node, const TSourceLoc& loc, + bool subset) { + // If we are changing a matrix in both domain of basic type and to a non matrix, + // do the shape change first (by default, below, basic type is changed before shape). + // This avoids requesting a matrix of a new type that is going to be discarded anyway. + // TODO: This could be generalized to more type combinations, but that would require + // more extensive testing and full algorithm rework. For now, the need to do two changes makes + // the recursive call work, and avoids the most aggregious case of creating integer matrices. + if (node->getType().isMatrix() && (type.isScalar() || type.isVector()) && + type.isFloatingDomain() != node->getType().isFloatingDomain()) { + TType transitionType(node->getBasicType(), glslang::EvqTemporary, type.getVectorSize(), 0, 0, node->isVector()); + TOperator transitionOp = intermediate.mapTypeToConstructorOp(transitionType); + node = constructBuiltIn(transitionType, transitionOp, node, loc, false); + } + TIntermTyped* newNode; TOperator basicOp; @@ -5436,7 +5872,6 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T basicOp = EOpConstructDouble; break; -#ifdef AMD_EXTENSIONS case EOpConstructF16Vec2: case EOpConstructF16Vec3: case EOpConstructF16Vec4: @@ -5452,7 +5887,34 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T case EOpConstructFloat16: basicOp = EOpConstructFloat16; break; -#endif + + case EOpConstructI8Vec2: + case EOpConstructI8Vec3: + case EOpConstructI8Vec4: + case EOpConstructInt8: + basicOp = EOpConstructInt8; + break; + + case EOpConstructU8Vec2: + case EOpConstructU8Vec3: + case EOpConstructU8Vec4: + case EOpConstructUint8: + basicOp = EOpConstructUint8; + break; + + case EOpConstructI16Vec2: + case EOpConstructI16Vec3: + case EOpConstructI16Vec4: + case EOpConstructInt16: + basicOp = EOpConstructInt16; + break; + + case EOpConstructU16Vec2: + case EOpConstructU16Vec3: + case EOpConstructU16Vec4: + case EOpConstructUint16: + basicOp = EOpConstructUint16; + break; case EOpConstructIVec2: case EOpConstructIVec3: @@ -5489,6 +5951,11 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T basicOp = EOpConstructBool; break; + case EOpConstructNonuniform: + node->getWritableType().getQualifier().nonUniform = true; + return node; + break; + default: error(loc, "unsupported construction", "", ""); @@ -5533,13 +6000,14 @@ TIntermTyped* TParseContext::constructAggregate(TIntermNode* node, const TType& // // Do everything needed to add an interface block. // -void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, TArraySizes* arraySizes) +void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, + TArraySizes* arraySizes) { blockStageIoCheck(loc, currentBlockQualifier); blockQualifierCheck(loc, currentBlockQualifier, instanceName != nullptr); - if (arraySizes) { - arrayUnsizedCheck(loc, currentBlockQualifier, arraySizes, false, false); - arrayDimCheck(loc, arraySizes, 0); + if (arraySizes != nullptr) { + arraySizesCheck(loc, currentBlockQualifier, arraySizes, nullptr, false); + arrayOfArrayVersionCheck(loc, arraySizes); if (arraySizes->getNumDims() > 1) requireProfile(loc, ~EEsProfile, "array-of-array of block"); } @@ -5556,10 +6024,12 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con if ((currentBlockQualifier.storage == EvqUniform || currentBlockQualifier.storage == EvqBuffer) && (memberQualifier.isInterpolation() || memberQualifier.isAuxiliary())) error(memberLoc, "member of uniform or buffer block cannot have an auxiliary or interpolation qualifier", memberType.getFieldName().c_str(), ""); if (memberType.isArray()) - arrayUnsizedCheck(memberLoc, currentBlockQualifier, &memberType.getArraySizes(), false, member == typeList.size() - 1); + arraySizesCheck(memberLoc, currentBlockQualifier, memberType.getArraySizes(), nullptr, member == typeList.size() - 1); if (memberQualifier.hasOffset()) { - requireProfile(memberLoc, ~EEsProfile, "offset on block member"); - profileRequires(memberLoc, ~EEsProfile, 440, E_GL_ARB_enhanced_layouts, "offset on block member"); + if (spvVersion.spv == 0) { + requireProfile(memberLoc, ~EEsProfile, "offset on block member"); + profileRequires(memberLoc, ~EEsProfile, 440, E_GL_ARB_enhanced_layouts, "offset on block member"); + } } if (memberType.containsOpaque()) @@ -5600,11 +6070,10 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con mergeObjectLayoutQualifiers(defaultQualification, currentBlockQualifier, true); - // "The offset qualifier can only be used on block members of blocks declared with std140 or std430 layouts." // "The align qualifier can only be used on blocks or block members, and only for blocks declared with std140 or std430 layouts." - if (currentBlockQualifier.hasAlign() || currentBlockQualifier.hasAlign()) { + if (currentBlockQualifier.hasAlign()) { if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430) { - error(loc, "can only be used with std140 or std430 layout packing", "offset/align", ""); + error(loc, "can only be used with std140 or std430 layout packing", "align", ""); defaultQualification.layoutAlign = -1; } } @@ -5619,9 +6088,9 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con 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 + // "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) @@ -5637,7 +6106,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con case EvqVaryingOut: requireProfile(memberLoc, ECoreProfile | ECompatibilityProfile | EEsProfile, feature); profileRequires(memberLoc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature); - profileRequires(memberLoc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); + profileRequires(memberLoc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature); memberWithLocation = true; break; default: @@ -5646,9 +6115,12 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con } } else memberWithoutLocation = true; - if (memberQualifier.hasAlign()) { + + // "The offset qualifier can only be used on block members of blocks declared with std140 or std430 layouts." + // "The align qualifier can only be used on blocks or block members, and only for blocks declared with std140 or std430 layouts." + if (memberQualifier.hasAlign() || memberQualifier.hasOffset()) { if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430) - error(memberLoc, "can only be used with std140 or std430 layout packing", "align", ""); + error(memberLoc, "can only be used with std140 or std430 layout packing", "offset/align", ""); } TQualifier newMemberQualification = defaultQualification; @@ -5656,6 +6128,8 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con memberQualifier = newMemberQualification; } + layoutMemberLocationArrayCheck(loc, memberWithLocation, arraySizes); + // Process the members fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation); fixBlockXfbOffsets(currentBlockQualifier, typeList); @@ -5672,8 +6146,8 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con // TType blockType(&typeList, *blockName, currentBlockQualifier); - if (arraySizes) - blockType.newArraySizes(*arraySizes); + if (arraySizes != nullptr) + blockType.transferArraySizes(arraySizes); else ioArrayCheck(loc, blockType, instanceName ? *instanceName : *blockName); @@ -5723,6 +6197,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con // Check for general layout qualifier errors layoutObjectCheck(loc, variable); + // fix up if (isIoResizeArray(blockType)) { ioArraySymbolResizeList.push_back(&variable); checkIoArraysConsistency(loc, true); @@ -5730,7 +6205,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con fixIoArraySize(loc, variable.getWritableType()); // Save it in the AST for linker use. - trackLinkageDeferred(variable); + trackLinkage(variable); } // Do all block-declaration checking regarding the combination of in/out/uniform/buffer @@ -5755,14 +6230,14 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q // "Compute shaders do not permit user-defined input variables..." requireStage(loc, (EShLanguageMask)(EShLangTessControlMask|EShLangTessEvaluationMask|EShLangGeometryMask|EShLangFragmentMask), "input block"); if (language == EShLangFragment) - profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "fragment input block"); + profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "fragment input block"); break; case EvqVaryingOut: profileRequires(loc, ~EEsProfile, 150, E_GL_ARB_separate_shader_objects, "output block"); requireStage(loc, (EShLanguageMask)(EShLangVertexMask|EShLangTessControlMask|EShLangTessEvaluationMask|EShLangGeometryMask), "output block"); // ES 310 can have a block before shader_io is turned on, so skip this test for built-ins if (language == EShLangVertex && ! parsingBuiltins) - profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "vertex output block"); + profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "vertex output block"); break; default: error(loc, "only uniform, buffer, in, or out blocks are supported", blockName->c_str(), ""); @@ -5771,7 +6246,7 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q } // Do all block-declaration checking regarding its qualifiers. -void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier, bool instanceName) +void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& qualifier, bool /*instanceName*/) { // The 4.5 specification says: // @@ -5798,23 +6273,20 @@ void TParseContext::blockQualifierCheck(const TSourceLoc& loc, const TQualifier& error(loc, "cannot use sample qualifier on an interface block", "sample", ""); if (qualifier.invariant) error(loc, "cannot use invariant qualifier on an interface block", "invariant", ""); - if (qualifier.layoutPushConstant) { + if (qualifier.layoutPushConstant) intermediate.addPushConstantCount(); - if (! instanceName) - error(loc, "requires an instance name", "push_constant", ""); - } } // -// "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 +// "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 +// 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 TParseContext::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 + // "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", ""); @@ -5840,9 +6312,10 @@ void TParseContext::fixBlockLocations(const TSourceLoc& loc, TQualifier& qualifi if (nextLocation >= (int)TQualifier::layoutLocationEnd) error(memberLoc, "location is too large", "location", ""); memberQualifier.layoutLocation = nextLocation; - memberQualifier.layoutComponent = 0; + memberQualifier.layoutComponent = TQualifier::layoutComponentEnd; } - nextLocation = memberQualifier.layoutLocation + intermediate.computeTypeLocationSize(*typeList[member].type); + nextLocation = memberQualifier.layoutLocation + intermediate.computeTypeLocationSize( + *typeList[member].type, language); } } } @@ -5850,9 +6323,9 @@ void TParseContext::fixBlockLocations(const TSourceLoc& loc, TQualifier& qualifi void TParseContext::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 + // "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()) @@ -5879,10 +6352,10 @@ void TParseContext::fixBlockXfbOffsets(TQualifier& qualifier, TTypeList& typeLis qualifier.layoutXfbOffset = TQualifier::layoutXfbOffsetEnd; } -// Calculate and save the offset of each block member, using the recursively +// 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 +// 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 TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typeList) @@ -5906,20 +6379,20 @@ void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typ 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 + // "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", ""); - // GLSL: "It is a compile-time error to specify an offset that is smaller than the offset of the previous + // GLSL: "It is a compile-time error to specify an offset that is smaller than the offset of the previous // member in the block or that lies within the previous member of the block" if (spvVersion.spv == 0) { if (memberQualifier.layoutOffset < offset) error(memberLoc, "cannot lie in previous members", "offset", ""); - // "The offset qualifier forces the qualified member to start at or after the specified - // integral-constant expression, which will be its byte offset from the beginning of the buffer. - // "The actual offset of a member is computed as + // "The offset qualifier forces the qualified member to start at or after the specified + // integral-constant expression, which will be its byte offset from the beginning of the buffer. + // "The actual offset of a member is computed as // follows: If offset was declared, start with that offset, otherwise start with the next available offset." offset = std::max(offset, memberQualifier.layoutOffset); } else { @@ -5930,13 +6403,13 @@ void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typ } } - // "The actual alignment of a member will be the greater of the specified align alignment and the standard + // "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 + // increase it to the first offset that is a multiple of // the actual alignment." RoundToPow2(offset, memberAlignment); typeList[member].type->getQualifier().layoutOffset = offset; @@ -6026,7 +6499,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con error(loc, "can only apply to 'out'", id, ""); if (! intermediate.setVertices(publicType.shaderQualifiers.vertices)) error(loc, "cannot change previously set layout value", id, ""); - + if (language == EShLangTessControl) checkIoArraysConsistency(loc); } @@ -6131,6 +6604,12 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con else error(loc, "can only apply to 'in'", "early_fragment_tests", ""); } + if (publicType.shaderQualifiers.postDepthCoverage) { + if (publicType.qualifier.storage == EvqVaryingIn) + intermediate.setPostDepthCoverage(); + else + error(loc, "can only apply to 'in'", "post_coverage_coverage", ""); + } if (publicType.shaderQualifiers.blendEquation) { if (publicType.qualifier.storage != EvqVaryingOut) error(loc, "can only apply to 'out'", "blend equation", ""); diff --git a/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.h b/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.h index 30f2d9a822..dd8e30d20e 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -44,14 +44,15 @@ #ifndef _PARSER_HELPER_INCLUDED_ #define _PARSER_HELPER_INCLUDED_ +#include +#include + #include "parseVersions.h" #include "../Include/ShHandle.h" #include "SymbolTable.h" #include "localintermediate.h" #include "Scan.h" -#include - -#include +#include "attribute.h" namespace glslang { @@ -75,13 +76,22 @@ class TParseContextBase : public TParseVersions { public: TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, - TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) + TInfoSink& infoSink, bool forwardCompatible, EShMessages messages, + const TString* entryPoint = nullptr) : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), + scopeMangler("::"), symbolTable(symbolTable), + statementNestingLevel(0), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), + postEntryPointReturn(false), + contextPragma(true, false), parsingBuiltins(parsingBuiltins), scanContext(nullptr), ppContext(nullptr), - globalUniformBlock(nullptr) + limits(resources.limits), + globalUniformBlock(nullptr), + globalUniformBinding(TQualifier::layoutBindingEnd), + globalUniformSet(TQualifier::layoutSetEnd) { - linkage = new TIntermAggregate; + if (entryPoint != nullptr) + sourceEntryPointName = *entryPoint; } virtual ~TParseContextBase() { } @@ -96,6 +106,8 @@ public: virtual void setLimits(const TBuiltInResource&) = 0; + void checkIndex(const TSourceLoc&, const TType&, int& index); + EShLanguage getLanguage() const { return language; } void setScanContext(TScanContext* c) { scanContext = c; } TScanContext* getScanContext() const { return scanContext; } @@ -136,26 +148,51 @@ public: extensionCallback(line, extension, behavior); } - TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile - // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) - // TODO: This could perhaps get its own object, but the current design doesn't work - // yet when new uniform variables are declared between function definitions, so - // this is pending getting a fully functional design. - virtual void growGlobalUniformBlock(TSourceLoc&, TType&, TString& memberName); - virtual bool insertGlobalUniformBlock(); + virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr); + + // Potentially rename shader entry point function + void renameShaderFunction(TString*& name) const + { + // Replace the entry point name given in the shader with the real entry point name, + // if there is a substitution. + if (name != nullptr && *name == sourceEntryPointName && intermediate.getEntryPointName().size() > 0) + name = NewPoolTString(intermediate.getEntryPointName().c_str()); + } virtual bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); virtual void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); + const char* const scopeMangler; + + // Basic parsing state, easily accessible to the grammar + + TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile + int statementNestingLevel; // 0 if outside all flow control or compound statements + int loopNestingLevel; // 0 if outside all loops + int structNestingLevel; // 0 if outside blocks and structures + int controlFlowNestingLevel; // 0 if outside all flow control + const TType* currentFunctionType; // the return type of the function that's currently being parsed + bool functionReturnsValue; // true if a non-void function has a return + // if inside a function, true if the function is the entry point and this is after a return statement + bool postEntryPointReturn; + // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting + TList switchSequenceStack; + // the statementNestingLevel the current switch statement is at, which must match the level of its case statements + TList switchLevel; + struct TPragma contextPragma; + protected: TParseContextBase(TParseContextBase&); TParseContextBase& operator=(TParseContextBase&); const bool parsingBuiltins; // true if parsing built-in symbols/functions - TVector linkageSymbols; // these need to be transferred to 'linkage', after all editing is done + TVector linkageSymbols; // will be transferred to 'linkage', after all editing is done, order preserving TScanContext* scanContext; TPpContext* ppContext; + TBuiltInResource resources; + TLimits& limits; + TString sourceEntryPointName; // These, if set, will be called when a line, pragma ... is preprocessed. // They will be called with any parameters to the original directive. @@ -171,23 +208,25 @@ protected: std::function, /* output */ bool& tie); + virtual void parseSwizzleSelector(const TSourceLoc&, const TString&, int size, + TSwizzleSelectors&); + // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) - TVariable* globalUniformBlock; // the actual block, inserted into the symbol table - int firstNewMember; // the index of the first member not yet inserted into the symbol table + TVariable* globalUniformBlock; // the actual block, inserted into the symbol table + unsigned int globalUniformBinding; // the block's binding number + unsigned int globalUniformSet; // the block's set number + int firstNewMember; // the index of the first member not yet inserted into the symbol table // override this to set the language-specific name - virtual const char* getGlobalUniformBlockName() { return ""; } + virtual const char* getGlobalUniformBlockName() const { return ""; } + virtual void setUniformBlockDefaults(TType&) const { } virtual void finalizeGlobalUniformBlockLayout(TVariable&) { } virtual void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, TPrefixType prefix, va_list args); virtual void trackLinkage(TSymbol& symbol); - virtual void trackLinkageDeferred(TSymbol& symbol); virtual void makeEditable(TSymbol*&); virtual TVariable* getEditableVariable(const char* name); virtual void finish(); - -private: - TIntermAggregate* linkage; }; // @@ -232,29 +271,29 @@ protected: class TParseContext : public TParseContextBase { public: TParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, - bool forwardCompatible = false, EShMessages messages = EShMsgDefault); + bool forwardCompatible = false, EShMessages messages = EShMsgDefault, + const TString* entryPoint = nullptr); virtual ~TParseContext(); bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); }; void setPrecisionDefaults(); - void setLimits(const TBuiltInResource&); - bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); + void setLimits(const TBuiltInResource&) override; + bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false) override; void parserError(const char* s); // for bison's yyerror void reservedErrorCheck(const TSourceLoc&, const TString&); - void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op); - bool lineContinuationCheck(const TSourceLoc&, bool endOfComment); - bool lineDirectiveShouldSetNextLine() const; + void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op) override; + bool lineContinuationCheck(const TSourceLoc&, bool endOfComment) override; + bool lineDirectiveShouldSetNextLine() const override; bool builtInName(const TString&); - void handlePragma(const TSourceLoc&, const TVector&); + void handlePragma(const TSourceLoc&, const TVector&) override; TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); - void checkIndex(const TSourceLoc&, const TType&, int& index); void handleIndexLimits(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); - void makeEditable(TSymbol*&); + void makeEditable(TSymbol*&) override; bool isIoResizeArray(const TType&) const; void fixIoArraySize(const TSourceLoc&, TType&); void ioArrayCheck(const TSourceLoc&, const TType&, const TString& identifier); @@ -270,7 +309,7 @@ public: TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); - TIntermTyped* handleBuiltInFunctionCall(TSourceLoc, TIntermNode& arguments, const TFunction& function); + TIntermTyped* handleBuiltInFunctionCall(TSourceLoc, TIntermNode* arguments, const TFunction& function); void computeBuiltinPrecisions(TIntermTyped&, const TFunction&); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void checkLocation(const TSourceLoc&, TOperator); @@ -285,7 +324,6 @@ public: void handlePrecisionQualifier(const TSourceLoc&, TQualifier&, TPrecisionQualifier); void checkPrecisionQualifier(const TSourceLoc&, TPrecisionQualifier); - bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); 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); @@ -302,17 +340,15 @@ public: bool arrayError(const TSourceLoc&, const TType&); void arraySizeRequiredCheck(const TSourceLoc&, const TArraySizes&); void structArrayCheck(const TSourceLoc&, const TType& structure); - void arrayUnsizedCheck(const TSourceLoc&, const TQualifier&, const TArraySizes*, bool initializer, bool lastMember); - void arrayOfArrayVersionCheck(const TSourceLoc&); - void arrayDimCheck(const TSourceLoc&, const TArraySizes* sizes1, const TArraySizes* sizes2); - void arrayDimCheck(const TSourceLoc&, const TType*, const TArraySizes*); - void arrayDimMerge(TType& type, const TArraySizes* sizes); + void arraySizesCheck(const TSourceLoc&, const TQualifier&, TArraySizes*, const TIntermTyped* initializer, bool lastMember); + void arrayOfArrayVersionCheck(const TSourceLoc&, const TArraySizes*); bool voidErrorCheck(const TSourceLoc&, const TString&, TBasicType); void boolCheck(const TSourceLoc&, const TIntermTyped*); void boolCheck(const TSourceLoc&, const TPublicType&); void samplerCheck(const TSourceLoc&, const TType&, const TString& identifier, TIntermTyped* initializer); void atomicUintCheck(const TSourceLoc&, const TType&, const TString& identifier); - void transparentCheck(const TSourceLoc&, const TType&, const TString& identifier); + void transparentOpaqueCheck(const TSourceLoc&, const TType&, const TString& identifier); + void memberQualifierCheck(glslang::TPublicType&); void globalQualifierFixCheck(const TSourceLoc&, TQualifier&); void globalQualifierTypeCheck(const TSourceLoc&, const TQualifier&, const TPublicType&); bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType); @@ -325,7 +361,7 @@ public: bool containsFieldWithBasicType(const TType& type ,TBasicType basicType); TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); - void paramCheckFix(const TSourceLoc&, const TStorageQualifier&, TType& type); + void paramCheckFixStorage(const TSourceLoc&, const TStorageQualifier&, TType& type); void paramCheckFix(const TSourceLoc&, const TQualifier&, TType& type); void nestedBlockCheck(const TSourceLoc&); void nestedStructCheck(const TSourceLoc&); @@ -344,6 +380,7 @@ public: void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&, const TIntermTyped*); void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly); void layoutObjectCheck(const TSourceLoc&, const TSymbol&); + void layoutMemberLocationArrayCheck(const TSourceLoc&, bool memberWithLocation, TArraySizes* arraySizes); void layoutTypeCheck(const TSourceLoc&, const TType&); void layoutQualifierCheck(const TSourceLoc&, const TQualifier&); void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); @@ -353,6 +390,7 @@ public: const TFunction* findFunctionExact(const TSourceLoc& loc, const TFunction& call, bool& builtIn); const TFunction* findFunction120(const TSourceLoc& loc, const TFunction& call, bool& builtIn); const TFunction* findFunction400(const TSourceLoc& loc, const TFunction& call, bool& builtIn); + const TFunction* findFunctionExplicitTypes(const TSourceLoc& loc, const TFunction& call, bool& builtIn); void declareTypeDefaults(const TSourceLoc&, const TPublicType&); TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TPublicType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0); TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); @@ -371,14 +409,26 @@ public: void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode); TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body); - void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index); + TAttributeType attributeFromName(const TString& name) const; + TAttributes* makeAttributes(const TString& identifier) const; + TAttributes* makeAttributes(const TString& identifier, TIntermNode* node) const; + TAttributes* mergeAttributes(TAttributes*, TAttributes*) const; + + // Determine selection control from attributes + void handleSelectionAttributes(const TAttributes& attributes, TIntermNode*); + void handleSwitchAttributes(const TAttributes& attributes, TIntermNode*); + + // Determine loop control from attributes + void handleLoopAttributes(const TAttributes& attributes, TIntermNode*); protected: void nonInitConstCheck(const TSourceLoc&, TString& identifier, TType& type); void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; - TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&); - void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&); + TVariable* declareNonArray(const TSourceLoc&, const TString& identifier, const TType&); + void declareArray(const TSourceLoc&, const TString& identifier, const TType&, TSymbol*&); + void checkRuntimeSizable(const TSourceLoc&, const TIntermTyped&); + bool isRuntimeLength(const TIntermTyped&) const; TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); void finish() override; @@ -389,17 +439,7 @@ public: // // Current state of parsing - struct TPragma contextPragma; - int loopNestingLevel; // 0 if outside all loops - int structNestingLevel; // 0 if outside blocks and structures - int controlFlowNestingLevel; // 0 if outside all flow control - int statementNestingLevel; // 0 if outside all flow control or compound statements - TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting - TList switchLevel; // the statementNestingLevel the current switch statement is at, which must match the level of its case statements bool inMain; // if inside a function, true if the function is main - bool postMainReturn; // if inside a function, true if the function is main and this is after a return statement - const TType* currentFunctionType; // the return type of the function that's currently being parsed - bool functionReturnsValue; // true if a non-void function has a return const TString* blockName; TQualifier currentBlockQualifier; TPrecisionQualifier defaultPrecision[EbtNumTypes]; diff --git a/deps/glslang/glslang/glslang/MachineIndependent/PoolAlloc.cpp b/deps/glslang/glslang/glslang/MachineIndependent/PoolAlloc.cpp index 9dfcd30558..84c40f4e79 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/PoolAlloc.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/PoolAlloc.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // #include "../Include/Common.h" @@ -40,35 +40,22 @@ namespace glslang { +// Process-wide TLS index OS_TLSIndex PoolIndex; -void InitializeMemoryPools() +// Return the thread-specific current pool. +TPoolAllocator& GetThreadPoolAllocator() { - TThreadMemoryPools* pools = static_cast(OS_GetTLSValue(PoolIndex)); - if (pools) - return; - - TPoolAllocator *threadPoolAllocator = new TPoolAllocator(); - - TThreadMemoryPools* threadData = new TThreadMemoryPools(); - - threadData->threadPoolAllocator = threadPoolAllocator; - - OS_SetTLSValue(PoolIndex, threadData); + return *static_cast(OS_GetTLSValue(PoolIndex)); } -void FreeGlobalPools() +// Set the thread-specific current pool. +void SetThreadPoolAllocator(TPoolAllocator* poolAllocator) { - // Release the allocated memory for this thread. - TThreadMemoryPools* globalPools = static_cast(OS_GetTLSValue(PoolIndex)); - if (! globalPools) - return; - - GetThreadPoolAllocator().popAll(); - delete &GetThreadPoolAllocator(); - delete globalPools; + OS_SetTLSValue(PoolIndex, poolAllocator); } +// Process-wide set up of the TLS pool storage. bool InitializePoolIndex() { // Allocate a TLS index. @@ -78,35 +65,15 @@ bool InitializePoolIndex() return true; } -void FreePoolIndex() -{ - // Release the TLS index. - OS_FreeTLSIndex(PoolIndex); -} - -TPoolAllocator& GetThreadPoolAllocator() -{ - TThreadMemoryPools* threadData = static_cast(OS_GetTLSValue(PoolIndex)); - - return *threadData->threadPoolAllocator; -} - -void SetThreadPoolAllocator(TPoolAllocator& poolAllocator) -{ - TThreadMemoryPools* threadData = static_cast(OS_GetTLSValue(PoolIndex)); - - threadData->threadPoolAllocator = &poolAllocator; -} - // // Implement the functionality of the TPoolAllocator class, which // is documented in PoolAlloc.h. // -TPoolAllocator::TPoolAllocator(int growthIncrement, int allocationAlignment) : +TPoolAllocator::TPoolAllocator(int growthIncrement, int allocationAlignment) : pageSize(growthIncrement), alignment(allocationAlignment), - freeList(0), - inUseList(0), + freeList(nullptr), + inUseList(nullptr), numCalls(0) { // @@ -206,13 +173,12 @@ void TAllocation::checkGuardBlock(unsigned char*, unsigned char, const char*) co #endif } - void TPoolAllocator::push() { tAllocState state = { currentPageOffset, inUseList }; stack.push_back(state); - + // // Indicate there is no current page to allocate from. // @@ -235,13 +201,16 @@ void TPoolAllocator::pop() currentPageOffset = stack.back().offset; while (inUseList != page) { - // invoke destructor to free allocation list - inUseList->~tHeader(); - tHeader* nextInUse = inUseList->nextPage; - if (inUseList->pageCount > 1) + size_t pageCount = inUseList->pageCount; + + // This technically ends the lifetime of the header as C++ object, + // but we will still control the memory and reuse it. + inUseList->~tHeader(); // currently, just a debug allocation checker + + if (pageCount > 1) { delete [] reinterpret_cast(inUseList); - else { + } else { inUseList->nextPage = freeList; freeList = inUseList; } @@ -269,7 +238,7 @@ void* TPoolAllocator::allocate(size_t numBytes) // size including guard blocks. In release build, // guardBlockSize=0 and this all gets optimized away. size_t allocationSize = TAllocation::allocationSize(numBytes); - + // // Just keep some interesting statistics. // @@ -327,14 +296,13 @@ void* TPoolAllocator::allocate(size_t numBytes) // Use placement-new to initialize header new(memory) tHeader(inUseList, 1); inUseList = memory; - + unsigned char* ret = reinterpret_cast(inUseList) + headerSkip; currentPageOffset = (headerSkip + allocationSize + alignmentMask) & ~alignmentMask; return initializeAllocation(inUseList, ret, numBytes); } - // // Check all allocations in a list for damage by calling check on each. // diff --git a/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.cpp b/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.cpp index a4fa551cad..1d33bfd203 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.cpp @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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/intermediate.h" diff --git a/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.h b/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.h index 483b25dcb5..1ed015626b 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,20 +18,22 @@ // 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 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 + namespace glslang { void RemoveAllTreeNodes(TIntermNode*); diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Scan.cpp b/deps/glslang/glslang/glslang/MachineIndependent/Scan.cpp old mode 100644 new mode 100755 index 695e63d00c..aa21d8a11e --- a/deps/glslang/glslang/glslang/MachineIndependent/Scan.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/Scan.cpp @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -45,6 +46,7 @@ #include "../Include/Types.h" #include "SymbolTable.h" #include "ParseHelper.h" +#include "attribute.h" #include "glslang_tab.cpp.h" #include "ScanContext.h" #include "Scan.h" @@ -52,7 +54,6 @@ // preprocessor includes #include "preprocessor/PpContext.h" #include "preprocessor/PpTokens.h" -#include "preprocessor/Compare.h" // Required to avoid missing prototype warnings for some compilers int yylex(YYSTYPE*, glslang::TParseContext&); @@ -143,13 +144,13 @@ void TInputScanner::consumeWhitespaceComment(bool& foundNonSpaceTab) { do { consumeWhiteSpace(foundNonSpaceTab); - + // if not starting a comment now, then done int c = peek(); if (c != '/' || c == EndOfInput) return; - // skip potential comment + // skip potential comment foundNonSpaceTab = true; if (! consumeComment()) return; @@ -176,7 +177,7 @@ bool TInputScanner::scanVersion(int& version, EProfile& profile, bool& notFirstT bool versionNotFirst = false; // means not first WRT comments and white space, nothing more notFirstToken = false; // means not first WRT to real tokens - version = 0; // means not found + version = 0; // means not found profile = ENoProfile; bool foundNonSpaceTab = false; @@ -200,10 +201,10 @@ bool TInputScanner::scanVersion(int& version, EProfile& profile, bool& notFirstT } lookingInMiddle = true; - // Nominal start, skipping the desktop allowed comments and white space, but tracking if + // Nominal start, skipping the desktop allowed comments and white space, but tracking if // something else was found for ES: consumeWhitespaceComment(foundNonSpaceTab); - if (foundNonSpaceTab) + if (foundNonSpaceTab) versionNotFirst = true; // "#" @@ -288,15 +289,38 @@ protected: } // end namespace glslang // This is the function the glslang parser (i.e., bison) calls to get its next token -int yylex(YYSTYPE* glslangTokenDesc, glslang::TParseContext& _parseContext) +int yylex(YYSTYPE* glslangTokenDesc, glslang::TParseContext& parseContext) { glslang::TParserToken token(*glslangTokenDesc); - return _parseContext.getScanContext()->tokenize(_parseContext.getPpContext(), token); + return parseContext.getScanContext()->tokenize(parseContext.getPpContext(), token); } namespace { +struct str_eq +{ + bool operator()(const char* lhs, const char* rhs) const + { + return strcmp(lhs, rhs) == 0; + } +}; + +struct str_hash +{ + size_t operator()(const char* str) const + { + // djb2 + unsigned long hash = 5381; + int c; + + while ((c = *str++) != 0) + hash = ((hash << 5) + hash) + c; + + return hash; + } +}; + // 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* KeywordMap = nullptr; @@ -317,6 +341,7 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["const"] = CONST; (*KeywordMap)["uniform"] = UNIFORM; + (*KeywordMap)["nonuniformEXT"] = NONUNIFORM; (*KeywordMap)["in"] = IN; (*KeywordMap)["out"] = OUT; (*KeywordMap)["inout"] = INOUT; @@ -441,7 +466,34 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["u64vec3"] = U64VEC3; (*KeywordMap)["u64vec4"] = U64VEC4; -#ifdef AMD_EXTENSIONS + // GL_KHX_shader_explicit_arithmetic_types + (*KeywordMap)["int8_t"] = INT8_T; + (*KeywordMap)["i8vec2"] = I8VEC2; + (*KeywordMap)["i8vec3"] = I8VEC3; + (*KeywordMap)["i8vec4"] = I8VEC4; + (*KeywordMap)["uint8_t"] = UINT8_T; + (*KeywordMap)["u8vec2"] = U8VEC2; + (*KeywordMap)["u8vec3"] = U8VEC3; + (*KeywordMap)["u8vec4"] = U8VEC4; + + (*KeywordMap)["int16_t"] = INT16_T; + (*KeywordMap)["i16vec2"] = I16VEC2; + (*KeywordMap)["i16vec3"] = I16VEC3; + (*KeywordMap)["i16vec4"] = I16VEC4; + (*KeywordMap)["uint16_t"] = UINT16_T; + (*KeywordMap)["u16vec2"] = U16VEC2; + (*KeywordMap)["u16vec3"] = U16VEC3; + (*KeywordMap)["u16vec4"] = U16VEC4; + + (*KeywordMap)["int32_t"] = INT32_T; + (*KeywordMap)["i32vec2"] = I32VEC2; + (*KeywordMap)["i32vec3"] = I32VEC3; + (*KeywordMap)["i32vec4"] = I32VEC4; + (*KeywordMap)["uint32_t"] = UINT32_T; + (*KeywordMap)["u32vec2"] = U32VEC2; + (*KeywordMap)["u32vec3"] = U32VEC3; + (*KeywordMap)["u32vec4"] = U32VEC4; + (*KeywordMap)["float16_t"] = FLOAT16_T; (*KeywordMap)["f16vec2"] = F16VEC2; (*KeywordMap)["f16vec3"] = F16VEC3; @@ -458,7 +510,39 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["f16mat4x2"] = F16MAT4X2; (*KeywordMap)["f16mat4x3"] = F16MAT4X3; (*KeywordMap)["f16mat4x4"] = F16MAT4X4; -#endif + + (*KeywordMap)["float32_t"] = FLOAT32_T; + (*KeywordMap)["f32vec2"] = F32VEC2; + (*KeywordMap)["f32vec3"] = F32VEC3; + (*KeywordMap)["f32vec4"] = F32VEC4; + (*KeywordMap)["f32mat2"] = F32MAT2; + (*KeywordMap)["f32mat3"] = F32MAT3; + (*KeywordMap)["f32mat4"] = F32MAT4; + (*KeywordMap)["f32mat2x2"] = F32MAT2X2; + (*KeywordMap)["f32mat2x3"] = F32MAT2X3; + (*KeywordMap)["f32mat2x4"] = F32MAT2X4; + (*KeywordMap)["f32mat3x2"] = F32MAT3X2; + (*KeywordMap)["f32mat3x3"] = F32MAT3X3; + (*KeywordMap)["f32mat3x4"] = F32MAT3X4; + (*KeywordMap)["f32mat4x2"] = F32MAT4X2; + (*KeywordMap)["f32mat4x3"] = F32MAT4X3; + (*KeywordMap)["f32mat4x4"] = F32MAT4X4; + (*KeywordMap)["float64_t"] = FLOAT64_T; + (*KeywordMap)["f64vec2"] = F64VEC2; + (*KeywordMap)["f64vec3"] = F64VEC3; + (*KeywordMap)["f64vec4"] = F64VEC4; + (*KeywordMap)["f64mat2"] = F64MAT2; + (*KeywordMap)["f64mat3"] = F64MAT3; + (*KeywordMap)["f64mat4"] = F64MAT4; + (*KeywordMap)["f64mat2x2"] = F64MAT2X2; + (*KeywordMap)["f64mat2x3"] = F64MAT2X3; + (*KeywordMap)["f64mat2x4"] = F64MAT2X4; + (*KeywordMap)["f64mat3x2"] = F64MAT3X2; + (*KeywordMap)["f64mat3x3"] = F64MAT3X3; + (*KeywordMap)["f64mat3x4"] = F64MAT3X4; + (*KeywordMap)["f64mat4x2"] = F64MAT4X2; + (*KeywordMap)["f64mat4x3"] = F64MAT4X3; + (*KeywordMap)["f64mat4x4"] = F64MAT4X4; (*KeywordMap)["sampler2D"] = SAMPLER2D; (*KeywordMap)["samplerCube"] = SAMPLERCUBE; @@ -547,6 +631,54 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["usubpassInput"] = USUBPASSINPUT; (*KeywordMap)["usubpassInputMS"] = USUBPASSINPUTMS; +#ifdef AMD_EXTENSIONS + (*KeywordMap)["f16sampler1D"] = F16SAMPLER1D; + (*KeywordMap)["f16sampler2D"] = F16SAMPLER2D; + (*KeywordMap)["f16sampler3D"] = F16SAMPLER3D; + (*KeywordMap)["f16sampler2DRect"] = F16SAMPLER2DRECT; + (*KeywordMap)["f16samplerCube"] = F16SAMPLERCUBE; + (*KeywordMap)["f16sampler1DArray"] = F16SAMPLER1DARRAY; + (*KeywordMap)["f16sampler2DArray"] = F16SAMPLER2DARRAY; + (*KeywordMap)["f16samplerCubeArray"] = F16SAMPLERCUBEARRAY; + (*KeywordMap)["f16samplerBuffer"] = F16SAMPLERBUFFER; + (*KeywordMap)["f16sampler2DMS"] = F16SAMPLER2DMS; + (*KeywordMap)["f16sampler2DMSArray"] = F16SAMPLER2DMSARRAY; + (*KeywordMap)["f16sampler1DShadow"] = F16SAMPLER1DSHADOW; + (*KeywordMap)["f16sampler2DShadow"] = F16SAMPLER2DSHADOW; + (*KeywordMap)["f16sampler2DRectShadow"] = F16SAMPLER2DRECTSHADOW; + (*KeywordMap)["f16samplerCubeShadow"] = F16SAMPLERCUBESHADOW; + (*KeywordMap)["f16sampler1DArrayShadow"] = F16SAMPLER1DARRAYSHADOW; + (*KeywordMap)["f16sampler2DArrayShadow"] = F16SAMPLER2DARRAYSHADOW; + (*KeywordMap)["f16samplerCubeArrayShadow"] = F16SAMPLERCUBEARRAYSHADOW; + + (*KeywordMap)["f16image1D"] = F16IMAGE1D; + (*KeywordMap)["f16image2D"] = F16IMAGE2D; + (*KeywordMap)["f16image3D"] = F16IMAGE3D; + (*KeywordMap)["f16image2DRect"] = F16IMAGE2DRECT; + (*KeywordMap)["f16imageCube"] = F16IMAGECUBE; + (*KeywordMap)["f16image1DArray"] = F16IMAGE1DARRAY; + (*KeywordMap)["f16image2DArray"] = F16IMAGE2DARRAY; + (*KeywordMap)["f16imageCubeArray"] = F16IMAGECUBEARRAY; + (*KeywordMap)["f16imageBuffer"] = F16IMAGEBUFFER; + (*KeywordMap)["f16image2DMS"] = F16IMAGE2DMS; + (*KeywordMap)["f16image2DMSArray"] = F16IMAGE2DMSARRAY; + + (*KeywordMap)["f16texture1D"] = F16TEXTURE1D; + (*KeywordMap)["f16texture2D"] = F16TEXTURE2D; + (*KeywordMap)["f16texture3D"] = F16TEXTURE3D; + (*KeywordMap)["f16texture2DRect"] = F16TEXTURE2DRECT; + (*KeywordMap)["f16textureCube"] = F16TEXTURECUBE; + (*KeywordMap)["f16texture1DArray"] = F16TEXTURE1DARRAY; + (*KeywordMap)["f16texture2DArray"] = F16TEXTURE2DARRAY; + (*KeywordMap)["f16textureCubeArray"] = F16TEXTURECUBEARRAY; + (*KeywordMap)["f16textureBuffer"] = F16TEXTUREBUFFER; + (*KeywordMap)["f16texture2DMS"] = F16TEXTURE2DMS; + (*KeywordMap)["f16texture2DMSArray"] = F16TEXTURE2DMSARRAY; + + (*KeywordMap)["f16subpassInput"] = F16SUBPASSINPUT; + (*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS; +#endif + (*KeywordMap)["noperspective"] = NOPERSPECTIVE; (*KeywordMap)["smooth"] = SMOOTH; (*KeywordMap)["flat"] = FLAT; @@ -616,13 +748,14 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) do { parserToken = &token; TPpToken ppToken; - tokenText = pp->tokenize(&ppToken); - if (tokenText == nullptr || tokenText[0] == 0) + int token = pp->tokenize(ppToken); + if (token == EndOfInput) return 0; + tokenText = ppToken.name; loc = ppToken.loc; parserToken->sType.lex.loc = loc; - switch (ppToken.token) { + switch (token) { case ';': afterType = false; return SEMICOLON; case ',': afterType = false; return COMMA; case ':': return COLON; @@ -645,17 +778,17 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) case '?': return QUESTION; case '[': return LEFT_BRACKET; case ']': return RIGHT_BRACKET; - case '{': return LEFT_BRACE; + case '{': afterStruct = false; return LEFT_BRACE; case '}': return RIGHT_BRACE; case '\\': - _parseContext.error(loc, "illegal use of escape character", "\\", ""); + parseContext.error(loc, "illegal use of escape character", "\\", ""); break; - case PpAtomAdd: return ADD_ASSIGN; - case PpAtomSub: return SUB_ASSIGN; - case PpAtomMul: return MUL_ASSIGN; - case PpAtomDiv: return DIV_ASSIGN; - case PpAtomMod: return MOD_ASSIGN; + case PPAtomAddAssign: return ADD_ASSIGN; + case PPAtomSubAssign: return SUB_ASSIGN; + case PPAtomMulAssign: return MUL_ASSIGN; + case PPAtomDivAssign: return DIV_ASSIGN; + case PPAtomModAssign: return MOD_ASSIGN; case PpAtomRight: return RIGHT_OP; case PpAtomLeft: return LEFT_OP; @@ -678,15 +811,19 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) case PpAtomDecrement: return DEC_OP; case PpAtomIncrement: return INC_OP; - case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT; - case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT; - case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT; - case PpAtomConstUint64: parserToken->sType.lex.i64 = ppToken.i64val; return UINT64CONSTANT; - case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT; - case PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT; -#ifdef AMD_EXTENSIONS - case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT; -#endif + case PpAtomColonColon: + parseContext.error(loc, "not supported", "::", ""); + break; + + case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT; + case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT; + case PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT; + case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT; + case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT; + case PpAtomConstUint64: parserToken->sType.lex.i64 = ppToken.i64val; return UINT64CONSTANT; + case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT; + case PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT; + case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT; case PpAtomIdentifier: { int token = tokenizeIdentifier(); @@ -698,9 +835,9 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) default: char buf[2]; - buf[0] = (char)ppToken.token; + buf[0] = (char)token; buf[1] = 0; - _parseContext.error(loc, "unexpected token", buf, ""); + parseContext.error(loc, "unexpected token", buf, ""); break; } } while (true); @@ -724,7 +861,6 @@ int TScanContext::tokenizeIdentifier() case IN: case OUT: case INOUT: - case STRUCT: case BREAK: case CONTINUE: case DO: @@ -737,10 +873,20 @@ int TScanContext::tokenizeIdentifier() case CASE: return keyword; + case STRUCT: + afterStruct = true; + return keyword; + + case NONUNIFORM: + if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier)) + return keyword; + else + return identifierOrType(); + case SWITCH: case DEFAULT: - if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || - (_parseContext.profile != EEsProfile && _parseContext.version < 130)) + if ((parseContext.profile == EEsProfile && parseContext.version < 300) || + (parseContext.profile != EEsProfile && parseContext.version < 130)) reservedWord(); return keyword; @@ -774,19 +920,19 @@ int TScanContext::tokenizeIdentifier() case ATTRIBUTE: case VARYING: - if (_parseContext.profile == EEsProfile && _parseContext.version >= 300) + if (parseContext.profile == EEsProfile && parseContext.version >= 300) reservedWord(); return keyword; case BUFFER: - if ((_parseContext.profile == EEsProfile && _parseContext.version < 310) || - (_parseContext.profile != EEsProfile && _parseContext.version < 430)) + if ((parseContext.profile == EEsProfile && parseContext.version < 310) || + (parseContext.profile != EEsProfile && parseContext.version < 430)) return identifierOrType(); return keyword; case ATOMIC_UINT: - if ((_parseContext.profile == EEsProfile && _parseContext.version >= 310) || - _parseContext.extensionTurnedOn(E_GL_ARB_shader_atomic_counters)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 310) || + parseContext.extensionTurnedOn(E_GL_ARB_shader_atomic_counters)) return keyword; return es30ReservedFromGLSL(420); @@ -794,14 +940,15 @@ int TScanContext::tokenizeIdentifier() case RESTRICT: case READONLY: case WRITEONLY: - if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) + if (parseContext.profile == EEsProfile && parseContext.version >= 310) return keyword; - return es30ReservedFromGLSL(_parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store) ? 130 : 420); + return es30ReservedFromGLSL(parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store) ? 130 : 420); case VOLATILE: - if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) + if (parseContext.profile == EEsProfile && parseContext.version >= 310) return keyword; - if (!_parseContext.symbolTable.atBuiltInLevel() && (_parseContext.profile == EEsProfile || (_parseContext.version < 420 && ! _parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) + if (! parseContext.symbolTable.atBuiltInLevel() && (parseContext.profile == EEsProfile || + (parseContext.version < 420 && ! parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) reservedWord(); return keyword; @@ -810,28 +957,31 @@ int TScanContext::tokenizeIdentifier() const int numLayoutExts = 2; const char* layoutExts[numLayoutExts] = { E_GL_ARB_shading_language_420pack, E_GL_ARB_explicit_attrib_location }; - if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || - (_parseContext.profile != EEsProfile && _parseContext.version < 140 && - !_parseContext.extensionsTurnedOn(numLayoutExts, layoutExts))) + if ((parseContext.profile == EEsProfile && parseContext.version < 300) || + (parseContext.profile != EEsProfile && parseContext.version < 140 && + ! parseContext.extensionsTurnedOn(numLayoutExts, layoutExts))) return identifierOrType(); return keyword; } case SHARED: - if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || - (_parseContext.profile != EEsProfile && _parseContext.version < 140)) + if ((parseContext.profile == EEsProfile && parseContext.version < 300) || + (parseContext.profile != EEsProfile && parseContext.version < 140)) return identifierOrType(); return keyword; case PATCH: - if (_parseContext.symbolTable.atBuiltInLevel() || - (_parseContext.profile == EEsProfile && _parseContext.extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) || - (_parseContext.profile != EEsProfile && _parseContext.extensionTurnedOn(E_GL_ARB_tessellation_shader))) + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.profile == EEsProfile && + (parseContext.version >= 320 || + parseContext.extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))) || + (parseContext.profile != EEsProfile && parseContext.extensionTurnedOn(E_GL_ARB_tessellation_shader))) return keyword; return es30ReservedFromGLSL(400); case SAMPLE: - if (_parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation)) return keyword; return es30ReservedFromGLSL(400); @@ -885,7 +1035,8 @@ int TScanContext::tokenizeIdentifier() case IIMAGEBUFFER: case UIMAGEBUFFER: afterType = true; - if (_parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) return keyword; return firstGenerationImage(false); @@ -908,7 +1059,8 @@ int TScanContext::tokenizeIdentifier() case IIMAGECUBEARRAY: case UIMAGECUBEARRAY: afterType = true; - if (_parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) return keyword; return secondGenerationImage(); @@ -926,7 +1078,7 @@ int TScanContext::tokenizeIdentifier() case DVEC3: case DVEC4: afterType = true; - if (_parseContext.profile == EEsProfile || _parseContext.version < 400) + if (parseContext.profile == EEsProfile || parseContext.version < 400) reservedWord(); return keyword; @@ -939,13 +1091,112 @@ int TScanContext::tokenizeIdentifier() case U64VEC3: case U64VEC4: afterType = true; - if (_parseContext.symbolTable.atBuiltInLevel() || - (_parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64) && - _parseContext.profile != EEsProfile && _parseContext.version >= 450)) + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.profile != EEsProfile && parseContext.version >= 450 && + (parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int64)))) return keyword; return identifierOrType(); + case INT8_T: + case UINT8_T: + case I8VEC2: + case I8VEC3: + case I8VEC4: + case U8VEC2: + case U8VEC3: + case U8VEC4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int8)) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) + return keyword; + return identifierOrType(); + + case INT16_T: + case UINT16_T: + case I16VEC2: + case I16VEC3: + case I16VEC4: + case U16VEC2: + case U16VEC3: + case U16VEC4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.profile != EEsProfile && parseContext.version >= 450 && + ( #ifdef AMD_EXTENSIONS + parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_int16) || +#endif + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int16)))) + return keyword; + return identifierOrType(); + case INT32_T: + case UINT32_T: + case I32VEC2: + case I32VEC3: + case I32VEC4: + case U32VEC2: + case U32VEC3: + case U32VEC4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_int32)) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) + return keyword; + return identifierOrType(); + case FLOAT32_T: + case F32VEC2: + case F32VEC3: + case F32VEC4: + case F32MAT2: + case F32MAT3: + case F32MAT4: + case F32MAT2X2: + case F32MAT2X3: + case F32MAT2X4: + case F32MAT3X2: + case F32MAT3X3: + case F32MAT3X4: + case F32MAT4X2: + case F32MAT4X3: + case F32MAT4X4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float32)) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) + return keyword; + return identifierOrType(); + + case FLOAT64_T: + case F64VEC2: + case F64VEC3: + case F64VEC4: + case F64MAT2: + case F64MAT3: + case F64MAT4: + case F64MAT2X2: + case F64MAT2X3: + case F64MAT2X4: + case F64MAT3X2: + case F64MAT3X3: + case F64MAT3X4: + case F64MAT4X2: + case F64MAT4X3: + case F64MAT4X4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + ((parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float64)) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) + return keyword; + return identifierOrType(); + case FLOAT16_T: case F16VEC2: case F16VEC3: @@ -964,20 +1215,26 @@ int TScanContext::tokenizeIdentifier() case F16MAT4X4: afterType = true; if (parseContext.symbolTable.atBuiltInLevel() || - (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) && - parseContext.profile != EEsProfile && parseContext.version >= 450)) - return keyword; - return identifierOrType(); + (parseContext.profile != EEsProfile && parseContext.version >= 450 && + ( +#ifdef AMD_EXTENSIONS + parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) || #endif + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types) || + parseContext.extensionTurnedOn(E_GL_KHX_shader_explicit_arithmetic_types_float16)))) + return keyword; + + return identifierOrType(); case SAMPLERCUBEARRAY: case SAMPLERCUBEARRAYSHADOW: case ISAMPLERCUBEARRAY: case USAMPLERCUBEARRAY: afterType = true; - if (_parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array)) return keyword; - if (_parseContext.profile == EEsProfile || (_parseContext.version < 400 && ! _parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array))) + if (parseContext.profile == EEsProfile || (parseContext.version < 400 && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array))) reservedWord(); return keyword; @@ -1014,14 +1271,16 @@ int TScanContext::tokenizeIdentifier() case SAMPLERBUFFER: afterType = true; - if (_parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) return keyword; return es30ReservedFromGLSL(130); case ISAMPLERBUFFER: case USAMPLERBUFFER: afterType = true; - if (_parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) return keyword; return es30ReservedFromGLSL(140); @@ -1029,7 +1288,7 @@ int TScanContext::tokenizeIdentifier() case ISAMPLER2DMS: case USAMPLER2DMS: afterType = true; - if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) + if (parseContext.profile == EEsProfile && parseContext.version >= 310) return keyword; return es30ReservedFromGLSL(150); @@ -1037,39 +1296,42 @@ int TScanContext::tokenizeIdentifier() case ISAMPLER2DMSARRAY: case USAMPLER2DMSARRAY: afterType = true; - if (_parseContext.extensionsTurnedOn(1, &E_GL_OES_texture_storage_multisample_2d_array)) + if ((parseContext.profile == EEsProfile && parseContext.version >= 320) || + parseContext.extensionsTurnedOn(1, &E_GL_OES_texture_storage_multisample_2d_array)) return keyword; return es30ReservedFromGLSL(150); case SAMPLER1D: case SAMPLER1DSHADOW: afterType = true; - if (_parseContext.profile == EEsProfile) + if (parseContext.profile == EEsProfile) reservedWord(); return keyword; case SAMPLER3D: afterType = true; - if (_parseContext.profile == EEsProfile && _parseContext.version < 300) { - if (!_parseContext.extensionTurnedOn(E_GL_OES_texture_3D)) + if (parseContext.profile == EEsProfile && parseContext.version < 300) { + if (!parseContext.extensionTurnedOn(E_GL_OES_texture_3D)) reservedWord(); } return keyword; case SAMPLER2DSHADOW: afterType = true; - if (_parseContext.profile == EEsProfile && _parseContext.version < 300) - reservedWord(); + if (parseContext.profile == EEsProfile && parseContext.version < 300) { + if (!parseContext.extensionTurnedOn(E_GL_EXT_shadow_samplers)) + reservedWord(); + } return keyword; case SAMPLER2DRECT: case SAMPLER2DRECTSHADOW: afterType = true; - if (_parseContext.profile == EEsProfile) + if (parseContext.profile == EEsProfile) reservedWord(); - else if (_parseContext.version < 140 && ! _parseContext.symbolTable.atBuiltInLevel() && ! _parseContext.extensionTurnedOn(E_GL_ARB_texture_rectangle)) { - if (_parseContext.relaxedErrors()) - _parseContext.requireExtensions(loc, 1, &E_GL_ARB_texture_rectangle, "texture-rectangle sampler keyword"); + else if (parseContext.version < 140 && ! parseContext.symbolTable.atBuiltInLevel() && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_rectangle)) { + if (parseContext.relaxedErrors()) + parseContext.requireExtensions(loc, 1, &E_GL_ARB_texture_rectangle, "texture-rectangle sampler keyword"); else reservedWord(); } @@ -1077,16 +1339,18 @@ int TScanContext::tokenizeIdentifier() case SAMPLER1DARRAY: afterType = true; - if (_parseContext.profile == EEsProfile && _parseContext.version == 300) + if (parseContext.profile == EEsProfile && parseContext.version == 300) reservedWord(); - else if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || - (_parseContext.profile != EEsProfile && _parseContext.version < 130)) + else if ((parseContext.profile == EEsProfile && parseContext.version < 300) || + (parseContext.profile != EEsProfile && parseContext.version < 130)) return identifierOrType(); return keyword; case SAMPLEREXTERNALOES: afterType = true; - if (_parseContext.symbolTable.atBuiltInLevel() || _parseContext.extensionTurnedOn(E_GL_OES_EGL_image_external)) + if (parseContext.symbolTable.atBuiltInLevel() || + parseContext.extensionTurnedOn(E_GL_OES_EGL_image_external) || + parseContext.extensionTurnedOn(E_GL_OES_EGL_image_external_essl3)) return keyword; return identifierOrType(); @@ -1125,7 +1389,7 @@ int TScanContext::tokenizeIdentifier() case TEXTURE1DARRAY: case SAMPLER: case SAMPLERSHADOW: - if (_parseContext.spvVersion.vulkan >= 100) + if (parseContext.spvVersion.vulkan > 0) return keyword; else return identifierOrType(); @@ -1136,17 +1400,76 @@ int TScanContext::tokenizeIdentifier() case ISUBPASSINPUTMS: case USUBPASSINPUT: case USUBPASSINPUTMS: - if (_parseContext.spvVersion.vulkan >= 100) + if (parseContext.spvVersion.vulkan > 0) return keyword; else return identifierOrType(); +#ifdef AMD_EXTENSIONS + case F16SAMPLER1D: + case F16SAMPLER2D: + case F16SAMPLER3D: + case F16SAMPLER2DRECT: + case F16SAMPLERCUBE: + case F16SAMPLER1DARRAY: + case F16SAMPLER2DARRAY: + case F16SAMPLERCUBEARRAY: + case F16SAMPLERBUFFER: + case F16SAMPLER2DMS: + case F16SAMPLER2DMSARRAY: + case F16SAMPLER1DSHADOW: + case F16SAMPLER2DSHADOW: + case F16SAMPLER1DARRAYSHADOW: + case F16SAMPLER2DARRAYSHADOW: + case F16SAMPLER2DRECTSHADOW: + case F16SAMPLERCUBESHADOW: + case F16SAMPLERCUBEARRAYSHADOW: + + case F16IMAGE1D: + case F16IMAGE2D: + case F16IMAGE3D: + case F16IMAGE2DRECT: + case F16IMAGECUBE: + case F16IMAGE1DARRAY: + case F16IMAGE2DARRAY: + case F16IMAGECUBEARRAY: + case F16IMAGEBUFFER: + case F16IMAGE2DMS: + case F16IMAGE2DMSARRAY: + + case F16TEXTURE1D: + case F16TEXTURE2D: + case F16TEXTURE3D: + case F16TEXTURE2DRECT: + case F16TEXTURECUBE: + case F16TEXTURE1DARRAY: + case F16TEXTURE2DARRAY: + case F16TEXTURECUBEARRAY: + case F16TEXTUREBUFFER: + case F16TEXTURE2DMS: + case F16TEXTURE2DMSARRAY: + + case F16SUBPASSINPUT: + case F16SUBPASSINPUTMS: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float_fetch) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) + return keyword; + return identifierOrType(); +#endif + case NOPERSPECTIVE: +#ifdef NV_EXTENSIONS + if (parseContext.profile == EEsProfile && parseContext.version >= 300 && + parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation)) + return keyword; +#endif return es30ReservedFromGLSL(130); case SMOOTH: - if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || - (_parseContext.profile != EEsProfile && _parseContext.version < 130)) + if ((parseContext.profile == EEsProfile && parseContext.version < 300) || + (parseContext.profile != EEsProfile && parseContext.version < 130)) return identifierOrType(); return keyword; @@ -1159,52 +1482,53 @@ int TScanContext::tokenizeIdentifier() #endif case FLAT: - if (_parseContext.profile == EEsProfile && _parseContext.version < 300) + if (parseContext.profile == EEsProfile && parseContext.version < 300) reservedWord(); - else if (_parseContext.profile != EEsProfile && _parseContext.version < 130) + else if (parseContext.profile != EEsProfile && parseContext.version < 130) return identifierOrType(); return keyword; case CENTROID: - if (_parseContext.version < 120) + if (parseContext.version < 120) return identifierOrType(); return keyword; case PRECISE: - if ((_parseContext.profile == EEsProfile && _parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5)) || - (_parseContext.profile != EEsProfile && _parseContext.version >= 400)) + if ((parseContext.profile == EEsProfile && + (parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) || + (parseContext.profile != EEsProfile && parseContext.version >= 400)) return keyword; - if (_parseContext.profile == EEsProfile && _parseContext.version == 310) { + if (parseContext.profile == EEsProfile && parseContext.version == 310) { reservedWord(); return keyword; } return identifierOrType(); case INVARIANT: - if (_parseContext.profile != EEsProfile && _parseContext.version < 120) + if (parseContext.profile != EEsProfile && parseContext.version < 120) return identifierOrType(); return keyword; case PACKED: - if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || - (_parseContext.profile != EEsProfile && _parseContext.version < 330)) + if ((parseContext.profile == EEsProfile && parseContext.version < 300) || + (parseContext.profile != EEsProfile && parseContext.version < 330)) return reservedWord(); return identifierOrType(); case RESOURCE: { - bool reserved = (_parseContext.profile == EEsProfile && _parseContext.version >= 300) || - (_parseContext.profile != EEsProfile && _parseContext.version >= 420); + bool reserved = (parseContext.profile == EEsProfile && parseContext.version >= 300) || + (parseContext.profile != EEsProfile && parseContext.version >= 420); return identifierOrReserved(reserved); } case SUPERP: { - bool reserved = _parseContext.profile == EEsProfile || _parseContext.version >= 130; + bool reserved = parseContext.profile == EEsProfile || parseContext.version >= 130; return identifierOrReserved(reserved); } default: - _parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); + parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); return 0; } } @@ -1215,8 +1539,8 @@ int TScanContext::identifierOrType() if (field) return IDENTIFIER; - parserToken->sType.lex.symbol = _parseContext.symbolTable.find(*parserToken->sType.lex.string); - if (afterType == false && parserToken->sType.lex.symbol) { + parserToken->sType.lex.symbol = parseContext.symbolTable.find(*parserToken->sType.lex.string); + if ((afterType == false && afterStruct == false) && parserToken->sType.lex.symbol != nullptr) { if (const TVariable* variable = parserToken->sType.lex.symbol->getAsVariable()) { if (variable->isUserType()) { afterType = true; @@ -1234,8 +1558,8 @@ int TScanContext::identifierOrType() // extension support before the extension is enabled. int TScanContext::reservedWord() { - if (!_parseContext.symbolTable.atBuiltInLevel()) - _parseContext.error(loc, "Reserved word.", tokenText, "", ""); + if (! parseContext.symbolTable.atBuiltInLevel()) + parseContext.error(loc, "Reserved word.", tokenText, "", ""); return 0; } @@ -1248,8 +1572,8 @@ int TScanContext::identifierOrReserved(bool reserved) return 0; } - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using future reserved keyword", tokenText, ""); + if (parseContext.forwardCompatible) + parseContext.warn(loc, "using future reserved keyword", tokenText, ""); return identifierOrType(); } @@ -1258,16 +1582,16 @@ int TScanContext::identifierOrReserved(bool reserved) // but then got reserved by ES 3.0. int TScanContext::es30ReservedFromGLSL(int version) { - if (_parseContext.symbolTable.atBuiltInLevel()) + if (parseContext.symbolTable.atBuiltInLevel()) return keyword; - if ((_parseContext.profile == EEsProfile && _parseContext.version < 300) || - (_parseContext.profile != EEsProfile && _parseContext.version < version)) { - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "future reserved word in ES 300 and keyword in GLSL", tokenText, ""); + if ((parseContext.profile == EEsProfile && parseContext.version < 300) || + (parseContext.profile != EEsProfile && parseContext.version < version)) { + if (parseContext.forwardCompatible) + parseContext.warn(loc, "future reserved word in ES 300 and keyword in GLSL", tokenText, ""); return identifierOrType(); - } else if (_parseContext.profile == EEsProfile && _parseContext.version >= 300) + } else if (parseContext.profile == EEsProfile && parseContext.version >= 300) reservedWord(); return keyword; @@ -1277,10 +1601,10 @@ int TScanContext::es30ReservedFromGLSL(int version) // showed up, both in an es version and a non-ES version. int TScanContext::nonreservedKeyword(int esVersion, int nonEsVersion) { - if ((_parseContext.profile == EEsProfile && _parseContext.version < esVersion) || - (_parseContext.profile != EEsProfile && _parseContext.version < nonEsVersion)) { - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using future keyword", tokenText, ""); + if ((parseContext.profile == EEsProfile && parseContext.version < esVersion) || + (parseContext.profile != EEsProfile && parseContext.version < nonEsVersion)) { + if (parseContext.forwardCompatible) + parseContext.warn(loc, "using future keyword", tokenText, ""); return identifierOrType(); } @@ -1290,11 +1614,11 @@ int TScanContext::nonreservedKeyword(int esVersion, int nonEsVersion) int TScanContext::precisionKeyword() { - if (_parseContext.profile == EEsProfile || _parseContext.version >= 130) + if (parseContext.profile == EEsProfile || parseContext.version >= 130) return keyword; - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using ES precision qualifier keyword", tokenText, ""); + if (parseContext.forwardCompatible) + parseContext.warn(loc, "using ES precision qualifier keyword", tokenText, ""); return identifierOrType(); } @@ -1303,11 +1627,11 @@ int TScanContext::matNxM() { afterType = true; - if (_parseContext.version > 110) + if (parseContext.version > 110) return keyword; - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using future non-square matrix type keyword", tokenText, ""); + if (parseContext.forwardCompatible) + parseContext.warn(loc, "using future non-square matrix type keyword", tokenText, ""); return identifierOrType(); } @@ -1316,55 +1640,56 @@ int TScanContext::dMat() { afterType = true; - if (_parseContext.profile == EEsProfile && _parseContext.version >= 300) { + if (parseContext.profile == EEsProfile && parseContext.version >= 300) { reservedWord(); return keyword; } - if (_parseContext.profile != EEsProfile && _parseContext.version >= 400) + if (parseContext.profile != EEsProfile && parseContext.version >= 400) return keyword; - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using future type keyword", tokenText, ""); + if (parseContext.forwardCompatible) + parseContext.warn(loc, "using future type keyword", tokenText, ""); return identifierOrType(); } int TScanContext::firstGenerationImage(bool inEs310) { - if (_parseContext.symbolTable.atBuiltInLevel() || - (_parseContext.profile != EEsProfile && (_parseContext.version >= 420 || _parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))) || - (inEs310 && _parseContext.profile == EEsProfile && _parseContext.version >= 310)) + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.profile != EEsProfile && (parseContext.version >= 420 || + parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))) || + (inEs310 && parseContext.profile == EEsProfile && parseContext.version >= 310)) return keyword; - if ((_parseContext.profile == EEsProfile && _parseContext.version >= 300) || - (_parseContext.profile != EEsProfile && _parseContext.version >= 130)) { + if ((parseContext.profile == EEsProfile && parseContext.version >= 300) || + (parseContext.profile != EEsProfile && parseContext.version >= 130)) { reservedWord(); return keyword; } - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using future type keyword", tokenText, ""); + if (parseContext.forwardCompatible) + parseContext.warn(loc, "using future type keyword", tokenText, ""); return identifierOrType(); } int TScanContext::secondGenerationImage() { - if (_parseContext.profile == EEsProfile && _parseContext.version >= 310) { + if (parseContext.profile == EEsProfile && parseContext.version >= 310) { reservedWord(); return keyword; } - if (_parseContext.symbolTable.atBuiltInLevel() || - (_parseContext.profile != EEsProfile && - (_parseContext.version >= 420 || _parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.profile != EEsProfile && + (parseContext.version >= 420 || parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store)))) return keyword; - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using future type keyword", tokenText, ""); + if (parseContext.forwardCompatible) + parseContext.warn(loc, "using future type keyword", tokenText, ""); return identifierOrType(); } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Scan.h b/deps/glslang/glslang/glslang/MachineIndependent/Scan.h index fe747ef431..2c26c2efd4 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/Scan.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/Scan.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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_SCAN_INCLUDED_ #define _GLSLANG_SCAN_INCLUDED_ @@ -51,25 +51,24 @@ const int EndOfInput = -1; // class TInputScanner { public: - TInputScanner(int n, const char* const s[], size_t L[], const char* const* names = nullptr, int b = 0, int f = 0, bool single = false) : + TInputScanner(int n, const char* const s[], size_t L[], const char* const* names = nullptr, + int b = 0, int f = 0, bool single = false) : numSources(n), - sources(reinterpret_cast(s)), // up to this point, common usage is "char*", but now we need positive 8-bit characters - lengths(L), currentSource(0), currentChar(0), stringBias(b), finale(f), singleLogical(single), endOfFileReached(false) + // up to this point, common usage is "char*", but now we need positive 8-bit characters + sources(reinterpret_cast(s)), + lengths(L), currentSource(0), currentChar(0), stringBias(b), finale(f), singleLogical(single), + endOfFileReached(false) { loc = new TSourceLoc[numSources]; for (int i = 0; i < numSources; ++i) { - loc[i].init(); + loc[i].init(i - stringBias); } if (names != nullptr) { for (int i = 0; i < numSources; ++i) loc[i].name = names[i]; } - loc[currentSource].string = -stringBias; loc[currentSource].line = 1; - loc[currentSource].column = 0; - logicalSourceLoc.string = 0; - logicalSourceLoc.line = 1; - logicalSourceLoc.column = 0; + logicalSourceLoc.init(1); logicalSourceLoc.name = loc[0].name; } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/ScanContext.h b/deps/glslang/glslang/glslang/MachineIndependent/ScanContext.h old mode 100644 new mode 100755 index 7f0a1b513a..0cc7ea0a9e --- a/deps/glslang/glslang/glslang/MachineIndependent/ScanContext.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/ScanContext.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,28 +19,27 @@ // 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 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 _MACHINE_INDEPENDENT_SCAN_CONTEXT_H -#define _MACHINE_INDEPENDENT_SCAN_CONTEXT_H - // // This holds context specific to the GLSL scanner, which // sits between the preprocessor scanner and parser. // +#pragma once + #include "ParseHelper.h" namespace glslang { @@ -51,7 +50,10 @@ class TParserToken; class TScanContext { public: - explicit TScanContext(TParseContextBase& pc) : _parseContext(pc), afterType(false), field(false) { } + explicit TScanContext(TParseContextBase& pc) : + parseContext(pc), + afterType(false), afterStruct(false), + field(false) { } virtual ~TScanContext() { } static void fillInKeywordMap(); @@ -75,8 +77,9 @@ protected: int firstGenerationImage(bool inEs310); int secondGenerationImage(); - TParseContextBase& _parseContext; + TParseContextBase& parseContext; bool afterType; // true if we've recognized a type, so can only be looking for an identifier + bool afterStruct; // true if we've recognized the STRUCT keyword, so can only be looking for an identifier bool field; // true if we're on a field, right after a '.' TSourceLoc loc; TParserToken* parserToken; @@ -87,5 +90,3 @@ protected: }; } // end namespace glslang - -#endif diff --git a/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp b/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp index 596e0ee649..4f39f3453e 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp @@ -1,13 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013-2016 LunarG, Inc. -//Copyright (C) 2015-2016 Google, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013-2016 LunarG, Inc. +// Copyright (C) 2015-2017 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -21,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -47,11 +47,14 @@ #include #include "SymbolTable.h" #include "ParseHelper.h" -#include "../../hlsl/hlslParseHelper.h" -#include "../../hlsl/hlslParseables.h" #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" @@ -66,6 +69,10 @@ namespace { // anonymous namespace for file-local functions and symbols +// Total number of successful initializers of glslang: a refcount +// Shared global; access should be protected by a global mutex/critical section. +int NumberOfClients = 0; + using namespace glslang; // Create a language specific version of parseables. @@ -73,7 +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"); @@ -86,17 +95,21 @@ TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& int version, EProfile profile, EShSource source, EShLanguage language, TInfoSink& infoSink, SpvVersion spvVersion, bool forwardCompatible, EShMessages messages, - bool parsingBuiltIns, const std::string sourceEntryPointName = "") + bool parsingBuiltIns, std::string sourceEntryPointName = "") { switch (source) { - case EShSourceGlsl: - intermediate.setEntryPointName("main"); + case EShSourceGlsl: { + if (sourceEntryPointName.size() == 0) + intermediate.setEntryPointName("main"); + TString entryPoint = sourceEntryPointName.c_str(); return new TParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, - language, infoSink, forwardCompatible, messages); - + 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; @@ -105,7 +118,7 @@ TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& // Local mapping functions for making arrays of symbol tables.... -const int VersionCount = 15; // index range in MapVersionToIndex +const int VersionCount = 17; // index range in MapVersionToIndex int MapVersionToIndex(int version) { @@ -127,7 +140,10 @@ int MapVersionToIndex(int version) case 440: index = 12; break; case 310: index = 13; break; case 450: index = 14; break; - default: break; + case 500: index = 0; break; // HLSL + case 320: index = 15; break; + case 460: index = 16; break; + default: assert(0); break; } assert(index < VersionCount); @@ -194,18 +210,18 @@ enum EPrecisionClass { EPcCount }; -// A process-global symbol table per version per profile for built-ins common -// to multiple stages (languages), and a process-global symbol table per version +// A process-global symbol table per version per profile for built-ins common +// to multiple stages (languages), and a process-global symbol table per version // per profile per stage for built-ins unique to each stage. They will be sparsely // populated, so they will only be generated as needed. -// +// // Each has a different set of built-ins, and we want to preserve that from // compile to compile. // TSymbolTable* CommonSymbolTable[VersionCount][SpvVersionCount][ProfileCount][SourceCount][EPcCount] = {}; TSymbolTable* SharedSymbolTables[VersionCount][SpvVersionCount][ProfileCount][SourceCount][EShLangCount] = {}; -TPoolAllocator* PerProcessGPA = 0; +TPoolAllocator* PerProcessGPA = nullptr; // // Parse and add to the given symbol table the content of the given shader string. @@ -214,19 +230,19 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil EShSource source, TInfoSink& infoSink, TSymbolTable& symbolTable) { TIntermediate intermediate(language, version, profile); - + intermediate.setSource(source); - std::unique_ptr _parseContext(CreateParseContext(symbolTable, intermediate, version, profile, source, + std::unique_ptr parseContext(CreateParseContext(symbolTable, intermediate, version, profile, source, language, infoSink, spvVersion, true, EShMsgDefault, true)); - TShader::ForbidInclude includer; - TPpContext ppContext(*_parseContext, "", includer); - TScanContext scanContext(*_parseContext); - _parseContext->setScanContext(&scanContext); - _parseContext->setPpContext(&ppContext); - + TShader::ForbidIncluder includer; + TPpContext ppContext(*parseContext, "", includer); + TScanContext scanContext(*parseContext); + parseContext->setScanContext(&scanContext); + parseContext->setPpContext(&ppContext); + // // Push the symbol table to give it an initial scope. This // push should not have a corresponding pop, so that built-ins @@ -242,9 +258,9 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil if (builtInLengths[0] == 0) return true; - + TInputScanner input(1, builtInShaders, builtInLengths); - if (!_parseContext->parseShaderStrings(ppContext, input) != 0) { + if (! parseContext->parseShaderStrings(ppContext, input) != 0) { infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins"); printf("Unable to parse built-ins\n%s\n", infoSink.info.c_str()); printf("%s\n", builtInShaders[0]); @@ -285,6 +301,9 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS { std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); + if (builtInParseables == nullptr) + return false; + builtInParseables->initialize(version, profile, spvVersion); // do the common tables @@ -330,7 +349,10 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf EProfile profile, const SpvVersion& spvVersion, EShLanguage language, EShSource source) { std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); - + + if (builtInParseables == nullptr) + return false; + builtInParseables->initialize(*resources, version, profile, spvVersion, language); InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, source, infoSink, symbolTable); builtInParseables->identifyBuiltIns(version, profile, spvVersion, language, symbolTable, *resources); @@ -339,11 +361,11 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf } // -// To do this on the fly, we want to leave the current state of our thread's +// To do this on the fly, we want to leave the current state of our thread's // pool allocator intact, so: // - Switch to a new pool for parsing the built-ins // - Do the parsing, which builds the symbol table, using the new pool -// - Switch to the process-global pool to save a copy the resulting symbol table +// - Switch to the process-global pool to save a copy of the resulting symbol table // - Free up the new pool used to parse the built-ins // - Switch back to the original thread's pool // @@ -370,8 +392,8 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp // Switch to a new pool TPoolAllocator& previousAllocator = GetThreadPoolAllocator(); - TPoolAllocator* builtInPoolAllocator = new TPoolAllocator(); - SetThreadPoolAllocator(*builtInPoolAllocator); + TPoolAllocator* builtInPoolAllocator = new TPoolAllocator; + SetThreadPoolAllocator(builtInPoolAllocator); // Dynamically allocate the local symbol tables so we can control when they are deallocated WRT when the pool is popped. TSymbolTable* commonTable[EPcCount]; @@ -385,7 +407,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp InitializeSymbolTables(infoSink, commonTable, stageTables, version, profile, spvVersion, source); // Switch to the process-global pool - SetThreadPoolAllocator(*PerProcessGPA); + SetThreadPoolAllocator(PerProcessGPA); // Copy the local symbol tables from the new pool to the global tables using the process-global pool for (int precClass = 0; precClass < EPcCount; ++precClass) { @@ -402,7 +424,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp [versionIndex][spvVersionIndex][profileIndex][sourceIndex][CommonIndex(profile, (EShLanguage)stage)]); SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->copyTable(*stageTables[stage]); SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->readOnly(); - } + } } // Clean up the local tables before deleting the pool they used. @@ -412,7 +434,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp delete stageTables[stage]; delete builtInPoolAllocator; - SetThreadPoolAllocator(previousAllocator); + SetThreadPoolAllocator(&previousAllocator); glslang::ReleaseGlobalLock(); } @@ -425,12 +447,12 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo bool correct = true; if (source == EShSourceHlsl) { - version = 450; // TODO: GLSL parser is still used for builtins. + version = 500; // shader model; currently a characteristic of glslang, not the input profile = ECoreProfile; // allow doubles in prototype parsing return correct; } - // Get a good version... + // Get a version... if (version == 0) { version = defaultVersion; // infoSink.info.message(EPrefixWarning, "#version: statement missing; use #version on first line of shader"); @@ -438,9 +460,9 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo // Get a good profile... if (profile == ENoProfile) { - if (version == 300 || version == 310) { + if (version == 300 || version == 310 || version == 320) { correct = false; - infoSink.info.message(EPrefixError, "#version: versions 300 and 310 require specifying the 'es' profile"); + infoSink.info.message(EPrefixError, "#version: versions 300, 310, and 320 require specifying the 'es' profile"); profile = EEsProfile; } else if (version == 100) profile = EEsProfile; @@ -457,25 +479,61 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo profile = EEsProfile; else profile = ENoProfile; - } else if (version == 300 || version == 310) { + } else if (version == 300 || version == 310 || version == 320) { if (profile != EEsProfile) { correct = false; - infoSink.info.message(EPrefixError, "#version: versions 300 and 310 support only the es profile"); + infoSink.info.message(EPrefixError, "#version: versions 300, 310, and 320 support only the es profile"); } profile = EEsProfile; } else { if (profile == EEsProfile) { correct = false; - infoSink.info.message(EPrefixError, "#version: only version 300 and 310 support the es profile"); + infoSink.info.message(EPrefixError, "#version: only version 300, 310, and 320 support the es profile"); if (version >= FirstProfileVersion) profile = ECoreProfile; else profile = ENoProfile; - } + } // else: typical desktop case... e.g., "#version 410 core" } } + // Fix version... + switch (version) { + // ES versions + case 100: break; + case 300: break; + case 310: break; + case 320: break; + + // desktop versions + case 110: break; + case 120: break; + case 130: break; + case 140: break; + case 150: break; + case 330: break; + case 400: break; + case 410: break; + case 420: break; + case 430: break; + case 440: break; + case 450: break; + case 460: break; + + // unknown version + default: + correct = false; + infoSink.info.message(EPrefixError, "version not supported"); + if (profile == EEsProfile) + version = 310; + else { + version = 450; + profile = ECoreProfile; + } + break; + } + // Correct for stage type... switch (stage) { case EShLangGeometry: @@ -520,7 +578,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo if (spvVersion.spv != 0) { switch (profile) { case EEsProfile: - if (spvVersion.vulkan >= 100 && version < 310) { + if (spvVersion.vulkan > 0 && version < 310) { correct = false; infoSink.info.message(EPrefixError, "#version: ES shaders for Vulkan SPIR-V require version 310 or higher"); version = 310; @@ -535,7 +593,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo infoSink.info.message(EPrefixError, "#version: compilation for SPIR-V does not support the compatibility profile"); break; default: - if (spvVersion.vulkan >= 100 && version < 140) { + if (spvVersion.vulkan > 0 && version < 140) { correct = false; infoSink.info.message(EPrefixError, "#version: Desktop shaders for Vulkan SPIR-V require version 140 or higher"); version = 140; @@ -549,44 +607,92 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo } } - // A meta check on the condition of the compiler itself... - switch (version) { - - // ES versions - case 100: - case 300: - // versions are complete - break; - - // Desktop versions - case 110: - case 120: - case 130: - case 140: - case 150: - case 330: - // versions are complete - break; - - case 310: - case 400: - case 410: - case 420: - case 430: - case 440: - case 450: - infoSink.info << "Warning, version " << version << " is not yet complete; most version-specific features are present, but some are missing.\n"; - break; - - default: - infoSink.info << "Warning, version " << version << " is unknown.\n"; - break; - - } - return correct; } +// There are multiple paths in for setting environment stuff. +// TEnvironment takes precedence, for what it sets, so sort all this out. +// Ideally, the internal code could be made to use TEnvironment, but for +// now, translate it to the historically used parameters. +void TranslateEnvironment(const TEnvironment* environment, EShMessages& messages, EShSource& source, + EShLanguage& stage, SpvVersion& spvVersion) +{ + // Set up environmental defaults, first ignoring 'environment'. + if (messages & EShMsgSpvRules) + spvVersion.spv = EShTargetSpv_1_0; + if (messages & EShMsgVulkanRules) { + spvVersion.vulkan = EShTargetVulkan_1_0; + spvVersion.vulkanGlsl = 100; + } else if (spvVersion.spv != 0) + spvVersion.openGl = 100; + + // Now, override, based on any content set in 'environment'. + // 'environment' must be cleared to ESh*None settings when items + // are not being set. + if (environment != nullptr) { + // input language + if (environment->input.languageFamily != EShSourceNone) { + stage = environment->input.stage; + switch (environment->input.dialect) { + case EShClientNone: + break; + case EShClientVulkan: + spvVersion.vulkanGlsl = environment->input.dialectVersion; + break; + case EShClientOpenGL: + spvVersion.openGl = environment->input.dialectVersion; + break; + } + switch (environment->input.languageFamily) { + case EShSourceNone: + break; + case EShSourceGlsl: + source = EShSourceGlsl; + messages = static_cast(messages & ~EShMsgReadHlsl); + break; + case EShSourceHlsl: + source = EShSourceHlsl; + messages = static_cast(messages | EShMsgReadHlsl); + break; + } + } + + // client + switch (environment->client.client) { + case EShClientVulkan: + spvVersion.vulkan = environment->client.version; + break; + default: + break; + } + + // generated code + switch (environment->target.language) { + case EshTargetSpv: + spvVersion.spv = environment->target.version; + break; + default: + break; + } + } +} + +// Most processes are recorded when set in the intermediate representation, +// These are the few that are not. +void RecordProcesses(TIntermediate& intermediate, EShMessages messages, const std::string& sourceEntryPointName) +{ + if ((messages & EShMsgRelaxedErrors) != 0) + intermediate.addProcess("relaxed-errors"); + if ((messages & EShMsgSuppressWarnings) != 0) + intermediate.addProcess("suppress-warnings"); + if ((messages & EShMsgKeepUncalled) != 0) + intermediate.addProcess("keep-uncalled"); + if (sourceEntryPointName.size() > 0) { + intermediate.addProcess("source-entrypoint"); + intermediate.addProcessArgument(sourceEntryPointName); + } +} + // This is the common setup and cleanup code for PreprocessDeferred and // CompileDeferred. // It takes any callable with a signature of @@ -606,7 +712,7 @@ bool ProcessDeferred( const char* customPreamble, const EShOptimizationLevel optLevel, const TBuiltInResource* resources, - int defaultVersion, // use 100 for ES environment, 110 for desktop; this is the GLSL version, not SPIR-V or Vulkan + int defaultVersion, // use 100 for ES environment, 110 for desktop; this is the GLSL version, not SPIR-V or Vulkan EProfile defaultProfile, // set version/profile to defaultVersion/defaultProfile regardless of the #version // directive in the source code @@ -617,18 +723,15 @@ bool ProcessDeferred( ProcessingContext& processingContext, bool requireNonempty, TShader::Includer& includer, - const std::string sourceEntryPointName = "" - ) + const std::string sourceEntryPointName = "", + const TEnvironment* environment = nullptr) // optional way of fully setting all versions, overriding the above { - if (! InitThread()) - return false; - // This must be undone (.pop()) by the caller, after it finishes consuming the created tree. GetThreadPoolAllocator().push(); if (numStrings == 0) return true; - + // Move to length-based strings, rather than null-terminated strings. // Also, add strings to include the preamble and to ensure the shader is not null, // which lets the grammar accept what was a null (post preprocessing) shader. @@ -641,12 +744,12 @@ bool ProcessDeferred( const int numPre = 2; const int numPost = requireNonempty? 1 : 0; const int numTotal = numPre + numStrings + numPost; - size_t* lengths = new size_t[numTotal]; - const char** strings = new const char*[numTotal]; - const char** names = new const char*[numTotal]; + std::unique_ptr lengths(new size_t[numTotal]); + std::unique_ptr strings(new const char*[numTotal]); + std::unique_ptr names(new const char*[numTotal]); for (int s = 0; s < numStrings; ++s) { strings[s + numPre] = shaderStrings[s]; - if (inputLengths == 0 || inputLengths[s] < 0) + if (inputLengths == nullptr || inputLengths[s] < 0) lengths[s + numPre] = strlen(shaderStrings[s]); else lengths[s + numPre] = inputLengths[s]; @@ -659,16 +762,27 @@ bool ProcessDeferred( names[s + numPre] = nullptr; } + // Get all the stages, languages, clients, and other environment + // stuff sorted out. + EShSource source = (messages & EShMsgReadHlsl) != 0 ? EShSourceHlsl : EShSourceGlsl; + SpvVersion spvVersion; + EShLanguage stage = compiler->getLanguage(); + TranslateEnvironment(environment, messages, source, stage, spvVersion); + if (environment != nullptr && environment->target.hlslFunctionality1) + intermediate.setHlslFunctionality1(); + // First, without using the preprocessor or parser, find the #version, so we know what // symbol tables, processing rules, etc. to set up. This does not need the extra strings - // outlined above, just the user shader. - int version; - EProfile profile; - glslang::TInputScanner userInput(numStrings, &strings[numPre], &lengths[numPre]); // no preamble - bool versionNotFirstToken; - bool versionNotFirst = userInput.scanVersion(version, profile, versionNotFirstToken); + // outlined above, just the user shader, after the system and user preambles. + glslang::TInputScanner userInput(numStrings, &strings[numPre], &lengths[numPre]); + int version = 0; + EProfile profile = ENoProfile; + bool versionNotFirstToken = false; + bool versionNotFirst = (source == EShSourceHlsl) + ? true + : userInput.scanVersion(version, profile, versionNotFirstToken); bool versionNotFound = version == 0; - if (forceDefaultVersionAndProfile) { + if (forceDefaultVersionAndProfile && source == EShSourceGlsl) { if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound && (version != defaultVersion || profile != defaultProfile)) { compiler->infoSink.info << "Warning, (version, profile) forced to be (" @@ -685,15 +799,9 @@ bool ProcessDeferred( version = defaultVersion; profile = defaultProfile; } - SpvVersion spvVersion; - if (messages & EShMsgSpvRules) - spvVersion.spv = 0x00010000; // TODO: eventually have this come from the outside - EShSource source = (messages & EShMsgReadHlsl) ? EShSourceHlsl : EShSourceGlsl; - if (messages & EShMsgVulkanRules) - spvVersion.vulkan = 100; // TODO: eventually have this come from the outside - else if (spvVersion.spv != 0) - spvVersion.openGl = 100; // TODO: eventually have this come from the outside - bool goodVersion = DeduceVersionProfile(compiler->infoSink, compiler->getLanguage(), versionNotFirst, defaultVersion, source, version, profile, spvVersion); + + bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage, + versionNotFirst, defaultVersion, source, version, profile, spvVersion); bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst)); bool warnVersionNotFirst = false; if (! versionWillBeError && versionNotFirstToken) { @@ -707,57 +815,65 @@ bool ProcessDeferred( intermediate.setVersion(version); intermediate.setProfile(profile); intermediate.setSpv(spvVersion); - if (spvVersion.vulkan >= 100) + RecordProcesses(intermediate, messages, sourceEntryPointName); + if (spvVersion.vulkan > 0) intermediate.setOriginUpperLeft(); + if ((messages & EShMsgHlslOffsets) || source == EShSourceHlsl) + intermediate.setHlslOffsets(); + if (messages & EShMsgDebugInfo) { + intermediate.setSourceFile(names[numPre]); + for (int s = 0; s < numStrings; ++s) + intermediate.addSourceText(strings[numPre + s]); + } SetupBuiltinSymbolTable(version, profile, spvVersion, source); - + TSymbolTable* cachedTable = SharedSymbolTables[MapVersionToIndex(version)] [MapSpvVersionToIndex(spvVersion)] [MapProfileToIndex(profile)] [MapSourceToIndex(source)] - [compiler->getLanguage()]; - + [stage]; + // Dynamically allocate the symbol table so we can control when it is deallocated WRT the pool. - TSymbolTable* symbolTableMemory = new TSymbolTable; - TSymbolTable& symbolTable = *symbolTableMemory; + std::unique_ptr symbolTable(new TSymbolTable); if (cachedTable) - symbolTable.adoptLevels(*cachedTable); - + symbolTable->adoptLevels(*cachedTable); + // Add built-in symbols that are potentially context dependent; // they get popped again further down. - AddContextSpecificSymbols(resources, compiler->infoSink, symbolTable, version, profile, spvVersion, - compiler->getLanguage(), source); - + if (! AddContextSpecificSymbols(resources, compiler->infoSink, *symbolTable, version, profile, spvVersion, + stage, source)) { + return false; + } + // // Now we can process the full shader under proper symbols and rules. // - TParseContextBase *_parseContext = CreateParseContext(symbolTable, intermediate, version, profile, source, - compiler->getLanguage(), compiler->infoSink, - spvVersion, forwardCompatible, messages, false, sourceEntryPointName); - - TPpContext ppContext(*_parseContext, names[numPre]? names[numPre]: "", includer); + std::unique_ptr parseContext(CreateParseContext(*symbolTable, intermediate, version, profile, source, + stage, compiler->infoSink, + spvVersion, forwardCompatible, messages, false, sourceEntryPointName)); + TPpContext ppContext(*parseContext, names[numPre] ? names[numPre] : "", includer); // only GLSL (bison triggered, really) needs an externally set scan context - glslang::TScanContext scanContext(*_parseContext); - if ((messages & EShMsgReadHlsl) == 0) - _parseContext->setScanContext(&scanContext); + glslang::TScanContext scanContext(*parseContext); + if (source == EShSourceGlsl) + parseContext->setScanContext(&scanContext); - _parseContext->setPpContext(&ppContext); - _parseContext->setLimits(*resources); + parseContext->setPpContext(&ppContext); + parseContext->setLimits(*resources); if (! goodVersion) - _parseContext->addError(); + parseContext->addError(); if (warnVersionNotFirst) { TSourceLoc loc; loc.init(); - _parseContext->warn(loc, "Illegal to have non-comment, non-whitespace tokens before #version", "#version", ""); + parseContext->warn(loc, "Illegal to have non-comment, non-whitespace tokens before #version", "#version", ""); } - _parseContext->initializeExtensionBehavior(); - + parseContext->initializeExtensionBehavior(); + // Fill in the strings as outlined above. std::string preamble; - _parseContext->getPreamble(preamble); + parseContext->getPreamble(preamble); strings[0] = preamble.c_str(); lengths[0] = strlen(strings[0]); names[0] = nullptr; @@ -771,23 +887,14 @@ bool ProcessDeferred( lengths[postIndex] = strlen(strings[numStrings + numPre]); names[postIndex] = nullptr; } - TInputScanner fullInput(numStrings + numPre + numPost, strings, lengths, names, numPre, numPost); + TInputScanner fullInput(numStrings + numPre + numPost, strings.get(), lengths.get(), names.get(), numPre, numPost); // Push a new symbol allocation scope that will get used for the shader's globals. - symbolTable.push(); + symbolTable->push(); - bool success = processingContext(*_parseContext, ppContext, fullInput, - versionWillBeError, symbolTable, + bool success = processingContext(*parseContext, ppContext, fullInput, + versionWillBeError, *symbolTable, intermediate, optLevel, messages); - - // Clean up the symbol table. The AST is self-sufficient now. - delete symbolTableMemory; - - delete _parseContext; - delete [] lengths; - delete [] strings; - delete [] names; - return success; } @@ -797,7 +904,7 @@ bool ProcessDeferred( class SourceLineSynchronizer { public: SourceLineSynchronizer(const std::function& lastSourceIndex, - std::stringstream* output) + std::string* output) : getLastSourceIndex(lastSourceIndex), output(output), lastSource(-1), lastLine(0) {} // SourceLineSynchronizer(const SourceLineSynchronizer&) = delete; // SourceLineSynchronizer& operator=(const SourceLineSynchronizer&) = delete; @@ -812,7 +919,7 @@ public: // used. We also need to output a newline to separate the output // from the previous source string (if there is one). if (lastSource != -1 || lastLine != 0) - *output << std::endl; + *output += '\n'; lastSource = getLastSourceIndex(); lastLine = -1; return true; @@ -827,7 +934,7 @@ public: syncToMostRecentString(); const bool newLineStarted = lastLine < tokenLine; for (; lastLine < tokenLine; ++lastLine) { - if (lastLine > 0) *output << std::endl; + if (lastLine > 0) *output += '\n'; } return newLineStarted; } @@ -841,8 +948,8 @@ private: // A function for getting the index of the last valid source string we've // read tokens from. const std::function getLastSourceIndex; - // output stream for newlines. - std::stringstream* output; + // output string for newlines. + std::string* output; // lastSource is the source string index (starting from 0) of the last token // processed. It is tracked in order for newlines to be inserted when a new // source string starts. -1 means we haven't started processing any source @@ -860,7 +967,7 @@ private: // It places the result in the "string" argument to its constructor. struct DoPreprocessing { explicit DoPreprocessing(std::string* string): outputString(string) {} - bool operator()(TParseContextBase&_parseContext, TPpContext& ppContext, + bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, TInputScanner& input, bool versionWillBeError, TSymbolTable&, TIntermediate&, EShOptimizationLevel, EShMessages) @@ -868,100 +975,113 @@ struct DoPreprocessing { // This is a list of tokens that do not require a space before or after. static const std::string unNeededSpaceTokens = ";()[]"; static const std::string noSpaceBeforeTokens = ","; - glslang::TPpToken token; + glslang::TPpToken ppToken; - _parseContext.setScanner(&input); + parseContext.setScanner(&input); ppContext.setInput(input, versionWillBeError); - std::stringstream outputStream; + std::string outputBuffer; SourceLineSynchronizer lineSync( - std::bind(&TInputScanner::getLastValidSourceIndex, &input), &outputStream); + std::bind(&TInputScanner::getLastValidSourceIndex, &input), &outputBuffer); - _parseContext.setExtensionCallback([&lineSync, &outputStream]( + parseContext.setExtensionCallback([&lineSync, &outputBuffer]( int line, const char* extension, const char* behavior) { lineSync.syncToLine(line); - outputStream << "#extension " << extension << " : " << behavior; + outputBuffer += "#extension "; + outputBuffer += extension; + outputBuffer += " : "; + outputBuffer += behavior; }); - _parseContext.setLineCallback([&lineSync, &outputStream, &_parseContext]( + parseContext.setLineCallback([&lineSync, &outputBuffer, &parseContext]( int curLineNum, int newLineNum, bool hasSource, int sourceNum, const char* sourceName) { // SourceNum is the number of the source-string that is being parsed. lineSync.syncToLine(curLineNum); - outputStream << "#line " << newLineNum; + outputBuffer += "#line "; + outputBuffer += std::to_string(newLineNum); if (hasSource) { - outputStream << " "; + outputBuffer += ' '; if (sourceName != nullptr) { - outputStream << "\"" << sourceName << "\""; + outputBuffer += '\"'; + outputBuffer += sourceName; + outputBuffer += '\"'; } else { - outputStream << sourceNum; + outputBuffer += std::to_string(sourceNum); } } - if (_parseContext.lineDirectiveShouldSetNextLine()) { + if (parseContext.lineDirectiveShouldSetNextLine()) { // newLineNum is the new line number for the line following the #line // directive. So the new line number for the current line is newLineNum -= 1; } - outputStream << std::endl; + outputBuffer += '\n'; // And we are at the next line of the #line directive now. lineSync.setLineNum(newLineNum + 1); }); - _parseContext.setVersionCallback( - [&lineSync, &outputStream](int line, int version, const char* str) { + parseContext.setVersionCallback( + [&lineSync, &outputBuffer](int line, int version, const char* str) { lineSync.syncToLine(line); - outputStream << "#version " << version; + outputBuffer += "#version "; + outputBuffer += std::to_string(version); if (str) { - outputStream << " " << str; + outputBuffer += ' '; + outputBuffer += str; } }); - _parseContext.setPragmaCallback([&lineSync, &outputStream]( + parseContext.setPragmaCallback([&lineSync, &outputBuffer]( int line, const glslang::TVector& ops) { lineSync.syncToLine(line); - outputStream << "#pragma "; + outputBuffer += "#pragma "; for(size_t i = 0; i < ops.size(); ++i) { - outputStream << ops[i]; + outputBuffer += ops[i].c_str(); } }); - _parseContext.setErrorCallback([&lineSync, &outputStream]( + parseContext.setErrorCallback([&lineSync, &outputBuffer]( int line, const char* errorMessage) { lineSync.syncToLine(line); - outputStream << "#error " << errorMessage; + outputBuffer += "#error "; + outputBuffer += errorMessage; }); int lastToken = EndOfInput; // lastToken records the last token processed. - while (const char* tok = ppContext.tokenize(&token)) { + do { + int token = ppContext.tokenize(ppToken); + if (token == EndOfInput) + break; + bool isNewString = lineSync.syncToMostRecentString(); - bool isNewLine = lineSync.syncToLine(token.loc.line); + bool isNewLine = lineSync.syncToLine(ppToken.loc.line); if (isNewLine) { // Don't emit whitespace onto empty lines. // Copy any whitespace characters at the start of a line // from the input to the output. - outputStream << std::string(token.loc.column - 1, ' '); + outputBuffer += std::string(ppToken.loc.column - 1, ' '); } // Output a space in between tokens, but not at the start of a line, // and also not around special tokens. This helps with readability // and consistency. if (!isNewString && !isNewLine && lastToken != EndOfInput && - (unNeededSpaceTokens.find((char)token.token) == std::string::npos) && + (unNeededSpaceTokens.find((char)token) == std::string::npos) && (unNeededSpaceTokens.find((char)lastToken) == std::string::npos) && - (noSpaceBeforeTokens.find((char)token.token) == std::string::npos)) { - outputStream << " "; + (noSpaceBeforeTokens.find((char)token) == std::string::npos)) { + outputBuffer += ' '; } - lastToken = token.token; - outputStream << tok; - } - outputStream << std::endl; - *outputString = outputStream.str(); + lastToken = token; + outputBuffer += ppToken.name; + } while (true); + outputBuffer += '\n'; + *outputString = std::move(outputBuffer); bool success = true; - if (_parseContext.getNumErrors() > 0) { + if (parseContext.getNumErrors() > 0) { success = false; - _parseContext.infoSink.info.prefix(EPrefixError); - _parseContext.infoSink.info << _parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; + parseContext.infoSink.info.prefix(EPrefixError); + parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; } return success; } @@ -971,28 +1091,28 @@ struct DoPreprocessing { // DoFullParse is a valid ProcessingConext template argument for fully // parsing the shader. It populates the "intermediate" with the AST. struct DoFullParse{ - bool operator()(TParseContextBase&_parseContext, TPpContext& ppContext, + bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, TInputScanner& fullInput, bool versionWillBeError, TSymbolTable&, TIntermediate& intermediate, - EShOptimizationLevel optLevel, EShMessages messages) + EShOptimizationLevel optLevel, EShMessages messages) { bool success = true; // Parse the full shader. - if (!_parseContext.parseShaderStrings(ppContext, fullInput, versionWillBeError)) + if (! parseContext.parseShaderStrings(ppContext, fullInput, versionWillBeError)) success = false; if (success && intermediate.getTreeRoot()) { if (optLevel == EShOptNoGeneration) - _parseContext.infoSink.info.message(EPrefixNone, "No errors. No code generation or linking was requested."); + parseContext.infoSink.info.message(EPrefixNone, "No errors. No code generation or linking was requested."); else - success = intermediate.postProcess(intermediate.getTreeRoot(), _parseContext.getLanguage()); + success = intermediate.postProcess(intermediate.getTreeRoot(), parseContext.getLanguage()); } else if (! success) { - _parseContext.infoSink.info.prefix(EPrefixError); - _parseContext.infoSink.info << _parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; + parseContext.infoSink.info.prefix(EPrefixError); + parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n"; } if (messages & EShMsgAST) - intermediate.output(_parseContext.infoSink, true); + intermediate.output(parseContext.infoSink, true); return success; } @@ -1028,7 +1148,6 @@ bool PreprocessDeferred( false, includer); } - // // do a partial compile on the given strings for a single compilation unit // for a potential deferred link into a single stage (and deferred full compile of that @@ -1037,7 +1156,7 @@ bool PreprocessDeferred( // all preprocessing, parsing, semantic checks, etc. for a single compilation unit // are done here. // -// return: the tree and other information is filled into the intermediate argument, +// return: the tree and other information is filled into the intermediate argument, // and true is returned by the function for success. // bool CompileDeferred( @@ -1056,19 +1175,19 @@ bool CompileDeferred( EShMessages messages, // warnings/errors/AST; things to print out TIntermediate& intermediate,// returned tree, etc. TShader::Includer& includer, - const std::string sourceEntryPointName = "") + const std::string sourceEntryPointName = "", + TEnvironment* environment = nullptr) { DoFullParse parser; return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames, preamble, optLevel, resources, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, forwardCompatible, messages, intermediate, parser, - true, includer, sourceEntryPointName); + true, includer, sourceEntryPointName, environment); } } // end anonymous namespace for local functions - // // ShInitialize() should be called exactly once per process, not per thread. // @@ -1079,11 +1198,17 @@ int ShInitialize() if (! InitProcess()) return 0; - if (! PerProcessGPA) + glslang::GetGlobalLock(); + ++NumberOfClients; + glslang::ReleaseGlobalLock(); + + if (PerProcessGPA == nullptr) PerProcessGPA = new TPoolAllocator(); glslang::TScanContext::fillInKeywordMap(); +#ifdef ENABLE_HLSL glslang::HlslScanContext::fillInKeywordMap(); +#endif return 1; } @@ -1099,7 +1224,7 @@ ShHandle ShConstructCompiler(const EShLanguage language, int debugOptions) return 0; TShHandleBase* base = static_cast(ConstructCompiler(language, debugOptions)); - + return reinterpret_cast(base); } @@ -1143,6 +1268,14 @@ void ShDestruct(ShHandle handle) // int __fastcall ShFinalize() { + glslang::GetGlobalLock(); + --NumberOfClients; + assert(NumberOfClients >= 0); + bool finalize = NumberOfClients == 0; + glslang::ReleaseGlobalLock(); + if (! finalize) + return 1; + for (int version = 0; version < VersionCount; ++version) { for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { for (int p = 0; p < ProfileCount; ++p) { @@ -1169,14 +1302,15 @@ int __fastcall ShFinalize() } } - if (PerProcessGPA) { - PerProcessGPA->popAll(); + if (PerProcessGPA != nullptr) { delete PerProcessGPA; - PerProcessGPA = 0; + PerProcessGPA = nullptr; } glslang::TScanContext::deleteKeywordMap(); +#ifdef ENABLE_HLSL glslang::HlslScanContext::deleteKeywordMap(); +#endif return 1; } @@ -1211,11 +1345,13 @@ int ShCompile( if (compiler == 0) return 0; + SetThreadPoolAllocator(compiler->getPool()); + compiler->infoSink.info.erase(); compiler->infoSink.debug.erase(); TIntermediate intermediate(compiler->getLanguage()); - TShader::ForbidInclude includer; + TShader::ForbidIncluder includer; bool success = CompileDeferred(compiler, shaderStrings, numStrings, inputLengths, nullptr, "", optLevel, resources, defaultVersion, ENoProfile, false, forwardCompatible, messages, intermediate, includer); @@ -1260,8 +1396,7 @@ int ShLinkExt( } if (base->getAsCompiler()) cObjects.push_back(base->getAsCompiler()); - - + if (cObjects[i] == 0) return 0; } @@ -1269,6 +1404,8 @@ int ShLinkExt( TShHandleBase* base = reinterpret_cast(linkHandle); TLinker* linker = static_cast(base->getAsLinker()); + SetThreadPoolAllocator(linker->getPool()); + if (linker == 0) return 0; @@ -1277,7 +1414,7 @@ int ShLinkExt( for (int i = 0; i < numHandles; ++i) { if (cObjects[i]->getAsCompiler()) { if (! cObjects[i]->getAsCompiler()->linkable()) { - linker->infoSink.info.message(EPrefixError, "Not all shaders have valid object code."); + linker->infoSink.info.message(EPrefixError, "Not all shaders have valid object code."); return 0; } } @@ -1303,9 +1440,6 @@ void ShSetEncryptionMethod(ShHandle handle) // const char* ShGetInfoLog(const ShHandle handle) { - if (!InitThread()) - return 0; - if (handle == 0) return 0; @@ -1329,14 +1463,11 @@ const char* ShGetInfoLog(const ShHandle handle) // const void* ShGetExecutable(const ShHandle handle) { - if (!InitThread()) - return 0; - if (handle == 0) return 0; TShHandleBase* base = reinterpret_cast(handle); - + TLinker* linker = static_cast(base->getAsLinker()); if (linker == 0) return 0; @@ -1353,10 +1484,7 @@ const void* ShGetExecutable(const ShHandle handle) // success or failure. // int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* table) -{ - if (!InitThread()) - return 0; - +{ if (handle == 0) return 0; @@ -1365,7 +1493,7 @@ int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* t if (linker == 0) return 0; - + linker->setAppAttributeBindings(table); return 1; @@ -1376,9 +1504,6 @@ int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* t // int ShSetFixedAttributeBindings(const ShHandle handle, const ShBindingTable* table) { - if (!InitThread()) - return 0; - if (handle == 0) return 0; @@ -1397,9 +1522,6 @@ int ShSetFixedAttributeBindings(const ShHandle handle, const ShBindingTable* tab // int ShExcludeAttributes(const ShHandle handle, int *attributes, int count) { - if (!InitThread()) - return 0; - if (handle == 0) return 0; @@ -1421,9 +1543,6 @@ int ShExcludeAttributes(const ShHandle handle, int *attributes, int count) // int ShGetUniformLocation(const ShHandle handle, const char* name) { - if (!InitThread()) - return 0; - if (handle == 0) return -1; @@ -1442,7 +1561,7 @@ int ShGetUniformLocation(const ShHandle handle, const char* name) // // Below is a new alternate C++ interface that might potentially replace the above // opaque handle-based interface. -// +// // See more detailed comment in ShaderLang.h // @@ -1450,14 +1569,17 @@ namespace glslang { #include "../Include/revision.h" +#define QUOTE(s) #s +#define STR(n) QUOTE(n) + const char* GetEsslVersionString() { - return "OpenGL ES GLSL 3.00 glslang LunarG Khronos." GLSLANG_REVISION " " GLSLANG_DATE; + return "OpenGL ES GLSL 3.20 glslang Khronos. " STR(GLSLANG_MINOR_VERSION) "." STR(GLSLANG_PATCH_LEVEL); } const char* GetGlslVersionString() { - return "4.20 glslang LunarG Khronos." GLSLANG_REVISION " " GLSLANG_DATE; + return "4.60 glslang Khronos. " STR(GLSLANG_MINOR_VERSION) "." STR(GLSLANG_PATCH_LEVEL); } int GetKhronosToolId() @@ -1482,11 +1604,19 @@ public: }; TShader::TShader(EShLanguage s) - : pool(0), stage(s), lengths(nullptr), stringNames(nullptr), preamble("") + : stage(s), lengths(nullptr), stringNames(nullptr), preamble("") { + pool = new TPoolAllocator; infoSink = new TInfoSink; compiler = new TDeferredCompiler(stage, *infoSink); intermediate = new TIntermediate(s); + + // clear environment (avoid constructors in them for use in a C interface) + environment.input.languageFamily = EShSourceNone; + environment.input.dialect = EShClientNone; + environment.client.client = EShClientNone; + environment.target.language = EShTargetNone; + environment.target.hlslFunctionality1 = false; } TShader::~TShader() @@ -1530,13 +1660,47 @@ void TShader::setSourceEntryPoint(const char* name) sourceEntryPointName = name; } -void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShiftSamplerBinding(base); } -void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); } -void TShader::setShiftImageBinding(unsigned int base) { intermediate->setShiftImageBinding(base); } -void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); } +void TShader::addProcesses(const std::vector& p) +{ + intermediate->addProcesses(p); +} + +// Set binding base for given resource type +void TShader::setShiftBinding(TResourceType res, unsigned int base) { + intermediate->setShiftBinding(res, base); +} + +// Set binding base for given resource type for a given binding set. +void TShader::setShiftBindingForSet(TResourceType res, unsigned int base, unsigned int set) { + intermediate->setShiftBindingForSet(res, base, set); +} + +// Set binding base for sampler types +void TShader::setShiftSamplerBinding(unsigned int base) { setShiftBinding(EResSampler, base); } +// Set binding base for texture types (SRV) +void TShader::setShiftTextureBinding(unsigned int base) { setShiftBinding(EResTexture, base); } +// Set binding base for image types +void TShader::setShiftImageBinding(unsigned int base) { setShiftBinding(EResImage, base); } +// Set binding base for uniform buffer objects (CBV) +void TShader::setShiftUboBinding(unsigned int base) { setShiftBinding(EResUbo, base); } +// Synonym for setShiftUboBinding, to match HLSL language. +void TShader::setShiftCbufferBinding(unsigned int base) { setShiftBinding(EResUbo, base); } +// Set binding base for UAV (unordered access view) +void TShader::setShiftUavBinding(unsigned int base) { setShiftBinding(EResUav, base); } +// Set binding base for SSBOs +void TShader::setShiftSsboBinding(unsigned int base) { setShiftBinding(EResSsbo, base); } +// Enables binding automapping using TIoMapper void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); } +// Enables position.Y output negation in vertex shader +void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); } +// Fragile: currently within one stage: simple auto-assignment of location +void TShader::setAutoMapLocations(bool map) { intermediate->setAutoMapLocations(map); } +// See comment above TDefaultHlslIoMapper in iomapper.cpp: +void TShader::setHlslIoMapping(bool hlslIoMap) { intermediate->setHlslIoMapping(hlslIoMap); } void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); } void TShader::setNoStorageFormat(bool useUnknownFormat) { intermediate->setNoStorageFormat(useUnknownFormat); } +void TShader::setResourceSetBinding(const std::vector& base) { intermediate->setResourceSetBinding(base); } +void TShader::setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode) { intermediate->setTextureSamplerTransformMode(mode); } // // Turn the shader strings into a parse tree in the TIntermediate. @@ -1548,21 +1712,16 @@ bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion { if (! InitThread()) return false; - - pool = new TPoolAllocator(); - SetThreadPoolAllocator(*pool); + SetThreadPoolAllocator(pool); + if (! preamble) preamble = ""; return CompileDeferred(compiler, strings, numStrings, lengths, stringNames, preamble, EShOptNone, builtInResources, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, - forwardCompatible, messages, *intermediate, includer, sourceEntryPointName); -} - -bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages) -{ - return parse(builtInResources, defaultVersion, ENoProfile, false, forwardCompatible, messages); + forwardCompatible, messages, *intermediate, includer, sourceEntryPointName, + &environment); } // Fill in a string with the result of preprocessing ShaderStrings @@ -1576,9 +1735,8 @@ bool TShader::preprocess(const TBuiltInResource* builtInResources, { if (! InitThread()) return false; + SetThreadPoolAllocator(pool); - pool = new TPoolAllocator(); - SetThreadPoolAllocator(*pool); if (! preamble) preamble = ""; @@ -1598,8 +1756,9 @@ const char* TShader::getInfoDebugLog() return infoSink->debug.c_str(); } -TProgram::TProgram() : pool(0), reflection(0), ioMapper(nullptr), linked(false) +TProgram::TProgram() : reflection(0), ioMapper(nullptr), linked(false) { + pool = new TPoolAllocator; infoSink = new TInfoSink; for (int s = 0; s < EShLangCount; ++s) { intermediate[s] = 0; @@ -1609,6 +1768,7 @@ TProgram::TProgram() : pool(0), reflection(0), ioMapper(nullptr), linked(false) TProgram::~TProgram() { + delete ioMapper; delete infoSink; delete reflection; @@ -1632,9 +1792,8 @@ bool TProgram::link(EShMessages messages) linked = true; bool error = false; - - pool = new TPoolAllocator(); - SetThreadPoolAllocator(*pool); + + SetThreadPoolAllocator(pool); for (int s = 0; s < EShLangCount; ++s) { if (! linkStage((EShLanguage)s, messages)) @@ -1684,6 +1843,15 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages) intermediate[stage] = new TIntermediate(stage, firstIntermediate->getVersion(), firstIntermediate->getProfile()); + + + // The new TIntermediate must use the same origin as the original TIntermediates. + // Otherwise linking will fail due to different coordinate systems. + if (firstIntermediate->getOriginUpperLeft()) { + intermediate[stage]->setOriginUpperLeft(); + } + intermediate[stage]->setSpv(firstIntermediate->getSpv()); + newedIntermediate[stage] = true; } @@ -1719,7 +1887,7 @@ const char* TProgram::getInfoDebugLog() // bool TProgram::buildReflection() -{ +{ if (! linked || reflection) return false; @@ -1741,7 +1909,10 @@ const char* TProgram::getUniformName(int index) const { return reflection const char* TProgram::getUniformBlockName(int index) const { return reflection->getUniformBlock(index).name.c_str(); } int TProgram::getUniformBlockSize(int index) const { return reflection->getUniformBlock(index).size; } int TProgram::getUniformIndex(const char* name) const { return reflection->getIndex(name); } +int TProgram::getUniformBinding(int index) const { return reflection->getUniform(index).getBinding(); } +int TProgram::getUniformBlockBinding(int index) const { return reflection->getUniformBlock(index).getBinding(); } int TProgram::getUniformBlockIndex(int index) const { return reflection->getUniform(index).index; } +int TProgram::getUniformBlockCounterIndex(int index) const { return reflection->getUniformBlock(index).counterIndex; } int TProgram::getUniformType(int index) const { return reflection->getUniform(index).glDefineType; } int TProgram::getUniformBufferOffset(int index) const { return reflection->getUniform(index).offset; } int TProgram::getUniformArraySize(int index) const { return reflection->getUniform(index).size; } @@ -1751,6 +1922,7 @@ int TProgram::getAttributeType(int index) const { return reflection const TType* TProgram::getAttributeTType(int index) const { return reflection->getAttribute(index).getType(); } const TType* TProgram::getUniformTType(int index) const { return reflection->getUniform(index).getType(); } const TType* TProgram::getUniformBlockTType(int index) const { return reflection->getUniformBlock(index).getType(); } +unsigned TProgram::getLocalSize(int dim) const { return reflection->getLocalSize(dim); } void TProgram::dumpReflection() { reflection->dump(); } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.cpp b/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.cpp index fb09fdf991..db46e1075d 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.cpp @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -50,7 +51,7 @@ namespace glslang { // // Recursively generate mangled names. // -void TType::buildMangledName(TString& mangledName) +void TType::buildMangledName(TString& mangledName) const { if (isMatrix()) mangledName += 'm'; @@ -60,17 +61,22 @@ void TType::buildMangledName(TString& mangledName) switch (basicType) { case EbtFloat: mangledName += 'f'; break; case EbtDouble: mangledName += 'd'; break; -#ifdef AMD_EXTENSIONS case EbtFloat16: mangledName += "f16"; break; -#endif case EbtInt: mangledName += 'i'; break; case EbtUint: mangledName += 'u'; break; + case EbtInt8: mangledName += "i8"; break; + case EbtUint8: mangledName += "u8"; break; + case EbtInt16: mangledName += "i16"; break; + case EbtUint16: mangledName += "u16"; break; case EbtInt64: mangledName += "i64"; break; case EbtUint64: mangledName += "u64"; break; case EbtBool: mangledName += 'b'; break; case EbtAtomicUint: mangledName += "au"; break; case EbtSampler: switch (sampler.type) { +#ifdef AMD_EXTENSIONS + case EbtFloat16: mangledName += "f16"; break; +#endif case EbtInt: mangledName += "i"; break; case EbtUint: mangledName += "u"; break; default: break; // some compilers want this @@ -99,11 +105,32 @@ void TType::buildMangledName(TString& mangledName) case EsdSubpass: mangledName += "P"; break; default: break; // some compilers want this } + + if (sampler.hasReturnStruct()) { + // Name mangle for sampler return struct uses struct table index. + mangledName += "-tx-struct"; + + char text[16]; // plenty enough space for the small integers. + snprintf(text, sizeof(text), "%d-", sampler.structReturnIndex); + mangledName += text; + } else { + switch (sampler.getVectorSize()) { + case 1: mangledName += "1"; break; + case 2: mangledName += "2"; break; + case 3: mangledName += "3"; break; + case 4: break; // default to prior name mangle behavior + } + } + if (sampler.ms) mangledName += "M"; break; case EbtStruct: - mangledName += "struct-"; + case EbtBlock: + if (basicType == EbtStruct) + mangledName += "struct-"; + else + mangledName += "block-"; if (typeName) mangledName += *typeName; for (unsigned int i = 0; i < structure->size(); ++i) { @@ -295,6 +322,9 @@ TFunction::TFunction(const TFunction& copyOf) : TSymbol(copyOf) op = copyOf.op; defined = copyOf.defined; prototyped = copyOf.prototyped; + implicitThis = copyOf.implicitThis; + illegalImplicitThis = copyOf.illegalImplicitThis; + defaultParamCount = copyOf.defaultParamCount; } TFunction* TFunction::clone() const @@ -318,6 +348,7 @@ TSymbolTableLevel* TSymbolTableLevel::clone() const { TSymbolTableLevel *symTableLevel = new TSymbolTableLevel(); symTableLevel->anonId = anonId; + symTableLevel->thisLevel = thisLevel; std::vector containerCopied(anonId, false); tLevel::const_iterator iter; for (iter = level.begin(); iter != level.end(); ++iter) { diff --git a/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.h b/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.h index 9f5a2e69f5..f928b7aedf 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _SYMBOL_TABLE_INCLUDED_ @@ -87,6 +87,12 @@ public: virtual const TString& getName() const { return *name; } virtual void changeName(const TString* newName) { name = newName; } + virtual void addPrefix(const char* prefix) + { + TString newName(prefix); + newName.append(*name); + changeName(NewPoolTString(newName.c_str())); + } virtual const TString& getMangledName() const { return getName(); } virtual TFunction* getAsFunction() { return 0; } virtual const TFunction* getAsFunction() const { return 0; } @@ -191,6 +197,7 @@ protected: struct TParameter { TString *name; TType* type; + TIntermTyped* defaultValue; void copyParam(const TParameter& param) { if (param.name) @@ -198,7 +205,9 @@ struct TParameter { else name = 0; type = param.type->clone(); + defaultValue = param.defaultValue; } + TBuiltInVariable getDeclaredBuiltIn() const { return type->getQualifier().declaredBuiltIn; } }; // @@ -209,40 +218,82 @@ public: explicit TFunction(TOperator o) : TSymbol(0), op(o), - defined(false), prototyped(false) { } + defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0) { } TFunction(const TString *name, const TType& retType, TOperator tOp = EOpNull) : TSymbol(name), mangledName(*name + '('), op(tOp), - defined(false), prototyped(false) { returnType.shallowCopy(retType); } - virtual TFunction* clone() const; + defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0) + { + returnType.shallowCopy(retType); + declaredBuiltIn = retType.getQualifier().builtIn; + } + virtual TFunction* clone() const override; virtual ~TFunction(); - virtual TFunction* getAsFunction() { return this; } - virtual const TFunction* getAsFunction() const { return this; } + virtual TFunction* getAsFunction() override { return this; } + virtual const TFunction* getAsFunction() const override { return this; } + // Install 'p' as the (non-'this') last parameter. + // Non-'this' parameters are reflected in both the list of parameters and the + // mangled name. virtual void addParameter(TParameter& p) { assert(writable); parameters.push_back(p); p.type->appendMangledName(mangledName); + + if (p.defaultValue != nullptr) + defaultParamCount++; } - virtual const TString& getMangledName() const { return mangledName; } - virtual const TType& getType() const { return returnType; } - virtual TType& getWritableType() { return returnType; } + // Install 'this' as the first parameter. + // 'this' is reflected in the list of parameters, but not the mangled name. + virtual void addThisParameter(TType& type, const char* name) + { + TParameter p = { NewPoolTString(name), new TType, nullptr }; + p.type->shallowCopy(type); + parameters.insert(parameters.begin(), p); + } + + virtual void addPrefix(const char* prefix) override + { + TSymbol::addPrefix(prefix); + mangledName.insert(0, prefix); + } + + virtual void removePrefix(const TString& prefix) + { + assert(mangledName.compare(0, prefix.size(), prefix) == 0); + mangledName.erase(0, prefix.size()); + } + + virtual const TString& getMangledName() const override { return mangledName; } + virtual const TType& getType() const override { return returnType; } + virtual TBuiltInVariable getDeclaredBuiltInType() const { return declaredBuiltIn; } + virtual TType& getWritableType() override { return returnType; } virtual void relateToOperator(TOperator o) { assert(writable); op = o; } virtual TOperator getBuiltInOp() const { return op; } virtual void setDefined() { assert(writable); defined = true; } virtual bool isDefined() const { return defined; } virtual void setPrototyped() { assert(writable); prototyped = true; } virtual bool isPrototyped() const { return prototyped; } + virtual void setImplicitThis() { assert(writable); implicitThis = true; } + virtual bool hasImplicitThis() const { return implicitThis; } + virtual void setIllegalImplicitThis() { assert(writable); illegalImplicitThis = true; } + virtual bool hasIllegalImplicitThis() const { return illegalImplicitThis; } + // Return total number of parameters virtual int getParamCount() const { return static_cast(parameters.size()); } + // Return number of parameters with default values. + virtual int getDefaultParamCount() const { return defaultParamCount; } + // Return number of fixed parameters (without default values) + virtual int getFixedParamCount() const { return getParamCount() - getDefaultParamCount(); } + virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; } virtual const TParameter& operator[](int i) const { return parameters[i]; } - virtual void dump(TInfoSink &infoSink) const; + virtual void dump(TInfoSink &infoSink) const override; protected: explicit TFunction(const TFunction&); @@ -251,10 +302,18 @@ protected: typedef TVector TParamList; TParamList parameters; TType returnType; + TBuiltInVariable declaredBuiltIn; + TString mangledName; TOperator op; bool defined; bool prototyped; + bool implicitThis; // True if this function is allowed to see all members of 'this' + bool illegalImplicitThis; // True if this function is not supposed to have access to dynamic members of 'this', + // even if it finds member variables in the symbol table. + // This is important for a static member function that has member variables in scope, + // but is not allowed to use them, or see hidden symbols instead. + int defaultParamCount; }; // @@ -301,7 +360,7 @@ protected: class TSymbolTableLevel { public: POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) - TSymbolTableLevel() : defaultPrecision(0), anonId(0) { } + TSymbolTableLevel() : defaultPrecision(0), anonId(0), thisLevel(false) { } ~TSymbolTableLevel(); bool insert(TSymbol& symbol, bool separateNameSpaces) @@ -459,6 +518,9 @@ public: TSymbolTableLevel* clone() const; void readOnly(); + void setThisLevel() { thisLevel = true; } + bool isThisLevel() const { return thisLevel; } + protected: explicit TSymbolTableLevel(TSymbolTableLevel&); TSymbolTableLevel& operator=(TSymbolTableLevel&); @@ -470,6 +532,8 @@ protected: tLevel level; // named mappings TPrecisionQualifier *defaultPrecision; int anonId; + bool thisLevel; // True if this level of the symbol table is a structure scope containing member function + // that are supposed to see anonymous access to member variables. }; class TSymbolTable { @@ -526,6 +590,20 @@ public: table.push_back(new TSymbolTableLevel); } + // Make a new symbol-table level to represent the scope introduced by a structure + // containing member functions, such that the member functions can find anonymous + // references to member variables. + // + // 'thisSymbol' should have a name of "" to trigger anonymous structure-member + // symbol finds. + void pushThis(TSymbol& thisSymbol) + { + assert(thisSymbol.getName().size() == 0); + table.push_back(new TSymbolTableLevel); + table.back()->setThisLevel(); + insert(thisSymbol); + } + void pop(TPrecisionQualifier *p) { table[currentLevel()]->getPreviousDefaultPrecisions(p); @@ -612,19 +690,50 @@ public: } } - TSymbol* find(const TString& name, bool* builtIn = 0, bool *currentScope = 0) + // Normal find of a symbol, that can optionally say whether the symbol was found + // at a built-in level or the current top-scope level. + TSymbol* find(const TString& name, bool* builtIn = 0, bool* currentScope = 0, int* thisDepthP = 0) { int level = currentLevel(); TSymbol* symbol; + int thisDepth = 0; do { + if (table[level]->isThisLevel()) + ++thisDepth; symbol = table[level]->find(name); --level; - } while (symbol == 0 && level >= 0); + } while (symbol == nullptr && level >= 0); level++; if (builtIn) *builtIn = isBuiltInLevel(level); if (currentScope) *currentScope = isGlobalLevel(currentLevel()) || level == currentLevel(); // consider shared levels as "current scope" WRT user globals + if (thisDepthP != nullptr) { + if (! table[level]->isThisLevel()) + thisDepth = 0; + *thisDepthP = thisDepth; + } + + return symbol; + } + + // Find of a symbol that returns how many layers deep of nested + // structures-with-member-functions ('this' scopes) deep the symbol was + // found in. + TSymbol* find(const TString& name, int& thisDepth) + { + int level = currentLevel(); + TSymbol* symbol; + thisDepth = 0; + do { + if (table[level]->isThisLevel()) + ++thisDepth; + symbol = table[level]->find(name); + --level; + } while (symbol == 0 && level >= 0); + + if (! table[level + 1]->isThisLevel()) + thisDepth = 0; return symbol; } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Versions.cpp b/deps/glslang/glslang/glslang/MachineIndependent/Versions.cpp old mode 100644 new mode 100755 index 8a29cb37f4..51b6430853 --- a/deps/glslang/glslang/glslang/MachineIndependent/Versions.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/Versions.cpp @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,24 +21,24 @@ // 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 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. // // // Help manage multiple profiles, versions, extensions etc. // -// These don't return error codes, as the presumption is parsing will +// These don't return error codes, as the presumption is parsing will // always continue as if the tested feature were enabled, and thus there // is no error recovery needed. // @@ -47,25 +48,25 @@ // // To add a new hypothetical "Feature F" to the front end, where an extension // "XXX_extension_X" can be used to enable the feature, do the following. -// +// // OVERVIEW: Specific features are what are error-checked for, not -// extensions: A specific Feature F might be enabled by an extension, or a +// extensions: A specific Feature F might be enabled by an extension, or a // particular version in a particular profile, or a stage, or combinations, etc. -// -// The basic mechanism is to use the following to "declare" all the things that +// +// The basic mechanism is to use the following to "declare" all the things that // enable/disable Feature F, in a code path that implements Feature F: -// +// // requireProfile() // profileRequires() // requireStage() // checkDeprecated() // requireNotRemoved() // requireExtensions() -// -// Typically, only the first two calls are needed. They go into a code path that -// implements Feature F, and will log the proper error/warning messages. Parsing +// +// Typically, only the first two calls are needed. They go into a code path that +// implements Feature F, and will log the proper error/warning messages. Parsing // will then always continue as if the tested feature was enabled. -// +// // There is typically no if-testing or conditional parsing, just insertion of the calls above. // However, if symbols specific to the extension are added (step 5), they will // only be added under tests that the minimum version and profile are present. @@ -73,10 +74,10 @@ // 1) Add a symbol name for the extension string at the bottom of Versions.h: // // const char* const XXX_extension_X = "XXX_extension_X"; -// +// // 2) Add extension initialization to TParseVersions::initializeExtensionBehavior(), // the first function below: -// +// // extensionBehavior[XXX_extension_X] = EBhDisable; // // 3) Add any preprocessor directives etc. in the next function, TParseVersions::getPreamble(): @@ -84,50 +85,50 @@ // "#define XXX_extension_X 1\n" // // The new-line is important, as that ends preprocess tokens. -// +// // 4) Insert a profile check in the feature's path (unless all profiles support the feature, // for some version level). That is, call requireProfile() to constrain the profiles, e.g.: -// +// // // ... in a path specific to Feature F... // requireProfile(loc, // ECoreProfile | ECompatibilityProfile, // "Feature F"); -// +// // 5) For each profile that supports the feature, insert version/extension checks: -// +// // The mostly likely scenario is that Feature F can only be used with a // particular profile if XXX_extension_X is present or the version is // high enough that the core specification already incorporated it. -// +// // // following the requireProfile() call... -// profileRequires(loc, +// profileRequires(loc, // ECoreProfile | ECompatibilityProfile, // 420, // 0 if no version incorporated the feature into the core spec. // XXX_extension_X, // can be a list of extensions that all add the feature // "Feature F Description"); -// +// // This allows the feature if either A) one of the extensions is enabled or // B) the version is high enough. If no version yet incorporates the feature // into core, pass in 0. -// +// // This can be called multiple times, if different profiles support the -// feature starting at different version numbers or with different +// feature starting at different version numbers or with different // extensions. -// +// // This must be called for each profile allowed by the initial call to requireProfile(). -// +// // Profiles are all masks, which can be "or"-ed together. -// +// // ENoProfile // ECoreProfile // ECompatibilityProfile // EEsProfile -// +// // The ENoProfile profile is only for desktop, before profiles showed up in version 150; // All other #version with no profile default to either es or core, and so have profiles. -// +// // You can select all but a particular profile using ~. The following basically means "desktop": -// +// // ~EEsProfile // // 6) If built-in symbols are added by the extension, add them in Initialize.cpp: Their use @@ -154,8 +155,9 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_OES_standard_derivatives] = EBhDisable; extensionBehavior[E_GL_EXT_frag_depth] = EBhDisable; extensionBehavior[E_GL_OES_EGL_image_external] = EBhDisable; + extensionBehavior[E_GL_OES_EGL_image_external_essl3] = EBhDisable; extensionBehavior[E_GL_EXT_shader_texture_lod] = EBhDisable; - + extensionBehavior[E_GL_EXT_shadow_samplers] = EBhDisable; extensionBehavior[E_GL_ARB_texture_rectangle] = EBhDisable; extensionBehavior[E_GL_3DL_array_objects] = EBhDisable; extensionBehavior[E_GL_ARB_shading_language_420pack] = EBhDisable; @@ -179,9 +181,25 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_ARB_shader_ballot] = EBhDisable; extensionBehavior[E_GL_ARB_sparse_texture2] = EBhDisable; extensionBehavior[E_GL_ARB_sparse_texture_clamp] = EBhDisable; + extensionBehavior[E_GL_ARB_shader_stencil_export] = EBhDisable; // extensionBehavior[E_GL_ARB_cull_distance] = EBhDisable; // present for 4.5, but need extension control over block members + extensionBehavior[E_GL_ARB_post_depth_coverage] = EBhDisable; + extensionBehavior[E_GL_ARB_shader_viewport_layer_array] = EBhDisable; + + extensionBehavior[E_GL_KHR_shader_subgroup_basic] = EBhDisable; + extensionBehavior[E_GL_KHR_shader_subgroup_vote] = EBhDisable; + extensionBehavior[E_GL_KHR_shader_subgroup_arithmetic] = EBhDisable; + extensionBehavior[E_GL_KHR_shader_subgroup_ballot] = EBhDisable; + extensionBehavior[E_GL_KHR_shader_subgroup_shuffle] = EBhDisable; + extensionBehavior[E_GL_KHR_shader_subgroup_shuffle_relative] = EBhDisable; + extensionBehavior[E_GL_KHR_shader_subgroup_clustered] = EBhDisable; + extensionBehavior[E_GL_KHR_shader_subgroup_quad] = EBhDisable; extensionBehavior[E_GL_EXT_shader_non_constant_global_initializers] = EBhDisable; + extensionBehavior[E_GL_EXT_shader_image_load_formatted] = EBhDisable; + extensionBehavior[E_GL_EXT_post_depth_coverage] = EBhDisable; + extensionBehavior[E_GL_EXT_control_flow_attributes] = EBhDisable; + extensionBehavior[E_GL_EXT_nonuniform_qualifier] = EBhDisable; // #line and #include extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable; @@ -193,6 +211,23 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_AMD_shader_explicit_vertex_parameter] = EBhDisable; extensionBehavior[E_GL_AMD_gcn_shader] = EBhDisable; extensionBehavior[E_GL_AMD_gpu_shader_half_float] = EBhDisable; + extensionBehavior[E_GL_AMD_texture_gather_bias_lod] = EBhDisable; + extensionBehavior[E_GL_AMD_gpu_shader_int16] = EBhDisable; + extensionBehavior[E_GL_AMD_shader_image_load_store_lod] = EBhDisable; + extensionBehavior[E_GL_AMD_shader_fragment_mask] = EBhDisable; + extensionBehavior[E_GL_AMD_gpu_shader_half_float_fetch] = EBhDisable; +#endif + +#ifdef NV_EXTENSIONS + extensionBehavior[E_GL_NV_sample_mask_override_coverage] = EBhDisable; + extensionBehavior[E_SPV_NV_geometry_shader_passthrough] = EBhDisable; + extensionBehavior[E_GL_NV_viewport_array2] = EBhDisable; + extensionBehavior[E_GL_NV_stereo_view_rendering] = EBhDisable; + extensionBehavior[E_GL_NVX_multiview_per_view_attributes] = EBhDisable; + extensionBehavior[E_GL_NV_shader_atomic_int64] = EBhDisable; + extensionBehavior[E_GL_NV_conservative_raster_underestimation] = EBhDisable; + extensionBehavior[E_GL_NV_shader_noperspective_interpolation] = EBhDisable; + extensionBehavior[E_GL_NV_shader_subgroup_partitioned] = EBhDisable; #endif // AEP @@ -222,6 +257,24 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_OES_tessellation_point_size] = EBhDisable; extensionBehavior[E_GL_OES_texture_buffer] = EBhDisable; extensionBehavior[E_GL_OES_texture_cube_map_array] = EBhDisable; + + // EXT extensions + extensionBehavior[E_GL_EXT_device_group] = EBhDisable; + extensionBehavior[E_GL_EXT_multiview] = EBhDisable; + + // OVR extensions + extensionBehavior[E_GL_OVR_multiview] = EBhDisable; + extensionBehavior[E_GL_OVR_multiview2] = EBhDisable; + + // explicit types + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types] = EBhDisable; + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int8] = EBhDisable; + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int16] = EBhDisable; + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int32] = EBhDisable; + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_int64] = EBhDisable; + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_float16] = EBhDisable; + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_float32] = EBhDisable; + extensionBehavior[E_GL_KHX_shader_explicit_arithmetic_types_float64] = EBhDisable; } // Get code that is not part of a shared symbol table, is specific to this shader, @@ -229,14 +282,16 @@ void TParseVersions::initializeExtensionBehavior() void TParseVersions::getPreamble(std::string& preamble) { if (profile == EEsProfile) { - preamble = + preamble = "#define GL_ES 1\n" "#define GL_FRAGMENT_PRECISION_HIGH 1\n" "#define GL_OES_texture_3D 1\n" "#define GL_OES_standard_derivatives 1\n" "#define GL_EXT_frag_depth 1\n" "#define GL_OES_EGL_image_external 1\n" + "#define GL_OES_EGL_image_external_essl3 1\n" "#define GL_EXT_shader_texture_lod 1\n" + "#define GL_EXT_shadow_samplers 1\n" // AEP "#define GL_ANDROID_extension_pack_es31a 1\n" @@ -267,8 +322,15 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_OES_texture_cube_map_array 1\n" "#define GL_EXT_shader_non_constant_global_initializers 1\n" ; + +#ifdef NV_EXTENSIONS + if (profile == EEsProfile && version >= 300) { + preamble += "#define GL_NV_shader_noperspective_interpolation 1\n"; + } +#endif + } else { - preamble = + preamble = "#define GL_FRAGMENT_PRECISION_HIGH 1\n" "#define GL_ARB_texture_rectangle 1\n" "#define GL_ARB_shading_language_420pack 1\n" @@ -292,8 +354,24 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_ARB_shader_ballot 1\n" "#define GL_ARB_sparse_texture2 1\n" "#define GL_ARB_sparse_texture_clamp 1\n" + "#define GL_ARB_shader_stencil_export 1\n" // "#define GL_ARB_cull_distance 1\n" // present for 4.5, but need extension control over block members + "#define GL_ARB_post_depth_coverage 1\n" "#define GL_EXT_shader_non_constant_global_initializers 1\n" + "#define GL_EXT_shader_image_load_formatted 1\n" + "#define GL_EXT_post_depth_coverage 1\n" + "#define GL_EXT_control_flow_attributes 1\n" + "#define GL_EXT_nonuniform_qualifier 1\n" + + // GL_KHR_shader_subgroup + "#define GL_KHR_shader_subgroup_basic 1\n" + "#define GL_KHR_shader_subgroup_vote 1\n" + "#define GL_KHR_shader_subgroup_arithmetic 1\n" + "#define GL_KHR_shader_subgroup_ballot 1\n" + "#define GL_KHR_shader_subgroup_shuffle 1\n" + "#define GL_KHR_shader_subgroup_shuffle_relative 1\n" + "#define GL_KHR_shader_subgroup_clustered 1\n" + "#define GL_KHR_shader_subgroup_quad 1\n" #ifdef AMD_EXTENSIONS "#define GL_AMD_shader_ballot 1\n" @@ -301,12 +379,57 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_AMD_shader_explicit_vertex_parameter 1\n" "#define GL_AMD_gcn_shader 1\n" "#define GL_AMD_gpu_shader_half_float 1\n" + "#define GL_AMD_texture_gather_bias_lod 1\n" + "#define GL_AMD_gpu_shader_int16 1\n" + "#define GL_AMD_shader_image_load_store_lod 1\n" + "#define GL_AMD_shader_fragment_mask 1\n" + "#define GL_AMD_gpu_shader_half_float_fetch 1\n" #endif + +#ifdef NV_EXTENSIONS + "#define GL_NV_sample_mask_override_coverage 1\n" + "#define GL_NV_geometry_shader_passthrough 1\n" + "#define GL_NV_viewport_array2 1\n" + "#define GL_NV_shader_atomic_int64 1\n" + "#define GL_NV_conservative_raster_underestimation 1\n" + "#define GL_NV_shader_subgroup_partitioned 1\n" +#endif + "#define GL_KHX_shader_explicit_arithmetic_types 1\n" + "#define GL_KHX_shader_explicit_arithmetic_types_int8 1\n" + "#define GL_KHX_shader_explicit_arithmetic_types_int16 1\n" + "#define GL_KHX_shader_explicit_arithmetic_types_int32 1\n" + "#define GL_KHX_shader_explicit_arithmetic_types_int64 1\n" + "#define GL_KHX_shader_explicit_arithmetic_types_float16 1\n" + "#define GL_KHX_shader_explicit_arithmetic_types_float32 1\n" + "#define GL_KHX_shader_explicit_arithmetic_types_float64 1\n" + ; + + if (version >= 150) { + // define GL_core_profile and GL_compatibility_profile + preamble += "#define GL_core_profile 1\n"; + + if (profile == ECompatibilityProfile) + preamble += "#define GL_compatibility_profile 1\n"; + } + } + + if ((profile != EEsProfile && version >= 140) || + (profile == EEsProfile && version >= 310)) { + preamble += + "#define GL_EXT_device_group 1\n" + "#define GL_EXT_multiview 1\n" + ; + } + + if (version >= 300 /* both ES and non-ES */) { + preamble += + "#define GL_OVR_multiview 1\n" + "#define GL_OVR_multiview2 1\n" ; } // #line and #include - preamble += + preamble += "#define GL_GOOGLE_cpp_style_line_directive 1\n" "#define GL_GOOGLE_include_directive 1\n" ; @@ -314,9 +437,9 @@ void TParseVersions::getPreamble(std::string& preamble) // #define VULKAN XXXX const int numberBufSize = 12; char numberBuf[numberBufSize]; - if (spvVersion.vulkan > 0) { + if (spvVersion.vulkanGlsl > 0) { preamble += "#define VULKAN "; - snprintf(numberBuf, numberBufSize, "%d", spvVersion.vulkan); + snprintf(numberBuf, numberBufSize, "%d", spvVersion.vulkanGlsl); preamble += numberBuf; preamble += "\n"; } @@ -333,7 +456,7 @@ void TParseVersions::getPreamble(std::string& preamble) // // When to use requireProfile(): // -// Use if only some profiles support a feature. However, if within a profile the feature +// Use if only some profiles support a feature. However, if within a profile the feature // is version or extension specific, follow this call with calls to profileRequires(). // // Operation: If the current profile is not one of the profileMask, @@ -348,7 +471,7 @@ void TParseVersions::requireProfile(const TSourceLoc& loc, int profileMask, cons // // Map from stage enum to externally readable text name. // -const char* StageName(EShLanguage stage) +const char* StageName(EShLanguage stage) { switch(stage) { case EShLangVertex: return "vertex"; @@ -373,7 +496,7 @@ const char* StageName(EShLanguage stage) // Operation: Will issue warnings/errors based on the current profile, version, and extension // behaviors. It only checks extensions when the current profile is one of the profileMask. // -// A minVersion of 0 means no version of the profileMask support this in core, +// A minVersion of 0 means no version of the profileMask support this in core, // the extension must be present. // @@ -411,7 +534,7 @@ void TParseVersions::profileRequires(const TSourceLoc& loc, int profileMask, int // // When to use requireStage() // -// If only some stages support a feature. +// If only some stages support a feature. // // Operation: If the current stage is not present, give an error message. // @@ -461,6 +584,11 @@ void TParseVersions::requireNotRemoved(const TSourceLoc& loc, int profileMask, i } } +void TParseVersions::unimplemented(const TSourceLoc& loc, const char* featureDesc) +{ + error(loc, "feature not yet implemented", featureDesc, ""); +} + // Returns true if at least one of the extensions in the extensions parameter is requested. Otherwise, returns false. // Warns appropriately if the requested behavior of an extension is "warn". bool TParseVersions::checkExtensionsRequested(const TSourceLoc& loc, int numExtensions, const char* const extensions[], const char* featureDesc) @@ -496,7 +624,8 @@ bool TParseVersions::checkExtensionsRequested(const TSourceLoc& loc, int numExte // void TParseVersions::requireExtensions(const TSourceLoc& loc, int numExtensions, const char* const extensions[], const char* featureDesc) { - if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) return; + if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) + return; // If we get this far, give errors explaining what extensions are needed if (numExtensions == 1) @@ -514,7 +643,8 @@ void TParseVersions::requireExtensions(const TSourceLoc& loc, int numExtensions, // void TParseVersions::ppRequireExtensions(const TSourceLoc& loc, int numExtensions, const char* const extensions[], const char* featureDesc) { - if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) return; + if (checkExtensionsRequested(loc, numExtensions, extensions, featureDesc)) + return; // If we get this far, give errors explaining what extensions are needed if (numExtensions == 1) @@ -552,7 +682,8 @@ bool TParseVersions::extensionTurnedOn(const char* const extension) bool TParseVersions::extensionsTurnedOn(int numExtensions, const char* const extensions[]) { for (int i = 0; i < numExtensions; ++i) { - if (extensionTurnedOn(extensions[i])) return true; + if (extensionTurnedOn(extensions[i])) + return true; } return false; } @@ -608,6 +739,25 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co updateExtensionBehavior(line, "GL_OES_shader_io_blocks", behaviorString); else if (strcmp(extension, "GL_GOOGLE_include_directive") == 0) updateExtensionBehavior(line, "GL_GOOGLE_cpp_style_line_directive", behaviorString); + // subgroup_* to subgroup_basic + else if (strcmp(extension, "GL_KHR_shader_subgroup_vote") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); + else if (strcmp(extension, "GL_KHR_shader_subgroup_arithmetic") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); + else if (strcmp(extension, "GL_KHR_shader_subgroup_ballot") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); + else if (strcmp(extension, "GL_KHR_shader_subgroup_shuffle") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); + else if (strcmp(extension, "GL_KHR_shader_subgroup_shuffle_relative") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); + else if (strcmp(extension, "GL_KHR_shader_subgroup_clustered") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); + else if (strcmp(extension, "GL_KHR_shader_subgroup_quad") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); +#ifdef NV_EXTENSIONS + else if (strcmp(extension, "GL_NV_shader_subgroup_partitioned") == 0) + updateExtensionBehavior(line, "GL_KHR_shader_subgroup_basic", behaviorString); +#endif } void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBehavior behavior) @@ -653,7 +803,7 @@ void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBe // Call for any operation needing full GLSL integer data-type support. void TParseVersions::fullIntegerCheck(const TSourceLoc& loc, const char* op) { - profileRequires(loc, ENoProfile, 130, nullptr, op); + profileRequires(loc, ENoProfile, 130, nullptr, op); profileRequires(loc, EEsProfile, 300, nullptr, op); } @@ -665,12 +815,71 @@ void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op) profileRequires(loc, ECompatibilityProfile, 400, nullptr, op); } -#ifdef AMD_EXTENSIONS // Call for any operation needing GLSL float16 data-type support. void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool builtIn) { if (!builtIn) { - requireExtensions(loc, 1, &E_GL_AMD_gpu_shader_half_float, "shader half float"); +#if AMD_EXTENSIONS + const char* const extensions[3] = {E_GL_AMD_gpu_shader_half_float, + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_float16}; + +#else + const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_float16}; +#endif + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} + +// Call for any operation needing GLSL float32 data-type support. +void TParseVersions::explicitFloat32Check(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (!builtIn) { + const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_float32}; + requireExtensions(loc, 2, extensions, "explicit types"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} + +// Call for any operation needing GLSL float64 data-type support. +void TParseVersions::explicitFloat64Check(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (!builtIn) { + const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_float64}; + requireExtensions(loc, 2, extensions, "explicit types"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} + +// Call for any operation needing GLSL explicit int8 data-type support. +void TParseVersions::explicitInt8Check(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (! builtIn) { + const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int8}; + requireExtensions(loc, 2, extensions, "explicit types"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} + +#ifdef AMD_EXTENSIONS +// Call for any operation needing GLSL float16 opaque-type support +void TParseVersions::float16OpaqueCheck(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (! builtIn) { + requireExtensions(loc, 1, &E_GL_AMD_gpu_shader_half_float_fetch, op); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); profileRequires(loc, ECoreProfile, 450, nullptr, op); profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); @@ -678,11 +887,46 @@ void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool bu } #endif +// Call for any operation needing GLSL explicit int16 data-type support. +void TParseVersions::explicitInt16Check(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (! builtIn) { +#if AMD_EXTENSIONS + const char* const extensions[3] = {E_GL_AMD_gpu_shader_int16, + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int16}; +#else + const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int16}; +#endif + requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, "explicit types"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} + +// Call for any operation needing GLSL explicit int32 data-type support. +void TParseVersions::explicitInt32Check(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (! builtIn) { + const char* const extensions[2] = {E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int32}; + requireExtensions(loc, 2, extensions, "explicit types"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} + // Call for any operation needing GLSL 64-bit integer data-type support. void TParseVersions::int64Check(const TSourceLoc& loc, const char* op, bool builtIn) { if (! builtIn) { - requireExtensions(loc, 1, &E_GL_ARB_gpu_shader_int64, "shader int64"); + const char* const extensions[3] = {E_GL_ARB_gpu_shader_int64, + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int64}; + requireExtensions(loc, 3, extensions, "shader int64"); requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); profileRequires(loc, ECoreProfile, 450, nullptr, op); profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); @@ -699,7 +943,7 @@ void TParseVersions::spvRemoved(const TSourceLoc& loc, const char* op) // Call for any operation removed because Vulkan SPIR-V is being generated. void TParseVersions::vulkanRemoved(const TSourceLoc& loc, const char* op) { - if (spvVersion.vulkan >= 100) + if (spvVersion.vulkan > 0) error(loc, "not allowed when using GLSL for Vulkan", op, ""); } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/Versions.h b/deps/glslang/glslang/glslang/MachineIndependent/Versions.h old mode 100644 new mode 100755 index 17baf3b1a3..b297d27b5c --- a/deps/glslang/glslang/glslang/MachineIndependent/Versions.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/Versions.h @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _VERSIONS_INCLUDED_ #define _VERSIONS_INCLUDED_ @@ -72,14 +73,19 @@ inline const char* ProfileName(EProfile profile) } // -// SPIR-V has versions for multiple things; tie them together. -// 0 means a target or rule set is not enabled. +// What source rules, validation rules, target language, etc. are needed +// desired for SPIR-V? +// +// 0 means a target or rule set is not enabled (ignore rules from that entity). +// Non-0 means to apply semantic rules arising from that version of its rule set. +// The union of all requested rule sets will be applied. // struct SpvVersion { - SpvVersion() : spv(0), vulkan(0), openGl(0) {} - unsigned int spv; // the version of the targeted SPIR-V, as defined by SPIR-V in word 1 of the SPIR-V binary header - int vulkan; // the version of semantics for Vulkan; e.g., for GLSL from KHR_vulkan_glsl "#define VULKAN" - int openGl; // the version of semantics for OpenGL; e.g., for GLSL from KHR_vulkan_glsl "#define GL_SPIRV" + SpvVersion() : spv(0), vulkanGlsl(0), vulkan(0), openGl(0) {} + unsigned int spv; // the version of SPIR-V to target, as defined by "word 1" of the SPIR-V binary header + int vulkanGlsl; // the version of GLSL semantics for Vulkan, from GL_KHR_vulkan_glsl, for "#define VULKAN XXX" + int vulkan; // the version of Vulkan, for which SPIR-V execution environment rules to use + int openGl; // the version of GLSL semantics for OpenGL, from GL_ARB_gl_spirv, for "#define GL_SPIRV XXX" }; // @@ -102,7 +108,9 @@ const char* const E_GL_OES_texture_3D = "GL_OES_texture_3D"; const char* const E_GL_OES_standard_derivatives = "GL_OES_standard_derivatives"; const char* const E_GL_EXT_frag_depth = "GL_EXT_frag_depth"; const char* const E_GL_OES_EGL_image_external = "GL_OES_EGL_image_external"; +const char* const E_GL_OES_EGL_image_external_essl3 = "GL_OES_EGL_image_external_essl3"; const char* const E_GL_EXT_shader_texture_lod = "GL_EXT_shader_texture_lod"; +const char* const E_GL_EXT_shadow_samplers = "GL_EXT_shadow_samplers"; const char* const E_GL_ARB_texture_rectangle = "GL_ARB_texture_rectangle"; const char* const E_GL_3DL_array_objects = "GL_3DL_array_objects"; @@ -127,9 +135,41 @@ const char* const E_GL_ARB_gpu_shader_int64 = "GL_ARB_gpu_shader_int const char* const E_GL_ARB_shader_ballot = "GL_ARB_shader_ballot"; const char* const E_GL_ARB_sparse_texture2 = "GL_ARB_sparse_texture2"; const char* const E_GL_ARB_sparse_texture_clamp = "GL_ARB_sparse_texture_clamp"; -//const char* const E_GL_ARB_cull_distance = "GL_ARB_cull_distance"; // present for 4.5, but need extension control over block members +const char* const E_GL_ARB_shader_stencil_export = "GL_ARB_shader_stencil_export"; +// const char* const E_GL_ARB_cull_distance = "GL_ARB_cull_distance"; // present for 4.5, but need extension control over block members +const char* const E_GL_ARB_post_depth_coverage = "GL_ARB_post_depth_coverage"; +const char* const E_GL_ARB_shader_viewport_layer_array = "GL_ARB_shader_viewport_layer_array"; + +const char* const E_GL_KHR_shader_subgroup_basic = "GL_KHR_shader_subgroup_basic"; +const char* const E_GL_KHR_shader_subgroup_vote = "GL_KHR_shader_subgroup_vote"; +const char* const E_GL_KHR_shader_subgroup_arithmetic = "GL_KHR_shader_subgroup_arithmetic"; +const char* const E_GL_KHR_shader_subgroup_ballot = "GL_KHR_shader_subgroup_ballot"; +const char* const E_GL_KHR_shader_subgroup_shuffle = "GL_KHR_shader_subgroup_shuffle"; +const char* const E_GL_KHR_shader_subgroup_shuffle_relative = "GL_KHR_shader_subgroup_shuffle_relative"; +const char* const E_GL_KHR_shader_subgroup_clustered = "GL_KHR_shader_subgroup_clustered"; +const char* const E_GL_KHR_shader_subgroup_quad = "GL_KHR_shader_subgroup_quad"; const char* const E_GL_EXT_shader_non_constant_global_initializers = "GL_EXT_shader_non_constant_global_initializers"; +const char* const E_GL_EXT_shader_image_load_formatted = "GL_EXT_shader_image_load_formatted"; + +// EXT extensions +const char* const E_GL_EXT_device_group = "GL_EXT_device_group"; +const char* const E_GL_EXT_multiview = "GL_EXT_multiview"; +const char* const E_GL_EXT_post_depth_coverage = "GL_EXT_post_depth_coverage"; +const char* const E_GL_EXT_control_flow_attributes = "GL_EXT_control_flow_attributes"; +const char* const E_GL_EXT_nonuniform_qualifier = "GL_EXT_nonuniform_qualifier"; + +// Arrays of extensions for the above viewportEXTs duplications + +const char* const post_depth_coverageEXTs[] = { E_GL_ARB_post_depth_coverage, E_GL_EXT_post_depth_coverage }; +const int Num_post_depth_coverageEXTs = sizeof(post_depth_coverageEXTs) / sizeof(post_depth_coverageEXTs[0]); + +// OVR extensions +const char* const E_GL_OVR_multiview = "GL_OVR_multiview"; +const char* const E_GL_OVR_multiview2 = "GL_OVR_multiview2"; + +const char* const OVR_multiview_EXTs[] = { E_GL_OVR_multiview, E_GL_OVR_multiview2 }; +const int Num_OVR_multiview_EXTs = sizeof(OVR_multiview_EXTs) / sizeof(OVR_multiview_EXTs[0]); // #line and #include const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp_style_line_directive"; @@ -141,6 +181,29 @@ const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; const char* const E_GL_AMD_gpu_shader_half_float = "GL_AMD_gpu_shader_half_float"; +const char* const E_GL_AMD_texture_gather_bias_lod = "GL_AMD_texture_gather_bias_lod"; +const char* const E_GL_AMD_gpu_shader_int16 = "GL_AMD_gpu_shader_int16"; +const char* const E_GL_AMD_shader_image_load_store_lod = "GL_AMD_shader_image_load_store_lod"; +const char* const E_GL_AMD_shader_fragment_mask = "GL_AMD_shader_fragment_mask"; +const char* const E_GL_AMD_gpu_shader_half_float_fetch = "GL_AMD_gpu_shader_half_float_fetch"; +#endif + +#ifdef NV_EXTENSIONS + +const char* const E_GL_NV_sample_mask_override_coverage = "GL_NV_sample_mask_override_coverage"; +const char* const E_SPV_NV_geometry_shader_passthrough = "GL_NV_geometry_shader_passthrough"; +const char* const E_GL_NV_viewport_array2 = "GL_NV_viewport_array2"; +const char* const E_GL_NV_stereo_view_rendering = "GL_NV_stereo_view_rendering"; +const char* const E_GL_NVX_multiview_per_view_attributes = "GL_NVX_multiview_per_view_attributes"; +const char* const E_GL_NV_shader_atomic_int64 = "GL_NV_shader_atomic_int64"; +const char* const E_GL_NV_conservative_raster_underestimation = "GL_NV_conservative_raster_underestimation"; +const char* const E_GL_NV_shader_noperspective_interpolation = "GL_NV_shader_noperspective_interpolation"; +const char* const E_GL_NV_shader_subgroup_partitioned = "GL_NV_shader_subgroup_partitioned"; + +// Arrays of extensions for the above viewportEXTs duplications + +const char* const viewportEXTs[] = { E_GL_ARB_shader_viewport_layer_array, E_GL_NV_viewport_array2 }; +const int Num_viewportEXTs = sizeof(viewportEXTs) / sizeof(viewportEXTs[0]); #endif // AEP @@ -171,6 +234,16 @@ const char* const E_GL_OES_tessellation_point_size = "GL_OES_tessel const char* const E_GL_OES_texture_buffer = "GL_OES_texture_buffer"; const char* const E_GL_OES_texture_cube_map_array = "GL_OES_texture_cube_map_array"; +// KHX +const char* const E_GL_KHX_shader_explicit_arithmetic_types = "GL_KHX_shader_explicit_arithmetic_types"; +const char* const E_GL_KHX_shader_explicit_arithmetic_types_int8 = "GL_KHX_shader_explicit_arithmetic_types_int8"; +const char* const E_GL_KHX_shader_explicit_arithmetic_types_int16 = "GL_KHX_shader_explicit_arithmetic_types_int16"; +const char* const E_GL_KHX_shader_explicit_arithmetic_types_int32 = "GL_KHX_shader_explicit_arithmetic_types_int32"; +const char* const E_GL_KHX_shader_explicit_arithmetic_types_int64 = "GL_KHX_shader_explicit_arithmetic_types_int64"; +const char* const E_GL_KHX_shader_explicit_arithmetic_types_float16 = "GL_KHX_shader_explicit_arithmetic_types_float16"; +const char* const E_GL_KHX_shader_explicit_arithmetic_types_float32 = "GL_KHX_shader_explicit_arithmetic_types_float32"; +const char* const E_GL_KHX_shader_explicit_arithmetic_types_float64 = "GL_KHX_shader_explicit_arithmetic_types_float64"; + // Arrays of extensions for the above AEP duplications const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader }; diff --git a/deps/glslang-new/glslang/MachineIndependent/attribute.cpp b/deps/glslang/glslang/glslang/MachineIndependent/attribute.cpp similarity index 100% rename from deps/glslang-new/glslang/MachineIndependent/attribute.cpp rename to deps/glslang/glslang/glslang/MachineIndependent/attribute.cpp diff --git a/deps/glslang-new/glslang/MachineIndependent/attribute.h b/deps/glslang/glslang/glslang/MachineIndependent/attribute.h similarity index 100% rename from deps/glslang-new/glslang/MachineIndependent/attribute.h rename to deps/glslang/glslang/glslang/MachineIndependent/attribute.h diff --git a/deps/glslang/glslang/glslang/MachineIndependent/gl_types.h b/deps/glslang/glslang/glslang/MachineIndependent/gl_types.h index d7cb31fe38..c9fee9ecce 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/gl_types.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/gl_types.h @@ -21,6 +21,8 @@ ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ +#pragma once + #define GL_FLOAT 0x1406 #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 @@ -115,6 +117,40 @@ #define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#ifdef AMD_EXTENSIONS +#define GL_FLOAT16_SAMPLER_1D_AMD 0x91CE +#define GL_FLOAT16_SAMPLER_2D_AMD 0x91CF +#define GL_FLOAT16_SAMPLER_3D_AMD 0x91D0 +#define GL_FLOAT16_SAMPLER_CUBE_AMD 0x91D1 +#define GL_FLOAT16_SAMPLER_2D_RECT_AMD 0x91D2 +#define GL_FLOAT16_SAMPLER_1D_ARRAY_AMD 0x91D3 +#define GL_FLOAT16_SAMPLER_2D_ARRAY_AMD 0x91D4 +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD 0x91D5 +#define GL_FLOAT16_SAMPLER_BUFFER_AMD 0x91D6 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD 0x91D7 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD 0x91D8 + +#define GL_FLOAT16_SAMPLER_1D_SHADOW_AMD 0x91D9 +#define GL_FLOAT16_SAMPLER_2D_SHADOW_AMD 0x91DA +#define GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD 0x91DB +#define GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD 0x91DC +#define GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD 0x91DD +#define GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD 0x91DE +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD 0x91DF + +#define GL_FLOAT16_IMAGE_1D_AMD 0x91E0 +#define GL_FLOAT16_IMAGE_2D_AMD 0x91E1 +#define GL_FLOAT16_IMAGE_3D_AMD 0x91E2 +#define GL_FLOAT16_IMAGE_2D_RECT_AMD 0x91E3 +#define GL_FLOAT16_IMAGE_CUBE_AMD 0x91E4 +#define GL_FLOAT16_IMAGE_1D_ARRAY_AMD 0x91E5 +#define GL_FLOAT16_IMAGE_2D_ARRAY_AMD 0x91E6 +#define GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD 0x91E7 +#define GL_FLOAT16_IMAGE_BUFFER_AMD 0x91E8 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD 0x91E9 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD 0x91EA +#endif + #define GL_INT_SAMPLER_1D 0x8DC9 #define GL_INT_SAMPLER_2D 0x8DCA #define GL_INT_SAMPLER_3D 0x8DCB diff --git a/deps/glslang/glslang/glslang/MachineIndependent/glslang.y b/deps/glslang/glslang/glslang/MachineIndependent/glslang.y index 060ffdd6fa..e65483a82e 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/glslang.y +++ b/deps/glslang/glslang/glslang/MachineIndependent/glslang.y @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /** @@ -58,11 +59,14 @@ Jutta Degener, 1995 #include "SymbolTable.h" #include "ParseHelper.h" #include "../Public/ShaderLang.h" +#include "attribute.h" using namespace glslang; %} +%define parse.error verbose + %union { struct { glslang::TSourceLoc loc; @@ -84,6 +88,7 @@ using namespace glslang; TIntermNode* intermNode; glslang::TIntermNodePair nodePair; glslang::TIntermTyped* intermTypedNode; + glslang::TAttributes* attributes; }; union { glslang::TPublicType type; @@ -119,14 +124,28 @@ extern int yylex(YYSTYPE*, TParseContext&); %expect 1 // One shift reduce conflict because of if | else %token ATTRIBUTE VARYING -%token CONST BOOL FLOAT DOUBLE INT UINT INT64_T UINT64_T FLOAT16_T +%token FLOAT16_T FLOAT FLOAT32_T DOUBLE FLOAT64_T +%token CONST BOOL INT UINT INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T %token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT SUBROUTINE -%token BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 I64VEC2 I64VEC3 I64VEC4 UVEC2 UVEC3 UVEC4 U64VEC2 U64VEC3 U64VEC4 VEC2 VEC3 VEC4 +%token BVEC2 BVEC3 BVEC4 +%token IVEC2 IVEC3 IVEC4 +%token UVEC2 UVEC3 UVEC4 +%token I64VEC2 I64VEC3 I64VEC4 +%token U64VEC2 U64VEC3 U64VEC4 +%token I32VEC2 I32VEC3 I32VEC4 +%token U32VEC2 U32VEC3 U32VEC4 +%token I16VEC2 I16VEC3 I16VEC4 +%token U16VEC2 U16VEC3 U16VEC4 +%token I8VEC2 I8VEC3 I8VEC4 +%token U8VEC2 U8VEC3 U8VEC4 +%token VEC2 VEC3 VEC4 %token MAT2 MAT3 MAT4 CENTROID IN OUT INOUT -%token UNIFORM PATCH SAMPLE BUFFER SHARED +%token UNIFORM PATCH SAMPLE BUFFER SHARED NONUNIFORM %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY %token DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4 %token F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4 +%token F32VEC2 F32VEC3 F32VEC4 F32MAT2 F32MAT3 F32MAT4 +%token F64VEC2 F64VEC3 F64VEC4 F64MAT2 F64MAT3 F64MAT4 %token NOPERSPECTIVE FLAT SMOOTH LAYOUT __EXPLICITINTERPAMD %token MAT2X2 MAT2X3 MAT2X4 @@ -138,6 +157,12 @@ extern int yylex(YYSTYPE*, TParseContext&); %token F16MAT2X2 F16MAT2X3 F16MAT2X4 %token F16MAT3X2 F16MAT3X3 F16MAT3X4 %token F16MAT4X2 F16MAT4X3 F16MAT4X4 +%token F32MAT2X2 F32MAT2X3 F32MAT2X4 +%token F32MAT3X2 F32MAT3X3 F32MAT3X4 +%token F32MAT4X2 F32MAT4X3 F32MAT4X4 +%token F64MAT2X2 F64MAT2X3 F64MAT2X4 +%token F64MAT3X2 F64MAT3X3 F64MAT3X4 +%token F64MAT4X2 F64MAT4X3 F64MAT4X4 %token ATOMIC_UINT // combined image/sampler @@ -154,6 +179,12 @@ extern int yylex(YYSTYPE*, TParseContext&); %token SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY %token SAMPLEREXTERNALOES +%token F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE +%token F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY +%token F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY +%token F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW +%token F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW + // pure sampler %token SAMPLER SAMPLERSHADOW @@ -169,8 +200,13 @@ extern int yylex(YYSTYPE*, TParseContext&); %token TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS %token TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY +%token F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE +%token F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY +%token F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY + // input attachments %token SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS +%token F16SUBPASSINPUT F16SUBPASSINPUTMS %token IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D %token UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D @@ -183,10 +219,14 @@ extern int yylex(YYSTYPE*, TParseContext&); %token IMAGE2DMS IIMAGE2DMS UIMAGE2DMS %token IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY +%token F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT +%token F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY +%token F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY + %token STRUCT VOID WHILE %token IDENTIFIER TYPE_NAME -%token FLOATCONSTANT DOUBLECONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT FLOAT16CONSTANT +%token FLOATCONSTANT DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT INT32CONSTANT UINT32CONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT FLOAT16CONSTANT %token LEFT_OP RIGHT_OP %token INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP %token AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN @@ -215,12 +255,12 @@ extern int yylex(YYSTYPE*, TParseContext&); %type translation_unit function_definition %type statement simple_statement %type statement_list switch_statement_list compound_statement -%type declaration_statement selection_statement expression_statement -%type switch_statement case_label +%type declaration_statement selection_statement selection_statement_nonattributed expression_statement +%type switch_statement switch_statement_nonattributed case_label %type declaration external_declaration %type for_init_statement compound_statement_no_new_scope %type selection_rest_statement for_rest_statement -%type iteration_statement jump_statement statement_no_new_scope statement_scoped +%type iteration_statement iteration_statement_nonattributed jump_statement statement_no_new_scope statement_scoped %type single_declaration init_declarator_list %type parameter_declaration parameter_declarator parameter_type_specifier @@ -228,6 +268,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %type array_specifier %type precise_qualifier invariant_qualifier interpolation_qualifier storage_qualifier precision_qualifier %type layout_qualifier layout_qualifier_id_list layout_qualifier_id +%type non_uniform_qualifier %type type_qualifier fully_specified_type type_specifier %type single_type_qualifier @@ -243,6 +284,8 @@ extern int yylex(YYSTYPE*, TParseContext&); %type identifier_list +%type attribute attribute_list single_attribute + %start translation_unit %% @@ -256,6 +299,14 @@ primary_expression : variable_identifier { $$ = $1; } + | INT32CONSTANT { + parseContext.explicitInt32Check($1.loc, "32-bit signed literal"); + $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); + } + | UINT32CONSTANT { + parseContext.explicitInt32Check($1.loc, "32-bit signed literal"); + $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true); + } | INTCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true); } @@ -271,6 +322,14 @@ primary_expression parseContext.int64Check($1.loc, "64-bit unsigned integer literal"); $$ = parseContext.intermediate.addConstantUnion($1.u64, $1.loc, true); } + | INT16CONSTANT { + parseContext.explicitInt16Check($1.loc, "16-bit integer literal"); + $$ = parseContext.intermediate.addConstantUnion((short)$1.i, $1.loc, true); + } + | UINT16CONSTANT { + parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer literal"); + $$ = parseContext.intermediate.addConstantUnion((unsigned short)$1.u, $1.loc, true); + } | FLOATCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true); } @@ -279,10 +338,8 @@ primary_expression $$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true); } | FLOAT16CONSTANT { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float literal"); $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true); -#endif } | BOOLCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); @@ -417,6 +474,11 @@ function_identifier $$.function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } + | non_uniform_qualifier { + // Constructor + $$.intermNode = 0; + $$.function = parseContext.handleConstructorCall($1.loc, $1); + } ; unary_expression @@ -845,6 +907,11 @@ function_header // Add the function as a prototype after parsing it (we do not support recursion) TFunction *function; TType type($1); + + // Potentially rename shader entry point function. No-op most of the time. + parseContext.renameShaderFunction($2.string); + + // Make the function function = new TFunction($2.string, type); $$ = function; } @@ -873,14 +940,16 @@ parameter_declarator parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes); } - parseContext.arrayDimCheck($2.loc, $1.arraySizes, $3.arraySizes); + TType* type = new TType($1); + type->transferArraySizes($3.arraySizes); + type->copyArrayInnerSizes($1.arraySizes); + parseContext.arrayOfArrayVersionCheck($2.loc, type->getArraySizes()); parseContext.arraySizeRequiredCheck($3.loc, *$3.arraySizes); parseContext.reservedErrorCheck($2.loc, *$2.string); - $1.arraySizes = $3.arraySizes; + TParameter param = { $2.string, type }; - TParameter param = { $2.string, new TType($1)}; $$.loc = $2.loc; $$.param = param; } @@ -905,7 +974,7 @@ parameter_declaration $$ = $1; parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFix($1.loc, EvqTemporary, *$$.param.type); + parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); } // @@ -925,7 +994,7 @@ parameter_declaration $$ = $1; parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheckFix($1.loc, EvqTemporary, *$$.param.type); + parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type); parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier()); } ; @@ -1014,7 +1083,7 @@ fully_specified_type } if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1.qualifier)) - $2.arraySizes = 0; + $2.arraySizes = nullptr; parseContext.checkNoShaderLayouts($2.loc, $1.shaderQualifiers); $2.shaderQualifiers.merge($1.shaderQualifiers); @@ -1056,7 +1125,11 @@ interpolation_qualifier } | NOPERSPECTIVE { parseContext.globalCheck($1.loc, "noperspective"); +#ifdef NV_EXTENSIONS + parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); +#else parseContext.requireProfile($1.loc, ~EEsProfile, "noperspective"); +#endif parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "noperspective"); $$.init($1.loc); $$.qualifier.nopersp = true; @@ -1150,6 +1223,9 @@ single_type_qualifier // allow inheritance of storage qualifier from block declaration $$ = $1; } + | non_uniform_qualifier { + $$ = $1; + } ; storage_qualifier @@ -1229,6 +1305,7 @@ storage_qualifier $$.qualifier.storage = EvqBuffer; } | SHARED { + parseContext.globalCheck($1.loc, "shared"); parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); parseContext.profileRequires($1.loc, EEsProfile, 310, 0, "shared"); parseContext.requireStage($1.loc, EShLangCompute, "shared"); @@ -1258,25 +1335,32 @@ storage_qualifier | SUBROUTINE { parseContext.spvRemoved($1.loc, "subroutine"); parseContext.globalCheck($1.loc, "subroutine"); + parseContext.unimplemented($1.loc, "subroutine"); $$.init($1.loc); - $$.qualifier.storage = EvqUniform; } | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN { parseContext.spvRemoved($1.loc, "subroutine"); parseContext.globalCheck($1.loc, "subroutine"); + parseContext.unimplemented($1.loc, "subroutine"); $$.init($1.loc); - $$.qualifier.storage = EvqUniform; - // TODO: 4.0 semantics: subroutines - // 1) make sure each identifier is a type declared earlier with SUBROUTINE - // 2) save all of the identifiers for future comparison with the declared function + } + ; + +non_uniform_qualifier + : NONUNIFORM { + $$.init($1.loc); + $$.qualifier.nonUniform = true; } ; type_name_list - : TYPE_NAME { - // TODO: 4.0 functionality: subroutine type to list + : IDENTIFIER { + // TODO } - | type_name_list COMMA TYPE_NAME { + | type_name_list COMMA IDENTIFIER { + // TODO: 4.0 semantics: subroutines + // 1) make sure each identifier is a type declared earlier with SUBROUTINE + // 2) save all of the identifiers for future comparison with the declared function } ; @@ -1286,7 +1370,7 @@ type_specifier $$.qualifier.precision = parseContext.getDefaultPrecision($$); } | type_specifier_nonarray array_specifier { - parseContext.arrayDimCheck($2.loc, $2.arraySizes, 0); + parseContext.arrayOfArrayVersionCheck($2.loc, $2.arraySizes); $$ = $1; $$.qualifier.precision = parseContext.getDefaultPrecision($$); $$.arraySizes = $2.arraySizes; @@ -1335,11 +1419,19 @@ type_specifier_nonarray $$.basicType = EbtDouble; } | FLOAT16_T { -#ifdef AMD_EXTENSIONS - parseContext.float16Check($1.loc, "half float", parseContext.symbolTable.atBuiltInLevel()); + parseContext.float16Check($1.loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; -#endif + } + | FLOAT32_T { + parseContext.explicitFloat32Check($1.loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + } + | FLOAT64_T { + parseContext.explicitFloat64Check($1.loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; } | INT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1350,6 +1442,36 @@ type_specifier_nonarray $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtUint; } + | INT8_T { + parseContext.explicitInt8Check($1.loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + } + | UINT8_T { + parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint8; + } + | INT16_T { + parseContext.explicitInt16Check($1.loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt16; + } + | UINT16_T { + parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint16; + } + | INT32_T { + parseContext.explicitInt32Check($1.loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt; + } + | UINT32_T { + parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint; + } | INT64_T { parseContext.int64Check($1.loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1398,28 +1520,58 @@ type_specifier_nonarray $$.setVector(4); } | F16VEC2 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(2); -#endif } | F16VEC3 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(3); -#endif } | F16VEC4 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setVector(4); -#endif + } + | F32VEC2 { + parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setVector(2); + } + | F32VEC3 { + parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setVector(3); + } + | F32VEC4 { + parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setVector(4); + } + | F64VEC2 { + parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setVector(2); + } + | F64VEC3 { + parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setVector(3); + } + | F64VEC4 { + parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setVector(4); } | BVEC2 { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1451,6 +1603,60 @@ type_specifier_nonarray $$.basicType = EbtInt; $$.setVector(4); } + | I8VEC2 { + parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + $$.setVector(2); + } + | I8VEC3 { + parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + $$.setVector(3); + } + | I8VEC4 { + parseContext.explicitInt8Check($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + $$.setVector(4); + } + | I16VEC2 { + parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt16; + $$.setVector(2); + } + | I16VEC3 { + parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt16; + $$.setVector(3); + } + | I16VEC4 { + parseContext.explicitInt16Check($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt16; + $$.setVector(4); + } + | I32VEC2 { + parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt; + $$.setVector(2); + } + | I32VEC3 { + parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt; + $$.setVector(3); + } + | I32VEC4 { + parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt; + $$.setVector(4); + } | I64VEC2 { parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1487,6 +1693,60 @@ type_specifier_nonarray $$.basicType = EbtUint; $$.setVector(4); } + | U8VEC2 { + parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint8; + $$.setVector(2); + } + | U8VEC3 { + parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtInt8; + $$.setVector(3); + } + | U8VEC4 { + parseContext.explicitInt8Check($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint8; + $$.setVector(4); + } + | U16VEC2 { + parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint16; + $$.setVector(2); + } + | U16VEC3 { + parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint16; + $$.setVector(3); + } + | U16VEC4 { + parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint16; + $$.setVector(4); + } + | U32VEC2 { + parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint; + $$.setVector(2); + } + | U32VEC3 { + parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint; + $$.setVector(3); + } + | U32VEC4 { + parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtUint; + $$.setVector(4); + } | U64VEC2 { parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -1638,100 +1898,220 @@ type_specifier_nonarray $$.setMatrix(4, 4); } | F16MAT2 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 2); -#endif } | F16MAT3 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 3); -#endif } | F16MAT4 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 4); -#endif } | F16MAT2X2 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 2); -#endif } | F16MAT2X3 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 3); -#endif } | F16MAT2X4 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(2, 4); -#endif } | F16MAT3X2 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 2); -#endif } | F16MAT3X3 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 3); -#endif } | F16MAT3X4 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(3, 4); -#endif } | F16MAT4X2 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 2); -#endif } | F16MAT4X3 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 3); -#endif } | F16MAT4X4 { -#ifdef AMD_EXTENSIONS parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtFloat16; $$.setMatrix(4, 4); -#endif + } + | F32MAT2 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(2, 2); + } + | F32MAT3 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(3, 3); + } + | F32MAT4 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(4, 4); + } + | F32MAT2X2 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(2, 2); + } + | F32MAT2X3 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(2, 3); + } + | F32MAT2X4 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(2, 4); + } + | F32MAT3X2 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(3, 2); + } + | F32MAT3X3 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(3, 3); + } + | F32MAT3X4 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(3, 4); + } + | F32MAT4X2 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(4, 2); + } + | F32MAT4X3 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(4, 3); + } + | F32MAT4X4 { + parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat; + $$.setMatrix(4, 4); + } + | F64MAT2 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(2, 2); + } + | F64MAT3 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(3, 3); + } + | F64MAT4 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(4, 4); + } + | F64MAT2X2 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(2, 2); + } + | F64MAT2X3 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(2, 3); + } + | F64MAT2X4 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(2, 4); + } + | F64MAT3X2 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(3, 2); + } + | F64MAT3X3 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(3, 3); + } + | F64MAT3X4 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(3, 4); + } + | F64MAT4X2 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(4, 2); + } + | F64MAT4X3 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(4, 3); + } + | F64MAT4X4 { + parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtDouble; + $$.setMatrix(4, 4); } | ATOMIC_UINT { parseContext.vulkanRemoved($1.loc, "atomic counter types"); @@ -1803,6 +2183,110 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, EsdCube, true, true); } + | F16SAMPLER1D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd1D); +#endif + } + | F16SAMPLER2D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd2D); +#endif + } + | F16SAMPLER3D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd3D); +#endif + } + | F16SAMPLERCUBE { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, EsdCube); +#endif + } + | F16SAMPLER1DSHADOW { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd1D, false, true); +#endif + } + | F16SAMPLER2DSHADOW { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd2D, false, true); +#endif + } + | F16SAMPLERCUBESHADOW { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, EsdCube, false, true); +#endif + } + | F16SAMPLER1DARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd1D, true); +#endif + } + | F16SAMPLER2DARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd2D, true); +#endif + } + | F16SAMPLER1DARRAYSHADOW { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd1D, true, true); +#endif + } + | F16SAMPLER2DARRAYSHADOW { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd2D, true, true); +#endif + } + | F16SAMPLERCUBEARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, EsdCube, true); +#endif + } + | F16SAMPLERCUBEARRAYSHADOW { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, EsdCube, true, true); +#endif + } | ISAMPLER1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -1883,6 +2367,22 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, EsdRect, false, true); } + | F16SAMPLER2DRECT { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, EsdRect); +#endif + } + | F16SAMPLER2DRECTSHADOW { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, EsdRect, false, true); +#endif + } | ISAMPLER2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -1898,6 +2398,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, EsdBuffer); } + | F16SAMPLERBUFFER { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, EsdBuffer); +#endif + } | ISAMPLERBUFFER { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -1913,6 +2421,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, Esd2D, false, false, true); } + | F16SAMPLER2DMS { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd2D, false, false, true); +#endif + } | ISAMPLER2DMS { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -1928,6 +2444,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.set(EbtFloat, Esd2D, true, false, true); } + | F16SAMPLER2DMSARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.set(EbtFloat16, Esd2D, true, false, true); +#endif + } | ISAMPLER2DMSARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -1953,36 +2477,92 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd1D); } + | F16TEXTURE1D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, Esd1D); +#endif + } | TEXTURE2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D); } + | F16TEXTURE2D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, Esd2D); +#endif + } | TEXTURE3D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd3D); } + | F16TEXTURE3D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, Esd3D); +#endif + } | TEXTURECUBE { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdCube); } + | F16TEXTURECUBE { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, EsdCube); +#endif + } | TEXTURE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd1D, true); } + | F16TEXTURE1DARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, Esd1D, true); +#endif + } | TEXTURE2DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D, true); } + | F16TEXTURE2DARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, Esd2D, true); +#endif + } | TEXTURECUBEARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdCube, true); } + | F16TEXTURECUBEARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, EsdCube, true); +#endif + } | ITEXTURE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2058,6 +2638,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdRect); } + | F16TEXTURE2DRECT { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, EsdRect); +#endif + } | ITEXTURE2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2073,6 +2661,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, EsdBuffer); } + | F16TEXTUREBUFFER { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, EsdBuffer); +#endif + } | ITEXTUREBUFFER { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2088,6 +2684,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true); } + | F16TEXTURE2DMS { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true); +#endif + } | ITEXTURE2DMS { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2103,6 +2707,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true); } + | F16TEXTURE2DMSARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true); +#endif + } | ITEXTURE2DMSARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2118,6 +2730,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd1D); } + | F16IMAGE1D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, Esd1D); +#endif + } | IIMAGE1D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2133,6 +2753,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D); } + | F16IMAGE2D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, Esd2D); +#endif + } | IIMAGE2D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2148,6 +2776,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd3D); } + | F16IMAGE3D { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, Esd3D); +#endif + } | IIMAGE3D { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2163,6 +2799,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdRect); } + | F16IMAGE2DRECT { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, EsdRect); +#endif + } | IIMAGE2DRECT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2178,6 +2822,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdCube); } + | F16IMAGECUBE { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, EsdCube); +#endif + } | IIMAGECUBE { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2193,6 +2845,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdBuffer); } + | F16IMAGEBUFFER { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, EsdBuffer); +#endif + } | IIMAGEBUFFER { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2208,6 +2868,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd1D, true); } + | F16IMAGE1DARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, Esd1D, true); +#endif + } | IIMAGE1DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2223,6 +2891,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D, true); } + | F16IMAGE2DARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, Esd2D, true); +#endif + } | IIMAGE2DARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2238,6 +2914,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, EsdCube, true); } + | F16IMAGECUBEARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, EsdCube, true); +#endif + } | IIMAGECUBEARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2253,6 +2937,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D, false, false, true); } + | F16IMAGE2DMS { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, Esd2D, false, false, true); +#endif + } | IIMAGE2DMS { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2268,6 +2960,14 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setImage(EbtFloat, Esd2D, true, false, true); } + | F16IMAGE2DMSARRAY { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setImage(EbtFloat16, Esd2D, true, false, true); +#endif + } | IIMAGE2DMSARRAY { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtSampler; @@ -2296,6 +2996,24 @@ type_specifier_nonarray $$.basicType = EbtSampler; $$.sampler.setSubpass(EbtFloat, true); } + | F16SUBPASSINPUT { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); + parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setSubpass(EbtFloat16); +#endif + } + | F16SUBPASSINPUTMS { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck($1.loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); + parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtSampler; + $$.sampler.setSubpass(EbtFloat16, true); +#endif + } | ISUBPASSINPUT { parseContext.requireStage($1.loc, EShLangFragment, "subpass input"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); @@ -2410,12 +3128,15 @@ struct_declaration parseContext.precisionQualifierCheck($1.loc, $1.basicType, $1.qualifier); for (unsigned int i = 0; i < $$->size(); ++i) { - parseContext.arrayDimCheck($1.loc, (*$$)[i].type, $1.arraySizes); - (*$$)[i].type->mergeType($1); + TType type($1); + type.setFieldName((*$$)[i].type->getFieldName()); + type.transferArraySizes((*$$)[i].type->getArraySizes()); + type.copyArrayInnerSizes($1.arraySizes); + parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes()); + (*$$)[i].type->shallowCopy(type); } } | type_qualifier type_specifier struct_declarator_list SEMICOLON { - parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); if ($2.arraySizes) { parseContext.profileRequires($2.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires($2.loc, EEsProfile, 300, 0, "arrayed type"); @@ -2425,14 +3146,18 @@ struct_declaration $$ = $3; - parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); + parseContext.memberQualifierCheck($1); parseContext.voidErrorCheck($2.loc, (*$3)[0].type->getFieldName(), $2.basicType); parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true); parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier); for (unsigned int i = 0; i < $$->size(); ++i) { - parseContext.arrayDimCheck($1.loc, (*$$)[i].type, $2.arraySizes); - (*$$)[i].type->mergeType($2); + TType type($2); + type.setFieldName((*$$)[i].type->getFieldName()); + type.transferArraySizes((*$$)[i].type->getArraySizes()); + type.copyArrayInnerSizes($2.arraySizes); + parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes()); + (*$$)[i].type->shallowCopy(type); } } ; @@ -2454,12 +3179,12 @@ struct_declarator $$.type->setFieldName(*$1.string); } | IDENTIFIER array_specifier { - parseContext.arrayDimCheck($1.loc, $2.arraySizes, 0); + parseContext.arrayOfArrayVersionCheck($1.loc, $2.arraySizes); $$.type = new TType(EbtVoid); $$.loc = $1.loc; $$.type->setFieldName(*$1.string); - $$.type->newArraySizes(*$2.arraySizes); + $$.type->transferArraySizes($2.arraySizes); } ; @@ -2590,6 +3315,15 @@ expression_statement ; selection_statement + : selection_statement_nonattributed { + $$ = $1; + } + | attribute selection_statement_nonattributed { + parseContext.handleSelectionAttributes(*$1, $2); + $$ = $2; + } + +selection_statement_nonattributed : IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement { parseContext.boolCheck($1.loc, $3); $$ = parseContext.intermediate.addSelection($3, $5, $1.loc); @@ -2626,6 +3360,15 @@ condition ; switch_statement + : switch_statement_nonattributed { + $$ = $1; + } + | attribute switch_statement_nonattributed { + parseContext.handleSwitchAttributes(*$1, $2); + $$ = $2; + } + +switch_statement_nonattributed : SWITCH LEFT_PAREN expression RIGHT_PAREN { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -2679,6 +3422,15 @@ case_label ; iteration_statement + : iteration_statement_nonattributed { + $$ = $1; + } + | attribute iteration_statement_nonattributed { + parseContext.handleLoopAttributes(*$1, $2); + $$ = $2; + } + +iteration_statement_nonattributed : WHILE LEFT_PAREN { if (! parseContext.limits.whileLoops) parseContext.error($1.loc, "while loops not available", "limitation", ""); @@ -2775,7 +3527,7 @@ jump_statement if (parseContext.currentFunctionType->getBasicType() != EbtVoid) parseContext.error($1.loc, "non-void function must return a value", "return", ""); if (parseContext.inMain) - parseContext.postMainReturn = true; + parseContext.postEntryPointReturn = true; } | RETURN expression SEMICOLON { $$ = parseContext.handleReturnValue($1.loc, $2); @@ -2794,8 +3546,10 @@ translation_unit parseContext.intermediate.setTreeRoot($$); } | translation_unit external_declaration { - $$ = parseContext.intermediate.growAggregate($1, $2); - parseContext.intermediate.setTreeRoot($$); + if ($2 != nullptr) { + $$ = parseContext.intermediate.growAggregate($1, $2); + parseContext.intermediate.setTreeRoot($$); + } } ; @@ -2806,6 +3560,11 @@ external_declaration | declaration { $$ = $1; } + | SEMICOLON { + parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon"); + parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); + $$ = nullptr; + } ; function_definition @@ -2826,8 +3585,30 @@ function_definition // information. This information can be queried from the parse tree $$->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); $$->getAsAggregate()->setDebug(parseContext.contextPragma.debug); - $$->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); + $$->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } ; +attribute + : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET { + $$ = $3; + parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); + } + +attribute_list + : single_attribute { + $$ = $1; + } + | attribute_list COMMA single_attribute { + $$ = parseContext.mergeAttributes($1, $3); + } + +single_attribute + : IDENTIFIER { + $$ = parseContext.makeAttributes(*$1.string); + } + | IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN { + $$ = parseContext.makeAttributes(*$1.string, $3); + } + %% diff --git a/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp b/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp index 3507c04e62..38672d67d3 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.7" +#define YYBISON_VERSION "3.0" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,8 +62,7 @@ /* Copy the first part of user declarations. */ -/* Line 371 of yacc.c */ -#line 41 "glslang.y" +#line 42 "MachineIndependent/glslang.y" /* yacc.c:339 */ /* Based on: @@ -84,12 +83,12 @@ Jutta Degener, 1995 #include "SymbolTable.h" #include "ParseHelper.h" #include "../Public/ShaderLang.h" +#include "attribute.h" using namespace glslang; -/* Line 371 of yacc.c */ -#line 93 "glslang_tab.cpp" +#line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus @@ -104,14 +103,14 @@ using namespace glslang; # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else -# define YYERROR_VERBOSE 0 +# define YYERROR_VERBOSE 1 #endif /* In a future release of Bison, this section will be replaced by #include "glslang_tab.cpp.h". */ -#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -/* Enabling traces. */ +#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -119,306 +118,408 @@ using namespace glslang; extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - FLOAT16_T = 268, - BREAK = 269, - CONTINUE = 270, - DO = 271, - ELSE = 272, - FOR = 273, - IF = 274, - DISCARD = 275, - RETURN = 276, - SWITCH = 277, - CASE = 278, - DEFAULT = 279, - SUBROUTINE = 280, - BVEC2 = 281, - BVEC3 = 282, - BVEC4 = 283, - IVEC2 = 284, - IVEC3 = 285, - IVEC4 = 286, - I64VEC2 = 287, - I64VEC3 = 288, - I64VEC4 = 289, - UVEC2 = 290, - UVEC3 = 291, - UVEC4 = 292, - U64VEC2 = 293, - U64VEC3 = 294, - U64VEC4 = 295, - VEC2 = 296, - VEC3 = 297, - VEC4 = 298, - MAT2 = 299, - MAT3 = 300, - MAT4 = 301, - CENTROID = 302, - IN = 303, - OUT = 304, - INOUT = 305, - UNIFORM = 306, - PATCH = 307, - SAMPLE = 308, - BUFFER = 309, - SHARED = 310, - COHERENT = 311, - VOLATILE = 312, - RESTRICT = 313, - READONLY = 314, - WRITEONLY = 315, - DVEC2 = 316, - DVEC3 = 317, - DVEC4 = 318, - DMAT2 = 319, - DMAT3 = 320, - DMAT4 = 321, - F16VEC2 = 322, - F16VEC3 = 323, - F16VEC4 = 324, - F16MAT2 = 325, - F16MAT3 = 326, - F16MAT4 = 327, - NOPERSPECTIVE = 328, - FLAT = 329, - SMOOTH = 330, - LAYOUT = 331, - __EXPLICITINTERPAMD = 332, - MAT2X2 = 333, - MAT2X3 = 334, - MAT2X4 = 335, - MAT3X2 = 336, - MAT3X3 = 337, - MAT3X4 = 338, - MAT4X2 = 339, - MAT4X3 = 340, - MAT4X4 = 341, - DMAT2X2 = 342, - DMAT2X3 = 343, - DMAT2X4 = 344, - DMAT3X2 = 345, - DMAT3X3 = 346, - DMAT3X4 = 347, - DMAT4X2 = 348, - DMAT4X3 = 349, - DMAT4X4 = 350, - F16MAT2X2 = 351, - F16MAT2X3 = 352, - F16MAT2X4 = 353, - F16MAT3X2 = 354, - F16MAT3X3 = 355, - F16MAT3X4 = 356, - F16MAT4X2 = 357, - F16MAT4X3 = 358, - F16MAT4X4 = 359, - ATOMIC_UINT = 360, - SAMPLER1D = 361, - SAMPLER2D = 362, - SAMPLER3D = 363, - SAMPLERCUBE = 364, - SAMPLER1DSHADOW = 365, - SAMPLER2DSHADOW = 366, - SAMPLERCUBESHADOW = 367, - SAMPLER1DARRAY = 368, - SAMPLER2DARRAY = 369, - SAMPLER1DARRAYSHADOW = 370, - SAMPLER2DARRAYSHADOW = 371, - ISAMPLER1D = 372, - ISAMPLER2D = 373, - ISAMPLER3D = 374, - ISAMPLERCUBE = 375, - ISAMPLER1DARRAY = 376, - ISAMPLER2DARRAY = 377, - USAMPLER1D = 378, - USAMPLER2D = 379, - USAMPLER3D = 380, - USAMPLERCUBE = 381, - USAMPLER1DARRAY = 382, - USAMPLER2DARRAY = 383, - SAMPLER2DRECT = 384, - SAMPLER2DRECTSHADOW = 385, - ISAMPLER2DRECT = 386, - USAMPLER2DRECT = 387, - SAMPLERBUFFER = 388, - ISAMPLERBUFFER = 389, - USAMPLERBUFFER = 390, - SAMPLERCUBEARRAY = 391, - SAMPLERCUBEARRAYSHADOW = 392, - ISAMPLERCUBEARRAY = 393, - USAMPLERCUBEARRAY = 394, - SAMPLER2DMS = 395, - ISAMPLER2DMS = 396, - USAMPLER2DMS = 397, - SAMPLER2DMSARRAY = 398, - ISAMPLER2DMSARRAY = 399, - USAMPLER2DMSARRAY = 400, - SAMPLEREXTERNALOES = 401, - SAMPLER = 402, - SAMPLERSHADOW = 403, - TEXTURE1D = 404, - TEXTURE2D = 405, - TEXTURE3D = 406, - TEXTURECUBE = 407, - TEXTURE1DARRAY = 408, - TEXTURE2DARRAY = 409, - ITEXTURE1D = 410, - ITEXTURE2D = 411, - ITEXTURE3D = 412, - ITEXTURECUBE = 413, - ITEXTURE1DARRAY = 414, - ITEXTURE2DARRAY = 415, - UTEXTURE1D = 416, - UTEXTURE2D = 417, - UTEXTURE3D = 418, - UTEXTURECUBE = 419, - UTEXTURE1DARRAY = 420, - UTEXTURE2DARRAY = 421, - TEXTURE2DRECT = 422, - ITEXTURE2DRECT = 423, - UTEXTURE2DRECT = 424, - TEXTUREBUFFER = 425, - ITEXTUREBUFFER = 426, - UTEXTUREBUFFER = 427, - TEXTURECUBEARRAY = 428, - ITEXTURECUBEARRAY = 429, - UTEXTURECUBEARRAY = 430, - TEXTURE2DMS = 431, - ITEXTURE2DMS = 432, - UTEXTURE2DMS = 433, - TEXTURE2DMSARRAY = 434, - ITEXTURE2DMSARRAY = 435, - UTEXTURE2DMSARRAY = 436, - SUBPASSINPUT = 437, - SUBPASSINPUTMS = 438, - ISUBPASSINPUT = 439, - ISUBPASSINPUTMS = 440, - USUBPASSINPUT = 441, - USUBPASSINPUTMS = 442, - IMAGE1D = 443, - IIMAGE1D = 444, - UIMAGE1D = 445, - IMAGE2D = 446, - IIMAGE2D = 447, - UIMAGE2D = 448, - IMAGE3D = 449, - IIMAGE3D = 450, - UIMAGE3D = 451, - IMAGE2DRECT = 452, - IIMAGE2DRECT = 453, - UIMAGE2DRECT = 454, - IMAGECUBE = 455, - IIMAGECUBE = 456, - UIMAGECUBE = 457, - IMAGEBUFFER = 458, - IIMAGEBUFFER = 459, - UIMAGEBUFFER = 460, - IMAGE1DARRAY = 461, - IIMAGE1DARRAY = 462, - UIMAGE1DARRAY = 463, - IMAGE2DARRAY = 464, - IIMAGE2DARRAY = 465, - UIMAGE2DARRAY = 466, - IMAGECUBEARRAY = 467, - IIMAGECUBEARRAY = 468, - UIMAGECUBEARRAY = 469, - IMAGE2DMS = 470, - IIMAGE2DMS = 471, - UIMAGE2DMS = 472, - IMAGE2DMSARRAY = 473, - IIMAGE2DMSARRAY = 474, - UIMAGE2DMSARRAY = 475, - STRUCT = 476, - VOID = 477, - WHILE = 478, - IDENTIFIER = 479, - TYPE_NAME = 480, - FLOATCONSTANT = 481, - DOUBLECONSTANT = 482, - INTCONSTANT = 483, - UINTCONSTANT = 484, - INT64CONSTANT = 485, - UINT64CONSTANT = 486, - BOOLCONSTANT = 487, - FLOAT16CONSTANT = 488, - LEFT_OP = 489, - RIGHT_OP = 490, - INC_OP = 491, - DEC_OP = 492, - LE_OP = 493, - GE_OP = 494, - EQ_OP = 495, - NE_OP = 496, - AND_OP = 497, - OR_OP = 498, - XOR_OP = 499, - MUL_ASSIGN = 500, - DIV_ASSIGN = 501, - ADD_ASSIGN = 502, - MOD_ASSIGN = 503, - LEFT_ASSIGN = 504, - RIGHT_ASSIGN = 505, - AND_ASSIGN = 506, - XOR_ASSIGN = 507, - OR_ASSIGN = 508, - SUB_ASSIGN = 509, - LEFT_PAREN = 510, - RIGHT_PAREN = 511, - LEFT_BRACKET = 512, - RIGHT_BRACKET = 513, - LEFT_BRACE = 514, - RIGHT_BRACE = 515, - DOT = 516, - COMMA = 517, - COLON = 518, - EQUAL = 519, - SEMICOLON = 520, - BANG = 521, - DASH = 522, - TILDE = 523, - PLUS = 524, - STAR = 525, - SLASH = 526, - PERCENT = 527, - LEFT_ANGLE = 528, - RIGHT_ANGLE = 529, - VERTICAL_BAR = 530, - CARET = 531, - AMPERSAND = 532, - QUESTION = 533, - INVARIANT = 534, - PRECISE = 535, - HIGH_PRECISION = 536, - MEDIUM_PRECISION = 537, - LOW_PRECISION = 538, - PRECISION = 539, - PACKED = 540, - RESOURCE = 541, - SUPERP = 542 - }; + enum yytokentype + { + ATTRIBUTE = 258, + VARYING = 259, + FLOAT16_T = 260, + FLOAT = 261, + FLOAT32_T = 262, + DOUBLE = 263, + FLOAT64_T = 264, + CONST = 265, + BOOL = 266, + INT = 267, + UINT = 268, + INT64_T = 269, + UINT64_T = 270, + INT32_T = 271, + UINT32_T = 272, + INT16_T = 273, + UINT16_T = 274, + INT8_T = 275, + UINT8_T = 276, + BREAK = 277, + CONTINUE = 278, + DO = 279, + ELSE = 280, + FOR = 281, + IF = 282, + DISCARD = 283, + RETURN = 284, + SWITCH = 285, + CASE = 286, + DEFAULT = 287, + SUBROUTINE = 288, + BVEC2 = 289, + BVEC3 = 290, + BVEC4 = 291, + IVEC2 = 292, + IVEC3 = 293, + IVEC4 = 294, + UVEC2 = 295, + UVEC3 = 296, + UVEC4 = 297, + I64VEC2 = 298, + I64VEC3 = 299, + I64VEC4 = 300, + U64VEC2 = 301, + U64VEC3 = 302, + U64VEC4 = 303, + I32VEC2 = 304, + I32VEC3 = 305, + I32VEC4 = 306, + U32VEC2 = 307, + U32VEC3 = 308, + U32VEC4 = 309, + I16VEC2 = 310, + I16VEC3 = 311, + I16VEC4 = 312, + U16VEC2 = 313, + U16VEC3 = 314, + U16VEC4 = 315, + I8VEC2 = 316, + I8VEC3 = 317, + I8VEC4 = 318, + U8VEC2 = 319, + U8VEC3 = 320, + U8VEC4 = 321, + VEC2 = 322, + VEC3 = 323, + VEC4 = 324, + MAT2 = 325, + MAT3 = 326, + MAT4 = 327, + CENTROID = 328, + IN = 329, + OUT = 330, + INOUT = 331, + UNIFORM = 332, + PATCH = 333, + SAMPLE = 334, + BUFFER = 335, + SHARED = 336, + NONUNIFORM = 337, + COHERENT = 338, + VOLATILE = 339, + RESTRICT = 340, + READONLY = 341, + WRITEONLY = 342, + DVEC2 = 343, + DVEC3 = 344, + DVEC4 = 345, + DMAT2 = 346, + DMAT3 = 347, + DMAT4 = 348, + F16VEC2 = 349, + F16VEC3 = 350, + F16VEC4 = 351, + F16MAT2 = 352, + F16MAT3 = 353, + F16MAT4 = 354, + F32VEC2 = 355, + F32VEC3 = 356, + F32VEC4 = 357, + F32MAT2 = 358, + F32MAT3 = 359, + F32MAT4 = 360, + F64VEC2 = 361, + F64VEC3 = 362, + F64VEC4 = 363, + F64MAT2 = 364, + F64MAT3 = 365, + F64MAT4 = 366, + NOPERSPECTIVE = 367, + FLAT = 368, + SMOOTH = 369, + LAYOUT = 370, + __EXPLICITINTERPAMD = 371, + MAT2X2 = 372, + MAT2X3 = 373, + MAT2X4 = 374, + MAT3X2 = 375, + MAT3X3 = 376, + MAT3X4 = 377, + MAT4X2 = 378, + MAT4X3 = 379, + MAT4X4 = 380, + DMAT2X2 = 381, + DMAT2X3 = 382, + DMAT2X4 = 383, + DMAT3X2 = 384, + DMAT3X3 = 385, + DMAT3X4 = 386, + DMAT4X2 = 387, + DMAT4X3 = 388, + DMAT4X4 = 389, + F16MAT2X2 = 390, + F16MAT2X3 = 391, + F16MAT2X4 = 392, + F16MAT3X2 = 393, + F16MAT3X3 = 394, + F16MAT3X4 = 395, + F16MAT4X2 = 396, + F16MAT4X3 = 397, + F16MAT4X4 = 398, + F32MAT2X2 = 399, + F32MAT2X3 = 400, + F32MAT2X4 = 401, + F32MAT3X2 = 402, + F32MAT3X3 = 403, + F32MAT3X4 = 404, + F32MAT4X2 = 405, + F32MAT4X3 = 406, + F32MAT4X4 = 407, + F64MAT2X2 = 408, + F64MAT2X3 = 409, + F64MAT2X4 = 410, + F64MAT3X2 = 411, + F64MAT3X3 = 412, + F64MAT3X4 = 413, + F64MAT4X2 = 414, + F64MAT4X3 = 415, + F64MAT4X4 = 416, + ATOMIC_UINT = 417, + SAMPLER1D = 418, + SAMPLER2D = 419, + SAMPLER3D = 420, + SAMPLERCUBE = 421, + SAMPLER1DSHADOW = 422, + SAMPLER2DSHADOW = 423, + SAMPLERCUBESHADOW = 424, + SAMPLER1DARRAY = 425, + SAMPLER2DARRAY = 426, + SAMPLER1DARRAYSHADOW = 427, + SAMPLER2DARRAYSHADOW = 428, + ISAMPLER1D = 429, + ISAMPLER2D = 430, + ISAMPLER3D = 431, + ISAMPLERCUBE = 432, + ISAMPLER1DARRAY = 433, + ISAMPLER2DARRAY = 434, + USAMPLER1D = 435, + USAMPLER2D = 436, + USAMPLER3D = 437, + USAMPLERCUBE = 438, + USAMPLER1DARRAY = 439, + USAMPLER2DARRAY = 440, + SAMPLER2DRECT = 441, + SAMPLER2DRECTSHADOW = 442, + ISAMPLER2DRECT = 443, + USAMPLER2DRECT = 444, + SAMPLERBUFFER = 445, + ISAMPLERBUFFER = 446, + USAMPLERBUFFER = 447, + SAMPLERCUBEARRAY = 448, + SAMPLERCUBEARRAYSHADOW = 449, + ISAMPLERCUBEARRAY = 450, + USAMPLERCUBEARRAY = 451, + SAMPLER2DMS = 452, + ISAMPLER2DMS = 453, + USAMPLER2DMS = 454, + SAMPLER2DMSARRAY = 455, + ISAMPLER2DMSARRAY = 456, + USAMPLER2DMSARRAY = 457, + SAMPLEREXTERNALOES = 458, + F16SAMPLER1D = 459, + F16SAMPLER2D = 460, + F16SAMPLER3D = 461, + F16SAMPLER2DRECT = 462, + F16SAMPLERCUBE = 463, + F16SAMPLER1DARRAY = 464, + F16SAMPLER2DARRAY = 465, + F16SAMPLERCUBEARRAY = 466, + F16SAMPLERBUFFER = 467, + F16SAMPLER2DMS = 468, + F16SAMPLER2DMSARRAY = 469, + F16SAMPLER1DSHADOW = 470, + F16SAMPLER2DSHADOW = 471, + F16SAMPLER1DARRAYSHADOW = 472, + F16SAMPLER2DARRAYSHADOW = 473, + F16SAMPLER2DRECTSHADOW = 474, + F16SAMPLERCUBESHADOW = 475, + F16SAMPLERCUBEARRAYSHADOW = 476, + SAMPLER = 477, + SAMPLERSHADOW = 478, + TEXTURE1D = 479, + TEXTURE2D = 480, + TEXTURE3D = 481, + TEXTURECUBE = 482, + TEXTURE1DARRAY = 483, + TEXTURE2DARRAY = 484, + ITEXTURE1D = 485, + ITEXTURE2D = 486, + ITEXTURE3D = 487, + ITEXTURECUBE = 488, + ITEXTURE1DARRAY = 489, + ITEXTURE2DARRAY = 490, + UTEXTURE1D = 491, + UTEXTURE2D = 492, + UTEXTURE3D = 493, + UTEXTURECUBE = 494, + UTEXTURE1DARRAY = 495, + UTEXTURE2DARRAY = 496, + TEXTURE2DRECT = 497, + ITEXTURE2DRECT = 498, + UTEXTURE2DRECT = 499, + TEXTUREBUFFER = 500, + ITEXTUREBUFFER = 501, + UTEXTUREBUFFER = 502, + TEXTURECUBEARRAY = 503, + ITEXTURECUBEARRAY = 504, + UTEXTURECUBEARRAY = 505, + TEXTURE2DMS = 506, + ITEXTURE2DMS = 507, + UTEXTURE2DMS = 508, + TEXTURE2DMSARRAY = 509, + ITEXTURE2DMSARRAY = 510, + UTEXTURE2DMSARRAY = 511, + F16TEXTURE1D = 512, + F16TEXTURE2D = 513, + F16TEXTURE3D = 514, + F16TEXTURE2DRECT = 515, + F16TEXTURECUBE = 516, + F16TEXTURE1DARRAY = 517, + F16TEXTURE2DARRAY = 518, + F16TEXTURECUBEARRAY = 519, + F16TEXTUREBUFFER = 520, + F16TEXTURE2DMS = 521, + F16TEXTURE2DMSARRAY = 522, + SUBPASSINPUT = 523, + SUBPASSINPUTMS = 524, + ISUBPASSINPUT = 525, + ISUBPASSINPUTMS = 526, + USUBPASSINPUT = 527, + USUBPASSINPUTMS = 528, + F16SUBPASSINPUT = 529, + F16SUBPASSINPUTMS = 530, + IMAGE1D = 531, + IIMAGE1D = 532, + UIMAGE1D = 533, + IMAGE2D = 534, + IIMAGE2D = 535, + UIMAGE2D = 536, + IMAGE3D = 537, + IIMAGE3D = 538, + UIMAGE3D = 539, + IMAGE2DRECT = 540, + IIMAGE2DRECT = 541, + UIMAGE2DRECT = 542, + IMAGECUBE = 543, + IIMAGECUBE = 544, + UIMAGECUBE = 545, + IMAGEBUFFER = 546, + IIMAGEBUFFER = 547, + UIMAGEBUFFER = 548, + IMAGE1DARRAY = 549, + IIMAGE1DARRAY = 550, + UIMAGE1DARRAY = 551, + IMAGE2DARRAY = 552, + IIMAGE2DARRAY = 553, + UIMAGE2DARRAY = 554, + IMAGECUBEARRAY = 555, + IIMAGECUBEARRAY = 556, + UIMAGECUBEARRAY = 557, + IMAGE2DMS = 558, + IIMAGE2DMS = 559, + UIMAGE2DMS = 560, + IMAGE2DMSARRAY = 561, + IIMAGE2DMSARRAY = 562, + UIMAGE2DMSARRAY = 563, + F16IMAGE1D = 564, + F16IMAGE2D = 565, + F16IMAGE3D = 566, + F16IMAGE2DRECT = 567, + F16IMAGECUBE = 568, + F16IMAGE1DARRAY = 569, + F16IMAGE2DARRAY = 570, + F16IMAGECUBEARRAY = 571, + F16IMAGEBUFFER = 572, + F16IMAGE2DMS = 573, + F16IMAGE2DMSARRAY = 574, + STRUCT = 575, + VOID = 576, + WHILE = 577, + IDENTIFIER = 578, + TYPE_NAME = 579, + FLOATCONSTANT = 580, + DOUBLECONSTANT = 581, + INT16CONSTANT = 582, + UINT16CONSTANT = 583, + INT32CONSTANT = 584, + UINT32CONSTANT = 585, + INTCONSTANT = 586, + UINTCONSTANT = 587, + INT64CONSTANT = 588, + UINT64CONSTANT = 589, + BOOLCONSTANT = 590, + FLOAT16CONSTANT = 591, + LEFT_OP = 592, + RIGHT_OP = 593, + INC_OP = 594, + DEC_OP = 595, + LE_OP = 596, + GE_OP = 597, + EQ_OP = 598, + NE_OP = 599, + AND_OP = 600, + OR_OP = 601, + XOR_OP = 602, + MUL_ASSIGN = 603, + DIV_ASSIGN = 604, + ADD_ASSIGN = 605, + MOD_ASSIGN = 606, + LEFT_ASSIGN = 607, + RIGHT_ASSIGN = 608, + AND_ASSIGN = 609, + XOR_ASSIGN = 610, + OR_ASSIGN = 611, + SUB_ASSIGN = 612, + LEFT_PAREN = 613, + RIGHT_PAREN = 614, + LEFT_BRACKET = 615, + RIGHT_BRACKET = 616, + LEFT_BRACE = 617, + RIGHT_BRACE = 618, + DOT = 619, + COMMA = 620, + COLON = 621, + EQUAL = 622, + SEMICOLON = 623, + BANG = 624, + DASH = 625, + TILDE = 626, + PLUS = 627, + STAR = 628, + SLASH = 629, + PERCENT = 630, + LEFT_ANGLE = 631, + RIGHT_ANGLE = 632, + VERTICAL_BAR = 633, + CARET = 634, + AMPERSAND = 635, + QUESTION = 636, + INVARIANT = 637, + PRECISE = 638, + HIGH_PRECISION = 639, + MEDIUM_PRECISION = 640, + LOW_PRECISION = 641, + PRECISION = 642, + PACKED = 643, + RESOURCE = 644, + SUPERP = 645 + }; #endif - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE +typedef union YYSTYPE YYSTYPE; +union YYSTYPE { -/* Line 387 of yacc.c */ -#line 66 "glslang.y" +#line 70 "MachineIndependent/glslang.y" /* yacc.c:355 */ struct { glslang::TSourceLoc loc; @@ -440,6 +541,7 @@ typedef union YYSTYPE TIntermNode* intermNode; glslang::TIntermNodePair nodePair; glslang::TIntermTyped* intermTypedNode; + glslang::TAttributes* attributes; }; union { glslang::TPublicType type; @@ -452,35 +554,20 @@ typedef union YYSTYPE }; } interm; - -/* Line 387 of yacc.c */ -#line 458 "glslang_tab.cpp" -} YYSTYPE; +#line 558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ +}; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (glslang::TParseContext* pParseContext); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ +int yyparse (glslang::TParseContext* pParseContext); + +#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 390 of yacc.c */ -#line 100 "glslang.y" +#line 105 "MachineIndependent/glslang.y" /* yacc.c:358 */ /* windows only pragma */ @@ -496,8 +583,7 @@ int yyparse (); extern int yylex(YYSTYPE*, TParseContext&); -/* Line 390 of yacc.c */ -#line 501 "glslang_tab.cpp" +#line 587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -511,11 +597,8 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -535,8 +618,7 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -558,6 +640,14 @@ typedef short int yytype_int16; # endif #endif +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if (! defined __GNUC__ || __GNUC__ < 2 \ + || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) +# define __attribute__(Spec) /* empty */ +# endif +#endif + /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -565,23 +655,25 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(N) (N) +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) -#else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + #if ! defined yyoverflow || YYERROR_VERBOSE @@ -600,8 +692,7 @@ YYID (yyi) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -613,8 +704,8 @@ YYID (yyi) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -630,7 +721,7 @@ YYID (yyi) # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -638,15 +729,13 @@ YYID (yyi) # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -656,7 +745,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -681,16 +770,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif @@ -709,33 +798,35 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 265 +#define YYFINAL 366 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6373 +#define YYLAST 8949 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 288 +#define YYNTOKENS 391 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 100 +#define YYNNTS 107 /* YYNRULES -- Number of rules. */ -#define YYNRULES 439 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 571 +#define YYNRULES 556 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 697 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 542 +#define YYMAXUTOK 645 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -792,291 +883,172 @@ static const yytype_uint16 yytranslate[] = 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287 + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390 }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, - 19, 21, 23, 27, 29, 34, 36, 40, 43, 46, - 48, 50, 52, 55, 58, 61, 63, 66, 70, 73, - 75, 77, 79, 82, 85, 88, 90, 92, 94, 96, - 98, 102, 106, 110, 112, 116, 120, 122, 126, 130, - 132, 136, 140, 144, 148, 150, 154, 158, 160, 164, - 166, 170, 172, 176, 178, 182, 184, 188, 190, 194, - 196, 197, 204, 206, 210, 212, 214, 216, 218, 220, - 222, 224, 226, 228, 230, 232, 234, 238, 240, 243, - 246, 251, 254, 258, 263, 266, 270, 275, 276, 283, - 286, 290, 293, 295, 297, 300, 304, 308, 311, 315, - 318, 320, 323, 325, 327, 329, 333, 338, 345, 351, - 353, 356, 360, 366, 371, 373, 376, 378, 380, 382, - 384, 386, 391, 393, 397, 399, 403, 405, 407, 409, - 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, - 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, - 452, 454, 456, 458, 460, 465, 467, 471, 473, 476, - 479, 483, 487, 492, 494, 496, 498, 500, 502, 504, - 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, - 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, - 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, - 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, - 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, - 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, - 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, - 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, - 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, - 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, - 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, - 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, - 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, - 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, - 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, - 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, - 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, - 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, - 866, 868, 870, 872, 873, 880, 881, 887, 889, 892, - 896, 901, 903, 907, 909, 912, 914, 918, 923, 925, - 929, 931, 933, 935, 937, 939, 941, 943, 945, 947, - 949, 952, 953, 954, 960, 962, 964, 965, 968, 969, - 972, 975, 979, 981, 984, 986, 989, 995, 999, 1001, - 1003, 1008, 1009, 1018, 1019, 1021, 1025, 1028, 1029, 1036, - 1037, 1046, 1047, 1055, 1057, 1059, 1061, 1062, 1065, 1069, - 1072, 1075, 1078, 1082, 1085, 1087, 1090, 1092, 1094, 1095 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 384, 0, -1, 224, -1, 289, -1, 228, -1, 229, - -1, 230, -1, 231, -1, 226, -1, 227, -1, 233, - -1, 232, -1, 255, 317, 256, -1, 290, -1, 291, - 257, 292, 258, -1, 293, -1, 291, 261, 224, -1, - 291, 236, -1, 291, 237, -1, 317, -1, 294, -1, - 295, -1, 297, 256, -1, 296, 256, -1, 298, 222, - -1, 298, -1, 298, 315, -1, 297, 262, 315, -1, - 299, 255, -1, 343, -1, 291, -1, 291, -1, 236, - 300, -1, 237, 300, -1, 301, 300, -1, 269, -1, - 267, -1, 266, -1, 268, -1, 300, -1, 302, 270, - 300, -1, 302, 271, 300, -1, 302, 272, 300, -1, - 302, -1, 303, 269, 302, -1, 303, 267, 302, -1, - 303, -1, 304, 234, 303, -1, 304, 235, 303, -1, - 304, -1, 305, 273, 304, -1, 305, 274, 304, -1, - 305, 238, 304, -1, 305, 239, 304, -1, 305, -1, - 306, 240, 305, -1, 306, 241, 305, -1, 306, -1, - 307, 277, 306, -1, 307, -1, 308, 276, 307, -1, - 308, -1, 309, 275, 308, -1, 309, -1, 310, 242, - 309, -1, 310, -1, 311, 244, 310, -1, 311, -1, - 312, 243, 311, -1, 312, -1, -1, 312, 278, 314, - 317, 263, 315, -1, 313, -1, 300, 316, 315, -1, - 264, -1, 245, -1, 246, -1, 248, -1, 247, -1, - 254, -1, 249, -1, 250, -1, 251, -1, 252, -1, - 253, -1, 315, -1, 317, 262, 315, -1, 313, -1, - 323, 265, -1, 330, 265, -1, 284, 346, 343, 265, - -1, 320, 265, -1, 320, 224, 265, -1, 320, 224, - 344, 265, -1, 339, 265, -1, 339, 224, 265, -1, - 339, 224, 322, 265, -1, -1, 339, 224, 259, 321, - 350, 260, -1, 262, 224, -1, 322, 262, 224, -1, - 324, 256, -1, 326, -1, 325, -1, 326, 328, -1, - 325, 262, 328, -1, 332, 224, 255, -1, 343, 224, - -1, 343, 224, 344, -1, 339, 327, -1, 327, -1, - 339, 329, -1, 329, -1, 343, -1, 331, -1, 330, - 262, 224, -1, 330, 262, 224, 344, -1, 330, 262, - 224, 344, 264, 354, -1, 330, 262, 224, 264, 354, - -1, 332, -1, 332, 224, -1, 332, 224, 344, -1, - 332, 224, 344, 264, 354, -1, 332, 224, 264, 354, - -1, 343, -1, 339, 343, -1, 279, -1, 75, -1, - 74, -1, 73, -1, 77, -1, 76, 255, 336, 256, - -1, 337, -1, 336, 262, 337, -1, 224, -1, 224, - 264, 318, -1, 55, -1, 280, -1, 340, -1, 339, - 340, -1, 341, -1, 335, -1, 346, -1, 334, -1, - 333, -1, 338, -1, 5, -1, 3, -1, 4, -1, - 50, -1, 48, -1, 49, -1, 47, -1, 52, -1, - 53, -1, 51, -1, 54, -1, 55, -1, 56, -1, - 57, -1, 58, -1, 59, -1, 60, -1, 25, -1, - 25, 255, 342, 256, -1, 225, -1, 342, 262, 225, - -1, 345, -1, 345, 344, -1, 257, 258, -1, 257, - 313, 258, -1, 344, 257, 258, -1, 344, 257, 313, - 258, -1, 222, -1, 7, -1, 8, -1, 13, -1, - 9, -1, 10, -1, 11, -1, 12, -1, 6, -1, - 41, -1, 42, -1, 43, -1, 61, -1, 62, -1, - 63, -1, 67, -1, 68, -1, 69, -1, 26, -1, - 27, -1, 28, -1, 29, -1, 30, -1, 31, -1, - 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, - 37, -1, 38, -1, 39, -1, 40, -1, 44, -1, - 45, -1, 46, -1, 78, -1, 79, -1, 80, -1, - 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, - 86, -1, 64, -1, 65, -1, 66, -1, 87, -1, - 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, - 93, -1, 94, -1, 95, -1, 70, -1, 71, -1, - 72, -1, 96, -1, 97, -1, 98, -1, 99, -1, - 100, -1, 101, -1, 102, -1, 103, -1, 104, -1, - 105, -1, 106, -1, 107, -1, 108, -1, 109, -1, - 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, - 115, -1, 116, -1, 136, -1, 137, -1, 117, -1, - 118, -1, 119, -1, 120, -1, 121, -1, 122, -1, - 138, -1, 123, -1, 124, -1, 125, -1, 126, -1, - 127, -1, 128, -1, 139, -1, 129, -1, 130, -1, - 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, - 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, - 145, -1, 147, -1, 148, -1, 149, -1, 150, -1, - 151, -1, 152, -1, 153, -1, 154, -1, 173, -1, - 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, - 160, -1, 174, -1, 161, -1, 162, -1, 163, -1, - 164, -1, 165, -1, 166, -1, 175, -1, 167, -1, - 168, -1, 169, -1, 170, -1, 171, -1, 172, -1, - 176, -1, 177, -1, 178, -1, 179, -1, 180, -1, - 181, -1, 188, -1, 189, -1, 190, -1, 191, -1, - 192, -1, 193, -1, 194, -1, 195, -1, 196, -1, - 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, - 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, - 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, - 212, -1, 213, -1, 214, -1, 215, -1, 216, -1, - 217, -1, 218, -1, 219, -1, 220, -1, 146, -1, - 182, -1, 183, -1, 184, -1, 185, -1, 186, -1, - 187, -1, 347, -1, 225, -1, 281, -1, 282, -1, - 283, -1, -1, 221, 224, 259, 348, 350, 260, -1, - -1, 221, 259, 349, 350, 260, -1, 351, -1, 350, - 351, -1, 343, 352, 265, -1, 339, 343, 352, 265, - -1, 353, -1, 352, 262, 353, -1, 224, -1, 224, - 344, -1, 315, -1, 259, 355, 260, -1, 259, 355, - 262, 260, -1, 354, -1, 355, 262, 354, -1, 319, - -1, 359, -1, 358, -1, 356, -1, 368, -1, 369, - -1, 372, -1, 375, -1, 376, -1, 383, -1, 259, - 260, -1, -1, -1, 259, 360, 367, 361, 260, -1, - 366, -1, 358, -1, -1, 364, 359, -1, -1, 365, - 358, -1, 259, 260, -1, 259, 367, 260, -1, 357, - -1, 367, 357, -1, 265, -1, 317, 265, -1, 19, - 255, 317, 256, 370, -1, 363, 17, 363, -1, 363, - -1, 317, -1, 332, 224, 264, 354, -1, -1, 22, - 255, 317, 256, 373, 259, 374, 260, -1, -1, 367, - -1, 23, 317, 263, -1, 24, 263, -1, -1, 223, - 255, 377, 371, 256, 362, -1, -1, 16, 378, 357, - 223, 255, 317, 256, 265, -1, -1, 18, 255, 379, - 380, 382, 256, 362, -1, 368, -1, 356, -1, 371, - -1, -1, 381, 265, -1, 381, 265, 317, -1, 15, - 265, -1, 14, 265, -1, 21, 265, -1, 21, 317, - 265, -1, 20, 265, -1, 385, -1, 384, 385, -1, - 386, -1, 319, -1, -1, 323, 387, 366, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 250, 250, 256, 259, 262, 266, 270, 274, 277, - 281, 287, 290, 298, 301, 304, 307, 310, 315, 323, - 330, 337, 343, 347, 354, 357, 363, 370, 380, 388, - 393, 423, 429, 433, 437, 457, 458, 459, 460, 466, - 467, 472, 477, 486, 487, 492, 500, 501, 507, 516, - 517, 522, 527, 532, 540, 541, 549, 560, 561, 570, - 571, 580, 581, 590, 591, 599, 600, 608, 609, 617, - 618, 618, 636, 637, 652, 656, 660, 664, 669, 673, - 677, 681, 685, 689, 693, 700, 703, 714, 721, 726, - 731, 739, 743, 747, 751, 756, 761, 770, 770, 781, - 785, 792, 799, 802, 809, 817, 837, 855, 870, 893, - 904, 914, 924, 934, 943, 946, 950, 954, 959, 967, - 972, 977, 982, 987, 996, 1007, 1034, 1043, 1050, 1057, - 1064, 1076, 1082, 1085, 1092, 1096, 1100, 1108, 1117, 1120, - 1131, 1134, 1137, 1141, 1145, 1149, 1156, 1160, 1172, 1186, - 1191, 1197, 1203, 1210, 1216, 1221, 1226, 1231, 1238, 1242, - 1246, 1250, 1254, 1258, 1264, 1276, 1279, 1284, 1288, 1297, - 1302, 1310, 1314, 1324, 1328, 1332, 1337, 1344, 1348, 1353, - 1358, 1363, 1367, 1372, 1377, 1382, 1388, 1394, 1400, 1408, - 1416, 1424, 1429, 1434, 1439, 1444, 1449, 1454, 1460, 1466, - 1472, 1478, 1484, 1490, 1496, 1502, 1508, 1513, 1518, 1523, - 1528, 1533, 1538, 1543, 1548, 1553, 1558, 1563, 1568, 1574, - 1580, 1586, 1592, 1598, 1604, 1610, 1616, 1622, 1628, 1634, - 1640, 1648, 1656, 1664, 1672, 1680, 1688, 1696, 1704, 1712, - 1720, 1728, 1736, 1741, 1746, 1751, 1756, 1761, 1766, 1771, - 1776, 1781, 1786, 1791, 1796, 1801, 1806, 1811, 1816, 1821, - 1826, 1831, 1836, 1841, 1846, 1851, 1856, 1861, 1866, 1871, - 1876, 1881, 1886, 1891, 1896, 1901, 1906, 1911, 1916, 1921, - 1926, 1931, 1936, 1941, 1946, 1951, 1956, 1961, 1966, 1971, - 1976, 1981, 1986, 1991, 1996, 2001, 2006, 2011, 2016, 2021, - 2026, 2031, 2036, 2041, 2046, 2051, 2056, 2061, 2066, 2071, - 2076, 2081, 2086, 2091, 2096, 2101, 2106, 2111, 2116, 2121, - 2126, 2131, 2136, 2141, 2146, 2151, 2156, 2161, 2166, 2171, - 2176, 2181, 2186, 2191, 2196, 2201, 2206, 2211, 2216, 2221, - 2226, 2231, 2236, 2241, 2246, 2251, 2256, 2261, 2266, 2271, - 2276, 2281, 2287, 2293, 2299, 2305, 2311, 2317, 2323, 2328, - 2344, 2349, 2354, 2362, 2362, 2373, 2373, 2383, 2386, 2399, - 2417, 2441, 2445, 2451, 2456, 2467, 2470, 2476, 2485, 2488, - 2494, 2498, 2499, 2505, 2506, 2507, 2508, 2509, 2510, 2511, - 2515, 2516, 2520, 2516, 2532, 2533, 2537, 2537, 2544, 2544, - 2558, 2561, 2569, 2577, 2588, 2589, 2593, 2600, 2604, 2612, - 2616, 2629, 2629, 2649, 2652, 2658, 2670, 2682, 2682, 2697, - 2697, 2713, 2713, 2734, 2737, 2743, 2746, 2752, 2756, 2763, - 2768, 2773, 2780, 2783, 2792, 2796, 2803, 2806, 2812, 2812 + 0, 293, 293, 299, 302, 306, 310, 313, 317, 321, + 325, 329, 333, 336, 340, 344, 347, 355, 358, 361, + 364, 367, 372, 380, 387, 394, 400, 404, 411, 414, + 420, 427, 437, 445, 450, 477, 485, 491, 495, 499, + 519, 520, 521, 522, 528, 529, 534, 539, 548, 549, + 554, 562, 563, 569, 578, 579, 584, 589, 594, 602, + 603, 611, 622, 623, 632, 633, 642, 643, 652, 653, + 661, 662, 670, 671, 679, 680, 680, 698, 699, 714, + 718, 722, 726, 731, 735, 739, 743, 747, 751, 755, + 762, 765, 776, 783, 788, 793, 801, 805, 809, 813, + 818, 823, 832, 832, 843, 847, 854, 861, 864, 871, + 879, 899, 922, 937, 962, 973, 983, 993, 1003, 1012, + 1015, 1019, 1023, 1028, 1036, 1041, 1046, 1051, 1056, 1065, + 1076, 1103, 1112, 1119, 1126, 1137, 1149, 1155, 1158, 1165, + 1169, 1173, 1181, 1190, 1193, 1204, 1207, 1210, 1214, 1218, + 1222, 1226, 1232, 1236, 1248, 1262, 1267, 1273, 1279, 1286, + 1292, 1297, 1302, 1307, 1315, 1319, 1323, 1327, 1331, 1335, + 1341, 1350, 1357, 1360, 1368, 1372, 1381, 1386, 1394, 1398, + 1408, 1412, 1416, 1421, 1426, 1431, 1436, 1440, 1445, 1450, + 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1489, 1494, 1499, + 1504, 1510, 1516, 1522, 1528, 1534, 1540, 1546, 1552, 1558, + 1564, 1570, 1576, 1581, 1586, 1591, 1596, 1601, 1606, 1612, + 1618, 1624, 1630, 1636, 1642, 1648, 1654, 1660, 1666, 1672, + 1678, 1684, 1690, 1696, 1702, 1708, 1714, 1720, 1726, 1732, + 1738, 1744, 1750, 1756, 1762, 1768, 1773, 1778, 1783, 1788, + 1793, 1798, 1803, 1808, 1813, 1818, 1823, 1828, 1834, 1840, + 1846, 1852, 1858, 1864, 1870, 1876, 1882, 1888, 1894, 1900, + 1906, 1912, 1918, 1924, 1930, 1936, 1942, 1948, 1954, 1960, + 1966, 1972, 1978, 1984, 1990, 1996, 2002, 2008, 2014, 2020, + 2026, 2032, 2038, 2044, 2050, 2056, 2062, 2068, 2074, 2080, + 2086, 2092, 2098, 2104, 2110, 2116, 2121, 2126, 2131, 2136, + 2141, 2146, 2151, 2156, 2161, 2166, 2171, 2176, 2181, 2186, + 2194, 2202, 2210, 2218, 2226, 2234, 2242, 2250, 2258, 2266, + 2274, 2282, 2290, 2295, 2300, 2305, 2310, 2315, 2320, 2325, + 2330, 2335, 2340, 2345, 2350, 2355, 2360, 2365, 2370, 2378, + 2386, 2391, 2396, 2401, 2409, 2414, 2419, 2424, 2432, 2437, + 2442, 2447, 2455, 2460, 2465, 2470, 2475, 2480, 2488, 2493, + 2501, 2506, 2514, 2519, 2527, 2532, 2540, 2545, 2553, 2558, + 2566, 2571, 2576, 2581, 2586, 2591, 2596, 2601, 2606, 2611, + 2616, 2621, 2626, 2631, 2636, 2641, 2649, 2654, 2659, 2664, + 2672, 2677, 2682, 2687, 2695, 2700, 2705, 2710, 2718, 2723, + 2728, 2733, 2741, 2746, 2751, 2756, 2764, 2769, 2774, 2779, + 2787, 2792, 2797, 2802, 2810, 2815, 2820, 2825, 2833, 2838, + 2843, 2848, 2856, 2861, 2866, 2871, 2879, 2884, 2889, 2894, + 2902, 2907, 2912, 2917, 2925, 2930, 2935, 2940, 2948, 2953, + 2958, 2963, 2971, 2976, 2981, 2987, 2993, 2999, 3008, 3017, + 3023, 3029, 3035, 3041, 3046, 3062, 3067, 3072, 3080, 3080, + 3091, 3091, 3101, 3104, 3117, 3139, 3166, 3170, 3176, 3181, + 3192, 3195, 3201, 3210, 3213, 3219, 3223, 3224, 3230, 3231, + 3232, 3233, 3234, 3235, 3236, 3240, 3241, 3245, 3241, 3257, + 3258, 3262, 3262, 3269, 3269, 3283, 3286, 3294, 3302, 3313, + 3314, 3318, 3321, 3327, 3334, 3338, 3346, 3350, 3363, 3366, + 3372, 3372, 3392, 3395, 3401, 3413, 3425, 3428, 3434, 3434, + 3449, 3449, 3465, 3465, 3486, 3489, 3495, 3498, 3504, 3508, + 3515, 3520, 3525, 3532, 3535, 3544, 3548, 3557, 3560, 3563, + 3571, 3571, 3593, 3599, 3602, 3607, 3610 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +#if YYDEBUG || YYERROR_VERBOSE || 1 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "CONST", "BOOL", - "FLOAT", "DOUBLE", "INT", "UINT", "INT64_T", "UINT64_T", "FLOAT16_T", - "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", - "SWITCH", "CASE", "DEFAULT", "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", - "IVEC2", "IVEC3", "IVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "UVEC2", - "UVEC3", "UVEC4", "U64VEC2", "U64VEC3", "U64VEC4", "VEC2", "VEC3", - "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", - "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", - "RESTRICT", "READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", - "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", - "F16MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", - "__EXPLICITINTERPAMD", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", - "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", - "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", - "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", - "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "ATOMIC_UINT", - "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", - "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", - "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", - "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", - "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", - "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", - "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", - "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", - "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", - "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", - "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", - "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", - "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", - "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D", - "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D", - "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY", - "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT", - "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY", - "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS", - "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", - "UTEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", - "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "IMAGE1D", - "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D", - "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT", - "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER", - "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY", - "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY", - "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS", - "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", - "STRUCT", "VOID", "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", - "DOUBLECONSTANT", "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT", - "UINT64CONSTANT", "BOOLCONSTANT", "FLOAT16CONSTANT", "LEFT_OP", - "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", - "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", - "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", - "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", - "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", - "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", - "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", - "AMPERSAND", "QUESTION", "INVARIANT", "PRECISE", "HIGH_PRECISION", - "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", - "SUPERP", "$accept", "variable_identifier", "primary_expression", - "postfix_expression", "integer_expression", "function_call", - "function_call_or_method", "function_call_generic", - "function_call_header_no_parameters", + "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "FLOAT16_T", + "FLOAT", "FLOAT32_T", "DOUBLE", "FLOAT64_T", "CONST", "BOOL", "INT", + "UINT", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T", + "UINT16_T", "INT8_T", "UINT8_T", "BREAK", "CONTINUE", "DO", "ELSE", + "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", + "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", + "UVEC2", "UVEC3", "UVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "U64VEC2", + "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4", "U32VEC2", + "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4", "U16VEC2", + "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", + "U8VEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", + "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", + "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY", + "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", "DMAT4", + "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", "F16MAT4", + "F32VEC2", "F32VEC3", "F32VEC4", "F32MAT2", "F32MAT3", "F32MAT4", + "F64VEC2", "F64VEC3", "F64VEC4", "F64MAT2", "F64MAT3", "F64MAT4", + "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "__EXPLICITINTERPAMD", + "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", + "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", + "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", "F16MAT2X2", + "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", "F16MAT3X4", + "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2", "F32MAT2X3", + "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4", "F32MAT4X2", + "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", + "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", + "F64MAT4X4", "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", + "SAMPLERCUBE", "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", + "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", + "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", + "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", + "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", + "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", + "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", + "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", + "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", + "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", + "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "F16SAMPLER1D", + "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE", + "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", + "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", + "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW", + "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW", + "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "SAMPLER", + "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", + "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", + "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", + "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", + "UTEXTURE1DARRAY", "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", + "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", + "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", + "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS", "TEXTURE2DMSARRAY", + "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", + "F16TEXTURE3D", "F16TEXTURE2DRECT", "F16TEXTURECUBE", + "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", + "F16TEXTUREBUFFER", "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", + "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", + "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT", + "F16SUBPASSINPUTMS", "IMAGE1D", "IIMAGE1D", "UIMAGE1D", "IMAGE2D", + "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", + "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", + "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAY", + "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE2DARRAY", + "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", + "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS", "IMAGE2DMSARRAY", + "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "F16IMAGE1D", "F16IMAGE2D", + "F16IMAGE3D", "F16IMAGE2DRECT", "F16IMAGECUBE", "F16IMAGE1DARRAY", + "F16IMAGE2DARRAY", "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS", + "F16IMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER", + "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INT16CONSTANT", + "UINT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INTCONSTANT", + "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "BOOLCONSTANT", + "FLOAT16CONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", + "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", + "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", + "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", + "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", + "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", + "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", + "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION", + "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION", + "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept", + "variable_identifier", "primary_expression", "postfix_expression", + "integer_expression", "function_call", "function_call_or_method", + "function_call_generic", "function_call_header_no_parameters", "function_call_header_with_parameters", "function_call_header", "function_identifier", "unary_expression", "unary_operator", "multiplicative_expression", "additive_expression", "shift_expression", @@ -1093,26 +1065,30 @@ static const char *const yytname[] = "fully_specified_type", "invariant_qualifier", "interpolation_qualifier", "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id", "precise_qualifier", "type_qualifier", "single_type_qualifier", - "storage_qualifier", "type_name_list", "type_specifier", - "array_specifier", "type_specifier_nonarray", "precision_qualifier", - "struct_specifier", "$@3", "$@4", "struct_declaration_list", - "struct_declaration", "struct_declarator_list", "struct_declarator", - "initializer", "initializer_list", "declaration_statement", "statement", + "storage_qualifier", "non_uniform_qualifier", "type_name_list", + "type_specifier", "array_specifier", "type_specifier_nonarray", + "precision_qualifier", "struct_specifier", "$@3", "$@4", + "struct_declaration_list", "struct_declaration", + "struct_declarator_list", "struct_declarator", "initializer", + "initializer_list", "declaration_statement", "statement", "simple_statement", "compound_statement", "$@5", "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8", "compound_statement_no_new_scope", "statement_list", "expression_statement", "selection_statement", - "selection_rest_statement", "condition", "switch_statement", "$@9", - "switch_statement_list", "case_label", "iteration_statement", "$@10", - "$@11", "$@12", "for_init_statement", "conditionopt", - "for_rest_statement", "jump_statement", "translation_unit", - "external_declaration", "function_definition", "$@13", YY_NULL + "selection_statement_nonattributed", "selection_rest_statement", + "condition", "switch_statement", "switch_statement_nonattributed", "$@9", + "switch_statement_list", "case_label", "iteration_statement", + "iteration_statement_nonattributed", "$@10", "$@11", "$@12", + "for_init_statement", "conditionopt", "for_rest_statement", + "jump_statement", "translation_unit", "external_declaration", + "function_definition", "$@13", "attribute", "attribute_list", + "single_attribute", YY_NULL }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -1143,1122 +1119,333 @@ static const yytype_uint16 yytoknum[] = 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542 + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645 }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 288, 289, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 291, 291, 291, 291, 291, 291, 292, - 293, 294, 295, 295, 296, 296, 297, 297, 298, 299, - 299, 300, 300, 300, 300, 301, 301, 301, 301, 302, - 302, 302, 302, 303, 303, 303, 304, 304, 304, 305, - 305, 305, 305, 305, 306, 306, 306, 307, 307, 308, - 308, 309, 309, 310, 310, 311, 311, 312, 312, 313, - 314, 313, 315, 315, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 317, 317, 318, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 321, 320, 322, - 322, 323, 324, 324, 325, 325, 326, 327, 327, 328, - 328, 328, 328, 329, 330, 330, 330, 330, 330, 331, - 331, 331, 331, 331, 332, 332, 333, 334, 334, 334, - 334, 335, 336, 336, 337, 337, 337, 338, 339, 339, - 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 342, 342, 343, 343, 344, - 344, 344, 344, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 346, 346, 346, 348, 347, 349, 347, 350, 350, 351, - 351, 352, 352, 353, 353, 354, 354, 354, 355, 355, - 356, 357, 357, 358, 358, 358, 358, 358, 358, 358, - 359, 360, 361, 359, 362, 362, 364, 363, 365, 363, - 366, 366, 367, 367, 368, 368, 369, 370, 370, 371, - 371, 373, 372, 374, 374, 375, 375, 377, 376, 378, - 376, 379, 376, 380, 380, 381, 381, 382, 382, 383, - 383, 383, 383, 383, 384, 384, 385, 385, 387, 386 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 1, 4, 1, 3, 2, 2, 1, - 1, 1, 2, 2, 2, 1, 2, 3, 2, 1, - 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, - 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, - 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, - 4, 2, 3, 4, 2, 3, 4, 0, 6, 2, - 3, 2, 1, 1, 2, 3, 3, 2, 3, 2, - 1, 2, 1, 1, 1, 3, 4, 6, 5, 1, - 2, 3, 5, 4, 1, 2, 1, 1, 1, 1, - 1, 4, 1, 3, 1, 3, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 1, 3, 1, 2, 2, - 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, - 4, 1, 3, 1, 2, 1, 3, 4, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 0, 5, 1, 1, 0, 2, 0, 2, - 2, 3, 1, 2, 1, 2, 5, 3, 1, 1, - 4, 0, 8, 0, 1, 3, 2, 0, 6, 0, - 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, - 2, 2, 3, 2, 1, 2, 1, 1, 0, 3 -}; - -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 0, 147, 148, 146, 181, 174, 175, 177, 178, 179, - 180, 176, 163, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 182, 183, - 184, 206, 207, 208, 152, 150, 151, 149, 155, 153, - 154, 156, 157, 158, 159, 160, 161, 162, 185, 186, - 187, 218, 219, 220, 188, 189, 190, 230, 231, 232, - 129, 128, 127, 0, 130, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 256, 257, 258, 259, 260, 261, - 263, 264, 265, 266, 267, 268, 270, 271, 272, 273, - 274, 275, 276, 254, 255, 262, 269, 277, 278, 279, - 280, 281, 282, 351, 283, 284, 285, 286, 287, 288, - 289, 290, 292, 293, 294, 295, 296, 297, 299, 300, - 301, 302, 303, 304, 306, 307, 308, 309, 310, 311, - 291, 298, 305, 312, 313, 314, 315, 316, 317, 352, - 353, 354, 355, 356, 357, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 0, 173, - 359, 126, 137, 360, 361, 362, 0, 437, 0, 438, - 0, 103, 102, 0, 114, 119, 144, 143, 141, 145, - 0, 138, 140, 124, 167, 142, 358, 0, 434, 436, - 0, 0, 0, 365, 0, 0, 91, 88, 0, 101, - 0, 110, 104, 112, 0, 113, 0, 89, 120, 0, - 94, 139, 125, 0, 168, 1, 435, 165, 0, 136, - 134, 0, 132, 363, 0, 0, 92, 0, 0, 439, - 105, 109, 111, 107, 115, 106, 0, 121, 97, 0, - 95, 0, 2, 8, 9, 4, 5, 6, 7, 11, - 10, 0, 0, 0, 169, 37, 36, 38, 35, 3, - 13, 31, 15, 20, 21, 0, 0, 25, 0, 39, - 0, 43, 46, 49, 54, 57, 59, 61, 63, 65, - 67, 69, 0, 29, 0, 164, 0, 0, 131, 0, - 0, 0, 0, 0, 367, 90, 93, 0, 0, 419, - 0, 0, 0, 0, 0, 0, 0, 0, 391, 400, - 404, 39, 72, 85, 0, 380, 0, 124, 383, 402, - 382, 381, 0, 384, 385, 386, 387, 388, 389, 108, - 0, 116, 0, 375, 123, 0, 0, 99, 0, 96, - 32, 33, 0, 17, 18, 0, 0, 23, 22, 0, - 173, 26, 28, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 70, 170, 171, 0, 166, 87, 135, - 133, 0, 0, 373, 0, 371, 366, 368, 430, 429, - 0, 421, 0, 433, 431, 0, 0, 0, 416, 417, - 390, 0, 75, 76, 78, 77, 80, 81, 82, 83, - 84, 79, 74, 0, 0, 405, 401, 403, 118, 0, - 378, 0, 122, 0, 100, 12, 0, 19, 16, 27, - 40, 41, 42, 45, 44, 47, 48, 52, 53, 50, - 51, 55, 56, 58, 60, 62, 64, 66, 68, 0, - 172, 364, 0, 374, 0, 369, 0, 0, 0, 432, - 0, 415, 0, 392, 73, 86, 117, 376, 0, 98, - 14, 0, 370, 372, 0, 424, 423, 426, 398, 411, - 409, 0, 0, 0, 0, 377, 379, 0, 0, 425, - 0, 0, 408, 0, 0, 406, 0, 0, 0, 393, - 71, 0, 427, 0, 398, 397, 399, 413, 0, 395, - 418, 394, 0, 428, 422, 407, 414, 0, 410, 420, - 412 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 309, 310, 311, 476, 312, 313, 314, 315, 316, - 317, 318, 361, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 362, 499, 363, 463, 364, - 429, 365, 218, 386, 291, 366, 220, 221, 222, 251, - 252, 253, 223, 224, 225, 226, 227, 228, 271, 272, - 229, 230, 231, 232, 268, 333, 264, 234, 235, 236, - 340, 274, 343, 344, 434, 435, 384, 471, 368, 369, - 370, 371, 451, 534, 560, 542, 543, 544, 561, 372, - 373, 374, 545, 533, 375, 546, 567, 376, 377, 512, - 440, 507, 527, 540, 541, 378, 237, 238, 239, 248 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -512 -static const yytype_int16 yypact[] = -{ - 2538, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -235, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -201, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, -512, -203, -512, - -512, -512, -512, -512, -512, -512, -153, -512, -210, -220, - -152, -189, 4119, -160, -512, -128, -512, -512, -512, -512, - 3079, -512, -512, -512, -122, -512, -512, 564, -512, -512, - -72, -46, -105, -512, 6148, -216, -512, -512, -102, -512, - 4119, -512, -512, -512, 4119, -68, -66, -512, -225, -187, - -512, -512, -512, 4606, -98, -512, -512, -512, -179, -512, - -104, -172, -512, -512, 4119, -101, -512, -186, 846, -512, - -512, -512, -512, -122, -233, -512, 4870, -217, -512, -63, - -512, -151, -512, -512, -512, -512, -512, -512, -512, -512, - -512, 5648, 5648, 5648, -512, -512, -512, -512, -512, -512, - -512, -209, -512, -512, -512, -94, -170, 5898, -92, -512, - 5648, -139, -133, -109, -223, -103, -111, -108, -106, -71, - -74, -218, -86, -512, 5134, -512, -52, 5648, -512, -46, - 4119, 4119, -50, 3342, -512, -512, -512, -90, -89, -512, - -78, -76, -85, 5398, -70, 5648, -80, -69, -64, -512, - -512, -184, -512, -512, -150, -512, -220, -67, -512, -512, - -512, -512, 1128, -512, -512, -512, -512, -512, -512, -98, - 4870, -183, 4870, -512, -512, 4870, 4119, -512, -40, -512, - -512, -512, -169, -512, -512, 5648, -35, -512, -512, 5648, - -65, -512, -512, -512, 5648, 5648, 5648, 5648, 5648, 5648, - 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, - 5648, 5648, 5648, -512, -512, -512, -61, -512, -512, -512, - -512, 3601, -50, -122, -144, -512, -512, -512, -512, -512, - 1410, -512, 5648, -512, -512, -142, 5648, -123, -512, -512, - -512, 1410, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -512, 5648, 5648, -512, -512, -512, -512, 4870, - -512, -226, -512, 3860, -512, -512, -60, -62, -512, -512, - -512, -512, -512, -139, -139, -133, -133, -109, -109, -109, - -109, -223, -223, -103, -111, -108, -106, -71, -74, 5648, - -512, -512, -138, -98, -50, -512, -33, 2256, -168, -512, - -167, -512, 2798, 1410, -512, -512, -512, -512, 4342, -512, - -512, -121, -512, -512, -56, -512, -512, 2798, -58, -512, - -62, -32, 4119, -49, -51, -512, -512, 5648, 5648, -512, - -57, -45, 177, -55, 1974, -512, -47, -44, 1692, -512, - -512, -165, 5648, 1692, -58, -512, -512, 1410, 4870, -512, - -512, -512, -48, -62, -512, -512, 1410, -42, -512, -512, - -512 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, - -512, -512, -96, -512, -263, -262, -304, -264, -204, -199, - -205, -197, -206, -196, -512, -252, -512, -282, -512, -296, - -512, 3, -512, -512, -512, 6, -512, -512, -512, -29, - -23, -26, -512, -512, -489, -512, -512, -512, -512, -118, - -512, -221, -228, -512, -512, 0, -240, -512, 13, -512, - -512, -512, -328, -330, -200, -271, -363, -512, -273, -364, - -511, -308, -512, -512, -314, -309, -512, -512, -2, -441, - -260, -512, -512, -279, -512, -512, -512, -512, -512, -512, - -512, -512, -512, -512, -512, -512, -512, 12, -512, -512 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -397 -static const yytype_int16 yytable[] = -{ - 233, 254, 261, 217, 383, 277, 219, 392, 467, 269, - 513, 332, 431, 437, 245, 411, 412, 468, 287, 470, - 240, 242, 472, 531, 263, 422, 261, 393, 394, 254, - 285, 380, 263, 556, 517, 401, 518, 559, 531, 286, - 334, 263, 559, 379, 381, 247, -30, 385, 395, 276, - 413, 414, 396, 341, 241, 246, 243, 445, 473, 447, - 423, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 334, 288, 250, 334, 289, 506, 335, 290, 346, - 462, 469, 426, 336, 338, 428, 398, 475, 528, 529, - 339, 562, 399, 464, 464, 464, 258, 464, 383, 477, - 383, 437, 256, 383, 249, 257, 516, 487, 488, 489, - 490, 388, 464, 261, 389, 465, 566, 479, 504, 341, - 464, 505, 341, 509, 504, 409, 410, 522, 213, 214, - 215, 404, 405, 406, 407, 263, 408, 415, 416, 464, - 511, 464, 537, 437, 483, 484, 508, 485, 486, 467, - 510, 491, 492, 267, 273, 536, 283, 278, 284, 334, - 337, 387, 397, 402, 345, 341, 417, 319, 418, 419, - 421, 420, 424, 427, 433, 438, 439, 441, 270, 442, - 443, 514, 515, 448, 474, 446, 449, 383, -29, 478, - 524, -24, 547, 503, 554, 568, 450, 500, 520, 538, - 464, -396, 467, 521, 358, 390, 391, 548, 552, 549, - 341, 553, 557, 493, 495, 497, 530, 569, 570, 494, - 558, 430, 255, 496, 403, 281, 498, 280, 282, 244, - 262, 530, 502, 523, 525, 555, 383, 233, 319, 564, - 217, 319, 551, 219, 275, 565, 279, 526, 539, 266, - 255, 0, 341, 0, 255, 550, 563, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 342, 0, 383, 0, 367, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 261, 0, 532, 0, 480, 481, - 482, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 342, 432, 0, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, - 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, - 0, 0, 367, 367, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, - 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 367, 0, 0, 0, 367, 0, - 0, 0, 0, 367, 0, 0, 0, 367, 0, 0, - 0, 0, 0, 0, 265, 0, 367, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, - 356, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 357, - 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, - 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 303, 0, 0, 0, 358, 359, 0, 0, 0, - 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, - 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 347, 348, 349, 0, 350, 351, 352, 353, - 354, 355, 356, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 357, 292, 210, 293, 294, 295, 296, 297, 298, - 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 303, 0, 0, 0, 358, 466, 0, - 0, 0, 0, 360, 305, 306, 307, 308, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, - 214, 215, 216, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 347, 348, 349, 0, 350, 351, - 352, 353, 354, 355, 356, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 357, 292, 210, 293, 294, 295, 296, - 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 303, 0, 0, 0, 358, - 0, 0, 0, 0, 0, 360, 305, 306, 307, 308, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, - 212, 213, 214, 215, 216, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 347, 348, 349, 0, - 350, 351, 352, 353, 354, 355, 356, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 357, 292, 210, 293, 294, - 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, - 0, 278, 0, 0, 0, 0, 0, 360, 305, 306, - 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 211, 212, 213, 214, 215, 216, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 347, 348, - 349, 0, 350, 351, 352, 353, 354, 355, 356, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 357, 292, 210, - 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, - 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, - 305, 306, 307, 308, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, - 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, - 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, - 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 0, 0, 0, 0, 0, 211, 212, 213, - 214, 215, 216, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, - 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 305, 306, 307, 308, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, - 214, 215, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 0, 259, 210, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 260, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 0, 0, 211, 212, - 213, 214, 215, 0, 0, 0, 0, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 0, 0, 210, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 436, 0, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, - 0, 211, 212, 213, 214, 215, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 501, 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, - 211, 212, 213, 214, 215, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 519, 0, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 0, 0, 0, 0, 0, 0, 211, - 212, 213, 214, 215, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 0, 0, 210, 0, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, - 213, 214, 215, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 0, 292, 210, 293, 294, - 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, - 0, 382, 535, 0, 0, 0, 0, 0, 305, 306, - 307, 308, 4, 5, 6, 7, 8, 9, 10, 11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, - 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, - 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, - 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 303, 0, 0, 304, 0, 0, 0, 0, 0, - 0, 0, 305, 306, 307, 308, 4, 5, 6, 7, - 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 0, 0, 0, 0, 0, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 0, 292, 210, 293, 294, 295, 296, - 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 303, 0, 0, 0, 382, - 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, - 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, - 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 0, 292, 210, - 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, - 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, - 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, - 305, 306, 307, 308, 4, 5, 6, 7, 8, 9, - 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, - 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, - 10, 11, 0, 444, 305, 306, 307, 308, 0, 0, - 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, - 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, - 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, - 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 400, 0, 292, 210, 293, 294, 295, 296, 297, 298, - 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, - 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, - 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 0, 0, 210 -}; +#define YYPACT_NINF -634 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-512))) + (!!((Yystate) == (-634))) + +#define YYTABLE_NINF -502 #define yytable_value_is_error(Yytable_value) \ - YYID (0) + 0 -static const yytype_int16 yycheck[] = + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = { - 0, 222, 230, 0, 286, 245, 0, 303, 372, 55, - 451, 263, 340, 343, 224, 238, 239, 380, 258, 382, - 255, 224, 385, 512, 257, 243, 254, 236, 237, 250, - 255, 264, 257, 544, 260, 317, 262, 548, 527, 264, - 257, 257, 553, 283, 284, 265, 255, 264, 257, 265, - 273, 274, 261, 274, 255, 265, 259, 353, 386, 355, - 278, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 257, 259, 262, 257, 262, 440, 256, 265, 265, - 264, 264, 334, 262, 256, 337, 256, 256, 256, 256, - 262, 256, 262, 262, 262, 262, 224, 262, 380, 395, - 382, 431, 262, 385, 256, 265, 469, 411, 412, 413, - 414, 262, 262, 341, 265, 265, 557, 399, 262, 340, - 262, 265, 343, 265, 262, 234, 235, 265, 281, 282, - 283, 270, 271, 272, 267, 257, 269, 240, 241, 262, - 263, 262, 263, 473, 407, 408, 442, 409, 410, 513, - 446, 415, 416, 225, 259, 518, 224, 259, 224, 257, - 264, 224, 256, 255, 265, 386, 277, 263, 276, 275, - 244, 242, 258, 225, 224, 265, 265, 255, 224, 255, - 265, 463, 464, 263, 224, 255, 255, 469, 255, 224, - 223, 256, 224, 433, 17, 558, 260, 258, 258, 255, - 262, 259, 566, 499, 259, 301, 302, 256, 265, 260, - 431, 256, 259, 417, 419, 421, 512, 265, 260, 418, - 264, 339, 222, 420, 320, 254, 422, 250, 254, 216, - 230, 527, 432, 504, 507, 543, 518, 237, 334, 553, - 237, 337, 538, 237, 244, 554, 248, 507, 527, 237, - 250, -1, 473, -1, 254, 537, 552, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 274, -1, 558, -1, 278, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 532, -1, 527, -1, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 340, 341, -1, 343, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 431, -1, -1, -1, -1, -1, -1, -1, -1, - 440, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 451, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, - -1, -1, 512, 513, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, - -1, -1, 532, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 544, -1, -1, -1, 548, -1, - -1, -1, -1, 553, -1, -1, -1, 557, -1, -1, - -1, -1, -1, -1, 0, -1, 566, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, -1, 225, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 255, -1, -1, -1, 259, 260, -1, -1, -1, - -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, - 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 255, -1, -1, -1, 259, 260, -1, - -1, -1, -1, 265, 266, 267, 268, 269, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, - 282, 283, 284, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, - -1, -1, -1, -1, -1, 265, 266, 267, 268, 269, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, - 280, 281, 282, 283, 284, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, - -1, 259, -1, -1, -1, -1, -1, 265, 266, 267, - 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 279, 280, 281, 282, 283, 284, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, + 3391, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -311, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -295, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, -634, -301, -634, -634, + -634, -634, -634, -634, -634, -634, -241, -634, -302, -342, + -290, -254, 5696, -300, -634, -210, -634, -634, -634, -634, + 4160, -634, -634, -634, -634, -219, -634, -634, 696, -634, + -634, -189, -69, -207, -634, 8625, -320, -634, -634, -203, + -634, 5696, -634, -634, -634, 5696, -155, -154, -634, -324, + -288, -634, -634, -634, 6417, -190, -634, -634, -634, -292, + -634, -196, -287, -634, -634, 5696, -195, -634, -306, 1081, + -634, -634, -634, -634, -219, -325, -634, 6785, -310, -634, + -151, -634, -277, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, 7889, 7889, 7889, -634, + -634, -634, -634, -634, -634, -634, -309, -634, -634, -634, + -185, -283, 8257, -183, -634, 7889, -227, -263, -299, -318, + -194, -204, -202, -200, -165, -166, -321, -179, -634, -634, + 7153, -634, -140, 7889, -634, -69, 5696, 5696, -139, 4544, + -634, -634, -634, -182, -180, -634, -173, -169, -178, 7521, + -164, 7889, -174, -163, -167, -162, -634, -634, -252, -634, + -634, -237, -634, -342, -161, -158, -634, -634, -634, -634, + 1466, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -19, -190, 6785, -296, 6785, -634, -634, 6785, 5696, -634, + -127, -634, -634, -634, -278, -634, -634, 7889, -121, -634, + -634, 7889, -156, -634, -634, -634, 7889, 7889, 7889, 7889, + 7889, 7889, 7889, 7889, 7889, 7889, 7889, 7889, 7889, 7889, + 7889, 7889, 7889, 7889, 7889, -634, -634, -634, -157, -634, + -634, -634, -634, 4928, -139, -219, -236, -634, -634, -634, + -634, -634, 1851, -634, 7889, -634, -634, -230, 7889, -213, + -634, -634, -118, -634, 1851, -634, -634, -634, -634, -634, + -634, -634, -634, -634, -634, -634, 7889, 7889, -634, -634, + -634, -634, -634, -634, -634, 6785, -634, -270, -634, 5312, + -634, -634, -153, -150, -634, -634, -634, -634, -634, -227, + -227, -263, -263, -299, -299, -299, -299, -318, -318, -194, + -204, -202, -200, -165, -166, 7889, -634, -634, -226, -190, + -139, -634, -113, 3006, -275, -634, -253, -634, 3776, -148, + -282, -634, 1851, -634, -634, -634, -634, 6049, -634, -634, + -208, -634, -634, -147, -634, -634, 3776, -146, -634, -150, + -111, 5696, -145, 7889, -144, -118, -143, -634, -634, 7889, + 7889, -634, -149, -141, 196, -136, 2621, -634, -116, -120, + 2236, -137, -634, -634, -634, -634, -239, 7889, 2236, -146, + -634, -634, 1851, 6785, -634, -634, -634, -634, -119, -150, + -634, -634, 1851, -112, -634, -634, -634 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 0, 153, 154, 183, 181, 184, 182, 185, 152, 196, + 186, 187, 194, 195, 192, 193, 190, 191, 188, 189, + 169, 212, 213, 214, 215, 216, 217, 230, 231, 232, + 227, 228, 229, 242, 243, 244, 224, 225, 226, 239, + 240, 241, 221, 222, 223, 236, 237, 238, 218, 219, + 220, 233, 234, 235, 197, 198, 199, 245, 246, 247, + 158, 156, 157, 155, 161, 159, 160, 162, 163, 171, + 164, 165, 166, 167, 168, 200, 201, 202, 257, 258, + 259, 203, 204, 205, 269, 270, 271, 206, 207, 208, + 281, 282, 283, 209, 210, 211, 293, 294, 295, 134, + 133, 132, 0, 135, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 332, 333, 334, 335, 336, 337, 339, 340, 341, + 342, 343, 344, 346, 347, 350, 351, 352, 354, 355, + 317, 318, 338, 345, 356, 358, 359, 360, 362, 363, + 454, 319, 320, 321, 348, 322, 326, 327, 330, 353, + 357, 361, 323, 324, 328, 329, 349, 325, 331, 364, + 365, 366, 368, 370, 372, 374, 376, 380, 381, 382, + 383, 384, 385, 387, 388, 389, 390, 391, 392, 394, + 396, 397, 398, 400, 401, 378, 386, 393, 402, 404, + 405, 406, 408, 409, 367, 369, 371, 395, 373, 375, + 377, 379, 399, 403, 407, 455, 456, 459, 460, 461, + 462, 457, 458, 410, 412, 413, 414, 416, 417, 418, + 420, 421, 422, 424, 425, 426, 428, 429, 430, 432, + 433, 434, 436, 437, 438, 440, 441, 442, 444, 445, + 446, 448, 449, 450, 452, 453, 411, 415, 419, 423, + 427, 435, 439, 443, 431, 447, 451, 0, 180, 464, + 549, 131, 142, 465, 466, 467, 0, 548, 0, 550, + 0, 108, 107, 0, 119, 124, 149, 148, 146, 150, + 0, 143, 145, 151, 129, 174, 147, 463, 0, 545, + 547, 0, 0, 0, 470, 0, 0, 96, 93, 0, + 106, 0, 115, 109, 117, 0, 118, 0, 94, 125, + 0, 99, 144, 130, 0, 175, 1, 546, 172, 0, + 141, 139, 0, 137, 468, 0, 0, 97, 0, 0, + 551, 110, 114, 116, 112, 120, 111, 0, 126, 102, + 0, 100, 0, 2, 12, 13, 10, 11, 4, 5, + 6, 7, 8, 9, 15, 14, 0, 0, 0, 176, + 42, 41, 43, 40, 3, 17, 36, 19, 24, 25, + 0, 0, 29, 0, 44, 0, 48, 51, 54, 59, + 62, 64, 66, 68, 70, 72, 74, 0, 35, 33, + 0, 170, 0, 0, 136, 0, 0, 0, 0, 0, + 472, 95, 98, 0, 0, 530, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 496, 505, 509, 44, 77, + 90, 0, 485, 0, 151, 129, 488, 507, 487, 486, + 0, 489, 490, 511, 491, 518, 492, 493, 526, 494, + 0, 113, 0, 121, 0, 480, 128, 0, 0, 104, + 0, 101, 37, 38, 0, 21, 22, 0, 0, 27, + 26, 0, 180, 30, 32, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 177, 178, 0, 173, + 92, 140, 138, 0, 0, 478, 0, 476, 471, 473, + 541, 540, 0, 532, 0, 544, 542, 0, 0, 0, + 525, 528, 0, 495, 0, 80, 81, 83, 82, 85, + 86, 87, 88, 89, 84, 79, 0, 0, 510, 506, + 508, 512, 519, 527, 123, 0, 483, 0, 127, 0, + 105, 16, 0, 23, 20, 31, 45, 46, 47, 50, + 49, 52, 53, 57, 58, 55, 56, 60, 61, 63, + 65, 67, 69, 71, 73, 0, 179, 469, 0, 479, + 0, 474, 0, 0, 0, 543, 0, 524, 0, 555, + 0, 553, 497, 78, 91, 122, 481, 0, 103, 18, + 0, 475, 477, 0, 535, 534, 537, 503, 520, 516, + 0, 0, 0, 0, 0, 0, 0, 482, 484, 0, + 0, 536, 0, 0, 515, 0, 0, 513, 0, 0, + 0, 0, 552, 554, 498, 76, 0, 538, 0, 503, + 502, 504, 522, 0, 500, 529, 499, 556, 0, 539, + 533, 514, 523, 0, 517, 531, 521 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -634, -634, -634, -634, -634, -634, -634, -634, -634, -634, + -634, -634, -289, -634, -358, -355, -401, -364, -279, -307, + -276, -280, -273, -281, -634, -354, -634, -378, -634, -367, + -397, 1, -634, -634, -634, 2, -634, -634, -634, -98, + -93, -92, -634, -634, -600, -634, -634, -634, -634, -181, + -634, -319, -326, -634, 6, -634, 0, -332, -634, -54, + -634, -634, -634, -428, -433, -272, -353, -477, -634, -357, + -467, -633, -400, -634, -634, -410, -408, -634, -634, -80, + -545, -350, -634, -216, -634, -371, -634, -214, -634, -634, + -634, -634, -212, -634, -634, -634, -634, -634, -634, -634, + -634, -61, -634, -634, -634, -634, -375 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 414, 415, 416, 592, 417, 418, 419, 420, 421, + 422, 423, 468, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 469, 615, 470, 576, 471, + 541, 472, 318, 498, 392, 473, 320, 321, 322, 352, + 353, 354, 323, 324, 325, 326, 327, 328, 372, 373, + 329, 330, 331, 332, 438, 369, 439, 365, 335, 336, + 337, 446, 375, 449, 450, 546, 547, 496, 587, 476, + 477, 478, 479, 564, 656, 685, 664, 665, 666, 686, + 480, 481, 482, 483, 667, 652, 484, 485, 668, 693, + 486, 487, 488, 628, 552, 623, 646, 662, 663, 489, + 338, 339, 340, 349, 490, 630, 631 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 334, 317, 319, 355, 362, 455, 333, 456, 457, 495, + 437, 460, 370, 580, 378, 584, 549, 586, 543, 632, + 588, 346, 343, 523, 524, 534, 348, 388, 650, 362, + 505, 506, 355, 681, 386, 364, 364, 684, 521, 522, + 364, 504, 492, 387, 513, 684, 650, 341, 377, -34, + 440, 507, 491, 493, 440, 508, 447, 497, 525, 526, + 535, 344, 452, 342, 440, 357, 347, 441, 358, 350, + 589, 585, 444, 442, 389, 424, 510, 390, 445, 654, + 391, 591, 511, 655, 647, 622, 538, 577, 500, 540, + 577, 501, 557, 636, 559, 637, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 648, 519, 635, 520, + 549, 351, 577, 359, 495, 575, 495, 502, 503, 495, + 688, 362, 603, 604, 605, 606, 577, 447, 577, 620, + 447, 578, 621, 595, 368, 577, 515, 692, 625, 620, + 593, 364, 641, 313, 314, 315, 516, 517, 518, 527, + 528, 424, 577, 627, 424, 374, 549, 577, 659, 379, + 658, 599, 600, 607, 608, 580, 601, 602, 384, 385, + 440, 443, 499, 451, 509, 514, 529, 530, 531, 447, + 532, 533, 536, 539, 545, 553, 550, 624, 551, 554, + 555, 626, 560, 562, 558, 561, 590, -35, 633, 634, + -33, 563, 594, -28, 616, 629, 694, 495, 639, 643, + 653, 660, 669, 619, 670, 577, -501, 672, 678, 677, + 674, 679, 687, 610, 447, 580, 465, 596, 597, 598, + 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, + 424, 424, 424, 424, 424, 424, 682, 683, 640, 695, + 609, 696, 612, 614, 371, 611, 671, 382, 381, 495, + 613, 649, 345, 383, 542, 680, 644, 642, 690, 380, + 447, 691, 618, 645, 581, 661, 582, 367, 583, 649, + 673, 675, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 676, 0, 0, 0, 0, 0, 540, + 0, 0, 0, 463, 0, 495, 0, 0, 0, 651, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 356, 0, 0, 362, 0, 651, 333, 0, + 363, 0, 0, 0, 0, 0, 333, 0, 334, 317, + 319, 0, 0, 0, 333, 376, 0, 0, 0, 0, + 0, 356, 0, 0, 0, 356, 0, 333, 0, 0, + 0, 333, 0, 0, 424, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 448, 0, 0, 0, 475, + 0, 333, 0, 0, 0, 474, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 448, 544, 0, 448, + 0, 0, 333, 333, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 475, 0, 0, 0, 0, 0, 474, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 448, 0, 0, 0, 0, 0, 333, + 0, 0, 475, 0, 0, 0, 0, 0, 474, 0, + 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, + 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 448, + 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 475, 0, 0, 0, 0, 475, 474, + 0, 0, 475, 0, 474, 0, 0, 0, 474, 0, + 0, 0, 0, 0, 0, 0, 475, 0, 0, 0, + 0, 363, 474, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 0, 0, 475, 0, 0, 0, + 475, 0, 474, 0, 0, 0, 474, 0, 475, 0, + 0, 0, 475, 0, 474, 0, 0, 0, 474, 0, + 0, 0, 475, 0, 0, 0, 366, 0, 474, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, + 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, + 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 453, 454, 455, 0, 456, 457, 458, + 459, 460, 461, 462, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, @@ -2279,97 +1466,25 @@ static const yytype_int16 yycheck[] = 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, - 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, - 266, 267, 268, 269, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 255, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, - 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, -1, 225, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, -1, -1, -1, -1, -1, 279, 280, 281, - 282, 283, 284, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 255, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 266, 267, 268, 269, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, - 282, 283, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 463, 393, 309, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, + 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, + 0, 464, 0, 465, 466, 0, 0, 0, 0, 467, + 410, 411, 412, 413, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 453, 454, + 455, 0, 456, 457, 458, 459, 460, 461, 462, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, @@ -2389,198 +1504,31 @@ static const yytype_int16 yycheck[] = 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, 224, 225, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 265, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, -1, -1, 279, 280, - 281, 282, 283, -1, -1, -1, -1, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, -1, 225, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 260, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, - -1, 279, 280, 281, 282, 283, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, -1, -1, 225, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, - 279, 280, 281, 282, 283, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, -1, 225, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, -1, -1, -1, -1, -1, -1, 279, - 280, 281, 282, 283, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, 225, -1, -1, -1, 6, 7, - 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 279, 280, - 281, 282, 283, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, - -1, 259, 260, -1, -1, -1, -1, -1, 266, 267, - 268, 269, 6, 7, 8, 9, 10, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, - -1, -1, -1, -1, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 255, -1, -1, 258, -1, -1, -1, -1, -1, - -1, -1, 266, 267, 268, 269, 6, 7, 8, 9, - 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, - -1, -1, -1, -1, -1, -1, 266, 267, 268, 269, - 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 463, 393, + 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 408, 0, 464, 0, 465, 579, + 0, 0, 0, 0, 467, 410, 411, 412, 413, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, + 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 453, 454, 455, 0, 456, 457, 458, + 459, 460, 461, 462, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, - -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, @@ -2594,117 +1542,257 @@ static const yytype_int16 yycheck[] = 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, - 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, - -1, -1, 258, -1, -1, -1, -1, -1, -1, -1, - 266, 267, 268, 269, 6, 7, 8, 9, 10, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, - 12, 13, -1, 265, 266, 267, 268, 269, -1, -1, - -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, - 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, - -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, - 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, - -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, -1, 225 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = -{ - 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 25, 26, 27, 28, 29, 30, 31, 32, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 463, 393, 309, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, + 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, + 0, 464, 0, 465, 0, 0, 0, 0, 0, 467, + 410, 411, 412, 413, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 453, 454, + 455, 0, 456, 457, 458, 459, 460, 461, 462, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 463, 393, + 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 408, 0, 464, 0, 379, 0, + 0, 0, 0, 0, 467, 410, 411, 412, 413, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, + 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 453, 454, 455, 0, 456, 457, 458, + 459, 460, 461, 462, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 463, 393, 309, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, + 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, + 0, 464, 0, 0, 0, 0, 0, 0, 0, 467, + 410, 411, 412, 413, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 0, 393, + 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 467, 410, 411, 412, 413, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, + 313, 314, 315, 316, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 0, 0, 309, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 311, 312, 313, 314, 315, 316, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 0, 393, + 309, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 0, 0, 406, 407, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 410, 411, 412, 413, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, + 313, 314, 315, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 0, 360, 309, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 361, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 311, 312, 313, 314, 315, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, @@ -2724,69 +1812,1532 @@ static const yytype_uint16 yystos[] = 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 225, 279, 280, 281, 282, 283, 284, 319, 320, 323, - 324, 325, 326, 330, 331, 332, 333, 334, 335, 338, - 339, 340, 341, 343, 345, 346, 347, 384, 385, 386, - 255, 255, 224, 259, 346, 224, 265, 265, 387, 256, - 262, 327, 328, 329, 339, 343, 262, 265, 224, 224, - 265, 340, 343, 257, 344, 0, 385, 225, 342, 55, - 224, 336, 337, 259, 349, 343, 265, 344, 259, 366, - 328, 327, 329, 224, 224, 255, 264, 344, 259, 262, - 265, 322, 224, 226, 227, 228, 229, 230, 231, 232, - 233, 236, 237, 255, 258, 266, 267, 268, 269, 289, - 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 343, 257, 256, 262, 264, 256, 262, - 348, 339, 343, 350, 351, 265, 265, 14, 15, 16, - 18, 19, 20, 21, 22, 23, 24, 223, 259, 260, - 265, 300, 313, 315, 317, 319, 323, 343, 356, 357, - 358, 359, 367, 368, 369, 372, 375, 376, 383, 344, - 264, 344, 259, 315, 354, 264, 321, 224, 262, 265, - 300, 300, 317, 236, 237, 257, 261, 256, 256, 262, - 222, 315, 255, 300, 270, 271, 272, 267, 269, 234, - 235, 238, 239, 273, 274, 240, 241, 277, 276, 275, - 242, 244, 243, 278, 258, 258, 313, 225, 313, 318, - 337, 350, 343, 224, 352, 353, 260, 351, 265, 265, - 378, 255, 255, 265, 265, 317, 255, 317, 263, 255, - 260, 360, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 264, 316, 262, 265, 260, 357, 354, 264, - 354, 355, 354, 350, 224, 256, 292, 317, 224, 315, - 300, 300, 300, 302, 302, 303, 303, 304, 304, 304, - 304, 305, 305, 306, 307, 308, 309, 310, 311, 314, - 258, 260, 352, 344, 262, 265, 357, 379, 317, 265, - 317, 263, 377, 367, 315, 315, 354, 260, 262, 260, - 258, 317, 265, 353, 223, 356, 368, 380, 256, 256, - 317, 332, 339, 371, 361, 260, 354, 263, 255, 371, - 381, 382, 363, 364, 365, 370, 373, 224, 256, 260, - 315, 317, 265, 256, 17, 359, 358, 259, 264, 358, - 362, 366, 256, 317, 362, 363, 367, 374, 354, 265, - 260 + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 0, 0, 309, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 548, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 311, 312, 313, 314, + 315, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 311, 312, 313, 314, 315, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 0, 0, 309, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 311, 312, 313, 314, 315, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 0, 0, + 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 4, 5, 6, 7, 0, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 0, 0, 0, 0, 0, 311, 312, + 313, 314, 315, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 0, 0, 0, 0, 0, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 0, 0, 0, 0, 0, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 0, 393, 309, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 0, 0, 406, 407, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, + 0, 494, 657, 0, 0, 0, 0, 0, 410, 411, + 412, 413, 3, 4, 5, 6, 7, 0, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, + 0, 0, 0, 0, 0, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, + 0, 0, 0, 0, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 0, + 393, 309, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 0, 0, 406, 407, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 408, 0, 0, 409, 0, + 0, 0, 0, 0, 0, 0, 410, 411, 412, 413, + 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, + 0, 0, 0, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, + 0, 0, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 0, 393, 309, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 0, 0, 406, 407, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 408, 0, 0, 0, 494, 0, 0, + 0, 0, 0, 0, 410, 411, 412, 413, 3, 4, + 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, + 0, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 0, 0, 0, 0, 0, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 0, 393, 309, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 0, 0, 406, 407, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 408, 0, 0, 537, 0, 0, 0, 0, 0, + 0, 0, 410, 411, 412, 413, 3, 4, 5, 6, + 7, 0, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 69, 0, 0, 0, 0, 0, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 0, 0, 0, 0, 0, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 0, 393, 309, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 0, 0, + 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, + 410, 411, 412, 413, 3, 4, 5, 6, 7, 0, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 0, 0, 0, 0, 0, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 0, 0, 0, 0, 0, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 0, 393, 309, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 0, 0, 406, 407, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 408, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 410, 411, + 412, 413, 3, 4, 5, 6, 7, 0, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, + 0, 0, 0, 0, 0, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, + 0, 0, 0, 0, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 512, 0, + 393, 309, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 0, 0, 406, 407, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 410, 411, 412, 413, + 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, + 0, 0, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 0, 0, 309 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 +static const yytype_int16 yycheck[] = +{ + 0, 0, 0, 322, 330, 24, 0, 26, 27, 387, + 364, 30, 81, 480, 346, 492, 449, 494, 446, 564, + 497, 323, 323, 341, 342, 346, 368, 359, 628, 355, + 339, 340, 351, 666, 358, 360, 360, 670, 337, 338, + 360, 408, 367, 367, 422, 678, 646, 358, 368, 358, + 360, 360, 384, 385, 360, 364, 375, 367, 376, 377, + 381, 362, 368, 358, 360, 365, 368, 359, 368, 359, + 498, 367, 359, 365, 362, 364, 359, 365, 365, 361, + 368, 359, 365, 365, 359, 552, 440, 365, 365, 443, + 365, 368, 459, 363, 461, 365, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 359, 370, 585, 372, + 543, 365, 365, 323, 492, 367, 494, 406, 407, 497, + 359, 447, 523, 524, 525, 526, 365, 446, 365, 365, + 449, 368, 368, 511, 323, 365, 425, 682, 368, 365, + 507, 360, 368, 384, 385, 386, 373, 374, 375, 343, + 344, 440, 365, 366, 443, 362, 589, 365, 366, 362, + 637, 519, 520, 527, 528, 632, 521, 522, 323, 323, + 360, 367, 323, 368, 359, 358, 380, 379, 378, 498, + 345, 347, 361, 323, 323, 358, 368, 554, 368, 358, + 368, 558, 366, 360, 358, 358, 323, 358, 576, 577, + 358, 363, 323, 359, 361, 323, 683, 585, 361, 322, + 358, 358, 323, 545, 359, 365, 362, 361, 359, 368, + 363, 25, 359, 530, 543, 692, 362, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 362, 367, 615, 368, + 529, 363, 532, 534, 323, 531, 653, 355, 351, 637, + 533, 628, 316, 355, 445, 665, 623, 620, 678, 349, + 589, 679, 544, 623, 490, 646, 490, 338, 490, 646, + 655, 659, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 660, -1, -1, -1, -1, -1, 653, + -1, -1, -1, 322, -1, 683, -1, -1, -1, 628, + 677, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 322, -1, -1, 651, -1, 646, 322, -1, + 330, -1, -1, -1, -1, -1, 330, -1, 338, 338, + 338, -1, -1, -1, 338, 345, -1, -1, -1, -1, + -1, 351, -1, -1, -1, 355, -1, 351, -1, -1, + -1, 355, -1, -1, 653, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 375, -1, -1, -1, 379, + -1, 375, -1, -1, -1, 379, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 446, 447, -1, 449, + -1, -1, 446, 447, -1, 449, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 480, -1, -1, -1, -1, -1, 480, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 498, -1, + -1, -1, -1, -1, 498, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 543, -1, -1, -1, -1, -1, 543, + -1, -1, 552, -1, -1, -1, -1, -1, 552, -1, + -1, -1, -1, -1, 564, -1, -1, -1, -1, -1, + 564, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 589, + -1, -1, -1, -1, -1, 589, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 623, -1, -1, -1, -1, 628, 623, + -1, -1, 632, -1, 628, -1, -1, -1, 632, -1, + -1, -1, -1, -1, -1, -1, 646, -1, -1, -1, + -1, 651, 646, -1, -1, -1, -1, 651, -1, -1, + -1, -1, -1, -1, -1, -1, 666, -1, -1, -1, + 670, -1, 666, -1, -1, -1, 670, -1, 678, -1, + -1, -1, 682, -1, 678, -1, -1, -1, 682, -1, + -1, -1, 692, -1, -1, -1, 0, -1, 692, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, -1, -1, + 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 368, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, + 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, + 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, -1, 362, 363, -1, -1, -1, -1, 368, + 369, 370, 371, 372, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, -1, 362, 363, + -1, -1, -1, -1, 368, 369, 370, 371, 372, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, + 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, + 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, -1, 362, -1, -1, -1, -1, -1, 368, + 369, 370, 371, 372, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, 360, -1, 362, -1, + -1, -1, -1, -1, 368, 369, 370, 371, 372, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, + 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, + 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, 360, -1, -1, -1, -1, -1, -1, -1, 368, + 369, 370, 371, 372, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 368, 369, 370, 371, 372, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, + 384, 385, 386, 387, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, -1, -1, 324, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, 383, 384, 385, 386, 387, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, -1, -1, 339, 340, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 369, 370, 371, 372, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 382, 383, + 384, 385, 386, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, -1, 323, 324, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 368, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 382, 383, 384, 385, 386, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, -1, -1, 324, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 363, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 382, 383, 384, 385, + 386, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + -1, -1, 324, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 363, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 382, 383, 384, 385, 386, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, -1, -1, 324, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 363, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 382, 383, 384, 385, 386, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, -1, -1, + 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5, 6, 7, 8, 9, -1, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, -1, -1, -1, -1, -1, -1, -1, 382, 383, + 384, 385, 386, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 82, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, -1, -1, 339, 340, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, 362, 363, -1, -1, -1, -1, -1, 369, 370, + 371, 372, 5, 6, 7, 8, 9, -1, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, + -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, -1, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, -1, -1, 339, 340, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, 361, -1, + -1, -1, -1, -1, -1, -1, 369, 370, 371, 372, + 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, + -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, + -1, -1, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, -1, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, -1, -1, 339, 340, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 358, -1, -1, -1, 362, -1, -1, + -1, -1, -1, -1, 369, 370, 371, 372, 5, 6, + 7, 8, 9, -1, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, -1, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + -1, -1, 339, 340, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 358, -1, -1, 361, -1, -1, -1, -1, -1, + -1, -1, 369, 370, 371, 372, 5, 6, 7, 8, + 9, -1, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, -1, -1, -1, -1, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, -1, -1, -1, -1, -1, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, + 339, 340, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, + 369, 370, 371, 372, 5, 6, 7, 8, 9, -1, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 82, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, -1, -1, 339, 340, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 369, 370, + 371, 372, 5, 6, 7, 8, 9, -1, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, + -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, -1, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, -1, -1, 339, 340, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 369, 370, 371, 372, + 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, + -1, -1, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, -1, -1, 324 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 324, + 368, 382, 383, 384, 385, 386, 387, 422, 423, 426, + 427, 428, 429, 433, 434, 435, 436, 437, 438, 441, + 442, 443, 444, 445, 447, 449, 450, 451, 491, 492, + 493, 358, 358, 323, 362, 450, 323, 368, 368, 494, + 359, 365, 430, 431, 432, 442, 447, 365, 368, 323, + 323, 368, 443, 447, 360, 448, 0, 492, 323, 446, + 81, 323, 439, 440, 362, 453, 447, 368, 448, 362, + 470, 431, 430, 432, 323, 323, 358, 367, 448, 362, + 365, 368, 425, 323, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 339, 340, 358, 361, + 369, 370, 371, 372, 392, 393, 394, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 445, 447, + 360, 359, 365, 367, 359, 365, 452, 442, 447, 454, + 455, 368, 368, 22, 23, 24, 26, 27, 28, 29, + 30, 31, 32, 322, 360, 362, 363, 368, 403, 416, + 418, 420, 422, 426, 445, 447, 460, 461, 462, 463, + 471, 472, 473, 474, 477, 478, 481, 482, 483, 490, + 495, 448, 367, 448, 362, 418, 458, 367, 424, 323, + 365, 368, 403, 403, 420, 339, 340, 360, 364, 359, + 359, 365, 321, 418, 358, 403, 373, 374, 375, 370, + 372, 337, 338, 341, 342, 376, 377, 343, 344, 380, + 379, 378, 345, 347, 346, 381, 361, 361, 416, 323, + 416, 421, 440, 454, 447, 323, 456, 457, 363, 455, + 368, 368, 485, 358, 358, 368, 368, 420, 358, 420, + 366, 358, 360, 363, 464, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 367, 419, 365, 368, 363, + 461, 474, 478, 483, 458, 367, 458, 459, 458, 454, + 323, 359, 395, 420, 323, 418, 403, 403, 403, 405, + 405, 406, 406, 407, 407, 407, 407, 408, 408, 409, + 410, 411, 412, 413, 414, 417, 361, 363, 456, 448, + 365, 368, 461, 486, 420, 368, 420, 366, 484, 323, + 496, 497, 471, 418, 418, 458, 363, 365, 363, 361, + 420, 368, 457, 322, 460, 472, 487, 359, 359, 420, + 435, 442, 476, 358, 361, 365, 465, 363, 458, 366, + 358, 476, 488, 489, 467, 468, 469, 475, 479, 323, + 359, 421, 361, 497, 363, 418, 420, 368, 359, 25, + 463, 462, 362, 367, 462, 466, 470, 359, 359, 420, + 466, 467, 471, 480, 458, 368, 363 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 391, 392, 393, 393, 393, 393, 393, 393, 393, + 393, 393, 393, 393, 393, 393, 393, 394, 394, 394, + 394, 394, 394, 395, 396, 397, 398, 398, 399, 399, + 400, 400, 401, 402, 402, 402, 403, 403, 403, 403, + 404, 404, 404, 404, 405, 405, 405, 405, 406, 406, + 406, 407, 407, 407, 408, 408, 408, 408, 408, 409, + 409, 409, 410, 410, 411, 411, 412, 412, 413, 413, + 414, 414, 415, 415, 416, 417, 416, 418, 418, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 420, 420, 421, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 424, 423, 425, 425, 426, 427, 427, 428, + 428, 429, 430, 430, 431, 431, 431, 431, 432, 433, + 433, 433, 433, 433, 434, 434, 434, 434, 434, 435, + 435, 436, 437, 437, 437, 437, 438, 439, 439, 440, + 440, 440, 441, 442, 442, 443, 443, 443, 443, 443, + 443, 443, 444, 444, 444, 444, 444, 444, 444, 444, + 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, + 444, 445, 446, 446, 447, 447, 448, 448, 448, 448, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, + 449, 449, 449, 449, 449, 450, 450, 450, 452, 451, + 453, 451, 454, 454, 455, 455, 456, 456, 457, 457, + 458, 458, 458, 459, 459, 460, 461, 461, 462, 462, + 462, 462, 462, 462, 462, 463, 464, 465, 463, 466, + 466, 468, 467, 469, 467, 470, 470, 471, 471, 472, + 472, 473, 473, 474, 475, 475, 476, 476, 477, 477, + 479, 478, 480, 480, 481, 481, 482, 482, 484, 483, + 485, 483, 486, 483, 487, 487, 488, 488, 489, 489, + 490, 490, 490, 490, 490, 491, 491, 492, 492, 492, + 494, 493, 495, 496, 496, 497, 497 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 4, 1, + 3, 2, 2, 1, 1, 1, 2, 2, 2, 1, + 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, + 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, + 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, + 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 2, 2, 4, 2, 3, 4, 2, + 3, 4, 0, 6, 2, 3, 2, 1, 1, 2, + 3, 3, 2, 3, 2, 1, 2, 1, 1, 1, + 3, 4, 6, 5, 1, 2, 3, 5, 4, 1, + 2, 1, 1, 1, 1, 1, 4, 1, 3, 1, + 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 4, 1, 1, 3, 1, 2, 2, 3, 3, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, + 0, 5, 1, 2, 3, 4, 1, 3, 1, 2, + 1, 3, 4, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 0, 5, 1, + 1, 0, 2, 0, 2, 2, 3, 1, 2, 1, + 2, 1, 2, 5, 3, 1, 1, 4, 1, 2, + 0, 8, 0, 1, 3, 2, 1, 2, 0, 6, + 0, 8, 0, 7, 1, 1, 1, 0, 2, 3, + 2, 2, 2, 3, 2, 1, 2, 1, 1, 1, + 0, 3, 5, 1, 3, 1, 4 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif #define YYRECOVERING() (!!yyerrstatus) @@ -2803,27 +3354,15 @@ do \ else \ { \ yyerror (pParseContext, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) + YYERROR; \ + } \ +while (0) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ -#ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -#else -# define YYLEX yylex (&yylval, parseContext) -#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -2833,58 +3372,47 @@ while (YYID (0)) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, pParseContext); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, pParseContext); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - glslang::TParseContext* pParseContext; -#endif { FILE *yyo = yyoutput; YYUSE (yyo); + YYUSE (pParseContext); if (!yyvaluep) return; - YYUSE (pParseContext); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -2892,23 +3420,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - glslang::TParseContext* pParseContext; -#endif { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); YYFPRINTF (yyoutput, ")"); @@ -2919,16 +3435,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2939,50 +3447,42 @@ yy_stack_print (yybottom, yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) -#else -static void -yy_reduce_print (yyvsp, yyrule, pParseContext) - YYSTYPE *yyvsp; - int yyrule; - glslang::TParseContext* pParseContext; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , pParseContext); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , pParseContext); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule, pParseContext); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -2996,7 +3496,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -3019,15 +3519,8 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -3043,16 +3536,8 @@ yystrlen (yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -3082,27 +3567,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -3137,10 +3622,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -3257,33 +3738,18 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) -#else -static void -yydestruct (yymsg, yytype, yyvaluep, pParseContext) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; - glslang::TParseContext* pParseContext; -#endif { YYUSE (yyvaluep); YYUSE (pParseContext); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3293,56 +3759,18 @@ yydestruct (yymsg, yytype, yyvaluep, pParseContext) | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (glslang::TParseContext* pParseContext) -#else -int -yyparse (pParseContext) - glslang::TParseContext* pParseContext; -#endif -#endif { /* The lookahead symbol. */ int yychar; -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else +/* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ -static YYSTYPE yyval_default; -# define YY_INITIAL_VALUE(Value) = Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Number of syntax errors so far. */ int yynerrs; @@ -3352,8 +3780,8 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. + 'yyss': related to states. + 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -3421,23 +3849,23 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); - yyss = yyss1; - yyvs = yyvs1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3445,22 +3873,22 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3469,10 +3897,10 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3501,7 +3929,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (&yylval, parseContext); } if (yychar <= YYEOF) @@ -3566,7 +3994,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3580,259 +4008,292 @@ yyreduce: switch (yyn) { case 2: -/* Line 1792 of yacc.c */ -#line 250 "glslang.y" +#line 293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[(1) - (1)].lex).loc, (yyvsp[(1) - (1)].lex).symbol, (yyvsp[(1) - (1)].lex).string); + (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); } +#line 4016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: -/* Line 1792 of yacc.c */ -#line 256 "glslang.y" +#line 299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: -/* Line 1792 of yacc.c */ -#line 259 "glslang.y" +#line 302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } +#line 4033 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: -/* Line 1792 of yacc.c */ -#line 262 "glslang.y" +#line 306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } +#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: -/* Line 1792 of yacc.c */ -#line 266 "glslang.y" +#line 310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i64, (yyvsp[(1) - (1)].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } +#line 4050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: -/* Line 1792 of yacc.c */ -#line 270 "glslang.y" +#line 313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u64, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } +#line 4059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: -/* Line 1792 of yacc.c */ -#line 274 "glslang.y" +#line 317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); } +#line 4068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: -/* Line 1792 of yacc.c */ -#line 277 "glslang.y" +#line 321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtDouble, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); } +#line 4077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: -/* Line 1792 of yacc.c */ -#line 281 "glslang.y" +#line 325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat16, (yyvsp[(1) - (1)].lex).loc, true); -#endif + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } +#line 4086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: -/* Line 1792 of yacc.c */ -#line 287 "glslang.y" +#line 329 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).b, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } +#line 4095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: -/* Line 1792 of yacc.c */ -#line 290 "glslang.y" +#line 333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); - if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) - (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } +#line 4103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: -/* Line 1792 of yacc.c */ -#line 298 "glslang.y" +#line 336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); } +#line 4112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: -/* Line 1792 of yacc.c */ -#line 301 "glslang.y" +#line 340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.intermTypedNode), (yyvsp[(3) - (4)].interm.intermTypedNode)); + parseContext.float16Check((yyvsp[0].lex).loc, "half float literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true); } +#line 4121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: -/* Line 1792 of yacc.c */ -#line 304 "glslang.y" +#line 344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } +#line 4129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: -/* Line 1792 of yacc.c */ -#line 307 "glslang.y" +#line 347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[(3) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode), *(yyvsp[(3) - (3)].lex).string); + (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); + if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) + (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } +#line 4139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: -/* Line 1792 of yacc.c */ -#line 310 "glslang.y" +#line 355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "++", (yyvsp[(1) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "++", EOpPostIncrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: -/* Line 1792 of yacc.c */ -#line 315 "glslang.y" +#line 358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "--", (yyvsp[(1) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "--", EOpPostDecrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); } +#line 4155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: -/* Line 1792 of yacc.c */ -#line 323 "glslang.y" +#line 361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.integerCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4163 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: -/* Line 1792 of yacc.c */ -#line 330 "glslang.y" +#line 364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[(1) - (1)].interm).loc, (yyvsp[(1) - (1)].interm).function, (yyvsp[(1) - (1)].interm).intermNode); - delete (yyvsp[(1) - (1)].interm).function; + (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); } +#line 4171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: -/* Line 1792 of yacc.c */ -#line 337 "glslang.y" +#line 367 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); } +#line 4181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: -/* Line 1792 of yacc.c */ -#line 343 "glslang.y" +#line 372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); } +#line 4191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: -/* Line 1792 of yacc.c */ -#line 347 "glslang.y" +#line 380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: -/* Line 1792 of yacc.c */ -#line 354 "glslang.y" +#line 387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); + delete (yyvsp[0].interm).function; } +#line 4209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: -/* Line 1792 of yacc.c */ -#line 357 "glslang.y" +#line 394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + (yyval.interm) = (yyvsp[0].interm); } +#line 4217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: -/* Line 1792 of yacc.c */ -#line 363 "glslang.y" +#line 400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()); - (yyvsp[(1) - (2)].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[(1) - (2)].interm).function; - (yyval.interm).intermNode = (yyvsp[(2) - (2)].interm.intermTypedNode); + (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm).loc = (yyvsp[0].lex).loc; } +#line 4226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: -/* Line 1792 of yacc.c */ -#line 370 "glslang.y" +#line 404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()); - (yyvsp[(1) - (3)].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[(1) - (3)].interm).function; - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); + (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm).loc = (yyvsp[0].lex).loc; } +#line 4235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: -/* Line 1792 of yacc.c */ -#line 380 "glslang.y" +#line 411 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm) = (yyvsp[-1].interm); } +#line 4243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: -/* Line 1792 of yacc.c */ -#line 388 "glslang.y" +#line 414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - // Constructor - (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type)); + (yyval.interm) = (yyvsp[0].interm); } +#line 4251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 30: -/* Line 1792 of yacc.c */ -#line 393 "glslang.y" +#line 420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + TParameter param = { 0, new TType }; + param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); + (yyvsp[-1].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[-1].interm).function; + (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); + } +#line 4263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 31: +#line 427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + TParameter param = { 0, new TType }; + param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); + (yyvsp[-2].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[-2].interm).function; + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); + } +#line 4275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 32: +#line 437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm) = (yyvsp[-1].interm); + } +#line 4283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 33: +#line 445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + // Constructor + (yyval.interm).intermNode = 0; + (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); + } +#line 4293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 34: +#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. @@ -3840,18 +4301,18 @@ yyreduce: (yyval.interm).function = 0; (yyval.interm).intermNode = 0; - TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode(); + TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); if (method) { (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); (yyval.interm).intermNode = method->getObject(); } else { - TIntermSymbol* symbol = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsSymbolNode(); + TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); if (symbol) { parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); (yyval.interm).function = function; } else - parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); + parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); } if ((yyval.interm).function == 0) { @@ -3860,3916 +4321,5120 @@ yyreduce: (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } +#line 4325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 31: -/* Line 1792 of yacc.c */ -#line 423 "glslang.y" + case 35: +#line 477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.variableCheck((yyvsp[(1) - (1)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); - if (TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode()) - parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); + // Constructor + (yyval.interm).intermNode = 0; + (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } +#line 4335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 32: -/* Line 1792 of yacc.c */ -#line 429 "glslang.y" + case 36: +#line 485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "++", (yyvsp[(2) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "++", EOpPreIncrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) + parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } +#line 4346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 33: -/* Line 1792 of yacc.c */ -#line 433 "glslang.y" + case 37: +#line 491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "--", (yyvsp[(2) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "--", EOpPreDecrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); } +#line 4355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 34: -/* Line 1792 of yacc.c */ -#line 437 "glslang.y" + case 38: +#line 495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (2)].interm).op != EOpNull) { + parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); + } +#line 4364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 39: +#line 499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + if ((yyvsp[-1].interm).op != EOpNull) { char errorOp[2] = {0, 0}; - switch((yyvsp[(1) - (2)].interm).op) { + switch((yyvsp[-1].interm).op) { case EOpNegative: errorOp[0] = '-'; break; case EOpLogicalNot: errorOp[0] = '!'; break; case EOpBitwiseNot: errorOp[0] = '~'; break; default: break; // some compilers want this } - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].interm).loc, errorOp, (yyvsp[(1) - (2)].interm).op, (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); } else { - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } - break; - - case 35: -/* Line 1792 of yacc.c */ -#line 457 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNull; } - break; - - case 36: -/* Line 1792 of yacc.c */ -#line 458 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNegative; } - break; - - case 37: -/* Line 1792 of yacc.c */ -#line 459 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLogicalNot; } - break; - - case 38: -/* Line 1792 of yacc.c */ -#line 460 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpBitwiseNot; - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise not"); } - break; - - case 39: -/* Line 1792 of yacc.c */ -#line 466 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 4385 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 40: -/* Line 1792 of yacc.c */ -#line 467 "glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "*", EOpMul, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); - } +#line 519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } +#line 4391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: -/* Line 1792 of yacc.c */ -#line 472 "glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "/", EOpDiv, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); - } +#line 520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } +#line 4397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: -/* Line 1792 of yacc.c */ -#line 477 "glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "%"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "%", EOpMod, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); - } +#line 521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } +#line 4403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 43: -/* Line 1792 of yacc.c */ -#line 486 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } +#line 4410 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 44: -/* Line 1792 of yacc.c */ -#line 487 "glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "+", EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); - } +#line 528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: -/* Line 1792 of yacc.c */ -#line 492 "glslang.y" +#line 529 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "-", EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 4426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 46: -/* Line 1792 of yacc.c */ -#line 500 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + } +#line 4436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 47: -/* Line 1792 of yacc.c */ -#line 501 "glslang.y" +#line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift left"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<<", EOpLeftShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 4447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: -/* Line 1792 of yacc.c */ -#line 507 "glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift right"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">>", EOpRightShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); - } +#line 548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4453 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 49: -/* Line 1792 of yacc.c */ -#line 516 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + } +#line 4463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 50: -/* Line 1792 of yacc.c */ -#line 517 "glslang.y" +#line 554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<", EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 4473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: -/* Line 1792 of yacc.c */ -#line 522 "glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">", EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); - } +#line 562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: -/* Line 1792 of yacc.c */ -#line 527 "glslang.y" +#line 563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<=", EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: -/* Line 1792 of yacc.c */ -#line 532 "glslang.y" +#line 569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 4501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 54: -/* Line 1792 of yacc.c */ -#line 540 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 55: -/* Line 1792 of yacc.c */ -#line 541 "glslang.y" +#line 579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); - parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "==", EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 4517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: -/* Line 1792 of yacc.c */ -#line 549 "glslang.y" +#line 584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); - parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "!=", EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 4527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 57: -/* Line 1792 of yacc.c */ -#line 560 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + } +#line 4537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 58: -/* Line 1792 of yacc.c */ -#line 561 "glslang.y" +#line 594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise and"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&", EOpAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 4547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 59: -/* Line 1792 of yacc.c */ -#line 570 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 60: -/* Line 1792 of yacc.c */ -#line 571 "glslang.y" +#line 603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise exclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^", EOpExclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); + parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 4566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 61: -/* Line 1792 of yacc.c */ -#line 580 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); + parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + } +#line 4579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 62: -/* Line 1792 of yacc.c */ -#line 581 "glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise inclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "|", EOpInclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); - } +#line 622 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4585 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 63: -/* Line 1792 of yacc.c */ -#line 590 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + } +#line 4596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 64: -/* Line 1792 of yacc.c */ -#line 591 "glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&&", EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); - } +#line 632 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 65: -/* Line 1792 of yacc.c */ -#line 599 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + } +#line 4613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 66: -/* Line 1792 of yacc.c */ -#line 600 "glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^^", EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); - } +#line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 67: -/* Line 1792 of yacc.c */ -#line 608 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + } +#line 4630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 68: -/* Line 1792 of yacc.c */ -#line 609 "glslang.y" - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "||", EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); - } +#line 652 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 69: -/* Line 1792 of yacc.c */ -#line 617 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + } +#line 4646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 70: -/* Line 1792 of yacc.c */ -#line 618 "glslang.y" - { - ++parseContext.controlFlowNestingLevel; - } +#line 661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: -/* Line 1792 of yacc.c */ -#line 621 "glslang.y" +#line 662 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - --parseContext.controlFlowNestingLevel; - parseContext.boolCheck((yyvsp[(2) - (6)].lex).loc, (yyvsp[(1) - (6)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(2) - (6)].lex).loc, "?", (yyvsp[(1) - (6)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(6) - (6)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[(1) - (6)].interm.intermTypedNode), (yyvsp[(4) - (6)].interm.intermTypedNode), (yyvsp[(6) - (6)].interm.intermTypedNode), (yyvsp[(2) - (6)].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[(2) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(6) - (6)].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[(6) - (6)].interm.intermTypedNode); - } + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 4662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 72: -/* Line 1792 of yacc.c */ -#line 636 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 73: -/* Line 1792 of yacc.c */ -#line 637 "glslang.y" +#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayObjectCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array assignment"); - parseContext.opaqueCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); - parseContext.specializationCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); - parseContext.lValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(3) - (3)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[(2) - (3)].interm).op, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].interm).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.assignError((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); - } + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 4678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: -/* Line 1792 of yacc.c */ -#line 652 "glslang.y" - { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm).op = EOpAssign; - } +#line 679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: -/* Line 1792 of yacc.c */ -#line 656 "glslang.y" +#line 680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm).op = EOpMulAssign; + ++parseContext.controlFlowNestingLevel; } +#line 4692 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: -/* Line 1792 of yacc.c */ -#line 660 "glslang.y" +#line 683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm).op = EOpDivAssign; + --parseContext.controlFlowNestingLevel; + parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + } } +#line 4709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: -/* Line 1792 of yacc.c */ -#line 664 "glslang.y" - { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "%="); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm).op = EOpModAssign; - } +#line 698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: -/* Line 1792 of yacc.c */ -#line 669 "glslang.y" +#line 699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm).op = EOpAddAssign; + parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); + parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); + parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); + parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + } } +#line 4732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: -/* Line 1792 of yacc.c */ -#line 673 "glslang.y" +#line 714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm).op = EOpSubAssign; + (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).op = EOpAssign; } +#line 4741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: -/* Line 1792 of yacc.c */ -#line 677 "glslang.y" +#line 718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift left assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; + (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).op = EOpMulAssign; } +#line 4750 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: -/* Line 1792 of yacc.c */ -#line 681 "glslang.y" +#line 722 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift right assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpRightShiftAssign; + (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).op = EOpDivAssign; } +#line 4759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: -/* Line 1792 of yacc.c */ -#line 685 "glslang.y" +#line 726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-and assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAndAssign; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); + (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).op = EOpModAssign; } +#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: -/* Line 1792 of yacc.c */ -#line 689 "glslang.y" +#line 731 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-xor assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; + (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).op = EOpAddAssign; } +#line 4778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: -/* Line 1792 of yacc.c */ -#line 693 "glslang.y" +#line 735 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-or assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; + (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).op = EOpSubAssign; } +#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: -/* Line 1792 of yacc.c */ -#line 700 "glslang.y" +#line 739 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } +#line 4796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: -/* Line 1792 of yacc.c */ -#line 703 "glslang.y" +#line 743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.samplerConstructorLocationCheck((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(3) - (3)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[(3) - (3)].interm.intermTypedNode); - } + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } +#line 4805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: -/* Line 1792 of yacc.c */ -#line 714 "glslang.y" +#line 747 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.constantValueCheck((yyvsp[(1) - (1)].interm.intermTypedNode), ""); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } +#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: -/* Line 1792 of yacc.c */ -#line 721 "glslang.y" +#line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.handleFunctionDeclarator((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).function, true /* prototype */); - (yyval.interm.intermNode) = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } +#line 4823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: -/* Line 1792 of yacc.c */ -#line 726 "glslang.y" +#line 755 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (2)].interm).intermNode && (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()) - (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[(1) - (2)].interm).intermNode; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } +#line 4832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: -/* Line 1792 of yacc.c */ -#line 731 "glslang.y" +#line 762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ENoProfile, 130, 0, "precision statement"); - - // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope - parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); - parseContext.setDefaultPrecision((yyvsp[(1) - (4)].lex).loc, (yyvsp[(3) - (4)].interm.type), (yyvsp[(2) - (4)].interm.type).qualifier.precision); - (yyval.interm.intermNode) = 0; + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: -/* Line 1792 of yacc.c */ -#line 739 "glslang.y" +#line 765 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.declareBlock((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).typeList); - (yyval.interm.intermNode) = 0; + parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + } } +#line 4853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: -/* Line 1792 of yacc.c */ -#line 743 "glslang.y" +#line 776 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.declareBlock((yyvsp[(1) - (3)].interm).loc, *(yyvsp[(1) - (3)].interm).typeList, (yyvsp[(2) - (3)].lex).string); - (yyval.interm.intermNode) = 0; + parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 4862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: -/* Line 1792 of yacc.c */ -#line 747 "glslang.y" +#line 783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.declareBlock((yyvsp[(1) - (4)].interm).loc, *(yyvsp[(1) - (4)].interm).typeList, (yyvsp[(2) - (4)].lex).string, (yyvsp[(3) - (4)].interm).arraySizes); + parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); (yyval.interm.intermNode) = 0; + // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } +#line 4872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: -/* Line 1792 of yacc.c */ -#line 751 "glslang.y" +#line 788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); - parseContext.updateStandaloneQualifierDefaults((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type)); - (yyval.interm.intermNode) = 0; + if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) + (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; } +#line 4882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: -/* Line 1792 of yacc.c */ -#line 756 "glslang.y" +#line 793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.checkNoShaderLayouts((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).shaderQualifiers); - parseContext.addQualifierToExisting((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).qualifier, *(yyvsp[(2) - (3)].lex).string); + parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); + + // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope + parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); + parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } +#line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: -/* Line 1792 of yacc.c */ -#line 761 "glslang.y" +#line 801 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); - (yyvsp[(3) - (4)].interm.identifierList)->push_back((yyvsp[(2) - (4)].lex).string); - parseContext.addQualifierToExisting((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier, *(yyvsp[(3) - (4)].interm.identifierList)); + parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); (yyval.interm.intermNode) = 0; } +#line 4904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 97: -/* Line 1792 of yacc.c */ -#line 770 "glslang.y" - { parseContext.nestedBlockCheck((yyvsp[(1) - (3)].interm.type).loc); } +#line 805 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); + (yyval.interm.intermNode) = 0; + } +#line 4913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: -/* Line 1792 of yacc.c */ -#line 770 "glslang.y" +#line 809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - --parseContext.structNestingLevel; - parseContext.blockName = (yyvsp[(2) - (6)].lex).string; - parseContext.globalQualifierFixCheck((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).qualifier); - parseContext.checkNoShaderLayouts((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).shaderQualifiers); - parseContext.currentBlockQualifier = (yyvsp[(1) - (6)].interm.type).qualifier; - (yyval.interm).loc = (yyvsp[(1) - (6)].interm.type).loc; - (yyval.interm).typeList = (yyvsp[(5) - (6)].interm.typeList); + parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); + (yyval.interm.intermNode) = 0; } +#line 4922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: -/* Line 1792 of yacc.c */ -#line 781 "glslang.y" +#line 813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.identifierList) = new TIdentifierList; - (yyval.interm.identifierList)->push_back((yyvsp[(2) - (2)].lex).string); + parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); + parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); + (yyval.interm.intermNode) = 0; } +#line 4932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: -/* Line 1792 of yacc.c */ -#line 785 "glslang.y" +#line 818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.identifierList) = (yyvsp[(1) - (3)].interm.identifierList); - (yyval.interm.identifierList)->push_back((yyvsp[(3) - (3)].lex).string); + parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); + parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); + (yyval.interm.intermNode) = 0; } +#line 4942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: -/* Line 1792 of yacc.c */ -#line 792 "glslang.y" +#line 823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).function = (yyvsp[(1) - (2)].interm.function); - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); + (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); + parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); + (yyval.interm.intermNode) = 0; } +#line 4953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: -/* Line 1792 of yacc.c */ -#line 799 "glslang.y" - { - (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); - } +#line 832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } +#line 4959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: -/* Line 1792 of yacc.c */ -#line 802 "glslang.y" +#line 832 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); + --parseContext.structNestingLevel; + parseContext.blockName = (yyvsp[-4].lex).string; + parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); + parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; + (yyval.interm).loc = (yyvsp[-5].interm.type).loc; + (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } +#line 4973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: -/* Line 1792 of yacc.c */ -#line 809 "glslang.y" +#line 843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - // Add the parameter - (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function); - if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid) - (yyvsp[(1) - (2)].interm.function)->addParameter((yyvsp[(2) - (2)].interm).param); - else - delete (yyvsp[(2) - (2)].interm).param.type; + (yyval.interm.identifierList) = new TIdentifierList; + (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } +#line 4982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: -/* Line 1792 of yacc.c */ -#line 817 "glslang.y" +#line 847 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); + (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); + } +#line 4991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 106: +#line 854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm).function = (yyvsp[-1].interm.function); + (yyval.interm).loc = (yyvsp[0].lex).loc; + } +#line 5000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 107: +#line 861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.function) = (yyvsp[0].interm.function); + } +#line 5008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 108: +#line 864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.function) = (yyvsp[0].interm.function); + } +#line 5016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 109: +#line 871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + // Add the parameter + (yyval.interm.function) = (yyvsp[-1].interm.function); + if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) + (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); + else + delete (yyvsp[0].interm).param.type; + } +#line 5029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 110: +#line 879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Only first parameter of one-parameter functions can be void // The check for named parameters not being void is done in parameter_declarator // - if ((yyvsp[(3) - (3)].interm).param.type->getBasicType() == EbtVoid) { + if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { // // This parameter > first is void // - parseContext.error((yyvsp[(2) - (3)].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); - delete (yyvsp[(3) - (3)].interm).param.type; + parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); + delete (yyvsp[0].interm).param.type; } else { // Add the parameter - (yyval.interm.function) = (yyvsp[(1) - (3)].interm.function); - (yyvsp[(1) - (3)].interm.function)->addParameter((yyvsp[(3) - (3)].interm).param); + (yyval.interm.function) = (yyvsp[-2].interm.function); + (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); } } - break; - - case 106: -/* Line 1792 of yacc.c */ -#line 837 "glslang.y" - { - if ((yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqTemporary) { - parseContext.error((yyvsp[(2) - (3)].lex).loc, "no qualifiers allowed for function return", - GetStorageQualifierString((yyvsp[(1) - (3)].interm.type).qualifier.storage), ""); - } - if ((yyvsp[(1) - (3)].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); - - // Add the function as a prototype after parsing it (we do not support recursion) - TFunction *function; - TType type((yyvsp[(1) - (3)].interm.type)); - function = new TFunction((yyvsp[(2) - (3)].lex).string, type); - (yyval.interm.function) = function; - } - break; - - case 107: -/* Line 1792 of yacc.c */ -#line 855 "glslang.y" - { - if ((yyvsp[(1) - (2)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (2)].interm.type).loc, *(yyvsp[(1) - (2)].interm.type).arraySizes); - } - if ((yyvsp[(1) - (2)].interm.type).basicType == EbtVoid) { - parseContext.error((yyvsp[(2) - (2)].lex).loc, "illegal use of type 'void'", (yyvsp[(2) - (2)].lex).string->c_str(), ""); - } - parseContext.reservedErrorCheck((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string); - - TParameter param = {(yyvsp[(2) - (2)].lex).string, new TType((yyvsp[(1) - (2)].interm.type))}; - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; - (yyval.interm).param = param; - } - break; - - case 108: -/* Line 1792 of yacc.c */ -#line 870 "glslang.y" - { - if ((yyvsp[(1) - (3)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); - } - parseContext.arrayDimCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.type).arraySizes, (yyvsp[(3) - (3)].interm).arraySizes); - - parseContext.arraySizeRequiredCheck((yyvsp[(3) - (3)].interm).loc, *(yyvsp[(3) - (3)].interm).arraySizes); - parseContext.reservedErrorCheck((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string); - - (yyvsp[(1) - (3)].interm.type).arraySizes = (yyvsp[(3) - (3)].interm).arraySizes; - - TParameter param = { (yyvsp[(2) - (3)].lex).string, new TType((yyvsp[(1) - (3)].interm.type))}; - (yyval.interm).loc = (yyvsp[(2) - (3)].lex).loc; - (yyval.interm).param = param; - } - break; - - case 109: -/* Line 1792 of yacc.c */ -#line 893 "glslang.y" - { - (yyval.interm) = (yyvsp[(2) - (2)].interm); - if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - - parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); - - } - break; - - case 110: -/* Line 1792 of yacc.c */ -#line 904 "glslang.y" - { - (yyval.interm) = (yyvsp[(1) - (1)].interm); - - parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - } +#line 5051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: -/* Line 1792 of yacc.c */ -#line 914 "glslang.y" +#line 899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(2) - (2)].interm); - if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyvsp[(1) - (2)].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { + parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", + GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); + } + if ((yyvsp[-2].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); + // Add the function as a prototype after parsing it (we do not support recursion) + TFunction *function; + TType type((yyvsp[-2].interm.type)); + + // Potentially rename shader entry point function. No-op most of the time. + parseContext.renameShaderFunction((yyvsp[-1].lex).string); + + // Make the function + function = new TFunction((yyvsp[-1].lex).string, type); + (yyval.interm.function) = function; } +#line 5075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: -/* Line 1792 of yacc.c */ -#line 924 "glslang.y" +#line 922 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + if ((yyvsp[-1].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); + } + if ((yyvsp[-1].interm.type).basicType == EbtVoid) { + parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); + } + parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); - parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; + (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).param = param; } +#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: -/* Line 1792 of yacc.c */ -#line 934 "glslang.y" +#line 937 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) }; + if ((yyvsp[-2].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + } + TType* type = new TType((yyvsp[-2].interm.type)); + type->transferArraySizes((yyvsp[0].interm).arraySizes); + type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); + + parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes()); + parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); + parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); + + TParameter param = { (yyvsp[-1].lex).string, type }; + + (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; - if ((yyvsp[(1) - (1)].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (1)].interm.type).loc, *(yyvsp[(1) - (1)].interm.type).arraySizes); } +#line 5119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: -/* Line 1792 of yacc.c */ -#line 943 "glslang.y" +#line 962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + (yyval.interm) = (yyvsp[0].interm); + if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + + parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); + } +#line 5135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: -/* Line 1792 of yacc.c */ -#line 946 "glslang.y" +#line 973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (3)].interm); - parseContext.declareVariable((yyvsp[(3) - (3)].lex).loc, *(yyvsp[(3) - (3)].lex).string, (yyvsp[(1) - (3)].interm).type); + (yyval.interm) = (yyvsp[0].interm); + + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); + parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } +#line 5147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: -/* Line 1792 of yacc.c */ -#line 950 "glslang.y" +#line 983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (4)].interm); - parseContext.declareVariable((yyvsp[(3) - (4)].lex).loc, *(yyvsp[(3) - (4)].lex).string, (yyvsp[(1) - (4)].interm).type, (yyvsp[(4) - (4)].interm).arraySizes); + (yyval.interm) = (yyvsp[0].interm); + if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + + parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } +#line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: -/* Line 1792 of yacc.c */ -#line 954 "glslang.y" +#line 993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (6)].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (6)].lex).loc, *(yyvsp[(3) - (6)].lex).string, (yyvsp[(1) - (6)].interm).type, (yyvsp[(4) - (6)].interm).arraySizes, (yyvsp[(6) - (6)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, initNode, (yyvsp[(5) - (6)].lex).loc); + (yyval.interm) = (yyvsp[0].interm); + + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); + parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } +#line 5174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: -/* Line 1792 of yacc.c */ -#line 959 "glslang.y" +#line 1003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (5)].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (5)].lex).loc, *(yyvsp[(3) - (5)].lex).string, (yyvsp[(1) - (5)].interm).type, 0, (yyvsp[(5) - (5)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (5)].interm).intermNode, initNode, (yyvsp[(4) - (5)].lex).loc); + TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; + (yyval.interm).param = param; + if ((yyvsp[0].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } +#line 5185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: -/* Line 1792 of yacc.c */ -#line 967 "glslang.y" +#line 1012 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (1)].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); + (yyval.interm) = (yyvsp[0].interm); } +#line 5193 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: -/* Line 1792 of yacc.c */ -#line 972 "glslang.y" +#line 1015 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (2)].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string, (yyvsp[(1) - (2)].interm.type)); + (yyval.interm) = (yyvsp[-2].interm); + parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); } +#line 5202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: -/* Line 1792 of yacc.c */ -#line 977 "glslang.y" +#line 1019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (3)].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string, (yyvsp[(1) - (3)].interm.type), (yyvsp[(3) - (3)].interm).arraySizes); + (yyval.interm) = (yyvsp[-3].interm); + parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); } +#line 5211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: -/* Line 1792 of yacc.c */ -#line 982 "glslang.y" +#line 1023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (5)].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (5)].lex).loc, *(yyvsp[(2) - (5)].lex).string, (yyvsp[(1) - (5)].interm.type), (yyvsp[(3) - (5)].interm).arraySizes, (yyvsp[(5) - (5)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(4) - (5)].lex).loc); + (yyval.interm).type = (yyvsp[-5].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } +#line 5221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: -/* Line 1792 of yacc.c */ -#line 987 "glslang.y" +#line 1028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (4)].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(3) - (4)].lex).loc); + (yyval.interm).type = (yyvsp[-4].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } +#line 5231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: -/* Line 1792 of yacc.c */ -#line 996 "glslang.y" +#line 1036 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm).type = (yyvsp[0].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); + } +#line 5241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; - parseContext.globalQualifierTypeCheck((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier, (yyval.interm.type)); - if ((yyvsp[(1) - (1)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + case 125: +#line 1041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm).type = (yyvsp[-1].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); + } +#line 5251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 126: +#line 1046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm).type = (yyvsp[-2].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); + } +#line 5261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 127: +#line 1051 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm).type = (yyvsp[-4].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + } +#line 5271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 128: +#line 1056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm).type = (yyvsp[-3].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + } +#line 5281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 129: +#line 1065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type) = (yyvsp[0].interm.type); + + parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); + if ((yyvsp[0].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } +#line 5297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 125: -/* Line 1792 of yacc.c */ -#line 1007 "glslang.y" + case 130: +#line 1076 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); - parseContext.globalQualifierTypeCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, (yyvsp[(2) - (2)].interm.type)); + parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); + parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); - if ((yyvsp[(2) - (2)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[0].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } - if ((yyvsp[(2) - (2)].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier)) - (yyvsp[(2) - (2)].interm.type).arraySizes = 0; + if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) + (yyvsp[0].interm.type).arraySizes = nullptr; - parseContext.checkNoShaderLayouts((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); - (yyvsp[(2) - (2)].interm.type).shaderQualifiers.merge((yyvsp[(1) - (2)].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).qualifier, (yyvsp[(1) - (2)].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).basicType, (yyvsp[(2) - (2)].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); + (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); - (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); if (! (yyval.interm.type).qualifier.isInterpolation() && ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } - break; - - case 126: -/* Line 1792 of yacc.c */ -#line 1034 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "invariant"); - parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.invariant = true; - } - break; - - case 127: -/* Line 1792 of yacc.c */ -#line 1043 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "smooth"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "smooth"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.smooth = true; - } - break; - - case 128: -/* Line 1792 of yacc.c */ -#line 1050 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "flat"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "flat"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.flat = true; - } - break; - - case 129: -/* Line 1792 of yacc.c */ -#line 1057 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "noperspective"); - parseContext.requireProfile((yyvsp[(1) - (1)].lex).loc, ~EEsProfile, "noperspective"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "noperspective"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.nopersp = true; - } - break; - - case 130: -/* Line 1792 of yacc.c */ -#line 1064 "glslang.y" - { -#ifdef AMD_EXTENSIONS - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "__explicitInterpAMD"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.explicitInterp = true; -#endif - } +#line 5326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: -/* Line 1792 of yacc.c */ -#line 1076 "glslang.y" +#line 1103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(3) - (4)].interm.type); + parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); + parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.invariant = true; } +#line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: -/* Line 1792 of yacc.c */ -#line 1082 "glslang.y" +#line 1112 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.smooth = true; } +#line 5349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: -/* Line 1792 of yacc.c */ -#line 1085 "glslang.y" +#line 1119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (3)].interm.type); - (yyval.interm.type).shaderQualifiers.merge((yyvsp[(3) - (3)].interm.type).shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[(3) - (3)].interm.type).qualifier, false); + parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.flat = true; } +#line 5361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: -/* Line 1792 of yacc.c */ -#line 1092 "glslang.y" +#line 1126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (1)].lex).string); + parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); +#ifdef NV_EXTENSIONS + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); +#else + parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective"); +#endif + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.nopersp = true; } +#line 5377 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: -/* Line 1792 of yacc.c */ -#line 1096 "glslang.y" +#line 1137 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (3)].lex).loc); - parseContext.setLayoutQualifier((yyvsp[(1) - (3)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (3)].lex).string, (yyvsp[(3) - (3)].interm.intermTypedNode)); +#ifdef AMD_EXTENSIONS + parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.explicitInterp = true; +#endif } +#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: -/* Line 1792 of yacc.c */ -#line 1100 "glslang.y" - { // because "shared" is both an identifier and a keyword - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - TString strShared("shared"); - parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), strShared); +#line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type) = (yyvsp[-1].interm.type); } +#line 5399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: -/* Line 1792 of yacc.c */ -#line 1108 "glslang.y" +#line 1155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.noContraction = true; + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 5407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -/* Line 1792 of yacc.c */ -#line 1117 "glslang.y" +#line 1158 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[-2].interm.type); + (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); + parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } +#line 5417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -/* Line 1792 of yacc.c */ -#line 1120 "glslang.y" +#line 1165 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); - if ((yyval.interm.type).basicType == EbtVoid) - (yyval.interm.type).basicType = (yyvsp[(2) - (2)].interm.type).basicType; - - (yyval.interm.type).shaderQualifiers.merge((yyvsp[(2) - (2)].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[(2) - (2)].interm.type).qualifier, false); + (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } +#line 5426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -/* Line 1792 of yacc.c */ -#line 1131 "glslang.y" +#line 1169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type).init((yyvsp[-2].lex).loc); + parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); } +#line 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -/* Line 1792 of yacc.c */ -#line 1134 "glslang.y" - { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); +#line 1173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { // because "shared" is both an identifier and a keyword + (yyval.interm.type).init((yyvsp[0].lex).loc); + TString strShared("shared"); + parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } +#line 5445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -/* Line 1792 of yacc.c */ -#line 1137 "glslang.y" +#line 1181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.checkPrecisionQualifier((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier.precision); - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.noContraction = true; } +#line 5456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -/* Line 1792 of yacc.c */ -#line 1141 "glslang.y" +#line 1190 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 5464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -/* Line 1792 of yacc.c */ -#line 1145 "glslang.y" +#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[-1].interm.type); + if ((yyval.interm.type).basicType == EbtVoid) + (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; + + (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } +#line 5477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -/* Line 1792 of yacc.c */ -#line 1149 "glslang.y" +#line 1204 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 5485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -/* Line 1792 of yacc.c */ -#line 1156 "glslang.y" +#line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 5493 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: -/* Line 1792 of yacc.c */ -#line 1160 "glslang.y" +#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "attribute"); - - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "attribute"); - - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqVaryingIn; + parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 5502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: -/* Line 1792 of yacc.c */ -#line 1172 "glslang.y" +#line 1214 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "varying"); + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[0].interm.type); + } +#line 5511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "varying"); + case 149: +#line 1218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[0].interm.type); + } +#line 5520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + case 150: +#line 1222 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[0].interm.type); + } +#line 5529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 151: +#line 1226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type) = (yyvsp[0].interm.type); + } +#line 5537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 152: +#line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant + } +#line 5546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 153: +#line 1236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); + parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); + parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); + + parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); + + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqVaryingIn; + } +#line 5563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 154: +#line 1248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); + parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); + + parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); + + (yyval.interm.type).init((yyvsp[0].lex).loc); if (parseContext.language == EShLangVertex) (yyval.interm.type).qualifier.storage = EvqVaryingOut; else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } - break; - - case 149: -/* Line 1792 of yacc.c */ -#line 1186 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "inout"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqInOut; - } - break; - - case 150: -/* Line 1792 of yacc.c */ -#line 1191 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "in"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqIn; - } - break; - - case 151: -/* Line 1792 of yacc.c */ -#line 1197 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "out"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqOut; - } - break; - - case 152: -/* Line 1792 of yacc.c */ -#line 1203 "glslang.y" - { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "centroid"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.centroid = true; - } - break; - - case 153: -/* Line 1792 of yacc.c */ -#line 1210 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "patch"); - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.patch = true; - } - break; - - case 154: -/* Line 1792 of yacc.c */ -#line 1216 "glslang.y" - { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "sample"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.sample = true; - } +#line 5582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -/* Line 1792 of yacc.c */ -#line 1221 "glslang.y" +#line 1262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "uniform"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; + parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqInOut; } +#line 5592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -/* Line 1792 of yacc.c */ -#line 1226 "glslang.y" +#line 1267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "buffer"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqBuffer; + parseContext.globalCheck((yyvsp[0].lex).loc, "in"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqIn; } +#line 5603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -/* Line 1792 of yacc.c */ -#line 1231 "glslang.y" +#line 1273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 310, 0, "shared"); - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangCompute, "shared"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqShared; + parseContext.globalCheck((yyvsp[0].lex).loc, "out"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqOut; } +#line 5614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -/* Line 1792 of yacc.c */ -#line 1238 "glslang.y" +#line 1279 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.coherent = true; + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); + parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.centroid = true; } +#line 5626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -/* Line 1792 of yacc.c */ -#line 1242 "glslang.y" +#line 1286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.volatil = true; + parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.patch = true; } +#line 5637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -/* Line 1792 of yacc.c */ -#line 1246 "glslang.y" +#line 1292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.restrict = true; + parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.sample = true; } +#line 5647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -/* Line 1792 of yacc.c */ -#line 1250 "glslang.y" +#line 1297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.readonly = true; + parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; } +#line 5657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -/* Line 1792 of yacc.c */ -#line 1254 "glslang.y" +#line 1302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.writeonly = true; + parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqBuffer; } +#line 5667 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: -/* Line 1792 of yacc.c */ -#line 1258 "glslang.y" +#line 1307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.spvRemoved((yyvsp[(1) - (1)].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; + parseContext.globalCheck((yyvsp[0].lex).loc, "shared"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqShared; } +#line 5680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -/* Line 1792 of yacc.c */ -#line 1264 "glslang.y" +#line 1315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.coherent = true; + } +#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 165: +#line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.volatil = true; + } +#line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 166: +#line 1323 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.restrict = true; + } +#line 5707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 167: +#line 1327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.readonly = true; + } +#line 5716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 168: +#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.writeonly = true; + } +#line 5725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 169: +#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); + parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + } +#line 5736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 170: +#line 1341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); + parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[-3].lex).loc); + } +#line 5747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 171: +#line 1350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.nonUniform = true; + } +#line 5756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 172: +#line 1357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + // TODO + } +#line 5764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 173: +#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.spvRemoved((yyvsp[(1) - (4)].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[(1) - (4)].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[(1) - (4)].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } - break; - - case 165: -/* Line 1792 of yacc.c */ -#line 1276 "glslang.y" - { - // TODO: 4.0 functionality: subroutine type to list - } - break; - - case 166: -/* Line 1792 of yacc.c */ -#line 1279 "glslang.y" - { - } - break; - - case 167: -/* Line 1792 of yacc.c */ -#line 1284 "glslang.y" - { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - } - break; - - case 168: -/* Line 1792 of yacc.c */ -#line 1288 "glslang.y" - { - parseContext.arrayDimCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); - (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).arraySizes = (yyvsp[(2) - (2)].interm).arraySizes; - } - break; - - case 169: -/* Line 1792 of yacc.c */ -#line 1297 "glslang.y" - { - (yyval.interm).loc = (yyvsp[(1) - (2)].lex).loc; - (yyval.interm).arraySizes = new TArraySizes; - (yyval.interm).arraySizes->addInnerSize(); - } - break; - - case 170: -/* Line 1792 of yacc.c */ -#line 1302 "glslang.y" - { - (yyval.interm).loc = (yyvsp[(1) - (3)].lex).loc; - (yyval.interm).arraySizes = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[(2) - (3)].interm.intermTypedNode)->getLoc(), (yyvsp[(2) - (3)].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); - } - break; - - case 171: -/* Line 1792 of yacc.c */ -#line 1310 "glslang.y" - { - (yyval.interm) = (yyvsp[(1) - (3)].interm); - (yyval.interm).arraySizes->addInnerSize(); - } - break; - - case 172: -/* Line 1792 of yacc.c */ -#line 1314 "glslang.y" - { - (yyval.interm) = (yyvsp[(1) - (4)].interm); - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[(3) - (4)].interm.intermTypedNode)->getLoc(), (yyvsp[(3) - (4)].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); - } - break; - - case 173: -/* Line 1792 of yacc.c */ -#line 1324 "glslang.y" - { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtVoid; - } +#line 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: -/* Line 1792 of yacc.c */ -#line 1328 "glslang.y" +#line 1368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } +#line 5783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: -/* Line 1792 of yacc.c */ -#line 1332 "glslang.y" +#line 1372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; + parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); + (yyval.interm.type) = (yyvsp[-1].interm.type); + (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); + (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } +#line 5794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: -/* Line 1792 of yacc.c */ -#line 1337 "glslang.y" +#line 1381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; -#endif + (yyval.interm).loc = (yyvsp[-1].lex).loc; + (yyval.interm).arraySizes = new TArraySizes; + (yyval.interm).arraySizes->addInnerSize(); } +#line 5804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: -/* Line 1792 of yacc.c */ -#line 1344 "glslang.y" +#line 1386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; + (yyval.interm).loc = (yyvsp[-2].lex).loc; + (yyval.interm).arraySizes = new TArraySizes; + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); } +#line 5817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: -/* Line 1792 of yacc.c */ -#line 1348 "glslang.y" +#line 1394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; + (yyval.interm) = (yyvsp[-2].interm); + (yyval.interm).arraySizes->addInnerSize(); } +#line 5826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: -/* Line 1792 of yacc.c */ -#line 1353 "glslang.y" +#line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; + (yyval.interm) = (yyvsp[-3].interm); + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); } +#line 5838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: -/* Line 1792 of yacc.c */ -#line 1358 "glslang.y" +#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtVoid; } +#line 5847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: -/* Line 1792 of yacc.c */ -#line 1363 "glslang.y" +#line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; } +#line 5856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: -/* Line 1792 of yacc.c */ -#line 1367 "glslang.y" +#line 1416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; } +#line 5866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: -/* Line 1792 of yacc.c */ -#line 1372 "glslang.y" +#line 1421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); + parseContext.float16Check((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; } +#line 5876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: -/* Line 1792 of yacc.c */ -#line 1377 "glslang.y" +#line 1426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(4); } +#line 5886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -/* Line 1792 of yacc.c */ -#line 1382 "glslang.y" +#line 1431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(2); } +#line 5896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: -/* Line 1792 of yacc.c */ -#line 1388 "glslang.y" +#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(3); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; } +#line 5905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: -/* Line 1792 of yacc.c */ -#line 1394 "glslang.y" +#line 1440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(4); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; } +#line 5915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: -/* Line 1792 of yacc.c */ -#line 1400 "glslang.y" +#line 1445 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setVector(2); -#endif + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt8; } +#line 5925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: -/* Line 1792 of yacc.c */ -#line 1408 "glslang.y" +#line 1450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setVector(3); -#endif + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint8; } +#line 5935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: -/* Line 1792 of yacc.c */ -#line 1416 "glslang.y" +#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setVector(4); -#endif + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt16; } +#line 5945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: -/* Line 1792 of yacc.c */ -#line 1424 "glslang.y" +#line 1460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(2); + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint16; } +#line 5955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -/* Line 1792 of yacc.c */ -#line 1429 "glslang.y" +#line 1465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(3); + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; } +#line 5965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: -/* Line 1792 of yacc.c */ -#line 1434 "glslang.y" +#line 1470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(4); + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; } +#line 5975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: -/* Line 1792 of yacc.c */ -#line 1439 "glslang.y" +#line 1475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; } +#line 5985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: -/* Line 1792 of yacc.c */ -#line 1444 "glslang.y" +#line 1480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(3); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; } +#line 5995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: -/* Line 1792 of yacc.c */ -#line 1449 "glslang.y" +#line 1485 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(4); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; } +#line 6004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: -/* Line 1792 of yacc.c */ -#line 1454 "glslang.y" +#line 1489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } +#line 6014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: -/* Line 1792 of yacc.c */ -#line 1460 "glslang.y" +#line 1494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } +#line 6024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -/* Line 1792 of yacc.c */ -#line 1466 "glslang.y" +#line 1499 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } +#line 6034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: -/* Line 1792 of yacc.c */ -#line 1472 "glslang.y" +#line 1504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; + parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } +#line 6045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: -/* Line 1792 of yacc.c */ -#line 1478 "glslang.y" +#line 1510 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; + parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } +#line 6056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: -/* Line 1792 of yacc.c */ -#line 1484 "glslang.y" +#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; + parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } +#line 6067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: -/* Line 1792 of yacc.c */ -#line 1490 "glslang.y" +#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; + parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(2); } +#line 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: -/* Line 1792 of yacc.c */ -#line 1496 "glslang.y" +#line 1528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; + parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(3); } +#line 6089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: -/* Line 1792 of yacc.c */ -#line 1502 "glslang.y" +#line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; + parseContext.float16Check((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(4); } +#line 6100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: -/* Line 1792 of yacc.c */ -#line 1508 "glslang.y" +#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); + (yyval.interm.type).setVector(2); } +#line 6111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: -/* Line 1792 of yacc.c */ -#line 1513 "glslang.y" +#line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).setVector(3); } +#line 6122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: -/* Line 1792 of yacc.c */ -#line 1518 "glslang.y" +#line 1552 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).setVector(4); } +#line 6133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: -/* Line 1792 of yacc.c */ -#line 1523 "glslang.y" +#line 1558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(2); } +#line 6144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: -/* Line 1792 of yacc.c */ -#line 1528 "glslang.y" +#line 1564 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 3); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(3); } +#line 6155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: -/* Line 1792 of yacc.c */ -#line 1533 "glslang.y" +#line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 4); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(4); } +#line 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: -/* Line 1792 of yacc.c */ -#line 1538 "glslang.y" +#line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 2); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(2); } +#line 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: -/* Line 1792 of yacc.c */ -#line 1543 "glslang.y" +#line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(3); } +#line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: -/* Line 1792 of yacc.c */ -#line 1548 "glslang.y" +#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 4); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(4); } +#line 6196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: -/* Line 1792 of yacc.c */ -#line 1553 "glslang.y" +#line 1591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 2); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(2); } +#line 6206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: -/* Line 1792 of yacc.c */ -#line 1558 "glslang.y" +#line 1596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 3); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(3); } +#line 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: -/* Line 1792 of yacc.c */ -#line 1563 "glslang.y" +#line 1601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(4); } +#line 6226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: -/* Line 1792 of yacc.c */ -#line 1568 "glslang.y" +#line 1606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt8; + (yyval.interm.type).setVector(2); } +#line 6237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: -/* Line 1792 of yacc.c */ -#line 1574 "glslang.y" +#line 1612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt8; + (yyval.interm.type).setVector(3); } +#line 6248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: -/* Line 1792 of yacc.c */ -#line 1580 "glslang.y" +#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt8; + (yyval.interm.type).setVector(4); } +#line 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: -/* Line 1792 of yacc.c */ -#line 1586 "glslang.y" +#line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt16; + (yyval.interm.type).setVector(2); } +#line 6270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: -/* Line 1792 of yacc.c */ -#line 1592 "glslang.y" +#line 1630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 3); + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt16; + (yyval.interm.type).setVector(3); } +#line 6281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: -/* Line 1792 of yacc.c */ -#line 1598 "glslang.y" +#line 1636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 4); + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt16; + (yyval.interm.type).setVector(4); } +#line 6292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: -/* Line 1792 of yacc.c */ -#line 1604 "glslang.y" +#line 1642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 2); + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(2); } +#line 6303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: -/* Line 1792 of yacc.c */ -#line 1610 "glslang.y" +#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(3); } +#line 6314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: -/* Line 1792 of yacc.c */ -#line 1616 "glslang.y" +#line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 4); + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(4); } +#line 6325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: -/* Line 1792 of yacc.c */ -#line 1622 "glslang.y" +#line 1660 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 2); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(2); } +#line 6336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -/* Line 1792 of yacc.c */ -#line 1628 "glslang.y" +#line 1666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 3); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(3); } +#line 6347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -/* Line 1792 of yacc.c */ -#line 1634 "glslang.y" +#line 1672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(4); } +#line 6358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: -/* Line 1792 of yacc.c */ -#line 1640 "glslang.y" +#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 2); -#endif + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(2); } +#line 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -/* Line 1792 of yacc.c */ -#line 1648 "glslang.y" +#line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 3); -#endif + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(3); } +#line 6380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -/* Line 1792 of yacc.c */ -#line 1656 "glslang.y" +#line 1690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 4); -#endif + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(4); } +#line 6391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -/* Line 1792 of yacc.c */ -#line 1664 "glslang.y" +#line 1696 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 2); -#endif + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint8; + (yyval.interm.type).setVector(2); } +#line 6402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -/* Line 1792 of yacc.c */ -#line 1672 "glslang.y" +#line 1702 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 3); -#endif + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt8; + (yyval.interm.type).setVector(3); } +#line 6413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -/* Line 1792 of yacc.c */ -#line 1680 "glslang.y" +#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(2, 4); -#endif + parseContext.explicitInt8Check((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint8; + (yyval.interm.type).setVector(4); } +#line 6424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -/* Line 1792 of yacc.c */ -#line 1688 "glslang.y" +#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 2); -#endif + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint16; + (yyval.interm.type).setVector(2); } +#line 6435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -/* Line 1792 of yacc.c */ -#line 1696 "glslang.y" +#line 1720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 3); -#endif + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint16; + (yyval.interm.type).setVector(3); } +#line 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -/* Line 1792 of yacc.c */ -#line 1704 "glslang.y" +#line 1726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(3, 4); -#endif + parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint16; + (yyval.interm.type).setVector(4); } +#line 6457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -/* Line 1792 of yacc.c */ -#line 1712 "glslang.y" +#line 1732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 2); -#endif + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(2); } +#line 6468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -/* Line 1792 of yacc.c */ -#line 1720 "glslang.y" +#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 3); -#endif + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(3); } +#line 6479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -/* Line 1792 of yacc.c */ -#line 1728 "glslang.y" +#line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { -#ifdef AMD_EXTENSIONS - parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat16; - (yyval.interm.type).setMatrix(4, 4); -#endif + parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(4); } +#line 6490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -/* Line 1792 of yacc.c */ -#line 1736 "glslang.y" +#line 1750 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.vulkanRemoved((yyvsp[(1) - (1)].lex).loc, "atomic counter types"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtAtomicUint; + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(2); } +#line 6501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -/* Line 1792 of yacc.c */ -#line 1741 "glslang.y" +#line 1756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(3); } +#line 6512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: -/* Line 1792 of yacc.c */ -#line 1746 "glslang.y" +#line 1762 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(4); } +#line 6523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: -/* Line 1792 of yacc.c */ -#line 1751 "glslang.y" +#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd3D); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); } +#line 6533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -/* Line 1792 of yacc.c */ -#line 1756 "glslang.y" +#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); } +#line 6543 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -/* Line 1792 of yacc.c */ -#line 1761 "glslang.y" +#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } +#line 6553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -/* Line 1792 of yacc.c */ -#line 1766 "glslang.y" +#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); } +#line 6563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -/* Line 1792 of yacc.c */ -#line 1771 "glslang.y" +#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 3); } +#line 6573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: -/* Line 1792 of yacc.c */ -#line 1776 "glslang.y" +#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 4); } +#line 6583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: -/* Line 1792 of yacc.c */ -#line 1781 "glslang.y" +#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 2); } +#line 6593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -/* Line 1792 of yacc.c */ -#line 1786 "glslang.y" +#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); } +#line 6603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -/* Line 1792 of yacc.c */ -#line 1791 "glslang.y" +#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 4); } +#line 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: -/* Line 1792 of yacc.c */ -#line 1796 "glslang.y" +#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 2); } +#line 6623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: -/* Line 1792 of yacc.c */ -#line 1801 "glslang.y" +#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 3); } +#line 6633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -/* Line 1792 of yacc.c */ -#line 1806 "glslang.y" +#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } +#line 6643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -/* Line 1792 of yacc.c */ -#line 1811 "glslang.y" +#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); } +#line 6654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -/* Line 1792 of yacc.c */ -#line 1816 "glslang.y" +#line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd3D); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); } +#line 6665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -/* Line 1792 of yacc.c */ -#line 1821 "glslang.y" +#line 1840 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); } +#line 6676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: -/* Line 1792 of yacc.c */ -#line 1826 "glslang.y" +#line 1846 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); } +#line 6687 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: -/* Line 1792 of yacc.c */ -#line 1831 "glslang.y" +#line 1852 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 3); } +#line 6698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -/* Line 1792 of yacc.c */ -#line 1836 "glslang.y" +#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 4); } +#line 6709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: -/* Line 1792 of yacc.c */ -#line 1841 "glslang.y" +#line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 2); } +#line 6720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -/* Line 1792 of yacc.c */ -#line 1846 "glslang.y" +#line 1870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); } +#line 6731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -/* Line 1792 of yacc.c */ -#line 1851 "glslang.y" +#line 1876 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd3D); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 4); } +#line 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: -/* Line 1792 of yacc.c */ -#line 1856 "glslang.y" +#line 1882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 2); } +#line 6753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -/* Line 1792 of yacc.c */ -#line 1861 "glslang.y" +#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 3); } +#line 6764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -/* Line 1792 of yacc.c */ -#line 1866 "glslang.y" +#line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); } +#line 6775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -/* Line 1792 of yacc.c */ -#line 1871 "glslang.y" +#line 1900 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 2); } +#line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: -/* Line 1792 of yacc.c */ -#line 1876 "glslang.y" +#line 1906 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 3); } +#line 6797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -/* Line 1792 of yacc.c */ -#line 1881 "glslang.y" +#line 1912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 4); } +#line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -/* Line 1792 of yacc.c */ -#line 1886 "glslang.y" +#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdRect); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 2); } +#line 6819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: -/* Line 1792 of yacc.c */ -#line 1891 "glslang.y" +#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdRect); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 3); } +#line 6830 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: -/* Line 1792 of yacc.c */ -#line 1896 "glslang.y" +#line 1930 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 4); } +#line 6841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: -/* Line 1792 of yacc.c */ -#line 1901 "glslang.y" +#line 1936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 2); } +#line 6852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: -/* Line 1792 of yacc.c */ -#line 1906 "glslang.y" +#line 1942 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 3); } +#line 6863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: -/* Line 1792 of yacc.c */ -#line 1911 "glslang.y" +#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 4); } +#line 6874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -/* Line 1792 of yacc.c */ -#line 1916 "glslang.y" +#line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 2); } +#line 6885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -/* Line 1792 of yacc.c */ -#line 1921 "glslang.y" +#line 1960 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 3); } +#line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -/* Line 1792 of yacc.c */ -#line 1926 "glslang.y" +#line 1966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); + parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 4); } +#line 6907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -/* Line 1792 of yacc.c */ -#line 1931 "glslang.y" +#line 1972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); } +#line 6918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -/* Line 1792 of yacc.c */ -#line 1936 "glslang.y" +#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); } +#line 6929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: -/* Line 1792 of yacc.c */ -#line 1941 "glslang.y" +#line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(false); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } +#line 6940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: -/* Line 1792 of yacc.c */ -#line 1946 "glslang.y" +#line 1990 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(true); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); } +#line 6951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: -/* Line 1792 of yacc.c */ -#line 1951 "glslang.y" +#line 1996 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 3); } +#line 6962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: -/* Line 1792 of yacc.c */ -#line 1956 "glslang.y" +#line 2002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 4); } +#line 6973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -/* Line 1792 of yacc.c */ -#line 1961 "glslang.y" +#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 2); } +#line 6984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -/* Line 1792 of yacc.c */ -#line 1966 "glslang.y" +#line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); } +#line 6995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: -/* Line 1792 of yacc.c */ -#line 1971 "glslang.y" +#line 2020 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 4); } +#line 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: -/* Line 1792 of yacc.c */ -#line 1976 "glslang.y" +#line 2026 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 2); } +#line 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -/* Line 1792 of yacc.c */ -#line 1981 "glslang.y" +#line 2032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 3); } +#line 7028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -/* Line 1792 of yacc.c */ -#line 1986 "glslang.y" +#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); + parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } +#line 7039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -/* Line 1792 of yacc.c */ -#line 1991 "glslang.y" +#line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); } +#line 7050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: -/* Line 1792 of yacc.c */ -#line 1996 "glslang.y" +#line 2050 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); } +#line 7061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: -/* Line 1792 of yacc.c */ -#line 2001 "glslang.y" +#line 2056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); } +#line 7072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: -/* Line 1792 of yacc.c */ -#line 2006 "glslang.y" +#line 2062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); } +#line 7083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: -/* Line 1792 of yacc.c */ -#line 2011 "glslang.y" +#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 3); } +#line 7094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: -/* Line 1792 of yacc.c */ -#line 2016 "glslang.y" +#line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 4); } +#line 7105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: -/* Line 1792 of yacc.c */ -#line 2021 "glslang.y" +#line 2080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 2); } +#line 7116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: -/* Line 1792 of yacc.c */ -#line 2026 "glslang.y" +#line 2086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); } +#line 7127 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: -/* Line 1792 of yacc.c */ -#line 2031 "glslang.y" +#line 2092 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 4); } +#line 7138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: -/* Line 1792 of yacc.c */ -#line 2036 "glslang.y" +#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 2); } +#line 7149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: -/* Line 1792 of yacc.c */ -#line 2041 "glslang.y" +#line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 3); } +#line 7160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: -/* Line 1792 of yacc.c */ -#line 2046 "glslang.y" +#line 2110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); + parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); } +#line 7171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: -/* Line 1792 of yacc.c */ -#line 2051 "glslang.y" +#line 2116 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); + parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtAtomicUint; } +#line 7181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: -/* Line 1792 of yacc.c */ -#line 2056 "glslang.y" +#line 2121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } +#line 7191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: -/* Line 1792 of yacc.c */ -#line 2061 "glslang.y" +#line 2126 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } +#line 7201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: -/* Line 1792 of yacc.c */ -#line 2066 "glslang.y" +#line 2131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } +#line 7211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: -/* Line 1792 of yacc.c */ -#line 2071 "glslang.y" +#line 2136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } +#line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: -/* Line 1792 of yacc.c */ -#line 2076 "glslang.y" +#line 2141 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } +#line 7231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: -/* Line 1792 of yacc.c */ -#line 2081 "glslang.y" +#line 2146 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } +#line 7241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: -/* Line 1792 of yacc.c */ -#line 2086 "glslang.y" +#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } +#line 7251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: -/* Line 1792 of yacc.c */ -#line 2091 "glslang.y" +#line 2156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } +#line 7261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: -/* Line 1792 of yacc.c */ -#line 2096 "glslang.y" +#line 2161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } +#line 7271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: -/* Line 1792 of yacc.c */ -#line 2101 "glslang.y" +#line 2166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } +#line 7281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: -/* Line 1792 of yacc.c */ -#line 2106 "glslang.y" +#line 2171 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } +#line 7291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: -/* Line 1792 of yacc.c */ -#line 2111 "glslang.y" +#line 2176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } +#line 7301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: -/* Line 1792 of yacc.c */ -#line 2116 "glslang.y" +#line 2181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } +#line 7311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: -/* Line 1792 of yacc.c */ -#line 2121 "glslang.y" +#line 2186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); + (yyval.interm.type).sampler.set(EbtFloat16, Esd1D); +#endif } +#line 7324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: -/* Line 1792 of yacc.c */ -#line 2126 "glslang.y" +#line 2194 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); + (yyval.interm.type).sampler.set(EbtFloat16, Esd2D); +#endif } +#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: -/* Line 1792 of yacc.c */ -#line 2131 "glslang.y" +#line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); + (yyval.interm.type).sampler.set(EbtFloat16, Esd3D); +#endif } +#line 7350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: -/* Line 1792 of yacc.c */ -#line 2136 "glslang.y" +#line 2210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); + (yyval.interm.type).sampler.set(EbtFloat16, EsdCube); +#endif } +#line 7363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: -/* Line 1792 of yacc.c */ -#line 2141 "glslang.y" +#line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); + (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true); +#endif } +#line 7376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: -/* Line 1792 of yacc.c */ -#line 2146 "glslang.y" +#line 2226 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true); +#endif } +#line 7389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: -/* Line 1792 of yacc.c */ -#line 2151 "glslang.y" +#line 2234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true); +#endif } +#line 7402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: -/* Line 1792 of yacc.c */ -#line 2156 "glslang.y" +#line 2242 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true); +#endif } +#line 7415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: -/* Line 1792 of yacc.c */ -#line 2161 "glslang.y" +#line 2250 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true); +#endif } +#line 7428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: -/* Line 1792 of yacc.c */ -#line 2166 "glslang.y" +#line 2258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true); +#endif } +#line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: -/* Line 1792 of yacc.c */ -#line 2171 "glslang.y" +#line 2266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true); +#endif } +#line 7454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: -/* Line 1792 of yacc.c */ -#line 2176 "glslang.y" +#line 2274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); + (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true); +#endif } +#line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: -/* Line 1792 of yacc.c */ -#line 2181 "glslang.y" +#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); + (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true); +#endif } +#line 7480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: -/* Line 1792 of yacc.c */ -#line 2186 "glslang.y" +#line 2290 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); + (yyval.interm.type).sampler.set(EbtInt, Esd1D); } +#line 7490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -/* Line 1792 of yacc.c */ -#line 2191 "glslang.y" +#line 2295 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.set(EbtInt, Esd2D); } +#line 7500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: -/* Line 1792 of yacc.c */ -#line 2196 "glslang.y" +#line 2300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.set(EbtInt, Esd3D); } +#line 7510 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: -/* Line 1792 of yacc.c */ -#line 2201 "glslang.y" +#line 2305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.set(EbtInt, EsdCube); } +#line 7520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: -/* Line 1792 of yacc.c */ -#line 2206 "glslang.y" +#line 2310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); + (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } +#line 7530 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: -/* Line 1792 of yacc.c */ -#line 2211 "glslang.y" +#line 2315 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } +#line 7540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: -/* Line 1792 of yacc.c */ -#line 2216 "glslang.y" +#line 2320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); + (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } +#line 7550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: -/* Line 1792 of yacc.c */ -#line 2221 "glslang.y" +#line 2325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.set(EbtUint, Esd1D); } +#line 7560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: -/* Line 1792 of yacc.c */ -#line 2226 "glslang.y" +#line 2330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.set(EbtUint, Esd2D); } +#line 7570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: -/* Line 1792 of yacc.c */ -#line 2231 "glslang.y" +#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.set(EbtUint, Esd3D); } +#line 7580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 342: -/* Line 1792 of yacc.c */ -#line 2236 "glslang.y" +#line 2340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); + (yyval.interm.type).sampler.set(EbtUint, EsdCube); } +#line 7590 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: -/* Line 1792 of yacc.c */ -#line 2241 "glslang.y" +#line 2345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); + (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } +#line 7600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 344: -/* Line 1792 of yacc.c */ -#line 2246 "glslang.y" +#line 2350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } +#line 7610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: -/* Line 1792 of yacc.c */ -#line 2251 "glslang.y" +#line 2355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } +#line 7620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 346: -/* Line 1792 of yacc.c */ -#line 2256 "glslang.y" +#line 2360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } +#line 7630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 347: -/* Line 1792 of yacc.c */ -#line 2261 "glslang.y" +#line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } +#line 7640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 348: -/* Line 1792 of yacc.c */ -#line 2266 "glslang.y" +#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtFloat16, EsdRect); +#endif } +#line 7653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 349: -/* Line 1792 of yacc.c */ -#line 2271 "glslang.y" +#line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true); +#endif } +#line 7666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: -/* Line 1792 of yacc.c */ -#line 2276 "glslang.y" +#line 2386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtInt, EsdRect); } +#line 7676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: -/* Line 1792 of yacc.c */ -#line 2281 "glslang.y" +#line 2391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, EsdRect); + } +#line 7686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 352: +#line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); + } +#line 7696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 353: +#line 2401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer); +#endif + } +#line 7709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 354: +#line 2409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); + } +#line 7719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 355: +#line 2414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); + } +#line 7729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 356: +#line 2419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); + } +#line 7739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 357: +#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true); +#endif + } +#line 7752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 358: +#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); + } +#line 7762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 359: +#line 2437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); + } +#line 7772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 360: +#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); + } +#line 7782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 361: +#line 2447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true); +#endif + } +#line 7795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 362: +#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); + } +#line 7805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 363: +#line 2460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); + } +#line 7815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 364: +#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setPureSampler(false); + } +#line 7825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 365: +#line 2470 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setPureSampler(true); + } +#line 7835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 366: +#line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); + } +#line 7845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 367: +#line 2480 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D); +#endif + } +#line 7858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 368: +#line 2488 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); + } +#line 7868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 369: +#line 2493 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D); +#endif + } +#line 7881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 370: +#line 2501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); + } +#line 7891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 371: +#line 2506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D); +#endif + } +#line 7904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 372: +#line 2514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); + } +#line 7914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 373: +#line 2519 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube); +#endif + } +#line 7927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 374: +#line 2527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); + } +#line 7937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 375: +#line 2532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true); +#endif + } +#line 7950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 376: +#line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); + } +#line 7960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 377: +#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true); +#endif + } +#line 7973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 378: +#line 2553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); + } +#line 7983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 379: +#line 2558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true); +#endif + } +#line 7996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 380: +#line 2566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); + } +#line 8006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 381: +#line 2571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); + } +#line 8016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 382: +#line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); + } +#line 8026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 383: +#line 2581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); + } +#line 8036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 384: +#line 2586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); + } +#line 8046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 385: +#line 2591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); + } +#line 8056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 386: +#line 2596 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); + } +#line 8066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 387: +#line 2601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); + } +#line 8076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 388: +#line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); + } +#line 8086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 389: +#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); + } +#line 8096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 390: +#line 2616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); + } +#line 8106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 391: +#line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); + } +#line 8116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 392: +#line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); + } +#line 8126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 393: +#line 2631 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); + } +#line 8136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 394: +#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); + } +#line 8146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 395: +#line 2641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect); +#endif + } +#line 8159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 396: +#line 2649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); + } +#line 8169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 397: +#line 2654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); + } +#line 8179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 398: +#line 2659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); + } +#line 8189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 399: +#line 2664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer); +#endif + } +#line 8202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 400: +#line 2672 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); + } +#line 8212 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 401: +#line 2677 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); + } +#line 8222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 402: +#line 2682 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); + } +#line 8232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 403: +#line 2687 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true); +#endif + } +#line 8245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 404: +#line 2695 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); + } +#line 8255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 405: +#line 2700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); + } +#line 8265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 406: +#line 2705 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); + } +#line 8275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 407: +#line 2710 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true); +#endif + } +#line 8288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 408: +#line 2718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); + } +#line 8298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 409: +#line 2723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); + } +#line 8308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 410: +#line 2728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); + } +#line 8318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 411: +#line 2733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D); +#endif + } +#line 8331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 412: +#line 2741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); + } +#line 8341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 413: +#line 2746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); + } +#line 8351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 414: +#line 2751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); + } +#line 8361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 415: +#line 2756 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D); +#endif + } +#line 8374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 416: +#line 2764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); + } +#line 8384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 417: +#line 2769 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); + } +#line 8394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 418: +#line 2774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); + } +#line 8404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 419: +#line 2779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D); +#endif + } +#line 8417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 420: +#line 2787 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); + } +#line 8427 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 421: +#line 2792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); + } +#line 8437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 422: +#line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); + } +#line 8447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 423: +#line 2802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect); +#endif + } +#line 8460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 424: +#line 2810 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); + } +#line 8470 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 425: +#line 2815 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); + } +#line 8480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 426: +#line 2820 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); + } +#line 8490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 427: +#line 2825 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube); +#endif + } +#line 8503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 428: +#line 2833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); + } +#line 8513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 429: +#line 2838 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); + } +#line 8523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 430: +#line 2843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); + } +#line 8533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 431: +#line 2848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer); +#endif + } +#line 8546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 432: +#line 2856 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); + } +#line 8556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 433: +#line 2861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); + } +#line 8566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 434: +#line 2866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); + } +#line 8576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 435: +#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true); +#endif + } +#line 8589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 436: +#line 2879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); + } +#line 8599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 437: +#line 2884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); + } +#line 8609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 438: +#line 2889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); + } +#line 8619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 439: +#line 2894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true); +#endif + } +#line 8632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 440: +#line 2902 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); + } +#line 8642 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 441: +#line 2907 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); + } +#line 8652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 442: +#line 2912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); + } +#line 8662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 443: +#line 2917 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true); +#endif + } +#line 8675 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 444: +#line 2925 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); + } +#line 8685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 445: +#line 2930 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); + } +#line 8695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 446: +#line 2935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); + } +#line 8705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 447: +#line 2940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true); +#endif + } +#line 8718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 448: +#line 2948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); + } +#line 8728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 449: +#line 2953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); + } +#line 8738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 450: +#line 2958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); + } +#line 8748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 451: +#line 2963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true); +#endif + } +#line 8761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 452: +#line 2971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); + } +#line 8771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 453: +#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); + } +#line 8781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 454: +#line 2981 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // GL_OES_EGL_image_external - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } +#line 8792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 352: -/* Line 1792 of yacc.c */ -#line 2287 "glslang.y" + case 455: +#line 2987 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } +#line 8803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 353: -/* Line 1792 of yacc.c */ -#line 2293 "glslang.y" + case 456: +#line 2993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } +#line 8814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 354: -/* Line 1792 of yacc.c */ -#line 2299 "glslang.y" + case 457: +#line 2999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtFloat16); +#endif + } +#line 8828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 458: +#line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { +#ifdef AMD_EXTENSIONS + parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtFloat16, true); +#endif + } +#line 8842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 459: +#line 3017 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } +#line 8853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 355: -/* Line 1792 of yacc.c */ -#line 2305 "glslang.y" + case 460: +#line 3023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } +#line 8864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 356: -/* Line 1792 of yacc.c */ -#line 2311 "glslang.y" + case 461: +#line 3029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } +#line 8875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 357: -/* Line 1792 of yacc.c */ -#line 2317 "glslang.y" + case 462: +#line 3035 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } +#line 8886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 358: -/* Line 1792 of yacc.c */ -#line 2323 "glslang.y" + case 463: +#line 3041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } +#line 8896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 359: -/* Line 1792 of yacc.c */ -#line 2328 "glslang.y" + case 464: +#line 3046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the // type. // - if (const TVariable* variable = ((yyvsp[(1) - (1)].lex).symbol)->getAsVariable()) { + if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { const TType& structure = variable->getType(); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = &structure; } else - parseContext.error((yyvsp[(1) - (1)].lex).loc, "expected type name", (yyvsp[(1) - (1)].lex).string->c_str(), ""); + parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } +#line 8914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 360: -/* Line 1792 of yacc.c */ -#line 2344 "glslang.y" + case 465: +#line 3062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqHigh); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } +#line 8924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 361: -/* Line 1792 of yacc.c */ -#line 2349 "glslang.y" + case 466: +#line 3067 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqMedium); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } +#line 8934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 362: -/* Line 1792 of yacc.c */ -#line 2354 "glslang.y" + case 467: +#line 3072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqLow); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); } +#line 8944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 363: -/* Line 1792 of yacc.c */ -#line 2362 "glslang.y" - { parseContext.nestedStructCheck((yyvsp[(1) - (3)].lex).loc); } + case 468: +#line 3080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } +#line 8950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 364: -/* Line 1792 of yacc.c */ -#line 2362 "glslang.y" + case 469: +#line 3080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TType* structure = new TType((yyvsp[(5) - (6)].interm.typeList), *(yyvsp[(2) - (6)].lex).string); - parseContext.structArrayCheck((yyvsp[(2) - (6)].lex).loc, *structure); - TVariable* userTypeDef = new TVariable((yyvsp[(2) - (6)].lex).string, *structure, true); + TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); + parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); + TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error((yyvsp[(2) - (6)].lex).loc, "redefinition", (yyvsp[(2) - (6)].lex).string->c_str(), "struct"); - (yyval.interm.type).init((yyvsp[(1) - (6)].lex).loc); + parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); + (yyval.interm.type).init((yyvsp[-5].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } +#line 8966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 365: -/* Line 1792 of yacc.c */ -#line 2373 "glslang.y" - { parseContext.nestedStructCheck((yyvsp[(1) - (2)].lex).loc); } + case 470: +#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } +#line 8972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 366: -/* Line 1792 of yacc.c */ -#line 2373 "glslang.y" + case 471: +#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); - (yyval.interm.type).init((yyvsp[(1) - (5)].lex).loc); + TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); + (yyval.interm.type).init((yyvsp[-4].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } +#line 8984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 367: -/* Line 1792 of yacc.c */ -#line 2383 "glslang.y" + case 472: +#line 3101 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); + (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } +#line 8992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 368: -/* Line 1792 of yacc.c */ -#line 2386 "glslang.y" + case 473: +#line 3104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); - for (unsigned int i = 0; i < (yyvsp[(2) - (2)].interm.typeList)->size(); ++i) { + (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); + for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { - if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName()) - parseContext.error((*(yyvsp[(2) - (2)].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName().c_str()); + if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) + parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); } - (yyval.interm.typeList)->push_back((*(yyvsp[(2) - (2)].interm.typeList))[i]); + (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } +#line 9007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 369: -/* Line 1792 of yacc.c */ -#line 2399 "glslang.y" + case 474: +#line 3117 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (3)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[-2].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); } - (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); + (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - parseContext.voidErrorCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyvsp[(2) - (3)].interm.typeList))[0].type->getFieldName(), (yyvsp[(1) - (3)].interm.type).basicType); - parseContext.precisionQualifierCheck((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).basicType, (yyvsp[(1) - (3)].interm.type).qualifier); + parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); + parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(1) - (3)].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(1) - (3)].interm.type)); + TType type((yyvsp[-2].interm.type)); + type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName()); + type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes()); + type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); + parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes()); + (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } +#line 9034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 370: -/* Line 1792 of yacc.c */ -#line 2417 "glslang.y" + case 475: +#line 3139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalQualifierFixCheck((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier); - if ((yyvsp[(2) - (4)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[-2].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[(2) - (4)].interm.type).loc, *(yyvsp[(2) - (4)].interm.type).arraySizes); + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); } - (yyval.interm.typeList) = (yyvsp[(3) - (4)].interm.typeList); + (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); - parseContext.voidErrorCheck((yyvsp[(2) - (4)].interm.type).loc, (*(yyvsp[(3) - (4)].interm.typeList))[0].type->getFieldName(), (yyvsp[(2) - (4)].interm.type).basicType); - parseContext.mergeQualifiers((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).qualifier, (yyvsp[(1) - (4)].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).basicType, (yyvsp[(2) - (4)].interm.type).qualifier); + parseContext.memberQualifierCheck((yyvsp[-3].interm.type)); + parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); + parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[(1) - (4)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(2) - (4)].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(2) - (4)].interm.type)); + TType type((yyvsp[-2].interm.type)); + type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName()); + type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes()); + type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); + parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes()); + (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } +#line 9063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 371: -/* Line 1792 of yacc.c */ -#line 2441 "glslang.y" + case 476: +#line 3166 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; - (yyval.interm.typeList)->push_back((yyvsp[(1) - (1)].interm.typeLine)); + (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } +#line 9072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 372: -/* Line 1792 of yacc.c */ -#line 2445 "glslang.y" + case 477: +#line 3170 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); + (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } +#line 9080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 373: -/* Line 1792 of yacc.c */ -#line 2451 "glslang.y" + case 478: +#line 3176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (1)].lex).string); + (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } +#line 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 374: -/* Line 1792 of yacc.c */ -#line 2456 "glslang.y" + case 479: +#line 3181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayDimCheck((yyvsp[(1) - (2)].lex).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[(1) - (2)].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (2)].lex).string); - (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[(2) - (2)].interm).arraySizes); + (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); + (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } +#line 9103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 375: -/* Line 1792 of yacc.c */ -#line 2467 "glslang.y" + case 480: +#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 9111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 376: -/* Line 1792 of yacc.c */ -#line 2470 "glslang.y" + case 481: +#line 3195 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } +#line 9122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 377: -/* Line 1792 of yacc.c */ -#line 2476 "glslang.y" + case 482: +#line 3201 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (4)].interm.intermTypedNode); + parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 9133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 378: -/* Line 1792 of yacc.c */ -#line 2485 "glslang.y" + case 483: +#line 3210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[(1) - (1)].interm.intermTypedNode), (yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc()); + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } +#line 9141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 379: -/* Line 1792 of yacc.c */ -#line 2488 "glslang.y" + case 484: +#line 3213 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } +#line 9149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 380: -/* Line 1792 of yacc.c */ -#line 2494 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 485: +#line 3219 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 381: -/* Line 1792 of yacc.c */ -#line 2498 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 486: +#line 3223 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 382: -/* Line 1792 of yacc.c */ -#line 2499 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 487: +#line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 383: -/* Line 1792 of yacc.c */ -#line 2505 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 488: +#line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 384: -/* Line 1792 of yacc.c */ -#line 2506 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 489: +#line 3231 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 385: -/* Line 1792 of yacc.c */ -#line 2507 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 490: +#line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9185 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 386: -/* Line 1792 of yacc.c */ -#line 2508 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 491: +#line 3233 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 387: -/* Line 1792 of yacc.c */ -#line 2509 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 492: +#line 3234 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 388: -/* Line 1792 of yacc.c */ -#line 2510 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 493: +#line 3235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 389: -/* Line 1792 of yacc.c */ -#line 2511 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 494: +#line 3236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 390: -/* Line 1792 of yacc.c */ -#line 2515 "glslang.y" + case 495: +#line 3240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 9215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 391: -/* Line 1792 of yacc.c */ -#line 2516 "glslang.y" + case 496: +#line 3241 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } +#line 9224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 392: -/* Line 1792 of yacc.c */ -#line 2520 "glslang.y" + case 497: +#line 3245 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } +#line 9233 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 393: -/* Line 1792 of yacc.c */ -#line 2524 "glslang.y" + case 498: +#line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(3) - (5)].interm.intermNode) && (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()) - (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[(3) - (5)].interm.intermNode); + if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) + (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } +#line 9243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 394: -/* Line 1792 of yacc.c */ -#line 2532 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 499: +#line 3257 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 395: -/* Line 1792 of yacc.c */ -#line 2533 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + case 500: +#line 3258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 396: -/* Line 1792 of yacc.c */ -#line 2537 "glslang.y" + case 501: +#line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } +#line 9263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 397: -/* Line 1792 of yacc.c */ -#line 2540 "glslang.y" + case 502: +#line 3265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 398: -/* Line 1792 of yacc.c */ -#line 2544 "glslang.y" + case 503: +#line 3269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 9282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 399: -/* Line 1792 of yacc.c */ -#line 2549 "glslang.y" + case 504: +#line 3274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 400: -/* Line 1792 of yacc.c */ -#line 2558 "glslang.y" + case 505: +#line 3283 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 9301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 401: -/* Line 1792 of yacc.c */ -#line 2561 "glslang.y" + case 506: +#line 3286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (3)].interm.intermNode) && (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()) - (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermNode); + if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) + (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } +#line 9311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 402: -/* Line 1792 of yacc.c */ -#line 2569 "glslang.y" + case 507: +#line 3294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode)); - if ((yyvsp[(1) - (1)].interm.intermNode) && (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, (yyvsp[(1) - (1)].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); + if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } +#line 9324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 403: -/* Line 1792 of yacc.c */ -#line 2577 "glslang.y" + case 508: +#line 3302 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (2)].interm.intermNode) && (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence((yyvsp[(1) - (2)].interm.intermNode) ? (yyvsp[(1) - (2)].interm.intermNode)->getAsAggregate() : 0, (yyvsp[(2) - (2)].interm.intermNode)); + if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } else - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } +#line 9337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 404: -/* Line 1792 of yacc.c */ -#line 2588 "glslang.y" + case 509: +#line 3313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 9343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 405: -/* Line 1792 of yacc.c */ -#line 2589 "glslang.y" - { (yyval.interm.intermNode) = static_cast((yyvsp[(1) - (2)].interm.intermTypedNode)); } + case 510: +#line 3314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } +#line 9349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 406: -/* Line 1792 of yacc.c */ -#line 2593 "glslang.y" + case 511: +#line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.boolCheck((yyvsp[(1) - (5)].lex).loc, (yyvsp[(3) - (5)].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.nodePair), (yyvsp[(1) - (5)].lex).loc); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9357 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 407: -/* Line 1792 of yacc.c */ -#line 2600 "glslang.y" + case 512: +#line 3321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); - (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermNode); + parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 408: -/* Line 1792 of yacc.c */ -#line 2604 "glslang.y" + case 513: +#line 3327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); + parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); + } +#line 9375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 514: +#line 3334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); + (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); + } +#line 9384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 515: +#line 3338 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } +#line 9393 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 409: -/* Line 1792 of yacc.c */ -#line 2612 "glslang.y" + case 516: +#line 3346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), (yyvsp[(1) - (1)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } +#line 9402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 410: -/* Line 1792 of yacc.c */ -#line 2616 "glslang.y" + case 517: +#line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.boolCheck((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.type)); + parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); - TType type((yyvsp[(1) - (4)].interm.type)); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); + TType type((yyvsp[-3].interm.type)); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); if (initNode) (yyval.interm.intermTypedNode) = initNode->getAsTyped(); else (yyval.interm.intermTypedNode) = 0; } +#line 9417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 411: -/* Line 1792 of yacc.c */ -#line 2629 "glslang.y" + case 518: +#line 3363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 9425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 519: +#line 3366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 9434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 520: +#line 3372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -7778,13 +9443,13 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } +#line 9447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 412: -/* Line 1792 of yacc.c */ -#line 2637 "glslang.y" + case 521: +#line 3380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[(1) - (8)].lex).loc, (yyvsp[(3) - (8)].interm.intermTypedNode), (yyvsp[(7) - (8)].interm.intermNode) ? (yyvsp[(7) - (8)].interm.intermNode)->getAsAggregate() : 0); + (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); parseContext.switchSequenceStack.pop_back(); parseContext.switchLevel.pop_back(); @@ -7792,299 +9457,369 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 9461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 413: -/* Line 1792 of yacc.c */ -#line 2649 "glslang.y" + case 522: +#line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 9469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 414: -/* Line 1792 of yacc.c */ -#line 2652 "glslang.y" + case 523: +#line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 415: -/* Line 1792 of yacc.c */ -#line 2658 "glslang.y" + case 524: +#line 3401 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot appear outside switch statement", "case", ""); + parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot be nested inside control flow", "case", ""); + parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); else { - parseContext.constantValueCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); - parseContext.integerCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).loc); + parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); + parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } +#line 9494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 416: -/* Line 1792 of yacc.c */ -#line 2670 "glslang.y" + case 525: +#line 3413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot appear outside switch statement", "default", ""); + parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot be nested inside control flow", "default", ""); + parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); else - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[(1) - (2)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } +#line 9508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 417: -/* Line 1792 of yacc.c */ -#line 2682 "glslang.y" + case 526: +#line 3425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 9516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 527: +#line 3428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + } +#line 9525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 528: +#line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "while loops not available", "limitation", ""); + parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 9538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 418: -/* Line 1792 of yacc.c */ -#line 2690 "glslang.y" + case 529: +#line 3442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(6) - (6)].interm.intermNode), (yyvsp[(4) - (6)].interm.intermTypedNode), 0, true, (yyvsp[(1) - (6)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 9550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 419: -/* Line 1792 of yacc.c */ -#line 2697 "glslang.y" + case 530: +#line 3449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 9560 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 420: -/* Line 1792 of yacc.c */ -#line 2702 "glslang.y" + case 531: +#line 3454 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[(1) - (8)].lex).loc, "do-while loops not available", "limitation", ""); + parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); - parseContext.boolCheck((yyvsp[(8) - (8)].lex).loc, (yyvsp[(6) - (8)].interm.intermTypedNode)); + parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(3) - (8)].interm.intermNode), (yyvsp[(6) - (8)].interm.intermTypedNode), 0, false, (yyvsp[(4) - (8)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 9576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 421: -/* Line 1792 of yacc.c */ -#line 2713 "glslang.y" + case 532: +#line 3465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 9587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 422: -/* Line 1792 of yacc.c */ -#line 2719 "glslang.y" + case 533: +#line 3471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(4) - (7)].interm.intermNode), (yyvsp[(2) - (7)].lex).loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[(7) - (7)].interm.intermNode), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node1), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node2), true, (yyvsp[(1) - (7)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); + TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast((yyvsp[-2].interm.nodePair).node1), reinterpret_cast((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc); if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck((yyvsp[(1) - (7)].lex).loc, (yyvsp[(4) - (7)].interm.intermNode), forLoop); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[(1) - (7)].lex).loc); + parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 9604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 423: -/* Line 1792 of yacc.c */ -#line 2734 "glslang.y" + case 534: +#line 3486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 424: -/* Line 1792 of yacc.c */ -#line 2737 "glslang.y" + case 535: +#line 3489 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 425: -/* Line 1792 of yacc.c */ -#line 2743 "glslang.y" + case 536: +#line 3495 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 9628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 426: -/* Line 1792 of yacc.c */ -#line 2746 "glslang.y" + case 537: +#line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } +#line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 427: -/* Line 1792 of yacc.c */ -#line 2752 "glslang.y" + case 538: +#line 3504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } +#line 9645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 428: -/* Line 1792 of yacc.c */ -#line 2756 "glslang.y" + case 539: +#line 3508 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } +#line 9654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 429: -/* Line 1792 of yacc.c */ -#line 2763 "glslang.y" + case 540: +#line 3515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[(1) - (2)].lex).loc); + parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } +#line 9664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 430: -/* Line 1792 of yacc.c */ -#line 2768 "glslang.y" + case 541: +#line 3520 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[(1) - (2)].lex).loc); + parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } +#line 9674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 431: -/* Line 1792 of yacc.c */ -#line 2773 "glslang.y" + case 542: +#line 3525 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "non-void function must return a value", "return", ""); + parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); if (parseContext.inMain) - parseContext.postMainReturn = true; + parseContext.postEntryPointReturn = true; } +#line 9686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 432: -/* Line 1792 of yacc.c */ -#line 2780 "glslang.y" + case 543: +#line 3532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[(1) - (3)].lex).loc, (yyvsp[(2) - (3)].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } +#line 9694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 433: -/* Line 1792 of yacc.c */ -#line 2783 "glslang.y" + case 544: +#line 3535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (2)].lex).loc, EShLangFragment, "discard"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[(1) - (2)].lex).loc); + parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } +#line 9703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 434: -/* Line 1792 of yacc.c */ -#line 2792 "glslang.y" + case 545: +#line 3544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } +#line 9712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 435: -/* Line 1792 of yacc.c */ -#line 2796 "glslang.y" + case 546: +#line 3548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); - parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); + if ((yyvsp[0].interm.intermNode) != nullptr) { + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); + } } +#line 9723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 436: -/* Line 1792 of yacc.c */ -#line 2803 "glslang.y" + case 547: +#line 3557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 437: -/* Line 1792 of yacc.c */ -#line 2806 "glslang.y" + case 548: +#line 3560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 9739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 438: -/* Line 1792 of yacc.c */ -#line 2812 "glslang.y" + case 549: +#line 3563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyvsp[(1) - (1)].interm).function = parseContext.handleFunctionDeclarator((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function, false /* not prototype */); - (yyvsp[(1) - (1)].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function); + parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); + parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); + (yyval.interm.intermNode) = nullptr; } +#line 9749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 439: -/* Line 1792 of yacc.c */ -#line 2816 "glslang.y" + case 550: +#line 3571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); + (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); + } +#line 9758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 551: +#line 3575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error((yyvsp[(1) - (3)].interm).loc, "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str()); + parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermNode)); - parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[(1) - (3)].interm).function->getType(), (yyvsp[(1) - (3)].interm).loc); - (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str()); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); + parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); + (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); // store the pragma information for debug and optimize and other vendor specific // information. This information can be queried from the parse tree (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); - (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); + (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } +#line 9778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 552: +#line 3593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); + parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); + } +#line 9787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 553: +#line 3599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.attributes) = (yyvsp[0].interm.attributes); + } +#line 9795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 554: +#line 3602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); + } +#line 9803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 555: +#line 3607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); + } +#line 9811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 556: +#line 3610 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); + } +#line 9819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -/* Line 1792 of yacc.c */ -#line 8088 "glslang_tab.cpp" +#line 9823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -8106,7 +9841,7 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -8121,9 +9856,9 @@ yyreduce: goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -8174,20 +9909,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, pParseContext); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, pParseContext); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -8206,7 +9941,7 @@ yyerrorlab: if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -8219,29 +9954,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp, pParseContext); + yystos[yystate], yyvsp, pParseContext); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -8292,14 +10027,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, pParseContext); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, pParseContext); + yystos[*yyssp], yyvsp, pParseContext); YYPOPSTACK (1); } #ifndef yyoverflow @@ -8310,11 +10045,7 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - -/* Line 2055 of yacc.c */ -#line 2833 "glslang.y" +#line 3614 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp.h b/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp.h index a3a458bb77..7cfb79766f 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,9 +30,9 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -/* Enabling traces. */ +#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -40,306 +40,408 @@ extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - FLOAT16_T = 268, - BREAK = 269, - CONTINUE = 270, - DO = 271, - ELSE = 272, - FOR = 273, - IF = 274, - DISCARD = 275, - RETURN = 276, - SWITCH = 277, - CASE = 278, - DEFAULT = 279, - SUBROUTINE = 280, - BVEC2 = 281, - BVEC3 = 282, - BVEC4 = 283, - IVEC2 = 284, - IVEC3 = 285, - IVEC4 = 286, - I64VEC2 = 287, - I64VEC3 = 288, - I64VEC4 = 289, - UVEC2 = 290, - UVEC3 = 291, - UVEC4 = 292, - U64VEC2 = 293, - U64VEC3 = 294, - U64VEC4 = 295, - VEC2 = 296, - VEC3 = 297, - VEC4 = 298, - MAT2 = 299, - MAT3 = 300, - MAT4 = 301, - CENTROID = 302, - IN = 303, - OUT = 304, - INOUT = 305, - UNIFORM = 306, - PATCH = 307, - SAMPLE = 308, - BUFFER = 309, - SHARED = 310, - COHERENT = 311, - VOLATILE = 312, - RESTRICT = 313, - READONLY = 314, - WRITEONLY = 315, - DVEC2 = 316, - DVEC3 = 317, - DVEC4 = 318, - DMAT2 = 319, - DMAT3 = 320, - DMAT4 = 321, - F16VEC2 = 322, - F16VEC3 = 323, - F16VEC4 = 324, - F16MAT2 = 325, - F16MAT3 = 326, - F16MAT4 = 327, - NOPERSPECTIVE = 328, - FLAT = 329, - SMOOTH = 330, - LAYOUT = 331, - __EXPLICITINTERPAMD = 332, - MAT2X2 = 333, - MAT2X3 = 334, - MAT2X4 = 335, - MAT3X2 = 336, - MAT3X3 = 337, - MAT3X4 = 338, - MAT4X2 = 339, - MAT4X3 = 340, - MAT4X4 = 341, - DMAT2X2 = 342, - DMAT2X3 = 343, - DMAT2X4 = 344, - DMAT3X2 = 345, - DMAT3X3 = 346, - DMAT3X4 = 347, - DMAT4X2 = 348, - DMAT4X3 = 349, - DMAT4X4 = 350, - F16MAT2X2 = 351, - F16MAT2X3 = 352, - F16MAT2X4 = 353, - F16MAT3X2 = 354, - F16MAT3X3 = 355, - F16MAT3X4 = 356, - F16MAT4X2 = 357, - F16MAT4X3 = 358, - F16MAT4X4 = 359, - ATOMIC_UINT = 360, - SAMPLER1D = 361, - SAMPLER2D = 362, - SAMPLER3D = 363, - SAMPLERCUBE = 364, - SAMPLER1DSHADOW = 365, - SAMPLER2DSHADOW = 366, - SAMPLERCUBESHADOW = 367, - SAMPLER1DARRAY = 368, - SAMPLER2DARRAY = 369, - SAMPLER1DARRAYSHADOW = 370, - SAMPLER2DARRAYSHADOW = 371, - ISAMPLER1D = 372, - ISAMPLER2D = 373, - ISAMPLER3D = 374, - ISAMPLERCUBE = 375, - ISAMPLER1DARRAY = 376, - ISAMPLER2DARRAY = 377, - USAMPLER1D = 378, - USAMPLER2D = 379, - USAMPLER3D = 380, - USAMPLERCUBE = 381, - USAMPLER1DARRAY = 382, - USAMPLER2DARRAY = 383, - SAMPLER2DRECT = 384, - SAMPLER2DRECTSHADOW = 385, - ISAMPLER2DRECT = 386, - USAMPLER2DRECT = 387, - SAMPLERBUFFER = 388, - ISAMPLERBUFFER = 389, - USAMPLERBUFFER = 390, - SAMPLERCUBEARRAY = 391, - SAMPLERCUBEARRAYSHADOW = 392, - ISAMPLERCUBEARRAY = 393, - USAMPLERCUBEARRAY = 394, - SAMPLER2DMS = 395, - ISAMPLER2DMS = 396, - USAMPLER2DMS = 397, - SAMPLER2DMSARRAY = 398, - ISAMPLER2DMSARRAY = 399, - USAMPLER2DMSARRAY = 400, - SAMPLEREXTERNALOES = 401, - SAMPLER = 402, - SAMPLERSHADOW = 403, - TEXTURE1D = 404, - TEXTURE2D = 405, - TEXTURE3D = 406, - TEXTURECUBE = 407, - TEXTURE1DARRAY = 408, - TEXTURE2DARRAY = 409, - ITEXTURE1D = 410, - ITEXTURE2D = 411, - ITEXTURE3D = 412, - ITEXTURECUBE = 413, - ITEXTURE1DARRAY = 414, - ITEXTURE2DARRAY = 415, - UTEXTURE1D = 416, - UTEXTURE2D = 417, - UTEXTURE3D = 418, - UTEXTURECUBE = 419, - UTEXTURE1DARRAY = 420, - UTEXTURE2DARRAY = 421, - TEXTURE2DRECT = 422, - ITEXTURE2DRECT = 423, - UTEXTURE2DRECT = 424, - TEXTUREBUFFER = 425, - ITEXTUREBUFFER = 426, - UTEXTUREBUFFER = 427, - TEXTURECUBEARRAY = 428, - ITEXTURECUBEARRAY = 429, - UTEXTURECUBEARRAY = 430, - TEXTURE2DMS = 431, - ITEXTURE2DMS = 432, - UTEXTURE2DMS = 433, - TEXTURE2DMSARRAY = 434, - ITEXTURE2DMSARRAY = 435, - UTEXTURE2DMSARRAY = 436, - SUBPASSINPUT = 437, - SUBPASSINPUTMS = 438, - ISUBPASSINPUT = 439, - ISUBPASSINPUTMS = 440, - USUBPASSINPUT = 441, - USUBPASSINPUTMS = 442, - IMAGE1D = 443, - IIMAGE1D = 444, - UIMAGE1D = 445, - IMAGE2D = 446, - IIMAGE2D = 447, - UIMAGE2D = 448, - IMAGE3D = 449, - IIMAGE3D = 450, - UIMAGE3D = 451, - IMAGE2DRECT = 452, - IIMAGE2DRECT = 453, - UIMAGE2DRECT = 454, - IMAGECUBE = 455, - IIMAGECUBE = 456, - UIMAGECUBE = 457, - IMAGEBUFFER = 458, - IIMAGEBUFFER = 459, - UIMAGEBUFFER = 460, - IMAGE1DARRAY = 461, - IIMAGE1DARRAY = 462, - UIMAGE1DARRAY = 463, - IMAGE2DARRAY = 464, - IIMAGE2DARRAY = 465, - UIMAGE2DARRAY = 466, - IMAGECUBEARRAY = 467, - IIMAGECUBEARRAY = 468, - UIMAGECUBEARRAY = 469, - IMAGE2DMS = 470, - IIMAGE2DMS = 471, - UIMAGE2DMS = 472, - IMAGE2DMSARRAY = 473, - IIMAGE2DMSARRAY = 474, - UIMAGE2DMSARRAY = 475, - STRUCT = 476, - VOID = 477, - WHILE = 478, - IDENTIFIER = 479, - TYPE_NAME = 480, - FLOATCONSTANT = 481, - DOUBLECONSTANT = 482, - INTCONSTANT = 483, - UINTCONSTANT = 484, - INT64CONSTANT = 485, - UINT64CONSTANT = 486, - BOOLCONSTANT = 487, - FLOAT16CONSTANT = 488, - LEFT_OP = 489, - RIGHT_OP = 490, - INC_OP = 491, - DEC_OP = 492, - LE_OP = 493, - GE_OP = 494, - EQ_OP = 495, - NE_OP = 496, - AND_OP = 497, - OR_OP = 498, - XOR_OP = 499, - MUL_ASSIGN = 500, - DIV_ASSIGN = 501, - ADD_ASSIGN = 502, - MOD_ASSIGN = 503, - LEFT_ASSIGN = 504, - RIGHT_ASSIGN = 505, - AND_ASSIGN = 506, - XOR_ASSIGN = 507, - OR_ASSIGN = 508, - SUB_ASSIGN = 509, - LEFT_PAREN = 510, - RIGHT_PAREN = 511, - LEFT_BRACKET = 512, - RIGHT_BRACKET = 513, - LEFT_BRACE = 514, - RIGHT_BRACE = 515, - DOT = 516, - COMMA = 517, - COLON = 518, - EQUAL = 519, - SEMICOLON = 520, - BANG = 521, - DASH = 522, - TILDE = 523, - PLUS = 524, - STAR = 525, - SLASH = 526, - PERCENT = 527, - LEFT_ANGLE = 528, - RIGHT_ANGLE = 529, - VERTICAL_BAR = 530, - CARET = 531, - AMPERSAND = 532, - QUESTION = 533, - INVARIANT = 534, - PRECISE = 535, - HIGH_PRECISION = 536, - MEDIUM_PRECISION = 537, - LOW_PRECISION = 538, - PRECISION = 539, - PACKED = 540, - RESOURCE = 541, - SUPERP = 542 - }; + enum yytokentype + { + ATTRIBUTE = 258, + VARYING = 259, + FLOAT16_T = 260, + FLOAT = 261, + FLOAT32_T = 262, + DOUBLE = 263, + FLOAT64_T = 264, + CONST = 265, + BOOL = 266, + INT = 267, + UINT = 268, + INT64_T = 269, + UINT64_T = 270, + INT32_T = 271, + UINT32_T = 272, + INT16_T = 273, + UINT16_T = 274, + INT8_T = 275, + UINT8_T = 276, + BREAK = 277, + CONTINUE = 278, + DO = 279, + ELSE = 280, + FOR = 281, + IF = 282, + DISCARD = 283, + RETURN = 284, + SWITCH = 285, + CASE = 286, + DEFAULT = 287, + SUBROUTINE = 288, + BVEC2 = 289, + BVEC3 = 290, + BVEC4 = 291, + IVEC2 = 292, + IVEC3 = 293, + IVEC4 = 294, + UVEC2 = 295, + UVEC3 = 296, + UVEC4 = 297, + I64VEC2 = 298, + I64VEC3 = 299, + I64VEC4 = 300, + U64VEC2 = 301, + U64VEC3 = 302, + U64VEC4 = 303, + I32VEC2 = 304, + I32VEC3 = 305, + I32VEC4 = 306, + U32VEC2 = 307, + U32VEC3 = 308, + U32VEC4 = 309, + I16VEC2 = 310, + I16VEC3 = 311, + I16VEC4 = 312, + U16VEC2 = 313, + U16VEC3 = 314, + U16VEC4 = 315, + I8VEC2 = 316, + I8VEC3 = 317, + I8VEC4 = 318, + U8VEC2 = 319, + U8VEC3 = 320, + U8VEC4 = 321, + VEC2 = 322, + VEC3 = 323, + VEC4 = 324, + MAT2 = 325, + MAT3 = 326, + MAT4 = 327, + CENTROID = 328, + IN = 329, + OUT = 330, + INOUT = 331, + UNIFORM = 332, + PATCH = 333, + SAMPLE = 334, + BUFFER = 335, + SHARED = 336, + NONUNIFORM = 337, + COHERENT = 338, + VOLATILE = 339, + RESTRICT = 340, + READONLY = 341, + WRITEONLY = 342, + DVEC2 = 343, + DVEC3 = 344, + DVEC4 = 345, + DMAT2 = 346, + DMAT3 = 347, + DMAT4 = 348, + F16VEC2 = 349, + F16VEC3 = 350, + F16VEC4 = 351, + F16MAT2 = 352, + F16MAT3 = 353, + F16MAT4 = 354, + F32VEC2 = 355, + F32VEC3 = 356, + F32VEC4 = 357, + F32MAT2 = 358, + F32MAT3 = 359, + F32MAT4 = 360, + F64VEC2 = 361, + F64VEC3 = 362, + F64VEC4 = 363, + F64MAT2 = 364, + F64MAT3 = 365, + F64MAT4 = 366, + NOPERSPECTIVE = 367, + FLAT = 368, + SMOOTH = 369, + LAYOUT = 370, + __EXPLICITINTERPAMD = 371, + MAT2X2 = 372, + MAT2X3 = 373, + MAT2X4 = 374, + MAT3X2 = 375, + MAT3X3 = 376, + MAT3X4 = 377, + MAT4X2 = 378, + MAT4X3 = 379, + MAT4X4 = 380, + DMAT2X2 = 381, + DMAT2X3 = 382, + DMAT2X4 = 383, + DMAT3X2 = 384, + DMAT3X3 = 385, + DMAT3X4 = 386, + DMAT4X2 = 387, + DMAT4X3 = 388, + DMAT4X4 = 389, + F16MAT2X2 = 390, + F16MAT2X3 = 391, + F16MAT2X4 = 392, + F16MAT3X2 = 393, + F16MAT3X3 = 394, + F16MAT3X4 = 395, + F16MAT4X2 = 396, + F16MAT4X3 = 397, + F16MAT4X4 = 398, + F32MAT2X2 = 399, + F32MAT2X3 = 400, + F32MAT2X4 = 401, + F32MAT3X2 = 402, + F32MAT3X3 = 403, + F32MAT3X4 = 404, + F32MAT4X2 = 405, + F32MAT4X3 = 406, + F32MAT4X4 = 407, + F64MAT2X2 = 408, + F64MAT2X3 = 409, + F64MAT2X4 = 410, + F64MAT3X2 = 411, + F64MAT3X3 = 412, + F64MAT3X4 = 413, + F64MAT4X2 = 414, + F64MAT4X3 = 415, + F64MAT4X4 = 416, + ATOMIC_UINT = 417, + SAMPLER1D = 418, + SAMPLER2D = 419, + SAMPLER3D = 420, + SAMPLERCUBE = 421, + SAMPLER1DSHADOW = 422, + SAMPLER2DSHADOW = 423, + SAMPLERCUBESHADOW = 424, + SAMPLER1DARRAY = 425, + SAMPLER2DARRAY = 426, + SAMPLER1DARRAYSHADOW = 427, + SAMPLER2DARRAYSHADOW = 428, + ISAMPLER1D = 429, + ISAMPLER2D = 430, + ISAMPLER3D = 431, + ISAMPLERCUBE = 432, + ISAMPLER1DARRAY = 433, + ISAMPLER2DARRAY = 434, + USAMPLER1D = 435, + USAMPLER2D = 436, + USAMPLER3D = 437, + USAMPLERCUBE = 438, + USAMPLER1DARRAY = 439, + USAMPLER2DARRAY = 440, + SAMPLER2DRECT = 441, + SAMPLER2DRECTSHADOW = 442, + ISAMPLER2DRECT = 443, + USAMPLER2DRECT = 444, + SAMPLERBUFFER = 445, + ISAMPLERBUFFER = 446, + USAMPLERBUFFER = 447, + SAMPLERCUBEARRAY = 448, + SAMPLERCUBEARRAYSHADOW = 449, + ISAMPLERCUBEARRAY = 450, + USAMPLERCUBEARRAY = 451, + SAMPLER2DMS = 452, + ISAMPLER2DMS = 453, + USAMPLER2DMS = 454, + SAMPLER2DMSARRAY = 455, + ISAMPLER2DMSARRAY = 456, + USAMPLER2DMSARRAY = 457, + SAMPLEREXTERNALOES = 458, + F16SAMPLER1D = 459, + F16SAMPLER2D = 460, + F16SAMPLER3D = 461, + F16SAMPLER2DRECT = 462, + F16SAMPLERCUBE = 463, + F16SAMPLER1DARRAY = 464, + F16SAMPLER2DARRAY = 465, + F16SAMPLERCUBEARRAY = 466, + F16SAMPLERBUFFER = 467, + F16SAMPLER2DMS = 468, + F16SAMPLER2DMSARRAY = 469, + F16SAMPLER1DSHADOW = 470, + F16SAMPLER2DSHADOW = 471, + F16SAMPLER1DARRAYSHADOW = 472, + F16SAMPLER2DARRAYSHADOW = 473, + F16SAMPLER2DRECTSHADOW = 474, + F16SAMPLERCUBESHADOW = 475, + F16SAMPLERCUBEARRAYSHADOW = 476, + SAMPLER = 477, + SAMPLERSHADOW = 478, + TEXTURE1D = 479, + TEXTURE2D = 480, + TEXTURE3D = 481, + TEXTURECUBE = 482, + TEXTURE1DARRAY = 483, + TEXTURE2DARRAY = 484, + ITEXTURE1D = 485, + ITEXTURE2D = 486, + ITEXTURE3D = 487, + ITEXTURECUBE = 488, + ITEXTURE1DARRAY = 489, + ITEXTURE2DARRAY = 490, + UTEXTURE1D = 491, + UTEXTURE2D = 492, + UTEXTURE3D = 493, + UTEXTURECUBE = 494, + UTEXTURE1DARRAY = 495, + UTEXTURE2DARRAY = 496, + TEXTURE2DRECT = 497, + ITEXTURE2DRECT = 498, + UTEXTURE2DRECT = 499, + TEXTUREBUFFER = 500, + ITEXTUREBUFFER = 501, + UTEXTUREBUFFER = 502, + TEXTURECUBEARRAY = 503, + ITEXTURECUBEARRAY = 504, + UTEXTURECUBEARRAY = 505, + TEXTURE2DMS = 506, + ITEXTURE2DMS = 507, + UTEXTURE2DMS = 508, + TEXTURE2DMSARRAY = 509, + ITEXTURE2DMSARRAY = 510, + UTEXTURE2DMSARRAY = 511, + F16TEXTURE1D = 512, + F16TEXTURE2D = 513, + F16TEXTURE3D = 514, + F16TEXTURE2DRECT = 515, + F16TEXTURECUBE = 516, + F16TEXTURE1DARRAY = 517, + F16TEXTURE2DARRAY = 518, + F16TEXTURECUBEARRAY = 519, + F16TEXTUREBUFFER = 520, + F16TEXTURE2DMS = 521, + F16TEXTURE2DMSARRAY = 522, + SUBPASSINPUT = 523, + SUBPASSINPUTMS = 524, + ISUBPASSINPUT = 525, + ISUBPASSINPUTMS = 526, + USUBPASSINPUT = 527, + USUBPASSINPUTMS = 528, + F16SUBPASSINPUT = 529, + F16SUBPASSINPUTMS = 530, + IMAGE1D = 531, + IIMAGE1D = 532, + UIMAGE1D = 533, + IMAGE2D = 534, + IIMAGE2D = 535, + UIMAGE2D = 536, + IMAGE3D = 537, + IIMAGE3D = 538, + UIMAGE3D = 539, + IMAGE2DRECT = 540, + IIMAGE2DRECT = 541, + UIMAGE2DRECT = 542, + IMAGECUBE = 543, + IIMAGECUBE = 544, + UIMAGECUBE = 545, + IMAGEBUFFER = 546, + IIMAGEBUFFER = 547, + UIMAGEBUFFER = 548, + IMAGE1DARRAY = 549, + IIMAGE1DARRAY = 550, + UIMAGE1DARRAY = 551, + IMAGE2DARRAY = 552, + IIMAGE2DARRAY = 553, + UIMAGE2DARRAY = 554, + IMAGECUBEARRAY = 555, + IIMAGECUBEARRAY = 556, + UIMAGECUBEARRAY = 557, + IMAGE2DMS = 558, + IIMAGE2DMS = 559, + UIMAGE2DMS = 560, + IMAGE2DMSARRAY = 561, + IIMAGE2DMSARRAY = 562, + UIMAGE2DMSARRAY = 563, + F16IMAGE1D = 564, + F16IMAGE2D = 565, + F16IMAGE3D = 566, + F16IMAGE2DRECT = 567, + F16IMAGECUBE = 568, + F16IMAGE1DARRAY = 569, + F16IMAGE2DARRAY = 570, + F16IMAGECUBEARRAY = 571, + F16IMAGEBUFFER = 572, + F16IMAGE2DMS = 573, + F16IMAGE2DMSARRAY = 574, + STRUCT = 575, + VOID = 576, + WHILE = 577, + IDENTIFIER = 578, + TYPE_NAME = 579, + FLOATCONSTANT = 580, + DOUBLECONSTANT = 581, + INT16CONSTANT = 582, + UINT16CONSTANT = 583, + INT32CONSTANT = 584, + UINT32CONSTANT = 585, + INTCONSTANT = 586, + UINTCONSTANT = 587, + INT64CONSTANT = 588, + UINT64CONSTANT = 589, + BOOLCONSTANT = 590, + FLOAT16CONSTANT = 591, + LEFT_OP = 592, + RIGHT_OP = 593, + INC_OP = 594, + DEC_OP = 595, + LE_OP = 596, + GE_OP = 597, + EQ_OP = 598, + NE_OP = 599, + AND_OP = 600, + OR_OP = 601, + XOR_OP = 602, + MUL_ASSIGN = 603, + DIV_ASSIGN = 604, + ADD_ASSIGN = 605, + MOD_ASSIGN = 606, + LEFT_ASSIGN = 607, + RIGHT_ASSIGN = 608, + AND_ASSIGN = 609, + XOR_ASSIGN = 610, + OR_ASSIGN = 611, + SUB_ASSIGN = 612, + LEFT_PAREN = 613, + RIGHT_PAREN = 614, + LEFT_BRACKET = 615, + RIGHT_BRACKET = 616, + LEFT_BRACE = 617, + RIGHT_BRACE = 618, + DOT = 619, + COMMA = 620, + COLON = 621, + EQUAL = 622, + SEMICOLON = 623, + BANG = 624, + DASH = 625, + TILDE = 626, + PLUS = 627, + STAR = 628, + SLASH = 629, + PERCENT = 630, + LEFT_ANGLE = 631, + RIGHT_ANGLE = 632, + VERTICAL_BAR = 633, + CARET = 634, + AMPERSAND = 635, + QUESTION = 636, + INVARIANT = 637, + PRECISE = 638, + HIGH_PRECISION = 639, + MEDIUM_PRECISION = 640, + LOW_PRECISION = 641, + PRECISION = 642, + PACKED = 643, + RESOURCE = 644, + SUPERP = 645 + }; #endif - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE +typedef union YYSTYPE YYSTYPE; +union YYSTYPE { -/* Line 2058 of yacc.c */ -#line 66 "glslang.y" +#line 70 "MachineIndependent/glslang.y" /* yacc.c:1909 */ struct { glslang::TSourceLoc loc; @@ -361,6 +463,7 @@ typedef union YYSTYPE TIntermNode* intermNode; glslang::TIntermNodePair nodePair; glslang::TIntermTyped* intermTypedNode; + glslang::TAttributes* attributes; }; union { glslang::TPublicType type; @@ -373,28 +476,14 @@ typedef union YYSTYPE }; } interm; - -/* Line 2058 of yacc.c */ -#line 379 "glslang_tab.cpp.h" -} YYSTYPE; +#line 480 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ +}; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (glslang::TParseContext* pParseContext); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ +int yyparse (glslang::TParseContext* pParseContext); + +#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ diff --git a/deps/glslang/glslang/glslang/MachineIndependent/intermOut.cpp b/deps/glslang/glslang/glslang/MachineIndependent/intermOut.cpp old mode 100644 new mode 100755 index f8c963b72e..fc75964fa1 --- a/deps/glslang/glslang/glslang/MachineIndependent/intermOut.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/intermOut.cpp @@ -1,12 +1,13 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2016 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2012-2016 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +21,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 "localintermediate.h" @@ -45,11 +46,31 @@ namespace { -bool is_positive_infinity(double x) { +bool IsInfinity(double x) { #ifdef _MSC_VER - return _fpclass(x) == _FPCLASS_PINF; + switch (_fpclass(x)) { + case _FPCLASS_NINF: + case _FPCLASS_PINF: + return true; + default: + return false; + } #else - return std::isinf(x) && (x >= 0); + return std::isinf(x); +#endif +} + +bool IsNan(double x) { +#ifdef _MSC_VER + switch (_fpclass(x)) { + case _FPCLASS_SNAN: + case _FPCLASS_QNAN: + return true; + default: + return false; + } +#else + return std::isnan(x); #endif } @@ -72,7 +93,13 @@ namespace glslang { // class TOutputTraverser : public TIntermTraverser { public: - TOutputTraverser(TInfoSink& i) : infoSink(i) { } + TOutputTraverser(TInfoSink& i) : infoSink(i), extraOutput(NoExtraOutput) { } + + enum EExtraOutput { + NoExtraOutput, + BinaryDoubleOutput + }; + void setDoubleOutput(EExtraOutput extra) { extraOutput = extra; } virtual bool visitBinary(TVisit, TIntermBinary* node); virtual bool visitUnary(TVisit, TIntermUnary* node); @@ -88,6 +115,8 @@ public: protected: TOutputTraverser(TOutputTraverser&); TOutputTraverser& operator=(TOutputTraverser&); + + EExtraOutput extraOutput; }; // @@ -146,6 +175,7 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) out.debug << (*node->getLeft()->getType().getStruct())[node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst()].type->getFieldName(); out.debug << ": direct index for structure"; break; case EOpVectorSwizzle: out.debug << "vector swizzle"; break; + case EOpMatrixSwizzle: out.debug << "matrix swizzle"; break; case EOpAdd: out.debug << "add"; break; case EOpSub: out.debug << "subtract"; break; @@ -175,6 +205,7 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) case EOpLogicalOr: out.debug << "logical-or"; break; case EOpLogicalXor: out.debug << "logical-xor"; break; case EOpLogicalAnd: out.debug << "logical-and"; break; + default: out.debug << ""; } @@ -202,48 +233,192 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpPreIncrement: out.debug << "Pre-Increment"; break; case EOpPreDecrement: out.debug << "Pre-Decrement"; break; + // * -> bool + case EOpConvInt8ToBool: out.debug << "Convert int8_t to bool"; break; + case EOpConvUint8ToBool: out.debug << "Convert uint8_t to bool"; break; + case EOpConvInt16ToBool: out.debug << "Convert int16_t to bool"; break; + case EOpConvUint16ToBool: out.debug << "Convert uint16_t to bool";break; case EOpConvIntToBool: out.debug << "Convert int to bool"; break; case EOpConvUintToBool: out.debug << "Convert uint to bool"; break; - case EOpConvFloatToBool: out.debug << "Convert float to bool"; break; - case EOpConvDoubleToBool: out.debug << "Convert double to bool"; break; case EOpConvInt64ToBool: out.debug << "Convert int64 to bool"; break; case EOpConvUint64ToBool: out.debug << "Convert uint64 to bool"; break; - case EOpConvIntToFloat: out.debug << "Convert int to float"; break; - case EOpConvUintToFloat: out.debug << "Convert uint to float"; break; - case EOpConvDoubleToFloat: out.debug << "Convert double to float"; break; - case EOpConvInt64ToFloat: out.debug << "Convert int64 to float"; break; - case EOpConvUint64ToFloat: out.debug << "Convert uint64 to float"; break; - case EOpConvBoolToFloat: out.debug << "Convert bool to float"; break; - case EOpConvUintToInt: out.debug << "Convert uint to int"; break; - case EOpConvFloatToInt: out.debug << "Convert float to int"; break; - case EOpConvDoubleToInt: out.debug << "Convert double to int"; break; - case EOpConvBoolToInt: out.debug << "Convert bool to int"; break; - case EOpConvInt64ToInt: out.debug << "Convert int64 to int"; break; - case EOpConvUint64ToInt: out.debug << "Convert uint64 to int"; break; - case EOpConvIntToUint: out.debug << "Convert int to uint"; break; - case EOpConvFloatToUint: out.debug << "Convert float to uint"; break; - case EOpConvDoubleToUint: out.debug << "Convert double to uint"; break; + case EOpConvFloat16ToBool: out.debug << "Convert float16_t to bool"; break; + case EOpConvFloatToBool: out.debug << "Convert float to bool"; break; + case EOpConvDoubleToBool: out.debug << "Convert double to bool"; break; + + // bool -> * + case EOpConvBoolToInt8: out.debug << "Convert bool to int8_t"; break; + case EOpConvBoolToUint8: out.debug << "Convert bool to uint8_t"; break; + case EOpConvBoolToInt16: out.debug << "Convert bool to in16t_t"; break; + case EOpConvBoolToUint16: out.debug << "Convert bool to uint16_t";break; + case EOpConvBoolToInt: out.debug << "Convert bool to int" ; break; case EOpConvBoolToUint: out.debug << "Convert bool to uint"; break; - case EOpConvInt64ToUint: out.debug << "Convert int64 to uint"; break; - case EOpConvUint64ToUint: out.debug << "Convert uint64 to uint"; break; + case EOpConvBoolToInt64: out.debug << "Convert bool to int64"; break; + case EOpConvBoolToUint64: out.debug << "Convert bool to uint64";break; + case EOpConvBoolToFloat16: out.debug << "Convert bool to float16_t"; break; + case EOpConvBoolToFloat: out.debug << "Convert bool to float"; break; + case EOpConvBoolToDouble: out.debug << "Convert bool to double"; break; + + // int8_t -> (u)int* + case EOpConvInt8ToInt16: out.debug << "Convert int8_t to int16_t";break; + case EOpConvInt8ToInt: out.debug << "Convert int8_t to int"; break; + case EOpConvInt8ToInt64: out.debug << "Convert int8_t to int64"; break; + case EOpConvInt8ToUint8: out.debug << "Convert int8_t to uint8_t";break; + case EOpConvInt8ToUint16: out.debug << "Convert int8_t to uint16_t";break; + case EOpConvInt8ToUint: out.debug << "Convert int8_t to uint"; break; + case EOpConvInt8ToUint64: out.debug << "Convert int8_t to uint64"; break; + + // uint8_t -> (u)int* + case EOpConvUint8ToInt8: out.debug << "Convert uint8_t to int8_t";break; + case EOpConvUint8ToInt16: out.debug << "Convert uint8_t to int16_t";break; + case EOpConvUint8ToInt: out.debug << "Convert uint8_t to int"; break; + case EOpConvUint8ToInt64: out.debug << "Convert uint8_t to int64"; break; + case EOpConvUint8ToUint16: out.debug << "Convert uint8_t to uint16_t";break; + case EOpConvUint8ToUint: out.debug << "Convert uint8_t to uint"; break; + case EOpConvUint8ToUint64: out.debug << "Convert uint8_t to uint64"; break; + + // int8_t -> float* + case EOpConvInt8ToFloat16: out.debug << "Convert int8_t to float16_t";break; + case EOpConvInt8ToFloat: out.debug << "Convert int8_t to float"; break; + case EOpConvInt8ToDouble: out.debug << "Convert int8_t to double"; break; + + // uint8_t -> float* + case EOpConvUint8ToFloat16: out.debug << "Convert uint8_t to float16_t";break; + case EOpConvUint8ToFloat: out.debug << "Convert uint8_t to float"; break; + case EOpConvUint8ToDouble: out.debug << "Convert uint8_t to double"; break; + + // int16_t -> (u)int* + case EOpConvInt16ToInt8: out.debug << "Convert int16_t to int8_t";break; + case EOpConvInt16ToInt: out.debug << "Convert int16_t to int"; break; + case EOpConvInt16ToInt64: out.debug << "Convert int16_t to int64"; break; + case EOpConvInt16ToUint8: out.debug << "Convert int16_t to uint8_t";break; + case EOpConvInt16ToUint16: out.debug << "Convert int16_t to uint16_t";break; + case EOpConvInt16ToUint: out.debug << "Convert int16_t to uint"; break; + case EOpConvInt16ToUint64: out.debug << "Convert int16_t to uint64"; break; + + // int16_t -> float* + case EOpConvInt16ToFloat16: out.debug << "Convert int16_t to float16_t";break; + case EOpConvInt16ToFloat: out.debug << "Convert int16_t to float"; break; + case EOpConvInt16ToDouble: out.debug << "Convert int16_t to double"; break; + + // uint16_t -> (u)int* + case EOpConvUint16ToInt8: out.debug << "Convert uint16_t to int8_t";break; + case EOpConvUint16ToInt16: out.debug << "Convert uint16_t to int16_t";break; + case EOpConvUint16ToInt: out.debug << "Convert uint16_t to int"; break; + case EOpConvUint16ToInt64: out.debug << "Convert uint16_t to int64"; break; + case EOpConvUint16ToUint8: out.debug << "Convert uint16_t to uint8_t";break; + case EOpConvUint16ToUint: out.debug << "Convert uint16_t to uint"; break; + case EOpConvUint16ToUint64: out.debug << "Convert uint16_t to uint64"; break; + + // uint16_t -> float* + case EOpConvUint16ToFloat16: out.debug << "Convert uint16_t to float16_t";break; + case EOpConvUint16ToFloat: out.debug << "Convert uint16_t to float"; break; + case EOpConvUint16ToDouble: out.debug << "Convert uint16_t to double"; break; + + // int32_t -> (u)int* + case EOpConvIntToInt8: out.debug << "Convert int to int8_t";break; + case EOpConvIntToInt16: out.debug << "Convert int to int16_t";break; + case EOpConvIntToInt64: out.debug << "Convert int to int64"; break; + case EOpConvIntToUint8: out.debug << "Convert int to uint8_t";break; + case EOpConvIntToUint16: out.debug << "Convert int to uint16_t";break; + case EOpConvIntToUint: out.debug << "Convert int to uint"; break; + case EOpConvIntToUint64: out.debug << "Convert int to uint64"; break; + + // int32_t -> float* + case EOpConvIntToFloat16: out.debug << "Convert int to float16_t";break; + case EOpConvIntToFloat: out.debug << "Convert int to float"; break; case EOpConvIntToDouble: out.debug << "Convert int to double"; break; - case EOpConvUintToDouble: out.debug << "Convert uint to double"; break; - case EOpConvFloatToDouble: out.debug << "Convert float to double"; break; - case EOpConvBoolToDouble: out.debug << "Convert bool to double"; break; - case EOpConvInt64ToDouble: out.debug << "Convert int64 to double"; break; - case EOpConvUint64ToDouble: out.debug << "Convert uint64 to double"; break; - case EOpConvBoolToInt64: out.debug << "Convert bool to int64"; break; - case EOpConvIntToInt64: out.debug << "Convert int to int64"; break; + + // uint32_t -> (u)int* + case EOpConvUintToInt8: out.debug << "Convert uint to int8_t";break; + case EOpConvUintToInt16: out.debug << "Convert uint to int16_t";break; + case EOpConvUintToInt: out.debug << "Convert uint to int";break; case EOpConvUintToInt64: out.debug << "Convert uint to int64"; break; - case EOpConvFloatToInt64: out.debug << "Convert float to int64"; break; - case EOpConvDoubleToInt64: out.debug << "Convert double to int64"; break; - case EOpConvUint64ToInt64: out.debug << "Convert uint64 to int64"; break; - case EOpConvBoolToUint64: out.debug << "Convert bool to uint64"; break; - case EOpConvIntToUint64: out.debug << "Convert int to uint64"; break; - case EOpConvUintToUint64: out.debug << "Convert uint to uint64"; break; + case EOpConvUintToUint8: out.debug << "Convert uint to uint8_t";break; + case EOpConvUintToUint16: out.debug << "Convert uint to uint16_t";break; + case EOpConvUintToUint64: out.debug << "Convert uint to uint64"; break; + + // uint32_t -> float* + case EOpConvUintToFloat16: out.debug << "Convert uint to float16_t";break; + case EOpConvUintToFloat: out.debug << "Convert uint to float"; break; + case EOpConvUintToDouble: out.debug << "Convert uint to double"; break; + + // int64 -> (u)int* + case EOpConvInt64ToInt8: out.debug << "Convert int64 to int8_t"; break; + case EOpConvInt64ToInt16: out.debug << "Convert int64 to int16_t"; break; + case EOpConvInt64ToInt: out.debug << "Convert int64 to int"; break; + case EOpConvInt64ToUint8: out.debug << "Convert int64 to uint8_t";break; + case EOpConvInt64ToUint16: out.debug << "Convert int64 to uint16_t";break; + case EOpConvInt64ToUint: out.debug << "Convert int64 to uint"; break; + case EOpConvInt64ToUint64: out.debug << "Convert int64 to uint64"; break; + + // int64 -> float* + case EOpConvInt64ToFloat16: out.debug << "Convert int64 to float16_t";break; + case EOpConvInt64ToFloat: out.debug << "Convert int64 to float"; break; + case EOpConvInt64ToDouble: out.debug << "Convert int64 to double"; break; + + // uint64 -> (u)int* + case EOpConvUint64ToInt8: out.debug << "Convert uint64 to int8_t";break; + case EOpConvUint64ToInt16: out.debug << "Convert uint64 to int16_t";break; + case EOpConvUint64ToInt: out.debug << "Convert uint64 to int"; break; + case EOpConvUint64ToInt64: out.debug << "Convert uint64 to int64"; break; + case EOpConvUint64ToUint8: out.debug << "Convert uint64 to uint8_t";break; + case EOpConvUint64ToUint16: out.debug << "Convert uint64 to uint16"; break; + case EOpConvUint64ToUint: out.debug << "Convert uint64 to uint"; break; + + // uint64 -> float* + case EOpConvUint64ToFloat16: out.debug << "Convert uint64 to float16_t";break; + case EOpConvUint64ToFloat: out.debug << "Convert uint64 to float"; break; + case EOpConvUint64ToDouble: out.debug << "Convert uint64 to double"; break; + + // float16_t -> int* + case EOpConvFloat16ToInt8: out.debug << "Convert float16_t to int8_t"; break; + case EOpConvFloat16ToInt16: out.debug << "Convert float16_t to int16_t"; break; + case EOpConvFloat16ToInt: out.debug << "Convert float16_t to int"; break; + case EOpConvFloat16ToInt64: out.debug << "Convert float16_t to int64"; break; + + // float16_t -> uint* + case EOpConvFloat16ToUint8: out.debug << "Convert float16_t to uint8_t"; break; + case EOpConvFloat16ToUint16: out.debug << "Convert float16_t to uint16_t"; break; + case EOpConvFloat16ToUint: out.debug << "Convert float16_t to uint"; break; + case EOpConvFloat16ToUint64: out.debug << "Convert float16_t to uint64"; break; + + // float16_t -> float* + case EOpConvFloat16ToFloat: out.debug << "Convert float16_t to float"; break; + case EOpConvFloat16ToDouble: out.debug << "Convert float16_t to double"; break; + + // float32 -> float* + case EOpConvFloatToFloat16: out.debug << "Convert float to float16_t"; break; + case EOpConvFloatToDouble: out.debug << "Convert float to double"; break; + + // float32_t -> int* + case EOpConvFloatToInt8: out.debug << "Convert float to int8_t"; break; + case EOpConvFloatToInt16: out.debug << "Convert float to int16_t"; break; + case EOpConvFloatToInt: out.debug << "Convert float to int"; break; + case EOpConvFloatToInt64: out.debug << "Convert float to int64"; break; + + // float32_t -> uint* + case EOpConvFloatToUint8: out.debug << "Convert float to uint8_t"; break; + case EOpConvFloatToUint16: out.debug << "Convert float to uint16_t"; break; + case EOpConvFloatToUint: out.debug << "Convert float to uint"; break; case EOpConvFloatToUint64: out.debug << "Convert float to uint64"; break; + + // double -> float* + case EOpConvDoubleToFloat16: out.debug << "Convert double to float16_t"; break; + case EOpConvDoubleToFloat: out.debug << "Convert double to float"; break; + + // double -> int* + case EOpConvDoubleToInt8: out.debug << "Convert double to int8_t"; break; + case EOpConvDoubleToInt16: out.debug << "Convert double to int16_t"; break; + case EOpConvDoubleToInt: out.debug << "Convert double to int"; break; + case EOpConvDoubleToInt64: out.debug << "Convert double to int64"; break; + + // float32_t -> uint* + case EOpConvDoubleToUint8: out.debug << "Convert double to uint8_t"; break; + case EOpConvDoubleToUint16: out.debug << "Convert double to uint16_t"; break; + case EOpConvDoubleToUint: out.debug << "Convert double to uint"; break; case EOpConvDoubleToUint64: out.debug << "Convert double to uint64"; break; - case EOpConvInt64ToUint64: out.debug << "Convert uint64 to uint64"; break; + case EOpRadians: out.debug << "radians"; break; case EOpDegrees: out.debug << "degrees"; break; @@ -287,12 +462,23 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpDoubleBitsToUint64: out.debug << "doubleBitsToUint64"; break; case EOpInt64BitsToDouble: out.debug << "int64BitsToDouble"; break; case EOpUint64BitsToDouble: out.debug << "uint64BitsToDouble"; break; + case EOpFloat16BitsToInt16: out.debug << "float16BitsToInt16"; break; + case EOpFloat16BitsToUint16: out.debug << "float16BitsToUint16"; break; + case EOpInt16BitsToFloat16: out.debug << "int16BitsToFloat16"; break; + case EOpUint16BitsToFloat16: out.debug << "uint16BitsToFloat16"; break; + case EOpPackSnorm2x16: out.debug << "packSnorm2x16"; break; case EOpUnpackSnorm2x16:out.debug << "unpackSnorm2x16"; break; case EOpPackUnorm2x16: out.debug << "packUnorm2x16"; break; case EOpUnpackUnorm2x16:out.debug << "unpackUnorm2x16"; break; case EOpPackHalf2x16: out.debug << "packHalf2x16"; break; case EOpUnpackHalf2x16: out.debug << "unpackHalf2x16"; break; + case EOpPack16: out.debug << "pack16"; break; + case EOpPack32: out.debug << "pack32"; break; + case EOpPack64: out.debug << "pack64"; break; + case EOpUnpack32: out.debug << "unpack32"; break; + case EOpUnpack16: out.debug << "unpack16"; break; + case EOpUnpack8: out.debug << "unpack8"; break; case EOpPackSnorm4x8: out.debug << "PackSnorm4x8"; break; case EOpUnpackSnorm4x8: out.debug << "UnpackSnorm4x8"; break; @@ -306,10 +492,17 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpPackUint2x32: out.debug << "packUint2x32"; break; case EOpUnpackUint2x32: out.debug << "unpackUint2x32"; break; -#ifdef AMD_EXTENSIONS + case EOpPackInt2x16: out.debug << "packInt2x16"; break; + case EOpUnpackInt2x16: out.debug << "unpackInt2x16"; break; + case EOpPackUint2x16: out.debug << "packUint2x16"; break; + case EOpUnpackUint2x16: out.debug << "unpackUint2x16"; break; + + case EOpPackInt4x16: out.debug << "packInt4x16"; break; + case EOpUnpackInt4x16: out.debug << "unpackInt4x16"; break; + case EOpPackUint4x16: out.debug << "packUint4x16"; break; + case EOpUnpackUint4x16: out.debug << "unpackUint4x16"; break; case EOpPackFloat2x16: out.debug << "packFloat2x16"; break; case EOpUnpackFloat2x16: out.debug << "unpackFloat2x16"; break; -#endif case EOpLength: out.debug << "length"; break; case EOpNormalize: out.debug << "normalize"; break; @@ -363,12 +556,90 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpAllInvocations: out.debug << "allInvocations"; break; case EOpAllInvocationsEqual: out.debug << "allInvocationsEqual"; break; + case EOpSubgroupElect: out.debug << "subgroupElect"; break; + case EOpSubgroupAll: out.debug << "subgroupAll"; break; + case EOpSubgroupAny: out.debug << "subgroupAny"; break; + case EOpSubgroupAllEqual: out.debug << "subgroupAllEqual"; break; + case EOpSubgroupBroadcast: out.debug << "subgroupBroadcast"; break; + case EOpSubgroupBroadcastFirst: out.debug << "subgroupBroadcastFirst"; break; + case EOpSubgroupBallot: out.debug << "subgroupBallot"; break; + case EOpSubgroupInverseBallot: out.debug << "subgroupInverseBallot"; break; + case EOpSubgroupBallotBitExtract: out.debug << "subgroupBallotBitExtract"; break; + case EOpSubgroupBallotBitCount: out.debug << "subgroupBallotBitCount"; break; + case EOpSubgroupBallotInclusiveBitCount: out.debug << "subgroupBallotInclusiveBitCount"; break; + case EOpSubgroupBallotExclusiveBitCount: out.debug << "subgroupBallotExclusiveBitCount"; break; + case EOpSubgroupBallotFindLSB: out.debug << "subgroupBallotFindLSB"; break; + case EOpSubgroupBallotFindMSB: out.debug << "subgroupBallotFindMSB"; break; + case EOpSubgroupShuffle: out.debug << "subgroupShuffle"; break; + case EOpSubgroupShuffleXor: out.debug << "subgroupShuffleXor"; break; + case EOpSubgroupShuffleUp: out.debug << "subgroupShuffleUp"; break; + case EOpSubgroupShuffleDown: out.debug << "subgroupShuffleDown"; break; + case EOpSubgroupAdd: out.debug << "subgroupAdd"; break; + case EOpSubgroupMul: out.debug << "subgroupMul"; break; + case EOpSubgroupMin: out.debug << "subgroupMin"; break; + case EOpSubgroupMax: out.debug << "subgroupMax"; break; + case EOpSubgroupAnd: out.debug << "subgroupAnd"; break; + case EOpSubgroupOr: out.debug << "subgroupOr"; break; + case EOpSubgroupXor: out.debug << "subgroupXor"; break; + case EOpSubgroupInclusiveAdd: out.debug << "subgroupInclusiveAdd"; break; + case EOpSubgroupInclusiveMul: out.debug << "subgroupInclusiveMul"; break; + case EOpSubgroupInclusiveMin: out.debug << "subgroupInclusiveMin"; break; + case EOpSubgroupInclusiveMax: out.debug << "subgroupInclusiveMax"; break; + case EOpSubgroupInclusiveAnd: out.debug << "subgroupInclusiveAnd"; break; + case EOpSubgroupInclusiveOr: out.debug << "subgroupInclusiveOr"; break; + case EOpSubgroupInclusiveXor: out.debug << "subgroupInclusiveXor"; break; + case EOpSubgroupExclusiveAdd: out.debug << "subgroupExclusiveAdd"; break; + case EOpSubgroupExclusiveMul: out.debug << "subgroupExclusiveMul"; break; + case EOpSubgroupExclusiveMin: out.debug << "subgroupExclusiveMin"; break; + case EOpSubgroupExclusiveMax: out.debug << "subgroupExclusiveMax"; break; + case EOpSubgroupExclusiveAnd: out.debug << "subgroupExclusiveAnd"; break; + case EOpSubgroupExclusiveOr: out.debug << "subgroupExclusiveOr"; break; + case EOpSubgroupExclusiveXor: out.debug << "subgroupExclusiveXor"; break; + case EOpSubgroupClusteredAdd: out.debug << "subgroupClusteredAdd"; break; + case EOpSubgroupClusteredMul: out.debug << "subgroupClusteredMul"; break; + case EOpSubgroupClusteredMin: out.debug << "subgroupClusteredMin"; break; + case EOpSubgroupClusteredMax: out.debug << "subgroupClusteredMax"; break; + case EOpSubgroupClusteredAnd: out.debug << "subgroupClusteredAnd"; break; + case EOpSubgroupClusteredOr: out.debug << "subgroupClusteredOr"; break; + case EOpSubgroupClusteredXor: out.debug << "subgroupClusteredXor"; break; + case EOpSubgroupQuadBroadcast: out.debug << "subgroupQuadBroadcast"; break; + case EOpSubgroupQuadSwapHorizontal: out.debug << "subgroupQuadSwapHorizontal"; break; + case EOpSubgroupQuadSwapVertical: out.debug << "subgroupQuadSwapVertical"; break; + case EOpSubgroupQuadSwapDiagonal: out.debug << "subgroupQuadSwapDiagonal"; break; + +#ifdef NV_EXTENSIONS + case EOpSubgroupPartition: out.debug << "subgroupPartitionNV"; break; + case EOpSubgroupPartitionedAdd: out.debug << "subgroupPartitionedAddNV"; break; + case EOpSubgroupPartitionedMul: out.debug << "subgroupPartitionedMulNV"; break; + case EOpSubgroupPartitionedMin: out.debug << "subgroupPartitionedMinNV"; break; + case EOpSubgroupPartitionedMax: out.debug << "subgroupPartitionedMaxNV"; break; + case EOpSubgroupPartitionedAnd: out.debug << "subgroupPartitionedAndNV"; break; + case EOpSubgroupPartitionedOr: out.debug << "subgroupPartitionedOrNV"; break; + case EOpSubgroupPartitionedXor: out.debug << "subgroupPartitionedXorNV"; break; + case EOpSubgroupPartitionedInclusiveAdd: out.debug << "subgroupPartitionedInclusiveAddNV"; break; + case EOpSubgroupPartitionedInclusiveMul: out.debug << "subgroupPartitionedInclusiveMulNV"; break; + case EOpSubgroupPartitionedInclusiveMin: out.debug << "subgroupPartitionedInclusiveMinNV"; break; + case EOpSubgroupPartitionedInclusiveMax: out.debug << "subgroupPartitionedInclusiveMaxNV"; break; + case EOpSubgroupPartitionedInclusiveAnd: out.debug << "subgroupPartitionedInclusiveAndNV"; break; + case EOpSubgroupPartitionedInclusiveOr: out.debug << "subgroupPartitionedInclusiveOrNV"; break; + case EOpSubgroupPartitionedInclusiveXor: out.debug << "subgroupPartitionedInclusiveXorNV"; break; + case EOpSubgroupPartitionedExclusiveAdd: out.debug << "subgroupPartitionedExclusiveAddNV"; break; + case EOpSubgroupPartitionedExclusiveMul: out.debug << "subgroupPartitionedExclusiveMulNV"; break; + case EOpSubgroupPartitionedExclusiveMin: out.debug << "subgroupPartitionedExclusiveMinNV"; break; + case EOpSubgroupPartitionedExclusiveMax: out.debug << "subgroupPartitionedExclusiveMaxNV"; break; + case EOpSubgroupPartitionedExclusiveAnd: out.debug << "subgroupPartitionedExclusiveAndNV"; break; + case EOpSubgroupPartitionedExclusiveOr: out.debug << "subgroupPartitionedExclusiveOrNV"; break; + case EOpSubgroupPartitionedExclusiveXor: out.debug << "subgroupPartitionedExclusiveXorNV"; break; +#endif + case EOpClip: out.debug << "clip"; break; case EOpIsFinite: out.debug << "isfinite"; break; case EOpLog10: out.debug << "log10"; break; case EOpRcp: out.debug << "rcp"; break; case EOpSaturate: out.debug << "saturate"; break; + case EOpSparseTexelsResident: out.debug << "sparseTexelsResident"; break; + #ifdef AMD_EXTENSIONS case EOpMinInvocations: out.debug << "minInvocations"; break; case EOpMaxInvocations: out.debug << "maxInvocations"; break; @@ -376,27 +647,33 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpMinInvocationsNonUniform: out.debug << "minInvocationsNonUniform"; break; case EOpMaxInvocationsNonUniform: out.debug << "maxInvocationsNonUniform"; break; case EOpAddInvocationsNonUniform: out.debug << "addInvocationsNonUniform"; break; - case EOpMbcnt: out.debug << "mbcnt"; break; - case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break; - case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break; + case EOpMinInvocationsInclusiveScan: out.debug << "minInvocationsInclusiveScan"; break; + case EOpMaxInvocationsInclusiveScan: out.debug << "maxInvocationsInclusiveScan"; break; + case EOpAddInvocationsInclusiveScan: out.debug << "addInvocationsInclusiveScan"; break; + case EOpMinInvocationsInclusiveScanNonUniform: out.debug << "minInvocationsInclusiveScanNonUniform"; break; + case EOpMaxInvocationsInclusiveScanNonUniform: out.debug << "maxInvocationsInclusiveScanNonUniform"; break; + case EOpAddInvocationsInclusiveScanNonUniform: out.debug << "addInvocationsInclusiveScanNonUniform"; break; - case EOpConvBoolToFloat16: out.debug << "Convert bool to float16"; break; - case EOpConvIntToFloat16: out.debug << "Convert int to float16"; break; - case EOpConvUintToFloat16: out.debug << "Convert uint to float16"; break; - case EOpConvFloatToFloat16: out.debug << "Convert float to float16"; break; - case EOpConvDoubleToFloat16: out.debug << "Convert double to float16"; break; - case EOpConvInt64ToFloat16: out.debug << "Convert int64 to float16"; break; - case EOpConvUint64ToFloat16: out.debug << "Convert uint64 to float16"; break; - case EOpConvFloat16ToBool: out.debug << "Convert float16 to bool"; break; - case EOpConvFloat16ToInt: out.debug << "Convert float16 to int"; break; - case EOpConvFloat16ToUint: out.debug << "Convert float16 to uint"; break; - case EOpConvFloat16ToFloat: out.debug << "Convert float16 to float"; break; - case EOpConvFloat16ToDouble: out.debug << "Convert float16 to double"; break; - case EOpConvFloat16ToInt64: out.debug << "Convert float16 to int64"; break; - case EOpConvFloat16ToUint64: out.debug << "Convert float16 to uint64"; break; + case EOpMinInvocationsExclusiveScan: out.debug << "minInvocationsExclusiveScan"; break; + case EOpMaxInvocationsExclusiveScan: out.debug << "maxInvocationsExclusiveScan"; break; + case EOpAddInvocationsExclusiveScan: out.debug << "addInvocationsExclusiveScan"; break; + case EOpMinInvocationsExclusiveScanNonUniform: out.debug << "minInvocationsExclusiveScanNonUniform"; break; + case EOpMaxInvocationsExclusiveScanNonUniform: out.debug << "maxInvocationsExclusiveScanNonUniform"; break; + case EOpAddInvocationsExclusiveScanNonUniform: out.debug << "addInvocationsExclusiveScanNonUniform"; break; + + case EOpMbcnt: out.debug << "mbcnt"; break; + + case EOpFragmentMaskFetch: out.debug << "fragmentMaskFetchAMD"; break; + case EOpFragmentFetch: out.debug << "fragmentFetchAMD"; break; + + case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break; + case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break; #endif + case EOpSubpassLoad: out.debug << "subpassLoad"; break; + case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break; + default: out.debug.message(EPrefixError, "Bad unary op"); } @@ -428,29 +705,49 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructFloat: out.debug << "Construct float"; break; case EOpConstructDouble:out.debug << "Construct double"; break; + case EOpConstructVec2: out.debug << "Construct vec2"; break; case EOpConstructVec3: out.debug << "Construct vec3"; break; case EOpConstructVec4: out.debug << "Construct vec4"; break; + case EOpConstructDVec2: out.debug << "Construct dvec2"; break; + case EOpConstructDVec3: out.debug << "Construct dvec3"; break; + case EOpConstructDVec4: out.debug << "Construct dvec4"; break; case EOpConstructBool: out.debug << "Construct bool"; break; case EOpConstructBVec2: out.debug << "Construct bvec2"; break; case EOpConstructBVec3: out.debug << "Construct bvec3"; break; case EOpConstructBVec4: out.debug << "Construct bvec4"; break; + case EOpConstructInt8: out.debug << "Construct int8_t"; break; + case EOpConstructI8Vec2: out.debug << "Construct i8vec2"; break; + case EOpConstructI8Vec3: out.debug << "Construct i8vec3"; break; + case EOpConstructI8Vec4: out.debug << "Construct i8vec4"; break; case EOpConstructInt: out.debug << "Construct int"; break; case EOpConstructIVec2: out.debug << "Construct ivec2"; break; case EOpConstructIVec3: out.debug << "Construct ivec3"; break; case EOpConstructIVec4: out.debug << "Construct ivec4"; break; + case EOpConstructUint8: out.debug << "Construct uint8_t"; break; + case EOpConstructU8Vec2: out.debug << "Construct u8vec2"; break; + case EOpConstructU8Vec3: out.debug << "Construct u8vec3"; break; + case EOpConstructU8Vec4: out.debug << "Construct u8vec4"; break; case EOpConstructUint: out.debug << "Construct uint"; break; case EOpConstructUVec2: out.debug << "Construct uvec2"; break; case EOpConstructUVec3: out.debug << "Construct uvec3"; break; case EOpConstructUVec4: out.debug << "Construct uvec4"; break; - case EOpConstructInt64: out.debug << "Construct int64_t"; break; + case EOpConstructInt64: out.debug << "Construct int64"; break; case EOpConstructI64Vec2: out.debug << "Construct i64vec2"; break; case EOpConstructI64Vec3: out.debug << "Construct i64vec3"; break; case EOpConstructI64Vec4: out.debug << "Construct i64vec4"; break; - case EOpConstructUint64: out.debug << "Construct uint64_t"; break; + case EOpConstructUint64: out.debug << "Construct uint64"; break; case EOpConstructU64Vec2: out.debug << "Construct u64vec2"; break; case EOpConstructU64Vec3: out.debug << "Construct u64vec3"; break; case EOpConstructU64Vec4: out.debug << "Construct u64vec4"; break; + case EOpConstructInt16: out.debug << "Construct int16_t"; break; + case EOpConstructI16Vec2: out.debug << "Construct i16vec2"; break; + case EOpConstructI16Vec3: out.debug << "Construct i16vec3"; break; + case EOpConstructI16Vec4: out.debug << "Construct i16vec4"; break; + case EOpConstructUint16: out.debug << "Construct uint16_t"; break; + case EOpConstructU16Vec2: out.debug << "Construct u16vec2"; break; + case EOpConstructU16Vec3: out.debug << "Construct u16vec3"; break; + case EOpConstructU16Vec4: out.debug << "Construct u16vec4"; break; case EOpConstructMat2x2: out.debug << "Construct mat2"; break; case EOpConstructMat2x3: out.debug << "Construct mat2x3"; break; case EOpConstructMat2x4: out.debug << "Construct mat2x4"; break; @@ -469,7 +766,33 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructDMat4x2: out.debug << "Construct dmat4x2"; break; case EOpConstructDMat4x3: out.debug << "Construct dmat4x3"; break; case EOpConstructDMat4x4: out.debug << "Construct dmat4"; break; -#ifdef AMD_EXTENSIONS + case EOpConstructIMat2x2: out.debug << "Construct imat2"; break; + case EOpConstructIMat2x3: out.debug << "Construct imat2x3"; break; + case EOpConstructIMat2x4: out.debug << "Construct imat2x4"; break; + case EOpConstructIMat3x2: out.debug << "Construct imat3x2"; break; + case EOpConstructIMat3x3: out.debug << "Construct imat3"; break; + case EOpConstructIMat3x4: out.debug << "Construct imat3x4"; break; + case EOpConstructIMat4x2: out.debug << "Construct imat4x2"; break; + case EOpConstructIMat4x3: out.debug << "Construct imat4x3"; break; + case EOpConstructIMat4x4: out.debug << "Construct imat4"; break; + case EOpConstructUMat2x2: out.debug << "Construct umat2"; break; + case EOpConstructUMat2x3: out.debug << "Construct umat2x3"; break; + case EOpConstructUMat2x4: out.debug << "Construct umat2x4"; break; + case EOpConstructUMat3x2: out.debug << "Construct umat3x2"; break; + case EOpConstructUMat3x3: out.debug << "Construct umat3"; break; + case EOpConstructUMat3x4: out.debug << "Construct umat3x4"; break; + case EOpConstructUMat4x2: out.debug << "Construct umat4x2"; break; + case EOpConstructUMat4x3: out.debug << "Construct umat4x3"; break; + case EOpConstructUMat4x4: out.debug << "Construct umat4"; break; + case EOpConstructBMat2x2: out.debug << "Construct bmat2"; break; + case EOpConstructBMat2x3: out.debug << "Construct bmat2x3"; break; + case EOpConstructBMat2x4: out.debug << "Construct bmat2x4"; break; + case EOpConstructBMat3x2: out.debug << "Construct bmat3x2"; break; + case EOpConstructBMat3x3: out.debug << "Construct bmat3"; break; + case EOpConstructBMat3x4: out.debug << "Construct bmat3x4"; break; + case EOpConstructBMat4x2: out.debug << "Construct bmat4x2"; break; + case EOpConstructBMat4x3: out.debug << "Construct bmat4x3"; break; + case EOpConstructBMat4x4: out.debug << "Construct bmat4"; break; case EOpConstructFloat16: out.debug << "Construct float16_t"; break; case EOpConstructF16Vec2: out.debug << "Construct f16vec2"; break; case EOpConstructF16Vec3: out.debug << "Construct f16vec3"; break; @@ -483,7 +806,6 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructF16Mat4x2: out.debug << "Construct f16mat4x2"; break; case EOpConstructF16Mat4x3: out.debug << "Construct f16mat4x3"; break; case EOpConstructF16Mat4x4: out.debug << "Construct f16mat4"; break; -#endif case EOpConstructStruct: out.debug << "Construct structure"; break; case EOpConstructTextureSampler: out.debug << "Construct combined texture-sampler"; break; @@ -550,6 +872,16 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpAtomicExchange: out.debug << "AtomicExchange"; break; case EOpAtomicCompSwap: out.debug << "AtomicCompSwap"; break; + case EOpAtomicCounterAdd: out.debug << "AtomicCounterAdd"; break; + case EOpAtomicCounterSubtract: out.debug << "AtomicCounterSubtract"; break; + case EOpAtomicCounterMin: out.debug << "AtomicCounterMin"; break; + case EOpAtomicCounterMax: out.debug << "AtomicCounterMax"; break; + case EOpAtomicCounterAnd: out.debug << "AtomicCounterAnd"; break; + case EOpAtomicCounterOr: out.debug << "AtomicCounterOr"; break; + case EOpAtomicCounterXor: out.debug << "AtomicCounterXor"; break; + case EOpAtomicCounterExchange: out.debug << "AtomicCounterExchange"; break; + case EOpAtomicCounterCompSwap: out.debug << "AtomicCounterCompSwap"; break; + case EOpImageQuerySize: out.debug << "imageQuerySize"; break; case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break; case EOpImageLoad: out.debug << "imageLoad"; break; @@ -562,6 +894,10 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpImageAtomicXor: out.debug << "imageAtomicXor"; break; case EOpImageAtomicExchange: out.debug << "imageAtomicExchange"; break; case EOpImageAtomicCompSwap: out.debug << "imageAtomicCompSwap"; break; +#ifdef AMD_EXTENSIONS + case EOpImageLoadLod: out.debug << "imageLoadLod"; break; + case EOpImageStoreLod: out.debug << "imageStoreLod"; break; +#endif case EOpTextureQuerySize: out.debug << "textureSize"; break; case EOpTextureQueryLod: out.debug << "textureQueryLod"; break; @@ -584,6 +920,38 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpTextureGather: out.debug << "textureGather"; break; case EOpTextureGatherOffset: out.debug << "textureGatherOffset"; break; case EOpTextureGatherOffsets: out.debug << "textureGatherOffsets"; break; + case EOpTextureClamp: out.debug << "textureClamp"; break; + case EOpTextureOffsetClamp: out.debug << "textureOffsetClamp"; break; + case EOpTextureGradClamp: out.debug << "textureGradClamp"; break; + case EOpTextureGradOffsetClamp: out.debug << "textureGradOffsetClamp"; break; +#ifdef AMD_EXTENSIONS + case EOpTextureGatherLod: out.debug << "textureGatherLod"; break; + case EOpTextureGatherLodOffset: out.debug << "textureGatherLodOffset"; break; + case EOpTextureGatherLodOffsets: out.debug << "textureGatherLodOffsets"; break; +#endif + + case EOpSparseTexture: out.debug << "sparseTexture"; break; + case EOpSparseTextureOffset: out.debug << "sparseTextureOffset"; break; + case EOpSparseTextureLod: out.debug << "sparseTextureLod"; break; + case EOpSparseTextureLodOffset: out.debug << "sparseTextureLodOffset"; break; + case EOpSparseTextureFetch: out.debug << "sparseTexelFetch"; break; + case EOpSparseTextureFetchOffset: out.debug << "sparseTexelFetchOffset"; break; + case EOpSparseTextureGrad: out.debug << "sparseTextureGrad"; break; + case EOpSparseTextureGradOffset: out.debug << "sparseTextureGradOffset"; break; + case EOpSparseTextureGather: out.debug << "sparseTextureGather"; break; + case EOpSparseTextureGatherOffset: out.debug << "sparseTextureGatherOffset"; break; + case EOpSparseTextureGatherOffsets: out.debug << "sparseTextureGatherOffsets"; break; + case EOpSparseImageLoad: out.debug << "sparseImageLoad"; break; + case EOpSparseTextureClamp: out.debug << "sparseTextureClamp"; break; + case EOpSparseTextureOffsetClamp: out.debug << "sparseTextureOffsetClamp"; break; + case EOpSparseTextureGradClamp: out.debug << "sparseTextureGradClamp"; break; + case EOpSparseTextureGradOffsetClamp: out.debug << "sparseTextureGradOffsetClam"; break; +#ifdef AMD_EXTENSIONS + case EOpSparseTextureGatherLod: out.debug << "sparseTextureGatherLod"; break; + case EOpSparseTextureGatherLodOffset: out.debug << "sparseTextureGatherLodOffset"; break; + case EOpSparseTextureGatherLodOffsets: out.debug << "sparseTextureGatherLodOffsets"; break; + case EOpSparseImageLoadLod: out.debug << "sparseImageLoadLod"; break; +#endif case EOpAddCarry: out.debug << "addCarry"; break; case EOpSubBorrow: out.debug << "subBorrow"; break; @@ -606,10 +974,70 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpGenMul: out.debug << "mul"; break; case EOpAllMemoryBarrierWithGroupSync: out.debug << "AllMemoryBarrierWithGroupSync"; break; - case EOpGroupMemoryBarrierWithGroupSync: out.debug << "GroupMemoryBarrierWithGroupSync"; break; + case EOpDeviceMemoryBarrier: out.debug << "DeviceMemoryBarrier"; break; + case EOpDeviceMemoryBarrierWithGroupSync: out.debug << "DeviceMemoryBarrierWithGroupSync"; break; case EOpWorkgroupMemoryBarrier: out.debug << "WorkgroupMemoryBarrier"; break; case EOpWorkgroupMemoryBarrierWithGroupSync: out.debug << "WorkgroupMemoryBarrierWithGroupSync"; break; + case EOpSubgroupBarrier: out.debug << "subgroupBarrier"; break; + case EOpSubgroupMemoryBarrier: out.debug << "subgroupMemoryBarrier"; break; + case EOpSubgroupMemoryBarrierBuffer: out.debug << "subgroupMemoryBarrierBuffer"; break; + case EOpSubgroupMemoryBarrierImage: out.debug << "subgroupMemoryBarrierImage"; break; + case EOpSubgroupMemoryBarrierShared: out.debug << "subgroupMemoryBarrierShared"; break; + case EOpSubgroupElect: out.debug << "subgroupElect"; break; + case EOpSubgroupAll: out.debug << "subgroupAll"; break; + case EOpSubgroupAny: out.debug << "subgroupAny"; break; + case EOpSubgroupAllEqual: out.debug << "subgroupAllEqual"; break; + case EOpSubgroupBroadcast: out.debug << "subgroupBroadcast"; break; + case EOpSubgroupBroadcastFirst: out.debug << "subgroupBroadcastFirst"; break; + case EOpSubgroupBallot: out.debug << "subgroupBallot"; break; + case EOpSubgroupInverseBallot: out.debug << "subgroupInverseBallot"; break; + case EOpSubgroupBallotBitExtract: out.debug << "subgroupBallotBitExtract"; break; + case EOpSubgroupBallotBitCount: out.debug << "subgroupBallotBitCount"; break; + case EOpSubgroupBallotInclusiveBitCount: out.debug << "subgroupBallotInclusiveBitCount"; break; + case EOpSubgroupBallotExclusiveBitCount: out.debug << "subgroupBallotExclusiveBitCount"; break; + case EOpSubgroupBallotFindLSB: out.debug << "subgroupBallotFindLSB"; break; + case EOpSubgroupBallotFindMSB: out.debug << "subgroupBallotFindMSB"; break; + case EOpSubgroupShuffle: out.debug << "subgroupShuffle"; break; + case EOpSubgroupShuffleXor: out.debug << "subgroupShuffleXor"; break; + case EOpSubgroupShuffleUp: out.debug << "subgroupShuffleUp"; break; + case EOpSubgroupShuffleDown: out.debug << "subgroupShuffleDown"; break; + case EOpSubgroupAdd: out.debug << "subgroupAdd"; break; + case EOpSubgroupMul: out.debug << "subgroupMul"; break; + case EOpSubgroupMin: out.debug << "subgroupMin"; break; + case EOpSubgroupMax: out.debug << "subgroupMax"; break; + case EOpSubgroupAnd: out.debug << "subgroupAnd"; break; + case EOpSubgroupOr: out.debug << "subgroupOr"; break; + case EOpSubgroupXor: out.debug << "subgroupXor"; break; + case EOpSubgroupInclusiveAdd: out.debug << "subgroupInclusiveAdd"; break; + case EOpSubgroupInclusiveMul: out.debug << "subgroupInclusiveMul"; break; + case EOpSubgroupInclusiveMin: out.debug << "subgroupInclusiveMin"; break; + case EOpSubgroupInclusiveMax: out.debug << "subgroupInclusiveMax"; break; + case EOpSubgroupInclusiveAnd: out.debug << "subgroupInclusiveAnd"; break; + case EOpSubgroupInclusiveOr: out.debug << "subgroupInclusiveOr"; break; + case EOpSubgroupInclusiveXor: out.debug << "subgroupInclusiveXor"; break; + case EOpSubgroupExclusiveAdd: out.debug << "subgroupExclusiveAdd"; break; + case EOpSubgroupExclusiveMul: out.debug << "subgroupExclusiveMul"; break; + case EOpSubgroupExclusiveMin: out.debug << "subgroupExclusiveMin"; break; + case EOpSubgroupExclusiveMax: out.debug << "subgroupExclusiveMax"; break; + case EOpSubgroupExclusiveAnd: out.debug << "subgroupExclusiveAnd"; break; + case EOpSubgroupExclusiveOr: out.debug << "subgroupExclusiveOr"; break; + case EOpSubgroupExclusiveXor: out.debug << "subgroupExclusiveXor"; break; + case EOpSubgroupClusteredAdd: out.debug << "subgroupClusteredAdd"; break; + case EOpSubgroupClusteredMul: out.debug << "subgroupClusteredMul"; break; + case EOpSubgroupClusteredMin: out.debug << "subgroupClusteredMin"; break; + case EOpSubgroupClusteredMax: out.debug << "subgroupClusteredMax"; break; + case EOpSubgroupClusteredAnd: out.debug << "subgroupClusteredAnd"; break; + case EOpSubgroupClusteredOr: out.debug << "subgroupClusteredOr"; break; + case EOpSubgroupClusteredXor: out.debug << "subgroupClusteredXor"; break; + case EOpSubgroupQuadBroadcast: out.debug << "subgroupQuadBroadcast"; break; + case EOpSubgroupQuadSwapHorizontal: out.debug << "subgroupQuadSwapHorizontal"; break; + case EOpSubgroupQuadSwapVertical: out.debug << "subgroupQuadSwapVertical"; break; + case EOpSubgroupQuadSwapDiagonal: out.debug << "subgroupQuadSwapDiagonal"; break; + + case EOpSubpassLoad: out.debug << "subpassLoad"; break; + case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break; + default: out.debug.message(EPrefixError, "Bad aggregation op"); } @@ -628,7 +1056,15 @@ bool TOutputTraverser::visitSelection(TVisit /* visit */, TIntermSelection* node OutputTreeText(out, node, depth); out.debug << "Test condition and select"; - out.debug << " (" << node->getCompleteString() << ")\n"; + out.debug << " (" << node->getCompleteString() << ")"; + + if (node->getShortCircuit() == false) + out.debug << ": no shortcircuit"; + if (node->getFlatten()) + out.debug << ": Flatten"; + if (node->getDontFlatten()) + out.debug << ": DontFlatten"; + out.debug << "\n"; ++depth; @@ -654,7 +1090,61 @@ bool TOutputTraverser::visitSelection(TVisit /* visit */, TIntermSelection* node return false; } -static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const TConstUnionArray& constUnion, int depth) +// Print infinities and NaNs, and numbers in a portable way. +// Goals: +// - portable (across IEEE 754 platforms) +// - shows all possible IEEE values +// - shows simple numbers in a simple way, e.g., no leading/trailing 0s +// - shows all digits, no premature rounding +static void OutputDouble(TInfoSink& out, double value, TOutputTraverser::EExtraOutput extra) +{ + if (IsInfinity(value)) { + if (value < 0) + out.debug << "-1.#INF"; + else + out.debug << "+1.#INF"; + } else if (IsNan(value)) + out.debug << "1.#IND"; + else { + const int maxSize = 340; + char buf[maxSize]; + const char* format = "%f"; + if (fabs(value) > 0.0 && (fabs(value) < 1e-5 || fabs(value) > 1e12)) + format = "%-.13e"; + int len = snprintf(buf, maxSize, format, value); + assert(len < maxSize); + + // remove a leading zero in the 100s slot in exponent; it is not portable + // pattern: XX...XXXe+0XX or XX...XXXe-0XX + if (len > 5) { + if (buf[len-5] == 'e' && (buf[len-4] == '+' || buf[len-4] == '-') && buf[len-3] == '0') { + buf[len-3] = buf[len-2]; + buf[len-2] = buf[len-1]; + buf[len-1] = '\0'; + } + } + + out.debug << buf; + + switch (extra) { + case TOutputTraverser::BinaryDoubleOutput: + { + out.debug << " : "; + long long b = *reinterpret_cast(&value); + for (size_t i = 0; i < 8 * sizeof(value); ++i, ++b) { + out.debug << ((b & 0x8000000000000000) != 0 ? "1" : "0"); + b <<= 1; + } + break; + } + default: + break; + } + } +} + +static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const TConstUnionArray& constUnion, + TOutputTraverser::EExtraOutput extra, int depth) { int size = node->getType().computeNumComponents(); @@ -673,23 +1163,44 @@ static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const break; case EbtFloat: case EbtDouble: -#ifdef AMD_EXTENSIONS case EbtFloat16: -#endif + OutputDouble(out, constUnion[i].getDConst(), extra); + out.debug << "\n"; + break; + case EbtInt8: { - const double value = constUnion[i].getDConst(); - // Print infinity in a portable way, for test stability. - // Other cases may be needed in the future: negative infinity, - // and NaNs. - if (is_positive_infinity(value)) - out.debug << "inf\n"; - else { - const int maxSize = 300; - char buf[maxSize]; - snprintf(buf, maxSize, "%f", value); + const int maxSize = 300; + char buf[maxSize]; + snprintf(buf, maxSize, "%d (%s)", constUnion[i].getI8Const(), "const int8_t"); - out.debug << buf << "\n"; - } + out.debug << buf << "\n"; + } + break; + case EbtUint8: + { + const int maxSize = 300; + char buf[maxSize]; + snprintf(buf, maxSize, "%u (%s)", constUnion[i].getU8Const(), "const uint8_t"); + + out.debug << buf << "\n"; + } + break; + case EbtInt16: + { + const int maxSize = 300; + char buf[maxSize]; + snprintf(buf, maxSize, "%d (%s)", constUnion[i].getI16Const(), "const int16_t"); + + out.debug << buf << "\n"; + } + break; + case EbtUint16: + { + const int maxSize = 300; + char buf[maxSize]; + snprintf(buf, maxSize, "%u (%s)", constUnion[i].getU16Const(), "const uint16_t"); + + out.debug << buf << "\n"; } break; case EbtInt: @@ -740,7 +1251,7 @@ void TOutputTraverser::visitConstantUnion(TIntermConstantUnion* node) OutputTreeText(infoSink, node, depth); infoSink.debug << "Constant:\n"; - OutputConstantUnion(infoSink, node, node->getConstArray(), depth + 1); + OutputConstantUnion(infoSink, node, node->getConstArray(), extraOutput, depth + 1); } void TOutputTraverser::visitSymbol(TIntermSymbol* node) @@ -750,7 +1261,7 @@ void TOutputTraverser::visitSymbol(TIntermSymbol* node) infoSink.debug << "'" << node->getName() << "' (" << node->getCompleteString() << ")\n"; if (! node->getConstArray().empty()) - OutputConstantUnion(infoSink, node, node->getConstArray(), depth + 1); + OutputConstantUnion(infoSink, node, node->getConstArray(), extraOutput, depth + 1); else if (node->getConstSubtree()) { incrementDepth(node); node->getConstSubtree()->traverse(this); @@ -767,7 +1278,17 @@ bool TOutputTraverser::visitLoop(TVisit /* visit */, TIntermLoop* node) out.debug << "Loop with condition "; if (! node->testFirst()) out.debug << "not "; - out.debug << "tested first\n"; + out.debug << "tested first"; + + if (node->getUnroll()) + out.debug << ": Unroll"; + if (node->getDontUnroll()) + out.debug << ": DontUnroll"; + if (node->getLoopDependency()) { + out.debug << ": Dependency "; + out.debug << node->getLoopDependency(); + } + out.debug << "\n"; ++depth; @@ -828,7 +1349,13 @@ bool TOutputTraverser::visitSwitch(TVisit /* visit */, TIntermSwitch* node) TInfoSink& out = infoSink; OutputTreeText(out, node, depth); - out.debug << "switch\n"; + out.debug << "switch"; + + if (node->getFlatten()) + out.debug << ": Flatten"; + if (node->getDontFlatten()) + out.debug << ": DontFlatten"; + out.debug << "\n"; OutputTreeText(out, node, depth); out.debug << "condition\n"; @@ -868,6 +1395,13 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree) case EShLangTessControl: infoSink.debug << "vertices = " << vertices << "\n"; + + if (inputPrimitive != ElgNone) + infoSink.debug << "input primitive = " << TQualifier::getGeometryString(inputPrimitive) << "\n"; + if (vertexSpacing != EvsNone) + infoSink.debug << "vertex spacing = " << TQualifier::getVertexSpacingString(vertexSpacing) << "\n"; + if (vertexOrder != EvoNone) + infoSink.debug << "triangle order = " << TQualifier::getVertexOrderString(vertexOrder) << "\n"; break; case EShLangTessEvaluation: @@ -892,6 +1426,8 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree) infoSink.debug << "gl_FragCoord origin is upper left\n"; if (earlyFragmentTests) infoSink.debug << "using early_fragment_tests\n"; + if (postDepthCoverage) + infoSink.debug << "using post_depth_coverage\n"; if (depthLayout != EldNone) infoSink.debug << "using " << TQualifier::getLayoutDepthString(depthLayout) << "\n"; if (blendEquations != 0) { @@ -927,7 +1463,8 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree) return; TOutputTraverser it(infoSink); - + if (getBinaryDoubleOutput()) + it.setDoubleOutput(TOutputTraverser::BinaryDoubleOutput); treeRoot->traverse(&it); } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/iomapper.cpp b/deps/glslang/glslang/glslang/MachineIndependent/iomapper.cpp index 269d654954..9ab9deaa35 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/iomapper.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/iomapper.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016-2017 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // #include "../Include/Common.h" @@ -66,11 +66,14 @@ namespace glslang { struct TVarEntryInfo { - int id; - TIntermSymbol* symbol; - bool live; - int newBinding; - int newSet; + int id; + TIntermSymbol* symbol; + bool live; + int newBinding; + int newSet; + int newLocation; + int newComponent; + int newIndex; struct TOrderById { @@ -113,74 +116,151 @@ typedef std::vector TVarLiveMap; class TVarGatherTraverser : public TLiveTraverser { public: - TVarGatherTraverser(const TIntermediate& i, TVarLiveMap& vars, bool traverseDeadCode) + TVarGatherTraverser(const TIntermediate& i, bool traverseDeadCode, TVarLiveMap& inList, TVarLiveMap& outList, TVarLiveMap& uniformList) : TLiveTraverser(i, traverseDeadCode, true, true, false) - , varLiveList(vars) + , inputList(inList) + , outputList(outList) + , uniformList(uniformList) { } virtual void visitSymbol(TIntermSymbol* base) { - if (base->getQualifier().storage == EvqUniform) { + TVarLiveMap* target = nullptr; + if (base->getQualifier().storage == EvqVaryingIn) + target = &inputList; + else if (base->getQualifier().storage == EvqVaryingOut) + target = &outputList; + else if (base->getQualifier().isUniformOrBuffer() && !base->getQualifier().layoutPushConstant) + target = &uniformList; + + if (target) { TVarEntryInfo ent = { base->getId(), base, !traverseAll }; - TVarLiveMap::iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); - if (at != varLiveList.end() && at->id == ent.id) + TVarLiveMap::iterator at = std::lower_bound(target->begin(), target->end(), ent, TVarEntryInfo::TOrderById()); + if (at != target->end() && at->id == ent.id) at->live = at->live || !traverseAll; // update live state else - varLiveList.insert(at, ent); + target->insert(at, ent); } } private: - TVarLiveMap& varLiveList; + TVarLiveMap& inputList; + TVarLiveMap& outputList; + TVarLiveMap& uniformList; }; class TVarSetTraverser : public TLiveTraverser { public: - TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& vars) + TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& inList, const TVarLiveMap& outList, const TVarLiveMap& uniformList) : TLiveTraverser(i, true, true, true, false) - , varLiveList(vars) + , inputList(inList) + , outputList(outList) + , uniformList(uniformList) { } virtual void visitSymbol(TIntermSymbol* base) { - TVarEntryInfo ent = { base->getId() }; - TVarLiveMap::const_iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); - if (at == varLiveList.end()) + const TVarLiveMap* source; + if (base->getQualifier().storage == EvqVaryingIn) + source = &inputList; + else if (base->getQualifier().storage == EvqVaryingOut) + source = &outputList; + else if (base->getQualifier().isUniformOrBuffer()) + source = &uniformList; + else return; - if (!(at->id == ent.id)) + + TVarEntryInfo ent = { base->getId() }; + TVarLiveMap::const_iterator at = std::lower_bound(source->begin(), source->end(), ent, TVarEntryInfo::TOrderById()); + if (at == source->end()) + return; + + if (at->id != ent.id) return; if (at->newBinding != -1) base->getWritableType().getQualifier().layoutBinding = at->newBinding; if (at->newSet != -1) base->getWritableType().getQualifier().layoutSet = at->newSet; + if (at->newLocation != -1) + base->getWritableType().getQualifier().layoutLocation = at->newLocation; + if (at->newComponent != -1) + base->getWritableType().getQualifier().layoutComponent = at->newComponent; + if (at->newIndex != -1) + base->getWritableType().getQualifier().layoutIndex = at->newIndex; } private: - const TVarLiveMap& varLiveList; + const TVarLiveMap& inputList; + const TVarLiveMap& outputList; + const TVarLiveMap& uniformList; }; -struct TResolverAdaptor +struct TNotifyUniformAdaptor { - TResolverAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e) - : resolver(r) - , stage(s) + EShLanguage stage; + TIoMapResolver& resolver; + inline TNotifyUniformAdaptor(EShLanguage s, TIoMapResolver& r) + : stage(s) + , resolver(r) + { + } + inline void operator()(TVarEntryInfo& ent) + { + resolver.notifyBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + } +private: + TNotifyUniformAdaptor& operator=(TNotifyUniformAdaptor&); +}; + +struct TNotifyInOutAdaptor +{ + EShLanguage stage; + TIoMapResolver& resolver; + inline TNotifyInOutAdaptor(EShLanguage s, TIoMapResolver& r) + : stage(s) + , resolver(r) + { + } + inline void operator()(TVarEntryInfo& ent) + { + resolver.notifyInOut(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + } +private: + TNotifyInOutAdaptor& operator=(TNotifyInOutAdaptor&); +}; + +struct TResolverUniformAdaptor +{ + TResolverUniformAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e, TIntermediate& interm) + : stage(s) + , resolver(r) , infoSink(i) , error(e) + , intermediate(interm) { } inline void operator()(TVarEntryInfo& ent) { - const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + ent.newLocation = -1; + ent.newComponent = -1; + ent.newBinding = -1; + ent.newSet = -1; + ent.newIndex = -1; + const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), + ent.live); if (isValid) { - ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), + ent.live); ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + ent.newLocation = resolver.resolveUniformLocation(stage, ent.symbol->getName().c_str(), + ent.symbol->getType(), ent.live); if (ent.newBinding != -1) { if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) { @@ -209,22 +289,85 @@ struct TResolverAdaptor TIoMapResolver& resolver; TInfoSink& infoSink; bool& error; + TIntermediate& intermediate; + +private: + TResolverUniformAdaptor& operator=(TResolverUniformAdaptor&); }; -/* - * Basic implementation of glslang::TIoMapResolver that replaces the - * previous offset behaviour. - * It does the same, uses the offsets for th corresponding uniform - * types. Also respects the EOptionAutoMapBindings flag and binds - * them if needed. - */ -struct TDefaultIoResolver : public glslang::TIoMapResolver +struct TResolverInOutAdaptor { - int baseSamplerBinding; - int baseTextureBinding; - int baseImageBinding; - int baseUboBinding; - bool doAutoMapping; + TResolverInOutAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e, TIntermediate& interm) + : stage(s) + , resolver(r) + , infoSink(i) + , error(e) + , intermediate(interm) + { + } + + inline void operator()(TVarEntryInfo& ent) + { + ent.newLocation = -1; + ent.newComponent = -1; + ent.newBinding = -1; + ent.newSet = -1; + ent.newIndex = -1; + const bool isValid = resolver.validateInOut(stage, + ent.symbol->getName().c_str(), + ent.symbol->getType(), + ent.live); + if (isValid) { + ent.newLocation = resolver.resolveInOutLocation(stage, + ent.symbol->getName().c_str(), + ent.symbol->getType(), + ent.live); + ent.newComponent = resolver.resolveInOutComponent(stage, + ent.symbol->getName().c_str(), + ent.symbol->getType(), + ent.live); + ent.newIndex = resolver.resolveInOutIndex(stage, + ent.symbol->getName().c_str(), + ent.symbol->getType(), + ent.live); + } else { + TString errorMsg = "Invalid shader In/Out variable semantic: "; + errorMsg += ent.symbol->getType().getQualifier().semanticName; + infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); + error = true; + } + } + + EShLanguage stage; + TIoMapResolver& resolver; + TInfoSink& infoSink; + bool& error; + TIntermediate& intermediate; + +private: + TResolverInOutAdaptor& operator=(TResolverInOutAdaptor&); +}; + +// Base class for shared TIoMapResolver services, used by several derivations. +struct TDefaultIoResolverBase : public glslang::TIoMapResolver +{ + TDefaultIoResolverBase(const TIntermediate &intermediate) : + intermediate(intermediate), + nextUniformLocation(0), + nextInputLocation(0), + nextOutputLocation(0) + { } + + int getBaseBinding(TResourceType res, unsigned int set) const { + return selectBaseBinding(intermediate.getShiftBinding(res), + intermediate.getShiftBindingForSet(res, set)); + } + + const std::vector& getResourceSetBinding() const { return intermediate.getResourceSetBinding(); } + + bool doAutoBindingMapping() const { return intermediate.getAutoMapBindings(); } + bool doAutoLocationMapping() const { return intermediate.getAutoMapLocations(); } + typedef std::vector TSlotSet; typedef std::unordered_map TSlotSetMap; TSlotSetMap slots; @@ -240,116 +383,362 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver return !(at != slots[set].end() && *at == slot); } - int reserveSlot(int set, int slot) + int reserveSlot(int set, int slot, int size = 1) { TSlotSet::iterator at = findSlot(set, slot); - slots[set].insert(at, slot); + + // tolerate aliasing, by not double-recording aliases + // (policy about appropriateness of the alias is higher up) + for (int i = 0; i < size; i++) { + if (at == slots[set].end() || *at != slot + i) + at = slots[set].insert(at, slot + i); + ++at; + } + return slot; } - int getFreeSlot(int set, int base) + int getFreeSlot(int set, int base, int size = 1) { TSlotSet::iterator at = findSlot(set, base); if (at == slots[set].end()) - return reserveSlot(set, base); + return reserveSlot(set, base, size); - // look in locksteps, if they not match, then there is a free slot - for (; at != slots[set].end(); ++at, ++base) - if (*at != base) + // look for a big enough gap + for (; at != slots[set].end(); ++at) { + if (*at - base >= size) break; - return reserveSlot(set, base); - } - - bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override - { - if (type.getQualifier().hasBinding()) { - int set; - if (type.getQualifier().hasSet()) - set = type.getQualifier().layoutSet; - else - set = 0; - - if (type.getBasicType() == glslang::EbtSampler) { - const glslang::TSampler& sampler = type.getSampler(); - if (sampler.isPureSampler()) - return checkEmpty(set, baseSamplerBinding + type.getQualifier().layoutBinding); - - if (sampler.isTexture()) - return checkEmpty(set, baseTextureBinding + type.getQualifier().layoutBinding); - } - - if (type.getQualifier().isUniformOrBuffer()) - return checkEmpty(set, baseUboBinding + type.getQualifier().layoutBinding); + base = *at + 1; } - return true; + return reserveSlot(set, base, size); } - int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override - { - int set; - if (type.getQualifier().hasSet()) - set = type.getQualifier().layoutSet; - else - set = 0; + virtual bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override = 0; - if (type.getQualifier().hasBinding()) { - if (type.getBasicType() == glslang::EbtSampler) { - const glslang::TSampler& sampler = type.getSampler(); - if (sampler.isImage()) - return reserveSlot(set, baseImageBinding + type.getQualifier().layoutBinding); - - if (sampler.isPureSampler()) - return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding); - - if (sampler.isTexture()) - return reserveSlot(set, baseTextureBinding + type.getQualifier().layoutBinding); - } - - if (type.getQualifier().isUniformOrBuffer()) - return reserveSlot(set, baseUboBinding + type.getQualifier().layoutBinding); - } else if (is_live && doAutoMapping) { - // find free slot, the caller did make sure it passes all vars with binding - // first and now all are passed that do not have a binding and needs one - if (type.getBasicType() == glslang::EbtSampler) { - const glslang::TSampler& sampler = type.getSampler(); - if (sampler.isImage()) - return getFreeSlot(set, baseImageBinding); - - if (sampler.isPureSampler()) - return getFreeSlot(set, baseSamplerBinding); - - if (sampler.isTexture()) - return getFreeSlot(set, baseTextureBinding); - } - - if (type.getQualifier().isUniformOrBuffer()) - return getFreeSlot(set, baseUboBinding); - } - - return -1; - } + virtual int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override = 0; int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override { if (type.getQualifier().hasSet()) return type.getQualifier().layoutSet; + + // If a command line or API option requested a single descriptor set, use that (if not overrided by spaceN) + if (getResourceSetBinding().size() == 1) + return atoi(getResourceSetBinding()[0].c_str()); + return 0; } + int resolveUniformLocation(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + // kick out of not doing this + if (!doAutoLocationMapping()) + return -1; + + // no locations added if already present, a built-in variable, a block, or an opaque + if (type.getQualifier().hasLocation() || type.isBuiltIn() || + type.getBasicType() == EbtBlock || + type.getBasicType() == EbtAtomicUint || + (type.containsOpaque() && intermediate.getSpv().openGl == 0)) + return -1; + + // no locations on blocks of built-in variables + if (type.isStruct()) { + if (type.getStruct()->size() < 1) + return -1; + if ((*type.getStruct())[0].type->isBuiltIn()) + return -1; + } + + int location = nextUniformLocation; + + nextUniformLocation += TIntermediate::computeTypeUniformLocationSize(type); + + return location; + } + bool validateInOut(EShLanguage /*stage*/, const char* /*name*/, const TType& /*type*/, bool /*is_live*/) override + { + return true; + } + int resolveInOutLocation(EShLanguage stage, const char* /*name*/, const TType& type, bool /*is_live*/) override + { + // kick out of not doing this + if (!doAutoLocationMapping()) + return -1; + + // no locations added if already present, or a built-in variable + if (type.getQualifier().hasLocation() || type.isBuiltIn()) + return -1; + + // no locations on blocks of built-in variables + if (type.isStruct()) { + if (type.getStruct()->size() < 1) + return -1; + if ((*type.getStruct())[0].type->isBuiltIn()) + return -1; + } + + // point to the right input or output location counter + int& nextLocation = type.getQualifier().isPipeInput() ? nextInputLocation : nextOutputLocation; + + // Placeholder. This does not do proper cross-stage lining up, nor + // work with mixed location/no-location declarations. + int location = nextLocation; + int typeLocationSize; + // Don’t take into account the outer-most array if the stage’s + // interface is automatically an array. + if (type.getQualifier().isArrayedIo(stage)) { + TType elementType(type, 0); + typeLocationSize = TIntermediate::computeTypeLocationSize(elementType, stage); + } else { + typeLocationSize = TIntermediate::computeTypeLocationSize(type, stage); + } + nextLocation += typeLocationSize; + + return location; + } + int resolveInOutComponent(EShLanguage /*stage*/, const char* /*name*/, const TType& /*type*/, bool /*is_live*/) override + { + return -1; + } + int resolveInOutIndex(EShLanguage /*stage*/, const char* /*name*/, const TType& /*type*/, bool /*is_live*/) override + { + return -1; + } + + void notifyBinding(EShLanguage, const char* /*name*/, const TType&, bool /*is_live*/) override {} + void notifyInOut(EShLanguage, const char* /*name*/, const TType&, bool /*is_live*/) override {} + void endNotifications(EShLanguage) override {} + void beginNotifications(EShLanguage) override {} + void beginResolve(EShLanguage) override {} + void endResolve(EShLanguage) override {} + +protected: + const TIntermediate &intermediate; + int nextUniformLocation; + int nextInputLocation; + int nextOutputLocation; + + // Return descriptor set specific base if there is one, and the generic base otherwise. + int selectBaseBinding(int base, int descriptorSetBase) const { + return descriptorSetBase != -1 ? descriptorSetBase : base; + } + + static int getLayoutSet(const glslang::TType& type) { + if (type.getQualifier().hasSet()) + return type.getQualifier().layoutSet; + else + return 0; + } + + static bool isSamplerType(const glslang::TType& type) { + return type.getBasicType() == glslang::EbtSampler && type.getSampler().isPureSampler(); + } + + static bool isTextureType(const glslang::TType& type) { + return (type.getBasicType() == glslang::EbtSampler && + (type.getSampler().isTexture() || type.getSampler().isSubpass())); + } + + static bool isUboType(const glslang::TType& type) { + return type.getQualifier().storage == EvqUniform; + } }; +/* + * Basic implementation of glslang::TIoMapResolver that replaces the + * previous offset behavior. + * It does the same, uses the offsets for the corresponding uniform + * types. Also respects the EOptionAutoMapBindings flag and binds + * them if needed. + */ +/* + * Default resolver + */ +struct TDefaultIoResolver : public TDefaultIoResolverBase +{ + TDefaultIoResolver(const TIntermediate &intermediate) : TDefaultIoResolverBase(intermediate) { } + + bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& /*type*/, bool /*is_live*/) override + { + return true; + } + + int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override + { + const int set = getLayoutSet(type); + // On OpenGL arrays of opaque types take a seperate binding for each element + int numBindings = intermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1; + + if (type.getQualifier().hasBinding()) { + if (isImageType(type)) + return reserveSlot(set, getBaseBinding(EResImage, set) + type.getQualifier().layoutBinding, numBindings); + + if (isTextureType(type)) + return reserveSlot(set, getBaseBinding(EResTexture, set) + type.getQualifier().layoutBinding, numBindings); + + if (isSsboType(type)) + return reserveSlot(set, getBaseBinding(EResSsbo, set) + type.getQualifier().layoutBinding, numBindings); + + if (isSamplerType(type)) + return reserveSlot(set, getBaseBinding(EResSampler, set) + type.getQualifier().layoutBinding, numBindings); + + if (isUboType(type)) + return reserveSlot(set, getBaseBinding(EResUbo, set) + type.getQualifier().layoutBinding, numBindings); + } else if (is_live && doAutoBindingMapping()) { + // find free slot, the caller did make sure it passes all vars with binding + // first and now all are passed that do not have a binding and needs one + + if (isImageType(type)) + return getFreeSlot(set, getBaseBinding(EResImage, set), numBindings); + + if (isTextureType(type)) + return getFreeSlot(set, getBaseBinding(EResTexture, set), numBindings); + + if (isSsboType(type)) + return getFreeSlot(set, getBaseBinding(EResSsbo, set), numBindings); + + if (isSamplerType(type)) + return getFreeSlot(set, getBaseBinding(EResSampler, set), numBindings); + + if (isUboType(type)) + return getFreeSlot(set, getBaseBinding(EResUbo, set), numBindings); + } + + return -1; + } + +protected: + static bool isImageType(const glslang::TType& type) { + return type.getBasicType() == glslang::EbtSampler && type.getSampler().isImage(); + } + + static bool isSsboType(const glslang::TType& type) { + return type.getQualifier().storage == EvqBuffer; + } +}; + +/******************************************************************************** +The following IO resolver maps types in HLSL register space, as follows: + +t - for shader resource views (SRV) + TEXTURE1D + TEXTURE1DARRAY + TEXTURE2D + TEXTURE2DARRAY + TEXTURE3D + TEXTURECUBE + TEXTURECUBEARRAY + TEXTURE2DMS + TEXTURE2DMSARRAY + STRUCTUREDBUFFER + BYTEADDRESSBUFFER + BUFFER + TBUFFER + +s - for samplers + SAMPLER + SAMPLER1D + SAMPLER2D + SAMPLER3D + SAMPLERCUBE + SAMPLERSTATE + SAMPLERCOMPARISONSTATE + +u - for unordered access views (UAV) + RWBYTEADDRESSBUFFER + RWSTRUCTUREDBUFFER + APPENDSTRUCTUREDBUFFER + CONSUMESTRUCTUREDBUFFER + RWBUFFER + RWTEXTURE1D + RWTEXTURE1DARRAY + RWTEXTURE2D + RWTEXTURE2DARRAY + RWTEXTURE3D + +b - for constant buffer views (CBV) + CBUFFER + CONSTANTBUFFER + ********************************************************************************/ +struct TDefaultHlslIoResolver : public TDefaultIoResolverBase +{ + TDefaultHlslIoResolver(const TIntermediate &intermediate) : TDefaultIoResolverBase(intermediate) { } + + bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& /*type*/, bool /*is_live*/) override + { + return true; + } + + int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override + { + const int set = getLayoutSet(type); + + if (type.getQualifier().hasBinding()) { + if (isUavType(type)) + return reserveSlot(set, getBaseBinding(EResUav, set) + type.getQualifier().layoutBinding); + + if (isSrvType(type)) + return reserveSlot(set, getBaseBinding(EResTexture, set) + type.getQualifier().layoutBinding); + + if (isSamplerType(type)) + return reserveSlot(set, getBaseBinding(EResSampler, set) + type.getQualifier().layoutBinding); + + if (isUboType(type)) + return reserveSlot(set, getBaseBinding(EResUbo, set) + type.getQualifier().layoutBinding); + } else if (is_live && doAutoBindingMapping()) { + // find free slot, the caller did make sure it passes all vars with binding + // first and now all are passed that do not have a binding and needs one + + if (isUavType(type)) + return getFreeSlot(set, getBaseBinding(EResUav, set)); + + if (isSrvType(type)) + return getFreeSlot(set, getBaseBinding(EResTexture, set)); + + if (isSamplerType(type)) + return getFreeSlot(set, getBaseBinding(EResSampler, set)); + + if (isUboType(type)) + return getFreeSlot(set, getBaseBinding(EResUbo, set)); + } + + return -1; + } + +protected: + // Return true if this is a SRV (shader resource view) type: + static bool isSrvType(const glslang::TType& type) { + return isTextureType(type) || type.getQualifier().storage == EvqBuffer; + } + + // Return true if this is a UAV (unordered access view) type: + static bool isUavType(const glslang::TType& type) { + if (type.getQualifier().readonly) + return false; + + return (type.getBasicType() == glslang::EbtSampler && type.getSampler().isImage()) || + (type.getQualifier().storage == EvqBuffer); + } +}; + + // Map I/O variables to provided offsets, and make bindings for // unbound but live variables. // // Returns false if the input is too malformed to do this. bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSink &infoSink, TIoMapResolver *resolver) { - // Trivial return if there is nothing to do. - if (intermediate.getShiftSamplerBinding() == 0 && - intermediate.getShiftTextureBinding() == 0 && - intermediate.getShiftImageBinding() == 0 && - intermediate.getShiftUboBinding() == 0 && - intermediate.getAutoMapBindings() == false && - resolver == nullptr) + bool somethingToDo = !intermediate.getResourceSetBinding().empty() || + intermediate.getAutoMapBindings() || + intermediate.getAutoMapLocations(); + + for (int res = 0; res < EResCount; ++res) { + somethingToDo = somethingToDo || + (intermediate.getShiftBinding(TResourceType(res)) != 0) || + intermediate.hasShiftBindingForSet(TResourceType(res)); + } + + if (!somethingToDo && resolver == nullptr) return true; if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) @@ -360,20 +749,20 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi return false; // if no resolver is provided, use the default resolver with the given shifts and auto map settings - TDefaultIoResolver defaultResolver; - if (resolver == nullptr) { - defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding(); - defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding(); - defaultResolver.baseImageBinding = intermediate.getShiftImageBinding(); - defaultResolver.baseUboBinding = intermediate.getShiftUboBinding(); - defaultResolver.doAutoMapping = intermediate.getAutoMapBindings(); + TDefaultIoResolver defaultResolver(intermediate); + TDefaultHlslIoResolver defaultHlslResolver(intermediate); - resolver = &defaultResolver; + if (resolver == nullptr) { + // TODO: use a passed in IO mapper for this + if (intermediate.usingHlslIoMapping()) + resolver = &defaultHlslResolver; + else + resolver = &defaultResolver; } - TVarLiveMap varMap; - TVarGatherTraverser iter_binding_all(intermediate, varMap, true); - TVarGatherTraverser iter_binding_live(intermediate, varMap, false); + TVarLiveMap inVarMap, outVarMap, uniformVarMap; + TVarGatherTraverser iter_binding_all(intermediate, true, inVarMap, outVarMap, uniformVarMap); + TVarGatherTraverser iter_binding_live(intermediate, false, inVarMap, outVarMap, uniformVarMap); root->traverse(&iter_binding_all); iter_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); @@ -385,16 +774,28 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi } // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. - std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderByPriority()); + std::sort(uniformVarMap.begin(), uniformVarMap.end(), TVarEntryInfo::TOrderByPriority()); bool hadError = false; - TResolverAdaptor doResolve(stage, *resolver, infoSink, hadError); - std::for_each(varMap.begin(), varMap.end(), doResolve); + TNotifyInOutAdaptor inOutNotify(stage, *resolver); + TNotifyUniformAdaptor uniformNotify(stage, *resolver); + TResolverUniformAdaptor uniformResolve(stage, *resolver, infoSink, hadError, intermediate); + TResolverInOutAdaptor inOutResolve(stage, *resolver, infoSink, hadError, intermediate); + resolver->beginNotifications(stage); + std::for_each(inVarMap.begin(), inVarMap.end(), inOutNotify); + std::for_each(outVarMap.begin(), outVarMap.end(), inOutNotify); + std::for_each(uniformVarMap.begin(), uniformVarMap.end(), uniformNotify); + resolver->endNotifications(stage); + resolver->beginResolve(stage); + std::for_each(inVarMap.begin(), inVarMap.end(), inOutResolve); + std::for_each(outVarMap.begin(), outVarMap.end(), inOutResolve); + std::for_each(uniformVarMap.begin(), uniformVarMap.end(), uniformResolve); + resolver->endResolve(stage); if (!hadError) { // sort by id again, so we can use lower bound to find entries - std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderById()); - TVarSetTraverser iter_iomap(intermediate, varMap); + std::sort(uniformVarMap.begin(), uniformVarMap.end(), TVarEntryInfo::TOrderById()); + TVarSetTraverser iter_iomap(intermediate, inVarMap, outVarMap, uniformVarMap); root->traverse(&iter_iomap); } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/iomapper.h b/deps/glslang/glslang/glslang/MachineIndependent/iomapper.h index ff47543d2c..5e0d4391cc 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/iomapper.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/iomapper.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // #ifndef _IOMAPPER_INCLUDED diff --git a/deps/glslang/glslang/glslang/MachineIndependent/limits.cpp b/deps/glslang/glslang/glslang/MachineIndependent/limits.cpp index 49da930110..64d191b472 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/limits.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/limits.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2013 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -83,7 +83,7 @@ protected: // check binary operations for those modifying the loop index bool TInductiveTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) { - if (node->modifiesState() && node->getLeft()->getAsSymbolNode() && + if (node->modifiesState() && node->getLeft()->getAsSymbolNode() && node->getLeft()->getAsSymbolNode()->getId() == loopId) { bad = true; badLoc = node->getLoc(); @@ -95,7 +95,7 @@ bool TInductiveTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) // check unary operations for those modifying the loop index bool TInductiveTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) { - if (node->modifiesState() && node->getOperand()->getAsSymbolNode() && + if (node->modifiesState() && node->getOperand()->getAsSymbolNode() && node->getOperand()->getAsSymbolNode()->getId() == loopId) { bad = true; badLoc = node->getLoc(); @@ -145,7 +145,7 @@ void TParseContext::inductiveLoopBodyCheck(TIntermNode* body, int loopId, TSymbo // // The "constant-index-expression" tranverser. // -// Just look at things that can form an index. +// Just look at things that can form an index. // class TIndexTraverser : public TIntermTraverser { diff --git a/deps/glslang/glslang/glslang/MachineIndependent/linkValidate.cpp b/deps/glslang/glslang/glslang/MachineIndependent/linkValidate.cpp index 3834fde32b..c540ae6477 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/linkValidate.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/linkValidate.cpp @@ -1,11 +1,12 @@ // -//Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -48,7 +49,7 @@ #include "../Include/InfoSink.h" namespace glslang { - + // // Link-time error emitter. // @@ -67,8 +68,8 @@ void TIntermediate::warn(TInfoSink& infoSink, const char* message) infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n"; } -// TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block -// name must have the exact same set of members qualified with offset and their integral-constant +// TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block +// name must have the exact same set of members qualified with offset and their integral-constant // expression values must be the same, or a link-time error results." // @@ -101,6 +102,9 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) if (! earlyFragmentTests) earlyFragmentTests = unit.earlyFragmentTests; + if (!postDepthCoverage) + postDepthCoverage = unit.postDepthCoverage; + if (depthLayout == EldNone) depthLayout = unit.depthLayout; else if (depthLayout != unit.depthLayout) @@ -112,12 +116,12 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) inputPrimitive = unit.inputPrimitive; else if (inputPrimitive != unit.inputPrimitive) error(infoSink, "Contradictory input layout primitives"); - + if (outputPrimitive == ElgNone) outputPrimitive = unit.outputPrimitive; else if (outputPrimitive != unit.outputPrimitive) error(infoSink, "Contradictory output layout primitives"); - + if (vertices == TQualifier::layoutNotSet) vertices = unit.vertices; else if (vertices != unit.vertices) { @@ -178,7 +182,7 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) } // Getting this far means we have two existing trees to merge... - + version = std::max(version, unit.version); requestedExtensions.insert(unit.requestedExtensions.begin(), unit.requestedExtensions.end()); @@ -264,10 +268,13 @@ void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& lin // Recursively merge the implicit array sizes through the objects' respective type trees. void TIntermediate::mergeImplicitArraySizes(TType& type, const TType& unitType) { - if (type.isImplicitlySizedArray() && unitType.isArray()) { - int newImplicitArraySize = unitType.isImplicitlySizedArray() ? unitType.getImplicitArraySize() : unitType.getOuterArraySize(); - if (newImplicitArraySize > type.getImplicitArraySize ()) - type.setImplicitArraySize(newImplicitArraySize); + if (type.isUnsizedArray()) { + if (unitType.isUnsizedArray()) { + type.updateImplicitArraySize(unitType.getImplicitArraySize()); + if (unitType.isArrayVariablyIndexed()) + type.setArrayVariablyIndexed(); + } else if (unitType.isSizedArray()) + type.changeOuterArraySize(unitType.getOuterArraySize()); } // Type mismatches are caught and reported after this, just be careful for now. @@ -290,8 +297,13 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy // Types have to match if (symbol.getType() != unitSymbol.getType()) { - error(infoSink, "Types must match:"); - writeTypeComparison = true; + // but, we make an exception if one is an implicit array and the other is sized + if (! (symbol.getType().isArray() && unitSymbol.getType().isArray() && + symbol.getType().sameElementType(unitSymbol.getType()) && + (symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray()))) { + error(infoSink, "Types must match:"); + writeTypeComparison = true; + } } // Qualifiers have to (almost) match @@ -341,9 +353,9 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy writeTypeComparison = true; } - // Layouts... - // TODO: 4.4 enhanced layouts: Generalize to include offset/align: current spec - // requires separate user-supplied offset from actual computed offset, but + // Layouts... + // TODO: 4.4 enhanced layouts: Generalize to include offset/align: current spec + // requires separate user-supplied offset from actual computed offset, but // current implementation only has one offset. if (symbol.getQualifier().layoutMatrix != unitSymbol.getQualifier().layoutMatrix || symbol.getQualifier().layoutPacking != unitSymbol.getQualifier().layoutPacking || @@ -417,7 +429,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) if (xfbBuffers[b].containsDouble) RoundToPow2(xfbBuffers[b].implicitStride, 8); - // "It is a compile-time or link-time error to have + // "It is a compile-time or link-time error to have // any xfb_offset that overflows xfb_stride, whether stated on declarations before or after the xfb_stride, or // in different compilation units. While xfb_stride can be declared multiple times for the same buffer, it is a // compile-time or link-time error to have different values specified for the stride for the same buffer." @@ -429,8 +441,8 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) if (xfbBuffers[b].stride == TQualifier::layoutXfbStrideEnd) xfbBuffers[b].stride = xfbBuffers[b].implicitStride; - // "If the buffer is capturing any - // outputs with double-precision components, the stride must be a multiple of 8, otherwise it must be a + // "If the buffer is capturing any + // outputs with double-precision components, the stride must be a multiple of 8, otherwise it must be a // multiple of 4, or a compile-time or link-time error results." if (xfbBuffers[b].containsDouble && ! IsMultipleOfPow2(xfbBuffers[b].stride, 8)) { error(infoSink, "xfb_stride must be multiple of 8 for buffer holding a double:"); @@ -442,7 +454,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) infoSink.info << " xfb_buffer " << (unsigned int)b << ", xfb_stride " << xfbBuffers[b].stride << "\n"; } - // "The resulting stride (implicit or explicit), when divided by 4, must be less than or equal to the + // "The resulting stride (implicit or explicit), when divided by 4, must be less than or equal to the // implementation-dependent constant gl_MaxTransformFeedbackInterleavedComponents." if (xfbBuffers[b].stride > (unsigned int)(4 * resources.maxTransformFeedbackInterleavedComponents)) { error(infoSink, "xfb_stride is too large:"); @@ -459,22 +471,37 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) error(infoSink, "At least one shader must specify an output layout(vertices=...)"); break; case EShLangTessEvaluation: - if (inputPrimitive == ElgNone) - error(infoSink, "At least one shader must specify an input layout primitive"); - if (vertexSpacing == EvsNone) - vertexSpacing = EvsEqual; - if (vertexOrder == EvoNone) - vertexOrder = EvoCcw; + if (source == EShSourceGlsl) { + if (inputPrimitive == ElgNone) + error(infoSink, "At least one shader must specify an input layout primitive"); + if (vertexSpacing == EvsNone) + vertexSpacing = EvsEqual; + if (vertexOrder == EvoNone) + vertexOrder = EvoCcw; + } break; case EShLangGeometry: if (inputPrimitive == ElgNone) error(infoSink, "At least one shader must specify an input layout primitive"); - if (outputPrimitive == ElgNone) + if (outputPrimitive == ElgNone +#ifdef NV_EXTENSIONS + && !getGeoPassthroughEXT() +#endif + ) error(infoSink, "At least one shader must specify an output layout primitive"); - if (vertices == TQualifier::layoutNotSet) + if (vertices == TQualifier::layoutNotSet +#ifdef NV_EXTENSIONS + && !getGeoPassthroughEXT() +#endif + ) error(infoSink, "At least one shader must specify a layout(max_vertices = value)"); break; case EShLangFragment: + // for GL_ARB_post_depth_coverage, EarlyFragmentTest is set automatically in + // ParseHelper.cpp. So if we reach here, this must be GL_EXT_post_depth_coverage + // requiring explicit early_fragment_tests + if (getPostDepthCoverage() && !getEarlyFragmentTests()) + error(infoSink, "post_depth_coverage requires early_fragment_tests"); break; case EShLangCompute: break; @@ -492,7 +519,9 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) virtual void visitSymbol(TIntermSymbol* symbol) { // Implicitly size arrays. - symbol->getWritableType().adoptImplicitArraySizes(); + // If an unsized array is left as unsized, it effectively + // becomes run-time sized. + symbol->getWritableType().adoptImplicitArraySizes(false); } } finalLinkTraverser; @@ -532,7 +561,7 @@ void TIntermediate::checkCallGraphCycles(TInfoSink& infoSink) break; // Otherwise, we found a new subgraph, process it: - // See what all can be reached by this new root, and if any of + // See what all can be reached by this new root, and if any of // that is recursive. This is done by depth-first traversals, seeing // if a new call is found that was already in the currentPath (a back edge), // thereby detecting recursion. @@ -701,7 +730,7 @@ TIntermSequence& TIntermediate::findLinkerObjects() const } // See if a variable was both a user-declared output and used. -// Note: the spec discusses writing to one, but this looks at read or write, which +// Note: the spec discusses writing to one, but this looks at read or write, which // is more useful, and perhaps the spec should be changed to reflect that. bool TIntermediate::userOutputUsed() const { @@ -712,7 +741,7 @@ bool TIntermediate::userOutputUsed() const const TIntermSymbol& symbolNode = *linkerObjects[i]->getAsSymbolNode(); if (symbolNode.getQualifier().storage == EvqVaryingOut && symbolNode.getName().compare(0, 3, "gl_") != 0 && - inIoAccessed(symbolNode.getName())) { + inIoAccessed(symbolNode.getName())) { found = true; break; } @@ -747,7 +776,7 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ int size; if (qualifier.isUniformOrBuffer()) { - if (type.isExplicitlySizedArray()) + if (type.isSizedArray()) size = type.getCumulativeArraySize(); else size = 1; @@ -755,9 +784,9 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ // Strip off the outer array dimension for those having an extra one. if (type.isArray() && qualifier.isArrayedIo(language)) { TType elementType(type, 0); - size = computeTypeLocationSize(elementType); + size = computeTypeLocationSize(elementType, language); } else - size = computeTypeLocationSize(type); + size = computeTypeLocationSize(type, language); } // Locations, and components within locations. @@ -818,8 +847,8 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ // combine location and component ranges TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0); - // check for collisions, except for vertex inputs on desktop - if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput())) + // check for collisions, except for vertex inputs on desktop targeting OpenGL + if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput()) || spvVersion.vulkan > 0) collision = checkLocationRange(set, range, type, typeCollision); if (collision < 0) @@ -850,7 +879,7 @@ int TIntermediate::checkLocationRange(int set, const TIoRange& range, const TTyp return -1; // no collision } -// Accumulate locations used for inputs, outputs, and uniforms, and check for collisions +// Accumulate bindings and offsets, and check for collisions // as the accumulation is done. // // Returns < 0 if no collision, >= 0 if collision and the value returned is a colliding value. @@ -889,41 +918,41 @@ bool TIntermediate::addUsedConstantId(int id) // Recursively figure out how many locations are used up by an input or output type. // Return the size of type, as measured by "locations". -int TIntermediate::computeTypeLocationSize(const TType& type) const +int TIntermediate::computeTypeLocationSize(const TType& type, EShLanguage stage) { - // "If the declared input is an array of size n and each element takes m locations, it will be assigned m * n + // "If the declared input is an array of size n and each element takes m locations, it will be assigned m * n // consecutive locations..." if (type.isArray()) { // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness + // TODO: are there valid cases of having an unsized array with a location? If so, running this code too early. TType elementType(type, 0); - if (type.isImplicitlySizedArray()) { - // TODO: are there valid cases of having an implicitly-sized array with a location? If so, running this code too early. - return computeTypeLocationSize(elementType); - } else - return type.getOuterArraySize() * computeTypeLocationSize(elementType); + if (type.isSizedArray()) + return type.getOuterArraySize() * computeTypeLocationSize(elementType, stage); + else + return computeTypeLocationSize(elementType, stage); } - // "The locations consumed by block and structure members are determined by applying the rules above - // recursively..." + // "The locations consumed by block and structure members are determined by applying the rules above + // recursively..." if (type.isStruct()) { int size = 0; for (int member = 0; member < (int)type.getStruct()->size(); ++member) { TType memberType(type, member); - size += computeTypeLocationSize(memberType); + size += computeTypeLocationSize(memberType, stage); } return size; } // ES: "If a shader input is any scalar or vector type, it will consume a single location." - // Desktop: "If a vertex shader input is any scalar or vector type, it will consume a single location. If a non-vertex - // shader input is a scalar or vector type other than dvec3 or dvec4, it will consume a single location, while - // types dvec3 or dvec4 will consume two consecutive locations. Inputs of type double and dvec2 will + // Desktop: "If a vertex shader input is any scalar or vector type, it will consume a single location. If a non-vertex + // shader input is a scalar or vector type other than dvec3 or dvec4, it will consume a single location, while + // types dvec3 or dvec4 will consume two consecutive locations. Inputs of type double and dvec2 will // consume only a single location, in all stages." if (type.isScalar()) return 1; if (type.isVector()) { - if (language == EShLangVertex && type.getQualifier().isPipeInput()) + if (stage == EShLangVertex && type.getQualifier().isPipeInput()) return 1; if (type.getBasicType() == EbtDouble && type.getVectorSize() > 2) return 2; @@ -932,17 +961,48 @@ int TIntermediate::computeTypeLocationSize(const TType& type) const } // "If the declared input is an n x m single- or double-precision matrix, ... - // The number of locations assigned for each matrix will be the same as + // The number of locations assigned for each matrix will be the same as // for an n-element array of m-component vectors..." if (type.isMatrix()) { TType columnType(type, 0); - return type.getMatrixCols() * computeTypeLocationSize(columnType); + return type.getMatrixCols() * computeTypeLocationSize(columnType, stage); } assert(0); return 1; } +// Same as computeTypeLocationSize but for uniforms +int TIntermediate::computeTypeUniformLocationSize(const TType& type) +{ + // "Individual elements of a uniform array are assigned + // consecutive locations with the first element taking location + // location." + if (type.isArray()) { + // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness + TType elementType(type, 0); + if (type.isSizedArray()) { + return type.getOuterArraySize() * computeTypeUniformLocationSize(elementType); + } else { + // TODO: are there valid cases of having an implicitly-sized array with a location? If so, running this code too early. + return computeTypeUniformLocationSize(elementType); + } + } + + // "Each subsequent inner-most member or element gets incremental + // locations for the entire structure or array." + if (type.isStruct()) { + int size = 0; + for (int member = 0; member < (int)type.getStruct()->size(); ++member) { + TType memberType(type, member); + size += computeTypeUniformLocationSize(memberType); + } + return size; + } + + return 1; +} + // Accumulate xfb buffer ranges and check for collisions as the accumulation is done. // // Returns < 0 if no collision, >= 0 if collision and the value returned is a colliding value. @@ -978,16 +1038,16 @@ int TIntermediate::addXfbBufferOffset(const TType& type) // N.B. Caller must set containsDouble to false before calling. unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& containsDouble) const { - // "...if applied to an aggregate containing a double, the offset must also be a multiple of 8, + // "...if applied to an aggregate containing a double, the offset must also be a multiple of 8, // and the space taken in the buffer will be a multiple of 8. - // ...within the qualified entity, subsequent components are each + // ...within the qualified entity, subsequent components are each // assigned, in order, to the next available offset aligned to a multiple of // that component's size. Aggregate types are flattened down to the component // level to get this sequence of components." - if (type.isArray()) { + if (type.isArray()) { // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness - assert(type.isExplicitlySizedArray()); + assert(type.isSizedArray()); TType elementType(type, 0); return type.getOuterArraySize() * computeTypeXfbSize(elementType, containsDouble); } @@ -997,8 +1057,8 @@ unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& contains bool structContainsDouble = false; for (int member = 0; member < (int)type.getStruct()->size(); ++member) { TType memberType(type, member); - // "... if applied to - // an aggregate containing a double, the offset must also be a multiple of 8, + // "... if applied to + // an aggregate containing a double, the offset must also be a multiple of 8, // and the space taken in the buffer will be a multiple of 8." bool memberContainsDouble = false; int memberSize = computeTypeXfbSize(memberType, memberContainsDouble); @@ -1037,18 +1097,20 @@ unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& contains const int baseAlignmentVec4Std140 = 16; -// Return the size and alignment of a scalar. +// Return the size and alignment of a component of the given type. // The size is returned in the 'size' parameter -// Return value is the alignment of the type. +// Return value is the alignment.. int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size) { switch (type.getBasicType()) { case EbtInt64: case EbtUint64: case EbtDouble: size = 8; return 8; -#ifdef AMD_EXTENSIONS case EbtFloat16: size = 2; return 2; -#endif + case EbtInt8: + case EbtUint8: size = 1; return 1; + case EbtInt16: + case EbtUint16: size = 2; return 2; default: size = 4; return 4; } } @@ -1056,7 +1118,7 @@ int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size) // Implement base-alignment and size rules from section 7.6.2.2 Standard Uniform Block Layout // Operates recursively. // -// If std140 is true, it does the rounding up to vec4 size required by std140, +// If std140 is true, it does the rounding up to vec4 size required by std140, // otherwise it does not, yielding std430 rules. // // The size is returned in the 'size' parameter @@ -1085,7 +1147,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // // 1. If the member is a scalar consuming N basic machine units, the base alignment is N. // - // 2. If the member is a two- or four-component vector with components consuming N basic + // 2. If the member is a two- or four-component vector with components consuming N basic // machine units, the base alignment is 2N or 4N, respectively. // // 3. If the member is a three-component vector with components consuming N @@ -1098,7 +1160,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // the array is rounded up to the next multiple of the base alignment. // // 5. If the member is a column-major matrix with C columns and R rows, the - // matrix is stored identically to an array of C column vectors with R + // matrix is stored identically to an array of C column vectors with R // components each, according to rule (4). // // 6. If the member is an array of S column-major matrices with C columns and @@ -1115,7 +1177,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // // 9. If the member is a structure, the base alignment of the structure is N , where // N is the largest base alignment value of any of its members, and rounded - // up to the base alignment of a vec4. The individual members of this substructure + // up to the base alignment of a vec4. The individual members of this substructure // are then assigned offsets by applying this set of rules recursively, // where the base offset of the first member of the sub-structure is equal to the // aligned offset of the structure. The structure may have padding at the end; @@ -1157,7 +1219,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b int memberAlignment = getBaseAlignment(*memberList[m].type, memberSize, dummyStride, std140, (subMatrixLayout != ElmNone) ? (subMatrixLayout == ElmRowMajor) : rowMajor); maxAlignment = std::max(maxAlignment, memberAlignment); - RoundToPow2(size, memberAlignment); + RoundToPow2(size, memberAlignment); size += memberSize; } @@ -1177,10 +1239,12 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b if (type.isVector()) { int scalarAlign = getBaseAlignmentScalar(type, size); switch (type.getVectorSize()) { + case 1: // HLSL has this, GLSL does not + return scalarAlign; case 2: size *= 2; return 2 * scalarAlign; - default: + default: size *= type.getVectorSize(); return 4 * scalarAlign; } @@ -1190,7 +1254,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b if (type.isMatrix()) { // rule 5: deref to row, not to column, meaning the size of vector is num columns instead of num rows TType derefType(type, 0, rowMajor); - + alignment = getBaseAlignment(derefType, size, dummyStride, std140, rowMajor); if (std140) alignment = std::max(baseAlignmentVec4Std140, alignment); @@ -1209,4 +1273,14 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b return baseAlignmentVec4Std140; } +// To aid the basic HLSL rule about crossing vec4 boundaries. +bool TIntermediate::improperStraddle(const TType& type, int size, int offset) +{ + if (! type.isVector() || type.isArray()) + return false; + + return size <= 16 ? offset / 16 != (offset + size - 1) / 16 + : offset % 16 != 0; +} + } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/localintermediate.h b/deps/glslang/glslang/glslang/MachineIndependent/localintermediate.h old mode 100644 new mode 100755 index 57a2a70353..f3a0e413e2 --- a/deps/glslang/glslang/glslang/MachineIndependent/localintermediate.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/localintermediate.h @@ -1,11 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2016 LunarG, Inc. -//All rights reserved. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _LOCAL_INTERMEDIATE_INCLUDED_ @@ -42,24 +43,46 @@ #include #include +#include class TInfoSink; namespace glslang { -struct TVectorFields { - TVectorFields() { } +struct TMatrixSelector { + int coord1; // stay agnostic about column/row; this is parse order + int coord2; +}; - TVectorFields(int c0, int c1, int c2, int c3) : num(4) +typedef int TVectorSelector; + +const int MaxSwizzleSelectors = 4; + +template +class TSwizzleSelectors { +public: + TSwizzleSelectors() : size_(0) { } + + void push_back(selectorType comp) { - offsets[0] = c0; - offsets[1] = c1; - offsets[2] = c2; - offsets[3] = c3; + if (size_ < MaxSwizzleSelectors) + components[size_++] = comp; + } + void resize(int s) + { + assert(s <= size_); + size_ = s; + } + int size() const { return size_; } + selectorType operator[](int i) const + { + assert(i < MaxSwizzleSelectors); + return components[i]; } - int offsets[4]; - int num; +private: + int size_; + selectorType components[MaxSwizzleSelectors]; }; // @@ -129,6 +152,54 @@ struct TXfbBuffer { bool containsDouble; }; +// Track a set of strings describing how the module was processed. +// Using the form: +// process arg0 arg1 arg2 ... +// process arg0 arg1 arg2 ... +// where everything is textual, and there can be zero or more arguments +class TProcesses { +public: + TProcesses() {} + ~TProcesses() {} + + void addProcess(const char* process) + { + processes.push_back(process); + } + void addProcess(const std::string& process) + { + processes.push_back(process); + } + void addArgument(int arg) + { + processes.back().append(" "); + std::string argString = std::to_string(arg); + processes.back().append(argString); + } + void addArgument(const char* arg) + { + processes.back().append(" "); + processes.back().append(arg); + } + void addArgument(const std::string& arg) + { + processes.back().append(" "); + processes.back().append(arg); + } + void addIfNonZero(const char* process, int value) + { + if (value != 0) { + addProcess(process); + addArgument(value); + } + } + + const std::vector& getProcesses() const { return processes; } + +private: + std::vector processes; +}; + class TSymbolTable; class TSymbol; class TVariable; @@ -139,19 +210,31 @@ class TVariable; class TIntermediate { public: explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) : - source(EShSourceNone), language(l), profile(p), version(v), treeRoot(0), + implicitThisName("@this"), implicitCounterName("@count"), + language(l), source(EShSourceNone), profile(p), version(v), treeRoot(0), numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false), - invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone), + invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), + inputPrimitive(ElgNone), outputPrimitive(ElgNone), pixelCenterInteger(false), originUpperLeft(false), - vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), depthLayout(EldNone), depthReplacing(false), blendEquations(0), - multiStream(false), xfbMode(false), - shiftSamplerBinding(0), - shiftTextureBinding(0), - shiftImageBinding(0), - shiftUboBinding(0), + vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), + postDepthCoverage(false), depthLayout(EldNone), depthReplacing(false), + hlslFunctionality1(false), + blendEquations(0), xfbMode(false), multiStream(false), +#ifdef NV_EXTENSIONS + layoutOverrideCoverage(false), + geoPassthroughEXT(false), +#endif autoMapBindings(false), + autoMapLocations(false), + invertY(false), flattenUniformArrays(false), - useUnknownFormat(false) + useUnknownFormat(false), + hlslOffsets(false), + useStorageBuffer(false), + hlslIoMapping(false), + textureSamplerTransformMode(EShTexSampTransKeep), + needToLegalize(false), + binaryDoubleOutput(false) { localSize[0] = 1; localSize[1] = 1; @@ -160,6 +243,8 @@ public: localSizeSpecId[1] = TQualifier::layoutNotSet; localSizeSpecId[2] = TQualifier::layoutNotSet; xfbBuffers.resize(TQualifier::layoutXfbBufferEnd); + + shiftBinding.fill(0); } void setLimits(const TBuiltInResource& r) { resources = r; } @@ -169,31 +254,147 @@ public: void setSource(EShSource s) { source = s; } EShSource getSource() const { return source; } - void setEntryPointName(const char* ep) { entryPointName = ep; } + void setEntryPointName(const char* ep) + { + entryPointName = ep; + processes.addProcess("entry-point"); + processes.addArgument(entryPointName); + } void setEntryPointMangledName(const char* ep) { entryPointMangledName = ep; } const std::string& getEntryPointName() const { return entryPointName; } const std::string& getEntryPointMangledName() const { return entryPointMangledName; } - void setShiftSamplerBinding(unsigned int shift) { shiftSamplerBinding = shift; } - unsigned int getShiftSamplerBinding() const { return shiftSamplerBinding; } - void setShiftTextureBinding(unsigned int shift) { shiftTextureBinding = shift; } - unsigned int getShiftTextureBinding() const { return shiftTextureBinding; } - void setShiftImageBinding(unsigned int shift) { shiftImageBinding = shift; } - unsigned int getShiftImageBinding() const { return shiftImageBinding; } - void setShiftUboBinding(unsigned int shift) { shiftUboBinding = shift; } - unsigned int getShiftUboBinding() const { return shiftUboBinding; } - void setAutoMapBindings(bool map) { autoMapBindings = map; } - bool getAutoMapBindings() const { return autoMapBindings; } - void setFlattenUniformArrays(bool flatten) { flattenUniformArrays = flatten; } - bool getFlattenUniformArrays() const { return flattenUniformArrays; } - void setNoStorageFormat(bool b) { useUnknownFormat = b; } - bool getNoStorageFormat() const { return useUnknownFormat; } + void setShiftBinding(TResourceType res, unsigned int shift) + { + shiftBinding[res] = shift; + + const char* name = getResourceName(res); + if (name != nullptr) + processes.addIfNonZero(name, shift); + } + + unsigned int getShiftBinding(TResourceType res) const { return shiftBinding[res]; } + + void setShiftBindingForSet(TResourceType res, unsigned int shift, unsigned int set) + { + if (shift == 0) // ignore if there's no shift: it's a no-op. + return; + + shiftBindingForSet[res][set] = shift; + + const char* name = getResourceName(res); + if (name != nullptr) { + processes.addProcess(name); + processes.addArgument(shift); + processes.addArgument(set); + } + } + + int getShiftBindingForSet(TResourceType res, unsigned int set) const + { + const auto shift = shiftBindingForSet[res].find(set); + return shift == shiftBindingForSet[res].end() ? -1 : shift->second; + } + bool hasShiftBindingForSet(TResourceType res) const { return !shiftBindingForSet[res].empty(); } + + void setResourceSetBinding(const std::vector& shift) + { + resourceSetBinding = shift; + if (shift.size() > 0) { + processes.addProcess("resource-set-binding"); + for (int s = 0; s < (int)shift.size(); ++s) + processes.addArgument(shift[s]); + } + } + const std::vector& getResourceSetBinding() const { return resourceSetBinding; } + void setAutoMapBindings(bool map) + { + autoMapBindings = map; + if (autoMapBindings) + processes.addProcess("auto-map-bindings"); + } + bool getAutoMapBindings() const { return autoMapBindings; } + void setAutoMapLocations(bool map) + { + autoMapLocations = map; + if (autoMapLocations) + processes.addProcess("auto-map-locations"); + } + bool getAutoMapLocations() const { return autoMapLocations; } + void setInvertY(bool invert) + { + invertY = invert; + if (invertY) + processes.addProcess("invert-y"); + } + bool getInvertY() const { return invertY; } + + void setFlattenUniformArrays(bool flatten) + { + flattenUniformArrays = flatten; + if (flattenUniformArrays) + processes.addProcess("flatten-uniform-arrays"); + } + bool getFlattenUniformArrays() const { return flattenUniformArrays; } + void setNoStorageFormat(bool b) + { + useUnknownFormat = b; + if (useUnknownFormat) + processes.addProcess("no-storage-format"); + } + bool getNoStorageFormat() const { return useUnknownFormat; } + void setHlslOffsets() + { + hlslOffsets = true; + if (hlslOffsets) + processes.addProcess("hlsl-offsets"); + } + bool usingHlslOFfsets() const { return hlslOffsets; } + void setUseStorageBuffer() + { + useStorageBuffer = true; + processes.addProcess("use-storage-buffer"); + } + bool usingStorageBuffer() const { return useStorageBuffer; } + void setHlslIoMapping(bool b) + { + hlslIoMapping = b; + if (hlslIoMapping) + processes.addProcess("hlsl-iomap"); + } + bool usingHlslIoMapping() { return hlslIoMapping; } + + template T addCounterBufferName(const T& name) const { return name + implicitCounterName; } + bool hasCounterBufferName(const TString& name) const { + size_t len = strlen(implicitCounterName); + return name.size() > len && + name.compare(name.size() - len, len, implicitCounterName) == 0; + } + + void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode) { textureSamplerTransformMode = mode; } void setVersion(int v) { version = v; } int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } EProfile getProfile() const { return profile; } - void setSpv(const SpvVersion& s) { spvVersion = s; } + void setSpv(const SpvVersion& s) + { + spvVersion = s; + + // client processes + if (spvVersion.vulkan > 0) + processes.addProcess("client vulkan100"); + if (spvVersion.openGl > 0) + processes.addProcess("client opengl100"); + + // target-environment processes + if (spvVersion.vulkan > 0) + processes.addProcess("target-env vulkan1.0"); + else if (spvVersion.vulkan > 0) + processes.addProcess("target-env vulkanUnknown"); + if (spvVersion.openGl > 0) + processes.addProcess("target-env opengl"); + } const SpvVersion& getSpv() const { return spvVersion; } EShLanguage getStage() const { return language; } void addRequestedExtension(const char* extension) { requestedExtensions.insert(extension); } @@ -212,13 +413,21 @@ public: TIntermSymbol* addSymbol(const TType&, const TSourceLoc&); TIntermSymbol* addSymbol(const TIntermSymbol&); TIntermTyped* addConversion(TOperator, const TType&, TIntermTyped*) const; - TIntermTyped* addShapeConversion(TOperator, const TType&, TIntermTyped*); + std::tuple addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* node1) const; + TIntermTyped* addUniShapeConversion(TOperator, const TType&, TIntermTyped*); + void addBiShapeConversion(TOperator, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode); + TIntermTyped* addShapeConversion(const TType&, TIntermTyped*); TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, TSourceLoc); TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc); TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc); TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, TSourceLoc); TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType); bool canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op = EOpNull) const; + bool isIntegralPromotion(TBasicType from, TBasicType to) const; + bool isFPPromotion(TBasicType from, TBasicType to) const; + bool isIntegralConversion(TBasicType from, TBasicType to) const; + bool isFPConversion(TBasicType from, TBasicType to) const; + bool isFPIntegralConversion(TBasicType from, TBasicType to) const; TOperator mapTypeToConstructorOp(const TType&) const; TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right); TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&); @@ -227,24 +436,30 @@ public: TIntermAggregate* makeAggregate(const TSourceLoc&); TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, TSourceLoc); bool areAllChildConst(TIntermAggregate* aggrNode); - TIntermNode* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&); + TIntermSelection* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&); TIntermTyped* addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc&); TIntermTyped* addComma(TIntermTyped* left, TIntermTyped* right, const TSourceLoc&); TIntermTyped* addMethod(TIntermTyped*, const TType&, const TString*, const TSourceLoc&); TIntermConstantUnion* addConstantUnion(const TConstUnionArray&, const TType&, const TSourceLoc&, bool literal = false) const; + TIntermConstantUnion* addConstantUnion(signed char, const TSourceLoc&, bool literal = false) const; + TIntermConstantUnion* addConstantUnion(unsigned char, const TSourceLoc&, bool literal = false) const; + TIntermConstantUnion* addConstantUnion(signed short, const TSourceLoc&, bool literal = false) const; + TIntermConstantUnion* addConstantUnion(unsigned short, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(int, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(unsigned int, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(long long, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(unsigned long long, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(bool, const TSourceLoc&, bool literal = false) const; TIntermConstantUnion* addConstantUnion(double, TBasicType, const TSourceLoc&, bool literal = false) const; + TIntermConstantUnion* addConstantUnion(const TString*, const TSourceLoc&, bool literal = false) const; TIntermTyped* promoteConstantUnion(TBasicType, TIntermConstantUnion*) const; bool parseConstTree(TIntermNode*, TConstUnionArray, TOperator, const TType&, bool singleConstantParam = false); TIntermLoop* addLoop(TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&); - TIntermAggregate* addForLoop(TIntermNode*, TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&); + TIntermAggregate* addForLoop(TIntermNode*, TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, + const TSourceLoc&, TIntermLoop*&); TIntermBranch* addBranch(TOperator, const TSourceLoc&); TIntermBranch* addBranch(TOperator, TIntermTyped*, const TSourceLoc&); - TIntermTyped* addSwizzle(TVectorFields&, const TSourceLoc&); + template TIntermTyped* addSwizzle(TSwizzleSelectors&, const TSourceLoc&); // Low level functions to add nodes (no conversions or other higher level transformations) // If a type is provided, the node's type will be set to it. @@ -253,14 +468,11 @@ public: TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const; TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const; - // Add conversion from node's type to given basic type. - TIntermTyped* convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const; - // Constant folding (in Constant.cpp) TIntermTyped* fold(TIntermAggregate* aggrNode); TIntermTyped* foldConstructor(TIntermAggregate* aggrNode); TIntermTyped* foldDereference(TIntermTyped* node, int index, const TSourceLoc&); - TIntermTyped* foldSwizzle(TIntermTyped* node, TVectorFields& fields, const TSourceLoc&); + TIntermTyped* foldSwizzle(TIntermTyped* node, TSwizzleSelectors& fields, const TSourceLoc&); // Tree ops static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay); @@ -348,6 +560,8 @@ public: bool getPixelCenterInteger() const { return pixelCenterInteger; } void setEarlyFragmentTests() { earlyFragmentTests = true; } bool getEarlyFragmentTests() const { return earlyFragmentTests; } + void setPostDepthCoverage() { postDepthCoverage = true; } + bool getPostDepthCoverage() const { return postDepthCoverage; } bool setDepth(TLayoutDepth d) { if (depthLayout != EldNone) @@ -359,6 +573,9 @@ public: void setDepthReplacing() { depthReplacing = true; } bool isDepthReplacing() const { return depthReplacing; } + void setHlslFunctionality1() { hlslFunctionality1 = true; } + bool getHlslFunctionality1() const { return hlslFunctionality1; } + void addBlendEquation(TBlendEquationShift b) { blendEquations |= (1 << b); } unsigned int getBlendEquations() const { return blendEquations; } @@ -373,7 +590,8 @@ public: int checkLocationRange(int set, const TIoRange& range, const TType&, bool& typeCollision); int addUsedOffsets(int binding, int offset, int numOffsets); bool addUsedConstantId(int id); - int computeTypeLocationSize(const TType&) const; + static int computeTypeLocationSize(const TType&, EShLanguage); + static int computeTypeUniformLocationSize(const TType&); bool setXfbBufferStride(int buffer, unsigned stride) { @@ -382,11 +600,47 @@ public: xfbBuffers[buffer].stride = stride; return true; } + unsigned getXfbStride(int buffer) const { return xfbBuffers[buffer].stride; } int addXfbBufferOffset(const TType&); unsigned int computeTypeXfbSize(const TType&, bool& containsDouble) const; + static int getBaseAlignmentScalar(const TType&, int& size); static int getBaseAlignment(const TType&, int& size, int& stride, bool std140, bool rowMajor); + static bool improperStraddle(const TType& type, int size, int offset); bool promote(TIntermOperator*); +#ifdef NV_EXTENSIONS + void setLayoutOverrideCoverage() { layoutOverrideCoverage = true; } + bool getLayoutOverrideCoverage() const { return layoutOverrideCoverage; } + void setGeoPassthroughEXT() { geoPassthroughEXT = true; } + bool getGeoPassthroughEXT() const { return geoPassthroughEXT; } +#endif + + const char* addSemanticName(const TString& name) + { + return semanticNameSet.insert(name).first->c_str(); + } + + void setSourceFile(const char* file) { if (file != nullptr) sourceFile = file; } + const std::string& getSourceFile() const { return sourceFile; } + void addSourceText(const char* text) { sourceText = sourceText + text; } + const std::string& getSourceText() const { return sourceText; } + void addProcesses(const std::vector& p) { + for (int i = 0; i < (int)p.size(); ++i) + processes.addProcess(p[i]); + } + void addProcess(const std::string& process) { processes.addProcess(process); } + void addProcessArgument(const std::string& arg) { processes.addArgument(arg); } + const std::vector& getProcesses() const { return processes.getProcesses(); } + + void setNeedsLegalization() { needToLegalize = true; } + bool needsLegalization() const { return needToLegalize; } + + void setBinaryDoubleOutput() { binaryDoubleOutput = true; } + bool getBinaryDoubleOutput() { return binaryDoubleOutput; } + + const char* const implicitThisName; + const char* const implicitCounterName; + protected: TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&); void error(TInfoSink& infoSink, const char*); @@ -400,27 +654,29 @@ protected: void inOutLocationCheck(TInfoSink&); TIntermSequence& findLinkerObjects() const; bool userOutputUsed() const; - static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; + bool isNonuniformPropagating(TOperator) const; bool promoteUnary(TIntermUnary&); bool promoteBinary(TIntermBinary&); void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&); bool promoteAggregate(TIntermAggregate&); + void pushSelector(TIntermSequence&, const TVectorSelector&, const TSourceLoc&); + void pushSelector(TIntermSequence&, const TMatrixSelector&, const TSourceLoc&); + bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&); + void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root); + bool isConversionAllowed(TOperator op, TIntermTyped* node) const; + TIntermUnary* createConversion(TBasicType convertTo, TIntermTyped* node) const; + std::tuple getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const; + bool extensionRequested(const char *extension) const {return requestedExtensions.find(extension) != requestedExtensions.end();} + static const char* getResourceName(TResourceType); const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later std::string entryPointName; std::string entryPointMangledName; - unsigned int shiftSamplerBinding; - unsigned int shiftTextureBinding; - unsigned int shiftImageBinding; - unsigned int shiftUboBinding; - bool autoMapBindings; - bool flattenUniformArrays; - bool useUnknownFormat; - EProfile profile; - int version; + EProfile profile; // source profile + int version; // source version SpvVersion spvVersion; TIntermNode* treeRoot; std::set requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them @@ -441,12 +697,35 @@ protected: int localSize[3]; int localSizeSpecId[3]; bool earlyFragmentTests; + bool postDepthCoverage; TLayoutDepth depthLayout; bool depthReplacing; + bool hlslFunctionality1; int blendEquations; // an 'or'ing of masks of shifts of TBlendEquationShift bool xfbMode; bool multiStream; +#ifdef NV_EXTENSIONS + bool layoutOverrideCoverage; + bool geoPassthroughEXT; +#endif + + // Base shift values + std::array shiftBinding; + + // Per-descriptor-set shift values + std::array, EResCount> shiftBindingForSet; + + std::vector resourceSetBinding; + bool autoMapBindings; + bool autoMapLocations; + bool invertY; + bool flattenUniformArrays; + bool useUnknownFormat; + bool hlslOffsets; + bool useStorageBuffer; + bool hlslIoMapping; + typedef std::list TGraph; TGraph callGraph; @@ -455,6 +734,19 @@ protected: std::vector usedAtomics; // sets of bindings used by atomic counters std::vector xfbBuffers; // all the data we need to track per xfb buffer std::unordered_set usedConstantId; // specialization constant ids used + std::set semanticNameSet; + + EShTextureSamplerTransformMode textureSamplerTransformMode; + + // source code of shader, useful as part of debug information + std::string sourceFile; + std::string sourceText; + + // for OpModuleProcessed, or equivalent + TProcesses processes; + + bool needToLegalize; + bool binaryDoubleOutput; private: void operator=(TIntermediate&); // prevent assignments diff --git a/deps/glslang/glslang/glslang/MachineIndependent/parseConst.cpp b/deps/glslang/glslang/glslang/MachineIndependent/parseConst.cpp index 90621d39f4..1a8e6d9987 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/parseConst.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/parseConst.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,22 +18,22 @@ // 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 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. // // -// Travarse a tree of constants to create a single folded constant. +// Traverse a tree of constants to create a single folded constant. // It should only be used when the whole tree is known to be constant. // @@ -45,7 +45,7 @@ class TConstTraverser : public TIntermTraverser { public: TConstTraverser(const TConstUnionArray& cUnion, bool singleConstParam, TOperator constructType, const TType& t) : unionArray(cUnion), type(t), - constructorType(constructType), singleConstantParam(singleConstParam), error(false), isMatrix(false), + constructorType(constructType), singleConstantParam(singleConstParam), error(false), isMatrix(false), matrixCols(0), matrixRows(0) { index = 0; tOp = EOpNull; } virtual void visitConstantUnion(TIntermConstantUnion* node); @@ -73,18 +73,12 @@ bool TConstTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) if (! node->isConstructor() && node->getOp() != EOpComma) { error = true; - return false; - } - - if (node->getSequence().size() == 0) { - error = true; - return false; } bool flag = node->getSequence().size() == 1 && node->getSequence()[0]->getAsTyped()->getAsConstantUnion(); if (flag) { - singleConstantParam = true; + singleConstantParam = true; constructorType = node->getOp(); size = node->getType().computeNumComponents(); @@ -93,19 +87,19 @@ bool TConstTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) matrixCols = node->getType().getMatrixCols(); matrixRows = node->getType().getMatrixRows(); } - } + } - for (TIntermSequence::iterator p = node->getSequence().begin(); + for (TIntermSequence::iterator p = node->getSequence().begin(); p != node->getSequence().end(); p++) { if (node->getOp() == EOpComma) - index = 0; + index = 0; (*p)->traverse(this); - } - if (flag) + } + if (flag) { - singleConstantParam = false; + singleConstantParam = false; constructorType = EOpNull; size = 0; isMatrix = false; @@ -126,7 +120,7 @@ void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node) if (! singleConstantParam) { int rightUnionSize = node->getType().computeNumComponents(); - + const TConstUnionArray& rightUnionArray = node->getConstArray(); for (int i = 0; i < rightUnionSize; i++) { if (index >= instanceSize) @@ -148,7 +142,7 @@ void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node) leftUnionArray[i] = rightUnionArray[count]; (index)++; - + if (nodeComps > 1) count++; } @@ -180,13 +174,13 @@ void TConstTraverser::visitConstantUnion(TIntermConstantUnion* node) return; if (i == startIndex || (i - startIndex) % (matrixRows + 1) == 0 ) leftUnionArray[i] = rightUnionArray[count]; - else + else leftUnionArray[i].setDConst(0.0); index++; if (nodeComps > 1) - count++; + count++; } } } @@ -199,7 +193,7 @@ bool TIntermediate::parseConstTree(TIntermNode* root, TConstUnionArray unionArra return false; TConstTraverser it(unionArray, singleConstantParam, constructorType, t); - + root->traverse(&it); if (it.error) return true; diff --git a/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h b/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h index acb57507a4..b2aaa39955 100755 --- a/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h @@ -1,11 +1,12 @@ // -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2017 ARM Limited. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 implemented in Versions.cpp @@ -68,6 +69,7 @@ public: virtual void requireStage(const TSourceLoc&, EShLanguage, const char* featureDesc); virtual void checkDeprecated(const TSourceLoc&, int queryProfiles, int depVersion, const char* featureDesc); virtual void requireNotRemoved(const TSourceLoc&, int queryProfiles, int removedVersion, const char* featureDesc); + virtual void unimplemented(const TSourceLoc&, const char* featureDesc); virtual void requireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual void ppRequireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[], const char* featureDesc); virtual TExtensionBehavior getExtensionBehavior(const char*); @@ -76,10 +78,16 @@ public: virtual void updateExtensionBehavior(int line, const char* const extension, const char* behavior); virtual void fullIntegerCheck(const TSourceLoc&, const char* op); virtual void doubleCheck(const TSourceLoc&, const char* op); -#ifdef AMD_EXTENSIONS virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); +#ifdef AMD_EXTENSIONS + virtual void float16OpaqueCheck(const TSourceLoc&, const char* op, bool builtIn = false); #endif virtual void int64Check(const TSourceLoc&, const char* op, bool builtIn = false); + virtual void explicitInt8Check(const TSourceLoc&, const char* op, bool builtIn = false); + virtual void explicitInt16Check(const TSourceLoc&, const char* op, bool builtIn = false); + virtual void explicitInt32Check(const TSourceLoc&, const char* op, bool builtIn = false); + virtual void explicitFloat32Check(const TSourceLoc&, const char* op, bool builtIn = false); + virtual void explicitFloat64Check(const TSourceLoc&, const char* op, bool builtIn = false); virtual void spvRemoved(const TSourceLoc&, const char* op); virtual void vulkanRemoved(const TSourceLoc&, const char* op); virtual void requireVulkan(const TSourceLoc&, const char* op); @@ -111,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/glslang/MachineIndependent/preprocessor/Pp.cpp b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp index 9138d230ea..8048fa513d 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. -//All rights reserved. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// 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: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +57,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -75,136 +75,119 @@ NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ -// -// cpp.c -// +#ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS +#endif #include #include #include #include +#include #include "PpContext.h" #include "PpTokens.h" namespace glslang { -int TPpContext::InitCPP() -{ - pool = mem_CreatePool(0, 0); - - return 1; -} - // Handle #define int TPpContext::CPPdefine(TPpToken* ppToken) { MacroSymbol mac; - Symbol *symb; - // get macro name + // get the macro name int token = scanToken(ppToken); if (token != PpAtomIdentifier) { - _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#define", ""); + parseContext.ppError(ppToken->loc, "must be followed by macro name", "#define", ""); return token; } if (ppToken->loc.string >= 0) { // We are in user code; check for reserved name use: - _parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#define"); + parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#define"); } - // save the original atom - const int defAtom = ppToken->atom; + // save the macro name + const int defAtom = atomStrings.getAddAtom(ppToken->name); // gather parameters to the macro, between (...) token = scanToken(ppToken); if (token == '(' && ! ppToken->space) { - int argc = 0; - int args[maxMacroArgs]; + mac.emptyArgs = 1; do { token = scanToken(ppToken); - if (argc == 0 && token == ')') + if (mac.args.size() == 0 && token == ')') break; if (token != PpAtomIdentifier) { - _parseContext.ppError(ppToken->loc, "bad argument", "#define", ""); + parseContext.ppError(ppToken->loc, "bad argument", "#define", ""); return token; } + mac.emptyArgs = 0; + const int argAtom = atomStrings.getAddAtom(ppToken->name); + // check for duplication of parameter name bool duplicate = false; - for (int a = 0; a < argc; ++a) { - if (args[a] == ppToken->atom) { - _parseContext.ppError(ppToken->loc, "duplicate macro parameter", "#define", ""); + for (size_t a = 0; a < mac.args.size(); ++a) { + if (mac.args[a] == argAtom) { + parseContext.ppError(ppToken->loc, "duplicate macro parameter", "#define", ""); duplicate = true; break; } } - if (! duplicate) { - if (argc < maxMacroArgs) - args[argc++] = ppToken->atom; - else - _parseContext.ppError(ppToken->loc, "too many macro parameters", "#define", ""); - } + if (! duplicate) + mac.args.push_back(argAtom); token = scanToken(ppToken); } while (token == ','); if (token != ')') { - _parseContext.ppError(ppToken->loc, "missing parenthesis", "#define", ""); + parseContext.ppError(ppToken->loc, "missing parenthesis", "#define", ""); return token; } - mac.argc = argc; - mac.args = (int*)mem_Alloc(pool, argc * sizeof(int)); - memcpy(mac.args, args, argc * sizeof(int)); + token = scanToken(ppToken); } // record the definition of the macro TSourceLoc defineLoc = ppToken->loc; // because ppToken is going to go to the next line before we report errors - mac.body = new TokenStream; while (token != '\n' && token != EndOfInput) { - RecordToken(mac.body, token, ppToken); + mac.body.putToken(token, ppToken); token = scanToken(ppToken); if (token != '\n' && ppToken->space) - RecordToken(mac.body, ' ', ppToken); + mac.body.putToken(' ', ppToken); } // check for duplicate definition - symb = LookUpSymbol(defAtom); - if (symb) { - if (! symb->mac.undef) { + MacroSymbol* existing = lookupMacroDef(defAtom); + if (existing != nullptr) { + if (! existing->undef) { // Already defined -- need to make sure they are identical: // "Two replacement lists are identical if and only if the preprocessing tokens in both have the same number, // ordering, spelling, and white-space separation, where all white-space separations are considered identical." - if (symb->mac.argc != mac.argc) - _parseContext.ppError(defineLoc, "Macro redefined; different number of arguments:", "#define", GetAtomString(defAtom)); + if (existing->args.size() != mac.args.size() || existing->emptyArgs != mac.emptyArgs) + parseContext.ppError(defineLoc, "Macro redefined; different number of arguments:", "#define", atomStrings.getString(defAtom)); else { - for (int argc = 0; argc < mac.argc; argc++) { - if (symb->mac.args[argc] != mac.args[argc]) - _parseContext.ppError(defineLoc, "Macro redefined; different argument names:", "#define", GetAtomString(defAtom)); - } - RewindTokenStream(symb->mac.body); - RewindTokenStream(mac.body); + if (existing->args != mac.args) + parseContext.ppError(defineLoc, "Macro redefined; different argument names:", "#define", atomStrings.getString(defAtom)); + existing->body.reset(); + mac.body.reset(); int newToken; do { int oldToken; TPpToken oldPpToken; TPpToken newPpToken; - oldToken = ReadToken(symb->mac.body, &oldPpToken); - newToken = ReadToken(mac.body, &newPpToken); + oldToken = existing->body.getToken(parseContext, &oldPpToken); + newToken = mac.body.getToken(parseContext, &newPpToken); if (oldToken != newToken || oldPpToken != newPpToken) { - _parseContext.ppError(defineLoc, "Macro redefined; different substitutions:", "#define", GetAtomString(defAtom)); - break; + parseContext.ppError(defineLoc, "Macro redefined; different substitutions:", "#define", atomStrings.getString(defAtom)); + break; } } while (newToken > 0); } } + *existing = mac; } else - symb = AddSymbol(defAtom); - - delete symb->mac.body; - symb->mac = mac; + addMacroDef(defAtom, mac); return '\n'; } @@ -213,22 +196,20 @@ int TPpContext::CPPdefine(TPpToken* ppToken) int TPpContext::CPPundef(TPpToken* ppToken) { int token = scanToken(ppToken); - Symbol *symb; if (token != PpAtomIdentifier) { - _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#undef", ""); + parseContext.ppError(ppToken->loc, "must be followed by macro name", "#undef", ""); return token; } - _parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#undef"); + parseContext.reservedPpErrorCheck(ppToken->loc, ppToken->name, "#undef"); - symb = LookUpSymbol(ppToken->atom); - if (symb) { - symb->mac.undef = 1; - } + MacroSymbol* macro = lookupMacroDef(atomStrings.getAtom(ppToken->name)); + if (macro != nullptr) + macro->undef = 1; token = scanToken(ppToken); if (token != '\n') - _parseContext.ppError(ppToken->loc, "can only be followed by a single macro name", "#undef", ""); + parseContext.ppError(ppToken->loc, "can only be followed by a single macro name", "#undef", ""); return token; } @@ -240,7 +221,6 @@ int TPpContext::CPPundef(TPpToken* ppToken) */ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) { - int atom; int depth = 0; int token = scanToken(ppToken); @@ -259,35 +239,40 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) if ((token = scanToken(ppToken)) != PpAtomIdentifier) continue; - atom = ppToken->atom; - if (atom == PpAtomIf || atom == PpAtomIfdef || atom == PpAtomIfndef) { - depth++; - ifdepth++; - elsetracker++; - } else if (atom == PpAtomEndif) { - token = extraTokenCheck(atom, ppToken, scanToken(ppToken)); + int nextAtom = atomStrings.getAtom(ppToken->name); + if (nextAtom == PpAtomIf || nextAtom == PpAtomIfdef || nextAtom == PpAtomIfndef) { + depth++; + if (ifdepth >= maxIfNesting || elsetracker >= maxIfNesting) { + parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#if/#ifdef/#ifndef", ""); + return EndOfInput; + } else { + ifdepth++; + elsetracker++; + } + } else if (nextAtom == PpAtomEndif) { + token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); elseSeen[elsetracker] = false; --elsetracker; if (depth == 0) { // found the #endif we are looking for - if (ifdepth) + if (ifdepth > 0) --ifdepth; break; } --depth; --ifdepth; } else if (matchelse && depth == 0) { - if (atom == PpAtomElse) { + if (nextAtom == PpAtomElse) { elseSeen[elsetracker] = true; - token = extraTokenCheck(atom, ppToken, scanToken(ppToken)); + token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); // found the #else we are looking for break; - } else if (atom == PpAtomElif) { + } else if (nextAtom == PpAtomElif) { if (elseSeen[elsetracker]) - _parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); + parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); /* we decrement ifdepth here, because CPPif will increment * it and we really want to leave it alone */ - if (ifdepth) { + if (ifdepth > 0) { --ifdepth; elseSeen[elsetracker] = false; --elsetracker; @@ -295,15 +280,15 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) return CPPif(ppToken); } - } else if (atom == PpAtomElse) { + } else if (nextAtom == PpAtomElse) { if (elseSeen[elsetracker]) - _parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); + parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); else elseSeen[elsetracker] = true; - token = extraTokenCheck(atom, ppToken, scanToken(ppToken)); - } else if (atom == PpAtomElif) { + token = extraTokenCheck(nextAtom, ppToken, scanToken(ppToken)); + } else if (nextAtom == PpAtomElif) { if (elseSeen[elsetracker]) - _parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); + parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); } } @@ -311,29 +296,29 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) } // Call when there should be no more tokens left on a line. -int TPpContext::extraTokenCheck(int atom, TPpToken* ppToken, int token) +int TPpContext::extraTokenCheck(int contextAtom, TPpToken* ppToken, int token) { if (token != '\n' && token != EndOfInput) { static const char* message = "unexpected tokens following directive"; const char* label; - if (atom == PpAtomElse) + if (contextAtom == PpAtomElse) label = "#else"; - else if (atom == PpAtomElif) + else if (contextAtom == PpAtomElif) label = "#elif"; - else if (atom == PpAtomEndif) + else if (contextAtom == PpAtomEndif) label = "#endif"; - else if (atom == PpAtomIf) + else if (contextAtom == PpAtomIf) label = "#if"; - else if (atom == PpAtomLine) + else if (contextAtom == PpAtomLine) label = "#line"; else label = ""; - if (_parseContext.relaxedErrors()) - _parseContext.ppWarn(ppToken->loc, message, label, ""); + if (parseContext.relaxedErrors()) + parseContext.ppWarn(ppToken->loc, message, label, ""); else - _parseContext.ppError(ppToken->loc, message, label, ""); + parseContext.ppError(ppToken->loc, message, label, ""); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); @@ -366,8 +351,8 @@ namespace { int op_add(int a, int b) { return a + b; } int op_sub(int a, int b) { return a - b; } int op_mul(int a, int b) { return a * b; } - int op_div(int a, int b) { return a / b; } - int op_mod(int a, int b) { return a % b; } + int op_div(int a, int b) { return a == INT_MIN && b == -1 ? 0 : a / b; } + int op_mod(int a, int b) { return a == INT_MIN && b == -1 ? 0 : a % b; } int op_pos(int a) { return a; } int op_neg(int a) { return -a; } int op_cmpl(int a) { return ~a; } @@ -413,7 +398,15 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo { TSourceLoc loc = ppToken->loc; // because we sometimes read the newline before reporting the error if (token == PpAtomIdentifier) { - if (ppToken->atom == PpAtomDefined) { + if (strcmp("defined", ppToken->name) == 0) { + if (! parseContext.isReadingHLSL() && isMacroInput()) { + if (parseContext.relaxedErrors()) + parseContext.ppWarn(ppToken->loc, "nonportable when expanded from macros for preprocessor expression", + "defined", ""); + else + parseContext.ppError(ppToken->loc, "cannot use in preprocessor expression when expanded from macros", + "defined", ""); + } bool needclose = 0; token = scanToken(ppToken); if (token == '(') { @@ -421,18 +414,19 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo token = scanToken(ppToken); } if (token != PpAtomIdentifier) { - _parseContext.ppError(loc, "incorrect directive, expected identifier", "preprocessor evaluation", ""); + parseContext.ppError(loc, "incorrect directive, expected identifier", "preprocessor evaluation", ""); err = true; res = 0; return token; } - Symbol* s = LookUpSymbol(ppToken->atom); - res = s ? ! s->mac.undef : 0; + + MacroSymbol* macro = lookupMacroDef(atomStrings.getAtom(ppToken->name)); + res = macro != nullptr ? !macro->undef : 0; token = scanToken(ppToken); if (needclose) { if (token != ')') { - _parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); + parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); err = true; res = 0; @@ -452,7 +446,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo token = eval(token, MIN_PRECEDENCE, shortCircuit, res, err, ppToken); if (! err) { if (token != ')') { - _parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); + parseContext.ppError(loc, "expected ')'", "preprocessor evaluation", ""); err = true; res = 0; @@ -471,7 +465,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo token = eval(token, UNARY, shortCircuit, res, err, ppToken); res = unop[op].op(res); } else { - _parseContext.ppError(loc, "bad expression", "preprocessor evaluation", ""); + parseContext.ppError(loc, "bad expression", "preprocessor evaluation", ""); err = true; res = 0; @@ -483,7 +477,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo // Perform evaluation of binary operation, if there is one, otherwise we are done. while (! err) { - if (token == ')' || token == '\n') + if (token == ')' || token == '\n') break; int op; for (op = NUM_ELEMENTS(binop) - 1; op >= 0; op--) { @@ -507,7 +501,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo if (binop[op].op == op_div || binop[op].op == op_mod) { if (res == 0) { - _parseContext.ppError(loc, "division by 0", "preprocessor evaluation", ""); + parseContext.ppError(loc, "division by 0", "preprocessor evaluation", ""); res = 1; } } @@ -520,22 +514,22 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo // Expand macros, skipping empty expansions, to get to the first real token in those expansions. int TPpContext::evalToToken(int token, bool shortCircuit, int& res, bool& err, TPpToken* ppToken) { - while (token == PpAtomIdentifier && ppToken->atom != PpAtomDefined) { - int macroReturn = MacroExpand(ppToken->atom, ppToken, true, false); + while (token == PpAtomIdentifier && strcmp("defined", ppToken->name) != 0) { + int macroReturn = MacroExpand(ppToken, true, false); if (macroReturn == 0) { - _parseContext.ppError(ppToken->loc, "can't evaluate expression", "preprocessor evaluation", ""); + parseContext.ppError(ppToken->loc, "can't evaluate expression", "preprocessor evaluation", ""); err = true; res = 0; token = scanToken(ppToken); break; } if (macroReturn == -1) { - if (! shortCircuit && _parseContext.profile == EEsProfile) { + if (! shortCircuit && parseContext.profile == EEsProfile) { const char* message = "undefined macro in expression not allowed in es profile"; - if (_parseContext.relaxedErrors()) - _parseContext.ppWarn(ppToken->loc, message, "preprocessor evaluation", ppToken->name); + if (parseContext.relaxedErrors()) + parseContext.ppWarn(ppToken->loc, message, "preprocessor evaluation", ppToken->name); else - _parseContext.ppError(ppToken->loc, message, "preprocessor evaluation", ppToken->name); + parseContext.ppError(ppToken->loc, message, "preprocessor evaluation", ppToken->name); } } token = scanToken(ppToken); @@ -545,14 +539,15 @@ int TPpContext::evalToToken(int token, bool shortCircuit, int& res, bool& err, T } // Handle #if -int TPpContext::CPPif(TPpToken* ppToken) +int TPpContext::CPPif(TPpToken* ppToken) { int token = scanToken(ppToken); - elsetracker++; - ifdepth++; - if (ifdepth > maxIfNesting) { - _parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#if", ""); - return 0; + if (ifdepth >= maxIfNesting || elsetracker >= maxIfNesting) { + parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#if", ""); + return EndOfInput; + } else { + elsetracker++; + ifdepth++; } int res = 0; bool err = false; @@ -568,77 +563,110 @@ int TPpContext::CPPif(TPpToken* ppToken) int TPpContext::CPPifdef(int defined, TPpToken* ppToken) { int token = scanToken(ppToken); - int name = ppToken->atom; - if (++ifdepth > maxIfNesting) { - _parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#ifdef", ""); - return 0; + if (ifdepth > maxIfNesting || elsetracker > maxIfNesting) { + parseContext.ppError(ppToken->loc, "maximum nesting depth exceeded", "#ifdef", ""); + return EndOfInput; + } else { + elsetracker++; + ifdepth++; } - elsetracker++; + if (token != PpAtomIdentifier) { if (defined) - _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifdef", ""); - else - _parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifndef", ""); + parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifdef", ""); + else + parseContext.ppError(ppToken->loc, "must be followed by macro name", "#ifndef", ""); } else { - Symbol *s = LookUpSymbol(name); + MacroSymbol* macro = lookupMacroDef(atomStrings.getAtom(ppToken->name)); token = scanToken(ppToken); if (token != '\n') { - _parseContext.ppError(ppToken->loc, "unexpected tokens following #ifdef directive - expected a newline", "#ifdef", ""); + parseContext.ppError(ppToken->loc, "unexpected tokens following #ifdef directive - expected a newline", "#ifdef", ""); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); } - if (((s && !s->mac.undef) ? 1 : 0) != defined) + if (((macro != nullptr && !macro->undef) ? 1 : 0) != defined) token = CPPelse(1, ppToken); } return token; } -// Handle #include +// Handle #include ... +// TODO: Handle macro expansions for the header name int TPpContext::CPPinclude(TPpToken* ppToken) { const TSourceLoc directiveLoc = ppToken->loc; + bool startWithLocalSearch = true; // to additionally include the extra "" paths int token = scanToken(ppToken); - if (token != PpAtomConstString) { - // TODO: handle angle brackets. - _parseContext.ppError(directiveLoc, "must be followed by a file designation", "#include", ""); - } else { - // Make a copy of the name because it will be overwritten by the next token scan. - const std::string filename = ppToken->name; - token = scanToken(ppToken); - if (token != '\n' && token != EndOfInput) { - _parseContext.ppError(ppToken->loc, "extra content after file designation", "#include", ""); - } else { - TShader::Includer::IncludeResult* res = includer.include(filename.c_str(), TShader::Includer::EIncludeRelative, currentSourceFile.c_str(), includeStack.size() + 1); - if (res && !res->file_name.empty()) { - if (res->file_data && res->file_length) { - const bool forNextLine = _parseContext.lineDirectiveShouldSetNextLine(); - std::ostringstream prologue; - std::ostringstream epilogue; - prologue << "#line " << forNextLine << " " << "\"" << res->file_name << "\"\n"; - epilogue << (res->file_data[res->file_length - 1] == '\n'? "" : "\n") << "#line " << directiveLoc.line + forNextLine << " " << directiveLoc.getStringNameOrNum() << "\n"; - pushInput(new TokenizableIncludeFile(directiveLoc, prologue.str(), res, epilogue.str(), this)); - } - // At EOF, there's no "current" location anymore. - if (token != EndOfInput) _parseContext.setCurrentColumn(0); - // Don't accidentally return EndOfInput, which will end all preprocessing. - return '\n'; - } else { - std::string message = - res ? std::string(res->file_data, res->file_length) - : std::string("Could not process include directive"); - _parseContext.ppError(directiveLoc, message.c_str(), "#include", ""); - if (res) { - includer.releaseInclude(res); - } - } - } + + // handle -style #include + if (token == '<') { + startWithLocalSearch = false; + token = scanHeaderName(ppToken, '>'); } + // otherwise ppToken already has the header name and it was "header-name" style + + if (token != PpAtomConstString) { + parseContext.ppError(directiveLoc, "must be followed by a header name", "#include", ""); + return token; + } + + // Make a copy of the name because it will be overwritten by the next token scan. + const std::string filename = ppToken->name; + + // See if the directive was well formed + token = scanToken(ppToken); + if (token != '\n') { + if (token == EndOfInput) + parseContext.ppError(ppToken->loc, "expected newline after header name:", "#include", "%s", filename.c_str()); + else + parseContext.ppError(ppToken->loc, "extra content after header name:", "#include", "%s", filename.c_str()); + return token; + } + + // Process well-formed directive + + // Find the inclusion, first look in "Local" ("") paths, if requested, + // otherwise, only search the "System" (<>) paths. + TShader::Includer::IncludeResult* res = nullptr; + if (startWithLocalSearch) + res = includer.includeLocal(filename.c_str(), currentSourceFile.c_str(), includeStack.size() + 1); + if (res == nullptr || res->headerName.empty()) { + includer.releaseInclude(res); + res = includer.includeSystem(filename.c_str(), currentSourceFile.c_str(), includeStack.size() + 1); + } + + // Process the results + if (res != nullptr && !res->headerName.empty()) { + if (res->headerData != nullptr && res->headerLength > 0) { + // path for processing one or more tokens from an included header, hand off 'res' + const bool forNextLine = parseContext.lineDirectiveShouldSetNextLine(); + std::ostringstream prologue; + std::ostringstream epilogue; + prologue << "#line " << forNextLine << " " << "\"" << res->headerName << "\"\n"; + epilogue << (res->headerData[res->headerLength - 1] == '\n'? "" : "\n") << + "#line " << directiveLoc.line + forNextLine << " " << directiveLoc.getStringNameOrNum() << "\n"; + pushInput(new TokenizableIncludeFile(directiveLoc, prologue.str(), res, epilogue.str(), this)); + // There's no "current" location anymore. + parseContext.setCurrentColumn(0); + } else { + // things are okay, but there is nothing to process + includer.releaseInclude(res); + } + } else { + // error path, clean up + std::string message = + res != nullptr ? std::string(res->headerData, res->headerLength) + : std::string("Could not process include directive"); + parseContext.ppError(directiveLoc, message.c_str(), "#include", "for header name: %s", filename.c_str()); + includer.releaseInclude(res); + } + return token; } // Handle #line -int TPpContext::CPPline(TPpToken* ppToken) +int TPpContext::CPPline(TPpToken* ppToken) { // "#line must have, after macro substitution, one of the following forms: // "#line line @@ -647,7 +675,7 @@ int TPpContext::CPPline(TPpToken* ppToken) int token = scanToken(ppToken); const TSourceLoc directiveLoc = ppToken->loc; if (token == '\n') { - _parseContext.ppError(ppToken->loc, "must by followed by an integral literal", "#line", ""); + parseContext.ppError(ppToken->loc, "must by followed by an integral literal", "#line", ""); return token; } @@ -664,31 +692,31 @@ int TPpContext::CPPline(TPpToken* ppToken) if (token == '\n') ++lineRes; - if (_parseContext.lineDirectiveShouldSetNextLine()) + if (parseContext.lineDirectiveShouldSetNextLine()) --lineRes; - _parseContext.setCurrentLine(lineRes); + parseContext.setCurrentLine(lineRes); if (token != '\n') { if (token == PpAtomConstString) { - _parseContext.ppRequireExtensions(directiveLoc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based #line"); + parseContext.ppRequireExtensions(directiveLoc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based #line"); // We need to save a copy of the string instead of pointing // to the name field of the token since the name field // will likely be overwritten by the next token scan. - sourceName = GetAtomString(LookUpAddString(ppToken->name)); - _parseContext.setCurrentSourceName(sourceName); + sourceName = atomStrings.getString(atomStrings.getAddAtom(ppToken->name)); + parseContext.setCurrentSourceName(sourceName); hasFile = true; token = scanToken(ppToken); } else { token = eval(token, MIN_PRECEDENCE, false, fileRes, fileErr, ppToken); if (! fileErr) { - _parseContext.setCurrentString(fileRes); + parseContext.setCurrentString(fileRes); hasFile = true; } } } } if (!fileErr && !lineErr) { - _parseContext.notifyLineDirective(directiveLoc.line, lineToken, hasFile, fileRes, sourceName); + parseContext.notifyLineDirective(directiveLoc.line, lineToken, hasFile, fileRes, sourceName); } token = extraTokenCheck(PpAtomLine, ppToken, token); @@ -696,31 +724,30 @@ int TPpContext::CPPline(TPpToken* ppToken) } // Handle #error -int TPpContext::CPPerror(TPpToken* ppToken) +int TPpContext::CPPerror(TPpToken* ppToken) { int token = scanToken(ppToken); std::string message; TSourceLoc loc = ppToken->loc; while (token != '\n' && token != EndOfInput) { - if (token == PpAtomConstInt || token == PpAtomConstUint || + if (token == PpAtomConstInt16 || token == PpAtomConstUint16 || + token == PpAtomConstInt || token == PpAtomConstUint || token == PpAtomConstInt64 || token == PpAtomConstUint64 || -#ifdef AMD_EXTENSIONS token == PpAtomConstFloat16 || -#endif token == PpAtomConstFloat || token == PpAtomConstDouble) { message.append(ppToken->name); } else if (token == PpAtomIdentifier || token == PpAtomConstString) { message.append(ppToken->name); } else { - message.append(GetAtomString(token)); + message.append(atomStrings.getString(token)); } message.append(" "); token = scanToken(ppToken); } - _parseContext.notifyErrorDirective(loc.line, message.c_str()); - //store this msg into the shader's information log..set the Compile Error flag!!!! - _parseContext.ppError(loc, message.c_str(), "#error", ""); + parseContext.notifyErrorDirective(loc.line, message.c_str()); + // store this msg into the shader's information log..set the Compile Error flag!!!! + parseContext.ppError(loc, message.c_str(), "#error", ""); return '\n'; } @@ -740,11 +767,13 @@ int TPpContext::CPPpragma(TPpToken* ppToken) case PpAtomConstUint: case PpAtomConstInt64: case PpAtomConstUint64: +#ifdef AMD_EXTENSIONS + case PpAtomConstInt16: + case PpAtomConstUint16: +#endif case PpAtomConstFloat: case PpAtomConstDouble: -#ifdef AMD_EXTENSIONS case PpAtomConstFloat16: -#endif tokens.push_back(ppToken->name); break; default: @@ -756,9 +785,9 @@ int TPpContext::CPPpragma(TPpToken* ppToken) } if (token == EndOfInput) - _parseContext.ppError(loc, "directive must end with a newline", "#pragma", ""); + parseContext.ppError(loc, "directive must end with a newline", "#pragma", ""); else - _parseContext.handlePragma(loc, tokens); + parseContext.handlePragma(loc, tokens); return token; } @@ -768,18 +797,22 @@ int TPpContext::CPPversion(TPpToken* ppToken) { int token = scanToken(ppToken); - if (errorOnVersion || versionSeen) - _parseContext.ppError(ppToken->loc, "must occur first in shader", "#version", ""); + if (errorOnVersion || versionSeen) { + if (parseContext.isReadingHLSL()) + parseContext.ppError(ppToken->loc, "invalid preprocessor command", "#version", ""); + else + parseContext.ppError(ppToken->loc, "must occur first in shader", "#version", ""); + } versionSeen = true; if (token == '\n') { - _parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); + parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); return token; } if (token != PpAtomConstInt) - _parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); + parseContext.ppError(ppToken->loc, "must be followed by version number", "#version", ""); ppToken->ival = atoi(ppToken->name); int versionNumber = ppToken->ival; @@ -787,20 +820,21 @@ int TPpContext::CPPversion(TPpToken* ppToken) token = scanToken(ppToken); if (token == '\n') { - _parseContext.notifyVersion(line, versionNumber, nullptr); + parseContext.notifyVersion(line, versionNumber, nullptr); return token; } else { - if (ppToken->atom != PpAtomCore && - ppToken->atom != PpAtomCompatibility && - ppToken->atom != PpAtomEs) - _parseContext.ppError(ppToken->loc, "bad profile name; use es, core, or compatibility", "#version", ""); - _parseContext.notifyVersion(line, versionNumber, ppToken->name); + int profileAtom = atomStrings.getAtom(ppToken->name); + if (profileAtom != PpAtomCore && + profileAtom != PpAtomCompatibility && + profileAtom != PpAtomEs) + parseContext.ppError(ppToken->loc, "bad profile name; use es, core, or compatibility", "#version", ""); + parseContext.notifyVersion(line, versionNumber, ppToken->name); token = scanToken(ppToken); if (token == '\n') return token; else - _parseContext.ppError(ppToken->loc, "bad tokens following profile -- expected newline", "#version", ""); + parseContext.ppError(ppToken->loc, "bad tokens following profile -- expected newline", "#version", ""); } return token; @@ -814,36 +848,36 @@ int TPpContext::CPPextension(TPpToken* ppToken) char extensionName[MaxTokenLength + 1]; if (token=='\n') { - _parseContext.ppError(ppToken->loc, "extension name not specified", "#extension", ""); + parseContext.ppError(ppToken->loc, "extension name not specified", "#extension", ""); return token; } if (token != PpAtomIdentifier) - _parseContext.ppError(ppToken->loc, "extension name expected", "#extension", ""); + parseContext.ppError(ppToken->loc, "extension name expected", "#extension", ""); assert(strlen(ppToken->name) <= MaxTokenLength); strcpy(extensionName, ppToken->name); token = scanToken(ppToken); if (token != ':') { - _parseContext.ppError(ppToken->loc, "':' missing after extension name", "#extension", ""); + parseContext.ppError(ppToken->loc, "':' missing after extension name", "#extension", ""); return token; } token = scanToken(ppToken); if (token != PpAtomIdentifier) { - _parseContext.ppError(ppToken->loc, "behavior for extension not specified", "#extension", ""); + parseContext.ppError(ppToken->loc, "behavior for extension not specified", "#extension", ""); return token; } - _parseContext.updateExtensionBehavior(line, extensionName, ppToken->name); - _parseContext.notifyExtensionDirective(line, extensionName, ppToken->name); + parseContext.updateExtensionBehavior(line, extensionName, ppToken->name); + parseContext.notifyExtensionDirective(line, extensionName, ppToken->name); token = scanToken(ppToken); if (token == '\n') return token; else - _parseContext.ppError(ppToken->loc, "extra tokens -- expected newline", "#extension",""); + parseContext.ppError(ppToken->loc, "extra tokens -- expected newline", "#extension",""); return token; } @@ -853,33 +887,33 @@ int TPpContext::readCPPline(TPpToken* ppToken) int token = scanToken(ppToken); if (token == PpAtomIdentifier) { - switch (ppToken->atom) { + switch (atomStrings.getAtom(ppToken->name)) { case PpAtomDefine: token = CPPdefine(ppToken); break; case PpAtomElse: - if (elsetracker[elseSeen]) - _parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); - elsetracker[elseSeen] = true; - if (! ifdepth) - _parseContext.ppError(ppToken->loc, "mismatched statements", "#else", ""); + if (elseSeen[elsetracker]) + parseContext.ppError(ppToken->loc, "#else after #else", "#else", ""); + elseSeen[elsetracker] = true; + if (ifdepth == 0) + parseContext.ppError(ppToken->loc, "mismatched statements", "#else", ""); token = extraTokenCheck(PpAtomElse, ppToken, scanToken(ppToken)); token = CPPelse(0, ppToken); break; case PpAtomElif: - if (! ifdepth) - _parseContext.ppError(ppToken->loc, "mismatched statements", "#elif", ""); + if (ifdepth == 0) + parseContext.ppError(ppToken->loc, "mismatched statements", "#elif", ""); if (elseSeen[elsetracker]) - _parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); + parseContext.ppError(ppToken->loc, "#elif after #else", "#elif", ""); // this token is really a dont care, but we still need to eat the tokens - token = scanToken(ppToken); + token = scanToken(ppToken); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); token = CPPelse(0, ppToken); break; case PpAtomEndif: - if (! ifdepth) - _parseContext.ppError(ppToken->loc, "mismatched statements", "#endif", ""); + if (ifdepth == 0) + parseContext.ppError(ppToken->loc, "mismatched statements", "#endif", ""); else { elseSeen[elsetracker] = false; --elsetracker; @@ -897,8 +931,8 @@ int TPpContext::readCPPline(TPpToken* ppToken) token = CPPifdef(0, ppToken); break; case PpAtomInclude: - if(!_parseContext.isReadingHLSL()) { - _parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); + if(!parseContext.isReadingHLSL()) { + parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); } token = CPPinclude(ppToken); break; @@ -921,11 +955,11 @@ int TPpContext::readCPPline(TPpToken* ppToken) token = CPPextension(ppToken); break; default: - _parseContext.ppError(ppToken->loc, "invalid directive:", "#", ppToken->name); + parseContext.ppError(ppToken->loc, "invalid directive:", "#", ppToken->name); break; } } else if (token != '\n' && token != EndOfInput) - _parseContext.ppError(ppToken->loc, "invalid directive", "#", ""); + parseContext.ppError(ppToken->loc, "invalid directive", "#", ""); while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); @@ -933,52 +967,128 @@ int TPpContext::readCPPline(TPpToken* ppToken) return token; } -TPpContext::TokenStream* TPpContext::PrescanMacroArg(TokenStream* a, TPpToken* ppToken, bool newLineOkay) +// Context-dependent parsing of a #include . +// Assumes no macro expansions etc. are being done; the name is just on the current input. +// Always creates a name and returns PpAtomicConstString, unless we run out of input. +int TPpContext::scanHeaderName(TPpToken* ppToken, char delimit) { - int token; - TokenStream *n; - RewindTokenStream(a); + bool tooLong = false; + + if (inputStack.empty()) + return EndOfInput; + + int len = 0; + ppToken->name[0] = '\0'; do { - token = ReadToken(a, ppToken); - if (token == PpAtomIdentifier && LookUpSymbol(ppToken->atom)) - break; - } while (token != EndOfInput); + int ch = inputStack.back()->getch(); - if (token == EndOfInput) - return a; + // done yet? + if (ch == delimit) { + ppToken->name[len] = '\0'; + if (tooLong) + parseContext.ppError(ppToken->loc, "header name too long", "", ""); + return PpAtomConstString; + } else if (ch == EndOfInput) + return EndOfInput; - n = new TokenStream; - pushInput(new tMarkerInput(this)); - pushTokenStreamInput(a); - while ((token = scanToken(ppToken)) != tMarkerInput::marker) { - if (token == PpAtomIdentifier && MacroExpand(ppToken->atom, ppToken, false, newLineOkay) != 0) - continue; - RecordToken(n, token, ppToken); - } - popInput(); - delete a; - - return n; + // found a character to expand the name with + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + else + tooLong = true; + } while (true); } -// -// Return the next token for a macro expansion, handling macro args. +// Macro-expand a macro argument 'arg' to create 'expandedArg'. +// Does not replace 'arg'. +// Returns nullptr if no expanded argument is created. +TPpContext::TokenStream* TPpContext::PrescanMacroArg(TokenStream& arg, TPpToken* ppToken, bool newLineOkay) +{ + // expand the argument + TokenStream* expandedArg = new TokenStream; + pushInput(new tMarkerInput(this)); + pushTokenStreamInput(arg); + int token; + while ((token = scanToken(ppToken)) != tMarkerInput::marker && token != EndOfInput) { + token = tokenPaste(token, *ppToken); + if (token == tMarkerInput::marker || token == EndOfInput) + break; + if (token == PpAtomIdentifier && MacroExpand(ppToken, false, newLineOkay) != 0) + continue; + expandedArg->putToken(token, ppToken); + } + + if (token == EndOfInput) { + // MacroExpand ate the marker, so had bad input, recover + delete expandedArg; + expandedArg = nullptr; + } else { + // remove the marker + popInput(); + } + + return expandedArg; +} + +// +// Return the next token for a macro expansion, handling macro arguments, +// whose semantics are dependent on being adjacent to ##. // int TPpContext::tMacroInput::scan(TPpToken* ppToken) { int token; do { - token = pp->ReadToken(mac->body, ppToken); + token = mac->body.getToken(pp->parseContext, ppToken); } while (token == ' '); // handle white space in macro + // Hash operators basically turn off a round of macro substitution + // (the round done on the argument before the round done on the RHS of the + // macro definition): + // + // "A parameter in the replacement list, unless preceded by a # or ## + // preprocessing token or followed by a ## preprocessing token (see below), + // is replaced by the corresponding argument after all macros contained + // therein have been expanded." + // + // "If, in the replacement list, a parameter is immediately preceded or + // followed by a ## preprocessing token, the parameter is replaced by the + // corresponding argument's preprocessing token sequence." + + bool pasting = false; + if (postpaste) { + // don't expand next token + pasting = true; + postpaste = false; + } + + if (prepaste) { + // already know we should be on a ##, verify + assert(token == PpAtomPaste); + prepaste = false; + postpaste = true; + } + + // see if are preceding a ## + if (mac->body.peekUntokenizedPasting()) { + prepaste = true; + pasting = true; + } + + // HLSL does expand macros before concatenation + if (pasting && pp->parseContext.isReadingHLSL()) + pasting = false; + // TODO: preprocessor: properly handle whitespace (or lack of it) between tokens when expanding if (token == PpAtomIdentifier) { int i; - for (i = mac->argc - 1; i >= 0; i--) - if (mac->args[i] == ppToken->atom) + for (i = (int)mac->args.size() - 1; i >= 0; i--) + if (strcmp(pp->atomStrings.getString(mac->args[i]), ppToken->name) == 0) break; if (i >= 0) { - pp->pushTokenStreamInput(args[i]); + TokenStream* arg = expandedArgs[i]; + if (arg == nullptr || pasting) + arg = args[i]; + pp->pushTokenStreamInput(*arg, prepaste); return pp->scanToken(ppToken); } @@ -1005,34 +1115,35 @@ int TPpContext::tZeroInput::scan(TPpToken* ppToken) } // -// Check an identifier (atom) to see if it is a macro that should be expanded. +// Check a token to see if it is a macro that should be expanded. // If it is, and defined, push a tInput that will produce the appropriate expansion // and return 1. -// If it is, but undefined, and expandUndef is requested, push a tInput that will +// If it is, but undefined, and expandUndef is requested, push a tInput that will // expand to 0 and return -1. // Otherwise, return 0 to indicate no expansion, which is not necessarily an error. // -int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool newLineOkay) +int TPpContext::MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOkay) { ppToken->space = false; - switch (atom) { + int macroAtom = atomStrings.getAtom(ppToken->name); + switch (macroAtom) { case PpAtomLineMacro: - ppToken->ival = _parseContext.getCurrentLoc().line; + ppToken->ival = parseContext.getCurrentLoc().line; snprintf(ppToken->name, sizeof(ppToken->name), "%d", ppToken->ival); UngetToken(PpAtomConstInt, ppToken); return 1; case PpAtomFileMacro: { - if (_parseContext.getCurrentLoc().name) - _parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based __FILE__"); - ppToken->ival = _parseContext.getCurrentLoc().string; + if (parseContext.getCurrentLoc().name) + parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based __FILE__"); + ppToken->ival = parseContext.getCurrentLoc().string; snprintf(ppToken->name, sizeof(ppToken->name), "%s", ppToken->loc.getStringNameOrNum().c_str()); UngetToken(PpAtomConstInt, ppToken); return 1; } case PpAtomVersionMacro: - ppToken->ival = _parseContext.version; + ppToken->ival = parseContext.version; snprintf(ppToken->name, sizeof(ppToken->name), "%d", ppToken->ival); UngetToken(PpAtomConstInt, ppToken); return 1; @@ -1041,20 +1152,19 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool break; } - Symbol *sym = LookUpSymbol(atom); - int token; + MacroSymbol* macro = macroAtom == 0 ? nullptr : lookupMacroDef(macroAtom); int depth = 0; // no recursive expansions - if (sym && sym->mac.busy) + if (macro != nullptr && macro->busy) return 0; // not expanding undefined macros - if ((! sym || sym->mac.undef) && ! expandUndef) + if ((macro == nullptr || macro->undef) && ! expandUndef) return 0; // 0 is the value of an undefined macro - if ((! sym || sym->mac.undef) && expandUndef) { + if ((macro == nullptr || macro->undef) && expandUndef) { pushInput(new tZeroInput(this)); return -1; } @@ -1062,49 +1172,49 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool tMacroInput *in = new tMacroInput(this); TSourceLoc loc = ppToken->loc; // in case we go to the next line before discovering the error - in->mac = &sym->mac; - if (sym->mac.args) { - token = scanToken(ppToken); + in->mac = macro; + if (macro->args.size() > 0 || macro->emptyArgs) { + int token = scanToken(ppToken); if (newLineOkay) { while (token == '\n') token = scanToken(ppToken); } if (token != '(') { - _parseContext.ppError(loc, "expected '(' following", "macro expansion", GetAtomString(atom)); UngetToken(token, ppToken); - ppToken->atom = atom; - delete in; return 0; } - in->args.resize(in->mac->argc); - for (int i = 0; i < in->mac->argc; i++) + in->args.resize(in->mac->args.size()); + for (size_t i = 0; i < in->mac->args.size(); i++) in->args[i] = new TokenStream; - int arg = 0; + in->expandedArgs.resize(in->mac->args.size()); + for (size_t i = 0; i < in->mac->args.size(); i++) + in->expandedArgs[i] = nullptr; + size_t arg = 0; bool tokenRecorded = false; do { depth = 0; while (1) { token = scanToken(ppToken); - if (token == EndOfInput) { - _parseContext.ppError(loc, "End of input in macro", "macro expansion", GetAtomString(atom)); + if (token == EndOfInput || token == tMarkerInput::marker) { + parseContext.ppError(loc, "End of input in macro", "macro expansion", atomStrings.getString(macroAtom)); delete in; return 0; } if (token == '\n') { if (! newLineOkay) { - _parseContext.ppError(loc, "End of line in macro substitution:", "macro expansion", GetAtomString(atom)); + parseContext.ppError(loc, "End of line in macro substitution:", "macro expansion", atomStrings.getString(macroAtom)); delete in; return 0; } continue; } if (token == '#') { - _parseContext.ppError(ppToken->loc, "unexpected '#'", "macro expansion", GetAtomString(atom)); + parseContext.ppError(ppToken->loc, "unexpected '#'", "macro expansion", atomStrings.getString(macroAtom)); delete in; return 0; } - if (in->mac->argc == 0 && token != ')') + if (in->mac->args.size() == 0 && token != ')') break; if (depth == 0 && (token == ',' || token == ')')) break; @@ -1112,20 +1222,20 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool depth++; if (token == ')') depth--; - RecordToken(in->args[arg], token, ppToken); + in->args[arg]->putToken(token, ppToken); tokenRecorded = true; } if (token == ')') { - if (in->mac->argc == 1 && tokenRecorded == 0) + if (in->mac->args.size() == 1 && tokenRecorded == 0) break; arg++; break; } arg++; - } while (arg < in->mac->argc); + } while (arg < in->mac->args.size()); - if (arg < in->mac->argc) - _parseContext.ppError(loc, "Too few args in Macro", "macro expansion", GetAtomString(atom)); + if (arg < in->mac->args.size()) + parseContext.ppError(loc, "Too few args in Macro", "macro expansion", atomStrings.getString(macroAtom)); else if (token != ')') { depth=0; while (token != EndOfInput && (depth > 0 || token != ')')) { @@ -1137,19 +1247,22 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool } if (token == EndOfInput) { - _parseContext.ppError(loc, "End of input in macro", "macro expansion", GetAtomString(atom)); + parseContext.ppError(loc, "End of input in macro", "macro expansion", atomStrings.getString(macroAtom)); delete in; return 0; } - _parseContext.ppError(loc, "Too many args in macro", "macro expansion", GetAtomString(atom)); + parseContext.ppError(loc, "Too many args in macro", "macro expansion", atomStrings.getString(macroAtom)); } - for (int i = 0; i < in->mac->argc; i++) - in->args[i] = PrescanMacroArg(in->args[i], ppToken, newLineOkay); + + // We need both expanded and non-expanded forms of the argument, for whether or + // not token pasting will be applied later when the argument is consumed next to ##. + for (size_t i = 0; i < in->mac->args.size(); i++) + in->expandedArgs[i] = PrescanMacroArg(*in->args[i], ppToken, newLineOkay); } pushInput(in); - sym->mac.busy = 1; - RewindTokenStream(sym->mac.body); + macro->busy = 1; + macro->body.reset(); return 1; } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp index 2b21193107..06c2333ef1 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. -//All rights reserved. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// 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: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +57,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -76,11 +76,9 @@ TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ -// -// atom.c -// - +#ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS +#endif #include #include @@ -98,11 +96,12 @@ const struct { const char* str; } tokens[] = { - { PpAtomAdd, "+=" }, - { PpAtomSub, "-=" }, - { PpAtomMul, "*=" }, - { PpAtomDiv, "/=" }, - { PpAtomMod, "%=" }, + { PPAtomAddAssign, "+=" }, + { PPAtomSubAssign, "-=" }, + { PPAtomMulAssign, "*=" }, + { PPAtomDivAssign, "/=" }, + { PPAtomModAssign, "%=" }, + { PpAtomRight, ">>" }, { PpAtomLeft, "<<" }, { PpAtomAnd, "&&" }, @@ -123,8 +122,9 @@ const struct { { PpAtomDecrement, "--" }, { PpAtomIncrement, "++" }, + { PpAtomColonColon, "::" }, + { PpAtomDefine, "define" }, - { PpAtomDefined, "defined" }, { PpAtomUndef, "undef" }, { PpAtomIf, "if" }, { PpAtomElif, "elif" }, @@ -153,48 +153,13 @@ const struct { namespace glslang { -// -// Map a new or existing string to an atom, inventing a new atom if necessary. -// -int TPpContext::LookUpAddString(const char* s) -{ - auto it = atomMap.find(s); - if (it == atomMap.end()) { - AddAtomFixed(s, nextAtom); - return nextAtom++; - } else - return it->second; -} - -// -// Map an already created atom to its string. -// -const char* TPpContext::GetAtomString(int atom) -{ - if ((size_t)atom >= stringMap.size()) - return ""; - - const TString* atomString = stringMap[atom]; - - return atomString ? atomString->c_str() : ""; -} - -// -// Add forced mapping of string to atom. -// -void TPpContext::AddAtomFixed(const char* s, int atom) -{ - auto it = atomMap.insert(std::pair(s, atom)).first; - if (stringMap.size() < (size_t)atom + 1) - stringMap.resize(atom + 100, 0); - stringMap[atom] = &it->first; -} - // // Initialize the atom table. // -void TPpContext::InitAtomTable() +TStringAtomMap::TStringAtomMap() { + badToken.assign(""); + // Add single character tokens to the atom table: const char* s = "~!%^&*()-+=|,.<>/?;:[]{}#\\"; char t[2]; @@ -202,13 +167,13 @@ void TPpContext::InitAtomTable() t[1] = '\0'; while (*s) { t[0] = *s; - AddAtomFixed(t, s[0]); + addAtomFixed(t, s[0]); s++; } // Add multiple character scanner tokens : for (size_t ii = 0; ii < sizeof(tokens)/sizeof(tokens[0]); ii++) - AddAtomFixed(tokens[ii].str, tokens[ii].val); + addAtomFixed(tokens[ii].str, tokens[ii].val); nextAtom = PpAtomLast; } diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp old mode 100644 new mode 100755 index c0bbda814c..c89b37688a --- a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. -//All rights reserved. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// 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: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +57,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -77,30 +77,27 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ #include +#include #include "PpContext.h" namespace glslang { -TPpContext::TPpContext(TParseContextBase& pc, const std::string& rootFileName, TShader::Includer& inclr) : - preamble(0), strings(0), _parseContext(pc), includer(inclr), inComment(false), +TPpContext::TPpContext(TParseContextBase& pc, const std::string& rootFileName, TShader::Includer& inclr) : + preamble(0), strings(0), previous_token('\n'), parseContext(pc), includer(inclr), inComment(false), rootFileName(rootFileName), currentSourceFile(rootFileName) { - InitAtomTable(); - InitScanner(); - ifdepth = 0; for (elsetracker = 0; elsetracker < maxIfNesting; elsetracker++) elseSeen[elsetracker] = false; elsetracker = 0; + + strtodStream.imbue(std::locale::classic()); } TPpContext::~TPpContext() { - for (TSymbolMap::iterator it = symbols.begin(); it != symbols.end(); ++it) - delete it->second->mac.body; - mem_FreePool(pool); delete [] preamble; // free up the inputStack diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.h b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.h old mode 100644 new mode 100755 index dcd858efab..b3a39c5cbc --- a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2013 LunarG, Inc. -//All rights reserved. +// 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -80,6 +80,7 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include +#include #include "../ParseHelper.h" @@ -92,28 +93,92 @@ namespace glslang { class TPpToken { public: - TPpToken() : token(0), space(false), ival(0), dval(0.0), atom(0) + TPpToken() { clear(); } + void clear() { + space = false; + i64val = 0; loc.init(); name[0] = 0; } + // Used for comparing macro definitions, so checks what is relevant for that. bool operator==(const TPpToken& right) { - return token == right.token && atom == right.atom && - ival == right.ival && dval == right.dval && - strcmp(name, right.name) == 0; + return space == right.space && + ival == right.ival && dval == right.dval && i64val == right.i64val && + strncmp(name, right.name, MaxTokenLength) == 0; } bool operator!=(const TPpToken& right) { return ! operator==(right); } TSourceLoc loc; - int token; - bool space; // true if a space (for white space or a removed comment) should also be recognized, in front of the token returned - int ival; - double dval; - long long i64val; - int atom; - char name[MaxTokenLength + 1]; + // True if a space (for white space or a removed comment) should also be + // recognized, in front of the token returned: + bool space; + // Numeric value of the token: + union { + int ival; + double dval; + long long i64val; + }; + // Text string of the token: + char name[MaxTokenLength + 1]; +}; + +class TStringAtomMap { +// +// Implementation is in PpAtom.cpp +// +// Maintain a bi-directional mapping between relevant preprocessor strings and +// "atoms" which a unique integers (small, contiguous, not hash-like) per string. +// +public: + TStringAtomMap(); + + // Map string -> atom. + // Return 0 if no existing string. + int getAtom(const char* s) const + { + auto it = atomMap.find(s); + return it == atomMap.end() ? 0 : it->second; + } + + // Map a new or existing string -> atom, inventing a new atom if necessary. + int getAddAtom(const char* s) + { + int atom = getAtom(s); + if (atom == 0) { + atom = nextAtom++; + addAtomFixed(s, atom); + } + return atom; + } + + // Map atom -> string. + const char* getString(int atom) const { return stringMap[atom]->c_str(); } + +protected: + TStringAtomMap(TStringAtomMap&); + TStringAtomMap& operator=(TStringAtomMap&); + + TUnorderedMap atomMap; + TVector stringMap; // these point into the TString in atomMap + int nextAtom; + + // Bad source characters can lead to bad atoms, so gracefully handle those by + // pre-filling the table with them (to avoid if tests later). + TString badToken; + + // Add bi-directional mappings: + // - string -> atom + // - atom -> string + void addAtomFixed(const char* s, int atom) + { + auto it = atomMap.insert(std::pair(s, atom)).first; + if (stringMap.size() < (size_t)atom + 1) + stringMap.resize(atom + 100, &badToken); + stringMap[atom] = &it->first; + } }; class TInputScanner; @@ -128,7 +193,8 @@ public: void setPreamble(const char* preamble, size_t length); - const char* tokenize(TPpToken* ppToken); + int tokenize(TPpToken& ppToken); + int tokenPaste(int token, TPpToken&); class tInput { public: @@ -138,6 +204,9 @@ public: virtual int scan(TPpToken*) = 0; virtual int getch() = 0; virtual void ungetch() = 0; + virtual bool peekPasting() { return false; } // true when about to see ## + virtual bool endOfReplacementList() { return false; } // true when at the end of a macro replacement list (RHS of #define) + virtual bool isMacroInput() { return false; } // Will be called when we start reading tokens from this instance virtual void notifyActivated() {} @@ -162,50 +231,57 @@ public: inputStack.pop_back(); } - struct TokenStream { + // + // From PpTokens.cpp + // + + class TokenStream { + public: TokenStream() : current(0) { } + + void putToken(int token, TPpToken* ppToken); + int getToken(TParseContextBase&, TPpToken*); + bool atEnd() { return current >= data.size(); } + bool peekTokenizedPasting(bool lastTokenPastes); + bool peekUntokenizedPasting(); + void reset() { current = 0; } + + protected: + void putSubtoken(char); + int getSubtoken(); + void ungetSubtoken(); + TVector data; size_t current; }; - struct MemoryPool { - struct chunk *next; - uintptr_t free, end; - size_t chunksize; - uintptr_t alignmask; - }; - // // From Pp.cpp // struct MacroSymbol { - MacroSymbol() : argc(0), args(0), body(0), busy(0), undef(0) { } - int argc; - int *args; - TokenStream *body; - unsigned busy:1; - unsigned undef:1; + MacroSymbol() : emptyArgs(0), busy(0), undef(0) { } + TVector args; + TokenStream body; + unsigned emptyArgs : 1; + unsigned busy : 1; + unsigned undef : 1; }; - struct Symbol { - int atom; - MacroSymbol mac; - }; - - struct SymbolList { - struct SymbolList_Rec *next; - Symbol *symb; - }; - - MemoryPool *pool; - typedef TMap TSymbolMap; - TSymbolMap symbols; // this has light use... just defined macros + typedef TMap TSymbolMap; + TSymbolMap macroDefs; // map atoms to macro definitions + MacroSymbol* lookupMacroDef(int atom) + { + auto existingMacroIt = macroDefs.find(atom); + return (existingMacroIt == macroDefs.end()) ? nullptr : &(existingMacroIt->second); + } + void addMacroDef(int atom, MacroSymbol& macroDef) { macroDefs[atom] = macroDef; } protected: TPpContext(TPpContext&); TPpContext& operator=(TPpContext&); + TStringAtomMap atomStrings; char* preamble; // string to parse, all before line 1 of string 0, it is 0 if no preamble int preambleLength; char** strings; // official strings of shader, starting a string 0 line 1 @@ -215,7 +291,7 @@ protected: // Scanner data: int previous_token; - TParseContextBase& _parseContext; + TParseContextBase& parseContext; // Get the next token from *stack* of input sources, popping input sources // that are out of tokens, down until an input source is found that has a token. @@ -235,9 +311,11 @@ protected: } int getChar() { return inputStack.back()->getch(); } void ungetChar() { inputStack.back()->ungetch(); } + bool peekPasting() { return !inputStack.empty() && inputStack.back()->peekPasting(); } + bool endOfReplacementList() { return inputStack.empty() || inputStack.back()->endOfReplacementList(); } + bool isMacroInput() { return inputStack.size() > 0 && inputStack.back()->isMacroInput(); } - static const int maxMacroArgs = 64; - static const int maxIfNesting = 64; + static const int maxIfNesting = 65; int ifdepth; // current #if-#else-#endif nesting in the cpp.c file (pre-processor) bool elseSeen[maxIfNesting]; // Keep a track of whether an else has been seen at a particular depth @@ -245,24 +323,35 @@ protected: class tMacroInput : public tInput { public: - tMacroInput(TPpContext* pp) : tInput(pp) { } + tMacroInput(TPpContext* pp) : tInput(pp), prepaste(false), postpaste(false) { } virtual ~tMacroInput() { for (size_t i = 0; i < args.size(); ++i) delete args[i]; + for (size_t i = 0; i < expandedArgs.size(); ++i) + delete expandedArgs[i]; } - virtual int scan(TPpToken*); - virtual int getch() { assert(0); return EndOfInput; } - virtual void ungetch() { assert(0); } + virtual int scan(TPpToken*) override; + virtual int getch() override { assert(0); return EndOfInput; } + virtual void ungetch() override { assert(0); } + bool peekPasting() override { return prepaste; } + bool endOfReplacementList() override { return mac->body.atEnd(); } + bool isMacroInput() override { return true; } + MacroSymbol *mac; TVector args; + TVector expandedArgs; + + protected: + bool prepaste; // true if we are just before ## + bool postpaste; // true if we are right after ## }; class tMarkerInput : public tInput { public: tMarkerInput(TPpContext* pp) : tInput(pp) { } - virtual int scan(TPpToken*) + virtual int scan(TPpToken*) override { if (done) return EndOfInput; @@ -270,17 +359,17 @@ protected: return marker; } - virtual int getch() { assert(0); return EndOfInput; } - virtual void ungetch() { assert(0); } + virtual int getch() override { assert(0); return EndOfInput; } + virtual void ungetch() override { assert(0); } static const int marker = -3; }; class tZeroInput : public tInput { public: tZeroInput(TPpContext* pp) : tInput(pp) { } - virtual int scan(TPpToken*); - virtual int getch() { assert(0); return EndOfInput; } - virtual void ungetch() { assert(0); } + virtual int scan(TPpToken*) override; + virtual int getch() override { assert(0); return EndOfInput; } + virtual void ungetch() override { assert(0); } }; std::vector inputStack; @@ -294,7 +383,6 @@ protected: // Used to obtain #include content. TShader::Includer& includer; - int InitCPP(); int CPPdefine(TPpToken * ppToken); int CPPundef(TPpToken * ppToken); int CPPelse(int matchelse, TPpToken * ppToken); @@ -310,44 +398,34 @@ protected: int CPPversion(TPpToken * ppToken); int CPPextension(TPpToken * ppToken); int readCPPline(TPpToken * ppToken); - TokenStream* PrescanMacroArg(TokenStream *a, TPpToken * ppToken, bool newLineOkay); - int MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool newLineOkay); - - // - // from PpSymbols.cpp - // - Symbol *NewSymbol(int name); - Symbol *AddSymbol(int atom); - Symbol *LookUpSymbol(int atom); + int scanHeaderName(TPpToken* ppToken, char delimit); + TokenStream* PrescanMacroArg(TokenStream&, TPpToken*, bool newLineOkay); + int MacroExpand(TPpToken* ppToken, bool expandUndef, bool newLineOkay); // // From PpTokens.cpp // - void lAddByte(TokenStream *fTok, unsigned char fVal); - int lReadByte(TokenStream *pTok); - void lUnreadByte(TokenStream *pTok); - void RecordToken(TokenStream* pTok, int token, TPpToken* ppToken); - void RewindTokenStream(TokenStream *pTok); - int ReadToken(TokenStream* pTok, TPpToken* ppToken); - void pushTokenStreamInput(TokenStream *ts); - void UngetToken(int token, TPpToken* ppToken); + void pushTokenStreamInput(TokenStream&, bool pasting = false); + void UngetToken(int token, TPpToken*); class tTokenInput : public tInput { public: - tTokenInput(TPpContext* pp, TokenStream* t) : tInput(pp), tokens(t) { } - virtual int scan(TPpToken *); - virtual int getch() { assert(0); return EndOfInput; } - virtual void ungetch() { assert(0); } + tTokenInput(TPpContext* pp, TokenStream* t, bool prepasting) : tInput(pp), tokens(t), lastTokenPastes(prepasting) { } + virtual int scan(TPpToken *ppToken) override { return tokens->getToken(pp->parseContext, ppToken); } + virtual int getch() override { assert(0); return EndOfInput; } + virtual void ungetch() override { assert(0); } + virtual bool peekPasting() override { return tokens->peekTokenizedPasting(lastTokenPastes); } protected: - TokenStream *tokens; + TokenStream* tokens; + bool lastTokenPastes; // true if the last token in the input is to be pasted, rather than consumed as a token }; class tUngotTokenInput : public tInput { public: tUngotTokenInput(TPpContext* pp, int t, TPpToken* p) : tInput(pp), token(t), lval(*p) { } - virtual int scan(TPpToken *); - virtual int getch() { assert(0); return EndOfInput; } - virtual void ungetch() { assert(0); } + virtual int scan(TPpToken *) override; + virtual int getch() override { assert(0); return EndOfInput; } + virtual void ungetch() override { assert(0); } protected: int token; TPpToken lval; @@ -359,12 +437,12 @@ protected: class tStringInput : public tInput { public: tStringInput(TPpContext* pp, TInputScanner& i) : tInput(pp), input(&i) { } - virtual int scan(TPpToken*); + virtual int scan(TPpToken*) override; // Scanner used to get source stream characters. // - Escaped newlines are handled here, invisibly to the caller. // - All forms of newline are handled, and turned into just a '\n'. - int getch() + int getch() override { int ch = input->get(); @@ -372,7 +450,7 @@ protected: // Move past escaped newlines, as many as sequentially exist do { if (input->peek() == '\r' || input->peek() == '\n') { - bool allowed = pp->_parseContext.lineContinuationCheck(input->getSourceLoc(), pp->inComment); + bool allowed = pp->parseContext.lineContinuationCheck(input->getSourceLoc(), pp->inComment); if (! allowed && pp->inComment) return '\\'; @@ -402,7 +480,7 @@ protected: // handled here, invisibly to the caller, meaning have to undo exactly // what getch() above does (e.g., don't leave things in the middle of a // sequence of escaped newlines). - void ungetch() + void ungetch() override { input->unget(); @@ -446,18 +524,18 @@ protected: TPpContext* pp) : tInput(pp), prologue_(prologue), - includedFile_(includedFile), epilogue_(epilogue), + includedFile_(includedFile), scanner(3, strings, lengths, names, 0, 0, true), prevScanner(nullptr), stringInput(pp, scanner) { strings[0] = prologue_.data(); - strings[1] = includedFile_->file_data; + strings[1] = includedFile_->headerData; strings[2] = epilogue_.data(); lengths[0] = prologue_.size(); - lengths[1] = includedFile_->file_length; + lengths[1] = includedFile_->headerLength; lengths[2] = epilogue_.size(); scanner.setLine(startLoc.line); @@ -475,14 +553,14 @@ protected: void notifyActivated() override { - prevScanner = pp->_parseContext.getScanner(); - pp->_parseContext.setScanner(&scanner); + prevScanner = pp->parseContext.getScanner(); + pp->parseContext.setScanner(&scanner); pp->push_include(includedFile_); } void notifyDeleted() override { - pp->_parseContext.setScanner(prevScanner); + pp->parseContext.setScanner(prevScanner); pp->pop_include(); } @@ -498,7 +576,7 @@ protected: // Points to the IncludeResult that this TokenizableIncludeFile represents. TShader::Includer::IncludeResult* includedFile_; - // Will point to prologue_, includedFile_->file_data and epilogue_ + // Will point to prologue_, includedFile_->headerData and epilogue_ // This is passed to scanner constructor. // These do not own the storage and it must remain valid until this // object has been destroyed. @@ -516,14 +594,14 @@ protected: tStringInput stringInput; }; - int InitScanner(); int ScanFromString(char* s); void missingEndifCheck(); int lFloatConst(int len, int ch, TPpToken* ppToken); + int characterLiteral(TPpToken* ppToken); void push_include(TShader::Includer::IncludeResult* result) { - currentSourceFile = result->file_name; + currentSourceFile = result->headerName; includeStack.push(result); } @@ -535,36 +613,16 @@ protected: if (includeStack.empty()) { currentSourceFile = rootFileName; } else { - currentSourceFile = includeStack.top()->file_name; + currentSourceFile = includeStack.top()->headerName; } } bool inComment; - - // - // From PpAtom.cpp - // - typedef TUnorderedMap TAtomMap; - typedef TVector TStringMap; - - TAtomMap atomMap; - TStringMap stringMap; + std::string rootFileName; std::stack includeStack; std::string currentSourceFile; - std::string rootFileName; - int nextAtom; - void InitAtomTable(); - void AddAtomFixed(const char* s, int atom); - int LookUpAddString(const char* s); - const char* GetAtomString(int atom); - // - // From PpMemory.cpp - // - MemoryPool *mem_CreatePool(size_t chunksize, unsigned align); - void mem_FreePool(MemoryPool*); - void *mem_Alloc(MemoryPool* p, size_t size); - int mem_AddCleanup(MemoryPool* p, void (*fn)(void *, void*), void* arg1, void* arg2); + std::istringstream strtodStream; }; } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp old mode 100644 new mode 100755 index 0113532dc4..0c620a5f5b --- a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -1,11 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. -//All rights reserved. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013 LunarG, Inc. +// Copyright (C) 2017 ARM Limited. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +58,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -75,11 +76,10 @@ NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ -// -// scanner.c -// +#ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS +#endif #include #include @@ -90,17 +90,6 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace glslang { -int TPpContext::InitScanner() -{ - // Add various atoms needed by the CPP line scanner: - if (!InitCPP()) - return 0; - - previous_token = '\n'; - - return 1; -} - /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////// Floating point constants: ///////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// @@ -113,161 +102,345 @@ int TPpContext::InitScanner() int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) { - bool HasDecimalOrExponent = false; - int declen; - int str_len; - int isDouble = 0; -#ifdef AMD_EXTENSIONS - int isFloat16 = 0; - bool enableFloat16 = parseContext.version >= 450 && parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float); -#endif + const auto saveName = [&](int ch) { + if (len <= MaxTokenLength) + ppToken->name[len++] = static_cast(ch); + }; - declen = 0; + // find the range of non-zero digits before the decimal point + int startNonZero = 0; + while (startNonZero < len && ppToken->name[startNonZero] == '0') + ++startNonZero; + int endNonZero = len; + while (endNonZero > startNonZero && ppToken->name[endNonZero-1] == '0') + --endNonZero; + int numWholeNumberDigits = endNonZero - startNonZero; - str_len=len; - char* str = ppToken->name; + // accumulate the range's value + bool fastPath = numWholeNumberDigits <= 15; // when the number gets too complex, set to false + unsigned long long wholeNumber = 0; + if (fastPath) { + for (int i = startNonZero; i < endNonZero; ++i) + wholeNumber = wholeNumber * 10 + (ppToken->name[i] - '0'); + } + int decimalShift = len - endNonZero; + + // Decimal point: + bool hasDecimalOrExponent = false; if (ch == '.') { - HasDecimalOrExponent = true; - str[len++] = (char)ch; + hasDecimalOrExponent = true; + saveName(ch); ch = getChar(); - while (ch >= '0' && ch <= '9') { - if (len < MaxTokenLength) { - declen++; - if (len > 0 || ch != '0') { - str[len] = (char)ch; - len++; - str_len++; + int firstDecimal = len; + + // 1.#INF or -1.#INF + if (ch == '#' && (ifdepth > 0 || parseContext.intermediate.getSource() == EShSourceHlsl)) { + if ((len < 2) || + (len == 2 && ppToken->name[0] != '1') || + (len == 3 && ppToken->name[1] != '1' && !(ppToken->name[0] == '-' || ppToken->name[0] == '+')) || + (len > 3)) + parseContext.ppError(ppToken->loc, "unexpected use of", "#", ""); + else { + // we have 1.# or -1.# or +1.#, check for 'INF' + if ((ch = getChar()) != 'I' || + (ch = getChar()) != 'N' || + (ch = getChar()) != 'F') + parseContext.ppError(ppToken->loc, "expected 'INF'", "#", ""); + else { + // we have [+-].#INF, and we are targeting IEEE 754, so wrap it up: + saveName('I'); + saveName('N'); + saveName('F'); + ppToken->name[len] = '\0'; + if (ppToken->name[0] == '-') + ppToken->i64val = 0xfff0000000000000; // -Infinity + else + ppToken->i64val = 0x7ff0000000000000; // +Infinity + return PpAtomConstFloat; } - ch = getChar(); - } else { - _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); - len = 1; - str_len = 1; } } + + // Consume leading-zero digits after the decimal point + while (ch == '0') { + saveName(ch); + ch = getChar(); + } + int startNonZeroDecimal = len; + int endNonZeroDecimal = len; + + // Consume remaining digits, up to the exponent + while (ch >= '0' && ch <= '9') { + saveName(ch); + if (ch != '0') + endNonZeroDecimal = len; + ch = getChar(); + } + + // Compute accumulation up to the last non-zero digit + if (endNonZeroDecimal > startNonZeroDecimal) { + numWholeNumberDigits += endNonZeroDecimal - endNonZero - 1; // don't include the "." + if (numWholeNumberDigits > 15) + fastPath = false; + if (fastPath) { + for (int i = endNonZero; i < endNonZeroDecimal; ++i) { + if (ppToken->name[i] != '.') + wholeNumber = wholeNumber * 10 + (ppToken->name[i] - '0'); + } + } + decimalShift = firstDecimal - endNonZeroDecimal; + } } // Exponent: - - if (ch == 'e' || ch == 'E') { - HasDecimalOrExponent = true; - if (len >= MaxTokenLength) { - _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); - len = 1; - str_len = 1; - } else { - str[len++] = (char)ch; + bool negativeExponent = false; + double exponentValue = 0.0; + int exponent = 0; + { + if (ch == 'e' || ch == 'E') { + hasDecimalOrExponent = true; + saveName(ch); ch = getChar(); - if (ch == '+') { - str[len++] = (char)ch; - ch = getChar(); - } else if (ch == '-') { - str[len++] = (char)ch; + if (ch == '+' || ch == '-') { + negativeExponent = ch == '-'; + saveName(ch); ch = getChar(); } if (ch >= '0' && ch <= '9') { while (ch >= '0' && ch <= '9') { - if (len < MaxTokenLength) { - str[len++] = (char)ch; - ch = getChar(); - } else { - _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); - len = 1; - str_len = 1; - } + exponent = exponent * 10 + (ch - '0'); + saveName(ch); + ch = getChar(); } } else { - _parseContext.ppError(ppToken->loc, "bad character in float exponent", "", ""); + parseContext.ppError(ppToken->loc, "bad character in float exponent", "", ""); + } + } + + // Compensate for location of decimal + if (negativeExponent) + exponent -= decimalShift; + else { + exponent += decimalShift; + if (exponent < 0) { + negativeExponent = true; + exponent = -exponent; + } + } + if (exponent > 22) + fastPath = false; + + if (fastPath) { + // Compute the floating-point value of the exponent + exponentValue = 1.0; + if (exponent > 0) { + double expFactor = 10; + while (exponent > 0) { + if (exponent & 0x1) + exponentValue *= expFactor; + expFactor *= expFactor; + exponent >>= 1; + } } } } - if (len == 0) { - ppToken->dval = 0.0; - strcpy(str, "0.0"); - } else { - if (ch == 'l' || ch == 'L') { - _parseContext.doubleCheck(ppToken->loc, "double floating-point suffix"); - if (! HasDecimalOrExponent) - _parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + // Suffix: + bool isDouble = false; + bool isFloat16 = false; + if (ch == 'l' || ch == 'L') { + if (ifdepth == 0 && parseContext.intermediate.getSource() == EShSourceGlsl) + parseContext.doubleCheck(ppToken->loc, "double floating-point suffix"); + if (ifdepth == 0 && !hasDecimalOrExponent) + parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + if (parseContext.intermediate.getSource() == EShSourceGlsl) { int ch2 = getChar(); if (ch2 != 'f' && ch2 != 'F') { ungetChar(); ungetChar(); } else { - if (len < MaxTokenLength) { - str[len++] = (char)ch; - str[len++] = (char)ch2; - isDouble = 1; - } else { - _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); - len = 1,str_len=1; - } + saveName(ch); + saveName(ch2); + isDouble = true; } -#ifdef AMD_EXTENSIONS - } else if (enableFloat16 && (ch == 'h' || ch == 'H')) { + } else if (parseContext.intermediate.getSource() == EShSourceHlsl) { + saveName(ch); + isDouble = true; + } + } else if (ch == 'h' || ch == 'H') { + if (ifdepth == 0 && parseContext.intermediate.getSource() == EShSourceGlsl) parseContext.float16Check(ppToken->loc, "half floating-point suffix"); - if (!HasDecimalOrExponent) - parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + if (ifdepth == 0 && !hasDecimalOrExponent) + parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + if (parseContext.intermediate.getSource() == EShSourceGlsl) { int ch2 = getChar(); if (ch2 != 'f' && ch2 != 'F') { ungetChar(); ungetChar(); + } else { + saveName(ch); + saveName(ch2); + isFloat16 = true; } - else { - if (len < MaxTokenLength) { - str[len++] = (char)ch; - str[len++] = (char)ch2; - isFloat16 = 1; - } - else { - parseContext.ppError(ppToken->loc, "float literal too long", "", ""); - len = 1, str_len = 1; - } - } -#endif - } else if (ch == 'f' || ch == 'F') { - _parseContext.profileRequires(ppToken->loc, EEsProfile, 300, nullptr, "floating-point suffix"); - if (!_parseContext.relaxedErrors()) - _parseContext.profileRequires(ppToken->loc, ~EEsProfile, 120, nullptr, "floating-point suffix"); - if (! HasDecimalOrExponent) - _parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); - if (len < MaxTokenLength) - str[len++] = (char)ch; - else { - _parseContext.ppError(ppToken->loc, "float literal too long", "", ""); - len = 1,str_len=1; - } - } else - ungetChar(); + } else if (parseContext.intermediate.getSource() == EShSourceHlsl) { + saveName(ch); + isFloat16 = true; + } + } else if (ch == 'f' || ch == 'F') { + if (ifdepth == 0) + parseContext.profileRequires(ppToken->loc, EEsProfile, 300, nullptr, "floating-point suffix"); + if (ifdepth == 0 && !parseContext.relaxedErrors()) + parseContext.profileRequires(ppToken->loc, ~EEsProfile, 120, nullptr, "floating-point suffix"); + if (ifdepth == 0 && !hasDecimalOrExponent) + parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + saveName(ch); + } else + ungetChar(); - str[len]='\0'; + // Patch up the name and length for overflow - ppToken->dval = strtod(str, nullptr); + if (len > MaxTokenLength) { + len = MaxTokenLength; + parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + } + ppToken->name[len] = '\0'; + + // Compute the numerical value + if (fastPath) { + // compute the floating-point value of the exponent + if (exponentValue == 0.0) + ppToken->dval = (double)wholeNumber; + else if (negativeExponent) + ppToken->dval = (double)wholeNumber / exponentValue; + else + ppToken->dval = (double)wholeNumber * exponentValue; + } else { + // slow path + strtodStream.clear(); + strtodStream.str(ppToken->name); + strtodStream >> ppToken->dval; + // Assume failure combined with a large exponent was overflow, in + // an attempt to set INF. Otherwise, assume underflow, and set 0.0. + if (strtodStream.fail()) { + if (!negativeExponent && exponent + numWholeNumberDigits > 300) + ppToken->i64val = 0x7ff0000000000000; // +Infinity + else + ppToken->dval = 0.0; + } } + // Return the right token type if (isDouble) return PpAtomConstDouble; -#ifdef AMD_EXTENSIONS else if (isFloat16) return PpAtomConstFloat16; -#endif else return PpAtomConstFloat; } +// Recognize a character literal. +// +// The first ' has already been accepted, read the rest, through the closing '. +// +// Always returns PpAtomConstInt. +// +int TPpContext::characterLiteral(TPpToken* ppToken) +{ + ppToken->name[0] = 0; + ppToken->ival = 0; + + if (parseContext.intermediate.getSource() != EShSourceHlsl) { + // illegal, except in macro definition, for which case we report the character + return '\''; + } + + int ch = getChar(); + switch (ch) { + case '\'': + // As empty sequence: '' + parseContext.ppError(ppToken->loc, "unexpected", "\'", ""); + return PpAtomConstInt; + case '\\': + // As escape sequence: '\XXX' + switch (ch = getChar()) { + case 'a': + ppToken->ival = 7; + break; + case 'b': + ppToken->ival = 8; + break; + case 't': + ppToken->ival = 9; + break; + case 'n': + ppToken->ival = 10; + break; + case 'v': + ppToken->ival = 11; + break; + case 'f': + ppToken->ival = 12; + break; + case 'r': + ppToken->ival = 13; + break; + case 'x': + case '0': + parseContext.ppError(ppToken->loc, "octal and hex sequences not supported", "\\", ""); + break; + default: + // This catches '\'', '\"', '\?', etc. + // Also, things like '\C' mean the same thing as 'C' + // (after the above cases are filtered out). + ppToken->ival = ch; + break; + } + break; + default: + ppToken->ival = ch; + break; + } + ppToken->name[0] = (char)ppToken->ival; + ppToken->name[1] = '\0'; + ch = getChar(); + if (ch != '\'') { + parseContext.ppError(ppToken->loc, "expected", "\'", ""); + // Look ahead for a closing ' + do { + ch = getChar(); + } while (ch != '\'' && ch != EndOfInput && ch != '\n'); + } + + return PpAtomConstInt; +} + // // Scanner used to tokenize source stream. // int TPpContext::tStringInput::scan(TPpToken* ppToken) { - char* tokenText = ppToken->name; int AlreadyComplained = 0; int len = 0; int ch = 0; int ii = 0; unsigned long long ival = 0; - bool enableInt64 = pp->_parseContext.version >= 450 && pp->_parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64); + const auto floatingPointChar = [&](int ch) { return ch == '.' || ch == 'e' || ch == 'E' || + ch == 'f' || ch == 'F' || + ch == 'h' || ch == 'H'; }; + + static const char* const Int64_Extensions[] = { + E_GL_ARB_gpu_shader_int64, + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int64 }; + static const int Num_Int64_Extensions = sizeof(Int64_Extensions) / sizeof(Int64_Extensions[0]); + + static const char* const Int16_Extensions[] = { +#ifdef AMD_EXTENSIONS + E_GL_AMD_gpu_shader_int16, +#endif + E_GL_KHX_shader_explicit_arithmetic_types, + E_GL_KHX_shader_explicit_arithmetic_types_int16 }; + static const int Num_Int16_Extensions = sizeof(Int16_Extensions) / sizeof(Int16_Extensions[0]); ppToken->ival = 0; ppToken->i64val = 0; @@ -279,11 +452,13 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) ch = getch(); } - ppToken->loc = pp->_parseContext.getCurrentLoc(); + ppToken->loc = pp->parseContext.getCurrentLoc(); len = 0; switch (ch) { default: // Single character token, including EndOfInput, '#' and '\' (escaped newlines are handled at a lower level, so this is just a '\' token) + if (ch > PpAtomMaxSingle) + ch = PpAtomBadToken; return ch; case 'A': case 'B': case 'C': case 'D': case 'E': @@ -300,11 +475,11 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) case 'z': do { if (len < MaxTokenLength) { - tokenText[len++] = (char)ch; + ppToken->name[len++] = (char)ch; ch = getch(); } else { if (! AlreadyComplained) { - pp->_parseContext.ppError(ppToken->loc, "name too long", "", ""); + pp->parseContext.ppError(ppToken->loc, "name too long", "", ""); AlreadyComplained = 1; } ch = getch(); @@ -318,9 +493,8 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) if (len == 0) continue; - tokenText[len] = '\0'; + ppToken->name[len] = '\0'; ungetch(); - ppToken->atom = pp->LookUpAddString(tokenText); return PpAtomIdentifier; case '0': ppToken->name[len++] = (char)ch; @@ -330,6 +504,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) bool isUnsigned = false; bool isInt64 = false; + bool isInt16 = false; ppToken->name[len++] = (char)ch; ch = getch(); if ((ch >= '0' && ch <= '9') || @@ -338,7 +513,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) ival = 0; do { - if (ival <= 0x0fffffff || (enableInt64 && ival <= 0x0fffffffffffffffull)) { + if (len < MaxTokenLength && ival <= 0x0fffffffffffffffull) { ppToken->name[len++] = (char)ch; if (ch >= '0' && ch <= '9') { ii = ch - '0'; @@ -347,11 +522,14 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) } else if (ch >= 'a' && ch <= 'f') { ii = ch - 'a' + 10; } else - pp->_parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); + pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); ival = (ival << 4) | ii; } else { if (! AlreadyComplained) { - pp->_parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", ""); + if(len < MaxTokenLength) + pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", ""); + else + pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too long", "", ""); AlreadyComplained = 1; } ival = 0xffffffffffffffffull; @@ -361,35 +539,69 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) (ch >= 'A' && ch <= 'F') || (ch >= 'a' && ch <= 'f')); } else { - pp->_parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); + pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); } if (ch == 'u' || ch == 'U') { if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; isUnsigned = true; - if (enableInt64) { - int nextCh = getch(); - if ((ch == 'u' && nextCh == 'l') || (ch == 'U' && nextCh == 'L')) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - } - } - else if (enableInt64 && (ch == 'l' || ch == 'L')) { + int nextCh = getch(); + if (nextCh == 'l' || nextCh == 'L') { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt64 = true; + } else + ungetch(); + +#ifdef AMD_EXTENSIONS + nextCh = getch(); + if ((nextCh == 's' || nextCh == 'S') && + pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt16 = true; + } else + ungetch(); +#endif + } else if (ch == 'l' || ch == 'L') { if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; isInt64 = true; +#ifdef AMD_EXTENSIONS + } else if ((ch == 's' || ch == 'S') && + pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isInt16 = true; +#endif } else ungetch(); ppToken->name[len] = '\0'; - if (isInt64) { + if (isInt64 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (pp->ifdepth == 0) { + pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, + "64-bit hexadecimal literal"); + pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, + Num_Int64_Extensions, Int64_Extensions, "64-bit hexadecimal literal"); + } ppToken->i64val = ival; return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; + } else if (isInt16) { + if (pp->ifdepth == 0) { + if (pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, + "16-bit hexadecimal literal"); + pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, + Num_Int16_Extensions, Int16_Extensions, "16-bit hexadecimal literal"); + } + } + ppToken->ival = (int)ival; + return isUnsigned ? PpAtomConstUint16 : PpAtomConstInt16; } else { + if (ival > 0xffffffffu && !AlreadyComplained) + pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", ""); ppToken->ival = (int)ival; return isUnsigned ? PpAtomConstUint : PpAtomConstInt; } @@ -398,6 +610,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) bool isUnsigned = false; bool isInt64 = false; + bool isInt16 = false; bool octalOverflow = false; bool nonOctal = false; ival = 0; @@ -407,10 +620,10 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; else if (! AlreadyComplained) { - pp->_parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); + pp->parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); AlreadyComplained = 1; } - if (ival <= 0x1fffffff || (enableInt64 && ival <= 0x1fffffffffffffffull)) { + if (ival <= 0x1fffffffffffffffull) { ii = ch - '0'; ival = (ival << 3) | ii; } else @@ -425,48 +638,83 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; else if (! AlreadyComplained) { - pp->_parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); + pp->parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); AlreadyComplained = 1; } ch = getch(); } while (ch >= '0' && ch <= '9'); } - if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F') + if (floatingPointChar(ch)) return pp->lFloatConst(len, ch, ppToken); // wasn't a float, so must be octal... if (nonOctal) - pp->_parseContext.ppError(ppToken->loc, "octal literal digit too large", "", ""); + pp->parseContext.ppError(ppToken->loc, "octal literal digit too large", "", ""); if (ch == 'u' || ch == 'U') { if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; isUnsigned = true; - if (enableInt64) { - int nextCh = getch(); - if ((ch == 'u' && nextCh == 'l') || (ch == 'U' && nextCh == 'L')) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - } - } - else if (enableInt64 && (ch == 'l' || ch == 'L')) { + int nextCh = getch(); + if (nextCh == 'l' || nextCh == 'L') { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt64 = true; + } else + ungetch(); + +#ifdef AMD_EXTENSIONS + nextCh = getch(); + if ((nextCh == 's' || nextCh == 'S') && + pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt16 = true; + } else + ungetch(); +#endif + } else if (ch == 'l' || ch == 'L') { if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; isInt64 = true; +#ifdef AMD_EXTENSIONS + } else if ((ch == 's' || ch == 'S') && + pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isInt16 = true; +#endif } else ungetch(); ppToken->name[len] = '\0'; - if (octalOverflow) - pp->_parseContext.ppError(ppToken->loc, "octal literal too big", "", ""); + if (!isInt64 && ival > 0xffffffffu) + octalOverflow = true; - if (isInt64) { + if (octalOverflow) + pp->parseContext.ppError(ppToken->loc, "octal literal too big", "", ""); + + if (isInt64 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (pp->ifdepth == 0) { + pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, + "64-bit octal literal"); + pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, + Num_Int64_Extensions, Int64_Extensions, "64-bit octal literal"); + } ppToken->i64val = ival; return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; + } else if (isInt16) { + if (pp->ifdepth == 0) { + if (pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, + "16-bit octal literal"); + pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, + Num_Int16_Extensions, Int16_Extensions, "16-bit octal literal"); + } + } + ppToken->ival = (int)ival; + return isUnsigned ? PpAtomConstUint16 : PpAtomConstInt16; } else { ppToken->ival = (int)ival; return isUnsigned ? PpAtomConstUint : PpAtomConstInt; @@ -481,36 +729,53 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; else if (! AlreadyComplained) { - pp->_parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); + pp->parseContext.ppError(ppToken->loc, "numeric literal too long", "", ""); AlreadyComplained = 1; } ch = getch(); } while (ch >= '0' && ch <= '9'); - if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F') { + if (floatingPointChar(ch)) return pp->lFloatConst(len, ch, ppToken); - } else { + else { // Finish handling signed and unsigned integers int numericLen = len; bool isUnsigned = false; bool isInt64 = false; + bool isInt16 = false; if (ch == 'u' || ch == 'U') { if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; isUnsigned = true; - if (enableInt64) { - int nextCh = getch(); - if ((ch == 'u' && nextCh == 'l') || (ch == 'U' && nextCh == 'L')) { - if (len < MaxTokenLength) - ppToken->name[len++] = (char)nextCh; - isInt64 = true; - } else - ungetch(); - } - } else if (enableInt64 && (ch == 'l' || ch == 'L')) { + int nextCh = getch(); + if (nextCh == 'l' || nextCh == 'L') { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt64 = true; + } else + ungetch(); + +#ifdef AMD_EXTENSIONS + nextCh = getch(); + if ((nextCh == 's' || nextCh == 'S') && + pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)nextCh; + isInt16 = true; + } else + ungetch(); +#endif + } else if (ch == 'l' || ch == 'L') { if (len < MaxTokenLength) ppToken->name[len++] = (char)ch; isInt64 = true; +#ifdef AMD_EXTENSIONS + } else if ((ch == 's' || ch == 'S') && + pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (len < MaxTokenLength) + ppToken->name[len++] = (char)ch; + isInt16 = true; +#endif } else ungetch(); @@ -520,20 +785,43 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) const unsigned remainderMaxInt = 0xFFFFFFFFu - 10 * oneTenthMaxInt; const unsigned long long oneTenthMaxInt64 = 0xFFFFFFFFFFFFFFFFull / 10; const unsigned long long remainderMaxInt64 = 0xFFFFFFFFFFFFFFFFull - 10 * oneTenthMaxInt64; + const unsigned short oneTenthMaxInt16 = 0xFFFFu / 10; + const unsigned short remainderMaxInt16 = 0xFFFFu - 10 * oneTenthMaxInt16; for (int i = 0; i < numericLen; i++) { ch = ppToken->name[i] - '0'; - if ((enableInt64 == false && ((ival > oneTenthMaxInt) || (ival == oneTenthMaxInt && (unsigned)ch > remainderMaxInt))) || - (enableInt64 && ((ival > oneTenthMaxInt64) || (ival == oneTenthMaxInt64 && (unsigned long long)ch > remainderMaxInt64)))) { - pp->_parseContext.ppError(ppToken->loc, "numeric literal too big", "", ""); + bool overflow = false; + if (isInt64) + overflow = (ival > oneTenthMaxInt64 || (ival == oneTenthMaxInt64 && (unsigned long long)ch > remainderMaxInt64)); + else if (isInt16) + overflow = (ival > oneTenthMaxInt16 || (ival == oneTenthMaxInt16 && (unsigned short)ch > remainderMaxInt16)); + else + overflow = (ival > oneTenthMaxInt || (ival == oneTenthMaxInt && (unsigned)ch > remainderMaxInt)); + if (overflow) { + pp->parseContext.ppError(ppToken->loc, "numeric literal too big", "", ""); ival = 0xFFFFFFFFFFFFFFFFull; break; } else ival = ival * 10 + ch; } - if (isInt64) { + if (isInt64 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + if (pp->ifdepth == 0) { + pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, + "64-bit literal"); + pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, + Num_Int64_Extensions, Int64_Extensions, "64-bit literal"); + } ppToken->i64val = ival; return isUnsigned ? PpAtomConstUint64 : PpAtomConstInt64; + } else if (isInt16) { + if (pp->ifdepth == 0 && pp->parseContext.intermediate.getSource() == EShSourceGlsl) { + pp->parseContext.requireProfile(ppToken->loc, ~EEsProfile, + "16-bit literal"); + pp->parseContext.profileRequires(ppToken->loc, ~EEsProfile, 0, + Num_Int16_Extensions, Int16_Extensions, "16-bit literal"); + } + ppToken->ival = (int)ival; + return isUnsigned ? PpAtomConstUint16 : PpAtomConstInt16; } else { ppToken->ival = (int)ival; return isUnsigned ? PpAtomConstUint : PpAtomConstInt; @@ -545,7 +833,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) if (ch == '-') { return PpAtomDecrement; } else if (ch == '=') { - return PpAtomSub; + return PPAtomSubAssign; } else { ungetch(); return '-'; @@ -555,7 +843,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) if (ch == '+') { return PpAtomIncrement; } else if (ch == '=') { - return PpAtomAdd; + return PPAtomAddAssign; } else { ungetch(); return '+'; @@ -563,7 +851,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) case '*': ch = getch(); if (ch == '=') { - return PpAtomMul; + return PPAtomMulAssign; } else { ungetch(); return '*'; @@ -571,7 +859,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) case '%': ch = getch(); if (ch == '=') { - return PpAtomMod; + return PPAtomModAssign; } else { ungetch(); return '%'; @@ -682,14 +970,14 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) do { while (ch != '*') { if (ch == EndOfInput) { - pp->_parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); + pp->parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); return ch; } ch = getch(); } ch = getch(); if (ch == EndOfInput) { - pp->_parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); + pp->parseContext.ppError(ppToken->loc, "End of input in comment", "comment", ""); return ch; } } while (ch != '/'); @@ -697,28 +985,39 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) // loop again to get the next token... break; } else if (ch == '=') { - return PpAtomDiv; + return PPAtomDivAssign; } else { ungetch(); return '/'; } break; + case '\'': + return pp->characterLiteral(ppToken); case '"': + // TODO: If this gets enhanced to handle escape sequences, or + // anything that is different than what #include needs, then + // #include needs to use scanHeaderName() for this. ch = getch(); while (ch != '"' && ch != '\n' && ch != EndOfInput) { if (len < MaxTokenLength) { - tokenText[len] = (char)ch; + ppToken->name[len] = (char)ch; len++; ch = getch(); } else break; }; - tokenText[len] = '\0'; + ppToken->name[len] = '\0'; if (ch != '"') { ungetch(); - pp->_parseContext.ppError(ppToken->loc, "End of line in string", "string", ""); + pp->parseContext.ppError(ppToken->loc, "End of line in string", "string", ""); } return PpAtomConstString; + case ':': + ch = getch(); + if (ch == ':') + return PpAtomColonColon; + ungetch(); + return ':'; } ch = getch(); @@ -729,31 +1028,31 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) // The main functional entry point into the preprocessor, which will // scan the source strings to figure out and return the next processing token. // -// Return string pointer to next token. -// Return 0 when no more tokens. +// Return the token, or EndOfInput when no more tokens. // -const char* TPpContext::tokenize(TPpToken* ppToken) +int TPpContext::tokenize(TPpToken& ppToken) { - int token = '\n'; - for(;;) { - token = scanToken(ppToken); - ppToken->token = token; + int token = scanToken(&ppToken); + + // Handle token-pasting logic + token = tokenPaste(token, ppToken); + if (token == EndOfInput) { missingEndifCheck(); - return nullptr; + return EndOfInput; } if (token == '#') { if (previous_token == '\n') { - token = readCPPline(ppToken); + token = readCPPline(&ppToken); if (token == EndOfInput) { missingEndifCheck(); - return nullptr; + return EndOfInput; } continue; } else { - _parseContext.ppError(ppToken->loc, "preprocessor directive cannot be preceded by another token", "#", ""); - return nullptr; + parseContext.ppError(ppToken.loc, "preprocessor directive cannot be preceded by another token", "#", ""); + return EndOfInput; } } previous_token = token; @@ -762,10 +1061,9 @@ const char* TPpContext::tokenize(TPpToken* ppToken) continue; // expand macros - if (token == PpAtomIdentifier && MacroExpand(ppToken->atom, ppToken, false, true) != 0) + if (token == PpAtomIdentifier && MacroExpand(&ppToken, false, true) != 0) continue; - const char* tokenString = nullptr; switch (token) { case PpAtomIdentifier: case PpAtomConstInt: @@ -773,38 +1071,126 @@ const char* TPpContext::tokenize(TPpToken* ppToken) case PpAtomConstFloat: case PpAtomConstInt64: case PpAtomConstUint64: + case PpAtomConstInt16: + case PpAtomConstUint16: case PpAtomConstDouble: -#ifdef AMD_EXTENSIONS case PpAtomConstFloat16: -#endif - tokenString = ppToken->name; + if (ppToken.name[0] == '\0') + continue; break; case PpAtomConstString: - if (_parseContext.intermediate.getSource() == EShSourceHlsl) { + if (ifdepth == 0 && parseContext.intermediate.getSource() != EShSourceHlsl) { // HLSL allows string literals. - tokenString = ppToken->name; - } else { - _parseContext.ppError(ppToken->loc, "string literals not supported", "\"\"", ""); + parseContext.ppError(ppToken.loc, "string literals not supported", "\"\"", ""); + continue; } break; case '\'': - _parseContext.ppError(ppToken->loc, "character literals not supported", "\'", ""); - break; + parseContext.ppError(ppToken.loc, "character literals not supported", "\'", ""); + continue; default: - tokenString = GetAtomString(token); + strcpy(ppToken.name, atomStrings.getString(token)); break; } - if (tokenString) - return tokenString; + return token; } } +// +// Do all token-pasting related combining of two pasted tokens when getting a +// stream of tokens from a replacement list. Degenerates to no processing if a +// replacement list is not the source of the token stream. +// +int TPpContext::tokenPaste(int token, TPpToken& ppToken) +{ + // starting with ## is illegal, skip to next token + if (token == PpAtomPaste) { + parseContext.ppError(ppToken.loc, "unexpected location", "##", ""); + return scanToken(&ppToken); + } + + int resultToken = token; // "foo" pasted with "35" is an identifier, not a number + + // ## can be chained, process all in the chain at once + while (peekPasting()) { + TPpToken pastedPpToken; + + // next token has to be ## + token = scanToken(&pastedPpToken); + assert(token == PpAtomPaste); + + // This covers end of macro expansion + if (endOfReplacementList()) { + parseContext.ppError(ppToken.loc, "unexpected location; end of replacement list", "##", ""); + break; + } + + // get the token after the ## + token = scanToken(&pastedPpToken); + + // This covers end of argument expansion + if (token == tMarkerInput::marker) { + parseContext.ppError(ppToken.loc, "unexpected location; end of argument", "##", ""); + break; + } + + // get the token text + switch (resultToken) { + case PpAtomIdentifier: + // already have the correct text in token.names + break; + case '=': + case '!': + case '-': + case '~': + case '+': + case '*': + case '/': + case '%': + case '<': + case '>': + case '|': + case '^': + case '&': + case PpAtomRight: + case PpAtomLeft: + case PpAtomAnd: + case PpAtomOr: + case PpAtomXor: + strcpy(ppToken.name, atomStrings.getString(resultToken)); + strcpy(pastedPpToken.name, atomStrings.getString(token)); + break; + default: + parseContext.ppError(ppToken.loc, "not supported for these tokens", "##", ""); + return resultToken; + } + + // combine the tokens + if (strlen(ppToken.name) + strlen(pastedPpToken.name) > MaxTokenLength) { + parseContext.ppError(ppToken.loc, "combined tokens are too long", "##", ""); + return resultToken; + } + strncat(ppToken.name, pastedPpToken.name, MaxTokenLength - strlen(ppToken.name)); + + // correct the kind of token we are making, if needed (identifiers stay identifiers) + if (resultToken != PpAtomIdentifier) { + int newToken = atomStrings.getAtom(ppToken.name); + if (newToken > 0) + resultToken = newToken; + else + parseContext.ppError(ppToken.loc, "combined token is invalid", "##", ""); + } + } + + return resultToken; +} + // Checks if we've seen balanced #if...#endif void TPpContext::missingEndifCheck() { if (ifdepth > 0) - _parseContext.ppError(_parseContext.getCurrentLoc(), "missing #endif", "", ""); + parseContext.ppError(parseContext.getCurrentLoc(), "missing #endif", "", ""); } } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp old mode 100644 new mode 100755 index 25e1720c0d..7dc2722ce1 --- a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. -//All rights reserved. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// 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: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -57,7 +57,7 @@ Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be -incorporated. No hardware is licensed hereunder. +incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, @@ -80,8 +80,10 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // For recording and playing back the stream of tokens in a macro definition. // -#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) +#ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS +#endif +#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) #define snprintf sprintf_s #endif @@ -95,194 +97,225 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace glslang { -void TPpContext::lAddByte(TokenStream *fTok, unsigned char fVal) -{ - fTok->data.push_back(fVal); + +namespace { + + // When recording (and playing back) should the backing name string + // be saved (restored)? + bool SaveName(int atom) + { + switch (atom) { + case PpAtomIdentifier: + case PpAtomConstString: + case PpAtomConstInt: + case PpAtomConstUint: + case PpAtomConstInt64: + case PpAtomConstUint64: + #ifdef AMD_EXTENSIONS + case PpAtomConstInt16: + case PpAtomConstUint16: + #endif + case PpAtomConstFloat: + case PpAtomConstDouble: + case PpAtomConstFloat16: + return true; + default: + return false; + } + } + + // When recording (and playing back) should the numeric value + // be saved (restored)? + bool SaveValue(int atom) + { + switch (atom) { + case PpAtomConstInt: + case PpAtomConstUint: + case PpAtomConstInt64: + case PpAtomConstUint64: + #ifdef AMD_EXTENSIONS + case PpAtomConstInt16: + case PpAtomConstUint16: + #endif + case PpAtomConstFloat: + case PpAtomConstDouble: + case PpAtomConstFloat16: + return true; + default: + return false; + } + } } -/* -* Get the next byte from a stream. -*/ -int TPpContext::lReadByte(TokenStream *pTok) +// push onto back of stream +void TPpContext::TokenStream::putSubtoken(char subtoken) { - if (pTok->current < pTok->data.size()) - return pTok->data[pTok->current++]; + data.push_back(static_cast(subtoken)); +} + +// get the next token in stream +int TPpContext::TokenStream::getSubtoken() +{ + if (current < data.size()) + return data[current++]; else return EndOfInput; } -void TPpContext::lUnreadByte(TokenStream *pTok) +// back up one position in the stream +void TPpContext::TokenStream::ungetSubtoken() { - if (pTok->current > 0) - --pTok->current; + if (current > 0) + --current; } -/* -* Add a token to the end of a list for later playback. -*/ -void TPpContext::RecordToken(TokenStream *pTok, int token, TPpToken* ppToken) +// Add a complete token (including backing string) to the end of a list +// for later playback. +void TPpContext::TokenStream::putToken(int atom, TPpToken* ppToken) { - const char* s; - char* str = NULL; + // save the atom + assert((atom & ~0xff) == 0); + putSubtoken(static_cast(atom)); - if (token > PpAtomMaxSingle) - lAddByte(pTok, (unsigned char)((token & 0x7f) + 0x80)); - else - lAddByte(pTok, (unsigned char)(token & 0x7f)); - - switch (token) { - case PpAtomIdentifier: - case PpAtomConstString: - s = ppToken->name; + // save the backing name string + if (SaveName(atom)) { + const char* s = ppToken->name; while (*s) - lAddByte(pTok, (unsigned char) *s++); - lAddByte(pTok, 0); - break; - case PpAtomConstInt: - case PpAtomConstUint: - case PpAtomConstInt64: - case PpAtomConstUint64: - case PpAtomConstFloat: - case PpAtomConstDouble: -#ifdef AMD_EXTENSIONS - case PpAtomConstFloat16: -#endif - str = ppToken->name; - while (*str) { - lAddByte(pTok, (unsigned char) *str); - str++; - } - lAddByte(pTok, 0); - break; - default: - break; + putSubtoken(*s++); + putSubtoken(0); + } + + // save the numeric value + if (SaveValue(atom)) { + const char* n = reinterpret_cast(&ppToken->i64val); + for (size_t i = 0; i < sizeof(ppToken->i64val); ++i) + putSubtoken(*n++); } } -/* -* Reset a token stream in preperation for reading. -*/ -void TPpContext::RewindTokenStream(TokenStream *pTok) +// Read the next token from a token stream. +// (Not the source stream, but a stream used to hold a tokenized macro). +int TPpContext::TokenStream::getToken(TParseContextBase& parseContext, TPpToken *ppToken) { - pTok->current = 0; -} + // get the atom + int atom = getSubtoken(); + if (atom == EndOfInput) + return atom; -/* -* Read the next token from a token stream (not the source stream, but stream used to hold a tokenized macro). -*/ -int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) -{ - char* tokenText = ppToken->name; - int ltoken, len; - int ch; + // init the token + ppToken->clear(); + ppToken->loc = parseContext.getCurrentLoc(); - ltoken = lReadByte(pTok); - ppToken->loc = _parseContext.getCurrentLoc(); - if (ltoken > 127) - ltoken += 128; - switch (ltoken) { - case '#': - // Check for ##, unless the current # is the last character - if (pTok->current < pTok->data.size()) { - if (lReadByte(pTok) == '#') { - _parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); - _parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); - _parseContext.error(ppToken->loc, "token pasting not implemented (internal error)", "##", ""); - //return PpAtomPaste; - return ReadToken(pTok, ppToken); - } else - lUnreadByte(pTok); - } - break; - case PpAtomConstString: - case PpAtomIdentifier: - case PpAtomConstFloat: - case PpAtomConstDouble: -#ifdef AMD_EXTENSIONS - case PpAtomConstFloat16: -#endif - case PpAtomConstInt: - case PpAtomConstUint: - case PpAtomConstInt64: - case PpAtomConstUint64: - len = 0; - ch = lReadByte(pTok); + // get the backing name string + if (SaveName(atom)) { + int ch = getSubtoken(); + int len = 0; while (ch != 0 && ch != EndOfInput) { if (len < MaxTokenLength) { - tokenText[len] = (char)ch; + ppToken->name[len] = (char)ch; len++; - ch = lReadByte(pTok); + ch = getSubtoken(); } else { - _parseContext.error(ppToken->loc, "token too long", "", ""); + parseContext.error(ppToken->loc, "token too long", "", ""); break; } } - tokenText[len] = 0; + ppToken->name[len] = 0; + } - switch (ltoken) { - case PpAtomIdentifier: - ppToken->atom = LookUpAddString(tokenText); - break; - case PpAtomConstString: - break; - case PpAtomConstFloat: - case PpAtomConstDouble: -#ifdef AMD_EXTENSIONS - case PpAtomConstFloat16: -#endif - ppToken->dval = atof(ppToken->name); - break; - case PpAtomConstInt: - if (len > 0 && tokenText[0] == '0') { - if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) - ppToken->ival = (int)strtol(ppToken->name, 0, 16); - else - ppToken->ival = (int)strtol(ppToken->name, 0, 8); + // Check for ##, unless the current # is the last character + if (atom == '#') { + if (current < data.size()) { + if (getSubtoken() == '#') { + parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); + parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); + atom = PpAtomPaste; } else - ppToken->ival = atoi(ppToken->name); - break; - case PpAtomConstUint: - if (len > 0 && tokenText[0] == '0') { - if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) - ppToken->ival = (int)strtoul(ppToken->name, 0, 16); - else - ppToken->ival = (int)strtoul(ppToken->name, 0, 8); - } else - ppToken->ival = (int)strtoul(ppToken->name, 0, 10); - break; - case PpAtomConstInt64: - if (len > 0 && tokenText[0] == '0') { - if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) - ppToken->i64val = strtoll(ppToken->name, nullptr, 16); - else - ppToken->i64val = strtoll(ppToken->name, nullptr, 8); - } else - ppToken->i64val = atoll(ppToken->name); - break; - case PpAtomConstUint64: - if (len > 0 && tokenText[0] == '0') { - if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) - ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 16); - else - ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 8); - } else - ppToken->i64val = (long long)strtoull(ppToken->name, 0, 10); - break; + ungetSubtoken(); } } - return ltoken; + // get the numeric value + if (SaveValue(atom)) { + char* n = reinterpret_cast(&ppToken->i64val); + for (size_t i = 0; i < sizeof(ppToken->i64val); ++i) + *n++ = getSubtoken(); + } + + return atom; } -int TPpContext::tTokenInput::scan(TPpToken* ppToken) +// We are pasting if +// 1. we are preceding a pasting operator within this stream +// or +// 2. the entire macro is preceding a pasting operator (lastTokenPastes) +// and we are also on the last token +bool TPpContext::TokenStream::peekTokenizedPasting(bool lastTokenPastes) { - return pp->ReadToken(tokens, ppToken); + // 1. preceding ##? + + size_t savePos = current; + int subtoken; + // skip white space + do { + subtoken = getSubtoken(); + } while (subtoken == ' '); + current = savePos; + if (subtoken == PpAtomPaste) + return true; + + // 2. last token and we've been told after this there will be a ## + + if (! lastTokenPastes) + return false; + // Getting here means the last token will be pasted, after this + + // Are we at the last non-whitespace token? + savePos = current; + bool moreTokens = false; + do { + subtoken = getSubtoken(); + if (subtoken == EndOfInput) + break; + if (subtoken != ' ') { + moreTokens = true; + break; + } + } while (true); + current = savePos; + + return !moreTokens; } -void TPpContext::pushTokenStreamInput(TokenStream* ts) +// See if the next non-white-space tokens are two consecutive # +bool TPpContext::TokenStream::peekUntokenizedPasting() { - pushInput(new tTokenInput(this, ts)); - RewindTokenStream(ts); + // don't return early, have to restore this + size_t savePos = current; + + // skip white-space + int subtoken; + do { + subtoken = getSubtoken(); + } while (subtoken == ' '); + + // check for ## + bool pasting = false; + if (subtoken == '#') { + subtoken = getSubtoken(); + if (subtoken == '#') + pasting = true; + } + + current = savePos; + + return pasting; +} + +void TPpContext::pushTokenStreamInput(TokenStream& ts, bool prepasting) +{ + pushInput(new tTokenInput(this, &ts, prepasting)); + ts.reset(); } int TPpContext::tUngotTokenInput::scan(TPpToken* ppToken) diff --git a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h index 2d231e1d2d..7b0f815500 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. @@ -82,15 +82,19 @@ namespace glslang { // Multi-character tokens enum EFixedAtoms { - PpAtomMaxSingle = 256, // single character tokens get their own char value as their token, skip them + // single character tokens get their own char value as their token; start here for multi-character tokens + PpAtomMaxSingle = 127, + + // replace bad character tokens with this, to avoid accidental aliasing with the below + PpAtomBadToken, // Operators - PpAtomAdd, - PpAtomSub, - PpAtomMul, - PpAtomDiv, - PpAtomMod, + PPAtomAddAssign, + PPAtomSubAssign, + PPAtomMulAssign, + PPAtomDivAssign, + PPAtomModAssign, PpAtomRight, PpAtomLeft, @@ -113,6 +117,8 @@ enum EFixedAtoms { PpAtomDecrement, PpAtomIncrement, + PpAtomColonColon, + PpAtomPaste, // Constants @@ -121,11 +127,11 @@ enum EFixedAtoms { PpAtomConstUint, PpAtomConstInt64, PpAtomConstUint64, + PpAtomConstInt16, + PpAtomConstUint16, PpAtomConstFloat, PpAtomConstDouble, -#ifdef AMD_EXTENSIONS PpAtomConstFloat16, -#endif PpAtomConstString, // Identifiers @@ -134,7 +140,6 @@ enum EFixedAtoms { // preprocessor "keywords" PpAtomDefine, - PpAtomDefined, PpAtomUndef, PpAtomIf, diff --git a/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.cpp b/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.cpp index caa6e200d5..ae95688ae8 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.cpp @@ -90,6 +90,7 @@ bool isDereferenceOperation(glslang::TOperator op) case glslang::EOpIndexDirectStruct: case glslang::EOpIndexIndirect: case glslang::EOpVectorSwizzle: + case glslang::EOpMatrixSwizzle: return true; default: return false; @@ -272,9 +273,9 @@ TSymbolDefinitionCollectingTraverser::TSymbolDefinitionCollectingTraverser( ObjectAccesschainSet* precise_objects, std::unordered_set* precise_return_nodes) : TIntermTraverser(true, false, false), symbol_definition_mapping_(*symbol_definition_mapping), - precise_objects_(*precise_objects), current_object_(), - accesschain_mapping_(*accesschain_mapping), current_function_definition_node_(nullptr), - precise_return_nodes_(*precise_return_nodes) {} + precise_objects_(*precise_objects), precise_return_nodes_(*precise_return_nodes), + current_object_(), accesschain_mapping_(*accesschain_mapping), + current_function_definition_node_(nullptr) {} // Visits a symbol node, set the current_object_ to the // current node symbol ID, and record a mapping from this node to the current @@ -616,9 +617,9 @@ class TNoContractionPropagator : public glslang::TIntermTraverser { public: TNoContractionPropagator(ObjectAccesschainSet* precise_objects, const AccessChainMapping& accesschain_mapping) - : TIntermTraverser(true, false, false), remained_accesschain_(), - precise_objects_(*precise_objects), accesschain_mapping_(accesschain_mapping), - added_precise_object_ids_() {} + : TIntermTraverser(true, false, false), + precise_objects_(*precise_objects), added_precise_object_ids_(), + remained_accesschain_(), accesschain_mapping_(accesschain_mapping) {} // Propagates 'precise' in the right nodes of a given assignment node with // access chain record from the assignee node to a 'precise' object it diff --git a/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.h b/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.h index 3412c85dc6..8521ad7d6a 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.h @@ -37,6 +37,8 @@ // propagate 'noContraction' qualifier. // +#pragma once + #include "../Include/intermediate.h" namespace glslang { diff --git a/deps/glslang/glslang/glslang/MachineIndependent/reflection.cpp b/deps/glslang/glslang/glslang/MachineIndependent/reflection.cpp index 31bd172557..4818b10832 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/reflection.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/reflection.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2013-2016 LunarG, Inc. +// Copyright (C) 2013-2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // #include "../Include/Common.h" @@ -63,7 +63,6 @@ // there wasn't exactly one entry point. // - namespace glslang { // @@ -132,8 +131,11 @@ public: for (int m = 0; m <= index; ++m) { // modify just the children's view of matrix layout, if there is one for this member TLayoutMatrix subMatrixLayout = memberList[m].type->getQualifier().layoutMatrix; - int memberAlignment = intermediate.getBaseAlignment(*memberList[m].type, memberSize, dummyStride, type.getQualifier().layoutPacking == ElpStd140, - subMatrixLayout != ElmNone ? subMatrixLayout == ElmRowMajor : type.getQualifier().layoutMatrix == ElmRowMajor); + int memberAlignment = intermediate.getBaseAlignment(*memberList[m].type, memberSize, dummyStride, + type.getQualifier().layoutPacking == ElpStd140, + subMatrixLayout != ElmNone + ? subMatrixLayout == ElmRowMajor + : type.getQualifier().layoutMatrix == ElmRowMajor); RoundToPow2(offset, memberAlignment); if (m < index) offset += memberSize; @@ -152,7 +154,8 @@ public: int lastMemberSize; int dummyStride; - intermediate.getBaseAlignment(*memberList[lastIndex].type, lastMemberSize, dummyStride, blockType.getQualifier().layoutPacking == ElpStd140, + intermediate.getBaseAlignment(*memberList[lastIndex].type, lastMemberSize, dummyStride, + blockType.getQualifier().layoutPacking == ElpStd140, blockType.getQualifier().layoutMatrix == ElmRowMajor); return lastOffset + lastMemberSize; @@ -168,7 +171,7 @@ public: void blowUpActiveAggregate(const TType& baseType, const TString& baseName, const TList& derefs, TList::const_iterator deref, int offset, int blockIndex, int arraySize) { - // process the part of the derefence chain that was explicit in the shader + // process the part of the dereference chain that was explicit in the shader TString name = baseName; const TType* terminalType = &baseType; for (; deref != derefs.end(); ++deref) { @@ -178,7 +181,7 @@ public: switch (visitNode->getOp()) { case EOpIndexIndirect: // Visit all the indices of this array, and for each one add on the remaining dereferencing - for (int i = 0; i < visitNode->getLeft()->getType().getOuterArraySize(); ++i) { + for (int i = 0; i < std::max(visitNode->getLeft()->getType().getOuterArraySize(), 1); ++i) { TString newBaseName = name; if (baseType.getBasicType() != EbtBlock) newBaseName.append(TString("[") + String(i) + "]"); @@ -213,7 +216,7 @@ public: if (terminalType->isArray()) { // Visit all the indices of this array, and for each one, // fully explode the remaining aggregate to dereference - for (int i = 0; i < terminalType->getOuterArraySize(); ++i) { + for (int i = 0; i < std::max(terminalType->getOuterArraySize(), 1); ++i) { TString newBaseName = name; newBaseName.append(TString("[") + String(i) + "]"); TType derefType(*terminalType, 0); @@ -236,7 +239,7 @@ public: } // Finally, add a full string to the reflection database, and update the array size if necessary. - // If the derefenced entity to record is an array, compute the size and update the maximum size. + // If the dereferenced entity to record is an array, compute the size and update the maximum size. // there might not be a final array dereference, it could have been copied as an array object if (arraySize == 0) @@ -245,7 +248,8 @@ public: TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (it == reflection.nameToIndex.end()) { reflection.nameToIndex[name] = (int)reflection.indexToUniform.size(); - reflection.indexToUniform.push_back(TObjectReflection(name, *terminalType, offset, mapToGlType(*terminalType), + reflection.indexToUniform.push_back(TObjectReflection(name, *terminalType, offset, + mapToGlType(*terminalType), arraySize, blockIndex)); } else if (arraySize > 1) { int& reflectedArraySize = reflection.indexToUniform[it->second].size; @@ -355,7 +359,6 @@ public: return blockIndex; } - // Are we at a level in a dereference chain at which individual active uniform queries are made? bool isReflectionGranularity(const TType& type) { @@ -412,6 +415,36 @@ public: case EsdBuffer: return GL_SAMPLER_BUFFER; } +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch ((int)sampler.dim) { + case Esd1D: + switch ((int)sampler.shadow) { + case false: return sampler.arrayed ? GL_FLOAT16_SAMPLER_1D_ARRAY_AMD : GL_FLOAT16_SAMPLER_1D_AMD; + case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD : GL_FLOAT16_SAMPLER_1D_SHADOW_AMD; + } + case Esd2D: + switch ((int)sampler.ms) { + case false: + switch ((int)sampler.shadow) { + case false: return sampler.arrayed ? GL_FLOAT16_SAMPLER_2D_ARRAY_AMD : GL_FLOAT16_SAMPLER_2D_AMD; + case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD : GL_FLOAT16_SAMPLER_2D_SHADOW_AMD; + } + case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD : GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD; + } + case Esd3D: + return GL_FLOAT16_SAMPLER_3D_AMD; + case EsdCube: + switch ((int)sampler.shadow) { + case false: return sampler.arrayed ? GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD : GL_FLOAT16_SAMPLER_CUBE_AMD; + case true: return sampler.arrayed ? GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD : GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD; + } + case EsdRect: + return sampler.shadow ? GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD : GL_FLOAT16_SAMPLER_2D_RECT_AMD; + case EsdBuffer: + return GL_FLOAT16_SAMPLER_BUFFER_AMD; + } +#endif case EbtInt: switch ((int)sampler.dim) { case Esd1D: @@ -419,7 +452,8 @@ public: case Esd2D: switch ((int)sampler.ms) { case false: return sampler.arrayed ? GL_INT_SAMPLER_2D_ARRAY : GL_INT_SAMPLER_2D; - case true: return sampler.arrayed ? GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY : GL_INT_SAMPLER_2D_MULTISAMPLE; + case true: return sampler.arrayed ? GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY + : GL_INT_SAMPLER_2D_MULTISAMPLE; } case Esd3D: return GL_INT_SAMPLER_3D; @@ -437,7 +471,8 @@ public: case Esd2D: switch ((int)sampler.ms) { case false: return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_2D_ARRAY : GL_UNSIGNED_INT_SAMPLER_2D; - case true: return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY : GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE; + case true: return sampler.arrayed ? GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY + : GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE; } case Esd3D: return GL_UNSIGNED_INT_SAMPLER_3D; @@ -472,6 +507,26 @@ public: case EsdBuffer: return GL_IMAGE_BUFFER; } +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch ((int)sampler.dim) { + case Esd1D: + return sampler.arrayed ? GL_FLOAT16_IMAGE_1D_ARRAY_AMD : GL_FLOAT16_IMAGE_1D_AMD; + case Esd2D: + switch ((int)sampler.ms) { + case false: return sampler.arrayed ? GL_FLOAT16_IMAGE_2D_ARRAY_AMD : GL_FLOAT16_IMAGE_2D_AMD; + case true: return sampler.arrayed ? GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD : GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD; + } + case Esd3D: + return GL_FLOAT16_IMAGE_3D_AMD; + case EsdCube: + return sampler.arrayed ? GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD : GL_FLOAT16_IMAGE_CUBE_AMD; + case EsdRect: + return GL_FLOAT16_IMAGE_2D_RECT_AMD; + case EsdBuffer: + return GL_FLOAT16_IMAGE_BUFFER_AMD; + } +#endif case EbtInt: switch ((int)sampler.dim) { case Esd1D: @@ -497,7 +552,8 @@ public: case Esd2D: switch ((int)sampler.ms) { case false: return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_2D_ARRAY : GL_UNSIGNED_INT_IMAGE_2D; - case true: return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY : GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE; + case true: return sampler.arrayed ? GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY + : GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE; } case Esd3D: return GL_UNSIGNED_INT_IMAGE_3D; @@ -694,19 +750,46 @@ void TReflectionTraverser::visitSymbol(TIntermSymbol* base) addAttribute(*base); } - // // Implement TReflection methods. // +// Track any required attribute reflection, such as compute shader numthreads. +// +void TReflection::buildAttributeReflection(EShLanguage stage, const TIntermediate& intermediate) +{ + if (stage == EShLangCompute) { + // Remember thread dimensions + for (int dim=0; dim<3; ++dim) + localSize[dim] = intermediate.getLocalSize(dim); + } +} + +// build counter block index associations for buffers +void TReflection::buildCounterIndices(const TIntermediate& intermediate) +{ + // search for ones that have counters + for (int i = 0; i < int(indexToUniformBlock.size()); ++i) { + const TString counterName(intermediate.addCounterBufferName(indexToUniformBlock[i].name)); + const int index = getIndex(counterName); + + if (index >= 0) + indexToUniformBlock[i].counterIndex = index; + } +} + // Merge live symbols from 'intermediate' into the existing reflection database. // // Returns false if the input is too malformed to do this. -bool TReflection::addStage(EShLanguage, const TIntermediate& intermediate) +bool TReflection::addStage(EShLanguage stage, const TIntermediate& intermediate) { - if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) + if (intermediate.getTreeRoot() == nullptr || + intermediate.getNumEntryPoints() != 1 || + intermediate.isRecursive()) return false; + buildAttributeReflection(stage, intermediate); + TReflectionTraverser it(intermediate, *this); // put the entry point on the list of functions to process @@ -719,6 +802,8 @@ bool TReflection::addStage(EShLanguage, const TIntermediate& intermediate) function->traverse(&it); } + buildCounterIndices(intermediate); + return true; } @@ -739,10 +824,20 @@ void TReflection::dump() indexToAttribute[i].dump(); printf("\n"); - //printf("Live names\n"); - //for (TNameToIndex::const_iterator it = nameToIndex.begin(); it != nameToIndex.end(); ++it) + if (getLocalSize(0) > 1) { + static const char* axis[] = { "X", "Y", "Z" }; + + for (int dim=0; dim<3; ++dim) + if (getLocalSize(dim) > 1) + printf("Local size %s: %d\n", axis[dim], getLocalSize(dim)); + + printf("\n"); + } + + // printf("Live names\n"); + // for (TNameToIndex::const_iterator it = nameToIndex.begin(); it != nameToIndex.end(); ++it) // printf("%s: %d\n", it->first.c_str(), it->second); - //printf("\n"); + // printf("\n"); } } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/MachineIndependent/reflection.h b/deps/glslang/glslang/glslang/MachineIndependent/reflection.h index b6bf4a9b02..bf233e33eb 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/reflection.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/reflection.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2013-2016 LunarG, Inc. +// Copyright (C) 2013-2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _REFLECTION_INCLUDED @@ -56,32 +56,37 @@ class TReflectionTraverser; class TObjectReflection { public: TObjectReflection(const TString& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex) : - name(pName), type(pType.clone()), - offset(pOffset), glDefineType(pGLDefineType), size(pSize), index(pIndex) { } - - void dump() const { - printf("%s: offset %d, type %x, size %d, index %d, binding %d\n", - name.c_str(), offset, glDefineType, size, index, getBinding() ); - } + name(pName), offset(pOffset), + glDefineType(pGLDefineType), size(pSize), index(pIndex), counterIndex(-1), type(pType.clone()) { } const TType* const getType() const { return type; } + int getBinding() const + { + if (type == nullptr || !type->getQualifier().hasBinding()) + return -1; + return type->getQualifier().layoutBinding; + } + void dump() const + { + printf("%s: offset %d, type %x, size %d, index %d, binding %d", + name.c_str(), offset, glDefineType, size, index, getBinding() ); + + if (counterIndex != -1) + printf(", counter %d", counterIndex); + + printf("\n"); + } + static TObjectReflection badReflection() { return TObjectReflection(); } TString name; int offset; int glDefineType; int size; // data size in bytes for a block, array size for a (non-block) object that's an array int index; - - static TObjectReflection badReflection() { return TObjectReflection(); } + int counterIndex; protected: - int getBinding() const { - if (type == nullptr || type->getQualifier().layoutBinding == TQualifier::layoutBindingEnd) - return -1; - return type->getQualifier().layoutBinding; - } - - TObjectReflection() : type(nullptr), offset(-1), glDefineType(-1), size(-1), index(-1) { } + TObjectReflection() : offset(-1), glDefineType(-1), size(-1), index(-1), type(nullptr) { } const TType* type; }; @@ -89,7 +94,12 @@ protected: // The full reflection database class TReflection { public: - TReflection() : badReflection(TObjectReflection::badReflection()) { } + TReflection() : badReflection(TObjectReflection::badReflection()) + { + for (int dim=0; dim<3; ++dim) + localSize[dim] = 0; + } + virtual ~TReflection() {} // grow the reflection stage by stage @@ -135,11 +145,20 @@ public: return it->second; } + // see getIndex(const char*) + int getIndex(const TString& name) const { return getIndex(name.c_str()); } + + // Thread local size + unsigned getLocalSize(int dim) const { return dim <= 2 ? localSize[dim] : 0; } + void dump(); protected: friend class glslang::TReflectionTraverser; + void buildCounterIndices(const TIntermediate&); + void buildAttributeReflection(EShLanguage, const TIntermediate&); + // Need a TString hash: typedef std::unordered_map TNameToIndex; typedef std::map TNameToIndex; typedef std::vector TMapIndexToReflection; @@ -149,6 +168,8 @@ protected: TMapIndexToReflection indexToUniform; TMapIndexToReflection indexToUniformBlock; TMapIndexToReflection indexToAttribute; + + unsigned int localSize[3]; }; } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/OSDependent/Unix/CMakeLists.txt b/deps/glslang/glslang/glslang/OSDependent/Unix/CMakeLists.txt index 174cc9167e..1bf49e1256 100644 --- a/deps/glslang/glslang/glslang/OSDependent/Unix/CMakeLists.txt +++ b/deps/glslang/glslang/glslang/OSDependent/Unix/CMakeLists.txt @@ -1,5 +1,8 @@ add_library(OSDependent STATIC ossource.cpp ../osinclude.h) set_property(TARGET OSDependent PROPERTY FOLDER glslang) +set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON) -install(TARGETS OSDependent - ARCHIVE DESTINATION lib) +if(ENABLE_GLSLANG_INSTALL) + install(TARGETS OSDependent + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/glslang/glslang/OSDependent/Unix/ossource.cpp b/deps/glslang/glslang/glslang/OSDependent/Unix/ossource.cpp index 7e84d4eb23..f59bbceb4a 100644 --- a/deps/glslang/glslang/glslang/OSDependent/Unix/ossource.cpp +++ b/deps/glslang/glslang/glslang/OSDependent/Unix/ossource.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -43,6 +43,9 @@ #include #include #include +#include +#include +#include namespace glslang { @@ -51,122 +54,119 @@ namespace glslang { // // -// Wrapper for Linux call to DetachThread. This is required as pthread_cleanup_push() expects +// Wrapper for Linux call to DetachThread. This is required as pthread_cleanup_push() expects // the cleanup routine to return void. -// +// static void DetachThreadLinux(void *) { - DetachThread(); + DetachThread(); } - // // Registers cleanup handler, sets cancel type and state, and executes the thread specific -// cleanup handler. This function will be called in the Standalone.cpp for regression -// testing. When OpenGL applications are run with the driver code, Linux OS does the +// cleanup handler. This function will be called in the Standalone.cpp for regression +// testing. When OpenGL applications are run with the driver code, Linux OS does the // thread cleanup. -// +// void OS_CleanupThreadData(void) { #ifdef __ANDROID__ - DetachThreadLinux(NULL); + DetachThreadLinux(NULL); #else - int old_cancel_state, old_cancel_type; - void *cleanupArg = NULL; + int old_cancel_state, old_cancel_type; + void *cleanupArg = NULL; - // - // Set thread cancel state and push cleanup handler. - // - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old_cancel_state); - pthread_cleanup_push(DetachThreadLinux, (void *) cleanupArg); + // + // Set thread cancel state and push cleanup handler. + // + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old_cancel_state); + pthread_cleanup_push(DetachThreadLinux, (void *) cleanupArg); - // - // Put the thread in deferred cancellation mode. - // - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &old_cancel_type); + // + // Put the thread in deferred cancellation mode. + // + pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &old_cancel_type); - // - // Pop cleanup handler and execute it prior to unregistering the cleanup handler. - // - pthread_cleanup_pop(1); + // + // Pop cleanup handler and execute it prior to unregistering the cleanup handler. + // + pthread_cleanup_pop(1); - // - // Restore the thread's previous cancellation mode. - // - pthread_setcanceltype(old_cancel_state, NULL); + // + // Restore the thread's previous cancellation mode. + // + pthread_setcanceltype(old_cancel_state, NULL); #endif } - // // Thread Local Storage Operations // inline OS_TLSIndex PthreadKeyToTLSIndex(pthread_key_t key) { - return (OS_TLSIndex)((uintptr_t)key + 1); + return (OS_TLSIndex)((uintptr_t)key + 1); } inline pthread_key_t TLSIndexToPthreadKey(OS_TLSIndex nIndex) { - return (pthread_key_t)((uintptr_t)nIndex - 1); + return (pthread_key_t)((uintptr_t)nIndex - 1); } OS_TLSIndex OS_AllocTLSIndex() { - pthread_key_t pPoolIndex; + pthread_key_t pPoolIndex; - // - // Create global pool key. - // - if ((pthread_key_create(&pPoolIndex, NULL)) != 0) { - assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); - return OS_INVALID_TLS_INDEX; - } - else - return PthreadKeyToTLSIndex(pPoolIndex); + // + // Create global pool key. + // + if ((pthread_key_create(&pPoolIndex, NULL)) != 0) { + assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); + return OS_INVALID_TLS_INDEX; + } + else + return PthreadKeyToTLSIndex(pPoolIndex); } - bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) { - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } + if (nIndex == OS_INVALID_TLS_INDEX) { + assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); + return false; + } - if (pthread_setspecific(TLSIndexToPthreadKey(nIndex), lpvValue) == 0) - return true; - else - return false; + if (pthread_setspecific(TLSIndexToPthreadKey(nIndex), lpvValue) == 0) + return true; + else + return false; } void* OS_GetTLSValue(OS_TLSIndex nIndex) { - // - // This function should return 0 if nIndex is invalid. - // - assert(nIndex != OS_INVALID_TLS_INDEX); - return pthread_getspecific(TLSIndexToPthreadKey(nIndex)); + // + // This function should return 0 if nIndex is invalid. + // + assert(nIndex != OS_INVALID_TLS_INDEX); + return pthread_getspecific(TLSIndexToPthreadKey(nIndex)); } bool OS_FreeTLSIndex(OS_TLSIndex nIndex) { - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } + if (nIndex == OS_INVALID_TLS_INDEX) { + assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); + return false; + } - // - // Delete the global pool key. - // - if (pthread_key_delete(TLSIndexToPthreadKey(nIndex)) == 0) - return true; - else - return false; + // + // Delete the global pool key. + // + if (pthread_key_delete(TLSIndexToPthreadKey(nIndex)) == 0) + return true; + else + return false; } namespace { -pthread_mutex_t gMutex; + pthread_mutex_t gMutex; } void InitGlobalLock() @@ -187,22 +187,18 @@ void ReleaseGlobalLock() pthread_mutex_unlock(&gMutex); } -// TODO: non-windows: if we need these on linux, flesh them out -void* OS_CreateThread(TThreadEntrypoint /*entry*/) -{ - return 0; -} - -void OS_WaitForAllThreads(void* /*threads*/, int /*numThreads*/) -{ -} - -void OS_Sleep(int /*milliseconds*/) -{ -} +// #define DUMP_COUNTERS void OS_DumpMemoryCounters() { +#ifdef DUMP_COUNTERS + struct rusage usage; + + if (getrusage(RUSAGE_SELF, &usage) == 0) + printf("Working set size: %ld\n", usage.ru_maxrss * 1024); +#else + printf("Recompile with DUMP_COUNTERS defined to see counters.\n"); +#endif } } // end namespace glslang diff --git a/deps/glslang/glslang/glslang/OSDependent/Windows/CMakeLists.txt b/deps/glslang/glslang/glslang/OSDependent/Windows/CMakeLists.txt index 399760c30a..f257418abb 100644 --- a/deps/glslang/glslang/glslang/OSDependent/Windows/CMakeLists.txt +++ b/deps/glslang/glslang/glslang/OSDependent/Windows/CMakeLists.txt @@ -2,16 +2,19 @@ set(SOURCES ossource.cpp ../osinclude.h) add_library(OSDependent STATIC ${SOURCES}) set_property(TARGET OSDependent PROPERTY FOLDER glslang) +set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON) # MinGW GCC complains about function pointer casts to void*. # Turn that off with -fpermissive. if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") - target_compile_options(OSDependent PRIVATE -fpermissive) + target_compile_options(OSDependent PRIVATE -fpermissive) endif() if(WIN32) source_group("Source" FILES ${SOURCES}) endif(WIN32) -install(TARGETS OSDependent - ARCHIVE DESTINATION lib) +if(ENABLE_GLSLANG_INSTALL) + install(TARGETS OSDependent + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/glslang/glslang/OSDependent/Windows/main.cpp b/deps/glslang/glslang/glslang/OSDependent/Windows/main.cpp index 6d6b0fddcb..0bcde7b660 100644 --- a/deps/glslang/glslang/glslang/OSDependent/Windows/main.cpp +++ b/deps/glslang/glslang/glslang/OSDependent/Windows/main.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 "InitializeDll.h" diff --git a/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp b/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp index 2edde83870..870840c56e 100644 --- a/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp +++ b/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,22 +18,22 @@ // 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 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 "../osinclude.h" -#undef STRICT #define STRICT #define VC_EXTRALEAN 1 #include @@ -77,7 +77,6 @@ OS_TLSIndex OS_AllocTLSIndex() return ToGenericTLSIndex(dwIndex); } - bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) { if (nIndex == OS_INVALID_TLS_INDEX) { @@ -132,21 +131,6 @@ unsigned int __stdcall EnterGenericThread (void* entry) return ((TThreadEntrypoint)entry)(0); } -void* OS_CreateThread(TThreadEntrypoint entry) -{ - return (void*)_beginthreadex(0, 0, EnterGenericThread, (void*)entry, 0, 0); -} - -void OS_WaitForAllThreads(void* threads, int numThreads) -{ - WaitForMultipleObjects(numThreads, (HANDLE*)threads, true, INFINITE); -} - -void OS_Sleep(int milliseconds) -{ - Sleep(milliseconds); -} - //#define DUMP_COUNTERS void OS_DumpMemoryCounters() diff --git a/deps/glslang/glslang/glslang/OSDependent/osinclude.h b/deps/glslang/glslang/glslang/OSDependent/osinclude.h index 33f880380f..218abe4f23 100644 --- a/deps/glslang/glslang/glslang/OSDependent/osinclude.h +++ b/deps/glslang/glslang/glslang/OSDependent/osinclude.h @@ -1,10 +1,10 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//All rights reserved. +// Copyright (C) 2002-2005 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: +// 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. @@ -18,18 +18,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 __OSINCLUDE_H @@ -53,11 +53,8 @@ void GetGlobalLock(); void ReleaseGlobalLock(); typedef unsigned int (*TThreadEntrypoint)(void*); -void* OS_CreateThread(TThreadEntrypoint); -void OS_WaitForAllThreads(void* threads, int numThreads); void OS_CleanupThreadData(void); -void OS_Sleep(int milliseconds); void OS_DumpMemoryCounters(); diff --git a/deps/glslang/glslang/glslang/Public/ShaderLang.h b/deps/glslang/glslang/glslang/Public/ShaderLang.h index 4e4d695c69..5c629eeb88 100644 --- a/deps/glslang/glslang/glslang/Public/ShaderLang.h +++ b/deps/glslang/glslang/glslang/Public/ShaderLang.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013-2016 LunarG, Inc. +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013-2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 _COMPILER_INTERFACE_INCLUDED_ #define _COMPILER_INTERFACE_INCLUDED_ @@ -40,6 +40,7 @@ #include "../MachineIndependent/Versions.h" #include +#include #ifdef _WIN32 #define C_DECL __cdecl @@ -66,16 +67,20 @@ extern "C" { #endif +// This should always increase, as some paths to do not consume +// a more major number. +// It should increment by one when new functionality is added. +#define GLSLANG_MINOR_VERSION 7 + // -// Driver must call this first, once, before doing any other -// compiler/linker operations. +// Call before doing any other compiler/linker operations. // // (Call once per process, not once per thread.) // SH_IMPORT_EXPORT int ShInitialize(); // -// Driver should call this at process shutdown. +// Call this at process shutdown to clean up memory. // SH_IMPORT_EXPORT int __fastcall ShFinalize(); @@ -109,7 +114,59 @@ typedef enum { EShSourceNone, EShSourceGlsl, EShSourceHlsl, -} EShSource; // if EShLanguage were EShStage, this could be EShLanguage instead +} EShSource; // if EShLanguage were EShStage, this could be EShLanguage instead + +typedef enum { + EShClientNone, + EShClientVulkan, + EShClientOpenGL, +} EShClient; + +typedef enum { + EShTargetNone, + EShTargetSpv, // preferred spelling + EshTargetSpv = EShTargetSpv, // legacy spelling +} EShTargetLanguage; + +typedef enum { + EShTargetVulkan_1_0 = (1 << 22), + EShTargetVulkan_1_1 = (1 << 22) | (1 << 12), + EShTargetOpenGL_450 = 450, +} EShTargetClientVersion; + +typedef EShTargetClientVersion EshTargetClientVersion; + +typedef enum { + EShTargetSpv_1_0 = (1 << 16), + EShTargetSpv_1_3 = (1 << 16) | (3 << 8), +} EShTargetLanguageVersion; + +struct TInputLanguage { + EShSource languageFamily; // redundant information with other input, this one overrides when not EShSourceNone + EShLanguage stage; // redundant information with other input, this one overrides when not EShSourceNone + EShClient dialect; + int dialectVersion; // version of client's language definition, not the client (when not EShClientNone) +}; + +struct TClient { + EShClient client; + EShTargetClientVersion version; // version of client itself (not the client's input dialect) +}; + +struct TTarget { + EShTargetLanguage language; + EShTargetLanguageVersion version; // version to target, if SPIR-V, defined by "word 1" of the SPIR-V header + bool hlslFunctionality1; // can target hlsl_functionality1 extension(s) +}; + +// All source/client/target versions and settings. +// Can override previous methods of setting, when items are set here. +// Expected to grow, as more are added, rather than growing parameter lists. +struct TEnvironment { + TInputLanguage input; // definition of the input language + TClient client; // what client is the overall compilation being done for? + TTarget target; // what to generate +}; const char* StageName(EShLanguage); @@ -133,6 +190,14 @@ typedef enum { EShOptFull, // Optimizations that will take more time } EShOptimizationLevel; +// +// Texture and Sampler transformation mode. +// +typedef enum { + EShTexSampTransKeep, // keep textures and samplers as is (default) + EShTexSampTransUpgradeTextureRemoveSampler, // change texture w/o embeded sampler into sampled texture and throw away all samplers +} EShTextureSamplerTransformMode; + // // Message choices for what errors and warnings are given. // @@ -147,6 +212,10 @@ enum EShMessages { EShMsgReadHlsl = (1 << 6), // use HLSL parsing rules and semantics EShMsgCascadingErrors = (1 << 7), // get cascading errors; risks error-recovery issues, instead of an early exit EShMsgKeepUncalled = (1 << 8), // for testing, don't eliminate uncalled functions + EShMsgHlslOffsets = (1 << 9), // allow block offsets to follow HLSL rules instead of GLSL rules + EShMsgDebugInfo = (1 << 10), // save debug information + EShMsgHlslEnable16BitTypes = (1 << 11), // enable use of 16-bit types in SPIR-V for HLSL + EShMsgHlslLegalization = (1 << 12), // enable HLSL Legalization messages }; // @@ -203,14 +272,6 @@ SH_IMPORT_EXPORT int ShCompile( EShMessages messages = EShMsgDefault // warnings and errors ); -SH_IMPORT_EXPORT int ShLink( - const ShHandle, // linker object - const ShHandle h[], // compiler objects to link together - const int numHandles, - ShHandle uniformMap, // updated with new uniforms - short int** uniformsAccessed, // returned with indexes of uniforms accessed - int* numUniformsAccessed); - SH_IMPORT_EXPORT int ShLinkExt( const ShHandle, // linker object const ShHandle h[], // compiler objects to link together @@ -250,7 +311,7 @@ SH_IMPORT_EXPORT int ShGetUniformLocation(const ShHandle uniformMap, const char* // Deferred-Lowering C++ Interface // ----------------------------------- // -// Below is a new alternate C++ interface that might potentially replace the above +// Below is a new alternate C++ interface, which deprecates the above // opaque handle-based interface. // // The below is further designed to handle multiple compilation units per stage, where @@ -284,11 +345,26 @@ bool InitializeProcess(); // Call once per process to tear down everything void FinalizeProcess(); -// Make one TShader per shader that you will link into a program. Then provide -// the shader through setStrings() or setStringsWithLengths(), then call parse(), -// then query the info logs. -// Optionally use setPreamble() to set a special shader string that will be -// processed before all others but won't affect the validity of #version. +// Resource type for IO resolver +enum TResourceType { + EResSampler, + EResTexture, + EResImage, + EResUbo, + EResSsbo, + EResUav, + EResCount +}; + +// Make one TShader per shader that you will link into a program. Then +// - provide the shader through setStrings() or setStringsWithLengths() +// - optionally call setEnv*(), see below for more detail +// - optionally use setPreamble() to set a special shader string that will be +// processed before all others but won't affect the validity of #version +// - call parse(): source language and target environment must be selected +// either by correct setting of EShMessages sent to parse(), or by +// explicitly calling setEnv*() +// - query the info logs // // N.B.: Does not yet support having the same TShader instance being linked into // multiple programs. @@ -306,13 +382,50 @@ public: void setPreamble(const char* s) { preamble = s; } void setEntryPoint(const char* entryPoint); void setSourceEntryPoint(const char* sourceEntryPointName); - void setShiftSamplerBinding(unsigned int base); - void setShiftTextureBinding(unsigned int base); - void setShiftImageBinding(unsigned int base); - void setShiftUboBinding(unsigned int base); + void addProcesses(const std::vector&); + + // IO resolver binding data: see comments in ShaderLang.cpp + void setShiftBinding(TResourceType res, unsigned int base); + void setShiftSamplerBinding(unsigned int base); // DEPRECATED: use setShiftBinding + void setShiftTextureBinding(unsigned int base); // DEPRECATED: use setShiftBinding + void setShiftImageBinding(unsigned int base); // DEPRECATED: use setShiftBinding + void setShiftUboBinding(unsigned int base); // DEPRECATED: use setShiftBinding + void setShiftUavBinding(unsigned int base); // DEPRECATED: use setShiftBinding + void setShiftCbufferBinding(unsigned int base); // synonym for setShiftUboBinding + void setShiftSsboBinding(unsigned int base); // DEPRECATED: use setShiftBinding + void setShiftBindingForSet(TResourceType res, unsigned int base, unsigned int set); + void setResourceSetBinding(const std::vector& base); void setAutoMapBindings(bool map); + void setAutoMapLocations(bool map); + void setInvertY(bool invert); + void setHlslIoMapping(bool hlslIoMap); void setFlattenUniformArrays(bool flatten); void setNoStorageFormat(bool useUnknownFormat); + void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode); + + // For setting up the environment (cleared to nothingness in the constructor). + // These must be called so that parsing is done for the right source language and + // target environment, either indirectly through TranslateEnvironment() based on + // EShMessages et. al., or directly by the user. + void setEnvInput(EShSource lang, EShLanguage envStage, EShClient client, int version) + { + environment.input.languageFamily = lang; + environment.input.stage = envStage; + environment.input.dialect = client; + environment.input.dialectVersion = version; + } + void setEnvClient(EShClient client, EShTargetClientVersion version) + { + environment.client.client = client; + environment.client.version = version; + } + void setEnvTarget(EShTargetLanguage lang, EShTargetLanguageVersion version) + { + environment.target.language = lang; + environment.target.version = version; + } + void setEnvTargetHlslFunctionality1() { environment.target.hlslFunctionality1 = true; } + bool getEnvTargetHlslFunctionality1() const { return environment.target.hlslFunctionality1; } // Interface to #include handlers. // @@ -331,81 +444,94 @@ public: // release the IncludeResult object. class Includer { public: - typedef enum { - EIncludeRelative, // For #include "something" - EIncludeStandard // Reserved. For #include - } IncludeType; - // An IncludeResult contains the resolved name and content of a source // inclusion. struct IncludeResult { - IncludeResult(const std::string& file_name, const char* const file_data, const size_t file_length, void* user_data) : - file_name(file_name), file_data(file_data), file_length(file_length), user_data(user_data) { } + IncludeResult(const std::string& headerName, const char* const headerData, const size_t headerLength, void* userData) : + headerName(headerName), headerData(headerData), headerLength(headerLength), userData(userData) { } // For a successful inclusion, the fully resolved name of the requested // include. For example, in a file system-based includer, full resolution // should convert a relative path name into an absolute path name. // For a failed inclusion, this is an empty string. - const std::string file_name; + const std::string headerName; // The content and byte length of the requested inclusion. The // Includer producing this IncludeResult retains ownership of the // storage. - // For a failed inclusion, the file_data + // For a failed inclusion, the header // field points to a string containing error details. - const char* const file_data; - const size_t file_length; + const char* const headerData; + const size_t headerLength; // Include resolver's context. - void* user_data; + void* userData; protected: IncludeResult& operator=(const IncludeResult&); IncludeResult(); }; - // Resolves an inclusion request by name, type, current source name, + // For both include methods below: + // + // Resolves an inclusion request by name, current source name, // and include depth. // On success, returns an IncludeResult containing the resolved name - // and content of the include. On failure, returns an IncludeResult - // with an empty string for the file_name and error details in the - // file_data field. The Includer retains ownership of the contents + // and content of the include. + // On failure, returns a nullptr, or an IncludeResult + // with an empty string for the headerName and error details in the + // header field. + // The Includer retains ownership of the contents // of the returned IncludeResult value, and those contents must // remain valid until the releaseInclude method is called on that // IncludeResult object. - virtual IncludeResult* include(const char* requested_source, - IncludeType type, - const char* requesting_source, - size_t inclusion_depth) = 0; + // + // Note "local" vs. "system" is not an "either/or": "local" is an + // extra thing to do over "system". Both might get called, as per + // the C++ specification. + + // For the "system" or <>-style includes; search the "system" paths. + virtual IncludeResult* includeSystem(const char* /*headerName*/, + const char* /*includerName*/, + size_t /*inclusionDepth*/) { return nullptr; } + + // For the "local"-only aspect of a "" include. Should not search in the + // "system" paths, because on returning a failure, the parser will + // call includeSystem() to look in the "system" locations. + virtual IncludeResult* includeLocal(const char* /*headerName*/, + const char* /*includerName*/, + size_t /*inclusionDepth*/) { return nullptr; } + // Signals that the parser will no longer use the contents of the // specified IncludeResult. - virtual void releaseInclude(IncludeResult* result) = 0; + virtual void releaseInclude(IncludeResult*) = 0; virtual ~Includer() {} }; - // Returns an error message for any #include directive. - class ForbidInclude : public Includer { + // Fail all Includer searches + class ForbidIncluder : public Includer { public: - IncludeResult* include(const char*, IncludeType, const char*, size_t) override - { - const char* unexpected_include = "unexpected include directive"; - return new IncludeResult(std::string(""), unexpected_include, strlen(unexpected_include), nullptr); - } - virtual void releaseInclude(IncludeResult* result) override - { - delete result; - } + virtual void releaseInclude(IncludeResult*) override { } }; - bool parse(const TBuiltInResource* res, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, - bool forwardCompatible, EShMessages messages) - { - TShader::ForbidInclude includer; - return parse(res, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, forwardCompatible, messages, includer); - } - bool parse(const TBuiltInResource*, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, bool forwardCompatible, EShMessages, Includer&); + bool parse(const TBuiltInResource* res, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, + bool forwardCompatible, EShMessages messages) + { + TShader::ForbidIncluder includer; + return parse(res, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, forwardCompatible, messages, includer); + } + // Equivalent to parse() without a default profile and without forcing defaults. - // Provided for backwards compatibility. - bool parse(const TBuiltInResource*, int defaultVersion, bool forwardCompatible, EShMessages); + bool parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages) + { + return parse(builtInResources, defaultVersion, ENoProfile, false, forwardCompatible, messages); + } + + bool parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages, + Includer& includer) + { + return parse(builtInResources, defaultVersion, ENoProfile, false, forwardCompatible, messages, includer); + } + bool preprocess(const TBuiltInResource* builtInResources, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, bool forwardCompatible, EShMessages message, std::string* outputString, @@ -413,8 +539,8 @@ public: const char* getInfoLog(); const char* getInfoDebugLog(); - EShLanguage getStage() const { return stage; } + TIntermediate* getIntermediate() const { return intermediate; } protected: TPoolAllocator* pool; @@ -440,6 +566,8 @@ protected: // a function in the source string can be renamed FROM this TO the name given in setEntryPoint. std::string sourceEntryPointName; + TEnvironment environment; + friend class TProgram; private: @@ -451,14 +579,24 @@ class TIoMapper; // Allows to customize the binding layout after linking. // All used uniform variables will invoke at least validateBinding. -// If validateBinding returned true then the other resolveBinding -// and resolveSet are invoked to resolve the binding and descriptor -// set index respectively. +// If validateBinding returned true then the other resolveBinding, +// resolveSet, and resolveLocation are invoked to resolve the binding +// and descriptor set index respectively. +// // Invocations happen in a particular order: -// 1) var with binding and set already defined -// 2) var with binding but no set defined -// 3) var with set but no binding defined -// 4) var with no binding and no set defined +// 1) all shader inputs +// 2) all shader outputs +// 3) all uniforms with binding and set already defined +// 4) all uniforms with binding but no set defined +// 5) all uniforms with set but no binding defined +// 6) all uniforms with no binding and no set defined +// +// mapIO will use this resolver in two phases. The first +// phase is a notification phase, calling the corresponging +// notifiy callbacks, this phase ends with a call to endNotifications. +// Phase two starts directly after the call to endNotifications +// and calls all other callbacks to validate and to get the +// bindings, sets, locations, component and color indices. // // NOTE: that still limit checks are applied to bindings and sets // and may result in an error. @@ -467,15 +605,42 @@ class TIoMapResolver public: virtual ~TIoMapResolver() {} - // Should return true if the resulting/current binding would be ok. + // Should return true if the resulting/current binding would be okay. // Basic idea is to do aliasing binding checks with this. virtual bool validateBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; // Should return a value >= 0 if the current binding should be overridden. // Return -1 if the current binding (including no binding) should be kept. virtual int resolveBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; - // Should return a value >= 0 if the current set should be overriden. + // Should return a value >= 0 if the current set should be overridden. // Return -1 if the current set (including no set) should be kept. virtual int resolveSet(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current location should be overridden. + // Return -1 if the current location (including no location) should be kept. + virtual int resolveUniformLocation(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return true if the resulting/current setup would be okay. + // Basic idea is to do aliasing checks and reject invalid semantic names. + virtual bool validateInOut(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current location should be overridden. + // Return -1 if the current location (including no location) should be kept. + virtual int resolveInOutLocation(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current component index should be overridden. + // Return -1 if the current component index (including no index) should be kept. + virtual int resolveInOutComponent(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current color index should be overridden. + // Return -1 if the current color index (including no index) should be kept. + virtual int resolveInOutIndex(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Notification of a uniform variable + virtual void notifyBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Notification of a in or out variable + virtual void notifyInOut(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Called by mapIO when it has finished the notify pass + virtual void endNotifications(EShLanguage stage) = 0; + // Called by mapIO when it starts its notify pass for the given stage + virtual void beginNotifications(EShLanguage stage) = 0; + // Called by mipIO when it starts its resolve pass for the given stage + virtual void beginResolve(EShLanguage stage) = 0; + // Called by mapIO when it has finished the resolve pass + virtual void endResolve(EShLanguage stage) = 0; }; // Make one TProgram per set of shaders that will get linked together. Add all @@ -505,11 +670,15 @@ public: const char* getUniformBlockName(int blockIndex) const; // can be used for glGetActiveUniformBlockName() int getUniformBlockSize(int blockIndex) const; // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) int getUniformIndex(const char* name) const; // can be used for glGetUniformIndices() + int getUniformBinding(int index) const; // returns the binding number + int getUniformBlockBinding(int index) const; // returns the block binding number int getUniformBlockIndex(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) + int getUniformBlockCounterIndex(int index) const; // returns block index of associated counter. int getUniformType(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE) int getUniformBufferOffset(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_OFFSET) int getUniformArraySize(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_SIZE) int getNumLiveAttributes() const; // can be used for glGetProgramiv(GL_ACTIVE_ATTRIBUTES) + unsigned getLocalSize(int dim) const; // return dim'th local size const char *getAttributeName(int index) const; // can be used for glGetActiveAttrib() int getAttributeType(int index) const; // can be used for glGetActiveAttrib() const TType* getUniformTType(int index) const; // returns a TType* @@ -536,6 +705,7 @@ protected: bool linked; private: + TProgram(TProgram&); TProgram& operator=(TProgram&); }; diff --git a/deps/glslang/glslang/gtests/AST.FromFile.cpp b/deps/glslang/glslang/gtests/AST.FromFile.cpp old mode 100644 new mode 100755 index a2e961e81b..b89fc51564 --- a/deps/glslang/glslang/gtests/AST.FromFile.cpp +++ b/deps/glslang/glslang/gtests/AST.FromFile.cpp @@ -41,13 +41,27 @@ 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, + 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, @@ -62,6 +76,7 @@ INSTANTIATE_TEST_CASE_P( "versionsErrors.frag", "versionsErrors.vert", "100.frag", + "100samplerExternal.frag", "120.vert", "120.frag", "130.vert", @@ -77,9 +92,14 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -92,6 +112,7 @@ INSTANTIATE_TEST_CASE_P( "300layout.frag", "300operations.frag", "300block.frag", + "300samplerExternal.frag", "310.comp", "310.vert", "310.geom", @@ -100,10 +121,18 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -135,6 +164,7 @@ INSTANTIATE_TEST_CASE_P( "430.vert", "430.comp", "430AofA.frag", + "435.vert", "440.vert", "440.frag", "450.vert", @@ -143,8 +173,11 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -167,17 +200,24 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -190,9 +230,20 @@ INSTANTIATE_TEST_CASE_P( "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 diff --git a/deps/glslang/glslang/gtests/CMakeLists.txt b/deps/glslang/glslang/gtests/CMakeLists.txt index 268caff7f9..15b73f4bde 100644 --- a/deps/glslang/glslang/gtests/CMakeLists.txt +++ b/deps/glslang/glslang/gtests/CMakeLists.txt @@ -1,48 +1,59 @@ -if (TARGET gmock) - message(STATUS "Google Mock found - building tests") +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 + 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}/Pp.FromFile.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp - # -- Remapper tests - ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp - ) + # 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 - add_executable(glslangtests ${TEST_SOURCES}) - set_property(TARGET glslangtests PROPERTY FOLDER tests) - glslang_set_link_args(glslangtests) - install(TARGETS glslangtests - RUNTIME DESTINATION bin) + # -- Remapper tests + ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp) - 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) - target_link_libraries(glslangtests PRIVATE - SPVRemapper glslang OSDependent OGLCompiler HLSL glslang - SPIRV glslang-default-resource-limits gmock) - add_test(NAME glslang-gtests - COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}") + 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 index a6e93dcfa9..f3a27724d1 100644 --- a/deps/glslang/glslang/gtests/Config.FromFile.cpp +++ b/deps/glslang/glslang/gtests/Config.FromFile.cpp @@ -97,7 +97,7 @@ TEST_P(ConfigTest, FromFile) INSTANTIATE_TEST_CASE_P( Glsl, ConfigTest, ::testing::ValuesIn(std::vector({ - {"specExamples.vert", "baseResults/test.conf", "specExamples.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, + {"specExamples.vert", "baseResults/test.conf", "specExamplesConf.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, {"100Limits.vert", "100.conf", "100LimitsConf.vert.out", EShMsgCascadingErrors}, })), ); diff --git a/deps/glslang/glslang/gtests/Hlsl.FromFile.cpp b/deps/glslang/glslang/gtests/Hlsl.FromFile.cpp index f0332aac61..861c098837 100644 --- a/deps/glslang/glslang/gtests/Hlsl.FromFile.cpp +++ b/deps/glslang/glslang/gtests/Hlsl.FromFile.cpp @@ -58,15 +58,24 @@ std::string FileNameAsCustomTestSuffix( } using HlslCompileTest = GlslangTest<::testing::TestWithParam>; +using HlslVulkan1_1CompileTest = GlslangTest<::testing::TestWithParam>; using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam>; +using HlslLegalizeTest = GlslangTest<::testing::TestWithParam>; -// Compiling HLSL to SPIR-V under Vulkan semantics. Expected to successfully -// generate both AST and SPIR-V. +// 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, - Target::BothASTAndSpv, GetParam().entryPoint); + 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) @@ -76,41 +85,95 @@ TEST_P(HlslCompileAndFlattenTest, FromFile) 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"}, @@ -119,17 +182,39 @@ INSTANTIATE_TEST_CASE_P( {"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", "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"}, @@ -138,6 +223,7 @@ INSTANTIATE_TEST_CASE_P( {"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"}, @@ -149,18 +235,39 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.rwtexture.array.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, - {"hlsl.logical.unary.frag", "main"}, + {"hlsl.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_aux1"}, + {"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"}, @@ -171,6 +278,7 @@ INSTANTIATE_TEST_CASE_P( {"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"}, @@ -182,8 +290,11 @@ INSTANTIATE_TEST_CASE_P( {"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"}, @@ -199,31 +310,94 @@ INSTANTIATE_TEST_CASE_P( {"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"}, + {"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 ); @@ -234,10 +408,30 @@ 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-new/gtests/Link.FromFile.Vk.cpp b/deps/glslang/glslang/gtests/Link.FromFile.Vk.cpp similarity index 100% rename from deps/glslang-new/gtests/Link.FromFile.Vk.cpp rename to deps/glslang/glslang/gtests/Link.FromFile.Vk.cpp diff --git a/deps/glslang/glslang/gtests/Remap.FromFile.cpp b/deps/glslang/glslang/gtests/Remap.FromFile.cpp index 9f25a6f227..50bce8e357 100644 --- a/deps/glslang/glslang/gtests/Remap.FromFile.cpp +++ b/deps/glslang/glslang/gtests/Remap.FromFile.cpp @@ -89,6 +89,7 @@ INSTANTIATE_TEST_CASE_P( { "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 }, diff --git a/deps/glslang/glslang/gtests/Spv.FromFile.cpp b/deps/glslang/glslang/gtests/Spv.FromFile.cpp old mode 100644 new mode 100755 index 414fa7b7d5..4b1ff462cc --- a/deps/glslang/glslang/gtests/Spv.FromFile.cpp +++ b/deps/glslang/glslang/gtests/Spv.FromFile.cpp @@ -48,6 +48,7 @@ struct IoMapData { int baseTextureBinding; int baseImageBinding; int baseUboBinding; + int baseSsboBinding; bool autoMapBindings; bool flattenUniforms; }; @@ -62,6 +63,7 @@ std::string FileNameAsCustomTestSuffixIoMap( } 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>; @@ -71,13 +73,24 @@ 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, + 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); } @@ -86,7 +99,7 @@ TEST_P(CompileVulkanToSpirvTest, FromFile) TEST_P(CompileOpenGLToSpirvTest, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::OpenGL, + Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, Target::Spv); } @@ -95,8 +108,8 @@ TEST_P(CompileOpenGLToSpirvTest, FromFile) TEST_P(VulkanSemantics, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, - Target::Spv); + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::Spv, false); } // GLSL-level Vulkan semantics test. Expected to error out before generating @@ -104,15 +117,15 @@ TEST_P(VulkanSemantics, FromFile) TEST_P(OpenGLSemantics, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::OpenGL, - Target::Spv); + 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, + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, Target::AST); } @@ -126,6 +139,7 @@ TEST_P(HlslIoMap, FromFile) GetParam().baseTextureBinding, GetParam().baseImageBinding, GetParam().baseUboBinding, + GetParam().baseSsboBinding, GetParam().autoMapBindings, GetParam().flattenUniforms); } @@ -140,6 +154,7 @@ TEST_P(GlslIoMap, FromFile) GetParam().baseTextureBinding, GetParam().baseImageBinding, GetParam().baseUboBinding, + GetParam().baseSsboBinding, GetParam().autoMapBindings, GetParam().flattenUniforms); } @@ -150,11 +165,31 @@ TEST_P(GlslIoMap, FromFile) TEST_P(CompileVulkanToSpirvTestAMD, FromFile) { loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), - Source::GLSL, Semantics::Vulkan, + 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, @@ -162,6 +197,7 @@ INSTANTIATE_TEST_CASE_P( // 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", @@ -193,15 +229,22 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -211,13 +254,19 @@ INSTANTIATE_TEST_CASE_P( "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", @@ -233,16 +282,23 @@ INSTANTIATE_TEST_CASE_P( "spv.newTexture.frag", "spv.noDeadDecorations.vert", "spv.nonSquare.vert", + "spv.nonuniform.frag", + "spv.noWorkgroup.comp", "spv.offsets.frag", "spv.Operations.frag", - "spv.intOps.vert", - "spv.noWorkgroup.comp", + "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", @@ -258,6 +314,7 @@ INSTANTIATE_TEST_CASE_P( "spv.test.vert", "spv.texture.frag", "spv.texture.vert", + "spv.textureBuffer.vert", "spv.image.frag", "spv.types.frag", "spv.uint.frag", @@ -265,6 +322,7 @@ INSTANTIATE_TEST_CASE_P( "spv.variableArrayIndex.frag", "spv.varyingArray.frag", "spv.varyingArrayIndirect.frag", + "spv.vecMatConstruct.frag", "spv.voidFunction.frag", "spv.whileLoop.frag", "spv.AofA.frag", @@ -272,13 +330,53 @@ INSTANTIATE_TEST_CASE_P( "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 ); @@ -287,15 +385,18 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Hlsl, HlslIoMap, ::testing::ValuesIn(std::vector{ - { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, true, false }, - { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, false, false }, - { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, true, true }, - { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, true, true }, - { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, true, true }, - { "spv.register.autoassign.rangetest.frag", "main", + { "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, true, false }, + 20, 30, true, false }, }), FileNameAsCustomTestSuffixIoMap ); @@ -304,8 +405,8 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Hlsl, GlslIoMap, ::testing::ValuesIn(std::vector{ - { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, true, false }, - { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, false, false }, + { "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 ); @@ -314,9 +415,14 @@ INSTANTIATE_TEST_CASE_P( 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 ); @@ -356,10 +462,43 @@ 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 diff --git a/deps/glslang/glslang/gtests/TestFixture.cpp b/deps/glslang/glslang/gtests/TestFixture.cpp index db2b81d1a0..77bada5f7d 100644 --- a/deps/glslang/glslang/gtests/TestFixture.cpp +++ b/deps/glslang/glslang/gtests/TestFixture.cpp @@ -100,6 +100,8 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target) break; } + result = static_cast(result | EShMsgHlslLegalization); + return result; } diff --git a/deps/glslang/glslang/gtests/TestFixture.h b/deps/glslang/glslang/gtests/TestFixture.h index 8aee0cf88e..a58978d339 100644 --- a/deps/glslang/glslang/gtests/TestFixture.h +++ b/deps/glslang/glslang/gtests/TestFixture.h @@ -70,7 +70,7 @@ enum class Source { // Enum for shader compilation semantics. enum class Semantics { OpenGL, - Vulkan, + Vulkan }; // Enum for compilation target. @@ -197,13 +197,40 @@ public: GlslangResult compileAndLink( const std::string shaderName, const std::string& code, const std::string& entryPointName, EShMessages controls, - bool flattenUniformArrays = false) + glslang::EShTargetClientVersion clientTargetVersion, + bool flattenUniformArrays = false, + EShTextureSamplerTransformMode texSampTransMode = EShTexSampTransKeep, + bool enableOptimizer = false, + bool automap = true) { - const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); + const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); - glslang::TShader shader(kind); + 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; @@ -214,8 +241,10 @@ public: if (success && (controls & EShMsgSpvRules)) { std::vector spirv_binary; - glslang::GlslangToSpv(*program.getIntermediate(kind), - spirv_binary, &logger); + glslang::SpvOptions options; + options.disableOptimizer = !enableOptimizer; + glslang::GlslangToSpv(*program.getIntermediate(stage), + spirv_binary, &logger, &options); std::ostringstream disassembly_stream; spv::Parameterize(); @@ -241,24 +270,27 @@ public: int baseTextureBinding, int baseImageBinding, int baseUboBinding, + int baseSsboBinding, bool autoMapBindings, bool flattenUniformArrays) { - const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); + const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); - glslang::TShader shader(kind); + 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(); @@ -266,7 +298,7 @@ public: if (success && (controls & EShMsgSpvRules)) { std::vector spirv_binary; - glslang::GlslangToSpv(*program.getIntermediate(kind), + glslang::GlslangToSpv(*program.getIntermediate(stage), spirv_binary, &logger); std::ostringstream disassembly_stream; @@ -290,9 +322,12 @@ public: const std::string& entryPointName, EShMessages controls, const unsigned int remapOptions = spv::spirvbin_t::NONE) { - const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); + const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); + + glslang::TShader shader(stage); + shader.setAutoMapBindings(true); + shader.setAutoMapLocations(true); - glslang::TShader shader(kind); bool success = compile(&shader, code, entryPointName, controls); glslang::TProgram program; @@ -303,7 +338,7 @@ public: if (success && (controls & EShMsgSpvRules)) { std::vector spirv_binary; - glslang::GlslangToSpv(*program.getIntermediate(kind), + glslang::GlslangToSpv(*program.getIntermediate(stage), spirv_binary, &logger); spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); @@ -330,7 +365,7 @@ public: 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); @@ -372,19 +407,26 @@ public: const std::string& testName, Source source, Semantics semantics, + glslang::EShTargetClientVersion clientTargetVersion, Target target, - const std::string& entryPointName="") + 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 + "/baseResults/" + testName + ".out"; + testDir + baseDir + 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); + 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; @@ -410,7 +452,8 @@ public: tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = compileAndLink(testName, input, entryPointName, controls, true); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls, + glslang::EShTargetVulkan_1_0, true); // Generate the hybrid output in the way of glslangValidator. std::ostringstream stream; @@ -430,6 +473,7 @@ public: int baseTextureBinding, int baseImageBinding, int baseUboBinding, + int baseSsboBinding, bool autoMapBindings, bool flattenUniformArrays) { @@ -443,7 +487,8 @@ public: const EShMessages controls = DeriveOptions(source, semantics, target); GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, - baseSamplerBinding, baseTextureBinding, baseImageBinding, baseUboBinding, + baseSamplerBinding, baseTextureBinding, baseImageBinding, + baseUboBinding, baseSsboBinding, autoMapBindings, flattenUniformArrays); @@ -521,7 +566,7 @@ public: glslang::TShader shader(EShLangVertex); shader.setStringsWithLengths(&shaderStrings, &shaderLengths, 1); std::string ppShader; - glslang::TShader::ForbidInclude includer; + glslang::TShader::ForbidIncluder includer; const bool success = shader.preprocess( &glslang::DefaultTBuiltInResource, defaultVersion, defaultProfile, forceVersionProfile, isForwardCompatible, (EShMessages)(EShMsgOnlyPreprocessor | EShMsgCascadingErrors), @@ -562,6 +607,33 @@ public: 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; diff --git a/deps/glslang/glslang/gtests/main.cpp b/deps/glslang/glslang/gtests/main.cpp index 35f30db9cf..9cd06d1d4f 100644 --- a/deps/glslang/glslang/gtests/main.cpp +++ b/deps/glslang/glslang/gtests/main.cpp @@ -54,7 +54,7 @@ int main(int argc, char** argv) glslangtest::GlobalTestSettings.updateMode = true; } if (std::string("--test-root") == argv[i]) { - // Allow the user set the tets root directory. This is useful + // 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]; @@ -64,6 +64,11 @@ int main(int argc, char** argv) 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(); diff --git a/deps/glslang/glslang/hlsl/CMakeLists.txt b/deps/glslang/glslang/hlsl/CMakeLists.txt index ec5f1a569e..6d1d8e6ae5 100755 --- a/deps/glslang/glslang/hlsl/CMakeLists.txt +++ b/deps/glslang/glslang/hlsl/CMakeLists.txt @@ -7,7 +7,7 @@ set(SOURCES hlslGrammar.cpp hlslParseables.cpp) - set(HEADERS +set(HEADERS hlslAttributes.h hlslParseHelper.h hlslTokens.h @@ -17,12 +17,25 @@ set(SOURCES hlslGrammar.h hlslParseables.h) -add_library(HLSL STATIC ${SOURCES} ${HEADERS}) +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) -install(TARGETS HLSL - ARCHIVE DESTINATION lib) +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 index 966ff35210..261cec346f 100644 --- a/deps/glslang/glslang/hlsl/hlslAttributes.cpp +++ b/deps/glslang/glslang/hlsl/hlslAttributes.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,92 +19,88 @@ // 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 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 -#include +#include "hlslParseHelper.h" namespace glslang { // Map the given string to an attribute enum from TAttributeType, // or EatNone if invalid. - TAttributeType TAttributeMap::attributeFromName(const TString& name) + TAttributeType HlslParseContext::attributeFromName(const TString& nameSpace, const TString& name) const { - // These are case insensitive. - TString lowername(name); - std::transform(lowername.begin(), lowername.end(), lowername.begin(), ::tolower); + // handle names within a namespace - if (lowername == "allow_uav_condition") + 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 (lowername == "branch") + else if (name == "branch") return EatBranch; - else if (lowername == "call") + else if (name == "call") return EatCall; - else if (lowername == "domain") + else if (name == "domain") return EatDomain; - else if (lowername == "earlydepthstencil") + else if (name == "earlydepthstencil") return EatEarlyDepthStencil; - else if (lowername == "fastopt") + else if (name == "fastopt") return EatFastOpt; - else if (lowername == "flatten") + else if (name == "flatten") return EatFlatten; - else if (lowername == "forcecase") + else if (name == "forcecase") return EatForceCase; - else if (lowername == "instance") + else if (name == "instance") return EatInstance; - else if (lowername == "maxtessfactor") + else if (name == "maxtessfactor") return EatMaxTessFactor; - else if (lowername == "maxvertexcount") + else if (name == "maxvertexcount") return EatMaxVertexCount; - else if (lowername == "numthreads") + else if (name == "numthreads") return EatNumThreads; - else if (lowername == "outputcontrolpoints") + else if (name == "outputcontrolpoints") return EatOutputControlPoints; - else if (lowername == "outputtopology") + else if (name == "outputtopology") return EatOutputTopology; - else if (lowername == "partitioning") + else if (name == "partitioning") return EatPartitioning; - else if (lowername == "patchconstantfunc") + else if (name == "patchconstantfunc") return EatPatchConstantFunc; - else if (lowername == "unroll") + else if (name == "unroll") return EatUnroll; + else if (name == "loop") + return EatLoop; else return EatNone; } - // Look up entry, inserting if it's not there, and if name is a valid attribute name - // as known by attributeFromName. - TAttributeType TAttributeMap::setAttribute(const TString* name, TIntermAggregate* value) - { - if (name == nullptr) - return EatNone; - - const TAttributeType attr = attributeFromName(*name); - - if (attr != EatNone) - attributes[attr] = value; - - return attr; - } - - // Look up entry (const version), and return aggregate node. This cannot change the map. - const TIntermAggregate* TAttributeMap::operator[](TAttributeType attr) const - { - const auto entry = attributes.find(attr); - - return (entry == attributes.end()) ? nullptr : entry->second; - } - } // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslAttributes.h b/deps/glslang/glslang/hlsl/hlslAttributes.h index 312a456426..b1cc0372e5 100644 --- a/deps/glslang/glslang/hlsl/hlslAttributes.h +++ b/deps/glslang/glslang/hlsl/hlslAttributes.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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_ @@ -38,60 +38,22 @@ #include #include + +#include "../glslang/MachineIndependent/attribute.h" +#include "../glslang/MachineIndependent/SymbolTable.h" #include "hlslScanContext.h" -#include "../glslang/Include/Common.h" namespace glslang { - enum TAttributeType { - EatNone, - EatAllow_uav_condition, - EatBranch, - EatCall, - EatDomain, - EatEarlyDepthStencil, - EatFastOpt, - EatFlatten, - EatForceCase, - EatInstance, - EatMaxTessFactor, - EatNumThreads, - EatMaxVertexCount, - EatOutputControlPoints, - EatOutputTopology, - EatPartitioning, - EatPatchConstantFunc, - EatUnroll, - }; -} -namespace std { - // Allow use of TAttributeType enum in hash_map without calling code having to cast. - template <> struct hash { - std::size_t operator()(glslang::TAttributeType attr) const { - return std::hash()(int(attr)); - } - }; -} // end namespace std - -namespace glslang { - class TIntermAggregate; - - class TAttributeMap { + class TFunctionDeclarator { public: - // Search for and potentially add the attribute into the map. Return the - // attribute type enum for it, if found, else EatNone. - TAttributeType setAttribute(const TString* name, TIntermAggregate* value); - - // Const lookup: search for (but do not modify) the attribute in the map. - const TIntermAggregate* operator[](TAttributeType) const; - - protected: - // Find an attribute enum given its name. - static TAttributeType attributeFromName(const TString&); - - std::unordered_map attributes; + 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 index c9152e2a14..cb05877917 100755 --- a/deps/glslang/glslang/hlsl/hlslGrammar.cpp +++ b/deps/glslang/glslang/hlsl/hlslGrammar.cpp @@ -1,12 +1,12 @@ // -//Copyright (C) 2016 Google, Inc. -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -67,70 +67,111 @@ bool HlslGrammar::parse() void HlslGrammar::expected(const char* syntax) { - _parseContext.error(token.loc, "Expected", syntax, ""); + parseContext.error(token.loc, "Expected", syntax, ""); } void HlslGrammar::unimplemented(const char* error) { - _parseContext.error(token.loc, "Unimplemented", 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; } - // Even though "sample" is a keyword (for interpolation modifiers), it IS still accepted as - // an identifier. This appears to be a solitary exception: other interp modifier keywords such - // as "linear" or "centroid" NOT valid identifiers. This code special cases "sample", - // so e.g, "int sample;" is accepted. - if (peekTokenClass(EHTokSample)) { - idToken.string = NewPoolTString("sample"); - idToken.tokenClass = EHTokIdentifier; - idToken.symbol = nullptr; - idToken.loc = token.loc; + // 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; } - return false; + // 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 -// : list of externalDeclaration -// | SEMICOLONS +// : declaration_list EOF // bool HlslGrammar::acceptCompilationUnit() { TIntermNode* unitNode = nullptr; - while (! peekTokenClass(EHTokNone)) { - // HLSL allows semicolons between global declarations, e.g, between functions. - if (acceptTokenClass(EHTokSemicolon)) - continue; + if (! acceptDeclarationList(unitNode)) + return false; - // externalDeclaration - TIntermNode* declarationNode; - if (! acceptDeclaration(declarationNode)) - return false; - - // hook it up - unitNode = intermediate.growAggregate(unitNode, declarationNode); - } + 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 +// : LEFT_BRACE [sampler_state_assignment ... ] RIGHT_BRACE // // sampler_state_assignment // : sampler_state_identifier EQUAL value SEMICOLON @@ -154,8 +195,8 @@ bool HlslGrammar::acceptSamplerState() if (! acceptTokenClass(EHTokLeftBrace)) return true; - _parseContext.warn(token.loc, "unimplemented", "immediate sampler state", ""); - + parseContext.warn(token.loc, "unimplemented", "immediate sampler state", ""); + do { // read state name HlslToken state; @@ -234,7 +275,7 @@ bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) { if (! acceptTokenClass(EHTokSampler)) return false; - + // TODO: remove this when DX9 style declarations are implemented. unimplemented("Direct3D 9 sampler declaration"); @@ -253,10 +294,14 @@ bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) 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 declarator_list 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 @@ -274,17 +319,46 @@ bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) // as above. (The 'identifier' in the first item in init_declarator list is the // same as 'identifier' for function declarations.) // -// 'node' could get populated if the declaration creates code, like an initializer -// or a function body. +// 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. // -bool HlslGrammar::acceptDeclaration(TIntermNode*& node) +// 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) { - node = nullptr; - bool list = false; + // 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 - TAttributeMap attributes; - acceptAttributes(attributes); + TFunctionDeclarator declarator; + acceptAttributes(declarator.attributes); // typedef bool typedefDecl = acceptTokenClass(EHTokTypedef); @@ -296,68 +370,86 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // 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; + // 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)) + if (! acceptFullySpecifiedType(declaredType, nodeList, declarator.attributes, forbidDeclarators)) return false; - // identifier + // 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* fnName = idToken.string; + TString *fullName = idToken.string; + if (parseContext.symbolTable.atGlobalLevel()) + parseContext.getFullNamespaceName(fullName); + if (peekTokenClass(EHTokLeftParen)) { + // looks like function parameters - // Potentially rename shader entry point function. No-op most of the time. - _parseContext.renameShaderFunction(fnName); + // 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; + } - // function_parameters - TFunction& function = *new TFunction(fnName, declaredType); - if (acceptFunctionParameters(function)) { // post_decls - acceptPostDecls(function.getWritableType().getQualifier()); + acceptPostDecls(declarator.function->getWritableType().getQualifier()); // compound_statement (function body definition) or just a prototype? + declarator.loc = token.loc; if (peekTokenClass(EHTokLeftBrace)) { - if (list) - _parseContext.error(idToken.loc, "function body can't be in a declarator list", "{", ""); + 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(function, node, attributes); + 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(idToken.loc, function, true); + parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); + parseContext.handleFunctionDeclarator(declarator.loc, *declarator.function, true); } } else { - // A variable declaration. Fix the storage qualifier if it's a global. - if (declaredType.getQualifier().storage == EvqTemporary && _parseContext.symbolTable.atGlobalLevel()) - declaredType.getQualifier().storage = EvqUniform; + // A variable declaration. - // We can handle multiple variables per type declaration, so - // the number of types can expand when arrayness is different. - TType variableType; - variableType.shallowCopy(declaredType); + // 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); - // Fix arrayness in the variableType - if (declaredType.isImplicitlySizedArray()) { - // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b - // of different sizes, for this case sharing the shallow copy of arrayness - // with the parseType oversubscribes it, so get a deep copy of the arrayness. - variableType.newArraySizes(declaredType.getArraySizes()); - } - if (arraySizes || variableType.isArray()) { - // In the most general case, arrayness is potentially coming both from the - // declared type and from the variable: "int[] a[];" or just one or the other. - // Merge it all to the variableType, so all arrayness is part of the variableType. - _parseContext.arrayDimMerge(variableType, arraySizes); - } + // 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) { @@ -372,55 +464,69 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) TIntermTyped* expressionNode = nullptr; if (acceptTokenClass(EHTokAssign)) { if (typedefDecl) - _parseContext.error(idToken.loc, "can't have an initializer", "typedef", ""); + parseContext.error(idToken.loc, "can't have an initializer", "typedef", ""); if (! acceptAssignmentExpression(expressionNode)) { expected("initializer"); return false; } } - // Hand off the actual declaration - // TODO: things scoped within an annotation need their own name space; // TODO: strings are not yet handled. - if (variableType.getBasicType() != EbtString && _parseContext.getAnnotationNestingLevel() == 0) { + if (variableType.getBasicType() != EbtString && parseContext.getAnnotationNestingLevel() == 0) { if (typedefDecl) - _parseContext.declareTypedef(idToken.loc, *idToken.string, variableType); - else if (variableType.getBasicType() == EbtBlock) - _parseContext.declareBlock(idToken.loc, variableType, idToken.string); - else { + 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, *idToken.string); + 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. - node = intermediate.growAggregate(node, - _parseContext.declareVariable(idToken.loc, *idToken.string, variableType, - expressionNode), - idToken.loc); + initializers = intermediate.growAggregate(initializers, + parseContext.declareVariable(idToken.loc, *fullName, variableType, expressionNode), + idToken.loc); } } } } - if (acceptTokenClass(EHTokComma)) { - list = true; - continue; - } - }; + // COMMA + if (acceptTokenClass(EHTokComma)) + declarator_list = true; + } - // The top-level node is a sequence. - if (node != nullptr) - node->getAsAggregate()->setOperator(EOpSequence); + // 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)) { - expected(";"); - return false; + // 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; } @@ -430,12 +536,22 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) { node = nullptr; + TAttributes attributes; // fully_specified_type TType type; - if (! acceptFullySpecifiedType(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)) { @@ -456,7 +572,7 @@ bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) return false; } - node = _parseContext.declareVariable(idToken.loc, *idToken.string, type, expressionNode); + node = parseContext.declareVariable(idToken.loc, *idToken.string, type, expressionNode); return true; } @@ -465,7 +581,12 @@ bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) // : type_specifier // | type_qualifier type_specifier // -bool HlslGrammar::acceptFullySpecifiedType(TType& type) +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; @@ -475,14 +596,28 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) TSourceLoc loc = token.loc; // type_specifier - if (! acceptType(type)) + 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); + 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 - if (peekTokenClass(EHTokSemicolon)) - _parseContext.declareBlock(loc, type); + // (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. @@ -491,10 +626,16 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) qualifier.layoutFormat = type.getQualifier().layoutFormat; qualifier.precision = type.getQualifier().precision; - if (type.getQualifier().storage == EvqVaryingOut) + if (type.getQualifier().storage == EvqOut || + type.getQualifier().storage == EvqBuffer) { qualifier.storage = type.getQualifier().storage; + qualifier.readonly = type.getQualifier().readonly; + } - type.getQualifier() = qualifier; + if (type.isBuiltIn()) + qualifier.builtIn = type.getQualifier().builtIn; + + type.getQualifier() = qualifier; } return true; @@ -510,7 +651,7 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) do { switch (peek()) { case EHTokStatic: - qualifier.storage = _parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; break; case EHTokExtern: // TODO: no meaning in glslang? @@ -555,10 +696,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) qualifier.noContraction = true; break; case EHTokIn: - qualifier.storage = EvqIn; + qualifier.storage = (qualifier.storage == EvqOut) ? EvqInOut : EvqIn; break; case EHTokOut: - qualifier.storage = EvqOut; + qualifier.storage = (qualifier.storage == EvqIn) ? EvqInOut : EvqOut; break; case EHTokInOut: qualifier.storage = EvqInOut; @@ -567,35 +708,41 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) 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)) + if (!parseContext.handleInputGeometry(token.loc, ElgPoints)) return false; break; case EHTokLine: qualifier.storage = EvqIn; - if (!_parseContext.handleInputGeometry(token.loc, ElgLines)) + if (!parseContext.handleInputGeometry(token.loc, ElgLines)) return false; break; case EHTokTriangle: qualifier.storage = EvqIn; - if (!_parseContext.handleInputGeometry(token.loc, ElgTriangles)) + if (!parseContext.handleInputGeometry(token.loc, ElgTriangles)) return false; break; case EHTokLineAdj: qualifier.storage = EvqIn; - if (!_parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) + if (!parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) return false; - break; + break; case EHTokTriangleAdj: qualifier.storage = EvqIn; - if (!_parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) + if (!parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) return false; - break; - + break; + default: return true; } @@ -634,9 +781,9 @@ bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) expected("expression"); return false; } - _parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string, expr); + parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string, expr); } else - _parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string); + parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string); // COMMA if (! acceptTokenClass(EHTokComma)) @@ -782,7 +929,7 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) expected(","); return false; } - + // integer cols if (! peekTokenClass(EHTokIntConstant)) { expected("literal integer"); @@ -827,6 +974,70 @@ bool HlslGrammar::acceptOutputPrimitiveGeometry(TLayoutGeometry& geometry) 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 // @@ -839,13 +1050,14 @@ bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geom if (! acceptTokenClass(EHTokLeftAngle)) return false; - + if (! acceptType(type)) { expected("stream output type"); return false; } - type.getQualifier().storage = EvqVaryingOut; + type.getQualifier().storage = EvqOut; + type.getQualifier().builtIn = EbvGsOutputStream; if (! acceptTokenClass(EHTokRightAngle)) { expected("right angle bracket"); @@ -854,7 +1066,7 @@ bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geom return true; } - + // annotations // : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE // @@ -864,7 +1076,7 @@ bool HlslGrammar::acceptAnnotations(TQualifier&) return false; // note that we are nesting a name space - _parseContext.nestAnnotations(); + parseContext.nestAnnotations(); // declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE do { @@ -876,14 +1088,77 @@ bool HlslGrammar::acceptAnnotations(TQualifier&) break; // declaration - TIntermNode* node; + TIntermNode* node = nullptr; if (! acceptDeclaration(node)) { expected("declaration in annotation"); return false; } } while (true); - _parseContext.unnestAnnotations(); + 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; } @@ -955,14 +1230,15 @@ bool HlslGrammar::acceptTextureType(TType& type) bool array = false; bool ms = false; bool image = false; + bool combined = true; switch (textureType) { - case EHTokBuffer: dim = EsdBuffer; break; + 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 EHTokTexture3d: dim = Esd3D; break; case EHTokTextureCube: dim = EsdCube; break; case EHTokTextureCubearray: dim = EsdCube; array = true; break; case EHTokTexture2DMS: dim = Esd2D; ms = true; break; @@ -980,7 +1256,7 @@ bool HlslGrammar::acceptTextureType(TType& type) 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! @@ -992,7 +1268,13 @@ bool HlslGrammar::acceptTextureType(TType& type) const TBasicType basicRetType = txType.getBasicType() ; - if (basicRetType != EbtFloat && basicRetType != EbtUint && basicRetType != EbtInt) { + switch (basicRetType) { + case EbtFloat: + case EbtUint: + case EbtInt: + case EbtStruct: + break; + default: unimplemented("basic type in texture"); return false; } @@ -1009,8 +1291,8 @@ bool HlslGrammar::acceptTextureType(TType& type) return false; } - if (!txType.isScalar() && !txType.isVector()) { - expected("scalar or vector type"); + if (!txType.isScalar() && !txType.isVector() && !txType.isStruct()) { + expected("scalar, vector, or struct type"); return false; } @@ -1045,7 +1327,10 @@ bool HlslGrammar::acceptTextureType(TType& type) // Buffer, RWBuffer and RWTexture (images) require a TLayoutFormat. We handle only a limit set. if (image || dim == EsdBuffer) - format = _parseContext.getLayoutFromTxType(token.loc, txType); + 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) { @@ -1053,34 +1338,74 @@ bool HlslGrammar::acceptTextureType(TType& type) } else { // DX10 textures are separated. TODO: DX9. if (image) { - sampler.setImage(txType.getBasicType(), dim, array, shadow, ms); + sampler.setImage(txBasicType, dim, array, shadow, ms); } else { - sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + sampler.setTexture(txBasicType, dim, array, shadow, ms); } } - // Remember the declared vector size. - sampler.vectorSize = txType.getVectorSize(); - + // 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) { - // Basic types for min* types, broken out here in case of future - // changes, e.g, to use native halfs. - static const TBasicType min16float_bt = EbtFloat; - static const TBasicType min10float_bt = EbtFloat; - static const TBasicType min16int_bt = EbtInt; - static const TBasicType min12int_bt = EbtInt; - static const TBasicType min16uint_bt = EbtUint; + 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: @@ -1099,9 +1424,18 @@ bool HlslGrammar::acceptType(TType& type) if (! acceptStreamOutTemplateType(type, geometry)) return false; - if (!_parseContext.handleOutputGeometry(token.loc, geometry)) + if (! parseContext.handleOutputGeometry(token.loc, geometry)) return false; - + + return true; + } + + case EHTokInputPatch: // fall through + case EHTokOutputPatch: // ... + { + if (! acceptTessellationPatchTemplateType(type)) + return false; + return true; } @@ -1115,6 +1449,11 @@ bool HlslGrammar::acceptType(TType& type) return acceptSamplerType(type); break; + case EHTokSubpassInput: // fall through + case EHTokSubpassInputMS: // ... + return acceptSubpassInputType(type); + break; + case EHTokBuffer: // fall through case EHTokTexture1d: // ... case EHTokTexture1darray: // ... @@ -1134,19 +1473,33 @@ bool HlslGrammar::acceptType(TType& type) 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); - break; + 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. - token.symbol = _parseContext.symbolTable.find(*token.string); - if (token.symbol && token.symbol->getAsVariable() && token.symbol->getAsVariable()->isUserType()) { - type.shallowCopy(token.symbol->getType()); + if (parseContext.lookupUserType(*token.string, type) != nullptr) { advanceToken(); return true; } else @@ -1229,6 +1582,9 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtUint, EvqTemporary, 4); break; + case EHTokUint64: + new(&type) TType(EbtUint64); + break; case EHTokBool: new(&type) TType(EbtBool); @@ -1247,6 +1603,23 @@ bool HlslGrammar::acceptType(TType& type) 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; @@ -1263,7 +1636,7 @@ bool HlslGrammar::acceptType(TType& type) case EHTokMin16float4: new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin10float: new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); break; @@ -1280,7 +1653,7 @@ bool HlslGrammar::acceptType(TType& type) case EHTokMin10float4: new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin16int: new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); break; @@ -1297,7 +1670,7 @@ bool HlslGrammar::acceptType(TType& type) case EHTokMin16int4: new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin12int: new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); break; @@ -1314,7 +1687,7 @@ bool HlslGrammar::acceptType(TType& type) case EHTokMin12int4: new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 4); break; - + case EHTokMin16uint: new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); break; @@ -1528,6 +1901,55 @@ bool HlslGrammar::acceptType(TType& type) 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; @@ -1583,55 +2005,89 @@ bool HlslGrammar::acceptType(TType& type) 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) +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; - // CBUFFER - if (acceptTokenClass(EHTokCBuffer)) + if (acceptTokenClass(EHTokCBuffer)) { + // CBUFFER storageQualifier = EvqUniform; - // TBUFFER - else if (acceptTokenClass(EHTokTBuffer)) + } else if (acceptTokenClass(EHTokTBuffer)) { + // TBUFFER storageQualifier = EvqBuffer; - // STRUCT - else if (! acceptTokenClass(EHTokStruct)) + readonly = true; + } else if (! acceptTokenClass(EHTokClass) && ! acceptTokenClass(EHTokStruct)) { + // Neither CLASS nor STRUCT return false; + } - // IDENTIFIER + // 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)) { - structName = *token.string; + if (peekTokenClass(EHTokIdentifier) || idString != nullptr) { + if (idString != nullptr) + structName = *idString; + else + structName = *token.string; advanceToken(); } // post_decls TQualifier postDeclQualifier; postDeclQualifier.clear(); - acceptPostDecls(postDeclQualifier); + bool postDeclsFound = acceptPostDecls(postDeclQualifier); - // LEFT_BRACE + // LEFT_BRACE, or + // struct_type IDENTIFIER if (! acceptTokenClass(EHTokLeftBrace)) { - expected("{"); - return false; + if (structName.size() > 0 && !postDeclsFound && parseContext.lookupUserType(structName, type) != nullptr) { + // struct_type IDENTIFIER + return true; + } else { + expected("{"); + return false; + } } + // struct_declaration_list TTypeList* typeList; - if (! acceptStructDeclarationList(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; } @@ -1647,18 +2103,214 @@ bool HlslGrammar::acceptStruct(TType& type) new(&type) TType(typeList, structName); else { postDeclQualifier.storage = storageQualifier; + postDeclQualifier.readonly = readonly; new(&type) TType(typeList, structName, postDeclQualifier); // sets EbtBlock } - // 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) { - TVariable* userTypeDef = new TVariable(&structName, type, true); - if (!_parseContext.symbolTable.insert(*userTypeDef)) - _parseContext.error(token.loc, "redefinition", structName.c_str(), "struct"); + 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; } @@ -1666,61 +2318,96 @@ bool HlslGrammar::acceptStruct(TType& type) // : struct_declaration SEMI_COLON struct_declaration SEMI_COLON ... // // struct_declaration -// : fully_specified_type struct_declarator COMMA struct_declarator ... +// : 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) +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)) - return true; + break; // struct_declaration + // attributes + TAttributes attributes; + acceptAttributes(attributes); + + bool declarator_list = false; + // fully_specified_type TType memberType; - if (! acceptFullySpecifiedType(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 { - // peek IDENTIFIER - if (! peekTokenClass(EHTokIdentifier)) { + if (! acceptIdentifier(idToken)) { expected("member name"); return false; } - // add it to the list of members - TTypeLoc member = { new TType(EbtVoid), token.loc }; - member.type->shallowCopy(memberType); - member.type->setFieldName(*token.string); - typeList->push_back(member); + 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); - // accept IDENTIFIER - advanceToken(); + // array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + if (arraySizes) + typeList->back().type->transferArraySizes(arraySizes); - // array_specifier - TArraySizes* arraySizes = nullptr; - acceptArraySpecifier(arraySizes); - if (arraySizes) - typeList->back().type->newArraySizes(*arraySizes); - - acceptPostDecls(member.type->getQualifier()); + 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)) { + if (acceptTokenClass(EHTokComma)) + declarator_list = true; + else { expected(","); return false; } @@ -1728,12 +2415,49 @@ bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList) } while (true); // SEMI_COLON - if (! acceptTokenClass(EHTokSemicolon)) { + 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 @@ -1768,17 +2492,75 @@ bool HlslGrammar::acceptFunctionParameters(TFunction& function) 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 -// : fully_specified_type post_decls -// | fully_specified_type identifier array_specifier post_decls +// : 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)) + if (! acceptFullySpecifiedType(*type, attributes)) return false; + // merge in the attributes + parseContext.transferTypeAttributes(token.loc, attributes, *type); + // identifier HlslToken idToken; acceptIdentifier(idToken); @@ -1787,20 +2569,30 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); if (arraySizes) { - if (arraySizes->isImplicit()) { - _parseContext.error(token.loc, "function parameter array cannot be implicitly sized", "", ""); + if (arraySizes->hasUnsized()) { + parseContext.error(token.loc, "function parameter requires array size", "[]", ""); return false; } - type->newArraySizes(*arraySizes); + type->transferArraySizes(arraySizes); } // post_decls acceptPostDecls(type->getQualifier()); - _parseContext.paramFix(*type); + TIntermTyped* defaultValue; + if (!acceptDefaultParameterDeclaration(*type, defaultValue)) + return false; - TParameter param = { idToken.string, type }; + 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; @@ -1808,22 +2600,43 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) // Do the work to create the function definition in addition to // parsing the body (compound_statement). -bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node, const TAttributeMap& attributes) +// +// If 'deferredTokens' are passed in, just get the token stream, +// don't process. +// +bool HlslGrammar::acceptFunctionDefinition(TFunctionDeclarator& declarator, TIntermNode*& nodeList, + TVector* deferredTokens) { - TFunction& functionDeclarator = _parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); - TSourceLoc loc = token.loc; + 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() - node = _parseContext.handleFunctionDefinition(loc, functionDeclarator, attributes); + TIntermNode* functionNode = parseContext.handleFunctionDefinition(declarator.loc, *declarator.function, + declarator.attributes, entryPointNode); // compound_statement TIntermNode* functionBody = nullptr; - if (acceptCompoundStatement(functionBody)) { - _parseContext.handleFunctionBody(loc, functionDeclarator, functionBody, node); - return true; - } + if (! acceptCompoundStatement(functionBody)) + return false; - 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 @@ -1837,6 +2650,8 @@ bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& no // bool HlslGrammar::acceptParenExpression(TIntermTyped*& expression) { + expression = nullptr; + // LEFT_PAREN if (! acceptTokenClass(EHTokLeftParen)) expected("("); @@ -1930,8 +2745,19 @@ bool HlslGrammar::acceptInitializer(TIntermTyped*& node) 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 @@ -1991,11 +2817,11 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) return false; } - node = _parseContext.handleAssign(loc, assignOp, node, rightNode); - node = _parseContext.handleLvalue(loc, "assign", node); + node = parseContext.handleAssign(loc, assignOp, node, rightNode); + node = parseContext.handleLvalue(loc, "assign", node); if (node == nullptr) { - _parseContext.error(loc, "could not create assignment", "", ""); + parseContext.error(loc, "could not create assignment", "", ""); return false; } @@ -2022,6 +2848,12 @@ bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node) 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 ?"); @@ -2040,6 +2872,8 @@ bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node) return false; } + --parseContext.controlFlowNestingLevel; + node = intermediate.addSelection(node, trueNode, falseNode, loc); return true; @@ -2083,7 +2917,7 @@ bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel pr node = intermediate.addBinaryMath(op, node, rightNode, loc); if (node == nullptr) { - _parseContext.error(loc, "Could not perform requested binary operation", "", ""); + parseContext.error(loc, "Could not perform requested binary operation", "", ""); return false; } } while (true); @@ -2107,28 +2941,38 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) 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 - TSourceLoc loc = token.loc; if (! acceptUnaryExpression(node)) return false; // Hook it up like a constructor - TFunction* constructorFunction = _parseContext.handleConstructorCall(loc, castType); + 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); + parseContext.handleFunctionArgument(constructorFunction, arguments, node); + node = parseContext.handleFunctionCall(loc, constructorFunction, arguments); - return true; + 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 @@ -2141,7 +2985,7 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) // peek for "op unary_expression" TOperator unaryOp = HlslOpMap::preUnary(peek()); - + // postfix_expression (if no unary operator) if (unaryOp == EOpNull) return acceptPostfixExpression(node); @@ -2160,7 +3004,7 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) // These unary ops require lvalues if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement) - node = _parseContext.handleLvalue(loc, "unary operator", node); + node = parseContext.handleLvalue(loc, "unary operator", node); return node != nullptr; } @@ -2169,17 +3013,19 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) // : LEFT_PAREN expression RIGHT_PAREN // | literal // | constructor -// | identifier +// | 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 an loop at the end + // 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; @@ -2197,14 +3043,28 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } } else if (acceptLiteral(node)) { - // literal (nothing else to do yet), go on to the + // literal (nothing else to do yet) } else if (acceptConstructor(node)) { // constructor (nothing else to do yet) } else if (acceptIdentifier(idToken)) { - // identifier or function_call name + // 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, idToken.symbol, token.string); - } else if (acceptFunctionCall(idToken, node)) { + 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"); @@ -2215,20 +3075,6 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } - // This is to guarantee we do this no matter how we get out of the stack frame. - // This way there's no bug if an early return forgets to do it. - struct tFinalize { - tFinalize(HlslParseContext& p) : _parseContext(p) { } - ~tFinalize() { _parseContext.finalizeFlattening(); } - HlslParseContext& _parseContext; - } finalize(_parseContext); - - // Initialize the flattening accumulation data, so we can track data across multiple bracket or - // dot operators. This can also be nested, e.g, for [], so we have to track each nesting - // level: hence the init and finalize. Even though in practice these must be - // constants, they are parsed no matter what. - _parseContext.initFlattening(); - // Something was found, chain as many postfix operations as exist. do { TSourceLoc loc = token.loc; @@ -2240,6 +3086,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) case EOpIndexIndirect: case EOpPostIncrement: case EOpPostDecrement: + case EOpScoping: advanceToken(); break; default: @@ -2248,26 +3095,28 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) // We have a valid post-unary operator, process it. switch (postOp) { + case EOpScoping: case EOpIndexDirectStruct: { // DOT IDENTIFIER - // includes swizzles and struct members + // includes swizzles, member variables, and member functions HlslToken field; if (! acceptIdentifier(field)) { expected("swizzle or member"); return false; } - TIntermTyped* base = node; // preserve for method function calls - node = _parseContext.handleDotDereference(field.loc, node, *field.string); + if (peekTokenClass(EHTokLeftParen)) { + // member function + TIntermTyped* thisNode = node; - // In the event of a method node, we look for an open paren and accept the function call. - if (node != nullptr && node->getAsMethodNode() != nullptr && peekTokenClass(EHTokLeftParen)) { - if (! acceptFunctionCall(field, node, base)) { + // arguments + if (! acceptFunctionCall(field.loc, *field.string, node, thisNode)) { expected("function parameters"); return false; } - } + } else + node = parseContext.handleDotDereference(field.loc, node, *field.string); break; } @@ -2281,7 +3130,9 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } advanceToken(); - node = _parseContext.handleBracketDereference(indexNode->getLoc(), node, indexNode); + node = parseContext.handleBracketDereference(indexNode->getLoc(), node, indexNode); + if (node == nullptr) + return false; break; } case EOpPostIncrement: @@ -2290,7 +3141,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) case EOpPostDecrement: // DEC_OP node = intermediate.addUnaryMath(postOp, node, loc); - node = _parseContext.handleLvalue(loc, "unary operator", node); + node = parseContext.handleLvalue(loc, "unary operator", node); break; default: assert(0); @@ -2307,21 +3158,23 @@ bool HlslGrammar::acceptConstructor(TIntermTyped*& node) // type TType type; if (acceptType(type)) { - TFunction* constructorFunction = _parseContext.handleConstructorCall(token.loc, type); + TFunction* constructorFunction = parseContext.makeConstructorCall(token.loc, type); if (constructorFunction == nullptr) return false; // arguments TIntermTyped* arguments = nullptr; if (! acceptArguments(constructorFunction, arguments)) { - expected("constructor 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); + node = parseContext.handleFunctionCall(arguments->getLoc(), constructorFunction, arguments); - return true; + return node != nullptr; } return false; @@ -2332,22 +3185,44 @@ bool HlslGrammar::acceptConstructor(TIntermTyped*& node) // function_call // : [idToken] arguments // -bool HlslGrammar::acceptFunctionCall(HlslToken idToken, TIntermTyped*& node, TIntermTyped* base) +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 - TFunction* function = new TFunction(idToken.string, TType(EbtVoid)); TIntermTyped* arguments = nullptr; - - // methods have an implicit first argument of the calling object. - if (base != nullptr) - _parseContext.handleFunctionArgument(function, arguments, base); - + 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; - node = _parseContext.handleFunctionCall(idToken.loc, function, arguments); + // call + node = parseContext.handleFunctionCall(loc, function, arguments); - return true; + return node != nullptr; } // arguments @@ -2362,14 +3237,19 @@ bool HlslGrammar::acceptArguments(TFunction* function, TIntermTyped*& arguments) 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)) - break; + return false; // hook it up - _parseContext.handleFunctionArgument(function, arguments, arg); + parseContext.handleFunctionArgument(function, arguments, arg); // COMMA if (! acceptTokenClass(EHTokComma)) @@ -2394,6 +3274,9 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) 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; @@ -2404,7 +3287,7 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) node = intermediate.addConstantUnion(token.b, token.loc, true); break; case EHTokStringConstant: - node = nullptr; + node = intermediate.addConstantUnion(token.string, token.loc, true); break; default: @@ -2416,6 +3299,37 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) 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 // @@ -2434,7 +3348,7 @@ bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) if (branch != nullptr && (branch->getFlowOp() == EOpCase || branch->getFlowOp() == EOpDefault)) { // hook up individual subsequences within a switch statement - _parseContext.wrapupSwitchSubsequence(compoundStatement, statement); + parseContext.wrapupSwitchSubsequence(compoundStatement, statement); compoundStatement = nullptr; } else { // hook it up to the growing compound statement @@ -2452,18 +3366,18 @@ bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) bool HlslGrammar::acceptScopedStatement(TIntermNode*& statement) { - _parseContext.pushScope(); + parseContext.pushScope(); bool result = acceptStatement(statement); - _parseContext.popScope(); + parseContext.popScope(); return result; } bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) { - _parseContext.pushScope(); + parseContext.pushScope(); bool result = acceptCompoundStatement(statement); - _parseContext.popScope(); + parseContext.popScope(); return result; } @@ -2473,12 +3387,11 @@ bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) // // attributed_statement // : compound_statement -// | SEMICOLON -// | expression SEMICOLON -// | declaration_statement +// | simple_statement // | selection_statement // | switch_statement // | case_label +// | default_label // | iteration_statement // | jump_statement // @@ -2487,7 +3400,7 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) statement = nullptr; // attributes - TAttributeMap attributes; + TAttributes attributes; acceptAttributes(attributes); // attributed_statement @@ -2496,15 +3409,15 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) return acceptScopedCompoundStatement(statement); case EHTokIf: - return acceptSelectionStatement(statement); + return acceptSelectionStatement(statement, attributes); case EHTokSwitch: - return acceptSwitchStatement(statement); + return acceptSwitchStatement(statement, attributes); case EHTokFor: case EHTokDo: case EHTokWhile: - return acceptIterationStatement(statement); + return acceptIterationStatement(statement, attributes); case EHTokContinue: case EHTokBreak: @@ -2517,40 +3430,28 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) case EHTokDefault: return acceptDefaultLabel(statement); - case EHTokSemicolon: - return acceptTokenClass(EHTokSemicolon); - case EHTokRightBrace: // Performance: not strictly necessary, but stops a bunch of hunting early, // and is how sequences of statements end. return false; default: - { - // declaration - if (acceptDeclaration(statement)) - return true; - - // expression - TIntermTyped* node; - if (acceptExpression(node)) - statement = node; - else - return false; - - // SEMICOLON (following an expression) - if (! acceptTokenClass(EHTokSemicolon)) { - expected(";"); - return false; - } - } + return acceptSimpleStatement(statement); } return true; } // attributes -// : list of zero or more of: LEFT_BRACKET attribute RIGHT_BRACKET +// : [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 @@ -2571,24 +3472,39 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) // | PATCHCONSTANTFUNC // | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN // -void HlslGrammar::acceptAttributes(TAttributeMap& attributes) +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 idToken; + HlslToken attributeToken; // LEFT_BRACKET? if (! acceptTokenClass(EHTokLeftBracket)) return; + // another LEFT_BRACKET? + bool doubleBrackets = false; + if (acceptTokenClass(EHTokLeftBracket)) + doubleBrackets = true; - // attribute - if (acceptIdentifier(idToken)) { - // 'idToken.string' is the attribute - } else if (! peekTokenClass(EHTokRightBracket)) { - expected("identifier"); - advanceToken(); + // 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; @@ -2599,7 +3515,7 @@ void HlslGrammar::acceptAttributes(TAttributeMap& attributes) TIntermTyped* node; bool expectingExpression = false; - + while (acceptAssignmentExpression(node)) { expectingExpression = false; expressions->getSequence().push_back(node); @@ -2621,10 +3537,22 @@ void HlslGrammar::acceptAttributes(TAttributeMap& attributes) expected("]"); return; } + // another RIGHT_BRACKET? + if (doubleBrackets && !acceptTokenClass(EHTokRightBracket)) { + expected("]]"); + return; + } - // Add any values we found into the attribute map. This accepts - // (and ignores) values not mapping to a known TAttributeType; - attributes.setAttribute(idToken.string, expressions); + // 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); } @@ -2632,7 +3560,7 @@ void HlslGrammar::acceptAttributes(TAttributeMap& attributes) // : IF LEFT_PAREN expression RIGHT_PAREN statement // : IF LEFT_PAREN expression RIGHT_PAREN statement ELSE statement // -bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) +bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttributes& attributes) { TSourceLoc loc = token.loc; @@ -2642,16 +3570,21 @@ bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) // so that something declared in the condition is scoped to the lifetimes // of the then-else statements - _parseContext.pushScope(); + 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"); @@ -2669,7 +3602,10 @@ bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) // Put the pieces together statement = intermediate.addSelection(condition, thenElse, loc); - _parseContext.popScope(); + parseContext.handleSelectionAttributes(loc, statement->getAsSelectionNode(), attributes); + + parseContext.popScope(); + --parseContext.controlFlowNestingLevel; return true; } @@ -2677,29 +3613,35 @@ bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) // switch_statement // : SWITCH LEFT_PAREN expression RIGHT_PAREN compound_statement // -bool HlslGrammar::acceptSwitchStatement(TIntermNode*& 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(); + parseContext.pushScope(); TIntermTyped* switchExpression; if (! acceptParenExpression(switchExpression)) { - _parseContext.popScope(); + parseContext.popScope(); return false; } // compound_statement - _parseContext.pushSwitchSequence(new TIntermSequence); - bool statementOkay = acceptCompoundStatement(statement); - if (statementOkay) - statement = _parseContext.addSwitch(loc, switchExpression, statement ? statement->getAsAggregate() : nullptr); + parseContext.pushSwitchSequence(new TIntermSequence); - _parseContext.popSwitchSequence(); - _parseContext.popScope(); + ++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; } @@ -2710,7 +3652,7 @@ bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement) // | 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) +bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttributes& attributes) { TSourceLoc loc = token.loc; TIntermTyped* condition = nullptr; @@ -2721,16 +3663,21 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) // 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(); - _parseContext.nestLooping(); + 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)) { @@ -2738,28 +3685,24 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) return false; } - _parseContext.unnestLooping(); - _parseContext.popScope(); + parseContext.unnestLooping(); + parseContext.popScope(); + --parseContext.controlFlowNestingLevel; - statement = intermediate.addLoop(statement, condition, nullptr, true, loc); - - return true; + loopNode = intermediate.addLoop(statement, condition, nullptr, true, loc); + statement = loopNode; + break; case EHTokDo: - _parseContext.nestLooping(); - - if (! acceptTokenClass(EHTokLeftBrace)) - expected("{"); + parseContext.nestLooping(); // this only needs to work right if no errors + ++parseContext.controlFlowNestingLevel; // statement - if (! peekTokenClass(EHTokRightBrace) && ! acceptScopedStatement(statement)) { + if (! acceptScopedStatement(statement)) { expected("do sub-statement"); return false; } - if (! acceptTokenClass(EHTokRightBrace)) - expected("}"); - // WHILE if (! acceptTokenClass(EHTokWhile)) { expected("while"); @@ -2767,18 +3710,21 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) } // LEFT_PAREN condition RIGHT_PAREN - TIntermTyped* condition; if (! acceptParenExpression(condition)) return false; + condition = parseContext.convertConditionalExpression(loc, condition); + if (condition == nullptr) + return false; if (! acceptTokenClass(EHTokSemicolon)) expected(";"); - _parseContext.unnestLooping(); + parseContext.unnestLooping(); + --parseContext.controlFlowNestingLevel; - statement = intermediate.addLoop(statement, condition, 0, false, loc); - - return true; + loopNode = intermediate.addLoop(statement, condition, 0, false, loc); + statement = loopNode; + break; case EHTokFor: { @@ -2788,25 +3734,25 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) // so that something declared in the condition is scoped to the lifetime // of the for sub-statement - _parseContext.pushScope(); + parseContext.pushScope(); // initializer TIntermNode* initNode = nullptr; - if (! acceptControlDeclaration(initNode)) { - TIntermTyped* initExpr = nullptr; - acceptExpression(initExpr); - initNode = initExpr; - } - // SEMI_COLON - if (! acceptTokenClass(EHTokSemicolon)) - expected(";"); + if (! acceptSimpleStatement(initNode)) + expected("for-loop initializer statement"); - _parseContext.nestLooping(); + 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; @@ -2820,17 +3766,21 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) return false; } - statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc); + statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc, loopNode); - _parseContext.popScope(); - _parseContext.unnestLooping(); + parseContext.popScope(); + parseContext.unnestLooping(); + --parseContext.controlFlowNestingLevel; - return true; + break; } default: return false; } + + parseContext.handleLoopAttributes(loc, loopNode, attributes); + return true; } // jump_statement @@ -2858,9 +3808,17 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) 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); @@ -2872,7 +3830,7 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) TIntermTyped* node; if (acceptExpression(node)) { // hook it up - statement = _parseContext.handleReturnValue(token.loc, node); + statement = parseContext.handleReturnValue(token.loc, node); } else statement = intermediate.addBranch(EOpReturn, token.loc); break; @@ -2886,7 +3844,7 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) // SEMICOLON if (! acceptTokenClass(EHTokSemicolon)) expected(";"); - + return true; } @@ -2910,7 +3868,7 @@ bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) return false; } - statement = _parseContext.intermediate.addBranch(EOpCase, expression, loc); + statement = parseContext.intermediate.addBranch(EOpCase, expression, loc); return true; } @@ -2929,7 +3887,7 @@ bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) return false; } - statement = _parseContext.intermediate.addBranch(EOpDefault, loc); + statement = parseContext.intermediate.addBranch(EOpDefault, loc); return true; } @@ -2954,7 +3912,7 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) TSourceLoc loc = token.loc; TIntermTyped* sizeExpr = nullptr; - // Array sizing expression is optional. If ommitted, array will be later sized by initializer list. + // Array sizing expression is optional. If omitted, array will be later sized by initializer list. const bool hasArraySize = acceptAssignmentExpression(sizeExpr); if (! acceptTokenClass(EHTokRightBracket)) { @@ -2964,7 +3922,7 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) if (hasArraySize) { TArraySize arraySize; - _parseContext.arraySizeCheck(loc, sizeExpr, arraySize); + parseContext.arraySizeCheck(loc, sizeExpr, arraySize); arraySizes->addInnerSize(arraySize); } else { arraySizes->addInnerSize(0); // sized by initializers. @@ -2979,11 +3937,18 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) // COLON LAYOUT layout_qualifier_list // annotations // optional // -void HlslGrammar::acceptPostDecls(TQualifier& qualifier) +// 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 + // COLON if (acceptTokenClass(EHTokColon)) { + found = true; HlslToken idToken; if (peekTokenClass(EHTokLayout)) acceptLayoutQualifierList(qualifier); @@ -2991,40 +3956,40 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); - return; + return false; } HlslToken locationToken; if (! acceptIdentifier(locationToken)) { expected("c[subcomponent][.component]"); - return; + return false; } HlslToken componentToken; if (acceptTokenClass(EHTokDot)) { if (! acceptIdentifier(componentToken)) { expected("component"); - return; + return false; } } if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } - _parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); + parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); } else if (! acceptIdentifier(idToken)) { expected("layout, semantic, packoffset, or register"); - return; + 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; + return false; } HlslToken registerDesc; // for Type# HlslToken profile; if (! acceptIdentifier(registerDesc)) { expected("register number description"); - return; + return false; } if (registerDesc.string->size() > 1 && !isdigit((*registerDesc.string)[1]) && acceptTokenClass(EHTokComma)) { @@ -3033,7 +3998,7 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) profile = registerDesc; if (! acceptIdentifier(registerDesc)) { expected("register number description"); - return; + return false; } } int subComponent = 0; @@ -3041,7 +4006,7 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) // LEFT_BRACKET subcomponent RIGHT_BRACKET if (! peekTokenClass(EHTokIntConstant)) { expected("literal integer"); - return; + return false; } subComponent = token.i; advanceToken(); @@ -3055,7 +4020,7 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) if (acceptTokenClass(EHTokComma)) { if (! acceptIdentifier(spaceDesc)) { expected ("space identifier"); - return; + return false; } } // RIGHT_PAREN @@ -3063,17 +4028,93 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) expected(")"); break; } - _parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent, spaceDesc.string); + parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent, spaceDesc.string); } else { // semantic, in idToken.string - _parseContext.handleSemantic(idToken.loc, qualifier, *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)) + } else if (peekTokenClass(EHTokLeftAngle)) { + found = true; acceptAnnotations(qualifier); - else + } 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 index 3de13b317b..046f7957e5 100755 --- a/deps/glslang/glslang/hlsl/hlslGrammar.h +++ b/deps/glslang/glslang/hlsl/hlslGrammar.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2016 Google, Inc. -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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_ @@ -43,15 +43,16 @@ namespace glslang { - class TAttributeMap; // forward declare + 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) { } + HlslGrammar(HlslScanContext& scanner, HlslParseContext& parseContext) + : HlslTokenStream(scanner), parseContext(parseContext), intermediate(parseContext.intermediate), + typeIdentifiers(false) { } virtual ~HlslGrammar() { } bool parse(); @@ -64,27 +65,39 @@ namespace glslang { void unimplemented(const char*); bool acceptIdentifier(HlslToken&); bool acceptCompilationUnit(); - bool acceptDeclaration(TIntermNode*& node); + bool acceptDeclarationList(TIntermNode*&); + bool acceptDeclaration(TIntermNode*&); bool acceptControlDeclaration(TIntermNode*& node); bool acceptSamplerDeclarationDX9(TType&); bool acceptSamplerState(); - bool acceptFullySpecifiedType(TType&); + 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 acceptStruct(TType&); - bool acceptStructDeclarationList(TTypeList*&); + 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(TFunction&, TIntermNode*&, const TAttributeMap&); + bool acceptFunctionDefinition(TFunctionDeclarator&, TIntermNode*& nodeList, TVector* deferredTokens); + bool acceptFunctionBody(TFunctionDeclarator& declarator, TIntermNode*& nodeList); bool acceptParenExpression(TIntermTyped*&); bool acceptExpression(TIntermTyped*&); bool acceptInitializer(TIntermTyped*&); @@ -94,26 +107,32 @@ namespace glslang { bool acceptUnaryExpression(TIntermTyped*&); bool acceptPostfixExpression(TIntermTyped*&); bool acceptConstructor(TIntermTyped*&); - bool acceptFunctionCall(HlslToken, TIntermTyped*&, TIntermTyped* base = nullptr); + bool acceptFunctionCall(const TSourceLoc&, TString& name, TIntermTyped*&, TIntermTyped* objectBase); bool acceptArguments(TFunction*, TIntermTyped*&); bool acceptLiteral(TIntermTyped*&); + bool acceptSimpleStatement(TIntermNode*&); bool acceptCompoundStatement(TIntermNode*&); - bool acceptStatement(TIntermNode*&); bool acceptScopedStatement(TIntermNode*&); bool acceptScopedCompoundStatement(TIntermNode*&); + bool acceptStatement(TIntermNode*&); bool acceptNestedStatement(TIntermNode*&); - void acceptAttributes(TAttributeMap&); - bool acceptSelectionStatement(TIntermNode*&); - bool acceptSwitchStatement(TIntermNode*&); - bool acceptIterationStatement(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*&); - void acceptPostDecls(TQualifier&); + bool acceptPostDecls(TQualifier&); + bool acceptDefaultParameterDeclaration(const TType&, TIntermTyped*&); - HlslParseContext&_parseContext; // state of parsing and helper functions for building the intermediate + 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 diff --git a/deps/glslang/glslang/hlsl/hlslOpMap.cpp b/deps/glslang/glslang/hlsl/hlslOpMap.cpp index 524e66a2a2..ebe6fbd96c 100755 --- a/deps/glslang/glslang/hlsl/hlslOpMap.cpp +++ b/deps/glslang/glslang/hlsl/hlslOpMap.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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 @@ -99,7 +99,7 @@ TOperator HlslOpMap::preUnary(EHlslTokenClass op) case EHTokDash: return EOpNegative; case EHTokBang: return EOpLogicalNot; case EHTokTilde: return EOpBitwiseNot; - + case EHTokIncOp: return EOpPreIncrement; case EHTokDecOp: return EOpPreDecrement; @@ -114,10 +114,12 @@ 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 } } diff --git a/deps/glslang/glslang/hlsl/hlslOpMap.h b/deps/glslang/glslang/hlsl/hlslOpMap.h index 924637878c..4e783f3f0c 100755 --- a/deps/glslang/glslang/hlsl/hlslOpMap.h +++ b/deps/glslang/glslang/hlsl/hlslOpMap.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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_ diff --git a/deps/glslang/glslang/hlsl/hlslParseHelper.cpp b/deps/glslang/glslang/hlsl/hlslParseHelper.cpp index 0239f2c41e..d80f356b55 100755 --- a/deps/glslang/glslang/hlsl/hlslParseHelper.cpp +++ b/deps/glslang/glslang/hlsl/hlslParseHelper.cpp @@ -1,12 +1,12 @@ // -//Copyright (C) 2016 Google, Inc. -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2017 Google, Inc. +// Copyright (C) 2017 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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" @@ -47,21 +47,28 @@ #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, + 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), - contextPragma(true, false), - loopNestingLevel(0), annotationNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), - postEntryPointReturn(false), - limits(resources.limits), - entryPointOutput(nullptr), + TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, + forwardCompatible, messages, &sourceEntryPointName), + annotationNestingLevel(0), + inputPatch(nullptr), nextInLocation(0), nextOutLocation(0), - sourceEntryPointName(sourceEntryPointName) + entryPointFunction(nullptr), + entryPointFunctionBody(nullptr), + gsStreamOutput(nullptr), + clipDistanceOutput(nullptr), + cullDistanceOutput(nullptr), + clipDistanceInput(nullptr), + cullDistanceInput(nullptr) { globalUniformDefaults.clear(); globalUniformDefaults.layoutMatrix = ElmRowMajor; @@ -74,7 +81,12 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int globalInputDefaults.clear(); globalOutputDefaults.clear(); - // "Shaders in the transform + 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 || @@ -124,7 +136,8 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& // 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"; + infoSink.info << sourceLoc.name << "(" << sourceLoc.line << "): error at column " << sourceLoc.column + << ", HLSL parsing failed.\n"; ++numErrors; return false; } @@ -140,23 +153,48 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& // bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const { - if (node == nullptr) + 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()) @@ -166,7 +204,7 @@ TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const components == 2 ? v2 : v4; }; - switch (txType.getBasicType()) { + switch (txBasicType) { case EbtFloat: return selectFormat(ElfR32f, ElfRg32f, ElfRgba32f); case EbtInt: return selectFormat(ElfR32i, ElfRg32i, ElfRgba32i); case EbtUint: return selectFormat(ElfR32ui, ElfRg32ui, ElfRgba32ui); @@ -189,13 +227,20 @@ bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, T 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); } @@ -207,8 +252,8 @@ bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, T // 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) +// +TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* op, TIntermTyped*& node) { if (node == nullptr) return nullptr; @@ -282,20 +327,59 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* loc); }; - // helper to create a temporary variable - const auto addTmpVar = [&](const char* name, const TType& derefType) -> TIntermSymbol* { - TVariable* tmpVar = makeInternalVariable(name, derefType); - tmpVar->getWritableType().getQualifier().makeTemporary(); - return intermediate.addSymbol(*tmpVar, loc); + // 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(); - const TType objDerefType(texSampler.type, EvqTemporary, texSampler.vectorSize); + TType objDerefType; + getTextureReturnType(texSampler, objDerefType); if (nodeAsBinary) { TIntermTyped* rhs = nodeAsBinary->getRight(); @@ -322,12 +406,13 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* // 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): + // 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: + // 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) @@ -339,25 +424,35 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* // 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) { - rhsTmp = addTmpVar("storeTemp", objDerefType); + + 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 = addTmpVar("coordTemp", coord->getType()); + 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, intermediate.addSymbol(*rhsTmp), rhs); + makeBinary(assignOp, addSwizzle(intermediate.addSymbol(*rhsTmp), lhsAsBinary), rhs); } - + makeStore(object, coordTmp, rhsTmp); // add a store return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence } @@ -381,10 +476,10 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* // rhsTmp op // OpImageStore(object, coordTmp, rhsTmp) // rhsTmp - - TIntermSymbol* rhsTmp = addTmpVar("storeTemp", objDerefType); - TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); - + + 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 @@ -403,9 +498,9 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* // rhsTmp2 op // OpImageStore(object, coordTmp, rhsTmp2) // rhsTmp1 (pre-op value) - TIntermSymbol* rhsTmp1 = addTmpVar("storeTempPre", objDerefType); - TIntermSymbol* rhsTmp2 = addTmpVar("storeTempPost", objDerefType); - TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); + 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) @@ -414,7 +509,7 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* makeStore(object, coordTmp, rhsTmp2); // OpImageStore(object, coordTmp, rhsTmp2) return finishSequence(rhsTmp1, objDerefType); // return rhsTmp from sequence } - + default: break; } @@ -423,7 +518,7 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* if (lhs) if (lValueErrorCheck(loc, op, lhs)) return nullptr; - + return node; } @@ -434,109 +529,128 @@ void HlslParseContext::handlePragma(const TSourceLoc& loc, const 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 '.' field selector string and change it into offsets -// for a vector or scalar +// 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::parseVectorFields(const TSourceLoc& loc, const TString& compString, int vecSize, TVectorFields& fields) +bool HlslParseContext::parseMatrixSwizzleSelector(const TSourceLoc& loc, const TString& fields, int cols, int rows, + TSwizzleSelectors& components) { - fields.num = (int)compString.size(); - if (fields.num > 4) { - error(loc, "illegal vector field selection", compString.c_str(), ""); - return false; + 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; + } } - enum { - exyzw, - ergba, - estpq, - } fieldSet[4]; - - for (int i = 0; i < fields.num; ++i) { - switch (compString[i]) { - case 'x': - fields.offsets[i] = 0; - fieldSet[i] = exyzw; - break; - case 'r': - fields.offsets[i] = 0; - fieldSet[i] = ergba; - break; - case 's': - fields.offsets[i] = 0; - fieldSet[i] = estpq; - break; - case 'y': - fields.offsets[i] = 1; - fieldSet[i] = exyzw; - break; - case 'g': - fields.offsets[i] = 1; - fieldSet[i] = ergba; - break; - case 't': - fields.offsets[i] = 1; - fieldSet[i] = estpq; - break; - case 'z': - fields.offsets[i] = 2; - fieldSet[i] = exyzw; - break; - case 'b': - fields.offsets[i] = 2; - fieldSet[i] = ergba; - break; - case 'p': - fields.offsets[i] = 2; - fieldSet[i] = estpq; - break; - - case 'w': - fields.offsets[i] = 3; - fieldSet[i] = exyzw; - break; - case 'a': - fields.offsets[i] = 3; - fieldSet[i] = ergba; - break; - case 'q': - fields.offsets[i] = 3; - fieldSet[i] = estpq; - break; - default: - error(loc, "illegal vector field selection", compString.c_str(), ""); - return false; - } + // 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; } - - for (int i = 0; i < fields.num; ++i) { - if (fields.offsets[i] >= vecSize) { - error(loc, "vector field selection out of range", compString.c_str(), ""); - return false; - } - - if (i > 0) { - if (fieldSet[i] != fieldSet[i - 1]) { - error(loc, "illegal - vector component fields not from the same set", compString.c_str(), ""); - return false; - } - } + 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; + 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, TSymbol* symbol, const TString* string) +TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, const TString* string) { - if (symbol == nullptr) - symbol = symbolTable.find(*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; @@ -546,14 +660,21 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s if (symbol && symbol->getNumExtensions()) requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); - const TVariable* variable; + const TVariable* variable = nullptr; const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : nullptr; TIntermTyped* node = nullptr; if (anon) { - // It was a member of an anonymous container. + // It was a member of an anonymous container, which could be a 'this' structure. // Create a subtree for its dereference. - variable = anon->getAnonContainer().getAsVariable(); + 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); @@ -579,8 +700,10 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s } // Recovery, if it wasn't found or was not a variable. - if (! 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); @@ -605,30 +728,83 @@ TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIn if (base->getType().getBasicType() == EbtSampler && !base->isArray()) { const TSampler& sampler = base->getType().getSampler(); if (sampler.isImage() || sampler.isTexture()) { - TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch); + 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); - load->setType(TType(sampler.type, EvqTemporary, sampler.vectorSize)); - load->setLoc(loc); - load->getSequence().push_back(base); - load->getSequence().push_back(index); + TType sampReturnType; + getTextureReturnType(sampler, sampReturnType); - // Textures need a MIP. First indirection is always to mip 0. If there's another, we'll add it - // later. - if (sampler.isTexture()) - load->getSequence().push_back(intermediate.addConstantUnion(0, loc, true)); + load->setType(sampReturnType); + load->setLoc(loc); + load->getSequence().push_back(base); + load->getSequence().push_back(index); - return load; + // 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) @@ -636,36 +812,43 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, bool flattened = false; int indexValue = 0; - if (index->getQualifier().storage == EvqConst) { + if (index->getQualifier().isFrontEndConstant()) indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); - checkIndex(loc, base->getType(), indexValue); - } 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(), ""); + 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) + } 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 { + } else { // at least one of base and index is variable... - if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) { - if (index->getQualifier().storage != EvqConst) - error(loc, "Invalid variable index to flattened uniform array", base->getAsSymbolNode()->getName().c_str(), ""); + if (index->getQualifier().isFrontEndConstant()) + checkIndex(loc, base->getType(), indexValue); - result = flattenAccess(loc, base, 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().storage == EvqConst) { - if (base->getType().isImplicitlySizedArray()) - updateImplicitArraySize(loc, base, indexValue); + 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 { + } else result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); - } } } @@ -690,23 +873,20 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, return result; } -void HlslParseContext::checkIndex(const TSourceLoc& /*loc*/, const TType& /*type*/, int& /*index*/) -{ - // HLSL todo: any rules for index fixups? -} - // 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* HlslParseContext::handleBinaryMath(const TSourceLoc& loc, const char* str, TOperator op, + TIntermTyped* left, TIntermTyped* right) { TIntermTyped* result = intermediate.addBinaryMath(op, left, right, loc); - if (! result) + 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* HlslParseContext::handleUnaryMath(const TSourceLoc& loc, const char* str, TOperator op, + TIntermTyped* childNode) { TIntermTyped* result = intermediate.addUnaryMath(op, childNode, loc); @@ -717,110 +897,144 @@ TIntermTyped* HlslParseContext::handleUnaryMath(const TSourceLoc& loc, const cha 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. +// 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); - // - // methods can't be resolved until we later see the function-calling syntax. - // Save away the name in the AST for now. Processing is completed in - // handleLengthMethod(), etc. - // - if (field == "length") { - return intermediate.addMethod(base, TType(EbtInt), &field, loc); - } else if (field == "CalculateLevelOfDetail" || - field == "CalculateLevelOfDetailUnclamped" || - field == "Gather" || - field == "GatherRed" || - field == "GatherGreen" || - field == "GatherBlue" || - field == "GatherAlpha" || - field == "GatherCmp" || - field == "GatherCmpRed" || - field == "GatherCmpGreen" || - field == "GatherCmpBlue" || - field == "GatherCmpAlpha" || - field == "GetDimensions" || - field == "GetSamplePosition" || - field == "Load" || - field == "Sample" || - field == "SampleBias" || - field == "SampleCmp" || - field == "SampleCmpLevelZero" || - field == "SampleGrad" || - field == "SampleLevel") { - // If it's not a method on a sampler object, we fall through in case it is a struct member. - if (base->getType().getBasicType() == EbtSampler) { - const TSampler& sampler = base->getType().getSampler(); - if (! sampler.isPureSampler()) { - const int vecSize = sampler.isShadow() ? 1 : 4; // TODO: handle arbitrary sample return sizes - return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc); - } - } - } else if (field == "Append" || - field == "RestartStrip") { - // These methods only valid on stage in variables - // TODO: ... which are stream out types, if there's any way to test that here. - if (base->getType().getQualifier().storage == EvqVaryingOut) { - return intermediate.addMethod(base, TType(EbtVoid), &field, loc); - } - } - - // It's not .length() if we get to here. - if (base->isArray()) { error(loc, "cannot apply to an array:", ".", field.c_str()); - return base; } - // It's neither an array nor .length() if we get here, - // leaving swizzles and struct/block dereferences. - TIntermTyped* result = base; - if (base->isVector() || base->isScalar()) { - TVectorFields fields; - if (! parseVectorFields(loc, field, base->getVectorSize(), fields)) { - fields.num = 1; - fields.offsets[0] = 0; + + 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 (fields.num == 1) + if (selectors.size() == 1) return result; else { - TType type(base->getBasicType(), EvqTemporary, fields.num); + TType type(base->getBasicType(), EvqTemporary, selectors.size()); return addConstructor(loc, base, type); } } if (base->getVectorSize() == 1) { TType scalarType(base->getBasicType(), EvqTemporary, 1); - if (fields.num == 1) + if (selectors.size() == 1) return addConstructor(loc, base, scalarType); else { - TType vectorType(base->getBasicType(), EvqTemporary, fields.num); + TType vectorType(base->getBasicType(), EvqTemporary, selectors.size()); return addConstructor(loc, addConstructor(loc, base, scalarType), vectorType); } } if (base->getType().getQualifier().isFrontEndConstant()) - result = intermediate.foldSwizzle(base, fields, loc); + result = intermediate.foldSwizzle(base, selectors, loc); else { - if (fields.num == 1) { - TIntermTyped* index = intermediate.addConstantUnion(fields.offsets[0], loc); + 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 { - TString vectorString = field; - TIntermTyped* index = intermediate.addSwizzle(fields, loc); + TIntermTyped* index = intermediate.addSwizzle(selectors, loc); result = intermediate.addIndex(EOpVectorSwizzle, base, index, loc); - result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, (int)vectorString.size())); + 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; @@ -832,9 +1046,9 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt } } if (fieldFound) { - if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) - result = flattenAccess(loc, base, member); - else { + if (base->getAsSymbolNode() && wasFlattened(base)) { + result = flattenAccess(base, member); + } else { if (base->getType().getQualifier().storage == EvqConst) result = intermediate.foldDereference(base, member, loc); else { @@ -851,49 +1065,133 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return result; } -// Determine whether we should flatten an arbitrary type. -bool HlslParseContext::shouldFlatten(const TType& type) const +// +// 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) { - return shouldFlattenIO(type) || shouldFlattenUniform(type); -} - -// Is this an IO variable that can't be passed down the stack? -// E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. -bool HlslParseContext::shouldFlattenIO(const TType& type) const -{ - if (! inEntryPoint) + if (base == nullptr) return false; - const TStorageQualifier qualifier = type.getQualifier().storage; + variableCheck(base); - return type.isStruct() && - (qualifier == EvqVaryingIn || - qualifier == EvqVaryingOut); + 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; } -// Is this a uniform array which should be flattened? -bool HlslParseContext::shouldFlattenUniform(const TType& type) const +// 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) { - const TStorageQualifier qualifier = type.getQualifier().storage; + // 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; - return ((type.isArray() && intermediate.getFlattenUniformArrays()) || type.isStruct()) && - qualifier == EvqUniform && - type.containsOpaque(); + 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 TSourceLoc& loc, const TVariable& variable) +void HlslParseContext::flatten(const TVariable& variable, bool linkage) { const TType& type = variable.getType(); - // emplace gives back a pair whose .first is an iterator to the item... - auto entry = flattenMap.emplace(std::pair(variable.getUniqueId(), - TFlattenData(type.getQualifier().layoutBinding))); - - // ... and the item is a map pair, so first->second is the TFlattenData itself. - flatten(loc, variable, type, entry.first->second, ""); + // 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. @@ -902,7 +1200,7 @@ void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) // location in this linear sequence. // // If the tree was N-ary, that can be directly calculated. However, we are dealing with -// arbitrary numbers - peraps a struct of 7 members containing an array of 3. Thus, we must +// 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. // @@ -921,22 +1219,17 @@ void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) // // so the 4th flattened member in traversal order is ours. // -int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, const TType& type, - TFlattenData& flattenData, TString name) +int HlslParseContext::flatten(const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name, bool linkage, + const TQualifier& outerQualifier, + const TArraySizes* builtInArraySizes) { - // TODO: when struct splitting is in place we can remove this restriction. - if (language == EShLangGeometry) { - const TType derefType(type, 0); - if (!isFinalFlattening(derefType) && type.getQualifier().storage == EvqVaryingIn) - error(loc, "recursive type not yet supported in GS input", variable.getName().c_str(), ""); - } - // If something is an arrayed struct, the array flattener will recursively call flatten() // to then flatten the struct, so this is an "if else": we don't do both. if (type.isArray()) - return flattenArray(loc, variable, type, flattenData, name); + return flattenArray(variable, type, flattenData, name, linkage, outerQualifier); else if (type.isStruct()) - return flattenStruct(loc, variable, type, flattenData, name); + return flattenStruct(variable, type, flattenData, name, linkage, outerQualifier, builtInArraySizes); else { assert(0); // should never happen return -1; @@ -945,59 +1238,75 @@ int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, // Add a single flattened member to the flattened data being tracked for the composite // Returns true for the final flattening level. -int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, - const TVariable& variable, const TType& type, TFlattenData& flattenData, - const TString& memberName, bool track) +int HlslParseContext::addFlattenedMember(const TVariable& variable, const TType& type, TFlattenData& flattenData, + const TString& memberName, bool linkage, + const TQualifier& outerQualifier, + const TArraySizes* builtInArraySizes) { - if (isFinalFlattening(type)) { + if (!shouldFlatten(type, outerQualifier.storage, false)) { // This is as far as we flatten. Insert the variable. - TVariable* memberVariable = makeInternalVariable(memberName.c_str(), type); + TVariable* memberVariable = makeInternalVariable(memberName, type); mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); if (flattenData.nextBinding != TQualifier::layoutBindingEnd) memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++; - flattenData.offsets.push_back(flattenData.members.size()); + 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 (track) - trackLinkageDeferred(*memberVariable); + if (linkage) + trackLinkage(*memberVariable); - return flattenData.offsets.size()-1; // location of the member reference + return static_cast(flattenData.offsets.size()) - 1; // location of the member reference } else { // Further recursion required - return flatten(loc, variable, type, flattenData, memberName); + 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. // -// N.B. Erases memory of I/O-related annotations in the original type's member, -// effecting a transfer of this information to the flattened variable form. -// // Assumes shouldFlatten() or equivalent was called first. -int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType& type, - TFlattenData& flattenData, TString name) +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 = flattenData.offsets.size(); - int pos = start; + 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; - const TString memberName = name + (name.empty() ? "" : ".") + dereferencedType.getFieldName(); - - const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, memberName, false); - flattenData.offsets[pos++] = mpos; - - // N.B. Erase I/O-related annotations from the source-type member. - dereferencedType.getQualifier().makeTemporary(); + 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; @@ -1007,13 +1316,11 @@ int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& vari // equivalent set of individual variables. // // Assumes shouldFlatten() or equivalent was called first. -int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType& type, - TFlattenData& flattenData, TString name) +int HlslParseContext::flattenArray(const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name, bool linkage, + const TQualifier& outerQualifier) { - assert(type.isArray()); - - if (type.isImplicitlySizedArray()) - error(loc, "cannot flatten implicitly sized array", variable.getName().c_str(), ""); + assert(type.isSizedArray()); const int size = type.getOuterArraySize(); const TType dereferencedType(type, 0); @@ -1022,15 +1329,16 @@ int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& varia name = variable.getName(); // Reserve space for this tree level. - int start = flattenData.offsets.size(); + int start = static_cast(flattenData.offsets.size()); int pos = start; flattenData.offsets.resize(int(pos + size), -1); - for (int element=0; element < size; ++element) { + for (int element=0; element < size; ++element) { char elementNumBuf[20]; // sufficient for MAXINT snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element); - const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, - name + elementNumBuf, true); + const int mpos = addFlattenedMember(variable, dereferencedType, flattenData, + name + elementNumBuf, linkage, outerQualifier, + type.getArraySizes()); flattenData.offsets[pos++] = mpos; } @@ -1041,61 +1349,220 @@ int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& varia // 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 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 shouldFlatten() or equivalent was called first. -TIntermTyped* HlslParseContext::flattenAccess(const TSourceLoc&, TIntermTyped* base, int member) +// 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()); - const auto flattenData = flattenMap.find(symbolNode.getId()); + 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 base; + return nullptr; // Calculate new cumulative offset from the packed tree - flattenOffset.back() = flattenData->second.offsets[flattenOffset.back() + member]; + int newSubset = flattenData->second.offsets[subset >= 0 ? subset + member : member]; - if (isFinalFlattening(dereferencedType)) { + TIntermSymbol* subsetSymbol; + if (!shouldFlatten(dereferencedType, outerStorage, false)) { // Finished flattening: create symbol for variable - member = flattenData->second.offsets[flattenOffset.back()]; + member = flattenData->second.offsets[newSubset]; const TVariable* memberVariable = flattenData->second.members[member]; - return intermediate.addSymbol(*memberVariable); + 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. - return new TIntermSymbol(symbolNode.getId(), "flattenShadow", dereferencedType); + 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 and -// registered as a linkage node (part of the stage's external interface). -// +// (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::assignLocations(TVariable& variable) +void HlslParseContext::assignToInterface(TVariable& variable) { const auto assignLocation = [&](TVariable& variable) { - const TQualifier& qualifier = variable.getType().getQualifier(); - if (qualifier.storage == EvqVaryingIn || qualifier.storage == EvqVaryingOut) { - if (qualifier.builtIn == EbvNone) { - if (qualifier.storage == EvqVaryingIn) { - variable.getWritableType().getQualifier().layoutLocation = nextInLocation; - nextInLocation += intermediate.computeTypeLocationSize(variable.getType()); - } else { - variable.getWritableType().getQualifier().layoutLocation = nextOutLocation; - nextOutLocation += intermediate.computeTypeLocationSize(variable.getType()); + 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); } - trackLinkage(variable); } }; @@ -1103,15 +1570,19 @@ void HlslParseContext::assignLocations(TVariable& variable) auto& memberList = flattenMap[variable.getUniqueId()].members; for (auto member = memberList.begin(); member != memberList.end(); ++member) assignLocation(**member); - } else + } 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. // -TFunction& HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunction& function, bool prototype) +void HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunction& function, bool prototype) { // // Multiple declarations of the same function name are allowed. @@ -1139,27 +1610,46 @@ TFunction& HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFu // other forms of name collisions. if (! symbolTable.insert(function)) error(loc, "function name is redeclaration of existing name", function.getName().c_str(), ""); +} - // - // If this is a redeclaration, it could also be a definition, - // in which case, we need to use the parameter names from this one, and not the one that's - // being redeclared. So, pass back this declaration, not the one in the symbol table. - // - return function; +// 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. +// Handle seeing the function prototype in front of a function definition in the grammar. // The body is handled after this function returns. // -TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function, - const TAttributeMap& attributes) +// 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) + 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 @@ -1178,23 +1668,9 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l currentFunctionType = new TType(EbtVoid); functionReturnsValue = false; - inEntryPoint = function.getName().compare(intermediate.getEntryPointName().c_str()) == 0; - if (inEntryPoint) { - intermediate.setEntryPointMangledName(function.getMangledName().c_str()); - intermediate.incrementEntryPointCount(); - remapEntryPointIO(function); - if (entryPointOutput) { - if (shouldFlatten(entryPointOutput->getType())) - flatten(loc, *entryPointOutput); - assignLocations(*entryPointOutput); - } - } else - remapNonEntryPointIO(function); - - // Insert the $Global constant buffer. - // TODO: this design fails if new members are declared between function definitions. - if (! insertGlobalUniformBlock()) - error(loc, "failed to insert the global constant buffer", "uniform", ""); + // 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 @@ -1215,59 +1691,496 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l 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(), ""); - else { - // get IO straightened out - if (inEntryPoint) { - if (shouldFlatten(*param.type)) - flatten(loc, *variable); - assignLocations(*variable); + + // 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); } - - // Transfer ownership of name pointer to symbol table. - param.name = nullptr; - + } 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; - // Handle function attributes - if (inEntryPoint) { - const TIntermAggregate* numThreads = attributes[EatNumThreads]; - if (numThreads != nullptr) { - const TIntermSequence& sequence = numThreads->getSequence(); - - for (int lid = 0; lid < int(sequence.size()); ++lid) - intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); - } - - const TIntermAggregate* maxVertexCount = attributes[EatMaxVertexCount]; - if (maxVertexCount != nullptr) { - intermediate.setVertices(maxVertexCount->getSequence()[0]->getAsConstantUnion()->getConstArray()[0].getIConst()); - } - } - return paramNodes; } -void HlslParseContext::handleFunctionBody(const TSourceLoc& loc, TFunction& function, TIntermNode* functionBody, TIntermNode*& node) +// 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()); @@ -1276,45 +2189,126 @@ void HlslParseContext::handleFunctionBody(const TSourceLoc& loc, TFunction& func // 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) +void HlslParseContext::remapEntryPointIO(TFunction& function, TVariable*& returnValue, + TVector& inputs, TVector& outputs) { - // Will auto-assign locations here to the inputs/outputs defined by the entry point - - const auto remapType = [&](TType& type) { - const auto remapBuiltInType = [&](TType& type) { - switch (type.getQualifier().builtIn) { - case EbvFragDepthGreater: - intermediate.setDepth(EldGreater); - type.getQualifier().builtIn = EbvFragDepth; - break; - case EbvFragDepthLesser: - intermediate.setDepth(EldLess); - type.getQualifier().builtIn = EbvFragDepth; - break; - default: - break; - } + // 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); }; - remapBuiltInType(type); - if (type.isStruct()) { - auto members = *type.getStruct(); - for (auto member = members.begin(); member != members.end(); ++member) - remapBuiltInType(*member->type); + + 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) { - entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); - entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; - remapType(function.getWritableType()); + 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; - paramType.getQualifier().storage = paramType.getQualifier().isParamInput() ? EvqVaryingIn : EvqVaryingOut; - remapType(paramType); + 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); + } } } @@ -1322,15 +2316,15 @@ void HlslParseContext::remapEntryPointIO(TFunction& function) // declares entry point IO built-ins, but these have to be undone. void HlslParseContext::remapNonEntryPointIO(TFunction& function) { - const auto remapBuiltInType = [&](TType& type) { type.getQualifier().builtIn = EbvNone; }; - // return value if (function.getType().getBasicType() != EbtVoid) - remapBuiltInType(function.getWritableType()); + clearUniformInputOutput(function.getWritableType().getQualifier()); - // parameters + // parameters. + // References to structuredbuffer types are left unmodified for (int i = 0; i < function.getParamCount(); i++) - remapBuiltInType(*function[i].type); + if (!isReference(*function[i].type)) + clearUniformInputOutput(function[i].type->getQualifier()); } // Handle function returns, including type conversions to the function return type @@ -1345,36 +2339,22 @@ TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermT } else if (*currentFunctionType != value->getType()) { value = intermediate.addConversion(EOpReturn, *currentFunctionType, value); if (value && *currentFunctionType != value->getType()) - value = intermediate.addShapeConversion(EOpReturn, *currentFunctionType, value); - if (value == nullptr) { + 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; } } - // The entry point needs to send any return value to the entry-point output instead. - // So, a subtree is built up, as a two-part sequence, with the first part being an - // assignment subtree, and the second part being a return with no value. - // - // Otherwise, for a non entry point, just return a return statement. - if (inEntryPoint) { - assert(entryPointOutput != nullptr); // should have been error tested at the beginning - TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), - entryPointOutput->getType()); - TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, value); - returnSequence = intermediate.makeAggregate(returnSequence); - returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc), loc); - returnSequence->getAsAggregate()->setOperator(EOpSequence); - - return returnSequence; - } else - return intermediate.addBranch(EOpReturn, value, loc); + return intermediate.addBranch(EOpReturn, value, loc); } -void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped*& arguments, TIntermTyped* newArg) +void HlslParseContext::handleFunctionArgument(TFunction* function, + TIntermTyped*& arguments, TIntermTyped* newArg) { - TParameter param = { 0, new TType }; + TParameter param = { 0, new TType, nullptr }; param.type->shallowCopy(newArg->getType()); + function->addParameter(param); if (arguments) arguments = intermediate.growAggregate(arguments, newArg); @@ -1382,23 +2362,365 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* 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 +// of AST assignments. Catch these and flatten, otherwise, pass through // to intermediate.addAssign(). -TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) const +// +// 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; - const auto mustFlatten = [&](const TIntermTyped& node) { - return wasFlattened(&node) && node.getAsSymbolNode() && - flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end(); + // 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()); }; - const bool flattenLeft = mustFlatten(*left); - const bool flattenRight = mustFlatten(*right); - if (! flattenLeft && ! flattenRight) + // 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; @@ -1406,15 +2728,11 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op // 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; + TVariable* rhsTempVar = nullptr; // If the RHS is a simple symbol node, we'll copy it for each member. TIntermSymbol* cloneSymNode = nullptr; - // Array structs are not yet handled in flattening. (Compilation error upstream, so - // this should never fire). - assert(!(left->getType().isStruct() && left->getType().isArray())); - int memberCount = 0; // Track how many items there are to copy. @@ -1423,17 +2741,17 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op if (left->getType().isArray()) memberCount = left->getType().getCumulativeArraySize(); - if (flattenLeft) + if (isFlattenLeft) leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second.members; - if (flattenRight) { + 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 { @@ -1447,80 +2765,240 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op TIntermTyped* noFlattenRHS = intermediate.addSymbol(*rhsTempVar, loc); // Add this to the aggregate being built. - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, noFlattenRHS, right, loc), loc); + assignList = intermediate.growAggregate(assignList, + intermediate.addAssign(op, noFlattenRHS, right, loc), loc); } } } - int memberIdx = 0; + // 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; - const auto getMember = [&](bool flatten, TIntermTyped* node, - const TVector& memberVariables, int member, - TOperator op, const TType& memberType) -> TIntermTyped * { TIntermTyped* subTree; - if (flatten && isFinalFlattening(memberType)) { - subTree = intermediate.addSymbol(*memberVariables[memberIdx++]); + 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 { - subTree = intermediate.addIndex(op, node, intermediate.addConstantUnion(member, loc), loc); - subTree->setType(memberType); + // 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) -> void { + 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: - if (left->getType().isArray()) { + 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 - const TType dereferencedType(left->getType(), 0); + for (int element = 0; element < elementsToCopy; ++element) { + arrayElement.push_back(element); - for (int element=0; element < left->getType().getOuterArraySize(); ++element) { - // Add a new AST symbol node if we have a temp variable holding a complex RHS. - TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, element, - EOpIndexDirect, dereferencedType); - TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element, - EOpIndexDirect, dereferencedType); + // 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); - if (isFinalFlattening(dereferencedType)) - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); - else - traverse(subLeft, subRight); + 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()) { + } else if (left->getType().isStruct() && (shouldFlattenSubsetLeft || isSplitLeft || + shouldFlattenSubsetRight || isSplitRight)) { // struct case - const auto& members = *left->getType().getStruct(); + const auto& membersL = *left->getType().getStruct(); + const auto& membersR = *right->getType().getStruct(); - for (int member = 0; member < (int)members.size(); ++member) { - TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member, - EOpIndexDirectStruct, *members[member].type); - TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member, - EOpIndexDirectStruct, *members[member].type); + // 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; - if (isFinalFlattening(*members[member].type)) - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); - else - traverse(subLeft, subRight); + // 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 { - assert(0); // we should never be called on a non-flattenable thing, because - // that case bails out above to a simple copy. + // Member copy + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, left, right, loc), loc); } }; - // Use the proper RHS node: a new symbol from a TVariable, copy - // of an TIntermSymbol node, or sometimes the right node directly. - right = rhsTempVar ? intermediate.addSymbol(*rhsTempVar, loc) : - cloneSymNode ? intermediate.addSymbol(*cloneSymNode) : - right; + 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); + traverse(left, right, splitLeft, splitRight, true); assert(assignList != nullptr); assignList->setOperator(EOpSequence); @@ -1528,6 +3006,66 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op 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. @@ -1544,7 +3082,7 @@ TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, boo case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; case EOpInterlockedExchange: return isImage ? EOpImageAtomicExchange : EOpAtomicExchange; - case EOpInterlockedCompareStore: // TODO: ... + case EOpInterlockedCompareStore: // TODO: ... default: error(loc, "unknown atomic operation", "unknown op", ""); return EOpNull; @@ -1554,7 +3092,8 @@ TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, boo // // Create a combined sampler/texture from separate sampler and texture. // -TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler) +TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, + TIntermTyped* argSampler) { TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); @@ -1563,7 +3102,66 @@ TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc TSampler samplerType = argTex->getType().getSampler(); samplerType.combined = true; - samplerType.shadow = argSampler->getType().getSampler().shadow; + + // 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); @@ -1571,34 +3169,600 @@ TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc 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 || !node->getAsOperator()) + if (node == nullptr || !node->getAsOperator()) return; - const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) -> TIntermTyped* { - // Sampler return must always be a vec4, but we can construct a shorter vector + // 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())); - if (sampler.vectorSize < (unsigned)node->getVectorSize()) { - // Too many components. Construct shorter vector from it. - const TType clampedType(result->getType().getBasicType(), EvqTemporary, sampler.vectorSize); + TIntermTyped* convertedResult = nullptr; + + TType retType; + getTextureReturnType(sampler, retType); - const TOperator op = intermediate.mapTypeToConstructorOp(clampedType); + if (retType.isStruct()) { + // For type convenience, conversionAggregate points to the convertedResult (we know it's an aggregate here) + TIntermAggregate* conversionAggregate = new TIntermAggregate; + convertedResult = conversionAggregate; - result = constructBuiltIn(clampedType, op, result, loc, false); + // 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; + } } - result->setLoc(loc); - return 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: @@ -1643,8 +3807,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType tex->getSequence().push_back(arg0); // sampler tex->getSequence().push_back(constructCoord); // coordinate tex->getSequence().push_back(bias); // bias - - node = clampReturn(tex, sampler); + + node = convertReturn(tex, sampler); break; } @@ -1684,11 +3848,11 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - node = clampReturn(txsample, sampler); + node = convertReturn(txsample, sampler); break; } - + case EOpMethodSampleGrad: // ... { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); @@ -1717,7 +3881,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - node = clampReturn(txsample, sampler); + node = convertReturn(txsample, sampler); break; } @@ -1739,6 +3903,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType 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; @@ -1749,6 +3914,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType 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"); } @@ -1757,17 +3923,31 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (sampler.isArrayed()) ++numDims; - // Establish whether we're querying mip levels - const bool mipQuery = (numArgs > (numDims + 1)) && (!sampler.isMultiSample()); + // 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 querying an explicit LOD, add the LOD, which is always arg #1 - if (mipQuery) { - TIntermTyped* queryLod = argAggregate->getSequence()[1]->getAsTyped(); + + // 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); @@ -1795,7 +3975,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType } else { indexedOut = sizeQueryReturn; } - + TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + compNum]->getAsTyped(); TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, indexedOut, loc); @@ -1823,7 +4003,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType 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); } @@ -1846,10 +4026,22 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType 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 @@ -1918,14 +4110,16 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType coordSwizzle = argCoord; } else { // Extract coordinate - TVectorFields coordFields(0,1,2,3); - coordFields.num = argCoord->getType().getVectorSize() - (isMS ? 0 : 1); + 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.num)); + coordSwizzle->setType(TType(coordBaseType, EvqTemporary, coordFields.size())); // Extract LOD - TIntermTyped* lodIdx = intermediate.addConstantUnion(coordFields.num, loc, true); + TIntermTyped* lodIdx = intermediate.addConstantUnion(coordFields.size(), loc, true); lodComponent = intermediate.addIndex(EOpIndexDirect, argCoord, lodIdx, loc); lodComponent->setType(TType(coordBaseType, EvqTemporary, 1)); } @@ -1963,7 +4157,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txfetch->getSequence().push_back(argOffset); } - node = clampReturn(txfetch, sampler); + node = convertReturn(txfetch, sampler); break; } @@ -1976,12 +4170,12 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType 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); @@ -1994,7 +4188,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - node = clampReturn(txsample, sampler); + node = convertReturn(txsample, sampler); break; } @@ -2028,7 +4222,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } - + case EOpMethodGatherRed: // fall through... case EOpMethodGatherGreen: // ... case EOpMethodGatherBlue: // ... @@ -2056,8 +4250,10 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // 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. - if (cmpValues) { + // 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; } @@ -2079,6 +4275,18 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType 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)); @@ -2125,9 +4333,9 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // we construct an array from the separate args. if (hasOffset4) { TType arrayType(EbtInt, EvqTemporary, 2); - TArraySizes arraySizes; - arraySizes.addInnerSize(4); - arrayType.newArraySizes(arraySizes); + TArraySizes* arraySizes = new TArraySizes; + arraySizes->addInnerSize(4); + arrayType.transferArraySizes(arraySizes); TIntermAggregate* initList = new TIntermAggregate(EOpNull); @@ -2138,14 +4346,16 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType } // Add comparison value if we have one - if (argTex->getType().getSampler().isShadow()) + 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); - txgather->getSequence().push_back(argChannel); + // 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); @@ -2182,10 +4392,90 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType case EOpMethodGetSamplePosition: { - error(loc, "unimplemented: GetSamplePosition", "", ""); + // 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 } @@ -2196,7 +4486,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // void HlslParseContext::decomposeGeometryMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) { - if (!node || !node->getAsOperator()) + if (node == nullptr || !node->getAsOperator()) return; const TOperator op = node->getAsOperator()->getOp(); @@ -2205,29 +4495,42 @@ void HlslParseContext::decomposeGeometryMethods(const TSourceLoc& loc, TIntermTy 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)); - sequence = intermediate.growAggregate(sequence, - intermediate.addAssign(EOpAssign, - argAggregate->getSequence()[0]->getAsTyped(), - argAggregate->getSequence()[1]->getAsTyped(), loc), - loc); + 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)); @@ -2266,13 +4569,29 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& 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(); @@ -2306,6 +4625,28 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& 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) @@ -2369,28 +4710,35 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& arg0->getType().isVector())); // calculate # of components for comparison const - const int constComponentCount = + const int constComponentCount = std::max(arg0->getType().getVectorSize(), 1) * std::max(arg0->getType().getMatrixCols(), 1) * std::max(arg0->getType().getMatrixRows(), 1); TConstUnion zero; - zero.setDConst(0.0); + 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 = intermediate.addConstantUnion(0, type0, loc, true); + 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; } @@ -2459,7 +4807,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& atomic->setType(arg0->getType()); atomic->getWritableType().getQualifier().makeTemporary(); atomic->setLoc(loc); - + if (isImage) { // orig_value = imageAtomicOp(image, loc, data) imageAtomicParams(atomic, arg0); @@ -2482,6 +4830,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& } else { // Set the matching operator. Since output is absent, this is all we need to do. node->getAsAggregate()->setOperator(atomicOp); + node->setType(atomic->getType()); } } @@ -2510,7 +4859,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& atomic->getSequence().push_back(arg1); atomic->getSequence().push_back(arg2); node = intermediate.addAssign(EOpAssign, arg3, atomic, loc); - + break; } @@ -2536,7 +4885,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& intermediate.addConversion(EOpConstructFloat, TType(EbtFloat, EvqTemporary, 2), iU), recip16); - + TIntermAggregate* interp = new TIntermAggregate(EOpInterpolateAtOffset); interp->getSequence().push_back(arg0); interp->getSequence().push_back(floatOffset); @@ -2580,7 +4929,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& 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)); @@ -2615,15 +4964,240 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& 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 EOpF16tof32: + case EOpF32tof16: { - // Temporary until decomposition is available. - error(loc, "unimplemented intrinsic: handle natively", "f32tof16", ""); + // 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; } @@ -2641,14 +5215,12 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& // - user function // - subroutine call (not implemented yet) // -TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction* function, TIntermNode* arguments) +TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction* function, TIntermTyped* arguments) { TIntermTyped* result = nullptr; TOperator op = function->getBuiltInOp(); - if (op == EOpArrayLength) - result = handleLengthMethod(loc, function, arguments); - else if (op != EOpNull) { + if (op != EOpNull) { // // Then this should be a constructor. // Don't go through the symbol table for constructors. @@ -2659,17 +5231,59 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct // // It's a constructor, of type 'type'. // - result = addConstructor(loc, arguments, type); - if (result == nullptr) + 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; - bool builtIn; - fnCandidate = findFunction(loc, *function, builtIn, arguments); + 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, @@ -2678,16 +5292,39 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct // Error check for a function requiring specific extensions present. if (builtIn && fnCandidate->getNumExtensions()) - requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str()); + requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), + fnCandidate->getName().c_str()); - // Convert 'in' arguments + // 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()); + 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", @@ -2700,104 +5337,180 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct // 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(fnCandidate->getMangledName()); + 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, fnCandidate->getMangledName()); + 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; + const TIntermTyped* fnNode = result; - decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions - decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions - decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions + 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()) { - TQualifierList& qualifierList = result->getAsAggregate()->getQualifierList(); - for (int i = 0; i < fnCandidate->getParamCount(); ++i) { - TStorageQualifier qual = (*fnCandidate)[i].type->getQualifier().storage; - qualifierList.push_back(qual); - } + 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 + // 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; } -// Finish processing object.length(). This started earlier in handleDotDereference(), where -// the ".length" part was recognized and semantically checked, and finished here where the -// function syntax "()" is recognized. -// -// Return resulting tree node. -TIntermTyped* HlslParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction* function, TIntermNode* intermNode) +// 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) { - int length = 0; + 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); +} - if (function->getParamCount() > 0) - error(loc, "method does not accept any arguments", function->getName().c_str(), ""); - else { - const TType& type = intermNode->getAsTyped()->getType(); - if (type.isArray()) { - if (type.isRuntimeSizedArray()) { - // Create a unary op and let the back end handle it - return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); - } else - length = type.getOuterArraySize(); - } else if (type.isMatrix()) - length = type.getMatrixCols(); - else if (type.isVector()) - length = type.getVectorSize(); - else { - // we should not get here, because earlier semantic checking should have prevented this path - error(loc, ".length()", "unexpected use of .length()", ""); - } +// +// 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; } - if (length == 0) - length = 1; + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); - return intermediate.addConstantUnion(length, loc); + 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, TIntermNode*& arguments) const +void HlslParseContext::addInputArgumentConversions(const TFunction& function, TIntermTyped*& arguments) { TIntermAggregate* aggregate = arguments->getAsAggregate(); - const auto setArg = [&](int argNum, TIntermNode* arg) { + + // Replace a single argument with a single argument. + const auto setArg = [&](int paramNum, TIntermTyped* arg) { if (function.getParamCount() == 1) arguments = arg; else { - if (aggregate) - aggregate->getSequence()[argNum] = arg; - else + if (aggregate == nullptr) arguments = arg; + else + aggregate->getSequence()[paramNum] = arg; } }; // Process each argument's conversion - for (int i = 0; i < function.getParamCount(); ++i) { - if (! function[i].type->getQualifier().isParamInput()) + 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' @@ -2805,38 +5518,119 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // means take 'arguments' itself as the one argument. TIntermTyped* arg = function.getParamCount() == 1 ? arguments->getAsTyped() - : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); - if (*function[i].type != arg->getType()) { + : (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. - arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); - arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg); - setArg(i, arg); + 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)) { - // Will make a two-level subtree. - // The deepest will copy member-by-member to build the structure to pass. - // The level above that will be a two-operand EOpComma sequence that follows the copy by the - // object itself. - TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); - internalAggregate->getWritableType().getQualifier().makeTemporary(); - TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), - internalAggregate->getName(), - internalAggregate->getType()); - internalSymbolNode->setLoc(arg->getLoc()); - // This makes the deepest level, the member-wise copy - TIntermAggregate* assignAgg = handleAssign(arg->getLoc(), EOpAssign, internalSymbolNode, arg)->getAsAggregate(); + // 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(i, assignAgg); + // 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 @@ -2908,7 +5702,8 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu 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); + 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()); @@ -2929,6 +5724,54 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu 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. @@ -2969,7 +5812,8 @@ void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fn 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.getParamCount() > 2 || fnCandidate[0].type->getSampler().dim == EsdRect || + fnCandidate[0].type->getSampler().shadow) { if (! fnCandidate[0].type->getSampler().shadow) compArg = 2; } @@ -3024,14 +5868,15 @@ void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fn } if (arg > 0) { - if (! aggArgs[arg]->getAsConstantUnion()) + 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]"); + error(loc, "value is out of range:", "texel offset", + "[gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]"); } } } @@ -3067,7 +5912,8 @@ void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fn // 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(), ""); + error(loc, "first argument must be an interpolant, or interpolant-array element", + fnCandidate.getName().c_str(), ""); } break; @@ -3077,9 +5923,13 @@ void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fn } // -// Handle seeing a built-in constructor in a grammar production. +// Handle seeing something in a grammar production that can be done by calling +// a constructor. // -TFunction* HlslParseContext::handleConstructorCall(const TSourceLoc& loc, const TType& type) +// 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); @@ -3097,119 +5947,62 @@ TFunction* HlslParseContext::handleConstructorCall(const TSourceLoc& loc, const // 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, const TString& semantic) +void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, TBuiltInVariable builtIn, + const TString& upperCase) { - // TODO: need to know if it's an input or an output - // The following sketches what needs to be done, but can't be right - // without taking into account stage and input/output. + // 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; - TString semanticUpperCase = semantic; - std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); - // 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) { - if (semanticUpperCase == "PSIZE") - qualifier.builtIn = EbvPointSize; - else if (semantic == "FOG") - qualifier.builtIn = EbvFogFragCoord; - else if (semanticUpperCase == "DEPTH") - qualifier.builtIn = EbvFragDepth; - else if (semanticUpperCase == "VFACE") - qualifier.builtIn = EbvFace; - else if (semanticUpperCase == "VPOS") - qualifier.builtIn = EbvFragCoord; + 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; } - //SV Position has a different meaning in vertex vs fragment - if (semanticUpperCase == "SV_POSITION" && language != EShLangFragment) - qualifier.builtIn = EbvPosition; - else if (semanticUpperCase == "SV_POSITION" && language == EShLangFragment) - qualifier.builtIn = EbvFragCoord; - else if (semanticUpperCase == "SV_CLIPDISTANCE") - qualifier.builtIn = EbvClipDistance; - else if (semanticUpperCase == "SV_CULLDISTANCE") - qualifier.builtIn = EbvCullDistance; - else if (semanticUpperCase == "SV_VERTEXID") - qualifier.builtIn = EbvVertexIndex; - else if (semanticUpperCase == "SV_VIEWPORTARRAYINDEX") - qualifier.builtIn = EbvViewportIndex; - else if (semanticUpperCase == "SV_TESSFACTOR") - qualifier.builtIn = EbvTessLevelOuter; - - //Targets are defined 0-7 - else if (semanticUpperCase == "SV_TARGET") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 0; - } else if (semanticUpperCase == "SV_TARGET0") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 0; - } else if (semanticUpperCase == "SV_TARGET1") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 1; - } else if (semanticUpperCase == "SV_TARGET2") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 2; - } else if (semanticUpperCase == "SV_TARGET3") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 3; - } else if (semanticUpperCase == "SV_TARGET4") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 4; - } else if (semanticUpperCase == "SV_TARGET5") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 5; - } else if (semanticUpperCase == "SV_TARGET6") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 6; - } else if (semanticUpperCase == "SV_TARGET7") { - qualifier.builtIn = EbvNone; - //qualifier.layoutLocation = 7; - } else if (semanticUpperCase == "SV_SAMPLEINDEX") - qualifier.builtIn = EbvSampleId; - else if (semanticUpperCase == "SV_RENDERTARGETARRAYINDEX") - qualifier.builtIn = EbvLayer; - else if (semanticUpperCase == "SV_PRIMITIVEID") - qualifier.builtIn = EbvPrimitiveId; - else if (semanticUpperCase == "SV_OUTPUTCONTROLPOINTID") - qualifier.builtIn = EbvInvocationId; - else if (semanticUpperCase == "SV_ISFRONTFACE") - qualifier.builtIn = EbvFace; - else if (semanticUpperCase == "SV_INSTANCEID") - qualifier.builtIn = EbvInstanceIndex; - else if (semanticUpperCase == "SV_INSIDETESSFACTOR") - qualifier.builtIn = EbvTessLevelInner; - else if (semanticUpperCase == "SV_GSINSTANCEID") - qualifier.builtIn = EbvInvocationId; - else if (semanticUpperCase == "SV_DISPATCHTHREADID") - qualifier.builtIn = EbvLocalInvocationId; - else if (semanticUpperCase == "SV_GROUPTHREADID") - qualifier.builtIn = EbvLocalInvocationId; - else if (semanticUpperCase == "SV_GROUPID") - qualifier.builtIn = EbvWorkGroupId; - else if (semanticUpperCase == "SV_DOMAINLOCATION") - qualifier.builtIn = EbvTessCoord; - else if (semanticUpperCase == "SV_DEPTH") - qualifier.builtIn = EbvFragDepth; - else if( semanticUpperCase == "SV_COVERAGE") - qualifier.builtIn = EbvSampleMask; - - //TODO, these need to get refined to be more specific - else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") - qualifier.builtIn = EbvFragDepthGreater; - else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") - qualifier.builtIn = EbvFragDepthLesser; - else if( semanticUpperCase == "SV_STENCILREF") - error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", ""); - else if( semanticUpperCase == "SV_GROUPINDEX") - error(loc, "unimplemented", "SV_GROUPINDEX", ""); + if (qualifier.builtIn == EbvNone) + qualifier.builtIn = builtIn; + qualifier.semanticName = intermediate.addSemanticName(upperCase); } // @@ -3280,13 +6073,30 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi } // 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': - qualifier.layoutBinding = regNumber + subComponent; + // 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]); @@ -3307,7 +6117,9 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi return true; }; - if (spaceDesc) { + // 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; @@ -3316,6 +6128,20 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi } } +// 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. // @@ -3403,7 +6229,6 @@ void HlslParseContext::globalCheck(const TSourceLoc& loc, const char* token) error(loc, "not allowed in nested scope", token, ""); } - bool HlslParseContext::builtInName(const TString& /*identifier*/) { return false; @@ -3443,6 +6268,33 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node 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: @@ -3461,7 +6313,7 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node bool arrayArg = false; for (int arg = 0; arg < function.getParamCount(); ++arg) { if (function[arg].type->isArray()) { - if (! function[arg].type->isExplicitlySizedArray()) { + if (function[arg].type->isUnsizedArray()) { // Can't construct from an unsized array. error(loc, "array argument must be sized", "constructor", ""); return true; @@ -3496,10 +6348,10 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node return true; } - if (type.isImplicitlySizedArray()) { + if (type.isUnsizedArray()) { // auto adapt the constructor type to the number of arguments type.changeOuterArraySize(function.getParamCount()); - } else if (type.getOuterArraySize() != function.getParamCount()) { + } else if (type.getOuterArraySize() != function.getParamCount() && type.computeNumComponents() > size) { error(loc, "array constructor needs one argument per array element", "constructor", ""); return true; } @@ -3508,26 +6360,33 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node // 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(); + TArraySizes& arraySizes = *type.getArraySizes(); // At least the dimensionalities have to match. - if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) { + 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.isInnerImplicit()) { + 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)); + 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; @@ -3542,12 +6401,18 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node return true; } - if (op == EOpConstructStruct && ! type.isArray() && isZeroConstructor(node)) - return false; + if (op == EOpConstructStruct && ! type.isArray()) { + if (isScalarConstructor(node)) + return false; - if (op == EOpConstructStruct && ! type.isArray() && (int)type.getStruct()->size() != function.getParamCount()) { - error(loc, "Number of constructor parameters does not match the number of structure fields", "constructor", ""); - return true; + // 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()) || @@ -3559,10 +6424,21 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node return false; } -bool HlslParseContext::isZeroConstructor(const TIntermNode* node) +// See if 'node', in the context of constructing aggregates, is a scalar argument +// to a constructor. +// +bool HlslParseContext::isScalarConstructor(const TIntermNode* node) { - return node->getAsTyped()->isScalar() && node->getAsConstantUnion() && - node->getAsConstantUnion()->getConstArray()[0].getIConst() == 0; + // 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. @@ -3618,7 +6494,8 @@ bool HlslParseContext::constructorTextureSamplerError(const TSourceLoc& loc, con 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, ""); + error(loc, "sampler-constructor second argument presence of shadow must match constructor presence of shadow", + token, ""); return true; } @@ -3639,13 +6516,6 @@ bool HlslParseContext::voidErrorCheck(const TSourceLoc& loc, const TString& iden return false; } -// Checks to see if the node (for the expression) contains a scalar boolean expression or not -void HlslParseContext::boolCheck(const TSourceLoc& loc, const TIntermTyped* type) -{ - if (type->getBasicType() != EbtBool || type->isArray() || type->isMatrix() || type->isVector()) - error(loc, "boolean expression expected", "", ""); -} - // // Fix just a full qualifier (no variables or types yet, but qualifier is complete) at global level. // @@ -3705,6 +6575,7 @@ void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src) MERGE_SINGLETON(readonly); MERGE_SINGLETON(writeonly); MERGE_SINGLETON(specConstant); + MERGE_SINGLETON(nonUniform); } // used to flatten the sampler type space into a single dimension @@ -3715,7 +6586,8 @@ int HlslParseContext::computeSamplerTypeIndex(TSampler& sampler) int shadowIndex = sampler.shadow ? 1 : 0; int externalIndex = sampler.external ? 1 : 0; - return EsdNumDims * (EbtNumTypes * (2 * (2 * arrayIndex + shadowIndex) + externalIndex) + sampler.type) + sampler.dim; + return EsdNumDims * + (EbtNumTypes * (2 * (2 * arrayIndex + shadowIndex) + externalIndex) + sampler.type) + sampler.dim; } // @@ -3759,7 +6631,7 @@ void HlslParseContext::arraySizeCheck(const TSourceLoc& loc, TIntermTyped* expr, // void HlslParseContext::arraySizeRequiredCheck(const TSourceLoc& loc, const TArraySizes& arraySizes) { - if (arraySizes.isImplicit()) + if (arraySizes.hasUnsized()) error(loc, "array size required", "", ""); } @@ -3773,27 +6645,14 @@ void HlslParseContext::structArrayCheck(const TSourceLoc& /*loc*/, const TType& } } -// Merge array dimensions listed in 'sizes' onto the type's array dimensions. -// -// From the spec: "vec4[2] a[3]; // size-3 array of size-2 array of vec4" -// -// That means, the 'sizes' go in front of the 'type' as outermost sizes. -// 'type' is the type part of the declaration (to the left) -// 'sizes' is the arrayness tagged on the identifier (to the right) -// -void HlslParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) -{ - if (sizes) - type.addArrayOuterSizes(*sizes); -} - // // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // -void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool track) +void HlslParseContext::declareArray(const TSourceLoc& loc, const TString& identifier, const TType& type, + TSymbol*& symbol, bool track) { - if (! symbol) { + if (symbol == nullptr) { bool currentScope; symbol = symbolTable.find(identifier, nullptr, ¤tScope); @@ -3809,7 +6668,7 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); if (track && symbolTable.atGlobalLevel()) - trackLinkageDeferred(*symbol); + trackLinkage(*symbol); return; } @@ -3824,7 +6683,7 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, // Process a redeclaration. // - if (! symbol) { + if (symbol == nullptr) { error(loc, "array variable name expected", identifier.c_str(), ""); return; } @@ -3832,58 +6691,31 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, // redeclareBuiltinVariable() should have already done the copyUp() TType& existingType = symbol->getWritableType(); - if (existingType.isExplicitlySizedArray()) { - // be more lenient for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size + if (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); } -void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNode *node, int index) +// +// Enforce non-initializer type/qualifier rules. +// +void HlslParseContext::fixConstInit(const TSourceLoc& loc, const TString& identifier, TType& type, + TIntermTyped*& initializer) { - // maybe there is nothing to do... - TIntermTyped* typedNode = node->getAsTyped(); - if (typedNode->getType().getImplicitArraySize() > index) - return; - - // something to do... - - // Figure out what symbol to lookup, as we will use its type to edit for the size change, - // as that type will be shared through shallow copies for future references. - TSymbol* symbol = nullptr; - int blockIndex = -1; - const TString* lookupName = nullptr; - if (node->getAsSymbolNode()) - lookupName = &node->getAsSymbolNode()->getName(); - else if (node->getAsBinaryNode()) { - const TIntermBinary* deref = node->getAsBinaryNode(); - // This has to be the result of a block dereference, unless it's bad shader code - // If it's a uniform block, then an error will be issued elsewhere, but - // return early now to avoid crashing later in this function. - if (! deref->getLeft()->getAsSymbolNode() || deref->getLeft()->getBasicType() != EbtBlock || - deref->getLeft()->getType().getQualifier().storage == EvqUniform || - deref->getRight()->getAsConstantUnion() == nullptr) - return; - - blockIndex = deref->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); - - lookupName = &deref->getLeft()->getAsSymbolNode()->getName(); - if (IsAnonymous(*lookupName)) - lookupName = &(*deref->getLeft()->getType().getStruct())[blockIndex].type->getFieldName(); + // + // 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(), ""); + } } - - // Lookup the symbol, should only fail if shader code is incorrect - symbol = symbolTable.find(*lookupName); - if (symbol == nullptr) - return; - - if (symbol->getAsFunction()) { - error(loc, "array variable name expected", symbol->getName().c_str(), ""); - return; - } - - symbol->getWritableType().setImplicitArraySize(index + 1); } // @@ -3907,123 +6739,92 @@ TSymbol* HlslParseContext::redeclareBuiltinVariable(const TSourceLoc& /*loc*/, c } // -// Either redeclare the requested block, or give an error message why it can't be done. +// Generate index to the array element in a structure buffer (SSBO) // -// TODO: functionality: explicitly sizing members of redeclared blocks is not giving them an explicit size -void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes) +TIntermTyped* HlslParseContext::indexStructBufferContent(const TSourceLoc& loc, TIntermTyped* buffer) const { - // Redeclaring a built-in block... + // Bail out if not a struct buffer + if (buffer == nullptr || ! isStructBufferType(buffer->getType())) + return nullptr; - // Blocks with instance names are easy to find, lookup the instance name, - // Anonymous blocks need to be found via a member. - bool builtIn; - TSymbol* block; - if (instanceName) - block = symbolTable.find(*instanceName, &builtIn); - else - block = symbolTable.find(newTypeList.front().type->getFieldName(), &builtIn); + // Runtime sized array is always the last element. + const TTypeList* bufferStruct = buffer->getType().getStruct(); + TIntermTyped* arrayPosition = intermediate.addConstantUnion(unsigned(bufferStruct->size()-1), loc); - // If the block was not found, this must be a version/profile/stage - // that doesn't have it, or the instance name is wrong. - const char* errorName = instanceName ? instanceName->c_str() : newTypeList.front().type->getFieldName().c_str(); - if (! block) { - error(loc, "no declaration found for redeclaration", errorName, ""); - return; - } - // Built-in blocks cannot be redeclared more than once, which if happened, - // we'd be finding the already redeclared one here, rather than the built in. - if (! builtIn) { - error(loc, "can only redeclare a built-in block once, and before any use", blockName.c_str(), ""); - return; - } + TIntermTyped* argArray = intermediate.addIndex(EOpIndexDirectStruct, buffer, arrayPosition, loc); + argArray->setType(*(*bufferStruct)[bufferStruct->size()-1].type); - // Copy the block to make a writable version, to insert into the block table after editing. - block = symbolTable.copyUpDeferredInsert(block); + return argArray; +} - if (block->getType().getBasicType() != EbtBlock) { - error(loc, "cannot redeclare a non block as a block", errorName, ""); - return; - } +// +// 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; - // Edit and error check the container against the redeclaration - // - remove unused members - // - ensure remaining qualifiers/types match - TType& type = block->getWritableType(); - TTypeList::iterator member = type.getWritableStruct()->begin(); - size_t numOriginalMembersFound = 0; - while (member != type.getStruct()->end()) { - // look for match - bool found = false; - TTypeList::const_iterator newMember; - TSourceLoc memberLoc; - memberLoc.init(); - for (newMember = newTypeList.begin(); newMember != newTypeList.end(); ++newMember) { - if (member->type->getFieldName() == newMember->type->getFieldName()) { - found = true; - memberLoc = newMember->loc; - break; - } + 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; } - if (found) { - ++numOriginalMembersFound; - // - ensure match between redeclared members' types - // - check for things that can't be changed - // - update things that can be changed - TType& oldType = *member->type; - const TType& newType = *newMember->type; - if (! newType.sameElementType(oldType)) - error(memberLoc, "cannot redeclare block member with a different type", member->type->getFieldName().c_str(), ""); - if (oldType.isArray() != newType.isArray()) - error(memberLoc, "cannot change arrayness of redeclared block member", member->type->getFieldName().c_str(), ""); - else if (! oldType.sameArrayness(newType) && oldType.isExplicitlySizedArray()) - error(memberLoc, "cannot change array size of redeclared block member", member->type->getFieldName().c_str(), ""); - if (newType.getQualifier().isMemory()) - error(memberLoc, "cannot add memory qualifier to redeclared block member", member->type->getFieldName().c_str(), ""); - if (newType.getQualifier().hasLayout()) - error(memberLoc, "cannot add layout to redeclared block member", member->type->getFieldName().c_str(), ""); - if (newType.getQualifier().patch) - error(memberLoc, "cannot add patch to redeclared block member", member->type->getFieldName().c_str(), ""); - oldType.getQualifier().centroid = newType.getQualifier().centroid; - oldType.getQualifier().sample = newType.getQualifier().sample; - oldType.getQualifier().invariant = newType.getQualifier().invariant; - oldType.getQualifier().noContraction = newType.getQualifier().noContraction; - oldType.getQualifier().smooth = newType.getQualifier().smooth; - oldType.getQualifier().flat = newType.getQualifier().flat; - oldType.getQualifier().nopersp = newType.getQualifier().nopersp; + return true; + }; - // go to next member - ++member; - } else { - // For missing members of anonymous blocks that have been redeclared, - // hide the original (shared) declaration. - // Instance-named blocks can just have the member removed. - if (instanceName) - member = type.getWritableStruct()->erase(member); - else { - member->type->hideMember(); - ++member; - } + // 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; } } - if (numOriginalMembersFound < newTypeList.size()) - error(loc, "block redeclaration has extra members", blockName.c_str(), ""); - if (type.isArray() != (arraySizes != nullptr)) - error(loc, "cannot change arrayness of redeclared block", blockName.c_str(), ""); - else if (type.isArray()) { - if (type.isExplicitlySizedArray() && arraySizes->getOuterSize() == UnsizedArraySize) - error(loc, "block already declared with size, can't redeclare as implicitly-sized", blockName.c_str(), ""); - else if (type.isExplicitlySizedArray() && type.getArraySizes() != *arraySizes) - error(loc, "cannot change array size of redeclared block", blockName.c_str(), ""); - else if (type.isImplicitlySizedArray() && arraySizes->getOuterSize() != UnsizedArraySize) - type.changeOuterArraySize(arraySizes->getOuterSize()); - } - - symbolTable.insert(*block); - - // Save it in the AST for linker use. - trackLinkageDeferred(*block); + // Otherwise, remember it: + TType* typeCopy = new TType; + typeCopy->shallowCopy(type); + structBufferTypes.push_back(typeCopy); } void HlslParseContext::paramFix(TType& type) @@ -4033,9 +6834,23 @@ void HlslParseContext::paramFix(TType& type) 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; } @@ -4072,38 +6887,38 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua } if (language == EShLangGeometry || language == EShLangTessEvaluation) { if (id == TQualifier::getGeometryString(ElgTriangles)) { - //publicType.shaderQualifiers.geometry = ElgTriangles; + // publicType.shaderQualifiers.geometry = ElgTriangles; warn(loc, "ignored", id.c_str(), ""); return; } if (language == EShLangGeometry) { if (id == TQualifier::getGeometryString(ElgPoints)) { - //publicType.shaderQualifiers.geometry = ElgPoints; + // publicType.shaderQualifiers.geometry = ElgPoints; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLineStrip)) { - //publicType.shaderQualifiers.geometry = ElgLineStrip; + // publicType.shaderQualifiers.geometry = ElgLineStrip; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLines)) { - //publicType.shaderQualifiers.geometry = ElgLines; + // publicType.shaderQualifiers.geometry = ElgLines; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLinesAdjacency)) { - //publicType.shaderQualifiers.geometry = ElgLinesAdjacency; + // publicType.shaderQualifiers.geometry = ElgLinesAdjacency; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgTrianglesAdjacency)) { - //publicType.shaderQualifiers.geometry = ElgTrianglesAdjacency; + // publicType.shaderQualifiers.geometry = ElgTrianglesAdjacency; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgTriangleStrip)) { - //publicType.shaderQualifiers.geometry = ElgTriangleStrip; + // publicType.shaderQualifiers.geometry = ElgTriangleStrip; warn(loc, "ignored", id.c_str(), ""); return; } @@ -4112,53 +6927,53 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua // input primitive if (id == TQualifier::getGeometryString(ElgTriangles)) { - //publicType.shaderQualifiers.geometry = ElgTriangles; + // publicType.shaderQualifiers.geometry = ElgTriangles; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgQuads)) { - //publicType.shaderQualifiers.geometry = ElgQuads; + // publicType.shaderQualifiers.geometry = ElgQuads; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgIsolines)) { - //publicType.shaderQualifiers.geometry = ElgIsolines; + // publicType.shaderQualifiers.geometry = ElgIsolines; warn(loc, "ignored", id.c_str(), ""); return; } // vertex spacing if (id == TQualifier::getVertexSpacingString(EvsEqual)) { - //publicType.shaderQualifiers.spacing = EvsEqual; + // publicType.shaderQualifiers.spacing = EvsEqual; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexSpacingString(EvsFractionalEven)) { - //publicType.shaderQualifiers.spacing = EvsFractionalEven; + // publicType.shaderQualifiers.spacing = EvsFractionalEven; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexSpacingString(EvsFractionalOdd)) { - //publicType.shaderQualifiers.spacing = EvsFractionalOdd; + // publicType.shaderQualifiers.spacing = EvsFractionalOdd; warn(loc, "ignored", id.c_str(), ""); return; } // triangle order if (id == TQualifier::getVertexOrderString(EvoCw)) { - //publicType.shaderQualifiers.order = EvoCw; + // publicType.shaderQualifiers.order = EvoCw; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexOrderString(EvoCcw)) { - //publicType.shaderQualifiers.order = EvoCcw; + // publicType.shaderQualifiers.order = EvoCcw; warn(loc, "ignored", id.c_str(), ""); return; } // point mode if (id == "point_mode") { - //publicType.shaderQualifiers.pointMode = true; + // publicType.shaderQualifiers.pointMode = true; warn(loc, "ignored", id.c_str(), ""); return; } @@ -4166,23 +6981,23 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua } if (language == EShLangFragment) { if (id == "origin_upper_left") { - //publicType.shaderQualifiers.originUpperLeft = true; + // publicType.shaderQualifiers.originUpperLeft = true; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "pixel_center_integer") { - //publicType.shaderQualifiers.pixelCenterInteger = true; + // publicType.shaderQualifiers.pixelCenterInteger = true; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "early_fragment_tests") { - //publicType.shaderQualifiers.earlyFragmentTests = true; + // 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; + // publicType.shaderQualifiers.layoutDepth = depth; warn(loc, "ignored", id.c_str(), ""); return; } @@ -4193,7 +7008,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua if (id == TQualifier::getBlendEquationString(be)) { requireExtensions(loc, 1, &E_GL_KHR_blend_equation_advanced, "blend equation"); intermediate.addBlendEquation(be); - //publicType.shaderQualifiers.blendEquation = true; + // publicType.shaderQualifiers.blendEquation = true; warn(loc, "ignored", id.c_str(), ""); found = true; break; @@ -4209,10 +7024,11 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua // 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) +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"; + // const char* nonLiteralFeature = "non-literal layout-id value"; integerCheck(node, feature); const TIntermConstantUnion* constUnion = node->getAsConstantUnion(); @@ -4258,16 +7074,17 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua 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 + // "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); + 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 @@ -4280,10 +7097,11 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua 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 + // "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); + 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) @@ -4301,15 +7119,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua return; } if (id == "constant_id") { - requireSpv(loc, "constant_id"); - if (value >= (int)TQualifier::layoutSpecConstantIdEnd) { - error(loc, "specialization-constant id is too large", id.c_str(), ""); - } else { - qualifier.layoutSpecConstantId = value; - qualifier.specConstant = true; - if (! intermediate.addUsedConstantId(value)) - error(loc, "specialization-constant id already used", id.c_str(), ""); - } + setSpecConstantId(loc, qualifier, value); return; } @@ -4322,7 +7132,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua if (value == 0) error(loc, "must be greater than 0", "vertices", ""); else - //publicType.shaderQualifiers.vertices = value; + // publicType.shaderQualifiers.vertices = value; warn(loc, "ignored", id.c_str(), ""); return; } @@ -4336,12 +7146,12 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua if (value == 0) error(loc, "must be at least 1", "invocations", ""); else - //publicType.shaderQualifiers.invocations = value; + // publicType.shaderQualifiers.invocations = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "max_vertices") { - //publicType.shaderQualifiers.vertices = value; + // 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", ""); @@ -4363,33 +7173,33 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua case EShLangCompute: if (id.compare(0, 11, "local_size_") == 0) { if (id == "local_size_x") { - //publicType.shaderQualifiers.localSize[0] = value; + // publicType.shaderQualifiers.localSize[0] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_y") { - //publicType.shaderQualifiers.localSize[1] = value; + // publicType.shaderQualifiers.localSize[1] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_z") { - //publicType.shaderQualifiers.localSize[2] = value; + // 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; + // publicType.shaderQualifiers.localSizeSpecId[0] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_y_id") { - //publicType.shaderQualifiers.localSizeSpecId[1] = value; + // publicType.shaderQualifiers.localSizeSpecId[1] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_z_id") { - //publicType.shaderQualifiers.localSizeSpecId[2] = value; + // publicType.shaderQualifiers.localSizeSpecId[2] = value; warn(loc, "ignored", id.c_str(), ""); return; } @@ -4404,20 +7214,33 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua 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." +// 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) { @@ -4468,27 +7291,27 @@ void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQuali } } + // // 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 +// 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, const TFunction& call, bool& builtIn, - TIntermNode* args) +const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, TFunction& call, bool& builtIn, int& thisDepth, + TIntermTyped*& args) { - // const TFunction* function = nullptr; - 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 - TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn); + bool dummyScope; + TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn, &dummyScope, &thisDepth); if (symbol) return symbol->getAsFunction(); @@ -4497,12 +7320,15 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // create list of candidates to send TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); - - // These builtin ops can accept any type, so we bypass the argument selection + + // 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() == EOpMethodRestartStrip || + candidateList[0]->getBuiltInOp() == EOpMethodIncrementCounter || + candidateList[0]->getBuiltInOp() == EOpMethodDecrementCounter || + candidateList[0]->getBuiltInOp() == EOpMethodAppend || + candidateList[0]->getBuiltInOp() == EOpMethodConsume)) { return candidateList[0]; } @@ -4514,7 +7340,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu return true; // no aggregate conversions - if (from.isArray() || to.isArray() || + if (from.isArray() || to.isArray() || from.isStruct() || to.isStruct()) return false; @@ -4531,12 +7357,45 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // 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; } @@ -4549,6 +7408,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // 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; @@ -4577,6 +7437,22 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu 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. @@ -4600,13 +7476,13 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu } }; - return std::abs(linearize(to2.getBasicType()) - linearize(from.getBasicType())) < - std::abs(linearize(to1.getBasicType()) - linearize(from.getBasicType())); + 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); @@ -4623,7 +7499,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu return nullptr; } - // For builtins, we can convert across the arguments. This will happen in several steps: + // 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 @@ -4666,18 +7542,18 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // 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 }; + 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 }; + 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 }; + TParameter param = { 0, new TType, nullptr }; param.type->shallowCopy(args->getAsTyped()->getType()); convertedCall.addParameter(param); } else { @@ -4695,25 +7571,147 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu 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, TString& identifier, const TType& parseType, TArraySizes* /*arraySizes*/) +void HlslParseContext::declareTypedef(const TSourceLoc& loc, const TString& identifier, const TType& parseType) { - TType type; - type.deepCopy(parseType); - - TVariable* typeSymbol = new TVariable(&identifier, type, true); + 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 @@ -4725,17 +7723,56 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier // 'parseType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // -TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, TType& type, TIntermTyped* initializer) +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); + 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()) { @@ -4743,33 +7780,28 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i declareArray(loc, identifier, type, symbol, !flattenVar); } else { // non-array case - if (! symbol) + 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 (flattenVar) - flatten(loc, *symbol->getAsVariable()); + if (symbol == nullptr) + return nullptr; - if (! symbol) + if (flattenVar) + flatten(*symbol->getAsVariable(), symbolTable.atGlobalLevel()); + + if (initializer == nullptr) return nullptr; // Deal with initializer - TIntermNode* initNode = nullptr; - if (symbol && initializer) { - if (flattenVar) - error(loc, "flattened array with initializer list unsupported", identifier.c_str(), ""); - - TVariable* variable = symbol->getAsVariable(); - if (! variable) { - error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); - return nullptr; - } - initNode = executeInitializer(loc, initializer, variable); + TVariable* variable = symbol->getAsVariable(); + if (variable == nullptr) { + error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); + return nullptr; } - - return initNode; + return executeInitializer(loc, initializer, variable); } // Pick up global defaults from the provide global defaults into dst. @@ -4791,20 +7823,31 @@ void HlslParseContext::inheritGlobalDefaults(TQualifier& dst) const // TVariable* HlslParseContext::makeInternalVariable(const char* name, const TType& type) const { - TString* nameString = new TString(name); + 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, TString& identifier, TType& type, bool track) +TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, const TString& identifier, const TType& type, + bool track) { // make a new variable TVariable* variable = new TVariable(&identifier, type); @@ -4812,7 +7855,7 @@ TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& ide // add variable to symbol table if (symbolTable.insert(*variable)) { if (track && symbolTable.atGlobalLevel()) - trackLinkageDeferred(*variable); + trackLinkage(*variable); return variable; } @@ -4839,9 +7882,17 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // 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, variable->getType(), initializer); - if (! initializer) { + 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; @@ -4849,8 +7900,7 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm } // Fix outer arrayness if variable is unsized, getting size from the initializer - if (initializer->getType().isExplicitlySizedArray() && - variable->getType().isImplicitlySizedArray()) + if (initializer->getType().isSizedArray() && variable->getType().isUnsizedArray()) variable->getWritableType().changeOuterArraySize(initializer->getType().getOuterArraySize()); // Inner arrayness can also get set by an initializer @@ -4859,8 +7909,10 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm 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)); + if (variable->getType().getArraySizes()->getDimSize(d) == UnsizedArraySize) { + variable->getWritableType().getArraySizes()->setDimSize(d, + initializer->getType().getArraySizes()->getDimSize(d)); + } } } @@ -4870,13 +7922,8 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm variable->getWritableType().getQualifier().storage = EvqTemporary; return nullptr; } - if (qualifier == EvqConst && symbolTable.atGlobalLevel() && initializer->getType().getQualifier().storage != EvqConst) { - error(loc, "global const initializers must be constant", "=", "'%s'", variable->getType().getCompleteString().c_str()); - variable->getWritableType().getQualifier().storage = EvqTemporary; - return nullptr; - } - // Const variables require a constant initializer, depending on version + // Const variables require a constant initializer if (qualifier == EvqConst) { if (initializer->getType().getQualifier().storage != EvqConst) { variable->getWritableType().getQualifier().storage = EvqConstReadOnly; @@ -4888,7 +7935,10 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // Compile-time tagging of the variable with its constant value... initializer = intermediate.addConversion(EOpAssign, variable->getType(), initializer); - if (! initializer || ! initializer->getAsConstantUnion() || variable->getType() != initializer->getType()) { + 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; @@ -4901,9 +7951,8 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm specializationCheck(loc, initializer->getType(), "initializer"); TIntermSymbol* intermSymbol = intermediate.addSymbol(*variable, loc); TIntermNode* initNode = handleAssign(loc, EOpAssign, intermSymbol, initializer); - if (! initNode) + if (initNode == nullptr) assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString()); - return initNode; } @@ -4922,7 +7971,8 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // // Returns nullptr if there is an error. // -TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, const TType& type, TIntermTyped* initializer) +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 @@ -4930,7 +7980,7 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // see if we have bottomed out in the tree within the initializer-list part TIntermAggregate* initList = initializer->getAsAggregate(); - if (! initList || initList->getOp() != EOpNull) { + 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. @@ -4949,42 +7999,56 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // Later on, initializer execution code will deal with array size logic. TType arrayType; arrayType.shallowCopy(type); // sharing struct stuff is fine - arrayType.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below + 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.isImplicitlySizedArray()) + if (type.isUnsizedArray()) arrayType.changeOuterArraySize((int)initList->getSequence().size()); - TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped(); - if (arrayType.isArrayOfArrays() && firstInit->getType().isArray() && - arrayType.getArraySizes().getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) { - 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)); + + // 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()); + 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()); + 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(), type.getStruct()->size()); + 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()); + initList->getSequence()[i] = convertInitializerList(loc, *(*type.getStruct())[i].type, + initList->getSequence()[i]->getAsTyped(), scalarInit); if (initList->getSequence()[i] == nullptr) return nullptr; } @@ -4995,7 +8059,7 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // a constructor; no further processing needed. } else { // lengthen list to be long enough - lengthenList(loc, initList->getSequence(), type.getMatrixCols()); + 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()); @@ -5003,21 +8067,26 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co } TType vectorType(type, 0); // dereferenced type for (int i = 0; i < type.getMatrixCols(); ++i) { - initList->getSequence()[i] = convertInitializerList(loc, vectorType, initList->getSequence()[i]->getAsTyped()); + 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()); + 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()); + 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; @@ -5029,9 +8098,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // Now that the subtree is processed, process this node as if the // initializer list is a set of arguments to a constructor. - TIntermNode* emulatedConstructorArguments; + TIntermTyped* emulatedConstructorArguments; if (initList->getSequence().size() == 1) - emulatedConstructorArguments = initList->getSequence()[0]; + emulatedConstructorArguments = initList->getSequence()[0]->getAsTyped(); else emulatedConstructorArguments = initList; @@ -5041,10 +8110,21 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // Lengthen list to be long enough to cover any gap from the current list size // to 'size'. If the list is longer, do nothing. // The value to lengthen with is the default for short lists. -void HlslParseContext::lengthenList(const TSourceLoc& loc, TIntermSequence& list, int size) +// +// 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) - list.push_back(intermediate.addConstantUnion(0, loc)); + for (int c = (int)list.size(); c < size; ++c) { + if (scalarInit == nullptr) + list.push_back(intermediate.addConstantUnion(0, loc)); + else + list.push_back(scalarInit); + } } // @@ -5053,15 +8133,46 @@ void HlslParseContext::lengthenList(const TSourceLoc& loc, TIntermSequence& list // // Returns nullptr for an error or the constructed node (aggregate or typed) for no error. // -TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type) +TIntermTyped* HlslParseContext::handleConstructor(const TSourceLoc& loc, TIntermTyped* node, const TType& type) { - if (node == nullptr || node->getAsTyped() == nullptr) + if (node == nullptr) return nullptr; - // Handle the idiom "(struct type)0" - if (type.isStruct() && isZeroConstructor(node)) - return convertInitializerList(loc, type, intermediate.makeAggregate(loc)); + // 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); @@ -5082,8 +8193,8 @@ TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNod elementType.shallowCopy(type); bool singleArg; - if (aggrNode) { - if (aggrNode->getOp() != EOpNull || aggrNode->getSequence().size() == 1) + if (aggrNode != nullptr) { + if (aggrNode->getOp() != EOpNull) singleArg = true; else singleArg = false; @@ -5092,14 +8203,27 @@ TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNod 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 structure, we need to call constructAggregate function once. - if (type.isArray()) + // 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 - newNode = constructBuiltIn(type, op, node->getAsTyped(), node->getLoc(), false); + 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); @@ -5110,7 +8234,7 @@ TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNod // // Handle list of arguments. // - TIntermSequence &sequenceVector = aggrNode->getSequence(); // Stores the information about the parameter to the constructor + 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 @@ -5147,7 +8271,8 @@ TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNod // // 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* HlslParseContext::constructBuiltIn(const TType& type, TOperator op, TIntermTyped* node, + const TSourceLoc& loc, bool subset) { TIntermTyped* newNode; TOperator basicOp; @@ -5156,6 +8281,22 @@ TIntermTyped* HlslParseContext::constructBuiltIn(const TType& type, TOperator op // 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: @@ -5188,16 +8329,48 @@ TIntermTyped* HlslParseContext::constructBuiltIn(const TType& type, TOperator op 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; @@ -5205,6 +8378,15 @@ TIntermTyped* HlslParseContext::constructBuiltIn(const TType& type, TOperator op 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; @@ -5232,15 +8414,88 @@ TIntermTyped* HlslParseContext::constructBuiltIn(const TType& type, TOperator op 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) +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 || converted->getType() != type) { + 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()); @@ -5253,10 +8508,26 @@ TIntermTyped* HlslParseContext::constructAggregate(TIntermNode* node, const TTyp // // Do everything needed to add an interface block. // -void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TString* instanceName, TArraySizes* arraySizes) +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) { @@ -5265,14 +8536,32 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS const TSourceLoc& memberLoc = typeList[member].loc; globalQualifierFix(memberLoc, memberQualifier); memberQualifier.storage = type.getQualifier().storage; - } - // This might be a redeclaration of a built-in block. If so, redeclareBuiltinBlock() will - // do all the rest. - //if (! symbolTable.atBuiltInLevel() && builtInName(*blockName)) { - // redeclareBuiltinBlock(loc, typeList, *blockName, instanceName, arraySizes); - // return; - //} + 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 @@ -5304,17 +8593,15 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS 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 + // "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.hasPacking()) - error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), ""); if (memberQualifier.hasLocation()) { switch (type.getQualifier().storage) { case EvqVaryingIn: @@ -5326,10 +8613,6 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS } } else memberWithoutLocation = true; - if (memberQualifier.hasAlign()) { - if (defaultQualification.layoutPacking != ElpStd140 && defaultQualification.layoutPacking != ElpStd430) - error(memberLoc, "can only be used with std140 or std430 layout packing", "align", ""); - } TQualifier newMemberQualification = defaultQualification; mergeQualifiers(newMemberQualification, memberQualifier); @@ -5353,18 +8636,19 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS const TString& interfaceName = (instanceName && !instanceName->empty()) ? *instanceName : type.getTypeName(); TType blockType(&typeList, interfaceName, type.getQualifier()); - if (arraySizes) - blockType.newArraySizes(*arraySizes); + 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) + 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() */, ""); + 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(), ""); @@ -5372,26 +8656,20 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS } // Save it in the AST for linker use. - trackLinkageDeferred(variable); -} - -void HlslParseContext::finalizeGlobalUniformBlockLayout(TVariable& block) -{ - block.getWritableType().getQualifier().layoutPacking = ElpStd140; - block.getWritableType().getQualifier().layoutMatrix = ElmRowMajor; - fixBlockUniformOffsets(block.getType().getQualifier(), *block.getWritableType().getWritableStruct()); + 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 +// "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 +// 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 + // "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", ""); @@ -5419,7 +8697,8 @@ void HlslParseContext::fixBlockLocations(const TSourceLoc& loc, TQualifier& qual memberQualifier.layoutLocation = nextLocation; memberQualifier.layoutComponent = 0; } - nextLocation = memberQualifier.layoutLocation + intermediate.computeTypeLocationSize(*typeList[member].type); + nextLocation = memberQualifier.layoutLocation + + intermediate.computeTypeLocationSize(*typeList[member].type, language); } } } @@ -5427,9 +8706,9 @@ void HlslParseContext::fixBlockLocations(const TSourceLoc& loc, TQualifier& qual 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 + // "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()) @@ -5456,10 +8735,10 @@ void HlslParseContext::fixBlockXfbOffsets(TQualifier& qualifier, TTypeList& type qualifier.layoutXfbOffset = TQualifier::layoutXfbOffsetEnd; } -// Calculate and save the offset of each block member, using the recursively +// 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 +// 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) @@ -5482,28 +8761,29 @@ void HlslParseContext::fixBlockUniformOffsets(const TQualifier& qualifier, TType int dummyStride; int memberAlignment = intermediate.getBaseAlignment(*typeList[member].type, memberSize, dummyStride, qualifier.layoutPacking == ElpStd140, - subMatrixLayout != ElmNone ? subMatrixLayout == ElmRowMajor - : qualifier.layoutMatrix == ElmRowMajor); + subMatrixLayout != ElmNone + ? subMatrixLayout == ElmRowMajor + : qualifier.layoutMatrix == ElmRowMajor); if (memberQualifier.hasOffset()) { - // "The specified offset must be a multiple + // "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 + // "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 + // "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 + // increase it to the first offset that is a multiple of // the actual alignment." RoundToPow2(offset, memberAlignment); typeList[member].type->getQualifier().layoutOffset = offset; @@ -5515,7 +8795,7 @@ void HlslParseContext::fixBlockUniformOffsets(const TQualifier& qualifier, TType void HlslParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier qualifier, const TString& identifier) { TSymbol* symbol = symbolTable.find(identifier); - if (! symbol) { + if (symbol == nullptr) { error(loc, "identifier not previously declared", identifier.c_str(), ""); return; } @@ -5591,6 +8871,11 @@ bool HlslParseContext::handleInputGeometry(const TSourceLoc& loc, const TLayoutG // 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: @@ -5608,6 +8893,78 @@ bool HlslParseContext::handleOutputGeometry(const TSourceLoc& loc, const TLayout 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. @@ -5634,12 +8991,14 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, case ElgIsolines: break; default: - error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); + 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)); + error(loc, "cannot apply to:", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), + GetStorageQualifierString(publicType.qualifier.storage)); } if (publicType.shaderQualifiers.spacing != EvsNone) intermediate.setVertexSpacing(publicType.shaderQualifiers.spacing); @@ -5697,7 +9056,8 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, 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); + error(loc, "all stride settings must match for xfb buffer", "xfb_stride", "%d", + qualifier.layoutXfbBuffer); } break; default: @@ -5746,7 +9106,8 @@ void HlslParseContext::wrapupSwitchSubsequence(TIntermAggregate* statements, TIn // Turn the top-level node sequence built up of wrapupSwitchSubsequence // into a switch node. // -TIntermNode* HlslParseContext::addSwitch(const TSourceLoc& loc, TIntermTyped* expression, TIntermAggregate* lastStatements) +TIntermNode* HlslParseContext::addSwitch(const TSourceLoc& loc, TIntermTyped* expression, + TIntermAggregate* lastStatements, const TAttributes& attributes) { wrapupSwitchSubsequence(lastStatements, nullptr); @@ -5773,17 +9134,861 @@ TIntermNode* HlslParseContext::addSwitch(const TSourceLoc& loc, TIntermTyped* ex TIntermSwitch* switchNode = new TIntermSwitch(expression, body); switchNode->setLoc(loc); + handleSwitchAttributes(loc, switchNode, attributes); return switchNode; } -// Potentially rename shader entry point function -void HlslParseContext::renameShaderFunction(TString*& name) const +// 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) { - // Replace the entry point name given in the shader with the real entry point name, - // if there is a substitution. - if (name != nullptr && *name == sourceEntryPointName) - name = new TString(intermediate.getEntryPointName().c_str()); + // 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 index 1de4f36d03..32a1923940 100755 --- a/deps/glslang/glslang/hlsl/hlslParseHelper.h +++ b/deps/glslang/glslang/hlsl/hlslParseHelper.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2016 Google, Inc. -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,28 +20,31 @@ // 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 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 TAttributeMap; // forward declare +class TFunctionDeclarator; class HlslParseContext : public TParseContextBase { public: @@ -50,53 +53,67 @@ public: const TString sourceEntryPointName, bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~HlslParseContext(); - void initializeExtensionBehavior(); + void initializeExtensionBehavior() override; - void setLimits(const TBuiltInResource&); - bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); - virtual const char* getGlobalUniformBlockName() { return "$Global"; } + 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*/) { } - bool lineContinuationCheck(const TSourceLoc&, bool /*endOfComment*/) { return true; } - bool lineDirectiveShouldSetNextLine() const { return true; } + 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&); - TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); + 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); - void checkIndex(const TSourceLoc&, const TType&, int& 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); - void assignLocations(TVariable& variable); - TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); - TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&, const TAttributeMap&); + 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); + 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) const; - TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); + 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); - TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); - void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; + 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* handleConstructorCall(const TSourceLoc&, const TType&); - void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic); + 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 parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); + 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); @@ -109,32 +126,35 @@ public: void arraySizeCheck(const TSourceLoc&, TIntermTyped* expr, TArraySize&); void arraySizeRequiredCheck(const TSourceLoc&, const TArraySizes&); void structArrayCheck(const TSourceLoc&, const TType& structure); - void arrayDimMerge(TType& type, const TArraySizes* sizes); bool voidErrorCheck(const TSourceLoc&, const TString&, TBasicType); - void boolCheck(const TSourceLoc&, const TIntermTyped*); 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 redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); void paramFix(TType& type); void specializationCheck(const TSourceLoc&, const TType&, const char* op); 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, const TFunction& call, bool& builtIn, TIntermNode* args); - void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0); - TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0); - void lengthenList(const TSourceLoc&, TIntermSequence& list, int size); - TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); + 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, TArraySizes* arraySizes = 0); - void finalizeGlobalUniformBlockLayout(TVariable& block); + 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&); @@ -142,9 +162,7 @@ public: 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); - - void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index); + TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body, const TAttributes&); void nestLooping() { ++loopNestingLevel; } void unnestLooping() { --loopNestingLevel; } @@ -154,11 +172,26 @@ public: 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); + TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped*& node); bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&); @@ -166,63 +199,141 @@ public: bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); - // Potentially rename shader entry point function - void renameShaderFunction(TString*& name) const; + // Determine selection control from attributes + void handleSelectionAttributes(const TSourceLoc& loc, TIntermSelection*, const TAttributes& attributes); + void handleSwitchAttributes(const TSourceLoc& loc, TIntermSwitch*, const TAttributes& attributes); - // Reset data for incrementally built referencing of flattened composite structures - void initFlattening() { flattenLevel.push_back(0); flattenOffset.push_back(0); } - void finalizeFlattening() { flattenLevel.pop_back(); flattenOffset.pop_back(); } + // 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) { } - TFlattenData(int nb) : nextBinding(nb) { } + 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 - int nextBinding; // next binding to use. + 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* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool track); - void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track); + 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); - bool isZeroConstructor(const TIntermNode*); + 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 - bool shouldFlatten(const TType& type) const; - TIntermTyped* flattenAccess(const TSourceLoc&, TIntermTyped* base, int member); - bool shouldFlattenIO(const TType&) const; - bool shouldFlattenUniform(const TType&) const; + 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 TSourceLoc& loc, const TVariable&, const TType&, TFlattenData&, const TString& name, bool track); - bool isFinalFlattening(const TType& type) const { return !(type.isStruct() || type.isArray()); } + int addFlattenedMember(const TVariable&, const TType&, TFlattenData&, const TString& name, bool linkage, + const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes); - void flatten(const TSourceLoc& loc, const TVariable& variable); - int flatten(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); - int flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); - int flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); + // 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 - struct TPragma contextPragma; - int loopNestingLevel; // 0 if outside all loops int annotationNestingLevel; // 0 if outside all annotations - int structNestingLevel; // 0 if outside blocks and structures - int controlFlowNestingLevel; // 0 if outside all flow control - TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting - bool inEntryPoint; // if inside a function, true if the function is the entry point - bool postEntryPointReturn; // if inside a function, true if the function is the entry point and this is after a return statement - const TType* currentFunctionType; // the return type of the function that's currently being parsed - bool functionReturnsValue; // true if a non-void function has a return - TBuiltInResource resources; - TLimits& limits; HlslParseContext(HlslParseContext&); HlslParseContext& operator=(HlslParseContext&); @@ -235,7 +346,6 @@ protected: TString currentCaller; // name of last function body entered (not valid when at global scope) TIdSetType inductiveLoopIds; TVector needsIndexLimitationChecking; - TVariable* entryPointOutput; // // Geometry shader input arrays: @@ -272,15 +382,127 @@ protected: TVector ioArraySymbolResizeList; TMap flattenMap; - TVector flattenLevel; // nested postfix operator level for flattening - TVector flattenOffset; // cumulative offset for flattening + + // 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; - TString sourceEntryPointName; + 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 index 8ecaec9dd5..cc847ae22f 100755 --- a/deps/glslang/glslang/hlsl/hlslParseables.cpp +++ b/deps/glslang/glslang/hlsl/hlslParseables.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,22 +19,22 @@ // 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 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 +// 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. // @@ -49,6 +49,7 @@ // #include "hlslParseables.h" +#include "hlslParseHelper.h" #include #include #include @@ -67,14 +68,21 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } } -bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } -bool IsArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&' || argOrder == '#'; } -bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } -bool IsBuffer(const char argOrder) { return argOrder == '*' || argOrder == '~'; } -bool IsImage(const char argOrder) { return argOrder == '!' || argOrder == '#' || argOrder == '~'; } +// 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 argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder) | IsImage(argOrder); + return IsTextureNonMS(argOrder) || IsArrayedTexture(argOrder) || + IsTextureMS(argOrder) || IsBuffer(argOrder) || IsImage(argOrder); } // Reject certain combinations that are illegal sample methods. For example, @@ -102,15 +110,16 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim return true; } - const bool isGather = - (name == "Gather" || + const bool isGather = + (name == "Gather" || name == "GatherRed" || - name == "GatherGreen" || + name == "GatherGreen" || name == "GatherBlue" || name == "GatherAlpha"); - const bool isGatherCmp = - (name == "GatherCmpRed" || + const bool isGatherCmp = + (name == "GatherCmp" || + name == "GatherCmpRed" || name == "GatherCmpGreen" || name == "GatherCmpBlue" || name == "GatherCmpAlpha"); @@ -174,7 +183,7 @@ const char* IoParam(glslang::TString& s, const char* nthArgOrder) } else if (*nthArgOrder == '<') { // input params ++nthArgOrder; s.append("in "); - } + } return nthArgOrder; } @@ -195,9 +204,8 @@ 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) +int FixedVecSize(const char* arg) { while (!IsEndOfArg(arg)) { if (isdigit(*arg)) @@ -208,7 +216,6 @@ int FixedVecSize(const char* 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. // @@ -222,15 +229,16 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsArrayed(argOrder[0]); const bool isSampler = IsSamplerType(argType[0]); - const bool isMS = IsTextureMS(argOrder[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) { + 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') @@ -251,20 +259,29 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons 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" : - isBuffer ? "Buffer" : + isSubpass ? "SubpassInput" : + isBuffer ? "Buffer" : isImage ? "RWTexture" : "Texture"); break; case 'i': s += ((isBuffer && isImage) ? "RWBuffer" : - isBuffer ? "Buffer" : + 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; @@ -282,6 +299,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons s += type; s += ((isImage && isBuffer) ? "imageBuffer" : + isSubpass ? "subpassInput" : isImage ? "image" : isBuffer ? "samplerBuffer" : "texture"); @@ -296,6 +314,9 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons 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) { @@ -320,12 +341,12 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars case 'V': - s += ('0' + char(dim0)); + s += dim0Char; break; - case 'M': - s += ('0' + char(dim0)); + case 'M': + s += dim0Char; s += 'x'; - s += ('0' + char(dim1)); + s += dim1Char; break; default: break; @@ -339,9 +360,9 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons // For HLSL, append return type for texture types if (UseHlslTypes) { switch (type) { - case 'i': s += ""; break; - case 'u': s += ""; break; - case 'T': s += ""; break; + case 'i': s += " 0) // handle fixed sized vectors dim0Min = dim0Max = fixedVecSize; } - + } // end anonymous namespace namespace glslang { @@ -433,7 +453,6 @@ TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() { } - // // Handle creation of mat*mat specially, since it doesn't fall conveniently out of // the generic prototype creation code below. @@ -476,7 +495,6 @@ void TBuiltInParseablesHlsl::createMatTimesMat() s.append(");\n"); // close paren - // Create V*M AppendTypeName(s, "V", "F", xCols, 1); // add return type s.append(" "); // space between type and name @@ -505,10 +523,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); // These are the actual stage masks defined in the documentation, in case they are - // needed for furture validation. For now, they are commented out, and set below + // 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; @@ -528,7 +546,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // 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 + // 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 @@ -540,6 +558,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // '!' 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 @@ -548,315 +567,378 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c 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 - // ----------------------------------------------------------------------------------------------- - { "abort", nullptr, nullptr, "-", "-", EShLangAll }, - { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, - { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "all", "S", "B", "SVM", "BFIU", EShLangAll }, - { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, - { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, - { "any", "S", "B", "SVM", "BFIU", EShLangAll }, - { "asdouble", "S", "D", "S,", "UI,", EShLangAll }, - { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll }, - { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, - { "asin", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "asint", nullptr, "I", "SVM", "FU", EShLangAll }, - { "asuint", nullptr, "U", "SVM", "FU", EShLangAll }, - { "atan", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS }, - { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll }, - { "clip", "-", "-", "SVM", "F", EShLangPS }, - { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll }, - { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, - { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, - { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "ddy", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "determinant", "S", "F", "M", "F", EShLangAll }, - { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS }, - { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, - { "distance", "S", "F", "V,", "F,", EShLangAll }, - { "dot", "S", nullptr, "V,", "FI,", EShLangAll }, - { "dst", nullptr, nullptr, "V4,", "F,", EShLangAll }, - // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs - { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangPS }, - { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangPS }, - { "exp", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "f16tof32", nullptr, "F", "SV", "U", EShLangAll }, - { "f32tof16", nullptr, "U", "SV", "F", EShLangAll }, - { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll }, - { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll }, - { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll }, - { "floor", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll }, - { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "frac", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "fwidth", nullptr, nullptr, "SVM", "F", EShLangPS }, - { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll }, - { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll }, - { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, - { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, - { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, - { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS }, - { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, - { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS }, - { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS }, - { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS }, - { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, - { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, - { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS }, - { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, - { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS }, - { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, - { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS }, - { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, - { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS }, - { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll }, - { "isinf", nullptr, "B" , "SVM", "F", EShLangAll }, - { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, - { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "length", "S", "F", "V", "F", EShLangAll }, - { "lerp", nullptr, nullptr, "VM,,", "F,,", EShLangAll }, - { "lerp", nullptr, nullptr, "SVM,,S", "F,,", EShLangAll }, - { "lit", "V4", "F", "S,,", "F,,", EShLangAll }, - { "log", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "log2", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll }, - { "max", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, - { "min", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, - { "modf", nullptr, nullptr, "SVM,>", "FIU,", EShLangAll }, - { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, - { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, - { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, - { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, - { "mul", "V", nullptr, "V,S", "FI,", EShLangAll }, - { "mul", "S", nullptr, "V,V", "FI,", EShLangAll }, - { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, + // 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 }, - { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, - { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs - { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, - { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, - { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, - { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangHS }, - { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, - { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, - { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, - { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, - { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, - { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, - { "radians", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll }, - { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll }, - { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll }, - { "reversebits", nullptr, nullptr, "SV", "UI", EShLangAll }, - { "round", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll }, - { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll }, - { "sin", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll }, - { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, - { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "tan", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "tex1D", "V4", "F", "V1,S", "S,F", EShLangPS }, - { "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangPS }, - { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangPS }, - { "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangPS }, - { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangPS }, - { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangPS }, - { "tex2D", "V4", "F", "V2,", "S,F", EShLangPS }, - { "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangPS }, - { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangPS }, - { "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangPS }, - { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangPS }, - { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangPS }, - { "tex3D", "V4", "F", "V3,", "S,F", EShLangPS }, - { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangPS }, - { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangPS }, - { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangPS }, - { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangPS }, - { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangPS }, - { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangPS }, - { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, - { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangPS }, - { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, - { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS }, - { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS }, - { "transpose", "^M", nullptr, "M", "FUIB", EShLangAll }, - { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "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 }, - { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangPS }, + { "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 }, - { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangPS }, + { "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 }, - { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangPS }, + { "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 }, - { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangPS }, + { "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 }, - { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll }, + { "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 }, - { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll }, + { "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 }, - { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll }, - { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, - { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, + { "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 }, + { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll, true }, // (RW)Buffer loads - { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll }, + { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll, true }, - { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, - { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll }, + { "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 }, - { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS }, + { "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 }, + { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS,true }, - // + // // UINT Width // UINT MipLevel, UINT Width, UINT NumberOfLevels - { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,U", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,F", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll }, + { "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 }, - { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,F,", EShLangAll }, - { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll }, - { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll }, + { "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 }, - { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,F,", EShLangAll }, - { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll }, - { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll }, + { "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 }, - { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,F,F,F", EShLangAll }, - { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll }, - { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll }, + { "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 }, - { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,F,,", EShLangAll }, - { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll }, - { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll }, + { "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 }, - { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll }, - { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll }, - { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll }, + { "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 }, - { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll }, - { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll }, - { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll }, + { "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 }, - { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, - { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, + { "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 }, - { "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, - { "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, - { "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, - { "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + { "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 }, - { "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, - { "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, - { "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, - { "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + { "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 }, - { "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, - { "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, - { "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, - { "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + { "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 }, - { "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, - { "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, - { "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, - { "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + { "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 }, - { "GatherCmpRed", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, - { "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, - { "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, - { "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, - { "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll }, + { "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 }, - { "GatherCmpGreen", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, - { "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, - { "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, - { "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, - { "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, + { "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 }, - { "GatherCmpBlue", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, - { "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, - { "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, - { "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, - { "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, + { "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 }, - { "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, - { "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, - { "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, - { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, - { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, + { "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 }, - { "RestartStrip", "-", "-", "-", "-", EShLangGS }, + { "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 }, + { nullptr, nullptr, nullptr, nullptr, nullptr, 0, false }, }; // Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it. @@ -903,6 +985,12 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c AppendTypeName(s, retOrder, retType, dim0, dim1); // add return type s.append(" "); // space between type and name + + // methods have a prefix. TODO: it would be better as an invalid identifier character, + // but that requires a scanner change. + if (intrinsic.method) + s.append(BUILTIN_PREFIX); + s.append(intrinsic.name); // intrinsic name s.append("("); // open paren @@ -947,7 +1035,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments } - + s.append(");\n"); // close paren and trailing semicolon } // dim 1 loop } // dim 0 loop @@ -956,10 +1044,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // skip over special characters if (isTexture && isalpha(argOrder[1])) ++argOrder; - if (isdigit(argOrder[1])) + if (isdigit(argOrder[1])) ++argOrder; } // arg order loop - + if (intrinsic.stage == EShLangAll) // common builtins are only added once. break; } @@ -988,7 +1076,6 @@ void TBuiltInParseablesHlsl::initialize(const TBuiltInResource& /*resources*/, i { } - // // Finish adding/processing context-independent built-in symbols. // 1) Programmatically add symbols that could not be added by simple text strings above. @@ -1022,7 +1109,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("cosh", EOpCosh); symbolTable.relateToOperator("countbits", EOpBitCount); symbolTable.relateToOperator("cross", EOpCross); - // symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); + symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); symbolTable.relateToOperator("ddx", EOpDPdx); symbolTable.relateToOperator("ddx_coarse", EOpDPdxCoarse); symbolTable.relateToOperator("ddx_fine", EOpDPdxFine); @@ -1031,8 +1118,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); symbolTable.relateToOperator("degrees", EOpDegrees); symbolTable.relateToOperator("determinant", EOpDeterminant); - symbolTable.relateToOperator("DeviceMemoryBarrier", EOpGroupMemoryBarrier); - symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpGroupMemoryBarrierWithGroupSync); // ... + symbolTable.relateToOperator("DeviceMemoryBarrier", EOpDeviceMemoryBarrier); + symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpDeviceMemoryBarrierWithGroupSync); symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); symbolTable.relateToOperator("dst", EOpDst); @@ -1137,37 +1224,92 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("trunc", EOpTrunc); // Texture methods - symbolTable.relateToOperator("Sample", EOpMethodSample); - symbolTable.relateToOperator("SampleBias", EOpMethodSampleBias); - symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); - symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); - symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); - symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); - symbolTable.relateToOperator("Load", EOpMethodLoad); - symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); - symbolTable.relateToOperator("GetSamplePosition", EOpMethodGetSamplePosition); - symbolTable.relateToOperator("Gather", EOpMethodGather); - symbolTable.relateToOperator("CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail); - symbolTable.relateToOperator("CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped); + 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("GatherRed", EOpMethodGatherRed); - symbolTable.relateToOperator("GatherGreen", EOpMethodGatherGreen); - symbolTable.relateToOperator("GatherBlue", EOpMethodGatherBlue); - symbolTable.relateToOperator("GatherAlpha", EOpMethodGatherAlpha); - symbolTable.relateToOperator("GatherCmpRed", EOpMethodGatherCmpRed); - symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen); - symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue); - symbolTable.relateToOperator("GatherCmpAlpha", EOpMethodGatherCmpAlpha); + 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("Append", EOpMethodAppend); - symbolTable.relateToOperator("RestartStrip", EOpMethodRestartStrip); + 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 +// 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. @@ -1179,5 +1321,4 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil { } - } // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslParseables.h b/deps/glslang/glslang/hlsl/hlslParseables.h index 3c93b178e6..28f424b317 100755 --- a/deps/glslang/glslang/hlsl/hlslParseables.h +++ b/deps/glslang/glslang/hlsl/hlslParseables.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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_ diff --git a/deps/glslang/glslang/hlsl/hlslScanContext.cpp b/deps/glslang/glslang/hlsl/hlslScanContext.cpp index abd59389cf..28a66bb47d 100755 --- a/deps/glslang/glslang/hlsl/hlslScanContext.cpp +++ b/deps/glslang/glslang/hlsl/hlslScanContext.cpp @@ -1,12 +1,12 @@ // -//Copyright (C) 2016 Google, Inc. -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -47,320 +47,432 @@ #include "../glslang/MachineIndependent/ParseHelper.h" #include "hlslScanContext.h" #include "hlslTokens.h" -//#include "Scan.h" // preprocessor includes #include "../glslang/MachineIndependent/preprocessor/PpContext.h" #include "../glslang/MachineIndependent/preprocessor/PpTokens.h" -#include "../glslang/MachineIndependent/preprocessor/Compare.h" - + namespace { +struct str_eq +{ + bool operator()(const char* lhs, const char* rhs) const + { + return strcmp(lhs, rhs) == 0; + } +}; + +struct str_hash +{ + size_t operator()(const char* str) const + { + // djb2 + unsigned long hash = 5381; + int c; + + while ((c = *str++) != 0) + hash = ((hash << 5) + hash) + c; + + return hash; + } +}; + // 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* KeywordMap = nullptr; +std::unordered_set* ReservedSet = nullptr; +std::unordered_map* SemanticMap = nullptr; + }; namespace glslang { void HlslScanContext::fillInKeywordMap() { - if (hlslKeywordMap != nullptr) { + if (KeywordMap != 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; + KeywordMap = 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; + (*KeywordMap)["static"] = EHTokStatic; + (*KeywordMap)["const"] = EHTokConst; + (*KeywordMap)["unorm"] = EHTokUnorm; + (*KeywordMap)["snorm"] = EHTokSNorm; + (*KeywordMap)["extern"] = EHTokExtern; + (*KeywordMap)["uniform"] = EHTokUniform; + (*KeywordMap)["volatile"] = EHTokVolatile; + (*KeywordMap)["precise"] = EHTokPrecise; + (*KeywordMap)["shared"] = EHTokShared; + (*KeywordMap)["groupshared"] = EHTokGroupShared; + (*KeywordMap)["linear"] = EHTokLinear; + (*KeywordMap)["centroid"] = EHTokCentroid; + (*KeywordMap)["nointerpolation"] = EHTokNointerpolation; + (*KeywordMap)["noperspective"] = EHTokNoperspective; + (*KeywordMap)["sample"] = EHTokSample; + (*KeywordMap)["row_major"] = EHTokRowMajor; + (*KeywordMap)["column_major"] = EHTokColumnMajor; + (*KeywordMap)["packoffset"] = EHTokPackOffset; + (*KeywordMap)["in"] = EHTokIn; + (*KeywordMap)["out"] = EHTokOut; + (*KeywordMap)["inout"] = EHTokInOut; + (*KeywordMap)["layout"] = EHTokLayout; + (*KeywordMap)["globallycoherent"] = EHTokGloballyCoherent; + (*KeywordMap)["inline"] = EHTokInline; - (*hlslKeywordMap)["point"] = EHTokPoint; - (*hlslKeywordMap)["line"] = EHTokLine; - (*hlslKeywordMap)["triangle"] = EHTokTriangle; - (*hlslKeywordMap)["lineadj"] = EHTokLineAdj; - (*hlslKeywordMap)["triangleadj"] = EHTokTriangleAdj; + (*KeywordMap)["point"] = EHTokPoint; + (*KeywordMap)["line"] = EHTokLine; + (*KeywordMap)["triangle"] = EHTokTriangle; + (*KeywordMap)["lineadj"] = EHTokLineAdj; + (*KeywordMap)["triangleadj"] = EHTokTriangleAdj; - (*hlslKeywordMap)["PointStream"] = EHTokPointStream; - (*hlslKeywordMap)["LineStream"] = EHTokLineStream; - (*hlslKeywordMap)["TriangleStream"] = EHTokTriangleStream; + (*KeywordMap)["PointStream"] = EHTokPointStream; + (*KeywordMap)["LineStream"] = EHTokLineStream; + (*KeywordMap)["TriangleStream"] = EHTokTriangleStream; - (*hlslKeywordMap)["Buffer"] = EHTokBuffer; - (*hlslKeywordMap)["vector"] = EHTokVector; - (*hlslKeywordMap)["matrix"] = EHTokMatrix; + (*KeywordMap)["InputPatch"] = EHTokInputPatch; + (*KeywordMap)["OutputPatch"] = EHTokOutputPatch; - (*hlslKeywordMap)["void"] = EHTokVoid; - (*hlslKeywordMap)["string"] = EHTokString; - (*hlslKeywordMap)["bool"] = EHTokBool; - (*hlslKeywordMap)["int"] = EHTokInt; - (*hlslKeywordMap)["uint"] = EHTokUint; - (*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; + (*KeywordMap)["Buffer"] = EHTokBuffer; + (*KeywordMap)["vector"] = EHTokVector; + (*KeywordMap)["matrix"] = EHTokMatrix; - (*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; + (*KeywordMap)["void"] = EHTokVoid; + (*KeywordMap)["string"] = EHTokString; + (*KeywordMap)["bool"] = EHTokBool; + (*KeywordMap)["int"] = EHTokInt; + (*KeywordMap)["uint"] = EHTokUint; + (*KeywordMap)["uint64_t"] = EHTokUint64; + (*KeywordMap)["dword"] = EHTokDword; + (*KeywordMap)["half"] = EHTokHalf; + (*KeywordMap)["float"] = EHTokFloat; + (*KeywordMap)["double"] = EHTokDouble; + (*KeywordMap)["min16float"] = EHTokMin16float; + (*KeywordMap)["min10float"] = EHTokMin10float; + (*KeywordMap)["min16int"] = EHTokMin16int; + (*KeywordMap)["min12int"] = EHTokMin12int; + (*KeywordMap)["min16uint"] = EHTokMin16uint; - (*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; + (*KeywordMap)["bool1"] = EHTokBool1; + (*KeywordMap)["bool2"] = EHTokBool2; + (*KeywordMap)["bool3"] = EHTokBool3; + (*KeywordMap)["bool4"] = EHTokBool4; + (*KeywordMap)["float1"] = EHTokFloat1; + (*KeywordMap)["float2"] = EHTokFloat2; + (*KeywordMap)["float3"] = EHTokFloat3; + (*KeywordMap)["float4"] = EHTokFloat4; + (*KeywordMap)["int1"] = EHTokInt1; + (*KeywordMap)["int2"] = EHTokInt2; + (*KeywordMap)["int3"] = EHTokInt3; + (*KeywordMap)["int4"] = EHTokInt4; + (*KeywordMap)["double1"] = EHTokDouble1; + (*KeywordMap)["double2"] = EHTokDouble2; + (*KeywordMap)["double3"] = EHTokDouble3; + (*KeywordMap)["double4"] = EHTokDouble4; + (*KeywordMap)["uint1"] = EHTokUint1; + (*KeywordMap)["uint2"] = EHTokUint2; + (*KeywordMap)["uint3"] = EHTokUint3; + (*KeywordMap)["uint4"] = EHTokUint4; - (*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)["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; + (*KeywordMap)["half1"] = EHTokHalf1; + (*KeywordMap)["half2"] = EHTokHalf2; + (*KeywordMap)["half3"] = EHTokHalf3; + (*KeywordMap)["half4"] = EHTokHalf4; + (*KeywordMap)["min16float1"] = EHTokMin16float1; + (*KeywordMap)["min16float2"] = EHTokMin16float2; + (*KeywordMap)["min16float3"] = EHTokMin16float3; + (*KeywordMap)["min16float4"] = EHTokMin16float4; + (*KeywordMap)["min10float1"] = EHTokMin10float1; + (*KeywordMap)["min10float2"] = EHTokMin10float2; + (*KeywordMap)["min10float3"] = EHTokMin10float3; + (*KeywordMap)["min10float4"] = EHTokMin10float4; + (*KeywordMap)["min16int1"] = EHTokMin16int1; + (*KeywordMap)["min16int2"] = EHTokMin16int2; + (*KeywordMap)["min16int3"] = EHTokMin16int3; + (*KeywordMap)["min16int4"] = EHTokMin16int4; + (*KeywordMap)["min12int1"] = EHTokMin12int1; + (*KeywordMap)["min12int2"] = EHTokMin12int2; + (*KeywordMap)["min12int3"] = EHTokMin12int3; + (*KeywordMap)["min12int4"] = EHTokMin12int4; + (*KeywordMap)["min16uint1"] = EHTokMin16uint1; + (*KeywordMap)["min16uint2"] = EHTokMin16uint2; + (*KeywordMap)["min16uint3"] = EHTokMin16uint3; + (*KeywordMap)["min16uint4"] = EHTokMin16uint4; - (*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; + (*KeywordMap)["bool1x1"] = EHTokBool1x1; + (*KeywordMap)["bool1x2"] = EHTokBool1x2; + (*KeywordMap)["bool1x3"] = EHTokBool1x3; + (*KeywordMap)["bool1x4"] = EHTokBool1x4; + (*KeywordMap)["bool2x1"] = EHTokBool2x1; + (*KeywordMap)["bool2x2"] = EHTokBool2x2; + (*KeywordMap)["bool2x3"] = EHTokBool2x3; + (*KeywordMap)["bool2x4"] = EHTokBool2x4; + (*KeywordMap)["bool3x1"] = EHTokBool3x1; + (*KeywordMap)["bool3x2"] = EHTokBool3x2; + (*KeywordMap)["bool3x3"] = EHTokBool3x3; + (*KeywordMap)["bool3x4"] = EHTokBool3x4; + (*KeywordMap)["bool4x1"] = EHTokBool4x1; + (*KeywordMap)["bool4x2"] = EHTokBool4x2; + (*KeywordMap)["bool4x3"] = EHTokBool4x3; + (*KeywordMap)["bool4x4"] = EHTokBool4x4; + (*KeywordMap)["int1x1"] = EHTokInt1x1; + (*KeywordMap)["int1x2"] = EHTokInt1x2; + (*KeywordMap)["int1x3"] = EHTokInt1x3; + (*KeywordMap)["int1x4"] = EHTokInt1x4; + (*KeywordMap)["int2x1"] = EHTokInt2x1; + (*KeywordMap)["int2x2"] = EHTokInt2x2; + (*KeywordMap)["int2x3"] = EHTokInt2x3; + (*KeywordMap)["int2x4"] = EHTokInt2x4; + (*KeywordMap)["int3x1"] = EHTokInt3x1; + (*KeywordMap)["int3x2"] = EHTokInt3x2; + (*KeywordMap)["int3x3"] = EHTokInt3x3; + (*KeywordMap)["int3x4"] = EHTokInt3x4; + (*KeywordMap)["int4x1"] = EHTokInt4x1; + (*KeywordMap)["int4x2"] = EHTokInt4x2; + (*KeywordMap)["int4x3"] = EHTokInt4x3; + (*KeywordMap)["int4x4"] = EHTokInt4x4; + (*KeywordMap)["uint1x1"] = EHTokUint1x1; + (*KeywordMap)["uint1x2"] = EHTokUint1x2; + (*KeywordMap)["uint1x3"] = EHTokUint1x3; + (*KeywordMap)["uint1x4"] = EHTokUint1x4; + (*KeywordMap)["uint2x1"] = EHTokUint2x1; + (*KeywordMap)["uint2x2"] = EHTokUint2x2; + (*KeywordMap)["uint2x3"] = EHTokUint2x3; + (*KeywordMap)["uint2x4"] = EHTokUint2x4; + (*KeywordMap)["uint3x1"] = EHTokUint3x1; + (*KeywordMap)["uint3x2"] = EHTokUint3x2; + (*KeywordMap)["uint3x3"] = EHTokUint3x3; + (*KeywordMap)["uint3x4"] = EHTokUint3x4; + (*KeywordMap)["uint4x1"] = EHTokUint4x1; + (*KeywordMap)["uint4x2"] = EHTokUint4x2; + (*KeywordMap)["uint4x3"] = EHTokUint4x3; + (*KeywordMap)["uint4x4"] = EHTokUint4x4; + (*KeywordMap)["bool1x1"] = EHTokBool1x1; + (*KeywordMap)["bool1x2"] = EHTokBool1x2; + (*KeywordMap)["bool1x3"] = EHTokBool1x3; + (*KeywordMap)["bool1x4"] = EHTokBool1x4; + (*KeywordMap)["bool2x1"] = EHTokBool2x1; + (*KeywordMap)["bool2x2"] = EHTokBool2x2; + (*KeywordMap)["bool2x3"] = EHTokBool2x3; + (*KeywordMap)["bool2x4"] = EHTokBool2x4; + (*KeywordMap)["bool3x1"] = EHTokBool3x1; + (*KeywordMap)["bool3x2"] = EHTokBool3x2; + (*KeywordMap)["bool3x3"] = EHTokBool3x3; + (*KeywordMap)["bool3x4"] = EHTokBool3x4; + (*KeywordMap)["bool4x1"] = EHTokBool4x1; + (*KeywordMap)["bool4x2"] = EHTokBool4x2; + (*KeywordMap)["bool4x3"] = EHTokBool4x3; + (*KeywordMap)["bool4x4"] = EHTokBool4x4; + (*KeywordMap)["float1x1"] = EHTokFloat1x1; + (*KeywordMap)["float1x2"] = EHTokFloat1x2; + (*KeywordMap)["float1x3"] = EHTokFloat1x3; + (*KeywordMap)["float1x4"] = EHTokFloat1x4; + (*KeywordMap)["float2x1"] = EHTokFloat2x1; + (*KeywordMap)["float2x2"] = EHTokFloat2x2; + (*KeywordMap)["float2x3"] = EHTokFloat2x3; + (*KeywordMap)["float2x4"] = EHTokFloat2x4; + (*KeywordMap)["float3x1"] = EHTokFloat3x1; + (*KeywordMap)["float3x2"] = EHTokFloat3x2; + (*KeywordMap)["float3x3"] = EHTokFloat3x3; + (*KeywordMap)["float3x4"] = EHTokFloat3x4; + (*KeywordMap)["float4x1"] = EHTokFloat4x1; + (*KeywordMap)["float4x2"] = EHTokFloat4x2; + (*KeywordMap)["float4x3"] = EHTokFloat4x3; + (*KeywordMap)["float4x4"] = EHTokFloat4x4; + (*KeywordMap)["half1x1"] = EHTokHalf1x1; + (*KeywordMap)["half1x2"] = EHTokHalf1x2; + (*KeywordMap)["half1x3"] = EHTokHalf1x3; + (*KeywordMap)["half1x4"] = EHTokHalf1x4; + (*KeywordMap)["half2x1"] = EHTokHalf2x1; + (*KeywordMap)["half2x2"] = EHTokHalf2x2; + (*KeywordMap)["half2x3"] = EHTokHalf2x3; + (*KeywordMap)["half2x4"] = EHTokHalf2x4; + (*KeywordMap)["half3x1"] = EHTokHalf3x1; + (*KeywordMap)["half3x2"] = EHTokHalf3x2; + (*KeywordMap)["half3x3"] = EHTokHalf3x3; + (*KeywordMap)["half3x4"] = EHTokHalf3x4; + (*KeywordMap)["half4x1"] = EHTokHalf4x1; + (*KeywordMap)["half4x2"] = EHTokHalf4x2; + (*KeywordMap)["half4x3"] = EHTokHalf4x3; + (*KeywordMap)["half4x4"] = EHTokHalf4x4; + (*KeywordMap)["double1x1"] = EHTokDouble1x1; + (*KeywordMap)["double1x2"] = EHTokDouble1x2; + (*KeywordMap)["double1x3"] = EHTokDouble1x3; + (*KeywordMap)["double1x4"] = EHTokDouble1x4; + (*KeywordMap)["double2x1"] = EHTokDouble2x1; + (*KeywordMap)["double2x2"] = EHTokDouble2x2; + (*KeywordMap)["double2x3"] = EHTokDouble2x3; + (*KeywordMap)["double2x4"] = EHTokDouble2x4; + (*KeywordMap)["double3x1"] = EHTokDouble3x1; + (*KeywordMap)["double3x2"] = EHTokDouble3x2; + (*KeywordMap)["double3x3"] = EHTokDouble3x3; + (*KeywordMap)["double3x4"] = EHTokDouble3x4; + (*KeywordMap)["double4x1"] = EHTokDouble4x1; + (*KeywordMap)["double4x2"] = EHTokDouble4x2; + (*KeywordMap)["double4x3"] = EHTokDouble4x3; + (*KeywordMap)["double4x4"] = EHTokDouble4x4; + (*KeywordMap)["sampler"] = EHTokSampler; + (*KeywordMap)["sampler1D"] = EHTokSampler1d; + (*KeywordMap)["sampler2D"] = EHTokSampler2d; + (*KeywordMap)["sampler3D"] = EHTokSampler3d; + (*KeywordMap)["samplerCube"] = EHTokSamplerCube; + (*KeywordMap)["sampler_state"] = EHTokSamplerState; + (*KeywordMap)["SamplerState"] = EHTokSamplerState; + (*KeywordMap)["SamplerComparisonState"] = EHTokSamplerComparisonState; + (*KeywordMap)["texture"] = EHTokTexture; + (*KeywordMap)["Texture1D"] = EHTokTexture1d; + (*KeywordMap)["Texture1DArray"] = EHTokTexture1darray; + (*KeywordMap)["Texture2D"] = EHTokTexture2d; + (*KeywordMap)["Texture2DArray"] = EHTokTexture2darray; + (*KeywordMap)["Texture3D"] = EHTokTexture3d; + (*KeywordMap)["TextureCube"] = EHTokTextureCube; + (*KeywordMap)["TextureCubeArray"] = EHTokTextureCubearray; + (*KeywordMap)["Texture2DMS"] = EHTokTexture2DMS; + (*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; + (*KeywordMap)["RWTexture1D"] = EHTokRWTexture1d; + (*KeywordMap)["RWTexture1DArray"] = EHTokRWTexture1darray; + (*KeywordMap)["RWTexture2D"] = EHTokRWTexture2d; + (*KeywordMap)["RWTexture2DArray"] = EHTokRWTexture2darray; + (*KeywordMap)["RWTexture3D"] = EHTokRWTexture3d; + (*KeywordMap)["RWBuffer"] = EHTokRWBuffer; + (*KeywordMap)["SubpassInput"] = EHTokSubpassInput; + (*KeywordMap)["SubpassInputMS"] = EHTokSubpassInputMS; - (*hlslKeywordMap)["struct"] = EHTokStruct; - (*hlslKeywordMap)["cbuffer"] = EHTokCBuffer; - (*hlslKeywordMap)["tbuffer"] = EHTokTBuffer; - (*hlslKeywordMap)["typedef"] = EHTokTypedef; + (*KeywordMap)["AppendStructuredBuffer"] = EHTokAppendStructuredBuffer; + (*KeywordMap)["ByteAddressBuffer"] = EHTokByteAddressBuffer; + (*KeywordMap)["ConsumeStructuredBuffer"] = EHTokConsumeStructuredBuffer; + (*KeywordMap)["RWByteAddressBuffer"] = EHTokRWByteAddressBuffer; + (*KeywordMap)["RWStructuredBuffer"] = EHTokRWStructuredBuffer; + (*KeywordMap)["StructuredBuffer"] = EHTokStructuredBuffer; + (*KeywordMap)["TextureBuffer"] = EHTokTextureBuffer; - (*hlslKeywordMap)["true"] = EHTokBoolConstant; - (*hlslKeywordMap)["false"] = EHTokBoolConstant; + (*KeywordMap)["class"] = EHTokClass; + (*KeywordMap)["struct"] = EHTokStruct; + (*KeywordMap)["cbuffer"] = EHTokCBuffer; + (*KeywordMap)["ConstantBuffer"] = EHTokConstantBuffer; + (*KeywordMap)["tbuffer"] = EHTokTBuffer; + (*KeywordMap)["typedef"] = EHTokTypedef; + (*KeywordMap)["this"] = EHTokThis; + (*KeywordMap)["namespace"] = EHTokNamespace; - (*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; + (*KeywordMap)["true"] = EHTokBoolConstant; + (*KeywordMap)["false"] = EHTokBoolConstant; + + (*KeywordMap)["for"] = EHTokFor; + (*KeywordMap)["do"] = EHTokDo; + (*KeywordMap)["while"] = EHTokWhile; + (*KeywordMap)["break"] = EHTokBreak; + (*KeywordMap)["continue"] = EHTokContinue; + (*KeywordMap)["if"] = EHTokIf; + (*KeywordMap)["else"] = EHTokElse; + (*KeywordMap)["discard"] = EHTokDiscard; + (*KeywordMap)["return"] = EHTokReturn; + (*KeywordMap)["switch"] = EHTokSwitch; + (*KeywordMap)["case"] = EHTokCase; + (*KeywordMap)["default"] = EHTokDefault; // TODO: get correct set here - hlslReservedSet = new std::unordered_set; - - hlslReservedSet->insert("auto"); - hlslReservedSet->insert("catch"); - hlslReservedSet->insert("char"); - hlslReservedSet->insert("class"); - 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("this"); - hlslReservedSet->insert("throw"); - hlslReservedSet->insert("try"); - hlslReservedSet->insert("typename"); - hlslReservedSet->insert("union"); - hlslReservedSet->insert("unsigned"); - hlslReservedSet->insert("using"); - hlslReservedSet->insert("virtual"); + ReservedSet = new std::unordered_set; + + ReservedSet->insert("auto"); + ReservedSet->insert("catch"); + ReservedSet->insert("char"); + ReservedSet->insert("const_cast"); + ReservedSet->insert("enum"); + ReservedSet->insert("explicit"); + ReservedSet->insert("friend"); + ReservedSet->insert("goto"); + ReservedSet->insert("long"); + ReservedSet->insert("mutable"); + ReservedSet->insert("new"); + ReservedSet->insert("operator"); + ReservedSet->insert("private"); + ReservedSet->insert("protected"); + ReservedSet->insert("public"); + ReservedSet->insert("reinterpret_cast"); + ReservedSet->insert("short"); + ReservedSet->insert("signed"); + ReservedSet->insert("sizeof"); + ReservedSet->insert("static_cast"); + ReservedSet->insert("template"); + ReservedSet->insert("throw"); + ReservedSet->insert("try"); + ReservedSet->insert("typename"); + ReservedSet->insert("union"); + ReservedSet->insert("unsigned"); + ReservedSet->insert("using"); + ReservedSet->insert("virtual"); + + SemanticMap = 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) { + (*SemanticMap)["PSIZE"] = EbvPointSize; + (*SemanticMap)["FOG"] = EbvFogFragCoord; + (*SemanticMap)["DEPTH"] = EbvFragDepth; + (*SemanticMap)["VFACE"] = EbvFace; + (*SemanticMap)["VPOS"] = EbvFragCoord; + } + + (*SemanticMap)["SV_POSITION"] = EbvPosition; + (*SemanticMap)["SV_VERTEXID"] = EbvVertexIndex; + (*SemanticMap)["SV_VIEWPORTARRAYINDEX"] = EbvViewportIndex; + (*SemanticMap)["SV_TESSFACTOR"] = EbvTessLevelOuter; + (*SemanticMap)["SV_SAMPLEINDEX"] = EbvSampleId; + (*SemanticMap)["SV_RENDERTARGETARRAYINDEX"] = EbvLayer; + (*SemanticMap)["SV_PRIMITIVEID"] = EbvPrimitiveId; + (*SemanticMap)["SV_OUTPUTCONTROLPOINTID"] = EbvInvocationId; + (*SemanticMap)["SV_ISFRONTFACE"] = EbvFace; + (*SemanticMap)["SV_INSTANCEID"] = EbvInstanceIndex; + (*SemanticMap)["SV_INSIDETESSFACTOR"] = EbvTessLevelInner; + (*SemanticMap)["SV_GSINSTANCEID"] = EbvInvocationId; + (*SemanticMap)["SV_DISPATCHTHREADID"] = EbvGlobalInvocationId; + (*SemanticMap)["SV_GROUPTHREADID"] = EbvLocalInvocationId; + (*SemanticMap)["SV_GROUPINDEX"] = EbvLocalInvocationIndex; + (*SemanticMap)["SV_GROUPID"] = EbvWorkGroupId; + (*SemanticMap)["SV_DOMAINLOCATION"] = EbvTessCoord; + (*SemanticMap)["SV_DEPTH"] = EbvFragDepth; + (*SemanticMap)["SV_COVERAGE"] = EbvSampleMask; + (*SemanticMap)["SV_DEPTHGREATEREQUAL"] = EbvFragDepthGreater; + (*SemanticMap)["SV_DEPTHLESSEQUAL"] = EbvFragDepthLesser; + (*SemanticMap)["SV_STENCILREF"] = EbvFragStencilRef; } void HlslScanContext::deleteKeywordMap() { - delete hlslKeywordMap; - hlslKeywordMap = nullptr; - delete hlslReservedSet; - hlslReservedSet = nullptr; + delete KeywordMap; + KeywordMap = nullptr; + delete ReservedSet; + ReservedSet = nullptr; + delete SemanticMap; + SemanticMap = nullptr; } -// Wrapper for tokenizeClass()"] = to get everything inside the token. +// 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 = SemanticMap->find(upperCase); + if (it != SemanticMap->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. @@ -371,13 +483,14 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) do { parserToken = &token; TPpToken ppToken; - tokenText = ppContext.tokenize(&ppToken); - if (tokenText == nullptr) + int token = ppContext.tokenize(ppToken); + if (token == EndOfInput) return EHTokNone; + tokenText = ppToken.name; loc = ppToken.loc; parserToken->loc = loc; - switch (ppToken.token) { + switch (token) { case ';': return EHTokSemicolon; case ',': return EHTokComma; case ':': return EHTokColon; @@ -403,14 +516,14 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) case '{': return EHTokLeftBrace; case '}': return EHTokRightBrace; case '\\': - _parseContext.error(loc, "illegal use of escape character", "\\", ""); + parseContext.error(loc, "illegal use of escape character", "\\", ""); break; - case PpAtomAdd: return EHTokAddAssign; - case PpAtomSub: return EHTokSubAssign; - case PpAtomMul: return EHTokMulAssign; - case PpAtomDiv: return EHTokDivAssign; - case PpAtomMod: return EHTokModAssign; + 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; @@ -433,8 +546,11 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) 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: @@ -444,17 +560,22 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) } case PpAtomConstString: { - parserToken->string = NewPoolTString(ppToken.name); + parserToken->string = NewPoolTString(tokenText); return EHTokStringConstant; } case EndOfInput: return EHTokNone; default: - char buf[2]; - buf[0] = (char)ppToken.token; - buf[1] = 0; - _parseContext.error(loc, "unexpected token", buf, ""); + 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); @@ -462,11 +583,11 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) EHlslTokenClass HlslScanContext::tokenizeIdentifier() { - if (hlslReservedSet->find(tokenText) != hlslReservedSet->end()) + if (ReservedSet->find(tokenText) != ReservedSet->end()) return reservedWord(); - auto it = hlslKeywordMap->find(tokenText); - if (it == hlslKeywordMap->end()) { + auto it = KeywordMap->find(tokenText); + if (it == KeywordMap->end()) { // Should have an identifier of some sort return identifierOrType(); } @@ -497,6 +618,8 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokInOut: case EHTokPrecise: case EHTokLayout: + case EHTokGloballyCoherent: + case EHTokInline: return keyword; // primitive types @@ -513,6 +636,11 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokTriangleStream: return keyword; + // Tessellation patches + case EHTokInputPatch: + case EHTokOutputPatch: + return keyword; + case EHTokBuffer: case EHTokVector: case EHTokMatrix: @@ -524,6 +652,7 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokBool: case EHTokInt: case EHTokUint: + case EHTokUint64: case EHTokDword: case EHTokHalf: case EHTokFloat: @@ -555,6 +684,10 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokUint2: case EHTokUint3: case EHTokUint4: + case EHTokHalf1: + case EHTokHalf2: + case EHTokHalf3: + case EHTokHalf4: case EHTokMin16float1: case EHTokMin16float2: case EHTokMin16float3: @@ -641,6 +774,22 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() 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: @@ -683,13 +832,26 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() 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: @@ -715,7 +877,7 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() return keyword; default: - _parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); + parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); return EHTokNone; } } @@ -732,34 +894,10 @@ EHlslTokenClass HlslScanContext::identifierOrType() // extension support before the extension is enabled. EHlslTokenClass HlslScanContext::reservedWord() { - if (!_parseContext.symbolTable.atBuiltInLevel()) - _parseContext.error(loc, "Reserved word.", tokenText, "", ""); + if (! parseContext.symbolTable.atBuiltInLevel()) + parseContext.error(loc, "Reserved word.", tokenText, "", ""); return EHTokNone; } -EHlslTokenClass HlslScanContext::identifierOrReserved(bool reserved) -{ - if (reserved) { - reservedWord(); - - return EHTokNone; - } - - if (_parseContext.forwardCompatible) - _parseContext.warn(loc, "using future reserved keyword", tokenText, ""); - - return identifierOrType(); -} - -// For a keyword that was never reserved, until it suddenly -// showed up. -EHlslTokenClass HlslScanContext::nonreservedKeyword(int version) -{ - if (_parseContext.version < version) - return identifierOrType(); - - return keyword; -} - } // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslScanContext.h b/deps/glslang/glslang/hlsl/hlslScanContext.h index 32cd0e7f20..9d30a12e1e 100755 --- a/deps/glslang/glslang/hlsl/hlslScanContext.h +++ b/deps/glslang/glslang/hlsl/hlslScanContext.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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. // // @@ -54,7 +54,7 @@ class TPpToken; // Everything needed to fully describe a token. // struct HlslToken { - HlslToken() : string(nullptr), symbol(nullptr) { loc.init(); } + HlslToken() : string(nullptr) { loc.init(); } TSourceLoc loc; // location of token in the source EHlslTokenClass tokenClass; // what kind of token it is union { // what data the token holds @@ -64,7 +64,6 @@ struct HlslToken { bool b; double d; }; - glslang::TSymbol* symbol; // if a symbol-table lookup was done already, this is the result }; // @@ -74,14 +73,15 @@ struct HlslToken { // class HlslScanContext { public: - HlslScanContext(TParseContextBase& _parseContext, TPpContext& ppContext) - : _parseContext(_parseContext), ppContext(ppContext) { } + 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&); @@ -94,7 +94,7 @@ protected: EHlslTokenClass identifierOrReserved(bool reserved); EHlslTokenClass nonreservedKeyword(int version); - TParseContextBase&_parseContext; + TParseContextBase& parseContext; TPpContext& ppContext; TSourceLoc loc; TPpToken* ppToken; diff --git a/deps/glslang/glslang/hlsl/hlslTokenStream.cpp b/deps/glslang/glslang/hlsl/hlslTokenStream.cpp index c915e0b593..5d9311cfd7 100755 --- a/deps/glslang/glslang/hlsl/hlslTokenStream.cpp +++ b/deps/glslang/glslang/hlsl/hlslTokenStream.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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" @@ -64,14 +64,56 @@ HlslToken HlslTokenStream::popTokenBuffer() 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 - scanner.tokenize(token); + 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() diff --git a/deps/glslang/glslang/hlsl/hlslTokenStream.h b/deps/glslang/glslang/hlsl/hlslTokenStream.h index ec4288943e..cb6c9e7234 100755 --- a/deps/glslang/glslang/hlsl/hlslTokenStream.h +++ b/deps/glslang/glslang/hlsl/hlslTokenStream.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 Google, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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_ @@ -52,6 +52,10 @@ namespace glslang { 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 @@ -60,7 +64,10 @@ namespace glslang { HlslTokenStream(); HlslTokenStream& operator=(const HlslTokenStream&); - HlslScanContext& scanner; // lexical scanner, to get next token + 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; diff --git a/deps/glslang/glslang/hlsl/hlslTokens.h b/deps/glslang/glslang/hlsl/hlslTokens.h index cfa63b7cfe..4426bccecb 100755 --- a/deps/glslang/glslang/hlsl/hlslTokens.h +++ b/deps/glslang/glslang/hlsl/hlslTokens.h @@ -1,12 +1,12 @@ // -//Copyright (C) 2016 Google, Inc. -//Copyright (C) 2016 LunarG, Inc. +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -//"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 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_ @@ -65,6 +65,8 @@ enum EHlslTokenClass { EHTokOut, EHTokInOut, EHTokLayout, + EHTokGloballyCoherent, + EHTokInline, // primitive types EHTokPoint, @@ -78,6 +80,10 @@ enum EHlslTokenClass { EHTokLineStream, EHTokTriangleStream, + // Tessellation patches + EHTokInputPatch, + EHTokOutputPatch, + // template types EHTokBuffer, EHTokVector, @@ -89,6 +95,7 @@ enum EHlslTokenClass { EHTokBool, EHTokInt, EHTokUint, + EHTokUint64, EHTokDword, EHTokHalf, EHTokFloat, @@ -120,6 +127,10 @@ enum EHlslTokenClass { EHTokUint2, EHTokUint3, EHTokUint4, + EHTokHalf1, + EHTokHalf2, + EHTokHalf3, + EHTokHalf4, EHTokMin16float1, EHTokMin16float2, EHTokMin16float3, @@ -206,6 +217,22 @@ enum EHlslTokenClass { EHTokFloat4x2, EHTokFloat4x3, EHTokFloat4x4, + EHTokHalf1x1, + EHTokHalf1x2, + EHTokHalf1x3, + EHTokHalf1x4, + EHTokHalf2x1, + EHTokHalf2x2, + EHTokHalf2x3, + EHTokHalf2x4, + EHTokHalf3x1, + EHTokHalf3x2, + EHTokHalf3x3, + EHTokHalf3x4, + EHTokHalf4x1, + EHTokHalf4x2, + EHTokHalf4x3, + EHTokHalf4x4, EHTokDouble1x1, EHTokDouble1x2, EHTokDouble1x3, @@ -247,17 +274,31 @@ enum EHlslTokenClass { EHTokRWTexture2darray, EHTokRWTexture3d, EHTokRWBuffer, + EHTokSubpassInput, + EHTokSubpassInputMS, + // Structure buffer variants + EHTokAppendStructuredBuffer, + EHTokByteAddressBuffer, + EHTokConsumeStructuredBuffer, + EHTokRWByteAddressBuffer, + EHTokRWStructuredBuffer, + EHTokStructuredBuffer, + EHTokTextureBuffer, // variable, user type, ... EHTokIdentifier, - EHTokTypeName, + EHTokClass, EHTokStruct, EHTokCBuffer, EHTokTBuffer, EHTokTypedef, + EHTokThis, + EHTokNamespace, + EHTokConstantBuffer, // constant + EHTokFloat16Constant, EHTokFloatConstant, EHTokDoubleConstant, EHTokIntConstant, @@ -311,6 +352,7 @@ enum EHlslTokenClass { EHTokDot, EHTokComma, EHTokColon, + EHTokColonColon, EHTokSemicolon, EHTokBang, EHTokDash, diff --git a/deps/glslang-new/known_good.json b/deps/glslang/glslang/known_good.json similarity index 100% rename from deps/glslang-new/known_good.json rename to deps/glslang/glslang/known_good.json diff --git a/deps/glslang-new/known_good_khr.json b/deps/glslang/glslang/known_good_khr.json similarity index 100% rename from deps/glslang-new/known_good_khr.json rename to deps/glslang/glslang/known_good_khr.json diff --git a/deps/glslang/glslang/make-revision b/deps/glslang/glslang/make-revision index 492e437562..a89ff08772 100755 --- a/deps/glslang/glslang/make-revision +++ b/deps/glslang/glslang/make-revision @@ -1,10 +1,6 @@ #!/bin/sh ( echo "// This header is generated by the make-revision script." -echo "// For the version, it uses the latest git tag followed by the number of commits." -echo "// For the date, it uses the current date (when then script is run)." - echo -echo \#define GLSLANG_REVISION \"`git describe --tags --abbrev=0`.`git log --oneline | wc -l`\" -echo \#define GLSLANG_DATE \"`date +%d-%b-%Y`\" +echo \#define GLSLANG_PATCH_LEVEL `git log --oneline | wc -l` ) > glslang/Include/revision.h diff --git a/deps/glslang-new/update_glslang_sources.py b/deps/glslang/glslang/update_glslang_sources.py similarity index 100% rename from deps/glslang-new/update_glslang_sources.py rename to deps/glslang/glslang/update_glslang_sources.py